<?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>164089</bug_id>
          
          <creation_ts>2016-10-27 15:54:23 -0700</creation_ts>
          <short_desc>[WebIDL] Move code generators off of domSignature::type and onto domSignature::idlType</short_desc>
          <delta_ts>2016-10-27 19:06:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1245318</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-10-27 15:54:23 -0700</bug_when>
    <thetext>[WebIDL] Move code generators off of domSignature-&gt;type and onto domSignaturture-&gt;idlType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245371</commentid>
    <comment_count>1</comment_count>
      <attachid>293090</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-10-27 17:41:36 -0700</bug_when>
    <thetext>Created attachment 293090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245395</commentid>
    <comment_count>2</comment_count>
      <attachid>293090</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-27 19:05:57 -0700</bug_when>
    <thetext>Comment on attachment 293090
Patch

Clearing flags on attachment: 293090

Committed r208023: &lt;http://trac.webkit.org/changeset/208023&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245396</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-27 19:06:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293090</attachid>
            <date>2016-10-27 17:41:36 -0700</date>
            <delta_ts>2016-10-27 19:05:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164089-20161027173747.patch</filename>
            <type>text/plain</type>
            <size>144324</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODAxOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDE2LTEwLTI3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gTW92ZSBjb2RlIGdlbmVy
YXRvcnMgb2ZmIG9mIGRvbVNpZ25hdHVyZTo6dHlwZSBhbmQgb250byBkb21TaWduYXR1cmU6Omlk
bFR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
NDA4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1h
a2UgbW9yZSBJRExQYXJzZXIgc3RydWN0dXJlcyBjb250YWluIGRvbVR5cGVzIGZvciB0eXBlIGRl
c2NyaXB0aW9ucywgcmF0aGVyIHRoYW4gc3RyaW5nczoKKyAgICAgICAgLSBkb21JbnRlcmZhY2Ug
Z2FpbnMgdHlwZSBhbmQgcGFyZW50VHlwZS4KKyAgICAgICAgLSBkb21Db25zdGFudCBnYWlucyB0
eXBlLgorICAgICAgICAtIGRvbUVudW0gZ2FpbnMgdHlwZS4KKyAgICAgICAgLSBkb21EaWN0aW9u
YXJ5IGdhaW5zIHR5cGUgYW5kIHBhcmVudFR5cGUuCisKKyAgICAgICAgV2l0aCB0aGVzZSBzdHJ1
Y3RzIG5vdyBjb250YWluaW5nIGRvbVR5cGVzLCB3ZSBjYW4gdXBkYXRlIHRoZSBDb2RlR2VuZXJh
dG9ycyB0byBvcGVyYXRlIG9uCisgICAgICAgIGRvbVR5cGVzIGV4Y2x1c2l2ZWx5LCByYXRoZXIg
dGhhbiB0eXBlcyBhcyBzdHJpbmdzLiBUaGlzIGFsbG93cyB1cyB0byBjb25zaXN0ZW50bHkgaGF2
ZSBhY2Nlc3MKKyAgICAgICAgdG8gaW5mb3JtYXRpb24gc3VjaCBhcyBzdWJ0eXBlcyBhbmQgbnVs
bGFiaWxpdHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG06
CisgICAgICAgIFVwZGF0ZSBoZWxwZXJzIHRvIG9wZXJhdGUgb2YgZG9tVHlwZXMuIFRoZSBvbmUg
ZXhjZXB0aW9uIGlzIFNraXBJbmNsdWRlSGVhZGVyLCB3aGljaAorICAgICAgICBzdGlsbCBvcGVy
YXRlcyBvbiBhIHR5cGUgbmFtZSwgc2luY2UgaXQgaXMgY2FsbGVkIGxhdGUgaW4gY29kZSBnZW5l
cmF0aW9uIG9uIHRoZSB0ZXh0dWFsCisgICAgICAgIGZvcm0gb2YgdHlwZSBuYW1lcyBpbiB0aGUg
aW5jbHVkZSBsaXN0LiAKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtOgorICAgICAgICBVcGRhdGUgdG8gdXNlIGRvbVR5cGVzLgorCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG06CisgICAgICAgIC0gQWRkIGRvbVR5cGUgYWNjZXNz
b3JzIHRvIGRvbUludGVyZmFjZSwgZG9tQ29uc3RhbnQsIGRvbUVudW0sIGFuZCBkb21EaWN0aW9u
YXJ5CisgICAgICAgICAgYW5kIHBvcHVsYXRlIHRoZW0uCisgICAgICAgIC0gUmVtb3ZlIHR5cGUg
YWNjZXNzb3JzIGZyb20gZG9tU2lnbmF0dXJlIChkb21UeXBlIGlzIGFjY2Vzc2libGUgZnJvbSBp
ZGxUeXBlKS4KKyAgICAgICAgLSBSZW1vdmUgc3BlY2lhbCBjYXNlcyBmb3Igc2VxdWVuY2UgYW5k
IEZyb3plbkFycmF5LCBub3cgdGhhdCB0aGV5IGFyZSBhbHdheXMKKyAgICAgICAgICBhY2Nlc3Nl
ZCBhcyBkb21UeXBlcy4KKworICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGw6Cisg
ICAgICAgICogaHRtbC9IVE1MRnJhbWVFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxG
cmFtZU93bmVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVs
ZW1lbnQ6OmdldFNWR0RvY3VtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZU93bmVyRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElGcmFtZUVsZW1lbnQuaWRsOgorICAgICAgICAq
IGh0bWwvSFRNTE9iamVjdEVsZW1lbnQuaWRsOgorICAgICAgICBGaXggaW50ZXJmYWNlcyBkZWNs
YXJpbmcgZ2V0U1ZHRG9jdW1lbnQoKSB0byBjb3JyZWN0bHkgaGF2ZSBpdCByZXR1cm4KKyAgICAg
ICAgYSBEb2N1bWVudCwgcmF0aGVyIHRoYW4gYW4gU1ZHRG9jdW1lbnQsIHdoaWNoIGRvZXMgZXhp
c3QgYW55bW9yZS4gVG8KKyAgICAgICAgbWFrZSB0aGUgYmluZGluZ3MgaGFwcHksIGFsc28gY2hh
bmdlIHRoZSBzaWduYXR1cmUgb2YgSFRNTEZyYW1lT3duZXJFbGVtZW50OjpnZXRTVkdEb2N1bWVu
dAorICAgICAgICB0byByZXR1cm4gYSBEb2N1bWVudC4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICBVcGRhdGUgdGVzdCByZXN1bHRzIHRv
IHJlbW92ZSBzb21lIHJlZHVuZGFudCBoZWFkZXJzIChBbHJlYWR5IGluY2x1ZGVkIEpTRm9vLmgs
IHNvIG5vIG5lZWQgZm9yIEZvby5oKS4KKwogMjAxNi0xMC0yNyAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0ICJpbnNlcnRGcm9tRHJvcCIg
YW5kICJkZWxldGVCeURyYWciIGZvciB0aGUgSW5wdXRFdmVudCBzcGVjCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCShyZXZpc2lv
biAyMDgwMTgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3IucG0JKHdvcmtpbmcgY29weSkKQEAgLTI3Myw4ICsyNzMsOCBAQCBzdWIgRm9yQWxsUGFyZW50
cwogICAgICAgICBteSAkb3V0ZXJJbnRlcmZhY2UgPSBzaGlmdDsKICAgICAgICAgbXkgJGN1cnJl
bnRJbnRlcmZhY2UgPSBzaGlmdDsKIAotICAgICAgICBmb3IgKEB7JGN1cnJlbnRJbnRlcmZhY2Ut
PnBhcmVudHN9KSB7Ci0gICAgICAgICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRfOworICAgICAg
ICBpZiAgKCRjdXJyZW50SW50ZXJmYWNlLT5wYXJlbnRUeXBlKSB7CisgICAgICAgICAgICBteSAk
aW50ZXJmYWNlTmFtZSA9ICRjdXJyZW50SW50ZXJmYWNlLT5wYXJlbnRUeXBlLT5uYW1lOwogICAg
ICAgICAgICAgbXkgJHBhcmVudEludGVyZmFjZSA9ICRvYmplY3QtPlBhcnNlSW50ZXJmYWNlKCRv
dXRlckludGVyZmFjZSwgJGludGVyZmFjZU5hbWUpOwogCiAgICAgICAgICAgICBpZiAoJGJlZm9y
ZVJlY3Vyc2lvbikgewpAQCAtMzI2LDEyICszMjYsOSBAQCBzdWIgSURMRmlsZUZvckludGVyZmFj
ZQogICAgIHJldHVybiAkaWRsRmlsZXMtPnskaW50ZXJmYWNlTmFtZX07CiB9CiAKLXN1YiBHZXRB
dHRyaWJ1dGVGcm9tSW50ZXJmYWNlKCkKK3N1YiBHZXRBdHRyaWJ1dGVGcm9tSW50ZXJmYWNlCiB7
Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRvdXRlckludGVyZmFjZSA9IHNoaWZ0
OwotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7Ci0gICAgbXkgJGF0dHJpYnV0ZU5hbWUg
PSBzaGlmdDsKKyAgICBteSAoJG9iamVjdCwgJG91dGVySW50ZXJmYWNlLCAkaW50ZXJmYWNlTmFt
ZSwgJGF0dHJpYnV0ZU5hbWUpID0gQF87CiAKICAgICBteSAkaW50ZXJmYWNlID0gJG9iamVjdC0+
UGFyc2VJbnRlcmZhY2UoJG91dGVySW50ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSk7CiAgICAgZm9y
IG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKQEAgLTM3NywxOSAr
Mzc0LDE5IEBAIHN1YiBQYXJzZUludGVyZmFjZQogCiBzdWIgU2tpcEluY2x1ZGVIZWFkZXIKIHsK
LSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAo
JG9iamVjdCwgJHR5cGVOYW1lKSA9IEBfOwogCiAgICAgIyBGSVhNRTogVGhpcyBpcyBhIGxvdCBs
aWtlICFJc1JlZlB0clR5cGUuIE1heWJlIHRoZXkgY291bGQgc2hhcmUgY29kZT8KIAotICAgIHJl
dHVybiAxIGlmICRvYmplY3QtPklzUHJpbWl0aXZlVHlwZSgkdHlwZSk7Ci0gICAgcmV0dXJuIDEg
aWYgJG9iamVjdC0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSk7Ci0gICAgcmV0dXJuIDEgaWYgJHR5
cGUgZXEgIkFycmF5IjsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiQnVmZmVyU291cmNlIjsK
LSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIiBvciAkdHlwZSBlcSAiVVNWU3Ry
aW5nIjsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIjsKLSAgICByZXR1
cm4gMSBpZiAkdHlwZSBlcSAiU1ZHTnVtYmVyIjsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAi
YW55IjsKKyAgICByZXR1cm4gMSBpZiAkcHJpbWl0aXZlVHlwZUhhc2h7JHR5cGVOYW1lfTsKKyAg
ICByZXR1cm4gMSBpZiAkaW50ZWdlclR5cGVIYXNoeyR0eXBlTmFtZX07CisgICAgcmV0dXJuIDEg
aWYgJGZsb2F0aW5nUG9pbnRUeXBlSGFzaHskdHlwZU5hbWV9OworICAgIHJldHVybiAxIGlmICR0
eXBlZEFycmF5VHlwZXN7JHR5cGVOYW1lfTsKKyAgICByZXR1cm4gMSBpZiAkdHlwZU5hbWUgZXEg
IkRPTVN0cmluZyI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGVOYW1lIGVxICJVU1ZTdHJpbmciOwor
ICAgIHJldHVybiAxIGlmICR0eXBlTmFtZSBlcSAiQnVmZmVyU291cmNlIjsKKyAgICByZXR1cm4g
MSBpZiAkdHlwZU5hbWUgZXEgIlNWR051bWJlciI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGVOYW1l
IGVxICJhbnkiOwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC0zOTgsOCArMzk1LDEwIEBAIHN1YiBJ
c051bWVyaWNUeXBlCiB7CiAgICAgbXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOwogCi0gICAgcmV0
dXJuIDEgaWYgJGludGVnZXJUeXBlSGFzaHskdHlwZX07Ci0gICAgcmV0dXJuIDEgaWYgJGZsb2F0
aW5nUG9pbnRUeXBlSGFzaHskdHlwZX07CisgICAgYXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYgcmVm
KCR0eXBlKSBuZSAiZG9tVHlwZSI7CisKKyAgICByZXR1cm4gMSBpZiAkaW50ZWdlclR5cGVIYXNo
eyR0eXBlLT5uYW1lfTsKKyAgICByZXR1cm4gMSBpZiAkZmxvYXRpbmdQb2ludFR5cGVIYXNoeyR0
eXBlLT5uYW1lfTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNDA3LDcgKzQwNiw5IEBAIHN1YiBJ
c1N0cmluZ09yRW51bVR5cGUKIHsKICAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87CiAgICAg
Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyIgb3IgJHR5cGUgZXEgIlVTVlN0
cmluZyI7CisgICAgYXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiZG9tVHlw
ZSI7CisKKyAgICByZXR1cm4gMSBpZiAkb2JqZWN0LT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwogICAg
IHJldHVybiAxIGlmICRvYmplY3QtPklzRW51bVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAwOwog
fQpAQCAtNDE2LDcgKzQxNyw5IEBAIHN1YiBJc0ludGVnZXJUeXBlCiB7CiAgICAgbXkgKCRvYmpl
Y3QsICR0eXBlKSA9IEBfOwogCi0gICAgcmV0dXJuIDEgaWYgJGludGVnZXJUeXBlSGFzaHskdHlw
ZX07CisgICAgYXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiZG9tVHlwZSI7
CisKKyAgICByZXR1cm4gMSBpZiAkaW50ZWdlclR5cGVIYXNoeyR0eXBlLT5uYW1lfTsKICAgICBy
ZXR1cm4gMDsKIH0KIApAQCAtNDI0LDcgKzQyNyw5IEBAIHN1YiBJc0Zsb2F0aW5nUG9pbnRUeXBl
CiB7CiAgICAgbXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOwogCi0gICAgcmV0dXJuIDEgaWYgJGZs
b2F0aW5nUG9pbnRUeXBlSGFzaHskdHlwZX07CisgICAgYXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYg
cmVmKCR0eXBlKSBuZSAiZG9tVHlwZSI7CisKKyAgICByZXR1cm4gMSBpZiAkZmxvYXRpbmdQb2lu
dFR5cGVIYXNoeyR0eXBlLT5uYW1lfTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNDMyLDcgKzQz
Nyw5IEBAIHN1YiBJc1ByaW1pdGl2ZVR5cGUKIHsKICAgICBteSAoJG9iamVjdCwgJHR5cGUpID0g
QF87CiAKLSAgICByZXR1cm4gMSBpZiAkcHJpbWl0aXZlVHlwZUhhc2h7JHR5cGV9OworICAgIGFz
c2VydCgiTm90IGEgdHlwZSIpIGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisgICAgcmV0
dXJuIDEgaWYgJHByaW1pdGl2ZVR5cGVIYXNoeyR0eXBlLT5uYW1lfTsKICAgICByZXR1cm4gMSBp
ZiAkb2JqZWN0LT5Jc051bWVyaWNUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gMDsKIH0KQEAgLTQ0
Miw4ICs0NDksMTAgQEAgc3ViIElzU3RyaW5nVHlwZQogewogICAgIG15ICgkb2JqZWN0LCAkdHlw
ZSkgPSBAXzsKIAotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJET01TdHJpbmciOwotICAgIHJl
dHVybiAxIGlmICR0eXBlIGVxICJVU1ZTdHJpbmciOworICAgIGFzc2VydCgiTm90IGEgdHlwZSIp
IGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5h
bWUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlVTVlN0
cmluZyI7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTQ1MSwxMyArNDYwLDE5IEBAIHN1YiBJc0Vu
dW1UeXBlCiB7CiAgICAgbXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOwogCi0gICAgcmV0dXJuIGRl
ZmluZWQoJG9iamVjdC0+R2V0RW51bUJ5TmFtZSgkdHlwZSkpOworICAgIGFzc2VydCgiTm90IGEg
dHlwZSIpIGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisgICAgcmV0dXJuIGRlZmluZWQo
JG9iamVjdC0+R2V0RW51bUJ5VHlwZSgkdHlwZSkpOwogfQogCi1zdWIgR2V0RW51bUJ5TmFtZQor
c3ViIEdldEVudW1CeVR5cGUKIHsKLSAgICBteSAoJG9iamVjdCwgJG5hbWUpID0gQF87Ci0gICAg
CisgICAgbXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOworCisgICAgYXNzZXJ0KCJOb3QgYSB0eXBl
IikgaWYgcmVmKCR0eXBlKSBuZSAiZG9tVHlwZSI7CisKKyAgICBteSAkbmFtZSA9ICR0eXBlLT5u
YW1lOworCiAgICAgZGllICJHZXRFbnVtQnlOYW1lKCkgd2FzIGNhbGxlZCB3aXRoIGFuIHVuZGVm
aW5lZCBlbnVtZXJhdGlvbiBuYW1lIiB1bmxlc3MgZGVmaW5lZCgkbmFtZSk7CiAKICAgICBmb3Ig
bXkgJGVudW1lcmF0aW9uIChAeyR1c2VEb2N1bWVudC0+ZW51bWVyYXRpb25zfSkgewpAQCAtNDk0
LDI0ICs1MDksMTggQEAgc3ViIElzRXh0ZXJuYWxFbnVtVHlwZQogewogICAgIG15ICgkb2JqZWN0
LCAkdHlwZSkgPSBAXzsKIAotICAgIHJldHVybiAkb2JqZWN0LT5Jc0VudW1UeXBlKCR0eXBlKSAm
JiBkZWZpbmVkKCRjYWNoZWRFeHRlcm5hbEVudW1lcmF0aW9ucy0+eyR0eXBlfSk7Ci19Ci0KLXN1
YiBWYWxpZEVudW1WYWx1ZXMKLXsKLSAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87CisgICAg
YXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiZG9tVHlwZSI7CiAKLSAgICBt
eSAkZW51bWVyYXRpb24gPSAkb2JqZWN0LT5HZXRFbnVtQnlOYW1lKCR0eXBlKTsKLSAgICBkaWUg
IlZhbGlkRW51bVZhbHVlcygpIHdhcyB3aXRoIGEgdHlwZSB0aGF0IGlzIG5vdCBhbiBlbnVtZXJh
dGlvbjogIiAuICR0eXBlIHVubGVzcyBkZWZpbmVkKCRlbnVtZXJhdGlvbik7Ci0KLSAgICByZXR1
cm4gJGVudW1lcmF0aW9uLT52YWx1ZXM7CisgICAgcmV0dXJuICRvYmplY3QtPklzRW51bVR5cGUo
JHR5cGUpICYmIGRlZmluZWQoJGNhY2hlZEV4dGVybmFsRW51bWVyYXRpb25zLT57JHR5cGUtPm5h
bWV9KTsKIH0KIAogc3ViIEhhc0VudW1JbXBsZW1lbnRhdGlvbk5hbWVPdmVycmlkZQogewogICAg
IG15ICgkb2JqZWN0LCAkdHlwZSkgPSBAXzsKIAotICAgIHJldHVybiAxIGlmIGV4aXN0cyAkZW51
bVR5cGVJbXBsZW1lbnRhdGlvbk5hbWVPdmVycmlkZXN7JHR5cGV9OworICAgIGFzc2VydCgiTm90
IGEgdHlwZSIpIGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisgICAgcmV0dXJuIDEgaWYg
ZXhpc3RzICRlbnVtVHlwZUltcGxlbWVudGF0aW9uTmFtZU92ZXJyaWRlc3skdHlwZS0+bmFtZX07
CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTUxOSwxMyArNTI4LDIwIEBAIHN1YiBHZXRFbnVtSW1w
bGVtZW50YXRpb25OYW1lT3ZlcnJpZGUKIHsKICAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87
CiAKLSAgICByZXR1cm4gJGVudW1UeXBlSW1wbGVtZW50YXRpb25OYW1lT3ZlcnJpZGVzeyR0eXBl
fTsKKyAgICBhc3NlcnQoIk5vdCBhIHR5cGUiKSBpZiByZWYoJHR5cGUpIG5lICJkb21UeXBlIjsK
KworICAgIHJldHVybiAkZW51bVR5cGVJbXBsZW1lbnRhdGlvbk5hbWVPdmVycmlkZXN7JHR5cGUt
Pm5hbWV9OwogfQogCi1zdWIgR2V0RGljdGlvbmFyeUJ5TmFtZQorc3ViIEdldERpY3Rpb25hcnlC
eVR5cGUKIHsKLSAgICBteSAoJG9iamVjdCwgJG5hbWUpID0gQF87Ci0gICAgZGllICJHZXREaWN0
aW9uYXJ5QnlOYW1lKCkgd2FzIGNhbGxlZCB3aXRoIGFuIHVuZGVmaW5lZCBkaWN0aW9uYXJ5IG5h
bWUiIHVubGVzcyBkZWZpbmVkKCRuYW1lKTsKKyAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87
CisKKyAgICBhc3NlcnQoIk5vdCBhIHR5cGUiKSBpZiByZWYoJHR5cGUpIG5lICJkb21UeXBlIjsK
KworICAgIG15ICRuYW1lID0gJHR5cGUtPm5hbWU7CisKKyAgICBkaWUgIkdldERpY3Rpb25hcnlC
eVR5cGUoKSB3YXMgY2FsbGVkIHdpdGggYW4gdW5kZWZpbmVkIGRpY3Rpb25hcnkgbmFtZSIgdW5s
ZXNzIGRlZmluZWQoJG5hbWUpOwogCiAgICAgZm9yIG15ICRkaWN0aW9uYXJ5IChAeyR1c2VEb2N1
bWVudC0+ZGljdGlvbmFyaWVzfSkgewogICAgICAgICByZXR1cm4gJGRpY3Rpb25hcnkgaWYgJGRp
Y3Rpb25hcnktPm5hbWUgZXEgJG5hbWU7CkBAIC01NjAsNyArNTc2LDkgQEAgc3ViIElzRGljdGlv
bmFyeVR5cGUKIHsKICAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87CiAKLSAgICByZXR1cm4g
JHR5cGUgPX4gL15bQS1aXS8gJiYgZGVmaW5lZCgkb2JqZWN0LT5HZXREaWN0aW9uYXJ5QnlOYW1l
KCR0eXBlKSk7CisgICAgYXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiZG9t
VHlwZSI7CisKKyAgICByZXR1cm4gJHR5cGUtPm5hbWUgPX4gL15bQS1aXS8gJiYgZGVmaW5lZCgk
b2JqZWN0LT5HZXREaWN0aW9uYXJ5QnlUeXBlKCR0eXBlKSk7CiB9CiAKICMgQSBkaWN0aW9uYXJ5
IGRlZmluZWQgaW4gaXRzIG93biBJREwgZmlsZS4KQEAgLTU2OCwxNCArNTg2LDE4IEBAIHN1YiBJ
c0V4dGVybmFsRGljdGlvbmFyeVR5cGUKIHsKICAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87
CiAKLSAgICByZXR1cm4gJG9iamVjdC0+SXNEaWN0aW9uYXJ5VHlwZSgkdHlwZSkgJiYgZGVmaW5l
ZCgkY2FjaGVkRXh0ZXJuYWxEaWN0aW9uYXJpZXMtPnskdHlwZX0pOworICAgIGFzc2VydCgiTm90
IGEgdHlwZSIpIGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisgICAgcmV0dXJuICRvYmpl
Y3QtPklzRGljdGlvbmFyeVR5cGUoJHR5cGUpICYmIGRlZmluZWQoJGNhY2hlZEV4dGVybmFsRGlj
dGlvbmFyaWVzLT57JHR5cGUtPm5hbWV9KTsKIH0KIAogc3ViIEhhc0RpY3Rpb25hcnlJbXBsZW1l
bnRhdGlvbk5hbWVPdmVycmlkZQogewogICAgIG15ICgkb2JqZWN0LCAkdHlwZSkgPSBAXzsKIAot
ICAgIHJldHVybiAxIGlmIGV4aXN0cyAkZGljdGlvbmFyeVR5cGVJbXBsZW1lbnRhdGlvbk5hbWVP
dmVycmlkZXN7JHR5cGV9OworICAgIGFzc2VydCgiTm90IGEgdHlwZSIpIGlmIHJlZigkdHlwZSkg
bmUgImRvbVR5cGUiOworCisgICAgcmV0dXJuIDEgaWYgZXhpc3RzICRkaWN0aW9uYXJ5VHlwZUlt
cGxlbWVudGF0aW9uTmFtZU92ZXJyaWRlc3skdHlwZS0+bmFtZX07CiAgICAgcmV0dXJuIDA7CiB9
CiAKQEAgLTU4Myw3NSArNjA1LDg1IEBAIHN1YiBHZXREaWN0aW9uYXJ5SW1wbGVtZW50YXRpb25O
YW1lT3ZlcnIKIHsKICAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87CiAKLSAgICByZXR1cm4g
JGRpY3Rpb25hcnlUeXBlSW1wbGVtZW50YXRpb25OYW1lT3ZlcnJpZGVzeyR0eXBlfTsKKyAgICBh
c3NlcnQoIk5vdCBhIHR5cGUiKSBpZiByZWYoJHR5cGUpIG5lICJkb21UeXBlIjsKKworICAgIHJl
dHVybiAkZGljdGlvbmFyeVR5cGVJbXBsZW1lbnRhdGlvbk5hbWVPdmVycmlkZXN7JHR5cGUtPm5h
bWV9OwogfQogCiBzdWIgSXNOb25Qb2ludGVyVHlwZQogewogICAgIG15ICgkb2JqZWN0LCAkdHlw
ZSkgPSBAXzsKIAotICAgIHJldHVybiAxIGlmICRub25Qb2ludGVyVHlwZUhhc2h7JHR5cGV9Owor
ICAgIGFzc2VydCgiTm90IGEgdHlwZSIpIGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisg
ICAgcmV0dXJuIDEgaWYgJG5vblBvaW50ZXJUeXBlSGFzaHskdHlwZS0+bmFtZX07CiAgICAgcmV0
dXJuIDEgaWYgJG9iamVjdC0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gMDsK
IH0KIAotc3ViIElzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmCitzdWIgSXNTVkdUeXBlTmVlZGluZ1Rl
YXJPZmZGb3JUeXBlCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICR0eXBlID0g
c2hpZnQ7CisgICAgbXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOworCisgICAgYXNzZXJ0KCJOb3Qg
YSB0eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiZG9tVHlwZSI7CiAKLSAgICByZXR1cm4gMSBpZiBl
eGlzdHMgJHN2Z1R5cGVOZWVkaW5nVGVhck9mZnskdHlwZX07CisgICAgcmV0dXJuIDEgaWYgZXhp
c3RzICRzdmdUeXBlTmVlZGluZ1RlYXJPZmZ7JHR5cGUtPm5hbWV9OwogICAgIHJldHVybiAwOwog
fQogCi1zdWIgSXNTVkdUeXBlV2l0aFdyaXRhYmxlUHJvcGVydGllc05lZWRpbmdUZWFyT2ZmCitz
dWIgSXNTVkdUeXBlV2l0aFdyaXRhYmxlUHJvcGVydGllc05lZWRpbmdUZWFyT2ZmRm9yVHlwZQog
ewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15
ICgkb2JqZWN0LCAkdHlwZSkgPSBAXzsKIAotICAgIHJldHVybiAxIGlmICRzdmdUeXBlV2l0aFdy
aXRhYmxlUHJvcGVydGllc05lZWRpbmdUZWFyT2ZmeyR0eXBlfTsKKyAgICBhc3NlcnQoIk5vdCBh
IHR5cGUiKSBpZiByZWYoJHR5cGUpIG5lICJkb21UeXBlIjsKKworICAgIHJldHVybiAxIGlmICRz
dmdUeXBlV2l0aFdyaXRhYmxlUHJvcGVydGllc05lZWRpbmdUZWFyT2ZmeyR0eXBlLT5uYW1lfTsK
ICAgICByZXR1cm4gMDsKIH0KIAogc3ViIElzVHlwZWRBcnJheVR5cGUKIHsKLSAgICBteSAkb2Jq
ZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAoJG9iamVjdCwgJHR5
cGUpID0gQF87CisKKyAgICBhc3NlcnQoIk5vdCBhIHR5cGUiKSBpZiByZWYoJHR5cGUpIG5lICJk
b21UeXBlIjsKIAotICAgIHJldHVybiAxIGlmICR0eXBlZEFycmF5VHlwZXN7JHR5cGV9OworICAg
IHJldHVybiAxIGlmICR0eXBlZEFycmF5VHlwZXN7JHR5cGUtPm5hbWV9OwogICAgIHJldHVybiAw
OwogfQogCiBzdWIgSXNSZWZQdHJUeXBlCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAg
IG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOworCisgICAg
YXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiZG9tVHlwZSI7CiAKICAgICBy
ZXR1cm4gMCBpZiAkb2JqZWN0LT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAw
IGlmICRvYmplY3QtPklzRGljdGlvbmFyeVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAwIGlmICRv
YmplY3QtPklzRW51bVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAwIGlmICRvYmplY3QtPklzU2Vx
dWVuY2VPckZyb3plbkFycmF5VHlwZSgkdHlwZSk7Ci0gICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEg
IkRPTVN0cmluZyIgb3IgJHR5cGUgZXEgIlVTVlN0cmluZyI7Ci0gICAgcmV0dXJuIDAgaWYgJHR5
cGUgZXEgImFueSI7CisgICAgcmV0dXJuIDAgaWYgJG9iamVjdC0+SXNTdHJpbmdUeXBlKCR0eXBl
KTsKKyAgICByZXR1cm4gMCBpZiAkdHlwZS0+bmFtZSBlcSAiYW55IjsKIAogICAgIHJldHVybiAx
OwogfQogCi1zdWIgR2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmCitzdWIgR2V0U1ZHVHlwZU5lZWRp
bmdUZWFyT2ZmRm9yVHlwZQogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkdHlw
ZSA9IHNoaWZ0OworICAgIG15ICgkb2JqZWN0LCAkdHlwZSkgPSBAXzsKKworICAgIGFzc2VydCgi
Tm90IGEgdHlwZSIpIGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOwogCi0gICAgcmV0dXJuICRz
dmdUeXBlTmVlZGluZ1RlYXJPZmZ7JHR5cGV9IGlmIGV4aXN0cyAkc3ZnVHlwZU5lZWRpbmdUZWFy
T2ZmeyR0eXBlfTsKKyAgICByZXR1cm4gJHN2Z1R5cGVOZWVkaW5nVGVhck9mZnskdHlwZS0+bmFt
ZX0gaWYgZXhpc3RzICRzdmdUeXBlTmVlZGluZ1RlYXJPZmZ7JHR5cGUtPm5hbWV9OwogICAgIHJl
dHVybiB1bmRlZjsKIH0KIAotc3ViIEdldFNWR1dyYXBwZWRUeXBlTmVlZGluZ1RlYXJPZmYKK3N1
YiBHZXRTVkdXcmFwcGVkVHlwZU5lZWRpbmdUZWFyT2ZmRm9yVHlwZQogewotICAgIG15ICRvYmpl
Y3QgPSBzaGlmdDsKLSAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICgkb2JqZWN0LCAkdHlw
ZSkgPSBAXzsKIAotICAgIG15ICRzdmdUeXBlTmVlZGluZ1RlYXJPZmYgPSAkb2JqZWN0LT5HZXRT
VkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpOworICAgIGFzc2VydCgiTm90IGEgdHlwZSIpIGlm
IHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisgICAgbXkgJHN2Z1R5cGVOZWVkaW5nVGVhck9m
ZiA9ICRvYmplY3QtPkdldFNWR1R5cGVOZWVkaW5nVGVhck9mZkZvclR5cGUoJHR5cGUpOwogICAg
IHJldHVybiAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmIGlmIG5vdCAkc3ZnVHlwZU5lZWRpbmdUZWFy
T2ZmOwogCiAgICAgaWYgKCRzdmdUeXBlTmVlZGluZ1RlYXJPZmYgPX4gL1NWR1Byb3BlcnR5VGVh
ck9mZi8pIHsKQEAgLTY2OCw2NCArNzAwLDg0IEBAIHN1YiBHZXRTVkdXcmFwcGVkVHlwZU5lZWRp
bmdUZWFyT2ZmCiAgICAgcmV0dXJuICRzdmdUeXBlTmVlZGluZ1RlYXJPZmY7CiB9CiAKK3N1YiBJ
c1NWR0FuaW1hdGVkVHlwZU5hbWUKK3sKKyAgICBteSAoJG9iamVjdCwgJHR5cGVOYW1lKSA9IEBf
OworCisgICAgcmV0dXJuICR0eXBlTmFtZSA9fiAvXlNWR0FuaW1hdGVkLzsKK30KKwogc3ViIElz
U1ZHQW5pbWF0ZWRUeXBlCiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICR0eXBl
ID0gc2hpZnQ7CisgICAgbXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOworCisgICAgYXNzZXJ0KCJO
b3QgYSB0eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiZG9tVHlwZSI7CiAKLSAgICByZXR1cm4gJHR5
cGUgPX4gL15TVkdBbmltYXRlZC87CisgICAgcmV0dXJuICRvYmplY3QtPklzU1ZHQW5pbWF0ZWRU
eXBlTmFtZSgkdHlwZS0+bmFtZSk7Cit9CisKK3N1YiBJc0NvbnN0cnVjdG9yVHlwZQoreworICAg
IG15ICgkb2JqZWN0LCAkdHlwZSkgPSBAXzsKKworICAgIGFzc2VydCgiTm90IGEgdHlwZSIpIGlm
IHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisgICAgcmV0dXJuICR0eXBlLT5uYW1lID1+IC9D
b25zdHJ1Y3RvciQvOwogfQogCiBzdWIgSXNTZXF1ZW5jZVR5cGUKIHsKLSAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7Ci0gICAgbXkgJHR5cGUgPSBzaGlmdDsKKyAgICBteSAoJG9iamVjdCwgJHR5cGUp
ID0gQF87CiAKLSAgICByZXR1cm4gJHR5cGUgPX4gL15zZXF1ZW5jZTwvOworICAgIGFzc2VydCgi
Tm90IGEgdHlwZSIpIGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisgICAgcmV0dXJuICR0
eXBlLT5uYW1lIGVxICJzZXF1ZW5jZSI7CiB9CiAKIHN1YiBHZXRTZXF1ZW5jZUlubmVyVHlwZQog
ewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15
ICgkb2JqZWN0LCAkdHlwZSkgPSBAXzsKIAotICAgIHJldHVybiAkMSBpZiAkdHlwZSA9fiAvXnNl
cXVlbmNlPChbXHdcZF9cc10rKT4uKi87Ci0gICAgcmV0dXJuICIiOworICAgIGFzc2VydCgiTm90
IGEgdHlwZSIpIGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisgICAgcmV0dXJuIEB7JHR5
cGUtPnN1YnR5cGVzfVswXTsKIH0KIAogc3ViIElzRnJvemVuQXJyYXlUeXBlCiB7Ci0gICAgbXkg
JG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAgbXkgKCRvYmplY3Qs
ICR0eXBlKSA9IEBfOworCisgICAgYXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYgcmVmKCR0eXBlKSBu
ZSAiZG9tVHlwZSI7CiAKLSAgICByZXR1cm4gJHR5cGUgPX4gL15Gcm96ZW5BcnJheTwvOworICAg
ICMgRklYTUU6IFVwZGF0ZSBwYXJzZXIgdG8gbWFrZSB0aGlzIGp1c3QgJ0Zyb3plbkFycmF5Jwor
ICAgIHJldHVybiAkdHlwZS0+bmFtZSBlcSAiRnJvemVuQXJyYXkiOwogfQogCiBzdWIgR2V0RnJv
emVuQXJyYXlJbm5lclR5cGUKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJHR5
cGUgPSBzaGlmdDsKKyAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87CiAKLSAgICByZXR1cm4g
JDEgaWYgJHR5cGUgPX4gL15Gcm96ZW5BcnJheTwoW1x3XGRfXHNdKyk+LiovOwotICAgIHJldHVy
biAiIjsKKyAgICBhc3NlcnQoIk5vdCBhIHR5cGUiKSBpZiByZWYoJHR5cGUpIG5lICJkb21UeXBl
IjsKKworICAgIHJldHVybiBAeyR0eXBlLT5zdWJ0eXBlc31bMF07CiB9CiAKIHN1YiBJc1NlcXVl
bmNlT3JGcm96ZW5BcnJheVR5cGUKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkg
JHR5cGUgPSBzaGlmdDsKKyAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87CisKKyAgICBhc3Nl
cnQoIk5vdCBhIHR5cGUiKSBpZiByZWYoJHR5cGUpIG5lICJkb21UeXBlIjsKIAogICAgIHJldHVy
biAkb2JqZWN0LT5Jc1NlcXVlbmNlVHlwZSgkdHlwZSkgfHwgJG9iamVjdC0+SXNGcm96ZW5BcnJh
eVR5cGUoJHR5cGUpOwogfQogCiBzdWIgR2V0U2VxdWVuY2VPckZyb3plbkFycmF5SW5uZXJUeXBl
CiB7Ci0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICR0eXBlID0gc2hpZnQ7CisgICAg
bXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOwogCi0gICAgcmV0dXJuICRvYmplY3QtPkdldFNlcXVl
bmNlSW5uZXJUeXBlKCR0eXBlKSBpZiAkb2JqZWN0LT5Jc1NlcXVlbmNlVHlwZSgkdHlwZSk7Ci0g
ICAgcmV0dXJuICRvYmplY3QtPkdldEZyb3plbkFycmF5SW5uZXJUeXBlKCR0eXBlKSBpZiAkb2Jq
ZWN0LT5Jc0Zyb3plbkFycmF5VHlwZSgkdHlwZSk7Ci0gICAgcmV0dXJuICIiOworICAgIGFzc2Vy
dCgiTm90IGEgdHlwZSIpIGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUiOworCisgICAgcmV0dXJu
IEB7JHR5cGUtPnN1YnR5cGVzfVswXTsKIH0KIAogIyBUaGVzZSBtYXRjaCBXS19sY2ZpcnN0IGFu
ZCBXS191Y2ZpcnN0IGRlZmluZWQgaW4gYnVpbHRpbnNfZ2VuZXJhdG9yLnB5LgpAQCAtNzM0LDYg
Kzc4Niw3IEBAIHN1YiBHZXRTZXF1ZW5jZU9yRnJvemVuQXJyYXlJbm5lclR5cGUKIHN1YiBXS191
Y2ZpcnN0CiB7CiAgICAgbXkgKCRvYmplY3QsICRwYXJhbSkgPSBAXzsKKwogICAgIG15ICRyZXQg
PSB1Y2ZpcnN0KCRwYXJhbSk7CiAgICAgJHJldCA9fiBzL1htbC9YTUwvIGlmICRyZXQgPX4gL15Y
bWxbXmEtel0vOwogICAgICRyZXQgPX4gcy9TdmcvU1ZHLyBpZiAkcmV0ID1+IC9eU3ZnLzsKQEAg
LTc0Niw2ICs3OTksNyBAQCBzdWIgV0tfdWNmaXJzdAogc3ViIFdLX2xjZmlyc3QKIHsKICAgICBt
eSAoJG9iamVjdCwgJHBhcmFtKSA9IEBfOworCiAgICAgbXkgJHJldCA9IGxjZmlyc3QoJHBhcmFt
KTsKICAgICAkcmV0ID1+IHMvZE9NL2RvbS8gaWYgJHJldCA9fiAvXmRPTS87CiAgICAgJHJldCA9
fiBzL2hUTUwvaHRtbC8gaWYgJHJldCA9fiAvXmhUTUwvOwpAQCAtNzY0LDcgKzgxOCw4IEBAIHN1
YiBXS19sY2ZpcnN0CiAgICAgcmV0dXJuICRyZXQ7CiB9CiAKLXN1YiBzbHVycCB7CitzdWIgc2x1
cnAKK3sKICAgICBteSAkZmlsZSA9IHNoaWZ0OwogCiAgICAgb3BlbiBteSAkZmgsICc8JywgJGZp
bGUgb3IgZGllOwpAQCAtNzc3LDYgKzgzMiw3IEBAIHN1YiBzbHVycCB7CiBzdWIgdHJpbQogewog
ICAgIG15ICRzdHJpbmcgPSBzaGlmdDsKKwogICAgICRzdHJpbmcgPX4gcy9eXHMrfFxzKyQvL2c7
CiAgICAgcmV0dXJuICRzdHJpbmc7CiB9CkBAIC03ODUsNiArODQxLDcgQEAgc3ViIHRyaW0KIHN1
YiBOYW1lc3BhY2VGb3JBdHRyaWJ1dGVOYW1lCiB7CiAgICAgbXkgKCRvYmplY3QsICRpbnRlcmZh
Y2VOYW1lLCAkYXR0cmlidXRlTmFtZSkgPSBAXzsKKwogICAgIHJldHVybiAiU1ZHTmFtZXMiIGlm
ICRpbnRlcmZhY2VOYW1lID1+IC9eU1ZHLyAmJiAhJHN2Z0F0dHJpYnV0ZXNJbkhUTUxIYXNoeyRh
dHRyaWJ1dGVOYW1lfTsKICAgICByZXR1cm4gIkhUTUxOYW1lcyI7CiB9CkBAIC04MjAsNyArODc3
LDcgQEAgc3ViIEF0dHJpYnV0ZU5hbWVGb3JHZXR0ZXJBbmRTZXR0ZXIKICAgICBpZiAoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRBcyJ9KSB7
CiAgICAgICAgICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRBcyJ9OwogICAgIH0KLSAgICBteSAkYXR0cmlidXRl
VHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICBteSAkYXR0cmlidXRlVHlw
ZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aWRsVHlwZTsKIAogICAgICMgU1ZHIGFuaW1hdGVk
IHR5cGVzIG5lZWQgdG8gdXNlIGEgc3BlY2lhbCBhdHRyaWJ1dGUgbmFtZS4KICAgICAjIFRoZSBy
ZXN0IG9mIHRoZSBzcGVjaWFsIGNhc2luZyBmb3IgU1ZHIGFuaW1hdGVkIHR5cGVzIGlzIGhhbmRs
ZWQgaW4gdGhlIGxhbmd1YWdlLXNwZWNpZmljIGNvZGUgZ2VuZXJhdG9ycy4KQEAgLTg1NCwxNiAr
OTExLDE2IEBAIHN1YiBHZXR0ZXJFeHByZXNzaW9uCiAgICAgICAgIHJldHVybiAoJGdlbmVyYXRv
ci0+V0tfbGNmaXJzdCgkZ2VuZXJhdG9yLT5BdHRyaWJ1dGVOYW1lRm9yR2V0dGVyQW5kU2V0dGVy
KCRhdHRyaWJ1dGUpKSk7CiAgICAgfQogCi0gICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmlkbFR5cGU7CiAKICAgICBteSAkZnVuY3Rpb25OYW1lOwogICAgIGlmICgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJVUkwifSkgewogICAg
ICAgICAkZnVuY3Rpb25OYW1lID0gImdldFVSTEF0dHJpYnV0ZSI7Ci0gICAgfSBlbHNpZiAoJGF0
dHJpYnV0ZVR5cGUgZXEgImJvb2xlYW4iKSB7CisgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZVR5cGUt
Pm5hbWUgZXEgImJvb2xlYW4iKSB7CiAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiaGFzQXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbiI7Ci0gICAgfSBlbHNpZiAoJGF0dHJpYnV0ZVR5cGUg
ZXEgImxvbmciKSB7CisgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZVR5cGUtPm5hbWUgZXEgImxvbmci
KSB7CiAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiZ2V0SW50ZWdyYWxBdHRyaWJ1dGUiOwotICAg
IH0gZWxzaWYgKCRhdHRyaWJ1dGVUeXBlIGVxICJ1bnNpZ25lZCBsb25nIikgeworICAgIH0gZWxz
aWYgKCRhdHRyaWJ1dGVUeXBlLT5uYW1lIGVxICJ1bnNpZ25lZCBsb25nIikgewogICAgICAgICAk
ZnVuY3Rpb25OYW1lID0gImdldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUiOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGlmICgkY29udGVudEF0dHJpYnV0ZU5hbWUgZXEgIldlYkNvcmU6OkhUTUxO
YW1lczo6aWRBdHRyIikgewpAQCAtODkyLDE0ICs5NDksMTQgQEAgc3ViIFNldHRlckV4cHJlc3Np
b24KICAgICAgICAgcmV0dXJuICgic2V0IiAuICRnZW5lcmF0b3ItPldLX3VjZmlyc3QoJGdlbmVy
YXRvci0+QXR0cmlidXRlTmFtZUZvckdldHRlckFuZFNldHRlcigkYXR0cmlidXRlKSkpOwogICAg
IH0KIAotICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBl
OworICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxUeXBl
OwogCiAgICAgbXkgJGZ1bmN0aW9uTmFtZTsKLSAgICBpZiAoJGF0dHJpYnV0ZVR5cGUgZXEgImJv
b2xlYW4iKSB7CisgICAgaWYgKCRhdHRyaWJ1dGVUeXBlLT5uYW1lIGVxICJib29sZWFuIikgewog
ICAgICAgICAkZnVuY3Rpb25OYW1lID0gInNldEJvb2xlYW5BdHRyaWJ1dGUiOwotICAgIH0gZWxz
aWYgKCRhdHRyaWJ1dGVUeXBlIGVxICJsb25nIikgeworICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGVU
eXBlLT5uYW1lIGVxICJsb25nIikgewogICAgICAgICAkZnVuY3Rpb25OYW1lID0gInNldEludGVn
cmFsQXR0cmlidXRlIjsKLSAgICB9IGVsc2lmICgkYXR0cmlidXRlVHlwZSBlcSAidW5zaWduZWQg
bG9uZyIpIHsKKyAgICB9IGVsc2lmICgkYXR0cmlidXRlVHlwZS0+bmFtZSBlcSAidW5zaWduZWQg
bG9uZyIpIHsKICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJzZXRVbnNpZ25lZEludGVncmFsQXR0
cmlidXRlIjsKICAgICB9IGVsc2lmICgkZ2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkYXR0
cmlidXRlVHlwZSkpIHsKICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICJzZXRBdHRyaWJ1dGUiOwpA
QCAtOTEyLDI1ICs5NjksMjUgQEAgc3ViIFNldHRlckV4cHJlc3Npb24KIAogc3ViIElzV3JhcHBl
clR5cGUKIHsKLSAgICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gICAgbXkgJHR5cGUgPSBzaGlmdDsK
KyAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87CisKKyAgICBhc3NlcnQoIk5vdCBhIHR5cGUi
KSBpZiByZWYoJHR5cGUpIG5lICJkb21UeXBlIjsKIAogICAgIHJldHVybiAwIGlmICEkb2JqZWN0
LT5Jc1JlZlB0clR5cGUoJHR5cGUpOwogICAgIHJldHVybiAwIGlmICRvYmplY3QtPklzVHlwZWRB
cnJheVR5cGUoJHR5cGUpOwotICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJCdWZmZXJTb3VyY2Ui
OwotICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJVTklPTiI7Ci0gICAgcmV0dXJuIDAgaWYgJHdl
YkNvcmVUeXBlSGFzaHskdHlwZX07CisgICAgcmV0dXJuIDAgaWYgJHR5cGUtPm5hbWUgZXEgIkJ1
ZmZlclNvdXJjZSI7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUtPm5hbWUgZXEgIlVOSU9OIjsKKyAg
ICByZXR1cm4gMCBpZiAkd2ViQ29yZVR5cGVIYXNoeyR0eXBlLT5uYW1lfTsKIAogICAgIHJldHVy
biAxOwogfQogCi1zdWIgZ2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbU5hbWUKK3N1
YiBHZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tTmFtZQogewogICAgICMgRklYTUU6
IEl0J3MgYmFkIHRvIGhhdmUgYSBmdW5jdGlvbiBsaWtlIHRoaXMgdGhhdCBvcGVucyBhbm90aGVy
IElETCBmaWxlIHRvIGFuc3dlciBhIHF1ZXN0aW9uLgogICAgICMgT3ZlcnVzaW5nIHRoaXMga2lu
ZCBvZiBmdW5jdGlvbiBjYW4gbWFrZSB0aGluZ3MgcmVhbGx5IHNsb3cuIExldHMgYXZvaWQgdGhl
c2UgaWYgd2UgY2FuLgogCi0gICAgbXkgJG9iamVjdCA9IHNoaWZ0OwotICAgIG15ICRpbnRlcmZh
Y2VOYW1lID0gc2hpZnQ7CisgICAgbXkgKCRvYmplY3QsICRpbnRlcmZhY2VOYW1lKSA9IEBfOwog
CiAgICAgbXkgJGlkbEZpbGUgPSAkb2JqZWN0LT5JRExGaWxlRm9ySW50ZXJmYWNlKCRpbnRlcmZh
Y2VOYW1lKSBvciBhc3NlcnQoIkNvdWxkIE5PVCBmaW5kIElETCBmaWxlIGZvciBpbnRlcmZhY2Ug
XCIkaW50ZXJmYWNlTmFtZVwiIVxuIik7CiAKQEAgLTk1OSwxOSArMTAxNiwyMSBAQCBzdWIgZ2V0
SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbU5hCiAKIHN1YiBDb21wdXRlSXNDYWxsYmFj
a0ludGVyZmFjZQogewotICBteSAkb2JqZWN0ID0gc2hpZnQ7Ci0gIG15ICR0eXBlID0gc2hpZnQ7
CisgICAgbXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOwogCi0gIHJldHVybiAwIHVubGVzcyAkb2Jq
ZWN0LT5Jc1dyYXBwZXJUeXBlKCR0eXBlKTsKKyAgICBhc3NlcnQoIk5vdCBhIHR5cGUiKSBpZiBy
ZWYoJHR5cGUpIG5lICJkb21UeXBlIjsKIAotICBteSAkaWRsRmlsZSA9ICRvYmplY3QtPklETEZp
bGVGb3JJbnRlcmZhY2UoJHR5cGUpIG9yIGFzc2VydCgiQ291bGQgTk9UIGZpbmQgSURMIGZpbGUg
Zm9yIGludGVyZmFjZSBcIiR0eXBlXCIhXG4iKTsKKyAgICByZXR1cm4gMCB1bmxlc3MgJG9iamVj
dC0+SXNXcmFwcGVyVHlwZSgkdHlwZSk7CiAKLSAgb3BlbiBGSUxFLCAiPCIsICRpZGxGaWxlIG9y
IGRpZTsKLSAgbXkgQGxpbmVzID0gPEZJTEU+OwotICBjbG9zZSBGSUxFOworICAgIG15ICR0eXBl
TmFtZSA9ICR0eXBlLT5uYW1lOworICAgIG15ICRpZGxGaWxlID0gJG9iamVjdC0+SURMRmlsZUZv
ckludGVyZmFjZSgkdHlwZU5hbWUpIG9yIGFzc2VydCgiQ291bGQgTk9UIGZpbmQgSURMIGZpbGUg
Zm9yIGludGVyZmFjZSBcIiR0eXBlTmFtZVwiIVxuIik7CisKKyAgICBvcGVuIEZJTEUsICI8Iiwg
JGlkbEZpbGUgb3IgZGllOworICAgIG15IEBsaW5lcyA9IDxGSUxFPjsKKyAgICBjbG9zZSBGSUxF
OwogCi0gIG15ICRmaWxlQ29udGVudHMgPSBqb2luKCcnLCBAbGluZXMpOwotICByZXR1cm4gKCRm
aWxlQ29udGVudHMgPX4gL2NhbGxiYWNrXHMraW50ZXJmYWNlXHMrKFx3KykvZ3MpOworICAgIG15
ICRmaWxlQ29udGVudHMgPSBqb2luKCcnLCBAbGluZXMpOworICAgIHJldHVybiAoJGZpbGVDb250
ZW50cyA9fiAvY2FsbGJhY2tccytpbnRlcmZhY2VccysoXHcrKS9ncyk7CiB9CiAKIG15ICVpc0Nh
bGxiYWNrSW50ZXJmYWNlID0gKCk7CkBAIC05ODQsOSArMTA0MywxMSBAQCBzdWIgSXNDYWxsYmFj
a0ludGVyZmFjZQogCiAgICAgbXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOwogCi0gICAgcmV0dXJu
ICRpc0NhbGxiYWNrSW50ZXJmYWNleyR0eXBlfSBpZiBleGlzdHMgJGlzQ2FsbGJhY2tJbnRlcmZh
Y2V7JHR5cGV9OwotICAgIG15ICRyZXN1bHQgPSBDb21wdXRlSXNDYWxsYmFja0ludGVyZmFjZSgk
b2JqZWN0LCAkdHlwZSk7Ci0gICAgJGlzQ2FsbGJhY2tJbnRlcmZhY2V7JHR5cGV9ID0gJHJlc3Vs
dDsKKyAgICBhc3NlcnQoIk5vdCBhIHR5cGUiKSBpZiByZWYoJHR5cGUpIG5lICJkb21UeXBlIjsK
KworICAgIHJldHVybiAkaXNDYWxsYmFja0ludGVyZmFjZXskdHlwZS0+bmFtZX0gaWYgZXhpc3Rz
ICRpc0NhbGxiYWNrSW50ZXJmYWNleyR0eXBlLT5uYW1lfTsKKyAgICBteSAkcmVzdWx0ID0gJG9i
amVjdC0+Q29tcHV0ZUlzQ2FsbGJhY2tJbnRlcmZhY2UoJHR5cGUpOworICAgICRpc0NhbGxiYWNr
SW50ZXJmYWNleyR0eXBlLT5uYW1lfSA9ICRyZXN1bHQ7CiAgICAgcmV0dXJuICRyZXN1bHQ7CiB9
CiAKQEAgLTk5NSwzMiArMTA1NiwzNCBAQCBzdWIgSXNDYWxsYmFja0ludGVyZmFjZQogIyBodHRw
czovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpZGwtY2FsbGJhY2stZnVuY3Rpb25zCiBzdWIg
Q29tcHV0ZUlzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJbnRlcmZhY2UKIHsKLSAgbXkgJG9iamVjdCA9
IHNoaWZ0OwotICBteSAkdHlwZSA9IHNoaWZ0OworICAgIG15ICgkb2JqZWN0LCAkdHlwZSkgPSBA
XzsKKworICAgIGFzc2VydCgiTm90IGEgdHlwZSIpIGlmIHJlZigkdHlwZSkgbmUgImRvbVR5cGUi
OworCisgICAgcmV0dXJuIDAgdW5sZXNzICRvYmplY3QtPklzQ2FsbGJhY2tJbnRlcmZhY2UoJHR5
cGUpOworCisgICAgbXkgJHR5cGVOYW1lID0gJHR5cGUtPm5hbWU7CisgICAgbXkgJGlkbEZpbGUg
PSAkb2JqZWN0LT5JRExGaWxlRm9ySW50ZXJmYWNlKCR0eXBlTmFtZSkgb3IgYXNzZXJ0KCJDb3Vs
ZCBOT1QgZmluZCBJREwgZmlsZSBmb3IgaW50ZXJmYWNlIFwiJHR5cGVOYW1lXCIhXG4iKTsKIAot
ICByZXR1cm4gMCB1bmxlc3MgJG9iamVjdC0+SXNDYWxsYmFja0ludGVyZmFjZSgkdHlwZSk7Cisg
ICAgb3BlbiBGSUxFLCAiPCIsICRpZGxGaWxlIG9yIGRpZTsKKyAgICBteSBAbGluZXMgPSA8RklM
RT47CisgICAgY2xvc2UgRklMRTsKIAotICBteSAkaWRsRmlsZSA9ICRvYmplY3QtPklETEZpbGVG
b3JJbnRlcmZhY2UoJHR5cGUpIG9yIGFzc2VydCgiQ291bGQgTk9UIGZpbmQgSURMIGZpbGUgZm9y
IGludGVyZmFjZSBcIiR0eXBlXCIhXG4iKTsKKyAgICBteSAkZmlsZUNvbnRlbnRzID0gam9pbign
JywgQGxpbmVzKTsKKyAgICBpZiAoJGZpbGVDb250ZW50cyA9fiAvXFsoLiopXF1ccytjYWxsYmFj
a1xzK2ludGVyZmFjZVxzKyhcdyspL2dzKSB7CisgICAgICAgIG15IEBwYXJ0cyA9IHNwbGl0KCcs
JywgJDEpOworICAgICAgICBmb3JlYWNoIG15ICRwYXJ0IChAcGFydHMpIHsKKyAgICAgICAgICAg
IG15IEBrZXlWYWx1ZSA9IHNwbGl0KCc9JywgJHBhcnQpOworICAgICAgICAgICAgbXkgJGtleSA9
IHRyaW0oJGtleVZhbHVlWzBdKTsKKyAgICAgICAgICAgIG5leHQgdW5sZXNzIGxlbmd0aCgka2V5
KTsKKyAgICAgICAgICAgIG15ICR2YWx1ZSA9ICJWQUxVRV9JU19NSVNTSU5HIjsKKyAgICAgICAg
ICAgICR2YWx1ZSA9IHRyaW0oJGtleVZhbHVlWzFdKSBpZiBAa2V5VmFsdWUgPiAxOwogCi0gIG9w
ZW4gRklMRSwgIjwiLCAkaWRsRmlsZSBvciBkaWU7Ci0gIG15IEBsaW5lcyA9IDxGSUxFPjsKLSAg
Y2xvc2UgRklMRTsKLQotICBteSAkZmlsZUNvbnRlbnRzID0gam9pbignJywgQGxpbmVzKTsKLSAg
aWYgKCRmaWxlQ29udGVudHMgPX4gL1xbKC4qKVxdXHMrY2FsbGJhY2tccytpbnRlcmZhY2Vccyso
XHcrKS9ncykgewotICAgICAgbXkgQHBhcnRzID0gc3BsaXQoJywnLCAkMSk7Ci0gICAgICBmb3Jl
YWNoIG15ICRwYXJ0IChAcGFydHMpIHsKLSAgICAgICAgICBteSBAa2V5VmFsdWUgPSBzcGxpdCgn
PScsICRwYXJ0KTsKLSAgICAgICAgICBteSAka2V5ID0gdHJpbSgka2V5VmFsdWVbMF0pOwotICAg
ICAgICAgIG5leHQgdW5sZXNzIGxlbmd0aCgka2V5KTsKLSAgICAgICAgICBteSAkdmFsdWUgPSAi
VkFMVUVfSVNfTUlTU0lORyI7Ci0gICAgICAgICAgJHZhbHVlID0gdHJpbSgka2V5VmFsdWVbMV0p
IGlmIEBrZXlWYWx1ZSA+IDE7Ci0KLSAgICAgICAgICByZXR1cm4gMSBpZiAoJGtleSBlcSAiQ2Fs
bGJhY2siICYmICR2YWx1ZSBlcSAiRnVuY3Rpb25Pbmx5Iik7Ci0gICAgICB9Ci0gIH0KKyAgICAg
ICAgICAgIHJldHVybiAxIGlmICgka2V5IGVxICJDYWxsYmFjayIgJiYgJHZhbHVlIGVxICJGdW5j
dGlvbk9ubHkiKTsKKyAgICAgICAgfQorICAgIH0KIAotICByZXR1cm4gMDsKKyAgICByZXR1cm4g
MDsKIH0KIAogbXkgJWlzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJbnRlcmZhY2UgPSAoKTsKQEAgLTEw
MzMsMTYgKzEwOTYsMTcgQEAgc3ViIElzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJbnRlcmZhY2UKIAog
ICAgIG15ICgkb2JqZWN0LCAkdHlwZSkgPSBAXzsKIAotICAgIHJldHVybiAkaXNGdW5jdGlvbk9u
bHlDYWxsYmFja0ludGVyZmFjZXskdHlwZX0gaWYgZXhpc3RzICRpc0Z1bmN0aW9uT25seUNhbGxi
YWNrSW50ZXJmYWNleyR0eXBlfTsKLSAgICBteSAkcmVzdWx0ID0gQ29tcHV0ZUlzRnVuY3Rpb25P
bmx5Q2FsbGJhY2tJbnRlcmZhY2UoJG9iamVjdCwgJHR5cGUpOwotICAgICRpc0Z1bmN0aW9uT25s
eUNhbGxiYWNrSW50ZXJmYWNleyR0eXBlfSA9ICRyZXN1bHQ7CisgICAgYXNzZXJ0KCJOb3QgYSB0
eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiZG9tVHlwZSI7CisKKyAgICByZXR1cm4gJGlzRnVuY3Rp
b25Pbmx5Q2FsbGJhY2tJbnRlcmZhY2V7JHR5cGUtPm5hbWV9IGlmIGV4aXN0cyAkaXNGdW5jdGlv
bk9ubHlDYWxsYmFja0ludGVyZmFjZXskdHlwZS0+bmFtZX07CisgICAgbXkgJHJlc3VsdCA9ICRv
YmplY3QtPkNvbXB1dGVJc0Z1bmN0aW9uT25seUNhbGxiYWNrSW50ZXJmYWNlKCR0eXBlKTsKKyAg
ICAkaXNGdW5jdGlvbk9ubHlDYWxsYmFja0ludGVyZmFjZXskdHlwZS0+bmFtZX0gPSAkcmVzdWx0
OwogICAgIHJldHVybiAkcmVzdWx0OwogfQogCiBzdWIgR2VuZXJhdGVDb25kaXRpb25hbFN0cmlu
ZwogewotICAgIG15ICRnZW5lcmF0b3IgPSBzaGlmdDsKLSAgICBteSAkbm9kZSA9IHNoaWZ0Owor
ICAgIG15ICgkZ2VuZXJhdG9yLCAkbm9kZSkgPSBAXzsKIAogICAgIG15ICRjb25kaXRpb25hbCA9
ICRub2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKICAgICBpZiAoJGNv
bmRpdGlvbmFsKSB7CkBAIC0xMDU0LDggKzExMTgsNyBAQCBzdWIgR2VuZXJhdGVDb25kaXRpb25h
bFN0cmluZwogCiBzdWIgR2VuZXJhdGVDb25kaXRpb25hbFN0cmluZ0Zyb21BdHRyaWJ1dGVWYWx1
ZQogewotICAgIG15ICRnZW5lcmF0b3IgPSBzaGlmdDsKLSAgICBteSAkY29uZGl0aW9uYWwgPSBz
aGlmdDsKKyAgICBteSAoJGdlbmVyYXRvciwgJGNvbmRpdGlvbmFsKSA9IEBfOwogCiAgICAgbXkg
JWRpc2p1bmN0aW9uOwogICAgIG1hcCB7CkBAIC0xMTE0LDIwICsxMTc3LDE5IEBAIHN1YiBFeHRl
bmRlZEF0dHJpYnV0ZUNvbnRhaW5zCiAjIHNob3VsZCB1c2UgdGhlIHJlYWwgaW50ZXJmYWNlIG5h
bWUgaW4gdGhlIElETCBmaWxlcyBhbmQgdGhlbiB1c2UgSW1wbGVtZW50ZWRBcyB0byBtYXAgdGhp
cyB0byB0aGUgaW1wbGVtZW50YXRpb24gbmFtZS4KIHN1YiBHZXRWaXNpYmxlSW50ZXJmYWNlTmFt
ZQogewotICAgIG15ICRvYmplY3QgPSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7
CisgICAgbXkgKCRvYmplY3QsICRpbnRlcmZhY2UpID0gQF87CisKICAgICBteSAkaW50ZXJmYWNl
TmFtZSA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbnRlcmZhY2VOYW1lIn07
CiAgICAgcmV0dXJuICRpbnRlcmZhY2VOYW1lID8gJGludGVyZmFjZU5hbWUgOiAkaW50ZXJmYWNl
LT5uYW1lOwogfQogCiBzdWIgSW5oZXJpdHNJbnRlcmZhY2UKIHsKLSAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gc2hpZnQ7Ci0gICAgbXkgJGZvdW5kID0gMDsKKyAgICBteSAoJG9iamVjdCwgJGludGVyZmFj
ZSwgJGludGVyZmFjZU5hbWUpID0gQF87CiAKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFt
ZSBlcSAkaW50ZXJmYWNlLT5uYW1lOworCisgICAgbXkgJGZvdW5kID0gMDsKICAgICAkb2JqZWN0
LT5Gb3JBbGxQYXJlbnRzKCRpbnRlcmZhY2UsIHN1YiB7CiAgICAgICAgIG15ICRjdXJyZW50SW50
ZXJmYWNlID0gc2hpZnQ7CiAgICAgICAgIGlmICgkY3VycmVudEludGVyZmFjZS0+bmFtZSBlcSAk
aW50ZXJmYWNlTmFtZSkgewpAQCAtMTE0MSwxMiArMTIwMywxMSBAQCBzdWIgSW5oZXJpdHNJbnRl
cmZhY2UKIAogc3ViIEluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUKIHsKLSAgICBteSAkb2JqZWN0
ID0gc2hpZnQ7Ci0gICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZSA9IHNoaWZ0OwotICAgIG15ICRmb3VuZCA9IDA7CisgICAgbXkgKCRvYmplY3QsICRp
bnRlcmZhY2UsICRleHRlbmRlZEF0dHJpYnV0ZSkgPSBAXzsKIAogICAgIHJldHVybiAxIGlmICRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyRleHRlbmRlZEF0dHJpYnV0ZX07CisKKyAg
ICBteSAkZm91bmQgPSAwOwogICAgICRvYmplY3QtPkZvckFsbFBhcmVudHMoJGludGVyZmFjZSwg
c3ViIHsKICAgICAgICAgbXkgJGN1cnJlbnRJbnRlcmZhY2UgPSBzaGlmdDsKICAgICAgICAgaWYg
KCRjdXJyZW50SW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnskZXh0ZW5kZWRBdHRyaWJ1
dGV9KSB7CkBAIC0xMTYwLDE0ICsxMjIxLDEyIEBAIHN1YiBJbmhlcml0c0V4dGVuZGVkQXR0cmli
dXRlCiAKIHN1YiBTaG91bGRQYXNzV3JhcHBlckJ5UmVmZXJlbmNlCiB7Ci0gICAgbXkgJG9iamVj
dCA9IHNoaWZ0OwotICAgIG15ICRwYXJhbWV0ZXIgPSBzaGlmdDsKLSAgICBteSAkaW50ZXJmYWNl
ID0gc2hpZnQ7CisgICAgbXkgKCRvYmplY3QsICRwYXJhbWV0ZXIsICRpbnRlcmZhY2UpID0gQF87
CiAKICAgICByZXR1cm4gMCBpZiAkcGFyYW1ldGVyLT5pc1ZhcmlhZGljOwogICAgIHJldHVybiAw
IGlmICRwYXJhbWV0ZXItPmlzTnVsbGFibGU7Ci0gICAgcmV0dXJuIDAgaWYgISRvYmplY3QtPklz
V3JhcHBlclR5cGUoJHBhcmFtZXRlci0+dHlwZSkgJiYgISRvYmplY3QtPklzVHlwZWRBcnJheVR5
cGUoJHBhcmFtZXRlci0+dHlwZSk7Ci0gICAgcmV0dXJuIDAgaWYgJG9iamVjdC0+SXNTVkdUeXBl
TmVlZGluZ1RlYXJPZmYoJHBhcmFtZXRlci0+dHlwZSk7CisgICAgcmV0dXJuIDAgaWYgISRvYmpl
Y3QtPklzV3JhcHBlclR5cGUoJHBhcmFtZXRlci0+aWRsVHlwZSkgJiYgISRvYmplY3QtPklzVHlw
ZWRBcnJheVR5cGUoJHBhcmFtZXRlci0+aWRsVHlwZSk7CisgICAgcmV0dXJuIDAgaWYgJG9iamVj
dC0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmZGb3JUeXBlKCRwYXJhbWV0ZXItPmlkbFR5cGUpOwog
CiAgICAgcmV0dXJuIDE7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjA4MDE4KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29w
eSkKQEAgLTEzNiw3ICsxMzYsNyBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbgogewogICAgIG15
ICgkb2JqZWN0LCAkZW51bWVyYXRpb24pID0gQF87CiAKLSAgICBteSAkY2xhc3NOYW1lID0gR2V0
RW51bWVyYXRpb25DbGFzc05hbWUoJGVudW1lcmF0aW9uLT5uYW1lKTsKKyAgICBteSAkY2xhc3NO
YW1lID0gR2V0RW51bWVyYXRpb25DbGFzc05hbWUoJGVudW1lcmF0aW9uLT50eXBlKTsKICAgICAk
b2JqZWN0LT5HZW5lcmF0ZUVudW1lcmF0aW9uSGVhZGVyKCRlbnVtZXJhdGlvbiwgJGNsYXNzTmFt
ZSk7CiAgICAgJG9iamVjdC0+R2VuZXJhdGVFbnVtZXJhdGlvbkltcGxlbWVudGF0aW9uKCRlbnVt
ZXJhdGlvbiwgJGNsYXNzTmFtZSk7CiB9CkBAIC0xNDUsNyArMTQ1LDcgQEAgc3ViIEdlbmVyYXRl
RGljdGlvbmFyeQogewogICAgIG15ICgkb2JqZWN0LCAkZGljdGlvbmFyeSwgJGVudW1lcmF0aW9u
cykgPSBAXzsKIAotICAgIG15ICRjbGFzc05hbWUgPSBHZXREaWN0aW9uYXJ5Q2xhc3NOYW1lKCRk
aWN0aW9uYXJ5LT5uYW1lKTsKKyAgICBteSAkY2xhc3NOYW1lID0gR2V0RGljdGlvbmFyeUNsYXNz
TmFtZSgkZGljdGlvbmFyeS0+dHlwZSk7CiAgICAgJG9iamVjdC0+R2VuZXJhdGVEaWN0aW9uYXJ5
SGVhZGVyKCRkaWN0aW9uYXJ5LCAkY2xhc3NOYW1lLCAkZW51bWVyYXRpb25zKTsKICAgICAkb2Jq
ZWN0LT5HZW5lcmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbigkZGljdGlvbmFyeSwgJGNsYXNz
TmFtZSwgJGVudW1lcmF0aW9ucyk7CiB9CkBAIC0xNzksMTQgKzE3OSwxMyBAQCBzdWIgQWRkU3Ry
aW5naWZpZXJPcGVyYXRpb25JZk5lZWRlZAogICAgICAgICAkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0
LT57SW1wbGVtZW50ZWRBc30gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CiAgICAgICAg
ICRzdHJpbmdpZmllci0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0
cmlidXRlTGlzdCk7CiAgICAgICAgICRzdHJpbmdpZmllci0+c2lnbmF0dXJlLT5uYW1lKCJ0b1N0
cmluZyIpOwotICAgICAgICBkaWUgInN0cmluZ2lmaWVyIGNhbiBvbmx5IGJlIHVzZWQgb24gYXR0
cmlidXRlcyBvZiBTdHJpbmcgdHlwZXMiIHVubGVzcyAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdU
eXBlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7CisgICAgICAgIGRpZSAic3RyaW5naWZp
ZXIgY2FuIG9ubHkgYmUgdXNlZCBvbiBhdHRyaWJ1dGVzIG9mIFN0cmluZyB0eXBlcyIgdW5sZXNz
ICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxU
eXBlKTsKICAgICAgICAgCiAgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBJRExQYXJz
ZXIncyBjbG9uZVR5cGUuCiAgICAgICAgIG15ICR0eXBlID0gZG9tVHlwZS0+bmV3KCk7Ci0gICAg
ICAgICR0eXBlLT5uYW1lKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7CisgICAgICAgICR0
eXBlLT5uYW1lKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aWRsVHlwZS0+bmFtZSk7CiAKICAgICAg
ICAgJHN0cmluZ2lmaWVyLT5zaWduYXR1cmUtPmlkbFR5cGUoJHR5cGUpOwotICAgICAgICAkc3Ry
aW5naWZpZXItPnNpZ25hdHVyZS0+dHlwZSgkdHlwZS0+bmFtZSk7CiAKICAgICAgICAgcHVzaChA
eyRpbnRlcmZhY2UtPmZ1bmN0aW9uc30sICRzdHJpbmdpZmllcik7CiAgICAgICAgIGxhc3Q7CkBA
IC0yMTAsNyArMjA5LDcgQEAgc3ViIEdldFBhcmVudENsYXNzTmFtZQogCiAgICAgcmV0dXJuICRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0pTTGVnYWN5UGFyZW50fSBpZiAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntKU0xlZ2FjeVBhcmVudH07CiAgICAgcmV0dXJuICJK
U0RPTU9iamVjdCIgdW5sZXNzIE5lZWRzSW1wbGVtZW50YXRpb25DbGFzcygkaW50ZXJmYWNlKTsK
LSAgICByZXR1cm4gIkpTRE9NV3JhcHBlcjwiIC4gR2V0SW1wbENsYXNzTmFtZSgkaW50ZXJmYWNl
LT5uYW1lKSAuICI+IiB1bmxlc3MgJGludGVyZmFjZS0+cGFyZW50OworICAgIHJldHVybiAiSlNE
T01XcmFwcGVyPCIgLiBHZXRJbXBsQ2xhc3NOYW1lKCRpbnRlcmZhY2UpIC4gIj4iIHVubGVzcyAk
aW50ZXJmYWNlLT5wYXJlbnQ7CiAgICAgcmV0dXJuICJKUyIgLiAkaW50ZXJmYWNlLT5wYXJlbnQ7
CiB9CiAKQEAgLTIyOCw1MiArMjI3LDM1IEBAIHN1YiBHZXRKU0NhbGxiYWNrRGF0YVR5cGUKICAg
ICByZXR1cm4gJGNhbGxiYWNrSW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJc1dlYWtD
YWxsYmFja30gPyAiSlNDYWxsYmFja0RhdGFXZWFrIiA6ICJKU0NhbGxiYWNrRGF0YVN0cm9uZyI7
CiB9CiAKLXN1YiBBZGRJbmNsdWRlc0ZvclR5cGVJbkltcGwKK3N1YiBHZXRFeHBvcnRNYWNyb0Zv
ckpTQ2xhc3MKIHsKLSAgICBteSAkdHlwZSA9IHNoaWZ0OwotICAgIG15ICRpc0NhbGxiYWNrID0g
QF8gPyBzaGlmdCA6IDA7Ci0gICAgCi0gICAgQWRkSW5jbHVkZXNGb3JUeXBlKCR0eXBlLCAkaXND
YWxsYmFjaywgXCVpbXBsSW5jbHVkZXMpOworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKwor
ICAgIHJldHVybiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntFeHBvcnRNYWNyb30g
LiAiICIgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RXhwb3J0TWFjcm99Owor
ICAgIHJldHVybiAiIjsKIH0KIAotc3ViIEFkZEluY2x1ZGVzRm9yVHlwZUluSGVhZGVyCitzdWIg
QWRkSW5jbHVkZXNGb3JJbXBsZW1lbnRhdGlvblR5cGVJbkltcGwKIHsKLSAgICBteSAkdHlwZSA9
IHNoaWZ0OwotICAgIG15ICRpc0NhbGxiYWNrID0gQF8gPyBzaGlmdCA6IDA7CisgICAgbXkgJGlt
cGxlbWVudGF0aW9uVHlwZSA9IHNoaWZ0OwogICAgIAotICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgk
dHlwZSwgJGlzQ2FsbGJhY2ssIFwlaGVhZGVySW5jbHVkZXMpOworICAgIEFkZEluY2x1ZGVzRm9y
SW1wbGVtZW50YXRpb25UeXBlKCRpbXBsZW1lbnRhdGlvblR5cGUsIFwlaW1wbEluY2x1ZGVzKTsK
IH0KIAotc3ViIEdldEV4cG9ydE1hY3JvRm9ySlNDbGFzcworc3ViIEFkZEluY2x1ZGVzRm9ySW1w
bGVtZW50YXRpb25UeXBlSW5IZWFkZXIKIHsKLSAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0K
LSAgICByZXR1cm4gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RXhwb3J0TWFjcm99
IC4gIiAiIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0V4cG9ydE1hY3JvfTsK
LSAgICByZXR1cm4gIiI7CisgICAgbXkgJGltcGxlbWVudGF0aW9uVHlwZSA9IHNoaWZ0OworICAg
IAorICAgIEFkZEluY2x1ZGVzRm9ySW1wbGVtZW50YXRpb25UeXBlKCRpbXBsZW1lbnRhdGlvblR5
cGUsIFwlaGVhZGVySW5jbHVkZXMpOwogfQogCi1zdWIgQWRkSW5jbHVkZXNGb3JUeXBlCitzdWIg
QWRkSW5jbHVkZXNGb3JJbXBsZW1lbnRhdGlvblR5cGUKIHsKLSAgICBteSAkdHlwZSA9IHNoaWZ0
OwotICAgIG15ICRpc0NhbGxiYWNrID0gc2hpZnQ7Ci0gICAgbXkgJGluY2x1ZGVzUmVmID0gc2hp
ZnQ7CisgICAgbXkgKCRpbXBsZW1lbnRhdGlvblR5cGUsICRpbmNsdWRlc1JlZikgPSBAXzsKIAot
ICAgIHJldHVybiBpZiAkY29kZUdlbmVyYXRvci0+U2tpcEluY2x1ZGVIZWFkZXIoJHR5cGUpOwot
ICAgIAotICAgICMgV2hlbiB3ZSdyZSBmaW5pc2hlZCB3aXRoIHRoZSBvbmUtZmlsZS1wZXItY2xh
c3MgcmVvcmdhbml6YXRpb24sIHdlIHdvbid0IG5lZWQgdGhlc2Ugc3BlY2lhbCBjYXNlcy4KLSAg
ICBpZiAoJGlzQ2FsbGJhY2sgJiYgJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJHR5cGUp
KSB7Ci0gICAgICAgICRpbmNsdWRlc1JlZi0+eyJKUyR7dHlwZX0uaCJ9ID0gMTsKLSAgICB9IGVs
c2lmICgkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJvemVuQXJyYXlUeXBlKCR0eXBlKSkg
ewotICAgICAgICBteSAkaW5uZXJUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldFNlcXVlbmNlT3JG
cm96ZW5BcnJheUlubmVyVHlwZSgkdHlwZSk7Ci0gICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+
SXNSZWZQdHJUeXBlKCRpbm5lclR5cGUpKSB7Ci0gICAgICAgICAgICAkaW5jbHVkZXNSZWYtPnsi
SlMke2lubmVyVHlwZX0uaCJ9ID0gMTsKLSAgICAgICAgICAgICRpbmNsdWRlc1JlZi0+eyIke2lu
bmVyVHlwZX0uaCJ9ID0gMTsKLSAgICAgICAgfQotICAgICAgICAkaW5jbHVkZXNSZWYtPnsiPHJ1
bnRpbWUvSlNBcnJheS5oPiJ9ID0gMTsKLSAgICB9IGVsc2UgewotICAgICAgICAjIGRlZmF1bHQs
IGluY2x1ZGUgdGhlIHNhbWUgbmFtZWQgZmlsZQotICAgICAgICAkaW5jbHVkZXNSZWYtPnsiJHt0
eXBlfS5oIn0gPSAxOwotICAgIH0KKyAgICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3ItPlNraXBJ
bmNsdWRlSGVhZGVyKCRpbXBsZW1lbnRhdGlvblR5cGUpOworCisgICAgJGluY2x1ZGVzUmVmLT57
IiR7aW1wbGVtZW50YXRpb25UeXBlfS5oIn0gPSAxOwogfQogCiBzdWIgQWRkVG9JbXBsSW5jbHVk
ZXNGb3JJRExUeXBlCkBAIC0yOTIsMTcgKzI3NCwxMyBAQCBzdWIgQWRkVG9JbXBsSW5jbHVkZXNG
b3JJRExUeXBlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoJGNvZGVHZW5lcmF0
b3ItPklzU2VxdWVuY2VPckZyb3plbkFycmF5VHlwZSgkaWRsVHlwZS0+bmFtZSkpIHsKKyAgICBp
ZiAoJGNvZGVHZW5lcmF0b3ItPklzU2VxdWVuY2VPckZyb3plbkFycmF5VHlwZSgkaWRsVHlwZSkp
IHsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIjxydW50aW1lL0pTQXJyYXkuaD4iLCAkY29u
ZGl0aW9uYWwpOwogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlc0ZvcklETFR5cGUoQHskaWRsVHlw
ZS0+c3VidHlwZXN9WzBdLCAkY29uZGl0aW9uYWwpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0V4dGVybmFsRGljdGlvbmFyeVR5cGUoJGlkbFR5
cGUtPm5hbWUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0V4dGVybmFsRW51bVR5cGUoJGlkbFR5cGUt
Pm5hbWUpKSB7Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyIgLiAkaWRsVHlwZS0+bmFt
ZSAuICIuaCIsICRjb25kaXRpb25hbCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBp
ZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJGlkbFR5cGUtPm5hbWUpKSB7CisgICAg
aWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCRpZGxUeXBlKSB8fCAkY29kZUdlbmVy
YXRvci0+SXNFeHRlcm5hbERpY3Rpb25hcnlUeXBlKCRpZGxUeXBlKSB8fCAkY29kZUdlbmVyYXRv
ci0+SXNFeHRlcm5hbEVudW1UeXBlKCRpZGxUeXBlKSkgewogICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiSlMiIC4gJGlkbFR5cGUtPm5hbWUgLiAiLmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMzMxLDE1ICszMDksMTQgQEAgc3ViIElzUmVhZG9ubHkKIAog
c3ViIEFkZENsYXNzRm9yd2FyZElmTmVlZGVkCiB7Ci0gICAgbXkgJGludGVyZmFjZU5hbWUgPSBz
aGlmdDsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OwogCiAgICAgIyBTVkdBbmltYXRlZExlbmd0aC9O
dW1iZXIvZXRjLiBhcmUgbm90IGNsYXNzZXMgc28gdGhleSBjYW4ndCBiZSBmb3J3YXJkIGRlY2xh
cmVkIGFzIGNsYXNzZXMuCi0gICAgcmV0dXJuIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1h
dGVkVHlwZSgkaW50ZXJmYWNlTmFtZSk7Ci0KLSAgICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3It
PklzVHlwZWRBcnJheVR5cGUoJGludGVyZmFjZU5hbWUpOwotICAgIHJldHVybiBpZiAkaW50ZXJm
YWNlTmFtZSBlcSAiQnVmZmVyU291cmNlIjsKKyAgICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3It
PklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3It
PklzVHlwZWRBcnJheVR5cGUoJHR5cGUpOworICAgIHJldHVybiBpZiAkdHlwZS0+bmFtZSBlcSAi
QnVmZmVyU291cmNlIjsKIAotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyAkaW50ZXJm
YWNlTmFtZTtcblxuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICIgLiAkdHlw
ZS0+bmFtZSAuICI7XG5cbiIpOwogfQogCiBzdWIgR2V0R2VuZXJhdGVJc1JlYWNoYWJsZQpAQCAt
Mzk5LDcgKzM3Niw5IEBAIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKIAogICAg
ICAgICAjIElmIHRoZSBpdGVtIGZ1bmN0aW9uIHJldHVybnMgYSBzdHJpbmcgdGhlbiB3ZSBsZXQg
dGhlIFRyZWF0UmV0dXJuZWROdWxsU3RyaW5nQXMgaGFuZGxlIHRoZSBjYXNlcwogICAgICAgICAj
IHdoZXJlIHRoZSBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuCi0gICAgICAgIGlmICgkaW5kZXhlZEdl
dHRlckZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgIkRPTVN0cmluZyIpIHsKKyAgICAgICAg
CisgICAgICAgICMgRklYTUU6IFNob3VsZCB0aGlzIHdvcmsgZm9yIGFsbCBzdHJpbmcgdHlwZXM/
CisgICAgICAgIGlmICgkaW5kZXhlZEdldHRlckZ1bmN0aW9uLT5zaWduYXR1cmUtPmlkbFR5cGUt
Pm5hbWUgZXEgIkRPTVN0cmluZyIpIHsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5
U2xvdEltcGwsICIgICAgaWYgKG9wdGlvbmFsSW5kZXgpIHtcbiIpOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAob3B0
aW9uYWxJbmRleCAmJiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVk
KCkubGVuZ3RoKCkpIHtcbiIpOwpAQCAtNTU2LDcgKzUzNSw3IEBAIHN1YiBHZXRBdHRyaWJ1dGVH
ZXR0ZXJOYW1lCiAKICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNz
TmFtZSkgLiAiQ29uc3RydWN0b3IiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRpYzsKICAgICByZXR1
cm4gR2V0SlNCdWlsdGluRnVuY3Rpb25OYW1lKCRjbGFzc05hbWUsICRhdHRyaWJ1dGUpIGlmIElz
SlNCdWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotICAgIHJldHVybiAianMiIC4gJGlu
dGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZSkgLiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1
Y3RvciQvID8gIkNvbnN0cnVjdG9yIiA6ICIiKTsKKyAgICByZXR1cm4gImpzIiAuICRpbnRlcmZh
Y2UtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1
cmUtPm5hbWUpIC4gKCRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmlkbFR5cGUpID8gIkNvbnN0cnVjdG9yIiA6ICIiKTsKIH0KIAogc3ViIEdl
dEF0dHJpYnV0ZVNldHRlck5hbWUKQEAgLTU2NSw3ICs1NDQsNyBAQCBzdWIgR2V0QXR0cmlidXRl
U2V0dGVyTmFtZQogCiAgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmly
c3QoJGNsYXNzTmFtZSkgLiAiQ29uc3RydWN0b3IiIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmly
c3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSBpZiAkYXR0cmlidXRlLT5pc1N0YXRpYzsK
ICAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdChHZXRKU0J1aWx0
aW5GdW5jdGlvbk5hbWUoJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkpIGlmIElzSlNCdWlsdGluKCRp
bnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotICAgIHJldHVybiAic2V0SlMiIC4gJGludGVyZmFjZS0+
bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
bmFtZSkgLiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1Y3RvciQvID8g
IkNvbnN0cnVjdG9yIiA6ICIiKTsKKyAgICByZXR1cm4gInNldEpTIiAuICRpbnRlcmZhY2UtPm5h
bWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5h
bWUpIC4gKCRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmlkbFR5cGUpID8gIkNvbnN0cnVjdG9yIiA6ICIiKTsKIH0KIAogc3ViIEdldEZ1bmN0
aW9uTmFtZQpAQCAtNTkyLDcgKzU3MSw3IEBAIHN1YiBHZXRTcGVjaWFsQWNjZXNzb3JGdW5jdGlv
bkZvclR5cGUKICAgICAgICAgbXkgJHNwZWNpYWxzID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnNw
ZWNpYWxzOwogICAgICAgICBteSAkc3BlY2lhbEV4aXN0cyA9IGdyZXAgeyAkXyBlcSAkc3BlY2lh
bCB9IEAkc3BlY2lhbHM7CiAgICAgICAgIG15ICRwYXJhbWV0ZXJzID0gJGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzOwotICAgICAgICBpZiAoJHNwZWNpYWxFeGlzdHMgYW5kIHNjYWxhcihAJHBhcmFtZXRl
cnMpID09ICRudW1iZXJPZlBhcmFtZXRlcnMgYW5kICRwYXJhbWV0ZXJzLT5bMF0tPnR5cGUgZXEg
JGZpcnN0UGFyYW1ldGVyVHlwZSkgeworICAgICAgICBpZiAoJHNwZWNpYWxFeGlzdHMgYW5kIHNj
YWxhcihAJHBhcmFtZXRlcnMpID09ICRudW1iZXJPZlBhcmFtZXRlcnMgYW5kICRwYXJhbWV0ZXJz
LT5bMF0tPmlkbFR5cGUtPm5hbWUgZXEgJGZpcnN0UGFyYW1ldGVyVHlwZSkgewogICAgICAgICAg
ICAgcmV0dXJuICRmdW5jdGlvbjsKICAgICAgICAgfQogICAgIH0KQEAgLTYzNSw3ICs2MTQsNyBA
QCBzdWIgQXR0cmlidXRlU2hvdWxkQmVPbkluc3RhbmNlCiAgICAgcmV0dXJuIDAgaWYgJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntFbmFibGVkQXRSdW50aW1lfSAm
JiAhSXNET01HbG9iYWxPYmplY3QoJGludGVyZmFjZSk7CiAKICAgICByZXR1cm4gMSBpZiBJbnRl
cmZhY2VSZXF1aXJlc0F0dHJpYnV0ZXNPbkluc3RhbmNlKCRpbnRlcmZhY2UpOwotICAgIHJldHVy
biAxIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLzsKKyAg
ICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5pZGxUeXBlKTsKIAogICAgICMgW1VuZm9yZ2VhYmxlXSBhdHRyaWJ1dGVz
IHNob3VsZCBiZSBvbiB0aGUgaW5zdGFuY2UuCiAgICAgIyBodHRwczovL2hleWNhbS5naXRodWIu
aW8vd2ViaWRsLyNVbmZvcmdlYWJsZQpAQCAtNjc3LDcgKzY1Niw3IEBAIHN1YiBHZXRKU0NBdHRy
aWJ1dGVzRm9yQXR0cmlidXRlCiAgICAgcHVzaChAc3BlY2lhbHMsICJEb250RGVsZXRlIikgaWYg
SXNVbmZvcmdlYWJsZSgkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKIAogICAgICMgQXMgcGVyIFdl
YiBJREwgc3BlY2lmaWNhdGlvbiwgY29uc3RydWN0b3IgcHJvcGVydGllcyBvbiB0aGUgRUNNQVNj
cmlwdCBnbG9iYWwgb2JqZWN0IHNob3VsZCBub3QgYmUgZW51bWVyYWJsZS4KLSAgICBteSAkaXNf
Z2xvYmFsX2NvbnN0cnVjdG9yID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25z
dHJ1Y3RvciQvOworICAgIG15ICRpc19nbG9iYWxfY29uc3RydWN0b3IgPSAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmlkbFR5cGUtPm5hbWUgPX4gL0NvbnN0cnVjdG9yJC87CiAgICAgcHVzaChAc3Bl
Y2lhbHMsICJEb250RW51bSIpIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e05vdEVudW1lcmFibGV9IHx8ICRpc19nbG9iYWxfY29uc3RydWN0b3IpOwogICAg
IHB1c2goQHNwZWNpYWxzLCAiUmVhZE9ubHkiKSBpZiBJc1JlYWRvbmx5KCRhdHRyaWJ1dGUpOwog
ICAgIHB1c2goQHNwZWNpYWxzLCAiQ3VzdG9tQWNjZXNzb3IiKSB1bmxlc3MgJGlzX2dsb2JhbF9j
b25zdHJ1Y3RvciBvciBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKQEAgLTc5
OCwxMiArNzc3LDEyIEBAIHN1YiBJbnN0YW5jZU5lZWRzRXN0aW1hdGVkU2l6ZQogCiBzdWIgR2V0
SW1wbENsYXNzTmFtZQogewotICAgIG15ICRuYW1lID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFj
ZSA9IHNoaWZ0OwogCi0gICAgbXkgKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlU
eXBlLCAkc3ZnTmF0aXZlVHlwZSkgPSBHZXRTVkdQcm9wZXJ0eVR5cGVzKCRuYW1lKTsKKyAgICBt
eSAoJHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBl
KSA9IEdldFNWR1Byb3BlcnR5VHlwZXMoJGludGVyZmFjZSk7CiAgICAgcmV0dXJuICRzdmdOYXRp
dmVUeXBlIGlmICRzdmdOYXRpdmVUeXBlOwogCi0gICAgcmV0dXJuICRuYW1lOworICAgIHJldHVy
biAkaW50ZXJmYWNlLT5uYW1lOwogfQogCiBzdWIgSXNDbGFzc05hbWVXb3JkQm91bmRhcnkKQEAg
LTgzNSw3ICs4MTQsNyBAQCBzdWIgR2V0TmVzdGVkQ2xhc3NOYW1lCiB7CiAgICAgbXkgKCRpbnRl
cmZhY2UsICRuYW1lKSA9IEBfOwogCi0gICAgbXkgJGNsYXNzID0gR2V0SW1wbENsYXNzTmFtZSgk
aW50ZXJmYWNlLT5uYW1lKTsKKyAgICBteSAkY2xhc3MgPSBHZXRJbXBsQ2xhc3NOYW1lKCRpbnRl
cmZhY2UpOwogICAgIG15ICRtZW1iZXIgPSAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkbmFt
ZSk7CiAKICAgICAjIFNpbmNlIHRoZSBlbnVtZXJhdGlvbiBuYW1lIHdpbGwgYmUgbmVzdGVkIGlu
IHRoZSBjbGFzcyBuYW1lJ3MgbmFtZXNwYWNlLCByZW1vdmUgYW55IHdvcmRzCkBAIC04NTUsMTMg
KzgzNCwxNyBAQCBzdWIgR2V0TmVzdGVkQ2xhc3NOYW1lCiAKIHN1YiBHZXRFbnVtZXJhdGlvbkNs
YXNzTmFtZQogewotICAgIG15ICgkbmFtZSwgJGludGVyZmFjZSkgPSBAXzsKKyAgICBteSAoJHR5
cGUsICRpbnRlcmZhY2UpID0gQF87CisKKyAgICBhc3NlcnQoIk5vdCBhIHR5cGUiKSBpZiByZWYo
JHR5cGUpIG5lICJkb21UeXBlIjsKIAotICAgIGlmICgkY29kZUdlbmVyYXRvci0+SGFzRW51bUlt
cGxlbWVudGF0aW9uTmFtZU92ZXJyaWRlKCRuYW1lKSkgewotICAgICAgICByZXR1cm4gJGNvZGVH
ZW5lcmF0b3ItPkdldEVudW1JbXBsZW1lbnRhdGlvbk5hbWVPdmVycmlkZSgkbmFtZSk7CisgICAg
aWYgKCRjb2RlR2VuZXJhdG9yLT5IYXNFbnVtSW1wbGVtZW50YXRpb25OYW1lT3ZlcnJpZGUoJHR5
cGUpKSB7CisgICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+R2V0RW51bUltcGxlbWVudGF0
aW9uTmFtZU92ZXJyaWRlKCR0eXBlKTsKICAgICB9CiAKLSAgICByZXR1cm4gJG5hbWUgaWYgJGNv
ZGVHZW5lcmF0b3ItPklzRXh0ZXJuYWxFbnVtVHlwZSgkbmFtZSk7CisgICAgbXkgJG5hbWUgPSAk
dHlwZS0+bmFtZTsKKworICAgIHJldHVybiAkbmFtZSBpZiAkY29kZUdlbmVyYXRvci0+SXNFeHRl
cm5hbEVudW1UeXBlKCR0eXBlKTsKICAgICByZXR1cm4gJG5hbWUgdW5sZXNzIGRlZmluZWQoJGlu
dGVyZmFjZSk7CiAKICAgICByZXR1cm4gR2V0TmVzdGVkQ2xhc3NOYW1lKCRpbnRlcmZhY2UsICRu
YW1lKTsKQEAgLTk5OSw5ICs5ODIsNyBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbnNJbXBsZW1l
bnRhdGlvbkNvCiAKICAgICBteSAkcmVzdWx0ID0gIiI7CiAgICAgZm9yZWFjaCBteSAkZW51bWVy
YXRpb24gKEAkZW51bWVyYXRpb25zKSB7Ci0gICAgICAgIG15ICRuYW1lID0gJGVudW1lcmF0aW9u
LT5uYW1lOwotCi0gICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVtZXJhdGlvbkNsYXNzTmFt
ZSgkbmFtZSwgJGludGVyZmFjZSk7CisgICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVtZXJh
dGlvbkNsYXNzTmFtZSgkZW51bWVyYXRpb24tPnR5cGUsICRpbnRlcmZhY2UpOwogICAgICAgICBt
eSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25h
bFN0cmluZygkZW51bWVyYXRpb24pOwogICAgICAgICAkcmVzdWx0IC49IEdlbmVyYXRlRW51bWVy
YXRpb25JbXBsZW1lbnRhdGlvbkNvbnRlbnQoJGVudW1lcmF0aW9uLCAkY2xhc3NOYW1lLCAkaW50
ZXJmYWNlLCAkY29uZGl0aW9uYWxTdHJpbmcpOwogICAgIH0KQEAgLTEwMzYsNyArMTAxNyw3IEBA
IHN1YiBHZW5lcmF0ZUVudW1lcmF0aW9uc0hlYWRlckNvbnRlbnQKIAogICAgIG15ICRyZXN1bHQg
PSAiIjsKICAgICBmb3JlYWNoIG15ICRlbnVtZXJhdGlvbiAoQCRlbnVtZXJhdGlvbnMpIHsKLSAg
ICAgICAgbXkgJGNsYXNzTmFtZSA9IEdldEVudW1lcmF0aW9uQ2xhc3NOYW1lKCRlbnVtZXJhdGlv
bi0+bmFtZSwgJGludGVyZmFjZSk7CisgICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVtZXJh
dGlvbkNsYXNzTmFtZSgkZW51bWVyYXRpb24tPnR5cGUsICRpbnRlcmZhY2UpOwogICAgICAgICBt
eSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25h
bFN0cmluZygkZW51bWVyYXRpb24pOwogICAgICAgICAkcmVzdWx0IC49IEdlbmVyYXRlRW51bWVy
YXRpb25IZWFkZXJDb250ZW50KCRlbnVtZXJhdGlvbiwgJGNsYXNzTmFtZSwgJGNvbmRpdGlvbmFs
U3RyaW5nKTsKICAgICB9CkBAIC0xMDQ1LDEzICsxMDI2LDE0IEBAIHN1YiBHZW5lcmF0ZUVudW1l
cmF0aW9uc0hlYWRlckNvbnRlbnQKIAogc3ViIEdldERpY3Rpb25hcnlDbGFzc05hbWUKIHsKLSAg
ICBteSAoJG5hbWUsICRpbnRlcmZhY2UpID0gQF87CisgICAgbXkgKCR0eXBlLCAkaW50ZXJmYWNl
KSA9IEBfOwogCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5IYXNEaWN0aW9uYXJ5SW1wbGVtZW50
YXRpb25OYW1lT3ZlcnJpZGUoJG5hbWUpKSB7Ci0gICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRv
ci0+R2V0RGljdGlvbmFyeUltcGxlbWVudGF0aW9uTmFtZU92ZXJyaWRlKCRuYW1lKTsKKyAgICBp
ZiAoJGNvZGVHZW5lcmF0b3ItPkhhc0RpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbk5hbWVPdmVycmlk
ZSgkdHlwZSkpIHsKKyAgICAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5HZXREaWN0aW9uYXJ5
SW1wbGVtZW50YXRpb25OYW1lT3ZlcnJpZGUoJHR5cGUpOwogICAgIH0KIAotICAgIHJldHVybiAk
bmFtZSBpZiAkY29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbERpY3Rpb25hcnlUeXBlKCRuYW1lKTsK
KyAgICBteSAkbmFtZSA9ICR0eXBlLT5uYW1lOworICAgIHJldHVybiAkbmFtZSBpZiAkY29kZUdl
bmVyYXRvci0+SXNFeHRlcm5hbERpY3Rpb25hcnlUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gJG5h
bWUgdW5sZXNzIGRlZmluZWQoJGludGVyZmFjZSk7CiAgICAgcmV0dXJuIEdldE5lc3RlZENsYXNz
TmFtZSgkaW50ZXJmYWNlLCAkbmFtZSk7CiB9CkBAIC0xMDYyLDEwICsxMDQ0LDEwIEBAIHN1YiBH
ZW5lcmF0ZURlZmF1bHRWYWx1ZQogCiAgICAgbXkgJGRlZmF1bHRWYWx1ZSA9ICRzaWduYXR1cmUt
PmRlZmF1bHQ7CiAKLSAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzRW51bVR5cGUoJHNpZ25hdHVy
ZS0+dHlwZSkpIHsKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzRW51bVR5cGUoJHNpZ25hdHVy
ZS0+aWRsVHlwZSkpIHsKICAgICAgICAgIyBGSVhNRTogV291bGQgYmUgbmljZSB0byByZXBvcnQg
YW4gZXJyb3IgaWYgdGhlIHZhbHVlIGRvZXMgbm90IGhhdmUgcXVvdGUgbWFya3MgYXJvdW5kIGl0
LgogICAgICAgICAjIEZJWE1FOiBXb3VsZCBiZSBuaWNlIHRvIHJlcG9ydCBhbiBlcnJvciBpZiB0
aGUgdmFsdWUgaXMgbm90IG9uZSBvZiB0aGUgZW51bWVyYXRpb24gdmFsdWVzLgotICAgICAgICBt
eSAkY2xhc3NOYW1lID0gR2V0RW51bWVyYXRpb25DbGFzc05hbWUoJHNpZ25hdHVyZS0+dHlwZSwg
JGludGVyZmFjZSk7CisgICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVtZXJhdGlvbkNsYXNz
TmFtZSgkc2lnbmF0dXJlLT5pZGxUeXBlLCAkaW50ZXJmYWNlKTsKICAgICAgICAgbXkgJGVudW1l
cmF0aW9uVmFsdWVOYW1lID0gR2V0RW51bWVyYXRpb25WYWx1ZU5hbWUoc3Vic3RyKCRkZWZhdWx0
VmFsdWUsIDEsIC0xKSk7CiAgICAgICAgIHJldHVybiAkY2xhc3NOYW1lIC4gIjo6IiAuICRlbnVt
ZXJhdGlvblZhbHVlTmFtZTsKICAgICB9CkBAIC0xMDc2LDkgKzEwNTgsOSBAQCBzdWIgR2VuZXJh
dGVEZWZhdWx0VmFsdWUKICAgICAgICAgICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgkaW50
ZXJmYWNlLCAkc2lnbmF0dXJlLT5pZGxUeXBlKTsKICAgICAgICAgICAgIHJldHVybiAiY29udmVy
dDwke0lETFR5cGV9PihzdGF0ZSwganNOdWxsKCkpOyI7CiAgICAgICAgIH0KLSAgICAgICAgcmV0
dXJuICJqc051bGwoKSIgaWYgJHNpZ25hdHVyZS0+dHlwZSBlcSAiYW55IjsKLSAgICAgICAgcmV0
dXJuICJudWxscHRyIiBpZiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkc2lnbmF0dXJl
LT50eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkc2lnbmF0dXJlLT50
eXBlKTsKLSAgICAgICAgcmV0dXJuICJTdHJpbmcoKSIgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3Ry
aW5nVHlwZSgkc2lnbmF0dXJlLT50eXBlKTsKKyAgICAgICAgcmV0dXJuICJqc051bGwoKSIgaWYg
JHNpZ25hdHVyZS0+aWRsVHlwZS0+bmFtZSBlcSAiYW55IjsKKyAgICAgICAgcmV0dXJuICJudWxs
cHRyIiBpZiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkc2lnbmF0dXJlLT5pZGxUeXBl
KSB8fCAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkc2lnbmF0dXJlLT5pZGxUeXBl
KTsKKyAgICAgICAgcmV0dXJuICJTdHJpbmcoKSIgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5n
VHlwZSgkc2lnbmF0dXJlLT5pZGxUeXBlKTsKICAgICAgICAgcmV0dXJuICJOdWxsb3B0IjsKICAg
ICB9CiAgICAgaWYgKCRkZWZhdWx0VmFsdWUgZXEgIltdIikgewpAQCAtMTA5MiwyNSArMTA3NCw2
IEBAIHN1YiBHZW5lcmF0ZURlZmF1bHRWYWx1ZQogICAgIHJldHVybiAkZGVmYXVsdFZhbHVlOwog
fQogCi1zdWIgU2hvdWxkQWxsb3dOb25GaW5pdGVGb3JGbG9hdGluZ1BvaW50VHlwZQotewotICAg
IG15ICR0eXBlID0gc2hpZnQ7Ci0KLSAgICBkaWUgIkNhbiBvbmx5IGJlIGNhbGxlZCB3aXRoIGZs
b2F0aW5nIHBvaW50IHR5cGVzIiB1bmxlc3MgJGNvZGVHZW5lcmF0b3ItPklzRmxvYXRpbmdQb2lu
dFR5cGUoJHR5cGUpOwotICAgIHJldHVybiAkdHlwZSBlcSAidW5yZXN0cmljdGVkIGRvdWJsZSIg
fHwgJHR5cGUgZXEgInVucmVzdHJpY3RlZCBmbG9hdCI7Ci19Ci0KLXN1YiBHZW5lcmF0ZUNvbnZl
cnNpb25SdWxlV2l0aExlYWRpbmdDb21tYQotewotICAgIG15ICgkaW50ZXJmYWNlLCAkbWVtYmVy
KSA9IEBfOwotCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0Zsb2F0aW5nUG9pbnRUeXBlKCRt
ZW1iZXItPnR5cGUpKSB7Ci0gICAgICAgIHJldHVybiAiLCAiIC4gKFNob3VsZEFsbG93Tm9uRmlu
aXRlRm9yRmxvYXRpbmdQb2ludFR5cGUoJG1lbWJlci0+dHlwZSkgPyAiU2hvdWxkQWxsb3dOb25G
aW5pdGU6OlllcyIgOiAiU2hvdWxkQWxsb3dOb25GaW5pdGU6Ok5vIik7Ci0gICAgfQotICAgIHJl
dHVybiAiLCAiIC4gR2V0SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uKCRtZW1iZXIpIGlm
ICRjb2RlR2VuZXJhdG9yLT5Jc0ludGVnZXJUeXBlKCRtZW1iZXItPnR5cGUpOwotICAgIHJldHVy
biAiIjsKLX0KLQogc3ViIEdlbmVyYXRlRGljdGlvbmFyeUhlYWRlckNvbnRlbnQKIHsKICAgICBt
eSAoJGRpY3Rpb25hcnksICRjbGFzc05hbWUsICRjb25kaXRpb25hbFN0cmluZykgPSBAXzsKQEAg
LTExMzMsNyArMTA5Niw3IEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcmllc0hlYWRlckNvbnRlbnQK
ICAgICBteSAkcmVzdWx0ID0gIiI7CiAgICAgZm9yZWFjaCBteSAkZGljdGlvbmFyeSAoQCRhbGxE
aWN0aW9uYXJpZXMpIHsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyRpbnRlcmZhY2UtPm5hbWUg
LiAiLmgifSA9IDE7Ci0gICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXREaWN0aW9uYXJ5Q2xhc3NO
YW1lKCRkaWN0aW9uYXJ5LT5uYW1lLCAkaW50ZXJmYWNlKTsKKyAgICAgICAgbXkgJGNsYXNzTmFt
ZSA9IEdldERpY3Rpb25hcnlDbGFzc05hbWUoJGRpY3Rpb25hcnktPnR5cGUsICRpbnRlcmZhY2Up
OwogICAgICAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJh
dGVDb25kaXRpb25hbFN0cmluZygkZGljdGlvbmFyeSk7CiAgICAgICAgICRyZXN1bHQgLj0gR2Vu
ZXJhdGVEaWN0aW9uYXJ5SGVhZGVyQ29udGVudCgkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSwgJGNv
bmRpdGlvbmFsU3RyaW5nKTsKICAgICB9CkBAIC0xMTc4LDEyICsxMTQxLDEyIEBAIHN1YiBHZW5l
cmF0ZURpY3Rpb25hcnlJbXBsZW1lbnRhdGlvbkNvbnQKICAgICAjIDQuIExldCBkaWN0aW9uYXJp
ZXMgYmUgYSBsaXN0IGNvbnNpc3Rpbmcgb2YgRCBhbmQgYWxsIG9mIETigJlzIGluaGVyaXRlZCBk
aWN0aW9uYXJpZXMsIGluIG9yZGVyIGZyb20gbGVhc3QgdG8gbW9zdCBkZXJpdmVkLgogICAgIG15
IEBkaWN0aW9uYXJpZXM7CiAgICAgcHVzaChAZGljdGlvbmFyaWVzLCAkZGljdGlvbmFyeSk7Ci0g
ICAgbXkgJHBhcmVudE5hbWUgPSAkZGljdGlvbmFyeS0+cGFyZW50OwotICAgIHdoaWxlIChkZWZp
bmVkKCRwYXJlbnROYW1lKSkgewotICAgICAgICBteSAkcGFyZW50RGljdGlvbmFyeSA9ICRjb2Rl
R2VuZXJhdG9yLT5HZXREaWN0aW9uYXJ5QnlOYW1lKCRwYXJlbnROYW1lKTsKLSAgICAgICAgYXNz
ZXJ0KCJVbmFibGUgdG8gZmluZCBkZWZpbml0aW9uIGZvciBkaWN0aW9uYXJ5IG5hbWVkICciIC4g
JHBhcmVudE5hbWUgLiAiJyEiKSB1bmxlc3MgZGVmaW5lZCgkcGFyZW50RGljdGlvbmFyeSk7Cisg
ICAgbXkgJHBhcmVudFR5cGUgPSAkZGljdGlvbmFyeS0+cGFyZW50VHlwZTsKKyAgICB3aGlsZSAo
ZGVmaW5lZCgkcGFyZW50VHlwZSkpIHsKKyAgICAgICAgbXkgJHBhcmVudERpY3Rpb25hcnkgPSAk
Y29kZUdlbmVyYXRvci0+R2V0RGljdGlvbmFyeUJ5VHlwZSgkcGFyZW50VHlwZSk7CisgICAgICAg
IGFzc2VydCgiVW5hYmxlIHRvIGZpbmQgZGVmaW5pdGlvbiBmb3IgZGljdGlvbmFyeSBuYW1lZCAn
IiAuICRwYXJlbnRUeXBlLT5uYW1lIC4gIichIikgdW5sZXNzIGRlZmluZWQoJHBhcmVudERpY3Rp
b25hcnkpOwogICAgICAgICB1bnNoaWZ0KEBkaWN0aW9uYXJpZXMsICRwYXJlbnREaWN0aW9uYXJ5
KTsKLSAgICAgICAgJHBhcmVudE5hbWUgPSAkcGFyZW50RGljdGlvbmFyeS0+cGFyZW50OworICAg
ICAgICAkcGFyZW50VHlwZSA9ICRwYXJlbnREaWN0aW9uYXJ5LT5wYXJlbnRUeXBlOwogICAgIH0K
IAogICAgIG15ICRhcmd1bWVudHMgPSAiIjsKQEAgLTEyNDQsNyArMTIwNyw3IEBAIHN1YiBHZW5l
cmF0ZURpY3Rpb25hcmllc0ltcGxlbWVudGF0aW9uQ28KIAogICAgIG15ICRyZXN1bHQgPSAiIjsK
ICAgICBmb3JlYWNoIG15ICRkaWN0aW9uYXJ5IChAJGFsbERpY3Rpb25hcmllcykgewotICAgICAg
ICBteSAkY2xhc3NOYW1lID0gR2V0RGljdGlvbmFyeUNsYXNzTmFtZSgkZGljdGlvbmFyeS0+bmFt
ZSwgJGludGVyZmFjZSk7CisgICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXREaWN0aW9uYXJ5Q2xh
c3NOYW1lKCRkaWN0aW9uYXJ5LT50eXBlLCAkaW50ZXJmYWNlKTsKICAgICAgICAgbXkgJGNvbmRp
dGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmco
JGRpY3Rpb25hcnkpOwogICAgICAgICAkcmVzdWx0IC49IEdlbmVyYXRlRGljdGlvbmFyeUltcGxl
bWVudGF0aW9uQ29udGVudCgkZGljdGlvbmFyeSwgJGNsYXNzTmFtZSwgJGludGVyZmFjZSwgJGNv
bmRpdGlvbmFsU3RyaW5nKTsKICAgICB9CkBAIC0xMzE3LDggKzEyODAsOCBAQCBzdWIgR2VuZXJh
dGVIZWFkZXIKIAogICAgICRoZWFkZXJJbmNsdWRlc3siU1ZHRWxlbWVudC5oIn0gPSAxIGlmICRj
bGFzc05hbWUgPX4gL15KU1NWRy87CiAKLSAgICBteSAkaW1wbFR5cGUgPSBHZXRJbXBsQ2xhc3NO
YW1lKCRpbnRlcmZhY2VOYW1lKTsKLSAgICBteSAoJHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z0xpc3RQ
cm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKSA9IEdldFNWR1Byb3BlcnR5VHlwZXMoJGludGVy
ZmFjZU5hbWUpOworICAgIG15ICRpbXBsVHlwZSA9IEdldEltcGxDbGFzc05hbWUoJGludGVyZmFj
ZSk7CisgICAgbXkgKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAkc3Zn
TmF0aXZlVHlwZSkgPSBHZXRTVkdQcm9wZXJ0eVR5cGVzKCRpbnRlcmZhY2UpOwogICAgIG15ICRz
dmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZTsKICAgICAkc3ZnUHJvcGVydHlPckxpc3RQcm9w
ZXJ0eVR5cGUgPSAkc3ZnUHJvcGVydHlUeXBlIGlmICRzdmdQcm9wZXJ0eVR5cGU7CiAgICAgJHN2
Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlID0gJHN2Z0xpc3RQcm9wZXJ0eVR5cGUgaWYgJHN2
Z0xpc3RQcm9wZXJ0eVR5cGU7CkBAIC0xMzI5LDE2ICsxMjkyLDE2IEBAIHN1YiBHZW5lcmF0ZUhl
YWRlcgogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxubmFtZXNwYWNlIFdlYkNvcmUge1xu
XG4iKTsKIAotICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGludGVy
ZmFjZU5hbWUpKSB7CisgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgk
aW50ZXJmYWNlLT50eXBlKSkgewogICAgICAgICAkaGVhZGVySW5jbHVkZXN7IiRpbnRlcmZhY2VO
YW1lLmgifSA9IDE7CiAgICAgfSBlbHNlIHsKICAgICAgICAgIyBJbXBsZW1lbnRhdGlvbiBjbGFz
cyBmb3J3YXJkIGRlY2xhcmF0aW9uCiAgICAgICAgIGlmIChJc0RPTUdsb2JhbE9iamVjdCgkaW50
ZXJmYWNlKSkgewotICAgICAgICAgICAgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQoJGludGVyZmFj
ZU5hbWUpIHVubGVzcyAkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGU7CisgICAgICAgICAg
ICBBZGRDbGFzc0ZvcndhcmRJZk5lZWRlZCgkaW50ZXJmYWNlLT50eXBlKSB1bmxlc3MgJHN2Z1By
b3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlOwogICAgICAgICB9CiAgICAgfQogCi0gICAgQWRkQ2xh
c3NGb3J3YXJkSWZOZWVkZWQoIkpTRE9NV2luZG93U2hlbGwiKSBpZiAkaW50ZXJmYWNlTmFtZSBl
cSAiRE9NV2luZG93IjsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgSlNET01XaW5k
b3dTaGVsbDtcblxuIikgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7CiAKICAgICBt
eSAkZXhwb3J0TWFjcm8gPSBHZXRFeHBvcnRNYWNyb0ZvckpTQ2xhc3MoJGludGVyZmFjZSk7CiAK
QEAgLTEzNjcsNyArMTMzMCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gcHRyO1xuIik7CiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgfVxuXG4iKTsKICAgICB9IGVsc2lmICgkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntNYXNxdWVyYWRlc0FzVW5kZWZpbmVkfSkgewotICAgICAgICBBZGRJ
bmNsdWRlc0ZvclR5cGVJbkhlYWRlcigkaW1wbFR5cGUpIHVubGVzcyAkc3ZnUHJvcGVydHlPckxp
c3RQcm9wZXJ0eVR5cGU7CisgICAgICAgIEFkZEluY2x1ZGVzRm9ySW1wbGVtZW50YXRpb25UeXBl
SW5IZWFkZXIoJGltcGxUeXBlKSB1bmxlc3MgJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBl
OwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAkY2xhc3NOYW1lKiBj
cmVhdGUoSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPCRpbXBsVHlwZT4mJiBpbXBsKVxuIik7CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAge1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
ICAgIGdsb2JhbE9iamVjdC0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnQoKS0+Zmly
ZUFsbChnbG9iYWxPYmplY3QtPnZtKCksIFwiQWxsb2NhdGVkIG1hc3F1ZXJhZGluZyBvYmplY3Rc
Iik7XG4iKTsKQEAgLTEzODMsNyArMTM0Niw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gcHRyO1xuIik7CiAgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4iKTsgIAogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluSGVhZGVyKCRpbXBsVHlwZSkgdW5sZXNzICRzdmdQcm9w
ZXJ0eU9yTGlzdFByb3BlcnR5VHlwZTsKKyAgICAgICAgQWRkSW5jbHVkZXNGb3JJbXBsZW1lbnRh
dGlvblR5cGVJbkhlYWRlcigkaW1wbFR5cGUpIHVubGVzcyAkc3ZnUHJvcGVydHlPckxpc3RQcm9w
ZXJ0eVR5cGU7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRjbGFz
c05hbWUqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBSZWY8JGltcGxUeXBlPiYmIGltcGwpXG4iKTsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICAgICAgJGNsYXNzTmFtZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRl
Q2VsbDwkY2xhc3NOYW1lPihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkpICRjbGFzc05hbWUoc3Ry
dWN0dXJlLCAqZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTtcbiIpOwpAQCAtMTQwNCw3ICsx
MzY3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIEpTVmFsdWUgdG8gaW1wbGVtZW50
YXRpb24gdHlwZQogICAgIGlmIChTaG91bGRHZW5lcmF0ZVRvV3JhcHBlZCgkaGFzUGFyZW50LCAk
aW50ZXJmYWNlKSkgewotICAgICAgICBteSAkbmF0aXZlVHlwZSA9IEdldE5hdGl2ZVR5cGUoJGlu
dGVyZmFjZSwgJGltcGxUeXBlKTsKKyAgICAgICAgbXkgJG5hdGl2ZVR5cGUgPSBHZXROYXRpdmVU
eXBlKCRpbnRlcmZhY2UsICRpbnRlcmZhY2UtPnR5cGUpOwogICAgICAgICBpZiAoJGludGVyZmFj
ZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29sdmVyIikgewogICAgICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBzdGF0aWMgJG5hdGl2ZVR5cGUgdG9XcmFwcGVkKEpTQzo6RXhlY1N0YXRl
JiwgSlNDOjpKU1ZhbHVlKTtcbiIpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTgxOCwxMiArMTc4
MSwxMiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgICAgIHB1c2goQGFuY2VzdG9ycywg
JGN1cnJlbnRJbnRlcmZhY2UtPm5hbWUpOwogICAgICAgICB9LCAwKTsKICAgICAgICAgZm9yIG15
ICRkaWN0aW9uYXJ5IChAJGRpY3Rpb25hcmllcykgewotICAgICAgICAgICAgbXkgJHBhcmVudE5h
bWUgPSAkZGljdGlvbmFyeS0+cGFyZW50OwotICAgICAgICAgICAgd2hpbGUgKGRlZmluZWQoJHBh
cmVudE5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAYW5jZXN0b3JzLCAkcGFyZW50TmFt
ZSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzRXh0ZXJuYWxEaWN0aW9uYXJ5VHlwZSgkcGFyZW50TmFt
ZSk7Ci0gICAgICAgICAgICAgICAgbXkgJHBhcmVudERpY3Rpb25hcnkgPSAkY29kZUdlbmVyYXRv
ci0+R2V0RGljdGlvbmFyeUJ5TmFtZSgkcGFyZW50TmFtZSk7Ci0gICAgICAgICAgICAgICAgYXNz
ZXJ0KCJVbmFibGUgdG8gZmluZCBkZWZpbml0aW9uIGZvciBkaWN0aW9uYXJ5IG5hbWVkICciIC4g
JHBhcmVudE5hbWUgLiAiJyEiKSB1bmxlc3MgZGVmaW5lZCgkcGFyZW50RGljdGlvbmFyeSk7Ci0g
ICAgICAgICAgICAgICAgJHBhcmVudE5hbWUgPSAkcGFyZW50RGljdGlvbmFyeS0+cGFyZW50Owor
ICAgICAgICAgICAgbXkgJHBhcmVudFR5cGUgPSAkZGljdGlvbmFyeS0+cGFyZW50VHlwZTsKKyAg
ICAgICAgICAgIHdoaWxlIChkZWZpbmVkKCRwYXJlbnRUeXBlKSkgeworICAgICAgICAgICAgICAg
IHB1c2goQGFuY2VzdG9ycywgJHBhcmVudFR5cGUtPm5hbWUpIGlmICRjb2RlR2VuZXJhdG9yLT5J
c0V4dGVybmFsRGljdGlvbmFyeVR5cGUoJHBhcmVudFR5cGUpOworICAgICAgICAgICAgICAgIG15
ICRwYXJlbnREaWN0aW9uYXJ5ID0gJGNvZGVHZW5lcmF0b3ItPkdldERpY3Rpb25hcnlCeVR5cGUo
JHBhcmVudFR5cGUpOworICAgICAgICAgICAgICAgIGFzc2VydCgiVW5hYmxlIHRvIGZpbmQgZGVm
aW5pdGlvbiBmb3IgZGljdGlvbmFyeSBuYW1lZCAnIiAuICRwYXJlbnRUeXBlLT5uYW1lIC4gIich
IikgdW5sZXNzIGRlZmluZWQoJHBhcmVudERpY3Rpb25hcnkpOworICAgICAgICAgICAgICAgICRw
YXJlbnRUeXBlID0gJHBhcmVudERpY3Rpb25hcnktPnBhcmVudFR5cGU7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICAgICAgcHVzaChAZGVwc0NvbnRlbnQsICIkY2xhc3NOYW1lLmggOiAi
LCBqb2luKCIgIiwgbWFwIHsgIiRfLmlkbCIgfSBAYW5jZXN0b3JzKSwgIlxuIik7CkBAIC0yMDMy
LDcgKzE5OTUsNyBAQCBzdWIgQXJlVHlwZXNEaXN0aW5ndWlzaGFibGVGb3JPdmVybG9hZFJlCiAK
ICAgICBteSAkaXNEaWN0aW9uYXJ5ID0gc3ViIHsKICAgICAgICAgbXkgJHR5cGUgPSBzaGlmdDsK
LSAgICAgICAgcmV0dXJuICR0eXBlIGVxICJEaWN0aW9uYXJ5IiB8fCAkY29kZUdlbmVyYXRvci0+
SXNEaWN0aW9uYXJ5VHlwZSgkdHlwZSk7CisgICAgICAgIHJldHVybiAkdHlwZS0+bmFtZSBlcSAi
RGljdGlvbmFyeSIgfHwgJGNvZGVHZW5lcmF0b3ItPklzRGljdGlvbmFyeVR5cGUoJHR5cGUpOwog
ICAgIH07CiAgICAgbXkgJGlzQ2FsbGJhY2tGdW5jdGlvbk9yRGljdGlvbmFyeSA9IHN1YiB7CiAg
ICAgICAgIG15ICR0eXBlID0gc2hpZnQ7CkBAIC0yMDYwLDEyICsyMDIzLDEyIEBAIHN1YiBBcmVU
eXBlc0Rpc3Rpbmd1aXNoYWJsZUZvck92ZXJsb2FkUmUKIAogICAgIHJldHVybiAwIGlmICRpZGxU
eXBlQS0+bmFtZSBlcSAkaWRsVHlwZUItPm5hbWU7CiAgICAgcmV0dXJuIDAgaWYgJGlkbFR5cGVB
LT5uYW1lIGVxICJvYmplY3QiIG9yICRpZGxUeXBlQi0+bmFtZSBlcSAib2JqZWN0IjsKLSAgICBy
ZXR1cm4gMCBpZiAkY29kZUdlbmVyYXRvci0+SXNOdW1lcmljVHlwZSgkaWRsVHlwZUEtPm5hbWUp
ICYmICRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCRpZGxUeXBlQi0+bmFtZSk7Ci0gICAg
cmV0dXJuIDAgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nT3JFbnVtVHlwZSgkaWRsVHlwZUEt
Pm5hbWUpICYmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ09yRW51bVR5cGUoJGlkbFR5cGVCLT5u
YW1lKTsKLSAgICByZXR1cm4gMCBpZiAmJGlzRGljdGlvbmFyeSgkaWRsVHlwZUEtPm5hbWUpICYm
ICYkaXNEaWN0aW9uYXJ5KCRpZGxUeXBlQi0+bmFtZSk7Ci0gICAgcmV0dXJuIDAgaWYgJGNvZGVH
ZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJGlkbFR5cGVBLT5uYW1lKSAmJiAkY29kZUdl
bmVyYXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgkaWRsVHlwZUItPm5hbWUpOwotICAgIHJldHVy
biAwIGlmICYkaXNDYWxsYmFja0Z1bmN0aW9uT3JEaWN0aW9uYXJ5KCRpZGxUeXBlQS0+bmFtZSkg
JiYgJiRpc0NhbGxiYWNrRnVuY3Rpb25PckRpY3Rpb25hcnkoJGlkbFR5cGVCLT5uYW1lKTsKLSAg
ICByZXR1cm4gMCBpZiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJvemVuQXJyYXlUeXBl
KCRpZGxUeXBlQS0+bmFtZSkgJiYgJGNvZGVHZW5lcmF0b3ItPklzU2VxdWVuY2VPckZyb3plbkFy
cmF5VHlwZSgkaWRsVHlwZUItPm5hbWUpOworICAgIHJldHVybiAwIGlmICRjb2RlR2VuZXJhdG9y
LT5Jc051bWVyaWNUeXBlKCRpZGxUeXBlQSkgJiYgJGNvZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5
cGUoJGlkbFR5cGVCKTsKKyAgICByZXR1cm4gMCBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdP
ckVudW1UeXBlKCRpZGxUeXBlQSkgJiYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nT3JFbnVtVHlw
ZSgkaWRsVHlwZUIpOworICAgIHJldHVybiAwIGlmICYkaXNEaWN0aW9uYXJ5KCRpZGxUeXBlQSkg
JiYgJiRpc0RpY3Rpb25hcnkoJGlkbFR5cGVCKTsKKyAgICByZXR1cm4gMCBpZiAkY29kZUdlbmVy
YXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgkaWRsVHlwZUEpICYmICRjb2RlR2VuZXJhdG9yLT5J
c0NhbGxiYWNrSW50ZXJmYWNlKCRpZGxUeXBlQik7CisgICAgcmV0dXJuIDAgaWYgJiRpc0NhbGxi
YWNrRnVuY3Rpb25PckRpY3Rpb25hcnkoJGlkbFR5cGVBKSAmJiAmJGlzQ2FsbGJhY2tGdW5jdGlv
bk9yRGljdGlvbmFyeSgkaWRsVHlwZUIpOworICAgIHJldHVybiAwIGlmICRjb2RlR2VuZXJhdG9y
LT5Jc1NlcXVlbmNlT3JGcm96ZW5BcnJheVR5cGUoJGlkbFR5cGVBKSAmJiAkY29kZUdlbmVyYXRv
ci0+SXNTZXF1ZW5jZU9yRnJvemVuQXJyYXlUeXBlKCRpZGxUeXBlQik7CiAgICAgIyBGSVhNRTog
cmV0dXJuIDAgaWYgJGlkbFR5cGVBIGFuZCAkaWRsVHlwZUIgYXJlIGJvdGggZXhjZXB0aW9uIHR5
cGVzLgogICAgIHJldHVybiAxOwogfQpAQCAtMjE2Miw3ICsyMTI1LDcgQEAgc3ViIEdlbmVyYXRl
T3ZlcmxvYWRlZEZ1bmN0aW9uT3JDb25zdHJ1YwogICAgIH07CiAgICAgbXkgJGlzRGljdGlvbmFy
eVBhcmFtZXRlciA9IHN1YiB7CiAgICAgICAgIG15ICgkaWRsVHlwZSwgJG9wdGlvbmFsaXR5KSA9
IEBfOwotICAgICAgICByZXR1cm4gJGlkbFR5cGUtPm5hbWUgZXEgIkRpY3Rpb25hcnkiIHx8ICRj
b2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCRpZGxUeXBlLT5uYW1lKTsKKyAgICAgICAg
cmV0dXJuICRpZGxUeXBlLT5uYW1lIGVxICJEaWN0aW9uYXJ5IiB8fCAkY29kZUdlbmVyYXRvci0+
SXNEaWN0aW9uYXJ5VHlwZSgkaWRsVHlwZSk7CiAgICAgfTsKICAgICBteSAkaXNOdWxsYWJsZU9y
RGljdGlvbmFyeVBhcmFtZXRlck9yVW5pb25Db250YWluaW5nT25lID0gc3ViIHsKICAgICAgICAg
bXkgKCRpZGxUeXBlLCAkb3B0aW9uYWxpdHkpID0gQF87CkBAIC0yMTkxLDE3ICsyMTU0LDE3IEBA
IHN1YiBHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbk9yQ29uc3RydWMKICAgICB9OwogICAgIG15
ICRpc09iamVjdE9yQ2FsbGJhY2tGdW5jdGlvblBhcmFtZXRlciA9IHN1YiB7CiAgICAgICAgIG15
ICgkaWRsVHlwZSwgJG9wdGlvbmFsaXR5KSA9IEBfOwotICAgICAgICByZXR1cm4gJGlkbFR5cGUt
Pm5hbWUgZXEgIm9iamVjdCIgfHwgJGNvZGVHZW5lcmF0b3ItPklzRnVuY3Rpb25Pbmx5Q2FsbGJh
Y2tJbnRlcmZhY2UoJGlkbFR5cGUtPm5hbWUpOworICAgICAgICByZXR1cm4gJGlkbFR5cGUtPm5h
bWUgZXEgIm9iamVjdCIgfHwgJGNvZGVHZW5lcmF0b3ItPklzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJ
bnRlcmZhY2UoJGlkbFR5cGUpOwogICAgIH07CiAgICAgbXkgJGlzU2VxdWVuY2VPckZyb3plbkFy
cmF5UGFyYW1ldGVyID0gc3ViIHsKICAgICAgICAgbXkgKCRpZGxUeXBlLCAkb3B0aW9uYWxpdHkp
ID0gQF87Ci0gICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJvemVu
QXJyYXlUeXBlKCRpZGxUeXBlLT5uYW1lKTsKKyAgICAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9y
LT5Jc1NlcXVlbmNlT3JGcm96ZW5BcnJheVR5cGUoJGlkbFR5cGUpOwogICAgIH07CiAgICAgbXkg
JGlzRGljdGlvbmFyeU9yT2JqZWN0T3JDYWxsYmFja0ludGVyZmFjZVBhcmFtZXRlciA9IHN1YiB7
CiAgICAgICAgIG15ICgkaWRsVHlwZSwgJG9wdGlvbmFsaXR5KSA9IEBfOwogICAgICAgICByZXR1
cm4gMSBpZiAmJGlzRGljdGlvbmFyeVBhcmFtZXRlcigkaWRsVHlwZSwgJG9wdGlvbmFsaXR5KTsK
ICAgICAgICAgcmV0dXJuIDEgaWYgJGlkbFR5cGUtPm5hbWUgZXEgIm9iamVjdCI7Ci0gICAgICAg
IHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCRpZGxUeXBl
LT5uYW1lKSAmJiAhJGNvZGVHZW5lcmF0b3ItPklzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJbnRlcmZh
Y2UoJGlkbFR5cGUtPm5hbWUpOworICAgICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+
SXNDYWxsYmFja0ludGVyZmFjZSgkaWRsVHlwZSkgJiYgISRjb2RlR2VuZXJhdG9yLT5Jc0Z1bmN0
aW9uT25seUNhbGxiYWNrSW50ZXJmYWNlKCRpZGxUeXBlKTsKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfTsKICAgICBteSAkaXNCb29sZWFuUGFyYW1ldGVyID0gc3ViIHsKQEAgLTIyMTAsMTEgKzIx
NzMsMTEgQEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uT3JDb25zdHJ1YwogICAgIH07
CiAgICAgbXkgJGlzTnVtZXJpY1BhcmFtZXRlciA9IHN1YiB7CiAgICAgICAgIG15ICgkaWRsVHlw
ZSwgJG9wdGlvbmFsaXR5KSA9IEBfOwotICAgICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPklz
TnVtZXJpY1R5cGUoJGlkbFR5cGUtPm5hbWUpOworICAgICAgICByZXR1cm4gJGNvZGVHZW5lcmF0
b3ItPklzTnVtZXJpY1R5cGUoJGlkbFR5cGUpOwogICAgIH07CiAgICAgbXkgJGlzU3RyaW5nT3JF
bnVtUGFyYW1ldGVyID0gc3ViIHsKICAgICAgICAgbXkgKCRpZGxUeXBlLCAkb3B0aW9uYWxpdHkp
ID0gQF87Ci0gICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdPckVudW1UeXBl
KCRpZGxUeXBlLT5uYW1lKTsKKyAgICAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmlu
Z09yRW51bVR5cGUoJGlkbFR5cGUpOwogICAgIH07CiAgICAgbXkgJGlzQW55UGFyYW1ldGVyID0g
c3ViIHsKICAgICAgICAgbXkgKCRpZGxUeXBlLCAkb3B0aW9uYWxpdHkpID0gQF87CkBAIC0yMjYw
LDEzICsyMjIzLDEyIEBAIEVORAogCiAgICAgICAgICAgICAgICAgbXkgQGlkbFN1YnR5cGVzID0g
JGlkbFR5cGUtPmlzVW5pb24gPyBHZXRGbGF0dGVuZWRNZW1iZXJUeXBlcygkaWRsVHlwZSkgOiAo
ICRpZGxUeXBlICk7CiAgICAgICAgICAgICAgICAgZm9yIG15ICRpZGxTdWJ0eXBlIChAaWRsU3Vi
dHlwZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgbXkgJHR5cGUgPSAkaWRsU3VidHlwZS0+bmFt
ZTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBl
KCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICgkdHlwZSBlcSAiRE9NV2luZG93IikgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJGlkbFN1YnR5
cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCRpZGxTdWJ0eXBlKSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRpZGxTdWJ0eXBlLT5uYW1lIGVxICJET01XaW5k
b3ciKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpT
RE9NV2luZG93U2hlbGwuaCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJh
dGVPdmVybG9hZENhbGxJZk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5p
c09iamVjdCgpICYmIChhc09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKEpTRE9N
V2luZG93U2hlbGw6OmluZm8oKSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhl
cml0cyhKU0RPTVdpbmRvdzo6aW5mbygpKSkiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2Fs
bElmTmVjZXNzYXJ5KCRvdmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYg
YXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyhKUyR7dHlwZX06OmluZm8oKSki
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxsSWZO
ZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBhc09i
amVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKEpTIiAuICRpZGxTdWJ0eXBlLT5uYW1l
IC4gIjo6aW5mbygpKSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtMjM2Nyw4ICsyMzI5LDkgQEAgc3ViIExl
bmd0aE9mTG9uZ2VzdEZ1bmN0aW9uUGFyYW1ldGVyTGlzdAogc3ViIEdldE5hdGl2ZVR5cGVGb3JD
b252ZXJzaW9ucwogewogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKKwogICAgIG15ICRpbnRl
cmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKLSAgICAkaW50ZXJmYWNlTmFtZSA9ICRjb2Rl
R2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGludGVyZmFjZU5hbWUpIGlmICRj
b2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigkaW50ZXJmYWNlTmFtZSk7Cisg
ICAgJGludGVyZmFjZU5hbWUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFy
T2ZmRm9yVHlwZSgkaW50ZXJmYWNlLT50eXBlKSBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBl
TmVlZGluZ1RlYXJPZmZGb3JUeXBlKCRpbnRlcmZhY2UtPnR5cGUpOwogICAgIHJldHVybiAkaW50
ZXJmYWNlTmFtZTsKIH0KIApAQCAtMjUzMSw3ICsyNDk0LDkgQEAgc3ViIEdldENhc3RpbmdIZWxw
ZXJGb3JUaGlzT2JqZWN0CiBzdWIgR2V0SW5kZXhlZEdldHRlckV4cHJlc3Npb24KIHsKICAgICBt
eSAkaW5kZXhlZEdldHRlckZ1bmN0aW9uID0gc2hpZnQ7Ci0gICAgcmV0dXJuICJqc1N0cmluZ09y
VW5kZWZpbmVkKHN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpIiBpZiAk
aW5kZXhlZEdldHRlckZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgIkRPTVN0cmluZyI7Cisg
ICAgCisgICAgIyBGSVhNRTogU2hvdWxkIHRoaXMgd29yayBmb3IgYWxsIHN0cmluZyB0eXBlcz8K
KyAgICByZXR1cm4gImpzU3RyaW5nT3JVbmRlZmluZWQoc3RhdGUsIHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5pdGVtKGluZGV4KSkiIGlmICRpbmRleGVkR2V0dGVyRnVuY3Rpb24tPnNpZ25hdHVyZS0+
aWRsVHlwZS0+bmFtZSBlcSAiRE9NU3RyaW5nIjsKICAgICByZXR1cm4gInRvSlMoc3RhdGUsIHRo
aXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRl
eCkpIjsKIH0KIApAQCAtMjYxNSw3ICsyNTgwLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICAkaW1wbEluY2x1ZGVzeyI8d3RmL0dldFB0ci5oPiJ9ID0gMTsKICAgICAkaW1wbElu
Y2x1ZGVzeyI8cnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oPiJ9ID0gMSBpZiAkaW5kZXhlZEdl
dHRlckZ1bmN0aW9uOwogCi0gICAgbXkgJGltcGxUeXBlID0gR2V0SW1wbENsYXNzTmFtZSgkaW50
ZXJmYWNlTmFtZSk7CisgICAgbXkgJGltcGxUeXBlID0gR2V0SW1wbENsYXNzTmFtZSgkaW50ZXJm
YWNlKTsKIAogICAgIEFkZEpTQnVpbHRpbkluY2x1ZGVzSWZOZWVkZWQoJGludGVyZmFjZSk7CiAK
QEAgLTI5MjIsMjAgKzI4ODcsMjAgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICB9
CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIsIENSRUFURV9NRVRIT0RfVEFCTEUoJGNsYXNzTmFt
ZSkgfTtcblxuIik7CiAKLSAgICBteSAoJHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0
eVR5cGUsICRzdmdOYXRpdmVUeXBlKSA9IEdldFNWR1Byb3BlcnR5VHlwZXMoJGludGVyZmFjZU5h
bWUpOworICAgIG15ICgkc3ZnUHJvcGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2
Z05hdGl2ZVR5cGUpID0gR2V0U1ZHUHJvcGVydHlUeXBlcygkaW50ZXJmYWNlKTsKICAgICBteSAk
c3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGU7CiAgICAgJHN2Z1Byb3BlcnR5T3JMaXN0UHJv
cGVydHlUeXBlID0gJHN2Z1Byb3BlcnR5VHlwZSBpZiAkc3ZnUHJvcGVydHlUeXBlOwogICAgICRz
dmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSA9ICRzdmdMaXN0UHJvcGVydHlUeXBlIGlmICRz
dmdMaXN0UHJvcGVydHlUeXBlOwogCiAgICAgIyBDb25zdHJ1Y3RvcgogICAgIGlmICgkaW50ZXJm
YWNlTmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbklt
cGwoIkpTRE9NV2luZG93U2hlbGwiKTsKKyAgICAgICAgQWRkSW5jbHVkZXNGb3JJbXBsZW1lbnRh
dGlvblR5cGVJbkltcGwoIkpTRE9NV2luZG93U2hlbGwiKTsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFzc05hbWUoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgUmVmPCRpbXBsVHlwZT4mJiBpbXBsLCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbClcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUodm0s
IHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSwgc2hlbGwpXG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwog
ICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNl
LCAiV29ya2VyR2xvYmFsU2NvcGUiKSkgewotICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbklt
cGwoJGludGVyZmFjZU5hbWUpOworICAgICAgICBBZGRJbmNsdWRlc0ZvckltcGxlbWVudGF0aW9u
VHlwZUluSW1wbCgkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
JHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFZNJiB2bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJl
ZjwkaW1wbFR5cGU+JiYgaW1wbClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICA6ICRwYXJlbnRDbGFzc05hbWUodm0sIHN0cnVjdHVyZSwgV1RGTW92ZShpbXBsKSlcbiIpOwog
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwpAQCAtMzA3OSw3ICszMDQ0LDggQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIH07CiAKICAgICAgICAgICAg
IGlmICgkaW5kZXhlZEdldHRlckZ1bmN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCRpbmRl
eGVkR2V0dGVyRnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiRE9NU3RyaW5nIikgeworICAg
ICAgICAgICAgICAgICMgRklYTUU6IFNob3VsZCB0aGlzIHdvcmsgZm9yIGFsbCBzdHJpbmcgdHlw
ZXM/CisgICAgICAgICAgICAgICAgaWYgKCRpbmRleGVkR2V0dGVyRnVuY3Rpb24tPnNpZ25hdHVy
ZS0+aWRsVHlwZS0+bmFtZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRF
WCkpIHtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubGVuZ3RoKCkpKSB7XG4iKTsKQEAgLTMxNTgsNyArMzEyNCw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBuZXh0IGlmIElzSlNCdWlsdGluKCRpbnRl
cmZhY2UsICRhdHRyaWJ1dGUpOwogCiAgICAgICAgICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+bmFtZTsKLSAgICAgICAgICAgIG15ICR0eXBlID0gJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT50eXBlOworICAgICAgICAgICAgbXkgJGlkbFR5cGUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPmlkbFR5cGU7CiAgICAgICAgICAgICBteSAkZ2V0RnVuY3Rpb25OYW1lID0gR2V0QXR0
cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKICAg
ICAgICAgICAgIG15ICRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lID0gJGNvZGVHZW5lcmF0b3ItPldL
X2xjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBs
ZW1lbnRlZEFzfSB8fCAkbmFtZSk7CiAgICAgICAgICAgICBteSAkZ2V0dGVyTWF5VGhyb3dMZWdh
Y3lFeGNlcHRpb24gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e0dldHRlck1heVRocm93TGVnYWN5RXhjZXB0aW9ufTsKQEAgLTMxNjgsNyArMzEzNCw3IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkYXR0cmlidXRlQ29uZGl0
aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygk
YXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIj
aWYgJHthdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRhdHRyaWJ1dGVDb25kaXRp
b25hbFN0cmluZzsKIAotICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRlLT5pc1N0YXRpYyB8fCAk
YXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9yJC8pIHsKKyAgICAgICAg
ICAgIGlmICghJGF0dHJpYnV0ZS0+aXNTdGF0aWMgfHwgJGNvZGVHZW5lcmF0b3ItPklzQ29uc3Ry
dWN0b3JUeXBlKCRpZGxUeXBlKSkgewogICAgICAgICAgICAgICAgIG15ICR0ZW1wbGF0ZVBhcmFt
ZXRlcnMgPSAiJHtnZXRGdW5jdGlvbk5hbWV9R2V0dGVyIjsKICAgICAgICAgICAgICAgICBpZiAo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntMZW5pZW50VGhpc30p
IHsKICAgICAgICAgICAgICAgICAgICAgJHRlbXBsYXRlUGFyYW1ldGVycyAuPSAiLCBDYXN0ZWRU
aGlzRXJyb3JCZWhhdmlvcjo6UmV0dXJuRWFybHkiOwpAQCAtMzIwNyw3ICszMTczLDcgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgIyBH
bG9iYWwgY29uc3RydWN0b3JzIGNhbiBiZSBkaXNhYmxlZCBhdCBydW50aW1lLgotICAgICAgICAg
ICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3RydWN0b3IkLykgewor
ICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkaWRsVHlw
ZSkpIHsKICAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntFbmFibGVkQnlTZXR0aW5nfSkgewogICAgICAgICAgICAgICAgICAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiRnJhbWUuaCIpOwogICAgICAgICAgICAgICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiU2V0dGluZ3MuaCIpOwpAQCAtMzI0Miw4ICszMjA4LDggQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3RhdGUubGV4aWNhbEdsb2JhbE9iamVj
dCgpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSW5wdXRD
dXJzb3ImIGN1cnNvciA9IGdsb2JhbE9iamVjdC0+aW5wdXRDdXJzb3IoKTtcbiIpOwogCi0gICAg
ICAgICAgICAgICAgbXkgJG5hdGl2ZVR5cGUgPSBHZXROYXRpdmVUeXBlKCRpbnRlcmZhY2UsICR0
eXBlKTsKLSAgICAgICAgICAgICAgICBteSAkbWVtb2l6ZWRUeXBlID0gR2V0TmF0aXZlVHlwZUZv
ck1lbW9pemF0aW9uKCRpbnRlcmZhY2UsICR0eXBlKTsKKyAgICAgICAgICAgICAgICBteSAkbmF0
aXZlVHlwZSA9IEdldE5hdGl2ZVR5cGUoJGludGVyZmFjZSwgJGlkbFR5cGUpOworICAgICAgICAg
ICAgICAgIG15ICRtZW1vaXplZFR5cGUgPSBHZXROYXRpdmVUeXBlRm9yTWVtb2l6YXRpb24oJGlu
dGVyZmFjZSwgJGlkbFR5cGUpOwogICAgICAgICAgICAgICAgIG15ICRleGNlcHRpb25Db2RlID0g
JGdldHRlck1heVRocm93TGVnYWN5RXhjZXB0aW9uID8gImVjIiA6ICIwIjsKICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Y29uc3Qg
QXRvbWljU3RyaW5nPiBiaW5kaW5nTmFtZShcIiRpbnRlcmZhY2VOYW1lLiRuYW1lXCIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgaWYgKGN1cnNvci5pc0NhcHR1cmluZygpKSB7XG4iKTsKQEAg
LTMyNzMsMTUgKzMyMzksMTUgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0RPTUJpbmRpbmcuaCJ9ID0gMTsKICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFw
cGVkKCk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1
cm4gc2hvdWxkQWxsb3dBY2Nlc3NUb05vZGUoJnN0YXRlLCBpbXBsLiIgLiAkYXR0cmlidXRlLT5z
aWduYXR1cmUtPm5hbWUgLiAiKCkpID8gIiAuIE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVmZXJlbmNl
cygkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbnRlcmZhY2UsICJpbXBsLiRpbXBsR2V0dGVy
RnVuY3Rpb25OYW1lKCkiLCAidGhpc09iamVjdCIpIC4gIiA6IGpzTnVsbCgpO1xuIik7Ci0gICAg
ICAgICAgICB9IGVsc2lmICgkdHlwZSBlcSAiRXZlbnRIYW5kbGVyIikgeworICAgICAgICAgICAg
fSBlbHNpZiAoJGlkbFR5cGUtPm5hbWUgZXEgIkV2ZW50SGFuZGxlciIpIHsKICAgICAgICAgICAg
ICAgICAkaW1wbEluY2x1ZGVzeyJFdmVudE5hbWVzLmgifSA9IDE7CiAgICAgICAgICAgICAgICAg
bXkgJGdldHRlciA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
V2luZG93RXZlbnRIYW5kbGVyfSA/ICJ3aW5kb3dFdmVudEhhbmRsZXJBdHRyaWJ1dGUiCiAgICAg
ICAgICAgICAgICAgICAgIDogJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPntEb2N1bWVudEV2ZW50SGFuZGxlcn0gPyAiZG9jdW1lbnRFdmVudEhhbmRsZXJBdHRyaWJ1
dGUiCiAgICAgICAgICAgICAgICAgICAgIDogImV2ZW50SGFuZGxlckF0dHJpYnV0ZSI7CiAgICAg
ICAgICAgICAgICAgbXkgJGV2ZW50TmFtZSA9IEV2ZW50SGFuZGxlckF0dHJpYnV0ZUV2ZW50TmFt
ZSgkYXR0cmlidXRlKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBy
ZXR1cm4gJGdldHRlcih0aGlzT2JqZWN0LndyYXBwZWQoKSwgJGV2ZW50TmFtZSk7XG4iKTsKLSAg
ICAgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSA9fiAvQ29uc3Ry
dWN0b3IkLykgewotICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRv
ci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxUeXBlKSkgewor
ICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmlkbFR5cGUtPm5hbWU7CiAgICAgICAgICAgICAgICAgJGNvbnN0cnVjdG9yVHlwZSA9fiBz
L0NvbnN0cnVjdG9yJC8vOwogICAgICAgICAgICAgICAgICMgV2hlbiBDb25zdHJ1Y3RvciBhdHRy
aWJ1dGUgaXMgdXNlZCBieSBET01XaW5kb3cuaWRsLCBpdCdzIGNvcnJlY3QgdG8gcGFzcyB0aGlz
T2JqZWN0IGFzIHRoZSBnbG9iYWwgb2JqZWN0CiAgICAgICAgICAgICAgICAgIyBXaGVuIEpTRE9N
V3JhcHBlcnMgaGF2ZSBhIGJhY2stcG9pbnRlciB0byB0aGUgZ2xvYmFsT2JqZWN0IHdlIGNhbiBw
YXNzIHRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpCkBAIC0zMzMwLDcgKzMyOTYsNyBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICB1bnNoaWZ0KEBhcmd1
bWVudHMsIEBjYWxsV2l0aEFyZ3MpOwogICAgICAgICAgICAgICAgICAgICBteSAkanNUeXBlID0g
TmF0aXZlVG9KU1ZhbHVlVXNpbmdSZWZlcmVuY2VzKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwg
JGludGVyZmFjZSwgIiR7ZnVuY3Rpb25OYW1lfSgiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAu
ICIpIiwgInRoaXNPYmplY3QiKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpO1xuIikgaWYgISRhdHRy
aWJ1dGUtPmlzU3RhdGljOwotICAgICAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3It
PklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoJGNv
ZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRpZGxUeXBlKSkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byBvYmogPSAkanNUeXBlO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU1Zh
bHVlIHJlc3VsdCA9IHRvSlMoJnN0YXRlLCB0aGlzT2JqZWN0Lmdsb2JhbE9iamVjdCgpLCBvYmou
Z2V0KCkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0zNDc4LDcgKzM0
NDQsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbmV4dCBpZiBJ
c0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKIAogICAgICAgICAgICAgbXkgJG5h
bWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7Ci0gICAgICAgICAgICBteSAkdHlwZSA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAgICAgICAgIG15ICRpZGxUeXBlID0g
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxUeXBlOwogICAgICAgICAgICAgbXkgJHB1dEZ1bmN0
aW9uTmFtZSA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwg
JGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBteSAkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSA9ICRj
b2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRuYW1lKTsKICAgICAgICAgICAgIG15ICRzZXR0ZXJN
YXlUaHJvd0xlZ2FjeUV4Y2VwdGlvbiA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57U2V0dGVyTWF5VGhyb3dMZWdhY3lFeGNlcHRpb259OwpAQCAtMzUzMiw3ICsz
NDk4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIGlmIChIYXND
dXN0b21TZXR0ZXIoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpKSB7
CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdGhpc09iamVjdC5zZXQk
aW1wbFNldHRlckZ1bmN0aW9uTmFtZShzdGF0ZSwgdmFsdWUpO1xuIik7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIHRydWU7XG4iKTsKLSAgICAgICAgICAg
IH0gZWxzaWYgKCR0eXBlIGVxICJFdmVudEhhbmRsZXIiKSB7CisgICAgICAgICAgICB9IGVsc2lm
ICgkaWRsVHlwZS0+bmFtZSBlcSAiRXZlbnRIYW5kbGVyIikgewogICAgICAgICAgICAgICAgICRp
bXBsSW5jbHVkZXN7IkpTRXZlbnRMaXN0ZW5lci5oIn0gPSAxOwogICAgICAgICAgICAgICAgIG15
ICRldmVudE5hbWUgPSBFdmVudEhhbmRsZXJBdHRyaWJ1dGVFdmVudE5hbWUoJGF0dHJpYnV0ZSk7
CiAgICAgICAgICAgICAgICAgIyBGSVhNRTogRmluZCBhIHdheSB0byBkbyB0aGlzIHNwZWNpYWwg
Y2FzZSB3aXRob3V0IGhhcmRjb2RpbmcgdGhlIGNsYXNzIGFuZCBhdHRyaWJ1dGUgbmFtZXMgaGVy
ZS4KQEAgLTM1NDcsOCArMzUxMyw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRzZXR0ZXIoc3RhdGUsIHRo
aXNPYmplY3QsIHRoaXNPYmplY3Qud3JhcHBlZCgpLCAkZXZlbnROYW1lLCB2YWx1ZSk7XG4iKTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgcmV0dXJuIHRydWU7XG4iKTsKLSAgICAgICAgICAgIH0gZWxzaWYgKCR0eXBlID1+IC9Db25z
dHJ1Y3RvciQvKSB7Ci0gICAgICAgICAgICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9ICR0eXBl
OworICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUeXBl
KCRpZGxUeXBlKSkgeworICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkaWRs
VHlwZS0+bmFtZTsKICAgICAgICAgICAgICAgICAkY29uc3RydWN0b3JUeXBlID1+IHMvQ29uc3Ry
dWN0b3IkLy87CiAgICAgICAgICAgICAgICAgIyAkY29uc3RydWN0b3JUeXBlIH49IC9Db25zdHJ1
Y3RvciQvIGluZGljYXRlcyB0aGF0IGl0IGlzIE5hbWVkQ29uc3RydWN0b3IuCiAgICAgICAgICAg
ICAgICAgIyBXZSBkbyBub3QgZ2VuZXJhdGUgdGhlIGhlYWRlciBmaWxlIGZvciBOYW1lZENvbnN0
cnVjdG9yIG9mIGNsYXNzIFhYWFgsCkBAIC0zNTcwLDcgKzM1MzYsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICBteSAkcHV0Rm9yd2FyZHMgPSAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1B1dEZvcndhcmRzfTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKCRwdXRGb3J3YXJkcykgewogICAgICAgICAgICAgICAgICAg
ICAgICAgbXkgJGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUgPSAkY29kZUdlbmVyYXRvci0+V0tfbGNm
aXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0ltcGxlbWVu
dGVkQXN9IHx8ICRuYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRmb3J3YXJkZWRB
dHRyaWJ1dGUgPSAkY29kZUdlbmVyYXRvci0+R2V0QXR0cmlidXRlRnJvbUludGVyZmFjZSgkaW50
ZXJmYWNlLCAkdHlwZSwgJHB1dEZvcndhcmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG15
ICRmb3J3YXJkZWRBdHRyaWJ1dGUgPSAkY29kZUdlbmVyYXRvci0+R2V0QXR0cmlidXRlRnJvbUlu
dGVyZmFjZSgkaW50ZXJmYWNlLCAkaWRsVHlwZS0+bmFtZSwgJHB1dEZvcndhcmRzKTsKIAogICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCRmb3J3YXJkZWRBdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q0VSZWFjdGlvbnN9KSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgRU5BQkxFKENVU1RPTV9FTEVNRU5UUylc
biIpOwpAQCAtMzU3OSwxOCArMzU0NSwxOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkN1c3RvbUVsZW1lbnRS
ZWFjdGlvblF1ZXVlLmgifSA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG15ICR0eXBlTmFtZSA9ICRpZGxUeXBlLT5uYW1lOwogICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aXNOdWxsYWJsZSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJl
ZlB0cjwke3R5cGV9PiBmb3J3YXJkZWRJbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCkuJHtpbXBs
R2V0dGVyRnVuY3Rpb25OYW1lfSgpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPCR7dHlwZU5hbWV9PiBmb3J3YXJkZWRJbXBs
ID0gdGhpc09iamVjdC53cmFwcGVkKCkuJHtpbXBsR2V0dGVyRnVuY3Rpb25OYW1lfSgpO1xuIik7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYg
KCFmb3J3YXJkZWRJbXBsKVxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBmYWxzZTtcbiIpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8mIGltcGwgPSAqZm9yd2Fy
ZGVkSW1wbDtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIEF0dHJpYnV0ZSBpcyBub3QgbnVsbGFibGUsIHRoZSBpbXBs
ZW1lbnRhdGlvbiBpcyBleHBlY3RlZCB0byByZXR1cm4gYSByZWZlcmVuY2UuCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgUmVmPCR7dHlwZX0+IGZv
cndhcmRlZEltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS4ke2ltcGxHZXR0ZXJGdW5jdGlvbk5h
bWV9KCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBSZWY8JHt0eXBlTmFtZX0+IGZvcndhcmRlZEltcGwgPSB0aGlzT2JqZWN0LndyYXBw
ZWQoKS4ke2ltcGxHZXR0ZXJGdW5jdGlvbk5hbWV9KCk7XG4iKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvJiBpbXBsID0gZm9yd2FyZGVk
SW1wbC5nZXQoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICAgICAgJGF0dHJpYnV0ZSA9ICRmb3J3YXJkZWRBdHRyaWJ1dGU7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAkdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICRpZGxUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxU
eXBlOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBl
ZCgpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTM2MDEsMTQgKzM1NjgsMTQgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBteSAkc2hvdWxkUGFz
c0J5UmVmZXJlbmNlID0gU2hvdWxkUGFzc1dyYXBwZXJCeVJlZmVyZW5jZSgkYXR0cmlidXRlLT5z
aWduYXR1cmUsICRpbnRlcmZhY2UpOwogCiAgICAgICAgICAgICAgICAgbXkgKCRuYXRpdmVWYWx1
ZSwgJG1heVRocm93RXhjZXB0aW9uKSA9IEpTVmFsdWVUb05hdGl2ZSgkaW50ZXJmYWNlLCAkYXR0
cmlidXRlLT5zaWduYXR1cmUsICJ2YWx1ZSIsICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWx9LCAiJnN0YXRlIiwgInN0YXRlIiwgInRoaXNPYmpl
Y3QiKTsKLSAgICAgICAgICAgICAgICBpZiAoISRzaG91bGRQYXNzQnlSZWZlcmVuY2UgJiYgKCRj
b2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNU
eXBlZEFycmF5VHlwZSgkdHlwZSkpKSB7CisgICAgICAgICAgICAgICAgaWYgKCEkc2hvdWxkUGFz
c0J5UmVmZXJlbmNlICYmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkaWRsVHlwZSkg
fHwgJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJGlkbFR5cGUpKSkgewogICAgICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGltZS9FcnJvci5oPiJ9ID0gMTsKICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgIiAuIEdldE5hdGl2ZVR5
cGVGcm9tU2lnbmF0dXJlKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUtPnNpZ25hdHVyZSkgLiAiIG5h
dGl2ZVZhbHVlID0gbnVsbHB0cjtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBpZiAoIXZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCkpIHtcbiIpOwogICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgbmF0aXZlVmFsdWUg
PSAkbmF0aXZlVmFsdWU7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpO1xuIikg
aWYgJG1heVRocm93RXhjZXB0aW9uOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgaWYgKFVOTElLRUxZKCFuYXRpdmVWYWx1ZSkpIHtcbiIpOwotICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgICAgIHRocm93QXR0cmli
dXRlVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlLCBcIiR2aXNpYmxlSW50ZXJmYWNlTmFtZVwi
LCBcIiRuYW1lXCIsIFwiJHR5cGVcIik7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgICAgICAgICB0aHJvd0F0dHJpYnV0ZVR5cGVFcnJvcihzdGF0ZSwg
dGhyb3dTY29wZSwgXCIkdmlzaWJsZUludGVyZmFjZU5hbWVcIiwgXCIkbmFtZVwiLCBcIiIgLiAk
aWRsVHlwZS0+bmFtZSAuICJcIik7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4iKTsKICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIH1cbiIpOwogICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKQEAgLTM2MTcsMTQgKzM1ODQsMTQg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7
XG4iKSBpZiAkbWF5VGhyb3dFeGNlcHRpb247CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0VudW1UeXBlKCR0eXBlKSkgeworICAgICAg
ICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkaWRsVHlwZSkpIHsKICAg
ICAgICAgICAgICAgICAgICAgcHVzaCAoQGltcGxDb250ZW50LCAiICAgIGlmIChVTkxJS0VMWSgh
bmF0aXZlVmFsdWUpKVxuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2ggKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIik7CiAgICAgICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAgICAgaWYgKCRzaG91bGRQYXNzQnlSZWZlcmVuY2UpIHsKICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKFVOTElLRUxZKCFuYXRpdmVWYWx1ZSkp
IHtcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAg
dGhyb3dBdHRyaWJ1dGVUeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIFwiJHZpc2libGVJbnRl
cmZhY2VOYW1lXCIsIFwiJG5hbWVcIiwgXCIkdHlwZVwiKTtcbiIpOworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgdGhyb3dBdHRyaWJ1dGVUeXBlRXJyb3Io
c3RhdGUsIHRocm93U2NvcGUsIFwiJHZpc2libGVJbnRlcmZhY2VOYW1lXCIsIFwiJG5hbWVcIiwg
XCIiIC4gJGlkbFR5cGUtPm5hbWUgLiAiXCIpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gZmFsc2U7XG4iKTsKICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICAgICAg
fQpAQCAtMzY2MCw5ICszNjI3LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBteSAoJGZ1bmN0aW9uTmFt
ZSwgQGFyZ3VtZW50cykgPSAkY29kZUdlbmVyYXRvci0+U2V0dGVyRXhwcmVzc2lvbihcJWltcGxJ
bmNsdWRlcywgJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUpOwogCi0gICAgICAgICAgICAgICAg
ICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSkgYW5kIG5vdCAk
dHlwZSBlcSAiQXJyYXlCdWZmZXIiKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdl
bmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkaWRsVHlwZSkgYW5kIG5vdCAkaWRsVHlwZS0+bmFt
ZSBlcSAiQXJyYXlCdWZmZXIiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBhcmd1
bWVudHMsICJuYXRpdmVWYWx1ZS5nZXQoKSIpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2lm
ICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzRW51bVR5cGUoJGlkbFR5cGUpKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICJuYXRpdmVWYWx1ZS52YWx1ZSgp
Iik7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBhcmd1bWVudHMsICRzaG91bGRQYXNzQnlSZWZlcmVuY2UgPyAiKm5hdGl2ZVZhbHVl
IiA6ICJXVEZNb3ZlKG5hdGl2ZVZhbHVlKSIpOwpAQCAtMzc1MSw3ICszNzE4LDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgbmV4dCBpZiAkaXNDdXN0b20gJiYg
JGlzT3ZlcmxvYWRlZCAmJiAkZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA+IDE7CiAKLSAgICAg
ICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluSW1wbCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZSkgdW5sZXNzICRpc0N1c3RvbSBvciBJc1JldHVybmluZ1Byb21pc2UoJGZ1bmN0aW9uKTsKKyAg
ICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+aWRsVHlwZSkgdW5sZXNzICRpc0N1c3RvbSBvciBJc1JldHVybmluZ1Byb21pc2UoJGZ1bmN0
aW9uKTsKIAogICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9IEdldEZ1bmN0aW9uTmFtZSgk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkZnVuY3Rpb24pOwogCkBAIC0zOTQ5LDcgKzM5MTYsOCBA
QCBFTkQKICAgICAjIGRpZSAiQ2FuJ3QgZ2VuZXJhdGUgYmluZGluZyBmb3IgY2xhc3Mgd2l0aCBj
YWNoZWQgYXR0cmlidXRlIGFuZCBjdXN0b20gbWFyay4iIGlmICRudW1DYWNoZWRBdHRyaWJ1dGVz
ID4gMCBhbmQgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SlNDdXN0b21NYXJrRnVu
Y3Rpb259OwogCiAgICAgaWYgKCRpbmRleGVkR2V0dGVyRnVuY3Rpb24pIHsKLSAgICAgICAgJGlt
cGxJbmNsdWRlc3siVVJMLmgifSA9IDEgaWYgJGluZGV4ZWRHZXR0ZXJGdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlIGVxICJET01TdHJpbmciOworICAgICAgICAjIEZJWE1FOiBTaG91bGQgdGhpcyB3
b3JrIGZvciBhbGwgc3RyaW5nIHR5cGVzLgorICAgICAgICAkaW1wbEluY2x1ZGVzeyJVUkwuaCJ9
ID0gMSBpZiAkaW5kZXhlZEdldHRlckZ1bmN0aW9uLT5zaWduYXR1cmUtPmlkbFR5cGUtPm5hbWUg
ZXEgIkRPTVN0cmluZyI7CiAgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSA9fiAvXkhUTUxcdypD
b2xsZWN0aW9uJC8gb3IgJGludGVyZmFjZU5hbWUgZXEgIlJhZGlvTm9kZUxpc3QiKSB7CiAgICAg
ICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU05vZGUuaCJ9ID0gMTsKICAgICAgICAgICAgICRpbXBs
SW5jbHVkZXN7Ik5vZGUuaCJ9ID0gMTsKQEAgLTQzMDAsMTAgKzQyNjgsOSBAQCBteSAlYXV0b21h
dGljYWxseUdlbmVyYXRlZERlZmF1bHRWYWx1ZXMgCiAKIHN1YiBXaWxsQ29udmVydFVuZGVmaW5l
ZFRvRGVmYXVsdFBhcmFtZXRlclZhbHVlCiB7Ci0gICAgbXkgJHBhcmFtZXRlclR5cGUgPSBzaGlm
dDsKLSAgICBteSAkZGVmYXVsdFZhbHVlID0gc2hpZnQ7CisgICAgbXkgKCRwYXJhbWV0ZXJUeXBl
LCAkZGVmYXVsdFZhbHVlKSA9IEBfOwogCi0gICAgbXkgJGF1dG9tYXRpY2FsbHlHZW5lcmF0ZWRE
ZWZhdWx0VmFsdWUgPSAkYXV0b21hdGljYWxseUdlbmVyYXRlZERlZmF1bHRWYWx1ZXN7JHBhcmFt
ZXRlclR5cGV9OworICAgIG15ICRhdXRvbWF0aWNhbGx5R2VuZXJhdGVkRGVmYXVsdFZhbHVlID0g
JGF1dG9tYXRpY2FsbHlHZW5lcmF0ZWREZWZhdWx0VmFsdWVzeyRwYXJhbWV0ZXJUeXBlLT5uYW1l
fTsKICAgICByZXR1cm4gMSBpZiBkZWZpbmVkICRhdXRvbWF0aWNhbGx5R2VuZXJhdGVkRGVmYXVs
dFZhbHVlICYmICRhdXRvbWF0aWNhbGx5R2VuZXJhdGVkRGVmYXVsdFZhbHVlIGVxICRkZWZhdWx0
VmFsdWU7CiAKICAgICByZXR1cm4gMSBpZiAkZGVmYXVsdFZhbHVlIGVxICJudWxsIiAmJiAkY29k
ZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkcGFyYW1ldGVyVHlwZSk7CkBAIC00MzQ5LDQwICs0
MzE2LDQwIEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogCiAgICAgbXkgJGFyZ3VtZW50
SW5kZXggPSAwOwogICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHskZnVuY3Rpb24tPnBhcmFt
ZXRlcnN9KSB7Ci0gICAgICAgIG15ICR0eXBlID0gJHBhcmFtZXRlci0+dHlwZTsKICAgICAgICAg
bXkgJGlkbFR5cGUgPSAkcGFyYW1ldGVyLT5pZGxUeXBlOwogCi0gICAgICAgIGRpZSAiT3B0aW9u
YWwgcGFyYW1ldGVycyBvZiBub24tbnVsbGFibGUgd3JhcHBlciB0eXBlcyBhcmUgbm90IHN1cHBv
cnRlZCIgaWYgJHBhcmFtZXRlci0+aXNPcHRpb25hbCAmJiAhJHBhcmFtZXRlci0+aXNOdWxsYWJs
ZSAmJiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkdHlwZSk7CisgICAgICAgIGRpZSAi
T3B0aW9uYWwgcGFyYW1ldGVycyBvZiBub24tbnVsbGFibGUgd3JhcHBlciB0eXBlcyBhcmUgbm90
IHN1cHBvcnRlZCIgaWYgJHBhcmFtZXRlci0+aXNPcHRpb25hbCAmJiAhJHBhcmFtZXRlci0+aXNO
dWxsYWJsZSAmJiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkaWRsVHlwZSk7CiAgICAg
ICAgIGRpZSAiT3B0aW9uYWwgcGFyYW1ldGVycyBwcmVjZWRpbmcgdmFyaWFkaWMgcGFyYW1ldGVy
cyBhcmUgbm90IHN1cHBvcnRlZCIgaWYgKCRwYXJhbWV0ZXItPmlzT3B0aW9uYWwgJiYgIEB7JGZ1
bmN0aW9uLT5wYXJhbWV0ZXJzfVskbnVtUGFyYW1ldGVycyAtIDFdLT5pc1ZhcmlhZGljKTsKIAog
ICAgICAgICBpZiAoJHBhcmFtZXRlci0+aXNPcHRpb25hbCAmJiAhZGVmaW5lZCgkcGFyYW1ldGVy
LT5kZWZhdWx0KSkgewogICAgICAgICAgICAgIyBBcyBwZXIgV2ViIElETCwgb3B0aW9uYWwgZGlj
dGlvbmFyeSBwYXJhbWV0ZXJzIGFyZSBhbHdheXMgY29uc2lkZXJlZCB0byBoYXZlIGEgZGVmYXVs
dCB2YWx1ZSBvZiBhbiBlbXB0eSBkaWN0aW9uYXJ5LCB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmll
ZC4KLSAgICAgICAgICAgICRwYXJhbWV0ZXItPmRlZmF1bHQoIltdIikgaWYgJHR5cGUgZXEgIkRp
Y3Rpb25hcnkiIG9yICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCR0eXBlKTsKKyAg
ICAgICAgICAgICRwYXJhbWV0ZXItPmRlZmF1bHQoIltdIikgaWYgJGlkbFR5cGUtPm5hbWUgZXEg
IkRpY3Rpb25hcnkiIG9yICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCRpZGxUeXBl
KTsKIAogICAgICAgICAgICAgIyBXZSB1c2UgdW5kZWZpbmVkIGFzIGRlZmF1bHQgdmFsdWUgZm9y
IG9wdGlvbmFsIHBhcmFtZXRlcnMgb2YgdHlwZSAnYW55JyB1bmxlc3Mgc3BlY2lmaWVkIG90aGVy
d2lzZS4KLSAgICAgICAgICAgICRwYXJhbWV0ZXItPmRlZmF1bHQoInVuZGVmaW5lZCIpIGlmICR0
eXBlIGVxICJhbnkiOworICAgICAgICAgICAgJHBhcmFtZXRlci0+ZGVmYXVsdCgidW5kZWZpbmVk
IikgaWYgJGlkbFR5cGUtPm5hbWUgZXEgImFueSI7CiAKICAgICAgICAgICAgICMgV2UgdXNlIHRo
ZSBudWxsIHN0cmluZyBhcyBkZWZhdWx0IHZhbHVlIGZvciBwYXJhbWV0ZXJzIG9mIHR5cGUgRE9N
U3RyaW5nIHVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlLgotICAgICAgICAgICAgJHBhcmFtZXRl
ci0+ZGVmYXVsdCgibnVsbCIpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUp
OworICAgICAgICAgICAgJHBhcmFtZXRlci0+ZGVmYXVsdCgibnVsbCIpIGlmICRjb2RlR2VuZXJh
dG9yLT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpOwogCiAgICAgICAgICAgICAjIEFzIHBlciBXZWIg
SURMLCBwYXNzaW5nIHVuZGVmaW5lZCBmb3IgYSBudWxsYWJsZSBwYXJhbWV0ZXIgaXMgdHJlYXRl
ZCBhcyBudWxsLiBUaGVyZWZvcmUsIHVzZSBudWxsIGFzCiAgICAgICAgICAgICAjIGRlZmF1bHQg
dmFsdWUgZm9yIG51bGxhYmxlIHBhcmFtZXRlcnMgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQu
CiAgICAgICAgICAgICAkcGFyYW1ldGVyLT5kZWZhdWx0KCJudWxsIikgaWYgJHBhcmFtZXRlci0+
aXNOdWxsYWJsZTsKIAogICAgICAgICAgICAgIyBGb3IgY2FsbGJhY2sgcGFyYW1ldGVycywgdGhl
IGdlbmVyYXRlZCBiaW5kaW5ncyB0cmVhdCB1bmRlZmluZWQgYXMgbnVsbCwgc28gdXNlIG51bGwg
YXMgaW1wbGljaXQgZGVmYXVsdCB2YWx1ZS4KLSAgICAgICAgICAgICRwYXJhbWV0ZXItPmRlZmF1
bHQoIm51bGwiKSBpZiAkY29kZUdlbmVyYXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgkdHlwZSk7
CisgICAgICAgICAgICAkcGFyYW1ldGVyLT5kZWZhdWx0KCJudWxsIikgaWYgJGNvZGVHZW5lcmF0
b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJGlkbFR5cGUpOwogICAgICAgICB9CiAKICAgICAgICAg
bXkgJG5hbWUgPSAkcGFyYW1ldGVyLT5uYW1lOwogICAgICAgICBteSAkdmFsdWUgPSAkbmFtZTsK
IAotICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJHR5cGUp
KSB7Ci0gICAgICAgICAgICBteSAkY2FsbGJhY2tDbGFzc05hbWUgPSBHZXRDYWxsYmFja0NsYXNz
TmFtZSgkdHlwZSk7CisgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNDYWxsYmFja0ludGVy
ZmFjZSgkaWRsVHlwZSkpIHsKKyAgICAgICAgICAgIG15ICRjYWxsYmFja0NsYXNzTmFtZSA9IEdl
dENhbGxiYWNrQ2xhc3NOYW1lKCRpZGxUeXBlLT5uYW1lKTsKKyAgICAgICAgICAgIG15ICR0eXBl
TmFtZSA9ICRpZGxUeXBlLT5uYW1lOwogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJGNhbGxi
YWNrQ2xhc3NOYW1lLmgifSA9IDE7CiAgICAgICAgICAgICBpZiAoJHBhcmFtZXRlci0+aXNPcHRp
b25hbCkgewotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSZWZQdHI8
JHR5cGU+ICRuYW1lO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIFJlZlB0cjwkdHlwZU5hbWU+ICRuYW1lO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIGlmICghc3RhdGUtPmFyZ3VtZW50KCRhcmd1bWVudEluZGV4KS5p
c1VuZGVmaW5lZE9yTnVsbCgpKSB7XG4iKTsKLSAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5l
cmF0b3ItPklzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJbnRlcmZhY2UoJHR5cGUpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0Z1bmN0aW9uT25seUNhbGxiYWNrSW50ZXJm
YWNlKCRpZGxUeXBlKSkgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgICAgIGlmICghc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KCRhcmd1bWVudEluZGV4KS5p
c0Z1bmN0aW9uKCkpXG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmICghc3RhdGUtPnVuY2hlY2tl
ZEFyZ3VtZW50KCRhcmd1bWVudEluZGV4KS5pc09iamVjdCgpKVxuIik7CkBAIC00Mzk3LDcgKzQz
NjQsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgfVxuIik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgIGRpZSAiQ2FsbGJhY2tJbnRlcmZhY2UgZG9lcyBub3Qgc3VwcG9ydCBWYXJpYWRp
YyBwYXJhbWV0ZXIiIGlmICRwYXJhbWV0ZXItPmlzVmFyaWFkaWM7Ci0gICAgICAgICAgICAgICAg
aWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0Z1bmN0aW9uT25seUNhbGxiYWNrSW50ZXJmYWNlKCR0eXBl
KSkgeworICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNGdW5jdGlvbk9ubHlD
YWxsYmFja0ludGVyZmFjZSgkaWRsVHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIGlmIChVTkxJS0VMWSghc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50
KCRhcmd1bWVudEluZGV4KS5pc0Z1bmN0aW9uKCkpKVxuIik7CiAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChV
TkxJS0VMWSghc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KCRhcmd1bWVudEluZGV4KS5pc09iamVj
dCgpKSlcbiIpOwpAQCAtNDQyMSw4ICs0Mzg4LDggQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0No
ZWNrCiAKICAgICAgICAgICAgICR2YWx1ZSA9ICJXVEZNb3ZlKCRuYW1lLmFyZ3VtZW50cy52YWx1
ZSgpKSI7CiAKLSAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzRW51bVR5cGUoJHR5
cGUpKSB7Ci0gICAgICAgICAgICBteSAkY2xhc3NOYW1lID0gR2V0RW51bWVyYXRpb25DbGFzc05h
bWUoJHR5cGUsICRpbnRlcmZhY2UpOworICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+
SXNFbnVtVHlwZSgkaWRsVHlwZSkpIHsKKyAgICAgICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRF
bnVtZXJhdGlvbkNsYXNzTmFtZSgkaWRsVHlwZSwgJGludGVyZmFjZSk7CiAKICAgICAgICAgICAg
ICRpbXBsSW5jbHVkZXN7IjxydW50aW1lL0Vycm9yLmg+In0gPSAxOwogCkBAIC00NDU0LDcgKzQ0
MjEsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgICAgICAgICAkaW5k
ZW50ID0gIiAgICAiOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAkaW1wbEluY2x1ZGVz
eyJKUyRjbGFzc05hbWUuaCJ9ID0gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbEVudW1U
eXBlKCR0eXBlKTsKKyAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTJGNsYXNzTmFtZS5oIn0g
PSAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0V4dGVybmFsRW51bVR5cGUoJGlkbFR5cGUpOwogICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiJGluZGVudCAgICAkZGVmaW5lT3B0aW9uYWxW
YWx1ZSA9IHBhcnNlRW51bWVyYXRpb248JGNsYXNzTmFtZT4oKnN0YXRlLCAke25hbWV9VmFsdWUp
O1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIkaW5kZW50ICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7XG4iKTsKICAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiRpbmRlbnQgICAgaWYgKFVOTElLRUxZKCEkb3B0
aW9uYWxWYWx1ZSkpXG4iKTsKQEAgLTQ0NjYsMTMgKzQ0MzMsMTMgQEAgc3ViIEdlbmVyYXRlUGFy
YW1ldGVyc0NoZWNrCiAgICAgICAgICAgICBteSAkb3V0ZXI7CiAgICAgICAgICAgICBteSAkaW5u
ZXI7CiAgICAgICAgICAgICBteSAkbmF0aXZlVHlwZSA9IEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0
dXJlKCRpbnRlcmZhY2UsICRwYXJhbWV0ZXIpOwotICAgICAgICAgICAgbXkgJGlzVGVhck9mZiA9
ICRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigkdHlwZSkgJiYgJGludGVy
ZmFjZU5hbWUgIX4gL0xpc3QkLzsKKyAgICAgICAgICAgIG15ICRpc1RlYXJPZmYgPSAkY29kZUdl
bmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmZGb3JUeXBlKCRpZGxUeXBlKSAmJiAkaW50
ZXJmYWNlTmFtZSAhfiAvTGlzdCQvOwogICAgICAgICAgICAgbXkgJHNob3VsZFBhc3NCeVJlZmVy
ZW5jZSA9ICRpc1RlYXJPZmYgfHwgU2hvdWxkUGFzc1dyYXBwZXJCeVJlZmVyZW5jZSgkcGFyYW1l
dGVyLCAkaW50ZXJmYWNlKTsKIAogICAgICAgICAgICAgZGllICJWYXJpYWRpYyBwYXJhbWV0ZXIg
aXMgYWxyZWFkeSBoYW5kbGVkIGhlcmUiIGlmICRwYXJhbWV0ZXItPmlzVmFyaWFkaWM7CiAgICAg
ICAgICAgICBteSAkYXJndW1lbnRMb29rdXBNZXRob2QgPSAkcGFyYW1ldGVyLT5pc09wdGlvbmFs
ID8gImFyZ3VtZW50IiA6ICJ1bmNoZWNrZWRBcmd1bWVudCI7CiAKLSAgICAgICAgICAgIGlmICgh
JHNob3VsZFBhc3NCeVJlZmVyZW5jZSAmJiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUo
JHR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBlKSkpIHsKKyAg
ICAgICAgICAgIGlmICghJHNob3VsZFBhc3NCeVJlZmVyZW5jZSAmJiAoJGNvZGVHZW5lcmF0b3It
PklzV3JhcHBlclR5cGUoJGlkbFR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlU
eXBlKCRpZGxUeXBlKSkpIHsKICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyI8cnVudGlt
ZS9FcnJvci5oPiJ9ID0gMTsKICAgICAgICAgICAgICAgICBteSAkY2hlY2tlZEFyZ3VtZW50ID0g
InN0YXRlLT4kYXJndW1lbnRMb29rdXBNZXRob2QoJGFyZ3VtZW50SW5kZXgpIjsKICAgICAgICAg
ICAgICAgICBteSAkdW5jaGVja2VkQXJndW1lbnQgPSAic3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50
KCRhcmd1bWVudEluZGV4KSI7CkBAIC00NDgyLDE1ICs0NDQ5LDE1IEBAIHN1YiBHZW5lcmF0ZVBh
cmFtZXRlcnNDaGVjawogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAg
ICAgJG5hbWUgPSAkbmF0aXZlVmFsdWU7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2Rl
ZEpTVmFsdWUoKSk7XG4iKSBpZiAkbWF5VGhyb3dFeGNlcHRpb247CiAgICAgICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoVU5MSUtFTFkoISRuYW1lKSlcbiIpOwot
ICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0
aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpzdGF0ZSwgdGhyb3dTY29wZSwgJGFyZ3VtZW50SW5kZXgs
IFwiJG5hbWVcIiwgXCIkdmlzaWJsZUludGVyZmFjZU5hbWVcIiwgJHF1b3RlZEZ1bmN0aW9uTmFt
ZSwgXCIkdHlwZVwiKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpzdGF0ZSwgdGhyb3dT
Y29wZSwgJGFyZ3VtZW50SW5kZXgsIFwiJG5hbWVcIiwgXCIkdmlzaWJsZUludGVyZmFjZU5hbWVc
IiwgJHF1b3RlZEZ1bmN0aW9uTmFtZSwgXCIiIC4gJGlkbFR5cGUtPm5hbWUgLiAiXCIpO1xuIik7
CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpOwogICAgICAg
ICAgICAgICAgICR2YWx1ZSA9ICJXVEZNb3ZlKCRuYW1lKSI7CiAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5pc09wdGlvbmFsICYmIGRlZmluZWQo
JHBhcmFtZXRlci0+ZGVmYXVsdCkgJiYgIVdpbGxDb252ZXJ0VW5kZWZpbmVkVG9EZWZhdWx0UGFy
YW1ldGVyVmFsdWUoJHR5cGUsICRwYXJhbWV0ZXItPmRlZmF1bHQpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKCRwYXJhbWV0ZXItPmlzT3B0aW9uYWwgJiYgZGVmaW5lZCgkcGFyYW1ldGVyLT5kZWZh
dWx0KSAmJiAhV2lsbENvbnZlcnRVbmRlZmluZWRUb0RlZmF1bHRQYXJhbWV0ZXJWYWx1ZSgkaWRs
VHlwZSwgJHBhcmFtZXRlci0+ZGVmYXVsdCkpIHsKICAgICAgICAgICAgICAgICAgICAgbXkgJGRl
ZmF1bHRWYWx1ZSA9ICRwYXJhbWV0ZXItPmRlZmF1bHQ7CiAKICAgICAgICAgICAgICAgICAgICAg
IyBTdHJpbmctcmVsYXRlZCBvcHRpbWl6YXRpb25zLgotICAgICAgICAgICAgICAgICAgICBpZiAo
JGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBteSAkdXNlQXRvbWljU3RyaW5nID0gJHBhcmFtZXRlci0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57QXRvbWljU3RyaW5nfTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgkZGVmYXVsdFZhbHVlIGVxICJudWxsIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICRkZWZhdWx0VmFsdWUgPSAkdXNlQXRvbWljU3RyaW5nID8gIm51bGxBdG9tIiA6ICJTdHJpbmco
KSI7CkBAIC00NTIyLDEzICs0NDg5LDEzIEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawog
CiAgICAgICAgICAgICBpZiAoJHNob3VsZFBhc3NCeVJlZmVyZW5jZSkgewogICAgICAgICAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoVU5MSUtFTFkoISRuYW1lKSlcbiIpOwot
ICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRocm93
QXJndW1lbnRUeXBlRXJyb3IoKnN0YXRlLCB0aHJvd1Njb3BlLCAkYXJndW1lbnRJbmRleCwgXCIk
bmFtZVwiLCBcIiR2aXNpYmxlSW50ZXJmYWNlTmFtZVwiLCAkcXVvdGVkRnVuY3Rpb25OYW1lLCBc
IiR0eXBlXCIpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICByZXR1cm4gdGhyb3dBcmd1bWVudFR5cGVFcnJvcigqc3RhdGUsIHRocm93U2NvcGUsICRh
cmd1bWVudEluZGV4LCBcIiRuYW1lXCIsIFwiJHZpc2libGVJbnRlcmZhY2VOYW1lXCIsICRxdW90
ZWRGdW5jdGlvbk5hbWUsIFwiIiAuICRpZGxUeXBlLT5uYW1lIC4gIlwiKTtcbiIpOwogICAgICAg
ICAgICAgICAgICR2YWx1ZSA9ICRpc1RlYXJPZmYgPyAiJG5hbWUtPnByb3BlcnR5UmVmZXJlbmNl
KCkiIDogIiokbmFtZSI7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmICgkY29kZUdl
bmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSkgYW5kICRwYXJhbWV0ZXItPnR5cGUgbmUg
IkFycmF5QnVmZmVyIikgeworICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVk
QXJyYXlUeXBlKCRpZGxUeXBlKSBhbmQgJGlkbFR5cGUtPm5hbWUgbmUgIkFycmF5QnVmZmVyIikg
ewogICAgICAgICAgICAgICAgJHZhbHVlID0gJHNob3VsZFBhc3NCeVJlZmVyZW5jZSA/ICIkbmFt
ZS5yZWxlYXNlTm9uTnVsbCgpIiA6ICJXVEZNb3ZlKCRuYW1lKSI7Ci0gICAgICAgICAgICB9IGVs
c2lmICgkY29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5VHlwZSgkdHlwZSkpIHsKKyAgICAgICAg
ICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCRpZGxUeXBlKSkg
ewogICAgICAgICAgICAgICAgICR2YWx1ZSA9ICJXVEZNb3ZlKCRuYW1lKSI7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTQ1MzksNyArNDUwNiw3IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRl
cnNDaGVjawogCiAgICAgcHVzaCBAYXJndW1lbnRzLCBHZW5lcmF0ZVJldHVyblBhcmFtZXRlcnMo
JGZ1bmN0aW9uKTsKICAgICBteSAkZnVuY3Rpb25TdHJpbmcgPSAiJGZ1bmN0aW9uTmFtZSgiIC4g
am9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpIjsKLSAgICAkZnVuY3Rpb25TdHJpbmcgPSAicHJv
cGFnYXRlRXhjZXB0aW9uKCpzdGF0ZSwgdGhyb3dTY29wZSwgJGZ1bmN0aW9uU3RyaW5nKSIgaWYg
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgJiYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUg
ZXEgInZvaWQiICYmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntN
YXlUaHJvd0V4Y2VwdGlvbn07CisgICAgJGZ1bmN0aW9uU3RyaW5nID0gInByb3BhZ2F0ZUV4Y2Vw
dGlvbigqc3RhdGUsIHRocm93U2NvcGUsICRmdW5jdGlvblN0cmluZykiIGlmICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT5pZGxUeXBlICYmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5pZGxUeXBlLT5uYW1l
IGVxICJ2b2lkIiAmJiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
TWF5VGhyb3dFeGNlcHRpb259OwogCiAgICAgcmV0dXJuICgkZnVuY3Rpb25TdHJpbmcsIHNjYWxh
ciBAYXJndW1lbnRzKTsKIH0KQEAgLTQ1NTgsOCArNDUyNSw2IEBAIHN1YiBHZW5lcmF0ZURpY3Rp
b25hcnlIZWFkZXIKIHsKICAgICBteSAoJG9iamVjdCwgJGRpY3Rpb25hcnksICRjbGFzc05hbWUs
ICRlbnVtZXJhdGlvbnMpID0gQF87CiAKLSAgICBteSAkZGljdGlvbmFyeU5hbWUgPSAkZGljdGlv
bmFyeS0+bmFtZTsKLQogICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUgYW5kIGhl
YWRlciBwcm90ZWN0aW9uLgogICAgIHB1c2goQGhlYWRlckNvbnRlbnRIZWFkZXIsIEdlbmVyYXRl
SGVhZGVyQ29udGVudEhlYWRlcigkZGljdGlvbmFyeSkpOwogCkBAIC00NTc3LDEyICs0NTQyLDEy
IEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlIZWFkZXIKICAgICAjIC0gR2VuZXJhdGUgZGVwZW5k
ZW5jaWVzLgogICAgIGlmICgkd3JpdGVEZXBlbmRlbmNpZXMpIHsKICAgICAgICAgbXkgQGFuY2Vz
dG9yczsKLSAgICAgICAgbXkgJHBhcmVudE5hbWUgPSAkZGljdGlvbmFyeS0+cGFyZW50OwotICAg
ICAgICB3aGlsZSAoZGVmaW5lZCgkcGFyZW50TmFtZSkpIHsKLSAgICAgICAgICAgIHB1c2goQGFu
Y2VzdG9ycywgJHBhcmVudE5hbWUpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0V4dGVybmFsRGljdGlv
bmFyeVR5cGUoJHBhcmVudE5hbWUpOwotICAgICAgICAgICAgbXkgJHBhcmVudERpY3Rpb25hcnkg
PSAkY29kZUdlbmVyYXRvci0+R2V0RGljdGlvbmFyeUJ5TmFtZSgkcGFyZW50TmFtZSk7Ci0gICAg
ICAgICAgICBhc3NlcnQoIlVuYWJsZSB0byBmaW5kIGRlZmluaXRpb24gZm9yIGRpY3Rpb25hcnkg
bmFtZWQgJyIgLiAkcGFyZW50TmFtZSAuICInISIpIHVubGVzcyAkcGFyZW50RGljdGlvbmFyeTsK
LSAgICAgICAgICAgICRwYXJlbnROYW1lID0gJHBhcmVudERpY3Rpb25hcnktPnBhcmVudDsKKyAg
ICAgICAgbXkgJHBhcmVudFR5cGUgPSAkZGljdGlvbmFyeS0+cGFyZW50VHlwZTsKKyAgICAgICAg
d2hpbGUgKGRlZmluZWQoJHBhcmVudFR5cGUpKSB7CisgICAgICAgICAgICBwdXNoKEBhbmNlc3Rv
cnMsICRwYXJlbnRUeXBlLT5uYW1lKSBpZiAkY29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbERpY3Rp
b25hcnlUeXBlKCRwYXJlbnRUeXBlKTsKKyAgICAgICAgICAgIG15ICRwYXJlbnREaWN0aW9uYXJ5
ID0gJGNvZGVHZW5lcmF0b3ItPkdldERpY3Rpb25hcnlCeVR5cGUoJHBhcmVudFR5cGUpOworICAg
ICAgICAgICAgYXNzZXJ0KCJVbmFibGUgdG8gZmluZCBkZWZpbml0aW9uIGZvciBkaWN0aW9uYXJ5
IG5hbWVkICciIC4gJHBhcmVudFR5cGUtPm5hbWUgLiAiJyEiKSB1bmxlc3MgJHBhcmVudERpY3Rp
b25hcnk7CisgICAgICAgICAgICAkcGFyZW50VHlwZSA9ICRwYXJlbnREaWN0aW9uYXJ5LT5wYXJl
bnRUeXBlOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGRlcHNDb250ZW50LCAiJGNsYXNzTmFt
ZS5oIDogIiwgam9pbigiICIsIG1hcCB7ICIkXy5pZGwiIH0gQGFuY2VzdG9ycyksICJcbiIpOwog
ICAgICAgICBwdXNoKEBkZXBzQ29udGVudCwgbWFwIHsgIiRfLmlkbCA6XG4iIH0gQGFuY2VzdG9y
cyk7CkBAIC00NjQ4LDkgKzQ2MTMsOSBAQCBzdWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogICAg
ICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9KSB7CiAg
ICAgICAgICAgICBteSBAYXJndW1lbnRzID0gKCk7CiAgICAgICAgICAgICBmb3JlYWNoIG15ICRw
YXJhbWV0ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewotICAgICAgICAgICAgICAgIHB1
c2goQGFyZ3VtZW50cywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFy
YW1ldGVyLT50eXBlKSAuICIgIiAuICRwYXJhbWV0ZXItPm5hbWUpOworICAgICAgICAgICAgICAg
IHB1c2goQGFyZ3VtZW50cywgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAk
cGFyYW1ldGVyLT5pZGxUeXBlKSAuICIgIiAuICRwYXJhbWV0ZXItPm5hbWUpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsICIgLiBH
ZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT50eXBlKSAuICIgIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiIC4gam9pbigi
LCAiLCBAYXJndW1lbnRzKSAuICIpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHZpcnR1YWwgIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFj
ZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmlkbFR5cGUpIC4gIiAiIC4gJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPm5hbWUgLiAiKCIgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIik7XG4iKTsKICAg
ICAgICAgfQogICAgIH0KIApAQCAtNDc4MCwyMCArNDc0NSwyMCBAQCBzdWIgR2VuZXJhdGVDYWxs
YmFja0ltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4vLyBGdW5j
dGlvbnNcbiIpOwogICAgICAgICBmb3JlYWNoIG15ICRmdW5jdGlvbiAoQHskaW50ZXJmYWNlLT5m
dW5jdGlvbnN9KSB7CiAgICAgICAgICAgICBteSBAcGFyYW1zID0gQHskZnVuY3Rpb24tPnBhcmFt
ZXRlcnN9OwotICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntDdXN0b219IHx8IEdldE5hdGl2ZVR5cGUoJGludGVyZmFjZSwgJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPnR5cGUpIG5lICJib29sIikgeworICAgICAgICAgICAgaWYgKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b219IHx8IEdldE5hdGl2ZVR5
cGUoJGludGVyZmFjZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmlkbFR5cGUpIG5lICJib29sIikg
ewogICAgICAgICAgICAgICAgIG5leHQ7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIEFk
ZEluY2x1ZGVzRm9yVHlwZUluSW1wbCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7CisgICAg
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlc0ZvcklETFR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmlkbFR5cGUpOwogICAgICAgICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9ICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5uYW1lOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXRO
YXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50
eXBlKSAuICIgJHtjbGFzc05hbWV9Ojoke2Z1bmN0aW9uTmFtZX0oIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIlxuIiAuIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGludGVy
ZmFjZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmlkbFR5cGUpIC4gIiAke2NsYXNzTmFtZX06OiR7
ZnVuY3Rpb25OYW1lfSgiKTsKIAogICAgICAgICAgICAgbXkgQGFyZ3MgPSAoKTsKICAgICAgICAg
ICAgIG15IEBhcmdzQ2hlY2sgPSAoKTsKICAgICAgICAgICAgIGZvcmVhY2ggbXkgJHBhcmFtIChA
cGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgbXkgJHBhcmFtTmFtZSA9ICRwYXJhbS0+bmFtZTsK
LSAgICAgICAgICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkltcGwoJHBhcmFtLT50eXBlLCAx
KTsKLSAgICAgICAgICAgICAgICBwdXNoKEBhcmdzLCBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tz
KCRpbnRlcmZhY2UsICRwYXJhbS0+dHlwZSkgLiAiICIgLiAkcGFyYW1OYW1lKTsKKyAgICAgICAg
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlc0ZvcklETFR5cGUoJHBhcmFtLT5pZGxUeXBlLCAxKTsK
KyAgICAgICAgICAgICAgICBwdXNoKEBhcmdzLCBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tzKCRp
bnRlcmZhY2UsICRwYXJhbS0+aWRsVHlwZSkgLiAiICIgLiAkcGFyYW1OYW1lKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBqb2luKCIsICIsIEBhcmdzKSk7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIilcbiIpOwpAQCAtNDg2MSw3ICs0ODI2
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoKQogICAgIG15ICRu
b25kZXRlcm1pbmlzdGljID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e05vbmRldGVybWluaXN0aWN9OwogICAgIG15ICRtYXlUaHJvd0xlZ2FjeUV4Y2VwdGlvbiA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0xlZ2Fj
eUV4Y2VwdGlvbn07CiAKLSAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUgZXEgInZv
aWQiIHx8IElzUmV0dXJuaW5nUHJvbWlzZSgkZnVuY3Rpb24pKSB7CisgICAgaWYgKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5pZGxUeXBlLT5uYW1lIGVxICJ2b2lkIiB8fCBJc1JldHVybmluZ1Byb21p
c2UoJGZ1bmN0aW9uKSkgewogICAgICAgICBpZiAoJG5vbmRldGVybWluaXN0aWMpIHsKICAgICAg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8cmVwbGF5L0lucHV0Q3Vyc29yLmg+IiwgIldFQl9S
RVBMQVkiKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmIEVOQUJMRShXRUJf
UkVQTEFZKVxuIik7CkBAIC00ODk3LDcgKzQ4NjIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbkZ1bmN0aW9uQ2FsbCgpCiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPiIsICJXRUJfUkVQTEFZIik7CiAKICAgICAgICAgICAgIG15ICRuYXRp
dmVUeXBlID0gR2V0TmF0aXZlVHlwZUZyb21TaWduYXR1cmUoJGludGVyZmFjZSwgJGZ1bmN0aW9u
LT5zaWduYXR1cmUpOwotICAgICAgICAgICAgbXkgJG1lbW9pemVkVHlwZSA9IEdldE5hdGl2ZVR5
cGVGb3JNZW1vaXphdGlvbigkaW50ZXJmYWNlLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7
CisgICAgICAgICAgICBteSAkbWVtb2l6ZWRUeXBlID0gR2V0TmF0aXZlVHlwZUZvck1lbW9pemF0
aW9uKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5pZGxUeXBlKTsKICAgICAgICAg
ICAgIG15ICRiaW5kaW5nTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWUgLiAiLiIgLiAkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50
IC4gIkpTVmFsdWUgcmVzdWx0O1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNpZiBFTkFCTEUoV0VCX1JFUExBWSlcbiIpOwpAQCAtNTA1Miw3ICs1MDE3LDcgQEAgc3ViIEdl
dE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlCiB7CiAgICAgbXkgKCRpbnRlcmZhY2UsICRzaWduYXR1
cmUpID0gQF87CiAKLSAgICByZXR1cm4gR2V0TmF0aXZlVHlwZSgkaW50ZXJmYWNlLCAkc2lnbmF0
dXJlLT50eXBlKTsKKyAgICByZXR1cm4gR2V0TmF0aXZlVHlwZSgkaW50ZXJmYWNlLCAkc2lnbmF0
dXJlLT5pZGxUeXBlKTsKIH0KIAogbXkgJW5hdGl2ZVR5cGUgPSAoCkBAIC01MDgxLDcgKzUwNDYs
NyBAQCBteSAlbmF0aXZlVHlwZSA9ICgKIAogc3ViIEdldE5hdGl2ZVZlY3RvclR5cGUKIHsKLSAg
ICBteSAoJGludGVyZmFjZSwgJHR5cGUpID0gQF87CisgICAgbXkgKCR0eXBlKSA9IEBfOwogCiAg
ICAgZGllICJUaGlzIHNob3VsZCBvbmx5IGJlIGNhbGxlZCBmb3Igc2VxdWVuY2Ugb3IgYXJyYXkg
dHlwZXMiIHVubGVzcyAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJvemVuQXJyYXlUeXBl
KCR0eXBlKTsKIApAQCAtNTE2OSwxMCArNTEzNCwxMCBAQCBzdWIgR2V0QmFzZUlETFR5cGUKICAg
ICApOwogCiAgICAgcmV0dXJuICRJRExUeXBlc3skaWRsVHlwZS0+bmFtZX0gaWYgZXhpc3RzICRJ
RExUeXBlc3skaWRsVHlwZS0+bmFtZX07Ci0gICAgcmV0dXJuICJJRExFbnVtZXJhdGlvbjwiIC4g
R2V0RW51bWVyYXRpb25DbGFzc05hbWUoJGlkbFR5cGUtPm5hbWUsICRpbnRlcmZhY2UpIC4gIj4i
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc0VudW1UeXBlKCRpZGxUeXBlLT5uYW1lKTsKLSAgICByZXR1
cm4gIklETERpY3Rpb25hcnk8IiAuIEdldERpY3Rpb25hcnlDbGFzc05hbWUoJGlkbFR5cGUtPm5h
bWUsICRpbnRlcmZhY2UpIC4gIj4iIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBl
KCRpZGxUeXBlLT5uYW1lKTsKLSAgICByZXR1cm4gIklETFNlcXVlbmNlPCIgLiBHZXRJRExUeXBl
KCRpbnRlcmZhY2UsIEB7JGlkbFR5cGUtPnN1YnR5cGVzfVswXSkgLiAiPiIgaWYgJGNvZGVHZW5l
cmF0b3ItPklzU2VxdWVuY2VUeXBlKCRpZGxUeXBlLT5uYW1lKTsKLSAgICByZXR1cm4gIklETEZy
b3plbkFycmF5PCIgLiBHZXRJRExUeXBlKCRpbnRlcmZhY2UsIEB7JGlkbFR5cGUtPnN1YnR5cGVz
fVswXSkgLiAiPiIgaWYgJGNvZGVHZW5lcmF0b3ItPklzRnJvemVuQXJyYXlUeXBlKCRpZGxUeXBl
LT5uYW1lKTsKKyAgICByZXR1cm4gIklETEVudW1lcmF0aW9uPCIgLiBHZXRFbnVtZXJhdGlvbkNs
YXNzTmFtZSgkaWRsVHlwZSwgJGludGVyZmFjZSkgLiAiPiIgaWYgJGNvZGVHZW5lcmF0b3ItPklz
RW51bVR5cGUoJGlkbFR5cGUpOworICAgIHJldHVybiAiSURMRGljdGlvbmFyeTwiIC4gR2V0RGlj
dGlvbmFyeUNsYXNzTmFtZSgkaWRsVHlwZSwgJGludGVyZmFjZSkgLiAiPiIgaWYgJGNvZGVHZW5l
cmF0b3ItPklzRGljdGlvbmFyeVR5cGUoJGlkbFR5cGUpOworICAgIHJldHVybiAiSURMU2VxdWVu
Y2U8IiAuIEdldElETFR5cGUoJGludGVyZmFjZSwgQHskaWRsVHlwZS0+c3VidHlwZXN9WzBdKSAu
ICI+IiBpZiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZVR5cGUoJGlkbFR5cGUpOworICAgIHJl
dHVybiAiSURMRnJvemVuQXJyYXk8IiAuIEdldElETFR5cGUoJGludGVyZmFjZSwgQHskaWRsVHlw
ZS0+c3VidHlwZXN9WzBdKSAuICI+IiBpZiAkY29kZUdlbmVyYXRvci0+SXNGcm96ZW5BcnJheVR5
cGUoJGlkbFR5cGUpOwogICAgIHJldHVybiAiSURMVW5pb248IiAuIGpvaW4oIiwgIiwgR2V0SURM
VW5pb25NZW1iZXJUeXBlcygkaW50ZXJmYWNlLCAkaWRsVHlwZSkpIC4gIj4iIGlmICRpZGxUeXBl
LT5pc1VuaW9uOwogICAgIHJldHVybiAiSURMSW50ZXJmYWNlPCIgLiAkaWRsVHlwZS0+bmFtZSAu
ICI+IjsKIH0KQEAgLTUxOTAsMjcgKzUxNTUsMjggQEAgc3ViIEdldE5hdGl2ZVR5cGUKIHsKICAg
ICBteSAoJGludGVyZmFjZSwgJHR5cGUpID0gQF87CiAKLSAgICByZXR1cm4gJG5hdGl2ZVR5cGV7
JHR5cGV9IGlmIGV4aXN0cyAkbmF0aXZlVHlwZXskdHlwZX07CisgICAgYXNzZXJ0KCJOb3QgYSB0
eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiZG9tVHlwZSI7CisKKyAgICBteSAkdHlwZU5hbWUgPSAk
dHlwZS0+bmFtZTsKKworICAgIHJldHVybiAkbmF0aXZlVHlwZXskdHlwZU5hbWV9IGlmIGV4aXN0
cyAkbmF0aXZlVHlwZXskdHlwZU5hbWV9OwogCiAgICAgcmV0dXJuIEdldEVudW1lcmF0aW9uQ2xh
c3NOYW1lKCR0eXBlLCAkaW50ZXJmYWNlKSBpZiAkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgk
dHlwZSk7CiAgICAgcmV0dXJuIEdldERpY3Rpb25hcnlDbGFzc05hbWUoJHR5cGUsICRpbnRlcmZh
Y2UpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCR0eXBlKTsKKyAgICByZXR1
cm4gR2V0TmF0aXZlVmVjdG9yVHlwZSgkdHlwZSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzU2VxdWVu
Y2VPckZyb3plbkFycmF5VHlwZSgkdHlwZSk7CiAKLSAgICBteSAkdGVhck9mZlR5cGUgPSAkY29k
ZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKTsKKyAgICBteSAkdGVh
ck9mZlR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmRm9yVHlw
ZSgkdHlwZSk7CiAgICAgcmV0dXJuICIke3RlYXJPZmZUeXBlfSoiIGlmICR0ZWFyT2ZmVHlwZTsK
IAotICAgIHJldHVybiAiUmVmUHRyPCR7dHlwZX0+IiBpZiAkY29kZUdlbmVyYXRvci0+SXNUeXBl
ZEFycmF5VHlwZSgkdHlwZSkgYW5kICR0eXBlIG5lICJBcnJheUJ1ZmZlciI7Ci0KLSAgICByZXR1
cm4gR2V0TmF0aXZlVmVjdG9yVHlwZSgkaW50ZXJmYWNlLCAkdHlwZSkgaWYgJGNvZGVHZW5lcmF0
b3ItPklzU2VxdWVuY2VPckZyb3plbkFycmF5VHlwZSgkdHlwZSk7Ci0KLSAgICByZXR1cm4gIiR7
dHlwZX0qIjsKKyAgICByZXR1cm4gIlJlZlB0cjwke3R5cGVOYW1lfT4iIGlmICRjb2RlR2VuZXJh
dG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBlKSBhbmQgJHR5cGVOYW1lIG5lICJBcnJheUJ1ZmZl
ciI7CisgICAgcmV0dXJuICIke3R5cGVOYW1lfSoiOwogfQogCiBzdWIgU2hvdWxkUGFzc1dyYXBw
ZXJCeVJlZmVyZW5jZQogewotICAgIG15ICRwYXJhbWV0ZXIgPSBzaGlmdDsKLSAgICBteSAkaW50
ZXJmYWNlID0gc2hpZnQ7CisgICAgbXkgKCRwYXJhbWV0ZXIsICRpbnRlcmZhY2UpID0gQF87CiAK
LSAgICBteSAkbmF0aXZlVHlwZSA9IEdldE5hdGl2ZVR5cGUoJGludGVyZmFjZSwgJHBhcmFtZXRl
ci0+dHlwZSk7CisgICAgbXkgJG5hdGl2ZVR5cGUgPSBHZXROYXRpdmVUeXBlKCRpbnRlcmZhY2Us
ICRwYXJhbWV0ZXItPmlkbFR5cGUpOwogICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+U2hvdWxk
UGFzc1dyYXBwZXJCeVJlZmVyZW5jZSgkcGFyYW1ldGVyLCAkaW50ZXJmYWNlKSAmJiAoc3Vic3Ry
KCRuYXRpdmVUeXBlLCAtMSkgZXEgJyonIHx8ICRuYXRpdmVUeXBlID1+IC9eUmVmUHRyLyk7CiB9
CiAKQEAgLTUyMTgsMTUgKzUxODQsMTcgQEAgc3ViIEdldE5hdGl2ZVZlY3RvcklubmVyVHlwZQog
ewogICAgIG15ICRpbm5lclR5cGUgPSBzaGlmdDsKIAotICAgIHJldHVybiAkbmF0aXZlVHlwZXsk
aW5uZXJUeXBlfSBpZiBleGlzdHMgJG5hdGl2ZVR5cGV7JGlubmVyVHlwZX07Ci0gICAgcmV0dXJu
ICJSZWZQdHI8JGlubmVyVHlwZT4iOworICAgIG15ICRpbm5lclR5cGVOYW1lID0gJGlubmVyVHlw
ZS0+bmFtZTsKKworICAgIHJldHVybiAkbmF0aXZlVHlwZXskaW5uZXJUeXBlTmFtZX0gaWYgZXhp
c3RzICRuYXRpdmVUeXBleyRpbm5lclR5cGVOYW1lfTsKKyAgICByZXR1cm4gIlJlZlB0cjwkaW5u
ZXJUeXBlTmFtZT4iOwogfQogCiBzdWIgR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcwogewogICAg
IG15ICgkaW50ZXJmYWNlLCAkdHlwZSkgPSBAXzsKIAotICAgIHJldHVybiAiUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJiIgaWYgJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7
CisgICAgcmV0dXJuICJSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIiBpZiAkdHlwZS0+
bmFtZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIjsKICAgICByZXR1cm4gImNvbnN0IFN0cmlu
ZyYiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwogICAgIHJldHVybiBH
ZXROYXRpdmVUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKIH0KQEAgLTUyNDAsMTggKzUyMDgsMjAg
QEAgc3ViIEdldE5hdGl2ZVR5cGVGb3JNZW1vaXphdGlvbgogCiBzdWIgR2V0U1ZHUHJvcGVydHlU
eXBlcwogewotICAgIG15ICRpbXBsVHlwZSA9IHNoaWZ0OworICAgIG15ICRpbnRlcmZhY2UgPSBz
aGlmdDsKKworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKIAogICAg
IG15ICRzdmdQcm9wZXJ0eVR5cGU7CiAgICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5cGU7CiAgICAg
bXkgJHN2Z05hdGl2ZVR5cGU7CiAKLSAgICByZXR1cm4gKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdM
aXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSkgaWYgbm90ICRpbXBsVHlwZSA9fiAvU1ZH
LzsKKyAgICByZXR1cm4gKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAk
c3ZnTmF0aXZlVHlwZSkgaWYgbm90ICRpbnRlcmZhY2VOYW1lID1+IC9TVkcvOwogCi0gICAgJHN2
Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRp
bXBsVHlwZSk7CisgICAgJHN2Z05hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlw
ZU5lZWRpbmdUZWFyT2ZmRm9yVHlwZSgkaW50ZXJmYWNlLT50eXBlKTsKICAgICByZXR1cm4gKCRz
dmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSkgaWYg
bm90ICRzdmdOYXRpdmVUeXBlOwogCi0gICAgbXkgJHN2Z1dyYXBwZWROYXRpdmVUeXBlID0gJGNv
ZGVHZW5lcmF0b3ItPkdldFNWR1dyYXBwZWRUeXBlTmVlZGluZ1RlYXJPZmYoJGltcGxUeXBlKTsK
KyAgICBteSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHV3Jh
cHBlZFR5cGVOZWVkaW5nVGVhck9mZkZvclR5cGUoJGludGVyZmFjZS0+dHlwZSk7CiAgICAgaWYg
KCRzdmdOYXRpdmVUeXBlID1+IC9TVkdQcm9wZXJ0eVRlYXJPZmYvKSB7CiAgICAgICAgICRzdmdQ
cm9wZXJ0eVR5cGUgPSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGU7CiAgICAgICAgICRoZWFkZXJJbmNs
dWRlc3siJHN2Z1dyYXBwZWROYXRpdmVUeXBlLmgifSA9IDE7CkBAIC01Mjc4LDcgKzUyNDgsOCBA
QCBzdWIgR2V0U1ZHUHJvcGVydHlUeXBlcwogc3ViIElzTmF0aXZlVHlwZQogewogICAgIG15ICR0
eXBlID0gc2hpZnQ7Ci0gICAgcmV0dXJuIGV4aXN0cyAkbmF0aXZlVHlwZXskdHlwZX07CisKKyAg
ICByZXR1cm4gZXhpc3RzICRuYXRpdmVUeXBleyR0eXBlLT5uYW1lfTsKIH0KIAogc3ViIEdldElu
dGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbgpAQCAtNTMwOSwxMSArNTI4MCwxMSBAQCBzdWIg
SlNWYWx1ZVRvTmF0aXZlSXNIYW5kbGVkQnlET01Db252ZXJ0CiAgICAgcmV0dXJuIDEgaWYgJGlk
bFR5cGUtPm5hbWUgZXEgImJvb2xlYW4iOwogICAgIHJldHVybiAxIGlmICRpZGxUeXBlLT5uYW1l
IGVxICJEYXRlIjsKICAgICByZXR1cm4gMSBpZiAkaWRsVHlwZS0+bmFtZSBlcSAiQnVmZmVyU291
cmNlIjsKLSAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNJbnRlZ2VyVHlwZSgkaWRs
VHlwZS0+bmFtZSk7Ci0gICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzRmxvYXRpbmdQ
b2ludFR5cGUoJGlkbFR5cGUtPm5hbWUpOwotICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9y
LT5Jc1NlcXVlbmNlT3JGcm96ZW5BcnJheVR5cGUoJGlkbFR5cGUtPm5hbWUpOwotICAgIHJldHVy
biAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCRpZGxUeXBlLT5uYW1lKTsK
LSAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRpZGxUeXBlLT5u
YW1lKTsKKyAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNJbnRlZ2VyVHlwZSgkaWRs
VHlwZSk7CisgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzRmxvYXRpbmdQb2ludFR5
cGUoJGlkbFR5cGUpOworICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NlcXVlbmNl
T3JGcm96ZW5BcnJheVR5cGUoJGlkbFR5cGUpOworICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJh
dG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCRpZGxUeXBlKTsKKyAgICByZXR1cm4gMSBpZiAkY29kZUdl
bmVyYXRvci0+SXNTdHJpbmdUeXBlKCRpZGxUeXBlKTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAt
NTMyMyw3ICs1Mjk0LDYgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogewogICAgIG15ICgkaW50ZXJm
YWNlLCAkc2lnbmF0dXJlLCAkdmFsdWUsICRjb25kaXRpb25hbCwgJHN0YXRlUG9pbnRlciwgJHN0
YXRlUmVmZXJlbmNlLCAkdGhpc09iamVjdFJlZmVyZW5jZSkgPSBAXzsKIAotICAgIG15ICR0eXBl
ID0gJHNpZ25hdHVyZS0+dHlwZTsKICAgICBteSAkaWRsVHlwZSA9ICRzaWduYXR1cmUtPmlkbFR5
cGU7CiAKICAgICAjIEZJWE1FOiBSZW1vdmUgdGhlc2UgMyB2YXJpYWJsZXMgd2hlbiBhbGwgSlNW
YWx1ZVRvTmF0aXZlIHVzZSByZWZlcmVuY2VzLgpAQCAtNTM0MCw0MyArNTMxMCwzOSBAQCBzdWIg
SlNWYWx1ZVRvTmF0aXZlCiAgICAgICAgIG15IEBjb252ZXJzaW9uQXJndW1lbnRzID0gKCk7CiAg
ICAgICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsICIkc3RhdGVSZWZlcmVuY2UiKTsKICAg
ICAgICAgcHVzaChAY29udmVyc2lvbkFyZ3VtZW50cywgIiR2YWx1ZSIpOwotICAgICAgICBwdXNo
KEBjb252ZXJzaW9uQXJndW1lbnRzLCBHZXRJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24o
JHNpZ25hdHVyZSkpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0ludGVnZXJUeXBlKCR0eXBlKTsKLSAg
ICAgICAgcHVzaChAY29udmVyc2lvbkFyZ3VtZW50cywgR2V0U3RyaW5nQ29udmVyc2lvbkNvbmZp
Z3VyYXRpb24oJHNpZ25hdHVyZSkpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5
cGUpOworICAgICAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1lbnRzLCBHZXRJbnRlZ2VyQ29udmVy
c2lvbkNvbmZpZ3VyYXRpb24oJHNpZ25hdHVyZSkpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0ludGVn
ZXJUeXBlKCRpZGxUeXBlKTsKKyAgICAgICAgcHVzaChAY29udmVyc2lvbkFyZ3VtZW50cywgR2V0
U3RyaW5nQ29udmVyc2lvbkNvbmZpZ3VyYXRpb24oJHNpZ25hdHVyZSkpIGlmICRjb2RlR2VuZXJh
dG9yLT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpOwogCiAgICAgICAgIHJldHVybiAoImNvbnZlcnQ8
JElETFR5cGU+KCIgLiBqb2luKCIsICIsIEBjb252ZXJzaW9uQXJndW1lbnRzKSAuICIpIiwgMSk7
CiAgICAgfQogCi0gICAgaWYgKCR0eXBlIGVxICJET01TdHJpbmciKSB7CisgICAgaWYgKCRpZGxU
eXBlLT5uYW1lIGVxICJET01TdHJpbmciKSB7CiAgICAgICAgIHJldHVybiAoIkF0b21pY1N0cmlu
ZygkdmFsdWUudG9TdHJpbmcoJHN0YXRlUG9pbnRlciktPnRvRXhpc3RpbmdBdG9taWNTdHJpbmco
JHN0YXRlUG9pbnRlcikpIiwgMSkgaWYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
UmVxdWlyZXNFeGlzdGluZ0F0b21pY1N0cmluZ307CiAgICAgICAgIHJldHVybiAoIiR2YWx1ZS50
b1N0cmluZygkc3RhdGVQb2ludGVyKS0+dG9BdG9taWNTdHJpbmcoJHN0YXRlUG9pbnRlcikiLCAx
KSBpZiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntBdG9taWNTdHJpbmd9OwogICAg
ICAgICBhc3NlcnQoIlVuaGFuZGxlZCBzdHJpbmcgY29udmVyc2lvbi4iKTsKICAgICB9CiAKLSAg
ICBpZiAoJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsKKyAgICBpZiAoJGlkbFR5
cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsKICAgICAgICAgQWRkVG9JbXBs
SW5jbHVkZXMoIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIiwgJGNvbmRpdGlvbmFsKTsKICAgICAg
ICAgcmV0dXJuICgiU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoJHN0YXRlUmVmZXJlbmNl
LCAkdmFsdWUpIiwgMSk7CiAgICAgfQogCi0gICAgaWYgKCR0eXBlIGVxICJEaWN0aW9uYXJ5Iikg
eworICAgIGlmICgkaWRsVHlwZS0+bmFtZSBlcSAiRGljdGlvbmFyeSIpIHsKICAgICAgICAgQWRk
VG9JbXBsSW5jbHVkZXMoIkRpY3Rpb25hcnkuaCIsICRjb25kaXRpb25hbCk7CiAgICAgICAgIHJl
dHVybiAoIkRpY3Rpb25hcnkoJHN0YXRlUG9pbnRlciwgJHZhbHVlKSIsIDApOwogICAgIH0KIAot
ICAgIHJldHVybiAoInRvJHR5cGUoJHZhbHVlKSIsIDEpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1R5
cGVkQXJyYXlUeXBlKCR0eXBlKTsKLSAgICAKLSAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzRW51
bVR5cGUoJHR5cGUpKSB7Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAk
Y29uZGl0aW9uYWwpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0V4dGVybmFsRW51bVR5cGUoJHR5cGUp
OwotICAgICAgICByZXR1cm4gKCJwYXJzZUVudW1lcmF0aW9uPCIgLiBHZXRFbnVtZXJhdGlvbkNs
YXNzTmFtZSgkdHlwZSwgJGludGVyZmFjZSkgLiAiPigkc3RhdGVSZWZlcmVuY2UsICR2YWx1ZSki
LCAxKTsKLSAgICB9Ci0gICAgCi0gICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRj
b25kaXRpb25hbCk7CisgICAgQWRkVG9JbXBsSW5jbHVkZXNGb3JJRExUeXBlKCRpZGxUeXBlLCAk
Y29uZGl0aW9uYWwpOworCisgICAgcmV0dXJuICgidG9Ae1skaWRsVHlwZS0+bmFtZV19KCR2YWx1
ZSkiLCAxKSBpZiAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkaWRsVHlwZSk7Cisg
ICAgcmV0dXJuICgicGFyc2VFbnVtZXJhdGlvbjwiIC4gR2V0RW51bWVyYXRpb25DbGFzc05hbWUo
JGlkbFR5cGUsICRpbnRlcmZhY2UpIC4gIj4oJHN0YXRlUmVmZXJlbmNlLCAkdmFsdWUpIiwgMSkg
aWYgJGNvZGVHZW5lcmF0b3ItPklzRW51bVR5cGUoJGlkbFR5cGUpOwogCiAgICAgIyBGSVhNRTog
RXZlbnRMaXN0ZW5lciBzaG91bGQgYmUgYSBjYWxsYmFjayBpbnRlcmZhY2UuCi0gICAgcmV0dXJu
ICJKU0V2ZW50TGlzdGVuZXI6OmNyZWF0ZSgkdmFsdWUsICR0aGlzT2JqZWN0UmVmZXJlbmNlLCBm
YWxzZSwgY3VycmVudFdvcmxkKCRzdGF0ZVBvaW50ZXIpKSIgaWYgJHR5cGUgZXEgIkV2ZW50TGlz
dGVuZXIiOworICAgIHJldHVybiAiSlNFdmVudExpc3RlbmVyOjpjcmVhdGUoJHZhbHVlLCAkdGhp
c09iamVjdFJlZmVyZW5jZSwgZmFsc2UsIGN1cnJlbnRXb3JsZCgkc3RhdGVQb2ludGVyKSkiIGlm
ICRpZGxUeXBlLT5uYW1lIGVxICJFdmVudExpc3RlbmVyIjsKIAotICAgIG15ICRleHRlbmRlZEF0
dHJpYnV0ZXMgPSAkY29kZUdlbmVyYXRvci0+Z2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVz
RnJvbU5hbWUoJHR5cGUpOwotICAgIHJldHVybiAoIkpTJHt0eXBlfTo6dG9XcmFwcGVkKCRzdGF0
ZVJlZmVyZW5jZSwgJHZhbHVlKSIsIDEpIGlmICR0eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiOwot
ICAgIHJldHVybiAoIkpTJHt0eXBlfTo6dG9XcmFwcGVkKCR2YWx1ZSkiLCAwKTsKKyAgICBteSAk
ZXh0ZW5kZWRBdHRyaWJ1dGVzID0gJGNvZGVHZW5lcmF0b3ItPkdldEludGVyZmFjZUV4dGVuZGVk
QXR0cmlidXRlc0Zyb21OYW1lKCRpZGxUeXBlLT5uYW1lKTsKKyAgICByZXR1cm4gKCJKUyIgLiAk
aWRsVHlwZS0+bmFtZSAuICI6OnRvV3JhcHBlZCgkc3RhdGVSZWZlcmVuY2UsICR2YWx1ZSkiLCAx
KSBpZiAkaWRsVHlwZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29sdmVyIjsKKyAgICByZXR1cm4gKCJK
UyIgLiAkaWRsVHlwZS0+bmFtZSAuICI6OnRvV3JhcHBlZCgkdmFsdWUpIiwgMCk7CiB9CiAKIHN1
YiBOYXRpdmVUb0pTVmFsdWVJc0hhbmRsZWRCeURPTUNvbnZlcnQKQEAgLTUzODYsMTIgKzUzNTIs
MTIgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZUlzSGFuZGxlZEJ5RE9NQ29udmVydAogICAgIHJldHVy
biAxIGlmICRpZGxUeXBlLT5uYW1lIGVxICJhbnkiOwogICAgIHJldHVybiAxIGlmICRpZGxUeXBl
LT5uYW1lIGVxICJib29sZWFuIjsKICAgICByZXR1cm4gMSBpZiAkaWRsVHlwZS0+bmFtZSBlcSAi
RGF0ZSI7Ci0gICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5cGUoJGlk
bFR5cGUtPm5hbWUpOwotICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0Zsb2F0aW5n
UG9pbnRUeXBlKCRpZGxUeXBlLT5uYW1lKTsKLSAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRv
ci0+SXNTdHJpbmdUeXBlKCRpZGxUeXBlLT5uYW1lKTsKLSAgICByZXR1cm4gMSBpZiAkY29kZUdl
bmVyYXRvci0+SXNFbnVtVHlwZSgkaWRsVHlwZS0+bmFtZSk7CisgICAgcmV0dXJuIDEgaWYgJGNv
ZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5cGUoJGlkbFR5cGUpOworICAgIHJldHVybiAxIGlmICRj
b2RlR2VuZXJhdG9yLT5Jc0Zsb2F0aW5nUG9pbnRUeXBlKCRpZGxUeXBlKTsKKyAgICByZXR1cm4g
MSBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRpZGxUeXBlKTsKKyAgICByZXR1cm4g
MSBpZiAkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkaWRsVHlwZSk7CisgICAgcmV0dXJuIDEg
aWYgJGNvZGVHZW5lcmF0b3ItPklzU2VxdWVuY2VPckZyb3plbkFycmF5VHlwZSgkaWRsVHlwZSk7
CiAgICAgcmV0dXJuIDEgaWYgJGlkbFR5cGUtPmlzVW5pb247Ci0gICAgcmV0dXJuIDEgaWYgJGNv
ZGVHZW5lcmF0b3ItPklzU2VxdWVuY2VPckZyb3plbkFycmF5VHlwZSgkaWRsVHlwZS0+bmFtZSk7
CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTU0MDIsOSArNTM2OCw5IEBAIHN1YiBOYXRpdmVUb0pT
VmFsdWVET01Db252ZXJ0TmVlZHNTdGF0ZQogICAgIAogICAgICMgRklYTUU6IFRoaXMgc2hvdWxk
IGFjdHVhbGx5IGNoZWNrIGlmIGFsbCB0aGUgc3ViLW9iamVjdHMgb2YgdGhlIHVuaW9uIG5lZWQg
dGhlIHN0YXRlLgogICAgIHJldHVybiAxIGlmICRpZGxUeXBlLT5pc1VuaW9uOwotICAgIHJldHVy
biAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NlcXVlbmNlT3JGcm96ZW5BcnJheVR5cGUoJGlkbFR5
cGUtPm5hbWUpOwotICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUo
JGlkbFR5cGUtPm5hbWUpOwotICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0VudW1U
eXBlKCRpZGxUeXBlLT5uYW1lKTsKKyAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNT
ZXF1ZW5jZU9yRnJvemVuQXJyYXlUeXBlKCRpZGxUeXBlKTsKKyAgICByZXR1cm4gMSBpZiAkY29k
ZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRpZGxUeXBlKTsKKyAgICByZXR1cm4gMSBpZiAkY29k
ZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkaWRsVHlwZSk7CiAgICAgcmV0dXJuIDEgaWYgJGlkbFR5
cGUtPm5hbWUgZXEgIkRhdGUiOwogCiAgICAgcmV0dXJuIDA7CkBAIC01NDE2LDcgKzUzODIsNyBA
QCBzdWIgTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzR2xvYmFsCiAgICAgCiAgICAgIyBG
SVhNRTogVGhpcyBzaG91bGQgYWN0dWFsbHkgY2hlY2sgaWYgYWxsIHRoZSBzdWItb2JqZWN0cyBv
ZiB0aGUgdW5pb24gbmVlZCB0aGUgZ2xvYmFsIG9iamVjdC4KICAgICByZXR1cm4gMSBpZiAkaWRs
VHlwZS0+aXNVbmlvbjsKLSAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5j
ZU9yRnJvemVuQXJyYXlUeXBlKCRpZGxUeXBlLT5uYW1lKTsKKyAgICByZXR1cm4gMSBpZiAkY29k
ZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJvemVuQXJyYXlUeXBlKCRpZGxUeXBlKTsKIAogICAg
IHJldHVybiAwOwogfQpAQCAtNTQ0OSwxOSArNTQxNSwxOCBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVl
CiAgICAgbXkgKCRzaWduYXR1cmUsICRpbkZ1bmN0aW9uQ2FsbCwgJGludGVyZmFjZSwgJHZhbHVl
LCAkc3RhdGVQb2ludGVyLCAkc3RhdGVSZWZlcmVuY2UsICR3cmFwcGVkLCAkZ2xvYmFsT2JqZWN0
KSA9IEBfOwogCiAgICAgbXkgJGNvbmRpdGlvbmFsID0gJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Q29uZGl0aW9uYWx9OwotICAgIG15ICR0eXBlID0gJHNpZ25hdHVyZS0+dHlwZTsK
ICAgICBteSAkaWRsVHlwZSA9ICRzaWduYXR1cmUtPmlkbFR5cGU7CiAgICAgbXkgJGlzTnVsbGFi
bGUgPSAkc2lnbmF0dXJlLT5pc051bGxhYmxlOwogICAgIG15ICRtYXlUaHJvd0V4Y2VwdGlvbiA9
ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0dldHRlck1heVRocm93RXhjZXB0aW9u
fSB8fCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn07
CiAKICAgICAjIFdlIGNvdWxkIGluc3RlYWQgb3ZlcmxvYWQgYSBmdW5jdGlvbiB0byB3b3JrIHdp
dGggb3B0aW9uYWwgYXMgd2VsbCBhcyBub24tb3B0aW9uYWwgbnVtYmVycywgYnV0IHRoaXMKICAg
ICAjIGlzIHNsaWdodGx5IGJldHRlciBiZWNhdXNlIGl0IGd1YXJhbnRlZXMgd2Ugd2lsbCBmYWls
IHRvIGNvbXBpbGUgaWYgdGhlIElETCBmaWxlIGRvZXNuJ3QgbWF0Y2ggdGhlIEMrKy4KLSAgICBp
ZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UmVmbGVjdH0gYW5kICgkdHlwZSBl
cSAidW5zaWduZWQgbG9uZyIgb3IgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IikpIHsKKyAgICBp
ZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UmVmbGVjdH0gYW5kICgkaWRsVHlw
ZS0+bmFtZSBlcSAidW5zaWduZWQgbG9uZyIgb3IgJGlkbFR5cGUtPm5hbWUgZXEgInVuc2lnbmVk
IHNob3J0IikpIHsKICAgICAgICAgJHZhbHVlID1+IHMvZ2V0VW5zaWduZWRJbnRlZ3JhbEF0dHJp
YnV0ZS9nZXRJbnRlZ3JhbEF0dHJpYnV0ZS9nOwogICAgICAgICAkdmFsdWUgPSAic3RkOjptYXgo
MCwgJHZhbHVlKSI7CiAgICAgfQogCi0gICAgaWYgKCR0eXBlIGVxICJhbnkiKSB7CisgICAgaWYg
KCRpZGxUeXBlLT5uYW1lIGVxICJhbnkiKSB7CiAgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50YXRpb25SZXR1cm5UeXBlfTsK
ICAgICAgICAgaWYgKGRlZmluZWQgJHJldHVyblR5cGUgYW5kICgkcmV0dXJuVHlwZSBlcSAiSURC
S2V5UGF0aCIgb3IgJHJldHVyblR5cGUgZXEgIklEQktleSIpKSB7CiAgICAgICAgICAgICBBZGRU
b0ltcGxJbmNsdWRlcygiSURCQmluZGluZ1V0aWxpdGllcy5oIiwgJGNvbmRpdGlvbmFsKTsKQEAg
LTU0ODQsMzMgKzU0NDksMzMgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICByZXR1cm4g
InRvSlM8JElETFR5cGU+KCIgLiBqb2luKCIsICIsIEBjb252ZXJzaW9uQXJndW1lbnRzKSAuICIp
IjsKICAgICB9CiAKLSAgICBpZiAoJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsK
KyAgICBpZiAoJGlkbFR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIpIHsKICAg
ICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIiwgJGNvbmRp
dGlvbmFsKTsKICAgICAgICAgcmV0dXJuICIkdmFsdWUgPyAkdmFsdWUtPmRlc2VyaWFsaXplKCRz
dGF0ZVJlZmVyZW5jZSwgJGdsb2JhbE9iamVjdCkgOiBqc051bGwoKSI7CiAgICAgfQogCi0gICAg
QWRkVG9JbXBsSW5jbHVkZXMoIlN0eWxlUHJvcGVydGllcy5oIiwgJGNvbmRpdGlvbmFsKSBpZiAk
dHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7Ci0gICAgQWRkVG9JbXBsSW5jbHVkZXMoIk5h
bWVOb2RlTGlzdC5oIiwgJGNvbmRpdGlvbmFsKSBpZiAkdHlwZSBlcSAiTm9kZUxpc3QiOwotICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwpIGlmICEkY29kZUdl
bmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSk7CisgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IlN0eWxlUHJvcGVydGllcy5oIiwgJGNvbmRpdGlvbmFsKSBpZiAkaWRsVHlwZS0+bmFtZSBlcSAi
Q1NTU3R5bGVEZWNsYXJhdGlvbiI7CisgICAgQWRkVG9JbXBsSW5jbHVkZXMoIk5hbWVOb2RlTGlz
dC5oIiwgJGNvbmRpdGlvbmFsKSBpZiAkaWRsVHlwZS0+bmFtZSBlcSAiTm9kZUxpc3QiOworICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJKUyIgLiAkaWRsVHlwZS0+bmFtZSAuICIuaCIsICRjb25kaXRp
b25hbCkgaWYgISRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCRpZGxUeXBlKTsKIAot
ICAgIHJldHVybiAkdmFsdWUgaWYgJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0
eXBlKTsKKyAgICByZXR1cm4gJHZhbHVlIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVk
VHlwZSgkaWRsVHlwZSk7CiAKLSAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRU
eXBlKCRpbnRlcmZhY2UtPm5hbWUpIG9yICgkaW50ZXJmYWNlLT5uYW1lIGVxICJTVkdWaWV3U3Bl
YyIgYW5kICR0eXBlIGVxICJTVkdUcmFuc2Zvcm1MaXN0IikpIHsKKyAgICBpZiAoJGNvZGVHZW5l
cmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRpbnRlcmZhY2UtPnR5cGUpIG9yICgkaW50ZXJmYWNl
LT5uYW1lIGVxICJTVkdWaWV3U3BlYyIgYW5kICRpZGxUeXBlLT5uYW1lIGVxICJTVkdUcmFuc2Zv
cm1MaXN0IikpIHsKICAgICAgICAgIyBDb252ZXJ0IGZyb20gYWJzdHJhY3QgUmVmUHRyPExpc3RQ
cm9wZXJ0eT4gdG8gcmVhbCB0eXBlLCBzbyB0aGUgcmlnaHQgdG9KUygpIG1ldGhvZCBjYW4gYmUg
aW52b2tlZC4KLSAgICAgICAgJHZhbHVlID0gInN0YXRpY19jYXN0PCIgLiBHZXROYXRpdmVUeXBl
KCRpbnRlcmZhY2UsICR0eXBlKSAuICI+KCR2YWx1ZS5nZXQoKSkiOworICAgICAgICAkdmFsdWUg
PSAic3RhdGljX2Nhc3Q8IiAuIEdldE5hdGl2ZVR5cGUoJGludGVyZmFjZSwgJGlkbFR5cGUpIC4g
Ij4oJHZhbHVlLmdldCgpKSI7CiAgICAgfSBlbHNpZiAoJGludGVyZmFjZS0+bmFtZSBlcSAiU1ZH
Vmlld1NwZWMiKSB7CiAgICAgICAgICMgQ29udmVydCBmcm9tIGFic3RyYWN0IFNWR1Byb3BlcnR5
IHRvIHJlYWwgdHlwZSwgc28gdGhlIHJpZ2h0IHRvSlMoKSBtZXRob2QgY2FuIGJlIGludm9rZWQu
Ci0gICAgICAgICR2YWx1ZSA9ICJzdGF0aWNfY2FzdDwiIC4gR2V0TmF0aXZlVHlwZSgkaW50ZXJm
YWNlLCAkdHlwZSkgLiAiPigkdmFsdWUpIjsKLSAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+
SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpIGFuZCBub3QgJGludGVyZmFjZS0+bmFtZSA9
fiAvTGlzdCQvKSB7Ci0gICAgICAgIG15ICR0ZWFyT2ZmVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5H
ZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpOwotICAgICAgICBpZiAoJGNvZGVHZW5lcmF0
b3ItPklzU1ZHVHlwZVdpdGhXcml0YWJsZVByb3BlcnRpZXNOZWVkaW5nVGVhck9mZigkdHlwZSkg
YW5kICEkaW5GdW5jdGlvbkNhbGwgYW5kIG5vdCBkZWZpbmVkICRzaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0ltbXV0YWJsZX0pIHsKKyAgICAgICAgJHZhbHVlID0gInN0YXRpY19jYXN0
PCIgLiBHZXROYXRpdmVUeXBlKCRpbnRlcmZhY2UsICRpZGxUeXBlKSAuICI+KCR2YWx1ZSkiOwor
ICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZkZvclR5
cGUoJGlkbFR5cGUpIGFuZCBub3QgJGludGVyZmFjZS0+dHlwZS0+bmFtZSA9fiAvTGlzdCQvKSB7
CisgICAgICAgIG15ICR0ZWFyT2ZmVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVl
ZGluZ1RlYXJPZmZGb3JUeXBlKCRpZGxUeXBlKTsKKyAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJPZmZGb3JUeXBlKCRp
ZGxUeXBlKSBhbmQgISRpbkZ1bmN0aW9uQ2FsbCBhbmQgbm90IGRlZmluZWQgJHNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1tdXRhYmxlfSkgewogICAgICAgICAgICAgbXkgJGdldHRl
ciA9ICR2YWx1ZTsKICAgICAgICAgICAgICRnZXR0ZXIgPX4gcy9pbXBsXC4vLzsKICAgICAgICAg
ICAgICRnZXR0ZXIgPX4gcy9pbXBsLT4vLzsKICAgICAgICAgICAgICRnZXR0ZXIgPX4gcy9cKFwp
Ly87CiAgICAgICAgICAgICBteSAkdXBkYXRlTWV0aG9kID0gIiYiIC4gJGludGVyZmFjZS0+bmFt
ZSAuICI6OnVwZGF0ZSIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkZ2V0dGVyKTsKIAot
ICAgICAgICAgICAgbXkgJHNlbGZJc1RlYXJPZmZUeXBlID0gJGNvZGVHZW5lcmF0b3ItPklzU1ZH
VHlwZU5lZWRpbmdUZWFyT2ZmKCRpbnRlcmZhY2UtPm5hbWUpOworICAgICAgICAgICAgbXkgJHNl
bGZJc1RlYXJPZmZUeXBlID0gJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2Zm
Rm9yVHlwZSgkaW50ZXJmYWNlLT50eXBlKTsKICAgICAgICAgICAgIGlmICgkc2VsZklzVGVhck9m
ZlR5cGUpIHsKICAgICAgICAgICAgICAgICAjIEZJWE1FOiBXaHkgU1ZHTWF0cml4IHNwZWNpZmlj
YWxseT8KICAgICAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiU1ZHTWF0cml4VGVhck9m
Zi5oIiwgJGNvbmRpdGlvbmFsKTsKQEAgLTU3MjcsNyArNTY5Miw3IEBAIHN1YiBXcml0ZURhdGEK
IAogICAgICAgICBteSAkY2hlY2tUeXBlID0gJGluY2x1ZGU7CiAgICAgICAgICRjaGVja1R5cGUg
PX4gcy9cLmgvLzsKLSAgICAgICAgbmV4dCBpZiAkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRl
ZFR5cGUoJGNoZWNrVHlwZSk7CisgICAgICAgIG5leHQgaWYgJGNvZGVHZW5lcmF0b3ItPklzU1ZH
QW5pbWF0ZWRUeXBlTmFtZSgkY2hlY2tUeXBlKTsKIAogICAgICAgICAkaW5jbHVkZSA9ICJcIiRp
bmNsdWRlXCIiIHVubGVzcyAkaW5jbHVkZSA9fiAvXlsiPF0vOyAjICIKIApAQCAtNjA1Nyw3ICs2
MDIyLDcgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JIZWxwZXJNZXRob2RzCiAgICAgIyBGSVhN
RTogSURMIGRvZXMgbm90IGFsbG93IGFuIGludGVyZmFjZSB3aXRob3V0IFtOb0ludGVyZmFjZU9i
amVjdF0gdG8gaW5oZXJpdCBvbmUgdGhhdCBpcyBtYXJrZWQgYXMgW05vSW50ZXJmYWNlT2JqZWN0
XQogICAgICMgc28gd2Ugc2hvdWxkIGJlIGFibGUgdG8gdXNlIG91ciBwYXJlbnQncyBpbnRlcmZh
Y2Ugb2JqZWN0IG5vIG1hdHRlciB3aGF0LiBIb3dldmVyLCBzb21lIG9mIG91ciBJREwgZmlsZXMg
KGUuZy4gQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKQogICAgICMgYXJlIG5vdCB2YWxpZCBzbyB3
ZSBuZWVkIHRoaXMgY2hlY2sgZm9yIG5vdy4KLSAgICBpZiAoJGludGVyZmFjZS0+cGFyZW50ICYm
ICEkY29kZUdlbmVyYXRvci0+Z2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbU5hbWUo
JGludGVyZmFjZS0+cGFyZW50KS0+e05vSW50ZXJmYWNlT2JqZWN0fSkgeworICAgIGlmICgkaW50
ZXJmYWNlLT5wYXJlbnQgJiYgISRjb2RlR2VuZXJhdG9yLT5HZXRJbnRlcmZhY2VFeHRlbmRlZEF0
dHJpYnV0ZXNGcm9tTmFtZSgkaW50ZXJmYWNlLT5wYXJlbnQpLT57Tm9JbnRlcmZhY2VPYmplY3R9
KSB7CiAgICAgICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSAiSlMiIC4gJGludGVyZmFjZS0+cGFy
ZW50OwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuICR7cGFyZW50Q2xh
c3NOYW1lfTo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpO1xuIik7CiAgICAgfSBl
bHNpZiAoJGludGVyZmFjZS0+aXNDYWxsYmFjaykgewpAQCAtNjEzNyw3ICs2MTAyLDcgQEAgc3Vi
IE5lZWRzQ29uc3RydWN0b3JQcm9wZXJ0eQogc3ViIElzUmV0dXJuaW5nUHJvbWlzZQogewogICAg
IG15ICRmdW5jdGlvbiA9IHNoaWZ0OwotICAgIHJldHVybiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
dHlwZSAmJiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSBlcSAiUHJvbWlzZSI7CisgICAgcmV0
dXJuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5pZGxUeXBlICYmICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5pZGxUeXBlLT5uYW1lIGVxICJQcm9taXNlIjsKIH0KIAogc3ViIElzQ29uc3RydWN0YWJsZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHJl
dmlzaW9uIDIwODAxOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMUGFy
c2VyLnBtCSh3b3JraW5nIGNvcHkpCkBAIC01NCw4ICs1NCw5IEBAIHN0cnVjdCggZG9tVHlwZSA9
PiB7CiAjIFVzZWQgdG8gcmVwcmVzZW50ICdpbnRlcmZhY2UnIGJsb2Nrcwogc3RydWN0KCBkb21J
bnRlcmZhY2UgPT4gewogICAgIG5hbWUgPT4gJyQnLCAgICAgICMgQ2xhc3MgaWRlbnRpZmllcgor
ICAgIHR5cGUgPT4gJyQnLCAgICAgICMgQ2xhc3MgdHlwZQogICAgIHBhcmVudCA9PiAnJCcsICAg
ICAgIyBQYXJlbnQgY2xhc3MgaWRlbnRpZmllcgotICAgIHBhcmVudHMgPT4gJ0AnLCAgICAgICMg
UGFyZW50IGNsYXNzIGlkZW50aWZpZXJzIChLZXB0IGZvciBjb21wYXRpYmlsaXR5IHdpdGggT2Jq
QyBiaW5kaW5ncykKKyAgICBwYXJlbnRUeXBlID0+ICckJywgICAgICAjIFBhcmVudCBjbGFzcyB0
eXBlCiAgICAgY29uc3RhbnRzID0+ICdAJywgICAgIyBMaXN0IG9mICdkb21Db25zdGFudCcKICAg
ICBmdW5jdGlvbnMgPT4gJ0AnLCAgICAjIExpc3Qgb2YgJ2RvbUZ1bmN0aW9uJwogICAgIGFub255
bW91c0Z1bmN0aW9ucyA9PiAnQCcsICMgTGlzdCBvZiAnZG9tRnVuY3Rpb24nCkBAIC05MCw3ICs5
MSw2IEBAIHN0cnVjdCggZG9tQXR0cmlidXRlID0+IHsKIHN0cnVjdCggZG9tU2lnbmF0dXJlID0+
IHsKICAgICBkaXJlY3Rpb24gPT4gJyQnLCAgICMgVmFyaWFibGUgZGlyZWN0aW9uIChpbiBvciBv
dXQpCiAgICAgbmFtZSA9PiAnJCcsICAgICAgICAjIFZhcmlhYmxlIG5hbWUKLSAgICB0eXBlID0+
ICckJywgICAgICAgICMgVmFyaWFibGUgdHlwZSBuYW1lIChERVBSRUNBVEVEIC0gcGxlYXNlIHVz
ZSBpZGxUeXBlKQogICAgIGlkbFR5cGUgPT4gJyQnLCAgICAgIyBWYXJpYWJsZSB0eXBlCiAgICAg
c3BlY2lhbHMgPT4gJ0AnLCAgICAjIFNwZWNpYWxzCiAgICAgZXh0ZW5kZWRBdHRyaWJ1dGVzID0+
ICckJywgIyBFeHRlbmRlZCBhdHRyaWJ1dGVzCkBAIC0xMjIsMjIgKzEyMiwyNSBAQCBzdHJ1Y3Qo
IGRvbVNlcmlhbGl6YWJsZSA9PiB7CiAKICMgVXNlZCB0byByZXByZXNlbnQgc3RyaW5nIGNvbnN0
YW50cwogc3RydWN0KCBkb21Db25zdGFudCA9PiB7Ci0gICAgbmFtZSA9PiAnJCcsICAgICAgICAj
IERPTSBDb25zdGFudCBpZGVudGlmaWVyCi0gICAgdHlwZSA9PiAnJCcsICAgICAgICAjIFR5cGUg
b2YgZGF0YQotICAgIHZhbHVlID0+ICckJywgICAgICAgIyBDb25zdGFudCB2YWx1ZQorICAgIG5h
bWUgPT4gJyQnLCAjIERPTSBDb25zdGFudCBpZGVudGlmaWVyCisgICAgdHlwZSA9PiAnJCcsICMg
VHlwZSBuYW1lIG9mIGRhdGEKKyAgICB2YWx1ZSA9PiAnJCcsICMgQ29uc3RhbnQgdmFsdWUKICAg
ICBleHRlbmRlZEF0dHJpYnV0ZXMgPT4gJyQnLCAjIEV4dGVuZGVkIGF0dHJpYnV0ZXMKIH0pOwog
CiAjIFVzZWQgdG8gcmVwcmVzZW50ICdlbnVtJyBkZWZpbml0aW9ucwogc3RydWN0KCBkb21FbnVt
ID0+IHsKICAgICBuYW1lID0+ICckJywgIyBFbnVtZXJhdGlvbiBpZGVudGlmaWVyCisgICAgdHlw
ZSA9PiAnJCcsICMgRW51bWVyYXRpb24gdHlwZQogICAgIHZhbHVlcyA9PiAnQCcsICMgRW51bWVy
YXRpb24gdmFsdWVzIChsaXN0IG9mIHVuaXF1ZSBzdHJpbmdzKQogICAgIGV4dGVuZGVkQXR0cmli
dXRlcyA9PiAnJCcsCiB9KTsKIAogc3RydWN0KCBkb21EaWN0aW9uYXJ5ID0+IHsKLSAgICBwYXJl
bnQgPT4gJyQnLCAgIyBQYXJlbnQgY2xhc3MgaWRlbnRpZmllcgotICAgIG5hbWUgPT4gJyQnLAor
ICAgIG5hbWUgPT4gJyQnLCAjIERpY3Rpb25hcnkgaWRlbnRpZmllcgorICAgIHR5cGUgPT4gJyQn
LCAjIERpY3Rpb25hcnkgdHlwZQorICAgIHBhcmVudCA9PiAnJCcsICAjIFBhcmVudCBpZGVudGlm
aWVyCisgICAgcGFyZW50VHlwZSA9PiAnJCcsICAjIFBhcmVudCB0eXBlIGlkZW50aWZpZXIKICAg
ICBtZW1iZXJzID0+ICdAJywgIyBMaXN0IG9mICdkb21TaWduYXR1cmUnCiAgICAgZXh0ZW5kZWRB
dHRyaWJ1dGVzID0+ICckJywKIH0pOwpAQCAtMzYzLDYgKzM2NiwxNiBAQCBzdWIgaWRlbnRpZmll
clJlbW92ZU51bGxhYmxlUHJlZml4CiAgICAgcmV0dXJuICR0eXBlOwogfQogCitzdWIgbWFrZVNp
bXBsZVR5cGUKK3sKKyAgICBteSAkdHlwZU5hbWUgPSBzaGlmdDsKKworICAgIG15ICR0eXBlID0g
ZG9tVHlwZS0+bmV3KCk7CisgICAgJHR5cGUtPm5hbWUoJHR5cGVOYW1lKTsKKyAgICAKKyAgICBy
ZXR1cm4gJHR5cGU7Cit9CisKIG15ICRuZXh0QXR0cmlidXRlXzEgPSAnXihhdHRyaWJ1dGV8aW5o
ZXJpdHxyZWFkb25seSkkJzsKIG15ICRuZXh0UHJpbWl0aXZlVHlwZV8xID0gJ14oaW50fGxvbmd8
c2hvcnR8dW5zaWduZWQpJCc7CiBteSAkbmV4dFByaW1pdGl2ZVR5cGVfMiA9ICdeKGRvdWJsZXxm
bG9hdHx1bnJlc3RyaWN0ZWQpJCc7CkBAIC00NzcsOCArNDkwLDYgQEAgc3ViIGFwcGx5VHlwZWRl
ZnNGb3JTaWduYXR1cmUKICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZWN1cnNpdmUuCiAg
ICAgbXkgJG51bWJlck9mU3VidHlwZXMgPSBzY2FsYXIgQHskc2lnbmF0dXJlLT5pZGxUeXBlLT5z
dWJ0eXBlc307CiAgICAgaWYgKCRudW1iZXJPZlN1YnR5cGVzKSB7Ci0gICAgICAgIG15ICR0eXBl
VXBkYXRlZCA9IDA7Ci0gICAgCiAgICAgICAgIGZvciBteSAkaSAoMC4uJG51bWJlck9mU3VidHlw
ZXMgLSAxKSB7CiAgICAgICAgICAgICBteSAkc3VidHlwZSA9IEB7JHNpZ25hdHVyZS0+aWRsVHlw
ZS0+c3VidHlwZXN9WyRpXTsKICAgICAgICAgICAgIG15ICRzdWJ0eXBlTmFtZSA9ICRzdWJ0eXBl
LT5uYW1lOwpAQCAtNDkyLDIzICs1MDMsNiBAQCBzdWIgYXBwbHlUeXBlZGVmc0ZvclNpZ25hdHVy
ZQogICAgICAgICAgICAgICAgICRjbG9uZWRUeXBlLT5pc051bGxhYmxlKCRzdWJ0eXBlLT5pc051
bGxhYmxlKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBAeyRzaWduYXR1cmUt
PmlkbFR5cGUtPnN1YnR5cGVzfVskaV0gPSAkY2xvbmVkVHlwZTsKLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAkdHlwZVVwZGF0ZWQgPSAxOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0KLSAgICAgICAgIyBGSVhNRTogVGhpcyBjYW4gYmUgcmVtb3ZlZCB3aGVuIHdlIHVzZSBk
b21UeXBlcyBpbiB0aGUgQ29kZUdlbmVyYXRvcnMgZXZlcnl3aGVyZS4KLSAgICAgICAgaWYgKCR0
eXBlVXBkYXRlZCkgewotICAgICAgICAgICAgbXkgJHN1YnR5cGUgPSBAeyRzaWduYXR1cmUtPmlk
bFR5cGUtPnN1YnR5cGVzfVswXTsKLSAgICAgICAgICAgIG15ICRzdWJ0eXBlTmFtZSA9ICRzdWJ0
eXBlLT5uYW1lOwotCi0gICAgICAgICAgICBpZiAoJHNpZ25hdHVyZS0+aWRsVHlwZS0+bmFtZSA9
fiAvXnNlcXVlbmNlPC8pIHsKLSAgICAgICAgICAgICAgICAkc2lnbmF0dXJlLT5pZGxUeXBlLT5u
YW1lKCJzZXF1ZW5jZTwke3N1YnR5cGVOYW1lfT4iKTsKLSAgICAgICAgICAgICAgICAkc2lnbmF0
dXJlLT50eXBlKCRzaWduYXR1cmUtPmlkbFR5cGUtPm5hbWUpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKCRzaWduYXR1cmUtPmlkbFR5cGUtPm5hbWUgPX4gL15Gcm96ZW5BcnJheTwv
KSB7Ci0gICAgICAgICAgICAgICAgJHNpZ25hdHVyZS0+aWRsVHlwZS0+bmFtZSgiRnJvemVuQXJy
YXk8JHtzdWJ0eXBlTmFtZX0+Iik7Ci0gICAgICAgICAgICAgICAgJHNpZ25hdHVyZS0+dHlwZSgk
c2lnbmF0dXJlLT5pZGxUeXBlLT5uYW1lKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IApAQCAtNTI0LDcgKzUxOCw2IEBAIHN1YiBhcHBseVR5cGVkZWZzRm9yU2lnbmF0dXJlCiAgICAg
ICAgICRjbG9uZWRUeXBlLT5pc051bGxhYmxlKCRzaWduYXR1cmUtPmlkbFR5cGUtPmlzTnVsbGFi
bGUpOwogCiAgICAgICAgICRzaWduYXR1cmUtPmlkbFR5cGUoJGNsb25lZFR5cGUpOwotICAgICAg
ICAkc2lnbmF0dXJlLT50eXBlKCRjbG9uZWRUeXBlLT5uYW1lKTsKICAgICAgICAgJHNpZ25hdHVy
ZS0+aXNOdWxsYWJsZSgkY2xvbmVkVHlwZS0+aXNOdWxsYWJsZSk7CiAKICAgICAgICAgY29weUV4
dGVuZGVkQXR0cmlidXRlcygkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMsICR0eXBlZGVm
LT5leHRlbmRlZEF0dHJpYnV0ZXMpOwpAQCAtNjA1LDEwICs1OTgsMTggQEAgc3ViIHBhcnNlSW50
ZXJmYWNlCiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigp
LCAiaW50ZXJmYWNlIiwgX19MSU5FX18pOwogICAgICAgICBteSAkaW50ZXJmYWNlTmFtZVRva2Vu
ID0gJHNlbGYtPmdldFRva2VuKCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJGlu
dGVyZmFjZU5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsKLSAgICAgICAgJGludGVyZmFjZS0+
bmFtZShpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQcmVmaXgoJGludGVyZmFjZU5hbWVUb2tlbi0+
dmFsdWUoKSkpOwotICAgICAgICBteSAkcGFyZW50cyA9ICRzZWxmLT5wYXJzZUluaGVyaXRhbmNl
KCk7Ci0gICAgICAgICRpbnRlcmZhY2UtPnBhcmVudHMoJHBhcmVudHMpOwotICAgICAgICAkaW50
ZXJmYWNlLT5wYXJlbnQoJHBhcmVudHMtPlswXSk7CisgICAgICAgIAorICAgICAgICBteSAkbmFt
ZSA9IGlkZW50aWZpZXJSZW1vdmVOdWxsYWJsZVByZWZpeCgkaW50ZXJmYWNlTmFtZVRva2VuLT52
YWx1ZSgpKTsKKyAgICAgICAgJGludGVyZmFjZS0+bmFtZSgkbmFtZSk7CisgICAgICAgICRpbnRl
cmZhY2UtPnR5cGUobWFrZVNpbXBsZVR5cGUoJG5hbWUpKTsKKworICAgICAgICAkbmV4dCA9ICRz
ZWxmLT5uZXh0VG9rZW4oKTsKKyAgICAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI6Iikgewor
ICAgICAgICAgICAgbXkgJHBhcmVudCA9ICRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCk7CisgICAg
ICAgICAgICAkaW50ZXJmYWNlLT5wYXJlbnQoJHBhcmVudCk7CisgICAgICAgICAgICAkaW50ZXJm
YWNlLT5wYXJlbnRUeXBlKG1ha2VTaW1wbGVUeXBlKCRwYXJlbnQpKTsKKyAgICAgICAgfQorCiAg
ICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9f
TElORV9fKTsKICAgICAgICAgbXkgJGludGVyZmFjZU1lbWJlcnMgPSAkc2VsZi0+cGFyc2VJbnRl
cmZhY2VNZW1iZXJzKCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5n
ZXRUb2tlbigpLCAifSIsIF9fTElORV9fKTsKQEAgLTcxNSwxMSArNzE2LDIxIEBAIHN1YiBwYXJz
ZURpY3Rpb25hcnkKICAgICAgICAgbXkgJGRpY3Rpb25hcnkgPSBkb21EaWN0aW9uYXJ5LT5uZXco
KTsKICAgICAgICAgJGRpY3Rpb25hcnktPmV4dGVuZGVkQXR0cmlidXRlcygkZXh0ZW5kZWRBdHRy
aWJ1dGVMaXN0KTsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRv
a2VuKCksICJkaWN0aW9uYXJ5IiwgX19MSU5FX18pOworCiAgICAgICAgIG15ICRuYW1lVG9rZW4g
PSAkc2VsZi0+Z2V0VG9rZW4oKTsKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkbmFt
ZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwotICAgICAgICAkZGljdGlvbmFyeS0+bmFtZSgkbmFt
ZVRva2VuLT52YWx1ZSgpKTsKLSAgICAgICAgbXkgJHBhcmVudHMgPSAkc2VsZi0+cGFyc2VJbmhl
cml0YW5jZSgpOwotICAgICAgICAkZGljdGlvbmFyeS0+cGFyZW50KCRwYXJlbnRzLT5bMF0pOwor
CisgICAgICAgIG15ICRuYW1lID0gJG5hbWVUb2tlbi0+dmFsdWUoKTsKKyAgICAgICAgJGRpY3Rp
b25hcnktPm5hbWUoJG5hbWUpOworICAgICAgICAkZGljdGlvbmFyeS0+dHlwZShtYWtlU2ltcGxl
VHlwZSgkbmFtZSkpOworCisgICAgICAgICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOworICAg
ICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjoiKSB7CisgICAgICAgICAgICBteSAkcGFyZW50
ID0gJHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKTsKKyAgICAgICAgICAgICRkaWN0aW9uYXJ5LT5w
YXJlbnQoJHBhcmVudCk7CisgICAgICAgICAgICAkZGljdGlvbmFyeS0+cGFyZW50VHlwZShtYWtl
U2ltcGxlVHlwZSgkcGFyZW50KSk7CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgICRzZWxm
LT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsKICAg
ICAgICAgJGRpY3Rpb25hcnktPm1lbWJlcnMoJHNlbGYtPnBhcnNlRGljdGlvbmFyeU1lbWJlcnMo
KSk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAi
fSIsIF9fTElORV9fKTsKQEAgLTc2Niw3ICs3NzcsNiBAQCBzdWIgcGFyc2VEaWN0aW9uYXJ5TWVt
YmVyCiAKICAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CiAgICAgICAgICRt
ZW1iZXItPmlkbFR5cGUoJHR5cGUpOwotICAgICAgICAkbWVtYmVyLT50eXBlKCR0eXBlLT5uYW1l
KTsKICAgICAgICAgJG1lbWJlci0+aXNOdWxsYWJsZSgkdHlwZS0+aXNOdWxsYWJsZSk7CiAKICAg
ICAgICAgbXkgJG5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwpAQCAtODM1LDExICs4NDUs
MTkgQEAgc3ViIHBhcnNlRXhjZXB0aW9uCiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZhbHVl
KCRzZWxmLT5nZXRUb2tlbigpLCAiZXhjZXB0aW9uIiwgX19MSU5FX18pOwogICAgICAgICBteSAk
ZXhjZXB0aW9uTmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CiAgICAgICAgICRzZWxmLT5h
c3NlcnRUb2tlblR5cGUoJGV4Y2VwdGlvbk5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsKLSAg
ICAgICAgJGludGVyZmFjZS0+bmFtZShpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQcmVmaXgoJGV4
Y2VwdGlvbk5hbWVUb2tlbi0+dmFsdWUoKSkpOworCisgICAgICAgIG15ICRuYW1lID0gaWRlbnRp
ZmllclJlbW92ZU51bGxhYmxlUHJlZml4KCRleGNlcHRpb25OYW1lVG9rZW4tPnZhbHVlKCkpOwor
ICAgICAgICAkaW50ZXJmYWNlLT5uYW1lKCRuYW1lKTsKKyAgICAgICAgJGludGVyZmFjZS0+dHlw
ZShtYWtlU2ltcGxlVHlwZSgkbmFtZSkpOwogICAgICAgICAkaW50ZXJmYWNlLT5pc0V4Y2VwdGlv
bigxKTsKLSAgICAgICAgbXkgJHBhcmVudHMgPSAkc2VsZi0+cGFyc2VJbmhlcml0YW5jZSgpOwot
ICAgICAgICAkaW50ZXJmYWNlLT5wYXJlbnRzKCRwYXJlbnRzKTsKLSAgICAgICAgJGludGVyZmFj
ZS0+cGFyZW50KCRwYXJlbnRzLT5bMF0pOworCisgICAgICAgICRuZXh0ID0gJHNlbGYtPm5leHRU
b2tlbigpOworICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjoiKSB7CisgICAgICAgICAg
ICBteSAkcGFyZW50ID0gJHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKTsKKyAgICAgICAgICAgICRp
bnRlcmZhY2UtPnBhcmVudCgkcGFyZW50KTsKKyAgICAgICAgICAgICRpbnRlcmZhY2UtPnBhcmVu
dFR5cGUobWFrZVNpbXBsZVR5cGUoJHBhcmVudCkpOworICAgICAgICB9CisgICAgICAgIAogICAg
ICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgInsiLCBfX0xJ
TkVfXyk7CiAgICAgICAgIG15ICRleGNlcHRpb25NZW1iZXJzID0gJHNlbGYtPnBhcnNlRXhjZXB0
aW9uTWVtYmVycygpOwogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0
VG9rZW4oKSwgIn0iLCBfX0xJTkVfXyk7CkBAIC04NzUsMTggKzg5MywxMyBAQCBzdWIgcGFyc2VF
eGNlcHRpb25NZW1iZXJzCiBzdWIgcGFyc2VJbmhlcml0YW5jZQogewogICAgIG15ICRzZWxmID0g
c2hpZnQ7Ci0gICAgbXkgQHBhcmVudCA9ICgpOwogCiAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4
dFRva2VuKCk7CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI6IikgewogICAgICAgICAkc2Vs
Zi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4oKSwgIjoiLCBfX0xJTkVfXyk7Ci0g
ICAgICAgIG15ICRuYW1lID0gJHNlbGYtPnBhcnNlTmFtZSgpOwotICAgICAgICBwdXNoKEBwYXJl
bnQsICRuYW1lKTsKLQotICAgICAgICAjIEZJWE1FOiBSZW1vdmUuIFdhcyBuZWVkZWQgZm9yIG5l
ZWRlZCBmb3IgT2JqQyBiaW5kaW5ncy4KLSAgICAgICAgcHVzaChAcGFyZW50LCBAeyRzZWxmLT5w
YXJzZUlkZW50aWZpZXJzKCl9KTsKKyAgICAgICAgcmV0dXJuICRzZWxmLT5wYXJzZU5hbWUoKTsK
ICAgICB9Ci0gICAgcmV0dXJuIFxAcGFyZW50OworICAgICRzZWxmLT5hc3NlcnRVbmV4cGVjdGVk
VG9rZW4oJG5leHQtPnZhbHVlKCksIF9fTElORV9fKTsKIH0KIAogc3ViIHBhcnNlRW51bQpAQCAt
OTAwLDcgKzkxMyw5IEBAIHN1YiBwYXJzZUVudW0KICAgICAgICAgJHNlbGYtPmFzc2VydFRva2Vu
VmFsdWUoJHNlbGYtPmdldFRva2VuKCksICJlbnVtIiwgX19MSU5FX18pOwogICAgICAgICBteSAk
ZW51bU5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwogICAgICAgICAkc2VsZi0+YXNzZXJ0
VG9rZW5UeXBlKCRlbnVtTmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwotICAgICAgICAkZW51
bS0+bmFtZShpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQcmVmaXgoJGVudW1OYW1lVG9rZW4tPnZh
bHVlKCkpKTsKKyAgICAgICAgbXkgJG5hbWUgPSBpZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQcmVm
aXgoJGVudW1OYW1lVG9rZW4tPnZhbHVlKCkpOworICAgICAgICAkZW51bS0+bmFtZSgkbmFtZSk7
CisgICAgICAgICRlbnVtLT50eXBlKG1ha2VTaW1wbGVUeXBlKCRuYW1lKSk7CiAgICAgICAgICRz
ZWxmLT5hc3NlcnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAieyIsIF9fTElORV9fKTsK
ICAgICAgICAgcHVzaChAeyRlbnVtLT52YWx1ZXN9LCBAeyRzZWxmLT5wYXJzZUVudW1WYWx1ZUxp
c3QoKX0pOwogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9rZW4o
KSwgIn0iLCBfX0xJTkVfXyk7CkBAIC0xMDE1LDEwICsxMDMwLDggQEAgc3ViIHBhcnNlQ29uc3QK
ICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgImNvbnN0IikgewogICAgICAgICBteSAkbmV3RGF0
YU5vZGUgPSBkb21Db25zdGFudC0+bmV3KCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiY29uc3QiLCBfX0xJTkVfXyk7Ci0gICAgICAgIAogICAg
ICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZUNvbnN0VHlwZSgpOwotICAgICAgICAkbmV3RGF0
YU5vZGUtPnR5cGUoJHR5cGUtPm5hbWUpOwotCisgICAgICAgICRuZXdEYXRhTm9kZS0+dHlwZSgk
dHlwZSk7CiAgICAgICAgIG15ICRjb25zdE5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwog
ICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCRjb25zdE5hbWVUb2tlbiwgSWRlbnRpZmll
clRva2VuKTsKICAgICAgICAgJG5ld0RhdGFOb2RlLT5uYW1lKGlkZW50aWZpZXJSZW1vdmVOdWxs
YWJsZVByZWZpeCgkY29uc3ROYW1lVG9rZW4tPnZhbHVlKCkpKTsKQEAgLTEyODYsNyArMTI5OSw2
IEBAIHN1YiBwYXJzZUF0dHJpYnV0ZU9yT3BlcmF0aW9uUmVzdAogICAgICAgICBteSAkaW50ZXJm
YWNlID0gJHNlbGYtPnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsK
ICAgICAgICAgaWYgKGRlZmluZWQgKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgICAgICAkaW50ZXJm
YWNlLT5zaWduYXR1cmUtPmlkbFR5cGUoJHJldHVyblR5cGUpOwotICAgICAgICAgICAgJGludGVy
ZmFjZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlLT5uYW1lKTsKICAgICAgICAgICAgICRp
bnRlcmZhY2UtPnNpZ25hdHVyZS0+aXNOdWxsYWJsZSgkcmV0dXJuVHlwZS0+aXNOdWxsYWJsZSk7
CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICRpbnRlcmZhY2U7CkBAIC0xMzI2LDcgKzEzMzgs
NiBAQCBzdWIgcGFyc2VBdHRyaWJ1dGVSZXN0CiAgICAgICAgIAogICAgICAgICBteSAkdHlwZSA9
ICRzZWxmLT5wYXJzZVR5cGUoKTsKICAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1cmUtPmlk
bFR5cGUoJHR5cGUpOwotICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+dHlwZSgkdHlw
ZS0+bmFtZSk7CiAgICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlLT5pc051bGxhYmxlKCR0
eXBlLT5pc051bGxhYmxlKTsKIAogICAgICAgICBteSAkdG9rZW4gPSAkc2VsZi0+Z2V0VG9rZW4o
KTsKQEAgLTEzODQsNyArMTM5NSw2IEBAIHN1YiBwYXJzZU9wZXJhdGlvbk9ySXRlcmF0b3IKICAg
ICAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1
ZSgpIGVxICIoIikgewogICAgICAgICAgICAgbXkgJG9wZXJhdGlvbiA9ICRzZWxmLT5wYXJzZU9w
ZXJhdGlvblJlc3QoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7CiAgICAgICAgICAgICAkb3BlcmF0
aW9uLT5zaWduYXR1cmUtPmlkbFR5cGUoJHJldHVyblR5cGUpOwotICAgICAgICAgICAgJG9wZXJh
dGlvbi0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlLT5uYW1lKTsKICAgICAgICAgICAgICRv
cGVyYXRpb24tPnNpZ25hdHVyZS0+aXNOdWxsYWJsZSgkcmV0dXJuVHlwZS0+aXNOdWxsYWJsZSk7
CiAKICAgICAgICAgICAgIHJldHVybiAkb3BlcmF0aW9uOwpAQCAtMTQwNiw3ICsxNDE2LDYgQEAg
c3ViIHBhcnNlU3BlY2lhbE9wZXJhdGlvbgogICAgICAgICBteSAkaW50ZXJmYWNlID0gJHNlbGYt
PnBhcnNlT3BlcmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICAgICAgaWYg
KGRlZmluZWQgKCRpbnRlcmZhY2UpKSB7CiAgICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWduYXR1
cmUtPmlkbFR5cGUoJHJldHVyblR5cGUpOwotICAgICAgICAgICAgJGludGVyZmFjZS0+c2lnbmF0
dXJlLT50eXBlKCRyZXR1cm5UeXBlLT5uYW1lKTsKICAgICAgICAgICAgICRpbnRlcmZhY2UtPnNp
Z25hdHVyZS0+aXNOdWxsYWJsZSgkcmV0dXJuVHlwZS0+aXNOdWxsYWJsZSk7CiAgICAgICAgICAg
ICAkaW50ZXJmYWNlLT5zaWduYXR1cmUtPnNwZWNpYWxzKFxAc3BlY2lhbHMpOwogICAgICAgICB9
CkBAIC0xNTA0LDcgKzE1MTMsNyBAQCBzdWIgcGFyc2VPcHRpb25hbEl0ZXJhYmxlSW50ZXJmYWNl
CiAgICAgJGZvckVhY2hGdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKCJmb3JFYWNoIik7CiAgICAg
bXkgJGZvckVhY2hBcmd1bWVudCA9IGRvbVNpZ25hdHVyZS0+bmV3KCk7CiAgICAgJGZvckVhY2hB
cmd1bWVudC0+bmFtZSgiY2FsbGJhY2siKTsKLSAgICAkZm9yRWFjaEFyZ3VtZW50LT50eXBlKCJh
bnkiKTsKKyAgICAkZm9yRWFjaEFyZ3VtZW50LT5pZGxUeXBlKG1ha2VTaW1wbGVUeXBlKCJhbnki
KSk7CiAgICAgcHVzaChAeyRmb3JFYWNoRnVuY3Rpb24tPnBhcmFtZXRlcnN9LCAoJGZvckVhY2hB
cmd1bWVudCkpOwogCiAgICAgbXkgJG5ld0RhdGFOb2RlID0gZG9tSXRlcmFibGUtPm5ldygpOwpA
QCAtMTYyNyw3ICsxNjM2LDYgQEAgc3ViIHBhcnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1lbnQK
IAogICAgICAgICBteSAkdHlwZSA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKICAgICAgICAgJHBhcmFt
RGF0YU5vZGUtPmlkbFR5cGUoJHR5cGUpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+dHlwZShp
ZGVudGlmaWVyUmVtb3ZlTnVsbGFibGVQcmVmaXgoJHR5cGUtPm5hbWUpKTsKICAgICAgICAgJHBh
cmFtRGF0YU5vZGUtPmlzTnVsbGFibGUoJHR5cGUtPmlzTnVsbGFibGUpOwogICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+aXNPcHRpb25hbCgxKTsKICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUo
JHNlbGYtPnBhcnNlQXJndW1lbnROYW1lKCkpOwpAQCAtMTYzNyw3ICsxNjQ1LDYgQEAgc3ViIHBh
cnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1lbnQKICAgICBpZiAoJG5leHQtPnR5cGUoKSA9PSBJ
ZGVudGlmaWVyVG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRuZXh0RXhjZXB0aW9uRmllbGRf
MS8pIHsKICAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CiAgICAgICAgICRw
YXJhbURhdGFOb2RlLT5pZGxUeXBlKCR0eXBlKTsKLSAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5
cGUoJHR5cGUtPm5hbWUpOwogICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNOdWxsYWJsZSgkdHlw
ZS0+aXNOdWxsYWJsZSk7CiAgICAgICAgICRwYXJhbURhdGFOb2RlLT5pc09wdGlvbmFsKDApOwog
ICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNWYXJpYWRpYygkc2VsZi0+cGFyc2VFbGxpcHNpcygp
KTsKQEAgLTE3MDAsNyArMTcwNyw2IEBAIHN1YiBwYXJzZUV4Y2VwdGlvbkZpZWxkCiAKICAgICAg
ICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7CiAgICAgICAgICRuZXdEYXRhTm9kZS0+
c2lnbmF0dXJlLT5pZGxUeXBlKCR0eXBlKTsKLSAgICAgICAgJG5ld0RhdGFOb2RlLT5zaWduYXR1
cmUtPnR5cGUoJHR5cGUtPm5hbWUpOwogICAgICAgICAkbmV3RGF0YU5vZGUtPnNpZ25hdHVyZS0+
aXNOdWxsYWJsZSgkdHlwZS0+aXNOdWxsYWJsZSk7CiAgICAgICAgIAogICAgICAgICBteSAkdG9r
ZW4gPSAkc2VsZi0+Z2V0VG9rZW4oKTsKQEAgLTIxMTYsOCArMjEyMiw3IEBAIHN1YiBwYXJzZU5v
bkFueVR5cGUKIAogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2VsZi0+Z2V0VG9r
ZW4oKSwgIj4iLCBfX0xJTkVfXyk7CiAKLSAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQganVz
dCBiZSAic2VxdWVuY2UiIHdoZW4gd2Ugc3RhcnQgdXNpbmcgZG9tVHlwZXMgaW4gdGhlIENvZGVH
ZW5lcmF0b3JzCi0gICAgICAgICR0eXBlLT5uYW1lKCJzZXF1ZW5jZTwke3N1YnR5cGVOYW1lfT4i
KTsKKyAgICAgICAgJHR5cGUtPm5hbWUoInNlcXVlbmNlIik7CiAgICAgICAgIHB1c2goQHskdHlw
ZS0+c3VidHlwZXN9LCAkc3VidHlwZSk7CiAKICAgICAgICAgcmV0dXJuICR0eXBlOwpAQCAtMjEz
MSw4ICsyMTM2LDcgQEAgc3ViIHBhcnNlTm9uQW55VHlwZQogCiAgICAgICAgICRzZWxmLT5hc3Nl
cnRUb2tlblZhbHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiPiIsIF9fTElORV9fKTsKIAotICAgICAg
ICAjIEZJWE1FOiBUaGlzIHNob3VsZCBqdXN0IGJlICJGcm96ZW5BcnJheSIgd2hlbiB3ZSBzdGFy
dCB1c2luZyBkb21UeXBlcyBpbiB0aGUgQ29kZUdlbmVyYXRvcnMKLSAgICAgICAgJHR5cGUtPm5h
bWUoIkZyb3plbkFycmF5PCR7c3VidHlwZU5hbWV9PiIpOworICAgICAgICAkdHlwZS0+bmFtZSgi
RnJvemVuQXJyYXkiKTsKICAgICAgICAgcHVzaChAeyR0eXBlLT5zdWJ0eXBlc30sICRzdWJ0eXBl
KTsKIAogICAgICAgICByZXR1cm4gJHR5cGU7CkBAIC0yMzQ5LDcgKzIzNTMsNyBAQCBzdWIgaXNT
ZXJpYWxpemFibGVBdHRyaWJ1dGUKICAgICAjIFRoaXMgY2hlY2sgbWF5IGhhdmUgdG8gbW92ZSB0
byB0aGUgY29kZSBnZW5lcmF0b3IsIGlmIHdlIGRvbid0IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9u
CiAgICAgIyBoZXJlIHRvIGRldGVybWluZSBzZXJpYWxpemFiaWxpdHk6IGh0dHBzOi8vaGV5Y2Ft
LmdpdGh1Yi5pby93ZWJpZGwvI2lkbC1zZXJpYWxpemVycwogICAgIG15ICRzZXJpYWxpemFibGVf
dHlwZXMgPSAnXihcKGJ5dGV8b2N0ZXR8c2hvcnR8dW5zaWduZWQgc2hvcnR8bG9uZ3x1bnNpZ25l
ZCBsb25nfGxvbmcgbG9uZ3x1bnNpZ25lZCBsb25nIGxvbmd8ZmxvYXR8dW5yZXN0cmljdGVkIGZs
b2F0fGRvdWJsZXx1bnJlc3RyaWN0ZWQgZG91YmxlfGJvb2xlYW58RE9NU3RyaW5nfEJ5dGVTdHJp
bmd8VVNWU3RyaW5nKSQnOwotICAgIHJldHVybiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUg
PX4gLyRzZXJpYWxpemFibGVfdHlwZXMvOworICAgIHJldHVybiAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmlkbFR5cGUtPm5hbWUgPX4gLyRzZXJpYWxpemFibGVfdHlwZXMvOwogfQogCiBzdWIgYXBw
bHlNZW1iZXJMaXN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHJldmlzaW9uIDIw
ODAxOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudFRhcmdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRl
ICJKU0RPTUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCiAjaW5jbHVk
ZSAiSlNOb2RlLmgiCi0jaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgInd0Zi90ZXh0L0F0b21p
Y1N0cmluZy5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1l
L1Byb3BlcnR5TmFtZUFycmF5Lmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNp
b24gMjA4MDE4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCiAjaW5j
bHVkZSAiSlNET01Db252ZXJ0LmgiCi0jaW5jbHVkZSAiVGVzdE9iai5oIgorI2luY2x1ZGUgIkpT
VGVzdE9iai5oIgogI2luY2x1ZGUgIlRlc3RTdXBwbGVtZW50YWwuaCIKICNpbmNsdWRlIDxydW50
aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgpAQCAt
NDAsNyArNDAsNiBAQAogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0
aW9uMTIpIHx8IEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQogI2lu
Y2x1ZGUgIkpTTm9kZS5oIgotI2luY2x1ZGUgIkpTVGVzdE9iai5oIgogI2VuZGlmCiAKIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24gMjA4MDE4KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIyLDEwICsyMiw4IEBACiAjaW5jbHVkZSAiSlNUZXN0T2JqLmgiCiAKICNp
bmNsdWRlICJDYWxsYmFja0Z1bmN0aW9uLmgiCi0jaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgog
I2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUg
IkVsZW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC01Niw4ICs1NCw2IEBACiAjaW5jbHVkZSAi
SlNUZXN0U3ViT2JqLmgiCiAjaW5jbHVkZSAiSlNYUGF0aE5TUmVzb2x2ZXIuaCIKICNpbmNsdWRl
ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCi0jaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJTVkdQb2ludC5oIgogI2luY2x1ZGUgIlNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5o
IgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCShyZXZpc2lvbiAyMDgwMTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
c1dpdGhTZXF1ZW5jZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNs
dWRlICJKU0RPTUNvbnZlcnQuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVk
ZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJh
eS5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlk
ZUJ1aWx0aW5zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlzaW9uIDIwODAxOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlk
ZUJ1aWx0aW5zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUg
IkpTRE9NQ29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKICNpbmNsdWRl
ICJKU05vZGUuaCIKLSNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAid3RmL3RleHQvQXRvbWlj
U3RyaW5nLmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUv
RnVuY3Rpb25Qcm90b3R5cGUuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAyMDgwMTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAog
I2luY2x1ZGUgIkpTTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKICNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CisjaW5jbHVkZSA8
cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogCiB1c2luZyBuYW1l
c3BhY2UgSlNDOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCShyZXZpc2lvbiAyMDgwMTgpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiSlNUZXN0Q2Fs
bGJhY2suaCIKICNpbmNsdWRlICJKU1Rlc3RFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkpTVGVz
dFN1Yk9iai5oIgotI2luY2x1ZGUgIlNWR1BvaW50LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVt
YmVkRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1i
ZWRFbGVtZW50LmlkbAkocmV2aXNpb24gMjA4MDE4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRW1iZWRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTMgKzIzLDEzIEBACiAg
ICAgSlNDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yLAogICAgIEN1c3RvbUNh
bGwsCiBdIGludGVyZmFjZSBIVE1MRW1iZWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotW1JlZmxl
Y3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247Ci1bUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0
cmluZyBoZWlnaHQ7Ci1bUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwotW1JlZmxl
Y3QsIFVSTF0gYXR0cmlidXRlIFVTVlN0cmluZyBzcmM7Ci1bUmVmbGVjdF0gYXR0cmlidXRlIERP
TVN0cmluZyB0eXBlOwotW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgd2lkdGg7CisgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgYWxpZ247CisgICAgW1JlZmxlY3RdIGF0dHJp
YnV0ZSBET01TdHJpbmcgaGVpZ2h0OworICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IG5hbWU7CisgICAgW1JlZmxlY3QsIFVSTF0gYXR0cmlidXRlIFVTVlN0cmluZyBzcmM7CisgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgICBbUmVmbGVjdF0gYXR0cmli
dXRlIERPTVN0cmluZyB3aWR0aDsKIAotW0NoZWNrU2VjdXJpdHlGb3JOb2RlLCBNYXlUaHJvd0xl
Z2FjeUV4Y2VwdGlvbl0gU1ZHRG9jdW1lbnQgZ2V0U1ZHRG9jdW1lbnQoKTsKKyAgICBbQ2hlY2tT
ZWN1cml0eUZvck5vZGUsIE1heVRocm93TGVnYWN5RXhjZXB0aW9uXSBEb2N1bWVudCBnZXRTVkdE
b2N1bWVudCgpOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVt
ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnQuaWRsCShyZXZpc2lvbiAyMDgwMTgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIGludGVyZmFjZSBI
VE1MRnJhbWVFbGVtZW50IDogSFRNTEVsZW1lbnQKICAgICAvLyBFeHRlbnNpb25zCiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVdpbmRvdyBjb250ZW50V2luZG93OwogCi0gICAgW0NoZWNrU2Vj
dXJpdHlGb3JOb2RlLCBNYXlUaHJvd0xlZ2FjeUV4Y2VwdGlvbl0gU1ZHRG9jdW1lbnQgZ2V0U1ZH
RG9jdW1lbnQoKTsKKyAgICBbQ2hlY2tTZWN1cml0eUZvck5vZGUsIE1heVRocm93TGVnYWN5RXhj
ZXB0aW9uXSBEb2N1bWVudCBnZXRTVkdEb2N1bWVudCgpOwogCiAgICAgLy8gRklYTUU6IE5vIG90
aGVyIGJyb3dzZXIgaGFzIHRoaXMgYXR0cmlidXRlLgogICAgIFtDdXN0b21TZXR0ZXJdIGF0dHJp
YnV0ZSBET01TdHJpbmcgbG9jYXRpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
cmFtZU93bmVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVPd25lckVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMDgwMTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
Miw3ICsxMTIsNyBAQCBib29sIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6aXNLZXlib2FyZEZvCiAg
ICAgcmV0dXJuIG1fY29udGVudEZyYW1lICYmIEhUTUxFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNh
YmxlKGV2ZW50KTsKIH0KIAotU1ZHRG9jdW1lbnQqIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6Z2V0
U1ZHRG9jdW1lbnQoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CitEb2N1bWVudCogSFRNTEZyYW1l
T3duZXJFbGVtZW50OjpnZXRTVkdEb2N1bWVudChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZW50RG9jdW1lbnQoKTsKICAgICBpZiAoaXM8
U1ZHRG9jdW1lbnQ+KGRvY3VtZW50KSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lT3duZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RnJhbWVPd25lckVsZW1lbnQuaAkocmV2aXNpb24gMjA4MDE4KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDks
NyBAQCBwdWJsaWM6CiAgICAgLy8gUmVuZGVyRWxlbWVudCB3aGVuIHVzaW5nIGZhbGxiYWNrIGNv
bnRlbnQuCiAgICAgUmVuZGVyV2lkZ2V0KiByZW5kZXJXaWRnZXQoKSBjb25zdDsKIAotICAgIFNW
R0RvY3VtZW50KiBnZXRTVkdEb2N1bWVudChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisgICAgRG9j
dW1lbnQqIGdldFNWR0RvY3VtZW50KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAogICAgIHZpcnR1
YWwgU2Nyb2xsYmFyTW9kZSBzY3JvbGxpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gU2Nyb2xsYmFy
QXV0bzsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50Lmlk
bAkocmV2aXNpb24gMjA4MDE4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDYgQEAgaW50ZXJmYWNlIEhUTUxJ
RnJhbWVFbGVtZW50IDogSFRNTEVsZW1lbgogICAgIC8vIEV4dGVuc2lvbnMKICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NV2luZG93IGNvbnRlbnRXaW5kb3c7CiAKLSAgICBbQ2hlY2tTZWN1cml0
eUZvck5vZGUsIE1heVRocm93TGVnYWN5RXhjZXB0aW9uXSBTVkdEb2N1bWVudCBnZXRTVkdEb2N1
bWVudCgpOworICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZSwgTWF5VGhyb3dMZWdhY3lFeGNlcHRp
b25dIERvY3VtZW50IGdldFNWR0RvY3VtZW50KCk7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmlkbAkocmV2aXNpb24gMjA4MDE4KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTUw
LDYgKzUwLDYgQEAKICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAgIFtDaGVj
a1NlY3VyaXR5Rm9yTm9kZV0gcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50IGNvbnRlbnREb2N1
bWVudDsKIAotICAgIFtDaGVja1NlY3VyaXR5Rm9yTm9kZSwgTWF5VGhyb3dMZWdhY3lFeGNlcHRp
b25dIFNWR0RvY3VtZW50IGdldFNWR0RvY3VtZW50KCk7CisgICAgW0NoZWNrU2VjdXJpdHlGb3JO
b2RlLCBNYXlUaHJvd0xlZ2FjeUV4Y2VwdGlvbl0gRG9jdW1lbnQgZ2V0U1ZHRG9jdW1lbnQoKTsK
IH07CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDIwODAxOSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDE2LTEwLTI3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgW1dlYklETF0gTW92ZSBjb2RlIGdlbmVyYXRvcnMgb2ZmIG9mIGRvbVNpZ25h
dHVyZTo6dHlwZSBhbmQgb250byBkb21TaWduYXR1cmU6OmlkbFR5cGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NDA4OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQmluZGlu
Z3MvQ29kZUdlbmVyYXRvckR1bXBSZW5kZXJUcmVlLnBtOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQ29kZUdlbmVyYXRvclRlc3RSdW5uZXIucG06
CisgICAgICAgIFVwZGF0ZSBmb3IgdGhlIHJlbW92YWwgb2YgZG9tU2lnbmF0dXJlOjp0eXBlLCBh
bmQgbmV3IHNpZ25hdHVyZXMgb2YgaGVscGVyIHByZWRpY2F0ZXMuCisKIDIwMTYtMTAtMjcgIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyMDc5OTIuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9CaW5k
aW5ncy9Db2RlR2VuZXJhdG9yRHVtcFJlbmRlclRyZWUucG0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
RHVtcFJlbmRlclRyZWUvQmluZGluZ3MvQ29kZUdlbmVyYXRvckR1bXBSZW5kZXJUcmVlLnBtCShy
ZXZpc2lvbiAyMDgwMTgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9CaW5kaW5ncy9Db2RlR2Vu
ZXJhdG9yRHVtcFJlbmRlclRyZWUucG0JKHdvcmtpbmcgY29weSkKQEAgLTYzLDYgKzYzLDcgQEAg
c3ViIF9jbGFzc05hbWUKIHN1YiBfY2xhc3NSZWZHZXR0ZXIKIHsKICAgICBteSAoJHNlbGYsICRp
ZGxUeXBlKSA9IEBfOworCiAgICAgcmV0dXJuICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+V0tfbGNm
aXJzdChfaW1wbGVtZW50YXRpb25DbGFzc05hbWUoJGlkbFR5cGUpKSAuICJDbGFzcyI7CiB9CiAK
QEAgLTE0MSw3ICsxNDIsNyBAQCBzdWIgX2dlbmVyYXRlSGVhZGVyRmlsZQogCiAgICAgbXkgQGNv
bnRlbnRzID0gKCk7CiAKLSAgICBteSAkaWRsVHlwZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAg
bXkgJGlkbFR5cGUgPSAkaW50ZXJmYWNlLT50eXBlOwogICAgIG15ICRjbGFzc05hbWUgPSBfY2xh
c3NOYW1lKCRpZGxUeXBlKTsKICAgICBteSAkaW1wbGVtZW50YXRpb25DbGFzc05hbWUgPSBfaW1w
bGVtZW50YXRpb25DbGFzc05hbWUoJGlkbFR5cGUpOwogICAgIG15ICRmaWxlbmFtZSA9ICRjbGFz
c05hbWUgLiAiLmgiOwpAQCAtMjA4LDcgKzIwOSw3IEBAIHN1YiBfZ2VuZXJhdGVJbXBsZW1lbnRh
dGlvbkZpbGUKICAgICBteSAlY29udGVudHNJbmNsdWRlcyA9ICgpOwogICAgIG15IEBjb250ZW50
cyA9ICgpOwogCi0gICAgbXkgJGlkbFR5cGUgPSAkaW50ZXJmYWNlLT5uYW1lOworICAgIG15ICRp
ZGxUeXBlID0gJGludGVyZmFjZS0+dHlwZTsKICAgICBteSAkY2xhc3NOYW1lID0gX2NsYXNzTmFt
ZSgkaWRsVHlwZSk7CiAgICAgbXkgJGltcGxlbWVudGF0aW9uQ2xhc3NOYW1lID0gX2ltcGxlbWVu
dGF0aW9uQ2xhc3NOYW1lKCRpZGxUeXBlKTsKICAgICBteSAkZmlsZW5hbWUgPSAkY2xhc3NOYW1l
IC4gIi5jcHAiOwpAQCAtMjgzLDcgKzI4NCw3IEBAIEVPRgogICAgICAgICAgICAgICAgIG15IEBw
YXJhbWV0ZXJzID0gKCk7CiAgICAgICAgICAgICAgICAgbXkgQHNwZWNpZmllZFBhcmFtZXRlcnMg
PSBAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc307CiAKLSAgICAgICAgICAgICAgICAkc2VsZi0+X2lu
Y2x1ZGVIZWFkZXJzKFwlY29udGVudHNJbmNsdWRlcywgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5
cGUsICRmdW5jdGlvbi0+c2lnbmF0dXJlKTsKKyAgICAgICAgICAgICAgICAkc2VsZi0+X2luY2x1
ZGVIZWFkZXJzKFwlY29udGVudHNJbmNsdWRlcywgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmlkbFR5
cGUsICRmdW5jdGlvbi0+c2lnbmF0dXJlKTsKIAogICAgICAgICAgICAgICAgIGlmICgkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlBhc3NDb250ZXh0In0pIHsKICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAcGFyYW1ldGVycywgImNvbnRleHQiKTsKQEAgLTMwMiw3
ICszMDMsNyBAQCBFT0YKICAgICAgICAgICAgICAgICAkZnVuY3Rpb25DYWxsID0gImltcGwtPiIg
LiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIiAuIGpvaW4oIiwgIiwgQHBhcmFtZXRl
cnMpIC4gIikiOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBwdXNo
KEBjb250ZW50cywgIiAgICAke2Z1bmN0aW9uQ2FsbH07XG5cbiIpIGlmICRmdW5jdGlvbi0+c2ln
bmF0dXJlLT50eXBlIGVxICJ2b2lkIjsKKyAgICAgICAgICAgIHB1c2goQGNvbnRlbnRzLCAiICAg
ICR7ZnVuY3Rpb25DYWxsfTtcblxuIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmlkbFR5cGUt
Pm5hbWUgZXEgInZvaWQiOwogICAgICAgICAgICAgcHVzaChAY29udGVudHMsICIgICAgcmV0dXJu
ICIgLiAkc2VsZi0+X3JldHVybkV4cHJlc3Npb24oJGZ1bmN0aW9uLT5zaWduYXR1cmUsICRmdW5j
dGlvbkNhbGwpIC4gIjtcbn1cbiIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMzEwLDcgKzMxMSw3
IEBAIEVPRgogICAgIGlmIChteSBAYXR0cmlidXRlcyA9IEB7JGludGVyZmFjZS0+YXR0cmlidXRl
c30pIHsKICAgICAgICAgcHVzaChAY29udGVudHMsICJcbi8vIEF0dHJpYnV0ZXNcbiIpOwogICAg
ICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEBhdHRyaWJ1dGVzKSB7Ci0gICAgICAgICAgICAk
c2VsZi0+X2luY2x1ZGVIZWFkZXJzKFwlY29udGVudHNJbmNsdWRlcywgJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT50eXBlLCAkYXR0cmlidXRlLT5zaWduYXR1cmUpOworICAgICAgICAgICAgJHNlbGYt
Pl9pbmNsdWRlSGVhZGVycyhcJWNvbnRlbnRzSW5jbHVkZXMsICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+aWRsVHlwZSwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKIAogICAgICAgICAgICAgbXkgJGdl
dHRlck5hbWUgPSAkc2VsZi0+X2dldHRlck5hbWUoJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBt
eSAkZ2V0dGVyRXhwcmVzc2lvbiA9ICJpbXBsLT4ke2dldHRlck5hbWV9KCkiOwpAQCAtMzY3LDEw
ICszNjgsNyBAQCBzdWIgX2dldHRlck5hbWUKIHsKICAgICBteSAoJHNlbGYsICRhdHRyaWJ1dGUp
ID0gQF87CiAKLSAgICBteSAkc2lnbmF0dXJlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlOwotICAg
IG15ICRuYW1lID0gJHNpZ25hdHVyZS0+bmFtZTsKLQotICAgIHJldHVybiAkbmFtZTsKKyAgICBy
ZXR1cm4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwogfQogCiBzdWIgX2luY2x1ZGVIZWFk
ZXJzCkBAIC0zNzgsOCArMzc2LDggQEAgc3ViIF9pbmNsdWRlSGVhZGVycwogICAgIG15ICgkc2Vs
ZiwgJGhlYWRlcnMsICRpZGxUeXBlLCAkc2lnbmF0dXJlKSA9IEBfOwogCiAgICAgcmV0dXJuIHVu
bGVzcyBkZWZpbmVkICRpZGxUeXBlOwotICAgIHJldHVybiBpZiAkaWRsVHlwZSBlcSAiYm9vbGVh
biI7Ci0gICAgcmV0dXJuIGlmICRpZGxUeXBlIGVxICJvYmplY3QiOworICAgIHJldHVybiBpZiAk
aWRsVHlwZS0+bmFtZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuIGlmICRpZGxUeXBlLT5uYW1l
IGVxICJvYmplY3QiOwogICAgIHJldHVybiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPklzTm9u
UG9pbnRlclR5cGUoJGlkbFR5cGUpOwogICAgIHJldHVybiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRv
cn0tPklzU3RyaW5nVHlwZSgkaWRsVHlwZSk7CiAKQEAgLTM5MSw3ICszODksNyBAQCBzdWIgX2lt
cGxlbWVudGF0aW9uQ2xhc3NOYW1lCiB7CiAgICAgbXkgKCRpZGxUeXBlKSA9IEBfOwogCi0gICAg
cmV0dXJuICRpZGxUeXBlOworICAgIHJldHVybiAkaWRsVHlwZS0+bmFtZTsKIH0KIAogc3ViIF9w
YXJlbnRDbGFzc05hbWUKQEAgLTQxMyw3ICs0MTEsNyBAQCBzdWIgX3BhcmVudENsYXNzUmVmR2V0
dGVyRXhwcmVzc2lvbgogc3ViIF9wYXJlbnRJbnRlcmZhY2UKIHsKICAgICBteSAoJGludGVyZmFj
ZSkgPSBAXzsKLSAgICByZXR1cm4gJGludGVyZmFjZS0+cGFyZW50OworICAgIHJldHVybiAkaW50
ZXJmYWNlLT5wYXJlbnRUeXBlOwogfQogCiBzdWIgX3BsYXRmb3JtVHlwZQpAQCAtNDIyLDggKzQy
MCw4IEBAIHN1YiBfcGxhdGZvcm1UeXBlCiAKICAgICByZXR1cm4gdW5kZWYgdW5sZXNzIGRlZmlu
ZWQgJGlkbFR5cGU7CiAKLSAgICByZXR1cm4gImJvb2wiIGlmICRpZGxUeXBlIGVxICJib29sZWFu
IjsKLSAgICByZXR1cm4gIkpTVmFsdWVSZWYiIGlmICRpZGxUeXBlIGVxICJvYmplY3QiOworICAg
IHJldHVybiAiYm9vbCIgaWYgJGlkbFR5cGUtPm5hbWUgZXEgImJvb2xlYW4iOworICAgIHJldHVy
biAiSlNWYWx1ZVJlZiIgaWYgJGlkbFR5cGUtPm5hbWUgZXEgIm9iamVjdCI7CiAgICAgcmV0dXJu
ICJKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4iIGlmICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNT
dHJpbmdUeXBlKCRpZGxUeXBlKTsKICAgICByZXR1cm4gImRvdWJsZSIgaWYgJCRzZWxme2NvZGVH
ZW5lcmF0b3J9LT5Jc05vblBvaW50ZXJUeXBlKCRpZGxUeXBlKTsKICAgICByZXR1cm4gX2ltcGxl
bWVudGF0aW9uQ2xhc3NOYW1lKCRpZGxUeXBlKTsKQEAgLTQzMywxMCArNDMxLDEwIEBAIHN1YiBf
cGxhdGZvcm1UeXBlQ29uc3RydWN0b3IKIHsKICAgICBteSAoJHNlbGYsICRzaWduYXR1cmUsICRh
cmd1bWVudE5hbWUpID0gQF87CiAKLSAgICBteSAkaWRsVHlwZSA9ICRzaWduYXR1cmUtPnR5cGU7
CisgICAgbXkgJGlkbFR5cGUgPSAkc2lnbmF0dXJlLT5pZGxUeXBlOwogCiAgICAgcmV0dXJuICJK
U1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsICRhcmd1bWVudE5hbWUpIiBpZiAkaWRsVHlwZSBlcSAi
Ym9vbGVhbiI7Ci0gICAgcmV0dXJuICIkYXJndW1lbnROYW1lIiBpZiAkaWRsVHlwZSBlcSAib2Jq
ZWN0IjsKKyAgICByZXR1cm4gIiRhcmd1bWVudE5hbWUiIGlmICRpZGxUeXBlLT5uYW1lIGVxICJv
YmplY3QiOwogICAgIHJldHVybiAiSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+KEFkb3B0LCBKU1Zh
bHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsICRhcmd1bWVudE5hbWUsIDApKSIgaWYgJCRzZWxme2Nv
ZGVHZW5lcmF0b3J9LT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpOwogICAgIHJldHVybiAiSlNWYWx1
ZVRvTnVtYmVyKGNvbnRleHQsICRhcmd1bWVudE5hbWUsIDApIiBpZiAkJHNlbGZ7Y29kZUdlbmVy
YXRvcn0tPklzTm9uUG9pbnRlclR5cGUoJGlkbFR5cGUpOwogICAgIHJldHVybiAidG8iIC4gX2lt
cGxlbWVudGF0aW9uQ2xhc3NOYW1lKCRpZGxUeXBlKSAuICIoY29udGV4dCwgJGFyZ3VtZW50TmFt
ZSkiOwpAQCAtNDQ2LDcgKzQ0NCw3IEBAIHN1YiBfcGxhdGZvcm1UeXBlVmFyaWFibGVEZWNsYXJh
dGlvbgogewogICAgIG15ICgkc2VsZiwgJHNpZ25hdHVyZSwgJHZhcmlhYmxlTmFtZSwgJGFyZ3Vt
ZW50TmFtZSwgJGNvbmRpdGlvbikgPSBAXzsKIAotICAgIG15ICRwbGF0Zm9ybVR5cGUgPSAkc2Vs
Zi0+X3BsYXRmb3JtVHlwZSgkc2lnbmF0dXJlLT50eXBlLCAkc2lnbmF0dXJlKTsKKyAgICBteSAk
cGxhdGZvcm1UeXBlID0gJHNlbGYtPl9wbGF0Zm9ybVR5cGUoJHNpZ25hdHVyZS0+aWRsVHlwZSwg
JHNpZ25hdHVyZSk7CiAgICAgbXkgJGNvbnN0cnVjdG9yID0gJHNlbGYtPl9wbGF0Zm9ybVR5cGVD
b25zdHJ1Y3Rvcigkc2lnbmF0dXJlLCAkYXJndW1lbnROYW1lKTsKIAogICAgIG15ICVub25Qb2lu
dGVyVHlwZXMgPSAoCkBAIC00NzQsMTEgKzQ3MiwxMSBAQCBzdWIgX3JldHVybkV4cHJlc3Npb24K
IHsKICAgICBteSAoJHNlbGYsICRzaWduYXR1cmUsICRleHByZXNzaW9uKSA9IEBfOwogCi0gICAg
bXkgJHJldHVybklETFR5cGUgPSAkc2lnbmF0dXJlLT50eXBlOworICAgIG15ICRyZXR1cm5JRExU
eXBlID0gJHNpZ25hdHVyZS0+aWRsVHlwZTsKIAotICAgIHJldHVybiAiSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCkiIGlmICRyZXR1cm5JRExUeXBlIGVxICJ2b2lkIjsKLSAgICByZXR1cm4g
IkpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCAke2V4cHJlc3Npb259KSIgaWYgJHJldHVybklE
TFR5cGUgZXEgImJvb2xlYW4iOwotICAgIHJldHVybiAiJHtleHByZXNzaW9ufSIgaWYgJHJldHVy
bklETFR5cGUgZXEgIm9iamVjdCI7CisgICAgcmV0dXJuICJKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KSIgaWYgJHJldHVybklETFR5cGUtPm5hbWUgZXEgInZvaWQiOworICAgIHJldHVybiAi
SlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsICR7ZXhwcmVzc2lvbn0pIiBpZiAkcmV0dXJuSURM
VHlwZS0+bmFtZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICIke2V4cHJlc3Npb259IiBpZiAk
cmV0dXJuSURMVHlwZS0+bmFtZSBlcSAib2JqZWN0IjsKICAgICByZXR1cm4gIkpTVmFsdWVNYWtl
TnVtYmVyKGNvbnRleHQsICR7ZXhwcmVzc2lvbn0pIiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0t
PklzTm9uUG9pbnRlclR5cGUoJHJldHVybklETFR5cGUpOwogICAgIHJldHVybiAiSlNWYWx1ZU1h
a2VTdHJpbmdPck51bGwoY29udGV4dCwgJHtleHByZXNzaW9ufS5nZXQoKSkiIGlmICQkc2VsZntj
b2RlR2VuZXJhdG9yfS0+SXNTdHJpbmdUeXBlKCRyZXR1cm5JRExUeXBlKTsKICAgICByZXR1cm4g
InRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoJHtleHByZXNzaW9ufSkpIjsKQEAgLTQ4OCw3ICs0
ODYsNyBAQCBzdWIgX3BhcmFtZXRlckV4cHJlc3Npb24KIHsKICAgICBteSAoJHNlbGYsICRwYXJh
bWV0ZXIpID0gQF87CiAKLSAgICBteSAkaWRsVHlwZSA9ICRwYXJhbWV0ZXItPnR5cGU7CisgICAg
bXkgJGlkbFR5cGUgPSAkcGFyYW1ldGVyLT5pZGxUeXBlOwogICAgIG15ICRuYW1lID0gJHBhcmFt
ZXRlci0+bmFtZTsKIAogICAgIHJldHVybiAiJHtuYW1lfS5nZXQoKSIgaWYgJCRzZWxme2NvZGVH
ZW5lcmF0b3J9LT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpOwpAQCAtNTIzLDcgKzUyMSw3IEBAIHN1
YiBfc3RhdGljRnVuY3Rpb25zT3JWYWx1ZXNHZXR0ZXJJbXBsZW0KIHsKICAgICBteSAoJHNlbGYs
ICRpbnRlcmZhY2UsICRmdW5jdGlvbk9yVmFsdWUsICRhcnJheVRlcm1pbmF0b3IsICRtYXBGdW5j
dGlvbiwgJGZ1bmN0aW9uc09yQXR0cmlidXRlcykgPSBAXzsKIAotICAgIG15ICRjbGFzc05hbWUg
PSBfY2xhc3NOYW1lKCRpbnRlcmZhY2UtPm5hbWUpOworICAgIG15ICRjbGFzc05hbWUgPSBfY2xh
c3NOYW1lKCRpbnRlcmZhY2UtPnR5cGUpOwogICAgIG15ICR1cHBlcmNhc2VGdW5jdGlvbk9yVmFs
dWUgPSAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPldLX3VjZmlyc3QoJGZ1bmN0aW9uT3JWYWx1ZSk7
CiAKICAgICBteSAkcmVzdWx0ID0gPDxFT0Y7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0NvZGVHZW5lcmF0b3JUZXN0UnVubmVyLnBtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
Q29kZUdlbmVyYXRvclRlc3RSdW5uZXIucG0JKHJldmlzaW9uIDIwODAxOCkKKysrIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQ29kZUdlbmVyYXRvclRlc3RS
dW5uZXIucG0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDE5IEBAIHVzZSBGaWxlOjpTcGVj
OwogCiBwYWNrYWdlIENvZGVHZW5lcmF0b3JUZXN0UnVubmVyOwogCit1c2UgQ2FycCBxdzxsb25n
bWVzcz47Cit1c2UgRGF0YTo6RHVtcGVyOworCitzdWIgYXNzZXJ0Cit7CisgICAgbXkgJG1lc3Nh
Z2UgPSBzaGlmdDsKKyAgICAKKyAgICBteSAkbWVzcyA9IGxvbmdtZXNzKCk7CisgICAgcHJpbnQg
RHVtcGVyKCRtZXNzKTsKKworICAgIGRpZSAkbWVzc2FnZTsKK30KKwogc3ViIG5ldwogewogICAg
IG15ICgkY2xhc3MsICRjb2RlR2VuZXJhdG9yLCAkd3JpdGVEZXBlbmRlbmNpZXMsICR2ZXJib3Nl
LCAkaWRsRmlsZVBhdGgpID0gQF87CkBAIC01OCw2ICs3MSw4IEBAIHN1YiBfY2xhc3NOYW1lCiB7
CiAgICAgbXkgKCRpZGxUeXBlKSA9IEBfOwogCisgICAgYXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYg
cmVmKCRpZGxUeXBlKSBuZSAiZG9tVHlwZSI7CisKICAgICByZXR1cm4gIkpTIiAuIF9pbXBsZW1l
bnRhdGlvbkNsYXNzTmFtZSgkaWRsVHlwZSk7CiB9CiAKQEAgLTE0Miw3ICsxNTcsNyBAQCBzdWIg
X2dlbmVyYXRlSGVhZGVyRmlsZQogCiAgICAgbXkgQGNvbnRlbnRzID0gKCk7CiAKLSAgICBteSAk
aWRsVHlwZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgbXkgJGlkbFR5cGUgPSAkaW50ZXJmYWNl
LT50eXBlOwogICAgIG15ICRjbGFzc05hbWUgPSBfY2xhc3NOYW1lKCRpZGxUeXBlKTsKICAgICBt
eSAkaW1wbGVtZW50YXRpb25DbGFzc05hbWUgPSBfaW1wbGVtZW50YXRpb25DbGFzc05hbWUoJGlk
bFR5cGUpOwogICAgIG15ICRmaWxlbmFtZSA9ICRjbGFzc05hbWUgLiAiLmgiOwpAQCAtMjA5LDcg
KzIyNCw3IEBAIHN1YiBfZ2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZpbGUKICAgICBteSAlY29udGVu
dHNJbmNsdWRlcyA9ICgpOwogICAgIG15IEBjb250ZW50cyA9ICgpOwogCi0gICAgbXkgJGlkbFR5
cGUgPSAkaW50ZXJmYWNlLT5uYW1lOworICAgIG15ICRpZGxUeXBlID0gJGludGVyZmFjZS0+dHlw
ZTsKICAgICBteSAkY2xhc3NOYW1lID0gX2NsYXNzTmFtZSgkaWRsVHlwZSk7CiAgICAgbXkgJGlt
cGxlbWVudGF0aW9uQ2xhc3NOYW1lID0gX2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCRpZGxUeXBl
KTsKICAgICBteSAkZmlsZW5hbWUgPSAkY2xhc3NOYW1lIC4gIi5jcHAiOwpAQCAtMjQ0LDcgKzI1
OSw3IEBAIEpTQ2xhc3NSZWYgJHtjbGFzc05hbWV9Ojoke2NsYXNzUmVmR2V0dGUKICAgICBzdGF0
aWMgSlNDbGFzc1JlZiBqc0NsYXNzOwogICAgIGlmICghanNDbGFzcykgewogICAgICAgICBKU0Ns
YXNzRGVmaW5pdGlvbiBkZWZpbml0aW9uID0ga0pTQ2xhc3NEZWZpbml0aW9uRW1wdHk7Ci0gICAg
ICAgIGRlZmluaXRpb24uY2xhc3NOYW1lID0gIiR7aWRsVHlwZX0iOworICAgICAgICBkZWZpbml0
aW9uLmNsYXNzTmFtZSA9ICJAe1skaWRsVHlwZS0+bmFtZV19IjsKICAgICAgICAgZGVmaW5pdGlv
bi5wYXJlbnRDbGFzcyA9IEB7WyRzZWxmLT5fcGFyZW50Q2xhc3NSZWZHZXR0ZXJFeHByZXNzaW9u
KCRpbnRlcmZhY2UpXX07CiAgICAgICAgIGRlZmluaXRpb24uc3RhdGljVmFsdWVzID0gc3RhdGlj
VmFsdWVzKCk7CiAgICAgICAgIGRlZmluaXRpb24uc3RhdGljRnVuY3Rpb25zID0gc3RhdGljRnVu
Y3Rpb25zKCk7CkBAIC0yODQsNyArMjk5LDcgQEAgRU9GCiAgICAgICAgICAgICAgICAgbXkgQHBh
cmFtZXRlcnMgPSAoKTsKICAgICAgICAgICAgICAgICBteSBAc3BlY2lmaWVkUGFyYW1ldGVycyA9
IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKIAotICAgICAgICAgICAgICAgICRzZWxmLT5faW5j
bHVkZUhlYWRlcnMoXCVjb250ZW50c0luY2x1ZGVzLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlw
ZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUpOworICAgICAgICAgICAgICAgICRzZWxmLT5faW5jbHVk
ZUhlYWRlcnMoXCVjb250ZW50c0luY2x1ZGVzLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+aWRsVHlw
ZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUpOwogCiAgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUGFzc0NvbnRleHQifSkgewogICAg
ICAgICAgICAgICAgICAgICBwdXNoKEBwYXJhbWV0ZXJzLCAiY29udGV4dCIpOwpAQCAtMzAzLDcg
KzMxOCw3IEBAIEVPRgogICAgICAgICAgICAgICAgICRmdW5jdGlvbkNhbGwgPSAiaW1wbC0+IiAu
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiIC4gam9pbigiLCAiLCBAcGFyYW1ldGVy
cykgLiAiKSI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHB1c2go
QGNvbnRlbnRzLCAiICAgICR7ZnVuY3Rpb25DYWxsfTtcblxuIikgaWYgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPnR5cGUgZXEgInZvaWQiOworICAgICAgICAgICAgcHVzaChAY29udGVudHMsICIgICAg
JHtmdW5jdGlvbkNhbGx9O1xuXG4iKSBpZiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+aWRsVHlwZS0+
bmFtZSBlcSAidm9pZCI7CiAgICAgICAgICAgICBwdXNoKEBjb250ZW50cywgIiAgICByZXR1cm4g
IiAuICRzZWxmLT5fcmV0dXJuRXhwcmVzc2lvbigkZnVuY3Rpb24tPnNpZ25hdHVyZSwgJGZ1bmN0
aW9uQ2FsbCkgLiAiO1xufVxuIik7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMTEsNyArMzI2LDcg
QEAgRU9GCiAgICAgaWYgKG15IEBhdHRyaWJ1dGVzID0gQHskaW50ZXJmYWNlLT5hdHRyaWJ1dGVz
fSkgewogICAgICAgICBwdXNoKEBjb250ZW50cywgIlxuLy8gQXR0cmlidXRlc1xuIik7CiAgICAg
ICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQGF0dHJpYnV0ZXMpIHsKLSAgICAgICAgICAgICRz
ZWxmLT5faW5jbHVkZUhlYWRlcnMoXCVjb250ZW50c0luY2x1ZGVzLCAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPnR5cGUsICRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CisgICAgICAgICAgICAkc2VsZi0+
X2luY2x1ZGVIZWFkZXJzKFwlY29udGVudHNJbmNsdWRlcywgJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5pZGxUeXBlLCAkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogCiAgICAgICAgICAgICBteSAkZ2V0
dGVyTmFtZSA9ICRzZWxmLT5fZ2V0dGVyTmFtZSgkYXR0cmlidXRlKTsKICAgICAgICAgICAgIG15
ICRnZXR0ZXJFeHByZXNzaW9uID0gImltcGwtPiR7Z2V0dGVyTmFtZX0oKSI7CkBAIC0zNjgsMTAg
KzM4Myw3IEBAIHN1YiBfZ2V0dGVyTmFtZQogewogICAgIG15ICgkc2VsZiwgJGF0dHJpYnV0ZSkg
PSBAXzsKIAotICAgIG15ICRzaWduYXR1cmUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmU7Ci0gICAg
bXkgJG5hbWUgPSAkc2lnbmF0dXJlLT5uYW1lOwotCi0gICAgcmV0dXJuICRuYW1lOworICAgIHJl
dHVybiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CiB9CiAKIHN1YiBfaW5jbHVkZUhlYWRl
cnMKQEAgLTM3OSw4ICszOTEsOCBAQCBzdWIgX2luY2x1ZGVIZWFkZXJzCiAgICAgbXkgKCRzZWxm
LCAkaGVhZGVycywgJGlkbFR5cGUsICRzaWduYXR1cmUpID0gQF87CiAKICAgICByZXR1cm4gdW5s
ZXNzIGRlZmluZWQgJGlkbFR5cGU7Ci0gICAgcmV0dXJuIGlmICRpZGxUeXBlIGVxICJib29sZWFu
IjsKLSAgICByZXR1cm4gaWYgJGlkbFR5cGUgZXEgIm9iamVjdCI7CisgICAgcmV0dXJuIGlmICRp
ZGxUeXBlLT5uYW1lIGVxICJib29sZWFuIjsKKyAgICByZXR1cm4gaWYgJGlkbFR5cGUtPm5hbWUg
ZXEgIm9iamVjdCI7CiAgICAgcmV0dXJuIGlmICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNOb25Q
b2ludGVyVHlwZSgkaWRsVHlwZSk7CiAgICAgcmV0dXJuIGlmICQkc2VsZntjb2RlR2VuZXJhdG9y
fS0+SXNTdHJpbmdUeXBlKCRpZGxUeXBlKTsKIApAQCAtMzkyLDcgKzQwNCw3IEBAIHN1YiBfaW1w
bGVtZW50YXRpb25DbGFzc05hbWUKIHsKICAgICBteSAoJGlkbFR5cGUpID0gQF87CiAKLSAgICBy
ZXR1cm4gJGlkbFR5cGU7CisgICAgcmV0dXJuICRpZGxUeXBlLT5uYW1lOwogfQogCiBzdWIgX3Bh
cmVudENsYXNzTmFtZQpAQCAtNDE0LDcgKzQyNiw3IEBAIHN1YiBfcGFyZW50Q2xhc3NSZWZHZXR0
ZXJFeHByZXNzaW9uCiBzdWIgX3BhcmVudEludGVyZmFjZQogewogICAgIG15ICgkaW50ZXJmYWNl
KSA9IEBfOwotICAgIHJldHVybiAkaW50ZXJmYWNlLT5wYXJlbnQ7CisgICAgcmV0dXJuICRpbnRl
cmZhY2UtPnBhcmVudFR5cGU7CiB9CiAKIHN1YiBfcGxhdGZvcm1UeXBlCkBAIC00MjMsOCArNDM1
LDggQEAgc3ViIF9wbGF0Zm9ybVR5cGUKIAogICAgIHJldHVybiB1bmRlZiB1bmxlc3MgZGVmaW5l
ZCAkaWRsVHlwZTsKIAotICAgIHJldHVybiAiYm9vbCIgaWYgJGlkbFR5cGUgZXEgImJvb2xlYW4i
OwotICAgIHJldHVybiAiSlNWYWx1ZVJlZiIgaWYgJGlkbFR5cGUgZXEgIm9iamVjdCI7CisgICAg
cmV0dXJuICJib29sIiBpZiAkaWRsVHlwZS0+bmFtZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJu
ICJKU1ZhbHVlUmVmIiBpZiAkaWRsVHlwZS0+bmFtZSBlcSAib2JqZWN0IjsKICAgICByZXR1cm4g
IkpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiIgaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc1N0
cmluZ1R5cGUoJGlkbFR5cGUpOwogICAgIHJldHVybiAiZG91YmxlIiBpZiAkJHNlbGZ7Y29kZUdl
bmVyYXRvcn0tPklzTm9uUG9pbnRlclR5cGUoJGlkbFR5cGUpOwogICAgIHJldHVybiBfaW1wbGVt
ZW50YXRpb25DbGFzc05hbWUoJGlkbFR5cGUpOwpAQCAtNDM0LDEwICs0NDYsMTAgQEAgc3ViIF9w
bGF0Zm9ybVR5cGVDb25zdHJ1Y3RvcgogewogICAgIG15ICgkc2VsZiwgJHNpZ25hdHVyZSwgJGFy
Z3VtZW50TmFtZSkgPSBAXzsKIAotICAgIG15ICRpZGxUeXBlID0gJHNpZ25hdHVyZS0+dHlwZTsK
KyAgICBteSAkaWRsVHlwZSA9ICRzaWduYXR1cmUtPmlkbFR5cGU7CiAKLSAgICByZXR1cm4gIkpT
VmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgJGFyZ3VtZW50TmFtZSkiIGlmICRpZGxUeXBlIGVxICJi
b29sZWFuIjsKLSAgICByZXR1cm4gIiRhcmd1bWVudE5hbWUiIGlmICRpZGxUeXBlIGVxICJvYmpl
Y3QiOworICAgIHJldHVybiAiSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCAkYXJndW1lbnROYW1l
KSIgaWYgJGlkbFR5cGUtPm5hbWUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiJGFyZ3VtZW50
TmFtZSIgaWYgJGlkbFR5cGUtPm5hbWUgZXEgIm9iamVjdCI7CiAgICAgcmV0dXJuICJKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4oQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgJGFy
Z3VtZW50TmFtZSwgMCkpIiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPklzU3RyaW5nVHlwZSgk
aWRsVHlwZSk7CiAgICAgcmV0dXJuICJKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgJGFyZ3VtZW50
TmFtZSwgMCkiIGlmICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNOb25Qb2ludGVyVHlwZSgkaWRs
VHlwZSk7CiAgICAgcmV0dXJuICJ0byIgLiBfaW1wbGVtZW50YXRpb25DbGFzc05hbWUoJGlkbFR5
cGUpIC4gIihjb250ZXh0LCAkYXJndW1lbnROYW1lKSI7CkBAIC00NDcsNyArNDU5LDcgQEAgc3Vi
IF9wbGF0Zm9ybVR5cGVWYXJpYWJsZURlY2xhcmF0aW9uCiB7CiAgICAgbXkgKCRzZWxmLCAkc2ln
bmF0dXJlLCAkdmFyaWFibGVOYW1lLCAkYXJndW1lbnROYW1lLCAkY29uZGl0aW9uKSA9IEBfOwog
Ci0gICAgbXkgJHBsYXRmb3JtVHlwZSA9ICRzZWxmLT5fcGxhdGZvcm1UeXBlKCRzaWduYXR1cmUt
PnR5cGUsICRzaWduYXR1cmUpOworICAgIG15ICRwbGF0Zm9ybVR5cGUgPSAkc2VsZi0+X3BsYXRm
b3JtVHlwZSgkc2lnbmF0dXJlLT5pZGxUeXBlLCAkc2lnbmF0dXJlKTsKICAgICBteSAkY29uc3Ry
dWN0b3IgPSAkc2VsZi0+X3BsYXRmb3JtVHlwZUNvbnN0cnVjdG9yKCRzaWduYXR1cmUsICRhcmd1
bWVudE5hbWUpOwogCiAgICAgbXkgJW5vblBvaW50ZXJUeXBlcyA9ICgKQEAgLTQ3NSwxMSArNDg3
LDExIEBAIHN1YiBfcmV0dXJuRXhwcmVzc2lvbgogewogICAgIG15ICgkc2VsZiwgJHNpZ25hdHVy
ZSwgJGV4cHJlc3Npb24pID0gQF87CiAKLSAgICBteSAkcmV0dXJuSURMVHlwZSA9ICRzaWduYXR1
cmUtPnR5cGU7CisgICAgbXkgJHJldHVybklETFR5cGUgPSAkc2lnbmF0dXJlLT5pZGxUeXBlOwog
Ci0gICAgcmV0dXJuICJKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KSIgaWYgJHJldHVybklE
TFR5cGUgZXEgInZvaWQiOwotICAgIHJldHVybiAiSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQs
ICR7ZXhwcmVzc2lvbn0pIiBpZiAkcmV0dXJuSURMVHlwZSBlcSAiYm9vbGVhbiI7Ci0gICAgcmV0
dXJuICIke2V4cHJlc3Npb259IiBpZiAkcmV0dXJuSURMVHlwZSBlcSAib2JqZWN0IjsKKyAgICBy
ZXR1cm4gIkpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpIiBpZiAkcmV0dXJuSURMVHlwZS0+
bmFtZSBlcSAidm9pZCI7CisgICAgcmV0dXJuICJKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwg
JHtleHByZXNzaW9ufSkiIGlmICRyZXR1cm5JRExUeXBlLT5uYW1lIGVxICJib29sZWFuIjsKKyAg
ICByZXR1cm4gIiR7ZXhwcmVzc2lvbn0iIGlmICRyZXR1cm5JRExUeXBlLT5uYW1lIGVxICJvYmpl
Y3QiOwogICAgIHJldHVybiAiSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgJHtleHByZXNzaW9u
fSkiIGlmICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNOb25Qb2ludGVyVHlwZSgkcmV0dXJuSURM
VHlwZSk7CiAgICAgcmV0dXJuICJKU1ZhbHVlTWFrZVN0cmluZ09yTnVsbChjb250ZXh0LCAke2V4
cHJlc3Npb259LmdldCgpKSIgaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc1N0cmluZ1R5cGUo
JHJldHVybklETFR5cGUpOwogICAgIHJldHVybiAidG9KUyhjb250ZXh0LCBXVEY6OmdldFB0cigk
e2V4cHJlc3Npb259KSkiOwpAQCAtNDg5LDcgKzUwMSw3IEBAIHN1YiBfcGFyYW1ldGVyRXhwcmVz
c2lvbgogewogICAgIG15ICgkc2VsZiwgJHBhcmFtZXRlcikgPSBAXzsKIAotICAgIG15ICRpZGxU
eXBlID0gJHBhcmFtZXRlci0+dHlwZTsKKyAgICBteSAkaWRsVHlwZSA9ICRwYXJhbWV0ZXItPmlk
bFR5cGU7CiAgICAgbXkgJG5hbWUgPSAkcGFyYW1ldGVyLT5uYW1lOwogCiAgICAgcmV0dXJuICIk
e25hbWV9LmdldCgpIiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPklzU3RyaW5nVHlwZSgkaWRs
VHlwZSk7CkBAIC01MjQsNyArNTM2LDcgQEAgc3ViIF9zdGF0aWNGdW5jdGlvbnNPclZhbHVlc0dl
dHRlckltcGxlbQogewogICAgIG15ICgkc2VsZiwgJGludGVyZmFjZSwgJGZ1bmN0aW9uT3JWYWx1
ZSwgJGFycmF5VGVybWluYXRvciwgJG1hcEZ1bmN0aW9uLCAkZnVuY3Rpb25zT3JBdHRyaWJ1dGVz
KSA9IEBfOwogCi0gICAgbXkgJGNsYXNzTmFtZSA9IF9jbGFzc05hbWUoJGludGVyZmFjZS0+bmFt
ZSk7CisgICAgbXkgJGNsYXNzTmFtZSA9IF9jbGFzc05hbWUoJGludGVyZmFjZS0+dHlwZSk7CiAg
ICAgbXkgJHVwcGVyY2FzZUZ1bmN0aW9uT3JWYWx1ZSA9ICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+
V0tfdWNmaXJzdCgkZnVuY3Rpb25PclZhbHVlKTsKIAogICAgIG15ICRyZXN1bHQgPSA8PEVPRjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>