<?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>111214</bug_id>
          
          <creation_ts>2013-03-01 13:00:38 -0800</creation_ts>
          <short_desc>[V8] Rename $implContentDecls to $implContentInternals in CodeGeneratorV8.pm</short_desc>
          <delta_ts>2013-03-03 16:11:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>845433</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-01 13:00:38 -0800</bug_when>
    <thetext>$implContentDecls stores generated code that is put in a namespace &apos;XXXV8Internal&apos;. For clarification, it should be renamed to $implContentInternals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845438</commentid>
    <comment_count>1</comment_count>
      <attachid>191019</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-01 13:02:12 -0800</bug_when>
    <thetext>Created attachment 191019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845923</commentid>
    <comment_count>2</comment_count>
      <attachid>191019</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-02 23:12:35 -0800</bug_when>
    <thetext>Comment on attachment 191019
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845924</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-02 23:13:07 -0800</bug_when>
    <thetext>I&apos;m not sure the new name is that much better than the old name, but it doesn&apos;t seem worse either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846111</commentid>
    <comment_count>4</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-03 16:11:28 -0800</bug_when>
    <thetext>Committed r144588: &lt;http://trac.webkit.org/changeset/144588&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191019</attachid>
            <date>2013-03-01 13:02:12 -0800</date>
            <delta_ts>2013-03-03 16:11:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111214-20130301125823.patch</filename>
            <type>text/plain</type>
            <size>54632</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBkYzczMDU4NjI2NGJk
