<?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>20286</bug_id>
          
          <creation_ts>2008-08-05 02:22:02 -0700</creation_ts>
          <short_desc>Load constants all at once instead of using op_load</short_desc>
          <delta_ts>2008-08-06 03:38:53 -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>JavaScriptCore</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="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Cameron Zwarich (cpst)">zwarich</assigned_to>
          <cc>mjs</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>87846</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-08-05 02:22:02 -0700</bug_when>
    <thetext>Maciej and Geoff suggested loading constants all at once instead of using op_load individually. I have a patch that implements this, and I will post it in this bug, along with SunSpider results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87847</commentid>
    <comment_count>1</comment_count>
      <attachid>22650</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-08-05 02:50:51 -0700</bug_when>
    <thetext>Created attachment 22650
Preliminary patch

Here is a preliminary patch. It passes all tests but fast/js/deep-recursion-test (I need to change the limit due to larger stack frames). I also need to fix the debugging output, but maybe I will only do a bit in this patch and then do more in a later patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87849</commentid>
    <comment_count>2</comment_count>
      <attachid>22651</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-08-05 03:33:52 -0700</bug_when>
    <thetext>Created attachment 22651
SunSpider numbers with r35554</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87850</commentid>
    <comment_count>3</comment_count>
      <attachid>22652</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-08-05 03:34:59 -0700</bug_when>
    <thetext>Created attachment 22652
SunSpider numbers with r35555

The small change in r35555 somehow causes my patch to go from being a 1.8% speedup to a 0.5% speedup (or a slowdown when I originally tested it). I don&apos;t have any clue why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87857</commentid>
    <comment_count>4</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-08-05 04:40:29 -0700</bug_when>
    <thetext>Since r35555 was rolled out, this patch is a 1.4% improvement on SunSpider, but still not a 1.8% improvement like it was before. The code is identical, so I will chalk this discrepancy up to randomness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87920</commentid>
    <comment_count>5</comment_count>
      <attachid>22672</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-08-05 20:06:02 -0700</bug_when>
    <thetext>Created attachment 22672
Proposed patch

Here&apos;s the patch. Here are a few comments:

1) I don&apos;t like that I have the same code

    m_codeBlock-&gt;numConstants = programNode-&gt;numConstants() + 3;

in each of the CodeGenerator constructors, without any explanation of what it does. Should I have a comment explaining why we possibly need 3 more registers in each spot, or write it once and refer to it twice?

2) The way that I make some RegisterIDs in the temporary range return false for isTemporary() seems like a bad idea, but since there is no copy constructor, the only other way I can do it is by inheriting. What should I do here?

3) I changed CodeBlock::registers to be CodeBlock::constants, but perhaps the name constantRegisters is better. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87926</commentid>
    <comment_count>6</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-08-06 02:13:54 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=22672) [edit]
&gt; Proposed patch
&gt; 
&gt; Here&apos;s the patch. Here are a few comments:
&gt; 
&gt; 1) I don&apos;t like that I have the same code
&gt; 
&gt;     m_codeBlock-&gt;numConstants = programNode-&gt;numConstants() + 3;
&gt; 
&gt; in each of the CodeGenerator constructors, without any explanation of what it
&gt; does. Should I have a comment explaining why we possibly need 3 more registers
&gt; in each spot, or write it once and refer to it twice?

I&apos;d advise a method on programNode that adds 3 and explains why.

&gt; 
&gt; 2) The way that I make some RegisterIDs in the temporary range return false for
&gt; isTemporary() seems like a bad idea, but since there is no copy constructor,
&gt; the only other way I can do it is by inheriting. What should I do here?

I think this is ok as-is for a first cut. Maybe Geoff has a better idea.

&gt; 3) I changed CodeBlock::registers to be CodeBlock::constants, but perhaps the
&gt; name constantRegisters is better. What do you think?

I like that name.

Also, please test if maybe open-coding the copy loop is faster than memcpy.

r=me after addressing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87932</commentid>
    <comment_count>7</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-08-06 03:38:53 -0700</bug_when>
    <thetext>Landed in r35593, using an open-coded copy instead of memcpy() for a 2.6% speedup.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22650</attachid>
            <date>2008-08-05 02:50:51 -0700</date>
            <delta_ts>2008-08-05 20:06:02 -0700</delta_ts>
            <desc>Preliminary patch</desc>
            <filename>constants.diff</filename>
            <type>text/plain</type>
            <size>151855</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM1NTU2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjMgQEAKKzIwMDgtMDgt
MDUgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDIwMjg2OiBMb2FkIGNv
bnN0YW50cyBhbGwgYXQgb25jZSBpbnN0ZWFkIG9mIHVzaW5nIG9wX2xvYWQKKyAgICAgICAgPGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI4Nj4KKworICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBWTS9Db2RlQmxvY2suY3BwOgorICAgICAg
ICAoS0pTOjpDb2RlQmxvY2s6OmR1bXApOgorICAgICAgICAoS0pTOjpDb2RlQmxvY2s6Om1hcmsp
OgorICAgICAgICAqIFZNL0NvZGVCbG9jay5oOgorICAgICAgICAqIFZNL0NvZGVHZW5lcmF0b3Iu
Y3BwOgorICAgICAgICAoS0pTOjpDb2RlR2VuZXJhdG9yOjpDb2RlR2VuZXJhdG9yKToKKyAgICAg
ICAgKEtKUzo6Q29kZUdlbmVyYXRvcjo6bmV3VGVtcG9yYXJ5KToKKyAgICAgICAgKEtKUzo6Q29k
ZUdlbmVyYXRvcjo6YWRkQ29uc3RhbnQpOgorICAgICAgICAoS0pTOjpDb2RlR2VuZXJhdG9yOjph
ZGRVbmV4cGVjdGVkQ29uc3RhbnQpOgorICAgICAgICAoS0pTOjpDb2RlR2VuZXJhdG9yOjplbWl0
TG9hZCk6CisgICAgICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6OmVtaXRVbmV4cGVjdGVkTG9hZCk6
CisgICAgICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6OmVtaXROZXdFcnJvcik6CisgICAgICAgICog
Vk0vQ29kZUdlbmVyYXRvci5oOgorICAgICAgICAqIFZNL01hY2hpbmUuY3BwOgorICAgICAgICAo
S0pTOjpzbGlkZVJlZ2lzdGVyV2luZG93Rm9yQ2FsbCk6CisgICAgICAgIChLSlM6Ok1hY2hpbmU6
OnVud2luZENhbGxGcmFtZSk6CisgICAgICAgIChLSlM6Ok1hY2hpbmU6OnRocm93RXhjZXB0aW9u
KToKKyAgICAgICAgKEtKUzo6TWFjaGluZTo6ZXhlY3V0ZSk6CisgICAgICAgIChLSlM6Ok1hY2hp
bmU6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBWTS9NYWNoaW5lLmg6CisgICAgICAgICog
Vk0vT3Bjb2RlLmg6CisgICAgICAgICogVk0vUmVnaXN0ZXJJRC5oOgorICAgICAgICAoS0pTOjpS
ZWdpc3RlcklEOjpSZWdpc3RlcklEKToKKyAgICAgICAgKEtKUzo6UmVnaXN0ZXJJRDo6bWFrZUNv
bnN0YW50KToKKyAgICAgICAgKEtKUzo6UmVnaXN0ZXJJRDo6aXNUZW1wb3JhcnkpOgorICAgICAg
ICAqIGtqcy9Ob2RlSW5mby5oOgorICAgICAgICAqIGtqcy9QYXJzZXIuY3BwOgorICAgICAgICAo
S0pTOjpQYXJzZXI6OmRpZEZpbmlzaFBhcnNpbmcpOgorICAgICAgICAqIGtqcy9QYXJzZXIuaDoK
KyAgICAgICAgKEtKUzo6UGFyc2VyOjpwYXJzZSk6CisgICAgICAgICoga2pzL2dyYW1tYXIueToK
KyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAgICAoS0pTOjpOdWxsTm9kZTo6ZW1pdENv
ZGUpOgorICAgICAgICAoS0pTOjpCb29sZWFuTm9kZTo6ZW1pdENvZGUpOgorICAgICAgICAoS0pT
OjpOdW1iZXJOb2RlOjplbWl0Q29kZSk6CisgICAgICAgIChLSlM6OlN0cmluZ05vZGU6OmVtaXRD
b2RlKToKKyAgICAgICAgKEtKUzo6QXJyYXlOb2RlOjplbWl0Q29kZSk6CisgICAgICAgIChLSlM6
OkRlbGV0ZVJlc29sdmVOb2RlOjplbWl0Q29kZSk6CisgICAgICAgIChLSlM6OkRlbGV0ZVZhbHVl
Tm9kZTo6ZW1pdENvZGUpOgorICAgICAgICAoS0pTOjpWb2lkTm9kZTo6ZW1pdENvZGUpOgorICAg
ICAgICAoS0pTOjpSZXR1cm5Ob2RlOjplbWl0Q29kZSk6CisgICAgICAgIChLSlM6OlNjb3BlTm9k
ZTo6U2NvcGVOb2RlKToKKyAgICAgICAgKEtKUzo6UHJvZ3JhbU5vZGU6OlByb2dyYW1Ob2RlKToK
KyAgICAgICAgKEtKUzo6UHJvZ3JhbU5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChLSlM6OkV2YWxO
b2RlOjpFdmFsTm9kZSk6CisgICAgICAgIChLSlM6OkV2YWxOb2RlOjpjcmVhdGUpOgorICAgICAg
ICAoS0pTOjpGdW5jdGlvbkJvZHlOb2RlOjpGdW5jdGlvbkJvZHlOb2RlKToKKyAgICAgICAgKEtK
Uzo6RnVuY3Rpb25Cb2R5Tm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKEtKUzo6RnVuY3Rpb25Cb2R5
Tm9kZTo6ZW1pdENvZGUpOgorICAgICAgICAqIGtqcy9ub2Rlcy5oOgorICAgICAgICAoS0pTOjpT
Y29wZU5vZGU6Om51bUNvbnN0YW50cyk6CisKIDIwMDgtMDgtMDUgIE1hY2llaiBTdGFjaG93aWFr
ICA8bWpzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZi4KSW5kZXg6IEph
dmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS5leHAJKHJldmlz
aW9uIDM1NTU2KQorKysgSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3
ICs5Miw3IEBAIF9fWk4zS0pTMTFKU0ltbWVkaWF0ZTh0b09iamVjdEVQS05TXzdKU1YKIF9fWk4z
S0pTMTFKU0ltbWVkaWF0ZTh0b1N0cmluZ0VQS05TXzdKU1ZhbHVlRQogX19aTjNLSlMxMUpTSW1t
ZWRpYXRlOXByb3RvdHlwZUVQS05TXzdKU1ZhbHVlRVBOU185RXhlY1N0YXRlRQogX19aTjNLSlMx
MVByb2ZpbGVOb2RlNHNvcnRFUEZiUktOM1dURjZSZWZQdHJJUzBfRUVTNV9FCi1fX1pOM0tKUzEx
UHJvZ3JhbU5vZGU2Y3JlYXRlRVBOU18xMkpTR2xvYmFsRGF0YUVQTlNfMTRTb3VyY2VFbGVtZW50
c0VQTjNXVEY2VmVjdG9ySVN0NHBhaXJJTlNfMTBJZGVudGlmaWVyRWpFTG0xNkVFRVBOUzZfSU5T
NV82UmVmUHRySU5TXzEyRnVuY0RlY2xOb2RlRUVFTG0xNkVFRVBOU18xNFNvdXJjZVByb3ZpZGVy
RWJiCitfX1pOM0tKUzExUHJvZ3JhbU5vZGU2Y3JlYXRlRVBOU18xMkpTR2xvYmFsRGF0YUVQTlNf
MTRTb3VyY2VFbGVtZW50c0VQTjNXVEY2VmVjdG9ySVN0NHBhaXJJTlNfMTBJZGVudGlmaWVyRWpF
TG0xNkVFRVBOUzZfSU5TNV82UmVmUHRySU5TXzEyRnVuY0RlY2xOb2RlRUVFTG0xNkVFRVBOU18x
NFNvdXJjZVByb3ZpZGVyRWJiaQogX19aTjNLSlMxMVByb3BlcnR5TWFwMTFnZXRMb2NhdGlvbkVS
S05TXzEwSWRlbnRpZmllckUKIF9fWk4zS0pTMTFQcm9wZXJ0eU1hcDExZ2V0TG9jYXRpb25FUktO
U18xMElkZW50aWZpZXJFUmIKIF9fWk4zS0pTMTFQcm9wZXJ0eU1hcDNwdXRFUktOU18xMElkZW50
aWZpZXJFUE5TXzdKU1ZhbHVlRWpiCkluZGV4OiBWTS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFZNL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDM1NTU2KQorKysgVk0vQ29kZUJsb2NrLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTcxLDEzICsxNzEsMTMgQEAgdm9pZCBDb2RlQmxvY2s6OmR1
bXAoRXhlY1N0YXRlKiBleGVjKSBjbwogICAgICAgICB9IHdoaWxlIChpICE9IGlkZW50aWZpZXJz
LnNpemUoKSk7CiAgICAgfQogCi0gICAgaWYgKHJlZ2lzdGVycy5zaXplKCkpIHsKKyAgICBpZiAo
Y29uc3RhbnRzLnNpemUoKSkgewogICAgICAgICBwcmludGYoIlxuQ29uc3RhbnRzOlxuIik7CiAg
ICAgICAgIHNpemVfdCBpID0gMDsKICAgICAgICAgZG8gewotICAgICAgICAgICAgcHJpbnRmKCIg
IGsldSA9ICVzXG4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaSksIHZhbHVlVG9Tb3VyY2VTdHJp
bmcoZXhlYywgcmVnaXN0ZXJzW2ldLmpzVmFsdWUoZXhlYykpLmFzY2lpKCkpOworICAgICAgICAg
ICAgcHJpbnRmKCIgIGsldSA9ICVzXG4iLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaSksIHZhbHVl
VG9Tb3VyY2VTdHJpbmcoZXhlYywgY29uc3RhbnRzW2ldLmpzVmFsdWUoZXhlYykpLmFzY2lpKCkp
OwogICAgICAgICAgICAgKytpOwotICAgICAgICB9IHdoaWxlIChpIDwgcmVnaXN0ZXJzLnNpemUo
KSk7CisgICAgICAgIH0gd2hpbGUgKGkgPCBjb25zdGFudHMuc2l6ZSgpKTsKICAgICB9CiAgICAg
CiAgICAgaWYgKHJlZ2V4cHMuc2l6ZSgpKSB7CkBAIC0yNTAsMTIgKzI1MCw2IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wKEV4ZWNTdGF0ZSogZXhlYywgY28KIHsKICAgICBpbnQgbG9jYXRpb24gPSBp
dCAtIGJlZ2luOwogICAgIHN3aXRjaCAoZXhlYy0+bWFjaGluZSgpLT5nZXRPcGNvZGVJRChpdC0+
dS5vcGNvZGUpKSB7Ci0gICAgICAgIGNhc2Ugb3BfbG9hZDogewotICAgICAgICAgICAgaW50IHIw
ID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBpbnQgazAgPSAoKytpdCktPnUub3Bl
cmFuZDsKLSAgICAgICAgICAgIHByaW50ZigiWyU0ZF0gbG9hZFx0XHQgJXMsICVzXHRcdFxuIiwg
bG9jYXRpb24sIHJlZ2lzdGVyTmFtZShyMCkuY19zdHIoKSwgY29uc3RhbnROYW1lKGV4ZWMsIGsw
LCByZWdpc3RlcnNbazBdLmpzVmFsdWUoZXhlYykpLmNfc3RyKCkpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9uZXdfb2JqZWN0OiB7CiAgICAgICAgICAg
ICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIHByaW50ZigiWyU0ZF0g
bmV3X29iamVjdFx0ICVzXG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5jX3N0cigpKTsK
QEAgLTY2MCw3ICs2NTQsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcChFeGVjU3RhdGUqIGV4ZWMs
IGNvCiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAg
IGludCBlcnJvclR5cGUgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBrMCA9
ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgcHJpbnRmKCJbJTRkXSBuZXdfZXJyb3Jc
dCAlcywgJWQsICVzXG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5jX3N0cigpLCBlcnJv
clR5cGUsIGNvbnN0YW50TmFtZShleGVjLCBrMCwgcmVnaXN0ZXJzW2swXS5qc1ZhbHVlKGV4ZWMp
KS5jX3N0cigpKTsKKyAgICAgICAgICAgIHByaW50ZigiWyU0ZF0gbmV3X2Vycm9yXHQgJXMsICVk
LCAlc1xuIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShyMCkuY19zdHIoKSwgZXJyb3JUeXBlLCBj
b25zdGFudE5hbWUoZXhlYywgazAsIHVuZXhwZWN0ZWRDb25zdGFudHNbazBdKS5jX3N0cigpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfanNyOiB7CkBA
IC02OTUsOSArNjg5LDEzIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wKEV4ZWNTdGF0ZSogZXhlYywg
Y28KIAogdm9pZCBDb2RlQmxvY2s6Om1hcmsoKQogewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgcmVnaXN0ZXJzLnNpemUoKTsgKytpKQotICAgICAgICBpZiAoIXJlZ2lzdGVyc1tpXS5tYXJr
ZWQoKSkKLSAgICAgICAgICAgIHJlZ2lzdGVyc1tpXS5tYXJrKCk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjb25zdGFudHMuc2l6ZSgpOyArK2kpCisgICAgICAgIGlmICghY29uc3RhbnRz
W2ldLm1hcmtlZCgpKQorICAgICAgICAgICAgY29uc3RhbnRzW2ldLm1hcmsoKTsKKworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgdW5leHBlY3RlZENvbnN0YW50cy5zaXplKCk7ICsraSkKKyAg
ICAgICAgaWYgKCF1bmV4cGVjdGVkQ29uc3RhbnRzW2ldLT5tYXJrZWQoKSkKKyAgICAgICAgICAg
IHVuZXhwZWN0ZWRDb25zdGFudHNbaV0tPm1hcmsoKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgZnVuY3Rpb25zLnNpemUoKTsgKytpKQogICAgICAgICBmdW5jdGlvbnNbaV0tPmJvZHko
KS0+bWFyaygpOwpJbmRleDogVk0vQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vQ29kZUJs
b2NrLmgJKHJldmlzaW9uIDM1NTU2KQorKysgVk0vQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMCw2ICsxMDAsNyBAQCBuYW1lc3BhY2UgS0pTIHsKIAogICAgICAgICBTY29wZU5vZGUq
IG93bmVyTm9kZTsKIAorICAgICAgICBpbnQgbnVtQ29uc3RhbnRzOwogICAgICAgICBpbnQgbnVt
VGVtcG9yYXJpZXM7CiAgICAgICAgIGludCBudW1WYXJzOwogICAgICAgICBpbnQgbnVtUGFyYW1l
dGVyczsKQEAgLTExNyw3ICsxMTgsOCBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgVmVjdG9y
PElkZW50aWZpZXI+IGlkZW50aWZpZXJzOwogICAgICAgICBWZWN0b3I8UmVmUHRyPEZ1bmNEZWNs
Tm9kZT4gPiBmdW5jdGlvbnM7CiAgICAgICAgIFZlY3RvcjxSZWZQdHI8RnVuY0V4cHJOb2RlPiA+
IGZ1bmN0aW9uRXhwcmVzc2lvbnM7Ci0gICAgICAgIFZlY3RvcjxSZWdpc3Rlcj4gcmVnaXN0ZXJz
OworICAgICAgICBWZWN0b3I8UmVnaXN0ZXI+IGNvbnN0YW50czsKKyAgICAgICAgVmVjdG9yPEpT
VmFsdWUqPiB1bmV4cGVjdGVkQ29uc3RhbnRzOwogICAgICAgICBWZWN0b3I8UmVmUHRyPFJlZ0V4
cD4gPiByZWdleHBzOwogICAgICAgICBWZWN0b3I8SGFuZGxlckluZm8+IGV4Y2VwdGlvbkhhbmRs
ZXJzOwogICAgICAgICBWZWN0b3I8RXhwcmVzc2lvblJhbmdlSW5mbz4gZXhwcmVzc2lvbkluZm87
CkluZGV4OiBWTS9Db2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlR2VuZXJh
dG9yLmNwcAkocmV2aXNpb24gMzU1NTYpCisrKyBWTS9Db2RlR2VuZXJhdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjAyLDYgKzIwMiw3IEBAIENvZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3Io
UHJvZ3JhbU5vZGUKIHsKICAgICAvLyBGSVhNRTogTW92ZSBjb2RlIHRoYXQgbW9kaWZpZXMgdGhl
IGdsb2JhbCBvYmplY3QgdG8gTWFjaGluZTo6ZXhlY3V0ZS4KICAgICAKKyAgICBtX2NvZGVCbG9j
ay0+bnVtQ29uc3RhbnRzID0gcHJvZ3JhbU5vZGUtPm51bUNvbnN0YW50cygpICsgMzsKICAgICBt
X2NvZGVCbG9jay0+bnVtVmFycyA9IDE7IC8vIEFsbG9jYXRlIHNwYWNlIGZvciAidGhpcyIKIAog
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzY29wZUNoYWluLmdsb2JhbE9iamVj
dCgpOwpAQCAtMjYyLDYgKzI2Myw4IEBAIENvZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRnVu
Y3Rpb25Cb2QKICAgICAsIG1fZ2xvYmFsRGF0YSgmc2NvcGVDaGFpbi5nbG9iYWxPYmplY3QoKS0+
Z2xvYmFsRXhlYygpLT5nbG9iYWxEYXRhKCkpCiAgICAgLCBtX2xhc3RPcGNvZGVJRChvcF9lbmQp
CiB7CisgICAgbV9jb2RlQmxvY2stPm51bUNvbnN0YW50cyA9IGZ1bmN0aW9uQm9keS0+bnVtQ29u
c3RhbnRzKCkgKyAzOworCiAgICAgY29uc3QgTm9kZTo6RnVuY3Rpb25TdGFjayYgZnVuY3Rpb25T
dGFjayA9IGZ1bmN0aW9uQm9keS0+ZnVuY3Rpb25TdGFjaygpOwogICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgZnVuY3Rpb25TdGFjay5zaXplKCk7ICsraSkgewogICAgICAgICBGdW5jRGVjbE5v
ZGUqIGZ1bmNEZWNsID0gZnVuY3Rpb25TdGFja1tpXS5nZXQoKTsKQEAgLTMwNiw2ICszMDksNyBA
QCBDb2RlR2VuZXJhdG9yOjpDb2RlR2VuZXJhdG9yKEV2YWxOb2RlKiBlCiAgICAgLCBtX2dsb2Jh
bERhdGEoJnNjb3BlQ2hhaW4uZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKS0+Z2xvYmFsRGF0
YSgpKQogICAgICwgbV9sYXN0T3Bjb2RlSUQob3BfZW5kKQogeworICAgIG1fY29kZUJsb2NrLT5u
dW1Db25zdGFudHMgPSBldmFsTm9kZS0+bnVtQ29uc3RhbnRzKCkgKyAzOwogICAgIG1fY29kZUJs
b2NrLT5udW1WYXJzID0gMTsgLy8gQWxsb2NhdGUgc3BhY2UgZm9yICJ0aGlzIgogfQogCkBAIC0z
ODEsNyArMzg1LDcgQEAgUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6bmV3VGVtcG9yYXJ5KAog
ICAgICAgICBtX3RlbXBvcmFyaWVzLnJlbW92ZUxhc3QoKTsKIAogICAgIC8vIEFsbG9jYXRlIG5l
dyByZWdpc3RlciBJRC4KLSAgICBtX3RlbXBvcmFyaWVzLmFwcGVuZChtX3RlbXBvcmFyaWVzLnNp
emUoKSk7CisgICAgbV90ZW1wb3Jhcmllcy5hcHBlbmQobV90ZW1wb3Jhcmllcy5zaXplKCkgKyBt
X2NvZGVCbG9jay0+bnVtQ29uc3RhbnRzKTsKICAgICBtX2NvZGVCbG9jay0+bnVtVGVtcG9yYXJp
ZXMgPSBtYXg8aW50PihtX2NvZGVCbG9jay0+bnVtVGVtcG9yYXJpZXMsIG1fdGVtcG9yYXJpZXMu
c2l6ZSgpKTsKICAgICByZXR1cm4gJm1fdGVtcG9yYXJpZXMubGFzdCgpOwogfQpAQCAtNTIwLDEz
ICs1MjQsMjUgQEAgdW5zaWduZWQgQ29kZUdlbmVyYXRvcjo6YWRkQ29uc3RhbnQoY29ucwogICAg
IHJldHVybiByZXN1bHQuZmlyc3QtPnNlY29uZDsKIH0KIAotdW5zaWduZWQgQ29kZUdlbmVyYXRv
cjo6YWRkQ29uc3RhbnQoSlNWYWx1ZSogdikKK1JlZ2lzdGVySUQqIENvZGVHZW5lcmF0b3I6OmFk
ZENvbnN0YW50KEpTVmFsdWUqIHYpCiB7Ci0gICAgcGFpcjxKU1ZhbHVlTWFwOjppdGVyYXRvciwg
Ym9vbD4gcmVzdWx0ID0gbV9qc1ZhbHVlTWFwLmFkZCh2LCBtX2NvZGVCbG9jay0+cmVnaXN0ZXJz
LnNpemUoKSk7Ci0gICAgaWYgKHJlc3VsdC5zZWNvbmQpIC8vIG5ldyBlbnRyeQotICAgICAgICBt
X2NvZGVCbG9jay0+cmVnaXN0ZXJzLmFwcGVuZCh2KTsKKyAgICBwYWlyPEpTVmFsdWVNYXA6Oml0
ZXJhdG9yLCBib29sPiByZXN1bHQgPSBtX2pzVmFsdWVNYXAuYWRkKHYsIG1fY29kZUJsb2NrLT5j
b25zdGFudHMuc2l6ZSgpKTsKKyAgICBpZiAocmVzdWx0LnNlY29uZCkgeworICAgICAgICBBU1NF
UlQobV9jb2RlQmxvY2stPmNvbnN0YW50cy5zaXplKCkgPD0gKHVuc2lnbmVkKSBtX2NvZGVCbG9j
ay0+bnVtQ29uc3RhbnRzKTsKKyAgICAgICAgbV9jb25zdGFudHMuYXBwZW5kKG1fY29kZUJsb2Nr
LT5jb25zdGFudHMuc2l6ZSgpKTsKKyAgICAgICAgbV9jb25zdGFudHMubGFzdCgpLm1ha2VDb25z
dGFudCgpOworICAgICAgICBtX2NvZGVCbG9jay0+Y29uc3RhbnRzLmFwcGVuZCh2KTsKKyAgICAg
ICAgcmV0dXJuICZtX2NvbnN0YW50cy5sYXN0KCk7CisgICAgfQogCi0gICAgcmV0dXJuIHJlc3Vs
dC5maXJzdC0+c2Vjb25kOworICAgIHJldHVybiAmbV9jb25zdGFudHNbcmVzdWx0LmZpcnN0LT5z
ZWNvbmRdOworfQorCit1bnNpZ25lZCBDb2RlR2VuZXJhdG9yOjphZGRVbmV4cGVjdGVkQ29uc3Rh
bnQoSlNWYWx1ZSogdikKK3sKKyAgICBpbnQgaW5kZXggPSBtX2NvZGVCbG9jay0+cmVnZXhwcy5z
aXplKCk7CisgICAgbV9jb2RlQmxvY2stPnVuZXhwZWN0ZWRDb25zdGFudHMuYXBwZW5kKHYpOwor
ICAgIHJldHVybiBpbmRleDsKIH0KIAogdW5zaWduZWQgQ29kZUdlbmVyYXRvcjo6YWRkUmVnRXhw
KFJlZ0V4cCogcikKQEAgLTU5MywyNSArNjA5LDI3IEBAIFJlZ2lzdGVySUQqIENvZGVHZW5lcmF0
b3I6OmVtaXRCaW5hcnlPcCgKIAogUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6ZW1pdExvYWQo
UmVnaXN0ZXJJRCogZHN0LCBib29sIGIpCiB7Ci0gICAgZW1pdE9wY29kZShvcF9sb2FkKTsKLSAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKLSAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQoYWRkQ29uc3RhbnQoanNCb29sZWFuKGIpKSk7Ci0gICAgcmV0dXJuIGRzdDsKKyAg
ICByZXR1cm4gZW1pdExvYWQoZHN0LCBqc0Jvb2xlYW4oYikpOwogfQogCiBSZWdpc3RlcklEKiBD
b2RlR2VuZXJhdG9yOjplbWl0TG9hZChSZWdpc3RlcklEKiBkc3QsIGRvdWJsZSBkKQogewotICAg
IGVtaXRPcGNvZGUob3BfbG9hZCk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5k
ZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGFkZENvbnN0YW50KGpzTnVtYmVyKGds
b2JhbEV4ZWMoKSwgZCkpKTsKLSAgICByZXR1cm4gZHN0OworICAgIHJldHVybiBlbWl0TG9hZChk
c3QsIGpzTnVtYmVyKGdsb2JhbEV4ZWMoKSwgZCkpOwogfQogCiBSZWdpc3RlcklEKiBDb2RlR2Vu
ZXJhdG9yOjplbWl0TG9hZChSZWdpc3RlcklEKiBkc3QsIEpTVmFsdWUqIHYpCiB7Ci0gICAgZW1p
dE9wY29kZShvcF9sb2FkKTsKKyAgICBSZWdpc3RlcklEKiBjb25zdGFudElEID0gYWRkQ29uc3Rh
bnQodik7CisgICAgaWYgKGRzdCkKKyAgICAgICAgcmV0dXJuIGVtaXRNb3ZlKGRzdCwgY29uc3Rh
bnRJRCk7CisgICAgcmV0dXJuIGNvbnN0YW50SUQ7Cit9CisKK1JlZ2lzdGVySUQqIENvZGVHZW5l
cmF0b3I6OmVtaXRVbmV4cGVjdGVkTG9hZChSZWdpc3RlcklEKiBkc3QsIGJvb2wgYikKK3sKKyAg
ICBlbWl0T3Bjb2RlKG9wX3VuZXhwZWN0ZWRfbG9hZCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKGRzdC0+aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGFkZENvbnN0YW50
KHYpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYWRkVW5leHBlY3RlZENvbnN0YW50KGpz
Qm9vbGVhbihiKSkpOwogICAgIHJldHVybiBkc3Q7CiB9CiAKQEAgLTExMzIsNyArMTE1MCw3IEBA
IFJlZ2lzdGVySUQqIENvZGVHZW5lcmF0b3I6OmVtaXROZXdFcnJvcigKICAgICBlbWl0T3Bjb2Rl
KG9wX25ld19lcnJvcik7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgoKSk7
CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHN0YXRpY19jYXN0PGludD4odHlwZSkpOwotICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRDb25zdGFudChtZXNzYWdlKSk7CisgICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKGFkZFVuZXhwZWN0ZWRDb25zdGFudChtZXNzYWdlKSk7CiAgICAgcmV0
dXJuIGRzdDsKIH0KIApJbmRleDogVk0vQ29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZN
L0NvZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gMzU1NTYpCisrKyBWTS9Db2RlR2VuZXJhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzMCw2ICsyMzAsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAg
ICAgUmVnaXN0ZXJJRCogZW1pdExvYWQoUmVnaXN0ZXJJRCogZHN0LCBib29sKTsKICAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdExvYWQoUmVnaXN0ZXJJRCogZHN0LCBkb3VibGUpOwogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0TG9hZChSZWdpc3RlcklEKiBkc3QsIEpTVmFsdWUqKTsKKyAgICAgICAg
UmVnaXN0ZXJJRCogZW1pdFVuZXhwZWN0ZWRMb2FkKFJlZ2lzdGVySUQqIGRzdCwgYm9vbCk7CiAK
ICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdE51bGxhcnlPcChPcGNvZGVJRCwgUmVnaXN0ZXJJRCog
ZHN0KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFVuYXJ5T3AoT3Bjb2RlSUQsIFJlZ2lzdGVy
SUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjKTsKQEAgLTM3NSw3ICszNzYsOCBAQCBuYW1lc3BhY2Ug
S0pTIHsKICAgICAgICAgdW5zaWduZWQgYWRkQ29uc3RhbnQoRnVuY0RlY2xOb2RlKik7CiAgICAg
ICAgIHVuc2lnbmVkIGFkZENvbnN0YW50KEZ1bmNFeHByTm9kZSopOwogICAgICAgICB1bnNpZ25l
ZCBhZGRDb25zdGFudChjb25zdCBJZGVudGlmaWVyJik7Ci0gICAgICAgIHVuc2lnbmVkIGFkZENv
bnN0YW50KEpTVmFsdWUqKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogYWRkQ29uc3RhbnQoSlNWYWx1
ZSopOworICAgICAgICB1bnNpZ25lZCBhZGRVbmV4cGVjdGVkQ29uc3RhbnQoSlNWYWx1ZSopOwog
ICAgICAgICB1bnNpZ25lZCBhZGRSZWdFeHAoUmVnRXhwKiByKTsKIAogICAgICAgICBWZWN0b3I8
SW5zdHJ1Y3Rpb24+JiBpbnN0cnVjdGlvbnMoKSB7IHJldHVybiBtX2NvZGVCbG9jay0+aW5zdHJ1
Y3Rpb25zOyB9CkBAIC0zOTYsNiArMzk4LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIEhh
c2hTZXQ8UmVmUHRyPFVTdHJpbmc6OlJlcD4sIElkZW50aWZpZXJSZXBIYXNoPiBtX2Z1bmN0aW9u
czsKICAgICAgICAgUmVnaXN0ZXJJRCBtX3RoaXNSZWdpc3RlcjsKICAgICAgICAgU2VnbWVudGVk
VmVjdG9yPFJlZ2lzdGVySUQsIDUxMj4gbV9sb2NhbHM7CisgICAgICAgIFNlZ21lbnRlZFZlY3Rv
cjxSZWdpc3RlcklELCA1MTI+IG1fY29uc3RhbnRzOwogICAgICAgICBTZWdtZW50ZWRWZWN0b3I8
UmVnaXN0ZXJJRCwgNTEyPiBtX3RlbXBvcmFyaWVzOwogICAgICAgICBTZWdtZW50ZWRWZWN0b3I8
TGFiZWxJRCwgNTEyPiBtX2xhYmVsczsKICAgICAgICAgaW50IG1fZmluYWxseURlcHRoOwpJbmRl
eDogVk0vTWFjaGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vTWFjaGluZS5jcHAJKHJldmlzaW9u
IDM1NTU2KQorKysgVk0vTWFjaGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcg
QEAKICNpbmNsdWRlICJvcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiU2FtcGxpbmdUb29sLmgiCiAj
aW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KIAogI2lmIEhBVkUoU1lTX1RJ
TUVfSCkKICNpbmNsdWRlIDxzeXMvdGltZS5oPgpAQCAtMzc5LDcgKzM4MCw3IEBAIEFMV0FZU19J
TkxJTkUgdm9pZCBNYWNoaW5lOjppbml0aWFsaXplQ2EKIEFMV0FZU19JTkxJTkUgUmVnaXN0ZXIq
IHNsaWRlUmVnaXN0ZXJXaW5kb3dGb3JDYWxsKEV4ZWNTdGF0ZSogZXhlYywgQ29kZUJsb2NrKiBu
ZXdDb2RlQmxvY2ssIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlLCBSZWdpc3RlciogcmVnaXN0
ZXJCYXNlLCBSZWdpc3RlciogciwgaW50IGFyZ3YsIGludCBhcmdjLCBKU1ZhbHVlKiYgZXhjZXB0
aW9uVmFsdWUpCiB7CiAgICAgc2l6ZV90IHJlZ2lzdGVyT2Zmc2V0ID0gYXJndiArIG5ld0NvZGVC
bG9jay0+bnVtTG9jYWxzOwotICAgIHNpemVfdCBzaXplID0gciAtIHJlZ2lzdGVyQmFzZSArIHJl
Z2lzdGVyT2Zmc2V0ICsgbmV3Q29kZUJsb2NrLT5udW1UZW1wb3JhcmllczsKKyAgICBzaXplX3Qg
c2l6ZSA9IHIgLSByZWdpc3RlckJhc2UgKyByZWdpc3Rlck9mZnNldCArIG5ld0NvZGVCbG9jay0+
bnVtQ29uc3RhbnRzICsgbmV3Q29kZUJsb2NrLT5udW1UZW1wb3JhcmllczsKIAogICAgIGlmIChh
cmdjID09IG5ld0NvZGVCbG9jay0+bnVtUGFyYW1ldGVycykgeyAvLyBjb3JyZWN0IG51bWJlciBv
ZiBhcmd1bWVudHMKICAgICAgICAgaWYgKCFyZWdpc3RlckZpbGUtPmdyb3coc2l6ZSkpIHsKQEAg
LTQxOSw2ICs0MjAsOCBAQCBBTFdBWVNfSU5MSU5FIFJlZ2lzdGVyKiBzbGlkZVJlZ2lzdGVyV2lu
CiAgICAgZm9yIChSZWdpc3RlciogaXQgPSByIC0gbmV3Q29kZUJsb2NrLT5udW1WYXJzOyBpdCAh
PSByOyArK2l0KQogICAgICAgICAoKml0KSA9IGpzVW5kZWZpbmVkKCk7CiAKKyAgICBtZW1jcHko
ciwgbmV3Q29kZUJsb2NrLT5jb25zdGFudHMuZGF0YSgpLCBuZXdDb2RlQmxvY2stPmNvbnN0YW50
cy5zaXplKCkgKiBzaXplb2YoUmVnaXN0ZXIpKTsKKwogICAgIHJldHVybiByOwogfQogCkBAIC01
ODMsNyArNTg2LDcgQEAgYm9vbCBNYWNoaW5lOjppc09wY29kZShPcGNvZGUgb3Bjb2RlKQogI2Vu
ZGlmCiB9CiAKLU5FVkVSX0lOTElORSBib29sIE1hY2hpbmU6OnVud2luZENhbGxGcmFtZShFeGVj
U3RhdGUqIGV4ZWMsIEpTVmFsdWUqIGV4Y2VwdGlvblZhbHVlLCBjb25zdCBJbnN0cnVjdGlvbiom
IHZQQywgQ29kZUJsb2NrKiYgY29kZUJsb2NrLCBSZWdpc3RlciomIGssIFNjb3BlQ2hhaW5Ob2Rl
KiYgc2NvcGVDaGFpbiwgUmVnaXN0ZXIqJiByKQorTkVWRVJfSU5MSU5FIGJvb2wgTWFjaGluZTo6
dW53aW5kQ2FsbEZyYW1lKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSogZXhjZXB0aW9uVmFsdWUs
IGNvbnN0IEluc3RydWN0aW9uKiYgdlBDLCBDb2RlQmxvY2sqJiBjb2RlQmxvY2ssIFNjb3BlQ2hh
aW5Ob2RlKiYgc2NvcGVDaGFpbiwgUmVnaXN0ZXIqJiByKQogewogICAgIENvZGVCbG9jayogb2xk
Q29kZUJsb2NrID0gY29kZUJsb2NrOwogICAgIFJlZ2lzdGVyKiBjYWxsRnJhbWUgPSByIC0gb2xk
Q29kZUJsb2NrLT5udW1Mb2NhbHMgLSBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemU7
CkBAIC02MTYsNyArNjE5LDYgQEAgTkVWRVJfSU5MSU5FIGJvb2wgTWFjaGluZTo6dW53aW5kQ2Fs
bEZyYQogICAgIGlmICghY29kZUJsb2NrKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBr
ID0gY29kZUJsb2NrLT5yZWdpc3RlcnMuZGF0YSgpOwogICAgIHNjb3BlQ2hhaW4gPSBjYWxsRnJh
bWVbUmVnaXN0ZXJGaWxlOjpDYWxsZXJTY29wZUNoYWluXS5zY29wZUNoYWluKCk7CiAgICAgciA9
IGNhbGxGcmFtZVtSZWdpc3RlckZpbGU6OkNhbGxlclJlZ2lzdGVyc10ucigpOwogICAgIGV4ZWMt
Pm1fY2FsbEZyYW1lID0gciAtIG9sZENvZGVCbG9jay0+bnVtTG9jYWxzIC0gUmVnaXN0ZXJGaWxl
OjpDYWxsRnJhbWVIZWFkZXJTaXplOwpAQCAtNjI1LDcgKzYyNyw3IEBAIE5FVkVSX0lOTElORSBi
b29sIE1hY2hpbmU6OnVud2luZENhbGxGcmEKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotTkVWRVJf
SU5MSU5FIEluc3RydWN0aW9uKiBNYWNoaW5lOjp0aHJvd0V4Y2VwdGlvbihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUqJiBleGNlcHRpb25WYWx1ZSwgY29uc3QgSW5zdHJ1Y3Rpb24qIHZQQywgQ29k
ZUJsb2NrKiYgY29kZUJsb2NrLCBSZWdpc3RlciomIGssIFNjb3BlQ2hhaW5Ob2RlKiYgc2NvcGVD
aGFpbiwgUmVnaXN0ZXIqJiByLCBib29sIGV4cGxpY2l0VGhyb3cpCitORVZFUl9JTkxJTkUgSW5z
dHJ1Y3Rpb24qIE1hY2hpbmU6OnRocm93RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1
ZSomIGV4Y2VwdGlvblZhbHVlLCBjb25zdCBJbnN0cnVjdGlvbiogdlBDLCBDb2RlQmxvY2sqJiBj
b2RlQmxvY2ssIFNjb3BlQ2hhaW5Ob2RlKiYgc2NvcGVDaGFpbiwgUmVnaXN0ZXIqJiByLCBib29s
IGV4cGxpY2l0VGhyb3cpCiB7CiAgICAgLy8gU2V0IHVwIHRoZSBleGNlcHRpb24gb2JqZWN0CiAK
QEAgLTY1OSw3ICs2NjEsNyBAQCBORVZFUl9JTkxJTkUgSW5zdHJ1Y3Rpb24qIE1hY2hpbmU6OnRo
cm93CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChleGNlcHRp
b24tPmlzV2F0Y2hkb2dFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgICAgIHdoaWxlICh1bndp
bmRDYWxsRnJhbWUoZXhlYywgZXhjZXB0aW9uVmFsdWUsIHZQQywgY29kZUJsb2NrLCBrLCBzY29w
ZUNoYWluLCByKSkgeworICAgICAgICAgICAgICAgIHdoaWxlICh1bndpbmRDYWxsRnJhbWUoZXhl
YywgZXhjZXB0aW9uVmFsdWUsIHZQQywgY29kZUJsb2NrLCBzY29wZUNoYWluLCByKSkgewogICAg
ICAgICAgICAgICAgICAgICAvLyBEb24ndCBuZWVkIGhhbmRsZXIgY2hlY2tzIG9yIGFueXRoaW5n
LCB3ZSBqdXN0IHdhbnQgdG8gdW5yb2xsIGFsbCB0aGUgSlMgY2FsbGZyYW1lcyBwb3NzaWJsZS4K
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC02NzgsNyAr
NjgwLDcgQEAgTkVWRVJfSU5MSU5FIEluc3RydWN0aW9uKiBNYWNoaW5lOjp0aHJvdwogICAgIElu
c3RydWN0aW9uKiBoYW5kbGVyVlBDOwogCiAgICAgd2hpbGUgKCFjb2RlQmxvY2stPmdldEhhbmRs
ZXJGb3JWUEModlBDLCBoYW5kbGVyVlBDLCBzY29wZURlcHRoKSkgewotICAgICAgICBpZiAoIXVu
d2luZENhbGxGcmFtZShleGVjLCBleGNlcHRpb25WYWx1ZSwgdlBDLCBjb2RlQmxvY2ssIGssIHNj
b3BlQ2hhaW4sIHIpKQorICAgICAgICBpZiAoIXVud2luZENhbGxGcmFtZShleGVjLCBleGNlcHRp
b25WYWx1ZSwgdlBDLCBjb2RlQmxvY2ssIHNjb3BlQ2hhaW4sIHIpKQogICAgICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQogCkBAIC03MDQsNyArNzA2LDcgQEAgSlNWYWx1ZSogTWFjaGluZTo6ZXhl
Y3V0ZShQcm9ncmFtTm9kZSogcAogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gJnByb2dyYW1O
b2RlLT5ieXRlQ29kZShzY29wZUNoYWluKTsKIAogICAgIHNpemVfdCBvbGRTaXplID0gbV9yZWdp
c3RlckZpbGUuc2l6ZSgpOwotICAgIHNpemVfdCBuZXdTaXplID0gb2xkU2l6ZSArIFJlZ2lzdGVy
RmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIGNvZGVCbG9jay0+bnVtVmFycyArIGNvZGVCbG9j
ay0+bnVtVGVtcG9yYXJpZXM7CisgICAgc2l6ZV90IG5ld1NpemUgPSBvbGRTaXplICsgUmVnaXN0
ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplICsgY29kZUJsb2NrLT5udW1WYXJzICsgY29kZUJs
b2NrLT5udW1Db25zdGFudHMgKyBjb2RlQmxvY2stPm51bVRlbXBvcmFyaWVzOwogICAgIGlmICgh
bV9yZWdpc3RlckZpbGUuZ3JvdyhuZXdTaXplKSkgewogICAgICAgICAqZXhjZXB0aW9uID0gY3Jl
YXRlU3RhY2tPdmVyZmxvd0Vycm9yKGV4ZWMpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTcyMSw2
ICs3MjMsNyBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpleGVjdXRlKFByb2dyYW1Ob2RlKiBwCiAKICAg
ICBSZWdpc3RlciogciA9IGNhbGxGcmFtZSArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVy
U2l6ZSArIGNvZGVCbG9jay0+bnVtVmFyczsKICAgICByW2NvZGVCbG9jay0+dGhpc1JlZ2lzdGVy
XSA9IHRoaXNPYmo7CisgICAgbWVtY3B5KHIsIGNvZGVCbG9jay0+Y29uc3RhbnRzLmRhdGEoKSwg
Y29kZUJsb2NrLT5jb25zdGFudHMuc2l6ZSgpICogc2l6ZW9mKFJlZ2lzdGVyKSk7CiAKICAgICBp
ZiAoY29kZUJsb2NrLT5uZWVkc0Z1bGxTY29wZUNoYWluKQogICAgICAgICBzY29wZUNoYWluID0g
c2NvcGVDaGFpbi0+Y29weSgpOwpAQCAtODM5LDcgKzg0Miw3IEBAIEpTVmFsdWUqIE1hY2hpbmU6
OmV4ZWN1dGUoRXZhbE5vZGUqIGV2YWwKICAgICAgICAgdmFyaWFibGVPYmplY3QtPnB1dChleGVj
LCAoKml0KS0+bV9pZGVudCwgKCppdCktPm1ha2VGdW5jdGlvbihleGVjLCBzY29wZUNoYWluKSk7
CiAKICAgICBzaXplX3Qgb2xkU2l6ZSA9IG1fcmVnaXN0ZXJGaWxlLnNpemUoKTsKLSAgICBzaXpl
X3QgbmV3U2l6ZSA9IHJlZ2lzdGVyT2Zmc2V0ICsgY29kZUJsb2NrLT5udW1WYXJzICsgY29kZUJs
b2NrLT5udW1UZW1wb3JhcmllcyArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsK
KyAgICBzaXplX3QgbmV3U2l6ZSA9IHJlZ2lzdGVyT2Zmc2V0ICsgY29kZUJsb2NrLT5udW1WYXJz
ICsgY29kZUJsb2NrLT5udW1Db25zdGFudHMgKyBjb2RlQmxvY2stPm51bVRlbXBvcmFyaWVzICsg
UmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplOwogICAgIGlmICghbV9yZWdpc3RlckZp
bGUuZ3JvdyhuZXdTaXplKSkgewogICAgICAgICAqZXhjZXB0aW9uID0gY3JlYXRlU3RhY2tPdmVy
Zmxvd0Vycm9yKGV4ZWMpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTg1Miw2ICs4NTUsNyBAQCBK
U1ZhbHVlKiBNYWNoaW5lOjpleGVjdXRlKEV2YWxOb2RlKiBldmFsCiAKICAgICBSZWdpc3Rlciog
ciA9IGNhbGxGcmFtZSArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIGNvZGVC
bG9jay0+bnVtVmFyczsKICAgICByW2NvZGVCbG9jay0+dGhpc1JlZ2lzdGVyXSA9IHRoaXNPYmo7
CisgICAgbWVtY3B5KHIsIGNvZGVCbG9jay0+Y29uc3RhbnRzLmRhdGEoKSwgY29kZUJsb2NrLT5j
b25zdGFudHMuc2l6ZSgpICogc2l6ZW9mKFJlZ2lzdGVyKSk7CiAKICAgICBpZiAoY29kZUJsb2Nr
LT5uZWVkc0Z1bGxTY29wZUNoYWluKQogICAgICAgICBzY29wZUNoYWluID0gc2NvcGVDaGFpbi0+
Y29weSgpOwpAQCAtMTAzNCw3ICsxMDM4LDcgQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4
ZWN1dGUoRXhlY3V0aQogCiAgICAgUmVnaXN0ZXIqIHJlZ2lzdGVyQmFzZSA9IHJlZ2lzdGVyRmls
ZS0+YmFzZSgpOwogICAgIEluc3RydWN0aW9uKiB2UEMgPSBjb2RlQmxvY2stPmluc3RydWN0aW9u
cy5iZWdpbigpOwotICAgIFJlZ2lzdGVyKiBrID0gY29kZUJsb2NrLT5yZWdpc3RlcnMuZGF0YSgp
OworICAgIC8vIFJlZ2lzdGVyKiBrID0gY29kZUJsb2NrLT5jb25zdGFudHMuZGF0YSgpOwogICAg
IFByb2ZpbGVyKiogZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlID0gUHJvZmlsZXI6OmVuYWJsZWRQ
cm9maWxlclJlZmVyZW5jZSgpOwogICAgIHVuc2lnbmVkIHRpY2tDb3VudCA9IG1fdGlja3NVbnRp
bE5leHRUaW1lb3V0Q2hlY2sgKyAxOwogCkBAIC0xMDc2LDE4ICsxMDgwLDYgQEAgSlNWYWx1ZSog
TWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQogICAgIHN3aXRjaCAodlBDLT51Lm9wY29k
ZSkKICNlbmRpZgogICAgIHsKLSAgICBCRUdJTl9PUENPREUob3BfbG9hZCkgewotICAgICAgICAv
KiBsb2FkIGRzdChyKSBzcmMoaykKLQotICAgICAgICAgICBDb3BpZXMgY29uc3RhbnQgc3JjIHRv
IHJlZ2lzdGVyIGRzdC4KLSAgICAgICAgKi8KLSAgICAgICAgaW50IGRzdCA9ICgrK3ZQQyktPnUu
b3BlcmFuZDsKLSAgICAgICAgaW50IHNyYyA9ICgrK3ZQQyktPnUub3BlcmFuZDsKLSAgICAgICAg
cltkc3RdID0ga1tzcmNdOwotCi0gICAgICAgICsrdlBDOwotICAgICAgICBORVhUX09QQ09ERTsK
LSAgICB9CiAgICAgQkVHSU5fT1BDT0RFKG9wX25ld19vYmplY3QpIHsKICAgICAgICAgLyogbmV3
X29iamVjdCBkc3QocikKIApAQCAtMjM3NSw3ICsyMzY3LDYgQEAgSlNWYWx1ZSogTWFjaGluZTo6
cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQogCiAgICAgICAgICAgICBjb2RlQmxvY2sgPSBuZXdDb2Rl
QmxvY2s7CiAgICAgICAgICAgICBzZXRTY29wZUNoYWluKGV4ZWMsIHNjb3BlQ2hhaW4sIHNjb3Bl
Q2hhaW5Gb3JDYWxsKGV4ZWMsIGZ1bmN0aW9uQm9keU5vZGUsIGNvZGVCbG9jaywgY2FsbERhdGFT
Y29wZUNoYWluLCByKSk7Ci0gICAgICAgICAgICBrID0gY29kZUJsb2NrLT5yZWdpc3RlcnMuZGF0
YSgpOwogICAgICAgICAgICAgdlBDID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMuYmVnaW4oKTsK
IAogI2lmIERVTVBfT1BDT0RFX1NUQVRTCkBAIC0yNDQ2LDcgKzI0MzcsNiBAQCBKU1ZhbHVlKiBN
YWNoaW5lOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRpCiAgICAgICAgIGlmICghY29kZUJsb2NrKQog
ICAgICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogCi0gICAgICAgIGsgPSBjb2RlQmxvY2st
PnJlZ2lzdGVycy5kYXRhKCk7CiAgICAgICAgIHZQQyA9IGNhbGxGcmFtZVtSZWdpc3RlckZpbGU6
OlJldHVyblZQQ10udlBDKCk7CiAgICAgICAgIHNldFNjb3BlQ2hhaW4oZXhlYywgc2NvcGVDaGFp
biwgY2FsbEZyYW1lW1JlZ2lzdGVyRmlsZTo6Q2FsbGVyU2NvcGVDaGFpbl0uc2NvcGVDaGFpbigp
KTsKICAgICAgICAgciA9IGNhbGxGcmFtZVtSZWdpc3RlckZpbGU6OkNhbGxlclJlZ2lzdGVyc10u
cigpOwpAQCAtMjUwOCw3ICsyNDk4LDYgQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1
dGUoRXhlY3V0aQogCiAgICAgICAgICAgICBjb2RlQmxvY2sgPSBuZXdDb2RlQmxvY2s7CiAgICAg
ICAgICAgICBzZXRTY29wZUNoYWluKGV4ZWMsIHNjb3BlQ2hhaW4sIHNjb3BlQ2hhaW5Gb3JDYWxs
KGV4ZWMsIGZ1bmN0aW9uQm9keU5vZGUsIGNvZGVCbG9jaywgY2FsbERhdGFTY29wZUNoYWluLCBy
KSk7Ci0gICAgICAgICAgICBrID0gY29kZUJsb2NrLT5yZWdpc3RlcnMuZGF0YSgpOwogICAgICAg
ICAgICAgdlBDID0gY29kZUJsb2NrLT5pbnN0cnVjdGlvbnMuYmVnaW4oKTsKIAogICAgICAgICAg
ICAgTkVYVF9PUENPREU7CkBAIC0yNjcxLDcgKzI2NjAsNyBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpw
cml2YXRlRXhlY3V0ZShFeGVjdXRpCiAgICAgICAgIGludCBleCA9ICgrK3ZQQyktPnUub3BlcmFu
ZDsKICAgICAgICAgZXhjZXB0aW9uVmFsdWUgPSByW2V4XS5qc1ZhbHVlKGV4ZWMpOwogCi0gICAg
ICAgIGhhbmRsZXJWUEMgPSB0aHJvd0V4Y2VwdGlvbihleGVjLCBleGNlcHRpb25WYWx1ZSwgdlBD
LCBjb2RlQmxvY2ssIGssIHNjb3BlQ2hhaW4sIHIsIHRydWUpOworICAgICAgICBoYW5kbGVyVlBD
ID0gdGhyb3dFeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uVmFsdWUsIHZQQywgY29kZUJsb2NrLCBz
Y29wZUNoYWluLCByLCB0cnVlKTsKICAgICAgICAgaWYgKCFoYW5kbGVyVlBDKSB7CiAgICAgICAg
ICAgICAqZXhjZXB0aW9uID0gZXhjZXB0aW9uVmFsdWU7CiAgICAgICAgICAgICByZXR1cm4ganNO
dWxsKCk7CkBAIC0yNjg5LDYgKzI2NzgsMTggQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4
ZWN1dGUoRXhlY3V0aQogICAgICAgICB2UEMgPSBoYW5kbGVyVlBDOwogICAgICAgICBORVhUX09Q
Q09ERTsKICAgICB9CisgICAgQkVHSU5fT1BDT0RFKG9wX3VuZXhwZWN0ZWRfbG9hZCkgeworICAg
ICAgICAvKiB1bmV4cGVjdGVkX2xvYWQgbG9hZCBkc3Qocikgc3JjKGspCisKKyAgICAgICAgICAg
Q29waWVzIGNvbnN0YW50IHNyYyB0byByZWdpc3RlciBkc3QuCisgICAgICAgICovCisgICAgICAg
IGludCBkc3QgPSAoKyt2UEMpLT51Lm9wZXJhbmQ7CisgICAgICAgIGludCBzcmMgPSAoKyt2UEMp
LT51Lm9wZXJhbmQ7CisgICAgICAgIHJbZHN0XSA9IGNvZGVCbG9jay0+dW5leHBlY3RlZENvbnN0
YW50c1tzcmNdOworCisgICAgICAgICsrdlBDOworICAgICAgICBORVhUX09QQ09ERTsKKyAgICB9
CiAgICAgQkVHSU5fT1BDT0RFKG9wX25ld19lcnJvcikgewogICAgICAgICAvKiBuZXdfZXJyb3Ig
ZHN0KHIpIHR5cGUobikgbWVzc2FnZShrKQogCkBAIC0yNzAxLDcgKzI3MDIsNyBAQCBKU1ZhbHVl
KiBNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRpCiAgICAgICAgIGludCB0eXBlID0gKCsr
dlBDKS0+dS5vcGVyYW5kOwogICAgICAgICBpbnQgbWVzc2FnZSA9ICgrK3ZQQyktPnUub3BlcmFu
ZDsKIAotICAgICAgICByW2RzdF0gPSBFcnJvcjo6Y3JlYXRlKGV4ZWMsIChFcnJvclR5cGUpdHlw
ZSwga1ttZXNzYWdlXS5qc1ZhbHVlKGV4ZWMpLT50b1N0cmluZyhleGVjKSwgY29kZUJsb2NrLT5s
aW5lTnVtYmVyRm9yVlBDKHZQQyksIGNvZGVCbG9jay0+b3duZXJOb2RlLT5zb3VyY2VJZCgpLCBj
b2RlQmxvY2stPm93bmVyTm9kZS0+c291cmNlVVJMKCkpOworICAgICAgICByW2RzdF0gPSBFcnJv
cjo6Y3JlYXRlKGV4ZWMsIChFcnJvclR5cGUpdHlwZSwgY29kZUJsb2NrLT51bmV4cGVjdGVkQ29u
c3RhbnRzW21lc3NhZ2VdLT50b1N0cmluZyhleGVjKSwgY29kZUJsb2NrLT5saW5lTnVtYmVyRm9y
VlBDKHZQQyksIGNvZGVCbG9jay0+b3duZXJOb2RlLT5zb3VyY2VJZCgpLCBjb2RlQmxvY2stPm93
bmVyTm9kZS0+c291cmNlVVJMKCkpOwogCiAgICAgICAgICsrdlBDOwogICAgICAgICBORVhUX09Q
Q09ERTsKQEAgLTI4MTEsNyArMjgxMiw3IEBAIEpTVmFsdWUqIE1hY2hpbmU6OnByaXZhdGVFeGVj
dXRlKEV4ZWN1dGkKICAgICAgICAgICAgIC8vIGNhbm5vdCBmYXRob20gaWYgd2UgZG9uJ3QgYXNz
aWduIHRvIHRoZSBleGNlcHRpb25WYWx1ZSBiZWZvcmUgYnJhbmNoaW5nKQogICAgICAgICAgICAg
ZXhjZXB0aW9uVmFsdWUgPSBjcmVhdGVJbnRlcnJ1cHRlZEV4ZWN1dGlvbkV4Y2VwdGlvbihleGVj
KTsKICAgICAgICAgfQotICAgICAgICBoYW5kbGVyVlBDID0gdGhyb3dFeGNlcHRpb24oZXhlYywg
ZXhjZXB0aW9uVmFsdWUsIHZQQywgY29kZUJsb2NrLCBrLCBzY29wZUNoYWluLCByLCBmYWxzZSk7
CisgICAgICAgIGhhbmRsZXJWUEMgPSB0aHJvd0V4Y2VwdGlvbihleGVjLCBleGNlcHRpb25WYWx1
ZSwgdlBDLCBjb2RlQmxvY2ssIHNjb3BlQ2hhaW4sIHIsIGZhbHNlKTsKICAgICAgICAgaWYgKCFo
YW5kbGVyVlBDKSB7CiAgICAgICAgICAgICAqZXhjZXB0aW9uID0gZXhjZXB0aW9uVmFsdWU7CiAg
ICAgICAgICAgICByZXR1cm4ganNOdWxsKCk7CkluZGV4OiBWTS9NYWNoaW5lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVk0vTWFjaGluZS5oCShyZXZpc2lvbiAzNTU1NikKKysrIFZNL01hY2hpbmUuaAkod29y
a2luZyBjb3B5KQpAQCAtMTM0LDggKzEzNCw4IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICBB
TFdBWVNfSU5MSU5FIHZvaWQgc2V0U2NvcGVDaGFpbihFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hh
aW5Ob2RlKiYsIFNjb3BlQ2hhaW5Ob2RlKik7CiAgICAgICAgIE5FVkVSX0lOTElORSB2b2lkIGRl
YnVnKEV4ZWNTdGF0ZSosIGNvbnN0IEluc3RydWN0aW9uKiwgY29uc3QgQ29kZUJsb2NrKiwgU2Nv
cGVDaGFpbk5vZGUqLCBSZWdpc3RlciopOwogCi0gICAgICAgIE5FVkVSX0lOTElORSBib29sIHVu
d2luZENhbGxGcmFtZShFeGVjU3RhdGUqLCBKU1ZhbHVlKiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwg
Q29kZUJsb2NrKiYsIFJlZ2lzdGVyKiYsIFNjb3BlQ2hhaW5Ob2RlKiYsIFJlZ2lzdGVyKiYpOwot
ICAgICAgICBORVZFUl9JTkxJTkUgSW5zdHJ1Y3Rpb24qIHRocm93RXhjZXB0aW9uKEV4ZWNTdGF0
ZSosIEpTVmFsdWUqJiwgY29uc3QgSW5zdHJ1Y3Rpb24qLCBDb2RlQmxvY2sqJiwgUmVnaXN0ZXIq
JiwgU2NvcGVDaGFpbk5vZGUqJiwgUmVnaXN0ZXIqJiwgYm9vbCk7CisgICAgICAgIE5FVkVSX0lO
TElORSBib29sIHVud2luZENhbGxGcmFtZShFeGVjU3RhdGUqLCBKU1ZhbHVlKiwgY29uc3QgSW5z
dHJ1Y3Rpb24qJiwgQ29kZUJsb2NrKiYsIFNjb3BlQ2hhaW5Ob2RlKiYsIFJlZ2lzdGVyKiYpOwor
ICAgICAgICBORVZFUl9JTkxJTkUgSW5zdHJ1Y3Rpb24qIHRocm93RXhjZXB0aW9uKEV4ZWNTdGF0
ZSosIEpTVmFsdWUqJiwgY29uc3QgSW5zdHJ1Y3Rpb24qLCBDb2RlQmxvY2sqJiwgU2NvcGVDaGFp
bk5vZGUqJiwgUmVnaXN0ZXIqJiwgYm9vbCk7CiAKICAgICAgICAgUmVnaXN0ZXIqIGNhbGxGcmFt
ZShFeGVjU3RhdGUqLCBKU0Z1bmN0aW9uKikgY29uc3Q7CiAKSW5kZXg6IFZNL09wY29kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFZNL09wY29kZS5oCShyZXZpc2lvbiAzNTU1NikKKysrIFZNL09wY29kZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBLSlMgewogI2RlZmlu
ZSBEVU1QX09QQ09ERV9TVEFUUyAwCiAKICAgICAjZGVmaW5lIEZPUl9FQUNIX09QQ09ERV9JRCht
YWNybykgXAotICAgICAgICBtYWNybyhvcF9sb2FkKSBcCisgICAgICAgIG1hY3JvKG9wX3VuZXhw
ZWN0ZWRfbG9hZCkgXAogICAgICAgICBtYWNybyhvcF9uZXdfb2JqZWN0KSBcCiAgICAgICAgIG1h
Y3JvKG9wX25ld19hcnJheSkgXAogICAgICAgICBtYWNybyhvcF9uZXdfcmVnZXhwKSBcCkluZGV4
OiBWTS9SZWdpc3RlcklELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vUmVnaXN0ZXJJRC5oCShyZXZpc2lv
biAzNTU1NikKKysrIFZNL1JlZ2lzdGVySUQuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzks
NyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFJlZ2lzdGVySUQoKQog
ICAgICAgICAgICAgOiBtX3JlZkNvdW50KDApCisgICAgICAgICAgICAsIG1faXNDb25zdGFudChm
YWxzZSkKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICAsIG1fZGlkU2V0SW5kZXgoZmFsc2Up
CiAjZW5kaWYKQEAgLTQ4LDYgKzQ5LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIGV4cGxp
Y2l0IFJlZ2lzdGVySUQoaW50IGluZGV4KQogICAgICAgICAgICAgOiBtX3JlZkNvdW50KDApCiAg
ICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCisgICAgICAgICAgICAsIG1faXNDb25zdGFudChm
YWxzZSkKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICAsIG1fZGlkU2V0SW5kZXgodHJ1ZSkK
ICNlbmRpZgpAQCAtNjMsNiArNjUsMTEgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgICAgICBt
X2luZGV4ID0gaW5kZXg7CiAgICAgICAgIH0KIAorICAgICAgICB2b2lkIG1ha2VDb25zdGFudCgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG1faXNDb25zdGFudCA9IHRydWU7CisgICAgICAgIH0K
KwogICAgICAgICBpbnQgaW5kZXgoKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBBU1NF
UlQobV9kaWRTZXRJbmRleCk7CkBAIC03MSw3ICs3OCw3IEBAIG5hbWVzcGFjZSBLSlMgewogCiAg
ICAgICAgIGJvb2wgaXNUZW1wb3JhcnkoKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
bV9pbmRleCA+PSAwOworICAgICAgICAgICAgcmV0dXJuIG1faW5kZXggPj0gMCAmJiAhbV9pc0Nv
bnN0YW50OwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCByZWYoKQpAQCAtOTQsNiArMTAxLDcg
QEAgbmFtZXNwYWNlIEtKUyB7CiAKICAgICAgICAgaW50IG1fcmVmQ291bnQ7CiAgICAgICAgIGlu
dCBtX2luZGV4OworICAgICAgICBib29sIG1faXNDb25zdGFudDsKICNpZm5kZWYgTkRFQlVHCiAg
ICAgICAgIGJvb2wgbV9kaWRTZXRJbmRleDsKICNlbmRpZgpJbmRleDoga2pzL05vZGVJbmZvLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0ga2pzL05vZGVJbmZvLmgJKHJldmlzaW9uIDM1NTU2KQorKysga2pzL05v
ZGVJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBOb2RlRmVhdHVyZUluZm8gewogICAg
ICAgICBUIG1fbm9kZTsKICAgICAgICAgRmVhdHVyZUluZm8gbV9mZWF0dXJlSW5mbzsKKyAgICAg
ICAgaW50IG1fbnVtQ29uc3RhbnRzOwogICAgIH07CiAgICAgCiAgICAgdHlwZWRlZiBOb2RlRmVh
dHVyZUluZm88RnVuY0V4cHJOb2RlKj4gRnVuY0V4cHJOb2RlSW5mbzsKQEAgLTUxLDYgKzUyLDcg
QEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIFBhcnNlclJlZkNvdW50ZWREYXRhPERlY2xhcmF0
aW9uU3RhY2tzOjpWYXJTdGFjaz4qIG1fdmFyRGVjbGFyYXRpb25zOwogICAgICAgICBQYXJzZXJS
ZWZDb3VudGVkRGF0YTxEZWNsYXJhdGlvblN0YWNrczo6RnVuY3Rpb25TdGFjaz4qIG1fZnVuY0Rl
Y2xhcmF0aW9uczsKICAgICAgICAgRmVhdHVyZUluZm8gbV9mZWF0dXJlSW5mbzsKKyAgICAgICAg
aW50IG1fbnVtQ29uc3RhbnRzOwogICAgIH07CiAgICAgCiAgICAgdHlwZWRlZiBOb2RlRGVjbGFy
YXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPiBTdGF0ZW1lbnROb2RlSW5mbzsKSW5kZXg6IGtqcy9Q
YXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9QYXJzZXIuY3BwCShyZXZpc2lvbiAzNTU1NikK
KysrIGtqcy9QYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQg
UGFyc2VyOjpwYXJzZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnMKIH0KIAogdm9pZCBQYXJzZXI6OmRp
ZEZpbmlzaFBhcnNpbmcoU291cmNlRWxlbWVudHMqIHNvdXJjZUVsZW1lbnRzLCBQYXJzZXJSZWZD
b3VudGVkRGF0YTxEZWNsYXJhdGlvblN0YWNrczo6VmFyU3RhY2s+KiB2YXJTdGFjaywgCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZXJSZWZDb3VudGVkRGF0YTxEZWNsYXJhdGlv
blN0YWNrczo6RnVuY3Rpb25TdGFjaz4qIGZ1bmNTdGFjaywgYm9vbCB1c2VzRXZhbCwgYm9vbCBu
ZWVkc0Nsb3N1cmUsIGludCBsYXN0TGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBhcnNlclJlZkNvdW50ZWREYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrPiog
ZnVuY1N0YWNrLCBib29sIHVzZXNFdmFsLCBib29sIG5lZWRzQ2xvc3VyZSwgaW50IGxhc3RMaW5l
LCBpbnQgbnVtQ29uc3RhbnRzKQogewogICAgIG1fc291cmNlRWxlbWVudHMgPSBzb3VyY2VFbGVt
ZW50czsKICAgICBtX3ZhckRlY2xhcmF0aW9ucyA9IHZhclN0YWNrOwpAQCAtOTEsNiArOTEsNyBA
QCB2b2lkIFBhcnNlcjo6ZGlkRmluaXNoUGFyc2luZyhTb3VyY2VFbGVtCiAgICAgbV91c2VzRXZh
bCA9IHVzZXNFdmFsOwogICAgIG1fbmVlZHNDbG9zdXJlID0gbmVlZHNDbG9zdXJlOwogICAgIG1f
bGFzdExpbmUgPSBsYXN0TGluZTsKKyAgICBtX251bUNvbnN0YW50cyA9IG51bUNvbnN0YW50czsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgS0pTCkluZGV4OiBranMvUGFyc2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0ga2pzL1BhcnNlci5oCShyZXZpc2lvbiAzNTU1NikKKysrIGtqcy9QYXJzZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgaW50IHNv
dXJjZUlkKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VJZDsgfQogCiAgICAgICAgIHZvaWQgZGlk
RmluaXNoUGFyc2luZyhTb3VyY2VFbGVtZW50cyosIFBhcnNlclJlZkNvdW50ZWREYXRhPERlY2xh
cmF0aW9uU3RhY2tzOjpWYXJTdGFjaz4qLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBhcnNlclJlZkNvdW50ZWREYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrPios
IGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlLCBpbnQgbGFzdExpbmUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VyUmVmQ291bnRlZERhdGE8RGVjbGFyYXRpb25T
dGFja3M6OkZ1bmN0aW9uU3RhY2s+KiwgYm9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUs
IGludCBsYXN0TGluZSwgaW50IG51bUNvbnN0YW50cyk7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBmcmllbmQgY2xhc3MgSlNHbG9iYWxEYXRhOwpAQCAtNzMsNiArNzMsNyBAQCBuYW1lc3BhY2Ug
S0pTIHsKICAgICAgICAgYm9vbCBtX3VzZXNFdmFsOwogICAgICAgICBib29sIG1fbmVlZHNDbG9z
dXJlOwogICAgICAgICBpbnQgbV9sYXN0TGluZTsKKyAgICAgICAgaW50IG1fbnVtQ29uc3RhbnRz
OwogICAgIH07CiAKICAgICB0ZW1wbGF0ZSA8Y2xhc3MgUGFyc2VkTm9kZT4KQEAgLTkyLDcgKzkz
LDggQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fZnVuY0RlY2xhcmF0aW9ucyA/ICZtX2Z1bmNEZWNsYXJhdGlv
bnMtPmRhdGEgOiAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzb3VyY2VQcm92aWRlci5nZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV91c2VzRXZhbCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9uZWVkc0Nsb3N1cmUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX25l
ZWRzQ2xvc3VyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9udW1Db25zdGFudHMpOwogICAgICAgICBtX3ZhckRlY2xhcmF0aW9ucyA9IDA7
CiAgICAgICAgIG1fZnVuY0RlY2xhcmF0aW9ucyA9IDA7CiAgICAgICAgIG1fc291cmNlVVJMID0g
VVN0cmluZygpOwpJbmRleDoga2pzL2dyYW1tYXIueQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvZ3JhbW1h
ci55CShyZXZpc2lvbiAzNTU1NikKKysrIGtqcy9ncmFtbWFyLnkJKHdvcmtpbmcgY29weSkKQEAg
LTk1LDE3ICs5NSwxOCBAQCBzdGF0aWMgRXhwcmVzc2lvbk5vZGUqIGNvbWJpbmVWYXJJbml0aWFs
CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBOb2RlRGVjbGFyYXRpb25JbmZvPFQ+IGNyZWF0ZU5v
ZGVEZWNsYXJhdGlvbkluZm8oVCBub2RlLCBQYXJzZXJSZWZDb3VudGVkRGF0YTxEZWNsYXJhdGlv
blN0YWNrczo6VmFyU3RhY2s+KiB2YXJEZWNscywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcnNlclJlZkNv
dW50ZWREYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrPiogZnVuY0RlY2xzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGZWF0dXJlSW5mbyBpbmZvKSAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmVhdHVyZUlu
Zm8gaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bUNvbnN0YW50cykgCiB7CiAgICAgQVNTRVJU
KChpbmZvICYgfihFdmFsRmVhdHVyZSB8IENsb3N1cmVGZWF0dXJlIHwgQXNzaWduRmVhdHVyZSkp
ID09IDApOwotICAgIE5vZGVEZWNsYXJhdGlvbkluZm88VD4gcmVzdWx0ID0ge25vZGUsIHZhckRl
Y2xzLCBmdW5jRGVjbHMsIGluZm99OworICAgIE5vZGVEZWNsYXJhdGlvbkluZm88VD4gcmVzdWx0
ID0ge25vZGUsIHZhckRlY2xzLCBmdW5jRGVjbHMsIGluZm8sIG51bUNvbnN0YW50c307CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IE5vZGVGZWF0dXJlSW5m
bzxUPiBjcmVhdGVOb2RlRmVhdHVyZUluZm8oVCBub2RlLCBGZWF0dXJlSW5mbyBpbmZvKSAKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUPiBOb2RlRmVhdHVyZUluZm88VD4gY3JlYXRlTm9kZUZlYXR1cmVJ
bmZvKFQgbm9kZSwgRmVhdHVyZUluZm8gaW5mbywgaW50IG51bUNvbnN0YW50cykKIHsKICAgICBB
U1NFUlQoKGluZm8gJiB+KEV2YWxGZWF0dXJlIHwgQ2xvc3VyZUZlYXR1cmUgfCBBc3NpZ25GZWF0
dXJlKSkgPT0gMCk7Ci0gICAgTm9kZUZlYXR1cmVJbmZvPFQ+IHJlc3VsdCA9IHtub2RlLCBpbmZv
fTsKKyAgICBOb2RlRmVhdHVyZUluZm88VD4gcmVzdWx0ID0ge25vZGUsIGluZm8sIG51bUNvbnN0
YW50c307CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMjc5LDExICsyODAsMTEgQEAgc3Rh
dGljIGlubGluZSB2b2lkIGFwcGVuZFRvVmFyRGVjbGFyYXRpbwogJSUKIAogTGl0ZXJhbDoKLSAg
ICBOVUxMVE9LRU4gICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IE51bGxOb2RlKEdMT0JBTF9EQVRBKSwgMCk7
IH0KLSAgfCBUUlVFVE9LRU4gICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEJvb2xlYW5Ob2RlKEdMT0JBTF9E
QVRBLCB0cnVlKSwgMCk7IH0KLSAgfCBGQUxTRVRPS0VOICAgICAgICAgICAgICAgICAgICAgICAg
ICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEJvb2xl
YW5Ob2RlKEdMT0JBTF9EQVRBLCBmYWxzZSksIDApOyB9Ci0gIHwgTlVNQkVSICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG1ha2VOdW1iZXJOb2RlKEdMT0JBTF9EQVRBLCAkMSksIDApOyB9Ci0gIHwgU1RSSU5H
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5m
bzxFeHByZXNzaW9uTm9kZSo+KG5ldyBTdHJpbmdOb2RlKEdMT0JBTF9EQVRBLCAkMSksIDApOyB9
CisgICAgTlVMTFRPS0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBOdWxsTm9kZShHTE9CQUxfREFUQSks
IDAsIDEpOyB9CisgIHwgVFJVRVRPS0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBCb29sZWFuTm9kZShH
TE9CQUxfREFUQSwgdHJ1ZSksIDAsIDEpOyB9CisgIHwgRkFMU0VUT0tFTiAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG5ldyBCb29sZWFuTm9kZShHTE9CQUxfREFUQSwgZmFsc2UpLCAwLCAxKTsgfQorICB8IE5VTUJF
UiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihtYWtlTnVtYmVyTm9kZShHTE9CQUxfREFUQSwgJDEpLCAwLCAx
KTsgfQorICB8IFNUUklORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgU3RyaW5nTm9kZShHTE9CQUxf
REFUQSwgJDEpLCAwLCAxKTsgfQogICB8ICcvJyAvKiByZWdleHAgKi8gICAgICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGV4ZXIm
IGwgPSAqTEVYRVI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICghbC5zY2FuUmVnRXhwKCkpCkBAIC0yOTEsNyArMjkyLDcgQEAgTGl0ZXJhbDoKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnRXhwTm9kZSogbm9kZSA9
IG5ldyBSZWdFeHBOb2RlKEdMT0JBTF9EQVRBLCBsLnBhdHRlcm4oKSwgbC5mbGFncygpKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNpemUgPSBsLnBh
dHRlcm4oKS5zaXplKCkgKyAyOyAvLyArIDIgZm9yIHRoZSB0d28gLydzCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9k
ZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5maXJzdF9jb2x1bW4gKyBzaXplLCBAMS5maXJzdF9jb2x1
bW4gKyBzaXplKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2Rl
RmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAwLCAwKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgRElWRVFVQUwgLyogcmVnZXhwIHdpdGgg
Lz0gKi8gICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMZXhlciYgbCA9ICpMRVhFUjsKQEAgLTMwMCw1OCArMzAxLDYyIEBAIExpdGVyYWw6CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ0V4cE5vZGUqIG5vZGUg
PSBuZXcgUmVnRXhwTm9kZShHTE9CQUxfREFUQSwgIj0iICsgbC5wYXR0ZXJuKCksIGwuZmxhZ3Mo
KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzaXpl
ID0gbC5wYXR0ZXJuKCkuc2l6ZSgpICsgMjsgLy8gKyAyIGZvciB0aGUgdHdvIC8ncwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FU
SU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEuZmlyc3RfY29sdW1uICsgc2l6ZSwgQDEuZmly
c3RfY29sdW1uICsgc2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwg
MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3Jl
YXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgMCwgMCk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogOwogCiBQcm9wZXJ0eToKLSAgICBJ
REVOVCAnOicgQXNzaWdubWVudEV4cHIgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1
cmVJbmZvPFByb3BlcnR5Tm9kZSo+KG5ldyBQcm9wZXJ0eU5vZGUoR0xPQkFMX0RBVEEsICokMSwg
JDMubV9ub2RlLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50KSwgJDMubV9mZWF0dXJlSW5mbyk7IH0K
LSAgfCBTVFJJTkcgJzonIEFzc2lnbm1lbnRFeHByICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9k
ZUZlYXR1cmVJbmZvPFByb3BlcnR5Tm9kZSo+KG5ldyBQcm9wZXJ0eU5vZGUoR0xPQkFMX0RBVEEs
IElkZW50aWZpZXIoR0xPQkFMX0RBVEEsICokMSksICQzLm1fbm9kZSwgUHJvcGVydHlOb2RlOjpD
b25zdGFudCksICQzLm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgTlVNQkVSICc6JyBBc3NpZ25tZW50
RXhwciAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxQcm9wZXJ0eU5vZGUq
PihuZXcgUHJvcGVydHlOb2RlKEdMT0JBTF9EQVRBLCBJZGVudGlmaWVyKEdMT0JBTF9EQVRBLCBV
U3RyaW5nOjpmcm9tKCQxKSksICQzLm1fbm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCksICQz
Lm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgSURFTlQgSURFTlQgJygnICcpJyBPUEVOQlJBQ0UgRnVu
Y3Rpb25Cb2R5IENMT1NFQlJBQ0UgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxQcm9w
ZXJ0eU5vZGUqPihtYWtlR2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eU5vZGUoZ2xvYmFsUHRyLCAqJDEs
ICokMiwgMCwgJDYsIExFWEVSLT5zb3VyY2VSYW5nZSgkNSwgJDcpKSwgQ2xvc3VyZUZlYXR1cmUp
OyBEQkcoJDYsIEA1LCBANyk7IGlmICghJCQubV9ub2RlKSBZWUFCT1JUOyB9CisgICAgSURFTlQg
JzonIEFzc2lnbm1lbnRFeHByICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5m
bzxQcm9wZXJ0eU5vZGUqPihuZXcgUHJvcGVydHlOb2RlKEdMT0JBTF9EQVRBLCAqJDEsICQzLm1f
bm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCksICQzLm1fZmVhdHVyZUluZm8sICQzLm1fbnVt
Q29uc3RhbnRzKTsgfQorICB8IFNUUklORyAnOicgQXNzaWdubWVudEV4cHIgICAgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88UHJvcGVydHlOb2RlKj4obmV3IFByb3BlcnR5Tm9k
ZShHTE9CQUxfREFUQSwgSWRlbnRpZmllcihHTE9CQUxfREFUQSwgKiQxKSwgJDMubV9ub2RlLCBQ
cm9wZXJ0eU5vZGU6OkNvbnN0YW50KSwgJDMubV9mZWF0dXJlSW5mbywgJDMubV9udW1Db25zdGFu
dHMpOyB9CisgIHwgTlVNQkVSICc6JyBBc3NpZ25tZW50RXhwciAgICAgICAgICAgeyAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbzxQcm9wZXJ0eU5vZGUqPihuZXcgUHJvcGVydHlOb2RlKEdMT0JB
TF9EQVRBLCBJZGVudGlmaWVyKEdMT0JBTF9EQVRBLCBVU3RyaW5nOjpmcm9tKCQxKSksICQzLm1f
bm9kZSwgUHJvcGVydHlOb2RlOjpDb25zdGFudCksICQzLm1fZmVhdHVyZUluZm8sICQzLm1fbnVt
Q29uc3RhbnRzKTsgfQorICB8IElERU5UIElERU5UICcoJyAnKScgT1BFTkJSQUNFIEZ1bmN0aW9u
Qm9keSBDTE9TRUJSQUNFICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88UHJvcGVydHlO
b2RlKj4obWFrZUdldHRlck9yU2V0dGVyUHJvcGVydHlOb2RlKGdsb2JhbFB0ciwgKiQxLCAqJDIs
IDAsICQ2LCBMRVhFUi0+c291cmNlUmFuZ2UoJDUsICQ3KSksIENsb3N1cmVGZWF0dXJlLCAwKTsg
REJHKCQ2LCBANSwgQDcpOyBpZiAoISQkLm1fbm9kZSkgWVlBQk9SVDsgfQogICB8IElERU5UIElE
RU5UICcoJyBGb3JtYWxQYXJhbWV0ZXJMaXN0ICcpJyBPUEVOQlJBQ0UgRnVuY3Rpb25Cb2R5IENM
T1NFQlJBQ0UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZUZlYXR1cmVJbmZvPFByb3BlcnR5Tm9kZSo+KG1ha2VHZXR0ZXJPclNldHRlclBy
b3BlcnR5Tm9kZShnbG9iYWxQdHIsICokMSwgKiQyLCAkNC5oZWFkLCAkNywgTEVYRVItPnNvdXJj
ZVJhbmdlKCQ2LCAkOCkpLCBDbG9zdXJlRmVhdHVyZSk7IERCRygkNywgQDYsIEA4KTsgaWYgKCEk
JC5tX25vZGUpIFlZQUJPUlQ7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPFByb3BlcnR5Tm9kZSo+KG1ha2VHZXR0
ZXJPclNldHRlclByb3BlcnR5Tm9kZShnbG9iYWxQdHIsICokMSwgKiQyLCAkNC5oZWFkLCAkNywg
TEVYRVItPnNvdXJjZVJhbmdlKCQ2LCAkOCkpLCBDbG9zdXJlRmVhdHVyZSwgMCk7IERCRygkNywg
QDYsIEA4KTsgaWYgKCEkJC5tX25vZGUpIFlZQUJPUlQ7IH0KIDsKIAogUHJvcGVydHlMaXN0Ogog
ICAgIFByb3BlcnR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQubV9ub2RlLmhlYWQg
PSBuZXcgUHJvcGVydHlMaXN0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlKTsgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX25vZGUudGFpbCA9ICQkLm1f
bm9kZS5oZWFkOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQu
bV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVhdHVyZUluZm87IH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAkMS5tX2ZlYXR1cmVJbmZv
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25z
dGFudHMgPSAkMS5tX251bUNvbnN0YW50czsgfQogICB8IFByb3BlcnR5TGlzdCAnLCcgUHJvcGVy
dHkgICAgICAgICAgIHsgJCQubV9ub2RlLmhlYWQgPSAkMS5tX25vZGUuaGVhZDsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbm9kZS50YWlsID0gbmV3IFBy
b3BlcnR5TGlzdE5vZGUoR0xPQkFMX0RBVEEsICQzLm1fbm9kZSwgJDEubV9ub2RlLnRhaWwpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlSW5m
byA9ICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvOyAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVh
dHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMgPSAkMS5tX251bUNvbnN0YW50cyArICQz
Lm1fbnVtQ29uc3RhbnRzOyB9CiA7CiAKIFByaW1hcnlFeHByOgogICAgIFByaW1hcnlFeHByTm9C
cmFjZQotICB8IE9QRU5CUkFDRSBDTE9TRUJSQUNFICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IE9iamVj
dExpdGVyYWxOb2RlKEdMT0JBTF9EQVRBKSwgMCk7IH0KLSAgfCBPUEVOQlJBQ0UgUHJvcGVydHlM
aXN0IENMT1NFQlJBQ0UgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5m
bzxFeHByZXNzaW9uTm9kZSo+KG5ldyBPYmplY3RMaXRlcmFsTm9kZShHTE9CQUxfREFUQSwgJDIu
bV9ub2RlLmhlYWQpLCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQorICB8IE9QRU5CUkFDRSBDTE9TRUJS
QUNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJ
bmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IE9iamVjdExpdGVyYWxOb2RlKEdMT0JBTF9EQVRBKSwg
MCwgMCk7IH0KKyAgfCBPUEVOQlJBQ0UgUHJvcGVydHlMaXN0IENMT1NFQlJBQ0UgICAgICAgICAg
ICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBP
YmplY3RMaXRlcmFsTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLmhlYWQpLCAkMi5tX2ZlYXR1
cmVJbmZvLCAkMi5tX251bUNvbnN0YW50cyk7IH0KICAgLyogYWxsb3cgZXh0cmEgY29tbWEsIHNl
ZSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTM5ICovCi0gIHwgT1BF
TkJSQUNFIFByb3BlcnR5TGlzdCAnLCcgQ0xPU0VCUkFDRSAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgT2JqZWN0TGl0ZXJhbE5vZGUo
R0xPQkFMX0RBVEEsICQyLm1fbm9kZS5oZWFkKSwgJDIubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBP
UEVOQlJBQ0UgUHJvcGVydHlMaXN0ICcsJyBDTE9TRUJSQUNFICAgICAgICAgICAgeyAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBPYmplY3RMaXRlcmFsTm9k
ZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLmhlYWQpLCAkMi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251
bUNvbnN0YW50cyk7IH0KIDsKIAogUHJpbWFyeUV4cHJOb0JyYWNlOgotICAgIFRISVNUT0tFTiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgVGhpc05vZGUoR0xPQkFMX0RBVEEpLCAwKTsgfQorICAgIFRISVNU
T0tFTiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihuZXcgVGhpc05vZGUoR0xPQkFMX0RBVEEpLCAwLCAwKTsgfQog
ICB8IExpdGVyYWwKICAgfCBBcnJheUxpdGVyYWwKLSAgfCBJREVOVCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2Rl
Kj4obmV3IFJlc29sdmVOb2RlKEdMT0JBTF9EQVRBLCAqJDEsIEAxLmZpcnN0X2NvbHVtbiksIDAp
OyB9CisgIHwgSURFTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0
ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBSZXNvbHZlTm9kZShHTE9CQUxf
REFUQSwgKiQxLCBAMS5maXJzdF9jb2x1bW4pLCAwLCAwKTsgfQogICB8ICcoJyBFeHByICcpJyAg
ICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSAkMjsgfQogOwogCiBBcnJheUxpdGVyYWw6Ci0g
ICAgJ1snIEVsaXNpb25PcHQgJ10nICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBBcnJheU5vZGUoR0xPQkFMX0RBVEEsICQy
KSwgMCk7IH0KLSAgfCAnWycgRWxlbWVudExpc3QgJ10nICAgICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEFycmF5Tm9kZShHTE9C
QUxfREFUQSwgJDIubV9ub2RlLmhlYWQpLCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQotICB8ICdbJyBF
bGVtZW50TGlzdCAnLCcgRWxpc2lvbk9wdCAnXScgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQXJyYXlOb2RlKEdMT0JBTF9EQVRBLCAkNCwgJDIubV9u
b2RlLmhlYWQpLCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICdbJyBFbGlzaW9uT3B0ICddJyAg
ICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihuZXcgQXJyYXlOb2RlKEdMT0JBTF9EQVRBLCAkMiksIDAsICQyID8gMSA6IDApOyB9Cisg
IHwgJ1snIEVsZW1lbnRMaXN0ICddJyAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBBcnJheU5vZGUoR0xPQkFMX0RBVEEsICQy
Lm1fbm9kZS5oZWFkKSwgJDIubV9mZWF0dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMpOyB9Cisg
IHwgJ1snIEVsZW1lbnRMaXN0ICcsJyBFbGlzaW9uT3B0ICddJyAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBBcnJheU5vZGUoR0xPQkFMX0RBVEEsICQ0
LCAkMi5tX25vZGUuaGVhZCksICQyLm1fZmVhdHVyZUluZm8sICQ0ID8gJDIubV9udW1Db25zdGFu
dHMgKyAxIDogJDIubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIEVsZW1lbnRMaXN0OgogICAgIEVs
aXNpb25PcHQgQXNzaWdubWVudEV4cHIgICAgICAgICAgIHsgJCQubV9ub2RlLmhlYWQgPSBuZXcg
RWxlbWVudE5vZGUoR0xPQkFMX0RBVEEsICQxLCAkMi5tX25vZGUpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9ub2RlLnRhaWwgPSAkJC5tX25vZGUuaGVh
ZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVy
ZUluZm8gPSAkMi5tX2ZlYXR1cmVJbmZvOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDIubV9mZWF0dXJlSW5mbzsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0g
JDIubV9udW1Db25zdGFudHM7IH0KICAgfCBFbGVtZW50TGlzdCAnLCcgRWxpc2lvbk9wdCBBc3Np
Z25tZW50RXhwcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQu
bV9ub2RlLmhlYWQgPSAkMS5tX25vZGUuaGVhZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICQkLm1fbm9kZS50YWlsID0gbmV3IEVsZW1lbnROb2RlKEdMT0JBTF9E
QVRBLCAkMS5tX25vZGUudGFpbCwgJDMsICQ0Lm1fbm9kZSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDEubV9mZWF0dXJlSW5m
byB8ICQ0Lm1fZmVhdHVyZUluZm87IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAkMS5tX2ZlYXR1cmVJbmZvIHwgJDQubV9mZWF0
dXJlSW5mbzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1f
bnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHMgKyAkNC5tX251bUNvbnN0YW50czsgfQog
OwogCiBFbGlzaW9uT3B0OgpAQCAtMzY2LDE4ICszNzEsMTggQEAgRWxpc2lvbjoKIAogTWVtYmVy
RXhwcjoKICAgICBQcmltYXJ5RXhwcgotICB8IEZ1bmN0aW9uRXhwciAgICAgICAgICAgICAgICAg
ICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPigkMS5t
X25vZGUsICQxLm1fZmVhdHVyZUluZm8pOyB9CisgIHwgRnVuY3Rpb25FeHByICAgICAgICAgICAg
ICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KCQxLm1fbm9kZSwgJDEubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMpOyB9CiAgIHwg
TWVtYmVyRXhwciAnWycgRXhwciAnXScgICAgICAgICAgICAgeyBCcmFja2V0QWNjZXNzb3JOb2Rl
KiBub2RlID0gbmV3IEJyYWNrZXRBY2Nlc3Nvck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5v
ZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEA0Lmxhc3RfY29sdW1uKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1f
ZmVhdHVyZUluZm8pOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9m
ZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9u
dW1Db25zdGFudHMpOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiAgIHwgTWVtYmVyRXhwciAnLicgSURFTlQgICAgICAgICAgICAgICAgeyBEb3RBY2Nlc3Nvck5v
ZGUqIG5vZGUgPSBuZXcgRG90QWNjZXNzb3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICok
Myk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBU
SU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAzLmxh
c3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQk
ID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0
dXJlSW5mbyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9
IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQxLm1fZmVhdHVy
ZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgIHwgTkVXIE1lbWJlckV4cHIgQXJndW1lbnRzICAgICAgICAgICAgeyBO
ZXdFeHByTm9kZSogbm9kZSA9IG5ldyBOZXdFeHByTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2Rl
LCAkMy5tX25vZGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAyLmxhc3RfY29s
dW1uLCBAMy5sYXN0X2NvbHVtbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUs
ICQyLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obm9kZSwgJDIubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQy
Lm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KIDsKIApAQCAtMzg1LDE1ICszOTAsMTUgQEAgTWVtYmVy
RXhwck5vQkY6CiAgICAgUHJpbWFyeUV4cHJOb0JyYWNlCiAgIHwgTWVtYmVyRXhwck5vQkYgJ1sn
IEV4cHIgJ10nICAgICAgICAgeyBCcmFja2V0QWNjZXNzb3JOb2RlKiBub2RlID0gbmV3IEJyYWNr
ZXRBY2Nlc3Nvck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2Zl
YXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVt
biwgQDEubGFzdF9jb2x1bW4sIEA0Lmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1f
ZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgTWVtYmVyRXhwck5v
QkYgJy4nIElERU5UICAgICAgICAgICAgeyBEb3RBY2Nlc3Nvck5vZGUqIG5vZGUgPSBuZXcgRG90
QWNjZXNzb3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICokMyk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUs
IEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1
cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJl
SW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQxLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29u
c3RhbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwg
TkVXIE1lbWJlckV4cHIgQXJndW1lbnRzICAgICAgICAgICAgeyBOZXdFeHByTm9kZSogbm9kZSA9
IG5ldyBOZXdFeHByTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCAkMy5tX25vZGUpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0VYQ0VQVElPTl9MT0NB
VElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uLCBAMy5sYXN0X2NvbHVt
bik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0
ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQyLm1fZmVhdHVyZUluZm8g
fCAkMy5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwg
JDIubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRzICsg
JDMubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KIDsKIApAQCAtNDAxLDcgKzQwNiw3IEBAIE5ld0V4cHI6CiAgICAgTWVtYmVyRXhwcgog
ICB8IE5FVyBOZXdFeHByICAgICAgICAgICAgICAgICAgICAgICAgIHsgTmV3RXhwck5vZGUqIG5v
ZGUgPSBuZXcgTmV3RXhwck5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5v
ZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDIubV9mZWF0dXJlSW5mbyk7IAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVh
dHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251
bUNvbnN0YW50cyk7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
IDsKIApAQCAtNDA5LDcgKzQxNCw3IEBAIE5ld0V4cHJOb0JGOgogICAgIE1lbWJlckV4cHJOb0JG
CiAgIHwgTkVXIE5ld0V4cHIgICAgICAgICAgICAgICAgICAgICAgICAgeyBOZXdFeHByTm9kZSog
bm9kZSA9IG5ldyBOZXdFeHByTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04o
bm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2Rl
RmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMi5tX2ZlYXR1cmVJbmZvKTsgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQyLm1fZmVhdHVyZUluZm8sICQyLm1f
bnVtQ29uc3RhbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiA7CiAKQEAgLTQxOCwxMSArNDIzLDExIEBAIENhbGxFeHByOgogICB8IENhbGxFeHByIEFyZ3Vt
ZW50cyAgICAgICAgICAgICAgICAgIHsgJCQgPSBtYWtlRnVuY3Rpb25DYWxsTm9kZShnbG9iYWxQ
dHIsICQxLCAkMiwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1
bW4pOyB9CiAgIHwgQ2FsbEV4cHIgJ1snIEV4cHIgJ10nICAgICAgICAgICAgICAgeyBCcmFja2V0
QWNjZXNzb3JOb2RlKiBub2RlID0gbmV3IEJyYWNrZXRBY2Nlc3Nvck5vZGUoR0xPQkFMX0RBVEEs
ICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9O
X0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEA0Lmxhc3Rf
Y29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0g
Y3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJl
SW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bm9kZSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3Rh
bnRzICsgJDMubV9udW1Db25zdGFudHMpOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgIHwgQ2FsbEV4cHIgJy4nIElERU5UICAgICAgICAgICAgICAgICAgeyBE
b3RBY2Nlc3Nvck5vZGUqIG5vZGUgPSBuZXcgRG90QWNjZXNzb3JOb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsICokMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9j
b2x1bW4sIEAzLmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9k
ZSwgJDEubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9k
ZSwgJDEubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIENhbGxFeHBy
Tm9CRjoKQEAgLTQzMCwyNiArNDM1LDI4IEBAIENhbGxFeHByTm9CRjoKICAgfCBDYWxsRXhwck5v
QkYgQXJndW1lbnRzICAgICAgICAgICAgICB7ICQkID0gbWFrZUZ1bmN0aW9uQ2FsbE5vZGUoZ2xv
YmFsUHRyLCAkMSwgJDIsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAyLmxhc3Rf
Y29sdW1uKTsgfQogICB8IENhbGxFeHByTm9CRiAnWycgRXhwciAnXScgICAgICAgICAgIHsgQnJh
Y2tldEFjY2Vzc29yTm9kZSogbm9kZSA9IG5ldyBCcmFja2V0QWNjZXNzb3JOb2RlKEdMT0JBTF9E
QVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1
cmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0VYQ0VQ
VElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBANC5s
YXN0X2NvbHVtbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQxLm1fZmVh
dHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG5vZGUsICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNv
bnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICB8IENhbGxFeHByTm9CRiAnLicgSURFTlQgICAgICAgICAgICAg
IHsgRG90QWNjZXNzb3JOb2RlKiBub2RlID0gbmV3IERvdEFjY2Vzc29yTm9kZShHTE9CQUxfREFU
QSwgJDEubV9ub2RlLCAqJDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAxLmxh
c3RfY29sdW1uLCBAMy5sYXN0X2NvbHVtbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG5vZGUsICQxLm1fZmVhdHVyZUluZm8pOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bm9kZSwgJDEubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMpOyAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiA7CiAKIEFyZ3VtZW50czoKLSAgICAnKCcg
JyknICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJ
bmZvPEFyZ3VtZW50c05vZGUqPihuZXcgQXJndW1lbnRzTm9kZShHTE9CQUxfREFUQSksIDApOyB9
Ci0gIHwgJygnIEFyZ3VtZW50TGlzdCAnKScgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVGZWF0dXJlSW5mbzxBcmd1bWVudHNOb2RlKj4obmV3IEFyZ3VtZW50c05vZGUoR0xPQkFMX0RB
VEEsICQyLm1fbm9kZS5oZWFkKSwgJDIubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAnKCcgJyknICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEFy
Z3VtZW50c05vZGUqPihuZXcgQXJndW1lbnRzTm9kZShHTE9CQUxfREFUQSksIDAsIDApOyB9Cisg
IHwgJygnIEFyZ3VtZW50TGlzdCAnKScgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxBcmd1bWVudHNOb2RlKj4obmV3IEFyZ3VtZW50c05vZGUoR0xPQkFMX0RBVEEs
ICQyLm1fbm9kZS5oZWFkKSwgJDIubV9mZWF0dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMpOyB9
CiA7CiAKIEFyZ3VtZW50TGlzdDoKICAgICBBc3NpZ25tZW50RXhwciAgICAgICAgICAgICAgICAg
ICAgICB7ICQkLm1fbm9kZS5oZWFkID0gbmV3IEFyZ3VtZW50TGlzdE5vZGUoR0xPQkFMX0RBVEEs
ICQxLm1fbm9kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
JC5tX25vZGUudGFpbCA9ICQkLm1fbm9kZS5oZWFkOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVhdHVyZUluZm87IH0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZUlu
Zm8gPSAkMS5tX2ZlYXR1cmVJbmZvOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJCQubV9udW1Db25zdGFudHMgPSAkMS5tX251bUNvbnN0YW50czsgfQogICB8IEFy
Z3VtZW50TGlzdCAnLCcgQXNzaWdubWVudEV4cHIgICAgIHsgJCQubV9ub2RlLmhlYWQgPSAkMS5t
X25vZGUuaGVhZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQk
Lm1fbm9kZS50YWlsID0gbmV3IEFyZ3VtZW50TGlzdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9k
ZS50YWlsLCAkMy5tX25vZGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJCQubV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJ
bmZvOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Zl
YXR1cmVJbmZvID0gJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm87CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9ICQx
Lm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHM7IH0KIDsKIAogTGVmdEhhbmRTaWRl
RXhwcjoKQEAgLTQ2NCwyOCArNDcxLDI4IEBAIExlZnRIYW5kU2lkZUV4cHJOb0JGOgogCiBQb3N0
Zml4RXhwcjoKICAgICBMZWZ0SGFuZFNpZGVFeHByCi0gIHwgTGVmdEhhbmRTaWRlRXhwciBQTFVT
UExVUyAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG1ha2VQb3N0Zml4Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCBPcFBsdXNQbHVzLCBA
MS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiksICQxLm1fZmVh
dHVyZUluZm8gfCBBc3NpZ25GZWF0dXJlKTsgfQotICB8IExlZnRIYW5kU2lkZUV4cHIgTUlOVVNN
SU5VUyAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
PihtYWtlUG9zdGZpeE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgT3BNaW51c01pbnVzLCBA
MS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiksICQxLm1fZmVh
dHVyZUluZm8gfCBBc3NpZ25GZWF0dXJlKTsgfQorICB8IExlZnRIYW5kU2lkZUV4cHIgUExVU1BM
VVMgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
PihtYWtlUG9zdGZpeE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgT3BQbHVzUGx1cywgQDEu
Zmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pLCAkMS5tX2ZlYXR1
cmVJbmZvIHwgQXNzaWduRmVhdHVyZSwgJDEubV9udW1Db25zdGFudHMpOyB9CisgIHwgTGVmdEhh
bmRTaWRlRXhwciBNSU5VU01JTlVTICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5m
bzxFeHByZXNzaW9uTm9kZSo+KG1ha2VQb3N0Zml4Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCBPcE1pbnVzTWludXMsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAyLmxhc3Rf
Y29sdW1uKSwgJDEubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUsICQxLm1fbnVtQ29uc3Rh
bnRzKTsgfQogOwogCiBQb3N0Zml4RXhwck5vQkY6CiAgICAgTGVmdEhhbmRTaWRlRXhwck5vQkYK
LSAgfCBMZWZ0SGFuZFNpZGVFeHByTm9CRiBQTFVTUExVUyAgICAgICB7ICQkID0gY3JlYXRlTm9k
ZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZVBvc3RmaXhOb2RlKEdMT0JBTF9EQVRB
LCAkMS5tX25vZGUsIE9wUGx1c1BsdXMsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4s
IEAyLmxhc3RfY29sdW1uKSwgJDEubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUpOyB9Ci0g
IHwgTGVmdEhhbmRTaWRlRXhwck5vQkYgTUlOVVNNSU5VUyAgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VQb3N0Zml4Tm9kZShHTE9CQUxfREFUQSwg
JDEubV9ub2RlLCBPcE1pbnVzTWludXMsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4s
IEAyLmxhc3RfY29sdW1uKSwgJDEubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUpOyB9Cisg
IHwgTGVmdEhhbmRTaWRlRXhwck5vQkYgUExVU1BMVVMgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VQb3N0Zml4Tm9kZShHTE9CQUxfREFUQSwg
JDEubV9ub2RlLCBPcFBsdXNQbHVzLCBAMS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBA
Mi5sYXN0X2NvbHVtbiksICQxLm1fZmVhdHVyZUluZm8gfCBBc3NpZ25GZWF0dXJlLCAkMS5tX251
bUNvbnN0YW50cyk7IH0KKyAgfCBMZWZ0SGFuZFNpZGVFeHByTm9CRiBNSU5VU01JTlVTICAgICB7
ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZVBvc3RmaXhO
b2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsIE9wTWludXNNaW51cywgQDEuZmlyc3RfY29sdW1u
LCBAMS5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pLCAkMS5tX2ZlYXR1cmVJbmZvIHwgQXNz
aWduRmVhdHVyZSwgJDEubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIFVuYXJ5RXhwckNvbW1vbjoK
LSAgICBERUxFVEVUT0tFTiBVbmFyeUV4cHIgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9k
ZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZURlbGV0ZU5vZGUoR0xPQkFMX0RBVEEs
ICQyLm1fbm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1
bW4pLCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IFZPSURUT0tFTiBVbmFyeUV4cHIgICAgICAg
ICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihu
ZXcgVm9pZE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSksICQyLm1fZmVhdHVyZUluZm8pOyB9
Ci0gIHwgVFlQRU9GIFVuYXJ5RXhwciAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VUeXBlT2ZOb2RlKEdMT0JBTF9EQVRB
LCAkMi5tX25vZGUpLCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IFBMVVNQTFVTIFVuYXJ5RXhw
ciAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lv
bk5vZGUqPihtYWtlUHJlZml4Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCBPcFBsdXNQbHVz
LCBAMS5maXJzdF9jb2x1bW4sIEAyLmZpcnN0X2NvbHVtbiArIDEsIEAyLmxhc3RfY29sdW1uKSwg
JDIubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUpOyB9Ci0gIHwgQVVUT1BMVVNQTFVTIFVu
YXJ5RXhwciAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG1ha2VQcmVmaXhOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsIE9wUGx1c1Bs
dXMsIEAxLmZpcnN0X2NvbHVtbiwgQDIuZmlyc3RfY29sdW1uICsgMSwgQDIubGFzdF9jb2x1bW4p
LCAkMi5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVhdHVyZSk7IH0KLSAgfCBNSU5VU01JTlVTIFVu
YXJ5RXhwciAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obWFrZVByZWZpeE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgT3BNaW51
c01pbnVzLCBAMS5maXJzdF9jb2x1bW4sIEAyLmZpcnN0X2NvbHVtbiArIDEsIEAyLmxhc3RfY29s
dW1uKSwgJDIubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUpOyB9Ci0gIHwgQVVUT01JTlVT
TUlOVVMgVW5hcnlFeHByICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxF
eHByZXNzaW9uTm9kZSo+KG1ha2VQcmVmaXhOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsIE9w
TWludXNNaW51cywgQDEuZmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4gKyAxLCBAMi5sYXN0
X2NvbHVtbiksICQyLm1fZmVhdHVyZUluZm8gfCBBc3NpZ25GZWF0dXJlKTsgfQotICB8ICcrJyBV
bmFyeUV4cHIgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihuZXcgVW5hcnlQbHVzTm9kZShHTE9CQUxfREFUQSwgJDIubV9u
b2RlKSwgJDIubV9mZWF0dXJlSW5mbyk7IH0KLSAgfCAnLScgVW5hcnlFeHByICAgICAgICAgICAg
ICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bWFrZU5lZ2F0ZU5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSksICQyLm1fZmVhdHVyZUluZm8p
OyB9Ci0gIHwgJ34nIFVuYXJ5RXhwciAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0
ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBCaXR3aXNlTm90Tm9kZShHTE9C
QUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV9mZWF0dXJlSW5mbyk7IH0KLSAgfCAnIScgVW5hcnlF
eHByICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obmV3IExvZ2ljYWxOb3ROb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUp
LCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQorICAgIERFTEVURVRPS0VOIFVuYXJ5RXhwciAgICAgICAg
ICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtl
RGVsZXRlTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAyLmxh
c3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiksICQyLm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29u
c3RhbnRzKTsgfQorICB8IFZPSURUT0tFTiBVbmFyeUV4cHIgICAgICAgICAgICAgICAgIHsgJCQg
PSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgVm9pZE5vZGUoR0xP
QkFMX0RBVEEsICQyLm1fbm9kZSksICQyLm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRz
ICsgMSk7IH0KKyAgfCBUWVBFT0YgVW5hcnlFeHByICAgICAgICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZVR5cGVPZk5vZGUoR0xP
QkFMX0RBVEEsICQyLm1fbm9kZSksICQyLm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRz
KTsgfQorICB8IFBMVVNQTFVTIFVuYXJ5RXhwciAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtlUHJlZml4Tm9kZShHTE9CQUxf
REFUQSwgJDIubV9ub2RlLCBPcFBsdXNQbHVzLCBAMS5maXJzdF9jb2x1bW4sIEAyLmZpcnN0X2Nv
bHVtbiArIDEsIEAyLmxhc3RfY29sdW1uKSwgJDIubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1
cmUsICQyLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IEFVVE9QTFVTUExVUyBVbmFyeUV4cHIgICAg
ICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPiht
YWtlUHJlZml4Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCBPcFBsdXNQbHVzLCBAMS5maXJz
dF9jb2x1bW4sIEAyLmZpcnN0X2NvbHVtbiArIDEsIEAyLmxhc3RfY29sdW1uKSwgJDIubV9mZWF0
dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUsICQyLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IE1JTlVT
TUlOVVMgVW5hcnlFeHByICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihtYWtlUHJlZml4Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2Rl
LCBPcE1pbnVzTWludXMsIEAxLmZpcnN0X2NvbHVtbiwgQDIuZmlyc3RfY29sdW1uICsgMSwgQDIu
bGFzdF9jb2x1bW4pLCAkMi5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVhdHVyZSwgJDIubV9udW1D
b25zdGFudHMpOyB9CisgIHwgQVVUT01JTlVTTUlOVVMgVW5hcnlFeHByICAgICAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VQcmVmaXhOb2Rl
KEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsIE9wTWludXNNaW51cywgQDEuZmlyc3RfY29sdW1uLCBA
Mi5maXJzdF9jb2x1bW4gKyAxLCBAMi5sYXN0X2NvbHVtbiksICQyLm1fZmVhdHVyZUluZm8gfCBB
c3NpZ25GZWF0dXJlLCAkMi5tX251bUNvbnN0YW50cyk7IH0KKyAgfCAnKycgVW5hcnlFeHByICAg
ICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obmV3IFVuYXJ5UGx1c05vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSksICQyLm1f
ZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8ICctJyBVbmFyeUV4cHIgICAg
ICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lv
bk5vZGUqPihtYWtlTmVnYXRlTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV9mZWF0
dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMpOyB9CisgIHwgJ34nIFVuYXJ5RXhwciAgICAgICAg
ICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG5ldyBCaXR3aXNlTm90Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV9mZWF0
dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMpOyB9CisgIHwgJyEnIFVuYXJ5RXhwciAgICAgICAg
ICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG5ldyBMb2dpY2FsTm90Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV9mZWF0
dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMpOyB9CiAKIFVuYXJ5RXhwcjoKICAgICBQb3N0Zml4
RXhwcgpAQCAtNDk5LDIyOCArNTA2LDIyOCBAQCBVbmFyeUV4cHJOb0JGOgogCiBNdWx0aXBsaWNh
dGl2ZUV4cHI6CiAgICAgVW5hcnlFeHByCi0gIHwgTXVsdGlwbGljYXRpdmVFeHByICcqJyBVbmFy
eUV4cHIgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5l
dyBNdWx0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUlu
Zm8pOyB9Ci0gIHwgTXVsdGlwbGljYXRpdmVFeHByICcvJyBVbmFyeUV4cHIgICAgeyAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBEaXZOb2RlKEdMT0JBTF9E
QVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1
cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KLSAgfCBNdWx0aXBs
aWNhdGl2ZUV4cHIgJyUnIFVuYXJ5RXhwciAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obmV3IE1vZE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMu
bV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUlu
Zm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICB8IE11bHRpcGxpY2F0aXZlRXhwciAnKicgVW5h
cnlFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihu
ZXcgTXVsdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1
cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJ
bmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IE11bHRp
cGxpY2F0aXZlRXhwciAnLycgVW5hcnlFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihuZXcgRGl2Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAk
My5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJl
SW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25z
dGFudHMpOyB9CisgIHwgTXVsdGlwbGljYXRpdmVFeHByICclJyBVbmFyeUV4cHIgICAgeyAkJCA9
IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBNb2ROb2RlKEdMT0JB
TF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZl
YXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25z
dGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogTXVsdGlwbGljYXRpdmVFeHByTm9C
RjoKICAgICBVbmFyeUV4cHJOb0JGCiAgIHwgTXVsdGlwbGljYXRpdmVFeHByTm9CRiAnKicgVW5h
cnlFeHByCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBNdWx0Tm9kZShHTE9CQUxf
REFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0
dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5m
bzxFeHByZXNzaW9uTm9kZSo+KG5ldyBNdWx0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAk
My5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJl
SW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25z
dGFudHMpOyB9CiAgIHwgTXVsdGlwbGljYXRpdmVFeHByTm9CRiAnLycgVW5hcnlFeHByCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0
dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBEaXZOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25v
ZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2Zl
YXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25O
b2RlKj4obmV3IERpdk5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5t
X2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2Zl
YXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogICB8
IE11bHRpcGxpY2F0aXZlRXhwck5vQkYgJyUnIFVuYXJ5RXhwcgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVz
c2lvbk5vZGUqPihuZXcgTW9kTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUs
ICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQz
Lm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBNb2RO
b2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAm
IEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEu
bV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogQWRkaXRpdmVFeHBy
OgogICAgIE11bHRpcGxpY2F0aXZlRXhwcgotICB8IEFkZGl0aXZlRXhwciAnKycgTXVsdGlwbGlj
YXRpdmVFeHByIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihu
ZXcgQWRkTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUlu
Zm8pOyB9Ci0gIHwgQWRkaXRpdmVFeHByICctJyBNdWx0aXBsaWNhdGl2ZUV4cHIgeyAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBTdWJOb2RlKEdMT0JBTF9E
QVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1
cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBBZGRpdGl2
ZUV4cHIgJysnIE11bHRpcGxpY2F0aXZlRXhwciB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obmV3IEFkZE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMu
bV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUlu
Zm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3Rh
bnRzKTsgfQorICB8IEFkZGl0aXZlRXhwciAnLScgTXVsdGlwbGljYXRpdmVFeHByIHsgJCQgPSBj
cmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgU3ViTm9kZShHTE9CQUxf
REFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0
dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3Rh
bnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIEFkZGl0aXZlRXhwck5vQkY6CiAgICAg
TXVsdGlwbGljYXRpdmVFeHByTm9CRgogICB8IEFkZGl0aXZlRXhwck5vQkYgJysnIE11bHRpcGxp
Y2F0aXZlRXhwcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQg
PSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQWRkTm9kZShHTE9C
QUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25G
ZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJl
SW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBBZGROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUs
ICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1
cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNv
bnN0YW50cyk7IH0KICAgfCBBZGRpdGl2ZUV4cHJOb0JGICctJyBNdWx0aXBsaWNhdGl2ZUV4cHIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9k
ZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IFN1Yk5vZGUoR0xPQkFMX0RBVEEsICQx
Lm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQx
Lm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVz
c2lvbk5vZGUqPihuZXcgU3ViTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUs
ICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQz
Lm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9
CiA7CiAKIFNoaWZ0RXhwcjoKICAgICBBZGRpdGl2ZUV4cHIKLSAgfCBTaGlmdEV4cHIgTFNISUZU
IEFkZGl0aXZlRXhwciAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obmV3IExlZnRTaGlmdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9u
b2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8g
fCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IFNoaWZ0RXhwciBSU0hJRlQgQWRkaXRpdmVFeHBy
ICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcg
UmlnaHRTaGlmdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2Zl
YXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1
cmVJbmZvKTsgfQotICB8IFNoaWZ0RXhwciBVUlNISUZUIEFkZGl0aXZlRXhwciAgICAgIHsgJCQg
PSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgVW5zaWduZWRSaWdo
dFNoaWZ0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUlu
Zm8pOyB9CisgIHwgU2hpZnRFeHByIExTSElGVCBBZGRpdGl2ZUV4cHIgICAgICAgeyAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMZWZ0U2hpZnROb2RlKEdM
T0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2ln
bkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1D
b25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KKyAgfCBTaGlmdEV4cHIgUlNISUZUIEFk
ZGl0aXZlRXhwciAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25O
b2RlKj4obmV3IFJpZ2h0U2hpZnROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9k
ZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwg
JDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7
IH0KKyAgfCBTaGlmdEV4cHIgVVJTSElGVCBBZGRpdGl2ZUV4cHIgICAgICB7ICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IFVuc2lnbmVkUmlnaHRTaGlmdE5v
ZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYg
QXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5t
X251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBTaGlmdEV4cHJOb0JG
OgogICAgIEFkZGl0aXZlRXhwck5vQkYKLSAgfCBTaGlmdEV4cHJOb0JGIExTSElGVCBBZGRpdGl2
ZUV4cHIgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3
IExlZnRTaGlmdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2Zl
YXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1
cmVJbmZvKTsgfQotICB8IFNoaWZ0RXhwck5vQkYgUlNISUZUIEFkZGl0aXZlRXhwciAgIHsgJCQg
PSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgUmlnaHRTaGlmdE5v
ZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYg
QXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQot
ICB8IFNoaWZ0RXhwck5vQkYgVVJTSElGVCBBZGRpdGl2ZUV4cHIgIHsgJCQgPSBjcmVhdGVOb2Rl
RmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgVW5zaWduZWRSaWdodFNoaWZ0Tm9kZShH
TE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3Np
Z25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgIHwg
U2hpZnRFeHByTm9CRiBMU0hJRlQgQWRkaXRpdmVFeHByICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0
dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMZWZ0U2hpZnROb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAk
MS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAk
My5tX251bUNvbnN0YW50cyk7IH0KKyAgfCBTaGlmdEV4cHJOb0JGIFJTSElGVCBBZGRpdGl2ZUV4
cHIgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IFJp
Z2h0U2hpZnROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0
dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJl
SW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KKyAgfCBTaGlm
dEV4cHJOb0JGIFVSU0hJRlQgQWRkaXRpdmVFeHByICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJ
bmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IFVuc2lnbmVkUmlnaHRTaGlmdE5vZGUoR0xPQkFMX0RB
VEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVy
ZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50
cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBSZWxhdGlvbmFsRXhwcjoKICAgICBTaGlm
dEV4cHIKLSAgfCBSZWxhdGlvbmFsRXhwciAnPCcgU2hpZnRFeHByICAgICAgICB7ICQkID0gY3Jl
YXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExlc3NOb2RlKEdMT0JBTF9E
QVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1
cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KLSAgfCBSZWxhdGlv
bmFsRXhwciAnPicgU2hpZnRFeHByICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obmV3IEdyZWF0ZXJOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUs
ICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1
cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KLSAgfCBSZWxhdGlvbmFsRXhwciBMRSBTaGlm
dEV4cHIgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2Rl
Kj4obmV3IExlc3NFcU5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5t
X2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2Zl
YXR1cmVJbmZvKTsgfQotICB8IFJlbGF0aW9uYWxFeHByIEdFIFNoaWZ0RXhwciAgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgR3JlYXRlckVx
Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8g
JiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9
CisgIHwgUmVsYXRpb25hbEV4cHIgJzwnIFNoaWZ0RXhwciAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMZXNzTm9kZShHTE9CQUxfREFUQSwg
JDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwg
JDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsg
JDMubV9udW1Db25zdGFudHMpOyB9CisgIHwgUmVsYXRpb25hbEV4cHIgJz4nIFNoaWZ0RXhwciAg
ICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBH
cmVhdGVyTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUlu
Zm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CisgIHwgUmVsYXRp
b25hbEV4cHIgTEUgU2hpZnRFeHByICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5m
bzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMZXNzRXFOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUs
ICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1
cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNv
bnN0YW50cyk7IH0KKyAgfCBSZWxhdGlvbmFsRXhwciBHRSBTaGlmdEV4cHIgICAgICAgICB7ICQk
ID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEdyZWF0ZXJFcU5v
ZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYg
QXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5t
X251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogICB8IFJlbGF0aW9uYWxFeHBy
IElOU1RBTkNFT0YgU2hpZnRFeHByIHsgSW5zdGFuY2VPZk5vZGUqIG5vZGUgPSBuZXcgSW5zdGFu
Y2VPZk5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJ
bmZvICYgQXNzaWduRmVhdHVyZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDMu
Zmlyc3RfY29sdW1uLCBAMy5sYXN0X2NvbHVtbik7ICAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25O
b2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVGZWF0
dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2Zl
YXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogICB8
IFJlbGF0aW9uYWxFeHByIElOVE9LRU4gU2hpZnRFeHByICAgIHsgSW5Ob2RlKiBub2RlID0gbmV3
IEluTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUlu
Zm8gJiBBc3NpZ25GZWF0dXJlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMy5m
aXJzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsgIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1
cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVh
dHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAK
IFJlbGF0aW9uYWxFeHByTm9JbjoKICAgICBTaGlmdEV4cHIKLSAgfCBSZWxhdGlvbmFsRXhwck5v
SW4gJzwnIFNoaWZ0RXhwciAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obmV3IExlc3NOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwg
JDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMu
bV9mZWF0dXJlSW5mbyk7IH0KLSAgfCBSZWxhdGlvbmFsRXhwck5vSW4gJz4nIFNoaWZ0RXhwciAg
ICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEdyZWF0
ZXJOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5m
byAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7
IH0KLSAgfCBSZWxhdGlvbmFsRXhwck5vSW4gTEUgU2hpZnRFeHByICAgICB7ICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExlc3NFcU5vZGUoR0xPQkFMX0RB
VEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVy
ZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IFJlbGF0aW9u
YWxFeHByTm9JbiBHRSBTaGlmdEV4cHIgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88
RXhwcmVzc2lvbk5vZGUqPihuZXcgR3JlYXRlckVxTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0
dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgIHwgUmVsYXRpb25hbEV4cHJOb0luICc8
JyBTaGlmdEV4cHIgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG5ldyBMZXNzTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1f
ZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVh
dHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CisgIHwg
UmVsYXRpb25hbEV4cHJOb0luICc+JyBTaGlmdEV4cHIgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0
dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBHcmVhdGVyTm9kZShHTE9CQUxfREFUQSwgJDEu
bV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEu
bV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMu
bV9udW1Db25zdGFudHMpOyB9CisgIHwgUmVsYXRpb25hbEV4cHJOb0luIExFIFNoaWZ0RXhwciAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMZXNz
RXFOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5m
byAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywg
JDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KKyAgfCBSZWxhdGlvbmFs
RXhwck5vSW4gR0UgU2hpZnRFeHByICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obmV3IEdyZWF0ZXJFcU5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVy
ZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29u
c3RhbnRzKTsgfQogICB8IFJlbGF0aW9uYWxFeHByTm9JbiBJTlNUQU5DRU9GIFNoaWZ0RXhwcgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgSW5zdGFuY2VPZk5vZGUq
IG5vZGUgPSBuZXcgSW5zdGFuY2VPZk5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9u
b2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAx
LmZpcnN0X2NvbHVtbiwgQDMuZmlyc3RfY29sdW1uLCBAMy5sYXN0X2NvbHVtbik7ICAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1
cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVh
dHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQxLm1fZmVh
dHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVt
Q29uc3RhbnRzKTsgfQogOwogCiBSZWxhdGlvbmFsRXhwck5vQkY6CiAgICAgU2hpZnRFeHByTm9C
RgotICB8IFJlbGF0aW9uYWxFeHByTm9CRiAnPCcgU2hpZnRFeHByICAgIHsgJCQgPSBjcmVhdGVO
b2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTGVzc05vZGUoR0xPQkFMX0RBVEEs
ICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSks
ICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IFJlbGF0aW9uYWxF
eHByTm9CRiAnPicgU2hpZnRFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgR3JlYXRlck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMu
bV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUlu
Zm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IFJlbGF0aW9uYWxFeHByTm9CRiBMRSBTaGlm
dEV4cHIgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihu
ZXcgTGVzc0VxTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVh
dHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVy
ZUluZm8pOyB9Ci0gIHwgUmVsYXRpb25hbEV4cHJOb0JGIEdFIFNoaWZ0RXhwciAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBHcmVhdGVyRXFOb2Rl
KEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFz
c2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAg
fCBSZWxhdGlvbmFsRXhwck5vQkYgJzwnIFNoaWZ0RXhwciAgICB7ICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExlc3NOb2RlKEdMT0JBTF9EQVRBLCAkMS5t
X25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5t
X2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5t
X251bUNvbnN0YW50cyk7IH0KKyAgfCBSZWxhdGlvbmFsRXhwck5vQkYgJz4nIFNoaWZ0RXhwciAg
ICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEdyZWF0
ZXJOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5m
byAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywg
JDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KKyAgfCBSZWxhdGlvbmFs
RXhwck5vQkYgTEUgU2hpZnRFeHByICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obmV3IExlc3NFcU5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMu
bV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUlu
Zm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3Rh
bnRzKTsgfQorICB8IFJlbGF0aW9uYWxFeHByTm9CRiBHRSBTaGlmdEV4cHIgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgR3JlYXRlckVxTm9kZShH
TE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3Np
Z25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVt
Q29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiAgIHwgUmVsYXRpb25hbEV4cHJOb0JG
IElOU1RBTkNFT0YgU2hpZnRFeHByCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyBJbnN0YW5jZU9mTm9kZSogbm9kZSA9IG5ldyBJbnN0YW5jZU9mTm9kZShHTE9CQUxf
REFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0
dXJlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENF
UFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMy5maXJzdF9jb2x1bW4sIEAz
Lmxhc3RfY29sdW1uKTsgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5t
X2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1f
bnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiAgIHwgUmVsYXRpb25hbEV4cHJO
b0JGIElOVE9LRU4gU2hpZnRFeHByIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgSW5Ob2RlKiBub2RlID0gbmV3IEluTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04o
bm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMy5maXJzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsg
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVO
b2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvIHwg
JDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwg
JDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsg
JDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIEVxdWFsaXR5RXhwcjoKICAgICBSZWxhdGlvbmFs
RXhwcgotICB8IEVxdWFsaXR5RXhwciBFUUVRIFJlbGF0aW9uYWxFeHByICAgIHsgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgRXF1YWxOb2RlKEdMT0JBTF9E
QVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1
cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KLSAgfCBFcXVhbGl0
eUV4cHIgTkUgUmVsYXRpb25hbEV4cHIgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obmV3IE5vdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0
dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgRXF1YWxpdHlFeHByIFNUUkVRIFJl
bGF0aW9uYWxFeHByICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG5ldyBTdHJpY3RFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2Rl
LCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAk
My5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IEVxdWFsaXR5RXhwciBTVFJORVEgUmVsYXRpb25hbEV4
cHIgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTm90
U3RyaWN0RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9m
ZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0
dXJlSW5mbyk7IH0KKyAgfCBFcXVhbGl0eUV4cHIgRVFFUSBSZWxhdGlvbmFsRXhwciAgICB7ICQk
ID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEVxdWFsTm9kZShH
TE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3Np
Z25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVt
Q29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CisgIHwgRXF1YWxpdHlFeHByIE5FIFJl
bGF0aW9uYWxFeHByICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG5ldyBOb3RFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2Rl
LCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAk
My5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsg
fQorICB8IEVxdWFsaXR5RXhwciBTVFJFUSBSZWxhdGlvbmFsRXhwciAgIHsgJCQgPSBjcmVhdGVO
b2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgU3RyaWN0RXF1YWxOb2RlKEdMT0JB
TF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZl
YXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25z
dGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KKyAgfCBFcXVhbGl0eUV4cHIgU1RSTkVRIFJl
bGF0aW9uYWxFeHByICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2Rl
Kj4obmV3IE5vdFN0cmljdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25v
ZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8
ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMp
OyB9CiA7CiAKIEVxdWFsaXR5RXhwck5vSW46CiAgICAgUmVsYXRpb25hbEV4cHJOb0luCiAgIHwg
RXF1YWxpdHlFeHByTm9JbiBFUUVRIFJlbGF0aW9uYWxFeHByTm9JbgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgRXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1f
bm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZv
IHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3
IEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUlu
Zm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiAgIHwgRXF1YWxp
dHlFeHByTm9JbiBORSBSZWxhdGlvbmFsRXhwck5vSW4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25O
b2RlKj4obmV3IE5vdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUs
ICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQz
Lm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBOb3RF
cXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJ
bmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZv
LCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogICB8IEVxdWFsaXR5
RXhwck5vSW4gU1RSRVEgUmVsYXRpb25hbEV4cHJOb0luCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG5ldyBTdHJpY3RFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9u
b2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8g
fCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcg
U3RyaWN0RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9m
ZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0
dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KICAgfCBF
cXVhbGl0eUV4cHJOb0luIFNUUk5FUSBSZWxhdGlvbmFsRXhwck5vSW4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obmV3IE5vdFN0cmljdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9u
b2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9m
ZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG5ldyBOb3RTdHJpY3RFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMu
bV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUlu
Zm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3Rh
bnRzKTsgfQogOwogCiBFcXVhbGl0eUV4cHJOb0JGOgogICAgIFJlbGF0aW9uYWxFeHByTm9CRgog
ICB8IEVxdWFsaXR5RXhwck5vQkYgRVFFUSBSZWxhdGlvbmFsRXhwcgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgRXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1f
bm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZv
IHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KLSAgfCBFcXVhbGl0eUV4cHJOb0JGIE5FIFJlbGF0aW9u
YWxFeHByICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3
IE5vdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVh
dHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVy
ZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBFcXVhbE5vZGUoR0xP
QkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWdu
RmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNv
bnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IEVxdWFsaXR5RXhwck5vQkYgTkUg
UmVsYXRpb25hbEV4cHIgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihuZXcgTm90RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwg
JDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMu
bV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0K
ICAgfCBFcXVhbGl0eUV4cHJOb0JGIFNUUkVRIFJlbGF0aW9uYWxFeHByCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxF
eHByZXNzaW9uTm9kZSo+KG5ldyBTdHJpY3RFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9k
ZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVh
dHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihuZXcgU3RyaWN0RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9k
ZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwg
JDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7
IH0KICAgfCBFcXVhbGl0eUV4cHJOb0JGIFNUUk5FUSBSZWxhdGlvbmFsRXhwcgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTm90U3RyaWN0RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAk
MS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obmV3IE5vdFN0cmljdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0
dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1D
b25zdGFudHMpOyB9CiA7CiAKIEJpdHdpc2VBTkRFeHByOgogICAgIEVxdWFsaXR5RXhwcgotICB8
IEJpdHdpc2VBTkRFeHByICcmJyBFcXVhbGl0eUV4cHIgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVh
dHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQml0QW5kTm9kZShHTE9CQUxfREFUQSwgJDEu
bV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEu
bV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgIHwgQml0d2lzZUFOREV4cHIg
JyYnIEVxdWFsaXR5RXhwciAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG5ldyBCaXRBbmROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9k
ZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwg
JDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7
IH0KIDsKIAogQml0d2lzZUFOREV4cHJOb0luOgogICAgIEVxdWFsaXR5RXhwck5vSW4KICAgfCBC
aXR3aXNlQU5ERXhwck5vSW4gJyYnIEVxdWFsaXR5RXhwck5vSW4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obmV3IEJpdEFuZE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9u
b2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8g
fCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcg
Qml0QW5kTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUlu
Zm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIEJpdHdp
c2VBTkRFeHByTm9CRjoKICAgICBFcXVhbGl0eUV4cHJOb0JGCi0gIHwgQml0d2lzZUFOREV4cHJO
b0JGICcmJyBFcXVhbGl0eUV4cHIgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG5ldyBCaXRBbmROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9k
ZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwg
JDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBCaXR3aXNlQU5ERXhwck5vQkYgJyYnIEVxdWFsaXR5
RXhwciB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEJp
dEFuZE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJ
bmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZv
LCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBCaXR3aXNl
WE9SRXhwcjoKICAgICBCaXR3aXNlQU5ERXhwcgotICB8IEJpdHdpc2VYT1JFeHByICdeJyBCaXR3
aXNlQU5ERXhwciAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
PihuZXcgQml0WE9yTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1f
ZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVh
dHVyZUluZm8pOyB9CisgIHwgQml0d2lzZVhPUkV4cHIgJ14nIEJpdHdpc2VBTkRFeHByICAgeyAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBCaXRYT3JOb2Rl
KEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFz
c2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9u
dW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogQml0d2lzZVhPUkV4cHJO
b0luOgogICAgIEJpdHdpc2VBTkRFeHByTm9JbgogICB8IEJpdHdpc2VYT1JFeHByTm9JbiAnXicg
Qml0d2lzZUFOREV4cHJOb0luCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBCaXRY
T3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5m
byAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7
IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEJpdFhPck5vZGUoR0xPQkFMX0RB
VEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVy
ZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50
cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBCaXR3aXNlWE9SRXhwck5vQkY6CiAgICAg
Qml0d2lzZUFOREV4cHJOb0JGCiAgIHwgQml0d2lzZVhPUkV4cHJOb0JGICdeJyBCaXR3aXNlQU5E
RXhwcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQml0WE9yTm9kZShHTE9CQUxf
REFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0
dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5m
bzxFeHByZXNzaW9uTm9kZSo+KG5ldyBCaXRYT3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUs
ICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1
cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNv
bnN0YW50cyk7IH0KIDsKIAogQml0d2lzZU9SRXhwcjoKICAgICBCaXR3aXNlWE9SRXhwcgotICB8
IEJpdHdpc2VPUkV4cHIgJ3wnIEJpdHdpc2VYT1JFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVh
dHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQml0T3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5t
X25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5t
X2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBCaXR3aXNlT1JFeHByICd8
JyBCaXR3aXNlWE9SRXhwciAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obmV3IEJpdE9yTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUs
ICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQz
Lm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9
CiA7CiAKIEJpdHdpc2VPUkV4cHJOb0luOgogICAgIEJpdHdpc2VYT1JFeHByTm9JbgogICB8IEJp
dHdpc2VPUkV4cHJOb0luICd8JyBCaXR3aXNlWE9SRXhwck5vSW4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obmV3IEJpdE9yTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25v
ZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8
ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBC
aXRPck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJ
bmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZv
LCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBCaXR3aXNl
T1JFeHByTm9CRjoKICAgICBCaXR3aXNlWE9SRXhwck5vQkYKICAgfCBCaXR3aXNlT1JFeHByTm9C
RiAnfCcgQml0d2lzZVhPUkV4cHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEJp
dE9yTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUlu
Zm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8p
OyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0
ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBCaXRPck5vZGUoR0xPQkFMX0RB
VEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVy
ZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50
cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBMb2dpY2FsQU5ERXhwcjoKICAgICBCaXR3
aXNlT1JFeHByCi0gIHwgTG9naWNhbEFOREV4cHIgQU5EIEJpdHdpc2VPUkV4cHIgICAgeyAkJCA9
IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMb2dpY2FsT3BOb2Rl
KEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgT3BMb2dpY2FsQW5kKSwgJDEubV9m
ZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgIHwgTG9naWNhbEFOREV4cHIgQU5E
IEJpdHdpc2VPUkV4cHIgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG5ldyBMb2dpY2FsT3BOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9k
ZSwgT3BMb2dpY2FsQW5kKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQx
Lm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIExvZ2ljYWxBTkRF
eHByTm9JbjoKICAgICBCaXR3aXNlT1JFeHByTm9JbgogICB8IExvZ2ljYWxBTkRFeHByTm9JbiBB
TkQgQml0d2lzZU9SRXhwck5vSW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExv
Z2ljYWxPcE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCBPcExvZ2ljYWxB
bmQpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obmV3IExvZ2ljYWxPcE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9k
ZSwgJDMubV9ub2RlLCBPcExvZ2ljYWxBbmQpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0
dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KIDsKIAog
TG9naWNhbEFOREV4cHJOb0JGOgogICAgIEJpdHdpc2VPUkV4cHJOb0JGCiAgIHwgTG9naWNhbEFO
REV4cHJOb0JGIEFORCBCaXR3aXNlT1JFeHByCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG5ldyBMb2dpY2FsT3BOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgT3BM
b2dpY2FsQW5kKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0
dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMb2dpY2FsT3BOb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsICQzLm1fbm9kZSwgT3BMb2dpY2FsQW5kKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQz
Lm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9
CiA7CiAKIExvZ2ljYWxPUkV4cHI6CiAgICAgTG9naWNhbEFOREV4cHIKLSAgfCBMb2dpY2FsT1JF
eHByIE9SIExvZ2ljYWxBTkRFeHByICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obmV3IExvZ2ljYWxPcE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCBPcExvZ2ljYWxPciksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJ
bmZvKTsgfQorICB8IExvZ2ljYWxPUkV4cHIgT1IgTG9naWNhbEFOREV4cHIgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTG9naWNhbE9wTm9kZShH
TE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsIE9wTG9naWNhbE9yKSwgJDEubV9mZWF0
dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1D
b25zdGFudHMpOyB9CiA7CiAKIExvZ2ljYWxPUkV4cHJOb0luOgogICAgIExvZ2ljYWxBTkRFeHBy
Tm9JbgogICB8IExvZ2ljYWxPUkV4cHJOb0luIE9SIExvZ2ljYWxBTkRFeHByTm9JbgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVy
ZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTG9naWNhbE9wTm9kZShHTE9CQUxfREFUQSwgJDEu
bV9ub2RlLCAkMy5tX25vZGUsIE9wTG9naWNhbE9yKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1f
ZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMb2dpY2Fs
T3BOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgT3BMb2dpY2FsT3IpLCAk
MS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAk
My5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogTG9naWNhbE9SRXhwck5vQkY6CiAgICAgTG9naWNh
bEFOREV4cHJOb0JGCi0gIHwgTG9naWNhbE9SRXhwck5vQkYgT1IgTG9naWNhbEFOREV4cHIgeyAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMb2dpY2FsT3BO
b2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgT3BMb2dpY2FsT3IpLCAkMS5t
X2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBMb2dpY2FsT1JFeHByTm9C
RiBPUiBMb2dpY2FsQU5ERXhwciB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obmV3IExvZ2ljYWxPcE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9u
b2RlLCBPcExvZ2ljYWxPciksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAk
MS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBDb25kaXRpb25h
bEV4cHI6CiAgICAgTG9naWNhbE9SRXhwcgogICB8IExvZ2ljYWxPUkV4cHIgJz8nIEFzc2lnbm1l
bnRFeHByICc6JyBBc3NpZ25tZW50RXhwcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihu
ZXcgQ29uZGl0aW9uYWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDUu
bV9ub2RlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1
cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQg
PSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQ29uZGl0aW9uYWxO
b2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDUubV9ub2RlKSwgJDEubV9m
ZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1cmVJbmZvLCAkMS5tX251
bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzICsgJDUubV9udW1Db25zdGFudHMpOyB9CiA7
CiAKIENvbmRpdGlvbmFsRXhwck5vSW46CiAgICAgTG9naWNhbE9SRXhwck5vSW4KICAgfCBMb2dp
Y2FsT1JFeHByTm9JbiAnPycgQXNzaWdubWVudEV4cHJOb0luICc6JyBBc3NpZ25tZW50RXhwck5v
SW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IENvbmRpdGlvbmFsTm9kZShHTE9C
QUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQ1Lm1fbm9kZSksICQxLm1fZmVhdHVyZUlu
Zm8gfCAkMy5tX2ZlYXR1cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obmV3IENvbmRpdGlvbmFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9u
b2RlLCAkMy5tX25vZGUsICQ1Lm1fbm9kZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1
cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNv
bnN0YW50cyArICQ1Lm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBDb25kaXRpb25hbEV4cHJOb0JG
OgogICAgIExvZ2ljYWxPUkV4cHJOb0JGCiAgIHwgTG9naWNhbE9SRXhwck5vQkYgJz8nIEFzc2ln
bm1lbnRFeHByICc6JyBBc3NpZ25tZW50RXhwcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
PihuZXcgQ29uZGl0aW9uYWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwg
JDUubV9ub2RlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8gfCAkNS5tX2Zl
YXR1cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQ29uZGl0aW9u
YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDUubV9ub2RlKSwgJDEu
bV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1cmVJbmZvLCAkMS5t
X251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzICsgJDUubV9udW1Db25zdGFudHMpOyB9
CiA7CiAKIEFzc2lnbm1lbnRFeHByOgogICAgIENvbmRpdGlvbmFsRXhwcgogICB8IExlZnRIYW5k
U2lkZUV4cHIgQXNzaWdubWVudE9wZXJhdG9yIEFzc2lnbm1lbnRFeHByCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxF
eHByZXNzaW9uTm9kZSo+KG1ha2VBc3NpZ25Ob2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQy
LCAkMy5tX25vZGUsICQxLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlLCAkMy5tX2ZlYXR1
cmVJbmZvICYgQXNzaWduRmVhdHVyZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEAxLmZpcnN0X2NvbHVtbiwgQDIuZmlyc3RfY29sdW1uICsgMSwgQDMubGFz
dF9jb2x1bW4pLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZl
YXR1cmUpOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQDEu
Zmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4gKyAxLCBAMy5sYXN0X2NvbHVtbiksICQxLm1f
ZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVhdHVyZSwgJDEubV9udW1D
b25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0KIDsKIApAQCAtNzI4LDcgKzczNSw3IEBAIEFzc2lnbm1lbnRFeHBy
Tm9JbjoKICAgICBDb25kaXRpb25hbEV4cHJOb0luCiAgIHwgTGVmdEhhbmRTaWRlRXhwciBBc3Np
Z25tZW50T3BlcmF0b3IgQXNzaWdubWVudEV4cHJOb0luCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG1ha2VBc3NpZ25Ob2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQyLCAkMy5tX25v
ZGUsICQxLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlLCAkMy5tX2ZlYXR1cmVJbmZvICYg
QXNzaWduRmVhdHVyZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEAxLmZpcnN0X2NvbHVtbiwgQDIuZmlyc3RfY29sdW1uICsgMSwgQDMubGFzdF9jb2x1bW4p
LCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAMS5maXJzdF9jb2x1
bW4sIEAyLmZpcnN0X2NvbHVtbiArIDEsIEAzLmxhc3RfY29sdW1uKSwgJDEubV9mZWF0dXJlSW5m
byB8ICQzLm1fZmVhdHVyZUluZm8gfCBBc3NpZ25GZWF0dXJlLCAkMS5tX251bUNvbnN0YW50cyAr
ICQzLm1fbnVtQ29uc3RhbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiA7CiAKQEAgLTczNiw3ICs3NDMsNyBAQCBBc3NpZ25tZW50RXhwck5vQkY6CiAgICAg
Q29uZGl0aW9uYWxFeHByTm9CRgogICB8IExlZnRIYW5kU2lkZUV4cHJOb0JGIEFzc2lnbm1lbnRP
cGVyYXRvciBBc3NpZ25tZW50RXhwcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtl
QXNzaWduTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMiwgJDMubV9ub2RlLCAkMS5tX2Zl
YXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1
cmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAxLmZpcnN0
X2NvbHVtbiwgQDIuZmlyc3RfY29sdW1uICsgMSwgQDMubGFzdF9jb2x1bW4pLCAkMS5tX2ZlYXR1
cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUpOyAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQDEuZmlyc3RfY29sdW1uLCBAMi5maXJz
dF9jb2x1bW4gKyAxLCBAMy5sYXN0X2NvbHVtbiksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2Zl
YXR1cmVJbmZvIHwgQXNzaWduRmVhdHVyZSwgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNv
bnN0YW50cyk7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KIDsK
IApAQCAtNzU3LDE3ICs3NjQsMTcgQEAgQXNzaWdubWVudE9wZXJhdG9yOgogCiBFeHByOgogICAg
IEFzc2lnbm1lbnRFeHByCi0gIHwgRXhwciAnLCcgQXNzaWdubWVudEV4cHIgICAgICAgICAgICAg
eyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBDb21tYU5v
ZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlKSwgJDEubV9mZWF0dXJlSW5mbyB8
ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgIHwgRXhwciAnLCcgQXNzaWdubWVudEV4cHIgICAgICAg
ICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBD
b21tYU5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlKSwgJDEubV9mZWF0dXJl
SW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25z
dGFudHMpOyB9CiA7CiAKIEV4cHJOb0luOgogICAgIEFzc2lnbm1lbnRFeHByTm9JbgotICB8IEV4
cHJOb0luICcsJyBBc3NpZ25tZW50RXhwck5vSW4gICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVy
ZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQ29tbWFOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25v
ZGUsICQzLm1fbm9kZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQor
ICB8IEV4cHJOb0luICcsJyBBc3NpZ25tZW50RXhwck5vSW4gICAgIHsgJCQgPSBjcmVhdGVOb2Rl
RmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQ29tbWFOb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsICQzLm1fbm9kZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZv
LCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBFeHByTm9C
RjoKICAgICBBc3NpZ25tZW50RXhwck5vQkYKLSAgfCBFeHByTm9CRiAnLCcgQXNzaWdubWVudEV4
cHIgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bmV3IENvbW1hTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUpLCAkMS5tX2Zl
YXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBFeHByTm9CRiAnLCcgQXNzaWdu
bWVudEV4cHIgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25O
b2RlKj4obmV3IENvbW1hTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUpLCAk
MS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAk
My5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogU3RhdGVtZW50OgpAQCAtNzkwLDE2ICs3OTcsMTYg
QEAgU3RhdGVtZW50OgogOwogCiBCbG9jazoKLSAgICBPUEVOQlJBQ0UgQ0xPU0VCUkFDRSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88
U3RhdGVtZW50Tm9kZSo+KG5ldyBCbG9ja05vZGUoR0xPQkFMX0RBVEEsIDApLCAwLCAwLCAwKTsK
KyAgICBPUEVOQlJBQ0UgQ0xPU0VCUkFDRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBCbG9ja05v
ZGUoR0xPQkFMX0RBVEEsIDApLCAwLCAwLCAwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIERCRygkJC5tX25vZGUsIEAxLCBAMik7IH0KLSAgfCBPUEVOQlJB
Q0UgU291cmNlRWxlbWVudHMgQ0xPU0VCUkFDRSAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBCbG9ja05vZGUoR0xPQkFMX0RB
VEEsICQyLm1fbm9kZSksICQyLm1fdmFyRGVjbGFyYXRpb25zLCAkMi5tX2Z1bmNEZWNsYXJhdGlv
bnMsICQyLm1fZmVhdHVyZUluZm8pOworICB8IE9QRU5CUkFDRSBTb3VyY2VFbGVtZW50cyBDTE9T
RUJSQUNFICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0
ZW1lbnROb2RlKj4obmV3IEJsb2NrTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV92
YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5mbywg
JDIubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEAzKTsgfQogOwogCiBWYXJpYWJsZVN0YXRlbWVudDoK
LSAgICBWQVIgVmFyaWFibGVEZWNsYXJhdGlvbkxpc3QgJzsnICAgICB7ICQkID0gY3JlYXRlTm9k
ZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obWFrZVZhclN0YXRlbWVudE5vZGUoR0xP
QkFMX0RBVEEsICQyLm1fbm9kZSksICQyLm1fdmFyRGVjbGFyYXRpb25zLCAkMi5tX2Z1bmNEZWNs
YXJhdGlvbnMsICQyLm1fZmVhdHVyZUluZm8pOworICAgIFZBUiBWYXJpYWJsZURlY2xhcmF0aW9u
TGlzdCAnOycgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5v
ZGUqPihtYWtlVmFyU3RhdGVtZW50Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV92
YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5mbywg
JDIubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEAzKTsgfQotICB8IFZBUiBWYXJpYWJsZURlY2xhcmF0
aW9uTGlzdCBlcnJvciAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVu
dE5vZGUqPihtYWtlVmFyU3RhdGVtZW50Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIu
bV92YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5m
byk7CisgIHwgVkFSIFZhcmlhYmxlRGVjbGFyYXRpb25MaXN0IGVycm9yICAgeyAkJCA9IGNyZWF0
ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG1ha2VWYXJTdGF0ZW1lbnROb2Rl
KEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpLCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5j
RGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251bUNvbnN0YW50cyk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQkcoJCQubV9ub2RlLCBAMSwg
QDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVVUT19TRU1J
Q09MT047IH0KIDsKQEAgLTgxMCw2ICs4MTcsNyBAQCBWYXJpYWJsZURlY2xhcmF0aW9uTGlzdDoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvVmFyRGVj
bGFyYXRpb25MaXN0KEdMT0JBTF9EQVRBLCAkJC5tX3ZhckRlY2xhcmF0aW9ucywgKiQxLCAwKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZnVuY0RlY2xh
cmF0aW9ucyA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
JC5tX2ZlYXR1cmVJbmZvID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgIHwgSURFTlQgSW5pdGlhbGl6ZXIgICAgICAgICAgICAgICAgICAg
eyBBc3NpZ25SZXNvbHZlTm9kZSogbm9kZSA9IG5ldyBBc3NpZ25SZXNvbHZlTm9kZShHTE9CQUxf
REFUQSwgKiQxLCAkMi5tX25vZGUsICQyLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05f
TE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4gKyAxLCBAMi5s
YXN0X2NvbHVtbik7CkBAIC04MTgsNiArODI2LDcgQEAgVmFyaWFibGVEZWNsYXJhdGlvbkxpc3Q6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUb1ZhckRl
Y2xhcmF0aW9uTGlzdChHTE9CQUxfREFUQSwgJCQubV92YXJEZWNsYXJhdGlvbnMsICokMSwgRGVj
bGFyYXRpb25TdGFja3M6Okhhc0luaXRpYWxpemVyKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICQkLm1fZnVuY0RlY2xhcmF0aW9ucyA9IDA7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDIubV9m
ZWF0dXJlSW5mbzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQk
Lm1fbnVtQ29uc3RhbnRzID0gJDIubV9udW1Db25zdGFudHM7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQogICB8IFZhcmlhYmxlRGVjbGFyYXRpb25MaXN0ICcsJyBJ
REVOVAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQubV9ub2Rl
ID0gJDEubV9ub2RlOwpAQCAtODI1LDYgKzgzNCw3IEBAIFZhcmlhYmxlRGVjbGFyYXRpb25MaXN0
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG9WYXJE
ZWNsYXJhdGlvbkxpc3QoR0xPQkFMX0RBVEEsICQkLm1fdmFyRGVjbGFyYXRpb25zLCAqJDMsIDAp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mdW5jRGVj
bGFyYXRpb25zID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICQkLm1fZmVhdHVyZUluZm8gPSAkMS5tX2ZlYXR1cmVJbmZvOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMgPSAkMS5tX251bUNvbnN0
YW50czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgVmFy
aWFibGVEZWNsYXJhdGlvbkxpc3QgJywnIElERU5UIEluaXRpYWxpemVyCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBBc3NpZ25SZXNvbHZlTm9kZSogbm9kZSA9IG5l
dyBBc3NpZ25SZXNvbHZlTm9kZShHTE9CQUxfREFUQSwgKiQzLCAkNC5tX25vZGUsICQ0Lm1fZmVh
dHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKTsKQEAgLTgzNCw2ICs4NDQsNyBAQCBWYXJpYWJsZURl
Y2xhcmF0aW9uTGlzdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFwcGVuZFRvVmFyRGVjbGFyYXRpb25MaXN0KEdMT0JBTF9EQVRBLCAkJC5tX3ZhckRlY2xhcmF0
aW9ucywgKiQzLCBEZWNsYXJhdGlvblN0YWNrczo6SGFzSW5pdGlhbGl6ZXIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFyYXRpb25zID0g
MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVy
ZUluZm8gPSAkMS5tX2ZlYXR1cmVJbmZvIHwgJDQubV9mZWF0dXJlSW5mbzsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gJDEubV9u
dW1Db25zdGFudHMgKyAkNC5tX251bUNvbnN0YW50czsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CiA7CiAKQEAgLTg0Myw2ICs4NTQsNyBAQCBWYXJpYWJsZURlY2xh
cmF0aW9uTGlzdE5vSW46CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcHBlbmRUb1ZhckRlY2xhcmF0aW9uTGlzdChHTE9CQUxfREFUQSwgJCQubV92YXJEZWNsYXJh
dGlvbnMsICokMSwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlSW5mbyA9IDA7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9IDA7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICB8IElERU5UIEluaXRpYWxpemVyTm9J
biAgICAgICAgICAgICAgIHsgQXNzaWduUmVzb2x2ZU5vZGUqIG5vZGUgPSBuZXcgQXNzaWduUmVz
b2x2ZU5vZGUoR0xPQkFMX0RBVEEsICokMSwgJDIubV9ub2RlLCAkMi5tX2ZlYXR1cmVJbmZvICYg
QXNzaWduRmVhdHVyZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIuZmlyc3Rf
Y29sdW1uICsgMSwgQDIubGFzdF9jb2x1bW4pOwpAQCAtODUxLDYgKzg2Myw3IEBAIFZhcmlhYmxl
RGVjbGFyYXRpb25MaXN0Tm9JbjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFwcGVuZFRvVmFyRGVjbGFyYXRpb25MaXN0KEdMT0JBTF9EQVRBLCAkJC5tX3ZhckRl
Y2xhcmF0aW9ucywgKiQxLCBEZWNsYXJhdGlvblN0YWNrczo6SGFzSW5pdGlhbGl6ZXIpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFyYXRp
b25zID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1f
ZmVhdHVyZUluZm8gPSAkMi5tX2ZlYXR1cmVJbmZvOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMgPSAkMi5tX251bUNvbnN0YW50czsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgVmFyaWFibGVE
ZWNsYXJhdGlvbkxpc3ROb0luICcsJyBJREVOVAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgJCQubV9ub2RlID0gJDEubV9ub2RlOwpAQCAtODU4LDYgKzg3MSw3IEBA
IFZhcmlhYmxlRGVjbGFyYXRpb25MaXN0Tm9JbjoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFwcGVuZFRvVmFyRGVjbGFyYXRpb25MaXN0KEdMT0JBTF9EQVRBLCAk
JC5tX3ZhckRlY2xhcmF0aW9ucywgKiQzLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICQkLm1fZnVuY0RlY2xhcmF0aW9ucyA9IDA7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDEubV9mZWF0
dXJlSW5mbzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1f
bnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHM7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICB8IFZhcmlhYmxlRGVjbGFyYXRpb25MaXN0Tm9JbiAnLCcg
SURFTlQgSW5pdGlhbGl6ZXJOb0luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyBBc3NpZ25SZXNvbHZlTm9kZSogbm9kZSA9IG5ldyBBc3NpZ25SZXNvbHZlTm9kZShH
TE9CQUxfREFUQSwgKiQzLCAkNC5tX25vZGUsICQ0Lm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0
dXJlKTsKQEAgLTg2NywxNCArODgxLDE1IEBAIFZhcmlhYmxlRGVjbGFyYXRpb25MaXN0Tm9JbjoK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvVmFyRGVj
bGFyYXRpb25MaXN0KEdMT0JBTF9EQVRBLCAkJC5tX3ZhckRlY2xhcmF0aW9ucywgKiQzLCBEZWNs
YXJhdGlvblN0YWNrczo6SGFzSW5pdGlhbGl6ZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFyYXRpb25zID0gMDsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAkMS5tX2Zl
YXR1cmVJbmZvIHwgJDQubV9mZWF0dXJlSW5mbzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHMgKyAk
NC5tX251bUNvbnN0YW50czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiA7CiAKIENvbnN0U3RhdGVtZW50OgotICAgIENPTlNUVE9LRU4gQ29uc3REZWNsYXJhdGlv
bkxpc3QgJzsnIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUq
PihuZXcgQ29uc3RTdGF0ZW1lbnROb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUuaGVhZCksICQy
Lm1fdmFyRGVjbGFyYXRpb25zLCAkMi5tX2Z1bmNEZWNsYXJhdGlvbnMsICQyLm1fZmVhdHVyZUlu
Zm8pOworICAgIENPTlNUVE9LRU4gQ29uc3REZWNsYXJhdGlvbkxpc3QgJzsnIHsgJCQgPSBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgQ29uc3RTdGF0ZW1lbnRO
b2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUuaGVhZCksICQyLm1fdmFyRGVjbGFyYXRpb25zLCAk
Mi5tX2Z1bmNEZWNsYXJhdGlvbnMsICQyLm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRz
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCRygkJC5tX25v
ZGUsIEAxLCBAMyk7IH0KICAgfCBDT05TVFRPS0VOIENvbnN0RGVjbGFyYXRpb25MaXN0IGVycm9y
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBDb25zdFN0YXRlbWVudE5vZGUo
R0xPQkFMX0RBVEEsICQyLm1fbm9kZS5oZWFkKSwgJDIubV92YXJEZWNsYXJhdGlvbnMsICQyLm1f
ZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5mbyk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3Rh
dGVtZW50Tm9kZSo+KG5ldyBDb25zdFN0YXRlbWVudE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9k
ZS5oZWFkKSwgJDIubV92YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIu
bV9mZWF0dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEAyKTsgQVVUT19TRU1JQ09M
T047IH0KIDsKIApAQCAtODg1LDYgKzkwMCw3IEBAIENvbnN0RGVjbGFyYXRpb25MaXN0OgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG9WYXJEZWNsYXJh
dGlvbkxpc3QoR0xPQkFMX0RBVEEsICQkLm1fdmFyRGVjbGFyYXRpb25zLCAkMS5tX25vZGUpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFy
YXRpb25zID0gMDsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
JC5tX2ZlYXR1cmVJbmZvID0gJDEubV9mZWF0dXJlSW5mbzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25zdGFu
dHM7CiAgICAgfQogICB8IENvbnN0RGVjbGFyYXRpb25MaXN0ICcsJyBDb25zdERlY2xhcmF0aW9u
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgJCQubV9ub2RlLmhl
YWQgPSAkMS5tX25vZGUuaGVhZDsKQEAgLTg5MywxMiArOTA5LDEzIEBAIENvbnN0RGVjbGFyYXRp
b25MaXN0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV92
YXJEZWNsYXJhdGlvbnMgPSAkMS5tX3ZhckRlY2xhcmF0aW9uczsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvVmFyRGVjbGFyYXRpb25MaXN0KEdMT0JB
TF9EQVRBLCAkJC5tX3ZhckRlY2xhcmF0aW9ucywgJDMubV9ub2RlKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZnVuY0RlY2xhcmF0aW9ucyA9IDA7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZv
ID0gJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm87fQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVhdHVy
ZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMgPSAkMS5tX251bUNvbnN0YW50cyArICQzLm1f
bnVtQ29uc3RhbnRzOyB9CiA7CiAKIENvbnN0RGVjbGFyYXRpb246Ci0gICAgSURFTlQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxDb25z
dERlY2xOb2RlKj4obmV3IENvbnN0RGVjbE5vZGUoR0xPQkFMX0RBVEEsICokMSwgMCksIDApOyB9
Ci0gIHwgSURFTlQgSW5pdGlhbGl6ZXIgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVGZWF0dXJlSW5mbzxDb25zdERlY2xOb2RlKj4obmV3IENvbnN0RGVjbE5vZGUoR0xPQkFMX0RB
VEEsICokMSwgJDIubV9ub2RlKSwgJDIubV9mZWF0dXJlSW5mbyk7IH0KKyAgICBJREVOVCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPENv
bnN0RGVjbE5vZGUqPihuZXcgQ29uc3REZWNsTm9kZShHTE9CQUxfREFUQSwgKiQxLCAwKSwgMCwg
MCk7IH0KKyAgfCBJREVOVCBJbml0aWFsaXplciAgICAgICAgICAgICAgICAgICB7ICQkID0gY3Jl
YXRlTm9kZUZlYXR1cmVJbmZvPENvbnN0RGVjbE5vZGUqPihuZXcgQ29uc3REZWNsTm9kZShHTE9C
QUxfREFUQSwgKiQxLCAkMi5tX25vZGUpLCAkMi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251bUNvbnN0
YW50cyk7IH0KIDsKIAogSW5pdGlhbGl6ZXI6CkBAIC05MTAsNDQgKzkyNyw0NyBAQCBJbml0aWFs
aXplck5vSW46CiA7CiAKIEVtcHR5U3RhdGVtZW50OgotICAgICc7JyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVu
dE5vZGUqPihuZXcgRW1wdHlTdGF0ZW1lbnROb2RlKEdMT0JBTF9EQVRBKSwgMCwgMCwgMCk7IH0K
KyAgICAnOycgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9k
ZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IEVtcHR5U3RhdGVtZW50Tm9kZShH
TE9CQUxfREFUQSksIDAsIDAsIDAsIDApOyB9CiA7CiAKIEV4cHJTdGF0ZW1lbnQ6Ci0gICAgRXhw
ck5vQkYgJzsnICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJh
dGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBFeHByU3RhdGVtZW50Tm9kZShHTE9CQUxfREFU
QSwgJDEubV9ub2RlKSwgMCwgMCwgJDEubV9mZWF0dXJlSW5mbyk7CisgICAgRXhwck5vQkYgJzsn
ICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88
U3RhdGVtZW50Tm9kZSo+KG5ldyBFeHByU3RhdGVtZW50Tm9kZShHTE9CQUxfREFUQSwgJDEubV9u
b2RlKSwgMCwgMCwgJDEubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEAy
KTsgfQotICB8IEV4cHJOb0JGIGVycm9yICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgRXhwclN0YXRlbWVudE5v
ZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSksIDAsIDAsICQxLm1fZmVhdHVyZUluZm8pOworICB8
IEV4cHJOb0JGIGVycm9yICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVj
bGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgRXhwclN0YXRlbWVudE5vZGUoR0xPQkFM
X0RBVEEsICQxLm1fbm9kZSksIDAsIDAsICQxLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3Rh
bnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCRygkJC5t
X25vZGUsIEAxLCBAMSk7IEFVVE9fU0VNSUNPTE9OOyB9CiA7CiAKIElmU3RhdGVtZW50OgogICAg
IElGICcoJyBFeHByICcpJyBTdGF0ZW1lbnQgJXByZWMgSUZfV0lUSE9VVF9FTFNFCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJh
dGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBJZk5vZGUoR0xPQkFMX0RBVEEsICQzLm1fbm9k
ZSwgJDUubV9ub2RlKSwgJDUubV92YXJEZWNsYXJhdGlvbnMsICQ1Lm1fZnVuY0RlY2xhcmF0aW9u
cywgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8pOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZv
PFN0YXRlbWVudE5vZGUqPihuZXcgSWZOb2RlKEdMT0JBTF9EQVRBLCAkMy5tX25vZGUsICQ1Lm1f
bm9kZSksICQ1Lm1fdmFyRGVjbGFyYXRpb25zLCAkNS5tX2Z1bmNEZWNsYXJhdGlvbnMsICQzLm1f
ZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1cmVJbmZvLCAkMy5tX251bUNvbnN0YW50cyArICQ1Lm1f
bnVtQ29uc3RhbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IERCRygkJC5tX25vZGUsIEAxLCBANCk7IH0KICAgfCBJRiAnKCcgRXhwciAnKScgU3RhdGVtZW50
IEVMU0UgU3RhdGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBJZkVs
c2VOb2RlKEdMT0JBTF9EQVRBLCAkMy5tX25vZGUsICQ1Lm1fbm9kZSwgJDcubV9ub2RlKSwgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlRGVjbGFyYXRpb25MaXN0cygkNS5t
X3ZhckRlY2xhcmF0aW9ucywgJDcubV92YXJEZWNsYXJhdGlvbnMpLCBtZXJnZURlY2xhcmF0aW9u
TGlzdHMoJDUubV9mdW5jRGVjbGFyYXRpb25zLCAkNy5tX2Z1bmNEZWNsYXJhdGlvbnMpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMy5tX2ZlYXR1cmVJbmZvIHwgJDUubV9mZWF0
dXJlSW5mbyB8ICQ3Lm1fZmVhdHVyZUluZm8pOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8gfCAkNy5tX2ZlYXR1cmVJ
bmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMy5tX251bUNvbnN0YW50cyAr
ICQ1Lm1fbnVtQ29uc3RhbnRzICsgJDcubV9udW1Db25zdGFudHMpOyAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCRygkJC5tX25vZGUsIEAxLCBANCk7IH0KIDsK
IAogSXRlcmF0aW9uU3RhdGVtZW50OgotICAgIERPIFN0YXRlbWVudCBXSElMRSAnKCcgRXhwciAn
KScgJzsnICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUq
PihuZXcgRG9XaGlsZU5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgJDUubV9ub2RlKSwgJDIu
bV92YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5m
byB8ICQ1Lm1fZmVhdHVyZUluZm8pOworICAgIERPIFN0YXRlbWVudCBXSElMRSAnKCcgRXhwciAn
KScgJzsnICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUq
PihuZXcgRG9XaGlsZU5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgJDUubV9ub2RlKSwgJDIu
bV92YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5m
byB8ICQ1Lm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRzICsgJDUubV9udW1Db25zdGFu
dHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQk
Lm1fbm9kZSwgQDEsIEAzKTsgfQotICB8IERPIFN0YXRlbWVudCBXSElMRSAnKCcgRXhwciAnKScg
ZXJyb3IgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihu
ZXcgRG9XaGlsZU5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgJDUubV9ub2RlKSwgJDIubV92
YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5mbyB8
ICQ1Lm1fZmVhdHVyZUluZm8pOworICB8IERPIFN0YXRlbWVudCBXSElMRSAnKCcgRXhwciAnKScg
ZXJyb3IgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihu
ZXcgRG9XaGlsZU5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgJDUubV9ub2RlKSwgJDIubV92
YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5mbyB8
ICQ1Lm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRzICsgJDUubV9udW1Db25zdGFudHMp
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1f
bm9kZSwgQDEsIEAzKTsgfSAvLyBBbHdheXMgcGVyZm9ybXMgYXV0b21hdGljIHNlbWljb2xvbiBp
bnNlcnRpb24uCi0gIHwgV0hJTEUgJygnIEV4cHIgJyknIFN0YXRlbWVudCAgICAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBXaGlsZU5vZGUo
R0xPQkFMX0RBVEEsICQzLm1fbm9kZSwgJDUubV9ub2RlKSwgJDUubV92YXJEZWNsYXJhdGlvbnMs
ICQ1Lm1fZnVuY0RlY2xhcmF0aW9ucywgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUlu
Zm8pOworICB8IFdISUxFICcoJyBFeHByICcpJyBTdGF0ZW1lbnQgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgV2hpbGVOb2RlKEdMT0JB
TF9EQVRBLCAkMy5tX25vZGUsICQ1Lm1fbm9kZSksICQ1Lm1fdmFyRGVjbGFyYXRpb25zLCAkNS5t
X2Z1bmNEZWNsYXJhdGlvbnMsICQzLm1fZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1cmVJbmZvLCAk
My5tX251bUNvbnN0YW50cyArICQ1Lm1fbnVtQ29uc3RhbnRzKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIERCRygkJC5tX25vZGUsIEAxLCBANCk7IH0KICAgfCBG
T1IgJygnIEV4cHJOb0luT3B0ICc7JyBFeHByT3B0ICc7JyBFeHByT3B0ICcpJyBTdGF0ZW1lbnQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9k
ZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IEZvck5vZGUoR0xPQkFMX0RBVEEs
ICQzLm1fbm9kZSwgJDUubV9ub2RlLCAkNy5tX25vZGUsICQ5Lm1fbm9kZSwgZmFsc2UpLCAkOS5t
X3ZhckRlY2xhcmF0aW9ucywgJDkubV9mdW5jRGVjbGFyYXRpb25zLCAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8gfCAk
Ny5tX2ZlYXR1cmVJbmZvIHwgJDkubV9mZWF0dXJlSW5mbyk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICQzLm1fZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1cmVJbmZvIHwgJDcubV9m
ZWF0dXJlSW5mbyB8ICQ5Lm1fZmVhdHVyZUluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQzLm1fbnVtQ29uc3RhbnRzICsgJDUubV9udW1Db25zdGFudHMgKyAkNy5tX251bUNv
bnN0YW50cyArICQ5Lm1fbnVtQ29uc3RhbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIERCRygkJC5tX25vZGUsIEAxLCBAOCk7IAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgfCBGT1IgJygnIFZBUiBWYXJpYWJsZURlY2xh
cmF0aW9uTGlzdE5vSW4gJzsnIEV4cHJPcHQgJzsnIEV4cHJPcHQgJyknIFN0YXRlbWVudAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVj
bGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgRm9yTm9kZShHTE9CQUxfREFUQSwgJDQu
bV9ub2RlLCAkNi5tX25vZGUsICQ4Lm1fbm9kZSwgJDEwLm1fbm9kZSwgdHJ1ZSksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlRGVjbGFyYXRpb25MaXN0cygkNC5tX3ZhckRl
Y2xhcmF0aW9ucywgJDEwLm1fdmFyRGVjbGFyYXRpb25zKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQ0Lm1fZnVuY0RlY2xhcmF0aW9ucywg
JDEwLm1fZnVuY0RlY2xhcmF0aW9ucyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICQ0Lm1fZmVhdHVyZUluZm8gfCAkNi5tX2ZlYXR1cmVJbmZvIHwgJDgubV9mZWF0dXJlSW5mbyB8
ICQxMC5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDQu
bV9mZWF0dXJlSW5mbyB8ICQ2Lm1fZmVhdHVyZUluZm8gfCAkOC5tX2ZlYXR1cmVJbmZvIHwgJDEw
Lm1fZmVhdHVyZUluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ0Lm1fbnVt
Q29uc3RhbnRzICsgJDYubV9udW1Db25zdGFudHMgKyAkOC5tX251bUNvbnN0YW50cyArICQxMC5t
X251bUNvbnN0YW50cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBEQkcoJCQubV9ub2RlLCBAMSwgQDkpOyB9CiAgIHwgRk9SICcoJyBMZWZ0SGFuZFNpZGVFeHBy
IElOVE9LRU4gRXhwciAnKScgU3RhdGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgewpAQCAtOTU3LDEwNiArOTc3LDEwOSBAQCBJdGVyYXRpb25TdGF0ZW1lbnQ6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvckluTm9kZSog
bm9kZSA9IG5ldyBGb3JJbk5vZGUoR0xPQkFMX0RBVEEsICQzLm1fbm9kZSwgJDUubV9ub2RlLCAk
Ny5tX25vZGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
RVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAzLmZpcnN0X2NvbHVtbiwgQDMubGFzdF9jb2x1
bW4sIEA1Lmxhc3RfY29sdW1uKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihu
b2RlLCAkNy5tX3ZhckRlY2xhcmF0aW9ucywgJDcubV9mdW5jRGVjbGFyYXRpb25zLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICQzLm1fZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1
cmVJbmZvIHwgJDcubV9mZWF0dXJlSW5mbyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8gfCAkNy5tX2ZlYXR1cmVJ
bmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQzLm1fbnVtQ29uc3RhbnRz
ICsgJDUubV9udW1Db25zdGFudHMgKyAkNy5tX251bUNvbnN0YW50cyk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCRygkJC5tX25vZGUsIEAxLCBANik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICB8IEZPUiAnKCcgVkFS
IElERU5UIElOVE9LRU4gRXhwciAnKScgU3RhdGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyBGb3JJbk5vZGUgKmZvckluID0gbmV3IEZvckluTm9kZShHTE9C
QUxfREFUQSwgKiQ0LCAwLCAkNi5tX25vZGUsICQ4Lm1fbm9kZSwgQDUuZmlyc3RfY29sdW1uLCBA
NS5maXJzdF9jb2x1bW4gLSBANC5maXJzdF9jb2x1bW4sIEA2Lmxhc3RfY29sdW1uIC0gQDUuZmly
c3RfY29sdW1uKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNF
VF9FWENFUFRJT05fTE9DQVRJT04oZm9ySW4sIEA0LmZpcnN0X2NvbHVtbiwgQDUuZmlyc3RfY29s
dW1uICsgMSwgQDYubGFzdF9jb2x1bW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXBwZW5kVG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFMX0RBVEEsICQ4Lm1f
dmFyRGVjbGFyYXRpb25zLCAqJDQsIERlY2xhcmF0aW9uU3RhY2tzOjpIYXNJbml0aWFsaXplcik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5v
ZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KGZvckluLCAkOC5tX3ZhckRlY2xhcmF0
aW9ucywgJDgubV9mdW5jRGVjbGFyYXRpb25zLCAkNi5tX2ZlYXR1cmVJbmZvIHwgJDgubV9mZWF0
dXJlSW5mbyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9
IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KGZvckluLCAkOC5tX3Zh
ckRlY2xhcmF0aW9ucywgJDgubV9mdW5jRGVjbGFyYXRpb25zLCAkNi5tX2ZlYXR1cmVJbmZvIHwg
JDgubV9mZWF0dXJlSW5mbywgJDYubV9udW1Db25zdGFudHMgKyAkOC5tX251bUNvbnN0YW50cyk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQkcoJCQubV9ub2Rl
LCBAMSwgQDcpOyB9CiAgIHwgRk9SICcoJyBWQVIgSURFTlQgSW5pdGlhbGl6ZXJOb0luIElOVE9L
RU4gRXhwciAnKScgU3RhdGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyBGb3JJbk5vZGUgKmZvckluID0gbmV3IEZvckluTm9kZShHTE9CQUxfREFUQSwgKiQ0
LCAkNS5tX25vZGUsICQ3Lm1fbm9kZSwgJDkubV9ub2RlLCBANS5maXJzdF9jb2x1bW4sIEA1LmZp
cnN0X2NvbHVtbiAtIEA0LmZpcnN0X2NvbHVtbiwgQDUubGFzdF9jb2x1bW4gLSBANS5maXJzdF9j
b2x1bW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0VY
Q0VQVElPTl9MT0NBVElPTihmb3JJbiwgQDQuZmlyc3RfY29sdW1uLCBANi5maXJzdF9jb2x1bW4g
KyAxLCBANy5sYXN0X2NvbHVtbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhcHBlbmRUb1ZhckRlY2xhcmF0aW9uTGlzdChHTE9CQUxfREFUQSwgJDkubV92YXJE
ZWNsYXJhdGlvbnMsICokNCwgRGVjbGFyYXRpb25TdGFja3M6Okhhc0luaXRpYWxpemVyKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURl
Y2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4oZm9ySW4sICQ5Lm1fdmFyRGVjbGFyYXRpb25z
LCAkOS5tX2Z1bmNEZWNsYXJhdGlvbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICQ1Lm1fZmVhdHVyZUluZm8gfCAkNy5tX2ZlYXR1cmVJbmZvIHwgJDkubV9mZWF0dXJlSW5mbyk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQ1Lm1fZmVhdHVyZUluZm8gfCAkNy5t
X2ZlYXR1cmVJbmZvIHwgJDkubV9mZWF0dXJlSW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJDUubV9udW1Db25zdGFudHMgKyAkNy5tX251bUNvbnN0YW50cyArICQ5Lm1fbnVt
Q29uc3RhbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERC
RygkJC5tX25vZGUsIEAxLCBAOCk7IH0KIDsKIAogRXhwck9wdDoKLSAgICAvKiBub3RoaW5nICov
ICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4oMCwgMCk7IH0KKyAgICAvKiBub3RoaW5nICovICAgICAgICAgICAgICAgICAg
ICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4oMCwgMCwg
MCk7IH0KICAgfCBFeHByCiA7CiAKIEV4cHJOb0luT3B0OgotICAgIC8qIG5vdGhpbmcgKi8gICAg
ICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lv
bk5vZGUqPigwLCAwKTsgfQorICAgIC8qIG5vdGhpbmcgKi8gICAgICAgICAgICAgICAgICAgICAg
IHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPigwLCAwLCAwKTsg
fQogICB8IEV4cHJOb0luCiA7CiAKIENvbnRpbnVlU3RhdGVtZW50OgogICAgIENPTlRJTlVFICc7
JyAgICAgICAgICAgICAgICAgICAgICAgIHsgQ29udGludWVOb2RlKiBub2RlID0gbmV3IENvbnRp
bnVlTm9kZShHTE9CQUxfREFUQSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEu
bGFzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uKTsgCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50
Tm9kZSo+KG5vZGUsIDAsIDAsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihu
b2RlLCAwLCAwLCAwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIERCRygkJC5tX25vZGUsIEAxLCBAMik7IH0KICAgfCBDT05USU5VRSBlcnJvciAgICAgICAg
ICAgICAgICAgICAgICB7IENvbnRpbnVlTm9kZSogbm9kZSA9IG5ldyBDb250aW51ZU5vZGUoR0xP
QkFMX0RBVEEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VU
X0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1u
LCBAMS5sYXN0X2NvbHVtbik7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihub2Rl
LCAwLCAwLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQk
ID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwg
MCwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQkcoJCQu
bV9ub2RlLCBAMSwgQDEpOyBBVVRPX1NFTUlDT0xPTjsgfQogICB8IENPTlRJTlVFIElERU5UICc7
JyAgICAgICAgICAgICAgICAgIHsgQ29udGludWVOb2RlKiBub2RlID0gbmV3IENvbnRpbnVlTm9k
ZShHTE9CQUxfREFUQSwgKiQyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5s
YXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pOyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnRO
b2RlKj4obm9kZSwgMCwgMCwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5v
ZGUsIDAsIDAsIDAsIDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgREJHKCQkLm1fbm9kZSwgQDEsIEAzKTsgfQogICB8IENPTlRJTlVFIElERU5UIGVycm9yICAg
ICAgICAgICAgICAgIHsgQ29udGludWVOb2RlKiBub2RlID0gbmV3IENvbnRpbnVlTm9kZShHTE9C
QUxfREFUQSwgKiQyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5sYXN0X2Nv
bHVtbiwgQDIubGFzdF9jb2x1bW4pOyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4o
bm9kZSwgMCwgMCwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAs
IDAsIDAsIDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJH
KCQkLm1fbm9kZSwgQDEsIEAyKTsgQVVUT19TRU1JQ09MT047IH0KIDsKIAogQnJlYWtTdGF0ZW1l
bnQ6CiAgICAgQlJFQUsgJzsnICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBCcmVha05vZGUq
IG5vZGUgPSBuZXcgQnJlYWtOb2RlKEdMT0JBTF9EQVRBKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmly
c3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25J
bmZvPFN0YXRlbWVudE5vZGUqPihub2RlLCAwLCAwLCAwKTsgREJHKCQkLm1fbm9kZSwgQDEsIEAy
KTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihub2RlLCAwLCAwLCAwLCAwKTsg
REJHKCQkLm1fbm9kZSwgQDEsIEAyKTsgfQogICB8IEJSRUFLIGVycm9yICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgQnJlYWtOb2RlKiBub2RlID0gbmV3IEJyZWFrTm9kZShHTE9CQUxfREFUQSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9O
X0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAxLmxhc3Rf
Y29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0g
Y3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IEJyZWFrTm9kZShH
TE9CQUxfREFUQSksIDAsIDAsIDApOyBEQkcoJCQubV9ub2RlLCBAMSwgQDEpOyBBVVRPX1NFTUlD
T0xPTjsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBj
cmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgQnJlYWtOb2RlKEdM
T0JBTF9EQVRBKSwgMCwgMCwgMCwgMCk7IERCRygkJC5tX25vZGUsIEAxLCBAMSk7IEFVVE9fU0VN
SUNPTE9OOyB9CiAgIHwgQlJFQUsgSURFTlQgJzsnICAgICAgICAgICAgICAgICAgICAgeyBCcmVh
a05vZGUqIG5vZGUgPSBuZXcgQnJlYWtOb2RlKEdMT0JBTF9EQVRBLCAqJDIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihu
b2RlLCBAMS5maXJzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbik7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVE
ZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsIDApOyBEQkcoJCQubV9u
b2RlLCBAMSwgQDMpOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAs
IDAsIDAsIDApOyBEQkcoJCQubV9ub2RlLCBAMSwgQDMpOyB9CiAgIHwgQlJFQUsgSURFTlQgZXJy
b3IgICAgICAgICAgICAgICAgICAgeyBCcmVha05vZGUqIG5vZGUgPSBuZXcgQnJlYWtOb2RlKEdM
T0JBTF9EQVRBLCAqJDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAyLmxhc3Rf
Y29sdW1uLCBAMi5sYXN0X2NvbHVtbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+
KG5ldyBCcmVha05vZGUoR0xPQkFMX0RBVEEsICokMiksIDAsIDAsIDApOyBEQkcoJCQubV9ub2Rl
LCBAMSwgQDIpOyBBVVRPX1NFTUlDT0xPTjsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5v
ZGUqPihuZXcgQnJlYWtOb2RlKEdMT0JBTF9EQVRBLCAqJDIpLCAwLCAwLCAwLCAwKTsgREJHKCQk
Lm1fbm9kZSwgQDEsIEAyKTsgQVVUT19TRU1JQ09MT047IH0KIDsKIAogUmV0dXJuU3RhdGVtZW50
OgogICAgIFJFVFVSTiAnOycgICAgICAgICAgICAgICAgICAgICAgICAgIHsgUmV0dXJuTm9kZSog
bm9kZSA9IG5ldyBSZXR1cm5Ob2RlKEdMT0JBTF9EQVRBLCAwKTsgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAx
LmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uKTsgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJh
dGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsIDApOyBEQkcoJCQubV9ub2RlLCBA
MSwgQDIpOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9
IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsIDAs
IDApOyBEQkcoJCQubV9ub2RlLCBAMSwgQDIpOyB9CiAgIHwgUkVUVVJOIGVycm9yICAgICAgICAg
ICAgICAgICAgICAgICAgeyBSZXR1cm5Ob2RlKiBub2RlID0gbmV3IFJldHVybk5vZGUoR0xPQkFM
X0RBVEEsIDApOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNF
VF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVt
biwgQDEubGFzdF9jb2x1bW4pOyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9k
ZSwgMCwgMCwgMCk7IERCRygkJC5tX25vZGUsIEAxLCBAMSk7IEFVVE9fU0VNSUNPTE9OOyB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVE
ZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsIDAsIDApOyBEQkcoJCQu
bV9ub2RlLCBAMSwgQDEpOyBBVVRPX1NFTUlDT0xPTjsgfQogICB8IFJFVFVSTiBFeHByICc7JyAg
ICAgICAgICAgICAgICAgICAgIHsgUmV0dXJuTm9kZSogbm9kZSA9IG5ldyBSZXR1cm5Ob2RlKEdM
T0JBTF9EQVRBLCAkMi5tX25vZGUpOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBA
Mi5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVu
dE5vZGUqPihub2RlLCAwLCAwLCAkMi5tX2ZlYXR1cmVJbmZvKTsgREJHKCQkLm1fbm9kZSwgQDEs
IEAzKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBj
cmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihub2RlLCAwLCAwLCAkMi5t
X2ZlYXR1cmVJbmZvLCAkMi5tX251bUNvbnN0YW50cyk7IERCRygkJC5tX25vZGUsIEAxLCBAMyk7
IH0KICAgfCBSRVRVUk4gRXhwciBlcnJvciAgICAgICAgICAgICAgICAgICB7IFJldHVybk5vZGUq
IG5vZGUgPSBuZXcgUmV0dXJuTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKTsgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9O
KG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKTsg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5v
ZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsICQyLm1fZmVhdHVy
ZUluZm8pOyBEQkcoJCQubV9ub2RlLCBAMSwgQDIpOyBBVVRPX1NFTUlDT0xPTjsgfQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFy
YXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihub2RlLCAwLCAwLCAkMi5tX2ZlYXR1cmVJbmZvLCAk
Mi5tX251bUNvbnN0YW50cyk7IERCRygkJC5tX25vZGUsIEAxLCBAMik7IEFVVE9fU0VNSUNPTE9O
OyB9CiA7CiAKIFdpdGhTdGF0ZW1lbnQ6CiAgICAgV0lUSCAnKCcgRXhwciAnKScgU3RhdGVtZW50
ICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+
KG5ldyBXaXRoTm9kZShHTE9CQUxfREFUQSwgJDMubV9ub2RlLCAkNS5tX25vZGUsIEAzLmxhc3Rf
Y29sdW1uLCBAMy5sYXN0X2NvbHVtbiAtIEAzLmZpcnN0X2NvbHVtbiksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICQ1Lm1fdmFyRGVjbGFyYXRpb25zLCAkNS5tX2Z1bmNEZWNsYXJh
dGlvbnMsICQzLm1fZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJDUubV92YXJEZWNsYXJhdGlvbnMsICQ1Lm1fZnVuY0RlY2xh
cmF0aW9ucywgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8sICQzLm1fbnVtQ29u
c3RhbnRzICsgJDUubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEA0KTsgfQogOwogCiBTd2l0Y2hTdGF0
ZW1lbnQ6CiAgICAgU1dJVENIICcoJyBFeHByICcpJyBDYXNlQmxvY2sgICAgICAgeyAkJCA9IGNy
ZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBTd2l0Y2hOb2RlKEdM
T0JBTF9EQVRBLCAkMy5tX25vZGUsICQ1Lm1fbm9kZSksICQ1Lm1fdmFyRGVjbGFyYXRpb25zLCAk
NS5tX2Z1bmNEZWNsYXJhdGlvbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQz
Lm1fZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8sICQzLm1fbnVt
Q29uc3RhbnRzICsgJDUubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEA0KTsgfQogOwogCiBDYXNlQmxv
Y2s6Ci0gICAgT1BFTkJSQUNFIENhc2VDbGF1c2VzT3B0IENMT1NFQlJBQ0UgICAgICAgICAgICAg
IHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPENhc2VCbG9ja05vZGUqPihuZXcgQ2Fz
ZUJsb2NrTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLmhlYWQsIDAsIDApLCAkMi5tX3ZhckRl
Y2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQor
ICAgIE9QRU5CUkFDRSBDYXNlQ2xhdXNlc09wdCBDTE9TRUJSQUNFICAgICAgICAgICAgICB7ICQk
ID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxDYXNlQmxvY2tOb2RlKj4obmV3IENhc2VCbG9j
a05vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZS5oZWFkLCAwLCAwKSwgJDIubV92YXJEZWNsYXJh
dGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5mbywgJDIubV9udW1D
b25zdGFudHMpOyB9CiAgIHwgT1BFTkJSQUNFIENhc2VDbGF1c2VzT3B0IERlZmF1bHRDbGF1c2Ug
Q2FzZUNsYXVzZXNPcHQgQ0xPU0VCUkFDRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPENhc2VCbG9ja05vZGUq
PihuZXcgQ2FzZUJsb2NrTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLmhlYWQsICQzLm1fbm9k
ZSwgJDQubV9ub2RlLmhlYWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJn
ZURlY2xhcmF0aW9uTGlzdHMobWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQyLm1fdmFyRGVjbGFyYXRp
b25zLCAkMy5tX3ZhckRlY2xhcmF0aW9ucyksICQ0Lm1fdmFyRGVjbGFyYXRpb25zKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKG1lcmdlRGVj
bGFyYXRpb25MaXN0cygkMi5tX2Z1bmNEZWNsYXJhdGlvbnMsICQzLm1fZnVuY0RlY2xhcmF0aW9u
cyksICQ0Lm1fZnVuY0RlY2xhcmF0aW9ucyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICQyLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvIHwgJDQubV9mZWF0dXJlSW5m
byk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDIubV9mZWF0dXJlSW5mbyB8
ICQzLm1fZmVhdHVyZUluZm8gfCAkNC5tX2ZlYXR1cmVJbmZvLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkMi5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzICsgJDQu
bV9udW1Db25zdGFudHMpOyB9CiA7CiAKIENhc2VDbGF1c2VzT3B0OgotLyogbm90aGluZyAqLyAg
ICAgICAgICAgICAgICAgICAgICAgeyAkJC5tX25vZGUuaGVhZCA9IDA7ICQkLm1fbm9kZS50YWls
ID0gMDsgJCQubV92YXJEZWNsYXJhdGlvbnMgPSAwOyAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMgPSAw
OyAkJC5tX2ZlYXR1cmVJbmZvID0gMDsgfQorLyogbm90aGluZyAqLyAgICAgICAgICAgICAgICAg
ICAgICAgeyAkJC5tX25vZGUuaGVhZCA9IDA7ICQkLm1fbm9kZS50YWlsID0gMDsgJCQubV92YXJE
ZWNsYXJhdGlvbnMgPSAwOyAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMgPSAwOyAkJC5tX2ZlYXR1cmVJ
bmZvID0gMDsgJCQubV9udW1Db25zdGFudHMgPSAwOyB9CiAgIHwgQ2FzZUNsYXVzZXMKIDsKIApA
QCAtMTA2NSw0MCArMTA4OCw0MiBAQCBDYXNlQ2xhdXNlczoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQkLm1fbm9kZS50YWlsID0gJCQubV9ub2RlLmhlYWQ7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX3ZhckRlY2xhcmF0
aW9ucyA9ICQxLm1fdmFyRGVjbGFyYXRpb25zOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFyYXRpb25zID0gJDEubV9mdW5jRGVjbGFyYXRp
b25zOyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVh
dHVyZUluZm8gPSAkMS5tX2ZlYXR1cmVJbmZvOyB9IAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVhdHVyZUluZm87Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50
cyA9ICQxLm1fbnVtQ29uc3RhbnRzOyB9CiAgIHwgQ2FzZUNsYXVzZXMgQ2FzZUNsYXVzZSAgICAg
ICAgICAgICAgeyAkJC5tX25vZGUuaGVhZCA9ICQxLm1fbm9kZS5oZWFkOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9ub2RlLnRhaWwgPSBuZXcgQ2xhdXNl
TGlzdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZS50YWlsLCAkMi5tX25vZGUpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV92YXJEZWNsYXJhdGlvbnMg
PSBtZXJnZURlY2xhcmF0aW9uTGlzdHMoJDEubV92YXJEZWNsYXJhdGlvbnMsICQyLm1fdmFyRGVj
bGFyYXRpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQk
Lm1fZnVuY0RlY2xhcmF0aW9ucyA9IG1lcmdlRGVjbGFyYXRpb25MaXN0cygkMS5tX2Z1bmNEZWNs
YXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDEubV9mZWF0dXJlSW5mbyB8
ICQyLm1fZmVhdHVyZUluZm87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkJC5tX251bUNvbnN0YW50cyA9ICQxLm1fbnVtQ29uc3RhbnRzICsgJDIubV9udW1Db25z
dGFudHM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogOwogCiBD
YXNlQ2xhdXNlOgotICAgIENBU0UgRXhwciAnOicgICAgICAgICAgICAgICAgICAgICAgIHsgJCQg
PSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPENhc2VDbGF1c2VOb2RlKj4obmV3IENhc2VDbGF1
c2VOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpLCAwLCAwLCAkMi5tX2ZlYXR1cmVJbmZvKTsg
fQotICB8IENBU0UgRXhwciAnOicgU291cmNlRWxlbWVudHMgICAgICAgIHsgJCQgPSBjcmVhdGVO
b2RlRGVjbGFyYXRpb25JbmZvPENhc2VDbGF1c2VOb2RlKj4obmV3IENhc2VDbGF1c2VOb2RlKEdM
T0JBTF9EQVRBLCAkMi5tX25vZGUsICQ0Lm1fbm9kZSksICQ0Lm1fdmFyRGVjbGFyYXRpb25zLCAk
NC5tX2Z1bmNEZWNsYXJhdGlvbnMsICQyLm1fZmVhdHVyZUluZm8gfCAkNC5tX2ZlYXR1cmVJbmZv
KTsgfQorICAgIENBU0UgRXhwciAnOicgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvPENhc2VDbGF1c2VOb2RlKj4obmV3IENhc2VDbGF1c2VOb2Rl
KEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpLCAwLCAwLCAkMi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251
bUNvbnN0YW50cyk7IH0KKyAgfCBDQVNFIEV4cHIgJzonIFNvdXJjZUVsZW1lbnRzICAgICAgICB7
ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxDYXNlQ2xhdXNlTm9kZSo+KG5ldyBDYXNl
Q2xhdXNlTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCAkNC5tX25vZGUpLCAkNC5tX3ZhckRl
Y2xhcmF0aW9ucywgJDQubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1cmVJbmZvIHwgJDQu
bV9mZWF0dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMgKyAkNC5tX251bUNvbnN0YW50cyk7IH0K
IDsKIAogRGVmYXVsdENsYXVzZToKLSAgICBERUZBVUxUICc6JyAgICAgICAgICAgICAgICAgICAg
ICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxDYXNlQ2xhdXNlTm9kZSo+KG5l
dyBDYXNlQ2xhdXNlTm9kZShHTE9CQUxfREFUQSwgMCksIDAsIDAsIDApOyB9Ci0gIHwgREVGQVVM
VCAnOicgU291cmNlRWxlbWVudHMgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlv
bkluZm88Q2FzZUNsYXVzZU5vZGUqPihuZXcgQ2FzZUNsYXVzZU5vZGUoR0xPQkFMX0RBVEEsIDAs
ICQzLm1fbm9kZSksICQzLm1fdmFyRGVjbGFyYXRpb25zLCAkMy5tX2Z1bmNEZWNsYXJhdGlvbnMs
ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAgREVGQVVMVCAnOicgICAgICAgICAgICAgICAgICAg
ICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88Q2FzZUNsYXVzZU5vZGUqPihu
ZXcgQ2FzZUNsYXVzZU5vZGUoR0xPQkFMX0RBVEEsIDApLCAwLCAwLCAwLCAwKTsgfQorICB8IERF
RkFVTFQgJzonIFNvdXJjZUVsZW1lbnRzICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFy
YXRpb25JbmZvPENhc2VDbGF1c2VOb2RlKj4obmV3IENhc2VDbGF1c2VOb2RlKEdMT0JBTF9EQVRB
LCAwLCAkMy5tX25vZGUpLCAkMy5tX3ZhckRlY2xhcmF0aW9ucywgJDMubV9mdW5jRGVjbGFyYXRp
b25zLCAkMy5tX2ZlYXR1cmVJbmZvLCAkMy5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogTGFiZWxs
ZWRTdGF0ZW1lbnQ6CiAgICAgSURFTlQgJzonIFN0YXRlbWVudCAgICAgICAgICAgICAgICAgeyAk
My5tX25vZGUtPnB1c2hMYWJlbCgqJDEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTGFiZWxOb2RlKiBub2RlID0gbmV3IExhYmVsTm9kZShHTE9CQUxfREFUQSwg
KiQxLCAkMy5tX25vZGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAyLmxhc3Rf
Y29sdW1uLCBAMi5sYXN0X2NvbHVtbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+
KG5vZGUsICQzLm1fdmFyRGVjbGFyYXRpb25zLCAkMy5tX2Z1bmNEZWNsYXJhdGlvbnMsICQzLm1f
ZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsICQz
Lm1fdmFyRGVjbGFyYXRpb25zLCAkMy5tX2Z1bmNEZWNsYXJhdGlvbnMsICQzLm1fZmVhdHVyZUlu
Zm8sICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBUaHJvd1N0YXRlbWVudDoKICAgICBUSFJP
VyBFeHByICc7JyAgICAgICAgICAgICAgICAgICAgICB7IFRocm93Tm9kZSogbm9kZSA9IG5ldyBU
aHJvd05vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0
X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5m
bzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgJDIubV9mZWF0dXJlSW5mbyk7IERCRygkJC5t
X25vZGUsIEAxLCBAMik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAs
IDAsICQyLm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRzKTsgREJHKCQkLm1fbm9kZSwg
QDEsIEAyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwg
VEhST1cgRXhwciBlcnJvciAgICAgICAgICAgICAgICAgICAgeyBUaHJvd05vZGUqIG5vZGUgPSBu
ZXcgVGhyb3dOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5m
aXJzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlv
bkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsICQyLm1fZmVhdHVyZUluZm8pOyBEQkco
JCQubV9ub2RlLCBAMSwgQDIpOyBBVVRPX1NFTUlDT0xPTjsgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3Rh
dGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsICQyLm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3Rh
bnRzKTsgREJHKCQkLm1fbm9kZSwgQDEsIEAyKTsgQVVUT19TRU1JQ09MT047IAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KIDsKIApAQCAtMTEwNiwyNSArMTEzMSwy
OCBAQCBUcnlTdGF0ZW1lbnQ6CiAgICAgVFJZIEJsb2NrIEZJTkFMTFkgQmxvY2sgICAgICAgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBU
cnlOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsIEdMT0JBTF9EQVRBLT5wcm9wZXJ0eU5hbWVz
LT5udWxsSWRlbnRpZmllciwgMCwgJDQubV9ub2RlKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQyLm1fdmFyRGVjbGFyYXRpb25zLCAkNC5t
X3ZhckRlY2xhcmF0aW9ucyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdl
RGVjbGFyYXRpb25MaXN0cygkMi5tX2Z1bmNEZWNsYXJhdGlvbnMsICQ0Lm1fZnVuY0RlY2xhcmF0
aW9ucyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQyLm1fZmVhdHVyZUluZm8g
fCAkNC5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDIu
bV9mZWF0dXJlSW5mbyB8ICQ0Lm1fZmVhdHVyZUluZm8sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQyLm1fbnVtQ29uc3RhbnRzICsgJDQubV9udW1Db25zdGFudHMpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEAy
KTsgfQogICB8IFRSWSBCbG9jayBDQVRDSCAnKCcgSURFTlQgJyknIEJsb2NrIHsgJCQgPSBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgVHJ5Tm9kZShHTE9CQUxf
REFUQSwgJDIubV9ub2RlLCAqJDUsICQ3Lm1fbm9kZSwgMCksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lcmdlRGVjbGFyYXRpb25MaXN0cygkMi5tX3ZhckRlY2xhcmF0aW9ucywg
JDcubV92YXJEZWNsYXJhdGlvbnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZXJnZURlY2xhcmF0aW9uTGlzdHMoJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkNy5tX2Z1bmNEZWNs
YXJhdGlvbnMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMi5tX2ZlYXR1cmVJ
bmZvIHwgJDcubV9mZWF0dXJlSW5mbyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICQyLm1fZmVhdHVyZUluZm8gfCAkNy5tX2ZlYXR1cmVJbmZvLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkMi5tX251bUNvbnN0YW50cyArICQ3Lm1fbnVtQ29uc3RhbnRzKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCRygkJC5tX25vZGUsIEAx
LCBAMik7IH0KICAgfCBUUlkgQmxvY2sgQ0FUQ0ggJygnIElERU5UICcpJyBCbG9jayBGSU5BTExZ
IEJsb2NrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNy
ZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBUcnlOb2RlKEdMT0JB
TF9EQVRBLCAkMi5tX25vZGUsICokNSwgJDcubV9ub2RlLCAkOS5tX25vZGUpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtZXJnZURlY2xhcmF0aW9uTGlzdHMobWVyZ2VEZWNsYXJh
dGlvbkxpc3RzKCQyLm1fdmFyRGVjbGFyYXRpb25zLCAkNy5tX3ZhckRlY2xhcmF0aW9ucyksICQ5
Lm1fdmFyRGVjbGFyYXRpb25zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVy
Z2VEZWNsYXJhdGlvbkxpc3RzKG1lcmdlRGVjbGFyYXRpb25MaXN0cygkMi5tX2Z1bmNEZWNsYXJh
dGlvbnMsICQ3Lm1fZnVuY0RlY2xhcmF0aW9ucyksICQ5Lm1fZnVuY0RlY2xhcmF0aW9ucyksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQyLm1fZmVhdHVyZUluZm8gfCAkNy5tX2Zl
YXR1cmVJbmZvIHwgJDkubV9mZWF0dXJlSW5mbyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQyLm1fZmVhdHVyZUluZm8gfCAkNy5tX2ZlYXR1cmVJbmZvIHwgJDkubV9mZWF0dXJl
SW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDIubV9udW1Db25zdGFudHMg
KyAkNy5tX251bUNvbnN0YW50cyArICQ5Lm1fbnVtQ29uc3RhbnRzKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCRygkJC5tX25vZGUsIEAxLCBAMik7IH0KIDsK
IAogRGVidWdnZXJTdGF0ZW1lbnQ6Ci0gICAgREVCVUdHRVIgJzsnICAgICAgICAgICAgICAgICAg
ICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5l
dyBEZWJ1Z2dlclN0YXRlbWVudE5vZGUoR0xPQkFMX0RBVEEpLCAwLCAwLCAwKTsKKyAgICBERUJV
R0dFUiAnOycgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0
aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IERlYnVnZ2VyU3RhdGVtZW50Tm9kZShHTE9CQUxf
REFUQSksIDAsIDAsIDAsIDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEAyKTsgfQotICB8IERFQlVHR0VSIGVycm9yICAgICAg
ICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVu
dE5vZGUqPihuZXcgRGVidWdnZXJTdGF0ZW1lbnROb2RlKEdMT0JBTF9EQVRBKSwgMCwgMCwgMCk7
CisgIHwgREVCVUdHRVIgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBEZWJ1Z2dlclN0YXRlbWVudE5v
ZGUoR0xPQkFMX0RBVEEpLCAwLCAwLCAwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIERCRygkJC5tX25vZGUsIEAxLCBAMSk7IEFVVE9fU0VNSUNPTE9OOyB9
CiA7CiAKQEAgLTExMzUsMTAgKzExNjMsMTAgQEAgRnVuY3Rpb25EZWNsYXJhdGlvbjoKIDsKIAog
RnVuY3Rpb25FeHByOgotICAgIEZVTkNUSU9OICcoJyAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9k
eSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm8obmV3IEZ1bmNFeHByTm9k
ZShHTE9CQUxfREFUQSwgR0xPQkFMX0RBVEEtPnByb3BlcnR5TmFtZXMtPm51bGxJZGVudGlmaWVy
LCAkNSwgTEVYRVItPnNvdXJjZVJhbmdlKCQ0LCAkNikpLCBDbG9zdXJlRmVhdHVyZSk7IERCRygk
NSwgQDQsIEA2KTsgfQotICB8IEZVTkNUSU9OICcoJyBGb3JtYWxQYXJhbWV0ZXJMaXN0ICcpJyBP
UEVOQlJBQ0UgRnVuY3Rpb25Cb2R5IENMT1NFQlJBQ0UgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJl
SW5mbyhuZXcgRnVuY0V4cHJOb2RlKEdMT0JBTF9EQVRBLCBHTE9CQUxfREFUQS0+cHJvcGVydHlO
YW1lcy0+bnVsbElkZW50aWZpZXIsICQ2LCBMRVhFUi0+c291cmNlUmFuZ2UoJDUsICQ3KSwgJDMu
aGVhZCksIENsb3N1cmVGZWF0dXJlKTsgREJHKCQ2LCBANSwgQDcpOyB9Ci0gIHwgRlVOQ1RJT04g
SURFTlQgJygnICcpJyBPUEVOQlJBQ0UgRnVuY3Rpb25Cb2R5IENMT1NFQlJBQ0UgeyAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbyhuZXcgRnVuY0V4cHJOb2RlKEdMT0JBTF9EQVRBLCAqJDIsICQ2
LCBMRVhFUi0+c291cmNlUmFuZ2UoJDUsICQ3KSksIENsb3N1cmVGZWF0dXJlKTsgREJHKCQ2LCBA
NSwgQDcpOyB9Ci0gIHwgRlVOQ1RJT04gSURFTlQgJygnIEZvcm1hbFBhcmFtZXRlckxpc3QgJykn
IE9QRU5CUkFDRSBGdW5jdGlvbkJvZHkgQ0xPU0VCUkFDRSB7ICQkID0gY3JlYXRlTm9kZUZlYXR1
cmVJbmZvKG5ldyBGdW5jRXhwck5vZGUoR0xPQkFMX0RBVEEsICokMiwgJDcsIExFWEVSLT5zb3Vy
Y2VSYW5nZSgkNiwgJDgpLCAkNC5oZWFkKSwgQ2xvc3VyZUZlYXR1cmUpOyBEQkcoJDcsIEA2LCBA
OCk7IH0KKyAgICBGVU5DVElPTiAnKCcgJyknIE9QRU5CUkFDRSBGdW5jdGlvbkJvZHkgQ0xPU0VC
UkFDRSB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvKG5ldyBGdW5jRXhwck5vZGUoR0xPQkFM
X0RBVEEsIEdMT0JBTF9EQVRBLT5wcm9wZXJ0eU5hbWVzLT5udWxsSWRlbnRpZmllciwgJDUsIExF
WEVSLT5zb3VyY2VSYW5nZSgkNCwgJDYpKSwgQ2xvc3VyZUZlYXR1cmUsIDApOyBEQkcoJDUsIEA0
LCBANik7IH0KKyAgfCBGVU5DVElPTiAnKCcgRm9ybWFsUGFyYW1ldGVyTGlzdCAnKScgT1BFTkJS
QUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm8o
bmV3IEZ1bmNFeHByTm9kZShHTE9CQUxfREFUQSwgR0xPQkFMX0RBVEEtPnByb3BlcnR5TmFtZXMt
Pm51bGxJZGVudGlmaWVyLCAkNiwgTEVYRVItPnNvdXJjZVJhbmdlKCQ1LCAkNyksICQzLmhlYWQp
LCBDbG9zdXJlRmVhdHVyZSwgMCk7IERCRygkNiwgQDUsIEA3KTsgfQorICB8IEZVTkNUSU9OIElE
RU5UICcoJyAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm8obmV3IEZ1bmNFeHByTm9kZShHTE9CQUxfREFUQSwgKiQyLCAkNiwg
TEVYRVItPnNvdXJjZVJhbmdlKCQ1LCAkNykpLCBDbG9zdXJlRmVhdHVyZSwgMCk7IERCRygkNiwg
QDUsIEA3KTsgfQorICB8IEZVTkNUSU9OIElERU5UICcoJyBGb3JtYWxQYXJhbWV0ZXJMaXN0ICcp
JyBPUEVOQlJBQ0UgRnVuY3Rpb25Cb2R5IENMT1NFQlJBQ0UgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0
dXJlSW5mbyhuZXcgRnVuY0V4cHJOb2RlKEdMT0JBTF9EQVRBLCAqJDIsICQ3LCBMRVhFUi0+c291
cmNlUmFuZ2UoJDYsICQ4KSwgJDQuaGVhZCksIENsb3N1cmVGZWF0dXJlLCAwKTsgREJHKCQ3LCBA
NiwgQDgpOyB9CiA7CiAKIEZvcm1hbFBhcmFtZXRlckxpc3Q6CkBAIC0xMTQ5LDEwICsxMTc3LDEx
IEBAIEZvcm1hbFBhcmFtZXRlckxpc3Q6CiA7CiAKIEZ1bmN0aW9uQm9keToKLSAgICAvKiBub3Qg
aW4gc3BlYyAqLyAgICAgICAgICAgeyAkJCA9IEZ1bmN0aW9uQm9keU5vZGU6OmNyZWF0ZShHTE9C
QUxfREFUQSwgMCwgMCwgMCwgZmFsc2UsIGZhbHNlKTsgfQorICAgIC8qIG5vdCBpbiBzcGVjICov
ICAgICAgICAgICB7ICQkID0gRnVuY3Rpb25Cb2R5Tm9kZTo6Y3JlYXRlKEdMT0JBTF9EQVRBLCAw
LCAwLCAwLCBmYWxzZSwgZmFsc2UsIDApOyB9CiAgIHwgU291cmNlRWxlbWVudHMgICAgICAgICAg
ICAgIHsgJCQgPSBGdW5jdGlvbkJvZHlOb2RlOjpjcmVhdGUoR0xPQkFMX0RBVEEsICQxLm1fbm9k
ZSwgJDEubV92YXJEZWNsYXJhdGlvbnMgPyAmJDEubV92YXJEZWNsYXJhdGlvbnMtPmRhdGEgOiAw
LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkMS5tX2Z1bmNEZWNsYXJhdGlvbnMgPyAmJDEubV9mdW5jRGVjbGFyYXRpb25z
LT5kYXRhIDogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoJDEubV9mZWF0dXJlSW5mbyAmIEV2YWxGZWF0dXJlKSAhPSAw
LCAoJDEubV9mZWF0dXJlSW5mbyAmIENsb3N1cmVGZWF0dXJlKSAhPSAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJDEu
bV9mZWF0dXJlSW5mbyAmIEV2YWxGZWF0dXJlKSAhPSAwLCAoJDEubV9mZWF0dXJlSW5mbyAmIENs
b3N1cmVGZWF0dXJlKSAhPSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICQxLm1fbnVtQ29uc3RhbnRzKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBcyBpbiBtZXJnZURlY2xhcmF0aW9uTGlzdHMo
KSB3ZSBoYXZlIHRvIHJlZi9kZXJlZiB0byBzYWZlbHkgZ2V0IHJpZCBvZgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBkZWNsYXJhdGlvbiBsaXN0cy4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJDEubV92YXJEZWNsYXJhdGlvbnMpIHsKQEAg
LTExNjcsMTAgKzExOTYsMTAgQEAgRnVuY3Rpb25Cb2R5OgogOwogCiBQcm9ncmFtOgotICAgIC8q
IG5vdCBpbiBzcGVjICovICAgICAgICAgICAgICAgICAgIHsgR0xPQkFMX0RBVEEtPnBhcnNlci0+
ZGlkRmluaXNoUGFyc2luZyhuZXcgU291cmNlRWxlbWVudHMoR0xPQkFMX0RBVEEpLCAwLCAwLCBm
YWxzZSwgZmFsc2UsIEAwLmxhc3RfbGluZSk7IH0KKyAgICAvKiBub3QgaW4gc3BlYyAqLyAgICAg
ICAgICAgICAgICAgICB7IEdMT0JBTF9EQVRBLT5wYXJzZXItPmRpZEZpbmlzaFBhcnNpbmcobmV3
IFNvdXJjZUVsZW1lbnRzKEdMT0JBTF9EQVRBKSwgMCwgMCwgZmFsc2UsIGZhbHNlLCBAMC5sYXN0
X2xpbmUsIDApOyB9CiAgICAgfCBTb3VyY2VFbGVtZW50cyAgICAgICAgICAgICAgICAgICAgeyBH
TE9CQUxfREFUQS0+cGFyc2VyLT5kaWRGaW5pc2hQYXJzaW5nKCQxLm1fbm9kZSwgJDEubV92YXJE
ZWNsYXJhdGlvbnMsICQxLm1fZnVuY0RlY2xhcmF0aW9ucywgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkMS5tX2Zl
YXR1cmVJbmZvICYgRXZhbEZlYXR1cmUpICE9IDAsICgkMS5tX2ZlYXR1cmVJbmZvICYgQ2xvc3Vy
ZUZlYXR1cmUpICE9IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAxLmxhc3RfbGluZSk7IH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QDEubGFzdF9saW5lLCAkMS5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogU291cmNlRWxlbWVudHM6
CkBAIC0xMTc5LDE2ICsxMjA4LDE4IEBAIFNvdXJjZUVsZW1lbnRzOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV92YXJEZWNsYXJhdGlvbnMgPSAkMS5tX3Zh
ckRlY2xhcmF0aW9uczsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICQkLm1fZnVuY0RlY2xhcmF0aW9ucyA9ICQxLm1fZnVuY0RlY2xhcmF0aW9uczsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAkMS5t
X2ZlYXR1cmVJbmZvOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JCQubV9udW1Db25zdGFudHMgPSAkMS5tX251bUNvbnN0YW50czsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgU291cmNlRWxlbWVudHMgU291cmNlRWxlbWVu
dCAgICAgICAgeyAkJC5tX25vZGUtPmFwcGVuZCgkMi5tX25vZGUpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV92YXJEZWNsYXJhdGlvbnMgPSBtZXJnZURl
Y2xhcmF0aW9uTGlzdHMoJDEubV92YXJEZWNsYXJhdGlvbnMsICQyLm1fdmFyRGVjbGFyYXRpb25z
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZnVuY0Rl
Y2xhcmF0aW9ucyA9IG1lcmdlRGVjbGFyYXRpb25MaXN0cygkMS5tX2Z1bmNEZWNsYXJhdGlvbnMs
ICQyLm1fZnVuY0RlY2xhcmF0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDEubV9mZWF0dXJlSW5mbyB8ICQyLm1fZmVh
dHVyZUluZm87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5t
X251bUNvbnN0YW50cyA9ICQxLm1fbnVtQ29uc3RhbnRzICsgJDIubV9udW1Db25zdGFudHM7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogOwogCiBTb3VyY2VFbGVt
ZW50OgotICAgIEZ1bmN0aW9uRGVjbGFyYXRpb24gICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPigkMSwgMCwgbmV3IFBhcnNlclJl
ZkNvdW50ZWREYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrPihHTE9CQUxfREFU
QSksIENsb3N1cmVGZWF0dXJlKTsgJCQubV9mdW5jRGVjbGFyYXRpb25zLT5kYXRhLmFwcGVuZCgk
MSk7IH0KKyAgICBGdW5jdGlvbkRlY2xhcmF0aW9uICAgICAgICAgICAgICAgICB7ICQkID0gY3Jl
YXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4oJDEsIDAsIG5ldyBQYXJzZXJS
ZWZDb3VudGVkRGF0YTxEZWNsYXJhdGlvblN0YWNrczo6RnVuY3Rpb25TdGFjaz4oR0xPQkFMX0RB
VEEpLCBDbG9zdXJlRmVhdHVyZSwgMCk7ICQkLm1fZnVuY0RlY2xhcmF0aW9ucy0+ZGF0YS5hcHBl
bmQoJDEpOyB9CiAgIHwgU3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9
ICQxOyB9CiA7CiAgCkBAIC0xMjc2LDI2ICsxMzA3LDI3IEBAIHN0YXRpYyBFeHByZXNzaW9uTm9k
ZSogbWFrZVBvc3RmaXhOb2RlKHYKIHN0YXRpYyBFeHByZXNzaW9uTm9kZUluZm8gbWFrZUZ1bmN0
aW9uQ2FsbE5vZGUodm9pZCogZ2xvYmFsUHRyLCBFeHByZXNzaW9uTm9kZUluZm8gZnVuYywgQXJn
dW1lbnRzTm9kZUluZm8gYXJncywgaW50IHN0YXJ0LCBpbnQgZGl2b3QsIGludCBlbmQpCiB7CiAg
ICAgRmVhdHVyZUluZm8gZmVhdHVyZXMgPSBmdW5jLm1fZmVhdHVyZUluZm8gfCBhcmdzLm1fZmVh
dHVyZUluZm87CisgICAgaW50IG51bUNvbnN0YW50cyA9IGZ1bmMubV9udW1Db25zdGFudHMgKyBh
cmdzLm1fbnVtQ29uc3RhbnRzOwogICAgIGlmICghZnVuYy5tX25vZGUtPmlzTG9jYXRpb24oKSkK
LSAgICAgICAgcmV0dXJuIGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5l
dyBGdW5jdGlvbkNhbGxWYWx1ZU5vZGUoR0xPQkFMX0RBVEEsIGZ1bmMubV9ub2RlLCBhcmdzLm1f
bm9kZSwgZGl2b3QsIGRpdm90IC0gc3RhcnQsIGVuZCAtIGRpdm90KSwgZmVhdHVyZXMpOworICAg
ICAgICByZXR1cm4gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEZ1
bmN0aW9uQ2FsbFZhbHVlTm9kZShHTE9CQUxfREFUQSwgZnVuYy5tX25vZGUsIGFyZ3MubV9ub2Rl
LCBkaXZvdCwgZGl2b3QgLSBzdGFydCwgZW5kIC0gZGl2b3QpLCBmZWF0dXJlcywgbnVtQ29uc3Rh
bnRzKTsKICAgICBpZiAoZnVuYy5tX25vZGUtPmlzUmVzb2x2ZU5vZGUoKSkgewogICAgICAgICBS
ZXNvbHZlTm9kZSogcmVzb2x2ZSA9IHN0YXRpY19jYXN0PFJlc29sdmVOb2RlKj4oZnVuYy5tX25v
ZGUpOwogICAgICAgICBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyID0gcmVzb2x2ZS0+aWRl
bnRpZmllcigpOwogICAgICAgICBpZiAoaWRlbnRpZmllciA9PSBHTE9CQUxfREFUQS0+cHJvcGVy
dHlOYW1lcy0+ZXZhbCkKLSAgICAgICAgICAgIHJldHVybiBjcmVhdGVOb2RlRmVhdHVyZUluZm88
RXhwcmVzc2lvbk5vZGUqPihuZXcgRXZhbEZ1bmN0aW9uQ2FsbE5vZGUoR0xPQkFMX0RBVEEsIGFy
Z3MubV9ub2RlLCBkaXZvdCwgZGl2b3QgLSBzdGFydCwgZW5kIC0gZGl2b3QpLCBFdmFsRmVhdHVy
ZSB8IGZlYXR1cmVzKTsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHBy
ZXNzaW9uTm9kZSo+KG5ldyBGdW5jdGlvbkNhbGxSZXNvbHZlTm9kZShHTE9CQUxfREFUQSwgaWRl
bnRpZmllciwgYXJncy5tX25vZGUsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCks
IGZlYXR1cmVzKTsKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgRXZhbEZ1bmN0aW9uQ2FsbE5vZGUoR0xPQkFMX0RBVEEsIGFyZ3Mu
bV9ub2RlLCBkaXZvdCwgZGl2b3QgLSBzdGFydCwgZW5kIC0gZGl2b3QpLCBFdmFsRmVhdHVyZSB8
IGZlYXR1cmVzLCBudW1Db25zdGFudHMpOworICAgICAgICByZXR1cm4gY3JlYXRlTm9kZUZlYXR1
cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEZ1bmN0aW9uQ2FsbFJlc29sdmVOb2RlKEdMT0JB
TF9EQVRBLCBpZGVudGlmaWVyLCBhcmdzLm1fbm9kZSwgZGl2b3QsIGRpdm90IC0gc3RhcnQsIGVu
ZCAtIGRpdm90KSwgZmVhdHVyZXMsIG51bUNvbnN0YW50cyk7CiAgICAgfQogICAgIGlmIChmdW5j
Lm1fbm9kZS0+aXNCcmFja2V0QWNjZXNzb3JOb2RlKCkpIHsKICAgICAgICAgQnJhY2tldEFjY2Vz
c29yTm9kZSogYnJhY2tldCA9IHN0YXRpY19jYXN0PEJyYWNrZXRBY2Nlc3Nvck5vZGUqPihmdW5j
Lm1fbm9kZSk7CiAgICAgICAgIEZ1bmN0aW9uQ2FsbEJyYWNrZXROb2RlKiBub2RlID0gbmV3IEZ1
bmN0aW9uQ2FsbEJyYWNrZXROb2RlKEdMT0JBTF9EQVRBLCBicmFja2V0LT5iYXNlKCksIGJyYWNr
ZXQtPnN1YnNjcmlwdCgpLCBhcmdzLm1fbm9kZSwgZGl2b3QsIGRpdm90IC0gc3RhcnQsIGVuZCAt
IGRpdm90KTsKICAgICAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oYnJhY2tldC0+ZGl2
b3QoKSwgYnJhY2tldC0+ZW5kT2Zmc2V0KCkpOwotICAgICAgICByZXR1cm4gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgZmVhdHVyZXMpOworICAgICAgICByZXR1
cm4gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgZmVhdHVyZXMs
IG51bUNvbnN0YW50cyk7CiAgICAgfQogICAgIEFTU0VSVChmdW5jLm1fbm9kZS0+aXNEb3RBY2Nl
c3Nvck5vZGUoKSk7CiAgICAgRG90QWNjZXNzb3JOb2RlKiBkb3QgPSBzdGF0aWNfY2FzdDxEb3RB
Y2Nlc3Nvck5vZGUqPihmdW5jLm1fbm9kZSk7CiAgICAgRnVuY3Rpb25DYWxsRG90Tm9kZSogbm9k
ZSA9IG5ldyBGdW5jdGlvbkNhbGxEb3ROb2RlKEdMT0JBTF9EQVRBLCBkb3QtPmJhc2UoKSwgZG90
LT5pZGVudGlmaWVyKCksIGFyZ3MubV9ub2RlLCBkaXZvdCwgZGl2b3QgLSBzdGFydCwgZW5kIC0g
ZGl2b3QpOwogICAgIG5vZGUtPnNldFN1YmV4cHJlc3Npb25JbmZvKGRvdC0+ZGl2b3QoKSwgZG90
LT5lbmRPZmZzZXQoKSk7Ci0gICAgcmV0dXJuIGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG5vZGUsIGZlYXR1cmVzKTsKKyAgICByZXR1cm4gY3JlYXRlTm9kZUZlYXR1cmVJ
bmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgZmVhdHVyZXMsIG51bUNvbnN0YW50cyk7CiB9CiAK
IHN0YXRpYyBFeHByZXNzaW9uTm9kZSogbWFrZVR5cGVPZk5vZGUodm9pZCogZ2xvYmFsUHRyLCBF
eHByZXNzaW9uTm9kZSogZXhwcikKSW5kZXg6IGtqcy9ub2Rlcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a2pzL25vZGVzLmNwcAkocmV2aXNpb24gMzU1NTYpCisrKyBranMvbm9kZXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMjYsNyArMjI2LDcgQEAgUmVnaXN0ZXJJRCogTnVsbE5vZGU6OmVtaXRDb2Rl
KENvZGVHZW5lcgogewogICAgIGlmIChkc3QgPT0gaWdub3JlZFJlc3VsdCgpKQogICAgICAgICBy
ZXR1cm4gMDsKLSAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5maW5hbERl
c3RpbmF0aW9uKGRzdCksIGpzTnVsbCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRMb2Fk
KGRzdCwganNOdWxsKCkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0g
Qm9vbGVhbk5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjM1LDcg
KzIzNSw3IEBAIFJlZ2lzdGVySUQqIEJvb2xlYW5Ob2RlOjplbWl0Q29kZShDb2RlR2UKIHsKICAg
ICBpZiAoZHN0ID09IGlnbm9yZWRSZXN1bHQoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0TG9hZChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCBt
X3ZhbHVlKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRMb2FkKGRzdCwgbV92YWx1ZSk7CiB9
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBOdW1iZXJOb2RlIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNDQsNyArMjQ0LDcgQEAgUmVnaXN0ZXJJ
RCogTnVtYmVyTm9kZTo6ZW1pdENvZGUoQ29kZUdlbgogewogICAgIGlmIChkc3QgPT0gaWdub3Jl
ZFJlc3VsdCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRM
b2FkKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIG1fZG91YmxlKTsKKyAgICByZXR1
cm4gZ2VuZXJhdG9yLmVtaXRMb2FkKGRzdCwgbV9kb3VibGUpOwogfQogCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0gU3RyaW5nTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQpAQCAtMjU1LDcgKzI1NSw3IEBAIFJlZ2lzdGVySUQqIFN0cmluZ05vZGU6OmVt
aXRDb2RlKENvZGVHZW4KICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBXZSBhdG9taXplIGNv
bnN0YW50IHN0cmluZ3MsIGluIGNhc2UgdGhleSdyZSBsYXRlciB1c2VkIGluIHByb3BlcnR5IGxv
b2t1cC4KLSAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5maW5hbERlc3Rp
bmF0aW9uKGRzdCksIGpzT3duZWRTdHJpbmcoZ2VuZXJhdG9yLmdsb2JhbEV4ZWMoKSwgSWRlbnRp
ZmllcihnZW5lcmF0b3IuZ2xvYmFsRXhlYygpLCBtX3ZhbHVlKS51c3RyaW5nKCkpKTsKKyAgICBy
ZXR1cm4gZ2VuZXJhdG9yLmVtaXRMb2FkKGRzdCwganNPd25lZFN0cmluZyhnZW5lcmF0b3IuZ2xv
YmFsRXhlYygpLCBJZGVudGlmaWVyKGdlbmVyYXRvci5nbG9iYWxFeGVjKCksIG1fdmFsdWUpLnVz
dHJpbmcoKSkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUmVnRXhw
Tm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMzIzLDcgKzMyMyw3
IEBAIFJlZ2lzdGVySUQqIEFycmF5Tm9kZTo6ZW1pdENvZGUoQ29kZUdlbmUKICAgICB9CiAKICAg
ICBpZiAobV9lbGlzaW9uKSB7Ci0gICAgICAgIFJlZ2lzdGVySUQqIHZhbHVlID0gZ2VuZXJhdG9y
LmVtaXRMb2FkKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwganNOdW1iZXIoZ2VuZXJhdG9yLmds
b2JhbEV4ZWMoKSwgbV9lbGlzaW9uICsgbGVuZ3RoKSk7CisgICAgICAgIFJlZ2lzdGVySUQqIHZh
bHVlID0gZ2VuZXJhdG9yLmVtaXRMb2FkKDAsIGpzTnVtYmVyKGdlbmVyYXRvci5nbG9iYWxFeGVj
KCksIG1fZWxpc2lvbiArIGxlbmd0aCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdFB1dEJ5SWQo
YXJyYXkuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCB2YWx1ZSk7CiAg
ICAgfQogCkBAIC01NzUsNyArNTc1LDcgQEAgUmVnaXN0ZXJJRCogUG9zdGZpeEVycm9yTm9kZTo6
ZW1pdENvZGUoQwogUmVnaXN0ZXJJRCogRGVsZXRlUmVzb2x2ZU5vZGU6OmVtaXRDb2RlKENvZGVH
ZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewogICAgIGlmIChnZW5lcmF0
b3IucmVnaXN0ZXJGb3JMb2NhbChtX2lkZW50KSkKLSAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5l
bWl0TG9hZChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCBmYWxzZSk7CisgICAgICAg
IHJldHVybiBnZW5lcmF0b3IuZW1pdFVuZXhwZWN0ZWRMb2FkKGdlbmVyYXRvci5maW5hbERlc3Rp
bmF0aW9uKGRzdCksIGZhbHNlKTsKIAogICAgIGdlbmVyYXRvci5lbWl0RXhwcmVzc2lvbkluZm8o
bV9kaXZvdCwgbV9zdGFydE9mZnNldCwgbV9lbmRPZmZzZXQpOwogICAgIFJlZ2lzdGVySUQqIGJh
c2UgPSBnZW5lcmF0b3IuZW1pdFJlc29sdmVCYXNlKGdlbmVyYXRvci50ZW1wRGVzdGluYXRpb24o
ZHN0KSwgbV9pZGVudCk7CkBAIC02MTAsNyArNjEwLDcgQEAgUmVnaXN0ZXJJRCogRGVsZXRlVmFs
dWVOb2RlOjplbWl0Q29kZShDbwogICAgIGdlbmVyYXRvci5lbWl0Tm9kZShpZ25vcmVkUmVzdWx0
KCksIG1fZXhwci5nZXQoKSk7CiAKICAgICAvLyBkZWxldGUgb24gYSBub24tbG9jYXRpb24gZXhw
cmVzc2lvbiBpZ25vcmVzIHRoZSB2YWx1ZSBhbmQgcmV0dXJucyB0cnVlCi0gICAgcmV0dXJuIGdl
bmVyYXRvci5lbWl0TG9hZChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3QpLCB0cnVlKTsK
KyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRVbmV4cGVjdGVkTG9hZChnZW5lcmF0b3IuZmluYWxE
ZXN0aW5hdGlvbihkc3QpLCB0cnVlKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIFZvaWROb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAg
LTYyMiw3ICs2MjIsNyBAQCBSZWdpc3RlcklEKiBWb2lkTm9kZTo6ZW1pdENvZGUoQ29kZUdlbmVy
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcjAgPSBn
ZW5lcmF0b3IuZW1pdE5vZGUobV9leHByLmdldCgpKTsKLSAgICByZXR1cm4gZ2VuZXJhdG9yLmVt
aXRMb2FkKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwgcjAuZ2V0KCkpLCBqc1VuZGVm
aW5lZCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRMb2FkKGRzdCwganNVbmRlZmluZWQo
KSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUeXBlT2ZWYWx1ZU5v
ZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTEzNzMsNyArMTM3Myw3
IEBAIFJlZ2lzdGVySUQqIFJldHVybk5vZGU6OmVtaXRDb2RlKENvZGVHZW4KICAgICBpZiAoZ2Vu
ZXJhdG9yLmNvZGVUeXBlKCkgIT0gRnVuY3Rpb25Db2RlKQogICAgICAgICByZXR1cm4gZW1pdFRo
cm93RXJyb3IoZ2VuZXJhdG9yLCBTeW50YXhFcnJvciwgIkludmFsaWQgcmV0dXJuIHN0YXRlbWVu
dC4iKTsKICAgICAgICAgCi0gICAgUmVnaXN0ZXJJRCogcjAgPSBtX3ZhbHVlID8gZ2VuZXJhdG9y
LmVtaXROb2RlKGRzdCwgbV92YWx1ZS5nZXQoKSkgOiBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJh
dG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSwganNVbmRlZmluZWQoKSk7CisgICAgUmVnaXN0ZXJJ
RCogcjAgPSBtX3ZhbHVlID8gZ2VuZXJhdG9yLmVtaXROb2RlKGRzdCwgbV92YWx1ZS5nZXQoKSkg
OiBnZW5lcmF0b3IuZW1pdExvYWQoZHN0LCBqc1VuZGVmaW5lZCgpKTsKICAgICBpZiAoZ2VuZXJh
dG9yLnNjb3BlRGVwdGgoKSkgewogICAgICAgICBSZWZQdHI8TGFiZWxJRD4gbDAgPSBnZW5lcmF0
b3IubmV3TGFiZWwoKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wU2NvcGVzKGwwLmdldCgp
LCAwKTsKQEAgLTE2NDAsMTIgKzE2NDAsMTMgQEAgUmVnaXN0ZXJJRCogVHJ5Tm9kZTo6ZW1pdENv
ZGUoQ29kZUdlbmVyYQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gU2NvcGVO
b2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVNjb3BlTm9kZTo6U2NvcGVOb2Rl
KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgU291cmNlRWxlbWVudHMqIGNoaWxkcmVuLCBWYXJT
dGFjayogdmFyU3RhY2ssIEZ1bmN0aW9uU3RhY2sqIGZ1bmNTdGFjaywgYm9vbCB1c2VzRXZhbCwg
Ym9vbCBuZWVkc0Nsb3N1cmUpCitTY29wZU5vZGU6OlNjb3BlTm9kZShKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEsIFNvdXJjZUVsZW1lbnRzKiBjaGlsZHJlbiwgVmFyU3RhY2sqIHZhclN0YWNrLCBG
dW5jdGlvblN0YWNrKiBmdW5jU3RhY2ssIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJl
LCBpbnQgbnVtQ29uc3RhbnRzKQogICAgIDogQmxvY2tOb2RlKGdsb2JhbERhdGEsIGNoaWxkcmVu
KQogICAgICwgbV9zb3VyY2VVUkwoZ2xvYmFsRGF0YS0+cGFyc2VyLT5zb3VyY2VVUkwoKSkKICAg
ICAsIG1fc291cmNlSWQoZ2xvYmFsRGF0YS0+cGFyc2VyLT5zb3VyY2VJZCgpKQogICAgICwgbV91
c2VzRXZhbCh1c2VzRXZhbCkKICAgICAsIG1fbmVlZHNDbG9zdXJlKG5lZWRzQ2xvc3VyZSkKKyAg
ICAsIG1fbnVtQ29uc3RhbnRzKG51bUNvbnN0YW50cykKIHsKICAgICBpZiAodmFyU3RhY2spCiAg
ICAgICAgIG1fdmFyU3RhY2sgPSAqdmFyU3RhY2s7CkBAIC0xNjU3LDIxICsxNjU4LDIxIEBAIFNj
b3BlTm9kZTo6U2NvcGVOb2RlKEpTR2xvYmFsRGF0YSogZ2xvYmEKIAogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tIFByb2dyYW1Ob2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKLVByb2dyYW1Ob2RlOjpQcm9ncmFtTm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEs
IFNvdXJjZUVsZW1lbnRzKiBjaGlsZHJlbiwgVmFyU3RhY2sqIHZhclN0YWNrLCBGdW5jdGlvblN0
YWNrKiBmdW5jU3RhY2ssIFNvdXJjZVByb3ZpZGVyKiBzb3VyY2VQcm92aWRlciwgYm9vbCB1c2Vz
RXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUpCi0gICAgOiBTY29wZU5vZGUoZ2xvYmFsRGF0YSwgY2hp
bGRyZW4sIHZhclN0YWNrLCBmdW5jU3RhY2ssIHVzZXNFdmFsLCBuZWVkc0Nsb3N1cmUpCitQcm9n
cmFtTm9kZTo6UHJvZ3JhbU5vZGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBTb3VyY2VFbGVt
ZW50cyogY2hpbGRyZW4sIFZhclN0YWNrKiB2YXJTdGFjaywgRnVuY3Rpb25TdGFjayogZnVuY1N0
YWNrLCBTb3VyY2VQcm92aWRlciogc291cmNlUHJvdmlkZXIsIGJvb2wgdXNlc0V2YWwsIGJvb2wg
bmVlZHNDbG9zdXJlLCBpbnQgbnVtQ29uc3RhbnRzKQorICAgIDogU2NvcGVOb2RlKGdsb2JhbERh
dGEsIGNoaWxkcmVuLCB2YXJTdGFjaywgZnVuY1N0YWNrLCB1c2VzRXZhbCwgbmVlZHNDbG9zdXJl
LCBudW1Db25zdGFudHMpCiAgICAgLCBtX3NvdXJjZVByb3ZpZGVyKHNvdXJjZVByb3ZpZGVyKQog
ewogfQogCi1Qcm9ncmFtTm9kZSogUHJvZ3JhbU5vZGU6OmNyZWF0ZShKU0dsb2JhbERhdGEqIGds
b2JhbERhdGEsIFNvdXJjZUVsZW1lbnRzKiBjaGlsZHJlbiwgVmFyU3RhY2sqIHZhclN0YWNrLCBG
dW5jdGlvblN0YWNrKiBmdW5jU3RhY2ssIFNvdXJjZVByb3ZpZGVyKiBzb3VyY2VQcm92aWRlciwg
Ym9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUpCitQcm9ncmFtTm9kZSogUHJvZ3JhbU5v
ZGU6OmNyZWF0ZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFNvdXJjZUVsZW1lbnRzKiBjaGls
ZHJlbiwgVmFyU3RhY2sqIHZhclN0YWNrLCBGdW5jdGlvblN0YWNrKiBmdW5jU3RhY2ssIFNvdXJj
ZVByb3ZpZGVyKiBzb3VyY2VQcm92aWRlciwgYm9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1
cmUsIGludCBudW1Db25zdGFudHMpCiB7Ci0gICAgcmV0dXJuIG5ldyBQcm9ncmFtTm9kZShnbG9i
YWxEYXRhLCBjaGlsZHJlbiwgdmFyU3RhY2ssIGZ1bmNTdGFjaywgc291cmNlUHJvdmlkZXIsIHVz
ZXNFdmFsLCBuZWVkc0Nsb3N1cmUpOworICAgIHJldHVybiBuZXcgUHJvZ3JhbU5vZGUoZ2xvYmFs
RGF0YSwgY2hpbGRyZW4sIHZhclN0YWNrLCBmdW5jU3RhY2ssIHNvdXJjZVByb3ZpZGVyLCB1c2Vz
RXZhbCwgbmVlZHNDbG9zdXJlLCBudW1Db25zdGFudHMpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gRXZhbE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotRXZhbE5vZGU6OkV2YWxOb2RlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgU291cmNlRWxl
bWVudHMqIGNoaWxkcmVuLCBWYXJTdGFjayogdmFyU3RhY2ssIEZ1bmN0aW9uU3RhY2sqIGZ1bmNT
dGFjaywgU291cmNlUHJvdmlkZXIqIHNvdXJjZVByb3ZpZGVyLCBib29sIHVzZXNFdmFsLCBib29s
IG5lZWRzQ2xvc3VyZSkKLSAgICA6IFNjb3BlTm9kZShnbG9iYWxEYXRhLCBjaGlsZHJlbiwgdmFy
U3RhY2ssIGZ1bmNTdGFjaywgdXNlc0V2YWwsIG5lZWRzQ2xvc3VyZSkKK0V2YWxOb2RlOjpFdmFs
Tm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFNvdXJjZUVsZW1lbnRzKiBjaGlsZHJlbiwg
VmFyU3RhY2sqIHZhclN0YWNrLCBGdW5jdGlvblN0YWNrKiBmdW5jU3RhY2ssIFNvdXJjZVByb3Zp
ZGVyKiBzb3VyY2VQcm92aWRlciwgYm9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUsIGlu
dCBudW1Db25zdGFudHMpCisgICAgOiBTY29wZU5vZGUoZ2xvYmFsRGF0YSwgY2hpbGRyZW4sIHZh
clN0YWNrLCBmdW5jU3RhY2ssIHVzZXNFdmFsLCBuZWVkc0Nsb3N1cmUsIG51bUNvbnN0YW50cykK
ICAgICAsIG1fc291cmNlUHJvdmlkZXIoc291cmNlUHJvdmlkZXIpCiB7CiB9CkBAIC0xNzAyLDE1
ICsxNzAzLDE1IEBAIHZvaWQgRXZhbE5vZGU6OmdlbmVyYXRlQ29kZShTY29wZUNoYWluTm8KICAg
ICBnZW5lcmF0b3IuZ2VuZXJhdGUoKTsKIH0KIAotRXZhbE5vZGUqIEV2YWxOb2RlOjpjcmVhdGUo
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBTb3VyY2VFbGVtZW50cyogY2hpbGRyZW4sIFZhclN0
YWNrKiB2YXJTdGFjaywgRnVuY3Rpb25TdGFjayogZnVuY1N0YWNrLCBTb3VyY2VQcm92aWRlciog
c291cmNlUHJvdmlkZXIsIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlKQorRXZhbE5v
ZGUqIEV2YWxOb2RlOjpjcmVhdGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBTb3VyY2VFbGVt
ZW50cyogY2hpbGRyZW4sIFZhclN0YWNrKiB2YXJTdGFjaywgRnVuY3Rpb25TdGFjayogZnVuY1N0
YWNrLCBTb3VyY2VQcm92aWRlciogc291cmNlUHJvdmlkZXIsIGJvb2wgdXNlc0V2YWwsIGJvb2wg
bmVlZHNDbG9zdXJlLCBpbnQgbnVtQ29uc3RhbnRzKQogewotICAgIHJldHVybiBuZXcgRXZhbE5v
ZGUoZ2xvYmFsRGF0YSwgY2hpbGRyZW4sIHZhclN0YWNrLCBmdW5jU3RhY2ssIHNvdXJjZVByb3Zp
ZGVyLCB1c2VzRXZhbCwgbmVlZHNDbG9zdXJlKTsKKyAgICByZXR1cm4gbmV3IEV2YWxOb2RlKGds
b2JhbERhdGEsIGNoaWxkcmVuLCB2YXJTdGFjaywgZnVuY1N0YWNrLCBzb3VyY2VQcm92aWRlciwg
dXNlc0V2YWwsIG5lZWRzQ2xvc3VyZSwgbnVtQ29uc3RhbnRzKTsKIH0KIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tIEZ1bmN0aW9uQm9keU5vZGUgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotRnVuY3Rpb25Cb2R5Tm9kZTo6RnVuY3Rpb25Cb2R5Tm9kZShKU0dsb2Jh
bERhdGEqIGdsb2JhbERhdGEsIFNvdXJjZUVsZW1lbnRzKiBjaGlsZHJlbiwgVmFyU3RhY2sqIHZh
clN0YWNrLCBGdW5jdGlvblN0YWNrKiBmdW5jU3RhY2ssIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVl
ZHNDbG9zdXJlKQotICAgIDogU2NvcGVOb2RlKGdsb2JhbERhdGEsIGNoaWxkcmVuLCB2YXJTdGFj
aywgZnVuY1N0YWNrLCB1c2VzRXZhbCwgbmVlZHNDbG9zdXJlKQorRnVuY3Rpb25Cb2R5Tm9kZTo6
RnVuY3Rpb25Cb2R5Tm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFNvdXJjZUVsZW1lbnRz
KiBjaGlsZHJlbiwgVmFyU3RhY2sqIHZhclN0YWNrLCBGdW5jdGlvblN0YWNrKiBmdW5jU3RhY2ss
IGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlLCBpbnQgbnVtQ29uc3RhbnRzKQorICAg
IDogU2NvcGVOb2RlKGdsb2JhbERhdGEsIGNoaWxkcmVuLCB2YXJTdGFjaywgZnVuY1N0YWNrLCB1
c2VzRXZhbCwgbmVlZHNDbG9zdXJlLCBudW1Db25zdGFudHMpCiB7CiB9CiAKQEAgLTE3MjAsMTQg
KzE3MjEsMTQgQEAgdm9pZCBGdW5jdGlvbkJvZHlOb2RlOjptYXJrKCkKICAgICAgICAgbV9jb2Rl
LT5tYXJrKCk7CiB9CiAKLUZ1bmN0aW9uQm9keU5vZGUqIEZ1bmN0aW9uQm9keU5vZGU6OmNyZWF0
ZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFNvdXJjZUVsZW1lbnRzKiBjaGlsZHJlbiwgVmFy
U3RhY2sqIHZhclN0YWNrLCBGdW5jdGlvblN0YWNrKiBmdW5jU3RhY2ssIGJvb2wgdXNlc0V2YWws
IGJvb2wgbmVlZHNDbG9zdXJlKQorRnVuY3Rpb25Cb2R5Tm9kZSogRnVuY3Rpb25Cb2R5Tm9kZTo6
Y3JlYXRlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgU291cmNlRWxlbWVudHMqIGNoaWxkcmVu
LCBWYXJTdGFjayogdmFyU3RhY2ssIEZ1bmN0aW9uU3RhY2sqIGZ1bmNTdGFjaywgYm9vbCB1c2Vz
RXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUsIGludCBudW1Db25zdGFudHMpCiB7Ci0gICAgcmV0dXJu
IG5ldyBGdW5jdGlvbkJvZHlOb2RlKGdsb2JhbERhdGEsIGNoaWxkcmVuLCB2YXJTdGFjaywgZnVu
Y1N0YWNrLCB1c2VzRXZhbCwgbmVlZHNDbG9zdXJlKTsKKyAgICByZXR1cm4gbmV3IEZ1bmN0aW9u
Qm9keU5vZGUoZ2xvYmFsRGF0YSwgY2hpbGRyZW4sIHZhclN0YWNrLCBmdW5jU3RhY2ssIHVzZXNF
dmFsLCBuZWVkc0Nsb3N1cmUsIG51bUNvbnN0YW50cyk7CiB9CiAKLUZ1bmN0aW9uQm9keU5vZGUq
IEZ1bmN0aW9uQm9keU5vZGU6OmNyZWF0ZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFNvdXJj
ZUVsZW1lbnRzKiBjaGlsZHJlbiwgVmFyU3RhY2sqIHZhclN0YWNrLCBGdW5jdGlvblN0YWNrKiBm
dW5jU3RhY2ssIFNvdXJjZVByb3ZpZGVyKiwgYm9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1
cmUpCitGdW5jdGlvbkJvZHlOb2RlKiBGdW5jdGlvbkJvZHlOb2RlOjpjcmVhdGUoSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhLCBTb3VyY2VFbGVtZW50cyogY2hpbGRyZW4sIFZhclN0YWNrKiB2YXJT
dGFjaywgRnVuY3Rpb25TdGFjayogZnVuY1N0YWNrLCBTb3VyY2VQcm92aWRlciosIGJvb2wgdXNl
c0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlLCBpbnQgbnVtQ29uc3RhbnRzKQogewotICAgIHJldHVy
biBuZXcgRnVuY3Rpb25Cb2R5Tm9kZShnbG9iYWxEYXRhLCBjaGlsZHJlbiwgdmFyU3RhY2ssIGZ1
bmNTdGFjaywgdXNlc0V2YWwsIG5lZWRzQ2xvc3VyZSk7CisgICAgcmV0dXJuIG5ldyBGdW5jdGlv
bkJvZHlOb2RlKGdsb2JhbERhdGEsIGNoaWxkcmVuLCB2YXJTdGFjaywgZnVuY1N0YWNrLCB1c2Vz
RXZhbCwgbmVlZHNDbG9zdXJlLCBudW1Db25zdGFudHMpOwogfQogCiB2b2lkIEZ1bmN0aW9uQm9k
eU5vZGU6OmdlbmVyYXRlQ29kZShTY29wZUNoYWluTm9kZSogc2MpCkBAIC0xNzQ3LDcgKzE3NDgs
NyBAQCBSZWdpc3RlcklEKiBGdW5jdGlvbkJvZHlOb2RlOjplbWl0Q29kZShDCiAgICAgZ2VuZXJh
dG9yLmVtaXREZWJ1Z0hvb2soRGlkRW50ZXJDYWxsRnJhbWUsIGZpcnN0TGluZSgpLCBsYXN0TGlu
ZSgpKTsKICAgICBzdGF0ZW1lbnRMaXN0RW1pdENvZGUobV9jaGlsZHJlbiwgZ2VuZXJhdG9yKTsK
ICAgICBpZiAoIW1fY2hpbGRyZW4uc2l6ZSgpIHx8ICFtX2NoaWxkcmVuLmxhc3QoKS0+aXNSZXR1
cm5Ob2RlKCkpIHsKLSAgICAgICAgUmVnaXN0ZXJJRCogcjAgPSBnZW5lcmF0b3IuZW1pdExvYWQo
Z2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICAgICAgUmVnaXN0
ZXJJRCogcjAgPSBnZW5lcmF0b3IuZW1pdExvYWQoMCwganNVbmRlZmluZWQoKSk7CiAgICAgICAg
IGdlbmVyYXRvci5lbWl0RGVidWdIb29rKFdpbGxMZWF2ZUNhbGxGcmFtZSwgZmlyc3RMaW5lKCks
IGxhc3RMaW5lKCkpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdFJldHVybihyMCk7CiAgICAgfQpJ
bmRleDoga2pzL25vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL25vZGVzLmgJKHJldmlzaW9uIDM1
NTU2KQorKysga2pzL25vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNDgsNyArMjE0OCw3IEBA
IG5hbWVzcGFjZSBLSlMgewogCiAgICAgY2xhc3MgU2NvcGVOb2RlIDogcHVibGljIEJsb2NrTm9k
ZSB7CiAgICAgcHVibGljOgotICAgICAgICBTY29wZU5vZGUoSlNHbG9iYWxEYXRhKiwgU291cmNl
RWxlbWVudHMqLCBWYXJTdGFjayosIEZ1bmN0aW9uU3RhY2sqLCBib29sIHVzZXNFdmFsLCBib29s
IG5lZWRzQ2xvc3VyZSkgS0pTX0ZBU1RfQ0FMTDsKKyAgICAgICAgU2NvcGVOb2RlKEpTR2xvYmFs
RGF0YSosIFNvdXJjZUVsZW1lbnRzKiwgVmFyU3RhY2sqLCBGdW5jdGlvblN0YWNrKiwgYm9vbCB1
c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUsIGludCBudW1Db25zdGFudHMpIEtKU19GQVNUX0NB
TEw7CiAKICAgICAgICAgaW50IHNvdXJjZUlkKCkgY29uc3QgS0pTX0ZBU1RfQ0FMTCB7IHJldHVy
biBtX3NvdXJjZUlkOyB9CiAgICAgICAgIGNvbnN0IFVTdHJpbmcmIHNvdXJjZVVSTCgpIGNvbnN0
IEtKU19GQVNUX0NBTEwgeyByZXR1cm4gbV9zb3VyY2VVUkw7IH0KQEAgLTIxNjAsNiArMjE2MCw4
IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICBWYXJTdGFjayYgdmFyU3RhY2soKSB7IHJldHVy
biBtX3ZhclN0YWNrOyB9CiAgICAgICAgIEZ1bmN0aW9uU3RhY2smIGZ1bmN0aW9uU3RhY2soKSB7
IHJldHVybiBtX2Z1bmN0aW9uU3RhY2s7IH0KIAorICAgICAgICBpbnQgbnVtQ29uc3RhbnRzKCkg
eyByZXR1cm4gbV9udW1Db25zdGFudHM7IH0KKwogICAgIHByb3RlY3RlZDoKICAgICAgICAgVmFy
U3RhY2sgbV92YXJTdGFjazsKICAgICAgICAgRnVuY3Rpb25TdGFjayBtX2Z1bmN0aW9uU3RhY2s7
CkBAIC0yMTY5LDExICsyMTcxLDEyIEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICBpbnQgbV9z
b3VyY2VJZDsKICAgICAgICAgYm9vbCBtX3VzZXNFdmFsOwogICAgICAgICBib29sIG1fbmVlZHND
bG9zdXJlOworICAgICAgICBpbnQgbV9udW1Db25zdGFudHM7CiAgICAgfTsKIAogICAgIGNsYXNz
IFByb2dyYW1Ob2RlIDogcHVibGljIFNjb3BlTm9kZSB7CiAgICAgcHVibGljOgotICAgICAgICBz
dGF0aWMgUHJvZ3JhbU5vZGUqIGNyZWF0ZShKU0dsb2JhbERhdGEqLCBTb3VyY2VFbGVtZW50cyos
IFZhclN0YWNrKiwgRnVuY3Rpb25TdGFjayosIFNvdXJjZVByb3ZpZGVyKiwgYm9vbCB1c2VzRXZh
bCwgYm9vbCBuZWVkc0Nsb3N1cmUpIEtKU19GQVNUX0NBTEw7CisgICAgICAgIHN0YXRpYyBQcm9n
cmFtTm9kZSogY3JlYXRlKEpTR2xvYmFsRGF0YSosIFNvdXJjZUVsZW1lbnRzKiwgVmFyU3RhY2sq
LCBGdW5jdGlvblN0YWNrKiwgU291cmNlUHJvdmlkZXIqLCBib29sIHVzZXNFdmFsLCBib29sIG5l
ZWRzQ2xvc3VyZSwgaW50IG51bUNvbnN0YW50cykgS0pTX0ZBU1RfQ0FMTDsKIAogICAgICAgICBQ
cm9ncmFtQ29kZUJsb2NrJiBieXRlQ29kZShTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbikgS0pT
X0ZBU1RfQ0FMTAogICAgICAgICB7CkBAIC0yMTgzLDcgKzIxODYsNyBAQCBuYW1lc3BhY2UgS0pT
IHsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgUHJvZ3JhbU5vZGUoSlNHbG9i
YWxEYXRhKiwgU291cmNlRWxlbWVudHMqLCBWYXJTdGFjayosIEZ1bmN0aW9uU3RhY2sqLCBTb3Vy
Y2VQcm92aWRlciosIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlKSBLSlNfRkFTVF9D
QUxMOworICAgICAgICBQcm9ncmFtTm9kZShKU0dsb2JhbERhdGEqLCBTb3VyY2VFbGVtZW50cyos
IFZhclN0YWNrKiwgRnVuY3Rpb25TdGFjayosIFNvdXJjZVByb3ZpZGVyKiwgYm9vbCB1c2VzRXZh
bCwgYm9vbCBuZWVkc0Nsb3N1cmUsIGludCBudW1Db25zdGFudHMpIEtKU19GQVNUX0NBTEw7CiAK
ICAgICAgICAgdm9pZCBnZW5lcmF0ZUNvZGUoU2NvcGVDaGFpbk5vZGUqKSBLSlNfRkFTVF9DQUxM
OwogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRDb2RlKENvZGVHZW5lcmF0b3ImLCBS
ZWdpc3RlcklEKiA9IDApIEtKU19GQVNUX0NBTEw7CkBAIC0yMTk4LDcgKzIyMDEsNyBAQCBuYW1l
c3BhY2UgS0pTIHsKIAogICAgIGNsYXNzIEV2YWxOb2RlIDogcHVibGljIFNjb3BlTm9kZSB7CiAg
ICAgcHVibGljOgotICAgICAgICBzdGF0aWMgRXZhbE5vZGUqIGNyZWF0ZShKU0dsb2JhbERhdGEq
LCBTb3VyY2VFbGVtZW50cyosIFZhclN0YWNrKiwgRnVuY3Rpb25TdGFjayosIFNvdXJjZVByb3Zp
ZGVyKiwgYm9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUpIEtKU19GQVNUX0NBTEw7Cisg
ICAgICAgIHN0YXRpYyBFdmFsTm9kZSogY3JlYXRlKEpTR2xvYmFsRGF0YSosIFNvdXJjZUVsZW1l
bnRzKiwgVmFyU3RhY2sqLCBGdW5jdGlvblN0YWNrKiwgU291cmNlUHJvdmlkZXIqLCBib29sIHVz
ZXNFdmFsLCBib29sIG5lZWRzQ2xvc3VyZSwgaW50IG51bUNvbnN0YW50cykgS0pTX0ZBU1RfQ0FM
TDsKIAogICAgICAgICBFdmFsQ29kZUJsb2NrJiBieXRlQ29kZShTY29wZUNoYWluTm9kZSogc2Nv
cGVDaGFpbikgS0pTX0ZBU1RfQ0FMTAogICAgICAgICB7CkBAIC0yMjA4LDcgKzIyMTEsNyBAQCBu
YW1lc3BhY2UgS0pTIHsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgRXZhbE5v
ZGUoSlNHbG9iYWxEYXRhKiwgU291cmNlRWxlbWVudHMqLCBWYXJTdGFjayosIEZ1bmN0aW9uU3Rh
Y2sqLCBTb3VyY2VQcm92aWRlciosIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlKSBL
SlNfRkFTVF9DQUxMOworICAgICAgICBFdmFsTm9kZShKU0dsb2JhbERhdGEqLCBTb3VyY2VFbGVt
ZW50cyosIFZhclN0YWNrKiwgRnVuY3Rpb25TdGFjayosIFNvdXJjZVByb3ZpZGVyKiwgYm9vbCB1
c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUsIGludCBudW1Db25zdGFudHMpIEtKU19GQVNUX0NB
TEw7CiAKICAgICAgICAgdm9pZCBnZW5lcmF0ZUNvZGUoU2NvcGVDaGFpbk5vZGUqKSBLSlNfRkFT
VF9DQUxMOwogICAgICAgICB2aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRDb2RlKENvZGVHZW5lcmF0
b3ImLCBSZWdpc3RlcklEKiA9IDApIEtKU19GQVNUX0NBTEw7CkBAIC0yMjIwLDggKzIyMjMsOCBA
QCBuYW1lc3BhY2UgS0pTIHsKIAogICAgIGNsYXNzIEZ1bmN0aW9uQm9keU5vZGUgOiBwdWJsaWMg
U2NvcGVOb2RlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBGdW5jdGlvbkJvZHlOb2Rl
KiBjcmVhdGUoSlNHbG9iYWxEYXRhKiwgU291cmNlRWxlbWVudHMqLCBWYXJTdGFjayosIEZ1bmN0
aW9uU3RhY2sqLCBTb3VyY2VQcm92aWRlciosIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9z
dXJlKSBLSlNfRkFTVF9DQUxMOwotICAgICAgICBzdGF0aWMgRnVuY3Rpb25Cb2R5Tm9kZSogY3Jl
YXRlKEpTR2xvYmFsRGF0YSosIFNvdXJjZUVsZW1lbnRzKiwgVmFyU3RhY2sqLCBGdW5jdGlvblN0
YWNrKiwgYm9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUpIEtKU19GQVNUX0NBTEw7Cisg
ICAgICAgIHN0YXRpYyBGdW5jdGlvbkJvZHlOb2RlKiBjcmVhdGUoSlNHbG9iYWxEYXRhKiwgU291
cmNlRWxlbWVudHMqLCBWYXJTdGFjayosIEZ1bmN0aW9uU3RhY2sqLCBTb3VyY2VQcm92aWRlcios
IGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlLCBpbnQgbnVtQ29uc3RhbnRzKSBLSlNf
RkFTVF9DQUxMOworICAgICAgICBzdGF0aWMgRnVuY3Rpb25Cb2R5Tm9kZSogY3JlYXRlKEpTR2xv
YmFsRGF0YSosIFNvdXJjZUVsZW1lbnRzKiwgVmFyU3RhY2sqLCBGdW5jdGlvblN0YWNrKiwgYm9v
bCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUsIGludCBudW1Db25zdGFudHMpIEtKU19GQVNU
X0NBTEw7CiAKICAgICAgICAgVmVjdG9yPElkZW50aWZpZXI+JiBwYXJhbWV0ZXJzKCkgS0pTX0ZB
U1RfQ0FMTCB7IHJldHVybiBtX3BhcmFtZXRlcnM7IH0KICAgICAgICAgVVN0cmluZyBwYXJhbVN0
cmluZygpIGNvbnN0IEtKU19GQVNUX0NBTEw7CkBAIC0yMjQ5LDcgKzIyNTIsNyBAQCBuYW1lc3Bh
Y2UgS0pTIHsKICAgICAgICAgdm9pZCBzZXRTb3VyY2UoY29uc3QgU291cmNlUmFuZ2UmIHNvdXJj
ZSkgeyBtX3NvdXJjZSA9IHNvdXJjZTsgfSAKICAgICAgICAgVVN0cmluZyB0b1NvdXJjZVN0cmlu
ZygpIGNvbnN0IEtKU19GQVNUX0NBTEwgeyByZXR1cm4gVVN0cmluZygieyIpICsgbV9zb3VyY2Uu
dG9TdHJpbmcoKSArIFVTdHJpbmcoIn0iKTsgfQogICAgIHByb3RlY3RlZDoKLSAgICAgICAgRnVu
Y3Rpb25Cb2R5Tm9kZShKU0dsb2JhbERhdGEqLCBTb3VyY2VFbGVtZW50cyosIFZhclN0YWNrKiwg
RnVuY3Rpb25TdGFjayosIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlKSBLSlNfRkFT
VF9DQUxMOworICAgICAgICBGdW5jdGlvbkJvZHlOb2RlKEpTR2xvYmFsRGF0YSosIFNvdXJjZUVs
ZW1lbnRzKiwgVmFyU3RhY2sqLCBGdW5jdGlvblN0YWNrKiwgYm9vbCB1c2VzRXZhbCwgYm9vbCBu
ZWVkc0Nsb3N1cmUsIGludCBudW1Db25zdGFudHMpIEtKU19GQVNUX0NBTEw7CiAKICAgICBwcml2
YXRlOgogICAgICAgICB2b2lkIGdlbmVyYXRlQ29kZShTY29wZUNoYWluTm9kZSopIEtKU19GQVNU
X0NBTEw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>22651</attachid>
            <date>2008-08-05 03:33:52 -0700</date>
            <delta_ts>2008-08-05 03:33:52 -0700</delta_ts>
            <desc>SunSpider numbers with r35554</desc>
            <filename>old-numbers.txt</filename>
            <type>text/plain</type>
            <size>3647</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">VEVTVCAgICAgICAgICAgICAgICAgICBDT01QQVJJU09OICAgICAgICAgICAgRlJPTSAgICAgICAg
ICAgICAgICAgVE8gICAgICAgICAgICAgREVUQUlMUwoKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioq
IFRPVEFMICoqOiAgICAgICAgICAgMS4wMTh4IGFzIGZhc3QgICAgMTg2Ni4ybXMgKy8tIDAuMSUg
ICAxODMzLjJtcyArLy0gMC4xJSAgICAgc2lnbmlmaWNhbnQKCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CgogIDNkOiAgICAgICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAyNTMuNG1zICsvLSAw
LjElICAgIDI1My4zbXMgKy8tIDAuMSUgCiAgICBjdWJlOiAgICAgICAgICAgICAgKjEuMDQ1eCBh
cyBzbG93KiAgICA4Mi4ybXMgKy8tIDAuMyUgICAgIDg1LjltcyArLy0gMC4yJSAgICAgc2lnbmlm
aWNhbnQKICAgIG1vcnBoOiAgICAgICAgICAgICAxLjAzMHggYXMgZmFzdCAgICAgIDgzLjdtcyAr
Ly0gMC4yJSAgICAgODEuM21zICsvLSAwLjIlICAgICBzaWduaWZpY2FudAogICAgcmF5dHJhY2U6
ICAgICAgICAgIDEuMDE2eCBhcyBmYXN0ICAgICAgODcuNG1zICsvLSAwLjIlICAgICA4Ni4xbXMg
Ky8tIDAuMSUgICAgIHNpZ25pZmljYW50CgogIGFjY2VzczogICAgICAgICAgICAgIDEuMDUweCBh
cyBmYXN0ICAgICAyNTUuM21zICsvLSAwLjElICAgIDI0My4xbXMgKy8tIDAuMSUgICAgIHNpZ25p
ZmljYW50CiAgICBiaW5hcnktdHJlZXM6ICAgICAgKjEuMDEyeCBhcyBzbG93KiAgICAzMi41bXMg
Ky8tIDAuNCUgICAgIDMyLjltcyArLy0gMC4zJSAgICAgc2lnbmlmaWNhbnQKICAgIGZhbm5rdWNo
OiAgICAgICAgICAxLjEzMnggYXMgZmFzdCAgICAgIDYxLjNtcyArLy0gMC4yJSAgICAgNTQuMm1z
ICsvLSAwLjIlICAgICBzaWduaWZpY2FudAogICAgbmJvZHk6ICAgICAgICAgICAgIDEuMDQweCBh
cyBmYXN0ICAgICAxMzUuNW1zICsvLSAwLjElICAgIDEzMC4zbXMgKy8tIDAuMSUgICAgIHNpZ25p
ZmljYW50CiAgICBuc2lldmU6ICAgICAgICAgICAgMS4wMDh4IGFzIGZhc3QgICAgICAyNS45bXMg
Ky8tIDAuNCUgICAgIDI1LjdtcyArLy0gMC41JSAgICAgc2lnbmlmaWNhbnQKCiAgYml0b3BzOiAg
ICAgICAgICAgICAgMS4wNDd4IGFzIGZhc3QgICAgIDE3Mi4wbXMgKy8tIDAuMSUgICAgMTY0LjNt
cyArLy0gMC4xJSAgICAgc2lnbmlmaWNhbnQKICAgIDNiaXQtYml0cy1pbi1ieXRlOiAqMS4wNjN4
IGFzIHNsb3cqICAgIDI0LjBtcyArLy0gMC4zJSAgICAgMjUuNW1zICsvLSAwLjYlICAgICBzaWdu
aWZpY2FudAogICAgYml0cy1pbi1ieXRlOiAgICAgIDEuMDgweCBhcyBmYXN0ICAgICAgMzAuN21z
ICsvLSAwLjQlICAgICAyOC41bXMgKy8tIDAuNSUgICAgIHNpZ25pZmljYW50CiAgICBiaXR3aXNl
LWFuZDogICAgICAgMS4wMzl4IGFzIGZhc3QgICAgICA1OC4ybXMgKy8tIDAuMiUgICAgIDU2LjBt
cyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQKICAgIG5zaWV2ZS1iaXRzOiAgICAgICAxLjA4OHgg
YXMgZmFzdCAgICAgIDU5LjBtcyArLy0gMC4xJSAgICAgNTQuMm1zICsvLSAwLjIlICAgICBzaWdu
aWZpY2FudAoKICBjb250cm9sZmxvdzogICAgICAgICAqMS4wNTd4IGFzIHNsb3cqICAgIDE4Ljlt
cyArLy0gMC40JSAgICAgMjAuMG1zICsvLSAwLjQlICAgICBzaWduaWZpY2FudAogICAgcmVjdXJz
aXZlOiAgICAgICAgICoxLjA1N3ggYXMgc2xvdyogICAgMTguOW1zICsvLSAwLjQlICAgICAyMC4w
bXMgKy8tIDAuNCUgICAgIHNpZ25pZmljYW50CgogIGNyeXB0bzogICAgICAgICAgICAgIDEuMDI1
eCBhcyBmYXN0ICAgICAxMTAuNG1zICsvLSAwLjIlICAgIDEwNy44bXMgKy8tIDAuMiUgICAgIHNp
Z25pZmljYW50CiAgICBhZXM6ICAgICAgICAgICAgICAgMS4wMzl4IGFzIGZhc3QgICAgICAzNS41
bXMgKy8tIDAuNCUgICAgIDM0LjJtcyArLy0gMC4zJSAgICAgc2lnbmlmaWNhbnQKICAgIG1kNTog
ICAgICAgICAgICAgICAxLjAyMXggYXMgZmFzdCAgICAgIDM3LjdtcyArLy0gMC4zJSAgICAgMzYu
OW1zICsvLSAwLjIlICAgICBzaWduaWZpY2FudAogICAgc2hhMTogICAgICAgICAgICAgIDEuMDE2
eCBhcyBmYXN0ICAgICAgMzcuMm1zICsvLSAwLjMlICAgICAzNi42bXMgKy8tIDAuNCUgICAgIHNp
Z25pZmljYW50CgogIGRhdGU6ICAgICAgICAgICAgICAgICoxLjAwNnggYXMgc2xvdyogICAxNjUu
NW1zICsvLSAwLjElICAgIDE2Ni42bXMgKy8tIDAuMiUgICAgIHNpZ25pZmljYW50CiAgICBmb3Jt
YXQtdG9mdGU6ICAgICAgKjEuMDE1eCBhcyBzbG93KiAgICA5OC40bXMgKy8tIDAuMSUgICAgIDk5
LjltcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQKICAgIGZvcm1hdC14cGFyYjogICAgICAxLjAw
NnggYXMgZmFzdCAgICAgIDY3LjFtcyArLy0gMC4yJSAgICAgNjYuN21zICsvLSAwLjIlICAgICBz
aWduaWZpY2FudAoKICBtYXRoOiAgICAgICAgICAgICAgICAxLjAzNnggYXMgZmFzdCAgICAgMjEw
LjFtcyArLy0gMC4xJSAgICAyMDIuOG1zICsvLSAwLjElICAgICBzaWduaWZpY2FudAogICAgY29y
ZGljOiAgICAgICAgICAgIDEuMDU3eCBhcyBmYXN0ICAgICAgNjAuNG1zICsvLSAwLjIlICAgICA1
Ny4xbXMgKy8tIDAuMiUgICAgIHNpZ25pZmljYW50CiAgICBwYXJ0aWFsLXN1bXM6ICAgICAgMS4w
MTR4IGFzIGZhc3QgICAgIDExMC41bXMgKy8tIDAuMSUgICAgMTA5LjBtcyArLy0gMC4yJSAgICAg
c2lnbmlmaWNhbnQKICAgIHNwZWN0cmFsLW5vcm06ICAgICAxLjA2OHggYXMgZmFzdCAgICAgIDM5
LjJtcyArLy0gMC4zJSAgICAgMzYuN21zICsvLSAwLjQlICAgICBzaWduaWZpY2FudAoKICByZWdl
eHA6ICAgICAgICAgICAgICAxLjAwNHggYXMgZmFzdCAgICAgMjE0LjltcyArLy0gMC4xJSAgICAy
MTQuMW1zICsvLSAwLjElICAgICBzaWduaWZpY2FudAogICAgZG5hOiAgICAgICAgICAgICAgIDEu
MDA0eCBhcyBmYXN0ICAgICAyMTQuOW1zICsvLSAwLjElICAgIDIxNC4xbXMgKy8tIDAuMSUgICAg
IHNpZ25pZmljYW50CgogIHN0cmluZzogICAgICAgICAgICAgIDEuMDEweCBhcyBmYXN0ICAgICA0
NjUuN21zICsvLSAwLjElICAgIDQ2MS4zbXMgKy8tIDAuMSUgICAgIHNpZ25pZmljYW50CiAgICBi
YXNlNjQ6ICAgICAgICAgICAgMS4wMjV4IGFzIGZhc3QgICAgICA2NS4zbXMgKy8tIDAuMiUgICAg
IDYzLjdtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQKICAgIGZhc3RhOiAgICAgICAgICAgICAx
LjAxOXggYXMgZmFzdCAgICAgIDg1LjhtcyArLy0gMC4yJSAgICAgODQuMm1zICsvLSAwLjIlICAg
ICBzaWduaWZpY2FudAogICAgdGFnY2xvdWQ6ICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAx
MTcuMW1zICsvLSAwLjMlICAgIDExNy4xbXMgKy8tIDAuMiUgCiAgICB1bnBhY2stY29kZTogICAg
ICAgMS4wMDR4IGFzIGZhc3QgICAgIDEyMy42bXMgKy8tIDAuMiUgICAgMTIzLjFtcyArLy0gMC4y
JSAgICAgc2lnbmlmaWNhbnQKICAgIHZhbGlkYXRlLWlucHV0OiAgICAxLjAwOXggYXMgZmFzdCAg
ICAgIDczLjltcyArLy0gMC42JSAgICAgNzMuMm1zICsvLSAwLjUlICAgICBzaWduaWZpY2FudAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>22652</attachid>
            <date>2008-08-05 03:34:59 -0700</date>
            <delta_ts>2008-08-05 03:34:59 -0700</delta_ts>
            <desc>SunSpider numbers with r35555</desc>
            <filename>new-numbers.txt</filename>
            <type>text/plain</type>
            <size>3677</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">VEVTVCAgICAgICAgICAgICAgICAgICBDT01QQVJJU09OICAgICAgICAgICAgRlJPTSAgICAgICAg
ICAgICAgICAgVE8gICAgICAgICAgICAgREVUQUlMUwoKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCioq
IFRPVEFMICoqOiAgICAgICAgICAgMS4wMDV4IGFzIGZhc3QgICAgMTg3MC41bXMgKy8tIDAuMSUg
ICAxODYxLjRtcyArLy0gMC4xJSAgICAgc2lnbmlmaWNhbnQKCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CgogIDNkOiAgICAgICAgICAgICAgICAgIDEuMDE1eCBhcyBmYXN0ICAgICAyNTYuNG1zICsvLSAw
LjElICAgIDI1Mi42bXMgKy8tIDAuMSUgICAgIHNpZ25pZmljYW50CiAgICBjdWJlOiAgICAgICAg
ICAgICAgMS4wMjF4IGFzIGZhc3QgICAgICA4Mi42bXMgKy8tIDAuMiUgICAgIDgwLjltcyArLy0g
MC4zJSAgICAgc2lnbmlmaWNhbnQKICAgIG1vcnBoOiAgICAgICAgICAgICAxLjAyOXggYXMgZmFz
dCAgICAgIDg4LjZtcyArLy0gMC4yJSAgICAgODYuMW1zICsvLSAwLjElICAgICBzaWduaWZpY2Fu
dAogICAgcmF5dHJhY2U6ICAgICAgICAgICoxLjAwNHggYXMgc2xvdyogICAgODUuMm1zICsvLSAw
LjElICAgICA4NS41bXMgKy8tIDAuMiUgICAgIHNpZ25pZmljYW50CgogIGFjY2VzczogICAgICAg
ICAgICAgIDEuMDMweCBhcyBmYXN0ICAgICAyNTcuOW1zICsvLSAwLjElICAgIDI1MC40bXMgKy8t
IDAuMSUgICAgIHNpZ25pZmljYW50CiAgICBiaW5hcnktdHJlZXM6ICAgICAgPz8gICAgICAgICAg
ICAgICAgICAzMi41bXMgKy8tIDAuNCUgICAgIDMyLjZtcyArLy0gMC40JSAgICAgbm90IGNvbmNs
dXNpdmU6IG1pZ2h0IGJlICoxLjAwNHggYXMgc2xvdyoKICAgIGZhbm5rdWNoOiAgICAgICAgICAx
LjA0OHggYXMgZmFzdCAgICAgIDYzLjJtcyArLy0gMC4yJSAgICAgNjAuM21zICsvLSAwLjIlICAg
ICBzaWduaWZpY2FudAogICAgbmJvZHk6ICAgICAgICAgICAgIDEuMDM3eCBhcyBmYXN0ICAgICAx
MzYuNW1zICsvLSAwLjElICAgIDEzMS42bXMgKy8tIDAuMSUgICAgIHNpZ25pZmljYW50CiAgICBu
c2lldmU6ICAgICAgICAgICAgKjEuMDA5eCBhcyBzbG93KiAgICAyNS43bXMgKy8tIDAuNSUgICAg
IDI1LjltcyArLy0gMC40JSAgICAgc2lnbmlmaWNhbnQKCiAgYml0b3BzOiAgICAgICAgICAgICAg
KjEuMDIxeCBhcyBzbG93KiAgIDE3My4xbXMgKy8tIDAuMSUgICAgMTc2LjhtcyArLy0gMC4xJSAg
ICAgc2lnbmlmaWNhbnQKICAgIDNiaXQtYml0cy1pbi1ieXRlOiAqMS4wNDZ4IGFzIHNsb3cqICAg
IDI0LjJtcyArLy0gMC41JSAgICAgMjUuNG1zICsvLSAwLjUlICAgICBzaWduaWZpY2FudAogICAg
Yml0cy1pbi1ieXRlOiAgICAgIDEuMDAxeCBhcyBmYXN0ICAgICAgMzEuMG1zICsvLSAwLjAlICAg
ICAzMS4wbXMgKy8tIDAuMSUgICAgIHNpZ25pZmljYW50CiAgICBiaXR3aXNlLWFuZDogICAgICAg
KjEuMDY3eCBhcyBzbG93KiAgICA1Ny45bXMgKy8tIDAuMiUgICAgIDYxLjdtcyArLy0gMC4yJSAg
ICAgc2lnbmlmaWNhbnQKICAgIG5zaWV2ZS1iaXRzOiAgICAgICAxLjAyMXggYXMgZmFzdCAgICAg
IDYwLjBtcyArLy0gMC4xJSAgICAgNTguN21zICsvLSAwLjIlICAgICBzaWduaWZpY2FudAoKICBj
b250cm9sZmxvdzogICAgICAgICAqMS4wODN4IGFzIHNsb3cqICAgIDE5LjBtcyArLy0gMC40JSAg
ICAgMjAuNm1zICsvLSAwLjclICAgICBzaWduaWZpY2FudAogICAgcmVjdXJzaXZlOiAgICAgICAg
ICoxLjA4M3ggYXMgc2xvdyogICAgMTkuMG1zICsvLSAwLjQlICAgICAyMC42bXMgKy8tIDAuNyUg
ICAgIHNpZ25pZmljYW50CgogIGNyeXB0bzogICAgICAgICAgICAgIDEuMDA3eCBhcyBmYXN0ICAg
ICAxMDkuN21zICsvLSAwLjIlICAgIDEwOC45bXMgKy8tIDAuMiUgICAgIHNpZ25pZmljYW50CiAg
ICBhZXM6ICAgICAgICAgICAgICAgMS4wMzJ4IGFzIGZhc3QgICAgICAzNC40bXMgKy8tIDAuNCUg
ICAgIDMzLjRtcyArLy0gMC40JSAgICAgc2lnbmlmaWNhbnQKICAgIG1kNTogICAgICAgICAgICAg
ICA/PyAgICAgICAgICAgICAgICAgIDM4LjBtcyArLy0gMC4yJSAgICAgMzguMW1zICsvLSAwLjIl
ICAgICBub3QgY29uY2x1c2l2ZTogbWlnaHQgYmUgKjEuMDAyeCBhcyBzbG93KgogICAgc2hhMTog
ICAgICAgICAgICAgICoxLjAwNnggYXMgc2xvdyogICAgMzcuMm1zICsvLSAwLjMlICAgICAzNy41
bXMgKy8tIDAuNCUgICAgIHNpZ25pZmljYW50CgogIGRhdGU6ICAgICAgICAgICAgICAgICoxLjAx
MHggYXMgc2xvdyogICAxNjcuMG1zICsvLSAwLjElICAgIDE2OC42bXMgKy8tIDAuMSUgICAgIHNp
Z25pZmljYW50CiAgICBmb3JtYXQtdG9mdGU6ICAgICAgKjEuMDI1eCBhcyBzbG93KiAgICA5OS4z
bXMgKy8tIDAuMiUgICAgMTAxLjhtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQKICAgIGZvcm1h
dC14cGFyYjogICAgICAxLjAxM3ggYXMgZmFzdCAgICAgIDY3LjdtcyArLy0gMC4yJSAgICAgNjYu
OG1zICsvLSAwLjIlICAgICBzaWduaWZpY2FudAoKICBtYXRoOiAgICAgICAgICAgICAgICAtICAg
ICAgICAgICAgICAgICAgMjA4LjFtcyArLy0gMC4xJSAgICAyMDguMG1zICsvLSAwLjElIAogICAg
Y29yZGljOiAgICAgICAgICAgICoxLjAxMHggYXMgc2xvdyogICAgNjEuN21zICsvLSAwLjIlICAg
ICA2Mi4zbXMgKy8tIDAuMiUgICAgIHNpZ25pZmljYW50CiAgICBwYXJ0aWFsLXN1bXM6ICAgICAg
MS4wMDZ4IGFzIGZhc3QgICAgIDEwOS4xbXMgKy8tIDAuMSUgICAgMTA4LjRtcyArLy0gMC4xJSAg
ICAgc2lnbmlmaWNhbnQKICAgIHNwZWN0cmFsLW5vcm06ICAgICAtICAgICAgICAgICAgICAgICAg
IDM3LjRtcyArLy0gMC40JSAgICAgMzcuM21zICsvLSAwLjQlIAoKICByZWdleHA6ICAgICAgICAg
ICAgICAtICAgICAgICAgICAgICAgICAgMjE1LjBtcyArLy0gMC4xJSAgICAyMTQuOW1zICsvLSAw
LjIlIAogICAgZG5hOiAgICAgICAgICAgICAgIC0gICAgICAgICAgICAgICAgICAyMTUuMG1zICsv
LSAwLjElICAgIDIxNC45bXMgKy8tIDAuMiUgCgogIHN0cmluZzogICAgICAgICAgICAgIDEuMDA4
eCBhcyBmYXN0ICAgICA0NjQuMm1zICsvLSAwLjElICAgIDQ2MC41bXMgKy8tIDAuMSUgICAgIHNp
Z25pZmljYW50CiAgICBiYXNlNjQ6ICAgICAgICAgICAgMS4wMTh4IGFzIGZhc3QgICAgICA2NC45
bXMgKy8tIDAuMiUgICAgIDYzLjhtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQKICAgIGZhc3Rh
OiAgICAgICAgICAgICAxLjAyMXggYXMgZmFzdCAgICAgIDg0LjhtcyArLy0gMC4yJSAgICAgODMu
MW1zICsvLSAwLjIlICAgICBzaWduaWZpY2FudAogICAgdGFnY2xvdWQ6ICAgICAgICAgICoxLjAw
N3ggYXMgc2xvdyogICAxMTcuN21zICsvLSAwLjIlICAgIDExOC42bXMgKy8tIDAuMyUgICAgIHNp
Z25pZmljYW50CiAgICB1bnBhY2stY29kZTogICAgICAgMS4wMDR4IGFzIGZhc3QgICAgIDEyMy4w
bXMgKy8tIDAuMiUgICAgMTIyLjVtcyArLy0gMC4yJSAgICAgc2lnbmlmaWNhbnQKICAgIHZhbGlk
YXRlLWlucHV0OiAgICAxLjAxNnggYXMgZmFzdCAgICAgIDczLjdtcyArLy0gMC41JSAgICAgNzIu
Nm1zICsvLSAwLjUlICAgICBzaWduaWZpY2FudAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22672</attachid>
            <date>2008-08-05 20:06:02 -0700</date>
            <delta_ts>2008-08-06 02:14:05 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>constants.diff</filename>
            <type>text/plain</type>
            <size>156727</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM1NTg1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjcgQEAKKzIwMDgtMDgtMDUgIENhbWVyb24g
WndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQnVnIDIwMjg2OiBMb2FkIGNvbnN0YW50cyBhbGwg
YXQgb25jZSBpbnN0ZWFkIG9mIHVzaW5nIG9wX2xvYWQKKyAgICAgICAgPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI4Nj4KKworICAgICAgICBMb2FkIGNvbnN0YW50
cyBhbGwgYXQgb25jZSBpbnRvIHRlbXBvcmFyeSByZWdpc3RlcnMgdXNpbmcgbWVtY3B5IGluc3Rl
YWQKKyAgICAgICAgb2YgdXNpbmcgaW5kaXZpZHVhbCBpbnN0YW5jZXMgb2Ygb3BfbG9hZC4KKwor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBWTS9Db2RlQmxvY2suY3Bw
OgorICAgICAgICAoS0pTOjpDb2RlQmxvY2s6OmR1bXApOgorICAgICAgICAoS0pTOjpDb2RlQmxv
Y2s6Om1hcmspOgorICAgICAgICAqIFZNL0NvZGVCbG9jay5oOgorICAgICAgICAqIFZNL0NvZGVH
ZW5lcmF0b3IuY3BwOgorICAgICAgICAoS0pTOjpDb2RlR2VuZXJhdG9yOjpDb2RlR2VuZXJhdG9y
KToKKyAgICAgICAgKEtKUzo6Q29kZUdlbmVyYXRvcjo6bmV3VGVtcG9yYXJ5KToKKyAgICAgICAg
KEtKUzo6Q29kZUdlbmVyYXRvcjo6YWRkQ29uc3RhbnQpOgorICAgICAgICAoS0pTOjpDb2RlR2Vu
ZXJhdG9yOjphZGRVbmV4cGVjdGVkQ29uc3RhbnQpOgorICAgICAgICAoS0pTOjpDb2RlR2VuZXJh
dG9yOjplbWl0TG9hZCk6CisgICAgICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6OmVtaXRVbmV4cGVj
dGVkTG9hZCk6CisgICAgICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6OmVtaXROZXdFcnJvcik6Cisg
ICAgICAgICogVk0vQ29kZUdlbmVyYXRvci5oOgorICAgICAgICAqIFZNL01hY2hpbmUuY3BwOgor
ICAgICAgICAoS0pTOjpzbGlkZVJlZ2lzdGVyV2luZG93Rm9yQ2FsbCk6CisgICAgICAgIChLSlM6
Ok1hY2hpbmU6OnVud2luZENhbGxGcmFtZSk6CisgICAgICAgIChLSlM6Ok1hY2hpbmU6OnRocm93
RXhjZXB0aW9uKToKKyAgICAgICAgKEtKUzo6TWFjaGluZTo6ZXhlY3V0ZSk6CisgICAgICAgIChL
SlM6Ok1hY2hpbmU6OnByaXZhdGVFeGVjdXRlKToKKyAgICAgICAgKiBWTS9NYWNoaW5lLmg6Cisg
ICAgICAgICogVk0vT3Bjb2RlLmg6CisgICAgICAgICogVk0vUmVnaXN0ZXJJRC5oOgorICAgICAg
ICAoS0pTOjpSZWdpc3RlcklEOjpSZWdpc3RlcklEKToKKyAgICAgICAgKEtKUzo6UmVnaXN0ZXJJ
RDo6bWFrZUNvbnN0YW50KToKKyAgICAgICAgKEtKUzo6UmVnaXN0ZXJJRDo6aXNUZW1wb3Jhcnkp
OgorICAgICAgICAqIGtqcy9Ob2RlSW5mby5oOgorICAgICAgICAqIGtqcy9QYXJzZXIuY3BwOgor
ICAgICAgICAoS0pTOjpQYXJzZXI6OmRpZEZpbmlzaFBhcnNpbmcpOgorICAgICAgICAqIGtqcy9Q
YXJzZXIuaDoKKyAgICAgICAgKEtKUzo6UGFyc2VyOjpwYXJzZSk6CisgICAgICAgICoga2pzL2dy
YW1tYXIueToKKyAgICAgICAgKiBranMvbm9kZXMuY3BwOgorICAgICAgICAoS0pTOjpOdWxsTm9k
ZTo6ZW1pdENvZGUpOgorICAgICAgICAoS0pTOjpCb29sZWFuTm9kZTo6ZW1pdENvZGUpOgorICAg
ICAgICAoS0pTOjpOdW1iZXJOb2RlOjplbWl0Q29kZSk6CisgICAgICAgIChLSlM6OlN0cmluZ05v
ZGU6OmVtaXRDb2RlKToKKyAgICAgICAgKEtKUzo6QXJyYXlOb2RlOjplbWl0Q29kZSk6CisgICAg
ICAgIChLSlM6OkRlbGV0ZVJlc29sdmVOb2RlOjplbWl0Q29kZSk6CisgICAgICAgIChLSlM6OkRl
bGV0ZVZhbHVlTm9kZTo6ZW1pdENvZGUpOgorICAgICAgICAoS0pTOjpWb2lkTm9kZTo6ZW1pdENv
ZGUpOgorICAgICAgICAoS0pTOjpDb25zdERlY2xOb2RlOjplbWl0Q29kZVNpbmdsZSk6CisgICAg
ICAgIChLSlM6OlJldHVybk5vZGU6OmVtaXRDb2RlKToKKyAgICAgICAgKEtKUzo6U2NvcGVOb2Rl
OjpTY29wZU5vZGUpOgorICAgICAgICAoS0pTOjpQcm9ncmFtTm9kZTo6UHJvZ3JhbU5vZGUpOgor
ICAgICAgICAoS0pTOjpQcm9ncmFtTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKEtKUzo6RXZhbE5v
ZGU6OkV2YWxOb2RlKToKKyAgICAgICAgKEtKUzo6RXZhbE5vZGU6OmNyZWF0ZSk6CisgICAgICAg
IChLSlM6OkZ1bmN0aW9uQm9keU5vZGU6OkZ1bmN0aW9uQm9keU5vZGUpOgorICAgICAgICAoS0pT
OjpGdW5jdGlvbkJvZHlOb2RlOjpjcmVhdGUpOgorICAgICAgICAoS0pTOjpGdW5jdGlvbkJvZHlO
b2RlOjplbWl0Q29kZSk6CisgICAgICAgICoga2pzL25vZGVzLmg6CisgICAgICAgIChLSlM6OlNj
b3BlTm9kZTo6bnVtQ29uc3RhbnRzKToKKwogMjAwOC0wOC0wNSAgQ2FtZXJvbiBad2FyaWNoICA8
Y3d6d2FyaWNoQHV3YXRlcmxvby5jYT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHJldmlzaW9uIDM1NTgwKQorKysgSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3
IEBAIF9fWk4zS0pTMTFKU0ltbWVkaWF0ZTh0b09iamVjdEVQS05TXzdKU1YKIF9fWk4zS0pTMTFK
U0ltbWVkaWF0ZTh0b1N0cmluZ0VQS05TXzdKU1ZhbHVlRQogX19aTjNLSlMxMUpTSW1tZWRpYXRl
OXByb3RvdHlwZUVQS05TXzdKU1ZhbHVlRVBOU185RXhlY1N0YXRlRQogX19aTjNLSlMxMVByb2Zp
bGVOb2RlNHNvcnRFUEZiUktOM1dURjZSZWZQdHJJUzBfRUVTNV9FCi1fX1pOM0tKUzExUHJvZ3Jh
bU5vZGU2Y3JlYXRlRVBOU18xMkpTR2xvYmFsRGF0YUVQTlNfMTRTb3VyY2VFbGVtZW50c0VQTjNX
VEY2VmVjdG9ySVN0NHBhaXJJTlNfMTBJZGVudGlmaWVyRWpFTG0xNkVFRVBOUzZfSU5TNV82UmVm
UHRySU5TXzEyRnVuY0RlY2xOb2RlRUVFTG0xNkVFRVBOU18xNFNvdXJjZVByb3ZpZGVyRWJiCitf
X1pOM0tKUzExUHJvZ3JhbU5vZGU2Y3JlYXRlRVBOU18xMkpTR2xvYmFsRGF0YUVQTlNfMTRTb3Vy
Y2VFbGVtZW50c0VQTjNXVEY2VmVjdG9ySVN0NHBhaXJJTlNfMTBJZGVudGlmaWVyRWpFTG0xNkVF
RVBOUzZfSU5TNV82UmVmUHRySU5TXzEyRnVuY0RlY2xOb2RlRUVFTG0xNkVFRVBOU18xNFNvdXJj
ZVByb3ZpZGVyRWJiaQogX19aTjNLSlMxMVByb3BlcnR5TWFwMTFnZXRMb2NhdGlvbkVSS05TXzEw
SWRlbnRpZmllckUKIF9fWk4zS0pTMTFQcm9wZXJ0eU1hcDExZ2V0TG9jYXRpb25FUktOU18xMElk
ZW50aWZpZXJFUmIKIF9fWk4zS0pTMTFQcm9wZXJ0eU1hcDNwdXRFUktOU18xMElkZW50aWZpZXJF
UE5TXzdKU1ZhbHVlRWpiCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlQmxvY2suY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVCbG9jay5jcHAJKHJldmlzaW9uIDM1
NTgwKQorKysgSmF2YVNjcmlwdENvcmUvVk0vQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTcxLDEzICsxNzEsMjIgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXAoRXhlY1N0YXRlKiBleGVj
KSBjbwogICAgICAgICB9IHdoaWxlIChpICE9IGlkZW50aWZpZXJzLnNpemUoKSk7CiAgICAgfQog
Ci0gICAgaWYgKHJlZ2lzdGVycy5zaXplKCkpIHsKKyAgICBpZiAoY29uc3RhbnRzLnNpemUoKSkg
ewogICAgICAgICBwcmludGYoIlxuQ29uc3RhbnRzOlxuIik7CiAgICAgICAgIHNpemVfdCBpID0g
MDsKICAgICAgICAgZG8gewotICAgICAgICAgICAgcHJpbnRmKCIgIGsldSA9ICVzXG4iLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oaSksIHZhbHVlVG9Tb3VyY2VTdHJpbmcoZXhlYywgcmVnaXN0ZXJz
W2ldLmpzVmFsdWUoZXhlYykpLmFzY2lpKCkpOworICAgICAgICAgICAgcHJpbnRmKCIgIHRyJXUg
PSAlc1xuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGkpLCB2YWx1ZVRvU291cmNlU3RyaW5nKGV4
ZWMsIGNvbnN0YW50c1tpXS5qc1ZhbHVlKGV4ZWMpKS5hc2NpaSgpKTsKICAgICAgICAgICAgICsr
aTsKLSAgICAgICAgfSB3aGlsZSAoaSA8IHJlZ2lzdGVycy5zaXplKCkpOworICAgICAgICB9IHdo
aWxlIChpIDwgY29uc3RhbnRzLnNpemUoKSk7CisgICAgfQorCisgICAgaWYgKHVuZXhwZWN0ZWRD
b25zdGFudHMuc2l6ZSgpKSB7CisgICAgICAgIHByaW50ZigiXG5VbmV4cGVjdGVkIENvbnN0YW50
czpcbiIpOworICAgICAgICBzaXplX3QgaSA9IDA7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAg
IHByaW50ZigiICBrJXUgPSAlc1xuIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGkpLCB2YWx1ZVRv
U291cmNlU3RyaW5nKGV4ZWMsIHVuZXhwZWN0ZWRDb25zdGFudHNbaV0pLmFzY2lpKCkpOworICAg
ICAgICAgICAgKytpOworICAgICAgICB9IHdoaWxlIChpIDwgdW5leHBlY3RlZENvbnN0YW50cy5z
aXplKCkpOwogICAgIH0KICAgICAKICAgICBpZiAocmVnZXhwcy5zaXplKCkpIHsKQEAgLTI1MCwx
MiArMjU5LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXAoRXhlY1N0YXRlKiBleGVjLCBjbwogewog
ICAgIGludCBsb2NhdGlvbiA9IGl0IC0gYmVnaW47CiAgICAgc3dpdGNoIChleGVjLT5tYWNoaW5l
KCktPmdldE9wY29kZUlEKGl0LT51Lm9wY29kZSkpIHsKLSAgICAgICAgY2FzZSBvcF9sb2FkOiB7
Ci0gICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAgICAgICAgIGlu
dCBrMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICAgICAgcHJpbnRmKCJbJTRkXSBsb2Fk
XHRcdCAlcywgJXNcdFx0XG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5jX3N0cigpLCBj
b25zdGFudE5hbWUoZXhlYywgazAsIHJlZ2lzdGVyc1trMF0uanNWYWx1ZShleGVjKSkuY19zdHIo
KSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25ld19v
YmplY3Q6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgcHJpbnRmKCJbJTRkXSBuZXdfb2JqZWN0XHQgJXNcbiIsIGxvY2F0aW9uLCByZWdpc3Rl
ck5hbWUocjApLmNfc3RyKCkpOwpAQCAtNjYwLDcgKzY2Myw3IEBAIHZvaWQgQ29kZUJsb2NrOjpk
dW1wKEV4ZWNTdGF0ZSogZXhlYywgY28KICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgaW50IGVycm9yVHlwZSA9ICgrK2l0KS0+dS5vcGVyYW5kOwog
ICAgICAgICAgICAgaW50IGswID0gKCsraXQpLT51Lm9wZXJhbmQ7Ci0gICAgICAgICAgICBwcmlu
dGYoIlslNGRdIG5ld19lcnJvclx0ICVzLCAlZCwgJXNcbiIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUocjApLmNfc3RyKCksIGVycm9yVHlwZSwgY29uc3RhbnROYW1lKGV4ZWMsIGswLCByZWdpc3Rl
cnNbazBdLmpzVmFsdWUoZXhlYykpLmNfc3RyKCkpOworICAgICAgICAgICAgcHJpbnRmKCJbJTRk
XSBuZXdfZXJyb3JcdCAlcywgJWQsICVzXG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKHIwKS5j
X3N0cigpLCBlcnJvclR5cGUsIGNvbnN0YW50TmFtZShleGVjLCBrMCwgdW5leHBlY3RlZENvbnN0
YW50c1trMF0pLmNfc3RyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9qc3I6IHsKQEAgLTY5NSw5ICs2OTgsMTMgQEAgdm9pZCBDb2RlQmxvY2s6OmR1
bXAoRXhlY1N0YXRlKiBleGVjLCBjbwogCiB2b2lkIENvZGVCbG9jazo6bWFyaygpCiB7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCByZWdpc3RlcnMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGlm
ICghcmVnaXN0ZXJzW2ldLm1hcmtlZCgpKQotICAgICAgICAgICAgcmVnaXN0ZXJzW2ldLm1hcmso
KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbnN0YW50cy5zaXplKCk7ICsraSkKKyAg
ICAgICAgaWYgKCFjb25zdGFudHNbaV0ubWFya2VkKCkpCisgICAgICAgICAgICBjb25zdGFudHNb
aV0ubWFyaygpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB1bmV4cGVjdGVkQ29uc3Rh
bnRzLnNpemUoKTsgKytpKQorICAgICAgICBpZiAoIXVuZXhwZWN0ZWRDb25zdGFudHNbaV0tPm1h
cmtlZCgpKQorICAgICAgICAgICAgdW5leHBlY3RlZENvbnN0YW50c1tpXS0+bWFyaygpOwogCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmdW5jdGlvbnMuc2l6ZSgpOyArK2kpCiAgICAgICAg
IGZ1bmN0aW9uc1tpXS0+Ym9keSgpLT5tYXJrKCk7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9WTS9D
b2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlQmxvY2suaAko
cmV2aXNpb24gMzU1ODApCisrKyBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlQmxvY2suaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAwLDYgKzEwMCw3IEBAIG5hbWVzcGFjZSBLSlMgewogCiAgICAgICAgIFNj
b3BlTm9kZSogb3duZXJOb2RlOwogCisgICAgICAgIGludCBudW1Db25zdGFudHM7CiAgICAgICAg
IGludCBudW1UZW1wb3JhcmllczsKICAgICAgICAgaW50IG51bVZhcnM7CiAgICAgICAgIGludCBu
dW1QYXJhbWV0ZXJzOwpAQCAtMTE3LDcgKzExOCw4IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAg
ICBWZWN0b3I8SWRlbnRpZmllcj4gaWRlbnRpZmllcnM7CiAgICAgICAgIFZlY3RvcjxSZWZQdHI8
RnVuY0RlY2xOb2RlPiA+IGZ1bmN0aW9uczsKICAgICAgICAgVmVjdG9yPFJlZlB0cjxGdW5jRXhw
ck5vZGU+ID4gZnVuY3Rpb25FeHByZXNzaW9uczsKLSAgICAgICAgVmVjdG9yPFJlZ2lzdGVyPiBy
ZWdpc3RlcnM7CisgICAgICAgIFZlY3RvcjxSZWdpc3Rlcj4gY29uc3RhbnRzOworICAgICAgICBW
ZWN0b3I8SlNWYWx1ZSo+IHVuZXhwZWN0ZWRDb25zdGFudHM7CiAgICAgICAgIFZlY3RvcjxSZWZQ
dHI8UmVnRXhwPiA+IHJlZ2V4cHM7CiAgICAgICAgIFZlY3RvcjxIYW5kbGVySW5mbz4gZXhjZXB0
aW9uSGFuZGxlcnM7CiAgICAgICAgIFZlY3RvcjxFeHByZXNzaW9uUmFuZ2VJbmZvPiBleHByZXNz
aW9uSW5mbzsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVHZW5lcmF0b3IuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVHZW5lcmF0b3IuY3BwCShyZXZpc2lvbiAz
NTU4MCkKKysrIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMDIsNiArMjAyLDcgQEAgQ29kZUdlbmVyYXRvcjo6Q29kZUdlbmVyYXRvcihQcm9n
cmFtTm9kZQogewogICAgIC8vIEZJWE1FOiBNb3ZlIGNvZGUgdGhhdCBtb2RpZmllcyB0aGUgZ2xv
YmFsIG9iamVjdCB0byBNYWNoaW5lOjpleGVjdXRlLgogICAgIAorICAgIG1fY29kZUJsb2NrLT5u
dW1Db25zdGFudHMgPSBwcm9ncmFtTm9kZS0+bnVtQ29uc3RhbnRzKCkgKyAzOwogICAgIG1fY29k
ZUJsb2NrLT5udW1WYXJzID0gMTsgLy8gQWxsb2NhdGUgc3BhY2UgZm9yICJ0aGlzIgogCiAgICAg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHNjb3BlQ2hhaW4uZ2xvYmFsT2JqZWN0KCk7
CkBAIC0yNjIsNiArMjYzLDggQEAgQ29kZUdlbmVyYXRvcjo6Q29kZUdlbmVyYXRvcihGdW5jdGlv
bkJvZAogICAgICwgbV9nbG9iYWxEYXRhKCZzY29wZUNoYWluLmdsb2JhbE9iamVjdCgpLT5nbG9i
YWxFeGVjKCktPmdsb2JhbERhdGEoKSkKICAgICAsIG1fbGFzdE9wY29kZUlEKG9wX2VuZCkKIHsK
KyAgICBtX2NvZGVCbG9jay0+bnVtQ29uc3RhbnRzID0gZnVuY3Rpb25Cb2R5LT5udW1Db25zdGFu
dHMoKSArIDM7CisKICAgICBjb25zdCBOb2RlOjpGdW5jdGlvblN0YWNrJiBmdW5jdGlvblN0YWNr
ID0gZnVuY3Rpb25Cb2R5LT5mdW5jdGlvblN0YWNrKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBmdW5jdGlvblN0YWNrLnNpemUoKTsgKytpKSB7CiAgICAgICAgIEZ1bmNEZWNsTm9kZSog
ZnVuY0RlY2wgPSBmdW5jdGlvblN0YWNrW2ldLmdldCgpOwpAQCAtMzA2LDYgKzMwOSw3IEBAIENv
ZGVHZW5lcmF0b3I6OkNvZGVHZW5lcmF0b3IoRXZhbE5vZGUqIGUKICAgICAsIG1fZ2xvYmFsRGF0
YSgmc2NvcGVDaGFpbi5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLT5nbG9iYWxEYXRhKCkp
CiAgICAgLCBtX2xhc3RPcGNvZGVJRChvcF9lbmQpCiB7CisgICAgbV9jb2RlQmxvY2stPm51bUNv
bnN0YW50cyA9IGV2YWxOb2RlLT5udW1Db25zdGFudHMoKSArIDM7CiAgICAgbV9jb2RlQmxvY2st
Pm51bVZhcnMgPSAxOyAvLyBBbGxvY2F0ZSBzcGFjZSBmb3IgInRoaXMiCiB9CiAKQEAgLTM4MSw3
ICszODUsNyBAQCBSZWdpc3RlcklEKiBDb2RlR2VuZXJhdG9yOjpuZXdUZW1wb3JhcnkoCiAgICAg
ICAgIG1fdGVtcG9yYXJpZXMucmVtb3ZlTGFzdCgpOwogCiAgICAgLy8gQWxsb2NhdGUgbmV3IHJl
Z2lzdGVyIElELgotICAgIG1fdGVtcG9yYXJpZXMuYXBwZW5kKG1fdGVtcG9yYXJpZXMuc2l6ZSgp
KTsKKyAgICBtX3RlbXBvcmFyaWVzLmFwcGVuZChtX3RlbXBvcmFyaWVzLnNpemUoKSArIG1fY29k
ZUJsb2NrLT5udW1Db25zdGFudHMpOwogICAgIG1fY29kZUJsb2NrLT5udW1UZW1wb3JhcmllcyA9
IG1heDxpbnQ+KG1fY29kZUJsb2NrLT5udW1UZW1wb3JhcmllcywgbV90ZW1wb3Jhcmllcy5zaXpl
KCkpOwogICAgIHJldHVybiAmbV90ZW1wb3Jhcmllcy5sYXN0KCk7CiB9CkBAIC01MjAsMTMgKzUy
NCwyNSBAQCB1bnNpZ25lZCBDb2RlR2VuZXJhdG9yOjphZGRDb25zdGFudChjb25zCiAgICAgcmV0
dXJuIHJlc3VsdC5maXJzdC0+c2Vjb25kOwogfQogCi11bnNpZ25lZCBDb2RlR2VuZXJhdG9yOjph
ZGRDb25zdGFudChKU1ZhbHVlKiB2KQorUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6YWRkQ29u
c3RhbnQoSlNWYWx1ZSogdikKIHsKLSAgICBwYWlyPEpTVmFsdWVNYXA6Oml0ZXJhdG9yLCBib29s
PiByZXN1bHQgPSBtX2pzVmFsdWVNYXAuYWRkKHYsIG1fY29kZUJsb2NrLT5yZWdpc3RlcnMuc2l6
ZSgpKTsKLSAgICBpZiAocmVzdWx0LnNlY29uZCkgLy8gbmV3IGVudHJ5Ci0gICAgICAgIG1fY29k
ZUJsb2NrLT5yZWdpc3RlcnMuYXBwZW5kKHYpOworICAgIHBhaXI8SlNWYWx1ZU1hcDo6aXRlcmF0
b3IsIGJvb2w+IHJlc3VsdCA9IG1fanNWYWx1ZU1hcC5hZGQodiwgbV9jb2RlQmxvY2stPmNvbnN0
YW50cy5zaXplKCkpOworICAgIGlmIChyZXN1bHQuc2Vjb25kKSB7CisgICAgICAgIG1fY29uc3Rh
bnRzLmFwcGVuZChtX2NvZGVCbG9jay0+Y29uc3RhbnRzLnNpemUoKSk7CisgICAgICAgIG1fY29u
c3RhbnRzLmxhc3QoKS5tYWtlQ29uc3RhbnQoKTsKKyAgICAgICAgbV9jb2RlQmxvY2stPmNvbnN0
YW50cy5hcHBlbmQodik7CisgICAgICAgIEFTU0VSVChtX2NvZGVCbG9jay0+Y29uc3RhbnRzLnNp
emUoKSA8PSAodW5zaWduZWQpIG1fY29kZUJsb2NrLT5udW1Db25zdGFudHMpOworICAgICAgICBy
ZXR1cm4gJm1fY29uc3RhbnRzLmxhc3QoKTsKKyAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0LmZp
cnN0LT5zZWNvbmQ7CisgICAgcmV0dXJuICZtX2NvbnN0YW50c1tyZXN1bHQuZmlyc3QtPnNlY29u
ZF07Cit9CisKK3Vuc2lnbmVkIENvZGVHZW5lcmF0b3I6OmFkZFVuZXhwZWN0ZWRDb25zdGFudChK
U1ZhbHVlKiB2KQoreworICAgIGludCBpbmRleCA9IG1fY29kZUJsb2NrLT5yZWdleHBzLnNpemUo
KTsKKyAgICBtX2NvZGVCbG9jay0+dW5leHBlY3RlZENvbnN0YW50cy5hcHBlbmQodik7CisgICAg
cmV0dXJuIGluZGV4OwogfQogCiB1bnNpZ25lZCBDb2RlR2VuZXJhdG9yOjphZGRSZWdFeHAoUmVn
RXhwKiByKQpAQCAtNTkzLDI1ICs2MDksMjcgQEAgUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6
ZW1pdEJpbmFyeU9wKAogCiBSZWdpc3RlcklEKiBDb2RlR2VuZXJhdG9yOjplbWl0TG9hZChSZWdp
c3RlcklEKiBkc3QsIGJvb2wgYikKIHsKLSAgICBlbWl0T3Bjb2RlKG9wX2xvYWQpOwotICAgIGlu
c3RydWN0aW9ucygpLmFwcGVuZChkc3QtPmluZGV4KCkpOwotICAgIGluc3RydWN0aW9ucygpLmFw
cGVuZChhZGRDb25zdGFudChqc0Jvb2xlYW4oYikpKTsKLSAgICByZXR1cm4gZHN0OworICAgIHJl
dHVybiBlbWl0TG9hZChkc3QsIGpzQm9vbGVhbihiKSk7CiB9CiAKIFJlZ2lzdGVySUQqIENvZGVH
ZW5lcmF0b3I6OmVtaXRMb2FkKFJlZ2lzdGVySUQqIGRzdCwgZG91YmxlIGQpCiB7Ci0gICAgZW1p
dE9wY29kZShvcF9sb2FkKTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgp
KTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYWRkQ29uc3RhbnQoanNOdW1iZXIoZ2xvYmFs
RXhlYygpLCBkKSkpOwotICAgIHJldHVybiBkc3Q7CisgICAgcmV0dXJuIGVtaXRMb2FkKGRzdCwg
anNOdW1iZXIoZ2xvYmFsRXhlYygpLCBkKSk7CiB9CiAKIFJlZ2lzdGVySUQqIENvZGVHZW5lcmF0
b3I6OmVtaXRMb2FkKFJlZ2lzdGVySUQqIGRzdCwgSlNWYWx1ZSogdikKIHsKLSAgICBlbWl0T3Bj
b2RlKG9wX2xvYWQpOworICAgIFJlZ2lzdGVySUQqIGNvbnN0YW50SUQgPSBhZGRDb25zdGFudCh2
KTsKKyAgICBpZiAoZHN0KQorICAgICAgICByZXR1cm4gZW1pdE1vdmUoZHN0LCBjb25zdGFudElE
KTsKKyAgICByZXR1cm4gY29uc3RhbnRJRDsKK30KKworUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRv
cjo6ZW1pdFVuZXhwZWN0ZWRMb2FkKFJlZ2lzdGVySUQqIGRzdCwgYm9vbCBiKQoreworICAgIGVt
aXRPcGNvZGUob3BfdW5leHBlY3RlZF9sb2FkKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
ZHN0LT5pbmRleCgpKTsKLSAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYWRkQ29uc3RhbnQodikp
OworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRVbmV4cGVjdGVkQ29uc3RhbnQoanNCb29s
ZWFuKGIpKSk7CiAgICAgcmV0dXJuIGRzdDsKIH0KIApAQCAtMTEzMiw3ICsxMTUwLDcgQEAgUmVn
aXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6ZW1pdE5ld0Vycm9yKAogICAgIGVtaXRPcGNvZGUob3Bf
bmV3X2Vycm9yKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKICAg
ICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoc3RhdGljX2Nhc3Q8aW50Pih0eXBlKSk7Ci0gICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKGFkZENvbnN0YW50KG1lc3NhZ2UpKTsKKyAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQoYWRkVW5leHBlY3RlZENvbnN0YW50KG1lc3NhZ2UpKTsKICAgICByZXR1cm4g
ZHN0OwogfQogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9WTS9Db2RlR2VuZXJhdG9yLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvVk0vQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAzNTU4
MCkKKysrIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpA
QCAtMjMwLDYgKzIzMCw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICBSZWdpc3RlcklEKiBl
bWl0TG9hZChSZWdpc3RlcklEKiBkc3QsIGJvb2wpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
TG9hZChSZWdpc3RlcklEKiBkc3QsIGRvdWJsZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRM
b2FkKFJlZ2lzdGVySUQqIGRzdCwgSlNWYWx1ZSopOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0
VW5leHBlY3RlZExvYWQoUmVnaXN0ZXJJRCogZHN0LCBib29sKTsKIAogICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0TnVsbGFyeU9wKE9wY29kZUlELCBSZWdpc3RlcklEKiBkc3QpOwogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0VW5hcnlPcChPcGNvZGVJRCwgUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3Rl
cklEKiBzcmMpOwpAQCAtMzc1LDcgKzM3Niw4IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICB1
bnNpZ25lZCBhZGRDb25zdGFudChGdW5jRGVjbE5vZGUqKTsKICAgICAgICAgdW5zaWduZWQgYWRk
Q29uc3RhbnQoRnVuY0V4cHJOb2RlKik7CiAgICAgICAgIHVuc2lnbmVkIGFkZENvbnN0YW50KGNv
bnN0IElkZW50aWZpZXImKTsKLSAgICAgICAgdW5zaWduZWQgYWRkQ29uc3RhbnQoSlNWYWx1ZSop
OworICAgICAgICBSZWdpc3RlcklEKiBhZGRDb25zdGFudChKU1ZhbHVlKik7CisgICAgICAgIHVu
c2lnbmVkIGFkZFVuZXhwZWN0ZWRDb25zdGFudChKU1ZhbHVlKik7CiAgICAgICAgIHVuc2lnbmVk
IGFkZFJlZ0V4cChSZWdFeHAqIHIpOwogCiAgICAgICAgIFZlY3RvcjxJbnN0cnVjdGlvbj4mIGlu
c3RydWN0aW9ucygpIHsgcmV0dXJuIG1fY29kZUJsb2NrLT5pbnN0cnVjdGlvbnM7IH0KQEAgLTM5
Niw2ICszOTgsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgSGFzaFNldDxSZWZQdHI8VVN0
cmluZzo6UmVwPiwgSWRlbnRpZmllclJlcEhhc2g+IG1fZnVuY3Rpb25zOwogICAgICAgICBSZWdp
c3RlcklEIG1fdGhpc1JlZ2lzdGVyOwogICAgICAgICBTZWdtZW50ZWRWZWN0b3I8UmVnaXN0ZXJJ
RCwgNTEyPiBtX2xvY2FsczsKKyAgICAgICAgU2VnbWVudGVkVmVjdG9yPFJlZ2lzdGVySUQsIDUx
Mj4gbV9jb25zdGFudHM7CiAgICAgICAgIFNlZ21lbnRlZFZlY3RvcjxSZWdpc3RlcklELCA1MTI+
IG1fdGVtcG9yYXJpZXM7CiAgICAgICAgIFNlZ21lbnRlZFZlY3RvcjxMYWJlbElELCA1MTI+IG1f
bGFiZWxzOwogICAgICAgICBpbnQgbV9maW5hbGx5RGVwdGg7CkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9WTS9NYWNoaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9WTS9NYWNoaW5l
LmNwcAkocmV2aXNpb24gMzU1ODApCisrKyBKYXZhU2NyaXB0Q29yZS9WTS9NYWNoaW5lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUgIm9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlICJTYW1wbGluZ1Rvb2wuaCIKICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUg
PHN0cmluZy5oPgogCiAjaWYgSEFWRShTWVNfVElNRV9IKQogI2luY2x1ZGUgPHN5cy90aW1lLmg+
CkBAIC0zNzksNyArMzgwLDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIE1hY2hpbmU6OmluaXRpYWxp
emVDYQogQUxXQVlTX0lOTElORSBSZWdpc3Rlciogc2xpZGVSZWdpc3RlcldpbmRvd0ZvckNhbGwo
RXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIG5ld0NvZGVCbG9jaywgUmVnaXN0ZXJGaWxlKiBy
ZWdpc3RlckZpbGUsIFJlZ2lzdGVyKiByZWdpc3RlckJhc2UsIFJlZ2lzdGVyKiByLCBpbnQgYXJn
diwgaW50IGFyZ2MsIEpTVmFsdWUqJiBleGNlcHRpb25WYWx1ZSkKIHsKICAgICBzaXplX3QgcmVn
aXN0ZXJPZmZzZXQgPSBhcmd2ICsgbmV3Q29kZUJsb2NrLT5udW1Mb2NhbHM7Ci0gICAgc2l6ZV90
IHNpemUgPSByIC0gcmVnaXN0ZXJCYXNlICsgcmVnaXN0ZXJPZmZzZXQgKyBuZXdDb2RlQmxvY2st
Pm51bVRlbXBvcmFyaWVzOworICAgIHNpemVfdCBzaXplID0gciAtIHJlZ2lzdGVyQmFzZSArIHJl
Z2lzdGVyT2Zmc2V0ICsgbmV3Q29kZUJsb2NrLT5udW1Db25zdGFudHMgKyBuZXdDb2RlQmxvY2st
Pm51bVRlbXBvcmFyaWVzOwogCiAgICAgaWYgKGFyZ2MgPT0gbmV3Q29kZUJsb2NrLT5udW1QYXJh
bWV0ZXJzKSB7IC8vIGNvcnJlY3QgbnVtYmVyIG9mIGFyZ3VtZW50cwogICAgICAgICBpZiAoIXJl
Z2lzdGVyRmlsZS0+Z3JvdyhzaXplKSkgewpAQCAtNDE5LDYgKzQyMCw4IEBAIEFMV0FZU19JTkxJ
TkUgUmVnaXN0ZXIqIHNsaWRlUmVnaXN0ZXJXaW4KICAgICBmb3IgKFJlZ2lzdGVyKiBpdCA9IHIg
LSBuZXdDb2RlQmxvY2stPm51bVZhcnM7IGl0ICE9IHI7ICsraXQpCiAgICAgICAgICgqaXQpID0g
anNVbmRlZmluZWQoKTsKIAorICAgIG1lbWNweShyLCBuZXdDb2RlQmxvY2stPmNvbnN0YW50cy5k
YXRhKCksIG5ld0NvZGVCbG9jay0+Y29uc3RhbnRzLnNpemUoKSAqIHNpemVvZihSZWdpc3Rlcikp
OworCiAgICAgcmV0dXJuIHI7CiB9CiAKQEAgLTU4Myw3ICs1ODYsNyBAQCBib29sIE1hY2hpbmU6
OmlzT3Bjb2RlKE9wY29kZSBvcGNvZGUpCiAjZW5kaWYKIH0KIAotTkVWRVJfSU5MSU5FIGJvb2wg
TWFjaGluZTo6dW53aW5kQ2FsbEZyYW1lKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSogZXhjZXB0
aW9uVmFsdWUsIGNvbnN0IEluc3RydWN0aW9uKiYgdlBDLCBDb2RlQmxvY2sqJiBjb2RlQmxvY2ss
IFJlZ2lzdGVyKiYgaywgU2NvcGVDaGFpbk5vZGUqJiBzY29wZUNoYWluLCBSZWdpc3RlciomIHIp
CitORVZFUl9JTkxJTkUgYm9vbCBNYWNoaW5lOjp1bndpbmRDYWxsRnJhbWUoRXhlY1N0YXRlKiBl
eGVjLCBKU1ZhbHVlKiBleGNlcHRpb25WYWx1ZSwgY29uc3QgSW5zdHJ1Y3Rpb24qJiB2UEMsIENv
ZGVCbG9jayomIGNvZGVCbG9jaywgU2NvcGVDaGFpbk5vZGUqJiBzY29wZUNoYWluLCBSZWdpc3Rl
ciomIHIpCiB7CiAgICAgQ29kZUJsb2NrKiBvbGRDb2RlQmxvY2sgPSBjb2RlQmxvY2s7CiAgICAg
UmVnaXN0ZXIqIGNhbGxGcmFtZSA9IHIgLSBvbGRDb2RlQmxvY2stPm51bUxvY2FscyAtIFJlZ2lz
dGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKQEAgLTYxNiw3ICs2MTksNiBAQCBORVZFUl9J
TkxJTkUgYm9vbCBNYWNoaW5lOjp1bndpbmRDYWxsRnJhCiAgICAgaWYgKCFjb2RlQmxvY2spCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGsgPSBjb2RlQmxvY2stPnJlZ2lzdGVycy5kYXRh
KCk7CiAgICAgc2NvcGVDaGFpbiA9IGNhbGxGcmFtZVtSZWdpc3RlckZpbGU6OkNhbGxlclNjb3Bl
Q2hhaW5dLnNjb3BlQ2hhaW4oKTsKICAgICByID0gY2FsbEZyYW1lW1JlZ2lzdGVyRmlsZTo6Q2Fs
bGVyUmVnaXN0ZXJzXS5yKCk7CiAgICAgZXhlYy0+bV9jYWxsRnJhbWUgPSByIC0gb2xkQ29kZUJs
b2NrLT5udW1Mb2NhbHMgLSBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemU7CkBAIC02
MjUsNyArNjI3LDcgQEAgTkVWRVJfSU5MSU5FIGJvb2wgTWFjaGluZTo6dW53aW5kQ2FsbEZyYQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ORVZFUl9JTkxJTkUgSW5zdHJ1Y3Rpb24qIE1hY2hpbmU6
OnRocm93RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSomIGV4Y2VwdGlvblZhbHVl
LCBjb25zdCBJbnN0cnVjdGlvbiogdlBDLCBDb2RlQmxvY2sqJiBjb2RlQmxvY2ssIFJlZ2lzdGVy
KiYgaywgU2NvcGVDaGFpbk5vZGUqJiBzY29wZUNoYWluLCBSZWdpc3RlciomIHIsIGJvb2wgZXhw
bGljaXRUaHJvdykKK05FVkVSX0lOTElORSBJbnN0cnVjdGlvbiogTWFjaGluZTo6dGhyb3dFeGNl
cHRpb24oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlKiYgZXhjZXB0aW9uVmFsdWUsIGNvbnN0IElu
c3RydWN0aW9uKiB2UEMsIENvZGVCbG9jayomIGNvZGVCbG9jaywgU2NvcGVDaGFpbk5vZGUqJiBz
Y29wZUNoYWluLCBSZWdpc3RlciomIHIsIGJvb2wgZXhwbGljaXRUaHJvdykKIHsKICAgICAvLyBT
ZXQgdXAgdGhlIGV4Y2VwdGlvbiBvYmplY3QKIApAQCAtNjU5LDcgKzY2MSw3IEBAIE5FVkVSX0lO
TElORSBJbnN0cnVjdGlvbiogTWFjaGluZTo6dGhyb3cKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIAogICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbi0+aXNXYXRjaGRvZ0V4Y2VwdGlvbigpKSB7
Ci0gICAgICAgICAgICAgICAgd2hpbGUgKHVud2luZENhbGxGcmFtZShleGVjLCBleGNlcHRpb25W
YWx1ZSwgdlBDLCBjb2RlQmxvY2ssIGssIHNjb3BlQ2hhaW4sIHIpKSB7CisgICAgICAgICAgICAg
ICAgd2hpbGUgKHVud2luZENhbGxGcmFtZShleGVjLCBleGNlcHRpb25WYWx1ZSwgdlBDLCBjb2Rl
QmxvY2ssIHNjb3BlQ2hhaW4sIHIpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIERvbid0IG5l
ZWQgaGFuZGxlciBjaGVja3Mgb3IgYW55dGhpbmcsIHdlIGp1c3Qgd2FudCB0byB1bnJvbGwgYWxs
IHRoZSBKUyBjYWxsZnJhbWVzIHBvc3NpYmxlLgogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICByZXR1cm4gMDsKQEAgLTY3OCw3ICs2ODAsNyBAQCBORVZFUl9JTkxJTkUgSW5zdHJ1
Y3Rpb24qIE1hY2hpbmU6OnRocm93CiAgICAgSW5zdHJ1Y3Rpb24qIGhhbmRsZXJWUEM7CiAKICAg
ICB3aGlsZSAoIWNvZGVCbG9jay0+Z2V0SGFuZGxlckZvclZQQyh2UEMsIGhhbmRsZXJWUEMsIHNj
b3BlRGVwdGgpKSB7Ci0gICAgICAgIGlmICghdW53aW5kQ2FsbEZyYW1lKGV4ZWMsIGV4Y2VwdGlv
blZhbHVlLCB2UEMsIGNvZGVCbG9jaywgaywgc2NvcGVDaGFpbiwgcikpCisgICAgICAgIGlmICgh
dW53aW5kQ2FsbEZyYW1lKGV4ZWMsIGV4Y2VwdGlvblZhbHVlLCB2UEMsIGNvZGVCbG9jaywgc2Nv
cGVDaGFpbiwgcikpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTcwNCw3ICs3
MDYsNyBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpleGVjdXRlKFByb2dyYW1Ob2RlKiBwCiAgICAgQ29k
ZUJsb2NrKiBjb2RlQmxvY2sgPSAmcHJvZ3JhbU5vZGUtPmJ5dGVDb2RlKHNjb3BlQ2hhaW4pOwog
CiAgICAgc2l6ZV90IG9sZFNpemUgPSBtX3JlZ2lzdGVyRmlsZS5zaXplKCk7Ci0gICAgc2l6ZV90
IG5ld1NpemUgPSBvbGRTaXplICsgUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplICsg
Y29kZUJsb2NrLT5udW1WYXJzICsgY29kZUJsb2NrLT5udW1UZW1wb3JhcmllczsKKyAgICBzaXpl
X3QgbmV3U2l6ZSA9IG9sZFNpemUgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUg
KyBjb2RlQmxvY2stPm51bVZhcnMgKyBjb2RlQmxvY2stPm51bUNvbnN0YW50cyArIGNvZGVCbG9j
ay0+bnVtVGVtcG9yYXJpZXM7CiAgICAgaWYgKCFtX3JlZ2lzdGVyRmlsZS5ncm93KG5ld1NpemUp
KSB7CiAgICAgICAgICpleGNlcHRpb24gPSBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYyk7
CiAgICAgICAgIHJldHVybiAwOwpAQCAtNzIxLDYgKzcyMyw3IEBAIEpTVmFsdWUqIE1hY2hpbmU6
OmV4ZWN1dGUoUHJvZ3JhbU5vZGUqIHAKIAogICAgIFJlZ2lzdGVyKiByID0gY2FsbEZyYW1lICsg
UmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplICsgY29kZUJsb2NrLT5udW1WYXJzOwog
ICAgIHJbY29kZUJsb2NrLT50aGlzUmVnaXN0ZXJdID0gdGhpc09iajsKKyAgICBtZW1jcHkociwg
Y29kZUJsb2NrLT5jb25zdGFudHMuZGF0YSgpLCBjb2RlQmxvY2stPmNvbnN0YW50cy5zaXplKCkg
KiBzaXplb2YoUmVnaXN0ZXIpKTsKIAogICAgIGlmIChjb2RlQmxvY2stPm5lZWRzRnVsbFNjb3Bl
Q2hhaW4pCiAgICAgICAgIHNjb3BlQ2hhaW4gPSBzY29wZUNoYWluLT5jb3B5KCk7CkBAIC04Mzks
NyArODQyLDcgQEAgSlNWYWx1ZSogTWFjaGluZTo6ZXhlY3V0ZShFdmFsTm9kZSogZXZhbAogICAg
ICAgICB2YXJpYWJsZU9iamVjdC0+cHV0KGV4ZWMsICgqaXQpLT5tX2lkZW50LCAoKml0KS0+bWFr
ZUZ1bmN0aW9uKGV4ZWMsIHNjb3BlQ2hhaW4pKTsKIAogICAgIHNpemVfdCBvbGRTaXplID0gbV9y
ZWdpc3RlckZpbGUuc2l6ZSgpOwotICAgIHNpemVfdCBuZXdTaXplID0gcmVnaXN0ZXJPZmZzZXQg
KyBjb2RlQmxvY2stPm51bVZhcnMgKyBjb2RlQmxvY2stPm51bVRlbXBvcmFyaWVzICsgUmVnaXN0
ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplOworICAgIHNpemVfdCBuZXdTaXplID0gcmVnaXN0
ZXJPZmZzZXQgKyBjb2RlQmxvY2stPm51bVZhcnMgKyBjb2RlQmxvY2stPm51bUNvbnN0YW50cyAr
IGNvZGVCbG9jay0+bnVtVGVtcG9yYXJpZXMgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRl
clNpemU7CiAgICAgaWYgKCFtX3JlZ2lzdGVyRmlsZS5ncm93KG5ld1NpemUpKSB7CiAgICAgICAg
ICpleGNlcHRpb24gPSBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoZXhlYyk7CiAgICAgICAgIHJl
dHVybiAwOwpAQCAtODUyLDYgKzg1NSw3IEBAIEpTVmFsdWUqIE1hY2hpbmU6OmV4ZWN1dGUoRXZh
bE5vZGUqIGV2YWwKIAogICAgIFJlZ2lzdGVyKiByID0gY2FsbEZyYW1lICsgUmVnaXN0ZXJGaWxl
OjpDYWxsRnJhbWVIZWFkZXJTaXplICsgY29kZUJsb2NrLT5udW1WYXJzOwogICAgIHJbY29kZUJs
b2NrLT50aGlzUmVnaXN0ZXJdID0gdGhpc09iajsKKyAgICBtZW1jcHkociwgY29kZUJsb2NrLT5j
b25zdGFudHMuZGF0YSgpLCBjb2RlQmxvY2stPmNvbnN0YW50cy5zaXplKCkgKiBzaXplb2YoUmVn
aXN0ZXIpKTsKIAogICAgIGlmIChjb2RlQmxvY2stPm5lZWRzRnVsbFNjb3BlQ2hhaW4pCiAgICAg
ICAgIHNjb3BlQ2hhaW4gPSBzY29wZUNoYWluLT5jb3B5KCk7CkBAIC0xMDM0LDcgKzEwMzgsNiBA
QCBKU1ZhbHVlKiBNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRpCiAKICAgICBSZWdpc3Rl
ciogcmVnaXN0ZXJCYXNlID0gcmVnaXN0ZXJGaWxlLT5iYXNlKCk7CiAgICAgSW5zdHJ1Y3Rpb24q
IHZQQyA9IGNvZGVCbG9jay0+aW5zdHJ1Y3Rpb25zLmJlZ2luKCk7Ci0gICAgUmVnaXN0ZXIqIGsg
PSBjb2RlQmxvY2stPnJlZ2lzdGVycy5kYXRhKCk7CiAgICAgUHJvZmlsZXIqKiBlbmFibGVkUHJv
ZmlsZXJSZWZlcmVuY2UgPSBQcm9maWxlcjo6ZW5hYmxlZFByb2ZpbGVyUmVmZXJlbmNlKCk7CiAg
ICAgdW5zaWduZWQgdGlja0NvdW50ID0gbV90aWNrc1VudGlsTmV4dFRpbWVvdXRDaGVjayArIDE7
CiAKQEAgLTEwNzYsMTggKzEwNzksNiBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpwcml2YXRlRXhlY3V0
ZShFeGVjdXRpCiAgICAgc3dpdGNoICh2UEMtPnUub3Bjb2RlKQogI2VuZGlmCiAgICAgewotICAg
IEJFR0lOX09QQ09ERShvcF9sb2FkKSB7Ci0gICAgICAgIC8qIGxvYWQgZHN0KHIpIHNyYyhrKQot
Ci0gICAgICAgICAgIENvcGllcyBjb25zdGFudCBzcmMgdG8gcmVnaXN0ZXIgZHN0LgotICAgICAg
ICAqLwotICAgICAgICBpbnQgZHN0ID0gKCsrdlBDKS0+dS5vcGVyYW5kOwotICAgICAgICBpbnQg
c3JjID0gKCsrdlBDKS0+dS5vcGVyYW5kOwotICAgICAgICByW2RzdF0gPSBrW3NyY107Ci0KLSAg
ICAgICAgKyt2UEM7Ci0gICAgICAgIE5FWFRfT1BDT0RFOwotICAgIH0KICAgICBCRUdJTl9PUENP
REUob3BfbmV3X29iamVjdCkgewogICAgICAgICAvKiBuZXdfb2JqZWN0IGRzdChyKQogCkBAIC0y
MzY1LDcgKzIzNTYsNiBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRp
CiAKICAgICAgICAgICAgIGNvZGVCbG9jayA9IG5ld0NvZGVCbG9jazsKICAgICAgICAgICAgIHNl
dFNjb3BlQ2hhaW4oZXhlYywgc2NvcGVDaGFpbiwgc2NvcGVDaGFpbkZvckNhbGwoZXhlYywgZnVu
Y3Rpb25Cb2R5Tm9kZSwgY29kZUJsb2NrLCBjYWxsRGF0YVNjb3BlQ2hhaW4sIHIpKTsKLSAgICAg
ICAgICAgIGsgPSBjb2RlQmxvY2stPnJlZ2lzdGVycy5kYXRhKCk7CiAgICAgICAgICAgICB2UEMg
PSBjb2RlQmxvY2stPmluc3RydWN0aW9ucy5iZWdpbigpOwogCiAjaWYgRFVNUF9PUENPREVfU1RB
VFMKQEAgLTI0MzYsNyArMjQyNiw2IEBAIEpTVmFsdWUqIE1hY2hpbmU6OnByaXZhdGVFeGVjdXRl
KEV4ZWN1dGkKICAgICAgICAgaWYgKCFjb2RlQmxvY2spCiAgICAgICAgICAgICByZXR1cm4gcmV0
dXJuVmFsdWU7CiAKLSAgICAgICAgayA9IGNvZGVCbG9jay0+cmVnaXN0ZXJzLmRhdGEoKTsKICAg
ICAgICAgdlBDID0gY2FsbEZyYW1lW1JlZ2lzdGVyRmlsZTo6UmV0dXJuVlBDXS52UEMoKTsKICAg
ICAgICAgc2V0U2NvcGVDaGFpbihleGVjLCBzY29wZUNoYWluLCBjYWxsRnJhbWVbUmVnaXN0ZXJG
aWxlOjpDYWxsZXJTY29wZUNoYWluXS5zY29wZUNoYWluKCkpOwogICAgICAgICByID0gY2FsbEZy
YW1lW1JlZ2lzdGVyRmlsZTo6Q2FsbGVyUmVnaXN0ZXJzXS5yKCk7CkBAIC0yNDk4LDcgKzI0ODcs
NiBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRpCiAKICAgICAgICAg
ICAgIGNvZGVCbG9jayA9IG5ld0NvZGVCbG9jazsKICAgICAgICAgICAgIHNldFNjb3BlQ2hhaW4o
ZXhlYywgc2NvcGVDaGFpbiwgc2NvcGVDaGFpbkZvckNhbGwoZXhlYywgZnVuY3Rpb25Cb2R5Tm9k
ZSwgY29kZUJsb2NrLCBjYWxsRGF0YVNjb3BlQ2hhaW4sIHIpKTsKLSAgICAgICAgICAgIGsgPSBj
b2RlQmxvY2stPnJlZ2lzdGVycy5kYXRhKCk7CiAgICAgICAgICAgICB2UEMgPSBjb2RlQmxvY2st
Pmluc3RydWN0aW9ucy5iZWdpbigpOwogCiAgICAgICAgICAgICBORVhUX09QQ09ERTsKQEAgLTI2
NjEsNyArMjY0OSw3IEBAIEpTVmFsdWUqIE1hY2hpbmU6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGkK
ICAgICAgICAgaW50IGV4ID0gKCsrdlBDKS0+dS5vcGVyYW5kOwogICAgICAgICBleGNlcHRpb25W
YWx1ZSA9IHJbZXhdLmpzVmFsdWUoZXhlYyk7CiAKLSAgICAgICAgaGFuZGxlclZQQyA9IHRocm93
RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvblZhbHVlLCB2UEMsIGNvZGVCbG9jaywgaywgc2NvcGVD
aGFpbiwgciwgdHJ1ZSk7CisgICAgICAgIGhhbmRsZXJWUEMgPSB0aHJvd0V4Y2VwdGlvbihleGVj
LCBleGNlcHRpb25WYWx1ZSwgdlBDLCBjb2RlQmxvY2ssIHNjb3BlQ2hhaW4sIHIsIHRydWUpOwog
ICAgICAgICBpZiAoIWhhbmRsZXJWUEMpIHsKICAgICAgICAgICAgICpleGNlcHRpb24gPSBleGNl
cHRpb25WYWx1ZTsKICAgICAgICAgICAgIHJldHVybiBqc051bGwoKTsKQEAgLTI2NzksNiArMjY2
NywxOCBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZShFeGVjdXRpCiAgICAgICAg
IHZQQyA9IGhhbmRsZXJWUEM7CiAgICAgICAgIE5FWFRfT1BDT0RFOwogICAgIH0KKyAgICBCRUdJ
Tl9PUENPREUob3BfdW5leHBlY3RlZF9sb2FkKSB7CisgICAgICAgIC8qIHVuZXhwZWN0ZWRfbG9h
ZCBsb2FkIGRzdChyKSBzcmMoaykKKworICAgICAgICAgICBDb3BpZXMgY29uc3RhbnQgc3JjIHRv
IHJlZ2lzdGVyIGRzdC4KKyAgICAgICAgKi8KKyAgICAgICAgaW50IGRzdCA9ICgrK3ZQQyktPnUu
b3BlcmFuZDsKKyAgICAgICAgaW50IHNyYyA9ICgrK3ZQQyktPnUub3BlcmFuZDsKKyAgICAgICAg
cltkc3RdID0gY29kZUJsb2NrLT51bmV4cGVjdGVkQ29uc3RhbnRzW3NyY107CisKKyAgICAgICAg
Kyt2UEM7CisgICAgICAgIE5FWFRfT1BDT0RFOworICAgIH0KICAgICBCRUdJTl9PUENPREUob3Bf
bmV3X2Vycm9yKSB7CiAgICAgICAgIC8qIG5ld19lcnJvciBkc3QocikgdHlwZShuKSBtZXNzYWdl
KGspCiAKQEAgLTI2OTEsNyArMjY5MSw3IEBAIEpTVmFsdWUqIE1hY2hpbmU6OnByaXZhdGVFeGVj
dXRlKEV4ZWN1dGkKICAgICAgICAgaW50IHR5cGUgPSAoKyt2UEMpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgIGludCBtZXNzYWdlID0gKCsrdlBDKS0+dS5vcGVyYW5kOwogCi0gICAgICAgIHJbZHN0XSA9
IEVycm9yOjpjcmVhdGUoZXhlYywgKEVycm9yVHlwZSl0eXBlLCBrW21lc3NhZ2VdLmpzVmFsdWUo
ZXhlYyktPnRvU3RyaW5nKGV4ZWMpLCBjb2RlQmxvY2stPmxpbmVOdW1iZXJGb3JWUEModlBDKSwg
Y29kZUJsb2NrLT5vd25lck5vZGUtPnNvdXJjZUlkKCksIGNvZGVCbG9jay0+b3duZXJOb2RlLT5z
b3VyY2VVUkwoKSk7CisgICAgICAgIHJbZHN0XSA9IEVycm9yOjpjcmVhdGUoZXhlYywgKEVycm9y
VHlwZSl0eXBlLCBjb2RlQmxvY2stPnVuZXhwZWN0ZWRDb25zdGFudHNbbWVzc2FnZV0tPnRvU3Ry
aW5nKGV4ZWMpLCBjb2RlQmxvY2stPmxpbmVOdW1iZXJGb3JWUEModlBDKSwgY29kZUJsb2NrLT5v
d25lck5vZGUtPnNvdXJjZUlkKCksIGNvZGVCbG9jay0+b3duZXJOb2RlLT5zb3VyY2VVUkwoKSk7
CiAKICAgICAgICAgKyt2UEM7CiAgICAgICAgIE5FWFRfT1BDT0RFOwpAQCAtMjgwMSw3ICsyODAx
LDcgQEAgSlNWYWx1ZSogTWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aQogICAgICAgICAg
ICAgLy8gY2Fubm90IGZhdGhvbSBpZiB3ZSBkb24ndCBhc3NpZ24gdG8gdGhlIGV4Y2VwdGlvblZh
bHVlIGJlZm9yZSBicmFuY2hpbmcpCiAgICAgICAgICAgICBleGNlcHRpb25WYWx1ZSA9IGNyZWF0
ZUludGVycnVwdGVkRXhlY3V0aW9uRXhjZXB0aW9uKGV4ZWMpOwogICAgICAgICB9Ci0gICAgICAg
IGhhbmRsZXJWUEMgPSB0aHJvd0V4Y2VwdGlvbihleGVjLCBleGNlcHRpb25WYWx1ZSwgdlBDLCBj
b2RlQmxvY2ssIGssIHNjb3BlQ2hhaW4sIHIsIGZhbHNlKTsKKyAgICAgICAgaGFuZGxlclZQQyA9
IHRocm93RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvblZhbHVlLCB2UEMsIGNvZGVCbG9jaywgc2Nv
cGVDaGFpbiwgciwgZmFsc2UpOwogICAgICAgICBpZiAoIWhhbmRsZXJWUEMpIHsKICAgICAgICAg
ICAgICpleGNlcHRpb24gPSBleGNlcHRpb25WYWx1ZTsKICAgICAgICAgICAgIHJldHVybiBqc051
bGwoKTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL1ZNL01hY2hpbmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9WTS9NYWNoaW5lLmgJKHJldmlzaW9uIDM1NTgwKQorKysgSmF2YVNjcmlw
dENvcmUvVk0vTWFjaGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQsOCArMTM0LDggQEAgbmFt
ZXNwYWNlIEtKUyB7CiAgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXRTY29wZUNoYWluKEV4
ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbk5vZGUqJiwgU2NvcGVDaGFpbk5vZGUqKTsKICAgICAg
ICAgTkVWRVJfSU5MSU5FIHZvaWQgZGVidWcoRXhlY1N0YXRlKiwgY29uc3QgSW5zdHJ1Y3Rpb24q
LCBjb25zdCBDb2RlQmxvY2sqLCBTY29wZUNoYWluTm9kZSosIFJlZ2lzdGVyKik7CiAKLSAgICAg
ICAgTkVWRVJfSU5MSU5FIGJvb2wgdW53aW5kQ2FsbEZyYW1lKEV4ZWNTdGF0ZSosIEpTVmFsdWUq
LCBjb25zdCBJbnN0cnVjdGlvbiomLCBDb2RlQmxvY2sqJiwgUmVnaXN0ZXIqJiwgU2NvcGVDaGFp
bk5vZGUqJiwgUmVnaXN0ZXIqJik7Ci0gICAgICAgIE5FVkVSX0lOTElORSBJbnN0cnVjdGlvbiog
dGhyb3dFeGNlcHRpb24oRXhlY1N0YXRlKiwgSlNWYWx1ZSomLCBjb25zdCBJbnN0cnVjdGlvbios
IENvZGVCbG9jayomLCBSZWdpc3RlciomLCBTY29wZUNoYWluTm9kZSomLCBSZWdpc3RlciomLCBi
b29sKTsKKyAgICAgICAgTkVWRVJfSU5MSU5FIGJvb2wgdW53aW5kQ2FsbEZyYW1lKEV4ZWNTdGF0
ZSosIEpTVmFsdWUqLCBjb25zdCBJbnN0cnVjdGlvbiomLCBDb2RlQmxvY2sqJiwgU2NvcGVDaGFp
bk5vZGUqJiwgUmVnaXN0ZXIqJik7CisgICAgICAgIE5FVkVSX0lOTElORSBJbnN0cnVjdGlvbiog
dGhyb3dFeGNlcHRpb24oRXhlY1N0YXRlKiwgSlNWYWx1ZSomLCBjb25zdCBJbnN0cnVjdGlvbios
IENvZGVCbG9jayomLCBTY29wZUNoYWluTm9kZSomLCBSZWdpc3RlciomLCBib29sKTsKIAogICAg
ICAgICBSZWdpc3RlciogY2FsbEZyYW1lKEV4ZWNTdGF0ZSosIEpTRnVuY3Rpb24qKSBjb25zdDsK
IApJbmRleDogSmF2YVNjcmlwdENvcmUvVk0vT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvVk0vT3Bjb2RlLmgJKHJldmlzaW9uIDM1NTgwKQorKysgSmF2YVNjcmlwdENvcmUv
Vk0vT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIEtK
UyB7CiAjZGVmaW5lIERVTVBfT1BDT0RFX1NUQVRTIDAKIAogICAgICNkZWZpbmUgRk9SX0VBQ0hf
T1BDT0RFX0lEKG1hY3JvKSBcCi0gICAgICAgIG1hY3JvKG9wX2xvYWQpIFwKKyAgICAgICAgbWFj
cm8ob3BfdW5leHBlY3RlZF9sb2FkKSBcCiAgICAgICAgIG1hY3JvKG9wX25ld19vYmplY3QpIFwK
ICAgICAgICAgbWFjcm8ob3BfbmV3X2FycmF5KSBcCiAgICAgICAgIG1hY3JvKG9wX25ld19yZWdl
eHApIFwKSW5kZXg6IEphdmFTY3JpcHRDb3JlL1ZNL1JlZ2lzdGVySUQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKYXZhU2NyaXB0Q29yZS9WTS9SZWdpc3RlcklELmgJKHJldmlzaW9uIDM1NTgwKQorKysgSmF2
YVNjcmlwdENvcmUvVk0vUmVnaXN0ZXJJRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3
IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHB1YmxpYzoKICAgICAgICAgUmVnaXN0ZXJJRCgpCiAg
ICAgICAgICAgICA6IG1fcmVmQ291bnQoMCkKKyAgICAgICAgICAgICwgbV9pc0NvbnN0YW50KGZh
bHNlKQogI2lmbmRlZiBOREVCVUcKICAgICAgICAgICAgICwgbV9kaWRTZXRJbmRleChmYWxzZSkK
ICNlbmRpZgpAQCAtNDgsNiArNDksNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgZXhwbGlj
aXQgUmVnaXN0ZXJJRChpbnQgaW5kZXgpCiAgICAgICAgICAgICA6IG1fcmVmQ291bnQoMCkKICAg
ICAgICAgICAgICwgbV9pbmRleChpbmRleCkKKyAgICAgICAgICAgICwgbV9pc0NvbnN0YW50KGZh
bHNlKQogI2lmbmRlZiBOREVCVUcKICAgICAgICAgICAgICwgbV9kaWRTZXRJbmRleCh0cnVlKQog
I2VuZGlmCkBAIC02Myw2ICs2NSwxMSBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgICAgIG1f
aW5kZXggPSBpbmRleDsKICAgICAgICAgfQogCisgICAgICAgIHZvaWQgbWFrZUNvbnN0YW50KCkK
KyAgICAgICAgeworICAgICAgICAgICAgbV9pc0NvbnN0YW50ID0gdHJ1ZTsKKyAgICAgICAgfQor
CiAgICAgICAgIGludCBpbmRleCgpIGNvbnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VS
VChtX2RpZFNldEluZGV4KTsKQEAgLTcxLDcgKzc4LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAKICAg
ICAgICAgYm9vbCBpc1RlbXBvcmFyeSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBt
X2luZGV4ID49IDA7CisgICAgICAgICAgICByZXR1cm4gbV9pbmRleCA+PSAwICYmICFtX2lzQ29u
c3RhbnQ7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHJlZigpCkBAIC05NCw2ICsxMDEsNyBA
QCBuYW1lc3BhY2UgS0pTIHsKIAogICAgICAgICBpbnQgbV9yZWZDb3VudDsKICAgICAgICAgaW50
IG1faW5kZXg7CisgICAgICAgIGJvb2wgbV9pc0NvbnN0YW50OwogI2lmbmRlZiBOREVCVUcKICAg
ICAgICAgYm9vbCBtX2RpZFNldEluZGV4OwogI2VuZGlmCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9r
anMvTm9kZUluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvTm9kZUluZm8u
aAkocmV2aXNpb24gMzU1ODApCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvTm9kZUluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gc3RydWN0IE5vZGVGZWF0dXJlSW5mbyB7CiAgICAgICAgIFQgbV9ub2Rl
OwogICAgICAgICBGZWF0dXJlSW5mbyBtX2ZlYXR1cmVJbmZvOworICAgICAgICBpbnQgbV9udW1D
b25zdGFudHM7CiAgICAgfTsKICAgICAKICAgICB0eXBlZGVmIE5vZGVGZWF0dXJlSW5mbzxGdW5j
RXhwck5vZGUqPiBGdW5jRXhwck5vZGVJbmZvOwpAQCAtNTEsNiArNTIsNyBAQCBuYW1lc3BhY2Ug
S0pTIHsKICAgICAgICAgUGFyc2VyUmVmQ291bnRlZERhdGE8RGVjbGFyYXRpb25TdGFja3M6OlZh
clN0YWNrPiogbV92YXJEZWNsYXJhdGlvbnM7CiAgICAgICAgIFBhcnNlclJlZkNvdW50ZWREYXRh
PERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrPiogbV9mdW5jRGVjbGFyYXRpb25zOwog
ICAgICAgICBGZWF0dXJlSW5mbyBtX2ZlYXR1cmVJbmZvOworICAgICAgICBpbnQgbV9udW1Db25z
dGFudHM7CiAgICAgfTsKICAgICAKICAgICB0eXBlZGVmIE5vZGVEZWNsYXJhdGlvbkluZm88U3Rh
dGVtZW50Tm9kZSo+IFN0YXRlbWVudE5vZGVJbmZvOwpJbmRleDogSmF2YVNjcmlwdENvcmUva2pz
L1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUva2pzL1BhcnNlci5jcHAJ
KHJldmlzaW9uIDM1NTgwKQorKysgSmF2YVNjcmlwdENvcmUva2pzL1BhcnNlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBQYXJzZXI6OnBhcnNlKEV4ZWNTdGF0ZSog
ZXhlYywgY29ucwogfQogCiB2b2lkIFBhcnNlcjo6ZGlkRmluaXNoUGFyc2luZyhTb3VyY2VFbGVt
ZW50cyogc291cmNlRWxlbWVudHMsIFBhcnNlclJlZkNvdW50ZWREYXRhPERlY2xhcmF0aW9uU3Rh
Y2tzOjpWYXJTdGFjaz4qIHZhclN0YWNrLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFBhcnNlclJlZkNvdW50ZWREYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrPiog
ZnVuY1N0YWNrLCBib29sIHVzZXNFdmFsLCBib29sIG5lZWRzQ2xvc3VyZSwgaW50IGxhc3RMaW5l
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyc2VyUmVmQ291bnRlZERhdGE8RGVj
bGFyYXRpb25TdGFja3M6OkZ1bmN0aW9uU3RhY2s+KiBmdW5jU3RhY2ssIGJvb2wgdXNlc0V2YWws
IGJvb2wgbmVlZHNDbG9zdXJlLCBpbnQgbGFzdExpbmUsIGludCBudW1Db25zdGFudHMpCiB7CiAg
ICAgbV9zb3VyY2VFbGVtZW50cyA9IHNvdXJjZUVsZW1lbnRzOwogICAgIG1fdmFyRGVjbGFyYXRp
b25zID0gdmFyU3RhY2s7CkBAIC05MSw2ICs5MSw3IEBAIHZvaWQgUGFyc2VyOjpkaWRGaW5pc2hQ
YXJzaW5nKFNvdXJjZUVsZW0KICAgICBtX3VzZXNFdmFsID0gdXNlc0V2YWw7CiAgICAgbV9uZWVk
c0Nsb3N1cmUgPSBuZWVkc0Nsb3N1cmU7CiAgICAgbV9sYXN0TGluZSA9IGxhc3RMaW5lOworICAg
IG1fbnVtQ29uc3RhbnRzID0gbnVtQ29uc3RhbnRzOwogfQogCiB9IC8vIG5hbWVzcGFjZSBLSlMK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9QYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9ranMvUGFyc2VyLmgJKHJldmlzaW9uIDM1NTgwKQorKysgSmF2YVNjcmlwdENvcmUv
a2pzL1BhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIG5hbWVzcGFjZSBL
SlMgewogICAgICAgICBpbnQgc291cmNlSWQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUlkOyB9
CiAKICAgICAgICAgdm9pZCBkaWRGaW5pc2hQYXJzaW5nKFNvdXJjZUVsZW1lbnRzKiwgUGFyc2Vy
UmVmQ291bnRlZERhdGE8RGVjbGFyYXRpb25TdGFja3M6OlZhclN0YWNrPiosIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUGFyc2VyUmVmQ291bnRlZERhdGE8RGVjbGFyYXRpb25TdGFj
a3M6OkZ1bmN0aW9uU3RhY2s+KiwgYm9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUsIGlu
dCBsYXN0TGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXJzZXJSZWZDb3Vu
dGVkRGF0YTxEZWNsYXJhdGlvblN0YWNrczo6RnVuY3Rpb25TdGFjaz4qLCBib29sIHVzZXNFdmFs
LCBib29sIG5lZWRzQ2xvc3VyZSwgaW50IGxhc3RMaW5lLCBpbnQgbnVtQ29uc3RhbnRzKTsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBKU0dsb2JhbERhdGE7CkBAIC03Myw2
ICs3Myw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICBib29sIG1fdXNlc0V2YWw7CiAgICAg
ICAgIGJvb2wgbV9uZWVkc0Nsb3N1cmU7CiAgICAgICAgIGludCBtX2xhc3RMaW5lOworICAgICAg
ICBpbnQgbV9udW1Db25zdGFudHM7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlIDxjbGFzcyBQYXJz
ZWROb2RlPgpAQCAtOTIsNyArOTMsOCBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9mdW5jRGVjbGFyYXRpb25z
ID8gJm1fZnVuY0RlY2xhcmF0aW9ucy0+ZGF0YSA6IDAsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZVByb3ZpZGVyLmdldCgpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3VzZXNF
dmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX25lZWRzQ2xvc3VyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fbmVlZHNDbG9zdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX251bUNvbnN0YW50cyk7CiAgICAgICAgIG1f
dmFyRGVjbGFyYXRpb25zID0gMDsKICAgICAgICAgbV9mdW5jRGVjbGFyYXRpb25zID0gMDsKICAg
ICAgICAgbV9zb3VyY2VVUkwgPSBVU3RyaW5nKCk7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMv
Z3JhbW1hci55Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFyLnkJKHJl
dmlzaW9uIDM1NTgwKQorKysgSmF2YVNjcmlwdENvcmUva2pzL2dyYW1tYXIueQkod29ya2luZyBj
b3B5KQpAQCAtOTUsMTcgKzk1LDE4IEBAIHN0YXRpYyBFeHByZXNzaW9uTm9kZSogY29tYmluZVZh
ckluaXRpYWwKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IE5vZGVEZWNsYXJhdGlvbkluZm88VD4g
Y3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbyhUIG5vZGUsIFBhcnNlclJlZkNvdW50ZWREYXRhPERl
Y2xhcmF0aW9uU3RhY2tzOjpWYXJTdGFjaz4qIHZhckRlY2xzLCAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFy
c2VyUmVmQ291bnRlZERhdGE8RGVjbGFyYXRpb25TdGFja3M6OkZ1bmN0aW9uU3RhY2s+KiBmdW5j
RGVjbHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEZlYXR1cmVJbmZvIGluZm8pIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG
ZWF0dXJlSW5mbyBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtQ29uc3RhbnRzKSAKIHsKICAg
ICBBU1NFUlQoKGluZm8gJiB+KEV2YWxGZWF0dXJlIHwgQ2xvc3VyZUZlYXR1cmUgfCBBc3NpZ25G
ZWF0dXJlKSkgPT0gMCk7Ci0gICAgTm9kZURlY2xhcmF0aW9uSW5mbzxUPiByZXN1bHQgPSB7bm9k
ZSwgdmFyRGVjbHMsIGZ1bmNEZWNscywgaW5mb307CisgICAgTm9kZURlY2xhcmF0aW9uSW5mbzxU
PiByZXN1bHQgPSB7bm9kZSwgdmFyRGVjbHMsIGZ1bmNEZWNscywgaW5mbywgbnVtQ29uc3RhbnRz
fTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gTm9kZUZl
YXR1cmVJbmZvPFQ+IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbyhUIG5vZGUsIEZlYXR1cmVJbmZvIGlu
Zm8pIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IE5vZGVGZWF0dXJlSW5mbzxUPiBjcmVhdGVOb2Rl
RmVhdHVyZUluZm8oVCBub2RlLCBGZWF0dXJlSW5mbyBpbmZvLCBpbnQgbnVtQ29uc3RhbnRzKQog
ewogICAgIEFTU0VSVCgoaW5mbyAmIH4oRXZhbEZlYXR1cmUgfCBDbG9zdXJlRmVhdHVyZSB8IEFz
c2lnbkZlYXR1cmUpKSA9PSAwKTsKLSAgICBOb2RlRmVhdHVyZUluZm88VD4gcmVzdWx0ID0ge25v
ZGUsIGluZm99OworICAgIE5vZGVGZWF0dXJlSW5mbzxUPiByZXN1bHQgPSB7bm9kZSwgaW5mbywg
bnVtQ29uc3RhbnRzfTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0yNzksMTEgKzI4MCwx
MSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kVG9WYXJEZWNsYXJhdGlvCiAlJQogCiBMaXRl
cmFsOgotICAgIE5VTExUT0tFTiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTnVsbE5vZGUoR0xPQkFMX0RB
VEEpLCAwKTsgfQotICB8IFRSVUVUT0tFTiAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQg
PSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQm9vbGVhbk5vZGUo
R0xPQkFMX0RBVEEsIHRydWUpLCAwKTsgfQotICB8IEZBTFNFVE9LRU4gICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihu
ZXcgQm9vbGVhbk5vZGUoR0xPQkFMX0RBVEEsIGZhbHNlKSwgMCk7IH0KLSAgfCBOVU1CRVIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obWFrZU51bWJlck5vZGUoR0xPQkFMX0RBVEEsICQxKSwgMCk7IH0KLSAg
fCBTVFJJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IFN0cmluZ05vZGUoR0xPQkFMX0RBVEEsICQx
KSwgMCk7IH0KKyAgICBOVUxMVE9LRU4gICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IE51bGxOb2RlKEdMT0JB
TF9EQVRBKSwgMCwgMSk7IH0KKyAgfCBUUlVFVE9LRU4gICAgICAgICAgICAgICAgICAgICAgICAg
ICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEJvb2xl
YW5Ob2RlKEdMT0JBTF9EQVRBLCB0cnVlKSwgMCwgMSk7IH0KKyAgfCBGQUxTRVRPS0VOICAgICAg
ICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obmV3IEJvb2xlYW5Ob2RlKEdMT0JBTF9EQVRBLCBmYWxzZSksIDAsIDEpOyB9Cisg
IHwgTlVNQkVSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VOdW1iZXJOb2RlKEdMT0JBTF9EQVRBLCAk
MSksIDAsIDEpOyB9CisgIHwgU1RSSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBTdHJpbmdOb2Rl
KEdMT0JBTF9EQVRBLCAkMSksIDAsIDEpOyB9CiAgIHwgJy8nIC8qIHJlZ2V4cCAqLyAgICAgICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBMZXhlciYgbCA9ICpMRVhFUjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFsLnNjYW5SZWdFeHAoKSkKQEAgLTI5MSw3ICsyOTIsNyBAQCBMaXRlcmFs
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWdFeHBOb2Rl
KiBub2RlID0gbmV3IFJlZ0V4cE5vZGUoR0xPQkFMX0RBVEEsIGwucGF0dGVybigpLCBsLmZsYWdz
KCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6
ZSA9IGwucGF0dGVybigpLnNpemUoKSArIDI7IC8vICsgMiBmb3IgdGhlIHR3byAvJ3MKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0VYQ0VQVElPTl9MT0NB
VElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAxLmZpcnN0X2NvbHVtbiArIHNpemUsIEAxLmZp
cnN0X2NvbHVtbiArIHNpemUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUs
IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsIDAsIDApOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgfCBESVZFUVVBTCAvKiByZWdl
eHAgd2l0aCAvPSAqLyAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIExleGVyJiBsID0gKkxFWEVSOwpAQCAtMzAwLDU4ICszMDEsNjIgQEAgTGl0ZXJh
bDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnRXhwTm9k
ZSogbm9kZSA9IG5ldyBSZWdFeHBOb2RlKEdMT0JBTF9EQVRBLCAiPSIgKyBsLnBhdHRlcm4oKSwg
bC5mbGFncygpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW50IHNpemUgPSBsLnBhdHRlcm4oKS5zaXplKCkgKyAyOyAvLyArIDIgZm9yIHRoZSB0d28gLydz
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJ
T05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5maXJzdF9jb2x1bW4gKyBzaXpl
LCBAMS5maXJzdF9jb2x1bW4gKyBzaXplKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
Pihub2RlLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAwLCAwKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiA7CiAKIFByb3BlcnR5
OgotICAgIElERU5UICc6JyBBc3NpZ25tZW50RXhwciAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVO
b2RlRmVhdHVyZUluZm88UHJvcGVydHlOb2RlKj4obmV3IFByb3BlcnR5Tm9kZShHTE9CQUxfREFU
QSwgKiQxLCAkMy5tX25vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQpLCAkMy5tX2ZlYXR1cmVJ
bmZvKTsgfQotICB8IFNUUklORyAnOicgQXNzaWdubWVudEV4cHIgICAgICAgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRmVhdHVyZUluZm88UHJvcGVydHlOb2RlKj4obmV3IFByb3BlcnR5Tm9kZShHTE9C
QUxfREFUQSwgSWRlbnRpZmllcihHTE9CQUxfREFUQSwgKiQxKSwgJDMubV9ub2RlLCBQcm9wZXJ0
eU5vZGU6OkNvbnN0YW50KSwgJDMubV9mZWF0dXJlSW5mbyk7IH0KLSAgfCBOVU1CRVIgJzonIEFz
c2lnbm1lbnRFeHByICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPFByb3Bl
cnR5Tm9kZSo+KG5ldyBQcm9wZXJ0eU5vZGUoR0xPQkFMX0RBVEEsIElkZW50aWZpZXIoR0xPQkFM
X0RBVEEsIFVTdHJpbmc6OmZyb20oJDEpKSwgJDMubV9ub2RlLCBQcm9wZXJ0eU5vZGU6OkNvbnN0
YW50KSwgJDMubV9mZWF0dXJlSW5mbyk7IH0KLSAgfCBJREVOVCBJREVOVCAnKCcgJyknIE9QRU5C
UkFDRSBGdW5jdGlvbkJvZHkgQ0xPU0VCUkFDRSAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJ
bmZvPFByb3BlcnR5Tm9kZSo+KG1ha2VHZXR0ZXJPclNldHRlclByb3BlcnR5Tm9kZShnbG9iYWxQ
dHIsICokMSwgKiQyLCAwLCAkNiwgTEVYRVItPnNvdXJjZVJhbmdlKCQ1LCAkNykpLCBDbG9zdXJl
RmVhdHVyZSk7IERCRygkNiwgQDUsIEA3KTsgaWYgKCEkJC5tX25vZGUpIFlZQUJPUlQ7IH0KKyAg
ICBJREVOVCAnOicgQXNzaWdubWVudEV4cHIgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPFByb3BlcnR5Tm9kZSo+KG5ldyBQcm9wZXJ0eU5vZGUoR0xPQkFMX0RBVEEsICok
MSwgJDMubV9ub2RlLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50KSwgJDMubV9mZWF0dXJlSW5mbywg
JDMubV9udW1Db25zdGFudHMpOyB9CisgIHwgU1RSSU5HICc6JyBBc3NpZ25tZW50RXhwciAgICAg
ICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxQcm9wZXJ0eU5vZGUqPihuZXcgUHJv
cGVydHlOb2RlKEdMT0JBTF9EQVRBLCBJZGVudGlmaWVyKEdMT0JBTF9EQVRBLCAqJDEpLCAkMy5t
X25vZGUsIFByb3BlcnR5Tm9kZTo6Q29uc3RhbnQpLCAkMy5tX2ZlYXR1cmVJbmZvLCAkMy5tX251
bUNvbnN0YW50cyk7IH0KKyAgfCBOVU1CRVIgJzonIEFzc2lnbm1lbnRFeHByICAgICAgICAgICB7
ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPFByb3BlcnR5Tm9kZSo+KG5ldyBQcm9wZXJ0eU5v
ZGUoR0xPQkFMX0RBVEEsIElkZW50aWZpZXIoR0xPQkFMX0RBVEEsIFVTdHJpbmc6OmZyb20oJDEp
KSwgJDMubV9ub2RlLCBQcm9wZXJ0eU5vZGU6OkNvbnN0YW50KSwgJDMubV9mZWF0dXJlSW5mbywg
JDMubV9udW1Db25zdGFudHMpOyB9CisgIHwgSURFTlQgSURFTlQgJygnICcpJyBPUEVOQlJBQ0Ug
RnVuY3Rpb25Cb2R5IENMT1NFQlJBQ0UgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxQ
cm9wZXJ0eU5vZGUqPihtYWtlR2V0dGVyT3JTZXR0ZXJQcm9wZXJ0eU5vZGUoZ2xvYmFsUHRyLCAq
JDEsICokMiwgMCwgJDYsIExFWEVSLT5zb3VyY2VSYW5nZSgkNSwgJDcpKSwgQ2xvc3VyZUZlYXR1
cmUsIDApOyBEQkcoJDYsIEA1LCBANyk7IGlmICghJCQubV9ub2RlKSBZWUFCT1JUOyB9CiAgIHwg
SURFTlQgSURFTlQgJygnIEZvcm1hbFBhcmFtZXRlckxpc3QgJyknIE9QRU5CUkFDRSBGdW5jdGlv
bkJvZHkgQ0xPU0VCUkFDRQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88UHJvcGVydHlOb2RlKj4obWFrZUdldHRlck9y
U2V0dGVyUHJvcGVydHlOb2RlKGdsb2JhbFB0ciwgKiQxLCAqJDIsICQ0LmhlYWQsICQ3LCBMRVhF
Ui0+c291cmNlUmFuZ2UoJDYsICQ4KSksIENsb3N1cmVGZWF0dXJlKTsgREJHKCQ3LCBANiwgQDgp
OyBpZiAoISQkLm1fbm9kZSkgWVlBQk9SVDsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88UHJvcGVydHlOb2RlKj4o
bWFrZUdldHRlck9yU2V0dGVyUHJvcGVydHlOb2RlKGdsb2JhbFB0ciwgKiQxLCAqJDIsICQ0Lmhl
YWQsICQ3LCBMRVhFUi0+c291cmNlUmFuZ2UoJDYsICQ4KSksIENsb3N1cmVGZWF0dXJlLCAwKTsg
REJHKCQ3LCBANiwgQDgpOyBpZiAoISQkLm1fbm9kZSkgWVlBQk9SVDsgfQogOwogCiBQcm9wZXJ0
eUxpc3Q6CiAgICAgUHJvcGVydHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJC5tX25v
ZGUuaGVhZCA9IG5ldyBQcm9wZXJ0eUxpc3ROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUpOyAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbm9kZS50YWls
ID0gJCQubV9ub2RlLmhlYWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDEubV9mZWF0dXJlSW5mbzsgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVh
dHVyZUluZm87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5t
X251bUNvbnN0YW50cyA9ICQxLm1fbnVtQ29uc3RhbnRzOyB9CiAgIHwgUHJvcGVydHlMaXN0ICcs
JyBQcm9wZXJ0eSAgICAgICAgICAgeyAkJC5tX25vZGUuaGVhZCA9ICQxLm1fbm9kZS5oZWFkOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9ub2RlLnRhaWwg
PSBuZXcgUHJvcGVydHlMaXN0Tm9kZShHTE9CQUxfREFUQSwgJDMubV9ub2RlLCAkMS5tX25vZGUu
dGFpbCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Zl
YXR1cmVJbmZvID0gJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm87ICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0g
JDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm87CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9ICQxLm1fbnVtQ29uc3Rh
bnRzICsgJDMubV9udW1Db25zdGFudHM7IH0KIDsKIAogUHJpbWFyeUV4cHI6CiAgICAgUHJpbWFy
eUV4cHJOb0JyYWNlCi0gIHwgT1BFTkJSQUNFIENMT1NFQlJBQ0UgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihu
ZXcgT2JqZWN0TGl0ZXJhbE5vZGUoR0xPQkFMX0RBVEEpLCAwKTsgfQotICB8IE9QRU5CUkFDRSBQ
cm9wZXJ0eUxpc3QgQ0xPU0VCUkFDRSAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IE9iamVjdExpdGVyYWxOb2RlKEdMT0JBTF9E
QVRBLCAkMi5tX25vZGUuaGVhZCksICQyLm1fZmVhdHVyZUluZm8pOyB9CisgIHwgT1BFTkJSQUNF
IENMT1NFQlJBQ0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2Rl
RmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgT2JqZWN0TGl0ZXJhbE5vZGUoR0xPQkFM
X0RBVEEpLCAwLCAwKTsgfQorICB8IE9QRU5CUkFDRSBQcm9wZXJ0eUxpc3QgQ0xPU0VCUkFDRSAg
ICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2Rl
Kj4obmV3IE9iamVjdExpdGVyYWxOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUuaGVhZCksICQy
Lm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRzKTsgfQogICAvKiBhbGxvdyBleHRyYSBj
b21tYSwgc2VlIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MzkgKi8K
LSAgfCBPUEVOQlJBQ0UgUHJvcGVydHlMaXN0ICcsJyBDTE9TRUJSQUNFICAgICAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBPYmplY3RMaXRl
cmFsTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLmhlYWQpLCAkMi5tX2ZlYXR1cmVJbmZvKTsg
fQorICB8IE9QRU5CUkFDRSBQcm9wZXJ0eUxpc3QgJywnIENMT1NFQlJBQ0UgICAgICAgICAgICB7
ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IE9iamVjdExp
dGVyYWxOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUuaGVhZCksICQyLm1fZmVhdHVyZUluZm8s
ICQyLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBQcmltYXJ5RXhwck5vQnJhY2U6Ci0gICAgVEhJ
U1RPS0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJl
SW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBUaGlzTm9kZShHTE9CQUxfREFUQSksIDApOyB9Cisg
ICAgVEhJU1RPS0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBUaGlzTm9kZShHTE9CQUxfREFUQSksIDAs
IDApOyB9CiAgIHwgTGl0ZXJhbAogICB8IEFycmF5TGl0ZXJhbAotICB8IElERU5UICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVz
c2lvbk5vZGUqPihuZXcgUmVzb2x2ZU5vZGUoR0xPQkFMX0RBVEEsICokMSwgQDEuZmlyc3RfY29s
dW1uKSwgMCk7IH0KKyAgfCBJREVOVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQk
ID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IFJlc29sdmVOb2Rl
KEdMT0JBTF9EQVRBLCAqJDEsIEAxLmZpcnN0X2NvbHVtbiksIDAsIDApOyB9CiAgIHwgJygnIEV4
cHIgJyknICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9ICQyOyB9CiA7CiAKIEFycmF5TGl0
ZXJhbDoKLSAgICAnWycgRWxpc2lvbk9wdCAnXScgICAgICAgICAgICAgICAgICB7ICQkID0gY3Jl
YXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEFycmF5Tm9kZShHTE9CQUxf
REFUQSwgJDIpLCAwKTsgfQotICB8ICdbJyBFbGVtZW50TGlzdCAnXScgICAgICAgICAgICAgICAg
IHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQXJyYXlO
b2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUuaGVhZCksICQyLm1fZmVhdHVyZUluZm8pOyB9Ci0g
IHwgJ1snIEVsZW1lbnRMaXN0ICcsJyBFbGlzaW9uT3B0ICddJyAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBBcnJheU5vZGUoR0xPQkFMX0RBVEEsICQ0
LCAkMi5tX25vZGUuaGVhZCksICQyLm1fZmVhdHVyZUluZm8pOyB9CisgICAgJ1snIEVsaXNpb25P
cHQgJ10nICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHBy
ZXNzaW9uTm9kZSo+KG5ldyBBcnJheU5vZGUoR0xPQkFMX0RBVEEsICQyKSwgMCwgJDIgPyAxIDog
MCk7IH0KKyAgfCAnWycgRWxlbWVudExpc3QgJ10nICAgICAgICAgICAgICAgICB7ICQkID0gY3Jl
YXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEFycmF5Tm9kZShHTE9CQUxf
REFUQSwgJDIubV9ub2RlLmhlYWQpLCAkMi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251bUNvbnN0YW50
cyk7IH0KKyAgfCAnWycgRWxlbWVudExpc3QgJywnIEVsaXNpb25PcHQgJ10nICB7ICQkID0gY3Jl
YXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEFycmF5Tm9kZShHTE9CQUxf
REFUQSwgJDQsICQyLm1fbm9kZS5oZWFkKSwgJDIubV9mZWF0dXJlSW5mbywgJDQgPyAkMi5tX251
bUNvbnN0YW50cyArIDEgOiAkMi5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogRWxlbWVudExpc3Q6
CiAgICAgRWxpc2lvbk9wdCBBc3NpZ25tZW50RXhwciAgICAgICAgICAgeyAkJC5tX25vZGUuaGVh
ZCA9IG5ldyBFbGVtZW50Tm9kZShHTE9CQUxfREFUQSwgJDEsICQyLm1fbm9kZSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX25vZGUudGFpbCA9ICQkLm1f
bm9kZS5oZWFkOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQu
bV9mZWF0dXJlSW5mbyA9ICQyLm1fZmVhdHVyZUluZm87IH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAkMi5tX2ZlYXR1cmVJbmZv
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25z
dGFudHMgPSAkMi5tX251bUNvbnN0YW50czsgfQogICB8IEVsZW1lbnRMaXN0ICcsJyBFbGlzaW9u
T3B0IEFzc2lnbm1lbnRFeHByCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyAkJC5tX25vZGUuaGVhZCA9ICQxLm1fbm9kZS5oZWFkOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9ub2RlLnRhaWwgPSBuZXcgRWxlbWVudE5vZGUo
R0xPQkFMX0RBVEEsICQxLm1fbm9kZS50YWlsLCAkMywgJDQubV9ub2RlKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAkMS5tX2Zl
YXR1cmVJbmZvIHwgJDQubV9mZWF0dXJlSW5mbzsgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVhdHVyZUluZm8gfCAk
NC5tX2ZlYXR1cmVJbmZvOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJCQubV9udW1Db25zdGFudHMgPSAkMS5tX251bUNvbnN0YW50cyArICQ0Lm1fbnVtQ29uc3Rh
bnRzOyB9CiA7CiAKIEVsaXNpb25PcHQ6CkBAIC0zNjYsMTggKzM3MSwxOCBAQCBFbGlzaW9uOgog
CiBNZW1iZXJFeHByOgogICAgIFByaW1hcnlFeHByCi0gIHwgRnVuY3Rpb25FeHByICAgICAgICAg
ICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KCQxLm1fbm9kZSwgJDEubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBGdW5jdGlvbkV4cHIgICAg
ICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4oJDEubV9ub2RlLCAkMS5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyk7
IH0KICAgfCBNZW1iZXJFeHByICdbJyBFeHByICddJyAgICAgICAgICAgICB7IEJyYWNrZXRBY2Nl
c3Nvck5vZGUqIG5vZGUgPSBuZXcgQnJhY2tldEFjY2Vzc29yTm9kZShHTE9CQUxfREFUQSwgJDEu
bV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9D
QVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDQubGFzdF9jb2x1
bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZv
IHwgJDMubV9mZWF0dXJlSW5mbyk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2Rl
LCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMg
KyAkMy5tX251bUNvbnN0YW50cyk7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgfCBNZW1iZXJFeHByICcuJyBJREVOVCAgICAgICAgICAgICAgICB7IERvdEFj
Y2Vzc29yTm9kZSogbm9kZSA9IG5ldyBEb3RBY2Nlc3Nvck5vZGUoR0xPQkFMX0RBVEEsICQxLm1f
bm9kZSwgKiQzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNF
VF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVt
biwgQDMubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAk
MS5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEu
bV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgfCBORVcgTWVtYmVyRXhwciBBcmd1bWVudHMgICAgICAg
ICAgICB7IE5ld0V4cHJOb2RlKiBub2RlID0gbmV3IE5ld0V4cHJOb2RlKEdMT0JBTF9EQVRBLCAk
Mi5tX25vZGUsICQzLm1fbm9kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIu
bGFzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2Rl
Kj4obm9kZSwgJDIubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMi5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJl
SW5mbywgJDIubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogOwogCkBAIC0zODUsMTUgKzM5MCwxNSBA
QCBNZW1iZXJFeHByTm9CRjoKICAgICBQcmltYXJ5RXhwck5vQnJhY2UKICAgfCBNZW1iZXJFeHBy
Tm9CRiAnWycgRXhwciAnXScgICAgICAgICB7IEJyYWNrZXRBY2Nlc3Nvck5vZGUqIG5vZGUgPSBu
ZXcgQnJhY2tldEFjY2Vzc29yTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUs
ICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmly
c3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDQubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88
RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5m
byk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZv
IHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50
cyk7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgfCBNZW1i
ZXJFeHByTm9CRiAnLicgSURFTlQgICAgICAgICAgICB7IERvdEFjY2Vzc29yTm9kZSogbm9kZSA9
IG5ldyBEb3RBY2Nlc3Nvck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgKiQzKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJ
T04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDMubGFzdF9jb2x1bW4p
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVO
b2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9k
ZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbywgJDEu
bV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgfCBORVcgTWVtYmVyRXhwciBBcmd1bWVudHMgICAgICAgICAgICB7IE5ld0V4cHJOb2Rl
KiBub2RlID0gbmV3IE5ld0V4cHJOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsICQzLm1fbm9k
ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBU
SU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAzLmxh
c3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQk
ID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDIubV9mZWF0
dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
Pihub2RlLCAkMi5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDIubV9udW1Db25z
dGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQogOwogCkBAIC00MDEsNyArNDA2LDcgQEAgTmV3RXhwcjoKICAgICBNZW1i
ZXJFeHByCiAgIHwgTkVXIE5ld0V4cHIgICAgICAgICAgICAgICAgICAgICAgICAgeyBOZXdFeHBy
Tm9kZSogbm9kZSA9IG5ldyBOZXdFeHByTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9D
QVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1
bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMi5tX2ZlYXR1cmVJbmZv
KTsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0
ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQyLm1fZmVhdHVyZUluZm8s
ICQyLm1fbnVtQ29uc3RhbnRzKTsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQogOwogCkBAIC00MDksNyArNDE0LDcgQEAgTmV3RXhwck5vQkY6CiAgICAgTWVtYmVy
RXhwck5vQkYKICAgfCBORVcgTmV3RXhwciAgICAgICAgICAgICAgICAgICAgICAgICB7IE5ld0V4
cHJOb2RlKiBub2RlID0gbmV3IE5ld0V4cHJOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0VYQ0VQVElPTl9M
T0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uLCBAMi5sYXN0X2Nv
bHVtbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQyLm1fZmVhdHVyZUlu
Zm8pOyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3Jl
YXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDIubV9mZWF0dXJlSW5m
bywgJDIubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KIDsKIApAQCAtNDE4LDExICs0MjMsMTEgQEAgQ2FsbEV4cHI6CiAgIHwgQ2FsbEV4
cHIgQXJndW1lbnRzICAgICAgICAgICAgICAgICAgeyAkJCA9IG1ha2VGdW5jdGlvbkNhbGxOb2Rl
KGdsb2JhbFB0ciwgJDEsICQyLCBAMS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBAMi5s
YXN0X2NvbHVtbik7IH0KICAgfCBDYWxsRXhwciAnWycgRXhwciAnXScgICAgICAgICAgICAgICB7
IEJyYWNrZXRBY2Nlc3Nvck5vZGUqIG5vZGUgPSBuZXcgQnJhY2tldEFjY2Vzc29yTm9kZShHTE9C
QUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25G
ZWF0dXJlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9F
WENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwg
QDQubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5t
X2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lv
bk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9u
dW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgfCBDYWxsRXhwciAnLicgSURFTlQgICAgICAgICAgICAg
ICAgICB7IERvdEFjY2Vzc29yTm9kZSogbm9kZSA9IG5ldyBEb3RBY2Nlc3Nvck5vZGUoR0xPQkFM
X0RBVEEsICQxLm1fbm9kZSwgKiQzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBA
MS5sYXN0X2NvbHVtbiwgQDMubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyk7IH0KIDsKIAog
Q2FsbEV4cHJOb0JGOgpAQCAtNDMwLDI2ICs0MzUsMjggQEAgQ2FsbEV4cHJOb0JGOgogICB8IENh
bGxFeHByTm9CRiBBcmd1bWVudHMgICAgICAgICAgICAgIHsgJCQgPSBtYWtlRnVuY3Rpb25DYWxs
Tm9kZShnbG9iYWxQdHIsICQxLCAkMiwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwg
QDIubGFzdF9jb2x1bW4pOyB9CiAgIHwgQ2FsbEV4cHJOb0JGICdbJyBFeHByICddJyAgICAgICAg
ICAgeyBCcmFja2V0QWNjZXNzb3JOb2RlKiBub2RlID0gbmV3IEJyYWNrZXRBY2Nlc3Nvck5vZGUo
R0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNz
aWduRmVhdHVyZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
RVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1
bW4sIEA0Lmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwg
JDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQx
Lm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgQ2FsbEV4cHJOb0JGICcuJyBJREVOVCAgICAg
ICAgICAgICAgeyBEb3RBY2Nlc3Nvck5vZGUqIG5vZGUgPSBuZXcgRG90QWNjZXNzb3JOb2RlKEdM
T0JBTF9EQVRBLCAkMS5tX25vZGUsICokMyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVt
biwgQDEubGFzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyk7IAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lv
bk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyk7IAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KIDsKIAogQXJndW1lbnRzOgot
ICAgICcoJyAnKScgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2Rl
RmVhdHVyZUluZm88QXJndW1lbnRzTm9kZSo+KG5ldyBBcmd1bWVudHNOb2RlKEdMT0JBTF9EQVRB
KSwgMCk7IH0KLSAgfCAnKCcgQXJndW1lbnRMaXN0ICcpJyAgICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZUZlYXR1cmVJbmZvPEFyZ3VtZW50c05vZGUqPihuZXcgQXJndW1lbnRzTm9kZShH
TE9CQUxfREFUQSwgJDIubV9ub2RlLmhlYWQpLCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICco
JyAnKScgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVy
ZUluZm88QXJndW1lbnRzTm9kZSo+KG5ldyBBcmd1bWVudHNOb2RlKEdMT0JBTF9EQVRBKSwgMCwg
MCk7IH0KKyAgfCAnKCcgQXJndW1lbnRMaXN0ICcpJyAgICAgICAgICAgICAgICB7ICQkID0gY3Jl
YXRlTm9kZUZlYXR1cmVJbmZvPEFyZ3VtZW50c05vZGUqPihuZXcgQXJndW1lbnRzTm9kZShHTE9C
QUxfREFUQSwgJDIubV9ub2RlLmhlYWQpLCAkMi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251bUNvbnN0
YW50cyk7IH0KIDsKIAogQXJndW1lbnRMaXN0OgogICAgIEFzc2lnbm1lbnRFeHByICAgICAgICAg
ICAgICAgICAgICAgIHsgJCQubV9ub2RlLmhlYWQgPSBuZXcgQXJndW1lbnRMaXN0Tm9kZShHTE9C
QUxfREFUQSwgJDEubV9ub2RlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkLm1fbm9kZS50YWlsID0gJCQubV9ub2RlLmhlYWQ7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDEubV9mZWF0dXJl
SW5mbzsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9m
ZWF0dXJlSW5mbyA9ICQxLm1fZmVhdHVyZUluZm87CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9ICQxLm1fbnVtQ29uc3RhbnRzOyB9
CiAgIHwgQXJndW1lbnRMaXN0ICcsJyBBc3NpZ25tZW50RXhwciAgICAgeyAkJC5tX25vZGUuaGVh
ZCA9ICQxLm1fbm9kZS5oZWFkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJCQubV9ub2RlLnRhaWwgPSBuZXcgQXJndW1lbnRMaXN0Tm9kZShHTE9CQUxfREFUQSwg
JDEubV9ub2RlLnRhaWwsICQzLm1fbm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1f
ZmVhdHVyZUluZm87IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICQkLm1fZmVhdHVyZUluZm8gPSAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbzsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbnVtQ29uc3Rh
bnRzID0gJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50czsgfQogOwogCiBMZWZ0
SGFuZFNpZGVFeHByOgpAQCAtNDY0LDI4ICs0NzEsMjggQEAgTGVmdEhhbmRTaWRlRXhwck5vQkY6
CiAKIFBvc3RmaXhFeHByOgogICAgIExlZnRIYW5kU2lkZUV4cHIKLSAgfCBMZWZ0SGFuZFNpZGVF
eHByIFBMVVNQTFVTICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obWFrZVBvc3RmaXhOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsIE9wUGx1
c1BsdXMsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKSwg
JDEubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUpOyB9Ci0gIHwgTGVmdEhhbmRTaWRlRXhw
ciBNSU5VU01JTlVTICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG1ha2VQb3N0Zml4Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCBPcE1pbnVz
TWludXMsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKSwg
JDEubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUpOyB9CisgIHwgTGVmdEhhbmRTaWRlRXhw
ciBQTFVTUExVUyAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG1ha2VQb3N0Zml4Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCBPcFBsdXNQ
bHVzLCBAMS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiksICQx
Lm1fZmVhdHVyZUluZm8gfCBBc3NpZ25GZWF0dXJlLCAkMS5tX251bUNvbnN0YW50cyk7IH0KKyAg
fCBMZWZ0SGFuZFNpZGVFeHByIE1JTlVTTUlOVVMgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZVBvc3RmaXhOb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsIE9wTWludXNNaW51cywgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwg
QDIubGFzdF9jb2x1bW4pLCAkMS5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVhdHVyZSwgJDEubV9u
dW1Db25zdGFudHMpOyB9CiA7CiAKIFBvc3RmaXhFeHByTm9CRjoKICAgICBMZWZ0SGFuZFNpZGVF
eHByTm9CRgotICB8IExlZnRIYW5kU2lkZUV4cHJOb0JGIFBMVVNQTFVTICAgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtlUG9zdGZpeE5vZGUoR0xP
QkFMX0RBVEEsICQxLm1fbm9kZSwgT3BQbHVzUGx1cywgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0
X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pLCAkMS5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVhdHVy
ZSk7IH0KLSAgfCBMZWZ0SGFuZFNpZGVFeHByTm9CRiBNSU5VU01JTlVTICAgICB7ICQkID0gY3Jl
YXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZVBvc3RmaXhOb2RlKEdMT0JB
TF9EQVRBLCAkMS5tX25vZGUsIE9wTWludXNNaW51cywgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0
X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pLCAkMS5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVhdHVy
ZSk7IH0KKyAgfCBMZWZ0SGFuZFNpZGVFeHByTm9CRiBQTFVTUExVUyAgICAgICB7ICQkID0gY3Jl
YXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZVBvc3RmaXhOb2RlKEdMT0JB
TF9EQVRBLCAkMS5tX25vZGUsIE9wUGx1c1BsdXMsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFzdF9j
b2x1bW4sIEAyLmxhc3RfY29sdW1uKSwgJDEubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUs
ICQxLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IExlZnRIYW5kU2lkZUV4cHJOb0JGIE1JTlVTTUlO
VVMgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtl
UG9zdGZpeE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgT3BNaW51c01pbnVzLCBAMS5maXJz
dF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiksICQxLm1fZmVhdHVyZUlu
Zm8gfCBBc3NpZ25GZWF0dXJlLCAkMS5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogVW5hcnlFeHBy
Q29tbW9uOgotICAgIERFTEVURVRPS0VOIFVuYXJ5RXhwciAgICAgICAgICAgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtlRGVsZXRlTm9kZShHTE9C
QUxfREFUQSwgJDIubV9ub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uLCBAMi5s
YXN0X2NvbHVtbiksICQyLm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgVk9JRFRPS0VOIFVuYXJ5RXhw
ciAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG5ldyBWb2lkTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV9mZWF0dXJl
SW5mbyk7IH0KLSAgfCBUWVBFT0YgVW5hcnlFeHByICAgICAgICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZVR5cGVPZk5vZGUoR0xP
QkFMX0RBVEEsICQyLm1fbm9kZSksICQyLm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgUExVU1BMVVMg
VW5hcnlFeHByICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxF
eHByZXNzaW9uTm9kZSo+KG1ha2VQcmVmaXhOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsIE9w
UGx1c1BsdXMsIEAxLmZpcnN0X2NvbHVtbiwgQDIuZmlyc3RfY29sdW1uICsgMSwgQDIubGFzdF9j
b2x1bW4pLCAkMi5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVhdHVyZSk7IH0KLSAgfCBBVVRPUExV
U1BMVVMgVW5hcnlFeHByICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obWFrZVByZWZpeE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwg
T3BQbHVzUGx1cywgQDEuZmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4gKyAxLCBAMi5sYXN0
X2NvbHVtbiksICQyLm1fZmVhdHVyZUluZm8gfCBBc3NpZ25GZWF0dXJlKTsgfQotICB8IE1JTlVT
TUlOVVMgVW5hcnlFeHByICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihtYWtlUHJlZml4Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2Rl
LCBPcE1pbnVzTWludXMsIEAxLmZpcnN0X2NvbHVtbiwgQDIuZmlyc3RfY29sdW1uICsgMSwgQDIu
bGFzdF9jb2x1bW4pLCAkMi5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVhdHVyZSk7IH0KLSAgfCBB
VVRPTUlOVVNNSU5VUyBVbmFyeUV4cHIgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1
cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZVByZWZpeE5vZGUoR0xPQkFMX0RBVEEsICQyLm1f
bm9kZSwgT3BNaW51c01pbnVzLCBAMS5maXJzdF9jb2x1bW4sIEAyLmZpcnN0X2NvbHVtbiArIDEs
IEAyLmxhc3RfY29sdW1uKSwgJDIubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUpOyB9Ci0g
IHwgJysnIFVuYXJ5RXhwciAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBVbmFyeVBsdXNOb2RlKEdMT0JBTF9EQVRB
LCAkMi5tX25vZGUpLCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQotICB8ICctJyBVbmFyeUV4cHIgICAg
ICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lv
bk5vZGUqPihtYWtlTmVnYXRlTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV9mZWF0
dXJlSW5mbyk7IH0KLSAgfCAnficgVW5hcnlFeHByICAgICAgICAgICAgICAgICAgICAgICB7ICQk
ID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEJpdHdpc2VOb3RO
b2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpLCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQotICB8ICch
JyBVbmFyeUV4cHIgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVy
ZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTG9naWNhbE5vdE5vZGUoR0xPQkFMX0RBVEEsICQy
Lm1fbm9kZSksICQyLm1fZmVhdHVyZUluZm8pOyB9CisgICAgREVMRVRFVE9LRU4gVW5hcnlFeHBy
ICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG1ha2VEZWxldGVOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsIEAxLmZpcnN0X2NvbHVt
biwgQDIubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKSwgJDIubV9mZWF0dXJlSW5mbywgJDIu
bV9udW1Db25zdGFudHMpOyB9CisgIHwgVk9JRFRPS0VOIFVuYXJ5RXhwciAgICAgICAgICAgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBWb2lk
Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV9mZWF0dXJlSW5mbywgJDIubV9udW1D
b25zdGFudHMgKyAxKTsgfQorICB8IFRZUEVPRiBVbmFyeUV4cHIgICAgICAgICAgICAgICAgICAg
IHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihtYWtlVHlwZU9m
Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV9mZWF0dXJlSW5mbywgJDIubV9udW1D
b25zdGFudHMpOyB9CisgIHwgUExVU1BMVVMgVW5hcnlFeHByICAgICAgICAgICAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VQcmVmaXhOb2Rl
KEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsIE9wUGx1c1BsdXMsIEAxLmZpcnN0X2NvbHVtbiwgQDIu
Zmlyc3RfY29sdW1uICsgMSwgQDIubGFzdF9jb2x1bW4pLCAkMi5tX2ZlYXR1cmVJbmZvIHwgQXNz
aWduRmVhdHVyZSwgJDIubV9udW1Db25zdGFudHMpOyB9CisgIHwgQVVUT1BMVVNQTFVTIFVuYXJ5
RXhwciAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG1ha2VQcmVmaXhOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsIE9wUGx1c1BsdXMs
IEAxLmZpcnN0X2NvbHVtbiwgQDIuZmlyc3RfY29sdW1uICsgMSwgQDIubGFzdF9jb2x1bW4pLCAk
Mi5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVhdHVyZSwgJDIubV9udW1Db25zdGFudHMpOyB9Cisg
IHwgTUlOVVNNSU5VUyBVbmFyeUV4cHIgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG1ha2VQcmVmaXhOb2RlKEdMT0JBTF9EQVRBLCAk
Mi5tX25vZGUsIE9wTWludXNNaW51cywgQDEuZmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4g
KyAxLCBAMi5sYXN0X2NvbHVtbiksICQyLm1fZmVhdHVyZUluZm8gfCBBc3NpZ25GZWF0dXJlLCAk
Mi5tX251bUNvbnN0YW50cyk7IH0KKyAgfCBBVVRPTUlOVVNNSU5VUyBVbmFyeUV4cHIgICAgICAg
ICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZVBy
ZWZpeE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgT3BNaW51c01pbnVzLCBAMS5maXJzdF9j
b2x1bW4sIEAyLmZpcnN0X2NvbHVtbiArIDEsIEAyLmxhc3RfY29sdW1uKSwgJDIubV9mZWF0dXJl
SW5mbyB8IEFzc2lnbkZlYXR1cmUsICQyLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8ICcrJyBVbmFy
eUV4cHIgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88
RXhwcmVzc2lvbk5vZGUqPihuZXcgVW5hcnlQbHVzTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2Rl
KSwgJDIubV9mZWF0dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMpOyB9CisgIHwgJy0nIFVuYXJ5
RXhwciAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxF
eHByZXNzaW9uTm9kZSo+KG1ha2VOZWdhdGVOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpLCAk
Mi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251bUNvbnN0YW50cyk7IH0KKyAgfCAnficgVW5hcnlFeHBy
ICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obmV3IEJpdHdpc2VOb3ROb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpLCAk
Mi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251bUNvbnN0YW50cyk7IH0KKyAgfCAnIScgVW5hcnlFeHBy
ICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obmV3IExvZ2ljYWxOb3ROb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpLCAk
Mi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251bUNvbnN0YW50cyk7IH0KIAogVW5hcnlFeHByOgogICAg
IFBvc3RmaXhFeHByCkBAIC00OTksMjI4ICs1MDYsMjI4IEBAIFVuYXJ5RXhwck5vQkY6CiAKIE11
bHRpcGxpY2F0aXZlRXhwcjoKICAgICBVbmFyeUV4cHIKLSAgfCBNdWx0aXBsaWNhdGl2ZUV4cHIg
JyonIFVuYXJ5RXhwciAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25O
b2RlKj4obmV3IE11bHROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMu
bV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9m
ZWF0dXJlSW5mbyk7IH0KLSAgfCBNdWx0aXBsaWNhdGl2ZUV4cHIgJy8nIFVuYXJ5RXhwciAgICB7
ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IERpdk5vZGUo
R0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNz
aWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8
IE11bHRpcGxpY2F0aXZlRXhwciAnJScgVW5hcnlFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVh
dHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTW9kTm9kZShHTE9CQUxfREFUQSwgJDEubV9u
b2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9m
ZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgIHwgTXVsdGlwbGljYXRpdmVFeHBy
ICcqJyBVbmFyeUV4cHIgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG5ldyBNdWx0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQz
Lm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1f
ZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9Cisg
IHwgTXVsdGlwbGljYXRpdmVFeHByICcvJyBVbmFyeUV4cHIgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBEaXZOb2RlKEdMT0JBTF9EQVRBLCAkMS5t
X25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5t
X2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5t
X251bUNvbnN0YW50cyk7IH0KKyAgfCBNdWx0aXBsaWNhdGl2ZUV4cHIgJyUnIFVuYXJ5RXhwciAg
ICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IE1vZE5v
ZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYg
QXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5t
X251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBNdWx0aXBsaWNhdGl2
ZUV4cHJOb0JGOgogICAgIFVuYXJ5RXhwck5vQkYKICAgfCBNdWx0aXBsaWNhdGl2ZUV4cHJOb0JG
ICcqJyBVbmFyeUV4cHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IE11bHROb2Rl
KEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFz
c2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IE11bHROb2RlKEdMT0JBTF9EQVRBLCAkMS5t
X25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5t
X2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5t
X251bUNvbnN0YW50cyk7IH0KICAgfCBNdWx0aXBsaWNhdGl2ZUV4cHJOb0JGICcvJyBVbmFyeUV4
cHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IERpdk5vZGUoR0xPQkFMX0RBVEEs
ICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSks
ICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgRGl2Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25v
ZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8
ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMp
OyB9CiAgIHwgTXVsdGlwbGljYXRpdmVFeHByTm9CRiAnJScgVW5hcnlFeHByCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5m
bzxFeHByZXNzaW9uTm9kZSo+KG5ldyBNb2ROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQz
Lm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJ
bmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bmV3IE1vZE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1
cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJ
bmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBBZGRp
dGl2ZUV4cHI6CiAgICAgTXVsdGlwbGljYXRpdmVFeHByCi0gIHwgQWRkaXRpdmVFeHByICcrJyBN
dWx0aXBsaWNhdGl2ZUV4cHIgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG5ldyBBZGROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMu
bV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9m
ZWF0dXJlSW5mbyk7IH0KLSAgfCBBZGRpdGl2ZUV4cHIgJy0nIE11bHRpcGxpY2F0aXZlRXhwciB7
ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IFN1Yk5vZGUo
R0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNz
aWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICB8
IEFkZGl0aXZlRXhwciAnKycgTXVsdGlwbGljYXRpdmVFeHByIHsgJCQgPSBjcmVhdGVOb2RlRmVh
dHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQWRkTm9kZShHTE9CQUxfREFUQSwgJDEubV9u
b2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9m
ZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9u
dW1Db25zdGFudHMpOyB9CisgIHwgQWRkaXRpdmVFeHByICctJyBNdWx0aXBsaWNhdGl2ZUV4cHIg
eyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBTdWJOb2Rl
KEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFz
c2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9u
dW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogQWRkaXRpdmVFeHByTm9C
RjoKICAgICBNdWx0aXBsaWNhdGl2ZUV4cHJOb0JGCiAgIHwgQWRkaXRpdmVFeHByTm9CRiAnKycg
TXVsdGlwbGljYXRpdmVFeHByCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBBZGRO
b2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAm
IEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9k
ZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEFkZE5vZGUoR0xPQkFMX0RBVEEsICQx
Lm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQx
Lm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQz
Lm1fbnVtQ29uc3RhbnRzKTsgfQogICB8IEFkZGl0aXZlRXhwck5vQkYgJy0nIE11bHRpcGxpY2F0
aXZlRXhwcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgU3ViTm9kZShHTE9CQUxf
REFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0
dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5m
bzxFeHByZXNzaW9uTm9kZSo+KG5ldyBTdWJOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQz
Lm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJ
bmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0
YW50cyk7IH0KIDsKIAogU2hpZnRFeHByOgogICAgIEFkZGl0aXZlRXhwcgotICB8IFNoaWZ0RXhw
ciBMU0hJRlQgQWRkaXRpdmVFeHByICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88
RXhwcmVzc2lvbk5vZGUqPihuZXcgTGVmdFNoaWZ0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0
dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgU2hpZnRFeHByIFJTSElGVCBBZGRp
dGl2ZUV4cHIgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG5ldyBSaWdodFNoaWZ0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUs
ICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQz
Lm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgU2hpZnRFeHByIFVSU0hJRlQgQWRkaXRpdmVFeHByICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBVbnNp
Z25lZFJpZ2h0U2hpZnROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMu
bV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9m
ZWF0dXJlSW5mbyk7IH0KKyAgfCBTaGlmdEV4cHIgTFNISUZUIEFkZGl0aXZlRXhwciAgICAgICB7
ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExlZnRTaGlm
dE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZv
ICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAk
MS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IFNoaWZ0RXhwciBS
U0hJRlQgQWRkaXRpdmVFeHByICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgUmlnaHRTaGlmdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVy
ZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29u
c3RhbnRzKTsgfQorICB8IFNoaWZ0RXhwciBVUlNISUZUIEFkZGl0aXZlRXhwciAgICAgIHsgJCQg
PSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgVW5zaWduZWRSaWdo
dFNoaWZ0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUlu
Zm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIFNoaWZ0
RXhwck5vQkY6CiAgICAgQWRkaXRpdmVFeHByTm9CRgotICB8IFNoaWZ0RXhwck5vQkYgTFNISUZU
IEFkZGl0aXZlRXhwciAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihuZXcgTGVmdFNoaWZ0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUs
ICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQz
Lm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgU2hpZnRFeHByTm9CRiBSU0hJRlQgQWRkaXRpdmVFeHBy
ICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBSaWdo
dFNoaWZ0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUlu
Zm8pOyB9Ci0gIHwgU2hpZnRFeHByTm9CRiBVUlNISUZUIEFkZGl0aXZlRXhwciAgeyAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBVbnNpZ25lZFJpZ2h0U2hp
ZnROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5m
byAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7
IH0KKyAgfCBTaGlmdEV4cHJOb0JGIExTSElGVCBBZGRpdGl2ZUV4cHIgICB7ICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExlZnRTaGlmdE5vZGUoR0xPQkFM
X0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVh
dHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0
YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IFNoaWZ0RXhwck5vQkYgUlNISUZUIEFk
ZGl0aXZlRXhwciAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
PihuZXcgUmlnaHRTaGlmdE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAk
My5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5t
X2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQor
ICB8IFNoaWZ0RXhwck5vQkYgVVJTSElGVCBBZGRpdGl2ZUV4cHIgIHsgJCQgPSBjcmVhdGVOb2Rl
RmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgVW5zaWduZWRSaWdodFNoaWZ0Tm9kZShH
TE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3Np
Z25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVt
Q29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIFJlbGF0aW9uYWxFeHByOgog
ICAgIFNoaWZ0RXhwcgotICB8IFJlbGF0aW9uYWxFeHByICc8JyBTaGlmdEV4cHIgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTGVzc05vZGUo
R0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNz
aWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8
IFJlbGF0aW9uYWxFeHByICc+JyBTaGlmdEV4cHIgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVh
dHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgR3JlYXRlck5vZGUoR0xPQkFMX0RBVEEsICQx
Lm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQx
Lm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IFJlbGF0aW9uYWxFeHBy
IExFIFNoaWZ0RXhwciAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVz
c2lvbk5vZGUqPihuZXcgTGVzc0VxTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25v
ZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8
ICQzLm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgUmVsYXRpb25hbEV4cHIgR0UgU2hpZnRFeHByICAg
ICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBH
cmVhdGVyRXFOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0
dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJl
SW5mbyk7IH0KKyAgfCBSZWxhdGlvbmFsRXhwciAnPCcgU2hpZnRFeHByICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExlc3NOb2RlKEdMT0JB
TF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZl
YXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25z
dGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KKyAgfCBSZWxhdGlvbmFsRXhwciAnPicgU2hp
ZnRFeHByICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2Rl
Kj4obmV3IEdyZWF0ZXJOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMu
bV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9m
ZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KKyAg
fCBSZWxhdGlvbmFsRXhwciBMRSBTaGlmdEV4cHIgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExlc3NFcU5vZGUoR0xPQkFMX0RBVEEsICQx
Lm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQx
Lm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQz
Lm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IFJlbGF0aW9uYWxFeHByIEdFIFNoaWZ0RXhwciAgICAg
ICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgR3Jl
YXRlckVxTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUlu
Zm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiAgIHwgUmVsYXRp
b25hbEV4cHIgSU5TVEFOQ0VPRiBTaGlmdEV4cHIgeyBJbnN0YW5jZU9mTm9kZSogbm9kZSA9IG5l
dyBJbnN0YW5jZU9mTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1f
ZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29s
dW1uLCBAMy5maXJzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsgIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhw
cmVzc2lvbk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7
IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgJDEubV9mZWF0dXJlSW5mbyB8
ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMp
OyB9CiAgIHwgUmVsYXRpb25hbEV4cHIgSU5UT0tFTiBTaGlmdEV4cHIgICAgeyBJbk5vZGUqIG5v
ZGUgPSBuZXcgSW5Ob2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9m
ZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1
bW4sIEAzLmZpcnN0X2NvbHVtbiwgQDMubGFzdF9jb2x1bW4pOyAgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHBy
ZXNzaW9uTm9kZSo+KG5vZGUsICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsg
fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVO
b2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvIHwg
JDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7
IH0KIDsKIAogUmVsYXRpb25hbEV4cHJOb0luOgogICAgIFNoaWZ0RXhwcgotICB8IFJlbGF0aW9u
YWxFeHByTm9JbiAnPCcgU2hpZnRFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88
RXhwcmVzc2lvbk5vZGUqPihuZXcgTGVzc05vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMu
bV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUlu
Zm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IFJlbGF0aW9uYWxFeHByTm9JbiAnPicgU2hp
ZnRFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihu
ZXcgR3JlYXRlck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2Zl
YXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1
cmVJbmZvKTsgfQotICB8IFJlbGF0aW9uYWxFeHByTm9JbiBMRSBTaGlmdEV4cHIgICAgIHsgJCQg
PSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTGVzc0VxTm9kZShH
TE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3Np
Z25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwg
UmVsYXRpb25hbEV4cHJOb0luIEdFIFNoaWZ0RXhwciAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0
dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBHcmVhdGVyRXFOb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAk
MS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBSZWxhdGlvbmFsRXhw
ck5vSW4gJzwnIFNoaWZ0RXhwciAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obmV3IExlc3NOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9k
ZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwg
JDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7
IH0KKyAgfCBSZWxhdGlvbmFsRXhwck5vSW4gJz4nIFNoaWZ0RXhwciAgICB7ICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEdyZWF0ZXJOb2RlKEdMT0JBTF9E
QVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1
cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFu
dHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KKyAgfCBSZWxhdGlvbmFsRXhwck5vSW4gTEUgU2hp
ZnRFeHByICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bmV3IExlc3NFcU5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2Zl
YXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1
cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IFJl
bGF0aW9uYWxFeHByTm9JbiBHRSBTaGlmdEV4cHIgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVy
ZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgR3JlYXRlckVxTm9kZShHTE9CQUxfREFUQSwgJDEu
bV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEu
bV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMu
bV9udW1Db25zdGFudHMpOyB9CiAgIHwgUmVsYXRpb25hbEV4cHJOb0luIElOU1RBTkNFT0YgU2hp
ZnRFeHByCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBJbnN0YW5j
ZU9mTm9kZSogbm9kZSA9IG5ldyBJbnN0YW5jZU9mTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04o
bm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMy5maXJzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uKTsg
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVO
b2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvIHwg
JDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obm9kZSwg
JDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsg
JDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIFJlbGF0aW9uYWxFeHByTm9CRjoKICAgICBTaGlm
dEV4cHJOb0JGCi0gIHwgUmVsYXRpb25hbEV4cHJOb0JGICc8JyBTaGlmdEV4cHIgICAgeyAkJCA9
IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMZXNzTm9kZShHTE9C
QUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25G
ZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgUmVs
YXRpb25hbEV4cHJOb0JGICc+JyBTaGlmdEV4cHIgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJl
SW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBHcmVhdGVyTm9kZShHTE9CQUxfREFUQSwgJDEubV9u
b2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9m
ZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgUmVsYXRpb25hbEV4cHJOb0JG
IExFIFNoaWZ0RXhwciAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG5ldyBMZXNzRXFOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwg
JDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMu
bV9mZWF0dXJlSW5mbyk7IH0KLSAgfCBSZWxhdGlvbmFsRXhwck5vQkYgR0UgU2hpZnRFeHByICAg
ICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEdyZWF0
ZXJFcU5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJ
bmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZv
KTsgfQorICB8IFJlbGF0aW9uYWxFeHByTm9CRiAnPCcgU2hpZnRFeHByICAgIHsgJCQgPSBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTGVzc05vZGUoR0xPQkFMX0RB
VEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVy
ZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50
cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IFJlbGF0aW9uYWxFeHByTm9CRiAnPicgU2hp
ZnRFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihu
ZXcgR3JlYXRlck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2Zl
YXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1
cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IFJl
bGF0aW9uYWxFeHByTm9CRiBMRSBTaGlmdEV4cHIgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVy
ZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTGVzc0VxTm9kZShHTE9CQUxfREFUQSwgJDEubV9u
b2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9m
ZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9u
dW1Db25zdGFudHMpOyB9CisgIHwgUmVsYXRpb25hbEV4cHJOb0JGIEdFIFNoaWZ0RXhwciAgICAg
eyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBHcmVhdGVy
RXFOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5m
byAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywg
JDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KICAgfCBSZWxhdGlvbmFs
RXhwck5vQkYgSU5TVEFOQ0VPRiBTaGlmdEV4cHIKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IEluc3RhbmNlT2ZOb2RlKiBub2RlID0gbmV3IEluc3RhbmNlT2ZOb2Rl
KEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFz
c2lnbkZlYXR1cmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAzLmZpcnN0X2Nv
bHVtbiwgQDMubGFzdF9jb2x1bW4pOyAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5v
ZGUsICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88
RXhwcmVzc2lvbk5vZGUqPihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5m
bywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KICAgfCBSZWxhdGlv
bmFsRXhwck5vQkYgSU5UT0tFTiBTaGlmdEV4cHIgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyBJbk5vZGUqIG5vZGUgPSBuZXcgSW5Ob2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0VYQ0VQVElPTl9M
T0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAzLmZpcnN0X2NvbHVtbiwgQDMubGFzdF9j
b2x1bW4pOyAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9
IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5vZGUsICQxLm1fZmVhdHVy
ZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
Pihub2RlLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25z
dGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogRXF1YWxpdHlFeHByOgogICAgIFJl
bGF0aW9uYWxFeHByCi0gIHwgRXF1YWxpdHlFeHByIEVRRVEgUmVsYXRpb25hbEV4cHIgICAgeyAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBFcXVhbE5vZGUo
R0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNz
aWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8
IEVxdWFsaXR5RXhwciBORSBSZWxhdGlvbmFsRXhwciAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVh
dHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTm90RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAk
MS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KLSAgfCBFcXVhbGl0eUV4cHIg
U1RSRVEgUmVsYXRpb25hbEV4cHIgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJl
c3Npb25Ob2RlKj4obmV3IFN0cmljdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAk
My5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJl
SW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9Ci0gIHwgRXF1YWxpdHlFeHByIFNUUk5FUSBSZWxh
dGlvbmFsRXhwciAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+
KG5ldyBOb3RTdHJpY3RFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2Rl
LCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAk
My5tX2ZlYXR1cmVJbmZvKTsgfQorICB8IEVxdWFsaXR5RXhwciBFUUVRIFJlbGF0aW9uYWxFeHBy
ICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgRXF1
YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5m
byAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywg
JDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KKyAgfCBFcXVhbGl0eUV4
cHIgTkUgUmVsYXRpb25hbEV4cHIgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obmV3IE5vdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAk
My5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJl
SW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25z
dGFudHMpOyB9CisgIHwgRXF1YWxpdHlFeHByIFNUUkVRIFJlbGF0aW9uYWxFeHByICAgeyAkJCA9
IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBTdHJpY3RFcXVhbE5v
ZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYg
QXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5t
X251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IEVxdWFsaXR5RXhwciBT
VFJORVEgUmVsYXRpb25hbEV4cHIgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVz
c2lvbk5vZGUqPihuZXcgTm90U3RyaWN0RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUs
ICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1
cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNv
bnN0YW50cyk7IH0KIDsKIAogRXF1YWxpdHlFeHByTm9JbjoKICAgICBSZWxhdGlvbmFsRXhwck5v
SW4KICAgfCBFcXVhbGl0eUV4cHJOb0luIEVRRVEgUmVsYXRpb25hbEV4cHJOb0luCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJl
SW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9k
ZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVh
dHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihuZXcgRXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMu
bV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9m
ZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KICAg
fCBFcXVhbGl0eUV4cHJOb0luIE5FIFJlbGF0aW9uYWxFeHByTm9JbgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgTm90RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQz
Lm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJ
bmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bmV3IE5vdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1f
ZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVh
dHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiAgIHwg
RXF1YWxpdHlFeHByTm9JbiBTVFJFUSBSZWxhdGlvbmFsRXhwck5vSW4KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obmV3IFN0cmljdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0
dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG5ldyBTdHJpY3RFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2Rl
LCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAk
My5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsg
fQogICB8IEVxdWFsaXR5RXhwck5vSW4gU1RSTkVRIFJlbGF0aW9uYWxFeHByTm9JbgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVy
ZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTm90U3RyaWN0RXF1YWxOb2RlKEdMT0JBTF9EQVRB
LCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUp
LCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obmV3IE5vdFN0cmljdEVxdWFsTm9kZShHTE9CQUxfREFUQSwgJDEubV9u
b2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9m
ZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9u
dW1Db25zdGFudHMpOyB9CiA7CiAKIEVxdWFsaXR5RXhwck5vQkY6CiAgICAgUmVsYXRpb25hbEV4
cHJOb0JGCiAgIHwgRXF1YWxpdHlFeHByTm9CRiBFUUVRIFJlbGF0aW9uYWxFeHByCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJl
SW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9k
ZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVh
dHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQotICB8IEVxdWFsaXR5RXhwck5vQkYgTkUg
UmVsYXRpb25hbEV4cHIgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5v
ZGUqPihuZXcgTm90RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwg
JDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMu
bV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEVxdWFs
Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8g
JiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQx
Lm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CisgIHwgRXF1YWxpdHlFeHBy
Tm9CRiBORSBSZWxhdGlvbmFsRXhwciAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHBy
ZXNzaW9uTm9kZSo+KG5ldyBOb3RFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMu
bV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUlu
Zm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3Rh
bnRzKTsgfQogICB8IEVxdWFsaXR5RXhwck5vQkYgU1RSRVEgUmVsYXRpb25hbEV4cHIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1
cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IFN0cmljdEVxdWFsTm9kZShHTE9CQUxfREFUQSwg
JDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwg
JDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHBy
ZXNzaW9uTm9kZSo+KG5ldyBTdHJpY3RFcXVhbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVy
ZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29u
c3RhbnRzKTsgfQogICB8IEVxdWFsaXR5RXhwck5vQkYgU1RSTkVRIFJlbGF0aW9uYWxFeHByCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVG
ZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBOb3RTdHJpY3RFcXVhbE5vZGUoR0xPQkFM
X0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVh
dHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTm90U3RyaWN0RXF1YWxOb2RlKEdMT0JBTF9EQVRBLCAk
MS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAk
MS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAk
My5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogQml0d2lzZUFOREV4cHI6CiAgICAgRXF1YWxpdHlF
eHByCi0gIHwgQml0d2lzZUFOREV4cHIgJyYnIEVxdWFsaXR5RXhwciAgICAgeyAkJCA9IGNyZWF0
ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBCaXRBbmROb2RlKEdMT0JBTF9E
QVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1
cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBCaXR3aXNl
QU5ERXhwciAnJicgRXF1YWxpdHlFeHByICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obmV3IEJpdEFuZE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVy
ZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29u
c3RhbnRzKTsgfQogOwogCiBCaXR3aXNlQU5ERXhwck5vSW46CiAgICAgRXF1YWxpdHlFeHByTm9J
bgogICB8IEJpdHdpc2VBTkRFeHByTm9JbiAnJicgRXF1YWxpdHlFeHByTm9JbgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQml0QW5kTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0
dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG5ldyBCaXRBbmROb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMu
bV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9m
ZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KIDsK
IAogQml0d2lzZUFOREV4cHJOb0JGOgogICAgIEVxdWFsaXR5RXhwck5vQkYKLSAgfCBCaXR3aXNl
QU5ERXhwck5vQkYgJyYnIEVxdWFsaXR5RXhwciB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obmV3IEJpdEFuZE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVy
ZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICB8IEJpdHdpc2VBTkRFeHByTm9CRiAnJicg
RXF1YWxpdHlFeHByIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
PihuZXcgQml0QW5kTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1f
ZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVh
dHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAK
IEJpdHdpc2VYT1JFeHByOgogICAgIEJpdHdpc2VBTkRFeHByCi0gIHwgQml0d2lzZVhPUkV4cHIg
J14nIEJpdHdpc2VBTkRFeHByICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG5ldyBCaXRYT3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9k
ZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwg
JDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBCaXR3aXNlWE9SRXhwciAnXicgQml0d2lzZUFOREV4
cHIgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEJp
dFhPck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJ
bmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZv
LCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBCaXR3aXNl
WE9SRXhwck5vSW46CiAgICAgQml0d2lzZUFOREV4cHJOb0luCiAgIHwgQml0d2lzZVhPUkV4cHJO
b0luICdeJyBCaXR3aXNlQU5ERXhwck5vSW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4o
bmV3IEJpdFhPck5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2Zl
YXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1
cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQg
PSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQml0WE9yTm9kZShH
TE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3Np
Z25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVt
Q29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIEJpdHdpc2VYT1JFeHByTm9C
RjoKICAgICBCaXR3aXNlQU5ERXhwck5vQkYKICAgfCBCaXR3aXNlWE9SRXhwck5vQkYgJ14nIEJp
dHdpc2VBTkRFeHByCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBCaXRYT3JOb2Rl
KEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFz
c2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZl
YXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEJpdFhPck5vZGUoR0xPQkFMX0RBVEEsICQx
Lm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVyZSksICQx
Lm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQz
Lm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBCaXR3aXNlT1JFeHByOgogICAgIEJpdHdpc2VYT1JF
eHByCi0gIHwgQml0d2lzZU9SRXhwciAnfCcgQml0d2lzZVhPUkV4cHIgICAgeyAkJCA9IGNyZWF0
ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBCaXRPck5vZGUoR0xPQkFMX0RB
VEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNzaWduRmVhdHVy
ZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICB8IEJpdHdpc2VP
UkV4cHIgJ3wnIEJpdHdpc2VYT1JFeHByICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88
RXhwcmVzc2lvbk5vZGUqPihuZXcgQml0T3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQz
Lm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJ
bmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0
YW50cyk7IH0KIDsKIAogQml0d2lzZU9SRXhwck5vSW46CiAgICAgQml0d2lzZVhPUkV4cHJOb0lu
CiAgIHwgQml0d2lzZU9SRXhwck5vSW4gJ3wnIEJpdHdpc2VYT1JFeHByTm9JbgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQml0T3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUs
ICQzLm1fbm9kZSwgJDMubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1
cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2Rl
Kj4obmV3IEJpdE9yTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1f
ZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVh
dHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAK
IEJpdHdpc2VPUkV4cHJOb0JGOgogICAgIEJpdHdpc2VYT1JFeHByTm9CRgogICB8IEJpdHdpc2VP
UkV4cHJOb0JGICd8JyBCaXR3aXNlWE9SRXhwcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
PihuZXcgQml0T3JOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDMubV9m
ZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0
dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQk
ID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEJpdE9yTm9kZShH
TE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsICQzLm1fZmVhdHVyZUluZm8gJiBBc3Np
Z25GZWF0dXJlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8sICQxLm1fbnVt
Q29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIExvZ2ljYWxBTkRFeHByOgog
ICAgIEJpdHdpc2VPUkV4cHIKLSAgfCBMb2dpY2FsQU5ERXhwciBBTkQgQml0d2lzZU9SRXhwciAg
ICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExvZ2lj
YWxPcE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCBPcExvZ2ljYWxBbmQp
LCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBMb2dpY2FsQU5E
RXhwciBBTkQgQml0d2lzZU9SRXhwciAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obmV3IExvZ2ljYWxPcE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwg
JDMubV9ub2RlLCBPcExvZ2ljYWxBbmQpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJl
SW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogTG9n
aWNhbEFOREV4cHJOb0luOgogICAgIEJpdHdpc2VPUkV4cHJOb0luCiAgIHwgTG9naWNhbEFOREV4
cHJOb0luIEFORCBCaXR3aXNlT1JFeHByTm9JbgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
PihuZXcgTG9naWNhbE9wTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUsIE9w
TG9naWNhbEFuZCksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVh
dHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTG9naWNhbE9wTm9kZShHTE9CQUxfREFUQSwg
JDEubV9ub2RlLCAkMy5tX25vZGUsIE9wTG9naWNhbEFuZCksICQxLm1fZmVhdHVyZUluZm8gfCAk
My5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsg
fQogOwogCiBMb2dpY2FsQU5ERXhwck5vQkY6CiAgICAgQml0d2lzZU9SRXhwck5vQkYKICAgfCBM
b2dpY2FsQU5ERXhwck5vQkYgQU5EIEJpdHdpc2VPUkV4cHIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Np
b25Ob2RlKj4obmV3IExvZ2ljYWxPcE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9u
b2RlLCBPcExvZ2ljYWxBbmQpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7
IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExvZ2ljYWxPcE5vZGUoR0xPQkFM
X0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCBPcExvZ2ljYWxBbmQpLCAkMS5tX2ZlYXR1cmVJ
bmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5tX251bUNvbnN0
YW50cyk7IH0KIDsKIAogTG9naWNhbE9SRXhwcjoKICAgICBMb2dpY2FsQU5ERXhwcgotICB8IExv
Z2ljYWxPUkV4cHIgT1IgTG9naWNhbEFOREV4cHIgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVy
ZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgTG9naWNhbE9wTm9kZShHTE9CQUxfREFUQSwgJDEu
bV9ub2RlLCAkMy5tX25vZGUsIE9wTG9naWNhbE9yKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1f
ZmVhdHVyZUluZm8pOyB9CisgIHwgTG9naWNhbE9SRXhwciBPUiBMb2dpY2FsQU5ERXhwciAgICAg
eyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMb2dpY2Fs
T3BOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgT3BMb2dpY2FsT3IpLCAk
MS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAk
My5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogTG9naWNhbE9SRXhwck5vSW46CiAgICAgTG9naWNh
bEFOREV4cHJOb0luCiAgIHwgTG9naWNhbE9SRXhwck5vSW4gT1IgTG9naWNhbEFOREV4cHJOb0lu
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBMb2dpY2FsT3BOb2RlKEdMT0JBTF9E
QVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgT3BMb2dpY2FsT3IpLCAkMS5tX2ZlYXR1cmVJbmZv
IHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3
IExvZ2ljYWxPcE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCBPcExvZ2lj
YWxPciksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0
YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBMb2dpY2FsT1JFeHByTm9CRjoKICAg
ICBMb2dpY2FsQU5ERXhwck5vQkYKLSAgfCBMb2dpY2FsT1JFeHByTm9CRiBPUiBMb2dpY2FsQU5E
RXhwciB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IExv
Z2ljYWxPcE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCBPcExvZ2ljYWxP
ciksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICB8IExvZ2ljYWxP
UkV4cHJOb0JGIE9SIExvZ2ljYWxBTkRFeHByIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88
RXhwcmVzc2lvbk5vZGUqPihuZXcgTG9naWNhbE9wTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2Rl
LCAkMy5tX25vZGUsIE9wTG9naWNhbE9yKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVy
ZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIENv
bmRpdGlvbmFsRXhwcjoKICAgICBMb2dpY2FsT1JFeHByCiAgIHwgTG9naWNhbE9SRXhwciAnPycg
QXNzaWdubWVudEV4cHIgJzonIEFzc2lnbm1lbnRFeHByCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9u
Tm9kZSo+KG5ldyBDb25kaXRpb25hbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9u
b2RlLCAkNS5tX25vZGUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyB8ICQ1
Lm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBDb25k
aXRpb25hbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkNS5tX25vZGUp
LCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8s
ICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMgKyAkNS5tX251bUNvbnN0YW50
cyk7IH0KIDsKIAogQ29uZGl0aW9uYWxFeHByTm9JbjoKICAgICBMb2dpY2FsT1JFeHByTm9Jbgog
ICB8IExvZ2ljYWxPUkV4cHJOb0luICc/JyBBc3NpZ25tZW50RXhwck5vSW4gJzonIEFzc2lnbm1l
bnRFeHByTm9JbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQg
PSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQ29uZGl0aW9uYWxO
b2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDUubV9ub2RlKSwgJDEubV9m
ZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1cmVJbmZvKTsgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVh
dHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgQ29uZGl0aW9uYWxOb2RlKEdMT0JBTF9EQVRB
LCAkMS5tX25vZGUsICQzLm1fbm9kZSwgJDUubV9ub2RlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQz
Lm1fZmVhdHVyZUluZm8gfCAkNS5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyArICQz
Lm1fbnVtQ29uc3RhbnRzICsgJDUubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIENvbmRpdGlvbmFs
RXhwck5vQkY6CiAgICAgTG9naWNhbE9SRXhwck5vQkYKICAgfCBMb2dpY2FsT1JFeHByTm9CRiAn
PycgQXNzaWdubWVudEV4cHIgJzonIEFzc2lnbm1lbnRFeHByCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNz
aW9uTm9kZSo+KG5ldyBDb25kaXRpb25hbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMu
bV9ub2RlLCAkNS5tX25vZGUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyB8
ICQ1Lm1fZmVhdHVyZUluZm8pOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBD
b25kaXRpb25hbE5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlLCAkNS5tX25v
ZGUpLCAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUlu
Zm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMgKyAkNS5tX251bUNvbnN0
YW50cyk7IH0KIDsKIAogQXNzaWdubWVudEV4cHI6CiAgICAgQ29uZGl0aW9uYWxFeHByCiAgIHwg
TGVmdEhhbmRTaWRlRXhwciBBc3NpZ25tZW50T3BlcmF0b3IgQXNzaWdubWVudEV4cHIKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1
cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obWFrZUFzc2lnbk5vZGUoR0xPQkFMX0RBVEEsICQxLm1f
bm9kZSwgJDIsICQzLm1fbm9kZSwgJDEubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUsICQz
Lm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlLCAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQDEuZmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4gKyAx
LCBAMy5sYXN0X2NvbHVtbiksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvIHwg
QXNzaWduRmVhdHVyZSk7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBAMS5maXJzdF9jb2x1bW4sIEAyLmZpcnN0X2NvbHVtbiArIDEsIEAzLmxhc3RfY29sdW1u
KSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8gfCBBc3NpZ25GZWF0dXJlLCAk
MS5tX251bUNvbnN0YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogOwogCkBAIC03MjgsNyArNzM1LDcgQEAgQXNzaWdu
bWVudEV4cHJOb0luOgogICAgIENvbmRpdGlvbmFsRXhwck5vSW4KICAgfCBMZWZ0SGFuZFNpZGVF
eHByIEFzc2lnbm1lbnRPcGVyYXRvciBBc3NpZ25tZW50RXhwck5vSW4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4
cHJlc3Npb25Ob2RlKj4obWFrZUFzc2lnbk5vZGUoR0xPQkFMX0RBVEEsICQxLm1fbm9kZSwgJDIs
ICQzLm1fbm9kZSwgJDEubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUsICQzLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgQDEuZmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4gKyAxLCBAMy5sYXN0
X2NvbHVtbiksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVh
dHVyZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEAxLmZp
cnN0X2NvbHVtbiwgQDIuZmlyc3RfY29sdW1uICsgMSwgQDMubGFzdF9jb2x1bW4pLCAkMS5tX2Zl
YXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyB8IEFzc2lnbkZlYXR1cmUsICQxLm1fbnVtQ29u
c3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KIDsKIApAQCAtNzM2LDcgKzc0Myw3IEBAIEFzc2lnbm1lbnRFeHByTm9C
RjoKICAgICBDb25kaXRpb25hbEV4cHJOb0JGCiAgIHwgTGVmdEhhbmRTaWRlRXhwck5vQkYgQXNz
aWdubWVudE9wZXJhdG9yIEFzc2lnbm1lbnRFeHByCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9k
ZSo+KG1ha2VBc3NpZ25Ob2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQyLCAkMy5tX25vZGUs
ICQxLm1fZmVhdHVyZUluZm8gJiBBc3NpZ25GZWF0dXJlLCAkMy5tX2ZlYXR1cmVJbmZvICYgQXNz
aWduRmVhdHVyZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
QDEuZmlyc3RfY29sdW1uLCBAMi5maXJzdF9jb2x1bW4gKyAxLCBAMy5sYXN0X2NvbHVtbiksICQx
Lm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvIHwgQXNzaWduRmVhdHVyZSk7IAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAMS5maXJzdF9jb2x1bW4s
IEAyLmZpcnN0X2NvbHVtbiArIDEsIEAzLmxhc3RfY29sdW1uKSwgJDEubV9mZWF0dXJlSW5mbyB8
ICQzLm1fZmVhdHVyZUluZm8gfCBBc3NpZ25GZWF0dXJlLCAkMS5tX251bUNvbnN0YW50cyArICQz
Lm1fbnVtQ29uc3RhbnRzKTsgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogOwogCkBAIC03NTcsMTcgKzc2NCwxNyBAQCBBc3NpZ25tZW50T3BlcmF0b3I6CiAKIEV4
cHI6CiAgICAgQXNzaWdubWVudEV4cHIKLSAgfCBFeHByICcsJyBBc3NpZ25tZW50RXhwciAgICAg
ICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3
IENvbW1hTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUpLCAkMS5tX2ZlYXR1
cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgfCBFeHByICcsJyBBc3NpZ25tZW50RXhw
ciAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25Ob2Rl
Kj4obmV3IENvbW1hTm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLCAkMy5tX25vZGUpLCAkMS5t
X2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbywgJDEubV9udW1Db25zdGFudHMgKyAkMy5t
X251bUNvbnN0YW50cyk7IH0KIDsKIAogRXhwck5vSW46CiAgICAgQXNzaWdubWVudEV4cHJOb0lu
Ci0gIHwgRXhwck5vSW4gJywnIEFzc2lnbm1lbnRFeHByTm9JbiAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBDb21tYU5vZGUoR0xPQkFMX0RBVEEs
ICQxLm1fbm9kZSwgJDMubV9ub2RlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUlu
Zm8pOyB9CisgIHwgRXhwck5vSW4gJywnIEFzc2lnbm1lbnRFeHByTm9JbiAgICAgeyAkJCA9IGNy
ZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBDb21tYU5vZGUoR0xPQkFM
X0RBVEEsICQxLm1fbm9kZSwgJDMubV9ub2RlKSwgJDEubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVh
dHVyZUluZm8sICQxLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAK
IEV4cHJOb0JGOgogICAgIEFzc2lnbm1lbnRFeHByTm9CRgotICB8IEV4cHJOb0JGICcsJyBBc3Np
Z25tZW50RXhwciAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lv
bk5vZGUqPihuZXcgQ29tbWFOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1fbm9kZSks
ICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvKTsgfQorICB8IEV4cHJOb0JGICcs
JyBBc3NpZ25tZW50RXhwciAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhw
cmVzc2lvbk5vZGUqPihuZXcgQ29tbWFOb2RlKEdMT0JBTF9EQVRBLCAkMS5tX25vZGUsICQzLm1f
bm9kZSksICQxLm1fZmVhdHVyZUluZm8gfCAkMy5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0
YW50cyArICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBTdGF0ZW1lbnQ6CkBAIC03OTAsMTYg
Kzc5NywxNiBAQCBTdGF0ZW1lbnQ6CiA7CiAKIEJsb2NrOgotICAgIE9QRU5CUkFDRSBDTE9TRUJS
QUNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0
aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IEJsb2NrTm9kZShHTE9CQUxfREFUQSwgMCksIDAs
IDAsIDApOworICAgIE9QRU5CUkFDRSBDTE9TRUJSQUNFICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3
IEJsb2NrTm9kZShHTE9CQUxfREFUQSwgMCksIDAsIDAsIDAsIDApOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEAyKTsgfQotICB8
IE9QRU5CUkFDRSBTb3VyY2VFbGVtZW50cyBDTE9TRUJSQUNFICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IEJsb2NrTm9kZShH
TE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV92YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0Rl
Y2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5mbyk7CisgIHwgT1BFTkJSQUNFIFNvdXJjZUVsZW1l
bnRzIENMT1NFQlJBQ0UgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25J
bmZvPFN0YXRlbWVudE5vZGUqPihuZXcgQmxvY2tOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUp
LCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1
cmVJbmZvLCAkMi5tX251bUNvbnN0YW50cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBEQkcoJCQubV9ub2RlLCBAMSwgQDMpOyB9CiA7CiAKIFZhcmlhYmxlU3Rh
dGVtZW50OgotICAgIFZBUiBWYXJpYWJsZURlY2xhcmF0aW9uTGlzdCAnOycgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihtYWtlVmFyU3RhdGVtZW50
Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKSwgJDIubV92YXJEZWNsYXJhdGlvbnMsICQyLm1f
ZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5mbyk7CisgICAgVkFSIFZhcmlhYmxlRGVj
bGFyYXRpb25MaXN0ICc7JyAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3Rh
dGVtZW50Tm9kZSo+KG1ha2VWYXJTdGF0ZW1lbnROb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUp
LCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1
cmVJbmZvLCAkMi5tX251bUNvbnN0YW50cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBEQkcoJCQubV9ub2RlLCBAMSwgQDMpOyB9Ci0gIHwgVkFSIFZhcmlhYmxl
RGVjbGFyYXRpb25MaXN0IGVycm9yICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88
U3RhdGVtZW50Tm9kZSo+KG1ha2VWYXJTdGF0ZW1lbnROb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25v
ZGUpLCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2Zl
YXR1cmVJbmZvKTsKKyAgfCBWQVIgVmFyaWFibGVEZWNsYXJhdGlvbkxpc3QgZXJyb3IgICB7ICQk
ID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obWFrZVZhclN0YXRl
bWVudE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSksICQyLm1fdmFyRGVjbGFyYXRpb25zLCAk
Mi5tX2Z1bmNEZWNsYXJhdGlvbnMsICQyLm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRz
KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCRygkJC5tX25v
ZGUsIEAxLCBAMik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
VVRPX1NFTUlDT0xPTjsgfQogOwpAQCAtODEwLDYgKzgxNyw3IEBAIFZhcmlhYmxlRGVjbGFyYXRp
b25MaXN0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5k
VG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFMX0RBVEEsICQkLm1fdmFyRGVjbGFyYXRpb25zLCAq
JDEsIDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9m
dW5jRGVjbGFyYXRpb25zID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMgPSAwOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgfCBJREVOVCBJbml0aWFsaXplciAgICAgICAgICAg
ICAgICAgICB7IEFzc2lnblJlc29sdmVOb2RlKiBub2RlID0gbmV3IEFzc2lnblJlc29sdmVOb2Rl
KEdMT0JBTF9EQVRBLCAqJDEsICQyLm1fbm9kZSwgJDIubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZl
YXR1cmUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0VY
Q0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAyLmZpcnN0X2NvbHVtbiAr
IDEsIEAyLmxhc3RfY29sdW1uKTsKQEAgLTgxOCw2ICs4MjYsNyBAQCBWYXJpYWJsZURlY2xhcmF0
aW9uTGlzdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVu
ZFRvVmFyRGVjbGFyYXRpb25MaXN0KEdMT0JBTF9EQVRBLCAkJC5tX3ZhckRlY2xhcmF0aW9ucywg
KiQxLCBEZWNsYXJhdGlvblN0YWNrczo6SGFzSW5pdGlhbGl6ZXIpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFyYXRpb25zID0gMDsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZUluZm8g
PSAkMi5tX2ZlYXR1cmVJbmZvOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJCQubV9udW1Db25zdGFudHMgPSAkMi5tX251bUNvbnN0YW50czsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgVmFyaWFibGVEZWNsYXJhdGlvbkxp
c3QgJywnIElERU5UCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAk
JC5tX25vZGUgPSAkMS5tX25vZGU7CkBAIC04MjUsNiArODM0LDcgQEAgVmFyaWFibGVEZWNsYXJh
dGlvbkxpc3Q6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBl
bmRUb1ZhckRlY2xhcmF0aW9uTGlzdChHTE9CQUxfREFUQSwgJCQubV92YXJEZWNsYXJhdGlvbnMs
ICokMywgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5t
X2Z1bmNEZWNsYXJhdGlvbnMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJCQubV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVhdHVyZUluZm87CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9ICQxLm1f
bnVtQ29uc3RhbnRzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgfCBWYXJpYWJsZURlY2xhcmF0aW9uTGlzdCAnLCcgSURFTlQgSW5pdGlhbGl6ZXIKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IEFzc2lnblJlc29sdmVOb2RlKiBu
b2RlID0gbmV3IEFzc2lnblJlc29sdmVOb2RlKEdMT0JBTF9EQVRBLCAqJDMsICQ0Lm1fbm9kZSwg
JDQubV9mZWF0dXJlSW5mbyAmIEFzc2lnbkZlYXR1cmUpOwpAQCAtODM0LDYgKzg0NCw3IEBAIFZh
cmlhYmxlRGVjbGFyYXRpb25MaXN0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXBwZW5kVG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFMX0RBVEEsICQkLm1fdmFy
RGVjbGFyYXRpb25zLCAqJDMsIERlY2xhcmF0aW9uU3RhY2tzOjpIYXNJbml0aWFsaXplcik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1bmNEZWNsYXJh
dGlvbnMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQu
bV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVhdHVyZUluZm8gfCAkNC5tX2ZlYXR1cmVJbmZvOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMg
PSAkMS5tX251bUNvbnN0YW50cyArICQ0Lm1fbnVtQ29uc3RhbnRzOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KIDsKIApAQCAtODQzLDYgKzg1NCw3IEBAIFZhcmlh
YmxlRGVjbGFyYXRpb25MaXN0Tm9JbjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFwcGVuZFRvVmFyRGVjbGFyYXRpb25MaXN0KEdMT0JBTF9EQVRBLCAkJC5tX3Zh
ckRlY2xhcmF0aW9ucywgKiQxLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQkLm1fZnVuY0RlY2xhcmF0aW9ucyA9IDA7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gMDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gMDsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgSURFTlQgSW5pdGlh
bGl6ZXJOb0luICAgICAgICAgICAgICAgeyBBc3NpZ25SZXNvbHZlTm9kZSogbm9kZSA9IG5ldyBB
c3NpZ25SZXNvbHZlTm9kZShHTE9CQUxfREFUQSwgKiQxLCAkMi5tX25vZGUsICQyLm1fZmVhdHVy
ZUluZm8gJiBBc3NpZ25GZWF0dXJlKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBA
Mi5maXJzdF9jb2x1bW4gKyAxLCBAMi5sYXN0X2NvbHVtbik7CkBAIC04NTEsNiArODYzLDcgQEAg
VmFyaWFibGVEZWNsYXJhdGlvbkxpc3ROb0luOgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXBwZW5kVG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFMX0RBVEEsICQk
Lm1fdmFyRGVjbGFyYXRpb25zLCAqJDEsIERlY2xhcmF0aW9uU3RhY2tzOjpIYXNJbml0aWFsaXpl
cik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1bmNE
ZWNsYXJhdGlvbnMgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJCQubV9mZWF0dXJlSW5mbyA9ICQyLm1fZmVhdHVyZUluZm87CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9ICQyLm1fbnVtQ29u
c3RhbnRzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgfCBW
YXJpYWJsZURlY2xhcmF0aW9uTGlzdE5vSW4gJywnIElERU5UCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgeyAkJC5tX25vZGUgPSAkMS5tX25vZGU7CkBAIC04NTgsNiAr
ODcxLDcgQEAgVmFyaWFibGVEZWNsYXJhdGlvbkxpc3ROb0luOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFM
X0RBVEEsICQkLm1fdmFyRGVjbGFyYXRpb25zLCAqJDMsIDApOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFyYXRpb25zID0gMDsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAk
MS5tX2ZlYXR1cmVJbmZvOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJCQubV9udW1Db25zdGFudHMgPSAkMS5tX251bUNvbnN0YW50czsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgVmFyaWFibGVEZWNsYXJhdGlvbkxpc3RO
b0luICcsJyBJREVOVCBJbml0aWFsaXplck5vSW4KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IEFzc2lnblJlc29sdmVOb2RlKiBub2RlID0gbmV3IEFzc2lnblJlc29s
dmVOb2RlKEdMT0JBTF9EQVRBLCAqJDMsICQ0Lm1fbm9kZSwgJDQubV9mZWF0dXJlSW5mbyAmIEFz
c2lnbkZlYXR1cmUpOwpAQCAtODY3LDE0ICs4ODEsMTUgQEAgVmFyaWFibGVEZWNsYXJhdGlvbkxp
c3ROb0luOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5k
VG9WYXJEZWNsYXJhdGlvbkxpc3QoR0xPQkFMX0RBVEEsICQkLm1fdmFyRGVjbGFyYXRpb25zLCAq
JDMsIERlY2xhcmF0aW9uU3RhY2tzOjpIYXNJbml0aWFsaXplcik7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMgPSAwOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlSW5mbyA9
ICQxLm1fZmVhdHVyZUluZm8gfCAkNC5tX2ZlYXR1cmVJbmZvOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMgPSAkMS5tX251bUNvbnN0
YW50cyArICQ0Lm1fbnVtQ29uc3RhbnRzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KIDsKIAogQ29uc3RTdGF0ZW1lbnQ6Ci0gICAgQ09OU1RUT0tFTiBDb25zdERl
Y2xhcmF0aW9uTGlzdCAnOycgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVt
ZW50Tm9kZSo+KG5ldyBDb25zdFN0YXRlbWVudE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZS5o
ZWFkKSwgJDIubV92YXJEZWNsYXJhdGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9m
ZWF0dXJlSW5mbyk7CisgICAgQ09OU1RUT0tFTiBDb25zdERlY2xhcmF0aW9uTGlzdCAnOycgeyAk
JCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBDb25zdFN0
YXRlbWVudE5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZS5oZWFkKSwgJDIubV92YXJEZWNsYXJh
dGlvbnMsICQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5mbywgJDIubV9udW1D
b25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJH
KCQkLm1fbm9kZSwgQDEsIEAzKTsgfQogICB8IENPTlNUVE9LRU4gQ29uc3REZWNsYXJhdGlvbkxp
c3QgZXJyb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IENvbnN0U3RhdGVt
ZW50Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLmhlYWQpLCAkMi5tX3ZhckRlY2xhcmF0aW9u
cywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9u
SW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IENvbnN0U3RhdGVtZW50Tm9kZShHTE9CQUxfREFUQSwg
JDIubV9ub2RlLmhlYWQpLCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRp
b25zLCAkMi5tX2ZlYXR1cmVJbmZvLCAkMi5tX251bUNvbnN0YW50cyk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQkcoJCQubV9ub2RlLCBAMSwgQDIpOyBBVVRP
X1NFTUlDT0xPTjsgfQogOwogCkBAIC04ODUsNiArOTAwLDcgQEAgQ29uc3REZWNsYXJhdGlvbkxp
c3Q6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUb1Zh
ckRlY2xhcmF0aW9uTGlzdChHTE9CQUxfREFUQSwgJCQubV92YXJEZWNsYXJhdGlvbnMsICQxLm1f
bm9kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1
bmNEZWNsYXJhdGlvbnMgPSAwOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAkMS5tX2ZlYXR1cmVJbmZvOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9udW1Db25zdGFudHMgPSAkMS5tX251
bUNvbnN0YW50czsKICAgICB9CiAgIHwgQ29uc3REZWNsYXJhdGlvbkxpc3QgJywnIENvbnN0RGVj
bGFyYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAkJC5t
X25vZGUuaGVhZCA9ICQxLm1fbm9kZS5oZWFkOwpAQCAtODkzLDEyICs5MDksMTMgQEAgQ29uc3RE
ZWNsYXJhdGlvbkxpc3Q6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJC5tX3ZhckRlY2xhcmF0aW9ucyA9ICQxLm1fdmFyRGVjbGFyYXRpb25zOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG9WYXJEZWNsYXJhdGlvbkxp
c3QoR0xPQkFMX0RBVEEsICQkLm1fdmFyRGVjbGFyYXRpb25zLCAkMy5tX25vZGUpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mdW5jRGVjbGFyYXRpb25z
ID0gMDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVh
dHVyZUluZm8gPSAkMS5tX2ZlYXR1cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbzt9CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDEu
bV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm87CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9ICQxLm1fbnVtQ29uc3RhbnRz
ICsgJDMubV9udW1Db25zdGFudHM7IH0KIDsKIAogQ29uc3REZWNsYXJhdGlvbjoKLSAgICBJREVO
VCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJ
bmZvPENvbnN0RGVjbE5vZGUqPihuZXcgQ29uc3REZWNsTm9kZShHTE9CQUxfREFUQSwgKiQxLCAw
KSwgMCk7IH0KLSAgfCBJREVOVCBJbml0aWFsaXplciAgICAgICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZUZlYXR1cmVJbmZvPENvbnN0RGVjbE5vZGUqPihuZXcgQ29uc3REZWNsTm9kZShH
TE9CQUxfREFUQSwgKiQxLCAkMi5tX25vZGUpLCAkMi5tX2ZlYXR1cmVJbmZvKTsgfQorICAgIElE
RU5UICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVy
ZUluZm88Q29uc3REZWNsTm9kZSo+KG5ldyBDb25zdERlY2xOb2RlKEdMT0JBTF9EQVRBLCAqJDEs
IDApLCAwLCAwKTsgfQorICB8IElERU5UIEluaXRpYWxpemVyICAgICAgICAgICAgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88Q29uc3REZWNsTm9kZSo+KG5ldyBDb25zdERlY2xO
b2RlKEdMT0JBTF9EQVRBLCAqJDEsICQyLm1fbm9kZSksICQyLm1fZmVhdHVyZUluZm8sICQyLm1f
bnVtQ29uc3RhbnRzKTsgfQogOwogCiBJbml0aWFsaXplcjoKQEAgLTkxMCw0NCArOTI3LDQ3IEBA
IEluaXRpYWxpemVyTm9JbjoKIDsKIAogRW1wdHlTdGF0ZW1lbnQ6Ci0gICAgJzsnICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88
U3RhdGVtZW50Tm9kZSo+KG5ldyBFbXB0eVN0YXRlbWVudE5vZGUoR0xPQkFMX0RBVEEpLCAwLCAw
LCAwKTsgfQorICAgICc7JyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgRW1wdHlTdGF0ZW1l
bnROb2RlKEdMT0JBTF9EQVRBKSwgMCwgMCwgMCwgMCk7IH0KIDsKIAogRXhwclN0YXRlbWVudDoK
LSAgICBFeHByTm9CRiAnOycgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9k
ZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IEV4cHJTdGF0ZW1lbnROb2RlKEdM
T0JBTF9EQVRBLCAkMS5tX25vZGUpLCAwLCAwLCAkMS5tX2ZlYXR1cmVJbmZvKTsKKyAgICBFeHBy
Tm9CRiAnOycgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0
aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IEV4cHJTdGF0ZW1lbnROb2RlKEdMT0JBTF9EQVRB
LCAkMS5tX25vZGUpLCAwLCAwLCAkMS5tX2ZlYXR1cmVJbmZvLCAkMS5tX251bUNvbnN0YW50cyk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQkcoJCQubV9ub2Rl
LCBAMSwgQDIpOyB9Ci0gIHwgRXhwck5vQkYgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBFeHByU3Rh
dGVtZW50Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlKSwgMCwgMCwgJDEubV9mZWF0dXJlSW5m
byk7CisgIHwgRXhwck5vQkYgZXJyb3IgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0
ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBFeHByU3RhdGVtZW50Tm9k
ZShHTE9CQUxfREFUQSwgJDEubV9ub2RlKSwgMCwgMCwgJDEubV9mZWF0dXJlSW5mbywgJDEubV9u
dW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
REJHKCQkLm1fbm9kZSwgQDEsIEAxKTsgQVVUT19TRU1JQ09MT047IH0KIDsKIAogSWZTdGF0ZW1l
bnQ6CiAgICAgSUYgJygnIEV4cHIgJyknIFN0YXRlbWVudCAlcHJlYyBJRl9XSVRIT1VUX0VMU0UK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9k
ZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IElmTm9kZShHTE9CQUxfREFUQSwg
JDMubV9ub2RlLCAkNS5tX25vZGUpLCAkNS5tX3ZhckRlY2xhcmF0aW9ucywgJDUubV9mdW5jRGVj
bGFyYXRpb25zLCAkMy5tX2ZlYXR1cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbyk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJh
dGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBJZk5vZGUoR0xPQkFMX0RBVEEsICQzLm1fbm9k
ZSwgJDUubV9ub2RlKSwgJDUubV92YXJEZWNsYXJhdGlvbnMsICQ1Lm1fZnVuY0RlY2xhcmF0aW9u
cywgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8sICQzLm1fbnVtQ29uc3RhbnRz
ICsgJDUubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEA0KTsgfQogICB8IElGICcoJyBFeHByICcpJyBT
dGF0ZW1lbnQgRUxTRSBTdGF0ZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4o
bmV3IElmRWxzZU5vZGUoR0xPQkFMX0RBVEEsICQzLm1fbm9kZSwgJDUubV9ub2RlLCAkNy5tX25v
ZGUpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VEZWNsYXJhdGlvbkxp
c3RzKCQ1Lm1fdmFyRGVjbGFyYXRpb25zLCAkNy5tX3ZhckRlY2xhcmF0aW9ucyksIG1lcmdlRGVj
bGFyYXRpb25MaXN0cygkNS5tX2Z1bmNEZWNsYXJhdGlvbnMsICQ3Lm1fZnVuY0RlY2xhcmF0aW9u
cyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQzLm1fZmVhdHVyZUluZm8gfCAk
NS5tX2ZlYXR1cmVJbmZvIHwgJDcubV9mZWF0dXJlSW5mbyk7IAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkMy5tX2ZlYXR1cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbyB8ICQ3Lm1f
ZmVhdHVyZUluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQzLm1fbnVtQ29u
c3RhbnRzICsgJDUubV9udW1Db25zdGFudHMgKyAkNy5tX251bUNvbnN0YW50cyk7IAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEA0
KTsgfQogOwogCiBJdGVyYXRpb25TdGF0ZW1lbnQ6Ci0gICAgRE8gU3RhdGVtZW50IFdISUxFICco
JyBFeHByICcpJyAnOycgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVt
ZW50Tm9kZSo+KG5ldyBEb1doaWxlTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCAkNS5tX25v
ZGUpLCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2Zl
YXR1cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbyk7CisgICAgRE8gU3RhdGVtZW50IFdISUxFICco
JyBFeHByICcpJyAnOycgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVt
ZW50Tm9kZSo+KG5ldyBEb1doaWxlTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCAkNS5tX25v
ZGUpLCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2Zl
YXR1cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMgKyAkNS5tX251
bUNvbnN0YW50cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBEQkcoJCQubV9ub2RlLCBAMSwgQDMpOyB9Ci0gIHwgRE8gU3RhdGVtZW50IFdISUxFICcoJyBF
eHByICcpJyBlcnJvciAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50
Tm9kZSo+KG5ldyBEb1doaWxlTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCAkNS5tX25vZGUp
LCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1
cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbyk7CisgIHwgRE8gU3RhdGVtZW50IFdISUxFICcoJyBF
eHByICcpJyBlcnJvciAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50
Tm9kZSo+KG5ldyBEb1doaWxlTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLCAkNS5tX25vZGUp
LCAkMi5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1
cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMgKyAkNS5tX251bUNv
bnN0YW50cyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
QkcoJCQubV9ub2RlLCBAMSwgQDMpOyB9IC8vIEFsd2F5cyBwZXJmb3JtcyBhdXRvbWF0aWMgc2Vt
aWNvbG9uIGluc2VydGlvbi4KLSAgfCBXSElMRSAnKCcgRXhwciAnKScgU3RhdGVtZW50ICAgICAg
ICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IFdo
aWxlTm9kZShHTE9CQUxfREFUQSwgJDMubV9ub2RlLCAkNS5tX25vZGUpLCAkNS5tX3ZhckRlY2xh
cmF0aW9ucywgJDUubV9mdW5jRGVjbGFyYXRpb25zLCAkMy5tX2ZlYXR1cmVJbmZvIHwgJDUubV9m
ZWF0dXJlSW5mbyk7CisgIHwgV0hJTEUgJygnIEV4cHIgJyknIFN0YXRlbWVudCAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBXaGlsZU5v
ZGUoR0xPQkFMX0RBVEEsICQzLm1fbm9kZSwgJDUubV9ub2RlKSwgJDUubV92YXJEZWNsYXJhdGlv
bnMsICQ1Lm1fZnVuY0RlY2xhcmF0aW9ucywgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVy
ZUluZm8sICQzLm1fbnVtQ29uc3RhbnRzICsgJDUubV9udW1Db25zdGFudHMpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEA0KTsg
fQogICB8IEZPUiAnKCcgRXhwck5vSW5PcHQgJzsnIEV4cHJPcHQgJzsnIEV4cHJPcHQgJyknIFN0
YXRlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBj
cmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgRm9yTm9kZShHTE9C
QUxfREFUQSwgJDMubV9ub2RlLCAkNS5tX25vZGUsICQ3Lm1fbm9kZSwgJDkubV9ub2RlLCBmYWxz
ZSksICQ5Lm1fdmFyRGVjbGFyYXRpb25zLCAkOS5tX2Z1bmNEZWNsYXJhdGlvbnMsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkMy5tX2ZlYXR1cmVJbmZvIHwgJDUubV9mZWF0dXJl
SW5mbyB8ICQ3Lm1fZmVhdHVyZUluZm8gfCAkOS5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8g
fCAkNy5tX2ZlYXR1cmVJbmZvIHwgJDkubV9mZWF0dXJlSW5mbywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJDMubV9udW1Db25zdGFudHMgKyAkNS5tX251bUNvbnN0YW50cyArICQ3
Lm1fbnVtQ29uc3RhbnRzICsgJDkubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEA4KTsgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICB8IEZPUiAnKCcgVkFSIFZhcmlh
YmxlRGVjbGFyYXRpb25MaXN0Tm9JbiAnOycgRXhwck9wdCAnOycgRXhwck9wdCAnKScgU3RhdGVt
ZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0
ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBGb3JOb2RlKEdMT0JBTF9E
QVRBLCAkNC5tX25vZGUsICQ2Lm1fbm9kZSwgJDgubV9ub2RlLCAkMTAubV9ub2RlLCB0cnVlKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQ0
Lm1fdmFyRGVjbGFyYXRpb25zLCAkMTAubV92YXJEZWNsYXJhdGlvbnMpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZXJnZURlY2xhcmF0aW9uTGlzdHMoJDQubV9mdW5jRGVjbGFy
YXRpb25zLCAkMTAubV9mdW5jRGVjbGFyYXRpb25zKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJDQubV9mZWF0dXJlSW5mbyB8ICQ2Lm1fZmVhdHVyZUluZm8gfCAkOC5tX2ZlYXR1
cmVJbmZvIHwgJDEwLm1fZmVhdHVyZUluZm8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkNC5tX2ZlYXR1cmVJbmZvIHwgJDYubV9mZWF0dXJlSW5mbyB8ICQ4Lm1fZmVhdHVyZUlu
Zm8gfCAkMTAubV9mZWF0dXJlSW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JDQubV9udW1Db25zdGFudHMgKyAkNi5tX251bUNvbnN0YW50cyArICQ4Lm1fbnVtQ29uc3RhbnRz
ICsgJDEwLm1fbnVtQ29uc3RhbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIERCRygkJC5tX25vZGUsIEAxLCBAOSk7IH0KICAgfCBGT1IgJygnIExlZnRIYW5k
U2lkZUV4cHIgSU5UT0tFTiBFeHByICcpJyBTdGF0ZW1lbnQKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7CkBAIC05NTcsMTA2ICs5NzcsMTA5IEBAIEl0ZXJhdGlvblN0
YXRlbWVudDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9y
SW5Ob2RlKiBub2RlID0gbmV3IEZvckluTm9kZShHTE9CQUxfREFUQSwgJDMubV9ub2RlLCAkNS5t
X25vZGUsICQ3Lm1fbm9kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDMuZmlyc3RfY29sdW1uLCBAMy5s
YXN0X2NvbHVtbiwgQDUubGFzdF9jb2x1bW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50
Tm9kZSo+KG5vZGUsICQ3Lm1fdmFyRGVjbGFyYXRpb25zLCAkNy5tX2Z1bmNEZWNsYXJhdGlvbnMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDMubV9mZWF0dXJlSW5mbyB8ICQ1
Lm1fZmVhdHVyZUluZm8gfCAkNy5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkMy5tX2ZlYXR1cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbyB8ICQ3Lm1f
ZmVhdHVyZUluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDMubV9udW1D
b25zdGFudHMgKyAkNS5tX251bUNvbnN0YW50cyArICQ3Lm1fbnVtQ29uc3RhbnRzKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEs
IEA2KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgIHwgRk9S
ICcoJyBWQVIgSURFTlQgSU5UT0tFTiBFeHByICcpJyBTdGF0ZW1lbnQKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7IEZvckluTm9kZSAqZm9ySW4gPSBuZXcgRm9ySW5O
b2RlKEdMT0JBTF9EQVRBLCAqJDQsIDAsICQ2Lm1fbm9kZSwgJDgubV9ub2RlLCBANS5maXJzdF9j
b2x1bW4sIEA1LmZpcnN0X2NvbHVtbiAtIEA0LmZpcnN0X2NvbHVtbiwgQDYubGFzdF9jb2x1bW4g
LSBANS5maXJzdF9jb2x1bW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihmb3JJbiwgQDQuZmlyc3RfY29sdW1uLCBANS5m
aXJzdF9jb2x1bW4gKyAxLCBANi5sYXN0X2NvbHVtbik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcHBlbmRUb1ZhckRlY2xhcmF0aW9uTGlzdChHTE9CQUxfREFU
QSwgJDgubV92YXJEZWNsYXJhdGlvbnMsICokNCwgRGVjbGFyYXRpb25TdGFja3M6Okhhc0luaXRp
YWxpemVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0g
Y3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4oZm9ySW4sICQ4Lm1fdmFy
RGVjbGFyYXRpb25zLCAkOC5tX2Z1bmNEZWNsYXJhdGlvbnMsICQ2Lm1fZmVhdHVyZUluZm8gfCAk
OC5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4oZm9ySW4s
ICQ4Lm1fdmFyRGVjbGFyYXRpb25zLCAkOC5tX2Z1bmNEZWNsYXJhdGlvbnMsICQ2Lm1fZmVhdHVy
ZUluZm8gfCAkOC5tX2ZlYXR1cmVJbmZvLCAkNi5tX251bUNvbnN0YW50cyArICQ4Lm1fbnVtQ29u
c3RhbnRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCRygk
JC5tX25vZGUsIEAxLCBANyk7IH0KICAgfCBGT1IgJygnIFZBUiBJREVOVCBJbml0aWFsaXplck5v
SW4gSU5UT0tFTiBFeHByICcpJyBTdGF0ZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7IEZvckluTm9kZSAqZm9ySW4gPSBuZXcgRm9ySW5Ob2RlKEdMT0JBTF9E
QVRBLCAqJDQsICQ1Lm1fbm9kZSwgJDcubV9ub2RlLCAkOS5tX25vZGUsIEA1LmZpcnN0X2NvbHVt
biwgQDUuZmlyc3RfY29sdW1uIC0gQDQuZmlyc3RfY29sdW1uLCBANS5sYXN0X2NvbHVtbiAtIEA1
LmZpcnN0X2NvbHVtbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKGZvckluLCBANC5maXJzdF9jb2x1bW4sIEA2LmZpcnN0
X2NvbHVtbiArIDEsIEA3Lmxhc3RfY29sdW1uKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFwcGVuZFRvVmFyRGVjbGFyYXRpb25MaXN0KEdMT0JBTF9EQVRBLCAk
OS5tX3ZhckRlY2xhcmF0aW9ucywgKiQ0LCBEZWNsYXJhdGlvblN0YWNrczo6SGFzSW5pdGlhbGl6
ZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVh
dGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihmb3JJbiwgJDkubV92YXJEZWNs
YXJhdGlvbnMsICQ5Lm1fZnVuY0RlY2xhcmF0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJDUubV9mZWF0dXJlSW5mbyB8ICQ3Lm1fZmVhdHVyZUluZm8gfCAkOS5tX2ZlYXR1
cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDUubV9mZWF0dXJlSW5m
byB8ICQ3Lm1fZmVhdHVyZUluZm8gfCAkOS5tX2ZlYXR1cmVJbmZvLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkNS5tX251bUNvbnN0YW50cyArICQ3Lm1fbnVtQ29uc3RhbnRzICsg
JDkubV9udW1Db25zdGFudHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEA4KTsgfQogOwogCiBFeHByT3B0OgotICAgIC8qIG5v
dGhpbmcgKi8gICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUlu
Zm88RXhwcmVzc2lvbk5vZGUqPigwLCAwKTsgfQorICAgIC8qIG5vdGhpbmcgKi8gICAgICAgICAg
ICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
PigwLCAwLCAwKTsgfQogICB8IEV4cHIKIDsKIAogRXhwck5vSW5PcHQ6Ci0gICAgLyogbm90aGlu
ZyAqLyAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxF
eHByZXNzaW9uTm9kZSo+KDAsIDApOyB9CisgICAgLyogbm90aGluZyAqLyAgICAgICAgICAgICAg
ICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KDAs
IDAsIDApOyB9CiAgIHwgRXhwck5vSW4KIDsKIAogQ29udGludWVTdGF0ZW1lbnQ6CiAgICAgQ09O
VElOVUUgJzsnICAgICAgICAgICAgICAgICAgICAgICAgeyBDb250aW51ZU5vZGUqIG5vZGUgPSBu
ZXcgQ29udGludWVOb2RlKEdMT0JBTF9EQVRBKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29s
dW1uLCBAMS5sYXN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4pOyAKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxT
dGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50
Tm9kZSo+KG5vZGUsIDAsIDAsIDAsIDApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEAyKTsgfQogICB8IENPTlRJTlVFIGVycm9y
ICAgICAgICAgICAgICAgICAgICAgIHsgQ29udGludWVOb2RlKiBub2RlID0gbmV3IENvbnRpbnVl
Tm9kZShHTE9CQUxfREFUQSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDEubGFz
dF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uKTsgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9k
ZSo+KG5vZGUsIDAsIDAsIDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihub2Rl
LCAwLCAwLCAwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IERCRygkJC5tX25vZGUsIEAxLCBAMSk7IEFVVE9fU0VNSUNPTE9OOyB9CiAgIHwgQ09OVElOVUUg
SURFTlQgJzsnICAgICAgICAgICAgICAgICAgeyBDb250aW51ZU5vZGUqIG5vZGUgPSBuZXcgQ29u
dGludWVOb2RlKEdMT0JBTF9EQVRBLCAqJDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1
bW4sIEAyLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbik7IAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0
YXRlbWVudE5vZGUqPihub2RlLCAwLCAwLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnRO
b2RlKj4obm9kZSwgMCwgMCwgMCwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBEQkcoJCQubV9ub2RlLCBAMSwgQDMpOyB9CiAgIHwgQ09OVElOVUUgSURFTlQg
ZXJyb3IgICAgICAgICAgICAgICAgeyBDb250aW51ZU5vZGUqIG5vZGUgPSBuZXcgQ29udGludWVO
b2RlKEdMT0JBTF9EQVRBLCAqJDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAy
Lmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbik7IAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVu
dE5vZGUqPihub2RlLCAwLCAwLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4o
bm9kZSwgMCwgMCwgMCwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBEQkcoJCQubV9ub2RlLCBAMSwgQDIpOyBBVVRPX1NFTUlDT0xPTjsgfQogOwogCiBCcmVh
a1N0YXRlbWVudDoKICAgICBCUkVBSyAnOycgICAgICAgICAgICAgICAgICAgICAgICAgICB7IEJy
ZWFrTm9kZSogbm9kZSA9IG5ldyBCcmVha05vZGUoR0xPQkFMX0RBVEEpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2Rl
LCBAMS5maXJzdF9jb2x1bW4sIEAxLmxhc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNs
YXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsIDApOyBEQkcoJCQubV9ub2Rl
LCBAMSwgQDIpOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAk
JCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAs
IDAsIDApOyBEQkcoJCQubV9ub2RlLCBAMSwgQDIpOyB9CiAgIHwgQlJFQUsgZXJyb3IgICAgICAg
ICAgICAgICAgICAgICAgICAgeyBCcmVha05vZGUqIG5vZGUgPSBuZXcgQnJlYWtOb2RlKEdMT0JB
TF9EQVRBKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9F
WENFUFRJT05fTE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwg
QDEubGFzdF9jb2x1bW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgQnJl
YWtOb2RlKEdMT0JBTF9EQVRBKSwgMCwgMCwgMCk7IERCRygkJC5tX25vZGUsIEAxLCBAMSk7IEFV
VE9fU0VNSUNPTE9OOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBCcmVh
a05vZGUoR0xPQkFMX0RBVEEpLCAwLCAwLCAwLCAwKTsgREJHKCQkLm1fbm9kZSwgQDEsIEAxKTsg
QVVUT19TRU1JQ09MT047IH0KICAgfCBCUkVBSyBJREVOVCAnOycgICAgICAgICAgICAgICAgICAg
ICB7IEJyZWFrTm9kZSogbm9kZSA9IG5ldyBCcmVha05vZGUoR0xPQkFMX0RBVEEsICokMik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xP
Q0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29s
dW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3Jl
YXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgMCk7IERC
RygkJC5tX25vZGUsIEAxLCBAMyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4o
bm9kZSwgMCwgMCwgMCwgMCk7IERCRygkJC5tX25vZGUsIEAxLCBAMyk7IH0KICAgfCBCUkVBSyBJ
REVOVCBlcnJvciAgICAgICAgICAgICAgICAgICB7IEJyZWFrTm9kZSogbm9kZSA9IG5ldyBCcmVh
a05vZGUoR0xPQkFMX0RBVEEsICokMik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwg
QDIubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1l
bnROb2RlKj4obmV3IEJyZWFrTm9kZShHTE9CQUxfREFUQSwgKiQyKSwgMCwgMCwgMCk7IERCRygk
JC5tX25vZGUsIEAxLCBAMik7IEFVVE9fU0VNSUNPTE9OOyB9CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3Rh
dGVtZW50Tm9kZSo+KG5ldyBCcmVha05vZGUoR0xPQkFMX0RBVEEsICokMiksIDAsIDAsIDAsIDAp
OyBEQkcoJCQubV9ub2RlLCBAMSwgQDIpOyBBVVRPX1NFTUlDT0xPTjsgfQogOwogCiBSZXR1cm5T
dGF0ZW1lbnQ6CiAgICAgUkVUVVJOICc7JyAgICAgICAgICAgICAgICAgICAgICAgICAgeyBSZXR1
cm5Ob2RlKiBub2RlID0gbmV3IFJldHVybk5vZGUoR0xPQkFMX0RBVEEsIDApOyAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04o
bm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbiwgQDEubGFzdF9jb2x1bW4pOyAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9k
ZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgMCk7IERCRygkJC5t
X25vZGUsIEAxLCBAMik7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwg
MCwgMCwgMCwgMCk7IERCRygkJC5tX25vZGUsIEAxLCBAMik7IH0KICAgfCBSRVRVUk4gZXJyb3Ig
ICAgICAgICAgICAgICAgICAgICAgICB7IFJldHVybk5vZGUqIG5vZGUgPSBuZXcgUmV0dXJuTm9k
ZShHTE9CQUxfREFUQSwgMCk7IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9jb2x1bW4sIEAxLmxh
c3RfY29sdW1uLCBAMS5sYXN0X2NvbHVtbik7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5v
ZGUqPihub2RlLCAwLCAwLCAwKTsgREJHKCQkLm1fbm9kZSwgQDEsIEAxKTsgQVVUT19TRU1JQ09M
T047IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3Jl
YXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgMCwgMCk7
IERCRygkJC5tX25vZGUsIEAxLCBAMSk7IEFVVE9fU0VNSUNPTE9OOyB9CiAgIHwgUkVUVVJOIEV4
cHIgJzsnICAgICAgICAgICAgICAgICAgICAgeyBSZXR1cm5Ob2RlKiBub2RlID0gbmV3IFJldHVy
bk5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSk7IAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU0VUX0VYQ0VQVElPTl9MT0NBVElPTihub2RlLCBAMS5maXJzdF9j
b2x1bW4sIEAyLmxhc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88
U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsICQyLm1fZmVhdHVyZUluZm8pOyBEQkcoJCQubV9u
b2RlLCBAMSwgQDMpOyB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAs
IDAsICQyLm1fZmVhdHVyZUluZm8sICQyLm1fbnVtQ29uc3RhbnRzKTsgREJHKCQkLm1fbm9kZSwg
QDEsIEAzKTsgfQogICB8IFJFVFVSTiBFeHByIGVycm9yICAgICAgICAgICAgICAgICAgIHsgUmV0
dXJuTm9kZSogbm9kZSA9IG5ldyBSZXR1cm5Ob2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUpOyAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05f
TE9DQVRJT04obm9kZSwgQDEuZmlyc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiwgQDIubGFzdF9j
b2x1bW4pOyAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0g
Y3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgJDIu
bV9mZWF0dXJlSW5mbyk7IERCRygkJC5tX25vZGUsIEAxLCBAMik7IEFVVE9fU0VNSUNPTE9OOyB9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJCA9IGNyZWF0ZU5v
ZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5vZGUsIDAsIDAsICQyLm1fZmVhdHVy
ZUluZm8sICQyLm1fbnVtQ29uc3RhbnRzKTsgREJHKCQkLm1fbm9kZSwgQDEsIEAyKTsgQVVUT19T
RU1JQ09MT047IH0KIDsKIAogV2l0aFN0YXRlbWVudDoKICAgICBXSVRIICcoJyBFeHByICcpJyBT
dGF0ZW1lbnQgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1l
bnROb2RlKj4obmV3IFdpdGhOb2RlKEdMT0JBTF9EQVRBLCAkMy5tX25vZGUsICQ1Lm1fbm9kZSwg
QDMubGFzdF9jb2x1bW4sIEAzLmxhc3RfY29sdW1uIC0gQDMuZmlyc3RfY29sdW1uKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJDUubV92YXJEZWNsYXJhdGlvbnMsICQ1Lm1fZnVu
Y0RlY2xhcmF0aW9ucywgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8pOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkNS5tX3ZhckRlY2xhcmF0aW9ucywgJDUubV9m
dW5jRGVjbGFyYXRpb25zLCAkMy5tX2ZlYXR1cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbywgJDMu
bV9udW1Db25zdGFudHMgKyAkNS5tX251bUNvbnN0YW50cyk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBEQkcoJCQubV9ub2RlLCBAMSwgQDQpOyB9CiA7CiAKIFN3
aXRjaFN0YXRlbWVudDoKICAgICBTV0lUQ0ggJygnIEV4cHIgJyknIENhc2VCbG9jayAgICAgICB7
ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IFN3aXRj
aE5vZGUoR0xPQkFMX0RBVEEsICQzLm1fbm9kZSwgJDUubV9ub2RlKSwgJDUubV92YXJEZWNsYXJh
dGlvbnMsICQ1Lm1fZnVuY0RlY2xhcmF0aW9ucywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJDMubV9mZWF0dXJlSW5mbyB8ICQ1Lm1fZmVhdHVyZUluZm8pOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAkMy5tX2ZlYXR1cmVJbmZvIHwgJDUubV9mZWF0dXJlSW5mbywg
JDMubV9udW1Db25zdGFudHMgKyAkNS5tX251bUNvbnN0YW50cyk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBEQkcoJCQubV9ub2RlLCBAMSwgQDQpOyB9CiA7CiAK
IENhc2VCbG9jazoKLSAgICBPUEVOQlJBQ0UgQ2FzZUNsYXVzZXNPcHQgQ0xPU0VCUkFDRSAgICAg
ICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88Q2FzZUJsb2NrTm9kZSo+
KG5ldyBDYXNlQmxvY2tOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUuaGVhZCwgMCwgMCksICQy
Lm1fdmFyRGVjbGFyYXRpb25zLCAkMi5tX2Z1bmNEZWNsYXJhdGlvbnMsICQyLm1fZmVhdHVyZUlu
Zm8pOyB9CisgICAgT1BFTkJSQUNFIENhc2VDbGF1c2VzT3B0IENMT1NFQlJBQ0UgICAgICAgICAg
ICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPENhc2VCbG9ja05vZGUqPihuZXcg
Q2FzZUJsb2NrTm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlLmhlYWQsIDAsIDApLCAkMi5tX3Zh
ckRlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zLCAkMi5tX2ZlYXR1cmVJbmZvLCAk
Mi5tX251bUNvbnN0YW50cyk7IH0KICAgfCBPUEVOQlJBQ0UgQ2FzZUNsYXVzZXNPcHQgRGVmYXVs
dENsYXVzZSBDYXNlQ2xhdXNlc09wdCBDTE9TRUJSQUNFCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88Q2FzZUJs
b2NrTm9kZSo+KG5ldyBDYXNlQmxvY2tOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUuaGVhZCwg
JDMubV9ub2RlLCAkNC5tX25vZGUuaGVhZCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1lcmdlRGVjbGFyYXRpb25MaXN0cyhtZXJnZURlY2xhcmF0aW9uTGlzdHMoJDIubV92YXJE
ZWNsYXJhdGlvbnMsICQzLm1fdmFyRGVjbGFyYXRpb25zKSwgJDQubV92YXJEZWNsYXJhdGlvbnMp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZURlY2xhcmF0aW9uTGlzdHMo
bWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDMubV9mdW5jRGVj
bGFyYXRpb25zKSwgJDQubV9mdW5jRGVjbGFyYXRpb25zKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJDIubV9mZWF0dXJlSW5mbyB8ICQzLm1fZmVhdHVyZUluZm8gfCAkNC5tX2Zl
YXR1cmVJbmZvKTsgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMi5tX2ZlYXR1
cmVJbmZvIHwgJDMubV9mZWF0dXJlSW5mbyB8ICQ0Lm1fZmVhdHVyZUluZm8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQyLm1fbnVtQ29uc3RhbnRzICsgJDMubV9udW1Db25zdGFu
dHMgKyAkNC5tX251bUNvbnN0YW50cyk7IH0KIDsKIAogQ2FzZUNsYXVzZXNPcHQ6Ci0vKiBub3Ro
aW5nICovICAgICAgICAgICAgICAgICAgICAgICB7ICQkLm1fbm9kZS5oZWFkID0gMDsgJCQubV9u
b2RlLnRhaWwgPSAwOyAkJC5tX3ZhckRlY2xhcmF0aW9ucyA9IDA7ICQkLm1fZnVuY0RlY2xhcmF0
aW9ucyA9IDA7ICQkLm1fZmVhdHVyZUluZm8gPSAwOyB9CisvKiBub3RoaW5nICovICAgICAgICAg
ICAgICAgICAgICAgICB7ICQkLm1fbm9kZS5oZWFkID0gMDsgJCQubV9ub2RlLnRhaWwgPSAwOyAk
JC5tX3ZhckRlY2xhcmF0aW9ucyA9IDA7ICQkLm1fZnVuY0RlY2xhcmF0aW9ucyA9IDA7ICQkLm1f
ZmVhdHVyZUluZm8gPSAwOyAkJC5tX251bUNvbnN0YW50cyA9IDA7IH0KICAgfCBDYXNlQ2xhdXNl
cwogOwogCkBAIC0xMDY1LDQwICsxMDg4LDQyIEBAIENhc2VDbGF1c2VzOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9ub2RlLnRhaWwgPSAkJC5tX25vZGUu
aGVhZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fdmFy
RGVjbGFyYXRpb25zID0gJDEubV92YXJEZWNsYXJhdGlvbnM7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMgPSAkMS5tX2Z1bmNE
ZWNsYXJhdGlvbnM7IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JCQubV9mZWF0dXJlSW5mbyA9ICQxLm1fZmVhdHVyZUluZm87IH0gCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX2ZlYXR1cmVJbmZvID0gJDEubV9mZWF0dXJl
SW5mbzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fbnVt
Q29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHM7IH0KICAgfCBDYXNlQ2xhdXNlcyBDYXNlQ2xh
dXNlICAgICAgICAgICAgICB7ICQkLm1fbm9kZS5oZWFkID0gJDEubV9ub2RlLmhlYWQ7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX25vZGUudGFpbCA9IG5l
dyBDbGF1c2VMaXN0Tm9kZShHTE9CQUxfREFUQSwgJDEubV9ub2RlLnRhaWwsICQyLm1fbm9kZSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX3ZhckRlY2xh
cmF0aW9ucyA9IG1lcmdlRGVjbGFyYXRpb25MaXN0cygkMS5tX3ZhckRlY2xhcmF0aW9ucywgJDIu
bV92YXJEZWNsYXJhdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJCQubV9mdW5jRGVjbGFyYXRpb25zID0gbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQxLm1f
ZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAkMS5tX2ZlYXR1
cmVJbmZvIHwgJDIubV9mZWF0dXJlSW5mbzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICQkLm1fbnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHMgKyAkMi5t
X251bUNvbnN0YW50czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CiA7CiAKIENhc2VDbGF1c2U6Ci0gICAgQ0FTRSBFeHByICc6JyAgICAgICAgICAgICAgICAgICAg
ICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88Q2FzZUNsYXVzZU5vZGUqPihuZXcg
Q2FzZUNsYXVzZU5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSksIDAsIDAsICQyLm1fZmVhdHVy
ZUluZm8pOyB9Ci0gIHwgQ0FTRSBFeHByICc6JyBTb3VyY2VFbGVtZW50cyAgICAgICAgeyAkJCA9
IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88Q2FzZUNsYXVzZU5vZGUqPihuZXcgQ2FzZUNsYXVz
ZU5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgJDQubV9ub2RlKSwgJDQubV92YXJEZWNsYXJh
dGlvbnMsICQ0Lm1fZnVuY0RlY2xhcmF0aW9ucywgJDIubV9mZWF0dXJlSW5mbyB8ICQ0Lm1fZmVh
dHVyZUluZm8pOyB9CisgICAgQ0FTRSBFeHByICc6JyAgICAgICAgICAgICAgICAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88Q2FzZUNsYXVzZU5vZGUqPihuZXcgQ2FzZUNs
YXVzZU5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSksIDAsIDAsICQyLm1fZmVhdHVyZUluZm8s
ICQyLm1fbnVtQ29uc3RhbnRzKTsgfQorICB8IENBU0UgRXhwciAnOicgU291cmNlRWxlbWVudHMg
ICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPENhc2VDbGF1c2VOb2RlKj4o
bmV3IENhc2VDbGF1c2VOb2RlKEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsICQ0Lm1fbm9kZSksICQ0
Lm1fdmFyRGVjbGFyYXRpb25zLCAkNC5tX2Z1bmNEZWNsYXJhdGlvbnMsICQyLm1fZmVhdHVyZUlu
Zm8gfCAkNC5tX2ZlYXR1cmVJbmZvLCAkMi5tX251bUNvbnN0YW50cyArICQ0Lm1fbnVtQ29uc3Rh
bnRzKTsgfQogOwogCiBEZWZhdWx0Q2xhdXNlOgotICAgIERFRkFVTFQgJzonICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPENhc2VDbGF1c2VO
b2RlKj4obmV3IENhc2VDbGF1c2VOb2RlKEdMT0JBTF9EQVRBLCAwKSwgMCwgMCwgMCk7IH0KLSAg
fCBERUZBVUxUICc6JyBTb3VyY2VFbGVtZW50cyAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURl
Y2xhcmF0aW9uSW5mbzxDYXNlQ2xhdXNlTm9kZSo+KG5ldyBDYXNlQ2xhdXNlTm9kZShHTE9CQUxf
REFUQSwgMCwgJDMubV9ub2RlKSwgJDMubV92YXJEZWNsYXJhdGlvbnMsICQzLm1fZnVuY0RlY2xh
cmF0aW9ucywgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICBERUZBVUxUICc6JyAgICAgICAgICAg
ICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxDYXNlQ2xhdXNl
Tm9kZSo+KG5ldyBDYXNlQ2xhdXNlTm9kZShHTE9CQUxfREFUQSwgMCksIDAsIDAsIDAsIDApOyB9
CisgIHwgREVGQVVMVCAnOicgU291cmNlRWxlbWVudHMgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5v
ZGVEZWNsYXJhdGlvbkluZm88Q2FzZUNsYXVzZU5vZGUqPihuZXcgQ2FzZUNsYXVzZU5vZGUoR0xP
QkFMX0RBVEEsIDAsICQzLm1fbm9kZSksICQzLm1fdmFyRGVjbGFyYXRpb25zLCAkMy5tX2Z1bmNE
ZWNsYXJhdGlvbnMsICQzLm1fZmVhdHVyZUluZm8sICQzLm1fbnVtQ29uc3RhbnRzKTsgfQogOwog
CiBMYWJlbGxlZFN0YXRlbWVudDoKICAgICBJREVOVCAnOicgU3RhdGVtZW50ICAgICAgICAgICAg
ICAgICB7ICQzLm1fbm9kZS0+cHVzaExhYmVsKCokMSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBMYWJlbE5vZGUqIG5vZGUgPSBuZXcgTGFiZWxOb2RlKEdMT0JB
TF9EQVRBLCAqJDEsICQzLm1fbm9kZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5vZGUsIEAxLmZpcnN0X2NvbHVtbiwg
QDIubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1l
bnROb2RlKj4obm9kZSwgJDMubV92YXJEZWNsYXJhdGlvbnMsICQzLm1fZnVuY0RlY2xhcmF0aW9u
cywgJDMubV9mZWF0dXJlSW5mbyk7IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4o
bm9kZSwgJDMubV92YXJEZWNsYXJhdGlvbnMsICQzLm1fZnVuY0RlY2xhcmF0aW9ucywgJDMubV9m
ZWF0dXJlSW5mbywgJDMubV9udW1Db25zdGFudHMpOyB9CiA7CiAKIFRocm93U3RhdGVtZW50Ogog
ICAgIFRIUk9XIEV4cHIgJzsnICAgICAgICAgICAgICAgICAgICAgIHsgVGhyb3dOb2RlKiBub2Rl
ID0gbmV3IFRocm93Tm9kZShHTE9CQUxfREFUQSwgJDIubV9ub2RlKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNFVF9FWENFUFRJT05fTE9DQVRJT04obm9kZSwg
QDEuZmlyc3RfY29sdW1uLCBAMi5sYXN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4pOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQgPSBjcmVhdGVOb2RlRGVjbGFy
YXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihub2RlLCAwLCAwLCAkMi5tX2ZlYXR1cmVJbmZvKTsg
REJHKCQkLm1fbm9kZSwgQDEsIEAyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4o
bm9kZSwgMCwgMCwgJDIubV9mZWF0dXJlSW5mbywgJDIubV9udW1Db25zdGFudHMpOyBEQkcoJCQu
bV9ub2RlLCBAMSwgQDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KICAgfCBUSFJPVyBFeHByIGVycm9yICAgICAgICAgICAgICAgICAgICB7IFRocm93Tm9kZSog
bm9kZSA9IG5ldyBUaHJvd05vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVRfRVhDRVBUSU9OX0xPQ0FUSU9OKG5v
ZGUsIEAxLmZpcnN0X2NvbHVtbiwgQDIubGFzdF9jb2x1bW4sIEAyLmxhc3RfY29sdW1uKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURl
Y2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgJDIubV9mZWF0dXJlSW5m
byk7IERCRygkJC5tX25vZGUsIEAxLCBAMik7IEFVVE9fU0VNSUNPTE9OOyAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9u
SW5mbzxTdGF0ZW1lbnROb2RlKj4obm9kZSwgMCwgMCwgJDIubV9mZWF0dXJlSW5mbywgJDIubV9u
dW1Db25zdGFudHMpOyBEQkcoJCQubV9ub2RlLCBAMSwgQDIpOyBBVVRPX1NFTUlDT0xPTjsgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogOwogCkBAIC0xMTA2LDI1
ICsxMTMxLDI4IEBAIFRyeVN0YXRlbWVudDoKICAgICBUUlkgQmxvY2sgRklOQUxMWSBCbG9jayAg
ICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2Rl
Kj4obmV3IFRyeU5vZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgR0xPQkFMX0RBVEEtPnByb3Bl
cnR5TmFtZXMtPm51bGxJZGVudGlmaWVyLCAwLCAkNC5tX25vZGUpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXJnZURlY2xhcmF0aW9uTGlzdHMoJDIubV92YXJEZWNsYXJhdGlv
bnMsICQ0Lm1fdmFyRGVjbGFyYXRpb25zKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQyLm1fZnVuY0RlY2xhcmF0aW9ucywgJDQubV9mdW5j
RGVjbGFyYXRpb25zKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDIubV9mZWF0
dXJlSW5mbyB8ICQ0Lm1fZmVhdHVyZUluZm8pOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAkMi5tX2ZlYXR1cmVJbmZvIHwgJDQubV9mZWF0dXJlSW5mbywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJDIubV9udW1Db25zdGFudHMgKyAkNC5tX251bUNvbnN0YW50cyk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQkcoJCQubV9ub2Rl
LCBAMSwgQDIpOyB9CiAgIHwgVFJZIEJsb2NrIENBVENIICcoJyBJREVOVCAnKScgQmxvY2sgeyAk
JCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KG5ldyBUcnlOb2Rl
KEdMT0JBTF9EQVRBLCAkMi5tX25vZGUsICokNSwgJDcubV9ub2RlLCAwKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQyLm1fdmFyRGVjbGFy
YXRpb25zLCAkNy5tX3ZhckRlY2xhcmF0aW9ucyksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lcmdlRGVjbGFyYXRpb25MaXN0cygkMi5tX2Z1bmNEZWNsYXJhdGlvbnMsICQ3Lm1f
ZnVuY0RlY2xhcmF0aW9ucyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICQyLm1f
ZmVhdHVyZUluZm8gfCAkNy5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJDIubV9mZWF0dXJlSW5mbyB8ICQ3Lm1fZmVhdHVyZUluZm8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICQyLm1fbnVtQ29uc3RhbnRzICsgJDcubV9udW1Db25zdGFu
dHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1f
bm9kZSwgQDEsIEAyKTsgfQogICB8IFRSWSBCbG9jayBDQVRDSCAnKCcgSURFTlQgJyknIEJsb2Nr
IEZJTkFMTFkgQmxvY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IFRyeU5v
ZGUoR0xPQkFMX0RBVEEsICQyLm1fbm9kZSwgKiQ1LCAkNy5tX25vZGUsICQ5Lm1fbm9kZSksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlRGVjbGFyYXRpb25MaXN0cyhtZXJn
ZURlY2xhcmF0aW9uTGlzdHMoJDIubV92YXJEZWNsYXJhdGlvbnMsICQ3Lm1fdmFyRGVjbGFyYXRp
b25zKSwgJDkubV92YXJEZWNsYXJhdGlvbnMpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtZXJnZURlY2xhcmF0aW9uTGlzdHMobWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQyLm1fZnVu
Y0RlY2xhcmF0aW9ucywgJDcubV9mdW5jRGVjbGFyYXRpb25zKSwgJDkubV9mdW5jRGVjbGFyYXRp
b25zKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDIubV9mZWF0dXJlSW5mbyB8
ICQ3Lm1fZmVhdHVyZUluZm8gfCAkOS5tX2ZlYXR1cmVJbmZvKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJDIubV9mZWF0dXJlSW5mbyB8ICQ3Lm1fZmVhdHVyZUluZm8gfCAkOS5t
X2ZlYXR1cmVJbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkMi5tX251bUNv
bnN0YW50cyArICQ3Lm1fbnVtQ29uc3RhbnRzICsgJDkubV9udW1Db25zdGFudHMpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEAy
KTsgfQogOwogCiBEZWJ1Z2dlclN0YXRlbWVudDoKLSAgICBERUJVR0dFUiAnOycgICAgICAgICAg
ICAgICAgICAgICAgICB7ICQkID0gY3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnRO
b2RlKj4obmV3IERlYnVnZ2VyU3RhdGVtZW50Tm9kZShHTE9CQUxfREFUQSksIDAsIDAsIDApOwor
ICAgIERFQlVHR0VSICc7JyAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBjcmVhdGVOb2Rl
RGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPihuZXcgRGVidWdnZXJTdGF0ZW1lbnROb2Rl
KEdMT0JBTF9EQVRBKSwgMCwgMCwgMCwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBEQkcoJCQubV9ub2RlLCBAMSwgQDIpOyB9Ci0gIHwgREVCVUdHRVIgZXJy
b3IgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88
U3RhdGVtZW50Tm9kZSo+KG5ldyBEZWJ1Z2dlclN0YXRlbWVudE5vZGUoR0xPQkFMX0RBVEEpLCAw
LCAwLCAwKTsKKyAgfCBERUJVR0dFUiBlcnJvciAgICAgICAgICAgICAgICAgICAgICB7ICQkID0g
Y3JlYXRlTm9kZURlY2xhcmF0aW9uSW5mbzxTdGF0ZW1lbnROb2RlKj4obmV3IERlYnVnZ2VyU3Rh
dGVtZW50Tm9kZShHTE9CQUxfREFUQSksIDAsIDAsIDAsIDApOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgREJHKCQkLm1fbm9kZSwgQDEsIEAxKTsgQVVUT19TRU1J
Q09MT047IH0KIDsKIApAQCAtMTEzNSwxMCArMTE2MywxMCBAQCBGdW5jdGlvbkRlY2xhcmF0aW9u
OgogOwogCiBGdW5jdGlvbkV4cHI6Ci0gICAgRlVOQ1RJT04gJygnICcpJyBPUEVOQlJBQ0UgRnVu
Y3Rpb25Cb2R5IENMT1NFQlJBQ0UgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbyhuZXcgRnVu
Y0V4cHJOb2RlKEdMT0JBTF9EQVRBLCBHTE9CQUxfREFUQS0+cHJvcGVydHlOYW1lcy0+bnVsbElk
ZW50aWZpZXIsICQ1LCBMRVhFUi0+c291cmNlUmFuZ2UoJDQsICQ2KSksIENsb3N1cmVGZWF0dXJl
KTsgREJHKCQ1LCBANCwgQDYpOyB9Ci0gIHwgRlVOQ1RJT04gJygnIEZvcm1hbFBhcmFtZXRlckxp
c3QgJyknIE9QRU5CUkFDRSBGdW5jdGlvbkJvZHkgQ0xPU0VCUkFDRSB7ICQkID0gY3JlYXRlTm9k
ZUZlYXR1cmVJbmZvKG5ldyBGdW5jRXhwck5vZGUoR0xPQkFMX0RBVEEsIEdMT0JBTF9EQVRBLT5w
cm9wZXJ0eU5hbWVzLT5udWxsSWRlbnRpZmllciwgJDYsIExFWEVSLT5zb3VyY2VSYW5nZSgkNSwg
JDcpLCAkMy5oZWFkKSwgQ2xvc3VyZUZlYXR1cmUpOyBEQkcoJDYsIEA1LCBANyk7IH0KLSAgfCBG
VU5DVElPTiBJREVOVCAnKCcgJyknIE9QRU5CUkFDRSBGdW5jdGlvbkJvZHkgQ0xPU0VCUkFDRSB7
ICQkID0gY3JlYXRlTm9kZUZlYXR1cmVJbmZvKG5ldyBGdW5jRXhwck5vZGUoR0xPQkFMX0RBVEEs
ICokMiwgJDYsIExFWEVSLT5zb3VyY2VSYW5nZSgkNSwgJDcpKSwgQ2xvc3VyZUZlYXR1cmUpOyBE
QkcoJDYsIEA1LCBANyk7IH0KLSAgfCBGVU5DVElPTiBJREVOVCAnKCcgRm9ybWFsUGFyYW1ldGVy
TGlzdCAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9keSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVhdGVO
b2RlRmVhdHVyZUluZm8obmV3IEZ1bmNFeHByTm9kZShHTE9CQUxfREFUQSwgKiQyLCAkNywgTEVY
RVItPnNvdXJjZVJhbmdlKCQ2LCAkOCksICQ0LmhlYWQpLCBDbG9zdXJlRmVhdHVyZSk7IERCRygk
NywgQDYsIEA4KTsgfQorICAgIEZVTkNUSU9OICcoJyAnKScgT1BFTkJSQUNFIEZ1bmN0aW9uQm9k
eSBDTE9TRUJSQUNFIHsgJCQgPSBjcmVhdGVOb2RlRmVhdHVyZUluZm8obmV3IEZ1bmNFeHByTm9k
ZShHTE9CQUxfREFUQSwgR0xPQkFMX0RBVEEtPnByb3BlcnR5TmFtZXMtPm51bGxJZGVudGlmaWVy
LCAkNSwgTEVYRVItPnNvdXJjZVJhbmdlKCQ0LCAkNikpLCBDbG9zdXJlRmVhdHVyZSwgMCk7IERC
RygkNSwgQDQsIEA2KTsgfQorICB8IEZVTkNUSU9OICcoJyBGb3JtYWxQYXJhbWV0ZXJMaXN0ICcp
JyBPUEVOQlJBQ0UgRnVuY3Rpb25Cb2R5IENMT1NFQlJBQ0UgeyAkJCA9IGNyZWF0ZU5vZGVGZWF0
dXJlSW5mbyhuZXcgRnVuY0V4cHJOb2RlKEdMT0JBTF9EQVRBLCBHTE9CQUxfREFUQS0+cHJvcGVy
dHlOYW1lcy0+bnVsbElkZW50aWZpZXIsICQ2LCBMRVhFUi0+c291cmNlUmFuZ2UoJDUsICQ3KSwg
JDMuaGVhZCksIENsb3N1cmVGZWF0dXJlLCAwKTsgREJHKCQ2LCBANSwgQDcpOyB9CisgIHwgRlVO
Q1RJT04gSURFTlQgJygnICcpJyBPUEVOQlJBQ0UgRnVuY3Rpb25Cb2R5IENMT1NFQlJBQ0UgeyAk
JCA9IGNyZWF0ZU5vZGVGZWF0dXJlSW5mbyhuZXcgRnVuY0V4cHJOb2RlKEdMT0JBTF9EQVRBLCAq
JDIsICQ2LCBMRVhFUi0+c291cmNlUmFuZ2UoJDUsICQ3KSksIENsb3N1cmVGZWF0dXJlLCAwKTsg
REJHKCQ2LCBANSwgQDcpOyB9CisgIHwgRlVOQ1RJT04gSURFTlQgJygnIEZvcm1hbFBhcmFtZXRl
ckxpc3QgJyknIE9QRU5CUkFDRSBGdW5jdGlvbkJvZHkgQ0xPU0VCUkFDRSB7ICQkID0gY3JlYXRl
Tm9kZUZlYXR1cmVJbmZvKG5ldyBGdW5jRXhwck5vZGUoR0xPQkFMX0RBVEEsICokMiwgJDcsIExF
WEVSLT5zb3VyY2VSYW5nZSgkNiwgJDgpLCAkNC5oZWFkKSwgQ2xvc3VyZUZlYXR1cmUsIDApOyBE
QkcoJDcsIEA2LCBAOCk7IH0KIDsKIAogRm9ybWFsUGFyYW1ldGVyTGlzdDoKQEAgLTExNDksMTAg
KzExNzcsMTEgQEAgRm9ybWFsUGFyYW1ldGVyTGlzdDoKIDsKIAogRnVuY3Rpb25Cb2R5OgotICAg
IC8qIG5vdCBpbiBzcGVjICovICAgICAgICAgICB7ICQkID0gRnVuY3Rpb25Cb2R5Tm9kZTo6Y3Jl
YXRlKEdMT0JBTF9EQVRBLCAwLCAwLCAwLCBmYWxzZSwgZmFsc2UpOyB9CisgICAgLyogbm90IGlu
IHNwZWMgKi8gICAgICAgICAgIHsgJCQgPSBGdW5jdGlvbkJvZHlOb2RlOjpjcmVhdGUoR0xPQkFM
X0RBVEEsIDAsIDAsIDAsIGZhbHNlLCBmYWxzZSwgMCk7IH0KICAgfCBTb3VyY2VFbGVtZW50cyAg
ICAgICAgICAgICAgeyAkJCA9IEZ1bmN0aW9uQm9keU5vZGU6OmNyZWF0ZShHTE9CQUxfREFUQSwg
JDEubV9ub2RlLCAkMS5tX3ZhckRlY2xhcmF0aW9ucyA/ICYkMS5tX3ZhckRlY2xhcmF0aW9ucy0+
ZGF0YSA6IDAsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICQxLm1fZnVuY0RlY2xhcmF0aW9ucyA/ICYkMS5tX2Z1bmNEZWNs
YXJhdGlvbnMtPmRhdGEgOiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkMS5tX2ZlYXR1cmVJbmZvICYgRXZhbEZlYXR1
cmUpICE9IDAsICgkMS5tX2ZlYXR1cmVJbmZvICYgQ2xvc3VyZUZlYXR1cmUpICE9IDApOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgkMS5tX2ZlYXR1cmVJbmZvICYgRXZhbEZlYXR1cmUpICE9IDAsICgkMS5tX2ZlYXR1cmVJ
bmZvICYgQ2xvc3VyZUZlYXR1cmUpICE9IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJDEubV9udW1Db25zdGFudHMpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFzIGluIG1lcmdlRGVjbGFyYXRp
b25MaXN0cygpIHdlIGhhdmUgdG8gcmVmL2RlcmVmIHRvIHNhZmVseSBnZXQgcmlkIG9mCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGRlY2xhcmF0aW9uIGxpc3RzLgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkMS5tX3ZhckRlY2xhcmF0aW9u
cykgewpAQCAtMTE2NywxMCArMTE5NiwxMCBAQCBGdW5jdGlvbkJvZHk6CiA7CiAKIFByb2dyYW06
Ci0gICAgLyogbm90IGluIHNwZWMgKi8gICAgICAgICAgICAgICAgICAgeyBHTE9CQUxfREFUQS0+
cGFyc2VyLT5kaWRGaW5pc2hQYXJzaW5nKG5ldyBTb3VyY2VFbGVtZW50cyhHTE9CQUxfREFUQSks
IDAsIDAsIGZhbHNlLCBmYWxzZSwgQDAubGFzdF9saW5lKTsgfQorICAgIC8qIG5vdCBpbiBzcGVj
ICovICAgICAgICAgICAgICAgICAgIHsgR0xPQkFMX0RBVEEtPnBhcnNlci0+ZGlkRmluaXNoUGFy
c2luZyhuZXcgU291cmNlRWxlbWVudHMoR0xPQkFMX0RBVEEpLCAwLCAwLCBmYWxzZSwgZmFsc2Us
IEAwLmxhc3RfbGluZSwgMCk7IH0KICAgICB8IFNvdXJjZUVsZW1lbnRzICAgICAgICAgICAgICAg
ICAgICB7IEdMT0JBTF9EQVRBLT5wYXJzZXItPmRpZEZpbmlzaFBhcnNpbmcoJDEubV9ub2RlLCAk
MS5tX3ZhckRlY2xhcmF0aW9ucywgJDEubV9mdW5jRGVjbGFyYXRpb25zLCAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KCQxLm1fZmVhdHVyZUluZm8gJiBFdmFsRmVhdHVyZSkgIT0gMCwgKCQxLm1fZmVhdHVyZUluZm8g
JiBDbG9zdXJlRmVhdHVyZSkgIT0gMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQDEubGFzdF9saW5lKTsgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBAMS5sYXN0X2xpbmUsICQxLm1fbnVtQ29uc3RhbnRzKTsgfQogOwogCiBTb3VyY2VF
bGVtZW50czoKQEAgLTExNzksMTYgKzEyMDgsMTggQEAgU291cmNlRWxlbWVudHM6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX3ZhckRlY2xhcmF0aW9ucyA9
ICQxLm1fdmFyRGVjbGFyYXRpb25zOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJCQubV9mdW5jRGVjbGFyYXRpb25zID0gJDEubV9mdW5jRGVjbGFyYXRpb25zOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQubV9mZWF0dXJlSW5m
byA9ICQxLm1fZmVhdHVyZUluZm87CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAkJC5tX251bUNvbnN0YW50cyA9ICQxLm1fbnVtQ29uc3RhbnRzOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgfCBTb3VyY2VFbGVtZW50cyBTb3Vy
Y2VFbGVtZW50ICAgICAgICB7ICQkLm1fbm9kZS0+YXBwZW5kKCQyLm1fbm9kZSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkJC5tX3ZhckRlY2xhcmF0aW9ucyA9
IG1lcmdlRGVjbGFyYXRpb25MaXN0cygkMS5tX3ZhckRlY2xhcmF0aW9ucywgJDIubV92YXJEZWNs
YXJhdGlvbnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCQu
bV9mdW5jRGVjbGFyYXRpb25zID0gbWVyZ2VEZWNsYXJhdGlvbkxpc3RzKCQxLm1fZnVuY0RlY2xh
cmF0aW9ucywgJDIubV9mdW5jRGVjbGFyYXRpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICQkLm1fZmVhdHVyZUluZm8gPSAkMS5tX2ZlYXR1cmVJbmZvIHwg
JDIubV9mZWF0dXJlSW5mbzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICQkLm1fbnVtQ29uc3RhbnRzID0gJDEubV9udW1Db25zdGFudHMgKyAkMi5tX251bUNvbnN0
YW50czsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiA7CiAKIFNv
dXJjZUVsZW1lbnQ6Ci0gICAgRnVuY3Rpb25EZWNsYXJhdGlvbiAgICAgICAgICAgICAgICAgeyAk
JCA9IGNyZWF0ZU5vZGVEZWNsYXJhdGlvbkluZm88U3RhdGVtZW50Tm9kZSo+KCQxLCAwLCBuZXcg
UGFyc2VyUmVmQ291bnRlZERhdGE8RGVjbGFyYXRpb25TdGFja3M6OkZ1bmN0aW9uU3RhY2s+KEdM
T0JBTF9EQVRBKSwgQ2xvc3VyZUZlYXR1cmUpOyAkJC5tX2Z1bmNEZWNsYXJhdGlvbnMtPmRhdGEu
YXBwZW5kKCQxKTsgfQorICAgIEZ1bmN0aW9uRGVjbGFyYXRpb24gICAgICAgICAgICAgICAgIHsg
JCQgPSBjcmVhdGVOb2RlRGVjbGFyYXRpb25JbmZvPFN0YXRlbWVudE5vZGUqPigkMSwgMCwgbmV3
IFBhcnNlclJlZkNvdW50ZWREYXRhPERlY2xhcmF0aW9uU3RhY2tzOjpGdW5jdGlvblN0YWNrPihH
TE9CQUxfREFUQSksIENsb3N1cmVGZWF0dXJlLCAwKTsgJCQubV9mdW5jRGVjbGFyYXRpb25zLT5k
YXRhLmFwcGVuZCgkMSk7IH0KICAgfCBTdGF0ZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAg
ICB7ICQkID0gJDE7IH0KIDsKICAKQEAgLTEyNzYsMjYgKzEzMDcsMjcgQEAgc3RhdGljIEV4cHJl
c3Npb25Ob2RlKiBtYWtlUG9zdGZpeE5vZGUodgogc3RhdGljIEV4cHJlc3Npb25Ob2RlSW5mbyBt
YWtlRnVuY3Rpb25DYWxsTm9kZSh2b2lkKiBnbG9iYWxQdHIsIEV4cHJlc3Npb25Ob2RlSW5mbyBm
dW5jLCBBcmd1bWVudHNOb2RlSW5mbyBhcmdzLCBpbnQgc3RhcnQsIGludCBkaXZvdCwgaW50IGVu
ZCkKIHsKICAgICBGZWF0dXJlSW5mbyBmZWF0dXJlcyA9IGZ1bmMubV9mZWF0dXJlSW5mbyB8IGFy
Z3MubV9mZWF0dXJlSW5mbzsKKyAgICBpbnQgbnVtQ29uc3RhbnRzID0gZnVuYy5tX251bUNvbnN0
YW50cyArIGFyZ3MubV9udW1Db25zdGFudHM7CiAgICAgaWYgKCFmdW5jLm1fbm9kZS0+aXNMb2Nh
dGlvbigpKQotICAgICAgICByZXR1cm4gY3JlYXRlTm9kZUZlYXR1cmVJbmZvPEV4cHJlc3Npb25O
b2RlKj4obmV3IEZ1bmN0aW9uQ2FsbFZhbHVlTm9kZShHTE9CQUxfREFUQSwgZnVuYy5tX25vZGUs
IGFyZ3MubV9ub2RlLCBkaXZvdCwgZGl2b3QgLSBzdGFydCwgZW5kIC0gZGl2b3QpLCBmZWF0dXJl
cyk7CisgICAgICAgIHJldHVybiBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUq
PihuZXcgRnVuY3Rpb25DYWxsVmFsdWVOb2RlKEdMT0JBTF9EQVRBLCBmdW5jLm1fbm9kZSwgYXJn
cy5tX25vZGUsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCksIGZlYXR1cmVzLCBu
dW1Db25zdGFudHMpOwogICAgIGlmIChmdW5jLm1fbm9kZS0+aXNSZXNvbHZlTm9kZSgpKSB7CiAg
ICAgICAgIFJlc29sdmVOb2RlKiByZXNvbHZlID0gc3RhdGljX2Nhc3Q8UmVzb2x2ZU5vZGUqPihm
dW5jLm1fbm9kZSk7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIgPSByZXNv
bHZlLT5pZGVudGlmaWVyKCk7CiAgICAgICAgIGlmIChpZGVudGlmaWVyID09IEdMT0JBTF9EQVRB
LT5wcm9wZXJ0eU5hbWVzLT5ldmFsKQotICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZU5vZGVGZWF0
dXJlSW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBFdmFsRnVuY3Rpb25DYWxsTm9kZShHTE9CQUxf
REFUQSwgYXJncy5tX25vZGUsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCksIEV2
YWxGZWF0dXJlIHwgZmVhdHVyZXMpOwotICAgICAgICByZXR1cm4gY3JlYXRlTm9kZUZlYXR1cmVJ
bmZvPEV4cHJlc3Npb25Ob2RlKj4obmV3IEZ1bmN0aW9uQ2FsbFJlc29sdmVOb2RlKEdMT0JBTF9E
QVRBLCBpZGVudGlmaWVyLCBhcmdzLm1fbm9kZSwgZGl2b3QsIGRpdm90IC0gc3RhcnQsIGVuZCAt
IGRpdm90KSwgZmVhdHVyZXMpOworICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZU5vZGVGZWF0dXJl
SW5mbzxFeHByZXNzaW9uTm9kZSo+KG5ldyBFdmFsRnVuY3Rpb25DYWxsTm9kZShHTE9CQUxfREFU
QSwgYXJncy5tX25vZGUsIGRpdm90LCBkaXZvdCAtIHN0YXJ0LCBlbmQgLSBkaXZvdCksIEV2YWxG
ZWF0dXJlIHwgZmVhdHVyZXMsIG51bUNvbnN0YW50cyk7CisgICAgICAgIHJldHVybiBjcmVhdGVO
b2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihuZXcgRnVuY3Rpb25DYWxsUmVzb2x2ZU5v
ZGUoR0xPQkFMX0RBVEEsIGlkZW50aWZpZXIsIGFyZ3MubV9ub2RlLCBkaXZvdCwgZGl2b3QgLSBz
dGFydCwgZW5kIC0gZGl2b3QpLCBmZWF0dXJlcywgbnVtQ29uc3RhbnRzKTsKICAgICB9CiAgICAg
aWYgKGZ1bmMubV9ub2RlLT5pc0JyYWNrZXRBY2Nlc3Nvck5vZGUoKSkgewogICAgICAgICBCcmFj
a2V0QWNjZXNzb3JOb2RlKiBicmFja2V0ID0gc3RhdGljX2Nhc3Q8QnJhY2tldEFjY2Vzc29yTm9k
ZSo+KGZ1bmMubV9ub2RlKTsKICAgICAgICAgRnVuY3Rpb25DYWxsQnJhY2tldE5vZGUqIG5vZGUg
PSBuZXcgRnVuY3Rpb25DYWxsQnJhY2tldE5vZGUoR0xPQkFMX0RBVEEsIGJyYWNrZXQtPmJhc2Uo
KSwgYnJhY2tldC0+c3Vic2NyaXB0KCksIGFyZ3MubV9ub2RlLCBkaXZvdCwgZGl2b3QgLSBzdGFy
dCwgZW5kIC0gZGl2b3QpOwogICAgICAgICBub2RlLT5zZXRTdWJleHByZXNzaW9uSW5mbyhicmFj
a2V0LT5kaXZvdCgpLCBicmFja2V0LT5lbmRPZmZzZXQoKSk7Ci0gICAgICAgIHJldHVybiBjcmVh
dGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCBmZWF0dXJlcyk7CisgICAg
ICAgIHJldHVybiBjcmVhdGVOb2RlRmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCBm
ZWF0dXJlcywgbnVtQ29uc3RhbnRzKTsKICAgICB9CiAgICAgQVNTRVJUKGZ1bmMubV9ub2RlLT5p
c0RvdEFjY2Vzc29yTm9kZSgpKTsKICAgICBEb3RBY2Nlc3Nvck5vZGUqIGRvdCA9IHN0YXRpY19j
YXN0PERvdEFjY2Vzc29yTm9kZSo+KGZ1bmMubV9ub2RlKTsKICAgICBGdW5jdGlvbkNhbGxEb3RO
b2RlKiBub2RlID0gbmV3IEZ1bmN0aW9uQ2FsbERvdE5vZGUoR0xPQkFMX0RBVEEsIGRvdC0+YmFz
ZSgpLCBkb3QtPmlkZW50aWZpZXIoKSwgYXJncy5tX25vZGUsIGRpdm90LCBkaXZvdCAtIHN0YXJ0
LCBlbmQgLSBkaXZvdCk7CiAgICAgbm9kZS0+c2V0U3ViZXhwcmVzc2lvbkluZm8oZG90LT5kaXZv
dCgpLCBkb3QtPmVuZE9mZnNldCgpKTsKLSAgICByZXR1cm4gY3JlYXRlTm9kZUZlYXR1cmVJbmZv
PEV4cHJlc3Npb25Ob2RlKj4obm9kZSwgZmVhdHVyZXMpOworICAgIHJldHVybiBjcmVhdGVOb2Rl
RmVhdHVyZUluZm88RXhwcmVzc2lvbk5vZGUqPihub2RlLCBmZWF0dXJlcywgbnVtQ29uc3RhbnRz
KTsKIH0KIAogc3RhdGljIEV4cHJlc3Npb25Ob2RlKiBtYWtlVHlwZU9mTm9kZSh2b2lkKiBnbG9i
YWxQdHIsIEV4cHJlc3Npb25Ob2RlKiBleHByKQpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL25v
ZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCShyZXZp
c2lvbiAzNTU4NCkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIyNiw3ICsyMjYsNyBAQCBSZWdpc3RlcklEKiBOdWxsTm9kZTo6ZW1pdENvZGUoQ29k
ZUdlbmVyCiB7CiAgICAgaWYgKGRzdCA9PSBpZ25vcmVkUmVzdWx0KCkpCiAgICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLmZpbmFsRGVzdGlu
YXRpb24oZHN0KSwganNOdWxsKCkpOworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdExvYWQoZHN0
LCBqc051bGwoKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCb29s
ZWFuTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMzUsNyArMjM1
LDcgQEAgUmVnaXN0ZXJJRCogQm9vbGVhbk5vZGU6OmVtaXRDb2RlKENvZGVHZQogewogICAgIGlm
IChkc3QgPT0gaWdub3JlZFJlc3VsdCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
Z2VuZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIG1fdmFs
dWUpOworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdExvYWQoZHN0LCBtX3ZhbHVlKTsKIH0KIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIE51bWJlck5vZGUgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0NCw3ICsyNDQsNyBAQCBSZWdpc3RlcklEKiBO
dW1iZXJOb2RlOjplbWl0Q29kZShDb2RlR2VuCiB7CiAgICAgaWYgKGRzdCA9PSBpZ25vcmVkUmVz
dWx0KCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdExvYWQo
Z2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0KSwgbV9kb3VibGUpOworICAgIHJldHVybiBn
ZW5lcmF0b3IuZW1pdExvYWQoZHN0LCBtX2RvdWJsZSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBTdHJpbmdOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCkBAIC0yNTUsNyArMjU1LDcgQEAgUmVnaXN0ZXJJRCogU3RyaW5nTm9kZTo6ZW1pdENv
ZGUoQ29kZUdlbgogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIFdlIGF0b21pemUgY29uc3Rh
bnQgc3RyaW5ncywgaW4gY2FzZSB0aGV5J3JlIGxhdGVyIHVzZWQgaW4gcHJvcGVydHkgbG9va3Vw
LgotICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRp
b24oZHN0KSwganNPd25lZFN0cmluZyhnZW5lcmF0b3IuZ2xvYmFsRXhlYygpLCBJZGVudGlmaWVy
KGdlbmVyYXRvci5nbG9iYWxFeGVjKCksIG1fdmFsdWUpLnVzdHJpbmcoKSkpOworICAgIHJldHVy
biBnZW5lcmF0b3IuZW1pdExvYWQoZHN0LCBqc093bmVkU3RyaW5nKGdlbmVyYXRvci5nbG9iYWxF
eGVjKCksIElkZW50aWZpZXIoZ2VuZXJhdG9yLmdsb2JhbEV4ZWMoKSwgbV92YWx1ZSkudXN0cmlu
ZygpKSk7CiB9CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZWdFeHBOb2Rl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zMjMsNyArMzIzLDcgQEAg
UmVnaXN0ZXJJRCogQXJyYXlOb2RlOjplbWl0Q29kZShDb2RlR2VuZQogICAgIH0KIAogICAgIGlm
IChtX2VsaXNpb24pIHsKLSAgICAgICAgUmVnaXN0ZXJJRCogdmFsdWUgPSBnZW5lcmF0b3IuZW1p
dExvYWQoZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCBqc051bWJlcihnZW5lcmF0b3IuZ2xvYmFs
RXhlYygpLCBtX2VsaXNpb24gKyBsZW5ndGgpKTsKKyAgICAgICAgUmVnaXN0ZXJJRCogdmFsdWUg
PSBnZW5lcmF0b3IuZW1pdExvYWQoMCwganNOdW1iZXIoZ2VuZXJhdG9yLmdsb2JhbEV4ZWMoKSwg
bV9lbGlzaW9uICsgbGVuZ3RoKSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0UHV0QnlJZChhcnJh
eS5nZXQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIHZhbHVlKTsKICAgICB9
CiAKQEAgLTU3NSw3ICs1NzUsNyBAQCBSZWdpc3RlcklEKiBQb3N0Zml4RXJyb3JOb2RlOjplbWl0
Q29kZShDCiBSZWdpc3RlcklEKiBEZWxldGVSZXNvbHZlTm9kZTo6ZW1pdENvZGUoQ29kZUdlbmVy
YXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiB7CiAgICAgaWYgKGdlbmVyYXRvci5y
ZWdpc3RlckZvckxvY2FsKG1faWRlbnQpKQotICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRM
b2FkKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIGZhbHNlKTsKKyAgICAgICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0VW5leHBlY3RlZExvYWQoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRp
b24oZHN0KSwgZmFsc2UpOwogCiAgICAgZ2VuZXJhdG9yLmVtaXRFeHByZXNzaW9uSW5mbyhtX2Rp
dm90LCBtX3N0YXJ0T2Zmc2V0LCBtX2VuZE9mZnNldCk7CiAgICAgUmVnaXN0ZXJJRCogYmFzZSA9
IGdlbmVyYXRvci5lbWl0UmVzb2x2ZUJhc2UoZ2VuZXJhdG9yLnRlbXBEZXN0aW5hdGlvbihkc3Qp
LCBtX2lkZW50KTsKQEAgLTYxMCw3ICs2MTAsNyBAQCBSZWdpc3RlcklEKiBEZWxldGVWYWx1ZU5v
ZGU6OmVtaXRDb2RlKENvCiAgICAgZ2VuZXJhdG9yLmVtaXROb2RlKGlnbm9yZWRSZXN1bHQoKSwg
bV9leHByLmdldCgpKTsKIAogICAgIC8vIGRlbGV0ZSBvbiBhIG5vbi1sb2NhdGlvbiBleHByZXNz
aW9uIGlnbm9yZXMgdGhlIHZhbHVlIGFuZCByZXR1cm5zIHRydWUKLSAgICByZXR1cm4gZ2VuZXJh
dG9yLmVtaXRMb2FkKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCksIHRydWUpOworICAg
IHJldHVybiBnZW5lcmF0b3IuZW1pdFVuZXhwZWN0ZWRMb2FkKGdlbmVyYXRvci5maW5hbERlc3Rp
bmF0aW9uKGRzdCksIHRydWUpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gVm9pZE5vZGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjIy
LDcgKzYyMiw3IEBAIFJlZ2lzdGVySUQqIFZvaWROb2RlOjplbWl0Q29kZShDb2RlR2VuZXIKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIFJlZlB0cjxSZWdpc3RlcklEPiByMCA9IGdlbmVy
YXRvci5lbWl0Tm9kZShtX2V4cHIuZ2V0KCkpOwotICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdExv
YWQoZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0LCByMC5nZXQoKSksIGpzVW5kZWZpbmVk
KCkpOworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdExvYWQoZHN0LCBqc1VuZGVmaW5lZCgpKTsK
IH0KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFR5cGVPZlZhbHVlTm9kZSAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTAxNSw3ICsxMDE1LDcgQEAg
UmVnaXN0ZXJJRCogQ29uc3REZWNsTm9kZTo6ZW1pdENvZGVTaW5nbAogICAgIC8vIEZJWE1FOiBX
aGlsZSB0aGlzIGNvZGUgc2hvdWxkIG9ubHkgYmUgaGl0IGluIGV2YWwgY29kZSwgaXQgd2lsbCBw
b3RlbnRpYWxseQogICAgIC8vIGFzc2lnbiB0byB0aGUgd3JvbmcgYmFzZSBpZiBtX2lkZW50IGV4
aXN0cyBpbiBhbiBpbnRlcnZlbmluZyBkeW5hbWljIHNjb3BlLgogICAgIFJlZlB0cjxSZWdpc3Rl
cklEPiBiYXNlID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlQmFzZShnZW5lcmF0b3IubmV3VGVtcG9y
YXJ5KCksIG1faWRlbnQpOwotICAgIFJlZ2lzdGVySUQqIHZhbHVlID0gbV9pbml0ID8gZ2VuZXJh
dG9yLmVtaXROb2RlKG1faW5pdC5nZXQoKSkgOiBnZW5lcmF0b3IuZW1pdExvYWQoZ2VuZXJhdG9y
Lm5ld1RlbXBvcmFyeSgpLCBqc1VuZGVmaW5lZCgpKTsKKyAgICBSZWdpc3RlcklEKiB2YWx1ZSA9
IG1faW5pdCA/IGdlbmVyYXRvci5lbWl0Tm9kZShtX2luaXQuZ2V0KCkpIDogZ2VuZXJhdG9yLmVt
aXRMb2FkKDAsIGpzVW5kZWZpbmVkKCkpOwogICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdFB1dEJ5
SWQoYmFzZS5nZXQoKSwgbV9pZGVudCwgdmFsdWUpOwogfQogCkBAIC0xMzczLDcgKzEzNzMsNyBA
QCBSZWdpc3RlcklEKiBSZXR1cm5Ob2RlOjplbWl0Q29kZShDb2RlR2VuCiAgICAgaWYgKGdlbmVy
YXRvci5jb2RlVHlwZSgpICE9IEZ1bmN0aW9uQ29kZSkKICAgICAgICAgcmV0dXJuIGVtaXRUaHJv
d0Vycm9yKGdlbmVyYXRvciwgU3ludGF4RXJyb3IsICJJbnZhbGlkIHJldHVybiBzdGF0ZW1lbnQu
Iik7CiAgICAgICAgIAotICAgIFJlZ2lzdGVySUQqIHIwID0gbV92YWx1ZSA/IGdlbmVyYXRvci5l
bWl0Tm9kZShkc3QsIG1fdmFsdWUuZ2V0KCkpIDogZ2VuZXJhdG9yLmVtaXRMb2FkKGdlbmVyYXRv
ci5maW5hbERlc3RpbmF0aW9uKGRzdCksIGpzVW5kZWZpbmVkKCkpOworICAgIFJlZ2lzdGVySUQq
IHIwID0gbV92YWx1ZSA/IGdlbmVyYXRvci5lbWl0Tm9kZShkc3QsIG1fdmFsdWUuZ2V0KCkpIDog
Z2VuZXJhdG9yLmVtaXRMb2FkKGRzdCwganNVbmRlZmluZWQoKSk7CiAgICAgaWYgKGdlbmVyYXRv
ci5zY29wZURlcHRoKCkpIHsKICAgICAgICAgUmVmUHRyPExhYmVsSUQ+IGwwID0gZ2VuZXJhdG9y
Lm5ld0xhYmVsKCk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcFNjb3BlcyhsMC5nZXQoKSwg
MCk7CkBAIC0xNjQwLDEyICsxNjQwLDEzIEBAIFJlZ2lzdGVySUQqIFRyeU5vZGU6OmVtaXRDb2Rl
KENvZGVHZW5lcmEKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFNjb3BlTm9k
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1TY29wZU5vZGU6OlNjb3BlTm9kZShK
U0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFNvdXJjZUVsZW1lbnRzKiBjaGlsZHJlbiwgVmFyU3Rh
Y2sqIHZhclN0YWNrLCBGdW5jdGlvblN0YWNrKiBmdW5jU3RhY2ssIGJvb2wgdXNlc0V2YWwsIGJv
b2wgbmVlZHNDbG9zdXJlKQorU2NvcGVOb2RlOjpTY29wZU5vZGUoSlNHbG9iYWxEYXRhKiBnbG9i
YWxEYXRhLCBTb3VyY2VFbGVtZW50cyogY2hpbGRyZW4sIFZhclN0YWNrKiB2YXJTdGFjaywgRnVu
Y3Rpb25TdGFjayogZnVuY1N0YWNrLCBib29sIHVzZXNFdmFsLCBib29sIG5lZWRzQ2xvc3VyZSwg
aW50IG51bUNvbnN0YW50cykKICAgICA6IEJsb2NrTm9kZShnbG9iYWxEYXRhLCBjaGlsZHJlbikK
ICAgICAsIG1fc291cmNlVVJMKGdsb2JhbERhdGEtPnBhcnNlci0+c291cmNlVVJMKCkpCiAgICAg
LCBtX3NvdXJjZUlkKGdsb2JhbERhdGEtPnBhcnNlci0+c291cmNlSWQoKSkKICAgICAsIG1fdXNl
c0V2YWwodXNlc0V2YWwpCiAgICAgLCBtX25lZWRzQ2xvc3VyZShuZWVkc0Nsb3N1cmUpCisgICAg
LCBtX251bUNvbnN0YW50cyhudW1Db25zdGFudHMpCiB7CiAgICAgaWYgKHZhclN0YWNrKQogICAg
ICAgICBtX3ZhclN0YWNrID0gKnZhclN0YWNrOwpAQCAtMTY1NywyMSArMTY1OCwyMSBAQCBTY29w
ZU5vZGU6OlNjb3BlTm9kZShKU0dsb2JhbERhdGEqIGdsb2JhCiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSBQcm9ncmFtTm9kZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCi1Qcm9ncmFtTm9kZTo6UHJvZ3JhbU5vZGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBT
b3VyY2VFbGVtZW50cyogY2hpbGRyZW4sIFZhclN0YWNrKiB2YXJTdGFjaywgRnVuY3Rpb25TdGFj
ayogZnVuY1N0YWNrLCBTb3VyY2VQcm92aWRlciogc291cmNlUHJvdmlkZXIsIGJvb2wgdXNlc0V2
YWwsIGJvb2wgbmVlZHNDbG9zdXJlKQotICAgIDogU2NvcGVOb2RlKGdsb2JhbERhdGEsIGNoaWxk
cmVuLCB2YXJTdGFjaywgZnVuY1N0YWNrLCB1c2VzRXZhbCwgbmVlZHNDbG9zdXJlKQorUHJvZ3Jh
bU5vZGU6OlByb2dyYW1Ob2RlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgU291cmNlRWxlbWVu
dHMqIGNoaWxkcmVuLCBWYXJTdGFjayogdmFyU3RhY2ssIEZ1bmN0aW9uU3RhY2sqIGZ1bmNTdGFj
aywgU291cmNlUHJvdmlkZXIqIHNvdXJjZVByb3ZpZGVyLCBib29sIHVzZXNFdmFsLCBib29sIG5l
ZWRzQ2xvc3VyZSwgaW50IG51bUNvbnN0YW50cykKKyAgICA6IFNjb3BlTm9kZShnbG9iYWxEYXRh
LCBjaGlsZHJlbiwgdmFyU3RhY2ssIGZ1bmNTdGFjaywgdXNlc0V2YWwsIG5lZWRzQ2xvc3VyZSwg
bnVtQ29uc3RhbnRzKQogICAgICwgbV9zb3VyY2VQcm92aWRlcihzb3VyY2VQcm92aWRlcikKIHsK
IH0KIAotUHJvZ3JhbU5vZGUqIFByb2dyYW1Ob2RlOjpjcmVhdGUoSlNHbG9iYWxEYXRhKiBnbG9i
YWxEYXRhLCBTb3VyY2VFbGVtZW50cyogY2hpbGRyZW4sIFZhclN0YWNrKiB2YXJTdGFjaywgRnVu
Y3Rpb25TdGFjayogZnVuY1N0YWNrLCBTb3VyY2VQcm92aWRlciogc291cmNlUHJvdmlkZXIsIGJv
b2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlKQorUHJvZ3JhbU5vZGUqIFByb2dyYW1Ob2Rl
OjpjcmVhdGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBTb3VyY2VFbGVtZW50cyogY2hpbGRy
ZW4sIFZhclN0YWNrKiB2YXJTdGFjaywgRnVuY3Rpb25TdGFjayogZnVuY1N0YWNrLCBTb3VyY2VQ
cm92aWRlciogc291cmNlUHJvdmlkZXIsIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJl
LCBpbnQgbnVtQ29uc3RhbnRzKQogewotICAgIHJldHVybiBuZXcgUHJvZ3JhbU5vZGUoZ2xvYmFs
RGF0YSwgY2hpbGRyZW4sIHZhclN0YWNrLCBmdW5jU3RhY2ssIHNvdXJjZVByb3ZpZGVyLCB1c2Vz
RXZhbCwgbmVlZHNDbG9zdXJlKTsKKyAgICByZXR1cm4gbmV3IFByb2dyYW1Ob2RlKGdsb2JhbERh
dGEsIGNoaWxkcmVuLCB2YXJTdGFjaywgZnVuY1N0YWNrLCBzb3VyY2VQcm92aWRlciwgdXNlc0V2
YWwsIG5lZWRzQ2xvc3VyZSwgbnVtQ29uc3RhbnRzKTsKIH0KIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tIEV2YWxOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LUV2YWxOb2RlOjpFdmFsTm9kZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFNvdXJjZUVsZW1l
bnRzKiBjaGlsZHJlbiwgVmFyU3RhY2sqIHZhclN0YWNrLCBGdW5jdGlvblN0YWNrKiBmdW5jU3Rh
Y2ssIFNvdXJjZVByb3ZpZGVyKiBzb3VyY2VQcm92aWRlciwgYm9vbCB1c2VzRXZhbCwgYm9vbCBu
ZWVkc0Nsb3N1cmUpCi0gICAgOiBTY29wZU5vZGUoZ2xvYmFsRGF0YSwgY2hpbGRyZW4sIHZhclN0
YWNrLCBmdW5jU3RhY2ssIHVzZXNFdmFsLCBuZWVkc0Nsb3N1cmUpCitFdmFsTm9kZTo6RXZhbE5v
ZGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBTb3VyY2VFbGVtZW50cyogY2hpbGRyZW4sIFZh
clN0YWNrKiB2YXJTdGFjaywgRnVuY3Rpb25TdGFjayogZnVuY1N0YWNrLCBTb3VyY2VQcm92aWRl
ciogc291cmNlUHJvdmlkZXIsIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlLCBpbnQg
bnVtQ29uc3RhbnRzKQorICAgIDogU2NvcGVOb2RlKGdsb2JhbERhdGEsIGNoaWxkcmVuLCB2YXJT
dGFjaywgZnVuY1N0YWNrLCB1c2VzRXZhbCwgbmVlZHNDbG9zdXJlLCBudW1Db25zdGFudHMpCiAg
ICAgLCBtX3NvdXJjZVByb3ZpZGVyKHNvdXJjZVByb3ZpZGVyKQogewogfQpAQCAtMTcwMiwxNSAr
MTcwMywxNSBAQCB2b2lkIEV2YWxOb2RlOjpnZW5lcmF0ZUNvZGUoU2NvcGVDaGFpbk5vCiAgICAg
Z2VuZXJhdG9yLmdlbmVyYXRlKCk7CiB9CiAKLUV2YWxOb2RlKiBFdmFsTm9kZTo6Y3JlYXRlKEpT
R2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgU291cmNlRWxlbWVudHMqIGNoaWxkcmVuLCBWYXJTdGFj
ayogdmFyU3RhY2ssIEZ1bmN0aW9uU3RhY2sqIGZ1bmNTdGFjaywgU291cmNlUHJvdmlkZXIqIHNv
dXJjZVByb3ZpZGVyLCBib29sIHVzZXNFdmFsLCBib29sIG5lZWRzQ2xvc3VyZSkKK0V2YWxOb2Rl
KiBFdmFsTm9kZTo6Y3JlYXRlKEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgU291cmNlRWxlbWVu
dHMqIGNoaWxkcmVuLCBWYXJTdGFjayogdmFyU3RhY2ssIEZ1bmN0aW9uU3RhY2sqIGZ1bmNTdGFj
aywgU291cmNlUHJvdmlkZXIqIHNvdXJjZVByb3ZpZGVyLCBib29sIHVzZXNFdmFsLCBib29sIG5l
ZWRzQ2xvc3VyZSwgaW50IG51bUNvbnN0YW50cykKIHsKLSAgICByZXR1cm4gbmV3IEV2YWxOb2Rl
KGdsb2JhbERhdGEsIGNoaWxkcmVuLCB2YXJTdGFjaywgZnVuY1N0YWNrLCBzb3VyY2VQcm92aWRl
ciwgdXNlc0V2YWwsIG5lZWRzQ2xvc3VyZSk7CisgICAgcmV0dXJuIG5ldyBFdmFsTm9kZShnbG9i
YWxEYXRhLCBjaGlsZHJlbiwgdmFyU3RhY2ssIGZ1bmNTdGFjaywgc291cmNlUHJvdmlkZXIsIHVz
ZXNFdmFsLCBuZWVkc0Nsb3N1cmUsIG51bUNvbnN0YW50cyk7CiB9CiAKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbkJvZHlOb2RlIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKLUZ1bmN0aW9uQm9keU5vZGU6OkZ1bmN0aW9uQm9keU5vZGUoSlNHbG9iYWxE
YXRhKiBnbG9iYWxEYXRhLCBTb3VyY2VFbGVtZW50cyogY2hpbGRyZW4sIFZhclN0YWNrKiB2YXJT
dGFjaywgRnVuY3Rpb25TdGFjayogZnVuY1N0YWNrLCBib29sIHVzZXNFdmFsLCBib29sIG5lZWRz
Q2xvc3VyZSkKLSAgICA6IFNjb3BlTm9kZShnbG9iYWxEYXRhLCBjaGlsZHJlbiwgdmFyU3RhY2ss
IGZ1bmNTdGFjaywgdXNlc0V2YWwsIG5lZWRzQ2xvc3VyZSkKK0Z1bmN0aW9uQm9keU5vZGU6OkZ1
bmN0aW9uQm9keU5vZGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBTb3VyY2VFbGVtZW50cyog
Y2hpbGRyZW4sIFZhclN0YWNrKiB2YXJTdGFjaywgRnVuY3Rpb25TdGFjayogZnVuY1N0YWNrLCBi
b29sIHVzZXNFdmFsLCBib29sIG5lZWRzQ2xvc3VyZSwgaW50IG51bUNvbnN0YW50cykKKyAgICA6
IFNjb3BlTm9kZShnbG9iYWxEYXRhLCBjaGlsZHJlbiwgdmFyU3RhY2ssIGZ1bmNTdGFjaywgdXNl
c0V2YWwsIG5lZWRzQ2xvc3VyZSwgbnVtQ29uc3RhbnRzKQogewogfQogCkBAIC0xNzIwLDE0ICsx
NzIxLDE0IEBAIHZvaWQgRnVuY3Rpb25Cb2R5Tm9kZTo6bWFyaygpCiAgICAgICAgIG1fY29kZS0+
bWFyaygpOwogfQogCi1GdW5jdGlvbkJvZHlOb2RlKiBGdW5jdGlvbkJvZHlOb2RlOjpjcmVhdGUo
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBTb3VyY2VFbGVtZW50cyogY2hpbGRyZW4sIFZhclN0
YWNrKiB2YXJTdGFjaywgRnVuY3Rpb25TdGFjayogZnVuY1N0YWNrLCBib29sIHVzZXNFdmFsLCBi
b29sIG5lZWRzQ2xvc3VyZSkKK0Z1bmN0aW9uQm9keU5vZGUqIEZ1bmN0aW9uQm9keU5vZGU6OmNy
ZWF0ZShKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFNvdXJjZUVsZW1lbnRzKiBjaGlsZHJlbiwg
VmFyU3RhY2sqIHZhclN0YWNrLCBGdW5jdGlvblN0YWNrKiBmdW5jU3RhY2ssIGJvb2wgdXNlc0V2
YWwsIGJvb2wgbmVlZHNDbG9zdXJlLCBpbnQgbnVtQ29uc3RhbnRzKQogewotICAgIHJldHVybiBu
ZXcgRnVuY3Rpb25Cb2R5Tm9kZShnbG9iYWxEYXRhLCBjaGlsZHJlbiwgdmFyU3RhY2ssIGZ1bmNT
dGFjaywgdXNlc0V2YWwsIG5lZWRzQ2xvc3VyZSk7CisgICAgcmV0dXJuIG5ldyBGdW5jdGlvbkJv
ZHlOb2RlKGdsb2JhbERhdGEsIGNoaWxkcmVuLCB2YXJTdGFjaywgZnVuY1N0YWNrLCB1c2VzRXZh
bCwgbmVlZHNDbG9zdXJlLCBudW1Db25zdGFudHMpOwogfQogCi1GdW5jdGlvbkJvZHlOb2RlKiBG
dW5jdGlvbkJvZHlOb2RlOjpjcmVhdGUoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBTb3VyY2VF
bGVtZW50cyogY2hpbGRyZW4sIFZhclN0YWNrKiB2YXJTdGFjaywgRnVuY3Rpb25TdGFjayogZnVu
Y1N0YWNrLCBTb3VyY2VQcm92aWRlciosIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJl
KQorRnVuY3Rpb25Cb2R5Tm9kZSogRnVuY3Rpb25Cb2R5Tm9kZTo6Y3JlYXRlKEpTR2xvYmFsRGF0
YSogZ2xvYmFsRGF0YSwgU291cmNlRWxlbWVudHMqIGNoaWxkcmVuLCBWYXJTdGFjayogdmFyU3Rh
Y2ssIEZ1bmN0aW9uU3RhY2sqIGZ1bmNTdGFjaywgU291cmNlUHJvdmlkZXIqLCBib29sIHVzZXNF
dmFsLCBib29sIG5lZWRzQ2xvc3VyZSwgaW50IG51bUNvbnN0YW50cykKIHsKLSAgICByZXR1cm4g
bmV3IEZ1bmN0aW9uQm9keU5vZGUoZ2xvYmFsRGF0YSwgY2hpbGRyZW4sIHZhclN0YWNrLCBmdW5j
U3RhY2ssIHVzZXNFdmFsLCBuZWVkc0Nsb3N1cmUpOworICAgIHJldHVybiBuZXcgRnVuY3Rpb25C
b2R5Tm9kZShnbG9iYWxEYXRhLCBjaGlsZHJlbiwgdmFyU3RhY2ssIGZ1bmNTdGFjaywgdXNlc0V2
YWwsIG5lZWRzQ2xvc3VyZSwgbnVtQ29uc3RhbnRzKTsKIH0KIAogdm9pZCBGdW5jdGlvbkJvZHlO
b2RlOjpnZW5lcmF0ZUNvZGUoU2NvcGVDaGFpbk5vZGUqIHNjKQpAQCAtMTc0Nyw3ICsxNzQ4LDcg
QEAgUmVnaXN0ZXJJRCogRnVuY3Rpb25Cb2R5Tm9kZTo6ZW1pdENvZGUoQwogICAgIGdlbmVyYXRv
ci5lbWl0RGVidWdIb29rKERpZEVudGVyQ2FsbEZyYW1lLCBmaXJzdExpbmUoKSwgbGFzdExpbmUo
KSk7CiAgICAgc3RhdGVtZW50TGlzdEVtaXRDb2RlKG1fY2hpbGRyZW4sIGdlbmVyYXRvcik7CiAg
ICAgaWYgKCFtX2NoaWxkcmVuLnNpemUoKSB8fCAhbV9jaGlsZHJlbi5sYXN0KCktPmlzUmV0dXJu
Tm9kZSgpKSB7Ci0gICAgICAgIFJlZ2lzdGVySUQqIHIwID0gZ2VuZXJhdG9yLmVtaXRMb2FkKGdl
bmVyYXRvci5uZXdUZW1wb3JhcnkoKSwganNVbmRlZmluZWQoKSk7CisgICAgICAgIFJlZ2lzdGVy
SUQqIHIwID0gZ2VuZXJhdG9yLmVtaXRMb2FkKDAsIGpzVW5kZWZpbmVkKCkpOwogICAgICAgICBn
ZW5lcmF0b3IuZW1pdERlYnVnSG9vayhXaWxsTGVhdmVDYWxsRnJhbWUsIGZpcnN0TGluZSgpLCBs
YXN0TGluZSgpKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRSZXR1cm4ocjApOwogICAgIH0KSW5k
ZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL2tqcy9ub2Rlcy5oCShyZXZpc2lvbiAzNTU4MCkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9u
b2Rlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTQ4LDcgKzIxNDgsNyBAQCBuYW1lc3BhY2UgS0pT
IHsKIAogICAgIGNsYXNzIFNjb3BlTm9kZSA6IHB1YmxpYyBCbG9ja05vZGUgewogICAgIHB1Ymxp
YzoKLSAgICAgICAgU2NvcGVOb2RlKEpTR2xvYmFsRGF0YSosIFNvdXJjZUVsZW1lbnRzKiwgVmFy
U3RhY2sqLCBGdW5jdGlvblN0YWNrKiwgYm9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUp
IEtKU19GQVNUX0NBTEw7CisgICAgICAgIFNjb3BlTm9kZShKU0dsb2JhbERhdGEqLCBTb3VyY2VF
bGVtZW50cyosIFZhclN0YWNrKiwgRnVuY3Rpb25TdGFjayosIGJvb2wgdXNlc0V2YWwsIGJvb2wg
bmVlZHNDbG9zdXJlLCBpbnQgbnVtQ29uc3RhbnRzKSBLSlNfRkFTVF9DQUxMOwogCiAgICAgICAg
IGludCBzb3VyY2VJZCgpIGNvbnN0IEtKU19GQVNUX0NBTEwgeyByZXR1cm4gbV9zb3VyY2VJZDsg
fQogICAgICAgICBjb25zdCBVU3RyaW5nJiBzb3VyY2VVUkwoKSBjb25zdCBLSlNfRkFTVF9DQUxM
IHsgcmV0dXJuIG1fc291cmNlVVJMOyB9CkBAIC0yMTYwLDYgKzIxNjAsOCBAQCBuYW1lc3BhY2Ug
S0pTIHsKICAgICAgICAgVmFyU3RhY2smIHZhclN0YWNrKCkgeyByZXR1cm4gbV92YXJTdGFjazsg
fQogICAgICAgICBGdW5jdGlvblN0YWNrJiBmdW5jdGlvblN0YWNrKCkgeyByZXR1cm4gbV9mdW5j
dGlvblN0YWNrOyB9CiAKKyAgICAgICAgaW50IG51bUNvbnN0YW50cygpIHsgcmV0dXJuIG1fbnVt
Q29uc3RhbnRzOyB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFZhclN0YWNrIG1fdmFyU3Rh
Y2s7CiAgICAgICAgIEZ1bmN0aW9uU3RhY2sgbV9mdW5jdGlvblN0YWNrOwpAQCAtMjE2OSwxMSAr
MjE3MSwxMiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgaW50IG1fc291cmNlSWQ7CiAgICAg
ICAgIGJvb2wgbV91c2VzRXZhbDsKICAgICAgICAgYm9vbCBtX25lZWRzQ2xvc3VyZTsKKyAgICAg
ICAgaW50IG1fbnVtQ29uc3RhbnRzOwogICAgIH07CiAKICAgICBjbGFzcyBQcm9ncmFtTm9kZSA6
IHB1YmxpYyBTY29wZU5vZGUgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFByb2dyYW1O
b2RlKiBjcmVhdGUoSlNHbG9iYWxEYXRhKiwgU291cmNlRWxlbWVudHMqLCBWYXJTdGFjayosIEZ1
bmN0aW9uU3RhY2sqLCBTb3VyY2VQcm92aWRlciosIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHND
bG9zdXJlKSBLSlNfRkFTVF9DQUxMOworICAgICAgICBzdGF0aWMgUHJvZ3JhbU5vZGUqIGNyZWF0
ZShKU0dsb2JhbERhdGEqLCBTb3VyY2VFbGVtZW50cyosIFZhclN0YWNrKiwgRnVuY3Rpb25TdGFj
ayosIFNvdXJjZVByb3ZpZGVyKiwgYm9vbCB1c2VzRXZhbCwgYm9vbCBuZWVkc0Nsb3N1cmUsIGlu
dCBudW1Db25zdGFudHMpIEtKU19GQVNUX0NBTEw7CiAKICAgICAgICAgUHJvZ3JhbUNvZGVCbG9j
ayYgYnl0ZUNvZGUoU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pIEtKU19GQVNUX0NBTEwKICAg
ICAgICAgewpAQCAtMjE4Myw3ICsyMTg2LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgICAgIH0K
IAogICAgIHByaXZhdGU6Ci0gICAgICAgIFByb2dyYW1Ob2RlKEpTR2xvYmFsRGF0YSosIFNvdXJj
ZUVsZW1lbnRzKiwgVmFyU3RhY2sqLCBGdW5jdGlvblN0YWNrKiwgU291cmNlUHJvdmlkZXIqLCBi
b29sIHVzZXNFdmFsLCBib29sIG5lZWRzQ2xvc3VyZSkgS0pTX0ZBU1RfQ0FMTDsKKyAgICAgICAg
UHJvZ3JhbU5vZGUoSlNHbG9iYWxEYXRhKiwgU291cmNlRWxlbWVudHMqLCBWYXJTdGFjayosIEZ1
bmN0aW9uU3RhY2sqLCBTb3VyY2VQcm92aWRlciosIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHND
bG9zdXJlLCBpbnQgbnVtQ29uc3RhbnRzKSBLSlNfRkFTVF9DQUxMOwogCiAgICAgICAgIHZvaWQg
Z2VuZXJhdGVDb2RlKFNjb3BlQ2hhaW5Ob2RlKikgS0pTX0ZBU1RfQ0FMTDsKICAgICAgICAgdmly
dHVhbCBSZWdpc3RlcklEKiBlbWl0Q29kZShDb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAw
KSBLSlNfRkFTVF9DQUxMOwpAQCAtMjE5OCw3ICsyMjAxLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAK
ICAgICBjbGFzcyBFdmFsTm9kZSA6IHB1YmxpYyBTY29wZU5vZGUgewogICAgIHB1YmxpYzoKLSAg
ICAgICAgc3RhdGljIEV2YWxOb2RlKiBjcmVhdGUoSlNHbG9iYWxEYXRhKiwgU291cmNlRWxlbWVu
dHMqLCBWYXJTdGFjayosIEZ1bmN0aW9uU3RhY2sqLCBTb3VyY2VQcm92aWRlciosIGJvb2wgdXNl
c0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlKSBLSlNfRkFTVF9DQUxMOworICAgICAgICBzdGF0aWMg
RXZhbE5vZGUqIGNyZWF0ZShKU0dsb2JhbERhdGEqLCBTb3VyY2VFbGVtZW50cyosIFZhclN0YWNr
KiwgRnVuY3Rpb25TdGFjayosIFNvdXJjZVByb3ZpZGVyKiwgYm9vbCB1c2VzRXZhbCwgYm9vbCBu
ZWVkc0Nsb3N1cmUsIGludCBudW1Db25zdGFudHMpIEtKU19GQVNUX0NBTEw7CiAKICAgICAgICAg
RXZhbENvZGVCbG9jayYgYnl0ZUNvZGUoU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pIEtKU19G
QVNUX0NBTEwKICAgICAgICAgewpAQCAtMjIwOCw3ICsyMjExLDcgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIEV2YWxOb2RlKEpTR2xvYmFsRGF0
YSosIFNvdXJjZUVsZW1lbnRzKiwgVmFyU3RhY2sqLCBGdW5jdGlvblN0YWNrKiwgU291cmNlUHJv
dmlkZXIqLCBib29sIHVzZXNFdmFsLCBib29sIG5lZWRzQ2xvc3VyZSkgS0pTX0ZBU1RfQ0FMTDsK
KyAgICAgICAgRXZhbE5vZGUoSlNHbG9iYWxEYXRhKiwgU291cmNlRWxlbWVudHMqLCBWYXJTdGFj
ayosIEZ1bmN0aW9uU3RhY2sqLCBTb3VyY2VQcm92aWRlciosIGJvb2wgdXNlc0V2YWwsIGJvb2wg
bmVlZHNDbG9zdXJlLCBpbnQgbnVtQ29uc3RhbnRzKSBLSlNfRkFTVF9DQUxMOwogCiAgICAgICAg
IHZvaWQgZ2VuZXJhdGVDb2RlKFNjb3BlQ2hhaW5Ob2RlKikgS0pTX0ZBU1RfQ0FMTDsKICAgICAg
ICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Q29kZShDb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJ
RCogPSAwKSBLSlNfRkFTVF9DQUxMOwpAQCAtMjIyMCw4ICsyMjIzLDggQEAgbmFtZXNwYWNlIEtK
UyB7CiAKICAgICBjbGFzcyBGdW5jdGlvbkJvZHlOb2RlIDogcHVibGljIFNjb3BlTm9kZSB7CiAg
ICAgcHVibGljOgotICAgICAgICBzdGF0aWMgRnVuY3Rpb25Cb2R5Tm9kZSogY3JlYXRlKEpTR2xv
YmFsRGF0YSosIFNvdXJjZUVsZW1lbnRzKiwgVmFyU3RhY2sqLCBGdW5jdGlvblN0YWNrKiwgU291
cmNlUHJvdmlkZXIqLCBib29sIHVzZXNFdmFsLCBib29sIG5lZWRzQ2xvc3VyZSkgS0pTX0ZBU1Rf
Q0FMTDsKLSAgICAgICAgc3RhdGljIEZ1bmN0aW9uQm9keU5vZGUqIGNyZWF0ZShKU0dsb2JhbERh
dGEqLCBTb3VyY2VFbGVtZW50cyosIFZhclN0YWNrKiwgRnVuY3Rpb25TdGFjayosIGJvb2wgdXNl
c0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlKSBLSlNfRkFTVF9DQUxMOworICAgICAgICBzdGF0aWMg
RnVuY3Rpb25Cb2R5Tm9kZSogY3JlYXRlKEpTR2xvYmFsRGF0YSosIFNvdXJjZUVsZW1lbnRzKiwg
VmFyU3RhY2sqLCBGdW5jdGlvblN0YWNrKiwgU291cmNlUHJvdmlkZXIqLCBib29sIHVzZXNFdmFs
LCBib29sIG5lZWRzQ2xvc3VyZSwgaW50IG51bUNvbnN0YW50cykgS0pTX0ZBU1RfQ0FMTDsKKyAg
ICAgICAgc3RhdGljIEZ1bmN0aW9uQm9keU5vZGUqIGNyZWF0ZShKU0dsb2JhbERhdGEqLCBTb3Vy
Y2VFbGVtZW50cyosIFZhclN0YWNrKiwgRnVuY3Rpb25TdGFjayosIGJvb2wgdXNlc0V2YWwsIGJv
b2wgbmVlZHNDbG9zdXJlLCBpbnQgbnVtQ29uc3RhbnRzKSBLSlNfRkFTVF9DQUxMOwogCiAgICAg
ICAgIFZlY3RvcjxJZGVudGlmaWVyPiYgcGFyYW1ldGVycygpIEtKU19GQVNUX0NBTEwgeyByZXR1
cm4gbV9wYXJhbWV0ZXJzOyB9CiAgICAgICAgIFVTdHJpbmcgcGFyYW1TdHJpbmcoKSBjb25zdCBL
SlNfRkFTVF9DQUxMOwpAQCAtMjI0OSw3ICsyMjUyLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAg
ICAgIHZvaWQgc2V0U291cmNlKGNvbnN0IFNvdXJjZVJhbmdlJiBzb3VyY2UpIHsgbV9zb3VyY2Ug
PSBzb3VyY2U7IH0gCiAgICAgICAgIFVTdHJpbmcgdG9Tb3VyY2VTdHJpbmcoKSBjb25zdCBLSlNf
RkFTVF9DQUxMIHsgcmV0dXJuIFVTdHJpbmcoInsiKSArIG1fc291cmNlLnRvU3RyaW5nKCkgKyBV
U3RyaW5nKCJ9Iik7IH0KICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIEZ1bmN0aW9uQm9keU5vZGUo
SlNHbG9iYWxEYXRhKiwgU291cmNlRWxlbWVudHMqLCBWYXJTdGFjayosIEZ1bmN0aW9uU3RhY2sq
LCBib29sIHVzZXNFdmFsLCBib29sIG5lZWRzQ2xvc3VyZSkgS0pTX0ZBU1RfQ0FMTDsKKyAgICAg
ICAgRnVuY3Rpb25Cb2R5Tm9kZShKU0dsb2JhbERhdGEqLCBTb3VyY2VFbGVtZW50cyosIFZhclN0
YWNrKiwgRnVuY3Rpb25TdGFjayosIGJvb2wgdXNlc0V2YWwsIGJvb2wgbmVlZHNDbG9zdXJlLCBp
bnQgbnVtQ29uc3RhbnRzKSBLSlNfRkFTVF9DQUxMOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAg
dm9pZCBnZW5lcmF0ZUNvZGUoU2NvcGVDaGFpbk5vZGUqKSBLSlNfRkFTVF9DQUxMOwpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMzU1ODUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxOSBAQAorMjAwOC0wOC0wNSAgQ2FtZXJvbiBad2FyaWNoICA8Y3d6d2Fy
aWNoQHV3YXRlcmxvby5jYT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgdGVzdHMgZm9yIGJ1ZyAyMDI4NjogTG9hZCBjb25zdGFudHMgYWxsIGF0
IG9uY2UgaW5zdGVhZCBvZiB1c2luZyBvcF9sb2FkCisgICAgICAgIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyODY+CisKKyAgICAgICAgQWRkIGEgdGVzdCBmb3Ig
dGhlIGVkZ2UgY2FzZXMgb2YgdGhlIG5ldyBjb25zdGFudCBjb3VudGluZyBpbiB0aGUKKyAgICAg
ICAgcGFyc2VyLCBhbmQgY2hhbmdlIHRoZSBsaW1pdCBpbiB0aGUgZGVlcCByZWN1cnNpb24gdGVz
dCB0byBhY2NvdW50IGZvcgorICAgICAgICB0aGUgc2xpZ2h0bHkgbGFyZ2VyIHN0YWNrIGZyYW1l
cy4KKworICAgICAgICAqIGZhc3QvanMvY29uc3RhbnQtY291bnQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2pzL2NvbnN0YW50LWNvdW50Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvanMvZGVlcC1yZWN1cnNpb24tdGVzdC5odG1sOgorICAgICAgICAqIGZhc3QvanMv
cmVzb3VyY2VzL2NvbnN0YW50LWNvdW50LmpzOiBBZGRlZC4KKwogMjAwOC0wOC0wNSAgQ2FtZXJv
biBad2FyaWNoICA8Y3d6d2FyaWNoQHV3YXRlcmxvby5jYT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvY29uc3RhbnQtY291bnQtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvY29uc3RhbnQtY291bnQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9jb25zdGFu
dC1jb3VudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMg
dGVzdCBjaGVja3MgZXhjZXB0aW9uYWwgY2FzZXMgZm9yIGNvbnN0YW50IGNvdW50aW5nIGluIHRo
ZSBwYXJzZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGEgaXMgdW5k
ZWZpbmVkCitQQVNTIGYoKSBpcyB1bmRlZmluZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2NvbnN0
YW50LWNvdW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9jb25zdGFu
dC1jb3VudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9jb25zdGFu
dC1jb3VudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NvbnN0YW50LWNvdW50LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGVlcC1yZWN1cnNpb24tdGVzdC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZGVlcC1yZWN1cnNpb24tdGVz
dC5odG1sCShyZXZpc2lvbiAzNTU4MCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZGVlcC1yZWN1
cnNpb24tdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw3ICsxNiw3IEBACiAgICAgfQog
CiAgICAgdHJ5IHsKLSAgICAgICAgc2ltcGxlUmVjdXJzaW9uKDIwMDAwKTsKKyAgICAgICAgc2lt
cGxlUmVjdXJzaW9uKDE2MDAwKTsKICAgICB9IGNhdGNoIChleCkgewogICAgICAgICBkZWJ1Zygi
RkFJTDogIiArIGV4KTsKICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNl
cy9jb25zdGFudC1jb3VudC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Jl
c291cmNlcy9jb25zdGFudC1jb3VudC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvanMvcmVzb3VyY2VzL2NvbnN0YW50LWNvdW50LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI0IEBACitkZXNjcmlwdGlvbigKKyJUaGlzIHRlc3QgY2hlY2tzIGV4Y2VwdGlvbmFsIGNhc2Vz
IGZvciBjb25zdGFudCBjb3VudGluZyBpbiB0aGUgcGFyc2VyLiIKKyk7CisKK2NvbnN0IGE7Citj
b25zdCBiOworLS1hOworLS1iOworCitzaG91bGRCZSgiYSIsICJ1bmRlZmluZWQiKTsKKworZnVu
Y3Rpb24gZigpCit7CisgICAgY29uc3QgYTsKKyAgICBjb25zdCBiOworICAgIC0tYTsKKyAgICAt
LWI7CisKKyAgICByZXR1cm4gYTsKK30KKworc2hvdWxkQmUoImYoKSIsICJ1bmRlZmluZWQiKTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="10041"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>