<?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>102747</bug_id>
          
          <creation_ts>2012-11-19 17:29:45 -0800</creation_ts>
          <short_desc>In CodeGeneratorV8.pm, we should rename $dataNode to $interface</short_desc>
          <delta_ts>2012-11-19 20:26:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>771264</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-19 17:29:45 -0800</bug_when>
    <thetext>$dataNode is misnamed. It should be $interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771266</commentid>
    <comment_count>1</comment_count>
      <attachid>175092</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-19 17:30:53 -0800</bug_when>
    <thetext>Created attachment 175092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771373</commentid>
    <comment_count>2</comment_count>
      <attachid>175092</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 18:46:03 -0800</bug_when>
    <thetext>Comment on attachment 175092
Patch

Rejecting attachment 175092 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
commit-queue/Source/WebKit/chromium/third_party/v8-i18n --revision 157 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
51&gt;At revision 157.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/14901418</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771438</commentid>
    <comment_count>3</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-19 20:26:52 -0800</bug_when>
    <thetext>Committed r135239: &lt;http://trac.webkit.org/changeset/135239&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175092</attachid>
            <date>2012-11-19 17:30:53 -0800</date>
            <delta_ts>2012-11-19 18:46:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102747-20121120102842.patch</filename>
            <type>text/plain</type>
            <size>66894</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWY1NjgwMDcyZjhhZTE4