ODcwYWFkN2Y0MGIxY2IxOTIxMzAwM2Y4NC4uMzEzNTlhZGJhMWI3ZTAyZGU3ZjBkODI1ZWNhNzMx
MWI5ZWY5NTM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTAxICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlbmFtZSAk
aW1wbENvbnRlbnREZWNscyB0byAkaW1wbENvbnRlbnRJbnRlcm5hbHMgaW4gQ29kZUdlbmVyYXRv
clY4LnBtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTEyMTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAk
aW1wbENvbnRlbnREZWNscyBzdG9yZXMgZ2VuZXJhdGVkIGNvZGUgdGhhdCBpcyBwdXQgaW4gYSBu
YW1lc3BhY2UgJ1hYWFY4SW50ZXJuYWwnLgorICAgICAgICBGb3IgY2xhcmlmaWNhdGlvbiwgaXQg
c2hvdWxkIGJlIHJlbmFtZWQgdG8gJGltcGxDb250ZW50SW50ZXJuYWxzLgorCisgICAgICAgIE5v
IHRlc3RzLiBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlRG9tYWluU2FmZUZ1bmN0
aW9uR2V0dGVyKToKKyAgICAgICAgKEdlbmVyYXRlRG9tYWluU2FmZUZ1bmN0aW9uU2V0dGVyKToK
KyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JHZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVO
b3JtYWxBdHRyR2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyR2V0
dGVyKToKKyAgICAgICAgKEdlbmVyYXRlUmVwbGFjZWFibGVBdHRyU2V0dGVyQ2FsbGJhY2spOgor
ICAgICAgICAoR2VuZXJhdGVSZXBsYWNlYWJsZUF0dHJTZXR0ZXIpOgorICAgICAgICAoR2VuZXJh
dGVOb3JtYWxBdHRyU2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRy
U2V0dGVyKToKKyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uKToKKyAgICAgICAg
KEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZUZ1bmN0aW9uKToK
KyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRlZENvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAg
ICAoR2VuZXJhdGVTaW5nbGVDb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKEdlbmVyYXRl
RXZlbnRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChHZW5lcmF0ZVR5cGVkQXJyYXlDb25zdHJ1Y3Rv
cik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKFdyaXRlRGF0
YSk6CisKIDIwMTMtMDMtMDEgIFVkYXkgS2lyYW4gIDx1ZGF5a2lyYW5AbW90b3JvbGEuY29tPgog
CiAgICAgICAgIGdldENvbXB1dGVkU3R5bGUgbm90IGltcGxlbWVudGVkIGZvciAtd2Via2l0LWNv
bHVtbi1ydWxlIHNob3J0aGFuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBiY2QzZGM2ODFhNmFjNGU1OWFlZDg2YmYwZGZj
YjE1NTI4OGQzOWNkLi4zMjBiM2Q3ODljZmUzOWUwODUxNzlkYTE1YzQ0ZmM3ODUwNTlmYzU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JW
OC5wbQpAQCAtMzcsNyArMzcsNyBAQCBteSAkY29kZUdlbmVyYXRvcjsKIG15IEBoZWFkZXJDb250
ZW50ID0gKCk7CiBteSBAaW1wbENvbnRlbnRIZWFkZXIgPSAoKTsKIG15IEBpbXBsQ29udGVudCA9
ICgpOwotbXkgQGltcGxDb250ZW50RGVjbHMgPSAoKTsKK215IEBpbXBsQ29udGVudEludGVybmFs
cyA9ICgpOwogbXkgJWltcGxJbmNsdWRlcyA9ICgpOwogbXkgJWhlYWRlckluY2x1ZGVzID0gKCk7
CiAKQEAgLTc5MCw3ICs3OTAsNyBAQCBzdWIgR2VuZXJhdGVEb21haW5TYWZlRnVuY3Rpb25HZXR0
ZXIKICAgICBteSAkbmV3VGVtcGxhdGVTdHJpbmcgPSAidjg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5l
dygke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHtmdW5jTmFtZX1NZXRob2RDYWxsYmFjaywg
djhVbmRlZmluZWQoKSwgJHNpZ25hdHVyZSkiOwogCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkZy
YW1lLmgiKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgcHVzaChA
aW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5EKTsKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gJHtmdW5jTmFtZX1BdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2
ODo6RnVuY3Rpb25UZW1wbGF0ZT4gcHJpdmF0ZVRlbXBsYXRlID0gdjg6OlBlcnNpc3RlbnQ8djg6
OkZ1bmN0aW9uVGVtcGxhdGU+OjpOZXcoaW5mby5HZXRJc29sYXRlKCksICRuZXdUZW1wbGF0ZVN0
cmluZyk7CkBAIC04MjYsNyArODI2LDcgQEAgc3ViIEdlbmVyYXRlRG9tYWluU2FmZUZ1bmN0aW9u
U2V0dGVyCiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSBzaGlmdDsKICAgICBteSAkdjhJbnRlcmZh
Y2VOYW1lID0gIlY4IiAuICRpbnRlcmZhY2VOYW1lOwogCi0gICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgPDxFTkQpOworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCk7CiBz
dGF0aWMgdm9pZCAke2ludGVyZmFjZU5hbWV9RG9tYWluU2FmZUZ1bmN0aW9uU2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qg
djg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGhv
bGRlciA9IGluZm8uVGhpcygpLT5GaW5kSW5zdGFuY2VJblByb3RvdHlwZUNoYWluKCR7djhJbnRl
cmZhY2VOYW1lfTo6R2V0VGVtcGxhdGUoaW5mby5HZXRJc29sYXRlKCkpKTsKQEAgLTg0Nyw3ICs4
NDcsNyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckdldHRlcgogICAgIG15ICRpbnRlcmZhY2Ug
PSBzaGlmdDsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAKLSAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgcHVzaChAaW1wbENvbnRlbnRJ
bnRlcm5hbHMsIDw8RU5EKTsKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtpbnRlcmZh
Y2VOYW1lfUNvbnN0cnVjdG9yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBk
YXRhID0gaW5mby5EYXRhKCk7CkBAIC04ODMsMTggKzg4MywxOCBAQCBzdWIgR2VuZXJhdGVOb3Jt
YWxBdHRyR2V0dGVyQ2FsbGJhY2sKICAgICBteSAkYXR0ck5hbWUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPm5hbWU7CiAKICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRv
ci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwotICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikg
aWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAi
I2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKIAot
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
ICR7YXR0ck5hbWV9QXR0ckdldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1l
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKVxuIik7Ci0gICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgIntcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIEdlbmVyYXRlRmVh
dHVyZU9ic2VydmF0aW9uKCRhdHRyRXh0LT57IlY4TWVhc3VyZUFzIn0pKTsKKyAgICBwdXNoKEBp
bXBsQ29udGVudEludGVybmFscywgInN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHthdHRy
TmFtZX1BdHRyR2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudEludGVy
bmFscywgIntcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCBHZW5lcmF0ZUZl
YXR1cmVPYnNlcnZhdGlvbigkYXR0ckV4dC0+eyJWOE1lYXN1cmVBcyJ9KSk7CiAgICAgaWYgKEhh
c0N1c3RvbUdldHRlcigkYXR0ckV4dCkpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgIiAgICByZXR1cm4gJHt2OEludGVyZmFjZU5hbWV9Ojoke2F0dHJOYW1lfUF0dHJHZXR0ZXJD
dXN0b20obmFtZSwgaW5mbyk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5h
bHMsICIgICAgcmV0dXJuICR7djhJbnRlcmZhY2VOYW1lfTo6JHthdHRyTmFtZX1BdHRyR2V0dGVy
Q3VzdG9tKG5hbWUsIGluZm8pO1xuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICByZXR1cm4gJHtpbnRlcmZhY2VOYW1lfVY4SW50ZXJuYWw6OiR7
YXR0ck5hbWV9QXR0ckdldHRlcihuYW1lLCBpbmZvKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBs
Q29udGVudEludGVybmFscywgIiAgICByZXR1cm4gJHtpbnRlcmZhY2VOYW1lfVY4SW50ZXJuYWw6
OiR7YXR0ck5hbWV9QXR0ckdldHRlcihuYW1lLCBpbmZvKTtcbiIpOwogICAgIH0KLSAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAifVxuXG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCAiI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0
cmluZzsKKyAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIn1cblxuIik7CisgICAgcHVz
aChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31c
blxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogfQogCiBzdWIgR2VuZXJhdGVOb3JtYWxBdHRy
R2V0dGVyCkBAIC05MTgsNDIgKzkxOCw0MiBAQCBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVy
CiAgICAgbXkgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRp
bmdUZWFyT2ZmKCRpbnRlcmZhY2VOYW1lKTsKIAogICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9
ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZSk7Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiNpZiAke2NvbmRpdGlvbmFs
U3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgPDxFTkQpOworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiI2lmICR7
Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICBwdXNo
KEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiAke2F0dHJOYW1lfUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNv
bnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiBFTkQKICAgICBpZiAoJHN2Z05hdGl2ZVR5
cGUpIHsKICAgICAgICAgbXkgJHN2Z1dyYXBwZWROYXRpdmVUeXBlID0gJGNvZGVHZW5lcmF0b3It
PkdldFNWR1dyYXBwZWRUeXBlTmVlZGluZ1RlYXJPZmYoJGludGVyZmFjZU5hbWUpOwogICAgICAg
ICBpZiAoJHN2Z1dyYXBwZWROYXRpdmVUeXBlID1+IC9MaXN0LykgewotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnRJbnRlcm5hbHMsIDw8RU5EKTsKICAgICAkc3ZnTmF0aXZlVHlwZSogaW1wID0gJHt2OEludGVy
ZmFjZU5hbWV9Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKIEVORAogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5EKTsKICAgICAkc3ZnTmF0aXZlVHlw
ZSogd3JhcHBlciA9ICR7djhJbnRlcmZhY2VOYW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7
CiAgICAgJHN2Z1dyYXBwZWROYXRpdmVUeXBlJiBpbXBJbnN0YW5jZSA9IHdyYXBwZXItPnByb3Bl
cnR5UmVmZXJlbmNlKCk7CiBFTkQKICAgICAgICAgICAgIGlmICgkZ2V0dGVyU3RyaW5nVXNlc0lt
cCkgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwogICAgICRz
dmdXcmFwcGVkTmF0aXZlVHlwZSogaW1wID0gJmltcEluc3RhbmNlOwogRU5ECiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9IGVsc2lmICgkYXR0ckV4dC0+eyJWOE9uUHJvdG8ifSB8fCAk
YXR0ckV4dC0+eyJWOFVuZm9yZ2VhYmxlIn0pIHsKICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1l
IGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8
PEVORCk7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwog
ICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gaG9sZGVyID0gaW5mby5Ib2xkZXIoKTsKIEVORAog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIyBwZXJmb3JtIGxvb2t1cCBmaXJzdAotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5EKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IGhvbGRlciA9IGluZm8uVGhpcygpLT5GaW5kSW5zdGFuY2VJblByb3RvdHlwZUNoYWluKCR7
djhJbnRlcmZhY2VOYW1lfTo6R2V0VGVtcGxhdGUoaW5mby5HZXRJc29sYXRlKCkpKTsKICAgICBp
ZiAoaG9sZGVyLklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiBFTkQK
ICAgICAgICAgfQotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAg
ICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCk7CiAgICAgJHtpbnRlcmZhY2VO
YW1lfSogaW1wID0gJHt2OEludGVyZmFjZU5hbWV9Ojp0b05hdGl2ZShob2xkZXIpOwogRU5ECiAg
ICAgfSBlbHNlIHsKQEAgLTk2MiwxNSArOTYyLDE1IEBAIEVORAogICAgICAgICBpZiAoJGdldHRl
clN0cmluZ1VzZXNJbXAgJiYgJHJlZmxlY3QgJiYgISR1cmwgJiYgJGNvZGVHZW5lcmF0b3ItPklu
aGVyaXRzSW50ZXJmYWNlKCRpbnRlcmZhY2UsICJOb2RlIikgJiYgJGNvZGVHZW5lcmF0b3ItPklz
U3RyaW5nVHlwZSgkYXR0clR5cGUpKSB7CiAgICAgICAgICAgICAjIEdlbmVyYXRlIHN1cGVyLWNv
bXBhY3QgY2FsbCBmb3IgcmVndWxhciBhdHRyaWJ1dGUgZ2V0dGVyOgogICAgICAgICAgICAgbXkg
KCRmdW5jdGlvbk5hbWUsIEBhcmd1bWVudHMpID0gJGNvZGVHZW5lcmF0b3ItPkdldHRlckV4cHJl
c3Npb24oXCVpbXBsSW5jbHVkZXMsICRpbnRlcmZhY2VOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgRWxlbWVudCogaW1wID0gVjhFbGVt
ZW50Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICByZXR1cm4gdjhTdHJpbmcoaW1wLT4ke2Z1bmN0aW9uTmFtZX0o
IiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKSwgaW5mby5HZXRJc29sYXRlKCksIFJldHVy
blVuc2FmZUhhbmRsZSk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
ICJ9XG5cbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiNlbmRpZiAv
LyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICBFbGVtZW50KiBpbXAgPSBW
OEVsZW1lbnQ6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpO1xuIik7CisgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudEludGVybmFscywgIiAgICByZXR1cm4gdjhTdHJpbmcoaW1wLT4ke2Z1bmN0
aW9uTmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKSwgaW5mby5HZXRJc29sYXRl
KCksIFJldHVyblVuc2FmZUhhbmRsZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50SW50ZXJuYWxzLCAifVxuXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50
ZXJuYWxzLCAiI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRp
b25hbFN0cmluZzsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICMgU2tpcCB0aGUg
cmVzdCBvZiB0aGUgZnVuY3Rpb24hCiAgICAgICAgIH0KICAgICAgICAgaWYgKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+dHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiAmJiAkYXR0ckV4dC0+
eyJDYWNoZWRBdHRyaWJ1dGUifSkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgPDxFTkQpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5E
KTsKICAgICB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IHByb3BlcnR5TmFtZSA9IHY4OjpTdHJpbmc6
Ok5ld1N5bWJvbCgiJHthdHRyTmFtZX0iKTsKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFs
dWUgPSBpbmZvLkhvbGRlcigpLT5HZXRIaWRkZW5WYWx1ZShwcm9wZXJ0eU5hbWUpOwogICAgIGlm
ICghdmFsdWUuSXNFbXB0eSgpKQpAQCAtOTc4LDcgKzk3OCw3IEBAIEVORAogRU5ECiAgICAgICAg
IH0KICAgICAgICAgaWYgKCEkYXR0cmlidXRlLT5pc1N0YXRpYykgewotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnRJbnRlcm5hbHMsIDw8RU5EKTsKICAgICAke2ludGVyZmFjZU5hbWV9KiBpbXAgPSAke3Y4SW50
ZXJmYWNlTmFtZX06OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwogRU5ECiAgICAgICAgIH0KQEAg
LTk4NiwxMyArOTg2LDEzIEBAIEVORAogCiAgICAgIyBHZW5lcmF0ZSBzZWN1cml0eSBjaGVja3Mg
aWYgbmVjZXNzYXJ5CiAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkNoZWNrU2VjdXJpdHlGb3JOb2RlIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NU
b05vZGUoQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPiIgLiAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPm5hbWUgLiAiKCkpKVxuICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2ODo6VmFsdWU+
KHY4TnVsbChpbmZvLkdldElzb2xhdGUoKSkpO1xuXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENv
bnRlbnRJbnRlcm5hbHMsICIgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNj
ZXNzVG9Ob2RlKEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgaW1wLT4iIC4gJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5uYW1lIC4gIigpKSlcbiAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8djg6OlZh
bHVlPih2OE51bGwoaW5mby5HZXRJc29sYXRlKCkpKTtcblxuIik7CiAgICAgfQogCiAgICAgbXkg
JHVzZUV4Y2VwdGlvbnMgPSAxIGlmIEB7JGF0dHJpYnV0ZS0+Z2V0dGVyRXhjZXB0aW9uc307CiAg
ICAgaWYgKCR1c2VFeGNlcHRpb25zKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJFeGNl
cHRpb25Db2RlLmgiKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFs
cywgIiAgICBFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOwogICAgIH0KIAogICAgIG15ICRyZXR1
cm5UeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOwpAQCAtMTAxMSw3ICsxMDExLDcg
QEAgRU5ECiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gImlt
cC0+JHtmdW5jdGlvbk5hbWV9IjsKICAgICAgICAgfQotICAgICAgICB1bnNoaWZ0KEBhcmd1bWVu
dHMsIEdlbmVyYXRlQ2FsbFdpdGgoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ2FsbFdpdGgifSwgXEBpbXBsQ29udGVudERlY2xzLCAiICAgICIsIDApKTsKKyAg
ICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCBHZW5lcmF0ZUNhbGxXaXRoKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0sIFxAaW1wbENvbnRlbnRJ
bnRlcm5hbHMsICIgICAgIiwgMCkpOwogICAgICAgICAkZ2V0dGVyU3RyaW5nID0gIiR7ZnVuY3Rp
b25OYW1lfSgiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpIjsKICAgICB9IGVsc2Ugewog
ICAgICAgICAkZ2V0dGVyU3RyaW5nID0gImltcEluc3RhbmNlIjsKQEAgLTEwMTksMjIgKzEwMTks
MjIgQEAgRU5ECiAKICAgICBteSAkcmVzdWx0OwogICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1
cmUtPnR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiICYmICRpbnRlcmZhY2UtPm5hbWUgZXEgIkRPTVdp
bmRvdyIpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoIWltcC0+
ZG9jdW1lbnQoKSlcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAg
ICByZXR1cm4gdjhVbmRlZmluZWQoKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudElu
dGVybmFscywgIiAgICBpZiAoIWltcC0+ZG9jdW1lbnQoKSlcbiIpOworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudEludGVybmFscywgIiAgICAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7XG4iKTsK
ICAgICB9CiAKICAgICBpZiAoJHVzZUV4Y2VwdGlvbnMpIHsKICAgICAgICAgaWYgKCRuYXRpdmVU
eXBlID1+IC9eVjhTdHJpbmdSZXNvdXJjZS8pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsICIgICAgIiAuIENvbnZlcnRUb1Y4U3RyaW5nUmVzb3VyY2UoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLCAkbmF0aXZlVHlwZSwgInYiLCAkZ2V0dGVyU3RyaW5nKSAuICI7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICIgLiBDb252ZXJ0VG9W
OFN0cmluZ1Jlc291cmNlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgJG5hdGl2ZVR5cGUsICJ2Iiwg
JGdldHRlclN0cmluZykgLiAiO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICRuYXRpdmVUeXBlIHYgPSAkZ2V0dGVyU3RyaW5n
O1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICAkbmF0
aXZlVHlwZSB2ID0gJGdldHRlclN0cmluZztcbiIpOwogICAgICAgICB9Ci0gICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKFVOTElLRUxZKGVjKSlcbiIpOwotICAgICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKGVj
LCBpbmZvLkdldElzb2xhdGUoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRl
cm5hbHMsICIgICAgaWYgKFVOTElLRUxZKGVjKSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudEludGVybmFscywgIiAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgaW5mby5H
ZXRJc29sYXRlKCkpO1xuIik7CiAKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5FeHRlbmRl
ZEF0dHJpYnV0ZUNvbnRhaW5zKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkNhbGxXaXRoIn0sICJTY3JpcHRTdGF0ZSIpKSB7Ci0gICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCAiICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSlcbiIpOwotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuIHRocm93RXJy
b3Ioc3RhdGUuZXhjZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgpKTtcbiIpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlv
bigpKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICAg
ICAgcmV0dXJuIHRocm93RXJyb3Ioc3RhdGUuZXhjZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgp
KTtcbiIpOwogICAgICAgICB9CiAKICAgICAgICAgJHJlc3VsdCA9ICJ2IjsKQEAgLTEwNjEsMjQg
KzEwNjEsMjQgQEAgRU5ECiAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4JGFy
cmF5VHlwZS5oIik7CiAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIiRhcnJheVR5
cGUuaCIpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgIiAgICByZXR1cm4gdjhBcnJheSgke2dldHRlclN0cmluZ30sIGluZm8uR2V0SXNvbGF0ZSgp
KTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIn1cblxuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICByZXR1cm4gdjhBcnJh
eSgke2dldHRlclN0cmluZ30sIGluZm8uR2V0SXNvbGF0ZSgpKTtcbiIpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICJ9XG5cbiIpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCRyZXR1cm5UeXBlKTsK
ICAgICAgICAgIyBDaGVjayBmb3IgYSB3cmFwcGVyIGluIHRoZSB3cmFwcGVyIGNhY2hlLiBJZiB0
aGVyZSBpcyBvbmUsIHdlIGtub3cgdGhhdCBhIGhpZGRlbiByZWZlcmVuY2UgaGFzIGFscmVhZHkK
ICAgICAgICAgIyBiZWVuIGNyZWF0ZWQuIElmIHdlIGRvbid0IGZpbmQgYSB3cmFwcGVyLCB3ZSBj
cmVhdGUgYm90aCBhIHdyYXBwZXIgYW5kIGEgaGlkZGVuIHJlZmVyZW5jZS4KLSAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICBSZWZQdHI8JHJldHVyblR5cGU+IHJlc3VsdCA9ICR7
Z2V0dGVyU3RyaW5nfTtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAg
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+KERPTURhdGFTdG9yZTo6Z2V0V3JhcHBlcihyZXN1bHQuZ2V0KCksIGluZm8u
R2V0SXNvbGF0ZSgpKSkgOiB2OFVuZGVmaW5lZCgpO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKSB7XG4iKTsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0Lmdl
dCgpLCBpbmZvLkhvbGRlcigpLCBpbmZvLkdldElzb2xhdGUoKSk7XG4iKTsgIyBGSVhNRTogQ291
bGQgdXNlIHdyYXAgaGVyZSBzaW5jZSB0aGUgd3JhcHBlciBpcyBlbXB0eS4KLSAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSlcbiIp
OwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICAgICAgVjhIaWRkZW5Q
cm9wZXJ0eU5hbWU6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGluZm8uSG9sZGVyKCksIFwiJHth
dHRyTmFtZX1cIiwgd3JhcHBlcik7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgIiAgICB9XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1
cm4gd3JhcHBlcjtcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAifVxuXG4i
KTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiNlbmRpZiAvLyAke2NvbmRpdGlv
bmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgICAgIHB1c2goQGlt
cGxDb250ZW50SW50ZXJuYWxzLCAiICAgIFJlZlB0cjwkcmV0dXJuVHlwZT4gcmVzdWx0ID0gJHtn
ZXR0ZXJTdHJpbmd9O1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAi
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KERPTURhdGFTdG9yZTo6Z2V0V3JhcHBlcihyZXN1bHQuZ2V0KCksIGlu
Zm8uR2V0SXNvbGF0ZSgpKSkgOiB2OFVuZGVmaW5lZCgpO1xuIik7CisgICAgICAgIHB1c2goQGlt
cGxDb250ZW50SW50ZXJuYWxzLCAiICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkge1xuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICAgICB3cmFwcGVyID0gdG9W
OChyZXN1bHQuZ2V0KCksIGluZm8uSG9sZGVyKCksIGluZm8uR2V0SXNvbGF0ZSgpKTtcbiIpOyAj
IEZJWE1FOiBDb3VsZCB1c2Ugd3JhcCBoZXJlIHNpbmNlIHRoZSB3cmFwcGVyIGlzIGVtcHR5Lgor
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICAgICAgaWYgKCF3cmFwcGVy
LklzRW1wdHkoKSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAg
ICAgICAgICAgIFY4SGlkZGVuUHJvcGVydHlOYW1lOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShp
bmZvLkhvbGRlcigpLCBcIiR7YXR0ck5hbWV9XCIsIHdyYXBwZXIpO1xuIik7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIH1cbiIpOworICAgICAgICBwdXNoKEBpbXBs
Q29udGVudEludGVybmFscywgIiAgICByZXR1cm4gd3JhcHBlcjtcbiIpOworICAgICAgICBwdXNo
KEBpbXBsQ29udGVudEludGVybmFscywgIn1cblxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50SW50ZXJuYWxzLCAiI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRj
b25kaXRpb25hbFN0cmluZzsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTA4Niw3ICsx
MDg2LDcgQEAgRU5ECiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOCRhdHRyVHlwZS5oIik7
CiAgICAgICAgIG15ICRzdmdOYXRpdmVUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1R5cGVO
ZWVkaW5nVGVhck9mZigkYXR0clR5cGUpOwogICAgICAgICAjIENvbnZlcnQgZnJvbSBhYnN0cmFj
dCBTVkdQcm9wZXJ0eSB0byByZWFsIHR5cGUsIHNvIHRoZSByaWdodCB0b0pTKCkgbWV0aG9kIGNh
biBiZSBpbnZva2VkLgotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVy
biB0b1Y4RmFzdChzdGF0aWNfY2FzdDwkc3ZnTmF0aXZlVHlwZSo+KCRyZXN1bHQpLCBpbmZvLCBp
bXApO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIHJldHVy
biB0b1Y4RmFzdChzdGF0aWNfY2FzdDwkc3ZnTmF0aXZlVHlwZSo+KCRyZXN1bHQpLCBpbmZvLCBp
bXApO1xuIik7CiAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdU
ZWFyT2ZmKCRhdHRyVHlwZSkgYW5kIG5vdCAkaW50ZXJmYWNlTmFtZSA9fiAvTGlzdCQvKSB7CiAg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOCRhdHRyVHlwZS5oIik7CiAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJTVkdQcm9wZXJ0eVRlYXJPZmYuaCIpOwpAQCAtMTEyNCwxMiArMTEyNCwx
MiBAQCBFTkQKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAkd3JhcHBlZFZhbHVl
ID0gIldURjo6Z2V0UHRyKCR7dGVhck9mZlR5cGV9OjpjcmVhdGUoJHJlc3VsdCkpIjsKICAgICAg
ICAgfQotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiB0b1Y4RmFz
dCgkd3JhcHBlZFZhbHVlLCBpbmZvLCBpbXApO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50SW50ZXJuYWxzLCAiICAgIHJldHVybiB0b1Y4RmFzdCgkd3JhcHBlZFZhbHVlLCBpbmZvLCBp
bXApO1xuIik7CiAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJN
ZXNzYWdlUG9ydEFycmF5IikgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiTWVzc2FnZVBv
cnQuaCIpOwogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhNZXNzYWdlUG9ydC5oIik7CiAg
ICAgICAgIG15ICRnZXR0ZXJGdW5jID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5uYW1lKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
PDxFTkQpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwogICAg
IE1lc3NhZ2VQb3J0QXJyYXkqIHBvcnRzID0gaW1wLT4ke2dldHRlckZ1bmN9KCk7CiAgICAgaWYg
KCFwb3J0cykKICAgICAgICAgcmV0dXJuIHY4OjpBcnJheTo6TmV3KDApOwpAQCAtMTE0MSwxOCAr
MTE0MSwxOCBAQCBFTkQKIEVORAogICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
dHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiAmJiAkYXR0ckV4dC0+eyJDYWNoZWRBdHRy
aWJ1dGUifSkgewogICAgICAgICBteSAkZ2V0dGVyRnVuYyA9ICRjb2RlR2VuZXJhdG9yLT5XS19s
Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSk7Ci0gICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsIDw8RU5EKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMs
IDw8RU5EKTsKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkID0g
aW1wLT4ke2dldHRlckZ1bmN9KCk7CiAgICAgdmFsdWUgPSBzZXJpYWxpemVkID8gc2VyaWFsaXpl
ZC0+ZGVzZXJpYWxpemUoKSA6IHY4OjpIYW5kbGU8djg6OlZhbHVlPih2OE51bGwoaW5mby5HZXRJ
c29sYXRlKCkpKTsKICAgICBpbmZvLkhvbGRlcigpLT5TZXRIaWRkZW5WYWx1ZShwcm9wZXJ0eU5h
bWUsIHZhbHVlKTsKICAgICByZXR1cm4gdmFsdWU7CiBFTkQKICAgICB9IGVsc2UgewotICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiAiIC4gTmF0aXZlVG9KU1ZhbHVl
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgJHJlc3VsdCwgImluZm8uSG9sZGVyKCkiLCAiaW5mby5H
ZXRJc29sYXRlKCkiLCAiaW5mbyIsICJpbXAiLCAiUmV0dXJuVW5zYWZlSGFuZGxlIikuIjtcbiIp
OworICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICByZXR1cm4gIiAuIE5h
dGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsICRyZXN1bHQsICJpbmZvLkhvbGRl
cigpIiwgImluZm8uR2V0SXNvbGF0ZSgpIiwgImluZm8iLCAiaW1wIiwgIlJldHVyblVuc2FmZUhh
bmRsZSIpLiI7XG4iKTsKICAgICB9CiAKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAifVxu
XG4iKTsgICMgZW5kIG9mIGdldHRlcgotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIjZW5k
aWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwor
ICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAifVxuXG4iKTsgICMgZW5kIG9mIGdldHRl
cgorICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiI2VuZGlmIC8vICR7Y29uZGl0aW9u
YWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKIH0KIAogc3ViIEdlbmVyYXRl
UmVwbGFjZWFibGVBdHRyU2V0dGVyQ2FsbGJhY2sKQEAgLTExNjAsMTEgKzExNjAsMTEgQEAgc3Vi
IEdlbmVyYXRlUmVwbGFjZWFibGVBdHRyU2V0dGVyQ2FsbGJhY2sKICAgICBteSAkaW50ZXJmYWNl
ID0gc2hpZnQ7CiAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwogCi0g
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgInN0YXRpYyB2b2lkICR7aW50ZXJmYWNlTmFtZX1S
ZXBsYWNlYWJsZUF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8p
XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAie1xuIik7Ci0gICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlY4TWVhc3VyZUFzIn0pKTsKLSAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCAiICAgIHJldHVybiAke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHtpbnRlcmZh
Y2VOYW1lfVJlcGxhY2VhYmxlQXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7XG4iKTsKLSAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAifVxuXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVu
dEludGVybmFscywgInN0YXRpYyB2b2lkICR7aW50ZXJmYWNlTmFtZX1SZXBsYWNlYWJsZUF0dHJT
ZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pXG4iKTsKKyAgICBwdXNo
KEBpbXBsQ29udGVudEludGVybmFscywgIntcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50SW50
ZXJuYWxzLCBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiVjhNZWFzdXJlQXMifSkpOworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJu
YWxzLCAiICAgIHJldHVybiAke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHtpbnRlcmZhY2VO
YW1lfVJlcGxhY2VhYmxlQXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7XG4iKTsKKyAgICBw
dXNoKEBpbXBsQ29udGVudEludGVybmFscywgIn1cblxuIik7CiB9CiAKIHN1YiBHZW5lcmF0ZVJl
cGxhY2VhYmxlQXR0clNldHRlcgpAQCAtMTE3MiwyMCArMTE3MiwyMCBAQCBzdWIgR2VuZXJhdGVS
ZXBsYWNlYWJsZUF0dHJTZXR0ZXIKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAgbXkg
JGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwogCi0gICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgPDxFTkQpOworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCk7
CiBzdGF0aWMgdm9pZCAke2ludGVyZmFjZU5hbWV9UmVwbGFjZWFibGVBdHRyU2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qg
djg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKIEVORAogICAgIGlmICgkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9KSB7CiAgICAgICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJGcmFtZS5oIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5E
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5EKTsKICAgICAke2lu
dGVyZmFjZU5hbWV9KiBpbXAgPSBWOCR7aW50ZXJmYWNlTmFtZX06OnRvTmF0aXZlKGluZm8uSG9s
ZGVyKCkpOwogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRnJh
bWUoQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPmZyYW1lKCkpKQogICAgICAgICByZXR1
cm47CiBFTkQKICAgICB9CiAKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7Cisg
ICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5EKTsKICAgICBpbmZvLlRoaXMoKS0+
Rm9yY2VTZXQobmFtZSwgdmFsdWUpOwogfQogCkBAIC0xMjAzLDE4ICsxMjAzLDE4IEBAIHN1YiBH
ZW5lcmF0ZU5vcm1hbEF0dHJTZXR0ZXJDYWxsYmFjawogICAgIG15ICRhdHRyTmFtZSA9ICRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKIAogICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRj
b2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZSk7Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiNpZiAke2NvbmRpdGlvbmFsU3Ry
aW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgcHVzaChAaW1wbENvbnRlbnRJ
bnRlcm5hbHMsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNvbmRpdGlvbmFs
U3RyaW5nOwogCi0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgInN0YXRpYyB2b2lkICR7YXR0
ck5hbWV9QXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6
TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbylcbiIp
OwotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJ7XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigkYXR0ckV4dC0+eyJWOE1lYXN1
cmVBcyJ9KSk7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICJzdGF0aWMgdm9pZCAk
e2F0dHJOYW1lfUF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8p
XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIntcbiIpOworICAgIHB1c2go
QGltcGxDb250ZW50SW50ZXJuYWxzLCBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigkYXR0ckV4
dC0+eyJWOE1lYXN1cmVBcyJ9KSk7CiAgICAgaWYgKEhhc0N1c3RvbVNldHRlcigkYXR0ckV4dCkp
IHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAke3Y4SW50ZXJmYWNlTmFt
ZX06OiR7YXR0ck5hbWV9QXR0clNldHRlckN1c3RvbShuYW1lLCB2YWx1ZSwgaW5mbyk7XG4iKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgJHt2OEludGVyZmFjZU5h
bWV9Ojoke2F0dHJOYW1lfUF0dHJTZXR0ZXJDdXN0b20obmFtZSwgdmFsdWUsIGluZm8pO1xuIik7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAke2lu
dGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHthdHRyTmFtZX1BdHRyU2V0dGVyKG5hbWUsIHZhbHVl
LCBpbmZvKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICAk
e2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHthdHRyTmFtZX1BdHRyU2V0dGVyKG5hbWUsIHZh
bHVlLCBpbmZvKTtcbiIpOwogICAgIH0KLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAifVxu
XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiI2VuZGlmIC8vICR7Y29uZGl0aW9u
YWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICBwdXNoKEBpbXBsQ29u
dGVudEludGVybmFscywgIn1cblxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMs
ICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNvbmRpdGlvbmFsU3Ry
aW5nOwogfQogCiBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyU2V0dGVyCkBAIC0xMjMzLDkgKzEyMzMs
OSBAQCBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyU2V0dGVyCiAgICAgfQogCiAgICAgbXkgJGNvbmRp
dGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmco
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiI2lm
ICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKLSAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAic3RhdGljIHZvaWQgJHthdHRyTmFtZX1BdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbylcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsICJ7XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiNpZiAke2Nv
bmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgcHVzaChA
aW1wbENvbnRlbnRJbnRlcm5hbHMsICJzdGF0aWMgdm9pZCAke2F0dHJOYW1lfUF0dHJTZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBj
b25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKVxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnRJ
bnRlcm5hbHMsICJ7XG4iKTsKIAogICAgICMgSWYgdGhlICJTdHJpY3RUeXBlQ2hlY2tpbmciIGV4
dGVuZGVkIGF0dHJpYnV0ZSBpcyBwcmVzZW50LCBhbmQgdGhlIGF0dHJpYnV0ZSdzIHR5cGUgaXMg
YW4KICAgICAjIGludGVyZmFjZSB0eXBlLCB0aGVuIGlmIHRoZSBpbmNvbWluZyB2YWx1ZSBkb2Vz
IG5vdCBpbXBsZW1lbnQgdGhhdCBpbnRlcmZhY2UsIGEgVHlwZUVycm9yIGlzCkBAIC0xMjQ1LDEw
ICsxMjQ1LDEwIEBAIHN1YiBHZW5lcmF0ZU5vcm1hbEF0dHJTZXR0ZXIKICAgICBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5n
In0pIHsKICAgICAgICAgbXkgJGFyZ1R5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7
CiAgICAgICAgIGlmIChJc1dyYXBwZXJUeXBlKCRhcmdUeXBlKSkgewotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSAm
JiAhVjgke2FyZ1R5cGV9OjpIYXNJbnN0YW5jZSh2YWx1ZSwgaW5mby5HZXRJc29sYXRlKCkpKSB7
XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHRocm93
VHlwZUVycm9yKDAsIGluZm8uR2V0SXNvbGF0ZSgpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuO1xuIik7Ci0gICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnRJbnRlcm5hbHMsICIgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbCh2YWx1ZSkgJiYgIVY4
JHthcmdUeXBlfTo6SGFzSW5zdGFuY2UodmFsdWUsIGluZm8uR2V0SXNvbGF0ZSgpKSkge1xuIik7
CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICAgICAgdGhyb3dU
eXBlRXJyb3IoMCwgaW5mby5HZXRJc29sYXRlKCkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudEludGVybmFscywgIiAgICAgICAgcmV0dXJuO1xuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICB9XG4iKTsKICAgICAgICAgfQogICAgIH0K
IApAQCAtMTI1NiwyMSArMTI1NiwyMSBAQCBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyU2V0dGVyCiAg
ICAgaWYgKCRzdmdOYXRpdmVUeXBlKSB7CiAgICAgICAgIG15ICRzdmdXcmFwcGVkTmF0aXZlVHlw
ZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdXcmFwcGVkVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbnRl
cmZhY2VOYW1lKTsKICAgICAgICAgaWYgKCRzdmdXcmFwcGVkTmF0aXZlVHlwZSA9fiAvTGlzdCQv
KSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwogICAgICRzdmdOYXRpdmVU
eXBlKiBpbXAgPSAke3Y4SW50ZXJmYWNlTmFtZX06OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwog
RU5ECiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiRXhj
ZXB0aW9uQ29kZS5oIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAg
ICRzdmdOYXRpdmVUeXBlKiB3cmFwcGVyID0gJHt2OEludGVyZmFjZU5hbWV9Ojp0b05hdGl2ZShp
bmZvLkhvbGRlcigpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
IiAgICBpZiAod3JhcHBlci0+aXNSZWFkT25seSgpKSB7XG4iKTsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHNldERPTUV4Y2VwdGlvbihOT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlIsIGluZm8uR2V0SXNvbGF0ZSgpKTtcbiIpOwotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0dXJuO1xuIik7Ci0gICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIpOwotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUmIGltcEluc3RhbmNlID0g
d3JhcHBlci0+cHJvcGVydHlSZWZlcmVuY2UoKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUqIGltcCA9ICZpbXBJbnN0
YW5jZTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAg
JHN2Z05hdGl2ZVR5cGUqIHdyYXBwZXIgPSAke3Y4SW50ZXJmYWNlTmFtZX06OnRvTmF0aXZlKGlu
Zm8uSG9sZGVyKCkpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFs
cywgIiAgICBpZiAod3JhcHBlci0+aXNSZWFkT25seSgpKSB7XG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICAgICBzZXRET01FeGNlcHRpb24oTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSLCBpbmZvLkdldElzb2xhdGUoKSk7XG4iKTsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICAgICByZXR1cm47XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIH1cbiIpOworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgJHN2Z1dyYXBwZWROYXRpdmVU
eXBlJiBpbXBJbnN0YW5jZSA9IHdyYXBwZXItPnByb3BlcnR5UmVmZXJlbmNlKCk7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICRzdmdXcmFwcGVkTmF0
aXZlVHlwZSogaW1wID0gJmltcEluc3RhbmNlO1xuIik7CiAgICAgICAgIH0KICAgICB9IGVsc2lm
ICgkYXR0ckV4dC0+eyJWOE9uUHJvdG8ifSkgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCA8PEVORCk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCk7
CiAgICAgJHtpbnRlcmZhY2VOYW1lfSogaW1wID0gJHt2OEludGVyZmFjZU5hbWV9Ojp0b05hdGl2
ZShpbmZvLkhvbGRlcigpKTsKIEVORAogICAgIH0gZWxzZSB7CkBAIC0xMjgwLDE3ICsxMjgwLDE3
IEBAIEVORAogICAgICAgICAgICAgbXkgJGNvbnRlbnRBdHRyaWJ1dGVOYW1lID0gJHJlZmxlY3Qg
ZXEgIlZBTFVFX0lTX01JU1NJTkciID8gbGMgJGF0dHJOYW1lIDogJHJlZmxlY3Q7CiAgICAgICAg
ICAgICBteSAkbmFtZXNwYWNlID0gJGNvZGVHZW5lcmF0b3ItPk5hbWVzcGFjZUZvckF0dHJpYnV0
ZU5hbWUoJGludGVyZmFjZU5hbWUsICRjb250ZW50QXR0cmlidXRlTmFtZSk7CiAgICAgICAgICAg
ICBBZGRUb0ltcGxJbmNsdWRlcygiJHtuYW1lc3BhY2V9LmgiKTsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgRWxlbWVudCogaW1wID0gVjhFbGVtZW50Ojp0b05hdGl2
ZShpbmZvLkhvbGRlcigpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgIiAgICBWOFRSWUNBVENIX0ZPUl9WOFNUUklOR1JFU09VUkNFX1ZPSUQoVjhTdHJpbmdSZXNv
dXJjZTxXaXRoTnVsbENoZWNrPiwgc3RyaW5nUmVzb3VyY2UsIHZhbHVlKTtcbiIpOwotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpbXAtPnNldEF0dHJpYnV0ZSgke25h
bWVzcGFjZX06OiR7Y29udGVudEF0dHJpYnV0ZU5hbWV9QXR0ciwgc3RyaW5nUmVzb3VyY2UpO1xu
Iik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAifVxuXG4iKTsKLSAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0
cmluZ31cblxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnRJbnRlcm5hbHMsICIgICAgRWxlbWVudCogaW1wID0gVjhFbGVtZW50Ojp0b05hdGl2
ZShpbmZvLkhvbGRlcigpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRl
cm5hbHMsICIgICAgVjhUUllDQVRDSF9GT1JfVjhTVFJJTkdSRVNPVVJDRV9WT0lEKFY4U3RyaW5n
UmVzb3VyY2U8V2l0aE51bGxDaGVjaz4sIHN0cmluZ1Jlc291cmNlLCB2YWx1ZSk7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIGltcC0+c2V0QXR0cmli
dXRlKCR7bmFtZXNwYWNlfTo6JHtjb250ZW50QXR0cmlidXRlTmFtZX1BdHRyLCBzdHJpbmdSZXNv
dXJjZSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAifVxu
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiI2VuZGlmIC8v
ICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgICMgU2tpcCB0aGUgcmVzdCBvZiB0aGUgZnVuY3Rp
b24hCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoISRhdHRyaWJ1dGUtPmlzU3RhdGljKSB7Ci0g
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwogICAgICR7aW50ZXJmYWNlTmFtZX0q
IGltcCA9ICR7djhJbnRlcmZhY2VOYW1lfTo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiBFTkQK
ICAgICAgICAgfQpAQCAtMTI5OSwxOSArMTI5OSwxOSBAQCBFTkQKICAgICBteSAkbmF0aXZlVHlw
ZSA9IEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCk7
CiAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiRXZlbnRMaXN0ZW5lciIp
IHsKICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPm5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFpbXAtPmRvY3VtZW50KCkp
XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVy
bjtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgaWYg
KCFpbXAtPmRvY3VtZW50KCkpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50
ZXJuYWxzLCAiICAgICAgICByZXR1cm47XG4iKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIG15ICR2YWx1ZSA9IEpTVmFsdWVUb05hdGl2ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUs
ICJ2YWx1ZSIsICJpbmZvLkdldElzb2xhdGUoKSIpOwogICAgICAgICBteSAkYXJyYXlUeXBlID0g
JGNvZGVHZW5lcmF0b3ItPkdldEFycmF5VHlwZSgkbmF0aXZlVHlwZSk7CiAKICAgICAgICAgaWYg
KCRuYXRpdmVUeXBlID1+IC9eVjhTdHJpbmdSZXNvdXJjZS8pIHsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgIiAuIENvbnZlcnRUb1Y4U3RyaW5nUmVzb3VyY2UoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLCAkbmF0aXZlVHlwZSwgInYiLCAkdmFsdWUsICJWT0lEIikgLiAi
XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICIgLiBD
b252ZXJ0VG9WOFN0cmluZ1Jlc291cmNlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgJG5hdGl2ZVR5
cGUsICJ2IiwgJHZhbHVlLCAiVk9JRCIpIC4gIlxuIik7CiAgICAgICAgIH0gZWxzaWYgKCRhcnJh
eVR5cGUpIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgVmVjdG9y
PCRhcnJheVR5cGU+IHYgPSAkdmFsdWU7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50SW50ZXJuYWxzLCAiICAgIFZlY3RvcjwkYXJyYXlUeXBlPiB2ID0gJHZhbHVlO1xuIik7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAg
ICRuYXRpdmVUeXBlIHYgPSAkdmFsdWU7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50SW50ZXJuYWxzLCAiICAgICRuYXRpdmVUeXBlIHYgPSAkdmFsdWU7XG4iKTsKICAgICAgICAg
fQogICAgIH0KIApAQCAtMTMyMyw3ICsxMzIzLDcgQEAgRU5ECiAgICAgICAgICAgICBwdXNoKEB2
YWxpZEVxdWFsaXRpZXMsICJzdHJpbmcgPT0gXCIkZW51bVZhbHVlXCIiKTsKICAgICAgICAgfQog
ICAgICAgICBteSAkZW51bVZhbGlkYXRpb25FeHByZXNzaW9uID0gam9pbigiIHx8ICIsIEB2YWxp
ZEVxdWFsaXRpZXMpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCk7CiAgICAgU3RyaW5nIHN0
cmluZyA9IHY7CiAgICAgaWYgKCEoJGVudW1WYWxpZGF0aW9uRXhwcmVzc2lvbikpCiAgICAgICAg
IHJldHVybjsKQEAgLTEzNDAsMzAgKzEzNDAsMzAgQEAgRU5ECiAKICAgICBpZiAoJHVzZUV4Y2Vw
dGlvbnMpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkV4Y2VwdGlvbkNvZGUuaCIpOwot
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
O1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwO1xuIik7CiAgICAgfQogCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJT
VkdOdW1iZXIiKSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgKmltcCA9
ICRyZXN1bHQ7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAg
KmltcCA9ICRyZXN1bHQ7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJFdmVudExpc3RlbmVyIikgewogICAgICAgICAgICAgbXkg
JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUgPSAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0
ck5hbWUpOwogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QWJzdHJhY3RFdmVudExp
c3RlbmVyLmgiKTsKICAgICAgICAgICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50
ZXJmYWNlKCRpbnRlcmZhY2UsICJOb2RlIikpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgIHRyYW5zZmVySGlkZGVuRGVwZW5kZW5jeShpbmZvLkhvbGRlcigp
LCBpbXAtPiRhdHRyTmFtZSgpLCB2YWx1ZSwgJHt2OEludGVyZmFjZU5hbWV9OjpldmVudExpc3Rl
bmVyQ2FjaGVJbmRleCwgaW5mby5HZXRJc29sYXRlKCkpO1xuIik7CisgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgdHJhbnNmZXJIaWRkZW5EZXBlbmRlbmN5
KGluZm8uSG9sZGVyKCksIGltcC0+JGF0dHJOYW1lKCksIHZhbHVlLCAke3Y4SW50ZXJmYWNlTmFt
ZX06OmV2ZW50TGlzdGVuZXJDYWNoZUluZGV4LCBpbmZvLkdldElzb2xhdGUoKSk7XG4iKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOEV2ZW50TGlzdGVu
ZXJMaXN0LmgiKTsKICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2VyQ29u
dGV4dCIgYW5kICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSBlcSAib25lcnJvciIpIHsKICAg
ICAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhXb3JrZXJDb250ZXh0RXJyb3JIYW5k
bGVyLmgiKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGlt
cC0+c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZE9y
Q3JlYXRlV3JhcHBlcjxWOFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIp
OworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIGltcC0+
c2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZE9yQ3Jl
YXRlV3JhcHBlcjxWOFdvcmtlckNvbnRleHRFcnJvckhhbmRsZXI+KHZhbHVlLCB0cnVlKSIpOwog
ICAgICAgICAgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIgYW5kICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSBlcSAib25lcnJvciIpIHsKICAgICAgICAgICAgICAg
ICBBZGRUb0ltcGxJbmNsdWRlcygiVjhXaW5kb3dFcnJvckhhbmRsZXIuaCIpOwotICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1
bmN0aW9uTmFtZShWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4V2lu
ZG93RXJyb3JIYW5kbGVyPih2YWx1ZSwgdHJ1ZSkiKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudEludGVybmFscywgIiAgICBpbXAtPnNldCRpbXBsU2V0dGVyRnVuY3Rpb25OYW1l
KFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhXaW5kb3dFcnJvckhh
bmRsZXI+KHZhbHVlLCB0cnVlKSIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIGltcC0+c2V0JGltcGxTZXR0ZXJGdW5j
dGlvbk5hbWUoVjhFdmVudExpc3RlbmVyTGlzdDo6Z2V0RXZlbnRMaXN0ZW5lcih2YWx1ZSwgdHJ1
ZSwgTGlzdGVuZXJGaW5kT3JDcmVhdGUpIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnRJbnRlcm5hbHMsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShWOEV2
ZW50TGlzdGVuZXJMaXN0OjpnZXRFdmVudExpc3RlbmVyKHZhbHVlLCB0cnVlLCBMaXN0ZW5lckZp
bmRPckNyZWF0ZSkiKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsICIsIGVjIikgaWYgJHVzZUV4Y2VwdGlvbnM7Ci0gICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCAiKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJ
bnRlcm5hbHMsICIsIGVjIikgaWYgJHVzZUV4Y2VwdGlvbnM7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudEludGVybmFscywgIik7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIG15ICgkZnVuY3Rpb25OYW1lLCBAYXJndW1lbnRzKSA9ICRjb2RlR2VuZXJhdG9yLT5TZXR0
ZXJFeHByZXNzaW9uKFwlaW1wbEluY2x1ZGVzLCAkaW50ZXJmYWNlTmFtZSwgJGF0dHJpYnV0ZSk7
CiAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICRyZXN1bHQpOwpAQCAtMTM3OCwzOSArMTM3
OCwzOSBAQCBFTkQKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgJGZ1bmN0
aW9uTmFtZSA9ICJpbXAtPiR7ZnVuY3Rpb25OYW1lfSI7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICB1bnNoaWZ0KEBhcmd1bWVudHMsIEdlbmVyYXRlQ2FsbFdpdGgoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifSwgXEBpbXBsQ29udGVudERl
Y2xzLCAiICAgICIsIDEpKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIg
ICAgJHtmdW5jdGlvbk5hbWV9KCIgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIik7XG4iKTsK
KyAgICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgR2VuZXJhdGVDYWxsV2l0aCgkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9LCBcQGltcGxD
b250ZW50SW50ZXJuYWxzLCAiICAgICIsIDEpKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50SW50ZXJuYWxzLCAiICAgICR7ZnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAYXJndW1l
bnRzKSAuICIpO1xuIik7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoJHVzZUV4Y2VwdGlv
bnMpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoVU5MSUtFTFko
ZWMpKVxuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHNldERP
TUV4Y2VwdGlvbihlYywgaW5mby5HZXRJc29sYXRlKCkpO1xuIik7CisgICAgICAgIHB1c2goQGlt
cGxDb250ZW50SW50ZXJuYWxzLCAiICAgIGlmIChVTkxJS0VMWShlYykpXG4iKTsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgICAgIHNldERPTUV4Y2VwdGlvbihlYywg
aW5mby5HZXRJc29sYXRlKCkpO1xuIik7CiAgICAgfQogCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9y
LT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0sICJTY3JpcHRTdGF0ZSIpKSB7Ci0gICAgICAgIHB1
c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKVxuIik7
Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHRocm93RXJyb3Ioc3Rh
dGUuZXhjZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgpKTtcbiIpOworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudEludGVybmFscywgIiAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpXG4iKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgICAgIHRocm93RXJyb3Io
c3RhdGUuZXhjZXB0aW9uKCksIGluZm8uR2V0SXNvbGF0ZSgpKTtcbiIpOwogICAgIH0KIAogICAg
IGlmICgkc3ZnTmF0aXZlVHlwZSkgewogICAgICAgICBpZiAoJHVzZUV4Y2VwdGlvbnMpIHsKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKCFlYylcbiIpOwotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgd3JhcHBlci0+Y29tbWl0
Q2hhbmdlKCk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAi
ICAgIGlmICghZWMpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxz
LCAiICAgICAgICB3cmFwcGVyLT5jb21taXRDaGFuZ2UoKTtcbiIpOwogICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB3cmFwcGVyLT5jb21t
aXRDaGFuZ2UoKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMs
ICIgICAgd3JhcHBlci0+Y29tbWl0Q2hhbmdlKCk7XG4iKTsKICAgICAgICAgfQogICAgIH0KIAog
ICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSIgJiYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2Fj
aGVkQXR0cmlidXRlIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQp
OworICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwogICAgIGluZm8u
SG9sZGVyKCktPkRlbGV0ZUhpZGRlblZhbHVlKHY4OjpTdHJpbmc6Ok5ld1N5bWJvbCgiJHthdHRy
TmFtZX0iKSk7IC8vIEludmFsaWRhdGUgdGhlIGNhY2hlZCB2YWx1ZS4KIEVORAogICAgIH0KIAot
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuO1xuIik7Ci0gICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIn1cblxuIik7ICAjIGVuZCBvZiBzZXR0ZXIKLSAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCAiI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlm
ICRjb25kaXRpb25hbFN0cmluZzsKKyAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAg
ICByZXR1cm47XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIn1cblxuIik7
ICAjIGVuZCBvZiBzZXR0ZXIKKyAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiNlbmRp
ZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiB9
CiAKIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVja0V4cHJlc3Npb24KQEAgLTE0OTksMjkgKzE0
OTksMjkgQEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uCiAgICAgbXkgJG5hbWUgPSAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAk
Y29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZnVuY3Rpb24tPnNpZ25h
dHVyZSk7CiAgICAgbXkgJGxlYXN0TnVtTWFuZGF0b3J5UGFyYW1zID0gMjU1OwotICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKKyAg
ICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxu
XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5h
bHMsIDw8RU5EKTsKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtuYW1lfU1ldGhvZChj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogRU5ECi0gICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJWOE1lYXN1cmVBcyJ9KSk7CisgICAgcHVzaChAaW1wbENvbnRl
bnRJbnRlcm5hbHMsIEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0aW9uKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhNZWFzdXJlQXMifSkpOwogCiAgICAgZm9yZWFj
aCBteSAkb3ZlcmxvYWQgKEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0pIHsKICAgICAgICAgbXkg
KCRudW1NYW5kYXRvcnlQYXJhbXMsICRwYXJhbWV0ZXJzQ2hlY2spID0gR2VuZXJhdGVGdW5jdGlv
blBhcmFtZXRlcnNDaGVjaygkb3ZlcmxvYWQpOwogICAgICAgICAkbGVhc3ROdW1NYW5kYXRvcnlQ
YXJhbXMgPSAkbnVtTWFuZGF0b3J5UGFyYW1zIGlmICgkbnVtTWFuZGF0b3J5UGFyYW1zIDwgJGxl
YXN0TnVtTWFuZGF0b3J5UGFyYW1zKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
IiAgICBpZiAoJHBhcmFtZXRlcnNDaGVjaylcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dEludGVybmFscywgIiAgICBpZiAoJHBhcmFtZXRlcnNDaGVjaylcbiIpOwogICAgICAgICBteSAk
b3ZlcmxvYWRlZEluZGV4U3RyaW5nID0gJG92ZXJsb2FkLT57b3ZlcmxvYWRJbmRleH07Ci0gICAg
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybiAke25hbWV9JHtvdmVy
bG9hZGVkSW5kZXhTdHJpbmd9TWV0aG9kKGFyZ3MpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxD
b250ZW50SW50ZXJuYWxzLCAiICAgICAgICByZXR1cm4gJHtuYW1lfSR7b3ZlcmxvYWRlZEluZGV4
U3RyaW5nfU1ldGhvZChhcmdzKTtcbiIpOwogICAgIH0KICAgICBpZiAoJGxlYXN0TnVtTWFuZGF0
b3J5UGFyYW1zID49IDEpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBp
ZiAoYXJncy5MZW5ndGgoKSA8ICRsZWFzdE51bU1hbmRhdG9yeVBhcmFtcylcbiIpOwotICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1w
bENvbnRlbnRJbnRlcm5hbHMsICIgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAkbGVhc3ROdW1NYW5k
YXRvcnlQYXJhbXMpXG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIg
ICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0
ZSgpKTtcbiIpOwogICAgIH0KLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7Cisg
ICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5EKTsKICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoMCwgYXJncy5HZXRJc29sYXRlKCkpOwogRU5ECi0gICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgIn1cblxuIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiNlbmRpZiAv
LyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAg
cHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICJ9XG5cbiIpOworICAgIHB1c2goQGltcGxDb250
ZW50SW50ZXJuYWxzLCAiI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRj
b25kaXRpb25hbFN0cmluZzsKIH0KIAogc3ViIEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjawpAQCAt
MTUzNCwxOSArMTUzNCwxOSBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxiYWNrCiAgICAgbXkg
JG5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKIAogICAgIG15ICRjb25kaXRpb25h
bFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRmdW5j
dGlvbi0+c2lnbmF0dXJlKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiI2lmICR7Y29u
ZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKLSAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMs
ICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwor
ICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCk7CiBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+ICR7bmFtZX1NZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogewogRU5ECi0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgR2VuZXJhdGVGZWF0dXJl
T2JzZXJ2YXRpb24oJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJW
OE1lYXN1cmVBcyJ9KSk7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIEdlbmVyYXRl
RmVhdHVyZU9ic2VydmF0aW9uKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiVjhNZWFzdXJlQXMifSkpOwogICAgIGlmIChIYXNDdXN0b21NZXRob2QoJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcykpIHsKLSAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiAgICByZXR1cm4gJHt2OEludGVyZmFjZU5hbWV9Ojoke25hbWV9TWV0aG9k
Q3VzdG9tKGFyZ3MpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAi
ICAgIHJldHVybiAke3Y4SW50ZXJmYWNlTmFtZX06OiR7bmFtZX1NZXRob2RDdXN0b20oYXJncyk7
XG4iKTsKICAgICB9IGVsc2UgewotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAg
IHJldHVybiAke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHtuYW1lfU1ldGhvZChhcmdzKTtc
biIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICByZXR1cm4gJHtp
bnRlcmZhY2VOYW1lfVY4SW50ZXJuYWw6OiR7bmFtZX1NZXRob2QoYXJncyk7XG4iKTsKICAgICB9
Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIn1cblxuIik7Ci0gICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29u
ZGl0aW9uYWxTdHJpbmc7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICJ9XG5cbiIp
OworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiI2VuZGlmIC8vICR7Y29uZGl0aW9u
YWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKIH0KIAogc3ViIEdlbmVyYXRl
RnVuY3Rpb24KQEAgLTE1NjksOSArMTU2OSw5IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uCiAgICAg
fQogCiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRl
Q29uZGl0aW9uYWxTdHJpbmcoJGZ1bmN0aW9uLT5zaWduYXR1cmUpOwotICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikgaWYgJGNvbmRpdGlv
bmFsU3RyaW5nOwotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+ICR7bmFtZX1NZXRob2QoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncylcbiIp
OwotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJ7XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29u
dGVudEludGVybmFscywgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0
aW9uYWxTdHJpbmc7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICJzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+ICR7bmFtZX1NZXRob2QoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cylcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAie1xuIik7CiAKICAgICBp
ZiAoJG5hbWUgZXEgImFkZEV2ZW50TGlzdGVuZXIiIHx8ICRuYW1lIGVxICJyZW1vdmVFdmVudExp
c3RlbmVyIikgewogICAgICAgICBteSAkbG9va3VwVHlwZSA9ICgkbmFtZSBlcSAiYWRkRXZlbnRM
aXN0ZW5lciIpID8gIk9yQ3JlYXRlIiA6ICJPbmx5IjsKQEAgLTE1NzksMzIgKzE1NzksMzIgQEAg
c3ViIEdlbmVyYXRlRnVuY3Rpb24KICAgICAgICAgbXkgJGhpZGRlbkRlcGVuZGVuY3lBY3Rpb24g
PSAoJG5hbWUgZXEgImFkZEV2ZW50TGlzdGVuZXIiKSA/ICJjcmVhdGUiIDogInJlbW92ZSI7CiAK
ICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4RXZlbnRMaXN0ZW5lckxpc3QuaCIpOwotICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgICAgIHB1c2goQGltcGxD
b250ZW50SW50ZXJuYWxzLCA8PEVORCk7CiAgICAgUmVmUHRyPEV2ZW50TGlzdGVuZXI+IGxpc3Rl
bmVyID0gVjhFdmVudExpc3RlbmVyTGlzdDo6Z2V0RXZlbnRMaXN0ZW5lcihhcmdzWzFdLCBmYWxz
ZSwgTGlzdGVuZXJGaW5kJHtsb29rdXBUeXBlfSk7CiAgICAgaWYgKGxpc3RlbmVyKSB7CiAgICAg
ICAgIFY4VFJZQ0FUQ0hfRk9SX1Y4U1RSSU5HUkVTT1VSQ0UoVjhTdHJpbmdSZXNvdXJjZTxXaXRo
TnVsbENoZWNrPiwgc3RyaW5nUmVzb3VyY2UsIGFyZ3NbMF0pOwogICAgICAgICBWOCR7aW50ZXJm
YWNlTmFtZX06OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpLT4ke25hbWV9KHN0cmluZ1Jlc291cmNl
LCBsaXN0ZW5lciR7cGFzc1JlZlB0ckhhbmRsaW5nfSwgYXJnc1syXS0+Qm9vbGVhblZhbHVlKCkp
OwogRU5ECiAgICAgICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRp
bnRlcmZhY2UsICJOb2RlIikpIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
IDw8RU5EKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCk7
CiAgICAgICAgICR7aGlkZGVuRGVwZW5kZW5jeUFjdGlvbn1IaWRkZW5EZXBlbmRlbmN5KGFyZ3Mu
SG9sZGVyKCksIGFyZ3NbMV0sIFY4JHtpbnRlcmZhY2VOYW1lfTo6ZXZlbnRMaXN0ZW5lckNhY2hl
SW5kZXgsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIEVORAogICAgICAgICB9Ci0gICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRl
cm5hbHMsIDw8RU5EKTsKICAgICB9CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CiAKIEVO
RAotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiI2VuZGlmIC8vICR7Y29uZGl0aW9u
YWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICAgICAgcHVzaChAaW1w
bENvbnRlbnRJbnRlcm5hbHMsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cblxuIikg
aWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrKCRmdW5jdGlv
biwgJGludGVyZmFjZSkpOworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCBHZW5lcmF0
ZUFyZ3VtZW50c0NvdW50Q2hlY2soJGZ1bmN0aW9uLCAkaW50ZXJmYWNlKSk7CiAKICAgICBpZiAo
JG5hbWUgZXEgInNldCIgYW5kICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUeXBl
ZEFycmF5In0pIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QXJyYXlCdWZmZXJWaWV3
Q3VzdG9tLmgiKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwogICAgIHJldHVybiBzZXRX
ZWJHTEFycmF5SGVscGVyPCRpbnRlcmZhY2VOYW1lLCAke3Y4SW50ZXJmYWNlTmFtZX0+KGFyZ3Mp
OwogfQogCkBAIC0xNjE3LDE4ICsxNjE3LDE4IEBAIEVORAogICAgIGlmICgkc3ZnTmF0aXZlVHlw
ZSkgewogICAgICAgICBteSAkbmF0aXZlQ2xhc3NOYW1lID0gR2V0TmF0aXZlVHlwZSgkaW50ZXJm
YWNlTmFtZSk7IAogICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgPX4gL0xpc3QkLykgewotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAkbmF0aXZlQ2xhc3NOYW1lIGlt
cCA9ICR7djhJbnRlcmZhY2VOYW1lfTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICRuYXRpdmVDbGFzc05h
bWUgaW1wID0gJHt2OEludGVyZmFjZU5hbWV9Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTtcbiIp
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkV4Y2Vw
dGlvbkNvZGUuaCIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAk
bmF0aXZlQ2xhc3NOYW1lIHdyYXBwZXIgPSAke3Y4SW50ZXJmYWNlTmFtZX06OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAi
ICAgIGlmICh3cmFwcGVyLT5pc1JlYWRPbmx5KCkpXG4iKTsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsICIgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSLCBhcmdzLkdldElzb2xhdGUoKSk7XG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICRuYXRpdmVDbGFzc05hbWUgd3JhcHBl
ciA9ICR7djhJbnRlcmZhY2VOYW1lfTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7XG4iKTsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIGlmICh3cmFwcGVyLT5p
c1JlYWRPbmx5KCkpXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxz
LCAiICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKE5PX01PRElGSUNBVElPTl9BTExPV0VE
X0VSUiwgYXJncy5HZXRJc29sYXRlKCkpO1xuIik7CiAgICAgICAgICAgICBteSAkc3ZnV3JhcHBl
ZE5hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHV3JhcHBlZFR5cGVOZWVkaW5nVGVh
ck9mZigkaW50ZXJmYWNlTmFtZSk7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCAiICAgICRzdmdXcmFwcGVkTmF0aXZlVHlwZSYgaW1wSW5zdGFuY2UgPSB3cmFwcGVyLT5wcm9w
ZXJ0eVJlZmVyZW5jZSgpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCAiICAgICRzdmdXcmFwcGVkTmF0aXZlVHlwZSogaW1wID0gJmltcEluc3RhbmNlO1xuIik7Cisg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICAkc3ZnV3JhcHBlZE5h
dGl2ZVR5cGUmIGltcEluc3RhbmNlID0gd3JhcHBlci0+cHJvcGVydHlSZWZlcmVuY2UoKTtcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgJHN2Z1dyYXBw
ZWROYXRpdmVUeXBlKiBpbXAgPSAmaW1wSW5zdGFuY2U7XG4iKTsKICAgICAgICAgfQogICAgIH0g
ZWxzaWYgKCEkZnVuY3Rpb24tPmlzU3RhdGljKSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsIDw8RU5EKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5E
KTsKICAgICAke2ludGVyZmFjZU5hbWV9KiBpbXAgPSAke3Y4SW50ZXJmYWNlTmFtZX06OnRvTmF0
aXZlKGFyZ3MuSG9sZGVyKCkpOwogRU5ECiAgICAgfQpAQCAtMTYzNyw3ICsxNjM3LDcgQEAgRU5E
CiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5
In0gJiYgISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRG9Ob3RD
aGVja1NlY3VyaXR5In0pIHsKICAgICAgICAgIyBXZSBoYXZlIG5vdCBmaW5kIHJlYWwgdXNlIGNh
c2VzIHlldC4KICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkZyYW1lLmgiKTsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dEludGVybmFscywgPDxFTkQpOwogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxv
d0FjY2Vzc1RvRnJhbWUoQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpLCBpbXAtPmZyYW1lKCkpKQog
ICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIEVORApAQCAtMTY1NCwzMyArMTY1NCwzMyBA
QCBFTkQKIAogICAgIGlmICgkcmFpc2VzRXhjZXB0aW9ucykgewogICAgICAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiRXhjZXB0aW9uQ29kZS5oIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICIgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiAgICB7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5h
bHMsICIgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENv
bnRlbnRJbnRlcm5hbHMsICIgICAge1xuIik7CiAgICAgICAgICMgVGhlIGJyYWNlIGhlcmUgaXMg
bmVlZGVkIHRvIHByZXZlbnQgdGhlIGVuc3VpbmcgJ2dvdG8gZmFpbCdzIGZyb20ganVtcGluZyBw
YXN0IGNvbnN0cnVjdG9ycwogICAgICAgICAjIG9mIG9iamVjdHMgKGxpa2UgU3RyaW5ncykgZGVj
bGFyZWQgbGF0ZXIsIGNhdXNpbmcgY29tcGlsZSBlcnJvcnMuIFRoZSBibG9jayBzY29wZSBlbmRz
CiAgICAgICAgICMgcmlnaHQgYmVmb3JlIHRoZSBsYWJlbCAnZmFpbDonLgogICAgIH0KIAogICAg
IGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrU2Vj
dXJpdHlGb3JOb2RlIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBp
ZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb05vZGUoQmluZGluZ1N0YXRl
OjppbnN0YW5jZSgpLCBpbXAtPiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoZWMp
KSlcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4g
djg6OkhhbmRsZTx2ODo6VmFsdWU+KHY4TnVsbChhcmdzLkdldElzb2xhdGUoKSkpO1xuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIGlmICghQmluZGluZ1NlY3Vy
aXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvTm9kZShCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCksIGlt
cC0+IiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIihlYykpKVxuIik7CisgICAgICAg
IHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgICAgICByZXR1cm4gdjg6OkhhbmRsZTx2
ODo6VmFsdWU+KHY4TnVsbChhcmdzLkdldElzb2xhdGUoKSkpO1xuIik7CiBFTkQKICAgICB9CiAK
ICAgICBteSAoJHBhcmFtZXRlckNoZWNrU3RyaW5nLCAkcGFyYW1JbmRleCwgJXJlcGxhY2VtZW50
cykgPSBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjaygkZnVuY3Rpb24sICRpbnRlcmZhY2VOYW1lKTsK
LSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcpOworICAg
IHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcpOwogCiAg
ICAgIyBCdWlsZCB0aGUgZnVuY3Rpb24gY2FsbCBzdHJpbmcuCi0gICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoJGZ1bmN0aW9uLCAkcGFyYW1JbmRl
eCwgIiAgICAiLCAkaW50ZXJmYWNlTmFtZSwgJXJlcGxhY2VtZW50cykpOworICAgIHB1c2goQGlt
cGxDb250ZW50SW50ZXJuYWxzLCBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZygkZnVuY3Rpb24s
ICRwYXJhbUluZGV4LCAiICAgICIsICRpbnRlcmZhY2VOYW1lLCAlcmVwbGFjZW1lbnRzKSk7CiAK
ICAgICBpZiAoJHJhaXNlc0V4Y2VwdGlvbnMpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICB9XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBm
YWlsOlxuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHNl
dERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRlKCkpO1xuIik7CisgICAgICAgIHB1c2go
QGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIH1cbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudEludGVybmFscywgIiAgICBmYWlsOlxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
SW50ZXJuYWxzLCAiICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0SXNvbGF0
ZSgpKTtcbiIpOwogICAgIH0KIAotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJ9XG5cbiIp
OwotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0
cmluZ31cblxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgIHB1c2goQGltcGxDb250ZW50
SW50ZXJuYWxzLCAifVxuXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiNl
bmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7
CiB9CiAKIHN1YiBHZW5lcmF0ZUNhbGxXaXRoCkBAIC0xOTE1LDcgKzE5MTUsNyBAQCBzdWIgR2Vu
ZXJhdGVPdmVybG9hZGVkQ29uc3RydWN0b3JDYWxsYmFjawogICAgIG15ICRpbnRlcmZhY2UgPSBz
aGlmdDsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAKLSAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRl
cm5hbHMsIDw8RU5EKTsKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uc3RydWN0b3Io
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKIEVORApAQCAtMTkyNCwxNyArMTkyNCwxNyBA
QCBFTkQKICAgICAgICAgbXkgJG5hbWUgPSAiY29uc3RydWN0b3IiIC4gJGNvbnN0cnVjdG9yLT57
b3ZlcmxvYWRlZEluZGV4fTsKICAgICAgICAgbXkgKCRudW1NYW5kYXRvcnlQYXJhbXMsICRwYXJh
bWV0ZXJzQ2hlY2spID0gR2VuZXJhdGVGdW5jdGlvblBhcmFtZXRlcnNDaGVjaygkY29uc3RydWN0
b3IpOwogICAgICAgICAkbGVhc3ROdW1NYW5kYXRvcnlQYXJhbXMgPSAkbnVtTWFuZGF0b3J5UGFy
YW1zIGlmICgkbnVtTWFuZGF0b3J5UGFyYW1zIDwgJGxlYXN0TnVtTWFuZGF0b3J5UGFyYW1zKTsK
LSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoJHBhcmFtZXRlcnNDaGVj
aylcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4g
JHtpbnRlcmZhY2VOYW1lfVY4SW50ZXJuYWw6OiR7bmFtZX0oYXJncyk7XG4iKTsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgaWYgKCRwYXJhbWV0ZXJzQ2hlY2spXG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgICAgIHJldHVybiAk
e2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHtuYW1lfShhcmdzKTtcbiIpOwogICAgIH0KICAg
ICBpZiAoJGxlYXN0TnVtTWFuZGF0b3J5UGFyYW1zID49IDEpIHsKLSAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICBpZiAoYXJncy5MZW5ndGgoKSA8ICRsZWFzdE51bU1hbmRhdG9y
eVBhcmFtcylcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICBy
ZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7XG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgaWYgKGFyZ3MuTGVu
Z3RoKCkgPCAkbGVhc3ROdW1NYW5kYXRvcnlQYXJhbXMpXG4iKTsKKyAgICAgICAgcHVzaChAaW1w
bENvbnRlbnRJbnRlcm5hbHMsICIgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTtcbiIpOwogICAgIH0KLSAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCA8PEVORCk7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5E
KTsKICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoMCwgYXJncy5HZXRJc29sYXRlKCkpOwogRU5E
Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIn1cblxuIik7CisgICAgcHVzaChAaW1wbENv
bnRlbnRJbnRlcm5hbHMsICJ9XG5cbiIpOwogfQogCiBzdWIgR2VuZXJhdGVTaW5nbGVDb25zdHJ1
Y3RvckNhbGxiYWNrCkBAIC0xOTYyLDI5ICsxOTYyLDI5IEBAIHN1YiBHZW5lcmF0ZVNpbmdsZUNv
bnN0cnVjdG9yQ2FsbGJhY2sKIAogICAgIG15IEBiZWZvcmVBcmd1bWVudExpc3Q7CiAgICAgbXkg
QGFmdGVyQXJndW1lbnRMaXN0OwotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsK
KyAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwogc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBjb25zdHJ1Y3RvciR7b3ZlcmxvYWRlZEluZGV4U3RyaW5nfShjb25zdCB2
ODo6QXJndW1lbnRzJiBhcmdzKQogewogRU5ECiAKICAgICBpZiAoJGZ1bmN0aW9uLT57b3Zlcmxv
YWRlZEluZGV4fSA9PSAwKSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIEdlbmVy
YXRlQXJndW1lbnRzQ291bnRDaGVjaygkZnVuY3Rpb24sICRpbnRlcmZhY2UpKTsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsIEdlbmVyYXRlQXJndW1lbnRzQ291bnRDaGVjaygk
ZnVuY3Rpb24sICRpbnRlcmZhY2UpKTsKICAgICB9CiAKICAgICBpZiAoJHJhaXNlc0V4Y2VwdGlv
bnMpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkV4Y2VwdGlvbkNvZGUuaCIpOwotICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiXG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgIiAgICBFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICBwdXNo
KEBpbXBsQ29udGVudEludGVybmFscywgIlxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50
SW50ZXJuYWxzLCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CiAgICAgfQogCiAgICAg
IyBGSVhNRTogQ3VycmVudGx5IFtDb25zdHJ1Y3RvciguLi4pXSBkb2VzIG5vdCB5ZXQgc3VwcG9y
dCBbT3B0aW9uYWxdIGFyZ3VtZW50cy4KICAgICAjIEl0IGp1c3Qgc3VwcG9ydHMgW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gb3IgW09wdGlvbmFsPURlZmF1bHRJc051bGxTdHJpbmddLgog
ICAgIG15ICgkcGFyYW1ldGVyQ2hlY2tTdHJpbmcsICRwYXJhbUluZGV4LCAlcmVwbGFjZW1lbnRz
KSA9IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKCRmdW5jdGlvbiwgJGludGVyZmFjZU5hbWUpOwot
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICRwYXJhbWV0ZXJDaGVja1N0cmluZyk7CisgICAg
cHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICRwYXJhbWV0ZXJDaGVja1N0cmluZyk7CiAKICAg
ICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0gJiYgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0gZXEgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQiKSB7CiAgICAgICAgIHB1c2goQGJlZm9yZUFyZ3VtZW50TGlzdCwgImNvbnRl
eHQiKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOworICAgICAgICBw
dXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwogCiAgICAgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKIEVORApAQCAt
MjAwNywyOCArMjAwNywyOCBAQCBFTkQKICAgICB9CiAKICAgICBteSAkYXJndW1lbnRTdHJpbmcg
PSBqb2luKCIsICIsIEBiZWZvcmVBcmd1bWVudExpc3QsIEBhcmd1bWVudExpc3QsIEBhZnRlckFy
Z3VtZW50TGlzdCk7Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIlxuIik7Ci0gICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgIiAgICBSZWZQdHI8JHtpbnRlcmZhY2VOYW1lfT4gaW1wbCA9
ICR7aW50ZXJmYWNlTmFtZX06OmNyZWF0ZSgke2FyZ3VtZW50U3RyaW5nfSk7XG4iKTsKLSAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBl
ciA9IGFyZ3MuSG9sZGVyKCk7XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywg
IlxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgUmVmUHRyPCR7aW50
ZXJmYWNlTmFtZX0+IGltcGwgPSAke2ludGVyZmFjZU5hbWV9OjpjcmVhdGUoJHthcmd1bWVudFN0
cmluZ30pO1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gYXJncy5Ib2xkZXIoKTtcbiIpOwogCiAgICAgaWYg
KCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclJhaXNlc0V4Y2Vw
dGlvbiJ9KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgaWYgKGVjKVxu
Iik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAgIGdvdG8gZmFpbDtc
biIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgIiAgICBpZiAoZWMpXG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgICAgIGdvdG8gZmFp
bDtcbiIpOwogICAgIH0KIAotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKTsKKyAg
ICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpOwogCiAgICAgVjhET01XcmFwcGVy
Ojphc3NvY2lhdGVPYmplY3RXaXRoV3JhcHBlcihpbXBsLnJlbGVhc2UoKSwgJlY4JHtpbnRlcmZh
Y2VOYW1lfTo6aW5mbywgd3JhcHBlciwgYXJncy5HZXRJc29sYXRlKCksIFdyYXBwZXJDb25maWd1
cmF0aW9uOjpEZXBlbmRlbnQpOwogICAgIHJldHVybiB3cmFwcGVyOwogRU5ECiAKICAgICBpZiAo
JHJhaXNlc0V4Y2VwdGlvbnMpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICBmYWlsOlxuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJu
IHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRlKCkpO1xuIik7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiICAgIGZhaWw6XG4iKTsKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnRJbnRlcm5hbHMsICIgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJn
cy5HZXRJc29sYXRlKCkpO1xuIik7CiAgICAgfQogCi0gICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgIn1cbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJcbiIpOworICAgIHB1c2go
QGltcGxDb250ZW50SW50ZXJuYWxzLCAifVxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRl
cm5hbHMsICJcbiIpOwogfQogCiBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckNhbGxiYWNrCkBAIC0y
MDY5LDExICsyMDY5LDExIEBAIHN1YiBHZW5lcmF0ZUV2ZW50Q29uc3RydWN0b3IKICAgICBteSAk
aW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAKICAgICBBZGRUb0ltcGxJbmNsdWRl
cygiRGljdGlvbmFyeS5oIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwor
ICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCk7CiBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiBF
TkQKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgcHVzaChAaW1wbENv
bnRlbnRJbnRlcm5hbHMsIDw8RU5EKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAg
ICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgp
KTsKIApAQCAtMjEyOSw3ICsyMTI5LDcgQEAgc3ViIEdlbmVyYXRlVHlwZWRBcnJheUNvbnN0cnVj
dG9yCiAgICAgbXkgJHR5cGUgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHlw
ZWRBcnJheSJ9OwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOEFycmF5QnVmZmVyVmlld0N1c3Rv
bS5oIik7CiAKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CisgICAgcHVzaChA
aW1wbENvbnRlbnRJbnRlcm5hbHMsIDw8RU5EKTsKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gY29uc3RydWN0b3IoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICByZXR1cm4g
Y29uc3RydWN0V2ViR0xBcnJheTwkaW50ZXJmYWNlTmFtZSwgVjgke2ludGVyZmFjZU5hbWV9LCAk
dHlwZT4oYXJncywgJlY4JHtpbnRlcmZhY2VOYW1lfTo6aW5mbywgJHZpZXdUeXBlKTsKQEAgLTI2
ODQsNyArMjY4NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIGxhc3Q7
CiAgICAgfQogCi0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpIGlmICR2dGFibGVO
YW1lR251OworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCA8PEVORCkgaWYgJHZ0YWJs
ZU5hbWVHbnU7CiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQogI2lmIGRlZmluZWQoT1Nf
V0lOKQogI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ0ODMpCkBAIC0yNjk2LDkgKzI2OTYsOSBA
QCBleHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQqICR7dnRhYmxlTmFtZUdudX1bXTsgfQogCiBFTkQK
IAotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJuYW1lc3BhY2UgV2ViQ29yZSB7XG5cbiIp
OworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAibmFtZXNwYWNlIFdlYkNvcmUge1xu
XG4iKTsKIAotICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIDw8RU5EKSBpZiAkdnRhYmxlTmFt
ZUdudTsKKyAgICBwdXNoKEBpbXBsQ29udGVudEludGVybmFscywgPDxFTkQpIGlmICR2dGFibGVO
YW1lR251OwogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKIC8vIFRoaXMgY2hlY2tzIGlm
IGEgRE9NIG9iamVjdCB0aGF0IGlzIGFib3V0IHRvIGJlIHdyYXBwZWQgaXMgdmFsaWQuCiAvLyBT
cGVjaWZpY2FsbHksIGl0IGNoZWNrcyB0aGF0IGEgdnRhYmxlIG9mIHRoZSBET00gb2JqZWN0IGlz
IGVxdWFsIHRvCkBAIC0yNzI5LDEwICsyNzI5LDEwIEBAIEVORAogCiAgICAgbXkgJFdyYXBwZXJU
eXBlUHJvdG90eXBlID0gJGludGVyZmFjZS0+aXNFeGNlcHRpb24gPyAiV3JhcHBlclR5cGVFcnJv
clByb3RvdHlwZSIgOiAiV3JhcHBlclR5cGVPYmplY3RQcm90b3R5cGUiOwogCi0gICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIldyYXBwZXJUeXBlSW5mbyAke3Y4SW50ZXJmYWNlTmFtZX06Omlu
Zm8gPSB7ICR7djhJbnRlcmZhY2VOYW1lfTo6R2V0VGVtcGxhdGUsICR7djhJbnRlcmZhY2VOYW1l
fTo6ZGVyZWZPYmplY3QsICR0b0FjdGl2ZURPTU9iamVjdCwgJHRvRXZlbnRUYXJnZXQsICRyb290
Rm9yR0MsICR7djhJbnRlcmZhY2VOYW1lfTo6aW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9w
ZXJ0aWVzLCAkcGFyZW50Q2xhc3NJbmZvLCAkV3JhcHBlclR5cGVQcm90b3R5cGUgfTtcblxuIik7
Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIm5hbWVzcGFjZSAke2ludGVyZmFjZU5hbWV9
VjhJbnRlcm5hbCB7XG5cbiIpOworICAgIHB1c2goQGltcGxDb250ZW50SW50ZXJuYWxzLCAiV3Jh
cHBlclR5cGVJbmZvICR7djhJbnRlcmZhY2VOYW1lfTo6aW5mbyA9IHsgJHt2OEludGVyZmFjZU5h
bWV9OjpHZXRUZW1wbGF0ZSwgJHt2OEludGVyZmFjZU5hbWV9OjpkZXJlZk9iamVjdCwgJHRvQWN0
aXZlRE9NT2JqZWN0LCAkdG9FdmVudFRhcmdldCwgJHJvb3RGb3JHQywgJHt2OEludGVyZmFjZU5h
bWV9OjppbnN0YWxsUGVyQ29udGV4dFByb3RvdHlwZVByb3BlcnRpZXMsICRwYXJlbnRDbGFzc0lu
Zm8sICRXcmFwcGVyVHlwZVByb3RvdHlwZSB9O1xuXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVu
dEludGVybmFscywgIm5hbWVzcGFjZSAke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbCB7XG5cbiIp
OwogCi0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgInRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2
b2lkIFY4X1VTRShUKSB7IH1cblxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnRJbnRlcm5hbHMs
ICJ0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBWOF9VU0UoVCkgeyB9XG5cbiIpOwogCiAgICAg
bXkgJGhhc0NvbnN0cnVjdG9ycyA9IDA7CiAgICAgbXkgJGhhc1JlcGxhY2VhYmxlID0gMDsKQEAg
LTI5NjAsNyArMjk2MCw3IEBAIEVORAogICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yQ2FsbGJh
Y2soJGludGVyZmFjZSk7CiAgICAgfQogCi0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIn0g
Ly8gbmFtZXNwYWNlICR7aW50ZXJmYWNlTmFtZX1WOEludGVybmFsXG5cbiIpOworICAgIHB1c2go
QGltcGxDb250ZW50SW50ZXJuYWxzLCAifSAvLyBuYW1lc3BhY2UgJHtpbnRlcmZhY2VOYW1lfVY4
SW50ZXJuYWxcblxuIik7CiAKICAgICBteSAkYWNjZXNzX2NoZWNrID0gIiI7CiAgICAgaWYgKCRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0gJiYgISgkaW50
ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKQEAgLTQzNTQsMTIgKzQzNTQsMTIgQEAgc3Vi
IFdyaXRlRGF0YQogICAgIH0KIAogICAgICRjb250ZW50cyAuPSAiXG4iOwotICAgICRjb250ZW50
cyAuPSBqb2luICIiLCBAaW1wbENvbnRlbnREZWNscywgQGltcGxDb250ZW50OworICAgICRjb250
ZW50cyAuPSBqb2luICIiLCBAaW1wbENvbnRlbnRJbnRlcm5hbHMsIEBpbXBsQ29udGVudDsKICAg
ICAkY29kZUdlbmVyYXRvci0+VXBkYXRlRmlsZSgkaW1wbEZpbGVOYW1lLCAkY29udGVudHMpOwog
CiAgICAgJWltcGxJbmNsdWRlcyA9ICgpOwogICAgIEBpbXBsQ29udGVudEhlYWRlciA9ICgpOwot
ICAgIEBpbXBsQ29udGVudERlY2xzID0gKCk7CisgICAgQGltcGxDb250ZW50SW50ZXJuYWxzID0g
KCk7CiAgICAgQGltcGxDb250ZW50ID0gKCk7CiAKICAgICAjIFVwZGF0ZSBhIC5oIGZpbGUgaWYg
dGhlIGNvbnRlbnRzIGFyZSBjaGFuZ2VkLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>