<?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>230631</bug_id>
          
          <creation_ts>2021-09-22 10:00:25 -0700</creation_ts>
          <short_desc>Add checkScriptSyntax function to jsc host environment</short_desc>
          <delta_ts>2021-09-24 15:14:19 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rick Waldron">rwaldron</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1796117</commentid>
    <comment_count>0</comment_count>
    <who name="Rick Waldron">rwaldron</who>
    <bug_when>2021-09-22 10:00:25 -0700</bug_when>
    <thetext>In jsc.cpp, there is currently checkSyntax() and checkModuleSyntax(). The former expects and filename, while the latter expects a string of javascript code. This would introduce a function called checkScriptSyntax() that performed the same operation as checkModuleSyntax(), without the module specific semantics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796907</commentid>
    <comment_count>1</comment_count>
      <attachid>439153</attachid>
    <who name="Rick Waldron">rwaldron</who>
    <bug_when>2021-09-24 09:06:55 -0700</bug_when>
    <thetext>Created attachment 439153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796973</commentid>
    <comment_count>2</comment_count>
      <attachid>439153</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-24 11:29:40 -0700</bug_when>
    <thetext>Comment on attachment 439153
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796974</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-24 11:30:39 -0700</bug_when>
    <thetext>? found in /Volumes/Data/worker/Commit-Queue/build/JSTests/ChangeLog does not appear to be a valid reviewer according to contributors.json.
/Volumes/Data/worker/Commit-Queue/build/JSTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796975</commentid>
    <comment_count>4</comment_count>
      <attachid>439153</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-24 11:34:08 -0700</bug_when>
    <thetext>Comment on attachment 439153
Patch

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

Setting r- since ChangeLog file is not correct.

&gt; Source/JavaScriptCore/ChangeLog:6
&gt; +        Reviewed by ?.

Default line is necessary for commit-queue. https://webkit.org/contributing-code/#changelog-files
You can check the instructions of contribution in https://webkit.org/contributing-code/ :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796978</commentid>
    <comment_count>5</comment_count>
    <who name="Rick Waldron">rwaldron</who>
    <bug_when>2021-09-24 11:39:47 -0700</bug_when>
    <thetext>I didn&apos;t know if I should put a name before I got the actual review ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796979</commentid>
    <comment_count>6</comment_count>
      <attachid>439176</attachid>
    <who name="Rick Waldron">rwaldron</who>
    <bug_when>2021-09-24 11:40:52 -0700</bug_when>
    <thetext>Created attachment 439176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796984</commentid>
    <comment_count>7</comment_count>
      <attachid>439178</attachid>
    <who name="Rick Waldron">rwaldron</who>
    <bug_when>2021-09-24 11:45:56 -0700</bug_when>
    <thetext>Created attachment 439178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797049</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-24 15:13:11 -0700</bug_when>
    <thetext>Committed r283062 (242120@main): &lt;https://commits.webkit.org/242120@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439178.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1797050</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-24 15:14:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/83513547&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439153</attachid>
            <date>2021-09-24 09:06:55 -0700</date>
            <delta_ts>2021-09-24 11:40:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230631-20210924120654.patch</filename>
            <type>text/plain</type>
            <size>24463</size>
            <attacher name="Rick Waldron">rwaldron</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NzZjYjg0MTUyNWVjZGU0YTQ5NmRmZGFjM2RkY2NlMzliNjNiODEwLi4xYWYxMmYxMTczZTdlMzkx
