<?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>102748</bug_id>
          
          <creation_ts>2012-11-19 17:32:42 -0800</creation_ts>
          <short_desc>In CodeGeneratorJS.pm we should rename $dataNode to $interface</short_desc>
          <delta_ts>2012-11-19 18:46:32 -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>timothy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>771269</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-19 17:32:42 -0800</bug_when>
    <thetext>$dataNode is misnamed. It should be $interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771271</commentid>
    <comment_count>1</comment_count>
      <attachid>175093</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-19 17:33:41 -0800</bug_when>
    <thetext>Created attachment 175093
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771281</commentid>
    <comment_count>2</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-11-19 17:38:13 -0800</bug_when>
    <thetext>Does not affect Safari. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771375</commentid>
    <comment_count>3</comment_count>
      <attachid>175093</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 18:46:28 -0800</bug_when>
    <thetext>Comment on attachment 175093
Patch

Clearing flags on attachment: 175093

Committed r135231: &lt;http://trac.webkit.org/changeset/135231&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771376</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 18:46:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175093</attachid>
            <date>2012-11-19 17:33:41 -0800</date>
            <delta_ts>2012-11-19 18:46:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102748-20121120103131.patch</filename>
            <type>text/plain</type>
            <size>115105</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY1NjgwMDcyZjhhZTE4