NjYwZWJkMTlhNjg1OTlkNjNjMzNlM2M2Zi4uY2Y5MDU5Njk0YTU4ZmFlZjYzZTg2YTYyYmIzNWJi
YjBlMmQzMjkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDEyLTExLTE5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbiBDb2RlR2VuZXJh
dG9yVjgucG0sIHdlIHNob3VsZCByZW5hbWUgJGRhdGFOb2RlIHRvICRpbnRlcmZhY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjc0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICRkYXRhTm9kZSBpcyBt
aXNuYW1lZC4gSXQgc2hvdWxkIGJlICRpbnRlcmZhY2UuCisKKyAgICAgICAgTm8gdGVzdHMuIE5v
IGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVJbnRlcmZhY2UpOgorICAgICAgICAoTmVl
ZHNDdXN0b21PcGFxdWVSb290Rm9yR0MpOgorICAgICAgICAoR2V0R2VuZXJhdGVJc1JlYWNoYWJs
ZSk6CisgICAgICAgIChHZXRDdXN0b21Jc1JlYWNoYWJsZSk6CisgICAgICAgIChHZW5lcmF0ZU9w
YXF1ZVJvb3RGb3JHQyk6CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZXRJ
bnRlcm5hbEZpZWxkcyk6CisgICAgICAgIChHZW5lcmF0ZUhlYWRlckN1c3RvbUludGVybmFsRmll
bGRJbmRpY2VzKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyTmFtZWRBbmRJbmRleGVkUHJvcGVy
dHlBY2Nlc3NvcnMpOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXJDdXN0b21DYWxsKToKKyAgICAg
ICAgKElzQ29uc3RydWN0YWJsZSk6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9yR2V0dGVy
KToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0ckdldHRlcik6CisgICAgICAgIChHZW5lcmF0
ZVJlcGxhY2VhYmxlQXR0clNldHRlcik6CisgICAgICAgIChHZW5lcmF0ZU5vcm1hbEF0dHJTZXR0
ZXIpOgorICAgICAgICAoR2VuZXJhdGVPdmVybG9hZGVkRnVuY3Rpb25DYWxsYmFjayk6CisgICAg
ICAgIChHZW5lcmF0ZUZ1bmN0aW9uQ2FsbGJhY2spOgorICAgICAgICAoR2VuZXJhdGVBcmd1bWVu
dHNDb3VudENoZWNrKToKKyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRlZENvbnN0cnVjdG9yQ2Fs
bGJhY2spOgorICAgICAgICAoR2VuZXJhdGVTaW5nbGVDb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAg
ICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZUV2
ZW50Q29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZVR5cGVkQXJyYXlDb25z
dHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKEdlbmVyYXRlTmFtZWRDb25zdHJ1Y3RvckNhbGxi
YWNrKToKKyAgICAgICAgKEdlbmVyYXRlQmF0Y2hlZEF0dHJpYnV0ZURhdGEpOgorICAgICAgICAo
SXNTdGFuZGFyZEZ1bmN0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlTm9uU3RhbmRhcmRGdW5jdGlv
bik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uSW5kZXhlcik6CisgICAgICAgIChH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uTmFtZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgIChHZW5l
cmF0ZUltcGxlbWVudGF0aW9uQ3VzdG9tQ2FsbCk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyQ29udGVudEhlYWRlcik6CisgICAgICAg
IChHZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcik6CisgICAgICAgIChHZW5lcmF0
ZUNhbGxiYWNrSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlv
bik6CisgICAgICAgIChCYXNlSW50ZXJmYWNlTmFtZSk6CisgICAgICAgIChHZW5lcmF0ZVRvVjhD
b252ZXJ0ZXJzKToKKyAgICAgICAgKEdldE5hdGl2ZVR5cGVGb3JDb252ZXJzaW9ucyk6CisgICAg
ICAgIChHZXRUeXBlTmFtZU9mRXh0ZXJuYWxUeXBlZEFycmF5KToKKyAgICAgICAgKFdyaXRlRGF0
YSk6CisKIDIwMTItMTEtMTkgIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBOb3QgcmV2aWV3ZWQuIEJ1aWxkIGZpeCBmb3IgQ2hyb21pdW0uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDZiNzZh
MWFkNzBkNGNlZWFiNDY3MWFjNGJjNjkyYjY4ZWM4NTkxYzEuLmMzZjYwYWM5YWEyNjQ5NzFjZTZm
OTAwMWIyMGEyYzQwZDFhMTY3YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC04MiwxOCArODIsMTggQEAgc3ViIG5ldwog
c3ViIEdlbmVyYXRlSW50ZXJmYWNlCiB7CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15
ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAogICAgICMg
U3RhcnQgYWN0dWFsIGdlbmVyYXRpb24KLSAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ2FsbGJhY2sifSkgewotICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUNhbGxiYWNr
SGVhZGVyKCRkYXRhTm9kZSk7Ci0gICAgICAgICRvYmplY3QtPkdlbmVyYXRlQ2FsbGJhY2tJbXBs
ZW1lbnRhdGlvbigkZGF0YU5vZGUpOworICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ2FsbGJhY2sifSkgeworICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUNhbGxiYWNr
SGVhZGVyKCRpbnRlcmZhY2UpOworICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUNhbGxiYWNrSW1w
bGVtZW50YXRpb24oJGludGVyZmFjZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgJG9iamVjdC0+
R2VuZXJhdGVIZWFkZXIoJGRhdGFOb2RlKTsKLSAgICAgICAgJG9iamVjdC0+R2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbigkZGF0YU5vZGUpOworICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhlYWRlcigk
aW50ZXJmYWNlKTsKKyAgICAgICAgJG9iamVjdC0+R2VuZXJhdGVJbXBsZW1lbnRhdGlvbigkaW50
ZXJmYWNlKTsKICAgICB9CiAKLSAgICAkb2JqZWN0LT5Xcml0ZURhdGEoJGRhdGFOb2RlKTsKKyAg
ICAkb2JqZWN0LT5Xcml0ZURhdGEoJGludGVyZmFjZSk7CiB9CiAKIHN1YiBBZGRUb0ltcGxJbmNs
dWRlcwpAQCAtMTY2LDI4ICsxNjYsMjggQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogCiBzdWIg
TmVlZHNDdXN0b21PcGFxdWVSb290Rm9yR0MKIHsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsK
LSAgICByZXR1cm4gR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIHx8IEdldEN1c3Rv
bUlzUmVhY2hhYmxlKCRkYXRhTm9kZSk7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAg
IHJldHVybiBHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZhY2UpIHx8IEdldEN1c3RvbUlz
UmVhY2hhYmxlKCRpbnRlcmZhY2UpOwogfQogCiBzdWIgR2V0R2VuZXJhdGVJc1JlYWNoYWJsZQog
ewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIHJldHVybiAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZUlzUmVhY2hhYmxlIn0gfHwgJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiVjhHZW5lcmF0ZUlzUmVhY2hhYmxlIn0gfHwgIiIKKyAgICBteSAk
aW50ZXJmYWNlID0gc2hpZnQ7CisgICAgcmV0dXJuICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJHZW5lcmF0ZUlzUmVhY2hhYmxlIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IlY4R2VuZXJhdGVJc1JlYWNoYWJsZSJ9IHx8ICIiCiB9CiAKIHN1YiBHZXRDdXN0
b21Jc1JlYWNoYWJsZQogewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIHJldHVybiAk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Jc1JlYWNoYWJsZSJ9IHx8ICRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4Q3VzdG9tSXNSZWFjaGFibGUifTsKKyAg
ICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgcmV0dXJuICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21Jc1JlYWNoYWJsZSJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJWOEN1c3RvbUlzUmVhY2hhYmxlIn07CiB9CiAKIHN1YiBHZW5lcmF0ZU9w
YXF1ZVJvb3RGb3JHQwogewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRpbnRl
cmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsK
KyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAKLSAgICBpZiAoR2V0
Q3VzdG9tSXNSZWFjaGFibGUoJGRhdGFOb2RlKSkgeworICAgIGlmIChHZXRDdXN0b21Jc1JlYWNo
YWJsZSgkaW50ZXJmYWNlKSkgewogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xOTcsMjAg
KzE5NywyMCBAQCB2b2lkKiBWOCR7aW50ZXJmYWNlTmFtZX06Om9wYXF1ZVJvb3RGb3JHQyh2b2lk
KiBvYmplY3QsIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplYwogICAgIEFTU0VSVCghd3JhcHBlci5J
c0luZGVwZW5kZW50KCkpOwogICAgICR7aW50ZXJmYWNlTmFtZX0qIGltcGwgPSBzdGF0aWNfY2Fz
dDwke2ludGVyZmFjZU5hbWV9Kj4ob2JqZWN0KTsKIEVORAotICAgIGlmIChHZXRHZW5lcmF0ZUlz
UmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgICJJbXBsRG9jdW1lbnQiIHx8Ci0gICAgICAgIEdldEdl
bmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2RlKSBlcSAgIkltcGxFbGVtZW50Um9vdCIgfHwKLSAg
ICAgICAgR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIGVxICAiSW1wbE93bmVyUm9v
dCIgfHwKLSAgICAgICAgR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIGVxICAiSW1w
bE93bmVyTm9kZVJvb3QiIHx8Ci0gICAgICAgIEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFO
b2RlKSBlcSAgIkltcGxCYXNlUm9vdCIpIHsKKyAgICBpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJs
ZSgkaW50ZXJmYWNlKSBlcSAgIkltcGxEb2N1bWVudCIgfHwKKyAgICAgICAgR2V0R2VuZXJhdGVJ
c1JlYWNoYWJsZSgkaW50ZXJmYWNlKSBlcSAgIkltcGxFbGVtZW50Um9vdCIgfHwKKyAgICAgICAg
R2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkaW50ZXJmYWNlKSBlcSAgIkltcGxPd25lclJvb3QiIHx8
CisgICAgICAgIEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEgICJJbXBsT3du
ZXJOb2RlUm9vdCIgfHwKKyAgICAgICAgR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkaW50ZXJmYWNl
KSBlcSAgIkltcGxCYXNlUm9vdCIpIHsKIAogICAgICAgICAkaW1wbEluY2x1ZGVzeyJWOEdDQ29u
dHJvbGxlci5oIn0gPSAxOwogCiAgICAgICAgIG15ICRtZXRob2ROYW1lOwotICAgICAgICAkbWV0
aG9kTmFtZSA9ICJkb2N1bWVudCIgaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGRhdGFOb2Rl
KSBlcSAiSW1wbERvY3VtZW50Iik7Ci0gICAgICAgICRtZXRob2ROYW1lID0gImVsZW1lbnQiIGlm
IChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgIkltcGxFbGVtZW50Um9vdCIp
OwotICAgICAgICAkbWV0aG9kTmFtZSA9ICJvd25lciIgaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFi
bGUoJGRhdGFOb2RlKSBlcSAiSW1wbE93bmVyUm9vdCIpOwotICAgICAgICAkbWV0aG9kTmFtZSA9
ICJvd25lck5vZGUiIGlmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgIklt
cGxPd25lck5vZGVSb290Iik7Ci0gICAgICAgICRtZXRob2ROYW1lID0gImJhc2UiIGlmIChHZXRH
ZW5lcmF0ZUlzUmVhY2hhYmxlKCRkYXRhTm9kZSkgZXEgIkltcGxCYXNlUm9vdCIpOworICAgICAg
ICAkbWV0aG9kTmFtZSA9ICJkb2N1bWVudCIgaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGlu
dGVyZmFjZSkgZXEgIkltcGxEb2N1bWVudCIpOworICAgICAgICAkbWV0aG9kTmFtZSA9ICJlbGVt
ZW50IiBpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkaW50ZXJmYWNlKSBlcSAiSW1wbEVsZW1l
bnRSb290Iik7CisgICAgICAgICRtZXRob2ROYW1lID0gIm93bmVyIiBpZiAoR2V0R2VuZXJhdGVJ
c1JlYWNoYWJsZSgkaW50ZXJmYWNlKSBlcSAiSW1wbE93bmVyUm9vdCIpOworICAgICAgICAkbWV0
aG9kTmFtZSA9ICJvd25lck5vZGUiIGlmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZh
Y2UpIGVxICJJbXBsT3duZXJOb2RlUm9vdCIpOworICAgICAgICAkbWV0aG9kTmFtZSA9ICJiYXNl
IiBpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkaW50ZXJmYWNlKSBlcSAiSW1wbEJhc2VSb290
Iik7CiAKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKICAgICBpZiAoTm9kZSog
b3duZXIgPSBpbXBsLT4ke21ldGhvZE5hbWV9KCkpCkBAIC0yNjgsMzAgKzI2OCwzMCBAQCBzdWIg
R2V0U1ZHUHJvcGVydHlUeXBlcwogc3ViIEdlbmVyYXRlSGVhZGVyCiB7CiAgICAgbXkgJG9iamVj
dCA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2Ug
PSBzaGlmdDsKIAotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOworICAg
IG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKICAgICBteSAkdjhJbnRlcmZh
Y2VOYW1lID0gIlY4JGludGVyZmFjZU5hbWUiOwogCiAgICAgIyBDb3B5IGNvbnRlbnRzIG9mIHBh
cmVudCBpbnRlcmZhY2VzIGV4Y2VwdCB0aGUgZmlyc3QgcGFyZW50LgogICAgIG15IEBwYXJlbnRz
OwotICAgICRjb2RlR2VuZXJhdG9yLT5BZGRNZXRob2RzQ29uc3RhbnRzQW5kQXR0cmlidXRlc0Zy
b21QYXJlbnRJbnRlcmZhY2VzKCRkYXRhTm9kZSwgXEBwYXJlbnRzLCAxKTsKLSAgICAkY29kZUdl
bmVyYXRvci0+TGlua092ZXJsb2FkZWRGdW5jdGlvbnMoJGRhdGFOb2RlKTsKKyAgICAkY29kZUdl
bmVyYXRvci0+QWRkTWV0aG9kc0NvbnN0YW50c0FuZEF0dHJpYnV0ZXNGcm9tUGFyZW50SW50ZXJm
YWNlcygkaW50ZXJmYWNlLCBcQHBhcmVudHMsIDEpOworICAgICRjb2RlR2VuZXJhdG9yLT5MaW5r
T3ZlcmxvYWRlZEZ1bmN0aW9ucygkaW50ZXJmYWNlKTsKIAogICAgICMgRW5zdXJlIHRoZSBJc0RP
TU5vZGVUeXBlIGZ1bmN0aW9uIGlzIGluIHN5bmMuCi0gICAgZGllKCJJc0RPTU5vZGVUeXBlIGlz
IG91dCBvZiBkYXRlIHdpdGggcmVzcGVjdCB0byAkaW50ZXJmYWNlTmFtZSIpIGlmIElzRE9NTm9k
ZVR5cGUoJGludGVyZmFjZU5hbWUpICE9ICRjb2RlR2VuZXJhdG9yLT5Jc1N1YlR5cGUoJGRhdGFO
b2RlLCAiTm9kZSIpOworICAgIGRpZSgiSXNET01Ob2RlVHlwZSBpcyBvdXQgb2YgZGF0ZSB3aXRo
IHJlc3BlY3QgdG8gJGludGVyZmFjZU5hbWUiKSBpZiBJc0RPTU5vZGVUeXBlKCRpbnRlcmZhY2VO
YW1lKSAhPSAkY29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRpbnRlcmZhY2UsICJOb2RlIik7CiAK
LSAgICBteSAkaGFzRGVwZW5kZW50TGlmZXRpbWUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJWOERlcGVuZGVudExpZmV0aW1lIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0KLSAgICAgICAgIHx8IEdldEdlbmVyYXRlSXNSZWFj
aGFibGUoJGRhdGFOb2RlKSB8fCAkdjhJbnRlcmZhY2VOYW1lID1+IC9TVkcvOworICAgIG15ICRo
YXNEZXBlbmRlbnRMaWZldGltZSA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJW
OERlcGVuZGVudExpZmV0aW1lIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkFjdGl2ZURPTU9iamVjdCJ9CisgICAgICAgICB8fCBHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRp
bnRlcmZhY2UpIHx8ICR2OEludGVyZmFjZU5hbWUgPX4gL1NWRy87CiAgICAgaWYgKCEkaGFzRGVw
ZW5kZW50TGlmZXRpbWUpIHsKLSAgICAgICAgZm9yZWFjaCAoQHskZGF0YU5vZGUtPnBhcmVudHN9
KSB7CisgICAgICAgIGZvcmVhY2ggKEB7JGludGVyZmFjZS0+cGFyZW50c30pIHsKICAgICAgICAg
ICAgIG15ICRwYXJlbnQgPSAkXzsKICAgICAgICAgICAgICRoZWFkZXJJbmNsdWRlc3siVjgke3Bh
cmVudH0uaCJ9ID0gMTsKICAgICAgICAgfQogICAgIH0KIAogICAgICMgLSBBZGQgZGVmYXVsdCBo
ZWFkZXIgdGVtcGxhdGUKLSAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0ZUhlYWRlckNv
bnRlbnRIZWFkZXIoJGRhdGFOb2RlKSk7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgR2VuZXJh
dGVIZWFkZXJDb250ZW50SGVhZGVyKCRpbnRlcmZhY2UpKTsKIAogICAgICRoZWFkZXJJbmNsdWRl
c3sid3RmL3RleHQvU3RyaW5nSGFzaC5oIn0gPSAxOwogICAgICRoZWFkZXJJbmNsdWRlc3siV3Jh
cHBlclR5cGVJbmZvLmgifSA9IDE7CkBAIC0zMjUsMTAgKzMyNSwxMCBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcbiIpOwogICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJjbGFzcyBGbG9hdFJlY3Q7XG4iKSBpZiAkc3ZnUHJvcGVydHlUeXBlICYmICRz
dmdQcm9wZXJ0eVR5cGUgZXEgIkZsb2F0UmVjdCI7Ci0gICAgcHVzaChAaGVhZGVyQ29udGVudCwg
ImNsYXNzIERpY3Rpb25hcnk7XG4iKSBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclRl
bXBsYXRlKCRkYXRhTm9kZSwgIkV2ZW50Iik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNs
YXNzIERpY3Rpb25hcnk7XG4iKSBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclRlbXBs
YXRlKCRpbnRlcmZhY2UsICJFdmVudCIpOwogCi0gICAgbXkgJG5hdGl2ZVR5cGUgPSBHZXROYXRp
dmVUeXBlRm9yQ29udmVyc2lvbnMoJGRhdGFOb2RlKTsKLSAgICBpZiAoJGRhdGFOb2RlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9KSB7CisgICAgbXkgJG5hdGl2ZVR5
cGUgPSBHZXROYXRpdmVUeXBlRm9yQ29udmVyc2lvbnMoJGludGVyZmFjZSk7CisgICAgaWYgKCRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZENvbnN0cnVjdG9yIn0pIHsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwogY2xhc3MgVjgke25hdGl2ZVR5cGV9
Q29uc3RydWN0b3IgewogcHVibGljOgpAQCAtMzQ1LDExICszNDUsMTEgQEAgRU5ECiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgY29uc3QgYm9vbCBoYXNEZXBlbmRlbnRMaWZl
dGltZSA9ICIpOwogICAgIGlmICgkaGFzRGVwZW5kZW50TGlmZXRpbWUpIHsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgInRydWU7XG4iKTsKLSAgICB9IGVsc2lmIChAeyRkYXRhTm9kZS0+
cGFyZW50c30pIHsKKyAgICB9IGVsc2lmIChAeyRpbnRlcmZhY2UtPnBhcmVudHN9KSB7CiAgICAg
ICAgICMgRXZlbiBpZiB0aGlzIHR5cGUgZG9lc24ndCBoYXZlIHRoZSBWOERlcGVuZGVudExpZmV0
aW1lIGF0dHJpYnV0ZSBpdHMgcGFyZW50cyBtYXkuCiAgICAgICAgICMgTGV0IHRoZSBjb21waWxl
ciBzdGF0aWNhbGx5IGRldGVybWluZSB0aGlzIGZvciB1cy4KICAgICAgICAgbXkgJHNlcGFyYXRv
ciA9ICIiOwotICAgICAgICBmb3JlYWNoIChAeyRkYXRhTm9kZS0+cGFyZW50c30pIHsKKyAgICAg
ICAgZm9yZWFjaCAoQHskaW50ZXJmYWNlLT5wYXJlbnRzfSkgewogICAgICAgICAgICAgbXkgJHBh
cmVudCA9ICRfOwogICAgICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyJWOCR7cGFyZW50fS5oIn0g
PSAxOwogICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiR7c2VwYXJhdG9yfVY4JHtw
YXJlbnR9OjpoYXNEZXBlbmRlbnRMaWZldGltZSIpOwpAQCAtMzcyLDExICszNzIsMTEgQEAgRU5E
CiAgICAgc3RhdGljIFdyYXBwZXJUeXBlSW5mbyBpbmZvOwogRU5ECiAKLSAgICBpZiAoTmVlZHND
dXN0b21PcGFxdWVSb290Rm9yR0MoJGRhdGFOb2RlKSkgeworICAgIGlmIChOZWVkc0N1c3RvbU9w
YXF1ZVJvb3RGb3JHQygkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHN0YXRpYyB2b2lkKiBvcGFxdWVSb290Rm9yR0Modm9pZCosIHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+KTtcbiIpOwogICAgIH0KIAotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSkgeworICAgIGlmICgkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0pIHsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgQWN0aXZlRE9NT2JqZWN0KiB0b0FjdGl2ZURPTU9i
amVjdCh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+KTtcbiIpOwogICAgIH0KIApAQCAtMzk0LDcgKzM5
NCw3IEBAIEVORAogICAgIH0KIAogICAgIG15IEBlbmFibGVkUGVyQ29udGV4dEZ1bmN0aW9uczsK
LSAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAg
ICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAgICAg
ICAgIG15ICRuYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5hbWU7CiAgICAgICAgIG15ICRh
dHRyRXh0ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlczsKIApAQCAt
NDExLDE0ICs0MTEsMTQgQEAgRU5ECiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoSXNDb25z
dHJ1Y3RhYmxlKCRkYXRhTm9kZSkpIHsKKyAgICBpZiAoSXNDb25zdHJ1Y3RhYmxlKCRpbnRlcmZh
Y2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKICAgICBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYpOwogRU5ECiAgICAgfQogCiAgICAgbXkgQGVuYWJsZWRQZXJDb250ZXh0QXR0cmlidXRl
czsKLSAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1dGVzfSkg
eworICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfSkg
ewogICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKICAgICAg
ICAgbXkgJGF0dHJFeHQgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
czsKICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVy
YXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKQEAgLTQ0NSwxMSAr
NDQ1LDExIEBAIEVORAogICAgICAgICB9CiAgICAgfQogCi0gICAgR2VuZXJhdGVIZWFkZXJOYW1l
ZEFuZEluZGV4ZWRQcm9wZXJ0eUFjY2Vzc29ycygkZGF0YU5vZGUpOwotICAgIEdlbmVyYXRlSGVh
ZGVyQ3VzdG9tQ2FsbCgkZGF0YU5vZGUpOwotICAgIEdlbmVyYXRlSGVhZGVyQ3VzdG9tSW50ZXJu
YWxGaWVsZEluZGljZXMoJGRhdGFOb2RlKTsKKyAgICBHZW5lcmF0ZUhlYWRlck5hbWVkQW5kSW5k
ZXhlZFByb3BlcnR5QWNjZXNzb3JzKCRpbnRlcmZhY2UpOworICAgIEdlbmVyYXRlSGVhZGVyQ3Vz
dG9tQ2FsbCgkaW50ZXJmYWNlKTsKKyAgICBHZW5lcmF0ZUhlYWRlckN1c3RvbUludGVybmFsRmll
bGRJbmRpY2VzKCRpbnRlcmZhY2UpOwogCi0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkNoZWNrU2VjdXJpdHkifSkgeworICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsIDw8RU5EKTsKICAgICBzdGF0aWMgYm9vbCBuYW1lZFNlY3VyaXR5Q2hlY2sodjg6Okxv
Y2FsPHY4OjpPYmplY3Q+IGhvc3QsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGtleSwgdjg6OkFjY2Vz
c1R5cGUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGRhdGEpOwogICAgIHN0YXRpYyBib29sIGluZGV4
ZWRTZWN1cml0eUNoZWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBob3N0LCB1aW50MzJfdCBpbmRl
eCwgdjg6OkFjY2Vzc1R5cGUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGRhdGEpOwpAQCAtNDk1LDE2
ICs0OTUsMTYgQEAgRU5ECiBwcml2YXRlOgogRU5ECiAKLSAgICBpZiAoSXNDb25zdHJ1Y3RhYmxl
KCRkYXRhTm9kZSkgJiYgQHskZGF0YU5vZGUtPmNvbnN0cnVjdG9yc30gPiAxKSB7Ci0gICAgICAg
IGZvciAobXkgJGkgPSAxOyAkaSA8PSBAeyRkYXRhTm9kZS0+Y29uc3RydWN0b3JzfTsgJGkrKykg
eworICAgIGlmIChJc0NvbnN0cnVjdGFibGUoJGludGVyZmFjZSkgJiYgQHskaW50ZXJmYWNlLT5j
b25zdHJ1Y3RvcnN9ID4gMSkgeworICAgICAgICBmb3IgKG15ICRpID0gMTsgJGkgPD0gQHskaW50
ZXJmYWNlLT5jb25zdHJ1Y3RvcnN9OyAkaSsrKSB7CiAgICAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsIDw8RU5EKTsKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbnN0cnVj
dG9yJHtpfUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmKTsKIEVORAogICAgICAgICB9CiAg
ICAgfQogCi0gICAgbXkgJG5vVG9WOCA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlN1cHByZXNzVG9KU09iamVjdCJ9OwotICAgIG15ICRub1dyYXAgPSAkZGF0YU5vZGUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJWOE5vV3JhcHBlckNhY2hlIn0gfHwgJG5vVG9WODsKKyAgICBteSAk
bm9Ub1Y4ID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN1cHByZXNzVG9KU09i
amVjdCJ9OworICAgIG15ICRub1dyYXAgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiVjhOb1dyYXBwZXJDYWNoZSJ9IHx8ICRub1RvVjg7CiAgICAgaWYgKCEkbm9XcmFwKSB7CiAg
ICAgICAgIG15ICRjcmVhdGVXcmFwcGVyQXJndW1lbnRUeXBlID0gR2V0UGFzc1JlZlB0clR5cGUo
JG5hdGl2ZVR5cGUpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7CkBAIC01
MTgsNyArNTE4LDcgQEAgRU5ECiAKIEVORAogCi0gICAgbXkgJGN1c3RvbVdyYXAgPSAhISgkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Ub0pTT2JqZWN0In0gb3IgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhDdXN0b21Ub0pTT2JqZWN0In0pOworICAgIG15
ICRjdXN0b21XcmFwID0gISEoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bVRvSlNPYmplY3QifSBvciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhDdXN0
b21Ub0pTT2JqZWN0In0pOwogICAgIGlmICgkbm9Ub1Y4KSB7CiAgICAgICAgIGRpZSAiQ2FuJ3Qg
c3VwcHJlc3MgdG9WOCBmb3Igc3ViY2xhc3NcbiIgaWYgQHBhcmVudHM7CiAgICAgfSBlbHNpZiAo
JG5vV3JhcCkgewpAQCAtNTM0LDcgKzUzNCw3IEBAIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdG9WOEZhc3QoJHtuYXRpdmVUeXBlfSogaW1wbCwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mCiBF
TkQKICAgICB9IGVsc2UgewogCi0gICAgICAgIG15ICRnZXRDYWNoZWRXcmFwcGVyID0gJGNvZGVH
ZW5lcmF0b3ItPklzU3ViVHlwZSgkZGF0YU5vZGUsICJOb2RlIikgPyAiVjhET01XcmFwcGVyOjpn
ZXRDYWNoZWRXcmFwcGVyKGltcGwpIiA6ICJET01EYXRhU3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSkt
PmdldChpbXBsKSI7CisgICAgICAgIG15ICRnZXRDYWNoZWRXcmFwcGVyID0gJGNvZGVHZW5lcmF0
b3ItPklzU3ViVHlwZSgkaW50ZXJmYWNlLCAiTm9kZSIpID8gIlY4RE9NV3JhcHBlcjo6Z2V0Q2Fj
aGVkV3JhcHBlcihpbXBsKSIgOiAiRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5nZXQo
aW1wbCkiOwogICAgICAgICBteSAkY3JlYXRlV3JhcHBlckNhbGwgPSAkY3VzdG9tV3JhcCA/ICIk
e3Y4SW50ZXJmYWNlTmFtZX06OndyYXAiIDogIiR7djhJbnRlcmZhY2VOYW1lfTo6Y3JlYXRlV3Jh
cHBlciI7CiAKICAgICAgICAgaWYgKCRjdXN0b21XcmFwKSB7CkBAIC01NzYsNyArNTc2LDcgQEAg
aW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KCR7bmF0aXZlVHlwZX0qIGltcGwsIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gY3IKICAgICByZXR1cm4gd3JhcChpbXBsLCBjcmVhdGlvbkNv
bnRleHQsIGlzb2xhdGUpOwogfQogRU5ECi0gICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNT
dWJUeXBlKCRkYXRhTm9kZSwgIk5vZGUiKSkgeworICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3It
PklzU3ViVHlwZSgkaW50ZXJmYWNlLCAiTm9kZSIpKSB7CiAgICAgICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCA8PEVORCk7CiAKIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOEZh
c3QoJHtuYXRpdmVUeXBlfSogaW1wbCwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbywgTm9k
ZSogaG9sZGVyKQpAQCAtNjA0LDMxICs2MDQsMzEgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiB0b1Y4KFBhc3NSZWZQdHI8ICR7bmF0aXZlVHlwZX0gPiBpbXBsLCB2ODo6SGFuZGxlPHYK
IH0KIEVORAogCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVGVtcGxhdGUo
JGRhdGFOb2RlLCAiRXZlbnQiKSkgeworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1
Y3RvclRlbXBsYXRlKCRpbnRlcmZhY2UsICJFdmVudCIpKSB7CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICJcbmJvb2wgZmlsbCR7aW50ZXJmYWNlTmFtZX1Jbml0KCR7aW50ZXJmYWNlTmFt
ZX1Jbml0JiwgY29uc3QgRGljdGlvbmFyeSYpO1xuIik7CiAgICAgfQogCiAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIlxufVxuXG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2VuZGlm
IC8vICR2OEludGVyZmFjZU5hbWUiIC4gIl9oXG4iKTsKIAotICAgIG15ICRjb25kaXRpb25hbFN0
cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRkYXRhTm9k
ZSk7CisgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRl
Q29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSk7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4iKSBpZiAkY29uZGl0aW9uYWxTdHJp
bmc7CiB9CiAKIHN1YiBHZXRJbnRlcm5hbEZpZWxkcwogewotICAgIG15ICRkYXRhTm9kZSA9IHNo
aWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAogICAgIG15IEBjdXN0b21JbnRlcm5h
bEZpZWxkcyA9ICgpOwogICAgICMgV2UgY2FuJ3QgYXNrIHdoZXRoZXIgYSBwYXJlbnQgdHlwZSBo
YXMgYSBnaXZlbiBleHRlbmRlZEF0dHJpYnV0ZSwKICAgICAjIHNvIHNwZWNpYWwtY2FzZSBBYnN0
cmFjdFdvcmtlciBhbmQgV29ya2VyQ29udGV4dCB0byBpbmNsdWRlIGFsbCBzdWItdHlwZXMuCiAg
ICAgIyBFdmVudCBsaXN0ZW5lcnMgb24gRE9NIG5vZGVzIGFyZSBleHBsaWNpdGx5IHN1cHBvcnRl
ZCBpbiB0aGUgR0MgY29udHJvbGxlci4KICAgICAjIEZJWE1FOiBTaW1wbGlmeSB0aGlzIHdoZW4g
YWxsIEV2ZW50VGFyZ2V0cyBhcmUgc3VidHlwZXMgb2YgRXZlbnRUYXJnZXQuCi0gICAgaWYgKCEk
Y29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRkYXRhTm9kZSwgIk5vZGUiKQotICAgICAgICAmJiAo
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXZlbnRUYXJnZXQifQotICAgICAgICAg
ICAgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSXNXb3JrZXJDb250ZXh0In0K
LSAgICAgICAgICAgIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1N1YlR5cGUoJGRhdGFOb2RlLCAiQWJz
dHJhY3RXb3JrZXIiKQotICAgICAgICAgICAgfHwgJGNvZGVHZW5lcmF0b3ItPklzU3ViVHlwZSgk
ZGF0YU5vZGUsICJFdmVudFRhcmdldCIpKSkgeworICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPklz
U3ViVHlwZSgkaW50ZXJmYWNlLCAiTm9kZSIpCisgICAgICAgICYmICgkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiRXZlbnRUYXJnZXQifQorICAgICAgICAgICAgfHwgJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklzV29ya2VyQ29udGV4dCJ9CisgICAgICAgICAgICB8
fCAkY29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRpbnRlcmZhY2UsICJBYnN0cmFjdFdvcmtlciIp
CisgICAgICAgICAgICB8fCAkY29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRpbnRlcmZhY2UsICJF
dmVudFRhcmdldCIpKSkgewogICAgICAgICBwdXNoKEBjdXN0b21JbnRlcm5hbEZpZWxkcywgImV2
ZW50TGlzdGVuZXJDYWNoZUluZGV4Iik7CiAgICAgfQogCkBAIC02NDgsOCArNjQ4LDggQEAgc3Vi
IEdldEhlYWRlckNsYXNzSW5jbHVkZQogCiBzdWIgR2VuZXJhdGVIZWFkZXJDdXN0b21JbnRlcm5h
bEZpZWxkSW5kaWNlcwogewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIG15IEBjdXN0
b21JbnRlcm5hbEZpZWxkcyA9IEdldEludGVybmFsRmllbGRzKCRkYXRhTm9kZSk7CisgICAgbXkg
JGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15IEBjdXN0b21JbnRlcm5hbEZpZWxkcyA9IEdldElu
dGVybmFsRmllbGRzKCRpbnRlcmZhY2UpOwogICAgIG15ICRjdXN0b21GaWVsZENvdW50ZXIgPSAw
OwogICAgIGZvcmVhY2ggbXkgJGN1c3RvbUludGVybmFsRmllbGQgKEBjdXN0b21JbnRlcm5hbEZp
ZWxkcykgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7CkBAIC02NzEsMTQg
KzY3MSwxNCBAQCBteSAlaW5kZXhlclNwZWNpYWxDYXNlcyA9ICgKIAogc3ViIEdlbmVyYXRlSGVh
ZGVyTmFtZWRBbmRJbmRleGVkUHJvcGVydHlBY2Nlc3NvcnMKIHsKLSAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKLSAgICBt
eSAkaGFzQ3VzdG9tSW5kZXhlZEdldHRlciA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkluZGV4ZWRHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
dXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QifTsKLSAgICBteSAkaGFzQ3VzdG9tSW5kZXhlZFNldHRl
ciA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIi
fSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTnVtZXJpY0luZGV4ZWRHZXR0
ZXIifTsKLSAgICBteSAkaGFzQ3VzdG9tTmFtZWRHZXR0ZXIgPSAkZGF0YU5vZGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJOYW1lZEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbU5hbWVkR2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90In07Ci0gICAgbXkgJGhhc0N1c3RvbU5hbWVk
U2V0dGVyID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRTZXR0
ZXIifTsKLSAgICBteSAkaGFzQ3VzdG9tRGVsZXRlcnMgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDdXN0b21EZWxldGVQcm9wZXJ0eSJ9OwotICAgIG15ICRoYXNDdXN0b21FbnVt
ZXJhdG9yID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRW51bWVyYXRl
UHJvcGVydHkifTsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFj
ZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOworICAgIG15ICRoYXNDdXN0b21JbmRleGVkR2V0dGVy
ID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkluZGV4ZWRHZXR0ZXIifSB8fCAk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90
In07CisgICAgbXkgJGhhc0N1c3RvbUluZGV4ZWRTZXR0ZXIgPSAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9ICYmICEkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiTnVtZXJpY0luZGV4ZWRHZXR0ZXIifTsKKyAgICBteSAkaGFzQ3Vz
dG9tTmFtZWRHZXR0ZXIgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRH
ZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRH
ZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3du
UHJvcGVydHlTbG90In07CisgICAgbXkgJGhhc0N1c3RvbU5hbWVkU2V0dGVyID0gJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkU2V0dGVyIn07CisgICAgbXkgJGhh
c0N1c3RvbURlbGV0ZXJzID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bURlbGV0ZVByb3BlcnR5In07CisgICAgbXkgJGhhc0N1c3RvbUVudW1lcmF0b3IgPSAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRW51bWVyYXRlUHJvcGVydHkifTsKICAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkhUTUxPcHRpb25zQ29sbGVjdGlvbiIpIHsKICAgICAg
ICAgJGludGVyZmFjZU5hbWUgPSAiSFRNTENvbGxlY3Rpb24iOwogICAgICAgICAkaGFzQ3VzdG9t
SW5kZXhlZEdldHRlciA9IDE7CkBAIC03MzgsMTYgKzczOCwxNiBAQCBFTkQKIAogc3ViIEdlbmVy
YXRlSGVhZGVyQ3VzdG9tQ2FsbAogewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15
ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAotICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJDdXN0b21DYWxsIn0pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbUNhbGwifSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2FsbEFzRnVuY3Rpb25DYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJik7XG4iKTsKICAgICB9Ci0gICAgaWYgKCRkYXRhTm9kZS0+bmFt
ZSBlcSAiRXZlbnQiKSB7CisgICAgaWYgKCRpbnRlcmZhY2UtPm5hbWUgZXEgIkV2ZW50Iikgewog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gZGF0YVRyYW5zZmVyQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5h
bWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIHN0YXRpYyB2b2lkIHZhbHVlQWNjZXNzb3JTZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+LCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJik7XG4iKTsKICAgICB9Ci0gICAgaWYgKCRkYXRhTm9kZS0+bmFtZSBlcSAiTG9jYXRpb24i
KSB7CisgICAgaWYgKCRpbnRlcmZhY2UtPm5hbWUgZXEgIkxvY2F0aW9uIikgewogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXNz
aWduQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpB
Y2Nlc3NvckluZm8mKTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gcmVsb2FkQWNjZXNzb3JHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mKTtcbiIpOwogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
cmVwbGFjZUFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJik7XG4iKTsKQEAgLTc1Niw5ICs3NTYsOSBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXJDdXN0b21DYWxsCiAKIHN1YiBJc0NvbnN0cnVjdGFibGUKIHsKLSAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSB8fCAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOEN1c3RvbUNvbnN0cnVjdG9yIn0gfHwgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclRlbXBsYXRlIn07CisgICAgcmV0dXJu
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Db25zdHJ1Y3RvciJ9IHx8
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOEN1c3RvbUNvbnN0cnVjdG9yIn0g
fHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0gfHwgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yVGVtcGxhdGUifTsKIH0K
IAogc3ViIElzUmVhZG9ubHkKQEAgLTgzNiw4ICs4MzYsOCBAQCBFTkQKIAogc3ViIEdlbmVyYXRl
Q29uc3RydWN0b3JHZXR0ZXIKIHsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAk
aW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hp
ZnQ7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwogCiAgICAgcHVz
aChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiAke2ludGVyZmFjZU5hbWV9Q29uc3RydWN0b3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCkBAIC04NjgsOSArODY4LDkgQEAg
c3ViIEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0aW9uCiBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyR2V0
dGVyCiB7CiAgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNo
aWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAotICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+
bmFtZTsKICAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gIlY4JGludGVyZmFjZU5hbWUiOwogICAg
IG15ICRhdHRyRXh0ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXM7
CiAgICAgbXkgJGF0dHJOYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwpAQCAtOTI4
LDcgKzkyOCw3IEBAIEVORAogICAgIH0gZWxzZSB7CiAgICAgICAgIG15ICRyZWZsZWN0ID0gJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVmbGVjdCJ9OwogICAg
ICAgICBteSAkdXJsID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiVVJMIn07Ci0gICAgICAgIGlmICgkZ2V0dGVyU3RyaW5nVXNlc0ltcCAmJiAkcmVmbGVjdCAm
JiAhJHVybCAmJiAkY29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRkYXRhTm9kZSwgIk5vZGUiKSAm
JiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhdHRyVHlwZSkpIHsKKyAgICAgICAgaWYg
KCRnZXR0ZXJTdHJpbmdVc2VzSW1wICYmICRyZWZsZWN0ICYmICEkdXJsICYmICRjb2RlR2VuZXJh
dG9yLT5Jc1N1YlR5cGUoJGludGVyZmFjZSwgIk5vZGUiKSAmJiAkY29kZUdlbmVyYXRvci0+SXNT
dHJpbmdUeXBlKCRhdHRyVHlwZSkpIHsKICAgICAgICAgICAgICMgR2VuZXJhdGUgc3VwZXItY29t
cGFjdCBjYWxsIGZvciByZWd1bGFyIGF0dHJpYnV0ZSBnZXR0ZXI6CiAgICAgICAgICAgICBteSAk
Y29udGVudEF0dHJpYnV0ZU5hbWUgPSAkcmVmbGVjdCBlcSAiVkFMVUVfSVNfTUlTU0lORyIgPyBs
YyAkYXR0ck5hbWUgOiAkcmVmbGVjdDsKICAgICAgICAgICAgIG15ICRuYW1lc3BhY2UgPSAkY29k
ZUdlbmVyYXRvci0+TmFtZXNwYWNlRm9yQXR0cmlidXRlTmFtZSgkaW50ZXJmYWNlTmFtZSwgJGNv
bnRlbnRBdHRyaWJ1dGVOYW1lKTsKQEAgLTk4OSw3ICs5ODksNyBAQCBFTkQKICAgICB9CiAKICAg
ICBteSAkcmVzdWx0OwotICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIkV2
ZW50TGlzdGVuZXIiICYmICRkYXRhTm9kZS0+bmFtZSBlcSAiRE9NV2luZG93IikgeworICAgIGlm
ICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgZXEgIkV2ZW50TGlzdGVuZXIiICYmICRpbnRl
cmZhY2UtPm5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICBpZiAoIWltcC0+ZG9jdW1lbnQoKSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTtcbiIpOwogICAgIH0K
QEAgLTEwMjAsNyArMTAyMCw3IEBAIEVORAogICAgICMgU3BlY2lhbCBjYXNlIGZvciByZWFkb25s
eSBvciBSZXBsYWNlYWJsZSBhdHRyaWJ1dGVzICh3aXRoIGEgZmV3IGV4Y2VwdGlvbnMpLiBUaGlz
IGF0dGVtcHRzIHRvIGVuc3VyZSB0aGF0IEpTIHdyYXBwZXJzIGRvbid0IGdldAogICAgICMgZ2Fy
YmFnZS1jb2xsZWN0ZWQgcHJlbWF0dXJlbHkgd2hlbiB0aGVpciBsaWZldGltZSBpcyBzdHJvbmds
eSB0aWVkIHRvIHRoZWlyIG93bmVyLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnkgaW5zZXJ0aW5nIGEg
cmVmZXJlbmNlIHRvCiAgICAgIyB0aGUgbmV3bHkgY3JlYXRlZCB3cmFwcGVyIGludG8gYW4gaW50
ZXJuYWwgZmllbGQgb2YgdGhlIGhvbGRlciBvYmplY3QuCi0gICAgaWYgKCEkY29kZUdlbmVyYXRv
ci0+SXNTdWJUeXBlKCRkYXRhTm9kZSwgIk5vZGUiKSAmJiAkYXR0ck5hbWUgbmUgInNlbGYiICYm
IElzV3JhcHBlclR5cGUoJHJldHVyblR5cGUpICYmIChJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpIHx8
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxl
In0gfHwgJGF0dHJOYW1lIGVxICJsb2NhdGlvbiIpCisgICAgaWYgKCEkY29kZUdlbmVyYXRvci0+
SXNTdWJUeXBlKCRpbnRlcmZhY2UsICJOb2RlIikgJiYgJGF0dHJOYW1lIG5lICJzZWxmIiAmJiBJ
c1dyYXBwZXJUeXBlKCRyZXR1cm5UeXBlKSAmJiAoSXNSZWFkb25seSgkYXR0cmlidXRlKSB8fCAk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBsYWNlYWJsZSJ9
IHx8ICRhdHRyTmFtZSBlcSAibG9jYXRpb24iKQogICAgICAgICAmJiAkcmV0dXJuVHlwZSBuZSAi
RXZlbnRUYXJnZXQiICYmICRyZXR1cm5UeXBlIG5lICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiICYm
ICRyZXR1cm5UeXBlIG5lICJET01XaW5kb3ciIAogICAgICAgICAmJiAkcmV0dXJuVHlwZSBuZSAi
TWVzc2FnZVBvcnRBcnJheSIKICAgICAgICAgJiYgJHJldHVyblR5cGUgIX4gL1NWRy8gJiYgJHJl
dHVyblR5cGUgIX4gL0hUTUwvICYmICFJc0RPTU5vZGVUeXBlKCRyZXR1cm5UeXBlKSkgewpAQCAt
MTEyOCwxNyArMTEyOCwxNyBAQCBFTkQKIAogc3ViIEdlbmVyYXRlUmVwbGFjZWFibGVBdHRyU2V0
dGVyCiB7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZU5hbWUg
PSAkZGF0YU5vZGUtPm5hbWU7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRp
bnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKIAogICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsIDw8RU5EKTsKIHN0YXRpYyB2b2lkICR7aW50ZXJmYWNlTmFtZX1SZXBsYWNlYWJsZUF0
dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFUUygi
RE9NLiRpbnRlcmZhY2VOYW1lLnJlcGxhY2VhYmxlLl9zZXQiKTsKIEVORAotICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsIEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0aW9uKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlY4TWVhc3VyZUFzIn0pKTsKKyAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiVjhNZWFzdXJlQXMifSkpOwogCi0gICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVx
ICJET01XaW5kb3ciIHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNrU2Vj
dXJpdHkifSkgeworICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IiB8fCAkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9KSB7CiAgICAgICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJGcmFtZS5oIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsIDw8RU5EKTsKICAgICAke2ludGVyZmFjZU5hbWV9KiBpbXAgPSBWOCR7aW50ZXJmYWNl
TmFtZX06OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAtMTE1Nyw5ICsxMTU3LDkgQEAgRU5E
CiBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyU2V0dGVyCiB7CiAgICAgbXkgJGF0dHJpYnV0ZSA9IHNo
aWZ0OwotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlm
dDsKIAotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRp
bnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKICAgICBteSAkdjhJbnRlcmZhY2VOYW1l
ID0gIlY4JGludGVyZmFjZU5hbWUiOwogICAgIG15ICRhdHRyTmFtZSA9ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZTsKICAgICBteSAkYXR0ckV4dCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzOwpAQCAtMTIxMCw3ICsxMjEwLDcgQEAgRU5ECiAgICAgfSBlbHNl
IHsKICAgICAgICAgbXkgJGF0dHJUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOwog
ICAgICAgICBteSAkcmVmbGVjdCA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IlJlZmxlY3QifTsKLSAgICAgICAgaWYgKCRyZWZsZWN0ICYmICRjb2RlR2VuZXJh
dG9yLT5Jc1N1YlR5cGUoJGRhdGFOb2RlLCAiTm9kZSIpICYmICRjb2RlR2VuZXJhdG9yLT5Jc1N0
cmluZ1R5cGUoJGF0dHJUeXBlKSkgeworICAgICAgICBpZiAoJHJlZmxlY3QgJiYgJGNvZGVHZW5l
cmF0b3ItPklzU3ViVHlwZSgkaW50ZXJmYWNlLCAiTm9kZSIpICYmICRjb2RlR2VuZXJhdG9yLT5J
c1N0cmluZ1R5cGUoJGF0dHJUeXBlKSkgewogICAgICAgICAgICAgIyBHZW5lcmF0ZSBzdXBlci1j
b21wYWN0IGNhbGwgZm9yIHJlZ3VsYXIgYXR0cmlidXRlIHNldHRlcjoKICAgICAgICAgICAgIG15
ICRjb250ZW50QXR0cmlidXRlTmFtZSA9ICRyZWZsZWN0IGVxICJWQUxVRV9JU19NSVNTSU5HIiA/
IGxjICRhdHRyTmFtZSA6ICRyZWZsZWN0OwogICAgICAgICAgICAgbXkgJG5hbWVzcGFjZSA9ICRj
b2RlR2VuZXJhdG9yLT5OYW1lc3BhY2VGb3JBdHRyaWJ1dGVOYW1lKCRpbnRlcmZhY2VOYW1lLCAk
Y29udGVudEF0dHJpYnV0ZU5hbWUpOwpAQCAtMTIzMyw3ICsxMjMzLDcgQEAgRU5ECiAKICAgICBt
eSAkbmF0aXZlVHlwZSA9IEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZSwgMCk7CiAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSBlcSAiRXZl
bnRMaXN0ZW5lciIpIHsKLSAgICAgICAgaWYgKCRkYXRhTm9kZS0+bmFtZSBlcSAiRE9NV2luZG93
IikgeworICAgICAgICBpZiAoJGludGVyZmFjZS0+bmFtZSBlcSAiRE9NV2luZG93IikgewogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICBpZiAoIWltcC0+ZG9jdW1lbnQo
KSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgcmV0
dXJuO1xuIik7CiAgICAgICAgIH0KQEAgLTEyNjksNyArMTI2OSw3IEBAIEVORAogICAgICAgICBp
ZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlIGVxICJFdmVudExpc3RlbmVyIikgewogICAg
ICAgICAgICAgbXkgJGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUgPSAkY29kZUdlbmVyYXRvci0+V0tf
dWNmaXJzdCgkYXR0ck5hbWUpOwogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QWJz
dHJhY3RFdmVudExpc3RlbmVyLmgiKTsKLSAgICAgICAgICAgIGlmICghJGNvZGVHZW5lcmF0b3It
PklzU3ViVHlwZSgkZGF0YU5vZGUsICJOb2RlIikpIHsKKyAgICAgICAgICAgIGlmICghJGNvZGVH
ZW5lcmF0b3ItPklzU3ViVHlwZSgkaW50ZXJmYWNlLCAiTm9kZSIpKSB7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB0cmFuc2ZlckhpZGRlbkRlcGVuZGVuY3ko
aW5mby5Ib2xkZXIoKSwgaW1wLT4kYXR0ck5hbWUoKSwgdmFsdWUsICR7djhJbnRlcmZhY2VOYW1l
fTo6ZXZlbnRMaXN0ZW5lckNhY2hlSW5kZXgpO1xuIik7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQiIGFuZCAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPm5hbWUgZXEgIm9uZXJyb3IiKSB7CkBAIC0xNDU4LDggKzE0NTgsOCBAQCBz
dWIgR2VuZXJhdGVGdW5jdGlvblBhcmFtZXRlcnNDaGVjawogc3ViIEdlbmVyYXRlT3ZlcmxvYWRl
ZEZ1bmN0aW9uQ2FsbGJhY2sKIHsKICAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKLSAgICBteSAk
ZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFt
ZTsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAk
aW50ZXJmYWNlLT5uYW1lOwogCiAgICAgIyBHZW5lcmF0ZSBjb2RlIGZvciBjaG9vc2luZyB0aGUg
Y29ycmVjdCBvdmVybG9hZCB0byBjYWxsLiBPdmVybG9hZHMgYXJlCiAgICAgIyBjaG9zZW4gYmFz
ZWQgb24gdGhlIHRvdGFsIG51bWJlciBvZiBhcmd1bWVudHMgcGFzc2VkIGFuZCB0aGUgdHlwZSBv
ZgpAQCAtMTQ5OCw5ICsxNDk4LDkgQEAgRU5ECiBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxiYWNr
CiB7CiAgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7
CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwogCi0gICAgbXkgJGludGVyZmFjZU5hbWUgPSAk
ZGF0YU5vZGUtPm5hbWU7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1l
OwogICAgIG15ICR2OEludGVyZmFjZU5hbWUgPSAiVjgkaW50ZXJmYWNlTmFtZSI7CiAgICAgbXkg
JG5hbWUgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKIApAQCAtMTUxMywxMCArMTUxMywx
MCBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxiYWNrCiAgICAgIyBidXQgdGhleSBhcmUgZXh0
cmVtZWx5IGNvbnNpc3RlbnQgYWNyb3NzIHRoZSB2YXJpb3VzIGludGVyZmFjZXMgdGhhdCB0YWtl
IGV2ZW50IGxpc3RlbmVycywKICAgICAjIHNvIHdlIGNhbiBnZW5lcmF0ZSB0aGVtIGFzIGEgInNw
ZWNpYWwgY2FzZSIuCiAgICAgaWYgKCRuYW1lIGVxICJhZGRFdmVudExpc3RlbmVyIikgewotICAg
ICAgICBHZW5lcmF0ZUV2ZW50TGlzdGVuZXJDYWxsYmFjaygkaW50ZXJmYWNlTmFtZSwgISRjb2Rl
R2VuZXJhdG9yLT5Jc1N1YlR5cGUoJGRhdGFOb2RlLCAiTm9kZSIpLCAiYWRkIik7CisgICAgICAg
IEdlbmVyYXRlRXZlbnRMaXN0ZW5lckNhbGxiYWNrKCRpbnRlcmZhY2VOYW1lLCAhJGNvZGVHZW5l
cmF0b3ItPklzU3ViVHlwZSgkaW50ZXJmYWNlLCAiTm9kZSIpLCAiYWRkIik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9IGVsc2lmICgkbmFtZSBlcSAicmVtb3ZlRXZlbnRMaXN0ZW5lciIpIHsKLSAg
ICAgICAgR2VuZXJhdGVFdmVudExpc3RlbmVyQ2FsbGJhY2soJGludGVyZmFjZU5hbWUsICEkY29k
ZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRkYXRhTm9kZSwgIk5vZGUiKSwgInJlbW92ZSIpOworICAg
ICAgICBHZW5lcmF0ZUV2ZW50TGlzdGVuZXJDYWxsYmFjaygkaW50ZXJmYWNlTmFtZSwgISRjb2Rl
R2VuZXJhdG9yLT5Jc1N1YlR5cGUoJGludGVyZmFjZSwgIk5vZGUiKSwgInJlbW92ZSIpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNTI5LDkgKzE1MjksOSBAQCBzdGF0aWMgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+ICR7bmFtZX1DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQogRU5ECiAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2
YXRpb24oJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOE1lYXN1
cmVBcyJ9KSk7CiAKLSAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUFyZ3VtZW50
c0NvdW50Q2hlY2soJGZ1bmN0aW9uLCAkZGF0YU5vZGUpKTsKKyAgICBwdXNoKEBpbXBsQ29udGVu
dERlY2xzLCBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soJGZ1bmN0aW9uLCAkaW50ZXJmYWNl
KSk7CiAKLSAgICBpZiAoJG5hbWUgZXEgInNldCIgYW5kICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IlR5cGVkQXJyYXkifSkgeworICAgIGlmICgkbmFtZSBlcSAic2V0IiBhbmQgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlR5cGVkQXJyYXkifSkgewogICAgICAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uaCIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7CiAgICAgcmV0dXJuIHNldFdlYkdMQXJyYXlI
ZWxwZXI8JGludGVyZmFjZU5hbWUsICR7djhJbnRlcmZhY2VOYW1lfT4oYXJncyk7CkBAIC0xNTYz
LDcgKzE1NjMsNyBAQCBFTkQKICAgICB9CiAKICAgICAjIENoZWNrIGRvbWFpbiBzZWN1cml0eSBp
ZiBuZWVkZWQKLSAgICBpZiAoKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNoZWNr
U2VjdXJpdHkifQorICAgIGlmICgoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNo
ZWNrU2VjdXJpdHkifQogICAgICAgICB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikK
ICAgICAgICAgJiYgISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RG9Ob3RDaGVja1NlY3VyaXR5In0pIHsKICAgICAgICAgIyBXZSBoYXZlIG5vdCBmaW5kIHJlYWwg
dXNlIGNhc2VzIHlldC4KQEAgLTE2NTIsNyArMTY1Miw3IEBAIHN1YiBHZW5lcmF0ZUNhbGxXaXRo
CiBzdWIgR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrCiB7CiAgICAgbXkgJGZ1bmN0aW9uID0g
c2hpZnQ7Ci0gICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFjZSA9IHNo
aWZ0OwogCiAgICAgbXkgJG51bU1hbmRhdG9yeVBhcmFtcyA9IDA7CiAgICAgbXkgJGFsbG93Tm9u
T3B0aW9uYWwgPSAxOwpAQCAtMTg0OCw4ICsxODQ4LDggQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVy
c0NoZWNrCiAKIHN1YiBHZW5lcmF0ZU92ZXJsb2FkZWRDb25zdHJ1Y3RvckNhbGxiYWNrCiB7Ci0g
ICAgbXkgJGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZU5hbWUgPSAkZGF0YU5v
ZGUtPm5hbWU7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gJGludGVyZmFjZS0+bmFtZTsKIAogICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7
CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjgke2ludGVyZmFjZU5hbWV9Ojpjb25zdHJ1Y3RvckNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkBAIC0xODY0LDcgKzE4NjQsNyBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjgke2ludGVyZmFjZU5hbWV9Ojpjb25zdHJ1Y3RvckNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudAogRU5ECiAKICAgICBteSAkbGVhc3ROdW1NYW5kYXRvcnlQ
YXJhbXMgPSAyNTU7Ci0gICAgZm9yZWFjaCBteSAkY29uc3RydWN0b3IgKEB7JGRhdGFOb2RlLT5j
b25zdHJ1Y3RvcnN9KSB7CisgICAgZm9yZWFjaCBteSAkY29uc3RydWN0b3IgKEB7JGludGVyZmFj
ZS0+Y29uc3RydWN0b3JzfSkgewogICAgICAgICBteSAkbmFtZSA9ICJjb25zdHJ1Y3RvciIgLiAk
Y29uc3RydWN0b3ItPntvdmVybG9hZGVkSW5kZXh9IC4gIkNhbGxiYWNrIjsKICAgICAgICAgbXkg
KCRudW1NYW5kYXRvcnlQYXJhbXMsICRwYXJhbWV0ZXJzQ2hlY2spID0gR2VuZXJhdGVGdW5jdGlv
blBhcmFtZXRlcnNDaGVjaygkY29uc3RydWN0b3IpOwogICAgICAgICAkbGVhc3ROdW1NYW5kYXRv
cnlQYXJhbXMgPSAkbnVtTWFuZGF0b3J5UGFyYW1zIGlmICgkbnVtTWFuZGF0b3J5UGFyYW1zIDwg
JGxlYXN0TnVtTWFuZGF0b3J5UGFyYW1zKTsKQEAgLTE4ODMsMTcgKzE4ODMsMTcgQEAgRU5ECiAK
IHN1YiBHZW5lcmF0ZVNpbmdsZUNvbnN0cnVjdG9yQ2FsbGJhY2sKIHsKLSAgICBteSAkZGF0YU5v
ZGUgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAgbXkgJGZ1bmN0aW9u
ID0gc2hpZnQ7CiAKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAg
ICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAgICAgbXkgJG92ZXJsb2Fk
ZWRJbmRleFN0cmluZyA9ICIiOwogICAgIGlmICgkZnVuY3Rpb24tPntvdmVybG9hZGVkSW5kZXh9
ID4gMCkgewogICAgICAgICAkb3ZlcmxvYWRlZEluZGV4U3RyaW5nIC49ICRmdW5jdGlvbi0+e292
ZXJsb2FkZWRJbmRleH07CiAgICAgfQogCiAgICAgbXkgJHJhaXNlc0V4Y2VwdGlvbnMgPSBAeyRm
dW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc307Ci0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uIn0pIHsKKyAgICBpZiAoJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9u
In0pIHsKICAgICAgICAgJHJhaXNlc0V4Y2VwdGlvbnMgPSAxOwogICAgIH0KICAgICBpZiAoISRy
YWlzZXNFeGNlcHRpb25zKSB7CkBAIC0xOTIzLDcgKzE5MjMsNyBAQCBFTkQKICAgICBpZiAoQ29u
c3RydWN0b3JNb2RlOjpjdXJyZW50KCkgPT0gQ29uc3RydWN0b3JNb2RlOjpXcmFwRXhpc3RpbmdP
YmplY3QpCiAgICAgICAgIHJldHVybiBhcmdzLkhvbGRlcigpOwogRU5ECi0gICAgICAgIHB1c2go
QGltcGxDb250ZW50LCBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soJGZ1bmN0aW9uLCAkZGF0
YU5vZGUpKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlQXJndW1lbnRzQ291
bnRDaGVjaygkZnVuY3Rpb24sICRpbnRlcmZhY2UpKTsKICAgICB9CiAKICAgICBpZiAoJHJhaXNl
c0V4Y2VwdGlvbnMpIHsKQEAgLTE5MzcsNyArMTkzNyw3IEBAIEVORAogICAgIG15ICgkcGFyYW1l
dGVyQ2hlY2tTdHJpbmcsICRwYXJhbUluZGV4LCAlcmVwbGFjZW1lbnRzKSA9IEdlbmVyYXRlUGFy
YW1ldGVyc0NoZWNrKCRmdW5jdGlvbiwgJGludGVyZmFjZU5hbWUpOwogICAgIHB1c2goQGltcGxD
b250ZW50LCAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcpOwogCi0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0gJiYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ2FsbFdpdGgifSBlcSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIpIHsKKyAgICBp
ZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0gJiYgJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRoIn0gZXEgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQiKSB7CiAgICAgICAgIHB1c2goQGJlZm9yZUFyZ3VtZW50TGlzdCwgImNvbnRleHQi
KTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIApAQCAtMTk0NSw3ICsxOTQ1
LDcgQEAgRU5ECiBFTkQKICAgICB9CiAKLSAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24ifSkgeworICAgIGlmICgkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24ifSkg
ewogICAgICAgICBwdXNoKEBhZnRlckFyZ3VtZW50TGlzdCwgImVjIik7CiAgICAgfQogCkBAIC0x
OTY2LDcgKzE5NjYsNyBAQCBFTkQKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBSZWZQdHI8
JHtpbnRlcmZhY2VOYW1lfT4gaW1wbCA9ICR7aW50ZXJmYWNlTmFtZX06OmNyZWF0ZSgke2FyZ3Vt
ZW50U3RyaW5nfSk7XG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBhcmdzLkhvbGRlcigpO1xuIik7CiAKLSAgICBpZiAoJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24i
fSkgeworICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0
b3JSYWlzZXNFeGNlcHRpb24ifSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBp
ZiAoZWMpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGdvdG8gZmFp
bDtcbiIpOwogICAgIH0KQEAgLTE5ODgsMjMgKzE5ODgsMjMgQEAgRU5ECiAKIHN1YiBHZW5lcmF0
ZUNvbnN0cnVjdG9yQ2FsbGJhY2sKIHsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBt
eSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkaW50ZXJmYWNlID0g
c2hpZnQ7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwogCi0gICAg
aWYgKEB7JGRhdGFOb2RlLT5jb25zdHJ1Y3RvcnN9ID09IDEpIHsKLSAgICAgICAgR2VuZXJhdGVT
aW5nbGVDb25zdHJ1Y3RvckNhbGxiYWNrKCRkYXRhTm9kZSwgQHskZGF0YU5vZGUtPmNvbnN0cnVj
dG9yc31bMF0pOworICAgIGlmIChAeyRpbnRlcmZhY2UtPmNvbnN0cnVjdG9yc30gPT0gMSkgewor
ICAgICAgICBHZW5lcmF0ZVNpbmdsZUNvbnN0cnVjdG9yQ2FsbGJhY2soJGludGVyZmFjZSwgQHsk
aW50ZXJmYWNlLT5jb25zdHJ1Y3RvcnN9WzBdKTsKICAgICB9IGVsc2UgewotICAgICAgICBmb3Jl
YWNoIG15ICRjb25zdHJ1Y3RvciAoQHskZGF0YU5vZGUtPmNvbnN0cnVjdG9yc30pIHsKLSAgICAg
ICAgICAgIEdlbmVyYXRlU2luZ2xlQ29uc3RydWN0b3JDYWxsYmFjaygkZGF0YU5vZGUsICRjb25z
dHJ1Y3Rvcik7CisgICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0cnVjdG9yIChAeyRpbnRlcmZhY2Ut
PmNvbnN0cnVjdG9yc30pIHsKKyAgICAgICAgICAgIEdlbmVyYXRlU2luZ2xlQ29uc3RydWN0b3JD
YWxsYmFjaygkaW50ZXJmYWNlLCAkY29uc3RydWN0b3IpOwogICAgICAgICB9Ci0gICAgICAgIEdl
bmVyYXRlT3ZlcmxvYWRlZENvbnN0cnVjdG9yQ2FsbGJhY2soJGRhdGFOb2RlKTsKKyAgICAgICAg
R2VuZXJhdGVPdmVybG9hZGVkQ29uc3RydWN0b3JDYWxsYmFjaygkaW50ZXJmYWNlKTsKICAgICB9
CiB9CiAKIHN1YiBHZW5lcmF0ZUV2ZW50Q29uc3RydWN0b3JDYWxsYmFjawogewotICAgIG15ICRk
YXRhTm9kZSA9IHNoaWZ0OwotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1l
OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRp
bnRlcmZhY2UtPm5hbWU7CiAKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiRGljdGlvbmFyeS5oIik7
CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKQEAgLTIwNDAsNyArMjA0MCw3IEBAIGJv
b2wgZmlsbCR7aW50ZXJmYWNlTmFtZX1Jbml0KCR7aW50ZXJmYWNlTmFtZX1Jbml0JiBldmVudElu
aXQsIGNvbnN0IERpY3Rpb25hcnkmCiB7CiBFTkQKIAotICAgIGZvcmVhY2ggbXkgJGludGVyZmFj
ZUJhc2UgKEB7JGRhdGFOb2RlLT5wYXJlbnRzfSkgeworICAgIGZvcmVhY2ggbXkgJGludGVyZmFj
ZUJhc2UgKEB7JGludGVyZmFjZS0+cGFyZW50c30pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsIDw8RU5EKTsKICAgICBpZiAoIWZpbGwke2ludGVyZmFjZUJhc2V9SW5pdChldmVudEluaXQs
IG9wdGlvbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yMDQ4LDggKzIwNDgsOCBAQCBF
TkQKIEVORAogICAgIH0KIAotICAgIGZvciAobXkgJGluZGV4ID0gMDsgJGluZGV4IDwgQHskZGF0
YU5vZGUtPmF0dHJpYnV0ZXN9OyAkaW5kZXgrKykgewotICAgICAgICBteSAkYXR0cmlidXRlID0g
QHskZGF0YU5vZGUtPmF0dHJpYnV0ZXN9WyRpbmRleF07CisgICAgZm9yIChteSAkaW5kZXggPSAw
OyAkaW5kZXggPCBAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9OyAkaW5kZXgrKykgeworICAgICAg
ICBteSAkYXR0cmlidXRlID0gQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVzfVskaW5kZXhdOwogICAg
ICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5p
dGlhbGl6ZWRCeUV2ZW50Q29uc3RydWN0b3IifSkgewogICAgICAgICAgICAgbXkgJGF0dHJpYnV0
ZU5hbWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBvcHRpb25zLmdldChcIiRhdHRyaWJ1dGVOYW1lXCIsIGV2ZW50SW5p
dC4kYXR0cmlidXRlTmFtZSk7XG4iKTsKQEAgLTIwNjUsMTAgKzIwNjUsMTAgQEAgRU5ECiAKIHN1
YiBHZW5lcmF0ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvckNhbGxiYWNrCiB7Ci0gICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZU5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7Ci0g
ICAgbXkgJHZpZXdUeXBlID0gR2V0VHlwZU5hbWVPZkV4dGVybmFsVHlwZWRBcnJheSgkZGF0YU5v
ZGUpOwotICAgIG15ICR0eXBlID0gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVHlw
ZWRBcnJheSJ9OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNl
TmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgbXkgJHZpZXdUeXBlID0gR2V0VHlwZU5hbWVP
ZkV4dGVybmFsVHlwZWRBcnJheSgkaW50ZXJmYWNlKTsKKyAgICBteSAkdHlwZSA9ICRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUeXBlZEFycmF5In07CiAgICAgQWRkVG9JbXBsSW5j
bHVkZXMoIlY4QXJyYXlCdWZmZXJWaWV3Q3VzdG9tLmgiKTsKIAogICAgIHB1c2goQGltcGxDb250
ZW50LCA8PEVORCk7CkBAIC0yMDg0LDEyICsyMDg0LDEyIEBAIEVORAogc3ViIEdlbmVyYXRlTmFt
ZWRDb25zdHJ1Y3RvckNhbGxiYWNrCiB7CiAgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7Ci0gICAg
bXkgJGRhdGFOb2RlID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwogCi0gICAg
bXkgJGludGVyZmFjZU5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7CisgICAgbXkgJGludGVyZmFjZU5h
bWUgPSAkaW50ZXJmYWNlLT5uYW1lOwogICAgIG15ICR2OEludGVyZmFjZU5hbWUgPSAiVjgkaW50
ZXJmYWNlTmFtZSI7CiAgICAgbXkgJHJhaXNlc0V4Y2VwdGlvbnMgPSBAeyRmdW5jdGlvbi0+cmFp
c2VzRXhjZXB0aW9uc307Ci0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uIn0pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9uIn0pIHsKICAgICAg
ICAgJHJhaXNlc0V4Y2VwdGlvbnMgPSAxOwogICAgIH0KICAgICBpZiAoISRyYWlzZXNFeGNlcHRp
b25zKSB7CkBAIC0yMTA2LDcgKzIxMDYsNyBAQCBzdWIgR2VuZXJhdGVOYW1lZENvbnN0cnVjdG9y
Q2FsbGJhY2sKICAgICBteSBAYWZ0ZXJBcmd1bWVudExpc3Q7CiAKICAgICBteSAkdG9BY3RpdmVE
T01PYmplY3QgPSAiMCI7Ci0gICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkFjdGl2ZURPTU9iamVjdCJ9KSB7CisgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJBY3RpdmVET01PYmplY3QifSkgewogICAgICAgICAkdG9BY3RpdmVET01PYmplY3Qg
PSAiJHt2OEludGVyZmFjZU5hbWV9Ojp0b0FjdGl2ZURPTU9iamVjdCI7CiAgICAgfQogICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCJGcmFtZS5oIik7CkBAIC0yMTMyLDcgKzIxMzIsNyBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7djhJbnRlcmZhY2VOYW1lfUNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZwogCiBFTkQKIAotICAgIHB1c2goQGltcGxDb250ZW50LCBHZW5lcmF0
ZUFyZ3VtZW50c0NvdW50Q2hlY2soJGZ1bmN0aW9uLCAkZGF0YU5vZGUpKTsKKyAgICBwdXNoKEBp
bXBsQ29udGVudCwgR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrKCRmdW5jdGlvbiwgJGludGVy
ZmFjZSkpOwogCiAgICAgaWYgKCRyYWlzZXNFeGNlcHRpb25zKSB7CiAgICAgICAgIEFkZFRvSW1w
bEluY2x1ZGVzKCJFeGNlcHRpb25Db2RlLmgiKTsKQEAgLTIxNDUsNyArMjE0NSw3IEBAIEVORAog
CiAgICAgcHVzaChAYmVmb3JlQXJndW1lbnRMaXN0LCAiZG9jdW1lbnQiKTsKIAotICAgIGlmICgk
ZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlv
biJ9KSB7CisgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25zdHJ1
Y3RvclJhaXNlc0V4Y2VwdGlvbiJ9KSB7CiAgICAgICAgIHB1c2goQGFmdGVyQXJndW1lbnRMaXN0
LCAiZWMiKTsKICAgICB9CiAKQEAgLTIxNjYsNyArMjE2Niw3IEBAIEVORAogICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIFJlZlB0cjwke2ludGVyZmFjZU5hbWV9PiBpbXBsID0gJHtpbnRlcmZh
Y2VOYW1lfTo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3Rvcigke2FyZ3VtZW50U3RyaW5nfSk7XG4iKTsK
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBw
ZXIgPSBhcmdzLkhvbGRlcigpO1xuIik7CiAKLSAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24ifSkgeworICAgIGlmICgkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24i
fSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoZWMpXG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGdvdG8gZmFpbDtcbiIpOwogICAgIH0KQEAg
LTIyMDksOSArMjIwOSw5IEBAIEVORAogCiBzdWIgR2VuZXJhdGVCYXRjaGVkQXR0cmlidXRlRGF0
YQogewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlm
dDsKICAgICBteSAkYXR0cmlidXRlcyA9IHNoaWZ0OwotICAgIG15ICRpbnRlcmZhY2VOYW1lID0g
JGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFt
ZTsKIAogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQCRhdHRyaWJ1dGVzKSB7CiAgICAgICAg
IG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlv
bmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CkBAIC0yMzMwLDEwICsyMzMwLDEwIEBA
IHN1YiBHZW5lcmF0ZVNpbmdsZUJhdGNoZWRBdHRyaWJ1dGUKIAogc3ViIElzU3RhbmRhcmRGdW5j
dGlvbgogewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBz
aGlmdDsKICAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKIAotICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+
bmFtZTsKICAgICBteSAkYXR0ckV4dCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXM7CiAgICAgcmV0dXJuIDAgaWYgJGF0dHJFeHQtPnsiVjhVbmZvcmdlYWJsZSJ9Owog
ICAgIHJldHVybiAwIGlmICRmdW5jdGlvbi0+aXNTdGF0aWM7CkBAIC0yMzQxLDcgKzIzNDEsNyBA
QCBzdWIgSXNTdGFuZGFyZEZ1bmN0aW9uCiAgICAgcmV0dXJuIDAgaWYgJGF0dHJFeHQtPnsiVjhF
bmFibGVkUGVyQ29udGV4dCJ9OwogICAgIHJldHVybiAwIGlmIFJlcXVpcmVzQ3VzdG9tU2lnbmF0
dXJlKCRmdW5jdGlvbik7CiAgICAgcmV0dXJuIDAgaWYgJGF0dHJFeHQtPnsiVjhEb05vdENoZWNr
U2lnbmF0dXJlIn07Ci0gICAgcmV0dXJuIDAgaWYgKCRhdHRyRXh0LT57IkRvTm90Q2hlY2tTZWN1
cml0eSJ9ICYmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5
In0gfHwgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKTsKKyAgICByZXR1cm4gMCBpZiAo
JGF0dHJFeHQtPnsiRG9Ob3RDaGVja1NlY3VyaXR5In0gJiYgKCRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0gfHwgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdp
bmRvdyIpKTsKICAgICByZXR1cm4gMCBpZiAkYXR0ckV4dC0+eyJOb3RFbnVtZXJhYmxlIn07CiAg
ICAgcmV0dXJuIDAgaWYgJGF0dHJFeHQtPnsiVjhSZWFkT25seSJ9OwogICAgIHJldHVybiAxOwpA
QCAtMjM0OSwxMCArMjM0OSwxMCBAQCBzdWIgSXNTdGFuZGFyZEZ1bmN0aW9uCiAKIHN1YiBHZW5l
cmF0ZU5vblN0YW5kYXJkRnVuY3Rpb24KIHsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAg
ICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAgbXkgJGZ1bmN0aW9uID0gc2hpZnQ7CiAKLSAg
ICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkaW50ZXJmYWNl
TmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAgICAgbXkgJGF0dHJFeHQgPSAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzOwogICAgIG15ICRuYW1lID0gJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPm5hbWU7CiAKQEAgLTIzODcsNyArMjM4Nyw3IEBAIHN1YiBHZW5lcmF0ZU5vblN0
YW5kYXJkRnVuY3Rpb24KICAgICB9CiAKICAgICBpZiAoJGF0dHJFeHQtPnsiRG9Ob3RDaGVja1Nl
Y3VyaXR5In0gJiYKLSAgICAgICAgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNo
ZWNrU2VjdXJpdHkifSB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikpIHsKKyAgICAg
ICAgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0gfHwg
JGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSB7CiAgICAgICAgICMgRnVuY3Rpb25zIHRo
YXQgYXJlIG1hcmtlZCBEb05vdENoZWNrU2VjdXJpdHkgYXJlIGFsd2F5cyByZWFkYWJsZSBidXQg
aWYgdGhleSBhcmUgY2hhbmdlZAogICAgICAgICAjIGFuZCB0aGVuIGFjY2Vzc2VkIG9uIGEgZGlm
ZmVyZW50IGRvbWFpbiB3ZSBkbyBub3QgcmV0dXJuIHRoZSB1bmRlcmx5aW5nIHZhbHVlIGJ1dCBp
bnN0ZWFkCiAgICAgICAgICMgcmV0dXJuIGEgbmV3IGNvcHkgb2YgdGhlIG9yaWdpbmFsIGZ1bmN0
aW9uLiBUaGlzIGlzIGFjaGlldmVkIGJ5IHN0b3JpbmcgdGhlIGNoYW5nZWQgdmFsdWUKQEAgLTI0
MzMsMTQgKzI0MzMsMTQgQEAgRU5ECiAKIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uSW5kZXhl
cgogewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlm
dDsKICAgICBteSAkaW5kZXhlciA9IHNoaWZ0OwotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRh
dGFOb2RlLT5uYW1lOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsK
ICAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gIlY4JGludGVyZmFjZU5hbWUiOwogCiAgICAgIyBG
SVhNRTogRmlndXJlIG91dCB3aGF0IE51bWVyaWNJbmRleGVkR2V0dGVyIGlzIHJlYWxseSBzdXBw
b3NlZCB0byBkby4gUmlnaHQgbm93LCBpdCdzIG9ubHkgc2V0IG9uIFdlYkdMLXJlbGF0ZWQgZmls
ZXMuCi0gICAgbXkgJGhhc0N1c3RvbVNldHRlciA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifSAmJiAhJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTnVtZXJpY0luZGV4ZWRHZXR0ZXIifTsKLSAgICBteSAkaGFzR2V0dGVyID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW5kZXhlZEdldHRlciJ9IHx8ICRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blByb3BlcnR5U2xvdCJ9OworICAg
IG15ICRoYXNDdXN0b21TZXR0ZXIgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tSW5kZXhlZFNldHRlciJ9ICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiTnVtZXJpY0luZGV4ZWRHZXR0ZXIifTsKKyAgICBteSAkaGFzR2V0dGVyID0gJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkluZGV4ZWRHZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90In07CiAKICAgICAj
IEZJWE1FOiBJbnZlc3RpZ2F0ZSBhbmQgcmVtb3ZlIHRoaXMgbmFzdGluZXNzcy4gSW4gVjgsIG5h
bWVkIHByb3BlcnR5IGhhbmRsaW5nIGFuZCBpbmRleGVyIGhhbmRsaW5nIGFyZSBhcHBhcmVudGx5
IGRlY291cGxlZCwKICAgICAjIHdoaWNoIG1lYW5zIHRoYXQgb2JqZWN0W1hdIHdoZXJlIFggaXMg
YSBudW1iZXIgZG9lc24ndCByZWFjaCBuYW1lZCBwcm9wZXJ0eSBpbmRleGVyLiBTbyB3ZSBuZWVk
IHRvIHByb3ZpZGUKQEAgLTI0NDgsMTIgKzI0NDgsMTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb25JbmRleGVyCiAgICAgbXkgJGlzU3BlY2lhbENhc2UgPSBleGlzdHMgJGluZGV4ZXJTcGVj
aWFsQ2FzZXN7JGludGVyZmFjZU5hbWV9OwogICAgIGlmICgkaXNTcGVjaWFsQ2FzZSkgewogICAg
ICAgICAkaGFzR2V0dGVyID0gMTsKLSAgICAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkN1c3RvbU5hbWVkU2V0dGVyIn0pIHsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZFNldHRlciJ9KSB7CiAgICAgICAgICAg
ICAkaGFzQ3VzdG9tU2V0dGVyID0gMTsKICAgICAgICAgfQogICAgIH0KIAotICAgIG15ICRoYXNF
bnVtZXJhdG9yID0gISRpc1NwZWNpYWxDYXNlICYmICRjb2RlR2VuZXJhdG9yLT5Jc1N1YlR5cGUo
JGRhdGFOb2RlLCAiTm9kZSIpOworICAgIG15ICRoYXNFbnVtZXJhdG9yID0gISRpc1NwZWNpYWxD
YXNlICYmICRjb2RlR2VuZXJhdG9yLT5Jc1N1YlR5cGUoJGludGVyZmFjZSwgIk5vZGUiKTsKIAog
ICAgICMgRklYTUU6IEZpbmQgYSB3YXkgdG8gbm90IGhhdmUgdG8gc3BlY2lhbC1jYXNlIEhUTUxP
cHRpb25zQ29sbGVjdGlvbi4KICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkhUTUxPcHRpb25z
Q29sbGVjdGlvbiIpIHsKQEAgLTI0NjgsNyArMjQ2OCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uSW5kZXhlcgogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOENvbGxlY3Rpb24uaCIpOwog
CiAgICAgaWYgKCEkaW5kZXhlcikgewotICAgICAgICAkaW5kZXhlciA9ICRjb2RlR2VuZXJhdG9y
LT5GaW5kU3VwZXJNZXRob2QoJGRhdGFOb2RlLCAiaXRlbSIpOworICAgICAgICAkaW5kZXhlciA9
ICRjb2RlR2VuZXJhdG9yLT5GaW5kU3VwZXJNZXRob2QoJGludGVyZmFjZSwgIml0ZW0iKTsKICAg
ICB9CiAKICAgICBteSAkaW5kZXhlclR5cGUgPSAkaW5kZXhlciA/ICRpbmRleGVyLT50eXBlIDog
MDsKQEAgLTI1MDEsNyArMjUwMSw3IEBAIEVORAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgbXkgJGhhc0RlbGV0ZXIgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0
b21EZWxldGVQcm9wZXJ0eSJ9OworICAgIG15ICRoYXNEZWxldGVyID0gJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbURlbGV0ZVByb3BlcnR5In07CiAgICAgbXkgJHNldE9u
ID0gIkluc3RhbmNlIjsKIAogICAgICMgVjggaGFzIGFjY2Vzcy1jaGVjayBjYWxsYmFjayBBUEkg
KHNlZSBPYmplY3RUZW1wbGF0ZTo6U2V0QWNjZXNzQ2hlY2tDYWxsYmFja3MpIGFuZCBpdCdzIHVz
ZWQgb24gRE9NV2luZG93CkBAIC0yNTIzLDExICsyNTIzLDExIEBAIEVORAogCiBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbk5hbWVkUHJvcGVydHlHZXR0ZXIKIHsKLSAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAgbXkgJG5hbWVkUHJvcGVy
dHlHZXR0ZXIgPSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFt
ZTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAgICAgbXkgJHY4
SW50ZXJmYWNlTmFtZSA9ICJWOCRpbnRlcmZhY2VOYW1lIjsKLSAgICBteSAkaGFzQ3VzdG9tTmFt
ZWRHZXR0ZXIgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZEdl
dHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUdldE93blBy
b3BlcnR5U2xvdCJ9OworICAgIG15ICRoYXNDdXN0b21OYW1lZEdldHRlciA9ICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21OYW1lZEdldHRlciJ9IHx8ICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QifTsKIAogICAg
IGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTEFwcGxldEVsZW1lbnQiIHx8ICRpbnRlcmZhY2VO
YW1lIGVxICJIVE1MRW1iZWRFbGVtZW50IiB8fCAkaW50ZXJmYWNlTmFtZSBlcSAiSFRNTE9iamVj
dEVsZW1lbnQiKSB7CiAgICAgICAgICRoYXNDdXN0b21OYW1lZEdldHRlciA9IDE7CkBAIC0yNTM3
LDEzICsyNTM3LDEzIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uTmFtZWRQcm9wZXJ0eUdl
dHRlcgogICAgICAgICAkaGFzQ3VzdG9tTmFtZWRHZXR0ZXIgPSAwOwogICAgIH0KIAotICAgIG15
ICRoYXNHZXR0ZXIgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJOYW1lZEdldHRl
ciJ9IHx8ICRoYXNDdXN0b21OYW1lZEdldHRlcjsKKyAgICBteSAkaGFzR2V0dGVyID0gJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkR2V0dGVyIn0gfHwgJGhhc0N1c3RvbU5h
bWVkR2V0dGVyOwogICAgIGlmICghJGhhc0dldHRlcikgewogICAgICAgICByZXR1cm47CiAgICAg
fQogCiAgICAgaWYgKCEkbmFtZWRQcm9wZXJ0eUdldHRlcikgewotICAgICAgICAkbmFtZWRQcm9w
ZXJ0eUdldHRlciA9ICRjb2RlR2VuZXJhdG9yLT5GaW5kU3VwZXJNZXRob2QoJGRhdGFOb2RlLCAi
bmFtZWRJdGVtIik7CisgICAgICAgICRuYW1lZFByb3BlcnR5R2V0dGVyID0gJGNvZGVHZW5lcmF0
b3ItPkZpbmRTdXBlck1ldGhvZCgkaW50ZXJmYWNlLCAibmFtZWRJdGVtIik7CiAgICAgfQogCiAg
ICAgaWYgKCRuYW1lZFByb3BlcnR5R2V0dGVyICYmICRuYW1lZFByb3BlcnR5R2V0dGVyLT50eXBl
IG5lICJOb2RlIiAmJiAhJG5hbWVkUHJvcGVydHlHZXR0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDdXN0b20ifSAmJiAhJGhhc0N1c3RvbU5hbWVkR2V0dGVyKSB7CkBAIC0yNTU1LDkgKzI1NTUs
OSBAQCBFTkQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG15ICRoYXNDdXN0b21OYW1l
ZFNldHRlciA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkU2V0
dGVyIn07Ci0gICAgbXkgJGhhc0RlbGV0ZXIgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDdXN0b21EZWxldGVQcm9wZXJ0eSJ9OwotICAgIG15ICRoYXNFbnVtZXJhdG9yID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tRW51bWVyYXRlUHJvcGVydHkifTsK
KyAgICBteSAkaGFzQ3VzdG9tTmFtZWRTZXR0ZXIgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tTmFtZWRTZXR0ZXIifTsKKyAgICBteSAkaGFzRGVsZXRlciA9ICRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21EZWxldGVQcm9wZXJ0eSJ9OworICAg
IG15ICRoYXNFbnVtZXJhdG9yID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1
c3RvbUVudW1lcmF0ZVByb3BlcnR5In07CiAgICAgbXkgJHNldE9uID0gIkluc3RhbmNlIjsKIAog
ICAgICMgVjggaGFzIGFjY2Vzcy1jaGVjayBjYWxsYmFjayBBUEkgKHNlZSBPYmplY3RUZW1wbGF0
ZTo6U2V0QWNjZXNzQ2hlY2tDYWxsYmFja3MpIGFuZCBpdCdzIHVzZWQgb24gRE9NV2luZG93CkBA
IC0yNTgxLDE4ICsyNTgxLDE4IEBAIEVORAogCiBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkN1
c3RvbUNhbGwKIHsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNl
TmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAg
bXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwogCi0gICAgaWYgKCRkYXRhTm9k
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUNhbGwifSkgeworICAgIGlmICgkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ2FsbCJ9KSB7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGRlc2MtPkluc3RhbmNlVGVtcGxhdGUoKS0+U2V0Q2FsbEFzRnVu
Y3Rpb25IYW5kbGVyKFY4JHtpbnRlcmZhY2VOYW1lfTo6Y2FsbEFzRnVuY3Rpb25DYWxsYmFjayk7
XG4iKTsKICAgICB9CiB9CiAKIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uTWFzcXVlcmFkZXNB
c1VuZGVmaW5lZAogewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OwotICAgIGlmICgkZGF0YU5v
ZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIn0pCisgICAg
bXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCJ9KQogICAgIHsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgZGVzYy0+SW5zdGFuY2VUZW1wbGF0ZSgpLT5NYXJrQXNVbmRldGVj
dGFibGUoKTtcbiIpOwogICAgIH0KQEAgLTI2MDEsMTQgKzI2MDEsMTQgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb25NYXNxdWVyYWRlc0FzVW5kZWZpbmVkCiBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogewogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkZGF0YU5vZGUgPSBz
aGlmdDsKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKLSAgICBteSAk
dmlzaWJsZUludGVyZmFjZU5hbWUgPSAkY29kZUdlbmVyYXRvci0+R2V0VmlzaWJsZUludGVyZmFj
ZU5hbWUoJGRhdGFOb2RlKTsKKyAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgJGlu
dGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOworICAgIG15ICR2aXNpYmxlSW50ZXJmYWNl
TmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRWaXNpYmxlSW50ZXJmYWNlTmFtZSgkaW50ZXJmYWNl
KTsKICAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gIlY4JGludGVyZmFjZU5hbWUiOwotICAgIG15
ICRuYXRpdmVUeXBlID0gR2V0TmF0aXZlVHlwZUZvckNvbnZlcnNpb25zKCRkYXRhTm9kZSk7Cisg
ICAgbXkgJG5hdGl2ZVR5cGUgPSBHZXROYXRpdmVUeXBlRm9yQ29udmVyc2lvbnMoJGludGVyZmFj
ZSk7CiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCi0gICAgcHVzaChAaW1w
bENvbnRlbnRIZWFkZXIsIEdlbmVyYXRlSW1wbGVtZW50YXRpb25Db250ZW50SGVhZGVyKCRkYXRh
Tm9kZSkpOworICAgIHB1c2goQGltcGxDb250ZW50SGVhZGVyLCBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uQ29udGVudEhlYWRlcigkaW50ZXJmYWNlKSk7CiAKICAgICBBZGRUb0ltcGxJbmNsdWRlcygi
QmluZGluZ1N0YXRlLmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiQ29udGV4dEZlYXR1cmVz
LmgiKTsKQEAgLTI2MTgsMTMgKzI2MTgsMTMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
IAogICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgkaW50ZXJmYWNlTmFtZSk7CiAKLSAgICBteSAkdG9B
Y3RpdmUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3Qi
fSA/ICIke3Y4SW50ZXJmYWNlTmFtZX06OnRvQWN0aXZlRE9NT2JqZWN0IiA6ICIwIjsKLSAgICBt
eSAkcm9vdEZvckdDID0gTmVlZHNDdXN0b21PcGFxdWVSb290Rm9yR0MoJGRhdGFOb2RlKSA/ICIk
e3Y4SW50ZXJmYWNlTmFtZX06Om9wYXF1ZVJvb3RGb3JHQyIgOiAiMCI7CisgICAgbXkgJHRvQWN0
aXZlID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9
ID8gIiR7djhJbnRlcmZhY2VOYW1lfTo6dG9BY3RpdmVET01PYmplY3QiIDogIjAiOworICAgIG15
ICRyb290Rm9yR0MgPSBOZWVkc0N1c3RvbU9wYXF1ZVJvb3RGb3JHQygkaW50ZXJmYWNlKSA/ICIk
e3Y4SW50ZXJmYWNlTmFtZX06Om9wYXF1ZVJvb3RGb3JHQyIgOiAiMCI7CiAKICAgICAjIEZpbmQg
dGhlIHN1cGVyIGRlc2NyaXB0b3IuCiAgICAgbXkgJHBhcmVudENsYXNzID0gIiI7CiAgICAgbXkg
JHBhcmVudENsYXNzVGVtcGxhdGUgPSAiIjsKLSAgICBmb3JlYWNoIChAeyRkYXRhTm9kZS0+cGFy
ZW50c30pIHsKKyAgICBmb3JlYWNoIChAeyRpbnRlcmZhY2UtPnBhcmVudHN9KSB7CiAgICAgICAg
IG15ICRwYXJlbnQgPSAkXzsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4JHtwYXJlbnR9
LmgiKTsKICAgICAgICAgJHBhcmVudENsYXNzID0gIlY4IiAuICRwYXJlbnQ7CkBAIC0yNjM0LDcg
KzI2MzQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsICJuYW1lc3BhY2UgV2ViQ29yZSB7XG5cbiIpOwogICAgIG15ICRwYXJlbnRDbGFz
c0luZm8gPSAkcGFyZW50Q2xhc3MgPyAiJiR7cGFyZW50Q2xhc3N9OjppbmZvIiA6ICIwIjsKIAot
ICAgIG15ICRXcmFwcGVyVHlwZVByb3RvdHlwZSA9ICRkYXRhTm9kZS0+aXNFeGNlcHRpb24gPyAi
V3JhcHBlclR5cGVFcnJvclByb3RvdHlwZSIgOiAiV3JhcHBlclR5cGVPYmplY3RQcm90b3R5cGUi
OworICAgIG15ICRXcmFwcGVyVHlwZVByb3RvdHlwZSA9ICRpbnRlcmZhY2UtPmlzRXhjZXB0aW9u
ID8gIldyYXBwZXJUeXBlRXJyb3JQcm90b3R5cGUiIDogIldyYXBwZXJUeXBlT2JqZWN0UHJvdG90
eXBlIjsKIAogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJXcmFwcGVyVHlwZUluZm8gJHt2
OEludGVyZmFjZU5hbWV9OjppbmZvID0geyAke3Y4SW50ZXJmYWNlTmFtZX06OkdldFRlbXBsYXRl
LCAke3Y4SW50ZXJmYWNlTmFtZX06OmRlcmVmT2JqZWN0LCAkdG9BY3RpdmUsICRyb290Rm9yR0Ms
ICR7djhJbnRlcmZhY2VOYW1lfTo6aW5zdGFsbFBlckNvbnRleHRQcm90b3R5cGVQcm9wZXJ0aWVz
LCAkcGFyZW50Q2xhc3NJbmZvLCAkV3JhcHBlclR5cGVQcm90b3R5cGUgfTtcblxuIik7CiAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIm5hbWVzcGFjZSAke2ludGVyZmFjZU5hbWV9VjhJbnRl
cm5hbCB7XG5cbiIpOwpAQCAtMjY0NSw4ICsyNjQ1LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICBteSAkaGFzUmVwbGFjZWFibGUgPSAwOwogCiAgICAgIyBHZW5lcmF0ZSBwcm9w
ZXJ0eSBhY2Nlc3NvcnMgZm9yIGF0dHJpYnV0ZXMuCi0gICAgZm9yIChteSAkaW5kZXggPSAwOyAk
aW5kZXggPCBAeyRkYXRhTm9kZS0+YXR0cmlidXRlc307ICRpbmRleCsrKSB7Ci0gICAgICAgIG15
ICRhdHRyaWJ1dGUgPSBAeyRkYXRhTm9kZS0+YXR0cmlidXRlc31bJGluZGV4XTsKKyAgICBmb3Ig
KG15ICRpbmRleCA9IDA7ICRpbmRleCA8IEB7JGludGVyZmFjZS0+YXR0cmlidXRlc307ICRpbmRl
eCsrKSB7CisgICAgICAgIG15ICRhdHRyaWJ1dGUgPSBAeyRpbnRlcmZhY2UtPmF0dHJpYnV0ZXN9
WyRpbmRleF07CiAgICAgICAgIG15ICRhdHRyVHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
dHlwZTsKIAogICAgICAgICAjIEdlbmVyYXRlIHNwZWNpYWwgY29kZSBmb3IgdGhlIGNvbnN0cnVj
dG9yIGF0dHJpYnV0ZXMuCkBAIC0yNjc3LDcgKzI2NzcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAjIEdlbmVyYXRlIHRoZSBhY2Nlc3Nvci4KICAgICAgICAgaWYgKCEo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0dGVy
In0gfHwKICAgICAgICAgICAgICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlY4Q3VzdG9tR2V0dGVyIn0pKSB7Ci0gICAgICAgICAgICBHZW5lcmF0ZU5vcm1hbEF0
dHJHZXR0ZXIoJGF0dHJpYnV0ZSwgJGRhdGFOb2RlKTsKKyAgICAgICAgICAgIEdlbmVyYXRlTm9y
bWFsQXR0ckdldHRlcigkYXR0cmlidXRlLCAkaW50ZXJmYWNlKTsKICAgICAgICAgfQogCiAgICAg
ICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBs
YWNlYWJsZSJ9KSB7CkBAIC0yNjg1LDI0ICsyNjg1LDI0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgIH0gZWxzaWYgKCEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDdXN0b21TZXR0ZXIifSAmJgogICAgICAgICAgICAgISRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4Q3VzdG9tU2V0dGVyIn0gJiYKICAg
ICAgICAgICAgICFJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpKSB7Ci0gICAgICAgICAgICBHZW5lcmF0
ZU5vcm1hbEF0dHJTZXR0ZXIoJGF0dHJpYnV0ZSwgJGRhdGFOb2RlKTsKKyAgICAgICAgICAgIEdl
bmVyYXRlTm9ybWFsQXR0clNldHRlcigkYXR0cmlidXRlLCAkaW50ZXJmYWNlKTsKICAgICAgICAg
fQogICAgIH0KIAogICAgIGlmICgkaGFzQ29uc3RydWN0b3JzKSB7Ci0gICAgICAgIEdlbmVyYXRl
Q29uc3RydWN0b3JHZXR0ZXIoJGRhdGFOb2RlKTsKKyAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3Rv
ckdldHRlcigkaW50ZXJmYWNlKTsKICAgICB9CiAKICAgICBpZiAoJGhhc0NvbnN0cnVjdG9ycyB8
fCAkaGFzUmVwbGFjZWFibGUpIHsKLSAgICAgICAgR2VuZXJhdGVSZXBsYWNlYWJsZUF0dHJTZXR0
ZXIoJGRhdGFOb2RlKTsKKyAgICAgICAgR2VuZXJhdGVSZXBsYWNlYWJsZUF0dHJTZXR0ZXIoJGlu
dGVyZmFjZSk7CiAgICAgfQogCi0gICAgaWYgKE5lZWRzQ3VzdG9tT3BhcXVlUm9vdEZvckdDKCRk
YXRhTm9kZSkpIHsKLSAgICAgICAgR2VuZXJhdGVPcGFxdWVSb290Rm9yR0MoJGRhdGFOb2RlKTsK
KyAgICBpZiAoTmVlZHNDdXN0b21PcGFxdWVSb290Rm9yR0MoJGludGVyZmFjZSkpIHsKKyAgICAg
ICAgR2VuZXJhdGVPcGFxdWVSb290Rm9yR0MoJGludGVyZmFjZSk7CiAgICAgfQogCi0gICAgaWYg
KCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlR5cGVkQXJyYXkifSkgewotICAgICAg
ICBteSAkdmlld1R5cGUgPSBHZXRUeXBlTmFtZU9mRXh0ZXJuYWxUeXBlZEFycmF5KCRkYXRhTm9k
ZSk7CisgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUeXBlZEFycmF5
In0pIHsKKyAgICAgICAgbXkgJHZpZXdUeXBlID0gR2V0VHlwZU5hbWVPZkV4dGVybmFsVHlwZWRB
cnJheSgkaW50ZXJmYWNlKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcCgkaW50ZXJmYWNlTmFtZSogaW1wbCwgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogewpA
QCAtMjcyMiwxMiArMjcyMiwxMiBAQCBFTkQKICAgICBteSBAbm9ybWFsRnVuY3Rpb25zOwogICAg
IG15ICRuZWVkc0RvbWFpblNhZmVGdW5jdGlvblNldHRlciA9IDA7CiAgICAgIyBHZW5lcmF0ZSBt
ZXRob2RzIGZvciBmdW5jdGlvbnMuCi0gICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFO
b2RlLT5mdW5jdGlvbnN9KSB7CisgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFj
ZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICBteSAkaXNDdXN0b20gPSAkZnVuY3Rpb24tPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhDdXN0b20ifTsKICAgICAgICAgaWYgKCEkaXND
dXN0b20pIHsKLSAgICAgICAgICAgIEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjaygkZnVuY3Rpb24s
ICRkYXRhTm9kZSk7CisgICAgICAgICAgICBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbGJhY2soJGZ1bmN0
aW9uLCAkaW50ZXJmYWNlKTsKICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPntvdmVybG9hZElu
ZGV4fSA+IDEgJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPT0gQHskZnVuY3Rpb24tPntv
dmVybG9hZHN9fSkgewotICAgICAgICAgICAgICAgIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9u
Q2FsbGJhY2soJGZ1bmN0aW9uLCAkZGF0YU5vZGUpOworICAgICAgICAgICAgICAgIEdlbmVyYXRl
T3ZlcmxvYWRlZEZ1bmN0aW9uQ2FsbGJhY2soJGZ1bmN0aW9uLCAkaW50ZXJmYWNlKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCkBAIC0yNzQyLDcgKzI3NDIsNyBAQCBFTkQKICAgICAgICAg
IyBJZiB0aGUgZnVuY3Rpb24gZG9lcyBub3QgbmVlZCBkb21haW4gc2VjdXJpdHkgY2hlY2ssIHdl
IG5lZWQgdG8KICAgICAgICAgIyBnZW5lcmF0ZSBhbiBhY2Nlc3MgZ2V0dGVyIHRoYXQgcmV0dXJu
cyBkaWZmZXJlbnQgZnVuY3Rpb24gb2JqZWN0cwogICAgICAgICAjIGZvciBkaWZmZXJlbnQgY2Fs
bGluZyBjb250ZXh0LgotICAgICAgICBpZiAoKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNoZWNrU2VjdXJpdHkifSB8fCAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSAm
JiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2hlY2tT
ZWN1cml0eSJ9KSB7CisgICAgICAgIGlmICgoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNoZWNrU2VjdXJpdHkifSB8fCAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSAm
JiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRvTm90Q2hlY2tT
ZWN1cml0eSJ9KSB7CiAgICAgICAgICAgICBpZiAoISRpc0N1c3RvbSB8fCAkZnVuY3Rpb24tPntv
dmVybG9hZEluZGV4fSA9PSAxKSB7CiAgICAgICAgICAgICAgICAgR2VuZXJhdGVEb21haW5TYWZl
RnVuY3Rpb25HZXR0ZXIoJGZ1bmN0aW9uLCAkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAgICAgICAg
ICAgJG5lZWRzRG9tYWluU2FmZUZ1bmN0aW9uU2V0dGVyID0gMTsKQEAgLTI3NjIsNyArMjc2Miw3
IEBAIEVORAogICAgIH0KIAogICAgICMgQXR0cmlidXRlcwotICAgIG15ICRhdHRyaWJ1dGVzID0g
JGRhdGFOb2RlLT5hdHRyaWJ1dGVzOworICAgIG15ICRhdHRyaWJ1dGVzID0gJGludGVyZmFjZS0+
YXR0cmlidXRlczsKIAogICAgICMgRm9yIHRoZSBET01XaW5kb3cgaW50ZXJmYWNlIHdlIHBhcnRp
dGlvbiB0aGUgYXR0cmlidXRlcyBpbnRvIHRoZQogICAgICMgb25lcyB0aGF0IGRpc2FsbG93cyBz
aGFkb3dpbmcgYW5kIHRoZSByZXN0LgpAQCAtMjc4Nyw3ICsyNzg3LDcgQEAgRU5ECiAgICAgIyBQ
dXQgdGhlIGF0dHJpYnV0ZXMgdGhhdCBkaXNhbGxvdyBzaGFkb3dpbmcgb24gdGhlIHNoYWRvdyBv
YmplY3QuCiAgICAgaWYgKEBkaXNhbGxvd3NTaGFkb3dpbmcpIHsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmli
dXRlIHNoYWRvd0F0dHJzW10gPSB7XG4iKTsKLSAgICAgICAgR2VuZXJhdGVCYXRjaGVkQXR0cmli
dXRlRGF0YSgkZGF0YU5vZGUsIFxAZGlzYWxsb3dzU2hhZG93aW5nKTsKKyAgICAgICAgR2VuZXJh
dGVCYXRjaGVkQXR0cmlidXRlRGF0YSgkaW50ZXJmYWNlLCBcQGRpc2FsbG93c1NoYWRvd2luZyk7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifTtcblxuIik7CiAgICAgfQogCkBAIC0yNzk1
LDcgKzI3OTUsNyBAQCBFTkQKICAgICBpZiAoQCRhdHRyaWJ1dGVzKSB7CiAgICAgICAgICRoYXNf
YXR0cmlidXRlcyA9IDE7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGljIGNvbnN0
IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSAke3Y4SW50ZXJmYWNlTmFtZX1B
dHRyc1tdID0ge1xuIik7Ci0gICAgICAgIEdlbmVyYXRlQmF0Y2hlZEF0dHJpYnV0ZURhdGEoJGRh
dGFOb2RlLCAkYXR0cmlidXRlcyk7CisgICAgICAgIEdlbmVyYXRlQmF0Y2hlZEF0dHJpYnV0ZURh
dGEoJGludGVyZmFjZSwgJGF0dHJpYnV0ZXMpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In07XG5cbiIpOwogICAgIH0KIApAQCAtMjgwNiw3ICsyODA2LDcgQEAgRU5ECiAgICAgICAgICMg
T25seSBvbmUgdGFibGUgZW50cnkgaXMgbmVlZGVkIGZvciBvdmVybG9hZGVkIG1ldGhvZHM6CiAg
ICAgICAgIG5leHQgaWYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAxOwogICAgICAgICAj
IERvbid0IHB1dCBhbnkgbm9uc3RhbmRhcmQgZnVuY3Rpb25zIGludG8gdGhpcyB0YWJsZToKLSAg
ICAgICAgbmV4dCBpZiAhSXNTdGFuZGFyZEZ1bmN0aW9uKCRkYXRhTm9kZSwgJGZ1bmN0aW9uKTsK
KyAgICAgICAgbmV4dCBpZiAhSXNTdGFuZGFyZEZ1bmN0aW9uKCRpbnRlcmZhY2UsICRmdW5jdGlv
bik7CiAgICAgICAgIGlmICghJGhhc19jYWxsYmFja3MpIHsKICAgICAgICAgICAgICRoYXNfY2Fs
bGJhY2tzID0gMTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGljIGNvbnN0
IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZENhbGxiYWNrICR7djhJbnRlcmZhY2VOYW1lfUNh
bGxiYWNrc1tdID0ge1xuIik7CkBAIC0yODI2LDExICsyODI2LDExIEBAIEVORAogICAgICMgU2V0
dXAgY29uc3RhbnRzCiAgICAgbXkgJGhhc19jb25zdGFudHMgPSAwOwogICAgIG15IEBjb25zdGFu
dHNFbmFibGVkQXRSdW50aW1lOwotICAgIGlmIChAeyRkYXRhTm9kZS0+Y29uc3RhbnRzfSkgewor
ICAgIGlmIChAeyRpbnRlcmZhY2UtPmNvbnN0YW50c30pIHsKICAgICAgICAgJGhhc19jb25zdGFu
dHMgPSAxOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInN0YXRpYyBjb25zdCBWOERPTUNv
bmZpZ3VyYXRpb246OkJhdGNoZWRDb25zdGFudCAke3Y4SW50ZXJmYWNlTmFtZX1Db25zdHNbXSA9
IHtcbiIpOwogICAgIH0KLSAgICBmb3JlYWNoIG15ICRjb25zdGFudCAoQHskZGF0YU5vZGUtPmNv
bnN0YW50c30pIHsKKyAgICBmb3JlYWNoIG15ICRjb25zdGFudCAoQHskaW50ZXJmYWNlLT5jb25z
dGFudHN9KSB7CiAgICAgICAgIG15ICRuYW1lID0gJGNvbnN0YW50LT5uYW1lOwogICAgICAgICBt
eSAkdmFsdWUgPSAkY29uc3RhbnQtPnZhbHVlOwogICAgICAgICBteSAkYXR0ckV4dCA9ICRjb25z
dGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzOwpAQCAtMjg1NywyMyArMjg1NywyMyBAQCBFTkQKICAg
ICB9CiAgICAgaWYgKCRoYXNfY29uc3RhbnRzKSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifTtcblxuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkY29kZUdlbmVyYXRvci0+
R2VuZXJhdGVDb21waWxlVGltZUNoZWNrRm9yRW51bXNJZk5lZWRlZCgkZGF0YU5vZGUpKTsKKyAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbXBpbGVU
aW1lQ2hlY2tGb3JFbnVtc0lmTmVlZGVkKCRpbnRlcmZhY2UpKTsKICAgICB9CiAKICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAifSAvLyBuYW1lc3BhY2UgJHtpbnRlcmZhY2VOYW1lfVY4SW50
ZXJuYWxcblxuIik7CiAKLSAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
TmFtZWRDb25zdHJ1Y3RvciJ9ICYmICEoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VjhDdXN0b21Db25zdHJ1Y3RvciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkN1c3RvbUNvbnN0cnVjdG9yIn0pKSB7Ci0gICAgICAgIEdlbmVyYXRlTmFtZWRDb25zdHJ1Y3Rv
ckNhbGxiYWNrKEB7JGRhdGFOb2RlLT5jb25zdHJ1Y3RvcnN9WzBdLCAkZGF0YU5vZGUpOwotICAg
IH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnN0cnVjdG9yIn0g
JiYgISgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOEN1c3RvbUNvbnN0cnVjdG9y
In0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3Ii
fSkpIHsKLSAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvckNhbGxiYWNrKCRkYXRhTm9kZSk7Ci0g
ICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUZW1wbGF0ZSgkZGF0YU5v
ZGUsICJFdmVudCIpKSB7Ci0gICAgICAgIEdlbmVyYXRlRXZlbnRDb25zdHJ1Y3RvckNhbGxiYWNr
KCRkYXRhTm9kZSk7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JU
ZW1wbGF0ZSgkZGF0YU5vZGUsICJUeXBlZEFycmF5IikpIHsKLSAgICAgICAgR2VuZXJhdGVUeXBl
ZEFycmF5Q29uc3RydWN0b3JDYWxsYmFjaygkZGF0YU5vZGUpOworICAgIGlmICgkaW50ZXJmYWNl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRDb25zdHJ1Y3RvciJ9ICYmICEoJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4Q3VzdG9tQ29uc3RydWN0b3IifSB8fCAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tQ29uc3RydWN0b3IifSkpIHsKKyAgICAg
ICAgR2VuZXJhdGVOYW1lZENvbnN0cnVjdG9yQ2FsbGJhY2soQHskaW50ZXJmYWNlLT5jb25zdHJ1
Y3RvcnN9WzBdLCAkaW50ZXJmYWNlKTsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0b3IifSAmJiAhKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJWOEN1c3RvbUNvbnN0cnVjdG9yIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkN1c3RvbUNvbnN0cnVjdG9yIn0pKSB7CisgICAgICAgIEdlbmVyYXRlQ29u
c3RydWN0b3JDYWxsYmFjaygkaW50ZXJmYWNlKTsKKyAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRv
ci0+SXNDb25zdHJ1Y3RvclRlbXBsYXRlKCRpbnRlcmZhY2UsICJFdmVudCIpKSB7CisgICAgICAg
IEdlbmVyYXRlRXZlbnRDb25zdHJ1Y3RvckNhbGxiYWNrKCRpbnRlcmZhY2UpOworICAgIH0gZWxz
aWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVGVtcGxhdGUoJGludGVyZmFjZSwgIlR5
cGVkQXJyYXkiKSkgeworICAgICAgICBHZW5lcmF0ZVR5cGVkQXJyYXlDb25zdHJ1Y3RvckNhbGxi
YWNrKCRpbnRlcmZhY2UpOwogICAgIH0KIAogICAgIG15ICRhY2Nlc3NfY2hlY2sgPSAiIjsKLSAg
ICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hlY2tTZWN1cml0eSJ9ICYm
ICEoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpKSB7CisgICAgaWYgKCRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5In0gJiYgISgkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NV2luZG93IikpIHsKICAgICAgICAgJGFjY2Vzc19jaGVjayA9ICJpbnN0YW5jZS0+
U2V0QWNjZXNzQ2hlY2tDYWxsYmFja3MoJHt2OEludGVyZmFjZU5hbWV9OjpuYW1lZFNlY3VyaXR5
Q2hlY2ssICR7djhJbnRlcmZhY2VOYW1lfTo6aW5kZXhlZFNlY3VyaXR5Q2hlY2ssIHY4OjpFeHRl
cm5hbDo6TmV3KCYke3Y4SW50ZXJmYWNlTmFtZX06OmluZm8pKTsiOwogICAgIH0KIApAQCAtMjkw
NSw4ICsyOTA1LDggQEAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRl
PiBDb25maWd1cmUke3Y4SW50ZXJmYWNlTmFtZX1UZW1wbGF0ZSgKIAogICAgIHY4OjpMb2NhbDx2
ODo6U2lnbmF0dXJlPiBkZWZhdWx0U2lnbmF0dXJlOwogRU5ECi0gICAgaWYgKCRkYXRhTm9kZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZEF0UnVudGltZSJ9KSB7Ci0gICAgICAgIG15
ICRlbmFibGVfZnVuY3Rpb24gPSBHZXRSdW50aW1lRW5hYmxlRnVuY3Rpb25OYW1lKCRkYXRhTm9k
ZSk7CisgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOEVuYWJsZWRB
dFJ1bnRpbWUifSkgeworICAgICAgICBteSAkZW5hYmxlX2Z1bmN0aW9uID0gR2V0UnVudGltZUVu
YWJsZUZ1bmN0aW9uTmFtZSgkaW50ZXJmYWNlKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
IDw8RU5EKTsKICAgICBpZiAoISR7ZW5hYmxlX2Z1bmN0aW9ufSgpKQogICAgICAgICBkZWZhdWx0
U2lnbmF0dXJlID0gVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVUZW1wbGF0ZShkZXNjLCBc
IlwiLCAkcGFyZW50Q2xhc3NUZW1wbGF0ZSwgJHt2OEludGVyZmFjZU5hbWV9OjppbnRlcm5hbEZp
ZWxkQ291bnQsIDAsIDAsIDAsIDApOwpAQCAtMjk0Miw3ICsyOTQyLDcgQEAgRU5ECiAgICAgVU5V
U0VEX1BBUkFNKGRlZmF1bHRTaWduYXR1cmUpOyAvLyBJbiBzb21lIGNhc2VzLCBpdCB3aWxsIG5v
dCBiZSB1c2VkLgogRU5ECiAKLSAgICBpZiAoSXNDb25zdHJ1Y3RhYmxlKCRkYXRhTm9kZSkpIHsK
KyAgICBpZiAoSXNDb25zdHJ1Y3RhYmxlKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCA8PEVORCk7CiAgICAgZGVzYy0+U2V0Q2FsbEhhbmRsZXIoJHt2OEludGVyZmFj
ZU5hbWV9Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKTsKIEVORApAQCAtMjk5MCwxMCArMjk5MCwxMCBA
QCBFTkQKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNlbmRpZiAvLyAke2NvbmRpdGlv
bmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgIH0KIAotICAgIEdlbmVy
YXRlSW1wbGVtZW50YXRpb25JbmRleGVyKCRkYXRhTm9kZSwgJGluZGV4ZXIpOwotICAgIEdlbmVy
YXRlSW1wbGVtZW50YXRpb25OYW1lZFByb3BlcnR5R2V0dGVyKCRkYXRhTm9kZSwgJG5hbWVkUHJv
cGVydHlHZXR0ZXIpOwotICAgIEdlbmVyYXRlSW1wbGVtZW50YXRpb25DdXN0b21DYWxsKCRkYXRh
Tm9kZSk7Ci0gICAgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbk1hc3F1ZXJhZGVzQXNVbmRlZmluZWQo
JGRhdGFOb2RlKTsKKyAgICBHZW5lcmF0ZUltcGxlbWVudGF0aW9uSW5kZXhlcigkaW50ZXJmYWNl
LCAkaW5kZXhlcik7CisgICAgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbk5hbWVkUHJvcGVydHlHZXR0
ZXIoJGludGVyZmFjZSwgJG5hbWVkUHJvcGVydHlHZXR0ZXIpOworICAgIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb25DdXN0b21DYWxsKCRpbnRlcmZhY2UpOworICAgIEdlbmVyYXRlSW1wbGVtZW50YXRp
b25NYXNxdWVyYWRlc0FzVW5kZWZpbmVkKCRpbnRlcmZhY2UpOwogCiAgICAgIyBEZWZpbmUgb3Vy
IGZ1bmN0aW9ucyB3aXRoIFNldCgpIG9yIFNldEFjY2Vzc29yKCkKICAgICBteSAkdG90YWxfZnVu
Y3Rpb25zID0gMDsKQEAgLTMwMDIsOCArMzAwMiw4IEBAIEVORAogICAgICAgICBuZXh0IGlmICRm
dW5jdGlvbi0+e292ZXJsb2FkSW5kZXh9ID4gMTsKIAogICAgICAgICAkdG90YWxfZnVuY3Rpb25z
Kys7Ci0gICAgICAgIG5leHQgaWYgSXNTdGFuZGFyZEZ1bmN0aW9uKCRkYXRhTm9kZSwgJGZ1bmN0
aW9uKTsKLSAgICAgICAgR2VuZXJhdGVOb25TdGFuZGFyZEZ1bmN0aW9uKCRkYXRhTm9kZSwgJGZ1
bmN0aW9uKTsKKyAgICAgICAgbmV4dCBpZiBJc1N0YW5kYXJkRnVuY3Rpb24oJGludGVyZmFjZSwg
JGZ1bmN0aW9uKTsKKyAgICAgICAgR2VuZXJhdGVOb25TdGFuZGFyZEZ1bmN0aW9uKCRpbnRlcmZh
Y2UsICRmdW5jdGlvbik7CiAgICAgICAgICRudW1fY2FsbGJhY2tzKys7CiAgICAgfQogCkBAIC0z
MTQ2LDcgKzMxNDYsNyBAQCBFTkQKIEVORAogICAgIH0KIAotICAgIGlmICgkZGF0YU5vZGUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifSkgeworICAgIGlmICgkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0pIHsKICAgICAgICAg
IyBNZXNzYWdlUG9ydCBpcyBoYW5kbGVkIGxpa2UgYW4gYWN0aXZlIGRvbSBvYmplY3QgZXZlbiB0
aG91Z2ggaXQgZG9lc24ndCBpbmhlcml0CiAgICAgICAgICMgZnJvbSBBY3RpdmVET01PYmplY3Qs
IHNvIGRvbid0IHRyeSB0byBjYXN0IGl0IHRvIEFjdGl2ZURPTU9iamVjdC4KICAgICAgICAgbXkg
JHJldHVyblZhbHVlID0gJGludGVyZmFjZU5hbWUgZXEgIk1lc3NhZ2VQb3J0IiA/ICIwIiA6ICJ0
b05hdGl2ZShvYmplY3QpIjsKQEAgLTMxNzIsNyArMzE3Miw3IEBAIHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3RUZW1wbGF0ZT4gVjhET01XaW5kb3c6OkdldFNoYWRvd09iamVjdFRlbXBsYXRlKCkK
IEVORAogICAgIH0KIAotICAgIEdlbmVyYXRlVG9WOENvbnZlcnRlcnMoJGRhdGFOb2RlLCAkdjhJ
bnRlcmZhY2VOYW1lLCAkbmF0aXZlVHlwZSk7CisgICAgR2VuZXJhdGVUb1Y4Q29udmVydGVycygk
aW50ZXJmYWNlLCAkdjhJbnRlcmZhY2VOYW1lLCAkbmF0aXZlVHlwZSk7CiAKICAgICBwdXNoKEBp
bXBsQ29udGVudCwgPDxFTkQpOwogCkBAIC0zMTg0LDcgKzMxODQsNyBAQCB2b2lkICR7djhJbnRl
cmZhY2VOYW1lfTo6ZGVyZWZPYmplY3Qodm9pZCogb2JqZWN0KQogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogRU5ECiAKLSAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+
R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZGF0YU5vZGUpOworICAgIG15ICRjb25kaXRpb25h
bFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRl
cmZhY2UpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4jZW5kaWYgLy8gJHtjb25kaXRpb25h
bFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKIAogICAgICMgV2UndmUgYWxyZWFk
eSBhZGRlZCB0aGUgaGVhZGVyIGZvciB0aGlzIGZpbGUgaW4gaW1wbENvbnRlbnRIZWFkZXIsIHNv
IHJlbW92ZQpAQCAtMzE5NCw5ICszMTk0LDkgQEAgRU5ECiAKIHN1YiBHZW5lcmF0ZUhlYWRlckNv
bnRlbnRIZWFkZXIKIHsKLSAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKLSAgICBteSAkdjhJbnRl
cmZhY2VOYW1lID0gIlY4IiAuICRkYXRhTm9kZS0+bmFtZTsKLSAgICBteSAkY29uZGl0aW9uYWxT
dHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZGF0YU5v
ZGUpOworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkdjhJbnRlcmZhY2VOYW1l
ID0gIlY4IiAuICRpbnRlcmZhY2UtPm5hbWU7CisgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0g
JGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSk7CiAK
ICAgICBteSBAaGVhZGVyQ29udGVudEhlYWRlciA9IHNwbGl0KCJcciIsICRoZWFkZXJUZW1wbGF0
ZSk7CiAKQEAgLTMyMDgsOSArMzIwOCw5IEBAIHN1YiBHZW5lcmF0ZUhlYWRlckNvbnRlbnRIZWFk
ZXIKIAogc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb25Db250ZW50SGVhZGVyCiB7Ci0gICAgbXkg
JGRhdGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJWOCIgLiAkZGF0
YU5vZGUtPm5hbWU7Ci0gICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3It
PkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGRhdGFOb2RlKTsKKyAgICBteSAkaW50ZXJmYWNl
ID0gc2hpZnQ7CisgICAgbXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJWOCIgLiAkaW50ZXJmYWNlLT5u
YW1lOworICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0
ZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UpOwogCiAgICAgbXkgQGltcGxDb250ZW50SGVh
ZGVyID0gc3BsaXQoIlxyIiwgJGhlYWRlclRlbXBsYXRlKTsKIApAQCAtMzIyMywxNCArMzIyMywx
NCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIKIHN1YiBHZW5lcmF0
ZUNhbGxiYWNrSGVhZGVyCiB7CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRkYXRh
Tm9kZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAotICAgIG15ICRpbnRl
cmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGlu
dGVyZmFjZS0+bmFtZTsKICAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gIlY4JGludGVyZmFjZU5h
bWUiOwogCiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCi0gICAgcHVzaChA
aGVhZGVyQ29udGVudCwgR2VuZXJhdGVIZWFkZXJDb250ZW50SGVhZGVyKCRkYXRhTm9kZSkpOwor
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIEdlbmVyYXRlSGVhZGVyQ29udGVudEhlYWRlcigkaW50
ZXJmYWNlKSk7CiAKICAgICBteSBAdW5zb3J0ZWRJbmNsdWRlcyA9ICgpOwogICAgIHB1c2goQHVu
c29ydGVkSW5jbHVkZXMsICIjaW5jbHVkZSBcIkFjdGl2ZURPTUNhbGxiYWNrLmhcIiIpOwpAQCAt
MzI1OCwxMCArMzI1OCwxMCBAQCBwdWJsaWM6CiBFTkQKIAogICAgICMgRnVuY3Rpb25zCi0gICAg
bXkgJG51bUZ1bmN0aW9ucyA9IEB7JGRhdGFOb2RlLT5mdW5jdGlvbnN9OworICAgIG15ICRudW1G
dW5jdGlvbnMgPSBAeyRpbnRlcmZhY2UtPmZ1bmN0aW9uc307CiAgICAgaWYgKCRudW1GdW5jdGlv
bnMgPiAwKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgLy8gRnVuY3Rpb25z
XG4iKTsKLSAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5mdW5jdGlv
bnN9KSB7CisgICAgICAgIGZvcmVhY2ggbXkgJGZ1bmN0aW9uIChAeyRpbnRlcmZhY2UtPmZ1bmN0
aW9uc30pIHsKICAgICAgICAgICAgIG15IEBwYXJhbXMgPSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVy
c307CiAgICAgICAgICAgICBpZiAoISRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiQ3VzdG9tIn0gJiYKICAgICAgICAgICAgICAgICAhKEdldE5hdGl2ZVR5cGUoJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUpIGVxICJib29sIikpIHsKQEAgLTMyOTMsMTkgKzMyOTMs
MTkgQEAgRU5ECiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIn1cblxuIik7CiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiNlbmRpZiAvLyAkdjhJbnRlcmZhY2VOYW1lIiAuICJfaFxuXG4iKTsK
IAotICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNv
bmRpdGlvbmFsU3RyaW5nKCRkYXRhTm9kZSk7CisgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0g
JGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSk7CiAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxu
IikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogfQogCiBzdWIgR2VuZXJhdGVDYWxsYmFja0ltcGxl
bWVudGF0aW9uCiB7CiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRkYXRhTm9kZSA9
IHNoaWZ0OwotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOworICAgIG15
ICRpbnRlcmZhY2UgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2Ut
Pm5hbWU7CiAgICAgbXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJWOCRpbnRlcmZhY2VOYW1lIjsKIAog
ICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKLSAgICBwdXNoKEBpbXBsQ29udGVu
dEhlYWRlciwgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIoJGRhdGFOb2RlKSk7
CisgICAgcHVzaChAaW1wbENvbnRlbnRIZWFkZXIsIEdlbmVyYXRlSW1wbGVtZW50YXRpb25Db250
ZW50SGVhZGVyKCRpbnRlcmZhY2UpKTsKIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nLmgi
KTsKQEAgLTMzMjksMTAgKzMzMjksMTAgQEAgJHt2OEludGVyZmFjZU5hbWV9Ojp+JHt2OEludGVy
ZmFjZU5hbWV9KCkKIEVORAogCiAgICAgIyBGdW5jdGlvbnMKLSAgICBteSAkbnVtRnVuY3Rpb25z
ID0gQHskZGF0YU5vZGUtPmZ1bmN0aW9uc307CisgICAgbXkgJG51bUZ1bmN0aW9ucyA9IEB7JGlu
dGVyZmFjZS0+ZnVuY3Rpb25zfTsKICAgICBpZiAoJG51bUZ1bmN0aW9ucyA+IDApIHsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIvLyBGdW5jdGlvbnNcbiIpOwotICAgICAgICBmb3JlYWNo
IG15ICRmdW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKKyAgICAgICAgZm9yZWFj
aCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAg
bXkgQHBhcmFtcyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKICAgICAgICAgICAgIGlmICgk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbSJ9IHx8CiAg
ICAgICAgICAgICAgICAgIShHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT50eXBlKSBlcSAiYm9vbCIpKSB7CkBAIC0zNDA1LDM1ICszNDA1LDM1IEBAIEVORAog
CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbn0gLy8gbmFtZXNwYWNlIFdlYkNvcmVcblxuIik7
CiAKLSAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVD
b25kaXRpb25hbFN0cmluZygkZGF0YU5vZGUpOworICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9
ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UpOwog
ICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4i
KSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiB9CiAKIHN1YiBCYXNlSW50ZXJmYWNlTmFtZQogewot
ICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAot
ICAgIHdoaWxlIChAeyRkYXRhTm9kZS0+cGFyZW50c30pIHsKLSAgICAgICAgJGRhdGFOb2RlID0g
JGNvZGVHZW5lcmF0b3ItPlBhcnNlSW50ZXJmYWNlKEB7JGRhdGFOb2RlLT5wYXJlbnRzfVswXSwg
MSk7CisgICAgd2hpbGUgKEB7JGludGVyZmFjZS0+cGFyZW50c30pIHsKKyAgICAgICAgJGludGVy
ZmFjZSA9ICRjb2RlR2VuZXJhdG9yLT5QYXJzZUludGVyZmFjZShAeyRpbnRlcmZhY2UtPnBhcmVu
dHN9WzBdLCAxKTsKICAgICB9CiAKLSAgICByZXR1cm4gJGRhdGFOb2RlLT5uYW1lOworICAgIHJl
dHVybiAkaW50ZXJmYWNlLT5uYW1lOwogfQogCiBzdWIgR2VuZXJhdGVUb1Y4Q29udmVydGVycwog
ewotICAgIG15ICRkYXRhTm9kZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsK
ICAgICBteSAkdjhJbnRlcmZhY2VOYW1lID0gc2hpZnQ7CiAgICAgbXkgJG5hdGl2ZVR5cGUgPSBz
aGlmdDsKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKKyAgICBteSAk
aW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAKLSAgICBpZiAoJGRhdGFOb2RlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhOb1dyYXBwZXJDYWNoZSJ9IHx8ICRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlN1cHByZXNzVG9KU09iamVjdCJ9KSB7CisgICAgaWYgKCRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOE5vV3JhcHBlckNhY2hlIn0gfHwgJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlN1cHByZXNzVG9KU09iamVjdCJ9KSB7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKICAgICBteSAkY3JlYXRlV3JhcHBlckFyZ3VtZW50VHlwZSA9
IEdldFBhc3NSZWZQdHJUeXBlKCRuYXRpdmVUeXBlKTsKLSAgICBteSAkYmFzZVR5cGUgPSBCYXNl
SW50ZXJmYWNlTmFtZSgkZGF0YU5vZGUpOwotICAgIG15ICRnZXRDYWNoZWRXcmFwcGVyID0gJGNv
ZGVHZW5lcmF0b3ItPklzU3ViVHlwZSgkZGF0YU5vZGUsICJOb2RlIikgPyAiVjhET01XcmFwcGVy
OjpnZXRDYWNoZWRXcmFwcGVyKGltcGwuZ2V0KCkpIiA6ICJET01EYXRhU3RvcmU6OmN1cnJlbnQo
aXNvbGF0ZSktPmdldChpbXBsLmdldCgpKSI7CisgICAgbXkgJGJhc2VUeXBlID0gQmFzZUludGVy
ZmFjZU5hbWUoJGludGVyZmFjZSk7CisgICAgbXkgJGdldENhY2hlZFdyYXBwZXIgPSAkY29kZUdl
bmVyYXRvci0+SXNTdWJUeXBlKCRpbnRlcmZhY2UsICJOb2RlIikgPyAiVjhET01XcmFwcGVyOjpn
ZXRDYWNoZWRXcmFwcGVyKGltcGwuZ2V0KCkpIiA6ICJET01EYXRhU3RvcmU6OmN1cnJlbnQoaXNv
bGF0ZSktPmdldChpbXBsLmdldCgpKSI7CiAKICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQp
OwogCkBAIC0zNDUwLDcgKzM0NTAsNyBAQCBFTkQKIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJG
cmFtZS5oIik7CiAKLSAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3ViVHlwZSgkZGF0YU5vZGUs
ICJEb2N1bWVudCIpKSB7CisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N1YlR5cGUoJGludGVy
ZmFjZSwgIkRvY3VtZW50IikpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsK
ICAgICBpZiAoRnJhbWUqIGZyYW1lID0gaW1wbC0+ZnJhbWUoKSkgewogICAgICAgICBpZiAoZnJh
bWUtPnNjcmlwdCgpLT5pbml0aWFsaXplTWFpbldvcmxkKCkpIHsKQEAgLTM0ODAsOCArMzQ4MCw4
IEBAIEVORAogCiBzdWIgR2V0TmF0aXZlVHlwZUZvckNvbnZlcnNpb25zCiB7Ci0gICAgbXkgJGRh
dGFOb2RlID0gc2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZU5hbWUgPSAkZGF0YU5vZGUtPm5hbWU7
CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGlu
dGVyZmFjZS0+bmFtZTsKIAogICAgICRpbnRlcmZhY2VOYW1lID0gJGNvZGVHZW5lcmF0b3ItPkdl
dFNWR1R5cGVOZWVkaW5nVGVhck9mZigkaW50ZXJmYWNlTmFtZSkgaWYgJGNvZGVHZW5lcmF0b3It
PklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbnRlcmZhY2VOYW1lKTsKICAgICByZXR1cm4gJGlu
dGVyZmFjZU5hbWU7OwpAQCAtMzk1OSw5ICszOTU5LDkgQEAgc3ViIElzV3JhcHBlclR5cGUKIAog
c3ViIEdldFR5cGVOYW1lT2ZFeHRlcm5hbFR5cGVkQXJyYXkKIHsKLSAgICBteSAkZGF0YU5vZGUg
PSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKLSAgICBt
eSAkdmlld1R5cGUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJUeXBlZEFycmF5
In07CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2VOYW1lID0g
JGludGVyZmFjZS0+bmFtZTsKKyAgICBteSAkdmlld1R5cGUgPSAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiVHlwZWRBcnJheSJ9OwogICAgIHJldHVybiAidjg6OmtFeHRlcm5hbEJ5
dGVBcnJheSIgaWYgJHZpZXdUeXBlIGVxICJzaWduZWQgY2hhciIgYW5kICRpbnRlcmZhY2VOYW1l
IGVxICJJbnQ4QXJyYXkiOwogICAgIHJldHVybiAidjg6OmtFeHRlcm5hbFBpeGVsQXJyYXkiIGlm
ICR2aWV3VHlwZSBlcSAidW5zaWduZWQgY2hhciIgYW5kICRpbnRlcmZhY2VOYW1lIGVxICJVaW50
OENsYW1wZWRBcnJheSI7CiAgICAgcmV0dXJuICJ2ODo6a0V4dGVybmFsVW5zaWduZWRCeXRlQXJy
YXkiIGlmICR2aWV3VHlwZSBlcSAidW5zaWduZWQgY2hhciIgYW5kICRpbnRlcmZhY2VOYW1lIGVx
ICJVaW50OEFycmF5IjsKQEAgLTQxMDIsOSArNDEwMiw5IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUK
IHN1YiBXcml0ZURhdGEKIHsKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwogCi0gICAgbXkgJG5hbWUg
PSAkZGF0YU5vZGUtPm5hbWU7CisgICAgbXkgJG5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwogICAg
IG15ICRwcmVmaXggPSBGaWxlTmFtZVByZWZpeDsKICAgICBteSAkaGVhZGVyRmlsZU5hbWUgPSAi
JG91dHB1dEhlYWRlcnNEaXIvJHByZWZpeCRuYW1lLmgiOwogICAgIG15ICRpbXBsRmlsZU5hbWUg
PSAiJG91dHB1dERpci8kcHJlZml4JG5hbWUuY3BwIjsK
</data>
<flag name="review"
          id="190422"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="190441"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>