MGY5MTUxZTQ5MTViNDA1MmQ3MTY5NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wOS0yNCBSaWNrIFdhbGRyb24gPHdhbGRyb24ucmlja0BnbWFpbC5j
b20+CisKKyAgICAgICAgW0pTQ10gQWRkIGNoZWNrU2NyaXB0U3ludGF4IGZ1bmN0aW9uIHRvIGpz
YyBob3N0IGVudmlyb25tZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzA2MzEKKworICAgICAgICBSZXZpZXdlZCBieSA/LgorCisgICAgICAgIElu
dHJvZHVjZSBhIGZ1bmN0aW9uIGNhbGxlZCBjaGVja1NjcmlwdFN5bnRheCgpIHRoYXQgcGVyZm9y
bXMgdGhlIHNhbWUKKyAgICAgICAgb3BlcmF0aW9uIGFzIGNoZWNrTW9kdWxlU3ludGF4KCksIHdp
dGhvdXQgdGhlIG1vZHVsZSBzcGVjaWZpYyBzZW1hbnRpY3MuCisgICAgICAgIFVwZGF0ZXMgdGVz
dHMgdGhhdCB3ZXJlIHVzaW5nIGV2YWwoKSB0byB2ZXJpZnkgc3ludGF4LgorCisgICAgICAgICog
anNjLmNwcDoKKyAgICAgICAgKGZ1bmN0aW9uQ2hlY2tTY3JpcHRTeW50YXgpCisKIDIwMjEtMDkt
MjMgIFBoaWxpcCBDaGltZW50byAgPHBjaGltZW50b0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFZh
cmlvdXMgdHdlYWtzIGluIHByZXBhcmF0aW9uIGZvciBUZW1wb3JhbC5JbnN0YW50CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qc2MuY3BwCmluZGV4IDE3MDk2ZGE3NmZlYzFmNmQwYWRiNmJlOThmNzdhZTAzOWEyNTJkNTku
LmNjMjI2NGZjYTEwODZhMmFlNGM2NzA2MjcyNDY2MDk0NmRhYTc5M2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCkBAIC0zMjgsNiArMzI4LDcgQEAgc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudCk7CiBzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZpbmFsaXphdGlvblJlZ2lzdHJ5RGVhZENvdW50
KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uSXMzMkJpdFBsYXRm
b3JtKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uQ2hlY2tNb2R1
bGVTeW50YXgpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DaGVj
a1NjcmlwdFN5bnRheCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
blBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3QpOwogc3RhdGljIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFwc2hvdEZvckdDRGVi
dWdnaW5nKTsKQEAgLTU5OCw2ICs1OTksNyBAQCBwcml2YXRlOgogICAgICAgICBhZGRGdW5jdGlv
bih2bSwgImlzMzJCaXRQbGF0Zm9ybSIsIGZ1bmN0aW9uSXMzMkJpdFBsYXRmb3JtLCAwKTsKIAog
ICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNoZWNrTW9kdWxlU3ludGF4IiwgZnVuY3Rpb25DaGVj
a01vZHVsZVN5bnRheCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiY2hlY2tTY3JpcHRT
eW50YXgiLCBmdW5jdGlvbkNoZWNrU2NyaXB0U3ludGF4LCAxKTsKIAogICAgICAgICBhZGRGdW5j
dGlvbih2bSwgInBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyIiwgZnVuY3Rpb25QbGF0
Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlciwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAiZ2VuZXJhdGVIZWFwU25hcHNob3QiLCBmdW5jdGlvbkdlbmVyYXRlSGVhcFNuYXBzaG90LCAw
KTsKQEAgLTI2MTcsNiArMjYxOSwyOCBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rp
b25DaGVja01vZHVsZVN5bnRheCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RvcFdhdGNoLmdldEVsYXBzZWRNUygpKSk7
CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNoZWNrU2NyaXB0U3ludGF4
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQor
eworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBTdHJpbmcgc291cmNlID0gY2FsbEZyYW1lLT5h
cmd1bWVudCgwKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworCisgICAgU3RvcFdhdGNoIHN0b3BXYXRj
aDsKKyAgICBzdG9wV2F0Y2guc3RhcnQoKTsKKworICAgIFBhcnNlckVycm9yIGVycm9yOworCisg
ICAgYm9vbCB2YWxpZFN5bnRheCA9IGNoZWNrU3ludGF4KHZtLCBqc2NTb3VyY2Uoc291cmNlLCB7
IH0pLCBlcnJvcik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFs
dWUoKSk7CisgICAgc3RvcFdhdGNoLnN0b3AoKTsKKworICAgIGlmICghdmFsaWRTeW50YXgpCisg
ICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGpzTm9udHJpdmlhbFN0
cmluZyh2bSwgdG9TdHJpbmcoIlN5bnRheEVycm9yOiAiLCBlcnJvci5tZXNzYWdlKCksICI6Iiwg
ZXJyb3IubGluZSgpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3Rv
cFdhdGNoLmdldEVsYXBzZWRNUygpKSk7Cit9CisKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvblBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyLCAoSlNHbG9iYWxPYmplY3Qq
LCBDYWxsRnJhbWUqKSkKIHsKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklMRVIpCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNmZTQwOTgx
NzljYTBmYzQ2ODQ5M2EyMGVmNGMzMTZjMDJhOTE5MzkuLmEyNDhiYmY5ZmZkY2YwNDBiYzExN2E2
YzkwNGU0NTEwZjFlMTliMWEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDktMjQgUmljayBXYWxkcm9u
IDx3YWxkcm9uLnJpY2tAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBjaGVja1Njcmlw
dFN5bnRheCBmdW5jdGlvbiB0byBqc2MgaG9zdCBlbnZpcm9ubWVudAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjMxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgPy4KKworICAgICAgICBVcGRhdGVzIHRlc3RzIHRoYXQgd2VyZSB1c2luZyBldmFsKCkg
dG8gdmVyaWZ5IHN5bnRheC4KKworICAgICAgICAqIHN0cmVzcy9hcnJvdy1mdW5jdGlvbi1zeW50
YXguanM6IFJlcGxhY2UgY3VzdG9tIGNoZWNrU3ludGF4IHdpdGggY2hlY2tTY3JpcHRTeW50YXgK
KyAgICAgICAgKiBzdHJlc3MvYXN5bmMtaXRlcmF0aW9uLWZvci1hd2FpdC1vZi1zeW50YXguanM6
IFJlcGxhY2UgY3VzdG9tIGNoZWNrU3ludGF4IHdpdGggY2hlY2tTY3JpcHRTeW50YXgKKyAgICAg
ICAgKiBzdHJlc3MvYXN5bmMtaXRlcmF0aW9uLXN5bnRheC5qczogUmVwbGFjZSBjdXN0b20gY2hl
Y2tTeW50YXggd2l0aCBjaGVja1NjcmlwdFN5bnRheAorCiAyMDIxLTA5LTIzICBSb3NzIEtpcnNs
aW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbSlNDXSBIYW5kbGUgc3lu
dGFjdGljIHByb2R1Y3Rpb24gZm9yIGAjeCBpbiBleHByYCBjb3JyZWN0bHkKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2Fycm93LWZ1bmN0aW9uLXN5bnRheC5qcyBiL0pTVGVzdHMvc3RyZXNz
L2Fycm93LWZ1bmN0aW9uLXN5bnRheC5qcwppbmRleCBkMWI3Mzg4M2Q3MDM0YzE4MGMxM2RkNzhk
MmQyZWY5NGJkMWZmN2ExLi5mNDViZTc1YjA1MGY2MDk5NzM3ZmMxN2ZlNDFhODg5YTUxYzA0ZmE2
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9hcnJvdy1mdW5jdGlvbi1zeW50YXguanMKKysr
IGIvSlNUZXN0cy9zdHJlc3MvYXJyb3ctZnVuY3Rpb24tc3ludGF4LmpzCkBAIC0xLDI3ICsxLDYg
QEAKLWZ1bmN0aW9uIGNoZWNrU3ludGF4KHNyYykgewotICAgIHRyeSB7Ci0gICAgICAgIGV2YWwo
c3JjKTsKLSAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2Vv
ZiBTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3ludGF4IEVycm9y
OiAiICsgU3RyaW5nKGVycm9yKSArICJcbiBzY3JpcHQ6IGAiICsgc3JjICsgImAiKTsKLSAgICB9
Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrU3ludGF4RXJyb3Ioc3JjLCBtZXNzYWdlKSB7Ci0gICAgdmFy
IGJFcnJvciA9IGZhbHNlOwotICAgIHRyeSB7Ci0gICAgICAgIGV2YWwoc3JjKTsKLSAgICB9IGNh
dGNoIChlcnJvcikgewotICAgICAgICBiRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVy
cm9yICYmIChTdHJpbmcoZXJyb3IpID09PSBtZXNzYWdlIHx8IHR5cGVvZiBtZXNzYWdlID09PSAn
dW5kZWZpbmVkJyk7Ci0gICAgfQotICAgIGlmICghYkVycm9yKSB7Ci0gICAgICAgIHRocm93IG5l
dyBFcnJvcigiRXhwZWN0ZWQgc3ludGF4IEVycm9yOiAiICsgbWVzc2FnZSArICJcbiBpbiBzY3Jp
cHQ6IGAiICsgc3JjICsgImAiKTsKLSAgICB9Ci19Ci0KLWNoZWNrU3ludGF4KGAoKT0+NDJgKTsK
LWNoZWNrU3ludGF4KGAoKT0+NDIKK2NoZWNrU2NyaXB0U3ludGF4KGAoKT0+NDJgKTsKK2NoZWNr
U2NyaXB0U3ludGF4KGAoKT0+NDIKIGApOwotY2hlY2tTeW50YXgoYCgpPT40Mi8vSGVsbG9gKTsK
LWNoZWNrU3ludGF4KGAoKT0+NDIvL0hlbGxvCitjaGVja1NjcmlwdFN5bnRheChgKCk9PjQyLy9I
ZWxsb2ApOworY2hlY2tTY3JpcHRTeW50YXgoYCgpPT40Mi8vSGVsbG8KIGApOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9zdHJlc3MvYXN5bmMtaXRlcmF0aW9uLWZvci1hd2FpdC1vZi1zeW50YXguanMg
Yi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1pdGVyYXRpb24tZm9yLWF3YWl0LW9mLXN5bnRheC5qcwpp
bmRleCBiYTE2MjFjMTFiYTU3ZTAwNWIyNWNlYmFiZGI5MzA1NTQxMDY2MmU0Li5lYTJjOWU2YWE2
ZGY2MzVkZDQzNzE4MjIxNzQ3Yzc3ZWExNDk1ZjE1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVz
cy9hc3luYy1pdGVyYXRpb24tZm9yLWF3YWl0LW9mLXN5bnRheC5qcworKysgYi9KU1Rlc3RzL3N0
cmVzcy9hc3luYy1pdGVyYXRpb24tZm9yLWF3YWl0LW9mLXN5bnRheC5qcwpAQCAtNCwxNiArNCw3
IEBAIHZhciBhc3NlcnQgPSBmdW5jdGlvbiAocmVzdWx0LCBleHBlY3RlZCwgbWVzc2FnZSA9ICIi
KSB7CiAgIH0KIH07CiAKLWZ1bmN0aW9uIGNoZWNrU3ludGF4KHNyYykgewotICAgIHRyeSB7Ci0g
ICAgICAgIGV2YWwoc3JjKTsKLSAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgICBpZiAoZXJy
b3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
U3ludGF4IEVycm9yOiAiICsgU3RyaW5nKGVycm9yKSArICJcbiBzY3JpcHQ6IGAiICsgc3JjICsg
ImAiKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrU3ludGF4RXJyb3Ioc3JjLCBtZXNzYWdl
KSB7CitmdW5jdGlvbiBldmFsRm9yU3ludGF4RXJyb3Ioc3JjLCBtZXNzYWdlKSB7CiAgICAgdmFy
IGJFcnJvciA9IGZhbHNlOwogICAgIHRyeSB7CiAgICAgICAgIGV2YWwoc3JjKTsKQEAgLTI2LDE3
ICsxNywxNyBAQCBmdW5jdGlvbiBjaGVja1N5bnRheEVycm9yKHNyYywgbWVzc2FnZSkgewogfQog
CiAoZnVuY3Rpb24gY2hlY2tTaW1wbGVBc3luY0dlbmVyYXRvclNsb3BweU1vZGUoKSB7Ci0gICAg
Y2hlY2tTeW50YXgoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUxKCl7
IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfScpOwotICAgIGNoZWNrU3ludGF4
KCd2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQoY29u
c3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0nKTsKLSAgICBjaGVja1N5bnRheCgndmFyIGExID0gYXN5
bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGxldCB2YWx1ZSBvZiBm
b28oKSkge30gfScpOwotICAgIGNoZWNrU3ludGF4KCd2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBh
c3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQobGV0IHZhbHVlIG9mIGZvbygpKSB7fSB9Jyk7Cisg
ICAgY2hlY2tTY3JpcHRTeW50YXgoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0
aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfScpOworICAgIGNo
ZWNrU2NyaXB0U3ludGF4KCd2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgp
eyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0nKTsKKyAgICBjaGVja1Njcmlw
dFN5bnRheCgndmFyIGExID0gYXN5bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9y
IGF3YWl0KGxldCB2YWx1ZSBvZiBmb28oKSkge30gfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4
KCd2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQobGV0
IHZhbHVlIG9mIGZvbygpKSB7fSB9Jyk7CiB9KSgpOwogCiAoZnVuY3Rpb24gY2hlY2tTaW1wbGVB
c3luY0dlbmVyYXRvclN0cmljdE1vZGUoKSB7Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3RyaWN0
IjsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0
KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSAgfScpOwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0
cmljdCI7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2Fp
dChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfScpOwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0
cmljdCI7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUxKCl7IGZvciBh
d2FpdChsZXQgdmFsdWUgb2YgZm9vKCkpIHt9IH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBz
dHJpY3QiOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdh
aXQobGV0IHZhbHVlIG9mIGZvbygpKSB7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1
c2Ugc3RyaWN0IjsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsg
Zm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSAgfScpOworICAgIGNoZWNrU2NyaXB0
U3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5h
bWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfScpOworICAgIGNoZWNr
U2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5j
R2VuV2l0aE5hbWUxKCl7IGZvciBhd2FpdChsZXQgdmFsdWUgb2YgZm9vKCkpIHt9IH0nKTsKKyAg
ICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlv
biBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQobGV0IHZhbHVlIG9mIGZvbygpKSB7fSB9Jyk7
CiB9KSgpOwogCiAKQEAgLTc5LDQwICs3MCw0MCBAQCBmdW5jdGlvbiBjaGVja1N5bnRheEVycm9y
KHNyYywgbWVzc2FnZSkgewogCiAgICAgd3JhcHBlcnMuZm9yRWFjaCh3cmFwcGVyID0+IHsKICAg
ICAgICAgZXhwcmVzc2lvbnMuZm9yRWFjaChleHAgPT4gewotICAgICAgICAgICAgY2hlY2tTeW50
YXgod3JhcHBlci5zdGFydCArIGV4cCArIHdyYXBwZXIuZmluaXNoKTsKKyAgICAgICAgICAgIGNo
ZWNrU2NyaXB0U3ludGF4KHdyYXBwZXIuc3RhcnQgKyBleHAgKyB3cmFwcGVyLmZpbmlzaCk7CiAg
ICAgICAgIH0pOwogICAgIH0pCiB9KSgpOwogCiAKIChmdW5jdGlvbiBjaGVja1NpbXBsZUFzeW5j
R2VuZXJhdG9yU3ludGF4RXJyb3JJblNsb3BweU1vZGUoKSB7Ci0gICAgY2hlY2tTeW50YXhFcnJv
cigidmFyIGFzeW5jR2VuRm4gPSBmdW5jdGlvbiAoKSB7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBv
ZiBmb28oKSkge30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoInZhciBhc3luY0dlbkZuID0g
YXN5bmMgZnVuY3Rpb24gKCkgeyB2YXIgYXJyID0gKCkgPT4geyBmb3IgYXdhaXQoY29uc3QgdmFs
dWUgb2YgZm9vKCkpIHt9IH0gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoInZhciBhc3luY0dl
bkZuID0gZnVuY3Rpb24qICgpIHsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSB9
Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlv
biogKCkgeyB2YXIgYXJyID0gKCkgPT4geyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkp
IHt9IH0gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9u
KmFzeW5jR2VuV2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBpbiBmb28oKSkge30g
fScpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5j
V2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBpbiBmb28oKSkge30gfScpOwotICAg
IGNoZWNrU3ludGF4RXJyb3IoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUx
KCl7IGZvciBhd2FpdCAoOzspIHt9IH0nKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCJ2YXIgYTEg
PSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2ID0gNDs7
KSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIGExID0gYXN5bmMgZnVuY3Rpb24g
YXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0IChsZXQgdiBvZiBmKCk7Oykge30gfSIpOwotICAg
IGNoZWNrU3ludGF4RXJyb3IoInZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUx
KCl7IGZvciBhd2FpdCAobGV0IHYgb2YgYm9vOzspIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVy
cm9yKCJ2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQg
KGxldCB2IG9mIGJvbyBvZikge30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoImFzeW5jIGZ1
bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2YgYm9vIGluKSB7fSB9
Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEo
KXsgZm9yIGF3YWl0ICh2IGluIHggKyB4ICkge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJv
cigidmFyIGFzeW5jR2VuRm4gPSBmdW5jdGlvbiAoKSB7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBv
ZiBmb28oKSkge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4g
PSBhc3luYyBmdW5jdGlvbiAoKSB7IHZhciBhcnIgPSAoKSA9PiB7IGZvciBhd2FpdChjb25zdCB2
YWx1ZSBvZiBmb28oKSkge30gfSB9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCJ2YXIgYXN5
bmNHZW5GbiA9IGZ1bmN0aW9uKiAoKSB7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkg
e30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBhc3luYyBm
dW5jdGlvbiogKCkgeyB2YXIgYXJyID0gKCkgPT4geyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2Yg
Zm9vKCkpIHt9IH0gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigndmFyIGExID0gYXN5bmMg
ZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIGluIGZv
bygpKSB7fSB9Jyk7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCd2YXIgYTEgPSBhc3luYyBmdW5j
dGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgaW4gZm9vKCkpIHt9
IH0nKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFz
eW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAoOzspIHt9IH0nKTsKKyAgICBldmFsRm9yU3ludGF4
RXJyb3IoInZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2Fp
dCAobGV0IHYgPSA0OzspIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoInZhciBhMSA9
IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2YgZigp
OzspIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoInZhciBhMSA9IGFzeW5jIGZ1bmN0
aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2YgYm9vOzspIHt9IH0iKTsK
KyAgICBldmFsRm9yU3ludGF4RXJyb3IoInZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0
aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2YgYm9vIG9mKSB7fSB9Iik7CisgICAgZXZhbEZv
clN5bnRheEVycm9yKCJhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQg
KGxldCB2IG9mIGJvbyBpbikge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiYXN5bmMg
ZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0ICh2IGluIHggKyB4ICkge30gfSIp
OwogfSkoKTsKIAogKGZ1bmN0aW9uIGNoZWNrU2ltcGxlQXN5bmNHZW5lcmF0b3JTeW50YXhFcnJv
ckluU3RyaWN0TW9kZSgpIHsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZh
ciBhc3luY0dlbkZuID0gZnVuY3Rpb24gKCkgeyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9v
KCkpIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhc3lu
Y0dlbkZuID0gYXN5bmMgZnVuY3Rpb24gKCkgeyB2YXIgYXJyID0gKCkgPT4geyBmb3IgYXdhaXQo
Y29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1
c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBmdW5jdGlvbiogKCkgeyBmb3IgYXdhaXQoY29u
c3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0
cmljdCc7IHZhciBhc3luY0dlbkZuID0gYXN5bmMgZnVuY3Rpb24qICgpIHsgdmFyIGFyciA9ICgp
ID0+IHsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSB9IH0iKTsKLSAgICBjaGVj
a1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5j
R2VuV2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBpbiBmb28oKSkge30gfSIpOwot
ICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGExID0gYXN5bmMgZnVuY3Rp
b24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIGluIGZvbygpKSB7fSB9
Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBhc3luYyBm
dW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKDs7KSB7fSB9Iik7Ci0gICAgY2hl
Y2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3lu
Y1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2ID0gNDs7KSB7fSB9Iik7Ci0gICAgY2hlY2tT
eW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dp
dGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGYoKTs7KSB7fSB9Iik7Ci0gICAgY2hlY2tT
eW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dp
dGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGJvbzs7KSB7fSB9Iik7Ci0gICAgY2hlY2tT
eW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dp
dGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGJvbyBvZikge30gfSIpOwotICAgIGNoZWNr
U3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEo
KXsgZm9yIGF3YWl0IChsZXQgdiBvZiBib28gaW4pIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVy
cm9yKCIndXNlIHN0cmljdCc7IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBh
d2FpdCAodiBpbiB4ICsgeCApIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ug
c3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBmdW5jdGlvbiAoKSB7IGZvciBhd2FpdChjb25zdCB2
YWx1ZSBvZiBmb28oKSkge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJp
Y3QnOyB2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uICgpIHsgdmFyIGFyciA9ICgpID0+
IHsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSB9IH0iKTsKKyAgICBldmFsRm9y
U3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBmdW5jdGlvbiogKCkg
eyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0iKTsKKyAgICBldmFsRm9yU3lu
dGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiog
KCkgeyB2YXIgYXJyID0gKCkgPT4geyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9
IH0gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBh
c3luYyBmdW5jdGlvbiphc3luY0dlbldpdGhOYW1lMSgpeyBmb3IgYXdhaXQoY29uc3QgdmFsdWUg
aW4gZm9vKCkpIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0Jzsg
dmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0
IHZhbHVlIGluIGZvbygpKSB7fSB9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0
cmljdCc7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2Fp
dCAoOzspIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFy
IGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0IChsZXQgdiA9
IDQ7Oykge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIg
YTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9m
IGYoKTs7KSB7fSB9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZh
ciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYg
b2YgYm9vOzspIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0Jzsg
dmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0IChsZXQg
diBvZiBib28gb2YpIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0
JzsgYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0IChsZXQgdiBvZiBi
b28gaW4pIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgYXN5
bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0ICh2IGluIHggKyB4ICkge30g
fSIpOwogfSkoKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWl0ZXJhdGlvbi1z
eW50YXguanMgYi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1pdGVyYXRpb24tc3ludGF4LmpzCmluZGV4
IDgyNjI3N2UxMzU3NzBhNjYxZDU4MGUwNmM5NjFlZmM2NGI2MmMyMzkuLjYzZTVkNDdkNWU0ZjY0
NjhmNGU4OGViYjViNDQ4OWQ4MmExMzk3ZGYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2Fz
eW5jLWl0ZXJhdGlvbi1zeW50YXguanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXN5bmMtaXRlcmF0
aW9uLXN5bnRheC5qcwpAQCAtNCwxNiArNCw3IEBAIHZhciBhc3NlcnQgPSBmdW5jdGlvbiAocmVz
dWx0LCBleHBlY3RlZCwgbWVzc2FnZSA9ICIiKSB7CiAgIH0KIH07CiAKLWZ1bmN0aW9uIGNoZWNr
U3ludGF4KHNyYykgewotICAgIHRyeSB7Ci0gICAgICAgIGV2YWwoc3JjKTsKLSAgICB9IGNhdGNo
IChlcnJvcikgewotICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikKLSAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3ludGF4IEVycm9yOiAiICsgU3RyaW5nKGVycm9y
KSArICJcbiBzY3JpcHQ6IGAiICsgc3JjICsgImAiKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGNo
ZWNrU3ludGF4RXJyb3Ioc3JjLCBtZXNzYWdlKSB7CitmdW5jdGlvbiBldmFsRm9yU3ludGF4RXJy
b3Ioc3JjLCBtZXNzYWdlKSB7CiAgICAgdmFyIGJFcnJvciA9IGZhbHNlOwogICAgIHRyeSB7CiAg
ICAgICAgIGV2YWwoc3JjKTsKQEAgLTI2LDQ0ICsxNyw0NCBAQCBmdW5jdGlvbiBjaGVja1N5bnRh
eEVycm9yKHNyYywgbWVzc2FnZSkgewogfQogCiAoZnVuY3Rpb24gY2hlY2tTaW1wbGVBc3luY0dl
bmVyYXRvclNsb3BweU1vZGUoKSB7Ci0gICAgY2hlY2tTeW50YXgoJ3ZhciBhMSA9IGFzeW5jIGZ1
bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUxKCl7fScpOwotICAgIGNoZWNrU3ludGF4KCd2YXIgYTIg
PSBhc3luYyBmdW5jdGlvbiAqYXN5bmNHZW5XaXRoTmFtZTIoKXsgeWllbGQgMTE7IH0nKTsKLSAg
ICBjaGVja1N5bnRheCgndmFyIGEzID0gYXN5bmMgZnVuY3Rpb24gKiBhc3luY0dlbldpdGhOYW1l
MigpeyBhd2FpdCBwOyB5aWVsZCAxMTsgfScpOwotICAgIGNoZWNrU3ludGF4KCd2YXIgZDEgPSBh
c3luYyBmdW5jdGlvbiooKXt9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJ3ZhciBkMiA9IGFzeW5jIGZ1
bmN0aW9uKiAoKXsgeWllbGQgMTE7IH0nKTsKLSAgICBjaGVja1N5bnRheCgndmFyIGQzID0gYXN5
bmMgZnVuY3Rpb24gKiAoKXsgYXdhaXQgcDsgeWllbGQgMTE7IH0nKTsKLSAgICBjaGVja1N5bnRh
eCgnYXN5bmMgZnVuY3Rpb24qIHdpdGhOYW1lMSgpeyAgfScpOwotICAgIGNoZWNrU3ludGF4KCdh
c3luYyBmdW5jdGlvbiAqd2l0aE5hbWUyKCl7IHlpZWxkIDExOyB9Jyk7Ci0gICAgY2hlY2tTeW50
YXgoJ2FzeW5jIGZ1bmN0aW9uICogd2l0aE5hbWUzKCl7IGF3YWl0IHA7IHlpZWxkIDExOyB9Jyk7
Ci0gICAgY2hlY2tTeW50YXgoJ2NsYXNzIEEgeyBhc3luYyAqIG1ldGhvZCgpIHsgfSB9Jyk7Ci0g
ICAgY2hlY2tTeW50YXgoJ2NsYXNzIEIgeyBhc3luYyAqIG1ldGhvZCgpIHt5aWVsZCAxMTt9IH0n
KTsKLSAgICBjaGVja1N5bnRheCgnY2xhc3MgQyB7IGFzeW5jICogbWV0aG9kKCkge3lpZWxkIDEx
OyBhd2FpdCBwO30gfScpOwotICAgIGNoZWNrU3ludGF4KCdjbGFzcyBEIHsgYXN5bmMgKiAibWV0
aG9kIigpIHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsKLSAgICBjaGVja1N5bnRheCgnY2xhc3Mg
RiB7IGFzeW5jICogMCgpIHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsKLSAgICBjaGVja1N5bnRh
eCgndmFyIG9iaiA9IHsgYXN5bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7
Ci0gICAgY2hlY2tTeW50YXgoJyh7IGFzeW5jIGZvbygpIHt9IH0pJyk7Ci0gICAgY2hlY2tTeW50
YXgoJyh7IGFzeW5jIDogMSB9KScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCd2YXIgYTEgPSBh
c3luYyBmdW5jdGlvbiphc3luY0dlbldpdGhOYW1lMSgpe30nKTsKKyAgICBjaGVja1NjcmlwdFN5
bnRheCgndmFyIGEyID0gYXN5bmMgZnVuY3Rpb24gKmFzeW5jR2VuV2l0aE5hbWUyKCl7IHlpZWxk
IDExOyB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ3ZhciBhMyA9IGFzeW5jIGZ1bmN0aW9u
ICogYXN5bmNHZW5XaXRoTmFtZTIoKXsgYXdhaXQgcDsgeWllbGQgMTE7IH0nKTsKKyAgICBjaGVj
a1NjcmlwdFN5bnRheCgndmFyIGQxID0gYXN5bmMgZnVuY3Rpb24qKCl7fScpOworICAgIGNoZWNr
U2NyaXB0U3ludGF4KCd2YXIgZDIgPSBhc3luYyBmdW5jdGlvbiogKCl7IHlpZWxkIDExOyB9Jyk7
CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ3ZhciBkMyA9IGFzeW5jIGZ1bmN0aW9uICogKCl7IGF3
YWl0IHA7IHlpZWxkIDExOyB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ2FzeW5jIGZ1bmN0
aW9uKiB3aXRoTmFtZTEoKXsgIH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnYXN5bmMgZnVu
Y3Rpb24gKndpdGhOYW1lMigpeyB5aWVsZCAxMTsgfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4
KCdhc3luYyBmdW5jdGlvbiAqIHdpdGhOYW1lMygpeyBhd2FpdCBwOyB5aWVsZCAxMTsgfScpOwor
ICAgIGNoZWNrU2NyaXB0U3ludGF4KCdjbGFzcyBBIHsgYXN5bmMgKiBtZXRob2QoKSB7IH0gfScp
OworICAgIGNoZWNrU2NyaXB0U3ludGF4KCdjbGFzcyBCIHsgYXN5bmMgKiBtZXRob2QoKSB7eWll
bGQgMTE7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ2NsYXNzIEMgeyBhc3luYyAqIG1l
dGhvZCgpIHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgn
Y2xhc3MgRCB7IGFzeW5jICogIm1ldGhvZCIoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7Cisg
ICAgY2hlY2tTY3JpcHRTeW50YXgoJ2NsYXNzIEYgeyBhc3luYyAqIDAoKSB7eWllbGQgMTE7IGF3
YWl0IHA7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ3ZhciBvYmogPSB7IGFzeW5jICog
bWV0aG9kKCkge3lpZWxkIDExOyBhd2FpdCBwO30gfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4
KCcoeyBhc3luYyBmb28oKSB7fSB9KScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcoeyBhc3lu
YyA6IDEgfSknKTsKIH0pKCk7CiAKIChmdW5jdGlvbiBjaGVja1NpbXBsZUFzeW5jR2VuZXJhdG9y
U3RyaWN0TW9kZSgpIHsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTEgPSBh
c3luYyBmdW5jdGlvbiphc3luY0dlbldpdGhOYW1lMSgpe30nKTsKLSAgICBjaGVja1N5bnRheCgn
InVzZSBzdHJpY3QiOyB2YXIgYTIgPSBhc3luYyBmdW5jdGlvbiAqYXN5bmNHZW5XaXRoTmFtZTIo
KXsgeWllbGQgMTE7IH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTMg
PSBhc3luYyBmdW5jdGlvbiAqIGFzeW5jR2VuV2l0aE5hbWUyKCl7IGF3YWl0IHA7IHlpZWxkIDEx
OyB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIGQxID0gYXN5bmMgZnVu
Y3Rpb24qKCl7fScpOwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBkMiA9IGFz
eW5jIGZ1bmN0aW9uKiAoKXsgeWllbGQgMTE7IH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBz
dHJpY3QiOyB2YXIgZDMgPSBhc3luYyBmdW5jdGlvbiAqICgpeyBhd2FpdCBwOyB5aWVsZCAxMTsg
fScpOwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmljdCI7IGFzeW5jIGZ1bmN0aW9uKiB3aXRo
TmFtZTEoKXsgIH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyBhc3luYyBmdW5j
dGlvbiAqd2l0aE5hbWUyKCl7IHlpZWxkIDExOyB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ug
c3RyaWN0IjsgYXN5bmMgZnVuY3Rpb24gKiB3aXRoTmFtZTMoKXsgYXdhaXQgcDsgeWllbGQgMTE7
IH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyBjbGFzcyBBIHsgYXN5bmMgKiBt
ZXRob2QoKSB7IH0gfScpOwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmljdCI7IGNsYXNzIEIg
eyBhc3luYyAqIG1ldGhvZCgpIHt5aWVsZCAxMTt9IH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVz
ZSBzdHJpY3QiOyBjbGFzcyBDIHsgYXN5bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7IGF3YWl0IHA7
fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgY2xhc3MgRCB7IGFzeW5jICog
Im1ldGhvZCIoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyJ1
c2Ugc3RyaWN0IjsgY2xhc3MgRSB7IGFzeW5jICogWyJjYWxjIiArICJ1bGF0ZSJdKCkge3lpZWxk
IDExOyBhd2FpdCBwO30gfScpOwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmljdCI7IGNsYXNz
IEYgeyBhc3luYyAqIDAoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7Ci0gICAgY2hlY2tTeW50
YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIG9iaiA9IHsgYXN5bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7
IGF3YWl0IHA7fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgKHsgYXN5bmMg
Zm9vKCkge30gfSknKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyAoeyBhc3luYyA6
IDEgfSknKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTEgPSBh
c3luYyBmdW5jdGlvbiphc3luY0dlbldpdGhOYW1lMSgpe30nKTsKKyAgICBjaGVja1NjcmlwdFN5
bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTIgPSBhc3luYyBmdW5jdGlvbiAqYXN5bmNHZW5XaXRo
TmFtZTIoKXsgeWllbGQgMTE7IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJp
Y3QiOyB2YXIgYTMgPSBhc3luYyBmdW5jdGlvbiAqIGFzeW5jR2VuV2l0aE5hbWUyKCl7IGF3YWl0
IHA7IHlpZWxkIDExOyB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0Ijsg
dmFyIGQxID0gYXN5bmMgZnVuY3Rpb24qKCl7fScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCci
dXNlIHN0cmljdCI7IHZhciBkMiA9IGFzeW5jIGZ1bmN0aW9uKiAoKXsgeWllbGQgMTE7IH0nKTsK
KyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgZDMgPSBhc3luYyBmdW5j
dGlvbiAqICgpeyBhd2FpdCBwOyB5aWVsZCAxMTsgfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4
KCcidXNlIHN0cmljdCI7IGFzeW5jIGZ1bmN0aW9uKiB3aXRoTmFtZTEoKXsgIH0nKTsKKyAgICBj
aGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyBhc3luYyBmdW5jdGlvbiAqd2l0aE5hbWUy
KCl7IHlpZWxkIDExOyB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0Ijsg
YXN5bmMgZnVuY3Rpb24gKiB3aXRoTmFtZTMoKXsgYXdhaXQgcDsgeWllbGQgMTE7IH0nKTsKKyAg
ICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyBjbGFzcyBBIHsgYXN5bmMgKiBtZXRo
b2QoKSB7IH0gfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7IGNsYXNz
IEIgeyBhc3luYyAqIG1ldGhvZCgpIHt5aWVsZCAxMTt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5
bnRheCgnInVzZSBzdHJpY3QiOyBjbGFzcyBDIHsgYXN5bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7
IGF3YWl0IHA7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgY2xh
c3MgRCB7IGFzeW5jICogIm1ldGhvZCIoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7CisgICAg
Y2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgY2xhc3MgRSB7IGFzeW5jICogWyJjYWxj
IiArICJ1bGF0ZSJdKCkge3lpZWxkIDExOyBhd2FpdCBwO30gfScpOworICAgIGNoZWNrU2NyaXB0
U3ludGF4KCcidXNlIHN0cmljdCI7IGNsYXNzIEYgeyBhc3luYyAqIDAoKSB7eWllbGQgMTE7IGF3
YWl0IHA7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIG9i
aiA9IHsgYXN5bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7CisgICAgY2hl
Y2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgKHsgYXN5bmMgZm9vKCkge30gfSknKTsKKyAg
ICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyAoeyBhc3luYyA6IDEgfSknKTsKIH0p
KCk7CiAKIApAQCAtODUsMzggKzc2LDM4IEBAIGZ1bmN0aW9uIGNoZWNrU3ludGF4RXJyb3Ioc3Jj
LCBtZXNzYWdlKSB7CiAKICAgICB3cmFwcGVycy5mb3JFYWNoKHdyYXBwZXIgPT4gewogICAgICAg
ICBleHByZXNzaW9ucy5mb3JFYWNoKGV4cCA9PiB7Ci0gICAgICAgICAgICBjaGVja1N5bnRheCh3
cmFwcGVyLnN0YXJ0ICsgZXhwICsgd3JhcHBlci5maW5pc2gpOworICAgICAgICAgICAgY2hlY2tT
Y3JpcHRTeW50YXgod3JhcHBlci5zdGFydCArIGV4cCArIHdyYXBwZXIuZmluaXNoKTsKICAgICAg
ICAgfSk7CiAgICAgfSkKIH0pKCk7CiAKIAogKGZ1bmN0aW9uIGNoZWNrU2ltcGxlQXN5bmNHZW5l
cmF0b3JTeW50YXhFcnJvckluU2xvcHB5TW9kZSgpIHsKLSAgICBjaGVja1N5bnRheEVycm9yKCJ2
YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uICphd2FpdCgpIHt9Iik7Ci0gICAgY2hlY2tT
eW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiooYXdhaXQpIHt9Iik7
Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiAq
d2l0aE5hbWUoYXdhaXQpIHt9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiYXN5bmMgZnVuY3Rp
b24gKmFzeW5jR2VuZXJhdG9yRnVuY3Rpb25EZWNsYXJhdGlvbihhd2FpdCkge30iKTsKLSAgICBj
aGVja1N5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9ICphc3luYyBmdW5jdGlvbiAoKSB7fSIp
OwotICAgIGNoZWNrU3ludGF4RXJyb3IoInZhciBhc3luY0dlbkZuID0gKmFzeW5jIGZ1bmN0aW9u
IHdpdGhOYW1lKCkge30iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIqYXN5bmMgZnVuY3Rpb24g
YXN5bmNHZW5lcmF0b3JGdW5jdGlvbkRlY2xhcmF0aW9uKGF3YWl0KSB7fSIpOwotICAgIGNoZWNr
U3ludGF4RXJyb3IoInZhciBvYmogPSB7ICphc3luYyBhc3luY0dlbmVyYXRvck1ldGhvZCgpIHt9
IH07Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIG9iaiA9IHsgYXN5bmMgYXN5bmNHZW5l
cmF0b3JNZXRob2QqKCkge30gfTsiKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCJjbGFzcyBBIHsg
Z2V0IGFzeW5jKiB0dHQoKSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiY2xhc3MgQiB7
IGdldCAqYXN5bmMgdHR0KCkge30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoJyh7IGFzeW5j
ID0gMSB9KScpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBhc3lu
YyBmdW5jdGlvbiAqYXdhaXQoKSB7fSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigidmFyIGFz
eW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiooYXdhaXQpIHt9Iik7CisgICAgZXZhbEZvclN5bnRh
eEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uICp3aXRoTmFtZShhd2FpdCkg
e30iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoImFzeW5jIGZ1bmN0aW9uICphc3luY0dlbmVy
YXRvckZ1bmN0aW9uRGVjbGFyYXRpb24oYXdhaXQpIHt9Iik7CisgICAgZXZhbEZvclN5bnRheEVy
cm9yKCJ2YXIgYXN5bmNHZW5GbiA9ICphc3luYyBmdW5jdGlvbiAoKSB7fSIpOworICAgIGV2YWxG
b3JTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSAqYXN5bmMgZnVuY3Rpb24gd2l0aE5hbWUo
KSB7fSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiKmFzeW5jIGZ1bmN0aW9uIGFzeW5jR2Vu
ZXJhdG9yRnVuY3Rpb25EZWNsYXJhdGlvbihhd2FpdCkge30iKTsKKyAgICBldmFsRm9yU3ludGF4
RXJyb3IoInZhciBvYmogPSB7ICphc3luYyBhc3luY0dlbmVyYXRvck1ldGhvZCgpIHt9IH07Iik7
CisgICAgZXZhbEZvclN5bnRheEVycm9yKCJ2YXIgb2JqID0geyBhc3luYyBhc3luY0dlbmVyYXRv
ck1ldGhvZCooKSB7fSB9OyIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiY2xhc3MgQSB7IGdl
dCBhc3luYyogdHR0KCkge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiY2xhc3MgQiB7
IGdldCAqYXN5bmMgdHR0KCkge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcignKHsgYXN5
bmMgPSAxIH0pJyk7CiB9KSgpOwogCiAoZnVuY3Rpb24gY2hlY2tTaW1wbGVBc3luY0dlbmVyYXRv
clN5bnRheEVycm9ySW5TdHJpY3RNb2RlKCkgewotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ug
c3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiAqYXdhaXQoKSB7fSIpOwot
ICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBhc3lu
YyBmdW5jdGlvbiooYXdhaXQpIHt9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJp
Y3QnOyB2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uICp3aXRoTmFtZShhd2FpdCkge30i
KTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IGFzeW5jIGZ1bmN0aW9uICph
c3luY0dlbmVyYXRvckZ1bmN0aW9uRGVjbGFyYXRpb24oYXdhaXQpIHt9Iik7Ci0gICAgY2hlY2tT
eW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9ICphc3luYyBmdW5jdGlv
biAoKSB7fSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5j
R2VuRm4gPSAqYXN5bmMgZnVuY3Rpb24gd2l0aE5hbWUoKSB7fSIpOwotICAgIGNoZWNrU3ludGF4
RXJyb3IoIid1c2Ugc3RyaWN0JzsgKmFzeW5jIGZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yRnVuY3Rp
b25EZWNsYXJhdGlvbihhd2FpdCkge30iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0
cmljdCc7IHZhciBvYmogPSB7ICphc3luYyBhc3luY0dlbmVyYXRvck1ldGhvZCgpIHt9IH07Iik7
Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgb2JqID0geyBhc3luYyBh
c3luY0dlbmVyYXRvck1ldGhvZCooKSB7fSB9OyIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1
c2Ugc3RyaWN0JzsgY2xhc3MgQSB7IGdldCBhc3luYyogdHR0KCkge30gfSIpOwotICAgIGNoZWNr
U3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgY2xhc3MgQiB7IGdldCAqYXN5bmMgdHR0KCkge30g
fSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgKHsgYXN5bmMgPSAxIH0p
Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhc3luY0dlbkZu
ID0gYXN5bmMgZnVuY3Rpb24gKmF3YWl0KCkge30iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3Io
Iid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiooYXdhaXQpIHt9
Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhc3luY0dlbkZu
ID0gYXN5bmMgZnVuY3Rpb24gKndpdGhOYW1lKGF3YWl0KSB7fSIpOworICAgIGV2YWxGb3JTeW50
YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBhc3luYyBmdW5jdGlvbiAqYXN5bmNHZW5lcmF0b3JGdW5j
dGlvbkRlY2xhcmF0aW9uKGF3YWl0KSB7fSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3Vz
ZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9ICphc3luYyBmdW5jdGlvbiAoKSB7fSIpOworICAg
IGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9ICphc3lu
YyBmdW5jdGlvbiB3aXRoTmFtZSgpIHt9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNl
IHN0cmljdCc7ICphc3luYyBmdW5jdGlvbiBhc3luY0dlbmVyYXRvckZ1bmN0aW9uRGVjbGFyYXRp
b24oYXdhaXQpIHt9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZh
ciBvYmogPSB7ICphc3luYyBhc3luY0dlbmVyYXRvck1ldGhvZCgpIHt9IH07Iik7CisgICAgZXZh
bEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBvYmogPSB7IGFzeW5jIGFzeW5jR2Vu
ZXJhdG9yTWV0aG9kKigpIHt9IH07Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0
cmljdCc7IGNsYXNzIEEgeyBnZXQgYXN5bmMqIHR0dCgpIHt9IH0iKTsKKyAgICBldmFsRm9yU3lu
dGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgY2xhc3MgQiB7IGdldCAqYXN5bmMgdHR0KCkge30gfSIp
OworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyAoeyBhc3luYyA9IDEgfSki
KTsKIH0pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439176</attachid>
            <date>2021-09-24 11:40:52 -0700</date>
            <delta_ts>2021-09-24 11:45:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230631-20210924144051.patch</filename>
            <type>text/plain</type>
            <size>24487</size>
            <attacher name="Rick Waldron">rwaldron</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NzZjYjg0MTUyNWVjZGU0YTQ5NmRmZGFjM2RkY2NlMzliNjNiODEwLi5iNjRlM2M4ZGY0NThkMjY1