NjYwZWJkMTlhNjg1OTlkNjNjMzNlM2M2Zi4uM2RhYzRhNmYyYWUwYjUxMDYzOTZkNDA5NjQxOTZi
OGIzNzdkYzc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTE5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbiBDb2RlR2VuZXJh
dG9ySlMucG0gd2Ugc2hvdWxkIHJlbmFtZSAkZGF0YU5vZGUgdG8gJGludGVyZmFjZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzQ4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgJGRhdGFOb2RlIGlzIG1p
c25hbWVkLiBJdCBzaG91bGQgYmUgJGludGVyZmFjZS4KKworICAgICAgICBObyB0ZXN0cy4gTm8g
Y2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUludGVyZmFjZSk6CisgICAgICAgIChHZXRQ
YXJlbnRDbGFzc05hbWUpOgorICAgICAgICAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSk6CisgICAg
ICAgIChHZXRDdXN0b21Jc1JlYWNoYWJsZSk6CisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3Bl
cnR5U2xvdEJvZHkpOgorICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JC
b2R5KToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyQ29udGVudEhlYWRlcik6CisgICAgICAgIChH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcik6CisgICAgICAgIChTaG91bGRHZW5l
cmF0ZVRvSlNEZWNsYXJhdGlvbik6CisgICAgICAgIChTaG91bGRHZW5lcmF0ZVRvSlNJbXBsZW1l
bnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUF0
dHJpYnV0ZXNIYXNoVGFibGUpOgorICAgICAgICAoR2VuZXJhdGVPdmVybG9hZGVkRnVuY3Rpb24p
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUFy
Z3VtZW50c0NvdW50Q2hlY2spOgorICAgICAgICAoR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2spOgor
ICAgICAgICAoR2VuZXJhdGVDYWxsYmFja0hlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUNhbGxi
YWNrSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoV3JpdGVEYXRhKToKKyAgICAgICAgKEdlbmVy
YXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9y
RGVmaW5pdGlvbik6CisgICAgICAgIChJc0NvbnN0cnVjdGFibGUpOgorCiAyMDEyLTExLTE5ICBB
bHBoYSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBC
dWlsZCBmaXggZm9yIENocm9taXVtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBkMTlkYTI3YzU2ZTJhZGY2YTQ3YjI2NmMx
OTAyYjM5Mjk0NjYwNDg0Li5iMTBhZWExMTYyNDQ0M2QwYjhiNjg1NzcyYjc1ZjdiODRkODIzZDFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtOTUsMjEgKzk1LDIxIEBAIHN1YiBsZWZ0U2hpZnQoJCQpIHsKIHN1YiBHZW5l
cmF0ZUludGVyZmFjZQogewogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAgbXkgJGRlZmluZXMg
PSBzaGlmdDsKIAotICAgICRjb2RlR2VuZXJhdG9yLT5MaW5rT3ZlcmxvYWRlZEZ1bmN0aW9ucygk
ZGF0YU5vZGUpOworICAgICRjb2RlR2VuZXJhdG9yLT5MaW5rT3ZlcmxvYWRlZEZ1bmN0aW9ucygk
aW50ZXJmYWNlKTsKIAogICAgICMgU3RhcnQgYWN0dWFsIGdlbmVyYXRpb24KLSAgICBpZiAoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJhY2sifSkgewotICAgICAgICAkb2Jq
ZWN0LT5HZW5lcmF0ZUNhbGxiYWNrSGVhZGVyKCRkYXRhTm9kZSk7Ci0gICAgICAgICRvYmplY3Qt
PkdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbigkZGF0YU5vZGUpOworICAgIGlmICgkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJhY2sifSkgeworICAgICAgICAkb2Jq
ZWN0LT5HZW5lcmF0ZUNhbGxiYWNrSGVhZGVyKCRpbnRlcmZhY2UpOworICAgICAgICAkb2JqZWN0
LT5HZW5lcmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24oJGludGVyZmFjZSk7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgJG9iamVjdC0+R2VuZXJhdGVIZWFkZXIoJGRhdGFOb2RlKTsKLSAgICAgICAg
JG9iamVjdC0+R2VuZXJhdGVJbXBsZW1lbnRhdGlvbigkZGF0YU5vZGUpOworICAgICAgICAkb2Jq
ZWN0LT5HZW5lcmF0ZUhlYWRlcigkaW50ZXJmYWNlKTsKKyAgICAgICAgJG9iamVjdC0+R2VuZXJh
dGVJbXBsZW1lbnRhdGlvbigkaW50ZXJmYWNlKTsKICAgICB9CiAKLSAgICAkb2JqZWN0LT5Xcml0
ZURhdGEoJGRhdGFOb2RlKTsKKyAgICAkb2JqZWN0LT5Xcml0ZURhdGEoJGludGVyZmFjZSk7CiB9
CiAKIHN1YiBHZW5lcmF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXJDYWxsCkBAIC0xNzEsMTEgKzE3
MSwxMSBAQCBFTkQKIAogc3ViIEdldFBhcmVudENsYXNzTmFtZQogewotICAgIG15ICRkYXRhTm9k
ZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAotICAgIHJldHVybiAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0xlZ2FjeVBhcmVudCJ9IGlmICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTTGVnYWN5UGFyZW50In07Ci0gICAgcmV0dXJuICJK
U0RPTVdyYXBwZXIiIGlmIChAeyRkYXRhTm9kZS0+cGFyZW50c30gZXEgMCk7Ci0gICAgcmV0dXJu
ICJKUyIgLiAkZGF0YU5vZGUtPnBhcmVudHMoMCk7CisgICAgcmV0dXJuICRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJKU0xlZ2FjeVBhcmVudCJ9IGlmICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJKU0xlZ2FjeVBhcmVudCJ9OworICAgIHJldHVybiAiSlNET01XcmFw
cGVyIiBpZiAoQHskaW50ZXJmYWNlLT5wYXJlbnRzfSBlcSAwKTsKKyAgICByZXR1cm4gIkpTIiAu
ICRpbnRlcmZhY2UtPnBhcmVudHMoMCk7CiB9CiAKIHN1YiBHZXRDYWxsYmFja0NsYXNzTmFtZQpA
QCAtMzc5LDE5ICszNzksMTkgQEAgc3ViIGNvbnN0cnVjdG9ySGFzaFRhYmxlQWNjZXNzb3IKIAog
c3ViIEdldEdlbmVyYXRlSXNSZWFjaGFibGUKIHsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
LSAgICByZXR1cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVJc1Jl
YWNoYWJsZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVJ
c1JlYWNoYWJsZSJ9OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICByZXR1cm4gJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlSXNSZWFjaGFibGUifSB8fCAk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZUlzUmVhY2hhYmxlIn07
CiB9CiAKIHN1YiBHZXRDdXN0b21Jc1JlYWNoYWJsZQogewotICAgIG15ICRkYXRhTm9kZSA9IHNo
aWZ0OwotICAgIHJldHVybiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21J
c1JlYWNoYWJsZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9t
SXNSZWFjaGFibGUifTsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgcmV0dXJuICRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Jc1JlYWNoYWJsZSJ9IHx8ICRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUlzUmVhY2hhYmxlIn07CiB9
CiAKIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKIHsKLSAgICBteSAoJGRhdGFO
b2RlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05hbWUsICRoYXNBdHRy
aWJ1dGVzLCAkaW5saW5lZCkgPSBAXzsKKyAgICBteSAoJGludGVyZmFjZSwgJGludGVyZmFjZU5h
bWUsICRjbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lLCAkaGFzQXR0cmlidXRlcywgJGlubGluZWQp
ID0gQF87CiAKICAgICBteSAkbmFtZXNwYWNlTWF5YmUgPSAoJGlubGluZWQgPyAiSlNDOjoiIDog
IiIpOwogCkBAIC00MDQsNyArNDA0LDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90
Qm9keQogICAgIH0KIAogICAgIG15ICRtYW51YWxMb29rdXBHZXR0ZXJHZW5lcmF0aW9uID0gc3Vi
IHsKLSAgICAgICAgbXkgJHJlcXVpcmVzTWFudWFsTG9va3VwID0gJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSW5kZXhlZEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ik5hbWVkR2V0dGVyIn07CisgICAgICAgIG15ICRyZXF1aXJlc01hbnVhbExvb2t1
cCA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVyIn0gfHwg
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkR2V0dGVyIn07CiAgICAgICAg
IGlmICgkcmVxdWlyZXNNYW51YWxMb29rdXApIHsKICAgICAgICAgICAgIHB1c2goQGdldE93blBy
b3BlcnR5U2xvdEltcGwsICIgICAgY29uc3QgJHtuYW1lc3BhY2VNYXliZX1IYXNoRW50cnkqIGVu
dHJ5ID0gJHtjbGFzc05hbWV9VGFibGUuZW50cnkoZXhlYywgcHJvcGVydHlOYW1lKTtcbiIpOwog
ICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAoZW50cnkp
IHtcbiIpOwpAQCAtNDE0LDExICs0MTQsMTEgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlT
bG90Qm9keQogICAgICAgICB9CiAgICAgfTsKIAotICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifSkgeworICAgIGlmICghJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkR2V0dGVyIn0pIHsKICAgICAgICAg
JiRtYW51YWxMb29rdXBHZXR0ZXJHZW5lcmF0aW9uKCk7CiAgICAgfQogCi0gICAgaWYgKCRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkluZGV4ZWRHZXR0ZXIifSB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1lcmljSW5kZXhlZEdldHRlciJ9KSB7CisgICAgaWYg
KCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVyIn0gfHwgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0pIHsK
ICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICB1bnNpZ25lZCBpbmRl
eCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7XG4iKTsKIAogICAgICAgICAjIElmIHRoZSBpdGVt
IGZ1bmN0aW9uIHJldHVybnMgYSBzdHJpbmcgdGhlbiB3ZSBsZXQgdGhlIFRyZWF0UmV0dXJuZWRO
dWxsU3RyaW5nQXMgaGFuZGxlIHRoZSBjYXNlcwpAQCAtNDI4LDcgKzQyOCw3IEBAIHN1YiBHZW5l
cmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5
TmFtZTo6Tm90QW5JbmRleCAmJiBpbmRleCA8IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4o
dGhpc09iamVjdC0+aW1wbCgpKS0+bGVuZ3RoKCkpIHtcbiIpOwogICAgICAgICB9Ci0gICAgICAg
IGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1lcmljSW5kZXhlZEdldHRl
ciJ9KSB7CisgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTnVt
ZXJpY0luZGV4ZWRHZXR0ZXIifSkgewogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlT
bG90SW1wbCwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LT5nZXRCeUluZGV4KGV4
ZWMsIGluZGV4KSk7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHB1c2goQGdl
dE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpc09i
amVjdCwgaW5kZXgsIGluZGV4R2V0dGVyKTtcbiIpOwpAQCAtNDM3LDcgKzQzNyw3IEBAIHN1YiBH
ZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVy
dHlTbG90SW1wbCwgIiAgICB9XG4iKTsKICAgICB9CiAKLSAgICBpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21OYW1lZEdldHRlciJ9KSB7CisgICAgaWYgKCRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZEdldHRlciJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZEdldHRlciJ9KSB7CiAgICAgICAgIHB1c2goQGdldE93
blByb3BlcnR5U2xvdEltcGwsICIgICAgaWYgKGNhbkdldEl0ZW1zRm9yTmFtZShleGVjLCBzdGF0
aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwoKSksIHByb3BlcnR5TmFt
ZSkpIHtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAg
ICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCB0aGlzT2JqZWN0LT5uYW1lR2V0dGVyKTtcbiIp
OwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgICAgICByZXR1cm4g
dHJ1ZTtcbiIpOwpAQCAtNDQ5LDIxICs0NDksMjEgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVy
dHlTbG90Qm9keQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkR2V0dGVyIn0pIHsKKyAgICBpZiAoJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkR2V0dGVyIn0pIHsKICAgICAgICAg
JiRtYW51YWxMb29rdXBHZXR0ZXJHZW5lcmF0aW9uKCk7CiAgICAgfQogCi0gICAgaWYgKCRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5k
RGVzY3JpcHRvciJ9KSB7CisgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJKU0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3IifSkgewogICAgICAgICBw
dXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmICh0aGlzT2JqZWN0LT5nZXRPd25Q
cm9wZXJ0eVNsb3REZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxuIik7CiAgICAg
ICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgICAgIHJldHVybiB0cnVlO1xu
Iik7CiAgICAgfQogCiAgICAgaWYgKCRoYXNBdHRyaWJ1dGVzKSB7CiAgICAgICAgIGlmICgkaW5s
aW5lZCkgewotICAgICAgICAgICAgZGllICJDYW5ub3QgaW5saW5lIGlmIE5vU3RhdGljVGFibGVz
IGlzIHNldC4iIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU05vU3RhdGlj
VGFibGVzIn0pOworICAgICAgICAgICAgZGllICJDYW5ub3QgaW5saW5lIGlmIE5vU3RhdGljVGFi
bGVzIGlzIHNldC4iIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNOb1N0
YXRpY1RhYmxlcyJ9KTsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGws
ICIgICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVTbG90PCRjbGFzc05h
bWUsIEJhc2U+KGV4ZWMsIHNfaW5mby5zdGF0aWNQcm9wSGFzaFRhYmxlLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBw
dXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1heWJl
fWdldFN0YXRpY1ZhbHVlU2xvdDwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCAiIC4gaGFzaFRhYmxl
QWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNOb1N0YXRpY1RhYmxl
cyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4i
KTsKKyAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgcmV0dXJu
ICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVTbG90PCRjbGFzc05hbWUsIEJhc2U+KGV4
ZWMsICIgLiBoYXNoVGFibGVBY2Nlc3NvcigkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSlNOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7XG4iKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1
c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CkBAIC00
NzQsMTIgKzQ3NCwxMiBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CiAKIHN1
YiBHZW5lcmF0ZUdldE93blByb3BlcnR5RGVzY3JpcHRvckJvZHkKIHsKLSAgICBteSAoJGRhdGFO
b2RlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05hbWUsICRoYXNBdHRy
aWJ1dGVzLCAkaW5saW5lZCkgPSBAXzsKKyAgICBteSAoJGludGVyZmFjZSwgJGludGVyZmFjZU5h
bWUsICRjbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lLCAkaGFzQXR0cmlidXRlcywgJGlubGluZWQp
ID0gQF87CiAgICAgCiAgICAgbXkgJG5hbWVzcGFjZU1heWJlID0gKCRpbmxpbmVkID8gIkpTQzo6
IiA6ICIiKTsKICAgICAKICAgICBteSBAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCA9ICgp
OwotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5
In0pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrU2Vj
dXJpdHkifSkgewogICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsK
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkJpbmRpbmdTZWN1cml0eS5oIn0gPSAxOwogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNo
b3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coZXhlYywganNDYXN0PCRjbGFzc05hbWUqPih0aGlz
T2JqZWN0KS0+aW1wbCgpKSlcbiIpOwpAQCAtNDk2LDcgKzQ5Niw3IEBAIHN1YiBHZW5lcmF0ZUdl
dE93blByb3BlcnR5RGVzY3JpcHRvckJvZHkKICAgICB9CiAgICAgCiAgICAgbXkgJG1hbnVhbExv
b2t1cEdldHRlckdlbmVyYXRpb24gPSBzdWIgewotICAgICAgICBteSAkcmVxdWlyZXNNYW51YWxM
b29rdXAgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVyIn0g
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRHZXR0ZXIifTsKKyAgICAg
ICAgbXkgJHJlcXVpcmVzTWFudWFsTG9va3VwID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkluZGV4ZWRHZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTmFtZWRHZXR0ZXIifTsKICAgICAgICAgaWYgKCRyZXF1aXJlc01hbnVhbExvb2t1cCkgewog
ICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICBjb25z
dCAke25hbWVzcGFjZU1heWJlfUhhc2hFbnRyeSogZW50cnkgPSAke2NsYXNzTmFtZX1UYWJsZS5l
bnRyeShleGVjLCBwcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIGlmIChlbnRyeSkge1xuIik7CkBAIC01MDgsMTYg
KzUwOCwxNiBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JCb2R5CiAgICAg
ICAgIH0KICAgICB9OwogCi0gICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21OYW1lZEdldHRlciJ9KSB7CisgICAgaWYgKCEkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifSkgewogICAgICAgICAmJG1hbnVhbExvb2t1
cEdldHRlckdlbmVyYXRpb24oKTsKICAgICB9CiAKLSAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSW5kZXhlZEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkluZGV4ZWRHZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTnVtZXJpY0luZGV4ZWRHZXR0ZXIifSkgewogICAgICAgICBwdXNo
KEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIHVuc2lnbmVkIGluZGV4ID0gcHJv
cGVydHlOYW1lLmFzSW5kZXgoKTtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JJbXBsLCAiICAgIGlmIChpbmRleCAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgg
JiYgaW5kZXggPCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwo
KSktPmxlbmd0aCgpKSB7XG4iKTsKLSAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0pIHsKKyAgICAgICAgaWYgKCRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1lcmljSW5kZXhlZEdldHRlciJ9KSB7CiAgICAg
ICAgICAgICAjIEFzc3VtZSB0aGF0IGlmIHRoZXJlJ3MgYSBzZXR0ZXIsIHRoZSBpbmRleCB3aWxs
IGJlIHdyaXRhYmxlCi0gICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9KSB7CisgICAgICAgICAgICBpZiAoJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSkgewogICAgICAg
ICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgIGRl
c2NyaXB0b3Iuc2V0RGVzY3JpcHRvcih0aGlzT2JqZWN0LT5nZXRCeUluZGV4KGV4ZWMsIGluZGV4
KSwgJHtuYW1lc3BhY2VNYXliZX1Eb250RGVsZXRlKTtcbiIpOwogICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAi
ICAgICAgICBkZXNjcmlwdG9yLnNldERlc2NyaXB0b3IodGhpc09iamVjdC0+Z2V0QnlJbmRleChl
eGVjLCBpbmRleCksICR7bmFtZXNwYWNlTWF5YmV9RG9udERlbGV0ZSB8ICR7bmFtZXNwYWNlTWF5
YmV9UmVhZE9ubHkpO1xuIik7CkBAIC01MjYsNyArNTI2LDcgQEAgc3ViIEdlbmVyYXRlR2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yQm9keQogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgJHtuYW1lc3BhY2VNYXliZX1Qcm9wZXJ0eVNsb3Qgc2xv
dDtcbiIpOwogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwg
IiAgICAgICAgc2xvdC5zZXRDdXN0b21JbmRleCh0aGlzT2JqZWN0LCBpbmRleCwgaW5kZXhHZXR0
ZXIpO1xuIik7CiAgICAgICAgICAgICAjIEFzc3VtZSB0aGF0IGlmIHRoZXJlJ3MgYSBzZXR0ZXIs
IHRoZSBpbmRleCB3aWxsIGJlIHdyaXRhYmxlCi0gICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9KSB7CisgICAgICAgICAg
ICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0
ZXIifSkgewogICAgICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvcklt
cGwsICIgICAgICAgIGRlc2NyaXB0b3Iuc2V0RGVzY3JpcHRvcihzbG90LmdldFZhbHVlKGV4ZWMs
IHByb3BlcnR5TmFtZSksICR7bmFtZXNwYWNlTWF5YmV9RG9udERlbGV0ZSk7XG4iKTsKICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9ySW1wbCwgIiAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFs
dWUoZXhlYywgcHJvcGVydHlOYW1lKSwgJHtuYW1lc3BhY2VNYXliZX1Eb250RGVsZXRlIHwgJHtu
YW1lc3BhY2VNYXliZX1SZWFkT25seSk7XG4iKTsKQEAgLTUzNiw3ICs1MzYsNyBAQCBzdWIgR2Vu
ZXJhdGVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JCb2R5CiAgICAgICAgIHB1c2goQGdldE93blBy
b3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgfVxuIik7CiAgICAgfQogCi0gICAgaWYgKCRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkR2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifSkgeworICAgIGlmICgkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRHZXR0ZXIifSB8fCAkaW50ZXJmYWNl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifSkgewogICAgICAgICBw
dXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIGlmIChjYW5HZXRJdGVtc0Zv
ck5hbWUoZXhlYywgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBs
KCkpLCBwcm9wZXJ0eU5hbWUpKSB7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgJHtuYW1lc3BhY2VNYXliZX1Qcm9wZXJ0eVNsb3Qgc2xv
dDtcbiIpOwogICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAg
ICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBuYW1lR2V0dGVyKTtcbiIpOwpAQCAtNTUw
LDIxICs1NTAsMjEgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keQog
ICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkN1c3RvbU5hbWVkR2V0dGVyIn0pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkR2V0dGVyIn0pIHsKICAgICAgICAgJiRtYW51YWxMb29r
dXBHZXR0ZXJHZW5lcmF0aW9uKCk7CiAgICAgfQogCi0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvciJ9
KSB7CisgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUdl
dE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3IifSkgewogICAgICAgICBwdXNoKEBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3JJbXBsLCAiICAgIGlmICh0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3JEZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpKVxuIik7
CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgIHJl
dHVybiB0cnVlO1xuIik7CiAgICAgfQogCiAgICAgaWYgKCRoYXNBdHRyaWJ1dGVzKSB7CiAgICAg
ICAgIGlmICgkaW5saW5lZCkgewotICAgICAgICAgICAgZGllICJDYW5ub3QgaW5saW5lIGlmIE5v
U3RhdGljVGFibGVzIGlzIHNldC4iIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJKU05vU3RhdGljVGFibGVzIn0pOworICAgICAgICAgICAgZGllICJDYW5ub3QgaW5saW5lIGlm
IE5vU3RhdGljVGFibGVzIGlzIHNldC4iIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSlNOb1N0YXRpY1RhYmxlcyJ9KTsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckltcGwsICIgICAgcmV0dXJuICR7bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGlj
VmFsdWVEZXNjcmlwdG9yPCRjbGFzc05hbWUsIEJhc2U+KGV4ZWMsIHNfaW5mby5zdGF0aWNQcm9w
SGFzaFRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpO1xuIik7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JJbXBsLCAiICAgIHJldHVybiAke25hbWVzcGFjZU1heWJlfWdldFN0YXRpY1ZhbHVlRGVzY3Jp
cHRvcjwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCAiIC4gaGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1l
KSAuICIsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgcmV0dXJuICR7
bmFtZXNwYWNlTWF5YmV9Z2V0U3RhdGljVmFsdWVEZXNjcmlwdG9yPCRjbGFzc05hbWUsIEJhc2U+
KGV4ZWMsICIgLiBoYXNoVGFibGVBY2Nlc3NvcigkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSlNOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgcmV0dXJuIEJh
c2U6OmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IpO1xuIik7CkBAIC01NzUsOCArNTc1LDggQEAgc3ViIEdlbmVyYXRlR2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keQogCiBzdWIgR2VuZXJhdGVIZWFkZXJDb250ZW50SGVh
ZGVyCiB7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJGNsYXNzTmFtZSA9ICJK
UyIgLiAkZGF0YU5vZGUtPm5hbWU7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15
ICRjbGFzc05hbWUgPSAiSlMiIC4gJGludGVyZmFjZS0+bmFtZTsKIAogICAgIG15IEBoZWFkZXJD
b250ZW50SGVhZGVyID0gc3BsaXQoIlxyIiwgJGhlYWRlclRlbXBsYXRlKTsKIApAQCAtNTg0LDIw
ICs1ODQsMjAgQEAgc3ViIEdlbmVyYXRlSGVhZGVyQ29udGVudEhlYWRlcgogICAgIHB1c2goQGhl
YWRlckNvbnRlbnRIZWFkZXIsICJcbiNpZm5kZWYgJGNsYXNzTmFtZSIgLiAiX2giKTsKICAgICBw
dXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAiXG4jZGVmaW5lICRjbGFzc05hbWUiIC4gIl9oXG5c
biIpOwogCi0gICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVy
YXRlQ29uZGl0aW9uYWxTdHJpbmcoJGRhdGFOb2RlKTsKKyAgICBteSAkY29uZGl0aW9uYWxTdHJp
bmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkaW50ZXJmYWNl
KTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCAiI2lmICR7Y29uZGl0aW9uYWxTdHJp
bmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICByZXR1cm4gQGhlYWRlckNvbnRl
bnRIZWFkZXI7CiB9CiAKIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcgog
ewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRjbGFzc05hbWUgPSAiSlMiIC4g
JGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkY2xh
c3NOYW1lID0gIkpTIiAuICRpbnRlcmZhY2UtPm5hbWU7CiAKICAgICBteSBAaW1wbENvbnRlbnRI
ZWFkZXIgPSBzcGxpdCgiXHIiLCAkaGVhZGVyVGVtcGxhdGUpOwogCiAgICAgcHVzaChAaW1wbENv
bnRlbnRIZWFkZXIsICJcbiNpbmNsdWRlIFwiY29uZmlnLmhcIlxuIik7Ci0gICAgbXkgJGNvbmRp
dGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmco
JGRhdGFOb2RlKTsKKyAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+
R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkaW50ZXJmYWNlKTsKICAgICBwdXNoKEBpbXBsQ29u
dGVudEhlYWRlciwgIlxuI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRp
b25hbFN0cmluZzsKICAgICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwgIiNpbmNsdWRlIFwiJGNs
YXNzTmFtZS5oXCJcblxuIik7CiAgICAgcmV0dXJuIEBpbXBsQ29udGVudEhlYWRlcjsKQEAgLTYx
NCwxNyArNjE0LDE3IEBAIG15ICV1c2VzVG9KU05ld2x5Q3JlYXRlZCA9ICgKIAogc3ViIFNob3Vs
ZEdlbmVyYXRlVG9KU0RlY2xhcmF0aW9uCiB7Ci0gICAgbXkgKCRoYXNQYXJlbnQsICRkYXRhTm9k
ZSkgPSBAXzsKLSAgICByZXR1cm4gMCBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiU3VwcHJlc3NUb0pTT2JqZWN0In0pOwotICAgIHJldHVybiAxIGlmICghJGhhc1BhcmVudCBv
ciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9KU09iamVjdCJ9
IG9yICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Ub0pTT2JqZWN0In0g
b3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21Ub0pTT2JqZWN0In0p
KTsKKyAgICBteSAoJGhhc1BhcmVudCwgJGludGVyZmFjZSkgPSBAXzsKKyAgICByZXR1cm4gMCBp
ZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN1cHByZXNzVG9KU09iamVjdCJ9
KTsKKyAgICByZXR1cm4gMSBpZiAoISRoYXNQYXJlbnQgb3IgJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVUb0pTT2JqZWN0In0gb3IgKCRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Ub0pTT2JqZWN0In0gb3IgJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tVG9KU09iamVjdCJ9KSk7CiAgICAgcmV0dXJuIDA7CiB9
CiAKIHN1YiBTaG91bGRHZW5lcmF0ZVRvSlNJbXBsZW1lbnRhdGlvbgogewotICAgIG15ICgkaGFz
UGFyZW50LCAkZGF0YU5vZGUpID0gQF87Ci0gICAgcmV0dXJuIDAgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlN1cHByZXNzVG9KU09iamVjdCJ9KTsKLSAgICByZXR1cm4gMSBp
ZiAoKCEkaGFzUGFyZW50IG9yICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2Vu
ZXJhdGVUb0pTT2JqZWN0In0pIGFuZCAhKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbVRvSlNPYmplY3QifSBvciAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJK
U0N1c3RvbVRvSlNPYmplY3QifSkpOworICAgIG15ICgkaGFzUGFyZW50LCAkaW50ZXJmYWNlKSA9
IEBfOworICAgIHJldHVybiAwIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
U3VwcHJlc3NUb0pTT2JqZWN0In0pOworICAgIHJldHVybiAxIGlmICgoISRoYXNQYXJlbnQgb3Ig
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJhdGVUb0pTT2JqZWN0In0p
IGFuZCAhKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Ub0pTT2JqZWN0
In0gb3IgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tVG9KU09iamVj
dCJ9KSk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTY1Niw1MSArNjU2LDUxIEBAIHN1YiBHZXRG
dW5jdGlvbk5hbWUKIHN1YiBHZW5lcmF0ZUhlYWRlcgogewogICAgIG15ICRvYmplY3QgPSBzaGlm
dDsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7
CiAKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkaW50
ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAgICAgbXkgJGNsYXNzTmFtZSA9ICJKUyRp
bnRlcmZhY2VOYW1lIjsKICAgICBteSAkaW1wbENsYXNzTmFtZSA9ICRpbnRlcmZhY2VOYW1lOwog
ICAgIG15IEBhbmNlc3RvckludGVyZmFjZU5hbWVzID0gKCk7CiAgICAgbXkgJXN0cnVjdHVyZUZs
YWdzID0gKCk7CiAKICAgICAjIFdlIG9ubHkgc3VwcG9ydCBtdWx0aXBsZSBwYXJlbnRzIHdpdGgg
U1ZHIChmb3Igbm93KS4KLSAgICBpZiAoQHskZGF0YU5vZGUtPnBhcmVudHN9ID4gMSkgeworICAg
IGlmIChAeyRpbnRlcmZhY2UtPnBhcmVudHN9ID4gMSkgewogICAgICAgICBkaWUgIkEgY2xhc3Mg
Y2FuJ3QgaGF2ZSBtb3JlIHRoYW4gb25lIHBhcmVudCIgdW5sZXNzICRpbnRlcmZhY2VOYW1lID1+
IC9TVkcvOwotICAgICAgICAkY29kZUdlbmVyYXRvci0+QWRkTWV0aG9kc0NvbnN0YW50c0FuZEF0
dHJpYnV0ZXNGcm9tUGFyZW50SW50ZXJmYWNlcygkZGF0YU5vZGUsIFxAYW5jZXN0b3JJbnRlcmZh
Y2VOYW1lcyk7CisgICAgICAgICRjb2RlR2VuZXJhdG9yLT5BZGRNZXRob2RzQ29uc3RhbnRzQW5k
QXR0cmlidXRlc0Zyb21QYXJlbnRJbnRlcmZhY2VzKCRpbnRlcmZhY2UsIFxAYW5jZXN0b3JJbnRl
cmZhY2VOYW1lcyk7CiAgICAgfQogCi0gICAgbXkgJGhhc0xlZ2FjeVBhcmVudCA9ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTTGVnYWN5UGFyZW50In07Ci0gICAgbXkgJGhhc1Jl
YWxQYXJlbnQgPSBAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAwOworICAgIG15ICRoYXNMZWdhY3lQ
YXJlbnQgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNMZWdhY3lQYXJlbnQi
fTsKKyAgICBteSAkaGFzUmVhbFBhcmVudCA9IEB7JGludGVyZmFjZS0+cGFyZW50c30gPiAwOwog
ICAgIG15ICRoYXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFyZW50Owot
ICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05hbWUoJGRhdGFOb2RlKTsK
LSAgICBteSAkbmVlZHNNYXJrQ2hpbGRyZW4gPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJKU0N1c3RvbU1hcmtGdW5jdGlvbiJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkV2ZW50VGFyZ2V0In0gfHwgJGRhdGFOb2RlLT5uYW1lIGVxICJFdmVudFRhcmdldCI7
CisgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9IEdldFBhcmVudENsYXNzTmFtZSgkaW50ZXJmYWNl
KTsKKyAgICBteSAkbmVlZHNNYXJrQ2hpbGRyZW4gPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSlNDdXN0b21NYXJrRnVuY3Rpb24ifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiRXZlbnRUYXJnZXQifSB8fCAkaW50ZXJmYWNlLT5uYW1lIGVxICJFdmVudFRh
cmdldCI7CiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlIGFuZCBoZWFkZXIg
cHJvdGVjdGlvbgotICAgIHB1c2goQGhlYWRlckNvbnRlbnRIZWFkZXIsIEdlbmVyYXRlSGVhZGVy
Q29udGVudEhlYWRlcigkZGF0YU5vZGUpKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVy
LCBHZW5lcmF0ZUhlYWRlckNvbnRlbnRIZWFkZXIoJGludGVyZmFjZSkpOwogCiAgICAgaWYgKCRo
YXNQYXJlbnQpIHsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyIkcGFyZW50Q2xhc3NOYW1lLmgi
fSA9IDE7CiAgICAgfSBlbHNlIHsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyJKU0RPTUJpbmRp
bmcuaCJ9ID0gMTsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8cnVudGltZS9KU0dsb2JhbE9i
amVjdC5oPiJ9ID0gMTsKLSAgICAgICAgaWYgKCRkYXRhTm9kZS0+aXNFeGNlcHRpb24pIHsKKyAg
ICAgICAgaWYgKCRpbnRlcmZhY2UtPmlzRXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAkaGVhZGVy
SW5jbHVkZXN7IjxydW50aW1lL0Vycm9yUHJvdG90eXBlLmg+In0gPSAxOwogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8cnVudGltZS9PYmplY3RQcm90b3R5
cGUuaD4ifSA9IDE7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ2FsbCJ9KSB7CisgICAgaWYgKCRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21DYWxsIn0pIHsKICAgICAgICAgJGhlYWRlckluY2x1
ZGVzeyI8cnVudGltZS9DYWxsRGF0YS5oPiJ9ID0gMTsKICAgICB9CiAKLSAgICBpZiAoJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QifSkg
eworICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNJbmxpbmVHZXRP
d25Qcm9wZXJ0eVNsb3QifSkgewogICAgICAgICAkaGVhZGVySW5jbHVkZXN7IjxydW50aW1lL0xv
b2t1cC5oPiJ9ID0gMTsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8d3RmL0Fsd2F5c0lubGlu
ZS5oPiJ9ID0gMTsKICAgICB9CiAKLSAgICBpZiAoJGhhc1BhcmVudCAmJiAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QifSkgeworICAgIGlm
ICgkaGFzUGFyZW50ICYmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVy
YXRlVG9OYXRpdmVPYmplY3QifSkgewogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzVHlw
ZWRBcnJheVR5cGUoJGltcGxDbGFzc05hbWUpKSB7CiAgICAgICAgICAgICAkaGVhZGVySW5jbHVk
ZXN7Ijx3dGYvJGltcGxDbGFzc05hbWUuaD4ifSA9IDE7CiAgICAgICAgIH0gZWxzZSB7CkBAIC03
MTksOSArNzE5LDkgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgJHN2Z1Byb3BlcnR5T3JMaXN0
UHJvcGVydHlUeXBlID0gJHN2Z1Byb3BlcnR5VHlwZSBpZiAkc3ZnUHJvcGVydHlUeXBlOwogICAg
ICRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSA9ICRzdmdMaXN0UHJvcGVydHlUeXBlIGlm
ICRzdmdMaXN0UHJvcGVydHlUeXBlOwogCi0gICAgbXkgJG51bUNvbnN0YW50cyA9IEB7JGRhdGFO
b2RlLT5jb25zdGFudHN9OwotICAgIG15ICRudW1BdHRyaWJ1dGVzID0gQHskZGF0YU5vZGUtPmF0
dHJpYnV0ZXN9OwotICAgIG15ICRudW1GdW5jdGlvbnMgPSBAeyRkYXRhTm9kZS0+ZnVuY3Rpb25z
fTsKKyAgICBteSAkbnVtQ29uc3RhbnRzID0gQHskaW50ZXJmYWNlLT5jb25zdGFudHN9OworICAg
IG15ICRudW1BdHRyaWJ1dGVzID0gQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfTsKKyAgICBteSAk
bnVtRnVuY3Rpb25zID0gQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9OwogCiAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIlxubmFtZXNwYWNlIFdlYkNvcmUge1xuXG4iKTsKIApAQCAtNzI5LDEzICs3
MjksMTMgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICRoZWFkZXJJbmNsdWRlc3siJGlt
cGxDbGFzc05hbWUuaCJ9ID0gMTsKICAgICB9IGVsc2UgewogICAgICAgICAjIEltcGxlbWVudGF0
aW9uIGNsYXNzIGZvcndhcmQgZGVjbGFyYXRpb24KLSAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1l
IGVxICJET01XaW5kb3ciIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklzV29y
a2VyQ29udGV4dCJ9KSB7CisgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IiB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSXNXb3JrZXJDb250ZXh0In0p
IHsKICAgICAgICAgICAgIEFkZENsYXNzRm9yd2FyZElmTmVlZGVkKCRpbXBsQ2xhc3NOYW1lKSB1
bmxlc3MgJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlOwogICAgICAgICB9CiAgICAgfQog
CiAgICAgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQoIkpTRE9NV2luZG93U2hlbGwiKSBpZiAkaW50
ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IjsKLSAgICBBZGRDbGFzc0ZvcndhcmRJZk5lZWRlZCgi
SlNEaWN0aW9uYXJ5IikgaWYgJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUZW1wbGF0ZSgk
ZGF0YU5vZGUsICJFdmVudCIpOworICAgIEFkZENsYXNzRm9yd2FyZElmTmVlZGVkKCJKU0RpY3Rp
b25hcnkiKSBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclRlbXBsYXRlKCRpbnRlcmZh
Y2UsICJFdmVudCIpOwogCiAgICAgIyBDbGFzcyBkZWNsYXJhdGlvbgogICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJjbGFzcyAkY2xhc3NOYW1lIDogcHVibGljICRwYXJlbnRDbGFzc05hbWUge1xu
Iik7CkBAIC03NTEsNyArNzUxLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgICAgIGdsb2JhbERhdGEuaGVhcC5hZGRGaW5hbGl6ZXIocHRy
LCBkZXN0cm95KTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICBy
ZXR1cm4gcHRyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4i
KTsKLSAgICB9IGVsc2lmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJc1dvcmtl
ckNvbnRleHQifSkgeworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJJc1dvcmtlckNvbnRleHQifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHN0YXRpYyAkY2xhc3NOYW1lKiBjcmVhdGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBs
KVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAge1xuIik7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgICRjbGFzc05hbWUqIHB0ciA9IG5ldyAoTm90
TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8JGNsYXNzTmFtZT4oZ2xvYmFsRGF0YS5oZWFwKSkgJHtj
bGFzc05hbWV9KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW1wbCk7XG4iKTsKQEAgLTc1OSw3ICs3
NTksNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAgICAgZ2xvYmFsRGF0YS5oZWFwLmFkZEZpbmFsaXplcihwdHIsIGRlc3Ryb3kpO1xuIik7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBwdHI7XG4iKTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB9XG5cbiIpOwotICAgIH0gZWxzaWYg
KCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik1hc3F1ZXJhZGVzQXNVbmRlZmluZWQi
fSkgeworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJNYXNx
dWVyYWRlc0FzVW5kZWZpbmVkIn0pIHsKICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5IZWFk
ZXIoJGltcGxUeXBlKSB1bmxlc3MgJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAkY2xhc3NOYW1lKiBjcmVhdGUo
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+IGltcGwpXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICB7XG4iKTsKQEAgLTc3OCw1MCArNzc4LDUwIEBAIHN1YiBHZW5lcmF0ZUhl
YWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxuIik7CiAgICAgfQog
Ci0gICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IklzV29ya2VyQ29udGV4dCJ9KSB7CisgICAgaWYgKCRpbnRlcmZh
Y2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJJc1dvcmtlckNvbnRleHQifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSBmYWxzZTtcblxuIik7CiAgICAg
fQogCiAgICAgIyBQcm90b3R5cGUKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7XG4iKSB1bmxlc3MgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkV4dGVuZHNET01HbG9iYWxPYmplY3QifSk7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU0dsb2JhbE9iamVjdCopO1xuIikgdW5sZXNzICgkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiRXh0ZW5kc0RPTUdsb2JhbE9iamVjdCJ9KTsKIAotICAgICRoZWFkZXJU
cmFpbGluZ0luY2x1ZGVzeyIke2NsYXNzTmFtZX1DdXN0b20uaCJ9ID0gMSBpZiAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUhlYWRlciJ9OworICAgICRoZWFkZXJUcmFp
bGluZ0luY2x1ZGVzeyIke2NsYXNzTmFtZX1DdXN0b20uaCJ9ID0gMSBpZiAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21IZWFkZXIifTsKIAotICAgICRpbXBsSW5jbHVk
ZXN7IiR7Y2xhc3NOYW1lfUN1c3RvbS5oIn0gPSAxIGlmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJKU0N1c3RvbUhlYWRlciJ9ICYmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21QdXRGdW5jdGlvbiJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbU5hbWVkU2V0dGVyIn0pOworICAgICRpbXBsSW5jbHVkZXN7IiR7Y2xhc3NO
YW1lfUN1c3RvbS5oIn0gPSAxIGlmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNDdXN0b21IZWFkZXIifSAmJiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbVB1dEZ1bmN0aW9uIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbU5hbWVkU2V0dGVyIn0pOwogCiAgICAgbXkgJGhhc0NvbXBsZXhHZXR0ZXIgPQotICAgICAg
ICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVyIn0KLSAgICAg
ICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTnVtZXJpY0luZGV4ZWRHZXR0
ZXIifQotICAgICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21H
ZXRPd25Qcm9wZXJ0eVNsb3QifQotICAgICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJKU0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3IifQotICAgICAg
ICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZEdldHRlciJ9Ci0gICAg
ICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkR2V0dGVy
In07CisgICAgICAgICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0
dGVyIn0KKyAgICAgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVy
aWNJbmRleGVkR2V0dGVyIn0KKyAgICAgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbUdldE93blByb3BlcnR5U2xvdCJ9CisgICAgICAgIHx8ICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2Ny
aXB0b3IifQorICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFt
ZWRHZXR0ZXIifQorICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tTmFtZWRHZXR0ZXIifTsKICAgICAKLSAgICBteSAkaGFzR2V0dGVyID0gJG51bUF0dHJp
YnV0ZXMgPiAwIHx8ICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3Ry
dWN0b3IifSB8fCAkaGFzQ29tcGxleEdldHRlcjsKKyAgICBteSAkaGFzR2V0dGVyID0gJG51bUF0
dHJpYnV0ZXMgPiAwIHx8ICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENv
bnN0cnVjdG9yIn0gfHwgJGhhc0NvbXBsZXhHZXR0ZXI7CiAKICAgICAjIEdldHRlcnMKICAgICBp
ZiAoJGhhc0dldHRlcikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yJik7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNDZWxs
KiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90Jik7XG4iKSBpZiAoJGhhc0NvbXBsZXhHZXR0ZXIpOwotICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5k
RGVzY3JpcHRvciJ9OwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yRGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRv
ciJ9OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eVNsb3QmKTtcbiIpIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJK
U0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3IifTsKKyAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvckRlbGVnYXRl
KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlw
dG9yJik7XG4iKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21H
ZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yIn07CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFn
c3siSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QifSA9IDE7CiAgICAgICAgICRzdHJ1
Y3R1cmVGbGFnc3siSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5X
aGVuTGVuZ3RoSXNOb3RaZXJvIn0gPSAxOwogICAgIH0KIAogICAgICMgQ2hlY2sgaWYgd2UgaGF2
ZSBhbnkgd3JpdGFibGUgcHJvcGVydGllcwogICAgIG15ICRoYXNSZWFkV3JpdGVQcm9wZXJ0aWVz
ID0gMDsKLSAgICBmb3JlYWNoIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICBmb3Jl
YWNoIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CiAgICAgICAgIGlmICghSXNSZWFkb25s
eSgkXykgJiYgISRfLT5pc1N0YXRpYykgewogICAgICAgICAgICAgJGhhc1JlYWRXcml0ZVByb3Bl
cnRpZXMgPSAxOwogICAgICAgICB9CiAgICAgfQogCiAgICAgbXkgJGhhc0NvbXBsZXhTZXR0ZXIg
PQotICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21QdXRGdW5j
dGlvbiJ9Ci0gICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bU5hbWVkU2V0dGVyIn0KLSAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9OworICAgICAgICAkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ3VzdG9tUHV0RnVuY3Rpb24ifQorICAgICAgICB8fCAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRTZXR0ZXIifQorICAgICAgICB8fCAkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9OwogICAg
ICAgICAKICAgICBteSAkaGFzU2V0dGVyID0gJGhhc1JlYWRXcml0ZVByb3BlcnRpZXMgfHwgJGhh
c0NvbXBsZXhTZXR0ZXI7CiAKQEAgLTgyOSw3ICs4MjksNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIK
ICAgICBpZiAoJGhhc1NldHRlcikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgoSlND
OjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpK
U1ZhbHVlLCBib29sIHNob3VsZFRocm93KTtcbiIpIGlmICgkaGFzQ29tcGxleFNldHRlcik7Ci0g
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBwdXREZWxlZ2F0ZShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVy
dHlTbG90Jik7XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21O
YW1lZFNldHRlciJ9OworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgcHV0
RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVl
LCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIikgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbU5hbWVkU2V0dGVyIn07CiAgICAgfQogCiAgICAgaWYgKCEkaGFzUGFy
ZW50KSB7CkBAIC04NDksNyArODQ5LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgfQogICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSlcbiIpOwogICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAge1xuIik7Ci0gICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklzV29ya2VyQ29u
dGV4dCJ9KSB7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJc1dvcmtlckNvbnRleHQifSkgewogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNy
ZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhK
U0M6Okdsb2JhbE9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7XG4iKTsKICAg
ICB9IGVsc2UgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7XG4iKTsKQEAgLTg1NywxNCArODU3LDE0IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4iKTsKIAogICAgICMgQ3VzdG9tIHB1c2hFdmVu
dEhhbmRsZXJTY29wZSBmdW5jdGlvbgotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlND
OjpKU1Njb3BlKiBwdXNoRXZlbnRIYW5kbGVyU2NvcGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
U2NvcGUqKSBjb25zdDtcblxuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNDdXN0b21QdXNoRXZlbnRIYW5kbGVyU2NvcGUifTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIEpTQzo6SlNTY29wZSogcHVzaEV2ZW50SGFuZGxlclNjb3BlKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1Njb3BlKikgY29uc3Q7XG5cbiIpIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJKU0N1c3RvbVB1c2hFdmVudEhhbmRsZXJTY29wZSJ9OwogCiAgICAgIyBDdXN0
b20gY2FsbCBmdW5jdGlvbnMKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBK
U0M6OkNhbGxUeXBlIGdldENhbGxEYXRhKEpTQzo6SlNDZWxsKiwgSlNDOjpDYWxsRGF0YSYpO1xu
XG4iKSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21DYWxsIn07Cisg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpDYWxsVHlwZSBnZXRDYWxs
RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q2FsbERhdGEmKTtcblxuIikgaWYgJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNhbGwifTsKIAogICAgICMgQ3VzdG9tIGRlbGV0
ZVByb3BlcnR5IGZ1bmN0aW9uCi0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
Ym9vbCBkZWxldGVQcm9wZXJ0eShKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQ
cm9wZXJ0eU5hbWUpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tRGVsZXRlUHJvcGVydHkifTsKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyBib29sIGRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRl
KiwgdW5zaWduZWQpO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3Vz
dG9tRGVsZXRlUHJvcGVydHkifTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OlByb3BlcnR5TmFtZSk7XG4iKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tRGVsZXRlUHJvcGVydHkifTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0
YXRpYyBib29sIGRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0
YXRlKiwgdW5zaWduZWQpO1xuIikgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbURlbGV0ZVByb3BlcnR5In07CiAKICAgICAjIEN1c3RvbSBnZXRQcm9wZXJ0eU5hbWVz
IGZ1bmN0aW9uIGV4aXN0cyBvbiBET01XaW5kb3cKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEg
IkRPTVdpbmRvdyIpIHsKQEAgLTg3MywyOCArODczLDI4IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgog
ICAgIH0KIAogICAgICMgQ3VzdG9tIGdldE93blByb3BlcnR5TmFtZXMgZnVuY3Rpb24KLSAgICBp
ZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRW51bWVyYXRlUHJvcGVy
dHkifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVyIn0g
fHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTnVtZXJpY0luZGV4ZWRHZXR0ZXIi
fSkgeworICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRW51
bWVyYXRlUHJvcGVydHkifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5k
ZXhlZEdldHRlciJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1lcmlj
SW5kZXhlZEdldHRlciJ9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3Rh
dGljIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5JiwgSlNDOjpFbnVtZXJhdGlvbk1vZGUgbW9kZSA9
IEpTQzo6RXhjbHVkZURvbnRFbnVtUHJvcGVydGllcyk7XG4iKTsKICAgICAgICAgJHN0cnVjdHVy
ZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMifSA9IDE7ICAgICAgIAogICAg
IH0KIAogICAgICMgQ3VzdG9tIGRlZmluZU93blByb3BlcnR5IGZ1bmN0aW9uCi0gICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBkZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3ImLCBib29sIHNob3VsZFRocm93KTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tRGVmaW5lT3duUHJvcGVydHkifTsKKyAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGRlZmluZU93blByb3BlcnR5KEpTQzo6SlNP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpO1xuIikgaWYgJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tRGVmaW5lT3duUHJvcGVydHkifTsKIAogICAgICMgT3Zl
cnJpZGUgdG9Cb29sZWFuIHRvIHJldHVybiBmYWxzZSBmb3Igb2JqZWN0cyB0aGF0IHdhbnQgdG8g
J01hc3F1ZXJhZGVzQXNVbmRlZmluZWQnLgotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIn0pIHsKKyAgICBpZiAoJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik1hc3F1ZXJhZGVzQXNVbmRlZmluZWQifSkgewogICAg
ICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCJ9ID0gMTsK
ICAgICB9CiAKICAgICAjIENvbnN0cnVjdG9yIG9iamVjdCBnZXR0ZXIKLSAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7XG4iKSBpZiAhJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn07CisgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopO1xuIikgaWYgISRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifTsKIAogICAgIG15ICRudW1DdXN0b21GdW5j
dGlvbnMgPSAwOwogICAgIG15ICRudW1DdXN0b21BdHRyaWJ1dGVzID0gMDsKIAogICAgICMgQXR0
cmlidXRlIGFuZCBmdW5jdGlvbiBlbnVtcwogICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDApIHsK
LSAgICAgICAgZm9yZWFjaCAoQHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9KSB7CisgICAgICAgIGZv
cmVhY2ggKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAgICAgIG15ICRhdHRy
aWJ1dGUgPSAkXzsKICAgICAgICAgICAgICRudW1DdXN0b21BdHRyaWJ1dGVzKysgaWYgJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0gfHwgJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b20ifTsKICAgICAg
ICAgICAgICRudW1DdXN0b21BdHRyaWJ1dGVzKysgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldHRlciJ9IHx8ICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tR2V0dGVyIn0pOwpAQCAtOTE5LDcg
KzkxOSw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmICgkbnVtQ3VzdG9tQXR0cmlidXRl
cyA+IDApIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxuICAgIC8vIEN1c3RvbSBh
dHRyaWJ1dGVzXG4iKTsKIAotICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFO
b2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGlu
dGVyZmFjZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmlu
ZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZSk7CiAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tIn0gfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b20ifSB8fCAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXR0ZXIifSB8fCAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUdldHRlciJ9KSB7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikg
aWYgJGNvbmRpdGlvbmFsU3RyaW5nOwpAQCAtOTM1LDEzICs5MzUsMTMgQEAgc3ViIEdlbmVyYXRl
SGVhZGVyCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHsk
ZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50
ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAgICAgICAgICRudW1DdXN0b21GdW5jdGlvbnMrKyBpZiAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8ICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b20ifTsKICAg
ICB9CiAKICAgICBpZiAoJG51bUN1c3RvbUZ1bmN0aW9ucyA+IDApIHsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIlxuICAgIC8vIEN1c3RvbSBmdW5jdGlvbnNcbiIpOwotICAgICAgICBm
b3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAg
Zm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAg
ICAgICAgbmV4dCB1bmxlc3MgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b20ifSBvciAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkpTQ3VzdG9tIn07CiAgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+e292ZXJsb2Fk
c30gJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gIT0gMTsKICAgICAgICAgICAgIG15ICRj
b25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3Ry
aW5nKCRmdW5jdGlvbi0+c2lnbmF0dXJlKTsKQEAgLTk1OCw3ICs5NTgsNyBAQCBzdWIgR2VuZXJh
dGVIZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2b2lkIHJlbGVhc2VJ
bXBsSWZOb3ROdWxsKCkgeyBpZiAobV9pbXBsKSB7IG1faW1wbC0+ZGVyZWYoKTsgbV9pbXBsID0g
MDsgfSB9XG5cbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJpdmF0ZTpcbiIp
OwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRpbXBsVHlwZSogbV9pbXBsO1xu
Iik7Ci0gICAgfSBlbHNpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5l
cmF0ZVRvTmF0aXZlT2JqZWN0In0pIHsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0pIHsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wbCgpIGNvbnN0XG4iKTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4iKTsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1l
Kj4oQmFzZTo6aW1wbCgpKTtcbiIpOwpAQCAtOTg1LDcgKzk4NSw3IEBAIHN1YiBHZW5lcmF0ZUhl
YWRlcgogICAgICMgQ29uc3RydWN0b3IKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdp
bmRvdyIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKEpT
Qzo6SlNHbG9iYWxEYXRhJiwgSlNDOjpTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4s
IEpTRE9NV2luZG93U2hlbGwqKTtcbiIpOwotICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IklzV29ya2VyQ29udGV4dCJ9KSB7CisgICAgfSBlbHNpZiAoJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklzV29ya2VyQ29udGV4dCJ9KSB7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OkpTR2xvYmFsRGF0YSYs
IEpTQzo6U3RydWN0dXJlKiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcbiIpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcbiIp
OwpAQCAtMTAwMCwxOSArMTAwMCwxOSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiQmFzZTo6U3RydWN0dXJlRmxhZ3M7XG4iKTsKIAogICAgICMgSW5kZXgg
Z2V0dGVyCi0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkluZGV4ZWRH
ZXR0ZXIifSkgeworICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5k
ZXhlZEdldHRlciJ9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBpbmRleEdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwg
dW5zaWduZWQpO1xuIik7CiAgICAgfQotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJOdW1lcmljSW5kZXhlZEdldHRlciJ9KSB7CisgICAgaWYgKCRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1lcmljSW5kZXhlZEdldHRlciJ9KSB7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlNDOjpKU1ZhbHVlIGdldEJ5SW5kZXgoSlNDOjpFeGVj
U3RhdGUqLCB1bnNpZ25lZCBpbmRleCk7XG4iKTsKICAgICB9CiAKICAgICAjIEluZGV4IHNldHRl
cgotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21JbmRleGVk
U2V0dGVyIn0pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbUluZGV4ZWRTZXR0ZXIifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IHZvaWQgaW5kZXhTZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBpbmRleCwgSlNDOjpK
U1ZhbHVlKTtcbiIpOwogICAgIH0KICAgICAjIE5hbWUgZ2V0dGVyCi0gICAgaWYgKCRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkR2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifSkgeworICAgIGlmICgkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRHZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifSkgewogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAicHJpdmF0ZTpcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHN0YXRpYyBib29sIGNhbkdldEl0ZW1zRm9yTmFtZShKU0M6OkV4ZWNTdGF0ZSos
ICRpbXBsQ2xhc3NOYW1lKiwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBuYW1lR2V0dGVyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKQEAgLTEw
MjAsMjcgKzEwMjAsMjcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAifTtcblxuIik7CiAKLSAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSlNJbmxpbmVHZXRPd25Qcm9wZXJ0eVNsb3QifSAmJiAhJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90In0pIHsKKyAgICBpZiAoJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTSW5saW5lR2V0T3duUHJvcGVydHlTbG90
In0gJiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9w
ZXJ0eVNsb3QifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiQUxXQVlTX0lOTElO
RSBib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiBjZWxs
LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAie1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9
KiB0aGlzT2JqZWN0ID0gSlNDOjpqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsICZzX2luZm8pO1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
IEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSgkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1l
LCAkY2xhc3NOYW1lLCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAxKSk7Cisg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9k
eSgkaW50ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05hbWUs
ICRudW1BdHRyaWJ1dGVzID4gMCwgMSkpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
fVxuXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkFMV0FZU19JTkxJTkUgYm9v
bCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiBv
YmplY3QsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OlByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBKU0M6OmpzQ2FzdDwke2NsYXNzTmFtZX0q
PihvYmplY3QpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTtcbiIpOwotICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0ZUdldE93blByb3BlcnR5RGVzY3JpcHRvckJvZHko
JGRhdGFOb2RlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05hbWUsICRu
dW1BdHRyaWJ1dGVzID4gMCwgMSkpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZW5l
cmF0ZUdldE93blByb3BlcnR5RGVzY3JpcHRvckJvZHkoJGludGVyZmFjZSwgJGludGVyZmFjZU5h
bWUsICRjbGFzc05hbWUsICRpbXBsQ2xhc3NOYW1lLCAkbnVtQXR0cmlidXRlcyA+IDAsIDEpKTsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn1cblxuIik7CiAgICAgfQogCiAgICAgaWYg
KCEkaGFzUGFyZW50IHx8Ci0gICAgICAgIEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2Rl
KSB8fAotICAgICAgICBHZXRDdXN0b21Jc1JlYWNoYWJsZSgkZGF0YU5vZGUpIHx8Ci0gICAgICAg
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tRmluYWxpemUifSB8fAot
ICAgICAgICAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3Qi
fSkgewotICAgICAgICBpZiAoJGltcGxDbGFzc05hbWUgbmUgIk5vZGUiICYmICRjb2RlR2VuZXJh
dG9yLT5Jc1N1YlR5cGUoJGRhdGFOb2RlLCAiTm9kZSIpKSB7CisgICAgICAgIEdldEdlbmVyYXRl
SXNSZWFjaGFibGUoJGludGVyZmFjZSkgfHwKKyAgICAgICAgR2V0Q3VzdG9tSXNSZWFjaGFibGUo
JGludGVyZmFjZSkgfHwKKyAgICAgICAgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkpTQ3VzdG9tRmluYWxpemUifSB8fAorICAgICAgICAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0pIHsKKyAgICAgICAgaWYgKCRpbXBsQ2xhc3NOYW1l
IG5lICJOb2RlIiAmJiAkY29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRpbnRlcmZhY2UsICJOb2Rl
IikpIHsKICAgICAgICAgICAgICRoZWFkZXJJbmNsdWRlc3siSlNOb2RlLmgifSA9IDE7CiAgICAg
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgSlMke2ltcGxDbGFzc05hbWV9T3du
ZXIgOiBwdWJsaWMgSlNOb2RlT3duZXIge1xuIik7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xMDYz
LDEwICsxMDYzLDEwIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAifVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcbiIpOwogICAg
IH0KLSAgICBpZiAoU2hvdWxkR2VuZXJhdGVUb0pTRGVjbGFyYXRpb24oJGhhc1BhcmVudCwgJGRh
dGFOb2RlKSkgeworICAgIGlmIChTaG91bGRHZW5lcmF0ZVRvSlNEZWNsYXJhdGlvbigkaGFzUGFy
ZW50LCAkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpK
U1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbXBsVHlw
ZSopO1xuIik7CiAgICAgfQotICAgIGlmICghJGhhc1BhcmVudCB8fCAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QifSkgeworICAgIGlmICgh
JGhhc1BhcmVudCB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0
ZVRvTmF0aXZlT2JqZWN0In0pIHsKICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJOb2Rl
RmlsdGVyIikgewogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlBhc3NSZWZQdHI8
Tm9kZUZpbHRlcj4gdG9Ob2RlRmlsdGVyKEpTQzo6SlNHbG9iYWxEYXRhJiwgSlNDOjpKU1ZhbHVl
KTtcbiIpOwogICAgICAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NU3RyaW5nTGlz
dCIpIHsKQEAgLTEwODYsNyArMTA4Niw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICJjbGFzcyAke2NsYXNzTmFtZX1Qcm90b3R5cGUgOiBwdWJsaWMgSlND
OjpKU05vbkZpbmFsT2JqZWN0IHtcbiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJwdWJs
aWM6XG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHR5cGVkZWYgSlNDOjpKU05v
bkZpbmFsT2JqZWN0IEJhc2U7XG4iKTsKLSAgICBpZiAoJGludGVyZmFjZU5hbWUgbmUgIkRPTVdp
bmRvdyIgJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklzV29ya2VyQ29udGV4
dCJ9KSB7CisgICAgaWYgKCRpbnRlcmZhY2VOYW1lIG5lICJET01XaW5kb3ciICYmICEkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSXNXb3JrZXJDb250ZXh0In0pIHsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogc2VsZihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTtcbiIpOwogICAgIH0KIApAQCAtMTEw
Myw3ICsxMTAzLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
RGVzY3JpcHRvciYpO1xuIik7CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QifSA9IDE7CiAgICAgfQotICAgIGlmICgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbU1hcmtGdW5jdGlvbiJ9IG9yICRuZWVkc01hcmtD
aGlsZHJlbikgeworICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlND
dXN0b21NYXJrRnVuY3Rpb24ifSBvciAkbmVlZHNNYXJrQ2hpbGRyZW4pIHsKICAgICAgICAgJHN0
cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4ifSA9IDE7CiAgICAgfQog
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsCkBAIC0xMTExLDEzICsxMTExLDEzIEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgICAgICAiICAgIHtcbiIgLgogICAgICAgICAiICAgICAgICByZXR1cm4g
SlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5m
byk7XG4iIC4KICAgICAgICAgIiAgICB9XG4iKTsKLSAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21OYW1lZEdldHRlck9uUHJvdG90eXBlIn0pIHsKKyAgICBp
ZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tTmFtZWRHZXR0ZXJP
blByb3RvdHlwZSJ9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBwdXREZWxlZ2F0ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7
XG4iKTsKICAgICB9CiAKICAgICAjIEN1c3RvbSBkZWZpbmVPd25Qcm9wZXJ0eSBmdW5jdGlvbgot
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgZGVmaW5lT3duUHJvcGVy
dHkoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6UHJvcGVydHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7XG4iKSBpZiAkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbURlZmluZU93blByb3BlcnR5T25Qcm90
b3R5cGUifTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGRlZmlu
ZU93blByb3BlcnR5KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpO1xuIikg
aWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tRGVmaW5lT3duUHJv
cGVydHlPblByb3RvdHlwZSJ9OwogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxucHJpdmF0
ZTpcbiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9UHJvdG90
eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kiwg
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTTm9uRmluYWxPYmplY3QoZ2xvYmFs
RGF0YSwgc3RydWN0dXJlKSB7IH1cbiIpOwpAQCAtMTEzMiwxNCArMTEzMiwxNCBAQCBzdWIgR2Vu
ZXJhdGVIZWFkZXIKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKIAotICAg
IGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0p
IHsKKyAgICBpZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3Ry
dWN0b3IifSkgewogICAgICAgICAkaGVhZGVySW5jbHVkZXN7IkpTRE9NQmluZGluZy5oIn0gPSAx
OwotICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24oXEBoZWFkZXJDb250ZW50
LCAkY2xhc3NOYW1lLCAkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lKTsKKyAgICAgICAgR2VuZXJh
dGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uKFxAaGVhZGVyQ29udGVudCwgJGNsYXNzTmFtZSwgJGlu
dGVyZmFjZSwgJGludGVyZmFjZU5hbWUpOwogICAgIH0KIAogICAgIGlmICgkbnVtRnVuY3Rpb25z
ID4gMCkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCIvLyBGdW5jdGlvbnNcblxuIik7
Ci0gICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkg
eworICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9
KSB7CiAgICAgICAgICAgICBuZXh0IGlmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ICYmICRm
dW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ID4gMTsKICAgICAgICAgICAgIG15ICRjb25kaXRpb25h
bFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRmdW5j
dGlvbi0+c2lnbmF0dXJlKTsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjaWYg
JHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKQEAgLTExNDks
OSArMTE0OSw5IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICB9CiAgICAgfQogCi0gICAg
aWYgKCRudW1BdHRyaWJ1dGVzID4gMCB8fCAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiT21pdENvbnN0cnVjdG9yIn0pIHsKKyAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwIHx8ICEk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVjdG9yIn0pIHsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwiLy8gQXR0cmlidXRlc1xuXG4iKTsKLSAgICAgICAg
Zm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRkYXRhTm9kZS0+YXR0cmlidXRlc30pIHsKKyAgICAg
ICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CiAg
ICAgICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJh
dGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgbXkgJGdldHRlciA9IEdldEF0dHJpYnV0ZUdl
dHRlck5hbWUoJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwpAQCAtMTE2
MywxMiArMTE2MywxMiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJPbWl0Q29uc3RydWN0b3IifSkgeworICAgICAgICBpZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSkgewogICAgICAgICAgICAgbXkgJGdldHRl
ciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAgICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgIH0KIAot
ICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVwbGFjZWFibGVD
b25zdHJ1Y3RvciJ9KSB7CisgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiUmVwbGFjZWFibGVDb25zdHJ1Y3RvciJ9KSB7CiAgICAgICAgICAgICBteSAkY29uc3Ry
dWN0b3JGdW5jdGlvbk5hbWUgPSAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0
b3IiOwogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInZvaWQgJHtjb25zdHJ1Y3Rv
ckZ1bmN0aW9uTmFtZX0oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1Zh
bHVlKTtcbiIpOwogICAgICAgICB9CkBAIC0xMTc2LDcgKzExNzYsNyBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKIAogICAgIGlmICgkbnVtQ29uc3RhbnRzID4gMCkgewogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCIvLyBDb25zdGFudHNcblxuIik7Ci0gICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0
YW50IChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSkgeworICAgICAgICBmb3JlYWNoIG15ICRjb25z
dGFudCAoQHskaW50ZXJmYWNlLT5jb25zdGFudHN9KSB7CiAgICAgICAgICAgICBteSAkY29uZGl0
aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygk
Y29uc3RhbnQpOwogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpZiAke2NvbmRp
dGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgbXkg
JGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2Zp
cnN0KCRjb25zdGFudC0+bmFtZSk7CkBAIC0xMTg1LDcgKzExODUsNyBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKICAgICAgICAgfQogICAgIH0KIAotICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRj
b2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRkYXRhTm9kZSk7CisgICAg
bXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9u
YWxTdHJpbmcoJGludGVyZmFjZSk7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxufSAvLyBu
YW1lc3BhY2UgV2ViQ29yZVxuXG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlm
IC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlmXG4iKTsKQEAgLTExOTksMTUgKzExOTksMTUg
QEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKIHN1YiBHZW5lcmF0ZUF0dHJpYnV0ZXNIYXNoVGFibGUo
JCQpCiB7Ci0gICAgbXkgKCRvYmplY3QsICRkYXRhTm9kZSkgPSBAXzsKKyAgICBteSAoJG9iamVj
dCwgJGludGVyZmFjZSkgPSBAXzsKIAotICAgICMgRklYTUU6IFRoZXNlIHNob3VsZCBiZSBmdW5j
dGlvbnMgb24gJGRhdGFOb2RlLgotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5u
YW1lOworICAgICMgRklYTUU6IFRoZXNlIHNob3VsZCBiZSBmdW5jdGlvbnMgb24gJGludGVyZmFj
ZS4KKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAgICAgbXkgJGNs
YXNzTmFtZSA9ICJKUyRpbnRlcmZhY2VOYW1lIjsKICAgICAKICAgICAjIC0gQWRkIGFsbCBhdHRy
aWJ1dGVzIGluIGEgaGFzaHRhYmxlIGRlZmluaXRpb24KLSAgICBteSAkbnVtQXR0cmlidXRlcyA9
IEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfTsKLSAgICAkbnVtQXR0cmlidXRlcysrIGlmICEkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifTsKKyAgICBteSAk
bnVtQXR0cmlidXRlcyA9IEB7JGludGVyZmFjZS0+YXR0cmlidXRlc307CisgICAgJG51bUF0dHJp
YnV0ZXMrKyBpZiAhJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1
Y3RvciJ9OwogCiAgICAgcmV0dXJuIDAgIGlmICEkbnVtQXR0cmlidXRlczsKIApAQCAtMTIyMiw3
ICsxMjIyLDcgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlc0hhc2hUYWJsZSgkJCkKIAogICAgIG15
IEBlbnRyaWVzID0gKCk7CiAKLSAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2Rl
LT5hdHRyaWJ1dGVzfSkgeworICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNl
LT5hdHRyaWJ1dGVzfSkgewogICAgICAgICBuZXh0IGlmICgkYXR0cmlidXRlLT5pc1N0YXRpYyk7
CiAgICAgICAgIG15ICRuYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAg
ICBwdXNoKEBoYXNoS2V5cywgJG5hbWUpOwpAQCAtMTI1MCwxMSArMTI1MCwxMSBAQCBzdWIgR2Vu
ZXJhdGVBdHRyaWJ1dGVzSGFzaFRhYmxlKCQkKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYg
KCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29uc3RydWN0b3IifSkgewor
ICAgIGlmICghJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3Rv
ciJ9KSB7CiAgICAgICAgIHB1c2goQGhhc2hLZXlzLCAiY29uc3RydWN0b3IiKTsKICAgICAgICAg
bXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAgICAg
ICAgIHB1c2goQGhhc2hWYWx1ZTEsICRnZXR0ZXIpOwotICAgICAgICBpZiAoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVwbGFjZWFibGVDb25zdHJ1Y3RvciJ9KSB7CisgICAgICAg
IGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVwbGFjZWFibGVDb25zdHJ1
Y3RvciJ9KSB7CiAgICAgICAgICAgICBteSAkc2V0dGVyID0gInNldEpTIiAuICRpbnRlcmZhY2VO
YW1lIC4gIkNvbnN0cnVjdG9yIjsKICAgICAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICRzZXR0
ZXIpOwogICAgICAgICAgICAgcHVzaChAaGFzaFNwZWNpYWxzLCAiRG9udEVudW0gfCBEb250RGVs
ZXRlIik7CkBAIC0xMzU2LDcgKzEzNTYsNyBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvblBhcmFtZXRl
cnNDaGVjawogc3ViIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uCiB7CiAgICAgbXkgJGZ1bmN0
aW9uID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFj
ZSA9IHNoaWZ0OwogICAgIG15ICRpbXBsQ2xhc3NOYW1lID0gc2hpZnQ7CiAKICAgICAjIEdlbmVy
YXRlIGNvZGUgZm9yIGNob29zaW5nIHRoZSBjb3JyZWN0IG92ZXJsb2FkIHRvIGNhbGwuIE92ZXJs
b2FkcyBhcmUKQEAgLTE0MDMsMjcgKzE0MDMsMjcgQEAgRU5ECiAKIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiB7Ci0gICAgbXkgKCRvYmplY3QsICRkYXRhTm9kZSkgPSBAXzsKKyAgICBteSAo
JG9iamVjdCwgJGludGVyZmFjZSkgPSBAXzsKIAotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRh
dGFOb2RlLT5uYW1lOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsK
ICAgICBteSAkY2xhc3NOYW1lID0gIkpTJGludGVyZmFjZU5hbWUiOwogICAgIG15ICRpbXBsQ2xh
c3NOYW1lID0gJGludGVyZmFjZU5hbWU7CiAKLSAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNMZWdhY3lQYXJlbnQifTsKLSAgICBteSAk
aGFzUmVhbFBhcmVudCA9IEB7JGRhdGFOb2RlLT5wYXJlbnRzfSA+IDA7CisgICAgbXkgJGhhc0xl
Z2FjeVBhcmVudCA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0xlZ2FjeVBh
cmVudCJ9OworICAgIG15ICRoYXNSZWFsUGFyZW50ID0gQHskaW50ZXJmYWNlLT5wYXJlbnRzfSA+
IDA7CiAgICAgbXkgJGhhc1BhcmVudCA9ICRoYXNMZWdhY3lQYXJlbnQgfHwgJGhhc1JlYWxQYXJl
bnQ7Ci0gICAgbXkgJHBhcmVudENsYXNzTmFtZSA9IEdldFBhcmVudENsYXNzTmFtZSgkZGF0YU5v
ZGUpOwotICAgIG15ICR2aXNpYmxlSW50ZXJmYWNlTmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRW
aXNpYmxlSW50ZXJmYWNlTmFtZSgkZGF0YU5vZGUpOwotICAgIG15ICRldmVudFRhcmdldCA9ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV2ZW50VGFyZ2V0In0gfHwgKCRjb2RlR2Vu
ZXJhdG9yLT5Jc1N1YlR5cGUoJGRhdGFOb2RlLCAiRXZlbnRUYXJnZXQiKSAmJiAkZGF0YU5vZGUt
Pm5hbWUgbmUgIkV2ZW50VGFyZ2V0Iik7Ci0gICAgbXkgJG5lZWRzTWFya0NoaWxkcmVuID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21NYXJrRnVuY3Rpb24ifSB8fCAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJFdmVudFRhcmdldCJ9IHx8ICRkYXRhTm9k
ZS0+bmFtZSBlcSAiRXZlbnRUYXJnZXQiOworICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQ
YXJlbnRDbGFzc05hbWUoJGludGVyZmFjZSk7CisgICAgbXkgJHZpc2libGVJbnRlcmZhY2VOYW1l
ID0gJGNvZGVHZW5lcmF0b3ItPkdldFZpc2libGVJbnRlcmZhY2VOYW1lKCRpbnRlcmZhY2UpOwor
ICAgIG15ICRldmVudFRhcmdldCA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJF
dmVudFRhcmdldCJ9IHx8ICgkY29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRpbnRlcmZhY2UsICJF
dmVudFRhcmdldCIpICYmICRpbnRlcmZhY2UtPm5hbWUgbmUgIkV2ZW50VGFyZ2V0Iik7CisgICAg
bXkgJG5lZWRzTWFya0NoaWxkcmVuID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkpTQ3VzdG9tTWFya0Z1bmN0aW9uIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkV2ZW50VGFyZ2V0In0gfHwgJGludGVyZmFjZS0+bmFtZSBlcSAiRXZlbnRUYXJnZXQiOwog
CiAgICAgIyAtIEFkZCBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQotICAgIHB1c2goQGltcGxDb250
ZW50SGVhZGVyLCBHZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcigkZGF0YU5vZGUp
KTsKKyAgICBwdXNoKEBpbXBsQ29udGVudEhlYWRlciwgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkNv
bnRlbnRIZWFkZXIoJGludGVyZmFjZSkpOwogCiAgICAgQWRkSW5jbHVkZXNGb3JTVkdBbmltYXRl
ZFR5cGUoJGludGVyZmFjZU5hbWUpIGlmICRjbGFzc05hbWUgPX4gL15KU1NWR0FuaW1hdGVkLzsK
IAogICAgICRpbXBsSW5jbHVkZXN7Ijx3dGYvR2V0UHRyLmg+In0gPSAxOwotICAgICRpbXBsSW5j
bHVkZXN7IjxydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5Lmg+In0gPSAxIGlmICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkluZGV4ZWRHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJOdW1lcmljSW5kZXhlZEdldHRlciJ9OworICAgICRpbXBsSW5jbHVk
ZXN7IjxydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5Lmg+In0gPSAxIGlmICRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVyIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn07CiAKICAgICBBZGRJbmNsdWRl
c0ZvclR5cGVJbkltcGwoJGludGVyZmFjZU5hbWUpOwogCkBAIC0xNDMyLDEzICsxNDMyLDEzIEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbnVz
aW5nIG5hbWVzcGFjZSBKU0M7XG5cbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAibmFtZXNw
YWNlIFdlYkNvcmUge1xuXG4iKTsKIAotICAgIG15ICRudW1BdHRyaWJ1dGVzID0gR2VuZXJhdGVB
dHRyaWJ1dGVzSGFzaFRhYmxlKCRvYmplY3QsICRkYXRhTm9kZSk7CisgICAgbXkgJG51bUF0dHJp
YnV0ZXMgPSBHZW5lcmF0ZUF0dHJpYnV0ZXNIYXNoVGFibGUoJG9iamVjdCwgJGludGVyZmFjZSk7
CiAKLSAgICBteSAkbnVtQ29uc3RhbnRzID0gQHskZGF0YU5vZGUtPmNvbnN0YW50c307Ci0gICAg
bXkgJG51bUZ1bmN0aW9ucyA9IEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9OworICAgIG15ICRudW1D
b25zdGFudHMgPSBAeyRpbnRlcmZhY2UtPmNvbnN0YW50c307CisgICAgbXkgJG51bUZ1bmN0aW9u
cyA9IEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfTsKIAogICAgICMgLSBBZGQgYWxsIGNvbnN0YW50
cwotICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT21pdENvbnN0cnVj
dG9yIn0pIHsKKyAgICBpZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0
Q29uc3RydWN0b3IifSkgewogICAgICAgICBteSAkaGFzaFNpemUgPSAkbnVtQ29uc3RhbnRzOwog
ICAgICAgICBteSAkaGFzaE5hbWUgPSAkY2xhc3NOYW1lIC4gIkNvbnN0cnVjdG9yVGFibGUiOwog
CkBAIC0xNDQ5LDcgKzE0NDksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICBteSAlY29uZGl0aW9uYWxzID0gKCk7CiAKICAgICAgICAgIyBGSVhNRTogd2Ugc2hvdWxkIG5v
dCBuZWVkIGEgZnVuY3Rpb24gZm9yIGV2ZXJ5IGNvbnN0YW50LgotICAgICAgICBmb3JlYWNoIG15
ICRjb25zdGFudCAoQHskZGF0YU5vZGUtPmNvbnN0YW50c30pIHsKKyAgICAgICAgZm9yZWFjaCBt
eSAkY29uc3RhbnQgKEB7JGludGVyZmFjZS0+Y29uc3RhbnRzfSkgewogICAgICAgICAgICAgbXkg
JG5hbWUgPSAkY29uc3RhbnQtPm5hbWU7CiAgICAgICAgICAgICBwdXNoKEBoYXNoS2V5cywgJG5h
bWUpOwogICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICRj
b2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRuYW1lKTsKQEAgLTE0NjcsNyArMTQ2Nyw3IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAg
ICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgewor
ICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30p
IHsKICAgICAgICAgICAgIG5leHQgdW5sZXNzICgkYXR0cmlidXRlLT5pc1N0YXRpYyk7CiAgICAg
ICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAg
ICAgIHB1c2goQGhhc2hLZXlzLCAkbmFtZSk7CkBAIC0xNDk0LDcgKzE0OTQsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAg
Zm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9KSB7CisgICAgICAg
IGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30pIHsKICAgICAg
ICAgICAgIG5leHQgdW5sZXNzICgkZnVuY3Rpb24tPmlzU3RhdGljKTsKICAgICAgICAgICAgIG5l
eHQgaWYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJ
bmRleH0gPiAxOwogICAgICAgICAgICAgbXkgJG5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
bmFtZTsKQEAgLTE1MjQsMTIgKzE1MjQsMTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXEBoYXNoVmFsdWUxLCBcQGhhc2hW
YWx1ZTIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwlY29uZGl0aW9uYWxz
KTsKIAotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRl
Q29tcGlsZVRpbWVDaGVja0ZvckVudW1zSWZOZWVkZWQoJGRhdGFOb2RlKSk7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb21waWxlVGltZUNoZWNr
Rm9yRW51bXNJZk5lZWRlZCgkaW50ZXJmYWNlKSk7CiAKICAgICAgICAgbXkgJHByb3RvQ2xhc3NO
YW1lID0gIiR7Y2xhc3NOYW1lfVByb3RvdHlwZSI7Ci0gICAgICAgIEdlbmVyYXRlQ29uc3RydWN0
b3JEZWZpbml0aW9uKFxAaW1wbENvbnRlbnQsICRjbGFzc05hbWUsICRwcm90b0NsYXNzTmFtZSwg
JGludGVyZmFjZU5hbWUsICR2aXNpYmxlSW50ZXJmYWNlTmFtZSwgJGRhdGFOb2RlKTsKLSAgICAg
ICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3Ii
fSkgewotICAgICAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24oXEBpbXBsQ29u
dGVudCwgJGNsYXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkaW50ZXJmYWNlTmFtZSwgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9LCAkZGF0YU5vZGUs
ICJHZW5lcmF0aW5nTmFtZWRDb25zdHJ1Y3RvciIpOworICAgICAgICBHZW5lcmF0ZUNvbnN0cnVj
dG9yRGVmaW5pdGlvbihcQGltcGxDb250ZW50LCAkY2xhc3NOYW1lLCAkcHJvdG9DbGFzc05hbWUs
ICRpbnRlcmZhY2VOYW1lLCAkdmlzaWJsZUludGVyZmFjZU5hbWUsICRpbnRlcmZhY2UpOworICAg
ICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0
b3IifSkgeworICAgICAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24oXEBpbXBs
Q29udGVudCwgJGNsYXNzTmFtZSwgJHByb3RvQ2xhc3NOYW1lLCAkaW50ZXJmYWNlTmFtZSwgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSwgJGludGVy
ZmFjZSwgIkdlbmVyYXRpbmdOYW1lZENvbnN0cnVjdG9yIik7CiAgICAgICAgIH0KICAgICB9CiAK
QEAgLTE1NDQsNyArMTU0NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkg
JWNvbmRpdGlvbmFscyA9ICgpOwogCiAgICAgIyBGSVhNRTogd2Ugc2hvdWxkIG5vdCBuZWVkIGEg
ZnVuY3Rpb24gZm9yIGV2ZXJ5IGNvbnN0YW50LgotICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChA
eyRkYXRhTm9kZS0+Y29uc3RhbnRzfSkgeworICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRp
bnRlcmZhY2UtPmNvbnN0YW50c30pIHsKICAgICAgICAgbXkgJG5hbWUgPSAkY29uc3RhbnQtPm5h
bWU7CiAgICAgICAgIHB1c2goQGhhc2hLZXlzLCAkbmFtZSk7CiAgICAgICAgIG15ICRnZXR0ZXIg
PSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkbmFt
ZSk7CkBAIC0xNTU4LDcgKzE1NTgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICB9CiAgICAgfQogCi0gICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5m
dW5jdGlvbnN9KSB7CisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVu
Y3Rpb25zfSkgewogICAgICAgICBuZXh0IGlmICgkZnVuY3Rpb24tPmlzU3RhdGljKTsKICAgICAg
ICAgbmV4dCBpZiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSAmJiAkZnVuY3Rpb24tPntvdmVy
bG9hZEluZGV4fSA+IDE7CiAgICAgICAgIG15ICRuYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUt
Pm5hbWU7CkBAIC0xNTg4LDcgKzE1ODgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxAaGFzaFZhbHVlMSwgXEBoYXNoVmFsdWUy
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwlY29uZGl0aW9uYWxzKTsKIAotICAg
IGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU05vU3RhdGljVGFibGVzIn0p
IHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTTm9TdGF0aWNU
YWJsZXMifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInN0YXRpYyBjb25zdCBIYXNo
VGFibGUqIGdldCR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlKEV4ZWNTdGF0ZSogZXhlYylcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICByZXR1cm4gZ2V0SGFzaFRhYmxlRm9yR2xvYmFsRGF0YShleGVjLT5nbG9i
YWxEYXRhKCksICYke2NsYXNzTmFtZX1Qcm90b3R5cGVUYWJsZSk7XG4iKTsKQEAgLTE1OTcsNyAr
MTU5Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgfSBlbHNlIHsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJjb25zdCBDbGFzc0luZm8gJHtjbGFzc05hbWV9UHJvdG90
eXBlOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1Qcm90b3R5cGVcIiwgJkJh
c2U6OnNfaW5mbywgJiR7Y2xhc3NOYW1lfVByb3RvdHlwZVRhYmxlLCAwLCBDUkVBVEVfTUVUSE9E
X1RBQkxFKCR7Y2xhc3NOYW1lfVByb3RvdHlwZSkgfTtcblxuIik7CiAgICAgfQotICAgIGlmICgk
aW50ZXJmYWNlTmFtZSBuZSAiRE9NV2luZG93IiAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSXNXb3JrZXJDb250ZXh0In0pIHsKKyAgICBpZiAoJGludGVyZmFjZU5hbWUgbmUg
IkRPTVdpbmRvdyIgJiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJc1dvcmtl
ckNvbnRleHQifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTT2JqZWN0KiAke2Ns
YXNzTmFtZX1Qcm90b3R5cGU6OnNlbGYoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRET01Qcm90b3R5cGU8JHtj
bGFzc05hbWV9PihleGVjLCBnbG9iYWxPYmplY3QpO1xuIik7CkBAIC0xNjEyLDExICsxNjEyLDEx
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIGlmICgkbnVtQ29uc3RhbnRz
IGVxIDAgJiYgJG51bUZ1bmN0aW9ucyBlcSAwKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsgICAgICAgIAogICAgICAgICB9IGVsc2lmICgk
bnVtQ29uc3RhbnRzIGVxIDApIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiBnZXRTdGF0aWNGdW5jdGlvblNsb3Q8SlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5
cGVIYXNoVGFibGVBY2Nlc3NvcigkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU05v
U3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1l
LCBzbG90KTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJu
IGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hU
YWJsZUFjY2Vzc29yKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU05vU3RhdGlj
VGFibGVzIn0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90
KTtcbiIpOwogICAgICAgICB9IGVsc2lmICgkbnVtRnVuY3Rpb25zIGVxIDApIHsKLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JHtj
bGFzc05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJs
ZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTTm9TdGF0aWNUYWJs
ZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGlj
VmFsdWVTbG90PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90
b3R5cGVIYXNoVGFibGVBY2Nlc3NvcigkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHByb3BlcnR5
TmFtZSwgc2xvdCk7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8JHtjbGFzc05hbWV9
UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29y
KCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTTm9TdGF0aWNUYWJsZXMifSwgJGNs
YXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlT
bG90PCR7Y2xhc3NOYW1lfVByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICIgLiBwcm90b3R5cGVI
YXNoVGFibGVBY2Nlc3NvcigkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNOb1N0
YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwg
c2xvdCk7XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxu
Iik7CiAKQEAgLTE2MjcsMTYgKzE2MjcsMTYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgaWYgKCRudW1Db25zdGFudHMgZXEgMCAmJiAkbnVtRnVuY3Rpb25zIGVxIDApIHsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlw
dG9yKTtcbiIpOyAgICAgICAgCiAgICAgICAgIH0gZWxzaWYgKCRudW1Db25zdGFudHMgZXEgMCkg
ewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY0Z1
bmN0aW9uRGVzY3JpcHRvcjxKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFj
Y2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTTm9TdGF0aWNUYWJsZXMi
fSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Ip
O1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3Rh
dGljRnVuY3Rpb25EZXNjcmlwdG9yPEpTT2JqZWN0PihleGVjLCAiIC4gcHJvdG90eXBlSGFzaFRh
YmxlQWNjZXNzb3IoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTTm9TdGF0aWNU
YWJsZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2Ny
aXB0b3IpO1xuIik7CiAgICAgICAgIH0gZWxzaWYgKCRudW1GdW5jdGlvbnMgZXEgMCkgewotICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVz
Y3JpcHRvcjwke2NsYXNzTmFtZX1Qcm90b3R5cGUsIEpTT2JqZWN0PihleGVjLCAiIC4gcHJvdG90
eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNO
b1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvcik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8JHtjbGFzc05hbWV9UHJvdG90eXBlLCBK
U09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFjY2Vzc29yKCRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU05vU3RhdGljVGFibGVzIn0sICRjbGFzc05hbWUpIC4g
IiwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yKTtcbiIpOwogICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIGdldFN0
YXRpY1Byb3BlcnR5RGVzY3JpcHRvcjwke2NsYXNzTmFtZX1Qcm90b3R5cGUsIEpTT2JqZWN0Pihl
eGVjLCAiIC4gcHJvdG90eXBlSGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSlNOb1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eURlc2NyaXB0b3I8JHtjbGFz
c05hbWV9UHJvdG90eXBlLCBKU09iamVjdD4oZXhlYywgIiAuIHByb3RvdHlwZUhhc2hUYWJsZUFj
Y2Vzc29yKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU05vU3RhdGljVGFibGVz
In0sICRjbGFzc05hbWUpIC4gIiwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsK
ICAgICB9CiAKLSAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0
b21OYW1lZEdldHRlck9uUHJvdG90eXBlIn0pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tTmFtZWRHZXR0ZXJPblByb3RvdHlwZSJ9KSB7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OnB1dChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7
Y2xhc3NOYW1lfVByb3RvdHlwZSogdGhpc09iamVjdCA9IGpzQ2FzdDwke2NsYXNzTmFtZX1Qcm90
b3R5cGUqPihjZWxsKTtcbiIpOwpAQCAtMTY0Nyw3ICsxNjQ3LDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICB9CiAKICAgICAjIC0gSW5pdGlhbGl6ZSBzdGF0aWMgQ2xhc3NJbmZv
IG9iamVjdAotICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDAgJiYgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSlNOb1N0YXRpY1RhYmxlcyJ9KSB7CisgICAgaWYgKCRudW1BdHRyaWJ1
dGVzID4gMCAmJiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNOb1N0YXRpY1Rh
YmxlcyJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGljIGNvbnN0IEhhc2hU
YWJsZSogZ2V0JHtjbGFzc05hbWV9VGFibGUoRXhlY1N0YXRlKiBleGVjKVxuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHJldHVybiBnZXRIYXNoVGFibGVGb3JHbG9iYWxEYXRhKGV4ZWMtPmdsb2JhbERhdGEoKSwg
JiR7Y2xhc3NOYW1lfVRhYmxlKTtcbiIpOwpAQCAtMTY1NiwxMiArMTY1NiwxMiBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJjb25zdCBDbGFz
c0luZm8gJGNsYXNzTmFtZSIgLiAiOjpzX2luZm8gPSB7IFwiJHt2aXNpYmxlSW50ZXJmYWNlTmFt
ZX1cIiwgJkJhc2U6OnNfaW5mbywgIik7CiAKLSAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwICYm
ICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU05vU3RhdGljVGFibGVzIn0pIHsK
KyAgICBpZiAoJG51bUF0dHJpYnV0ZXMgPiAwICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSlNOb1N0YXRpY1RhYmxlcyJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiJiR7Y2xhc3NOYW1lfVRhYmxlIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIwIik7CiAgICAgfQotICAgIGlmICgkbnVtQXR0cmlidXRlcyA+IDAgJiYgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNOb1N0YXRpY1RhYmxlcyJ9KSB7CisgICAg
aWYgKCRudW1BdHRyaWJ1dGVzID4gMCAmJiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSlNOb1N0YXRpY1RhYmxlcyJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiLCBn
ZXQke2NsYXNzTmFtZX1UYWJsZSAiKTsKICAgICB9IGVsc2UgewogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiwgMCAiKTsKQEAgLTE2ODMsNyArMTY4Myw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNz
TmFtZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIGltcGwsIHNoZWxsKVxuIik7CiAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsKLSAgICB9IGVsc2lmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJc1dv
cmtlckNvbnRleHQifSkgeworICAgIH0gZWxzaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJJc1dvcmtlckNvbnRleHQifSkgewogICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJ
bkltcGwoJGludGVyZmFjZU5hbWUpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiR7Y2xh
c3NOYW1lfTo6JGNsYXNzTmFtZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4gaW1wbClcbiIpOwogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoZ2xvYmFsRGF0YSwgc3RydWN0
dXJlLCBpbXBsKVxuIik7CkBAIC0xNzEzLDEzICsxNzEzLDEzIEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICB9CiAK
LSAgICBpZiAoISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV4dGVuZHNET01HbG9i
YWxPYmplY3QifSkgeworICAgIGlmICghJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkV4dGVuZHNET01HbG9iYWxPYmplY3QifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IkpTT2JqZWN0KiAke2NsYXNzTmFtZX06OmNyZWF0ZVByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ7XG4iKTsKICAgICAgICAgaWYgKCRoYXNQYXJlbnQgJiYgJHBhcmVudENsYXNzTmFt
ZSBuZSAiSlNDOjpET01Ob2RlRmlsdGVyIikgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgcmV0dXJuICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Y3JlYXRlKGV4ZWMtPmdsb2Jh
bERhdGEoKSwgZ2xvYmFsT2JqZWN0LCAke2NsYXNzTmFtZX1Qcm90b3R5cGU6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgJHtwYXJlbnRDbGFzc05hbWV9
UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCkpKTtcbiIpOwogICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgbXkgJHByb3RvdHlwZSA9ICRkYXRhTm9kZS0+aXNFeGNlcHRpb24g
PyAiZXJyb3JQcm90b3R5cGUiIDogIm9iamVjdFByb3RvdHlwZSI7CisgICAgICAgICAgICBteSAk
cHJvdG90eXBlID0gJGludGVyZmFjZS0+aXNFeGNlcHRpb24gPyAiZXJyb3JQcm90b3R5cGUiIDog
Im9iamVjdFByb3RvdHlwZSI7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gJHtjbGFzc05hbWV9UHJvdG90eXBlOjpjcmVhdGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCBn
bG9iYWxPYmplY3QsICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+JHtwcm90
b3R5cGV9KCkpKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
fVxuXG4iKTsKQEAgLTE3NDcsMzQgKzE3NDcsMzQgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICB9CiAKICAgICBteSAkaGFzR2V0dGVyID0gJG51bUF0dHJpYnV0ZXMgPiAwCi0gICAg
ICAgICAgICAgICAgIHx8ICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29u
c3RydWN0b3IifSAKLSAgICAgICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiSW5kZXhlZEdldHRlciJ9Ci0gICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0KLSAgICAgICAgICAg
ICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21HZXRPd25Q
cm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yIn0KLSAgICAgICAgICAgICAgICAgfHwgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90In0KLSAgICAg
ICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRHZXR0
ZXIifQotICAgICAgICAgICAgICAgICB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21OYW1lZEdldHRlciJ9OworICAgICAgICAgICAgICAgICB8fCAhJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9IAorICAgICAgICAgICAgICAg
ICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5kZXhlZEdldHRlciJ9Cisg
ICAgICAgICAgICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1l
cmljSW5kZXhlZEdldHRlciJ9CisgICAgICAgICAgICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3Ii
fQorICAgICAgICAgICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90In0KKyAgICAgICAgICAgICAgICAgfHwgJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkR2V0dGVyIn0KKyAgICAgICAgICAgICAgICAg
fHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkR2V0dGVyIn07
CiAKICAgICAjIEF0dHJpYnV0ZXMKICAgICBpZiAoJGhhc0dldHRlcikgewotICAgICAgICBpZiAo
ISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTSW5saW5lR2V0T3duUHJvcGVydHlT
bG90In0gJiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blBy
b3BlcnR5U2xvdCJ9KSB7CisgICAgICAgIGlmICghJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkpTSW5saW5lR2V0T3duUHJvcGVydHlTbG90In0gJiYgISRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QifSkgewogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlT
bG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNz
TmFtZX0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkoJGRhdGFOb2RlLCAkaW50ZXJmYWNl
TmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05hbWUsICRudW1BdHRyaWJ1dGVzID4gMCwgMCkp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlT
bG90Qm9keSgkaW50ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFz
c05hbWUsICRudW1BdHRyaWJ1dGVzID4gMCwgMCkpOwogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJ9XG5cbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7
Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0
aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+KG9iamVjdCk7XG4iKTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iamVjdCwgJnNfaW5mbyk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBH
ZW5lcmF0ZUdldE93blByb3BlcnR5RGVzY3JpcHRvckJvZHkoJGRhdGFOb2RlLCAkaW50ZXJmYWNl
TmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05hbWUsICRudW1BdHRyaWJ1dGVzID4gMCwgMCkp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yQm9keSgkaW50ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGlt
cGxDbGFzc05hbWUsICRudW1BdHRyaWJ1dGVzID4gMCwgMCkpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkluZGV4ZWRHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1lcmljSW5kZXhlZEdldHRlciJ9Ci0gICAgICAgICAgICAg
ICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRHZXR0ZXIifSB8fCAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZEdldHRlciJ9Ci0gICAg
ICAgICAgICAgICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21H
ZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yIn0pIHsKKyAgICAgICAgaWYgKCRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVyIn0gfHwgJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0KKyAgICAgICAgICAg
ICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRHZXR0ZXIifSB8
fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifQor
ICAgICAgICAgICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1
c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3IifSkgewogICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIFByb3Bl
cnR5U2xvdCYgc2xvdClcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhp
c09iamVjdCA9IGpzQ2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOwpAQCAtMTc5MSwxMyAr
MTc5MSwxMyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICRn
ZW5lcmF0ZWRQcm9wZXJ0eU5hbWUgPSAxOwogICAgICAgICAgICAgfTsKICAgICAgICAgICAgIAot
ICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkluZGV4ZWRH
ZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1lcmljSW5kZXhl
ZEdldHRlciJ9KSB7CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkluZGV4ZWRHZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTnVtZXJpY0luZGV4ZWRHZXR0ZXIifSkgewogICAgICAgICAgICAgICAgIGlmIChJbmRleEdl
dHRlclJldHVybnNTdHJpbmdzKCRpbXBsQ2xhc3NOYW1lKSkgewogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVYKSB7
XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBpZiAoaW5kZXggPCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFt
ZSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0pIHsKKyAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0pIHsKICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBpbmRleCkpO1xuIik7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
ICAgIHNsb3Quc2V0Q3VzdG9tSW5kZXgodGhpc09iamVjdCwgaW5kZXgsIHRoaXNPYmplY3QtPmlu
ZGV4R2V0dGVyKTtcbiIpOwpAQCAtMTgwNiw3ICsxODA2LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkR2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifSkgeworICAgICAgICAgICAgaWYgKCRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZEdldHRlciJ9IHx8ICRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZEdldHRlciJ9KSB7CiAgICAgICAg
ICAgICAgICAgJiRwcm9wZXJ0eU5hbWVHZW5lcmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKGNhbkdldEl0ZW1zRm9yTmFtZShleGVjLCBzdGF0aWNf
Y2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmplY3QtPmltcGwoKSksIHByb3BlcnR5TmFtZSkp
IHtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzbG90
LnNldEN1c3RvbSh0aGlzT2JqZWN0LCB0aGlzT2JqZWN0LT5uYW1lR2V0dGVyKTtcbiIpOwpAQCAt
MTgxNSw3ICsxODE1LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJ3dGYvdGV4dC9BdG9taWNTdHJpbmcuaCJ9ID0gMTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvciJ9
KSB7CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpT
Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvciJ9KSB7CiAgICAgICAgICAgICAg
ICAgJiRwcm9wZXJ0eU5hbWVHZW5lcmF0aW9uKCk7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaWYgKHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5U2xvdERlbGVnYXRl
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKQEAgLTE4MjYsNyArMTgyNiw3
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KIAogICAgICAgICBpZiAo
JG51bUF0dHJpYnV0ZXMgPiAwKSB7Ci0gICAgICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUg
KEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICAgICAgZm9yZWFjaCBteSAkYXR0
cmlidXRlIChAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9KSB7CiAgICAgICAgICAgICAgICAgbXkg
JG5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CiAgICAgICAgICAgICAgICAgbXkg
JHR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CiAgICAgICAgICAgICAgICAgJGNv
ZGVHZW5lcmF0b3ItPkFzc2VydE5vdFNlcXVlbmNlVHlwZSgkdHlwZSk7CkBAIC0xODQ5LDcgKzE4
NDksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAk
bmVlZHNNYXJrQ2hpbGRyZW4gPSAxOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAg
ICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0g
JiYKKyAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNoZWNrU2VjdXJpdHkifSAmJgogICAgICAgICAgICAgICAgICAgICAhJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRG9Ob3RDaGVja1NlY3VyaXR5In0gJiYKICAg
ICAgICAgICAgICAgICAgICAgISRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkRvTm90Q2hlY2tTZWN1cml0eU9uR2V0dGVyIn0pIHsKICAgICAgICAgICAgICAgICAg
ICAgJGltcGxJbmNsdWRlc3siQmluZGluZ1NlY3VyaXR5LmgifSA9IDE7CkBAIC0xOTY1LDE0ICsx
OTY1LDE0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJcbiIpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAo
ISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik9taXRDb25zdHJ1Y3RvciJ9KSB7Cisg
ICAgICAgICAgICBpZiAoISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29u
c3RydWN0b3IifSkgewogICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvckZ1bmN0aW9uTmFt
ZSA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICJDb25zdHJ1Y3RvciI7CiAKICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFt
ZX0oRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbWUpXG4iKTsK
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogZG9tT2JqZWN0ID0ganND
YXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7CiAKLSAgICAgICAgICAg
ICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9
KSB7CisgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDaGVja1NlY3VyaXR5In0pIHsKICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
QmluZGluZ1NlY3VyaXR5LmgifSA9IDE7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9N
V2luZG93KGV4ZWMsIGRvbU9iamVjdC0+aW1wbCgpKSlcbiIpOwogICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7XG4iKTsK
QEAgLTE5ODUsNDUgKzE5ODUsNDUgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAg
ICAgICAjIENoZWNrIGlmIHdlIGhhdmUgYW55IHdyaXRhYmxlIGF0dHJpYnV0ZXMKICAgICAgICAg
bXkgJGhhc1JlYWRXcml0ZVByb3BlcnRpZXMgPSAwOwotICAgICAgICBmb3JlYWNoIG15ICRhdHRy
aWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICBmb3JlYWNoIG15ICRh
dHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAgICAgICRoYXNS
ZWFkV3JpdGVQcm9wZXJ0aWVzID0gMSBpZiAhSXNSZWFkb25seSgkYXR0cmlidXRlKSAmJiAhJGF0
dHJpYnV0ZS0+aXNTdGF0aWM7CiAgICAgICAgIH0KIAogICAgICAgICBteSAkaGFzU2V0dGVyID0g
JGhhc1JlYWRXcml0ZVByb3BlcnRpZXMKLSAgICAgICAgICAgICAgICAgICAgIHx8ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkU2V0dGVyIn0KLSAgICAgICAgICAg
ICAgICAgICAgIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4
ZWRTZXR0ZXIifTsKKyAgICAgICAgICAgICAgICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9CisgICAgICAgICAgICAgICAgICAgICB8
fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9
OwogCiAgICAgICAgIGlmICgkaGFzU2V0dGVyKSB7Ci0gICAgICAgICAgICBpZiAoISRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1dEZ1bmN0aW9uIn0pIHsKKyAgICAgICAg
ICAgIGlmICghJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbVB1dEZ1bmN0
aW9uIn0pIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFz
c05hbWV9OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwog
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0ganND
YXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19p
bmZvKTtcbiIpOwotICAgICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21JbmRleGVkU2V0dGVyIn0pIHsKKyAgICAgICAgICAgICAgICBpZiAoJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSkgewog
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB1bnNpZ25lZCBpbmRl
eCA9IHByb3BlcnR5TmFtZS5hc0luZGV4KCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRl
eCkge1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICB0aGlzT2JqZWN0LT5pbmRleFNldHRlcihleGVjLCBpbmRleCwgdmFsdWUpO1xuIik7CiAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm47XG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CiAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9KSB7CisgICAgICAgICAgICAgICAgaWYgKCRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9KSB7CiAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICh0aGlzT2JqZWN0
LT5wdXREZWxlZ2F0ZShleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSlcbiIpOwogICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuO1xuIik7
CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKCRoYXNSZWFkV3JpdGVQ
cm9wZXJ0aWVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGxvb2t1cFB1dDwkY2xhc3NOYW1lLCBCYXNlPihleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAi
IC4gaGFzaFRhYmxlQWNjZXNzb3IoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNO
b1N0YXRpY1RhYmxlcyJ9LCAkY2xhc3NOYW1lKSAuICIsIHRoaXNPYmplY3QsIHNsb3QpO1xuIik7
CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGxvb2t1cFB1dDwk
Y2xhc3NOYW1lLCBCYXNlPihleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCAiIC4gaGFzaFRhYmxl
QWNjZXNzb3IoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTTm9TdGF0aWNUYWJs
ZXMifSwgJGNsYXNzTmFtZSkgLiAiLCB0aGlzT2JqZWN0LCBzbG90KTtcbiIpOwogICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90
KTtcbiIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIn1cblxuIik7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSB8fCAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9KSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0
b21JbmRleGVkU2V0dGVyIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbU5hbWVkU2V0dGVyIn0pIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cp
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0
aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CiAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSkgewogICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkge1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgVU5VU0VE
X1BBUkFNKHNob3VsZFRocm93KTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHRoaXNPYmplY3QtPmluZGV4U2V0dGVyKGV4ZWMsIGluZGV4
LCB2YWx1ZSk7XG4iKTsKQEAgLTIwMzEsNyArMjAzMSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bU5hbWVkU2V0dGVyIn0pIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbShleGVjLCBpbmRleCk7XG4iKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHNo
b3VsZFRocm93KTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaWYgKHRoaXNPYmplY3QtPnB1dERlbGVnYXRlKGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpKVxuIik7CkBAIC0yMDQ0LDcgKzIwNDQsNyBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoJGhhc1JlYWRXcml0
ZVByb3BlcnRpZXMpIHsKLSAgICAgICAgICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7
JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICAgICAgICAgIGZvcmVhY2ggbXkgJGF0
dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IG15ICRuYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICAgICAgICAg
ICAgICAgICAgbXkgJHR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CkBAIC0yMDYx
LDcgKzIwNjEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgVU5VU0VEX1BBUkFNKGV4ZWMp
O1xuIik7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9ICYmICEkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJEb05vdENoZWNrU2VjdXJpdHkifSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ2hlY2tTZWN1cml0eSJ9ICYmICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJEb05vdENoZWNrU2VjdXJpdHkifSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkJpbmRpbmdTZWN1cml0
eS5oIn0gPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9E
T01XaW5kb3coZXhlYywganNDYXN0PCRjbGFzc05hbWUqPih0aGlzT2JqZWN0KS0+aW1wbCgpKSlc
biIpOwpAQCAtMjE4NiwxMiArMjE4NiwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKCRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxlQ29uc3RydWN0b3IifSkgewor
ICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBsYWNl
YWJsZUNvbnN0cnVjdG9yIn0pIHsKICAgICAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JGdW5j
dGlvbk5hbWUgPSAic2V0SlMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwogCiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y29uc3RydWN0b3JGdW5j
dGlvbk5hbWV9KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUg
dmFsdWUpXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwot
ICAgICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVj
a1NlY3VyaXR5In0pIHsKKyAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNoZWNrU2VjdXJpdHkifSkgewogICAgICAgICAgICAgICAgICAgICBpZiAo
JGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7IkJpbmRpbmdTZWN1cml0eS5oIn0gPSAxOwogICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNo
b3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coZXhlYywganNDYXN0PCRjbGFzc05hbWUqPih0aGlz
T2JqZWN0KS0+aW1wbCgpKSlcbiIpOwpAQCAtMjIxMywxMiArMjIxMywxMiBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCgkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTnVtZXJpY0luZGV4ZWRHZXR0ZXIifSkgJiYgISRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUVudW1lcmF0ZVByb3BlcnR5In0pIHsKKyAgICBp
ZiAoKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVyIn0gfHwg
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0p
ICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRW51bWVyYXRlUHJv
cGVydHkifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgJHtjbGFzc05hbWV9
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKVxu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IGpzQ2FzdDwke2NsYXNz
TmFtZX0qPihvYmplY3QpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsKLSAgICAg
ICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkluZGV4ZWRHZXR0ZXIifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1lcmljSW5kZXhlZEdldHRlciJ9
KSB7CisgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5kZXhl
ZEdldHRlciJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOdW1lcmljSW5k
ZXhlZEdldHRlciJ9KSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8JHtpbXBsQ2xhc3NOYW1lfSo+KHRoaXNP
YmplY3QtPmltcGwoKSktPmxlbmd0aCgpOyArK2kpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKGV4
ZWMsIGkpKTtcbiIpOwogICAgICAgICB9CkBAIC0yMjI2LDcgKzIyMjYsNyBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAg
ICAgfQogCi0gICAgaWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPbWl0Q29u
c3RydWN0b3IifSkgeworICAgIGlmICghJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Ik9taXRDb25zdHJ1Y3RvciJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNWYWx1
ZSAke2NsYXNzTmFtZX06OmdldENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdClcbntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8JHtjbGFzc05hbWV9Q29uc3RydWN0b3I+KGV4
ZWMsIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpO1xuIik7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKQEAgLTIyMzQsNyArMjIzNCw3IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAjIEZ1bmN0aW9ucwogICAgIGlmICgkbnVt
RnVuY3Rpb25zID4gMCkgewotICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5v
ZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVy
ZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlSW5JbXBs
KCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKIAogICAgICAgICAgICAgbXkgJGlzQ3VzdG9t
ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSB8
fCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tIn07
CkBAIC0yMjY4LDE3ICsyMjY4LDE3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAg
ICAgICAgICAgIGlmICgkZnVuY3Rpb24tPmlzU3RhdGljKSB7CiAgICAgICAgICAgICAgICAgaWYg
KCRpc0N1c3RvbSkgewotICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50
Q2hlY2soXEBpbXBsQ29udGVudCwgJGZ1bmN0aW9uLCAkZGF0YU5vZGUpOworICAgICAgICAgICAg
ICAgICAgICBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soXEBpbXBsQ29udGVudCwgJGZ1bmN0
aW9uLCAkaW50ZXJmYWNlKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZSgke2NsYXNzTmFtZX06OiIgLiAkZnVuY3Rpb25J
bXBsZW1lbnRhdGlvbk5hbWUgLiAiKGV4ZWMpKTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlQXJndW1lbnRzQ291bnRDaGVjayhcQGlt
cGxDb250ZW50LCAkZnVuY3Rpb24sICRkYXRhTm9kZSk7CisgICAgICAgICAgICAgICAgICAgIEdl
bmVyYXRlQXJndW1lbnRzQ291bnRDaGVjayhcQGltcGxDb250ZW50LCAkZnVuY3Rpb24sICRpbnRl
cmZhY2UpOwogCiAgICAgICAgICAgICAgICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhj
ZXB0aW9uc30pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgICAgICAgICBteSAkbnVtUGFyYW1ldGVycyA9IEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfTsKLSAgICAgICAgICAgICAgICAgICAgbXkgKCRmdW5jdGlvblN0cmluZywgJGR1bW15
KSA9IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKFxAaW1wbENvbnRlbnQsICRmdW5jdGlvbiwgJGRh
dGFOb2RlLCAkbnVtUGFyYW1ldGVycywgJGltcGxDbGFzc05hbWUsICRmdW5jdGlvbkltcGxlbWVu
dGF0aW9uTmFtZSwgJHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlU
eXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSk7CisgICAgICAgICAgICAgICAgICAgIG15ICgkZnVu
Y3Rpb25TdHJpbmcsICRkdW1teSkgPSBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayhcQGltcGxDb250
ZW50LCAkZnVuY3Rpb24sICRpbnRlcmZhY2UsICRudW1QYXJhbWV0ZXJzLCAkaW1wbENsYXNzTmFt
ZSwgJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lLCAkc3ZnUHJvcGVydHlUeXBlLCAkc3ZnUHJv
cGVydHlPckxpc3RQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlKTsKICAgICAgICAg
ICAgICAgICAgICAgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgkZnVuY3Rpb24s
ICRmdW5jdGlvblN0cmluZywgIiAgICAiLCAkc3ZnUHJvcGVydHlUeXBlLCAkaW1wbENsYXNzTmFt
ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTIyODYsNyAr
MjI4Niw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICRjbGFzc05hbWUqIGNhc3RlZFRoaXMgPSB0b0pTRE9N
V2luZG93KGV4ZWMtPmhvc3RUaGlzVmFsdWUoKS50b1RoaXNPYmplY3QoZXhlYykpO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY2FzdGVkVGhp
cylcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
cmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYyk7XG4iKTsKLSAgICAgICAgICAgICAgICB9IGVs
c2lmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJc1dvcmtlckNvbnRleHQifSkg
eworICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJJc1dvcmtlckNvbnRleHQifSkgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAkY2xhc3NOYW1lKiBjYXN0ZWRUaGlzID0gdG8ke2NsYXNzTmFtZX0oZXhl
Yy0+aG9zdFRoaXNWYWx1ZSgpLnRvVGhpc09iamVjdChleGVjKSk7XG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjYXN0ZWRUaGlzKVxuIik7CiAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihleGVjKTtcbiIpOwpAQCAtMjI5OSw3ICsyMjk5LDcgQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgJiR7Y2xhc3NOYW1lfTo6
c19pbmZvKTtcbiIpOwogCi0gICAgICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNoZWNrU2VjdXJpdHkifSBhbmQKKyAgICAgICAgICAgICAgICBpZiAoJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrU2VjdXJpdHkifSBhbmQKICAgICAg
ICAgICAgICAgICAgICAgISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiRG9Ob3RDaGVja1NlY3VyaXR5In0pIHsKICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3siQmluZGluZ1NlY3VyaXR5LmgifSA9IDE7CiAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vz
c1RvRE9NV2luZG93KGV4ZWMsIGNhc3RlZFRoaXMtPmltcGwoKSkpXG4iKTsKQEAgLTIzMDksOCAr
MjMwOSw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgaWYg
KCRpc0N1c3RvbSkgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGNhc3RlZFRoaXMtPiIgLiAkZnVuY3Rpb25JbXBsZW1l
bnRhdGlvbk5hbWUgLiAiKGV4ZWMpKTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSBlcSAic2V0
IiBhbmQgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHlwZWRBcnJheSJ9KSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBteSAkdmlld1R5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJUeXBlZEFycmF5In07CisgICAgICAgICAgICAgICAgICAgIGlmICgkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+bmFtZSBlcSAic2V0IiBhbmQgJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlR5cGVkQXJyYXkifSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbXkg
JHZpZXdUeXBlID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlR5cGVkQXJyYXki
fTsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoc2V0V2ViR0xBcnJheUhlbHBlcjwkaW1wbFR5cGUsICR2aWV3VHlw
ZT4oZXhlYywgY2FzdGVkVGhpcy0+aW1wbCgpKSk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IG5leHQ7CkBAIC0yMzMyLDcgKzIzMzIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSBl
cSAicmVtb3ZlRXZlbnRMaXN0ZW5lciIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCBHZW5lcmF0ZUV2ZW50TGlzdGVuZXJDYWxsKCRjbGFzc05hbWUsICJyZW1v
dmUiKSk7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soXEBpbXBsQ29udGVudCwgJGZ1bmN0aW9u
LCAkZGF0YU5vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGVBcmd1bWVudHND
b3VudENoZWNrKFxAaW1wbENvbnRlbnQsICRmdW5jdGlvbiwgJGludGVyZmFjZSk7CiAKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30pIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDtcbiIpOwpAQCAtMjM0NSw3ICsyMzQ1LDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
ICAgICAgICAgICAgbXkgJG51bVBhcmFtZXRlcnMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307
Ci0gICAgICAgICAgICAgICAgICAgICAgICBteSAoJGZ1bmN0aW9uU3RyaW5nLCAkZHVtbXkpID0g
R2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2soXEBpbXBsQ29udGVudCwgJGZ1bmN0aW9uLCAkZGF0YU5v
ZGUsICRudW1QYXJhbWV0ZXJzLCAkaW1wbENsYXNzTmFtZSwgJGZ1bmN0aW9uSW1wbGVtZW50YXRp
b25OYW1lLCAkc3ZnUHJvcGVydHlUeXBlLCAkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGUs
ICRzdmdMaXN0UHJvcGVydHlUeXBlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG15ICgkZnVu
Y3Rpb25TdHJpbmcsICRkdW1teSkgPSBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayhcQGltcGxDb250
ZW50LCAkZnVuY3Rpb24sICRpbnRlcmZhY2UsICRudW1QYXJhbWV0ZXJzLCAkaW1wbENsYXNzTmFt
ZSwgJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lLCAkc3ZnUHJvcGVydHlUeXBlLCAkc3ZnUHJv
cGVydHlPckxpc3RQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoJGZ1bmN0
aW9uLCAkZnVuY3Rpb25TdHJpbmcsICIgICAgIiwgJHN2Z1Byb3BlcnR5VHlwZSwgJGltcGxDbGFz
c05hbWUpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtMjM1
NSw3ICsyMzU1LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAg
aWYgKCEkaXNDdXN0b20gJiYgJGlzT3ZlcmxvYWRlZCAmJiAkZnVuY3Rpb24tPntvdmVybG9hZElu
ZGV4fSA9PSBAeyRmdW5jdGlvbi0+e292ZXJsb2Fkc319KSB7CiAgICAgICAgICAgICAgICAgIyBH
ZW5lcmF0ZSBhIGZ1bmN0aW9uIGRpc3BhdGNoaW5nIGNhbGwgdG8gdGhlIHJlc3Qgb2YgdGhlIG92
ZXJsb2Fkcy4KLSAgICAgICAgICAgICAgICBHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbigkZnVu
Y3Rpb24sICRkYXRhTm9kZSwgJGltcGxDbGFzc05hbWUpOworICAgICAgICAgICAgICAgIEdlbmVy
YXRlT3ZlcmxvYWRlZEZ1bmN0aW9uKCRmdW5jdGlvbiwgJGludGVyZmFjZSwgJGltcGxDbGFzc05h
bWUpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNl
bmRpZlxuXG4iKSBpZiAkY29uZGl0aW9uYWw7CkBAIC0yMzYzLDcgKzIzNjMsNyBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIH0KIAogICAgIGlmICgkbnVtRnVuY3Rpb25zID4gMCB8
fCAkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIHsKLSAgICAgICAgaWYgKCRuZWVkc01hcmtDaGls
ZHJlbiAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21NYXJrRnVu
Y3Rpb24ifSkgeworICAgICAgICBpZiAoJG5lZWRzTWFya0NoaWxkcmVuICYmICEkaW50ZXJmYWNl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21NYXJrRnVuY3Rpb24ifSkgewogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6dmlzaXRDaGlsZHJl
bihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKVxuIik7CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+KGNl
bGwpO1xuIik7CkBAIC0yMzcxLDExICsyMzcxLDExIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBDT01QSUxFX0FTU0VSVChT
dHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBBU1NFUlQodGhpc09iamVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbigpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTtcbiIpOwot
ICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV2ZW50VGFy
Z2V0In0gfHwgJGRhdGFOb2RlLT5uYW1lIGVxICJFdmVudFRhcmdldCIpIHsKKyAgICAgICAgICAg
IGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXZlbnRUYXJnZXQifSB8fCAk
aW50ZXJmYWNlLT5uYW1lIGVxICJFdmVudFRhcmdldCIpIHsKICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICB0aGlzT2JqZWN0LT5pbXBsKCktPnZpc2l0SlNFdmVudExpc3Rl
bmVycyh2aXNpdG9yKTtcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCRudW1D
YWNoZWRBdHRyaWJ1dGVzID4gMCkgewotICAgICAgICAgICAgICAgIGZvcmVhY2ggKEB7JGRhdGFO
b2RlLT5hdHRyaWJ1dGVzfSkgeworICAgICAgICAgICAgICAgIGZvcmVhY2ggKEB7JGludGVyZmFj
ZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZSA9ICRf
OwogICAgICAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ2FjaGVkQXR0cmlidXRlIn0pIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5t
XyIgLiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgLiAiKTtcbiIpOwpAQCAtMjM4OSwxMiAr
MjM4OSwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICMgQ2FjaGVkIGF0dHJp
YnV0ZXMgYXJlIGluZGVlZCBhbGxvd2VkIHdoZW4gdGhlcmUgaXMgYSBjdXN0b20gbWFyay92aXNp
dENoaWxkcmVuIGZ1bmN0aW9uLgogICAgICMgVGhlIGN1c3RvbSBmdW5jdGlvbiBtdXN0IG1ha2Ug
c3VyZSB0byBhY2NvdW50IGZvciB0aGUgY2FjaGVkIGF0dHJpYnV0ZS4KICAgICAjIFVuY29tbWVu
dCB0aGUgYmVsb3cgbGluZSB0byB0ZW1wb3JhcmlseSBlbmZvcmNlIGdlbmVyYXRlZCBtYXJrIGZ1
bmN0aW9ucyB3aGVuIGNhY2hlZCBhdHRyaWJ1dGVzIGFyZSBwcmVzZW50LgotICAgICMgZGllICJD
YW4ndCBnZW5lcmF0ZSBiaW5kaW5nIGZvciBjbGFzcyB3aXRoIGNhY2hlZCBhdHRyaWJ1dGUgYW5k
IGN1c3RvbSBtYXJrLiIgaWYgKCgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIGFuZCAoJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21NYXJrRnVuY3Rpb24ifSkpOworICAg
ICMgZGllICJDYW4ndCBnZW5lcmF0ZSBiaW5kaW5nIGZvciBjbGFzcyB3aXRoIGNhY2hlZCBhdHRy
aWJ1dGUgYW5kIGN1c3RvbSBtYXJrLiIgaWYgKCgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIGFu
ZCAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tTWFya0Z1bmN0aW9u
In0pKTsKIAogICAgIGlmICgkbnVtQ29uc3RhbnRzID4gMCkgewogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIi8vIENvbnN0YW50IGdldHRlcnNcblxuIik7CiAKLSAgICAgICAgZm9yZWFjaCBt
eSAkY29uc3RhbnQgKEB7JGRhdGFOb2RlLT5jb25zdGFudHN9KSB7CisgICAgICAgIGZvcmVhY2gg
bXkgJGNvbnN0YW50IChAeyRpbnRlcmZhY2UtPmNvbnN0YW50c30pIHsKICAgICAgICAgICAgIG15
ICRnZXR0ZXIgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNm
aXJzdCgkY29uc3RhbnQtPm5hbWUpOwogICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsID0gJGNv
bnN0YW50LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKIApAQCAtMjQxNyw3
ICsyNDE3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgfQogICAgIH0K
IAotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVy
In0pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkluZGV4ZWRH
ZXR0ZXIifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuSlNWYWx1ZSAke2NsYXNz
TmFtZX06OmluZGV4R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgdW5z
aWduZWQgaW5kZXgpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqID0ganND
YXN0PCRjbGFzc05hbWUqPihhc09iamVjdChzbG90QmFzZSkpO1xuIik7CkBAIC0yNDM1LDcgKzI0
MzUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAgICAgfQogCi0g
ICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0
dGVyIn0pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVy
aWNJbmRleGVkR2V0dGVyIn0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbkpTVmFs
dWUgJHtjbGFzc05hbWV9OjpnZXRCeUluZGV4KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIGluZGV4KVxu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpcywgJnNfaW5mbyk7
XG4iKTsKQEAgLTI0NTIsNyArMjQ1Miw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgfQogCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24iIG9yICRpbnRlcmZhY2VOYW1lIGVxICJET01OYW1lZEZsb3dDb2xsZWN0aW9uIikgewotICAg
ICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRHZXR0ZXIifSkg
eworICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkR2V0
dGVyIn0pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCAke2NsYXNzTmFt
ZX06OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCAkaW1wbENsYXNzTmFtZSogY29sbGVj
dGlvbiwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSlcbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiBjb2xsZWN0aW9uLT5oYXNOYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJp
bmcocHJvcGVydHlOYW1lKSk7XG4iKTsKQEAgLTI0NjUsNyArMjQ2NSw3IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoKCEkaGFzUGFyZW50
ICYmICFHZXRDdXN0b21Jc1JlYWNoYWJsZSgkZGF0YU5vZGUpKXx8IEdldEdlbmVyYXRlSXNSZWFj
aGFibGUoJGRhdGFOb2RlKSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3Rp
dmVET01PYmplY3QifSkgeworICAgIGlmICgoISRoYXNQYXJlbnQgJiYgIUdldEN1c3RvbUlzUmVh
Y2hhYmxlKCRpbnRlcmZhY2UpKXx8IEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkg
fHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9KSB7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGljIGlubGluZSBib29sIGlzT2JzZXJ2
YWJsZShKUyR7aW1wbENsYXNzTmFtZX0qIGpzJHtpbXBsQ2xhc3NOYW1lfSlcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoanMke2ltcGxDbGFzc05hbWV9LT5oYXNDdXN0b21Qcm9wZXJ0aWVzKCkpXG4iKTsK
QEAgLTI0ODcsMzggKzI0ODcsMzggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgIyB3cmFwcGVycyB1bmNvbmRpdGlvbmFsbHkga2VlcCBBY3RpdmVET01PYmplY3RzIHdpdGgg
cGVuZGluZyBhY3Rpdml0eSBhbGl2ZS4KICAgICAgICAgIyBGSVhNRTogRml4IHRoaXMgbGlmZXRp
bWUgaXNzdWUgaW4gdGhlIERPTSwgYW5kIG1vdmUgdGhpcyBoYXNQZW5kaW5nQWN0aXZpdHkKICAg
ICAgICAgIyBjaGVjayBiZWxvdyB0aGUgaXNPYnNlcnZhYmxlIGNoZWNrLgotICAgICAgICBpZiAo
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0pIHsKKyAg
ICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmpl
Y3QifSkgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGpzJHtpbXBs
Q2xhc3NOYW1lfS0+aW1wbCgpLT5oYXNQZW5kaW5nQWN0aXZpdHkoKSlcbiIpOwogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAg
IH0KLSAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N1YlR5cGUoJGRhdGFOb2RlLCAiTm9k
ZSIpKSB7CisgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRpbnRlcmZhY2Us
ICJOb2RlIikpIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChKU05v
ZGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoaGFuZGxlLCAwLCB2aXNpdG9yKSlc
biIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiB0cnVl
O1xuIik7CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFp
c09ic2VydmFibGUoanMke2ltcGxDbGFzc05hbWV9KSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIik7Ci0gICAgICAgIGlmIChHZXRHZW5l
cmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgaWYgKEdldEdlbmVyYXRlSXNS
ZWFjaGFibGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgICAgIG15ICRyb290U3RyaW5nOwotICAg
ICAgICAgICAgaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSBlcSAiSW1wbCIp
IHsKKyAgICAgICAgICAgIGlmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZhY2UpIGVx
ICJJbXBsIikgewogICAgICAgICAgICAgICAgICRyb290U3RyaW5nICA9ICIgICAgJHtpbXBsVHlw
ZX0qIHJvb3QgPSBqcyR7aW1wbENsYXNzTmFtZX0tPmltcGwoKTtcbiI7Ci0gICAgICAgICAgICB9
IGVsc2lmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgIkltcGxDb250ZXh0
IikgeworICAgICAgICAgICAgfSBlbHNpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkaW50ZXJm
YWNlKSBlcSAiSW1wbENvbnRleHQiKSB7CiAgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgID0g
IiAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIHJvb3QgPSBqcyR7aW1wbENsYXNzTmFtZX0tPmlt
cGwoKS0+Y29udGV4dCgpO1xuIjsKLSAgICAgICAgICAgIH0gZWxzaWYgKEdldEdlbmVyYXRlSXNS
ZWFjaGFibGUoJGRhdGFOb2RlKSBlcSAiSW1wbEZyYW1lIikgeworICAgICAgICAgICAgfSBlbHNp
ZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkaW50ZXJmYWNlKSBlcSAiSW1wbEZyYW1lIikgewog
ICAgICAgICAgICAgICAgICRyb290U3RyaW5nICA9ICIgICAgRnJhbWUqIHJvb3QgPSBqcyR7aW1w
bENsYXNzTmFtZX0tPmltcGwoKS0+ZnJhbWUoKTtcbiI7CiAgICAgICAgICAgICAgICAgJHJvb3RT
dHJpbmcgLj0gIiAgICBpZiAoIXJvb3QpXG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5n
IC49ICIgICAgICAgIHJldHVybiBmYWxzZTtcbiI7Ci0gICAgICAgICAgICB9IGVsc2lmIChHZXRH
ZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgIkltcGxEb2N1bWVudCIpIHsKKyAgICAg
ICAgICAgIH0gZWxzaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIklt
cGxEb2N1bWVudCIpIHsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIERvY3Vt
ZW50KiByb290ID0ganMke2ltcGxDbGFzc05hbWV9LT5pbXBsKCktPmRvY3VtZW50KCk7XG4iOwog
ICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgaWYgKCFyb290KVxuIjsKICAgICAg
ICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgICAgICByZXR1cm4gZmFsc2U7XG4iOwotICAg
ICAgICAgICAgfSBlbHNpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIGVxICJJ
bXBsRWxlbWVudFJvb3QiKSB7CisgICAgICAgICAgICB9IGVsc2lmIChHZXRHZW5lcmF0ZUlzUmVh
Y2hhYmxlKCRpbnRlcmZhY2UpIGVxICJJbXBsRWxlbWVudFJvb3QiKSB7CiAgICAgICAgICAgICAg
ICAgJHJvb3RTdHJpbmcgID0gIiAgICBFbGVtZW50KiBlbGVtZW50ID0ganMke2ltcGxDbGFzc05h
bWV9LT5pbXBsKCktPmVsZW1lbnQoKTtcbiI7CiAgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcg
Lj0gIiAgICBpZiAoIWVsZW1lbnQpXG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49
ICIgICAgICAgIHJldHVybiBmYWxzZTtcbiI7CiAgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcg
Lj0gIiAgICB2b2lkKiByb290ID0gV2ViQ29yZTo6cm9vdChlbGVtZW50KTtcbiI7CiAgICAgICAg
ICAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dCIp
IHsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIHZvaWQqIHJvb3QgPSBXZWJD
b3JlOjpyb290KGpzJHtpbXBsQ2xhc3NOYW1lfS0+aW1wbCgpLT5jYW52YXMoKSk7XG4iOwotICAg
ICAgICAgICAgfSBlbHNpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIGVxICJJ
bXBsQmFzZVJvb3QiKSB7CisgICAgICAgICAgICB9IGVsc2lmIChHZXRHZW5lcmF0ZUlzUmVhY2hh
YmxlKCRpbnRlcmZhY2UpIGVxICJJbXBsQmFzZVJvb3QiKSB7CiAgICAgICAgICAgICAgICAgJHJv
b3RTdHJpbmcgID0gIiAgICB2b2lkKiByb290ID0gV2ViQ29yZTo6cm9vdChqcyR7aW1wbENsYXNz
TmFtZX0tPmltcGwoKS0+YmFzZSgpKTtcbiI7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgICRyb290U3RyaW5nICA9ICIgICAgdm9pZCogcm9vdCA9IFdlYkNvcmU6OnJvb3Qo
anMke2ltcGxDbGFzc05hbWV9LT5pbXBsKCkpO1xuIjsKQEAgLTI1MzMsMTEgKzI1MzMsMTEgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9
XG5cbiIpOwogICAgIH0KIAotICAgIGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSlNDdXN0b21GaW5hbGl6ZSJ9ICYmCisgICAgaWYgKCEkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSlNDdXN0b21GaW5hbGl6ZSJ9ICYmCiAgICAgICAgICghJGhhc1BhcmVudCB8
fAotICAgICAgICAgR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIHx8Ci0gICAgICAg
ICBHZXRDdXN0b21Jc1JlYWNoYWJsZSgkZGF0YU5vZGUpIHx8Ci0gICAgICAgICAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSkpIHsKKyAgICAgICAgIEdl
dEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgfHwKKyAgICAgICAgIEdldEN1c3RvbUlz
UmVhY2hhYmxlKCRpbnRlcmZhY2UpIHx8CisgICAgICAgICAkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0pKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAidm9pZCBKUyR7aW1wbENsYXNzTmFtZX1Pd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpXG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlMk
e2ltcGxDbGFzc05hbWV9KiBqcyR7aW1wbENsYXNzTmFtZX0gPSBqc0Nhc3Q8SlMke2ltcGxDbGFz
c05hbWV9Kj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTtcbiIpOwpAQCAtMjU0Nyw3ICsyNTQ3LDcg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ9XG5cbiIpOwogICAgIH0KIAotICAgIGlmIChTaG91bGRHZW5lcmF0ZVRvSlNJbXBsZW1lbnRh
dGlvbigkaGFzUGFyZW50LCAkZGF0YU5vZGUpKSB7CisgICAgaWYgKFNob3VsZEdlbmVyYXRlVG9K
U0ltcGxlbWVudGF0aW9uKCRoYXNQYXJlbnQsICRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsICRpbXBsVHlwZSogaW1wbClcbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5
VHlwZSkgewpAQCAtMjU1OCw3ICsyNTU4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIAotICAgIGlmICgo
ISRoYXNQYXJlbnQgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0
ZVRvTmF0aXZlT2JqZWN0In0pIGFuZCAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNDdXN0b21Ub05hdGl2ZU9iamVjdCJ9KSB7CisgICAgaWYgKCghJGhhc1BhcmVudCBvciAkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0In0p
IGFuZCAhJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tVG9OYXRpdmVP
YmplY3QifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiRpbXBsVHlwZSogdG8ke2lu
dGVyZmFjZU5hbWV9KEpTQzo6SlNWYWx1ZSB2YWx1ZSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
dmFsdWUuaW5oZXJpdHMoJiR7Y2xhc3NOYW1lfTo6c19pbmZvKSA/IGpzQ2FzdDwkY2xhc3NOYW1l
Kj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpIDogMCIpOwpAQCAtMjU2Nyw3ICsyNTY3LDcgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG59
XG4iKTsKIAotICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5l
cmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRkYXRhTm9kZSk7CisgICAgbXkgJGNvbmRpdGlvbmFsU3Ry
aW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFj
ZSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3Ry
aW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogfQogCkBAIC0yNjAyLDcgKzI2MDIsNyBA
QCBzdWIgR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrCiB7CiAgICAgbXkgJG91dHB1dEFycmF5
ID0gc2hpZnQ7CiAgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFOb2RlID0g
c2hpZnQ7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwogCiAgICAgbXkgJG51bU1hbmRhdG9y
eVBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICBmb3JlYWNoIG15ICRwYXJh
bSAocmV2ZXJzZShAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pKSB7CkBAIC0yNjIzLDcgKzI2MjMs
NyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKIHsKICAgICBteSAkb3V0cHV0QXJyYXkg
PSBzaGlmdDsKICAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKLSAgICBteSAkZGF0YU5vZGUgPSBz
aGlmdDsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAgbXkgJG51bVBhcmFtZXRlcnMg
PSBzaGlmdDsKICAgICBteSAkaW1wbENsYXNzTmFtZSA9IHNoaWZ0OwogICAgIG15ICRmdW5jdGlv
bkltcGxlbWVudGF0aW9uTmFtZSA9IHNoaWZ0OwpAQCAtMjgwMywxMyArMjgwMywxMyBAQCBzdWIg
R2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiB7CiAg
ICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15
ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2Rl
LT5uYW1lOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKICAgICBt
eSAkY2xhc3NOYW1lID0gIkpTJGludGVyZmFjZU5hbWUiOwogCiAgICAgIyAtIEFkZCBkZWZhdWx0
IGhlYWRlciB0ZW1wbGF0ZSBhbmQgaGVhZGVyIHByb3RlY3Rpb24KLSAgICBwdXNoKEBoZWFkZXJD
b250ZW50SGVhZGVyLCBHZW5lcmF0ZUhlYWRlckNvbnRlbnRIZWFkZXIoJGRhdGFOb2RlKSk7Cisg
ICAgcHVzaChAaGVhZGVyQ29udGVudEhlYWRlciwgR2VuZXJhdGVIZWFkZXJDb250ZW50SGVhZGVy
KCRpbnRlcmZhY2UpKTsKIAogICAgICRoZWFkZXJJbmNsdWRlc3siQWN0aXZlRE9NQ2FsbGJhY2su
aCJ9ID0gMTsKICAgICAkaGVhZGVySW5jbHVkZXN7IiRpbnRlcmZhY2VOYW1lLmgifSA9IDE7CkBA
IC0yODMwLDEwICsyODMwLDEwIEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIH4kY2xhc3NOYW1lKCk7XG4iKTsKIAogICAg
ICMgRnVuY3Rpb25zCi0gICAgbXkgJG51bUZ1bmN0aW9ucyA9IEB7JGRhdGFOb2RlLT5mdW5jdGlv
bnN9OworICAgIG15ICRudW1GdW5jdGlvbnMgPSBAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc307CiAg
ICAgaWYgKCRudW1GdW5jdGlvbnMgPiAwKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICJcbiAgICAvLyBGdW5jdGlvbnNcbiIpOwotICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAo
QHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24g
KEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbXkgQHBhcmFtcyA9IEB7
JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICAgICAgICAgIGlmICghJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b20ifSAmJgogICAgICAgICAgICAgICAg
ICEoR2V0TmF0aXZlVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgZXEgImJvb2wiKSkg
ewpAQCAtMjg2MiwyMCArMjg2MiwyMCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICJ9IC8vIG5hbWVzcGFjZSBXZWJDb3JlXG5cbiIpOwotICAgIG15ICRjb25kaXRpb25hbFN0
cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRkYXRhTm9k
ZSk7CisgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRl
Q29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSk7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJp
bmc7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZlxuIik7CiB9CiAKIHN1YiBHZW5l
cmF0ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KIHsKLSAgICBteSAoJG9iamVjdCwgJGRhdGFOb2Rl
KSA9IEBfOworICAgIG15ICgkb2JqZWN0LCAkaW50ZXJmYWNlKSA9IEBfOwogCi0gICAgbXkgJGlu
dGVyZmFjZU5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAk
aW50ZXJmYWNlLT5uYW1lOwogICAgIG15ICRjbGFzc05hbWUgPSAiSlMkaW50ZXJmYWNlTmFtZSI7
CiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCi0gICAgcHVzaChAaW1wbENv
bnRlbnRIZWFkZXIsIEdlbmVyYXRlSW1wbGVtZW50YXRpb25Db250ZW50SGVhZGVyKCRkYXRhTm9k
ZSkpOworICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
Q29udGVudEhlYWRlcigkaW50ZXJmYWNlKSk7CiAKICAgICAkaW1wbEluY2x1ZGVzeyJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvSlNM
b2NrLmg+In0gPSAxOwpAQCAtMjkwOCwxMCArMjkwOCwxMCBAQCBzdWIgR2VuZXJhdGVDYWxsYmFj
a0ltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKIAogICAgICMg
RnVuY3Rpb25zCi0gICAgbXkgJG51bUZ1bmN0aW9ucyA9IEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9
OworICAgIG15ICRudW1GdW5jdGlvbnMgPSBAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc307CiAgICAg
aWYgKCRudW1GdW5jdGlvbnMgPiAwKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4v
LyBGdW5jdGlvbnNcbiIpOwotICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5v
ZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVy
ZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbXkgQHBhcmFtcyA9IEB7JGZ1bmN0aW9u
LT5wYXJhbWV0ZXJzfTsKICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8CiAgICAgICAgICAgICAgICAgIShHZXROYXRp
dmVUeXBlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpKSB7CkBAIC0yOTgz
LDcgKzI5ODMsNyBAQCBFTkQKICAgICB9CiAKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxufVxu
Iik7Ci0gICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRl
Q29uZGl0aW9uYWxTdHJpbmcoJGRhdGFOb2RlKTsKKyAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcg
PSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkaW50ZXJmYWNlKTsK
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9
XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiB9CiAKQEAgLTM1NDEsOSArMzU0MSw5IEBAIHN1
YiBHZW5lcmF0ZUhhc2hWYWx1ZQogc3ViIFdyaXRlRGF0YQogewogICAgIG15ICRvYmplY3QgPSBz
aGlmdDsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hp
ZnQ7CiAKLSAgICBteSAkbmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkbmFtZSA9ICRp
bnRlcmZhY2UtPm5hbWU7CiAgICAgbXkgJHByZWZpeCA9IEZpbGVOYW1lUHJlZml4OwogICAgIG15
ICRoZWFkZXJGaWxlTmFtZSA9ICIkb3V0cHV0RGlyLyRwcmVmaXgkbmFtZS5oIjsKICAgICBteSAk
aW1wbEZpbGVOYW1lID0gIiRvdXRwdXREaXIvJHByZWZpeCRuYW1lLmNwcCI7CkBAIC0zNjI4LDcg
KzM2MjgsNyBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xhcmF0aW9uCiB7CiAgICAgbXkg
JG91dHB1dEFycmF5ID0gc2hpZnQ7CiAgICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OwotICAgIG15
ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKICAgICBteSAk
aW50ZXJmYWNlTmFtZSA9IHNoaWZ0OwogCiAgICAgbXkgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lID0g
IiR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yIjsKQEAgLTM2NTksMTcgKzM2NTksMTcgQEAgc3ViIEdl
bmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInBy
b3RlY3RlZDpcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3RhbmNlIHwgRE9NQ29uc3RydWN0b3JPYmplY3Q6OlN0
cnVjdHVyZUZsYWdzO1xuIik7CiAKLSAgICBpZiAoSXNDb25zdHJ1Y3RhYmxlKCRkYXRhTm9kZSkg
JiYgISRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSkg
eworICAgIGlmIChJc0NvbnN0cnVjdGFibGUoJGludGVyZmFjZSkgJiYgISRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBKU0M6OkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgY29uc3RydWN0JHtjbGFzc05hbWV9KEpTQzo6RXhlY1N0YXRlKik7XG4iKTsKICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHN0YXRpYyBKU0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShKU0M6OkpTQ2VsbCosIEpTQzo6Q29uc3RydWN0RGF0YSYpO1xuIik7CiAgICAg
fQogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn07XG5cbiIpOwogCi0gICAgaWYgKCRjb2RlR2Vu
ZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVGVtcGxhdGUoJGRhdGFOb2RlLCAiRXZlbnQiKSkgeworICAg
IGlmICgkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclRlbXBsYXRlKCRpbnRlcmZhY2UsICJF
dmVudCIpKSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgZmlsbCR7aW50ZXJm
YWNlTmFtZX1Jbml0KCR7aW50ZXJmYWNlTmFtZX1Jbml0JiwgSlNEaWN0aW9uYXJ5Jik7XG5cbiIp
OwogICAgIH0KIAotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1l
ZENvbnN0cnVjdG9yIn0pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ik5hbWVkQ29uc3RydWN0b3IifSkgewogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksIDw8
RU5EKTsKIGNsYXNzIEpTJHtpbnRlcmZhY2VOYW1lfU5hbWVkQ29uc3RydWN0b3IgOiBwdWJsaWMg
RE9NQ29uc3RydWN0b3JXaXRoRG9jdW1lbnQgewogcHVibGljOgpAQCAtMzcwOCwxOSArMzcwOCwx
OSBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAgICBteSAkcHJvdG9DbGFz
c05hbWUgPSBzaGlmdDsKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OwogICAgIG15ICR2
aXNpYmxlSW50ZXJmYWNlTmFtZSA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0Owor
ICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKICAgICBteSAkZ2VuZXJhdGluZ05hbWVkQ29uc3Ry
dWN0b3IgPSBzaGlmdDsKIAogICAgICMgRklYTUU6IEFkZCBzdXBwb3J0IGZvciBvdmVybG9hZGVk
IGNvbnN0cnVjdG9ycyB0byBKUyBhcyB3ZWxsLgogICAgICMgRm9yIG5vdyBtaW1pYyB0aGUgb2xk
IGJlaGF2aW91ciBieSBvbmx5IGdlbmVyYXRpbmcgY29kZSBmb3IgdGhlIGxhc3QgIkNvbnN0cnVj
dG9yIiBhdHRyaWJ1dGUuCi0gICAgbXkgJGZ1bmN0aW9uID0gQHskZGF0YU5vZGUtPmNvbnN0cnVj
dG9yc31bLTFdOworICAgIG15ICRmdW5jdGlvbiA9IEB7JGludGVyZmFjZS0+Y29uc3RydWN0b3Jz
fVstMV07CiAKICAgICBteSAkY29uc3RydWN0b3JDbGFzc05hbWUgPSAkZ2VuZXJhdGluZ05hbWVk
Q29uc3RydWN0b3IgPyAiJHtjbGFzc05hbWV9TmFtZWRDb25zdHJ1Y3RvciIgOiAiJHtjbGFzc05h
bWV9Q29uc3RydWN0b3IiOwotICAgIG15ICRudW1iZXJPZkNvbnN0cnVjdG9yUGFyYW1ldGVycyA9
ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yUGFyYW1ldGVycyJ9
OworICAgIG15ICRudW1iZXJPZkNvbnN0cnVjdG9yUGFyYW1ldGVycyA9ICRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclBhcmFtZXRlcnMifTsKICAgICBpZiAoIWRl
ZmluZWQgJG51bWJlck9mQ29uc3RydWN0b3JQYXJhbWV0ZXJzKSB7Ci0gICAgICAgIGlmICgkY29k
ZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclRlbXBsYXRlKCRkYXRhTm9kZSwgIkV2ZW50IikpIHsK
KyAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVGVtcGxhdGUoJGludGVy
ZmFjZSwgIkV2ZW50IikpIHsKICAgICAgICAgICAgICRudW1iZXJPZkNvbnN0cnVjdG9yUGFyYW1l
dGVycyA9IDI7Ci0gICAgICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNvbnN0cnVjdG9yIn0pIHsKKyAgICAgICAgfSBlbHNpZiAoJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0pIHsKICAgICAgICAgICAgICRudW1iZXJPZkNv
bnN0cnVjdG9yUGFyYW1ldGVycyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICAgICAg
fQogICAgIH0KQEAgLTM3MzIsNyArMzczMiw3IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVm
aW5pdGlvbgogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNOb1N0YXRpY1RhYmxlcyJ9KSB7CisgICAg
ICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNOb1N0YXRpY1RhYmxl
cyJ9KSB7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJzdGF0aWMgY29uc3QgSGFz
aFRhYmxlKiBnZXQke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlKEV4ZWNTdGF0ZSogZXhlYylc
biIpOwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdldEhhc2hUYWJsZUZvckdsb2JhbERh
dGEoZXhlYy0+Z2xvYmFsRGF0YSgpLCAmJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX1UYWJsZSk7XG4i
KTsKQEAgLTM3NjgsNyArMzc2OCw3IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlv
bgogCiAgICAgaWYgKCEkZ2VuZXJhdGluZ05hbWVkQ29uc3RydWN0b3IpIHsKICAgICAgICAgbXkg
JGhhc1N0YXRpY0Z1bmN0aW9ucyA9IDA7Ci0gICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChA
eyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgeworICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAo
QHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5p
c1N0YXRpYykgewogICAgICAgICAgICAgICAgICRoYXNTdGF0aWNGdW5jdGlvbnMgPSAxOwogICAg
ICAgICAgICAgICAgIGxhc3Q7CkBAIC0zNzc5LDE3ICszNzc5LDE3IEBAIHN1YiBHZW5lcmF0ZUNv
bnN0cnVjdG9yRGVmaW5pdGlvbgogCiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wg
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90
JiBzbG90KVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwotICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGdldFN0YXRpYyR7a2luZH1TbG90PCR7
Y29uc3RydWN0b3JDbGFzc05hbWV9LCBKU0RPTVdyYXBwZXI+KGV4ZWMsICIgLiBjb25zdHJ1Y3Rv
ckhhc2hUYWJsZUFjY2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTTm9T
dGF0aWNUYWJsZXMifSwgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lKSAuICIsIGpzQ2FzdDwke2NvbnN0
cnVjdG9yQ2xhc3NOYW1lfSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gZ2V0U3RhdGljJHtraW5kfVNsb3Q8
JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0sIEpTRE9NV3JhcHBlcj4oZXhlYywgIiAuIGNvbnN0cnVj
dG9ySGFzaFRhYmxlQWNjZXNzb3IoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpT
Tm9TdGF0aWNUYWJsZXMifSwgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lKSAuICIsIGpzQ2FzdDwke2Nv
bnN0cnVjdG9yQ2xhc3NOYW1lfSo+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiAKICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiYm9vbCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKVxuIik7CiAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgcmV0dXJuIGdldFN0YXRpYyR7a2luZH1EZXNjcmlwdG9yPCR7Y29uc3RydWN0b3JD
bGFzc05hbWV9LCBKU0RPTVdyYXBwZXI+KGV4ZWMsICIgLiBjb25zdHJ1Y3Rvckhhc2hUYWJsZUFj
Y2Vzc29yKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTTm9TdGF0aWNUYWJsZXMi
fSwgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lKSAuICIsIGpzQ2FzdDwke2NvbnN0cnVjdG9yQ2xhc3NO
YW1lfSo+KG9iamVjdCksIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7XG4iKTsKKyAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBnZXRTdGF0aWMke2tpbmR9RGVzY3JpcHRv
cjwke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfSwgSlNET01XcmFwcGVyPihleGVjLCAiIC4gY29uc3Ry
dWN0b3JIYXNoVGFibGVBY2Nlc3NvcigkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SlNOb1N0YXRpY1RhYmxlcyJ9LCAkY29uc3RydWN0b3JDbGFzc05hbWUpIC4gIiwganNDYXN0PCR7
Y29uc3RydWN0b3JDbGFzc05hbWV9Kj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogICAgIH0KIAot
ICAgIGlmIChJc0NvbnN0cnVjdGFibGUoJGRhdGFOb2RlKSkgewotICAgICAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUZW1wbGF0ZSgkZGF0YU5vZGUsICJFdmVudCIpKSB7Cisg
ICAgaWYgKElzQ29uc3RydWN0YWJsZSgkaW50ZXJmYWNlKSkgeworICAgICAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUZW1wbGF0ZSgkaW50ZXJmYWNlLCAiRXZlbnQiKSkgewog
ICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNEaWN0aW9uYXJ5LmgifSA9IDE7CiAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGltZS9FcnJvci5oPiJ9ID0gMTsKIApAQCAtMzgyOSw3
ICszODI5LDcgQEAgYm9vbCBmaWxsJHtpbnRlcmZhY2VOYW1lfUluaXQoJHtpbnRlcmZhY2VOYW1l
fUluaXQmIGV2ZW50SW5pdCwgSlNEaWN0aW9uYXJ5JiBkaWMKIHsKIEVORAogCi0gICAgICAgICAg
ICBmb3JlYWNoIG15ICRpbnRlcmZhY2VCYXNlIChAeyRkYXRhTm9kZS0+cGFyZW50c30pIHsKKyAg
ICAgICAgICAgIGZvcmVhY2ggbXkgJGludGVyZmFjZUJhc2UgKEB7JGludGVyZmFjZS0+cGFyZW50
c30pIHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwogICAgIGlm
ICghZmlsbCR7aW50ZXJmYWNlQmFzZX1Jbml0KGV2ZW50SW5pdCwgZGljdGlvbmFyeSkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTM4MzcsOCArMzgzNyw4IEBAIEVORAogRU5ECiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIGZvciAobXkgJGluZGV4ID0gMDsgJGluZGV4IDwgQHskZGF0
YU5vZGUtPmF0dHJpYnV0ZXN9OyAkaW5kZXgrKykgewotICAgICAgICAgICAgICAgIG15ICRhdHRy
aWJ1dGUgPSBAeyRkYXRhTm9kZS0+YXR0cmlidXRlc31bJGluZGV4XTsKKyAgICAgICAgICAgIGZv
ciAobXkgJGluZGV4ID0gMDsgJGluZGV4IDwgQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfTsgJGlu
ZGV4KyspIHsKKyAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlID0gQHskaW50ZXJmYWNlLT5h
dHRyaWJ1dGVzfVskaW5kZXhdOwogICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbml0aWFsaXplZEJ5RXZlbnRDb25zdHJ1Y3Rv
ciJ9KSB7CiAgICAgICAgICAgICAgICAgICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgPDxFTkQpOwpAQCAtMzg1Myw5ICszODUzLDkgQEAgRU5ECiB9CiAKIEVORAotICAgICAgICB9
IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclRlbXBsYXRlKCRkYXRhTm9kZSwg
IlR5cGVkQXJyYXkiKSkgeworICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNDb25z
dHJ1Y3RvclRlbXBsYXRlKCRpbnRlcmZhY2UsICJUeXBlZEFycmF5IikpIHsKICAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7IkpTQXJyYXlCdWZmZXJWaWV3SGVscGVyLmgifSA9IDE7Ci0gICAgICAg
ICAgICBteSAkdmlld1R5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUeXBl
ZEFycmF5In07CisgICAgICAgICAgICBteSAkdmlld1R5cGUgPSAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiVHlwZWRBcnJheSJ9OwogICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCAke2NvbnN0cnVjdG9yQ2xhc3NOYW1l
fTo6Y29uc3RydWN0JHtjbGFzc05hbWV9KEV4ZWNTdGF0ZSogZXhlYylcbiIpOwogICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0qIGpzQ29uc3RydWN0b3IgPSBqc0Nh
c3Q8JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0qPihleGVjLT5jYWxsZWUoKSk7XG4iKTsKQEAgLTM4
NzEsMTMgKzM4NzEsMTMgQEAgRU5ECiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgcmV0dXJuIHRvSlNBcnJheUJ1ZmZlclZpZXc8JHtjbGFzc05hbWV9PihleGVjLCBnbG9iYWxP
YmplY3QsIG9iamVjdCk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1c
blxuIik7CiAKLSAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b21JbmRleGVkU2V0dGVyIn0pIHsKKyAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9KSB7CiAgICAgICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAidm9pZCAke2NsYXNzTmFtZX06OmluZGV4U2V0dGVy
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgSlNDOjpKU1ZhbHVlIHZhbHVl
KVxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGltcGwoKS0+c2V0KGluZGV4LCB2
YWx1ZS50b051bWJlcihleGVjKSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICJ9XG5cbiIpOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2lmICghKCRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tQ29uc3RydWN0b3IifSB8fCAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9KSAmJiAoISRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSB8fCAkZ2Vu
ZXJhdGluZ05hbWVkQ29uc3RydWN0b3IpKSB7CisgICAgICAgIH0gZWxzaWYgKCEoJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tQ29uc3RydWN0b3IifSB8fCAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSkgJiYgKCEkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9IHx8ICRnZW5l
cmF0aW5nTmFtZWRDb25zdHJ1Y3RvcikpIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06
OmNvbnN0cnVjdCR7Y2xhc3NOYW1lfShFeGVjU3RhdGUqIGV4ZWMpXG4iKTsKICAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogCkBAIC0zODg3LDkgKzM4ODcsOSBAQCBFTkQK
IAogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvRXJyb3IuaD4ifSA9IDE7CiAK
LSAgICAgICAgICAgIEdlbmVyYXRlQXJndW1lbnRzQ291bnRDaGVjaygkb3V0cHV0QXJyYXksICRm
dW5jdGlvbiwgJGRhdGFOb2RlKTsKKyAgICAgICAgICAgIEdlbmVyYXRlQXJndW1lbnRzQ291bnRD
aGVjaygkb3V0cHV0QXJyYXksICRmdW5jdGlvbiwgJGludGVyZmFjZSk7CiAKLSAgICAgICAgICAg
IGlmIChAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc30gfHwgJGRhdGFOb2RlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24ifSkgeworICAgICAgICAg
ICAgaWYgKEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfSB8fCAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24ifSkgewogICAgICAg
ICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkV4Y2VwdGlvbkNvZGUuaCJ9ID0gMTsKICAgICAgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4i
KTsKICAgICAgICAgICAgIH0KQEAgLTM4OTgsOSArMzg5OCw5IEBAIEVORAogICAgICAgICAgICAg
IyBGSVhNRTogQ3VycmVudGx5IFtDb25zdHJ1Y3RvciguLi4pXSBkb2VzIG5vdCB5ZXQgc3VwcG9y
dCBbT3B0aW9uYWxdIGFyZ3VtZW50cy4KICAgICAgICAgICAgICMgSXQganVzdCBzdXBwb3J0cyBb
T3B0aW9uYWw9RGVmYXVsdElzVW5kZWZpbmVkXSBvciBbT3B0aW9uYWw9RGVmYXVsdElzTnVsbFN0
cmluZ10uCiAgICAgICAgICAgICBteSAkbnVtUGFyYW1ldGVycyA9IEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfTsKLSAgICAgICAgICAgIG15ICgkZHVtbXksICRwYXJhbUluZGV4KSA9IEdlbmVyYXRl
UGFyYW1ldGVyc0NoZWNrKCRvdXRwdXRBcnJheSwgJGZ1bmN0aW9uLCAkZGF0YU5vZGUsICRudW1Q
YXJhbWV0ZXJzLCAkaW50ZXJmYWNlTmFtZSwgImNvbnN0cnVjdG9yQ2FsbGJhY2siLCB1bmRlZiwg
dW5kZWYsIHVuZGVmKTsKKyAgICAgICAgICAgIG15ICgkZHVtbXksICRwYXJhbUluZGV4KSA9IEdl
bmVyYXRlUGFyYW1ldGVyc0NoZWNrKCRvdXRwdXRBcnJheSwgJGZ1bmN0aW9uLCAkaW50ZXJmYWNl
LCAkbnVtUGFyYW1ldGVycywgJGludGVyZmFjZU5hbWUsICJjb25zdHJ1Y3RvckNhbGxiYWNrIiwg
dW5kZWYsIHVuZGVmLCB1bmRlZik7CiAKLSAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+
RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDYWxsV2l0aCJ9LCAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIpKSB7CisgICAgICAgICAgICBp
ZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0sICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
IikpIHsKICAgICAgICAgICAgICAgICBwdXNoKEBjb25zdHJ1Y3RvckFyZ0xpc3QsICJjb250ZXh0
Iik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQgPSBjYXN0ZWRUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCFj
b250ZXh0KVxuIik7CkBAIC0zOTE3LDcgKzM5MTcsNyBAQCBFTkQKICAgICAgICAgICAgICAgICAk
aW5kZXgrKzsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uIn0pIHsKKyAgICAg
ICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JS
YWlzZXNFeGNlcHRpb24ifSkgewogICAgICAgICAgICAgICAgIHB1c2goQGNvbnN0cnVjdG9yQXJn
TGlzdCwgImVjIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JB
cmcgPSBqb2luKCIsICIsIEBjb25zdHJ1Y3RvckFyZ0xpc3QpOwpAQCAtMzkyNyw3ICszOTI3LDcg
QEAgRU5ECiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFJlZlB0cjwk
e2ludGVyZmFjZU5hbWV9PiBvYmplY3QgPSAke2ludGVyZmFjZU5hbWV9OjpjcmVhdGUoJHtjb25z
dHJ1Y3RvckFyZ30pO1xuIik7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICgkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbiJ9
KSB7CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNv
bnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uIn0pIHsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgaWYgKGVjKSB7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7XG4iKTsKICAgICAg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNWYWx1ZSgpKTtcbiIpOwpAQCAtMzkzOCw3ICszOTM4LDcgQEAgRU5ECiAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKCEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0g
fHwgJGdlbmVyYXRpbmdOYW1lZENvbnN0cnVjdG9yKSB7CisgICAgICAgIGlmICghJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkQ29uc3RydWN0b3IifSB8fCAkZ2VuZXJhdGlu
Z05hbWVkQ29uc3RydWN0b3IpIHsKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIkNv
bnN0cnVjdFR5cGUgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OmdldENvbnN0cnVjdERhdGEoSlND
ZWxsKiwgQ29uc3RydWN0RGF0YSYgY29uc3RydWN0RGF0YSlcbiIpOwogICAgICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgY29uc3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3Qke2NsYXNzTmFt
ZX07XG4iKTsKQEAgLTM5NTAsOSArMzk1MCw5IEBAIEVORAogCiBzdWIgSXNDb25zdHJ1Y3RhYmxl
CiB7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0
OwogCi0gICAgcmV0dXJuICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNv
bnN0cnVjdG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21D
b25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVj
dG9yIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3Rv
ciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yVGVtcGxh
dGUifTsKKyAgICByZXR1cm4gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bUNvbnN0cnVjdG9yIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3Vz
dG9tQ29uc3RydWN0b3IifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29u
c3RydWN0b3IifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25z
dHJ1Y3RvciJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3Rv
clRlbXBsYXRlIn07CiB9CiAKIDE7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>