MTlkOGVmNjYyMzJiYTNjZmQ5MmJjOGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wOS0yNCBSaWNrIFdhbGRyb24gPHdhbGRyb24ucmlja0BnbWFpbC5j
b20+CisKKyAgICAgICAgW0pTQ10gQWRkIGNoZWNrU2NyaXB0U3ludGF4IGZ1bmN0aW9uIHRvIGpz
YyBob3N0IGVudmlyb25tZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzA2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgor
CisgICAgICAgIEludHJvZHVjZSBhIGZ1bmN0aW9uIGNhbGxlZCBjaGVja1NjcmlwdFN5bnRheCgp
IHRoYXQgcGVyZm9ybXMgdGhlIHNhbWUKKyAgICAgICAgb3BlcmF0aW9uIGFzIGNoZWNrTW9kdWxl
U3ludGF4KCksIHdpdGhvdXQgdGhlIG1vZHVsZSBzcGVjaWZpYyBzZW1hbnRpY3MuCisgICAgICAg
IFVwZGF0ZXMgdGVzdHMgdGhhdCB3ZXJlIHVzaW5nIGV2YWwoKSB0byB2ZXJpZnkgc3ludGF4Lgor
CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKGZ1bmN0aW9uQ2hlY2tTY3JpcHRTeW50YXgp
CisKIDIwMjEtMDktMjMgIFBoaWxpcCBDaGltZW50byAgPHBjaGltZW50b0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFZhcmlvdXMgdHdlYWtzIGluIHByZXBhcmF0aW9uIGZvciBUZW1wb3JhbC5JbnN0
YW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCmluZGV4IDE3MDk2ZGE3NmZlYzFmNmQwYWRiNmJlOThmNzdh
ZTAzOWEyNTJkNTkuLmNjMjI2NGZjYTEwODZhMmFlNGM2NzA2MjcyNDY2MDk0NmRhYTc5M2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwCkBAIC0zMjgsNiArMzI4LDcgQEAgc3RhdGljIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdpc3RyeUxpdmVDb3VudCk7CiBz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkZpbmFsaXphdGlvblJlZ2lz
dHJ5RGVhZENvdW50KTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9u
SXMzMkJpdFBsYXRmb3JtKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uQ2hlY2tNb2R1bGVTeW50YXgpOworc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25DaGVja1NjcmlwdFN5bnRheCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihmdW5jdGlvblBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyKTsKIHN0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25hcHNob3QpOwog
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25HZW5lcmF0ZUhlYXBTbmFw
c2hvdEZvckdDRGVidWdnaW5nKTsKQEAgLTU5OCw2ICs1OTksNyBAQCBwcml2YXRlOgogICAgICAg
ICBhZGRGdW5jdGlvbih2bSwgImlzMzJCaXRQbGF0Zm9ybSIsIGZ1bmN0aW9uSXMzMkJpdFBsYXRm
b3JtLCAwKTsKIAogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImNoZWNrTW9kdWxlU3ludGF4Iiwg
ZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheCwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAi
Y2hlY2tTY3JpcHRTeW50YXgiLCBmdW5jdGlvbkNoZWNrU2NyaXB0U3ludGF4LCAxKTsKIAogICAg
ICAgICBhZGRGdW5jdGlvbih2bSwgInBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyIiwg
ZnVuY3Rpb25QbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlciwgMCk7CiAgICAgICAgIGFk
ZEZ1bmN0aW9uKHZtLCAiZ2VuZXJhdGVIZWFwU25hcHNob3QiLCBmdW5jdGlvbkdlbmVyYXRlSGVh
cFNuYXBzaG90LCAwKTsKQEAgLTI2MTcsNiArMjYxOSwyOCBAQCBKU0NfREVGSU5FX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25DaGVja01vZHVsZVN5bnRheCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplYwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoc3RvcFdhdGNoLmdldEVs
YXBzZWRNUygpKSk7CiB9CiAKK0pTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkNoZWNr
U2NyaXB0U3ludGF4LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBTdHJpbmcgc291cmNlID0g
Y2FsbEZyYW1lLT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOworCisgICAgU3RvcFdh
dGNoIHN0b3BXYXRjaDsKKyAgICBzdG9wV2F0Y2guc3RhcnQoKTsKKworICAgIFBhcnNlckVycm9y
IGVycm9yOworCisgICAgYm9vbCB2YWxpZFN5bnRheCA9IGNoZWNrU3ludGF4KHZtLCBqc2NTb3Vy
Y2Uoc291cmNlLCB7IH0pLCBlcnJvcik7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7CisgICAgc3RvcFdhdGNoLnN0b3AoKTsKKworICAgIGlmICghdmFs
aWRTeW50YXgpCisgICAgICAgIHRocm93RXhjZXB0aW9uKGdsb2JhbE9iamVjdCwgc2NvcGUsIGpz
Tm9udHJpdmlhbFN0cmluZyh2bSwgdG9TdHJpbmcoIlN5bnRheEVycm9yOiAiLCBlcnJvci5tZXNz
YWdlKCksICI6IiwgZXJyb3IubGluZSgpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdW1iZXIoc3RvcFdhdGNoLmdldEVsYXBzZWRNUygpKSk7Cit9CisKIEpTQ19ERUZJTkVfSE9T
VF9GVU5DVElPTihmdW5jdGlvblBsYXRmb3JtU3VwcG9ydHNTYW1wbGluZ1Byb2ZpbGVyLCAoSlNH
bG9iYWxPYmplY3QqLCBDYWxsRnJhbWUqKSkKIHsKICNpZiBFTkFCTEUoU0FNUExJTkdfUFJPRklM
RVIpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGNmZTQwOTgxNzljYTBmYzQ2ODQ5M2EyMGVmNGMzMTZjMDJhOTE5MzkuLjQ5OWMzMjk0ZThi
YjMxNjFhNTczNDk2MThjNzdiZWI5MzNmNTk2MDcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDktMjQg
UmljayBXYWxkcm9uIDx3YWxkcm9uLnJpY2tAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFk
ZCBjaGVja1NjcmlwdFN5bnRheCBmdW5jdGlvbiB0byBqc2MgaG9zdCBlbnZpcm9ubWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwNjMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICBVcGRhdGVzIHRlc3Rz
IHRoYXQgd2VyZSB1c2luZyBldmFsKCkgdG8gdmVyaWZ5IHN5bnRheC4KKworICAgICAgICAqIHN0
cmVzcy9hcnJvdy1mdW5jdGlvbi1zeW50YXguanM6IFJlcGxhY2UgY3VzdG9tIGNoZWNrU3ludGF4
IHdpdGggY2hlY2tTY3JpcHRTeW50YXgKKyAgICAgICAgKiBzdHJlc3MvYXN5bmMtaXRlcmF0aW9u
LWZvci1hd2FpdC1vZi1zeW50YXguanM6IFJlcGxhY2UgY3VzdG9tIGNoZWNrU3ludGF4IHdpdGgg
Y2hlY2tTY3JpcHRTeW50YXgKKyAgICAgICAgKiBzdHJlc3MvYXN5bmMtaXRlcmF0aW9uLXN5bnRh
eC5qczogUmVwbGFjZSBjdXN0b20gY2hlY2tTeW50YXggd2l0aCBjaGVja1NjcmlwdFN5bnRheAor
CiAyMDIxLTA5LTIzICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAog
ICAgICAgICBbSlNDXSBIYW5kbGUgc3ludGFjdGljIHByb2R1Y3Rpb24gZm9yIGAjeCBpbiBleHBy
YCBjb3JyZWN0bHkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Fycm93LWZ1bmN0aW9uLXN5
bnRheC5qcyBiL0pTVGVzdHMvc3RyZXNzL2Fycm93LWZ1bmN0aW9uLXN5bnRheC5qcwppbmRleCBk
MWI3Mzg4M2Q3MDM0YzE4MGMxM2RkNzhkMmQyZWY5NGJkMWZmN2ExLi5mNDViZTc1YjA1MGY2MDk5
NzM3ZmMxN2ZlNDFhODg5YTUxYzA0ZmE2IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9hcnJv
dy1mdW5jdGlvbi1zeW50YXguanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXJyb3ctZnVuY3Rpb24t
c3ludGF4LmpzCkBAIC0xLDI3ICsxLDYgQEAKLWZ1bmN0aW9uIGNoZWNrU3ludGF4KHNyYykgewot
ICAgIHRyeSB7Ci0gICAgICAgIGV2YWwoc3JjKTsKLSAgICB9IGNhdGNoIChlcnJvcikgewotICAg
ICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiU3ludGF4IEVycm9yOiAiICsgU3RyaW5nKGVycm9yKSArICJcbiBzY3JpcHQ6
IGAiICsgc3JjICsgImAiKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrU3ludGF4RXJyb3Io
c3JjLCBtZXNzYWdlKSB7Ci0gICAgdmFyIGJFcnJvciA9IGZhbHNlOwotICAgIHRyeSB7Ci0gICAg
ICAgIGV2YWwoc3JjKTsKLSAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgICBiRXJyb3IgPSBl
cnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yICYmIChTdHJpbmcoZXJyb3IpID09PSBtZXNzYWdl
IHx8IHR5cGVvZiBtZXNzYWdlID09PSAndW5kZWZpbmVkJyk7Ci0gICAgfQotICAgIGlmICghYkVy
cm9yKSB7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgc3ludGF4IEVycm9yOiAi
ICsgbWVzc2FnZSArICJcbiBpbiBzY3JpcHQ6IGAiICsgc3JjICsgImAiKTsKLSAgICB9Ci19Ci0K
LWNoZWNrU3ludGF4KGAoKT0+NDJgKTsKLWNoZWNrU3ludGF4KGAoKT0+NDIKK2NoZWNrU2NyaXB0
U3ludGF4KGAoKT0+NDJgKTsKK2NoZWNrU2NyaXB0U3ludGF4KGAoKT0+NDIKIGApOwotY2hlY2tT
eW50YXgoYCgpPT40Mi8vSGVsbG9gKTsKLWNoZWNrU3ludGF4KGAoKT0+NDIvL0hlbGxvCitjaGVj
a1NjcmlwdFN5bnRheChgKCk9PjQyLy9IZWxsb2ApOworY2hlY2tTY3JpcHRTeW50YXgoYCgpPT40
Mi8vSGVsbG8KIGApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXN5bmMtaXRlcmF0aW9u
LWZvci1hd2FpdC1vZi1zeW50YXguanMgYi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1pdGVyYXRpb24t
Zm9yLWF3YWl0LW9mLXN5bnRheC5qcwppbmRleCBiYTE2MjFjMTFiYTU3ZTAwNWIyNWNlYmFiZGI5
MzA1NTQxMDY2MmU0Li5lYTJjOWU2YWE2ZGY2MzVkZDQzNzE4MjIxNzQ3Yzc3ZWExNDk1ZjE1IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9hc3luYy1pdGVyYXRpb24tZm9yLWF3YWl0LW9mLXN5
bnRheC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1pdGVyYXRpb24tZm9yLWF3YWl0LW9m
LXN5bnRheC5qcwpAQCAtNCwxNiArNCw3IEBAIHZhciBhc3NlcnQgPSBmdW5jdGlvbiAocmVzdWx0
LCBleHBlY3RlZCwgbWVzc2FnZSA9ICIiKSB7CiAgIH0KIH07CiAKLWZ1bmN0aW9uIGNoZWNrU3lu
dGF4KHNyYykgewotICAgIHRyeSB7Ci0gICAgICAgIGV2YWwoc3JjKTsKLSAgICB9IGNhdGNoIChl
cnJvcikgewotICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikKLSAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiU3ludGF4IEVycm9yOiAiICsgU3RyaW5nKGVycm9yKSAr
ICJcbiBzY3JpcHQ6IGAiICsgc3JjICsgImAiKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGNoZWNr
U3ludGF4RXJyb3Ioc3JjLCBtZXNzYWdlKSB7CitmdW5jdGlvbiBldmFsRm9yU3ludGF4RXJyb3Io
c3JjLCBtZXNzYWdlKSB7CiAgICAgdmFyIGJFcnJvciA9IGZhbHNlOwogICAgIHRyeSB7CiAgICAg
ICAgIGV2YWwoc3JjKTsKQEAgLTI2LDE3ICsxNywxNyBAQCBmdW5jdGlvbiBjaGVja1N5bnRheEVy
cm9yKHNyYywgbWVzc2FnZSkgewogfQogCiAoZnVuY3Rpb24gY2hlY2tTaW1wbGVBc3luY0dlbmVy
YXRvclNsb3BweU1vZGUoKSB7Ci0gICAgY2hlY2tTeW50YXgoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0
aW9uKmFzeW5jR2VuV2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkg
e30gfScpOwotICAgIGNoZWNrU3ludGF4KCd2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dp
dGhOYW1lMSgpeyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0nKTsKLSAgICBj
aGVja1N5bnRheCgndmFyIGExID0gYXN5bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsg
Zm9yIGF3YWl0KGxldCB2YWx1ZSBvZiBmb28oKSkge30gfScpOwotICAgIGNoZWNrU3ludGF4KCd2
YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQobGV0IHZh
bHVlIG9mIGZvbygpKSB7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ3ZhciBhMSA9IGFz
eW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBv
ZiBmb28oKSkge30gfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCd2YXIgYTEgPSBhc3luYyBm
dW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkp
IHt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgndmFyIGExID0gYXN5bmMgZnVuY3Rpb24q
YXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGxldCB2YWx1ZSBvZiBmb28oKSkge30gfScp
OworICAgIGNoZWNrU2NyaXB0U3ludGF4KCd2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dp
dGhOYW1lMSgpeyBmb3IgYXdhaXQobGV0IHZhbHVlIG9mIGZvbygpKSB7fSB9Jyk7CiB9KSgpOwog
CiAoZnVuY3Rpb24gY2hlY2tTaW1wbGVBc3luY0dlbmVyYXRvclN0cmljdE1vZGUoKSB7Ci0gICAg
Y2hlY2tTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24qYXN5bmNH
ZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSAgfScpOwot
ICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFz
eW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfScpOwot
ICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFz
eW5jR2VuV2l0aE5hbWUxKCl7IGZvciBhd2FpdChsZXQgdmFsdWUgb2YgZm9vKCkpIHt9IH0nKTsK
LSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBh
c3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQobGV0IHZhbHVlIG9mIGZvbygpKSB7fSB9Jyk7Cisg
ICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIGExID0gYXN5bmMgZnVuY3Rp
b24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7
fSAgfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBhMSA9IGFz
eW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBm
b28oKSkge30gfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBh
MSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUxKCl7IGZvciBhd2FpdChsZXQgdmFs
dWUgb2YgZm9vKCkpIHt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3Qi
OyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQobGV0
IHZhbHVlIG9mIGZvbygpKSB7fSB9Jyk7CiB9KSgpOwogCiAKQEAgLTc5LDQwICs3MCw0MCBAQCBm
dW5jdGlvbiBjaGVja1N5bnRheEVycm9yKHNyYywgbWVzc2FnZSkgewogCiAgICAgd3JhcHBlcnMu
Zm9yRWFjaCh3cmFwcGVyID0+IHsKICAgICAgICAgZXhwcmVzc2lvbnMuZm9yRWFjaChleHAgPT4g
ewotICAgICAgICAgICAgY2hlY2tTeW50YXgod3JhcHBlci5zdGFydCArIGV4cCArIHdyYXBwZXIu
ZmluaXNoKTsKKyAgICAgICAgICAgIGNoZWNrU2NyaXB0U3ludGF4KHdyYXBwZXIuc3RhcnQgKyBl
eHAgKyB3cmFwcGVyLmZpbmlzaCk7CiAgICAgICAgIH0pOwogICAgIH0pCiB9KSgpOwogCiAKIChm
dW5jdGlvbiBjaGVja1NpbXBsZUFzeW5jR2VuZXJhdG9yU3ludGF4RXJyb3JJblNsb3BweU1vZGUo
KSB7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBmdW5jdGlvbiAoKSB7
IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSIpOwotICAgIGNoZWNrU3ludGF4
RXJyb3IoInZhciBhc3luY0dlbkZuID0gYXN5bmMgZnVuY3Rpb24gKCkgeyB2YXIgYXJyID0gKCkg
PT4geyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0gfSIpOwotICAgIGNoZWNr
U3ludGF4RXJyb3IoInZhciBhc3luY0dlbkZuID0gZnVuY3Rpb24qICgpIHsgZm9yIGF3YWl0KGNv
bnN0IHZhbHVlIG9mIGZvbygpKSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIGFz
eW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiogKCkgeyB2YXIgYXJyID0gKCkgPT4geyBmb3IgYXdh
aXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3Io
J3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUxKCl7IGZvciBhd2FpdChj
b25zdCB2YWx1ZSBpbiBmb28oKSkge30gfScpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoJ3ZhciBh
MSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1
ZSBpbiBmb28oKSkge30gfScpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoJ3ZhciBhMSA9IGFzeW5j
IGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAoOzspIHt9IH0nKTsKLSAgICBj
aGVja1N5bnRheEVycm9yKCJ2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgp
eyBmb3IgYXdhaXQgKGxldCB2ID0gNDs7KSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigi
dmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0IChsZXQg
diBvZiBmKCk7Oykge30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoInZhciBhMSA9IGFzeW5j
IGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2YgYm9vOzspIHt9
IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCJ2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3lu
Y1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGJvbyBvZikge30gfSIpOwotICAgIGNo
ZWNrU3ludGF4RXJyb3IoImFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2Fp
dCAobGV0IHYgb2YgYm9vIGluKSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiYXN5bmMg
ZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0ICh2IGluIHggKyB4ICkge30gfSIp
OworICAgIGV2YWxGb3JTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBmdW5jdGlvbiAoKSB7
IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSIpOworICAgIGV2YWxGb3JTeW50
YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiAoKSB7IHZhciBhcnIgPSAo
KSA9PiB7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSB9Iik7CisgICAgZXZh
bEZvclN5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9IGZ1bmN0aW9uKiAoKSB7IGZvciBhd2Fp
dChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigi
dmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiogKCkgeyB2YXIgYXJyID0gKCkgPT4geyBm
b3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0gfSIpOworICAgIGV2YWxGb3JTeW50
YXhFcnJvcigndmFyIGExID0gYXN5bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9y
IGF3YWl0KGNvbnN0IHZhbHVlIGluIGZvbygpKSB7fSB9Jyk7CisgICAgZXZhbEZvclN5bnRheEVy
cm9yKCd2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQo
Y29uc3QgdmFsdWUgaW4gZm9vKCkpIHt9IH0nKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoJ3Zh
ciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAoOzspIHt9
IH0nKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoInZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFz
eW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgPSA0OzspIHt9IH0iKTsKKyAgICBldmFs
Rm9yU3ludGF4RXJyb3IoInZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7
IGZvciBhd2FpdCAobGV0IHYgb2YgZigpOzspIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJy
b3IoInZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAo
bGV0IHYgb2YgYm9vOzspIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoInZhciBhMSA9
IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2YgYm9v
IG9mKSB7fSB9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCJhc3luYyBmdW5jdGlvbiBhc3lu
Y1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGJvbyBpbikge30gfSIpOworICAgIGV2
YWxGb3JTeW50YXhFcnJvcigiYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3
YWl0ICh2IGluIHggKyB4ICkge30gfSIpOwogfSkoKTsKIAogKGZ1bmN0aW9uIGNoZWNrU2ltcGxl
QXN5bmNHZW5lcmF0b3JTeW50YXhFcnJvckluU3RyaWN0TW9kZSgpIHsKLSAgICBjaGVja1N5bnRh
eEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhc3luY0dlbkZuID0gZnVuY3Rpb24gKCkgeyBmb3Ig
YXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9y
KCIndXNlIHN0cmljdCc7IHZhciBhc3luY0dlbkZuID0gYXN5bmMgZnVuY3Rpb24gKCkgeyB2YXIg
YXJyID0gKCkgPT4geyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0gfSIpOwot
ICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBmdW5j
dGlvbiogKCkgeyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0iKTsKLSAgICBj
aGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhc3luY0dlbkZuID0gYXN5bmMgZnVu
Y3Rpb24qICgpIHsgdmFyIGFyciA9ICgpID0+IHsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZv
bygpKSB7fSB9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBh
MSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2
YWx1ZSBpbiBmb28oKSkge30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0
JzsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNv
bnN0IHZhbHVlIGluIGZvbygpKSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBz
dHJpY3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdh
aXQgKDs7KSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIg
YTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2ID0g
NDs7KSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEg
PSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGYo
KTs7KSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEg
PSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGJv
bzs7KSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEg
PSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGJv
byBvZikge30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgYXN5bmMg
ZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0IChsZXQgdiBvZiBib28gaW4pIHt9
IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IGFzeW5jIGZ1bmN0aW9u
IGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAodiBpbiB4ICsgeCApIHt9IH0iKTsKKyAgICBl
dmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBmdW5jdGlv
biAoKSB7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSIpOworICAgIGV2YWxG
b3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0
aW9uICgpIHsgdmFyIGFyciA9ICgpID0+IHsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygp
KSB7fSB9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFz
eW5jR2VuRm4gPSBmdW5jdGlvbiogKCkgeyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkp
IHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5j
R2VuRm4gPSBhc3luYyBmdW5jdGlvbiogKCkgeyB2YXIgYXJyID0gKCkgPT4geyBmb3IgYXdhaXQo
Y29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigi
J3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiphc3luY0dlbldpdGhOYW1lMSgp
eyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgaW4gZm9vKCkpIHt9IH0iKTsKKyAgICBldmFsRm9yU3lu
dGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRo
TmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIGluIGZvbygpKSB7fSB9Iik7CisgICAgZXZh
bEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFz
eW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAoOzspIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4
RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFt
ZTEoKXsgZm9yIGF3YWl0IChsZXQgdiA9IDQ7Oykge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhF
cnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1l
MSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGYoKTs7KSB7fSB9Iik7CisgICAgZXZhbEZvclN5bnRh
eEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5h
bWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2YgYm9vOzspIHt9IH0iKTsKKyAgICBldmFsRm9yU3lu
dGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRo
TmFtZTEoKXsgZm9yIGF3YWl0IChsZXQgdiBvZiBib28gb2YpIHt9IH0iKTsKKyAgICBldmFsRm9y
U3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEo
KXsgZm9yIGF3YWl0IChsZXQgdiBvZiBib28gaW4pIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4
RXJyb3IoIid1c2Ugc3RyaWN0JzsgYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9y
IGF3YWl0ICh2IGluIHggKyB4ICkge30gfSIpOwogfSkoKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMv
c3RyZXNzL2FzeW5jLWl0ZXJhdGlvbi1zeW50YXguanMgYi9KU1Rlc3RzL3N0cmVzcy9hc3luYy1p
dGVyYXRpb24tc3ludGF4LmpzCmluZGV4IDgyNjI3N2UxMzU3NzBhNjYxZDU4MGUwNmM5NjFlZmM2
NGI2MmMyMzkuLjYzZTVkNDdkNWU0ZjY0NjhmNGU4OGViYjViNDQ4OWQ4MmExMzk3ZGYgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWl0ZXJhdGlvbi1zeW50YXguanMKKysrIGIvSlNU
ZXN0cy9zdHJlc3MvYXN5bmMtaXRlcmF0aW9uLXN5bnRheC5qcwpAQCAtNCwxNiArNCw3IEBAIHZh
ciBhc3NlcnQgPSBmdW5jdGlvbiAocmVzdWx0LCBleHBlY3RlZCwgbWVzc2FnZSA9ICIiKSB7CiAg
IH0KIH07CiAKLWZ1bmN0aW9uIGNoZWNrU3ludGF4KHNyYykgewotICAgIHRyeSB7Ci0gICAgICAg
IGV2YWwoc3JjKTsKLSAgICB9IGNhdGNoIChlcnJvcikgewotICAgICAgICBpZiAoZXJyb3IgaW5z
dGFuY2VvZiBTeW50YXhFcnJvcikKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3ludGF4
IEVycm9yOiAiICsgU3RyaW5nKGVycm9yKSArICJcbiBzY3JpcHQ6IGAiICsgc3JjICsgImAiKTsK
LSAgICB9Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrU3ludGF4RXJyb3Ioc3JjLCBtZXNzYWdlKSB7Citm
dW5jdGlvbiBldmFsRm9yU3ludGF4RXJyb3Ioc3JjLCBtZXNzYWdlKSB7CiAgICAgdmFyIGJFcnJv
ciA9IGZhbHNlOwogICAgIHRyeSB7CiAgICAgICAgIGV2YWwoc3JjKTsKQEAgLTI2LDQ0ICsxNyw0
NCBAQCBmdW5jdGlvbiBjaGVja1N5bnRheEVycm9yKHNyYywgbWVzc2FnZSkgewogfQogCiAoZnVu
Y3Rpb24gY2hlY2tTaW1wbGVBc3luY0dlbmVyYXRvclNsb3BweU1vZGUoKSB7Ci0gICAgY2hlY2tT
eW50YXgoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUxKCl7fScpOwot
ICAgIGNoZWNrU3ludGF4KCd2YXIgYTIgPSBhc3luYyBmdW5jdGlvbiAqYXN5bmNHZW5XaXRoTmFt
ZTIoKXsgeWllbGQgMTE7IH0nKTsKLSAgICBjaGVja1N5bnRheCgndmFyIGEzID0gYXN5bmMgZnVu
Y3Rpb24gKiBhc3luY0dlbldpdGhOYW1lMigpeyBhd2FpdCBwOyB5aWVsZCAxMTsgfScpOwotICAg
IGNoZWNrU3ludGF4KCd2YXIgZDEgPSBhc3luYyBmdW5jdGlvbiooKXt9Jyk7Ci0gICAgY2hlY2tT
eW50YXgoJ3ZhciBkMiA9IGFzeW5jIGZ1bmN0aW9uKiAoKXsgeWllbGQgMTE7IH0nKTsKLSAgICBj
aGVja1N5bnRheCgndmFyIGQzID0gYXN5bmMgZnVuY3Rpb24gKiAoKXsgYXdhaXQgcDsgeWllbGQg
MTE7IH0nKTsKLSAgICBjaGVja1N5bnRheCgnYXN5bmMgZnVuY3Rpb24qIHdpdGhOYW1lMSgpeyAg
fScpOwotICAgIGNoZWNrU3ludGF4KCdhc3luYyBmdW5jdGlvbiAqd2l0aE5hbWUyKCl7IHlpZWxk
IDExOyB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJ2FzeW5jIGZ1bmN0aW9uICogd2l0aE5hbWUzKCl7
IGF3YWl0IHA7IHlpZWxkIDExOyB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJ2NsYXNzIEEgeyBhc3lu
YyAqIG1ldGhvZCgpIHsgfSB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJ2NsYXNzIEIgeyBhc3luYyAq
IG1ldGhvZCgpIHt5aWVsZCAxMTt9IH0nKTsKLSAgICBjaGVja1N5bnRheCgnY2xhc3MgQyB7IGFz
eW5jICogbWV0aG9kKCkge3lpZWxkIDExOyBhd2FpdCBwO30gfScpOwotICAgIGNoZWNrU3ludGF4
KCdjbGFzcyBEIHsgYXN5bmMgKiAibWV0aG9kIigpIHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsK
LSAgICBjaGVja1N5bnRheCgnY2xhc3MgRiB7IGFzeW5jICogMCgpIHt5aWVsZCAxMTsgYXdhaXQg
cDt9IH0nKTsKLSAgICBjaGVja1N5bnRheCgndmFyIG9iaiA9IHsgYXN5bmMgKiBtZXRob2QoKSB7
eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyh7IGFzeW5jIGZvbygp
IHt9IH0pJyk7Ci0gICAgY2hlY2tTeW50YXgoJyh7IGFzeW5jIDogMSB9KScpOworICAgIGNoZWNr
U2NyaXB0U3ludGF4KCd2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiphc3luY0dlbldpdGhOYW1lMSgp
e30nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgndmFyIGEyID0gYXN5bmMgZnVuY3Rpb24gKmFz
eW5jR2VuV2l0aE5hbWUyKCl7IHlpZWxkIDExOyB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgo
J3ZhciBhMyA9IGFzeW5jIGZ1bmN0aW9uICogYXN5bmNHZW5XaXRoTmFtZTIoKXsgYXdhaXQgcDsg
eWllbGQgMTE7IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgndmFyIGQxID0gYXN5bmMgZnVu
Y3Rpb24qKCl7fScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCd2YXIgZDIgPSBhc3luYyBmdW5j
dGlvbiogKCl7IHlpZWxkIDExOyB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ3ZhciBkMyA9
IGFzeW5jIGZ1bmN0aW9uICogKCl7IGF3YWl0IHA7IHlpZWxkIDExOyB9Jyk7CisgICAgY2hlY2tT
Y3JpcHRTeW50YXgoJ2FzeW5jIGZ1bmN0aW9uKiB3aXRoTmFtZTEoKXsgIH0nKTsKKyAgICBjaGVj
a1NjcmlwdFN5bnRheCgnYXN5bmMgZnVuY3Rpb24gKndpdGhOYW1lMigpeyB5aWVsZCAxMTsgfScp
OworICAgIGNoZWNrU2NyaXB0U3ludGF4KCdhc3luYyBmdW5jdGlvbiAqIHdpdGhOYW1lMygpeyBh
d2FpdCBwOyB5aWVsZCAxMTsgfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCdjbGFzcyBBIHsg
YXN5bmMgKiBtZXRob2QoKSB7IH0gfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCdjbGFzcyBC
IHsgYXN5bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50
YXgoJ2NsYXNzIEMgeyBhc3luYyAqIG1ldGhvZCgpIHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsK
KyAgICBjaGVja1NjcmlwdFN5bnRheCgnY2xhc3MgRCB7IGFzeW5jICogIm1ldGhvZCIoKSB7eWll
bGQgMTE7IGF3YWl0IHA7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ2NsYXNzIEYgeyBh
c3luYyAqIDAoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50
YXgoJ3ZhciBvYmogPSB7IGFzeW5jICogbWV0aG9kKCkge3lpZWxkIDExOyBhd2FpdCBwO30gfScp
OworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcoeyBhc3luYyBmb28oKSB7fSB9KScpOworICAgIGNo
ZWNrU2NyaXB0U3ludGF4KCcoeyBhc3luYyA6IDEgfSknKTsKIH0pKCk7CiAKIChmdW5jdGlvbiBj
aGVja1NpbXBsZUFzeW5jR2VuZXJhdG9yU3RyaWN0TW9kZSgpIHsKLSAgICBjaGVja1N5bnRheCgn
InVzZSBzdHJpY3QiOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiphc3luY0dlbldpdGhOYW1lMSgp
e30nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTIgPSBhc3luYyBmdW5j
dGlvbiAqYXN5bmNHZW5XaXRoTmFtZTIoKXsgeWllbGQgMTE7IH0nKTsKLSAgICBjaGVja1N5bnRh
eCgnInVzZSBzdHJpY3QiOyB2YXIgYTMgPSBhc3luYyBmdW5jdGlvbiAqIGFzeW5jR2VuV2l0aE5h
bWUyKCl7IGF3YWl0IHA7IHlpZWxkIDExOyB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3Ry
aWN0IjsgdmFyIGQxID0gYXN5bmMgZnVuY3Rpb24qKCl7fScpOwotICAgIGNoZWNrU3ludGF4KCci
dXNlIHN0cmljdCI7IHZhciBkMiA9IGFzeW5jIGZ1bmN0aW9uKiAoKXsgeWllbGQgMTE7IH0nKTsK
LSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgZDMgPSBhc3luYyBmdW5jdGlvbiAq
ICgpeyBhd2FpdCBwOyB5aWVsZCAxMTsgfScpOwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmlj
dCI7IGFzeW5jIGZ1bmN0aW9uKiB3aXRoTmFtZTEoKXsgIH0nKTsKLSAgICBjaGVja1N5bnRheCgn
InVzZSBzdHJpY3QiOyBhc3luYyBmdW5jdGlvbiAqd2l0aE5hbWUyKCl7IHlpZWxkIDExOyB9Jyk7
Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgYXN5bmMgZnVuY3Rpb24gKiB3aXRoTmFt
ZTMoKXsgYXdhaXQgcDsgeWllbGQgMTE7IH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJp
Y3QiOyBjbGFzcyBBIHsgYXN5bmMgKiBtZXRob2QoKSB7IH0gfScpOwotICAgIGNoZWNrU3ludGF4
KCcidXNlIHN0cmljdCI7IGNsYXNzIEIgeyBhc3luYyAqIG1ldGhvZCgpIHt5aWVsZCAxMTt9IH0n
KTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyBjbGFzcyBDIHsgYXN5bmMgKiBtZXRo
b2QoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3Ry
aWN0IjsgY2xhc3MgRCB7IGFzeW5jICogIm1ldGhvZCIoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9
Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgY2xhc3MgRSB7IGFzeW5jICogWyJj
YWxjIiArICJ1bGF0ZSJdKCkge3lpZWxkIDExOyBhd2FpdCBwO30gfScpOwotICAgIGNoZWNrU3lu
dGF4KCcidXNlIHN0cmljdCI7IGNsYXNzIEYgeyBhc3luYyAqIDAoKSB7eWllbGQgMTE7IGF3YWl0
IHA7fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIG9iaiA9IHsgYXN5
bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXgo
JyJ1c2Ugc3RyaWN0IjsgKHsgYXN5bmMgZm9vKCkge30gfSknKTsKLSAgICBjaGVja1N5bnRheCgn
InVzZSBzdHJpY3QiOyAoeyBhc3luYyA6IDEgfSknKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgn
InVzZSBzdHJpY3QiOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiphc3luY0dlbldpdGhOYW1lMSgp
e30nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTIgPSBhc3lu
YyBmdW5jdGlvbiAqYXN5bmNHZW5XaXRoTmFtZTIoKXsgeWllbGQgMTE7IH0nKTsKKyAgICBjaGVj
a1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTMgPSBhc3luYyBmdW5jdGlvbiAqIGFz
eW5jR2VuV2l0aE5hbWUyKCl7IGF3YWl0IHA7IHlpZWxkIDExOyB9Jyk7CisgICAgY2hlY2tTY3Jp
cHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIGQxID0gYXN5bmMgZnVuY3Rpb24qKCl7fScpOwor
ICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBkMiA9IGFzeW5jIGZ1bmN0
aW9uKiAoKXsgeWllbGQgMTE7IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJp
Y3QiOyB2YXIgZDMgPSBhc3luYyBmdW5jdGlvbiAqICgpeyBhd2FpdCBwOyB5aWVsZCAxMTsgfScp
OworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7IGFzeW5jIGZ1bmN0aW9uKiB3
aXRoTmFtZTEoKXsgIH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyBh
c3luYyBmdW5jdGlvbiAqd2l0aE5hbWUyKCl7IHlpZWxkIDExOyB9Jyk7CisgICAgY2hlY2tTY3Jp
cHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgYXN5bmMgZnVuY3Rpb24gKiB3aXRoTmFtZTMoKXsgYXdh
aXQgcDsgeWllbGQgMTE7IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3Qi
OyBjbGFzcyBBIHsgYXN5bmMgKiBtZXRob2QoKSB7IH0gfScpOworICAgIGNoZWNrU2NyaXB0U3lu
dGF4KCcidXNlIHN0cmljdCI7IGNsYXNzIEIgeyBhc3luYyAqIG1ldGhvZCgpIHt5aWVsZCAxMTt9
IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyBjbGFzcyBDIHsgYXN5
bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRT
eW50YXgoJyJ1c2Ugc3RyaWN0IjsgY2xhc3MgRCB7IGFzeW5jICogIm1ldGhvZCIoKSB7eWllbGQg
MTE7IGF3YWl0IHA7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0Ijsg
Y2xhc3MgRSB7IGFzeW5jICogWyJjYWxjIiArICJ1bGF0ZSJdKCkge3lpZWxkIDExOyBhd2FpdCBw
O30gfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7IGNsYXNzIEYgeyBh
c3luYyAqIDAoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50
YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIG9iaiA9IHsgYXN5bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7
IGF3YWl0IHA7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgKHsg
YXN5bmMgZm9vKCkge30gfSknKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3Qi
OyAoeyBhc3luYyA6IDEgfSknKTsKIH0pKCk7CiAKIApAQCAtODUsMzggKzc2LDM4IEBAIGZ1bmN0
aW9uIGNoZWNrU3ludGF4RXJyb3Ioc3JjLCBtZXNzYWdlKSB7CiAKICAgICB3cmFwcGVycy5mb3JF
YWNoKHdyYXBwZXIgPT4gewogICAgICAgICBleHByZXNzaW9ucy5mb3JFYWNoKGV4cCA9PiB7Ci0g
ICAgICAgICAgICBjaGVja1N5bnRheCh3cmFwcGVyLnN0YXJ0ICsgZXhwICsgd3JhcHBlci5maW5p
c2gpOworICAgICAgICAgICAgY2hlY2tTY3JpcHRTeW50YXgod3JhcHBlci5zdGFydCArIGV4cCAr
IHdyYXBwZXIuZmluaXNoKTsKICAgICAgICAgfSk7CiAgICAgfSkKIH0pKCk7CiAKIAogKGZ1bmN0
aW9uIGNoZWNrU2ltcGxlQXN5bmNHZW5lcmF0b3JTeW50YXhFcnJvckluU2xvcHB5TW9kZSgpIHsK
LSAgICBjaGVja1N5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uICph
d2FpdCgpIHt9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBhc3lu
YyBmdW5jdGlvbiooYXdhaXQpIHt9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIGFzeW5j
R2VuRm4gPSBhc3luYyBmdW5jdGlvbiAqd2l0aE5hbWUoYXdhaXQpIHt9Iik7Ci0gICAgY2hlY2tT
eW50YXhFcnJvcigiYXN5bmMgZnVuY3Rpb24gKmFzeW5jR2VuZXJhdG9yRnVuY3Rpb25EZWNsYXJh
dGlvbihhd2FpdCkge30iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9
ICphc3luYyBmdW5jdGlvbiAoKSB7fSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoInZhciBhc3lu
Y0dlbkZuID0gKmFzeW5jIGZ1bmN0aW9uIHdpdGhOYW1lKCkge30iKTsKLSAgICBjaGVja1N5bnRh
eEVycm9yKCIqYXN5bmMgZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JGdW5jdGlvbkRlY2xhcmF0aW9u
KGF3YWl0KSB7fSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoInZhciBvYmogPSB7ICphc3luYyBh
c3luY0dlbmVyYXRvck1ldGhvZCgpIHt9IH07Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFy
IG9iaiA9IHsgYXN5bmMgYXN5bmNHZW5lcmF0b3JNZXRob2QqKCkge30gfTsiKTsKLSAgICBjaGVj
a1N5bnRheEVycm9yKCJjbGFzcyBBIHsgZ2V0IGFzeW5jKiB0dHQoKSB7fSB9Iik7Ci0gICAgY2hl
Y2tTeW50YXhFcnJvcigiY2xhc3MgQiB7IGdldCAqYXN5bmMgdHR0KCkge30gfSIpOwotICAgIGNo
ZWNrU3ludGF4RXJyb3IoJyh7IGFzeW5jID0gMSB9KScpOworICAgIGV2YWxGb3JTeW50YXhFcnJv
cigidmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiAqYXdhaXQoKSB7fSIpOworICAgIGV2
YWxGb3JTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiooYXdhaXQp
IHt9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1
bmN0aW9uICp3aXRoTmFtZShhd2FpdCkge30iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoImFz
eW5jIGZ1bmN0aW9uICphc3luY0dlbmVyYXRvckZ1bmN0aW9uRGVjbGFyYXRpb24oYXdhaXQpIHt9
Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9ICphc3luYyBmdW5j
dGlvbiAoKSB7fSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSAq
YXN5bmMgZnVuY3Rpb24gd2l0aE5hbWUoKSB7fSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigi
KmFzeW5jIGZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yRnVuY3Rpb25EZWNsYXJhdGlvbihhd2FpdCkg
e30iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoInZhciBvYmogPSB7ICphc3luYyBhc3luY0dl
bmVyYXRvck1ldGhvZCgpIHt9IH07Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCJ2YXIgb2Jq
ID0geyBhc3luYyBhc3luY0dlbmVyYXRvck1ldGhvZCooKSB7fSB9OyIpOworICAgIGV2YWxGb3JT
eW50YXhFcnJvcigiY2xhc3MgQSB7IGdldCBhc3luYyogdHR0KCkge30gfSIpOworICAgIGV2YWxG
b3JTeW50YXhFcnJvcigiY2xhc3MgQiB7IGdldCAqYXN5bmMgdHR0KCkge30gfSIpOworICAgIGV2
YWxGb3JTeW50YXhFcnJvcignKHsgYXN5bmMgPSAxIH0pJyk7CiB9KSgpOwogCiAoZnVuY3Rpb24g
Y2hlY2tTaW1wbGVBc3luY0dlbmVyYXRvclN5bnRheEVycm9ySW5TdHJpY3RNb2RlKCkgewotICAg
IGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBhc3luYyBm
dW5jdGlvbiAqYXdhaXQoKSB7fSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0
JzsgdmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiooYXdhaXQpIHt9Iik7Ci0gICAgY2hl
Y2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0
aW9uICp3aXRoTmFtZShhd2FpdCkge30iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0
cmljdCc7IGFzeW5jIGZ1bmN0aW9uICphc3luY0dlbmVyYXRvckZ1bmN0aW9uRGVjbGFyYXRpb24o
YXdhaXQpIHt9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5
bmNHZW5GbiA9ICphc3luYyBmdW5jdGlvbiAoKSB7fSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3Io
Iid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSAqYXN5bmMgZnVuY3Rpb24gd2l0aE5hbWUo
KSB7fSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgKmFzeW5jIGZ1bmN0
aW9uIGFzeW5jR2VuZXJhdG9yRnVuY3Rpb25EZWNsYXJhdGlvbihhd2FpdCkge30iKTsKLSAgICBj
aGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBvYmogPSB7ICphc3luYyBhc3luY0dl
bmVyYXRvck1ldGhvZCgpIHt9IH07Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJp
Y3QnOyB2YXIgb2JqID0geyBhc3luYyBhc3luY0dlbmVyYXRvck1ldGhvZCooKSB7fSB9OyIpOwot
ICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgY2xhc3MgQSB7IGdldCBhc3luYyog
dHR0KCkge30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgY2xhc3Mg
QiB7IGdldCAqYXN5bmMgdHR0KCkge30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ug
c3RyaWN0JzsgKHsgYXN5bmMgPSAxIH0pIik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNl
IHN0cmljdCc7IHZhciBhc3luY0dlbkZuID0gYXN5bmMgZnVuY3Rpb24gKmF3YWl0KCkge30iKTsK
KyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBh
c3luYyBmdW5jdGlvbiooYXdhaXQpIHt9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNl
IHN0cmljdCc7IHZhciBhc3luY0dlbkZuID0gYXN5bmMgZnVuY3Rpb24gKndpdGhOYW1lKGF3YWl0
KSB7fSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBhc3luYyBmdW5j
dGlvbiAqYXN5bmNHZW5lcmF0b3JGdW5jdGlvbkRlY2xhcmF0aW9uKGF3YWl0KSB7fSIpOworICAg
IGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9ICphc3lu
YyBmdW5jdGlvbiAoKSB7fSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3Qn
OyB2YXIgYXN5bmNHZW5GbiA9ICphc3luYyBmdW5jdGlvbiB3aXRoTmFtZSgpIHt9Iik7CisgICAg
ZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7ICphc3luYyBmdW5jdGlvbiBhc3luY0dl
bmVyYXRvckZ1bmN0aW9uRGVjbGFyYXRpb24oYXdhaXQpIHt9Iik7CisgICAgZXZhbEZvclN5bnRh
eEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBvYmogPSB7ICphc3luYyBhc3luY0dlbmVyYXRvck1l
dGhvZCgpIHt9IH07Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZh
ciBvYmogPSB7IGFzeW5jIGFzeW5jR2VuZXJhdG9yTWV0aG9kKigpIHt9IH07Iik7CisgICAgZXZh
bEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IGNsYXNzIEEgeyBnZXQgYXN5bmMqIHR0dCgp
IHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgY2xhc3MgQiB7
IGdldCAqYXN5bmMgdHR0KCkge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBz
dHJpY3QnOyAoeyBhc3luYyA9IDEgfSkiKTsKIH0pKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439178</attachid>
            <date>2021-09-24 11:45:56 -0700</date>
            <delta_ts>2021-09-24 15:13:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230631-20210924144555.patch</filename>
            <type>text/plain</type>
            <size>24489</size>
            <attacher name="Rick Waldron">rwaldron</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NzZjYjg0MTUyNWVjZGU0YTQ5NmRmZGFjM2RkY2NlMzliNjNiODEwLi41MmY3NzdjYjc5M2RmNWM0
YWU0Mjc2YTliYmM5OGYxNTYzZWM0ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wOS0yNCBSaWNrIFdhbGRyb24gPHdhbGRyb24ucmlja0BnbWFpbC5j
b20+CisKKyAgICAgICAgW0pTQ10gQWRkIGNoZWNrU2NyaXB0U3ludGF4IGZ1bmN0aW9uIHRvIGpz
YyBob3N0IGVudmlyb25tZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzA2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJbnRyb2R1Y2UgYSBmdW5jdGlvbiBjYWxsZWQgY2hlY2tTY3JpcHRTeW50YXgo
KSB0aGF0IHBlcmZvcm1zIHRoZSBzYW1lCisgICAgICAgIG9wZXJhdGlvbiBhcyBjaGVja01vZHVs
ZVN5bnRheCgpLCB3aXRob3V0IHRoZSBtb2R1bGUgc3BlY2lmaWMgc2VtYW50aWNzLgorICAgICAg
ICBVcGRhdGVzIHRlc3RzIHRoYXQgd2VyZSB1c2luZyBldmFsKCkgdG8gdmVyaWZ5IHN5bnRheC4K
KworICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChmdW5jdGlvbkNoZWNrU2NyaXB0U3ludGF4
KQorCiAyMDIxLTA5LTIzICBQaGlsaXAgQ2hpbWVudG8gIDxwY2hpbWVudG9AaWdhbGlhLmNvbT4K
IAogICAgICAgICBWYXJpb3VzIHR3ZWFrcyBpbiBwcmVwYXJhdGlvbiBmb3IgVGVtcG9yYWwuSW5z
dGFudApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCAxNzA5NmRhNzZmZWMxZjZkMGFkYjZiZTk4Zjc3
YWUwMzlhMjUyZDU5Li5jYzIyNjRmY2ExMDg2YTJhZTRjNjcwNjI3MjQ2NjA5NDZkYWE3OTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcApAQCAtMzI4LDYgKzMyOCw3IEBAIHN0YXRpYyBKU0NfREVDTEFS
RV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRmluYWxpemF0aW9uUmVnaXN0cnlMaXZlQ291bnQpOwog
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25GaW5hbGl6YXRpb25SZWdp
c3RyeURlYWRDb3VudCk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bklzMzJCaXRQbGF0Zm9ybSk7CiBzdGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5j
dGlvbkNoZWNrTW9kdWxlU3ludGF4KTsKK3N0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uQ2hlY2tTY3JpcHRTeW50YXgpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25QbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlcik7CiBzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkdlbmVyYXRlSGVhcFNuYXBzaG90KTsK
IHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uR2VuZXJhdGVIZWFwU25h
cHNob3RGb3JHQ0RlYnVnZ2luZyk7CkBAIC01OTgsNiArNTk5LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgYWRkRnVuY3Rpb24odm0sICJpczMyQml0UGxhdGZvcm0iLCBmdW5jdGlvbklzMzJCaXRQbGF0
Zm9ybSwgMCk7CiAKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJjaGVja01vZHVsZVN5bnRheCIs
IGZ1bmN0aW9uQ2hlY2tNb2R1bGVTeW50YXgsIDEpOworICAgICAgICBhZGRGdW5jdGlvbih2bSwg
ImNoZWNrU2NyaXB0U3ludGF4IiwgZnVuY3Rpb25DaGVja1NjcmlwdFN5bnRheCwgMSk7CiAKICAg
ICAgICAgYWRkRnVuY3Rpb24odm0sICJwbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlciIs
IGZ1bmN0aW9uUGxhdGZvcm1TdXBwb3J0c1NhbXBsaW5nUHJvZmlsZXIsIDApOwogICAgICAgICBh
ZGRGdW5jdGlvbih2bSwgImdlbmVyYXRlSGVhcFNuYXBzaG90IiwgZnVuY3Rpb25HZW5lcmF0ZUhl
YXBTbmFwc2hvdCwgMCk7CkBAIC0yNjE3LDYgKzI2MTksMjggQEAgSlNDX0RFRklORV9IT1NUX0ZV
TkNUSU9OKGZ1bmN0aW9uQ2hlY2tNb2R1bGVTeW50YXgsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWMKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHN0b3BXYXRjaC5nZXRF
bGFwc2VkTVMoKSkpOwogfQogCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25DaGVj
a1NjcmlwdFN5bnRheCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKSkKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCisgICAgU3RyaW5nIHNvdXJjZSA9
IGNhbGxGcmFtZS0+YXJndW1lbnQoMCkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKKworICAgIFN0b3BX
YXRjaCBzdG9wV2F0Y2g7CisgICAgc3RvcFdhdGNoLnN0YXJ0KCk7CisKKyAgICBQYXJzZXJFcnJv
ciBlcnJvcjsKKworICAgIGJvb2wgdmFsaWRTeW50YXggPSBjaGVja1N5bnRheCh2bSwganNjU291
cmNlKHNvdXJjZSwgeyB9KSwgZXJyb3IpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOworICAgIHN0b3BXYXRjaC5zdG9wKCk7CisKKyAgICBpZiAoIXZh
bGlkU3ludGF4KQorICAgICAgICB0aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHNjb3BlLCBq
c05vbnRyaXZpYWxTdHJpbmcodm0sIHRvU3RyaW5nKCJTeW50YXhFcnJvcjogIiwgZXJyb3IubWVz
c2FnZSgpLCAiOiIsIGVycm9yLmxpbmUoKSkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKHN0b3BXYXRjaC5nZXRFbGFwc2VkTVMoKSkpOworfQorCiBKU0NfREVGSU5FX0hP
U1RfRlVOQ1RJT04oZnVuY3Rpb25QbGF0Zm9ybVN1cHBvcnRzU2FtcGxpbmdQcm9maWxlciwgKEpT
R2xvYmFsT2JqZWN0KiwgQ2FsbEZyYW1lKikpCiB7CiAjaWYgRU5BQkxFKFNBTVBMSU5HX1BST0ZJ
TEVSKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwpp
bmRleCBjZmU0MDk4MTc5Y2EwZmM0Njg0OTNhMjBlZjRjMzE2YzAyYTkxOTM5Li5iYTM1NzE0ZDg0
NTQ5MTY5OTZhNGMzZDUxMDMzZjYwZmM5NGVjYTBkIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5n
ZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA5LTI0
IFJpY2sgV2FsZHJvbiA8d2FsZHJvbi5yaWNrQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBB
ZGQgY2hlY2tTY3JpcHRTeW50YXggZnVuY3Rpb24gdG8ganNjIGhvc3QgZW52aXJvbm1lbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDYzMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZXMgdGVz
dHMgdGhhdCB3ZXJlIHVzaW5nIGV2YWwoKSB0byB2ZXJpZnkgc3ludGF4LgorCisgICAgICAgICog
c3RyZXNzL2Fycm93LWZ1bmN0aW9uLXN5bnRheC5qczogUmVwbGFjZSBjdXN0b20gY2hlY2tTeW50
YXggd2l0aCBjaGVja1NjcmlwdFN5bnRheAorICAgICAgICAqIHN0cmVzcy9hc3luYy1pdGVyYXRp
b24tZm9yLWF3YWl0LW9mLXN5bnRheC5qczogUmVwbGFjZSBjdXN0b20gY2hlY2tTeW50YXggd2l0
aCBjaGVja1NjcmlwdFN5bnRheAorICAgICAgICAqIHN0cmVzcy9hc3luYy1pdGVyYXRpb24tc3lu
dGF4LmpzOiBSZXBsYWNlIGN1c3RvbSBjaGVja1N5bnRheCB3aXRoIGNoZWNrU2NyaXB0U3ludGF4
CisKIDIwMjEtMDktMjMgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgog
CiAgICAgICAgIFtKU0NdIEhhbmRsZSBzeW50YWN0aWMgcHJvZHVjdGlvbiBmb3IgYCN4IGluIGV4
cHJgIGNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJyb3ctZnVuY3Rpb24t
c3ludGF4LmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyb3ctZnVuY3Rpb24tc3ludGF4LmpzCmluZGV4
IGQxYjczODgzZDcwMzRjMTgwYzEzZGQ3OGQyZDJlZjk0YmQxZmY3YTEuLmY0NWJlNzViMDUwZjYw
OTk3MzdmYzE3ZmU0MWE4ODlhNTFjMDRmYTYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2Fy
cm93LWZ1bmN0aW9uLXN5bnRheC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9hcnJvdy1mdW5jdGlv
bi1zeW50YXguanMKQEAgLTEsMjcgKzEsNiBAQAotZnVuY3Rpb24gY2hlY2tTeW50YXgoc3JjKSB7
Ci0gICAgdHJ5IHsKLSAgICAgICAgZXZhbChzcmMpOwotICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0g
ICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKQotICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJTeW50YXggRXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpICsgIlxuIHNjcmlw
dDogYCIgKyBzcmMgKyAiYCIpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gY2hlY2tTeW50YXhFcnJv
cihzcmMsIG1lc3NhZ2UpIHsKLSAgICB2YXIgYkVycm9yID0gZmFsc2U7Ci0gICAgdHJ5IHsKLSAg
ICAgICAgZXZhbChzcmMpOwotICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgIGJFcnJvciA9
IGVycm9yIGluc3RhbmNlb2YgU3ludGF4RXJyb3IgJiYgKFN0cmluZyhlcnJvcikgPT09IG1lc3Nh
Z2UgfHwgdHlwZW9mIG1lc3NhZ2UgPT09ICd1bmRlZmluZWQnKTsKLSAgICB9Ci0gICAgaWYgKCFi
RXJyb3IpIHsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBzeW50YXggRXJyb3I6
ICIgKyBtZXNzYWdlICsgIlxuIGluIHNjcmlwdDogYCIgKyBzcmMgKyAiYCIpOwotICAgIH0KLX0K
LQotY2hlY2tTeW50YXgoYCgpPT40MmApOwotY2hlY2tTeW50YXgoYCgpPT40MgorY2hlY2tTY3Jp
cHRTeW50YXgoYCgpPT40MmApOworY2hlY2tTY3JpcHRTeW50YXgoYCgpPT40MgogYCk7Ci1jaGVj
a1N5bnRheChgKCk9PjQyLy9IZWxsb2ApOwotY2hlY2tTeW50YXgoYCgpPT40Mi8vSGVsbG8KK2No
ZWNrU2NyaXB0U3ludGF4KGAoKT0+NDIvL0hlbGxvYCk7CitjaGVja1NjcmlwdFN5bnRheChgKCk9
PjQyLy9IZWxsbwogYCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9hc3luYy1pdGVyYXRp
b24tZm9yLWF3YWl0LW9mLXN5bnRheC5qcyBiL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWl0ZXJhdGlv
bi1mb3ItYXdhaXQtb2Ytc3ludGF4LmpzCmluZGV4IGJhMTYyMWMxMWJhNTdlMDA1YjI1Y2ViYWJk
YjkzMDU1NDEwNjYyZTQuLmVhMmM5ZTZhYTZkZjYzNWRkNDM3MTgyMjE3NDdjNzdlYTE0OTVmMTUg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWl0ZXJhdGlvbi1mb3ItYXdhaXQtb2Yt
c3ludGF4LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2FzeW5jLWl0ZXJhdGlvbi1mb3ItYXdhaXQt
b2Ytc3ludGF4LmpzCkBAIC00LDE2ICs0LDcgQEAgdmFyIGFzc2VydCA9IGZ1bmN0aW9uIChyZXN1
bHQsIGV4cGVjdGVkLCBtZXNzYWdlID0gIiIpIHsKICAgfQogfTsKIAotZnVuY3Rpb24gY2hlY2tT
eW50YXgoc3JjKSB7Ci0gICAgdHJ5IHsKLSAgICAgICAgZXZhbChzcmMpOwotICAgIH0gY2F0Y2gg
KGVycm9yKSB7Ci0gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKQotICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTeW50YXggRXJyb3I6ICIgKyBTdHJpbmcoZXJyb3Ip
ICsgIlxuIHNjcmlwdDogYCIgKyBzcmMgKyAiYCIpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gY2hl
Y2tTeW50YXhFcnJvcihzcmMsIG1lc3NhZ2UpIHsKK2Z1bmN0aW9uIGV2YWxGb3JTeW50YXhFcnJv
cihzcmMsIG1lc3NhZ2UpIHsKICAgICB2YXIgYkVycm9yID0gZmFsc2U7CiAgICAgdHJ5IHsKICAg
ICAgICAgZXZhbChzcmMpOwpAQCAtMjYsMTcgKzE3LDE3IEBAIGZ1bmN0aW9uIGNoZWNrU3ludGF4
RXJyb3Ioc3JjLCBtZXNzYWdlKSB7CiB9CiAKIChmdW5jdGlvbiBjaGVja1NpbXBsZUFzeW5jR2Vu
ZXJhdG9yU2xvcHB5TW9kZSgpIHsKLSAgICBjaGVja1N5bnRheCgndmFyIGExID0gYXN5bmMgZnVu
Y3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygp
KSB7fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5j
V2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfScpOwotICAg
IGNoZWNrU3ludGF4KCd2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiphc3luY0dlbldpdGhOYW1lMSgp
eyBmb3IgYXdhaXQobGV0IHZhbHVlIG9mIGZvbygpKSB7fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXgo
J3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdChsZXQg
dmFsdWUgb2YgZm9vKCkpIHt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgndmFyIGExID0g
YXN5bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0IHZhbHVl
IG9mIGZvbygpKSB7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ3ZhciBhMSA9IGFzeW5j
IGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28o
KSkge30gfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCd2YXIgYTEgPSBhc3luYyBmdW5jdGlv
biphc3luY0dlbldpdGhOYW1lMSgpeyBmb3IgYXdhaXQobGV0IHZhbHVlIG9mIGZvbygpKSB7fSB9
Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5j
V2l0aE5hbWUxKCl7IGZvciBhd2FpdChsZXQgdmFsdWUgb2YgZm9vKCkpIHt9IH0nKTsKIH0pKCk7
CiAKIChmdW5jdGlvbiBjaGVja1NpbXBsZUFzeW5jR2VuZXJhdG9yU3RyaWN0TW9kZSgpIHsKLSAg
ICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiphc3lu
Y0dlbldpdGhOYW1lMSgpeyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9ICB9Jyk7
Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24g
YXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSB9Jyk7
Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24q
YXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGxldCB2YWx1ZSBvZiBmb28oKSkge30gfScp
OwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9u
IGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdChsZXQgdmFsdWUgb2YgZm9vKCkpIHt9IH0nKTsK
KyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgYTEgPSBhc3luYyBmdW5j
dGlvbiphc3luY0dlbldpdGhOYW1lMSgpeyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9vKCkp
IHt9ICB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIGExID0g
YXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9m
IGZvbygpKSB7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFy
IGExID0gYXN5bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGxldCB2
YWx1ZSBvZiBmb28oKSkge30gfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmlj
dCI7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdChs
ZXQgdmFsdWUgb2YgZm9vKCkpIHt9IH0nKTsKIH0pKCk7CiAKIApAQCAtNzksNDAgKzcwLDQwIEBA
IGZ1bmN0aW9uIGNoZWNrU3ludGF4RXJyb3Ioc3JjLCBtZXNzYWdlKSB7CiAKICAgICB3cmFwcGVy
cy5mb3JFYWNoKHdyYXBwZXIgPT4gewogICAgICAgICBleHByZXNzaW9ucy5mb3JFYWNoKGV4cCA9
PiB7Ci0gICAgICAgICAgICBjaGVja1N5bnRheCh3cmFwcGVyLnN0YXJ0ICsgZXhwICsgd3JhcHBl
ci5maW5pc2gpOworICAgICAgICAgICAgY2hlY2tTY3JpcHRTeW50YXgod3JhcHBlci5zdGFydCAr
IGV4cCArIHdyYXBwZXIuZmluaXNoKTsKICAgICAgICAgfSk7CiAgICAgfSkKIH0pKCk7CiAKIAog
KGZ1bmN0aW9uIGNoZWNrU2ltcGxlQXN5bmNHZW5lcmF0b3JTeW50YXhFcnJvckluU2xvcHB5TW9k
ZSgpIHsKLSAgICBjaGVja1N5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9IGZ1bmN0aW9uICgp
IHsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50
YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiAoKSB7IHZhciBhcnIgPSAo
KSA9PiB7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSB9Iik7Ci0gICAgY2hl
Y2tTeW50YXhFcnJvcigidmFyIGFzeW5jR2VuRm4gPSBmdW5jdGlvbiogKCkgeyBmb3IgYXdhaXQo
Y29uc3QgdmFsdWUgb2YgZm9vKCkpIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCJ2YXIg
YXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uKiAoKSB7IHZhciBhcnIgPSAoKSA9PiB7IGZvciBh
d2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJv
cigndmFyIGExID0gYXN5bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0
KGNvbnN0IHZhbHVlIGluIGZvbygpKSB7fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigndmFy
IGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0IHZh
bHVlIGluIGZvbygpKSB7fSB9Jyk7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigndmFyIGExID0gYXN5
bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0ICg7Oykge30gfScpOwotICAg
IGNoZWNrU3ludGF4RXJyb3IoInZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUx
KCl7IGZvciBhd2FpdCAobGV0IHYgPSA0OzspIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9y
KCJ2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxl
dCB2IG9mIGYoKTs7KSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIGExID0gYXN5
bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0IChsZXQgdiBvZiBib287Oykg
e30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoInZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFz
eW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2YgYm9vIG9mKSB7fSB9Iik7Ci0gICAg
Y2hlY2tTeW50YXhFcnJvcigiYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3
YWl0IChsZXQgdiBvZiBib28gaW4pIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCJhc3lu
YyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKHYgaW4geCArIHggKSB7fSB9
Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9IGZ1bmN0aW9uICgp
IHsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSB9Iik7CisgICAgZXZhbEZvclN5
bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uICgpIHsgdmFyIGFyciA9
ICgpID0+IHsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSB9IH0iKTsKKyAgICBl
dmFsRm9yU3ludGF4RXJyb3IoInZhciBhc3luY0dlbkZuID0gZnVuY3Rpb24qICgpIHsgZm9yIGF3
YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSB9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9y
KCJ2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uKiAoKSB7IHZhciBhcnIgPSAoKSA9PiB7
IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSB9Iik7CisgICAgZXZhbEZvclN5
bnRheEVycm9yKCd2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiphc3luY0dlbldpdGhOYW1lMSgpeyBm
b3IgYXdhaXQoY29uc3QgdmFsdWUgaW4gZm9vKCkpIHt9IH0nKTsKKyAgICBldmFsRm9yU3ludGF4
RXJyb3IoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2Fp
dChjb25zdCB2YWx1ZSBpbiBmb28oKSkge30gfScpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcign
dmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0ICg7Oykg
e30gfScpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigidmFyIGExID0gYXN5bmMgZnVuY3Rpb24g
YXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0IChsZXQgdiA9IDQ7Oykge30gfSIpOworICAgIGV2
YWxGb3JTeW50YXhFcnJvcigidmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEo
KXsgZm9yIGF3YWl0IChsZXQgdiBvZiBmKCk7Oykge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhF
cnJvcigidmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0
IChsZXQgdiBvZiBib287Oykge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigidmFyIGEx
ID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0IChsZXQgdiBvZiBi
b28gb2YpIHt9IH0iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoImFzeW5jIGZ1bmN0aW9uIGFz
eW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2YgYm9vIGluKSB7fSB9Iik7CisgICAg
ZXZhbEZvclN5bnRheEVycm9yKCJhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3Ig
YXdhaXQgKHYgaW4geCArIHggKSB7fSB9Iik7CiB9KSgpOwogCiAoZnVuY3Rpb24gY2hlY2tTaW1w
bGVBc3luY0dlbmVyYXRvclN5bnRheEVycm9ySW5TdHJpY3RNb2RlKCkgewotICAgIGNoZWNrU3lu
dGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBmdW5jdGlvbiAoKSB7IGZv
ciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJy
b3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiAoKSB7IHZh
ciBhcnIgPSAoKSA9PiB7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSB9Iik7
Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9IGZ1
bmN0aW9uKiAoKSB7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSIpOwotICAg
IGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBhc3luYyBm
dW5jdGlvbiogKCkgeyB2YXIgYXJyID0gKCkgPT4geyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2Yg
Zm9vKCkpIHt9IH0gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFy
IGExID0gYXN5bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXsgZm9yIGF3YWl0KGNvbnN0
IHZhbHVlIGluIGZvbygpKSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJp
Y3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQo
Y29uc3QgdmFsdWUgaW4gZm9vKCkpIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNl
IHN0cmljdCc7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBh
d2FpdCAoOzspIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZh
ciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYg
PSA0OzspIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBh
MSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2Yg
ZigpOzspIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBh
MSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2Yg
Ym9vOzspIHt9IH0iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBh
MSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5hbWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2Yg
Ym9vIG9mKSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBhc3lu
YyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGJvbyBpbikg
e30gfSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgYXN5bmMgZnVuY3Rp
b24gYXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0ICh2IGluIHggKyB4ICkge30gfSIpOworICAg
IGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9IGZ1bmN0
aW9uICgpIHsgZm9yIGF3YWl0KGNvbnN0IHZhbHVlIG9mIGZvbygpKSB7fSB9Iik7CisgICAgZXZh
bEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhc3luY0dlbkZuID0gYXN5bmMgZnVu
Y3Rpb24gKCkgeyB2YXIgYXJyID0gKCkgPT4geyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgb2YgZm9v
KCkpIHt9IH0gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIg
YXN5bmNHZW5GbiA9IGZ1bmN0aW9uKiAoKSB7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBvZiBmb28o
KSkge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5
bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uKiAoKSB7IHZhciBhcnIgPSAoKSA9PiB7IGZvciBhd2Fp
dChjb25zdCB2YWx1ZSBvZiBmb28oKSkge30gfSB9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9y
KCIndXNlIHN0cmljdCc7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUx
KCl7IGZvciBhd2FpdChjb25zdCB2YWx1ZSBpbiBmb28oKSkge30gfSIpOworICAgIGV2YWxGb3JT
eW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dp
dGhOYW1lMSgpeyBmb3IgYXdhaXQoY29uc3QgdmFsdWUgaW4gZm9vKCkpIHt9IH0iKTsKKyAgICBl
dmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24g
YXN5bmNXaXRoTmFtZTEoKXsgZm9yIGF3YWl0ICg7Oykge30gfSIpOworICAgIGV2YWxGb3JTeW50
YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhO
YW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2ID0gNDs7KSB7fSB9Iik7CisgICAgZXZhbEZvclN5bnRh
eEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uIGFzeW5jV2l0aE5h
bWUxKCl7IGZvciBhd2FpdCAobGV0IHYgb2YgZigpOzspIHt9IH0iKTsKKyAgICBldmFsRm9yU3lu
dGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIGExID0gYXN5bmMgZnVuY3Rpb24gYXN5bmNXaXRo
TmFtZTEoKXsgZm9yIGF3YWl0IChsZXQgdiBvZiBib287Oykge30gfSIpOworICAgIGV2YWxGb3JT
eW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYTEgPSBhc3luYyBmdW5jdGlvbiBhc3luY1dp
dGhOYW1lMSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGJvbyBvZikge30gfSIpOworICAgIGV2YWxG
b3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1l
MSgpeyBmb3IgYXdhaXQgKGxldCB2IG9mIGJvbyBpbikge30gfSIpOworICAgIGV2YWxGb3JTeW50
YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBhc3luYyBmdW5jdGlvbiBhc3luY1dpdGhOYW1lMSgpeyBm
b3IgYXdhaXQgKHYgaW4geCArIHggKSB7fSB9Iik7CiB9KSgpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy9zdHJlc3MvYXN5bmMtaXRlcmF0aW9uLXN5bnRheC5qcyBiL0pTVGVzdHMvc3RyZXNzL2FzeW5j
LWl0ZXJhdGlvbi1zeW50YXguanMKaW5kZXggODI2Mjc3ZTEzNTc3MGE2NjFkNTgwZTA2Yzk2MWVm
YzY0YjYyYzIzOS4uNjNlNWQ0N2Q1ZTRmNjQ2OGY0ZTg4ZWJiNWI0NDg5ZDgyYTEzOTdkZiAxMDA2
NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXN5bmMtaXRlcmF0aW9uLXN5bnRheC5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9hc3luYy1pdGVyYXRpb24tc3ludGF4LmpzCkBAIC00LDE2ICs0LDcgQEAg
dmFyIGFzc2VydCA9IGZ1bmN0aW9uIChyZXN1bHQsIGV4cGVjdGVkLCBtZXNzYWdlID0gIiIpIHsK
ICAgfQogfTsKIAotZnVuY3Rpb24gY2hlY2tTeW50YXgoc3JjKSB7Ci0gICAgdHJ5IHsKLSAgICAg
ICAgZXZhbChzcmMpOwotICAgIH0gY2F0Y2ggKGVycm9yKSB7Ci0gICAgICAgIGlmIChlcnJvciBp
bnN0YW5jZW9mIFN5bnRheEVycm9yKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTeW50
YXggRXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpICsgIlxuIHNjcmlwdDogYCIgKyBzcmMgKyAiYCIp
OwotICAgIH0KLX0KLQotZnVuY3Rpb24gY2hlY2tTeW50YXhFcnJvcihzcmMsIG1lc3NhZ2UpIHsK
K2Z1bmN0aW9uIGV2YWxGb3JTeW50YXhFcnJvcihzcmMsIG1lc3NhZ2UpIHsKICAgICB2YXIgYkVy
cm9yID0gZmFsc2U7CiAgICAgdHJ5IHsKICAgICAgICAgZXZhbChzcmMpOwpAQCAtMjYsNDQgKzE3
LDQ0IEBAIGZ1bmN0aW9uIGNoZWNrU3ludGF4RXJyb3Ioc3JjLCBtZXNzYWdlKSB7CiB9CiAKIChm
dW5jdGlvbiBjaGVja1NpbXBsZUFzeW5jR2VuZXJhdG9yU2xvcHB5TW9kZSgpIHsKLSAgICBjaGVj
a1N5bnRheCgndmFyIGExID0gYXN5bmMgZnVuY3Rpb24qYXN5bmNHZW5XaXRoTmFtZTEoKXt9Jyk7
Ci0gICAgY2hlY2tTeW50YXgoJ3ZhciBhMiA9IGFzeW5jIGZ1bmN0aW9uICphc3luY0dlbldpdGhO
YW1lMigpeyB5aWVsZCAxMTsgfScpOwotICAgIGNoZWNrU3ludGF4KCd2YXIgYTMgPSBhc3luYyBm
dW5jdGlvbiAqIGFzeW5jR2VuV2l0aE5hbWUyKCl7IGF3YWl0IHA7IHlpZWxkIDExOyB9Jyk7Ci0g
ICAgY2hlY2tTeW50YXgoJ3ZhciBkMSA9IGFzeW5jIGZ1bmN0aW9uKigpe30nKTsKLSAgICBjaGVj
a1N5bnRheCgndmFyIGQyID0gYXN5bmMgZnVuY3Rpb24qICgpeyB5aWVsZCAxMTsgfScpOwotICAg
IGNoZWNrU3ludGF4KCd2YXIgZDMgPSBhc3luYyBmdW5jdGlvbiAqICgpeyBhd2FpdCBwOyB5aWVs
ZCAxMTsgfScpOwotICAgIGNoZWNrU3ludGF4KCdhc3luYyBmdW5jdGlvbiogd2l0aE5hbWUxKCl7
ICB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJ2FzeW5jIGZ1bmN0aW9uICp3aXRoTmFtZTIoKXsgeWll
bGQgMTE7IH0nKTsKLSAgICBjaGVja1N5bnRheCgnYXN5bmMgZnVuY3Rpb24gKiB3aXRoTmFtZTMo
KXsgYXdhaXQgcDsgeWllbGQgMTE7IH0nKTsKLSAgICBjaGVja1N5bnRheCgnY2xhc3MgQSB7IGFz
eW5jICogbWV0aG9kKCkgeyB9IH0nKTsKLSAgICBjaGVja1N5bnRheCgnY2xhc3MgQiB7IGFzeW5j
ICogbWV0aG9kKCkge3lpZWxkIDExO30gfScpOwotICAgIGNoZWNrU3ludGF4KCdjbGFzcyBDIHsg
YXN5bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7Ci0gICAgY2hlY2tTeW50
YXgoJ2NsYXNzIEQgeyBhc3luYyAqICJtZXRob2QiKCkge3lpZWxkIDExOyBhd2FpdCBwO30gfScp
OwotICAgIGNoZWNrU3ludGF4KCdjbGFzcyBGIHsgYXN5bmMgKiAwKCkge3lpZWxkIDExOyBhd2Fp
dCBwO30gfScpOwotICAgIGNoZWNrU3ludGF4KCd2YXIgb2JqID0geyBhc3luYyAqIG1ldGhvZCgp
IHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsKLSAgICBjaGVja1N5bnRheCgnKHsgYXN5bmMgZm9v
KCkge30gfSknKTsKLSAgICBjaGVja1N5bnRheCgnKHsgYXN5bmMgOiAxIH0pJyk7CisgICAgY2hl
Y2tTY3JpcHRTeW50YXgoJ3ZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUx
KCl7fScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCd2YXIgYTIgPSBhc3luYyBmdW5jdGlvbiAq
YXN5bmNHZW5XaXRoTmFtZTIoKXsgeWllbGQgMTE7IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRh
eCgndmFyIGEzID0gYXN5bmMgZnVuY3Rpb24gKiBhc3luY0dlbldpdGhOYW1lMigpeyBhd2FpdCBw
OyB5aWVsZCAxMTsgfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCd2YXIgZDEgPSBhc3luYyBm
dW5jdGlvbiooKXt9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ3ZhciBkMiA9IGFzeW5jIGZ1
bmN0aW9uKiAoKXsgeWllbGQgMTE7IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgndmFyIGQz
ID0gYXN5bmMgZnVuY3Rpb24gKiAoKXsgYXdhaXQgcDsgeWllbGQgMTE7IH0nKTsKKyAgICBjaGVj
a1NjcmlwdFN5bnRheCgnYXN5bmMgZnVuY3Rpb24qIHdpdGhOYW1lMSgpeyAgfScpOworICAgIGNo
ZWNrU2NyaXB0U3ludGF4KCdhc3luYyBmdW5jdGlvbiAqd2l0aE5hbWUyKCl7IHlpZWxkIDExOyB9
Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ2FzeW5jIGZ1bmN0aW9uICogd2l0aE5hbWUzKCl7
IGF3YWl0IHA7IHlpZWxkIDExOyB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ2NsYXNzIEEg
eyBhc3luYyAqIG1ldGhvZCgpIHsgfSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJ2NsYXNz
IEIgeyBhc3luYyAqIG1ldGhvZCgpIHt5aWVsZCAxMTt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5
bnRheCgnY2xhc3MgQyB7IGFzeW5jICogbWV0aG9kKCkge3lpZWxkIDExOyBhd2FpdCBwO30gfScp
OworICAgIGNoZWNrU2NyaXB0U3ludGF4KCdjbGFzcyBEIHsgYXN5bmMgKiAibWV0aG9kIigpIHt5
aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnY2xhc3MgRiB7
IGFzeW5jICogMCgpIHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5
bnRheCgndmFyIG9iaiA9IHsgYXN5bmMgKiBtZXRob2QoKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9
Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyh7IGFzeW5jIGZvbygpIHt9IH0pJyk7CisgICAg
Y2hlY2tTY3JpcHRTeW50YXgoJyh7IGFzeW5jIDogMSB9KScpOwogfSkoKTsKIAogKGZ1bmN0aW9u
IGNoZWNrU2ltcGxlQXN5bmNHZW5lcmF0b3JTdHJpY3RNb2RlKCkgewotICAgIGNoZWNrU3ludGF4
KCcidXNlIHN0cmljdCI7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUx
KCl7fScpOwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBhMiA9IGFzeW5jIGZ1
bmN0aW9uICphc3luY0dlbldpdGhOYW1lMigpeyB5aWVsZCAxMTsgfScpOwotICAgIGNoZWNrU3lu
dGF4KCcidXNlIHN0cmljdCI7IHZhciBhMyA9IGFzeW5jIGZ1bmN0aW9uICogYXN5bmNHZW5XaXRo
TmFtZTIoKXsgYXdhaXQgcDsgeWllbGQgMTE7IH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBz
dHJpY3QiOyB2YXIgZDEgPSBhc3luYyBmdW5jdGlvbiooKXt9Jyk7Ci0gICAgY2hlY2tTeW50YXgo
JyJ1c2Ugc3RyaWN0IjsgdmFyIGQyID0gYXN5bmMgZnVuY3Rpb24qICgpeyB5aWVsZCAxMTsgfScp
OwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBkMyA9IGFzeW5jIGZ1bmN0aW9u
ICogKCl7IGF3YWl0IHA7IHlpZWxkIDExOyB9Jyk7Ci0gICAgY2hlY2tTeW50YXgoJyJ1c2Ugc3Ry
aWN0IjsgYXN5bmMgZnVuY3Rpb24qIHdpdGhOYW1lMSgpeyAgfScpOwotICAgIGNoZWNrU3ludGF4
KCcidXNlIHN0cmljdCI7IGFzeW5jIGZ1bmN0aW9uICp3aXRoTmFtZTIoKXsgeWllbGQgMTE7IH0n
KTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyBhc3luYyBmdW5jdGlvbiAqIHdpdGhO
YW1lMygpeyBhd2FpdCBwOyB5aWVsZCAxMTsgfScpOwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0
cmljdCI7IGNsYXNzIEEgeyBhc3luYyAqIG1ldGhvZCgpIHsgfSB9Jyk7Ci0gICAgY2hlY2tTeW50
YXgoJyJ1c2Ugc3RyaWN0IjsgY2xhc3MgQiB7IGFzeW5jICogbWV0aG9kKCkge3lpZWxkIDExO30g
fScpOwotICAgIGNoZWNrU3ludGF4KCcidXNlIHN0cmljdCI7IGNsYXNzIEMgeyBhc3luYyAqIG1l
dGhvZCgpIHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBz
dHJpY3QiOyBjbGFzcyBEIHsgYXN5bmMgKiAibWV0aG9kIigpIHt5aWVsZCAxMTsgYXdhaXQgcDt9
IH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyBjbGFzcyBFIHsgYXN5bmMgKiBb
ImNhbGMiICsgInVsYXRlIl0oKSB7eWllbGQgMTE7IGF3YWl0IHA7fSB9Jyk7Ci0gICAgY2hlY2tT
eW50YXgoJyJ1c2Ugc3RyaWN0IjsgY2xhc3MgRiB7IGFzeW5jICogMCgpIHt5aWVsZCAxMTsgYXdh
aXQgcDt9IH0nKTsKLSAgICBjaGVja1N5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgb2JqID0geyBh
c3luYyAqIG1ldGhvZCgpIHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsKLSAgICBjaGVja1N5bnRh
eCgnInVzZSBzdHJpY3QiOyAoeyBhc3luYyBmb28oKSB7fSB9KScpOwotICAgIGNoZWNrU3ludGF4
KCcidXNlIHN0cmljdCI7ICh7IGFzeW5jIDogMSB9KScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4
KCcidXNlIHN0cmljdCI7IHZhciBhMSA9IGFzeW5jIGZ1bmN0aW9uKmFzeW5jR2VuV2l0aE5hbWUx
KCl7fScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBhMiA9IGFz
eW5jIGZ1bmN0aW9uICphc3luY0dlbldpdGhOYW1lMigpeyB5aWVsZCAxMTsgfScpOworICAgIGNo
ZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7IHZhciBhMyA9IGFzeW5jIGZ1bmN0aW9uICog
YXN5bmNHZW5XaXRoTmFtZTIoKXsgYXdhaXQgcDsgeWllbGQgMTE7IH0nKTsKKyAgICBjaGVja1Nj
cmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgZDEgPSBhc3luYyBmdW5jdGlvbiooKXt9Jyk7
CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgdmFyIGQyID0gYXN5bmMgZnVu
Y3Rpb24qICgpeyB5aWVsZCAxMTsgfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0
cmljdCI7IHZhciBkMyA9IGFzeW5jIGZ1bmN0aW9uICogKCl7IGF3YWl0IHA7IHlpZWxkIDExOyB9
Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgYXN5bmMgZnVuY3Rpb24q
IHdpdGhOYW1lMSgpeyAgfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7
IGFzeW5jIGZ1bmN0aW9uICp3aXRoTmFtZTIoKXsgeWllbGQgMTE7IH0nKTsKKyAgICBjaGVja1Nj
cmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyBhc3luYyBmdW5jdGlvbiAqIHdpdGhOYW1lMygpeyBh
d2FpdCBwOyB5aWVsZCAxMTsgfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmlj
dCI7IGNsYXNzIEEgeyBhc3luYyAqIG1ldGhvZCgpIHsgfSB9Jyk7CisgICAgY2hlY2tTY3JpcHRT
eW50YXgoJyJ1c2Ugc3RyaWN0IjsgY2xhc3MgQiB7IGFzeW5jICogbWV0aG9kKCkge3lpZWxkIDEx
O30gfScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmljdCI7IGNsYXNzIEMgeyBh
c3luYyAqIG1ldGhvZCgpIHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsKKyAgICBjaGVja1Njcmlw
dFN5bnRheCgnInVzZSBzdHJpY3QiOyBjbGFzcyBEIHsgYXN5bmMgKiAibWV0aG9kIigpIHt5aWVs
ZCAxMTsgYXdhaXQgcDt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3Qi
OyBjbGFzcyBFIHsgYXN5bmMgKiBbImNhbGMiICsgInVsYXRlIl0oKSB7eWllbGQgMTE7IGF3YWl0
IHA7fSB9Jyk7CisgICAgY2hlY2tTY3JpcHRTeW50YXgoJyJ1c2Ugc3RyaWN0IjsgY2xhc3MgRiB7
IGFzeW5jICogMCgpIHt5aWVsZCAxMTsgYXdhaXQgcDt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5
bnRheCgnInVzZSBzdHJpY3QiOyB2YXIgb2JqID0geyBhc3luYyAqIG1ldGhvZCgpIHt5aWVsZCAx
MTsgYXdhaXQgcDt9IH0nKTsKKyAgICBjaGVja1NjcmlwdFN5bnRheCgnInVzZSBzdHJpY3QiOyAo
eyBhc3luYyBmb28oKSB7fSB9KScpOworICAgIGNoZWNrU2NyaXB0U3ludGF4KCcidXNlIHN0cmlj
dCI7ICh7IGFzeW5jIDogMSB9KScpOwogfSkoKTsKIAogCkBAIC04NSwzOCArNzYsMzggQEAgZnVu
Y3Rpb24gY2hlY2tTeW50YXhFcnJvcihzcmMsIG1lc3NhZ2UpIHsKIAogICAgIHdyYXBwZXJzLmZv
ckVhY2god3JhcHBlciA9PiB7CiAgICAgICAgIGV4cHJlc3Npb25zLmZvckVhY2goZXhwID0+IHsK
LSAgICAgICAgICAgIGNoZWNrU3ludGF4KHdyYXBwZXIuc3RhcnQgKyBleHAgKyB3cmFwcGVyLmZp
bmlzaCk7CisgICAgICAgICAgICBjaGVja1NjcmlwdFN5bnRheCh3cmFwcGVyLnN0YXJ0ICsgZXhw
ICsgd3JhcHBlci5maW5pc2gpOwogICAgICAgICB9KTsKICAgICB9KQogfSkoKTsKIAogCiAoZnVu
Y3Rpb24gY2hlY2tTaW1wbGVBc3luY0dlbmVyYXRvclN5bnRheEVycm9ySW5TbG9wcHlNb2RlKCkg
ewotICAgIGNoZWNrU3ludGF4RXJyb3IoInZhciBhc3luY0dlbkZuID0gYXN5bmMgZnVuY3Rpb24g
KmF3YWl0KCkge30iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9IGFz
eW5jIGZ1bmN0aW9uKihhd2FpdCkge30iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCJ2YXIgYXN5
bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uICp3aXRoTmFtZShhd2FpdCkge30iKTsKLSAgICBjaGVj
a1N5bnRheEVycm9yKCJhc3luYyBmdW5jdGlvbiAqYXN5bmNHZW5lcmF0b3JGdW5jdGlvbkRlY2xh
cmF0aW9uKGF3YWl0KSB7fSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoInZhciBhc3luY0dlbkZu
ID0gKmFzeW5jIGZ1bmN0aW9uICgpIHt9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIGFz
eW5jR2VuRm4gPSAqYXN5bmMgZnVuY3Rpb24gd2l0aE5hbWUoKSB7fSIpOwotICAgIGNoZWNrU3lu
dGF4RXJyb3IoIiphc3luYyBmdW5jdGlvbiBhc3luY0dlbmVyYXRvckZ1bmN0aW9uRGVjbGFyYXRp
b24oYXdhaXQpIHt9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigidmFyIG9iaiA9IHsgKmFzeW5j
IGFzeW5jR2VuZXJhdG9yTWV0aG9kKCkge30gfTsiKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCJ2
YXIgb2JqID0geyBhc3luYyBhc3luY0dlbmVyYXRvck1ldGhvZCooKSB7fSB9OyIpOwotICAgIGNo
ZWNrU3ludGF4RXJyb3IoImNsYXNzIEEgeyBnZXQgYXN5bmMqIHR0dCgpIHt9IH0iKTsKLSAgICBj
aGVja1N5bnRheEVycm9yKCJjbGFzcyBCIHsgZ2V0ICphc3luYyB0dHQoKSB7fSB9Iik7Ci0gICAg
Y2hlY2tTeW50YXhFcnJvcignKHsgYXN5bmMgPSAxIH0pJyk7CisgICAgZXZhbEZvclN5bnRheEVy
cm9yKCJ2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uICphd2FpdCgpIHt9Iik7CisgICAg
ZXZhbEZvclN5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uKihhd2Fp
dCkge30iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoInZhciBhc3luY0dlbkZuID0gYXN5bmMg
ZnVuY3Rpb24gKndpdGhOYW1lKGF3YWl0KSB7fSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigi
YXN5bmMgZnVuY3Rpb24gKmFzeW5jR2VuZXJhdG9yRnVuY3Rpb25EZWNsYXJhdGlvbihhd2FpdCkg
e30iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoInZhciBhc3luY0dlbkZuID0gKmFzeW5jIGZ1
bmN0aW9uICgpIHt9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCJ2YXIgYXN5bmNHZW5GbiA9
ICphc3luYyBmdW5jdGlvbiB3aXRoTmFtZSgpIHt9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9y
KCIqYXN5bmMgZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JGdW5jdGlvbkRlY2xhcmF0aW9uKGF3YWl0
KSB7fSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigidmFyIG9iaiA9IHsgKmFzeW5jIGFzeW5j
R2VuZXJhdG9yTWV0aG9kKCkge30gfTsiKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoInZhciBv
YmogPSB7IGFzeW5jIGFzeW5jR2VuZXJhdG9yTWV0aG9kKigpIHt9IH07Iik7CisgICAgZXZhbEZv
clN5bnRheEVycm9yKCJjbGFzcyBBIHsgZ2V0IGFzeW5jKiB0dHQoKSB7fSB9Iik7CisgICAgZXZh
bEZvclN5bnRheEVycm9yKCJjbGFzcyBCIHsgZ2V0ICphc3luYyB0dHQoKSB7fSB9Iik7CisgICAg
ZXZhbEZvclN5bnRheEVycm9yKCcoeyBhc3luYyA9IDEgfSknKTsKIH0pKCk7CiAKIChmdW5jdGlv
biBjaGVja1NpbXBsZUFzeW5jR2VuZXJhdG9yU3ludGF4RXJyb3JJblN0cmljdE1vZGUoKSB7Ci0g
ICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9IGFzeW5j
IGZ1bmN0aW9uICphd2FpdCgpIHt9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJp
Y3QnOyB2YXIgYXN5bmNHZW5GbiA9IGFzeW5jIGZ1bmN0aW9uKihhd2FpdCkge30iKTsKLSAgICBj
aGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhc3luY0dlbkZuID0gYXN5bmMgZnVu
Y3Rpb24gKndpdGhOYW1lKGF3YWl0KSB7fSIpOwotICAgIGNoZWNrU3ludGF4RXJyb3IoIid1c2Ug
c3RyaWN0JzsgYXN5bmMgZnVuY3Rpb24gKmFzeW5jR2VuZXJhdG9yRnVuY3Rpb25EZWNsYXJhdGlv
bihhd2FpdCkge30iKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBh
c3luY0dlbkZuID0gKmFzeW5jIGZ1bmN0aW9uICgpIHt9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJv
cigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9ICphc3luYyBmdW5jdGlvbiB3aXRoTmFt
ZSgpIHt9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyAqYXN5bmMgZnVu
Y3Rpb24gYXN5bmNHZW5lcmF0b3JGdW5jdGlvbkRlY2xhcmF0aW9uKGF3YWl0KSB7fSIpOwotICAg
IGNoZWNrU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIG9iaiA9IHsgKmFzeW5jIGFzeW5j
R2VuZXJhdG9yTWV0aG9kKCkge30gfTsiKTsKLSAgICBjaGVja1N5bnRheEVycm9yKCIndXNlIHN0
cmljdCc7IHZhciBvYmogPSB7IGFzeW5jIGFzeW5jR2VuZXJhdG9yTWV0aG9kKigpIHt9IH07Iik7
Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBjbGFzcyBBIHsgZ2V0IGFzeW5j
KiB0dHQoKSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBjbGFz
cyBCIHsgZ2V0ICphc3luYyB0dHQoKSB7fSB9Iik7Ci0gICAgY2hlY2tTeW50YXhFcnJvcigiJ3Vz
ZSBzdHJpY3QnOyAoeyBhc3luYyA9IDEgfSkiKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1
c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiAqYXdhaXQoKSB7fSIp
OworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyB2YXIgYXN5bmNHZW5GbiA9
IGFzeW5jIGZ1bmN0aW9uKihhd2FpdCkge30iKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1
c2Ugc3RyaWN0JzsgdmFyIGFzeW5jR2VuRm4gPSBhc3luYyBmdW5jdGlvbiAqd2l0aE5hbWUoYXdh
aXQpIHt9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IGFzeW5jIGZ1
bmN0aW9uICphc3luY0dlbmVyYXRvckZ1bmN0aW9uRGVjbGFyYXRpb24oYXdhaXQpIHt9Iik7Cisg
ICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0cmljdCc7IHZhciBhc3luY0dlbkZuID0gKmFz
eW5jIGZ1bmN0aW9uICgpIHt9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNlIHN0cmlj
dCc7IHZhciBhc3luY0dlbkZuID0gKmFzeW5jIGZ1bmN0aW9uIHdpdGhOYW1lKCkge30iKTsKKyAg
ICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgKmFzeW5jIGZ1bmN0aW9uIGFzeW5j
R2VuZXJhdG9yRnVuY3Rpb25EZWNsYXJhdGlvbihhd2FpdCkge30iKTsKKyAgICBldmFsRm9yU3lu
dGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgdmFyIG9iaiA9IHsgKmFzeW5jIGFzeW5jR2VuZXJhdG9y
TWV0aG9kKCkge30gfTsiKTsKKyAgICBldmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0Jzsg
dmFyIG9iaiA9IHsgYXN5bmMgYXN5bmNHZW5lcmF0b3JNZXRob2QqKCkge30gfTsiKTsKKyAgICBl
dmFsRm9yU3ludGF4RXJyb3IoIid1c2Ugc3RyaWN0JzsgY2xhc3MgQSB7IGdldCBhc3luYyogdHR0
KCkge30gfSIpOworICAgIGV2YWxGb3JTeW50YXhFcnJvcigiJ3VzZSBzdHJpY3QnOyBjbGFzcyBC
IHsgZ2V0ICphc3luYyB0dHQoKSB7fSB9Iik7CisgICAgZXZhbEZvclN5bnRheEVycm9yKCIndXNl
IHN0cmljdCc7ICh7IGFzeW5jID0gMSB9KSIpOwogfSkoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>