<?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>164141</bug_id>
          
          <creation_ts>2016-10-28 12:54:45 -0700</creation_ts>
          <short_desc>[WebIDL] Update parser and code generators to only access type information through the type property</short_desc>
          <delta_ts>2016-10-28 13:55:55 -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>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1245711</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-10-28 12:54:45 -0700</bug_when>
    <thetext>[WebIDL] Update parser and code generators to only access type information through the type property</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245719</commentid>
    <comment_count>1</comment_count>
      <attachid>293192</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-10-28 13:16:32 -0700</bug_when>
    <thetext>Created attachment 293192
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245760</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-10-28 13:55:55 -0700</bug_when>
    <thetext>Committed r208066: &lt;http://trac.webkit.org/changeset/208066&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293192</attachid>
            <date>2016-10-28 13:16:32 -0700</date>
            <delta_ts>2016-10-28 13:43:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164141-20161028131241.patch</filename>
            <type>text/plain</type>
            <size>146487</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODA2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE2LTEwLTI4ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gVXBkYXRlIHBhcnNlciBh
bmQgY29kZSBnZW5lcmF0b3JzIHRvIG9ubHkgYWNjZXNzIHR5cGUgaW5mb3JtYXRpb24gdGhyb3Vn
aCB0aGUgdHlwZSBwcm9wZXJ0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY0MTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXBkYXRlIElETFBhcnNlciBzdHJ1Y3RzOgorICAgICAgICAtIGRvbVNpZ25h
dHVyZTogUmVuYW1lIGlkbFR5cGUgdG8gdHlwZS4gU3BlY2lmeSB0aGF0IHR5cGUgaXMgYSBkb21U
eXBlLgorICAgICAgICAtIGRvbUludGVyZmFjZTogUmVtb3ZlIG5hbWUgYW5kIHBhcmVudC4gU3Bl
Y2lmeSB0aGF0IHR5cGUgYW5kIHBhcmVudFR5cGUgYXJlIGEgZG9tVHlwZXMuCisgICAgICAgIC0g
ZG9tRnVuY3Rpb246IFNwZWNpZnkgdGhhdCBzaWduYXR1cmUgaXMgYSBkb21TaWduYXR1cmUuCisg
ICAgICAgIC0gZG9tQXR0cmlidXRlOiBSZW1vdmUgdW51c2VkIHR5cGUuIFNwZWNpZnkgdGhhdCBz
aWduYXR1cmUgaXMgYSBkb21TaWduYXR1cmUuCisgICAgICAgIC0gZG9tSXRlcmFibGU6IFJlbW92
ZSBpZGxLZXlUeXBlIGFuZCB2YWx1ZUtleVR5cGUuIFNwZWNpZnkgdGhhdCBrZXlUeXBlIGFuZCB2
YWx1ZVR5cGUgYXJlIGEgZG9tVHlwZXMKKyAgICAgICAgLSBkb21Db25zdGFudDogU3BlY2lmeSB0
aGF0IHR5cGUgaXMgYSBkb21UeXBlLgorICAgICAgICAtIGRvbUVudW06IFNwZWNpZnkgdGhhdCB0
eXBlIGlzIGEgZG9tVHlwZS4KKyAgICAgICAgLSBkb21EaWN0aW9uYXJ5OiBSZW1vdmUgbmFtZSBh
bmQgcGFyZW50LiBTcGVjaWZ5IHRoYXQgdHlwZSBhbmQgcGFyZW50VHlwZSBhcmUgYSBkb21UeXBl
cy4KKyAgICAgICAgLSBUeXBlZGVmOiBSZW5hbWUgaWRsVHlwZSB0byB0eXBlIGFuZCBzcGVjaWZ5
IHRoYXQgaXQgaXMgYSBkb21UeXBlLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExQ
YXJzZXIucG06CisgICAgICAgIFJlbW92ZSByZWR1bmRhbnQgcHJvcGVydGllcyBhbmQgc3BlY2lm
eSB0eXBlIGluZm8gaW4gc3RydWN0cyB3aGVyZSBwb3NzaWJsZS4KKworICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbToKKyAgICAgICAgKElzU1ZHVHlwZU5lZWRpbmdU
ZWFyT2ZmRm9yVHlwZSk6IFJlbmFtZWQgdG8gcmVtb3ZlIEZvclR5cGUgc3VmZml4LgorICAgICAg
ICAoSXNTVkdUeXBlV2l0aFdyaXRhYmxlUHJvcGVydGllc05lZWRpbmdUZWFyT2ZmRm9yVHlwZSk6
IFJlbmFtZWQgdG8gcmVtb3ZlIEZvclR5cGUgc3VmZml4LgorICAgICAgICAoR2V0U1ZHVHlwZU5l
ZWRpbmdUZWFyT2ZmRm9yVHlwZSk6IFJlbmFtZWQgdG8gcmVtb3ZlIEZvclR5cGUgc3VmZml4Lgor
ICAgICAgICAoR2V0U1ZHV3JhcHBlZFR5cGVOZWVkaW5nVGVhck9mZkZvclR5cGUpOiBSZW5hbWVk
IHRvIHJlbW92ZSBGb3JUeXBlIHN1ZmZpeC4KKworICAgICAgICBVcGRhdGUgdG8gYWx3YXlzIGFj
Y2VzcyB0eXBlIGluZm9ybWF0aW9uIHRocm91Z2ggdHlwZSBhY2Nlc3NvcnMuIFJlbW92ZSB1c2Ug
b2YgcmVtb3ZlZAorICAgICAgICBwcm9wZXJ0aWVzLgorCisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChJc051bGxhYmxlVHlwZSk6IERlbGV0
ZWQuCisgICAgICAgIChTdHJpcE51bGxhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlIHVu
dXNlZCBmdW5jdGlvbnMuCisKKyAgICAgICAgVXBkYXRlIHRvIGFsd2F5cyBhY2Nlc3MgdHlwZSBp
bmZvcm1hdGlvbiB0aHJvdWdoIHR5cGUgYWNjZXNzb3JzLiBSZW1vdmUgdXNlIG9mIHJlbW92ZWQK
KyAgICAgICAgcHJvcGVydGllcy4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvZ2VuZXJh
dGUtYmluZGluZ3MucGw6CisgICAgICAgIFVwZGF0ZSB0byBhbHdheXMgYWNjZXNzIHR5cGUgaW5m
b3JtYXRpb24gdGhyb3VnaCB0eXBlIGFjY2Vzc29ycy4gUmVtb3ZlIHVzZSBvZiByZW1vdmVkCisg
ICAgICAgIHByb3BlcnRpZXMuCisKIDIwMTYtMTAtMjcgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVu
QGFwcGxlLmNvbT4KIAogICAgICAgICBPbmUgZmlsZSBwZXIgY2xhc3MgZm9yIEV4ZWN1dGFibGUu
aC8uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3IucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yLnBtCShyZXZpc2lvbiAyMDgwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29weSkKQEAgLTE4MCwxMyArMTgw
LDEzIEBAIHN1YiBQcm9jZXNzRG9jdW1lbnQKIAogICAgIGZvcmVhY2ggbXkgJGRpY3Rpb25hcnkg
KEB7JHVzZURvY3VtZW50LT5kaWN0aW9uYXJpZXN9KSB7CiAgICAgICAgIGlmICgkZGljdGlvbmFy
eS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQXMifSkgewotICAgICAgICAgICAg
JGRpY3Rpb25hcnlUeXBlSW1wbGVtZW50YXRpb25OYW1lT3ZlcnJpZGVzeyRkaWN0aW9uYXJ5LT5u
YW1lfSA9ICRkaWN0aW9uYXJ5LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRBcyJ9
OworICAgICAgICAgICAgJGRpY3Rpb25hcnlUeXBlSW1wbGVtZW50YXRpb25OYW1lT3ZlcnJpZGVz
eyRkaWN0aW9uYXJ5LT50eXBlLT5uYW1lfSA9ICRkaWN0aW9uYXJ5LT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSW1wbGVtZW50ZWRBcyJ9OwogICAgICAgICB9CiAgICAgfQogCiAgICAgZm9yZWFjaCBt
eSAkZW51bWVyYXRpb24gKEB7JHVzZURvY3VtZW50LT5lbnVtZXJhdGlvbnN9KSB7CiAgICAgICAg
IGlmICgkZW51bWVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEFzIn0p
IHsKLSAgICAgICAgICAgICRlbnVtVHlwZUltcGxlbWVudGF0aW9uTmFtZU92ZXJyaWRlc3skZW51
bWVyYXRpb24tPm5hbWV9ID0gJGVudW1lcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1w
bGVtZW50ZWRBcyJ9OworICAgICAgICAgICAgJGVudW1UeXBlSW1wbGVtZW50YXRpb25OYW1lT3Zl
cnJpZGVzeyRlbnVtZXJhdGlvbi0+dHlwZS0+bmFtZX0gPSAkZW51bWVyYXRpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEFzIn07CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE5
NSw3ICsxOTUsNyBAQCBzdWIgUHJvY2Vzc0RvY3VtZW50CiAgICAgdW5sZXNzIChkZWZpbmVkKCRj
b2RlR2VuZXJhdG9yKSkgewogICAgICAgICBteSAkaW50ZXJmYWNlcyA9ICR1c2VEb2N1bWVudC0+
aW50ZXJmYWNlczsKICAgICAgICAgZm9yZWFjaCBteSAkaW50ZXJmYWNlIChAJGludGVyZmFjZXMp
IHsKLSAgICAgICAgICAgIHByaW50ICJTa2lwcGluZyAkdXNlR2VuZXJhdG9yIGNvZGUgZ2VuZXJh
dGlvbiBmb3IgSURMIGludGVyZmFjZSBcIiIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gIlwiLlxuIiBp
ZiAkdmVyYm9zZTsKKyAgICAgICAgICAgIHByaW50ICJTa2lwcGluZyAkdXNlR2VuZXJhdG9yIGNv
ZGUgZ2VuZXJhdGlvbiBmb3IgSURMIGludGVyZmFjZSBcIiIgLiAkaW50ZXJmYWNlLT50eXBlLT5u
YW1lIC4gIlwiLlxuIiBpZiAkdmVyYm9zZTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtMjA1LDcgKzIwNSw3IEBAIHN1YiBQcm9jZXNzRG9jdW1lbnQKICAgICAgICAgZGll
ICJNdWx0aXBsZSBpbnRlcmZhY2VzIHBlciBkb2N1bWVudCBhcmUgbm90IHN1cHBvcnRlZCIgaWYg
QCRpbnRlcmZhY2VzID4gMTsKIAogICAgICAgICBteSAkaW50ZXJmYWNlID0gQCRpbnRlcmZhY2Vz
WzBdOwotICAgICAgICBwcmludCAiR2VuZXJhdGluZyAkdXNlR2VuZXJhdG9yIGJpbmRpbmdzIGNv
ZGUgZm9yIElETCBpbnRlcmZhY2UgXCIiIC4gJGludGVyZmFjZS0+bmFtZSAuICJcIi4uLlxuIiBp
ZiAkdmVyYm9zZTsKKyAgICAgICAgcHJpbnQgIkdlbmVyYXRpbmcgJHVzZUdlbmVyYXRvciBiaW5k
aW5ncyBjb2RlIGZvciBJREwgaW50ZXJmYWNlIFwiIiAuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUg
LiAiXCIuLi5cbiIgaWYgJHZlcmJvc2U7CiAgICAgICAgICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0
ZUludGVyZmFjZSgkaW50ZXJmYWNlLCAkZGVmaW5lcywgJHVzZURvY3VtZW50LT5lbnVtZXJhdGlv
bnMsICR1c2VEb2N1bWVudC0+ZGljdGlvbmFyaWVzKTsKICAgICAgICAgJGNvZGVHZW5lcmF0b3It
PldyaXRlRGF0YSgkaW50ZXJmYWNlLCAkdXNlT3V0cHV0RGlyLCAkdXNlT3V0cHV0SGVhZGVyc0Rp
cik7CiAgICAgICAgIHJldHVybjsKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdWIgUHJvY2Vzc0RvY3Vt
ZW50CiAgICAgICAgIGRpZSAiTXVsdGlwbGUgc3RhbmRhbG9uZSBkaWN0aW9uYXJpZXMgcGVyIGRv
Y3VtZW50IGFyZSBub3Qgc3VwcG9ydGVkIiBpZiBAJGRpY3Rpb25hcmllcyA+IDE7CiAKICAgICAg
ICAgbXkgJGRpY3Rpb25hcnkgPSBAJGRpY3Rpb25hcmllc1swXTsKLSAgICAgICAgcHJpbnQgIkdl
bmVyYXRpbmcgJHVzZUdlbmVyYXRvciBiaW5kaW5ncyBjb2RlIGZvciBJREwgZGljdGlvbmFyeSBc
IiIgLiAkZGljdGlvbmFyeS0+bmFtZSAuICJcIi4uLlxuIiBpZiAkdmVyYm9zZTsKKyAgICAgICAg
cHJpbnQgIkdlbmVyYXRpbmcgJHVzZUdlbmVyYXRvciBiaW5kaW5ncyBjb2RlIGZvciBJREwgZGlj
dGlvbmFyeSBcIiIgLiAkZGljdGlvbmFyeS0+dHlwZS0+bmFtZSAuICJcIi4uLlxuIiBpZiAkdmVy
Ym9zZTsKICAgICAgICAgJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlRGljdGlvbmFyeSgkZGljdGlv
bmFyeSwgJHVzZURvY3VtZW50LT5lbnVtZXJhdGlvbnMpOwogICAgICAgICAkY29kZUdlbmVyYXRv
ci0+V3JpdGVEYXRhKCRkaWN0aW9uYXJ5LCAkdXNlT3V0cHV0RGlyLCAkdXNlT3V0cHV0SGVhZGVy
c0Rpcik7CiAgICAgICAgIHJldHVybjsKQEAgLTIyNyw3ICsyMjcsNyBAQCBzdWIgUHJvY2Vzc0Rv
Y3VtZW50CiAgICAgICAgIGRpZSAiTXVsdGlwbGUgc3RhbmRhbG9uZSBlbnVtZXJhdGlvbnMgcGVy
IGRvY3VtZW50IGFyZSBub3Qgc3VwcG9ydGVkIiBpZiBAJGVudW1lcmF0aW9ucyA+IDE7CiAKICAg
ICAgICAgbXkgJGVudW1lcmF0aW9uID0gQCRlbnVtZXJhdGlvbnNbMF07Ci0gICAgICAgIHByaW50
ICJHZW5lcmF0aW5nICR1c2VHZW5lcmF0b3IgYmluZGluZ3MgY29kZSBmb3IgSURMIGVudW1lcmF0
aW9uIFwiIiAuICRlbnVtZXJhdGlvbi0+bmFtZSAuICJcIi4uLlxuIiBpZiAkdmVyYm9zZTsKKyAg
ICAgICAgcHJpbnQgIkdlbmVyYXRpbmcgJHVzZUdlbmVyYXRvciBiaW5kaW5ncyBjb2RlIGZvciBJ
REwgZW51bWVyYXRpb24gXCIiIC4gJGVudW1lcmF0aW9uLT50eXBlLT5uYW1lIC4gIlwiLi4uXG4i
IGlmICR2ZXJib3NlOwogICAgICAgICAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVFbnVtZXJhdGlv
bigkZW51bWVyYXRpb24pOwogICAgICAgICAkY29kZUdlbmVyYXRvci0+V3JpdGVEYXRhKCRlbnVt
ZXJhdGlvbiwgJHVzZU91dHB1dERpciwgJHVzZU91dHB1dEhlYWRlcnNEaXIpOwogICAgICAgICBy
ZXR1cm47CkBAIC0zNTIsNyArMzUyLDcgQEAgc3ViIFBhcnNlSW50ZXJmYWNlCiAKICAgICAjIFN0
ZXAgIzE6IEZpbmQgdGhlIElETCBmaWxlIGFzc29jaWF0ZWQgd2l0aCAnaW50ZXJmYWNlJwogICAg
IG15ICRmaWxlbmFtZSA9ICRvYmplY3QtPklETEZpbGVGb3JJbnRlcmZhY2UoJGludGVyZmFjZU5h
bWUpCi0gICAgICAgIG9yIGFzc2VydCgiQ291bGQgTk9UIGZpbmQgSURMIGZpbGUgZm9yIGludGVy
ZmFjZSBcIiRpbnRlcmZhY2VOYW1lXCIsIHJlYWNoYWJsZSBmcm9tIFwiIiAuICRvdXRlckludGVy
ZmFjZS0+bmFtZSAuICJcIiFcbiIpOworICAgICAgICBvciBhc3NlcnQoIkNvdWxkIE5PVCBmaW5k
IElETCBmaWxlIGZvciBpbnRlcmZhY2UgXCIkaW50ZXJmYWNlTmFtZVwiLCByZWFjaGFibGUgZnJv
bSBcIiIgLiAkb3V0ZXJJbnRlcmZhY2UtPnR5cGUtPm5hbWUgLiAiXCIhXG4iKTsKIAogICAgIHBy
aW50ICIgIHwgIHw+ICBQYXJzaW5nIHBhcmVudCBJREwgXCIkZmlsZW5hbWVcIiBmb3IgaW50ZXJm
YWNlIFwiJGludGVyZmFjZU5hbWVcIlxuIiBpZiAkdmVyYm9zZTsKIApAQCAtMzYxLDcgKzM2MSw3
IEBAIHN1YiBQYXJzZUludGVyZmFjZQogICAgIG15ICRkb2N1bWVudCA9ICRwYXJzZXItPlBhcnNl
KCRmaWxlbmFtZSwgJGRlZmluZXMsICRwcmVwcm9jZXNzb3IpOwogCiAgICAgZm9yZWFjaCBteSAk
aW50ZXJmYWNlIChAeyRkb2N1bWVudC0+aW50ZXJmYWNlc30pIHsKLSAgICAgICAgaWYgKCRpbnRl
cmZhY2UtPm5hbWUgZXEgJGludGVyZmFjZU5hbWUpIHsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2Ut
PnR5cGUtPm5hbWUgZXEgJGludGVyZmFjZU5hbWUpIHsKICAgICAgICAgICAgICRjYWNoZWRJbnRl
cmZhY2VzLT57JGludGVyZmFjZU5hbWV9ID0gJGludGVyZmFjZTsKICAgICAgICAgICAgIHJldHVy
biAkaW50ZXJmYWNlOwogICAgICAgICB9CkBAIC00NzYsNyArNDc2LDcgQEAgc3ViIEdldEVudW1C
eVR5cGUKICAgICBkaWUgIkdldEVudW1CeU5hbWUoKSB3YXMgY2FsbGVkIHdpdGggYW4gdW5kZWZp
bmVkIGVudW1lcmF0aW9uIG5hbWUiIHVubGVzcyBkZWZpbmVkKCRuYW1lKTsKIAogICAgIGZvciBt
eSAkZW51bWVyYXRpb24gKEB7JHVzZURvY3VtZW50LT5lbnVtZXJhdGlvbnN9KSB7Ci0gICAgICAg
IHJldHVybiAkZW51bWVyYXRpb24gaWYgJGVudW1lcmF0aW9uLT5uYW1lIGVxICRuYW1lOworICAg
ICAgICByZXR1cm4gJGVudW1lcmF0aW9uIGlmICRlbnVtZXJhdGlvbi0+dHlwZS0+bmFtZSBlcSAk
bmFtZTsKICAgICB9CiAKICAgICByZXR1cm4gJGNhY2hlZEV4dGVybmFsRW51bWVyYXRpb25zLT57
JG5hbWV9IGlmIGV4aXN0cygkY2FjaGVkRXh0ZXJuYWxFbnVtZXJhdGlvbnMtPnskbmFtZX0pOwpA
QCAtNDkzLDExICs0OTMsMTEgQEAgc3ViIEdldEVudW1CeVR5cGUKICAgICAgICAgbXkgJGRvY3Vt
ZW50ID0gJHBhcnNlci0+UGFyc2UoJGZpbGVuYW1lLCAkZGVmaW5lcywgJHByZXByb2Nlc3Nvcik7
CiAKICAgICAgICAgZm9yZWFjaCBteSAkZW51bWVyYXRpb24gKEB7JGRvY3VtZW50LT5lbnVtZXJh
dGlvbnN9KSB7Ci0gICAgICAgICAgICBuZXh0IHVubGVzcyAkZW51bWVyYXRpb24tPm5hbWUgZXEg
JG5hbWU7CisgICAgICAgICAgICBuZXh0IHVubGVzcyAkZW51bWVyYXRpb24tPnR5cGUtPm5hbWUg
ZXEgJG5hbWU7CiAKICAgICAgICAgICAgICRjYWNoZWRFeHRlcm5hbEVudW1lcmF0aW9ucy0+eyRu
YW1lfSA9ICRlbnVtZXJhdGlvbjsKICAgICAgICAgICAgIG15ICRpbXBsZW1lbnRlZEFzID0gJGVu
dW1lcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEFzfTsKLSAgICAgICAg
ICAgICRlbnVtVHlwZUltcGxlbWVudGF0aW9uTmFtZU92ZXJyaWRlc3skZW51bWVyYXRpb24tPm5h
bWV9ID0gJGltcGxlbWVudGVkQXMgaWYgJGltcGxlbWVudGVkQXM7CisgICAgICAgICAgICAkZW51
bVR5cGVJbXBsZW1lbnRhdGlvbk5hbWVPdmVycmlkZXN7JGVudW1lcmF0aW9uLT50eXBlLT5uYW1l
fSA9ICRpbXBsZW1lbnRlZEFzIGlmICRpbXBsZW1lbnRlZEFzOwogICAgICAgICAgICAgcmV0dXJu
ICRlbnVtZXJhdGlvbjsKICAgICAgICAgfQogICAgIH0KQEAgLTU0NCw3ICs1NDQsNyBAQCBzdWIg
R2V0RGljdGlvbmFyeUJ5VHlwZQogICAgIGRpZSAiR2V0RGljdGlvbmFyeUJ5VHlwZSgpIHdhcyBj
YWxsZWQgd2l0aCBhbiB1bmRlZmluZWQgZGljdGlvbmFyeSBuYW1lIiB1bmxlc3MgZGVmaW5lZCgk
bmFtZSk7CiAKICAgICBmb3IgbXkgJGRpY3Rpb25hcnkgKEB7JHVzZURvY3VtZW50LT5kaWN0aW9u
YXJpZXN9KSB7Ci0gICAgICAgIHJldHVybiAkZGljdGlvbmFyeSBpZiAkZGljdGlvbmFyeS0+bmFt
ZSBlcSAkbmFtZTsKKyAgICAgICAgcmV0dXJuICRkaWN0aW9uYXJ5IGlmICRkaWN0aW9uYXJ5LT50
eXBlLT5uYW1lIGVxICRuYW1lOwogICAgIH0KIAogICAgIHJldHVybiAkY2FjaGVkRXh0ZXJuYWxE
aWN0aW9uYXJpZXMtPnskbmFtZX0gaWYgZXhpc3RzKCRjYWNoZWRFeHRlcm5hbERpY3Rpb25hcmll
cy0+eyRuYW1lfSk7CkBAIC01NjEsMTEgKzU2MSwxMSBAQCBzdWIgR2V0RGljdGlvbmFyeUJ5VHlw
ZQogICAgICAgICBteSAkZG9jdW1lbnQgPSAkcGFyc2VyLT5QYXJzZSgkZmlsZW5hbWUsICRkZWZp
bmVzLCAkcHJlcHJvY2Vzc29yKTsKIAogICAgICAgICBmb3JlYWNoIG15ICRkaWN0aW9uYXJ5IChA
eyRkb2N1bWVudC0+ZGljdGlvbmFyaWVzfSkgewotICAgICAgICAgICAgbmV4dCB1bmxlc3MgJGRp
Y3Rpb25hcnktPm5hbWUgZXEgJG5hbWU7CisgICAgICAgICAgICBuZXh0IHVubGVzcyAkZGljdGlv
bmFyeS0+dHlwZS0+bmFtZSBlcSAkbmFtZTsKIAogICAgICAgICAgICAgJGNhY2hlZEV4dGVybmFs
RGljdGlvbmFyaWVzLT57JG5hbWV9ID0gJGRpY3Rpb25hcnk7CiAgICAgICAgICAgICBteSAkaW1w
bGVtZW50ZWRBcyA9ICRkaWN0aW9uYXJ5LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRl
ZEFzfTsKLSAgICAgICAgICAgICRkaWN0aW9uYXJ5VHlwZUltcGxlbWVudGF0aW9uTmFtZU92ZXJy
aWRlc3skZGljdGlvbmFyeS0+bmFtZX0gPSAkaW1wbGVtZW50ZWRBcyBpZiAkaW1wbGVtZW50ZWRB
czsKKyAgICAgICAgICAgICRkaWN0aW9uYXJ5VHlwZUltcGxlbWVudGF0aW9uTmFtZU92ZXJyaWRl
c3skZGljdGlvbmFyeS0+dHlwZS0+bmFtZX0gPSAkaW1wbGVtZW50ZWRBcyBpZiAkaW1wbGVtZW50
ZWRBczsKICAgICAgICAgICAgIHJldHVybiAkZGljdGlvbmFyeTsKICAgICAgICAgfQogICAgIH0K
QEAgLTYyMSw3ICs2MjEsNyBAQCBzdWIgSXNOb25Qb2ludGVyVHlwZQogICAgIHJldHVybiAwOwog
fQogCi1zdWIgSXNTVkdUeXBlTmVlZGluZ1RlYXJPZmZGb3JUeXBlCitzdWIgSXNTVkdUeXBlTmVl
ZGluZ1RlYXJPZmYKIHsKICAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87CiAKQEAgLTYzMSw3
ICs2MzEsNyBAQCBzdWIgSXNTVkdUeXBlTmVlZGluZ1RlYXJPZmZGb3JUeXBlCiAgICAgcmV0dXJu
IDA7CiB9CiAKLXN1YiBJc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJP
ZmZGb3JUeXBlCitzdWIgSXNTVkdUeXBlV2l0aFdyaXRhYmxlUHJvcGVydGllc05lZWRpbmdUZWFy
T2ZmCiB7CiAgICAgbXkgKCRvYmplY3QsICR0eXBlKSA9IEBfOwogCkBAIC02NjcsNyArNjY3LDcg
QEAgc3ViIElzUmVmUHRyVHlwZQogICAgIHJldHVybiAxOwogfQogCi1zdWIgR2V0U1ZHVHlwZU5l
ZWRpbmdUZWFyT2ZmRm9yVHlwZQorc3ViIEdldFNWR1R5cGVOZWVkaW5nVGVhck9mZgogewogICAg
IG15ICgkb2JqZWN0LCAkdHlwZSkgPSBAXzsKIApAQCAtNjc3LDEzICs2NzcsMTMgQEAgc3ViIEdl
dFNWR1R5cGVOZWVkaW5nVGVhck9mZkZvclR5cGUKICAgICByZXR1cm4gdW5kZWY7CiB9CiAKLXN1
YiBHZXRTVkdXcmFwcGVkVHlwZU5lZWRpbmdUZWFyT2ZmRm9yVHlwZQorc3ViIEdldFNWR1dyYXBw
ZWRUeXBlTmVlZGluZ1RlYXJPZmYKIHsKICAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87CiAK
ICAgICBhc3NlcnQoIk5vdCBhIHR5cGUiKSBpZiByZWYoJHR5cGUpIG5lICJkb21UeXBlIjsKIAot
ICAgIG15ICRzdmdUeXBlTmVlZGluZ1RlYXJPZmYgPSAkb2JqZWN0LT5HZXRTVkdUeXBlTmVlZGlu
Z1RlYXJPZmZGb3JUeXBlKCR0eXBlKTsKKyAgICBteSAkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmID0g
JG9iamVjdC0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKTsKICAgICByZXR1cm4gJHN2
Z1R5cGVOZWVkaW5nVGVhck9mZiBpZiBub3QgJHN2Z1R5cGVOZWVkaW5nVGVhck9mZjsKIAogICAg
IGlmICgkc3ZnVHlwZU5lZWRpbmdUZWFyT2ZmID1+IC9TVkdQcm9wZXJ0eVRlYXJPZmYvKSB7CkBA
IC03NDksNyArNzQ5LDYgQEAgc3ViIElzRnJvemVuQXJyYXlUeXBlCiAKICAgICBhc3NlcnQoIk5v
dCBhIHR5cGUiKSBpZiByZWYoJHR5cGUpIG5lICJkb21UeXBlIjsKIAotICAgICMgRklYTUU6IFVw
ZGF0ZSBwYXJzZXIgdG8gbWFrZSB0aGlzIGp1c3QgJ0Zyb3plbkFycmF5JwogICAgIHJldHVybiAk
dHlwZS0+bmFtZSBlcSAiRnJvemVuQXJyYXkiOwogfQogCkBAIC04NzcsNyArODc2LDcgQEAgc3Vi
IEF0dHJpYnV0ZU5hbWVGb3JHZXR0ZXJBbmRTZXR0ZXIKICAgICBpZiAoJGF0dHJpYnV0ZS0+c2ln
bmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRBcyJ9KSB7CiAgICAgICAg
ICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSW1wbGVtZW50ZWRBcyJ9OwogICAgIH0KLSAgICBteSAkYXR0cmlidXRlVHlwZSA9ICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+aWRsVHlwZTsKKyAgICBteSAkYXR0cmlidXRlVHlwZSA9ICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKIAogICAgICMgU1ZHIGFuaW1hdGVkIHR5cGVzIG5l
ZWQgdG8gdXNlIGEgc3BlY2lhbCBhdHRyaWJ1dGUgbmFtZS4KICAgICAjIFRoZSByZXN0IG9mIHRo
ZSBzcGVjaWFsIGNhc2luZyBmb3IgU1ZHIGFuaW1hdGVkIHR5cGVzIGlzIGhhbmRsZWQgaW4gdGhl
IGxhbmd1YWdlLXNwZWNpZmljIGNvZGUgZ2VuZXJhdG9ycy4KQEAgLTkxMSw3ICs5MTAsNyBAQCBz
dWIgR2V0dGVyRXhwcmVzc2lvbgogICAgICAgICByZXR1cm4gKCRnZW5lcmF0b3ItPldLX2xjZmly
c3QoJGdlbmVyYXRvci0+QXR0cmlidXRlTmFtZUZvckdldHRlckFuZFNldHRlcigkYXR0cmlidXRl
KSkpOwogICAgIH0KIAotICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT5pZGxUeXBlOworICAgIG15ICRhdHRyaWJ1dGVUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT50eXBlOwogCiAgICAgbXkgJGZ1bmN0aW9uTmFtZTsKICAgICBpZiAoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVVJMIn0pIHsKQEAgLTk0OSw3ICs5NDgs
NyBAQCBzdWIgU2V0dGVyRXhwcmVzc2lvbgogICAgICAgICByZXR1cm4gKCJzZXQiIC4gJGdlbmVy
YXRvci0+V0tfdWNmaXJzdCgkZ2VuZXJhdG9yLT5BdHRyaWJ1dGVOYW1lRm9yR2V0dGVyQW5kU2V0
dGVyKCRhdHRyaWJ1dGUpKSk7CiAgICAgfQogCi0gICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmlkbFR5cGU7CisgICAgbXkgJGF0dHJpYnV0ZVR5cGUgPSAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CiAKICAgICBteSAkZnVuY3Rpb25OYW1lOwogICAgIGlm
ICgkYXR0cmlidXRlVHlwZS0+bmFtZSBlcSAiYm9vbGVhbiIpIHsKQEAgLTExNTAsNyArMTE0OSw3
IEBAIHN1YiBHZW5lcmF0ZUNvbXBpbGVUaW1lQ2hlY2tGb3JFbnVtc0lmTmUKIAogICAgIG15IEBj
aGVja3MgPSAoKTsKICAgICBmb3JlYWNoIG15ICRjb25zdGFudCAoQHskaW50ZXJmYWNlLT5jb25z
dGFudHN9KSB7Ci0gICAgICAgIG15ICRjbGFzc05hbWUgPSAkY29uc3RhbnQtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In0gfHwgJGludGVyZmFjZS0+bmFtZTsKKyAgICAgICAg
bXkgJGNsYXNzTmFtZSA9ICRjb25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVu
dGVkQnkifSB8fCAkaW50ZXJmYWNlLT50eXBlLT5uYW1lOwogICAgICAgICBteSAkbmFtZSA9ICRj
b25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSB8fCAkY29uc3RhbnQtPm5h
bWU7CiAgICAgICAgIG15ICR2YWx1ZSA9ICRjb25zdGFudC0+dmFsdWU7CiAgICAgICAgIG15ICRj
b25kaXRpb25hbCA9ICRjb25zdGFudC0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFs
In07CkBAIC0xMTgwLDE5ICsxMTc5LDE5IEBAIHN1YiBHZXRWaXNpYmxlSW50ZXJmYWNlTmFtZQog
ICAgIG15ICgkb2JqZWN0LCAkaW50ZXJmYWNlKSA9IEBfOwogCiAgICAgbXkgJGludGVyZmFjZU5h
bWUgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW50ZXJmYWNlTmFtZSJ9Owot
ICAgIHJldHVybiAkaW50ZXJmYWNlTmFtZSA/ICRpbnRlcmZhY2VOYW1lIDogJGludGVyZmFjZS0+
bmFtZTsKKyAgICByZXR1cm4gJGludGVyZmFjZU5hbWUgPyAkaW50ZXJmYWNlTmFtZSA6ICRpbnRl
cmZhY2UtPnR5cGUtPm5hbWU7CiB9CiAKIHN1YiBJbmhlcml0c0ludGVyZmFjZQogewogICAgIG15
ICgkb2JqZWN0LCAkaW50ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSkgPSBAXzsKIAotICAgIHJldHVy
biAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICRpbnRlcmZhY2UtPm5hbWU7CisgICAgcmV0dXJuIDEg
aWYgJGludGVyZmFjZU5hbWUgZXEgJGludGVyZmFjZS0+dHlwZS0+bmFtZTsKIAogICAgIG15ICRm
b3VuZCA9IDA7CiAgICAgJG9iamVjdC0+Rm9yQWxsUGFyZW50cygkaW50ZXJmYWNlLCBzdWIgewog
ICAgICAgICBteSAkY3VycmVudEludGVyZmFjZSA9IHNoaWZ0OwotICAgICAgICBpZiAoJGN1cnJl
bnRJbnRlcmZhY2UtPm5hbWUgZXEgJGludGVyZmFjZU5hbWUpIHsKKyAgICAgICAgaWYgKCRjdXJy
ZW50SW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICRpbnRlcmZhY2VOYW1lKSB7CiAgICAgICAgICAg
ICAkZm91bmQgPSAxOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAxIGlmICRmb3VuZDsKQEAg
LTEyMjQsOSArMTIyMyw5IEBAIHN1YiBTaG91bGRQYXNzV3JhcHBlckJ5UmVmZXJlbmNlCiAgICAg
bXkgKCRvYmplY3QsICRwYXJhbWV0ZXIsICRpbnRlcmZhY2UpID0gQF87CiAKICAgICByZXR1cm4g
MCBpZiAkcGFyYW1ldGVyLT5pc1ZhcmlhZGljOwotICAgIHJldHVybiAwIGlmICRwYXJhbWV0ZXIt
PmlzTnVsbGFibGU7Ci0gICAgcmV0dXJuIDAgaWYgISRvYmplY3QtPklzV3JhcHBlclR5cGUoJHBh
cmFtZXRlci0+aWRsVHlwZSkgJiYgISRvYmplY3QtPklzVHlwZWRBcnJheVR5cGUoJHBhcmFtZXRl
ci0+aWRsVHlwZSk7Ci0gICAgcmV0dXJuIDAgaWYgJG9iamVjdC0+SXNTVkdUeXBlTmVlZGluZ1Rl
YXJPZmZGb3JUeXBlKCRwYXJhbWV0ZXItPmlkbFR5cGUpOworICAgIHJldHVybiAwIGlmICRwYXJh
bWV0ZXItPnR5cGUtPmlzTnVsbGFibGU7CisgICAgcmV0dXJuIDAgaWYgISRvYmplY3QtPklzV3Jh
cHBlclR5cGUoJHBhcmFtZXRlci0+dHlwZSkgJiYgISRvYmplY3QtPklzVHlwZWRBcnJheVR5cGUo
JHBhcmFtZXRlci0+dHlwZSk7CisgICAgcmV0dXJuIDAgaWYgJG9iamVjdC0+SXNTVkdUeXBlTmVl
ZGluZ1RlYXJPZmYoJHBhcmFtZXRlci0+dHlwZSk7CiAKICAgICByZXR1cm4gMTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCShyZXZpc2lvbiAyMDgwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMTc5LDEzICsxNzksMTMgQEAg
c3ViIEFkZFN0cmluZ2lmaWVyT3BlcmF0aW9uSWZOZWVkZWQKICAgICAgICAgJGV4dGVuZGVkQXR0
cmlidXRlTGlzdC0+e0ltcGxlbWVudGVkQXN9ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1l
OwogICAgICAgICAkc3RyaW5naWZpZXItPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzKCRl
eHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAgICAgICAkc3RyaW5naWZpZXItPnNpZ25hdHVyZS0+
bmFtZSgidG9TdHJpbmciKTsKLSAgICAgICAgZGllICJzdHJpbmdpZmllciBjYW4gb25seSBiZSB1
c2VkIG9uIGF0dHJpYnV0ZXMgb2YgU3RyaW5nIHR5cGVzIiB1bmxlc3MgJGNvZGVHZW5lcmF0b3It
PklzU3RyaW5nVHlwZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmlkbFR5cGUpOworICAgICAgICBk
aWUgInN0cmluZ2lmaWVyIGNhbiBvbmx5IGJlIHVzZWQgb24gYXR0cmlidXRlcyBvZiBTdHJpbmcg
dHlwZXMiIHVubGVzcyAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+dHlwZSk7CiAgICAgICAgIAogICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCB1
c2UgSURMUGFyc2VyJ3MgY2xvbmVUeXBlLgogICAgICAgICBteSAkdHlwZSA9IGRvbVR5cGUtPm5l
dygpOwotICAgICAgICAkdHlwZS0+bmFtZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmlkbFR5cGUt
Pm5hbWUpOworICAgICAgICAkdHlwZS0+bmFtZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUt
Pm5hbWUpOwogCi0gICAgICAgICRzdHJpbmdpZmllci0+c2lnbmF0dXJlLT5pZGxUeXBlKCR0eXBl
KTsKKyAgICAgICAgJHN0cmluZ2lmaWVyLT5zaWduYXR1cmUtPnR5cGUoJHR5cGUpOwogCiAgICAg
ICAgIHB1c2goQHskaW50ZXJmYWNlLT5mdW5jdGlvbnN9LCAkc3RyaW5naWZpZXIpOwogICAgICAg
ICBsYXN0OwpAQCAtMjA5LDggKzIwOSw4IEBAIHN1YiBHZXRQYXJlbnRDbGFzc05hbWUKIAogICAg
IHJldHVybiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntKU0xlZ2FjeVBhcmVudH0g
aWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SlNMZWdhY3lQYXJlbnR9OwogICAg
IHJldHVybiAiSlNET01PYmplY3QiIHVubGVzcyBOZWVkc0ltcGxlbWVudGF0aW9uQ2xhc3MoJGlu
dGVyZmFjZSk7Ci0gICAgcmV0dXJuICJKU0RPTVdyYXBwZXI8IiAuIEdldEltcGxDbGFzc05hbWUo
JGludGVyZmFjZSkgLiAiPiIgdW5sZXNzICRpbnRlcmZhY2UtPnBhcmVudDsKLSAgICByZXR1cm4g
IkpTIiAuICRpbnRlcmZhY2UtPnBhcmVudDsKKyAgICByZXR1cm4gIkpTRE9NV3JhcHBlcjwiIC4g
R2V0SW1wbENsYXNzTmFtZSgkaW50ZXJmYWNlKSAuICI+IiB1bmxlc3MgJGludGVyZmFjZS0+cGFy
ZW50VHlwZTsKKyAgICByZXR1cm4gIkpTIiAuICRpbnRlcmZhY2UtPnBhcmVudFR5cGUtPm5hbWU7
CiB9CiAKIHN1YiBHZXRDYWxsYmFja0NsYXNzTmFtZQpAQCAtMjYwLDI4ICsyNjAsMzIgQEAgc3Vi
IEFkZEluY2x1ZGVzRm9ySW1wbGVtZW50YXRpb25UeXBlCiAKIHN1YiBBZGRUb0ltcGxJbmNsdWRl
c0ZvcklETFR5cGUKIHsKLSAgICBteSAoJGlkbFR5cGUsICRjb25kaXRpb25hbCkgPSBAXzsKLQot
ICAgIHJldHVybiBpZiAkY29kZUdlbmVyYXRvci0+U2tpcEluY2x1ZGVIZWFkZXIoJGlkbFR5cGUt
Pm5hbWUpOworICAgIG15ICgkdHlwZSwgJGNvbmRpdGlvbmFsKSA9IEBfOworICAgIAorICAgIHJl
dHVybiBpZiAkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKTsKKyAgICByZXR1
cm4gaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkdHlwZSk7CisgICAgcmV0dXJuIGlm
ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4gaWYg
JHR5cGUtPm5hbWUgZXEgIkJ1ZmZlclNvdXJjZSI7CisgICAgcmV0dXJuIGlmICR0eXBlLT5uYW1l
IGVxICJhbnkiOwogCi0gICAgaWYgKCRpZGxUeXBlLT5pc1VuaW9uKSB7CisgICAgaWYgKCR0eXBl
LT5pc1VuaW9uKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8d3RmL1ZhcmlhbnQuaD4i
LCAkY29uZGl0aW9uYWwpOwogCi0gICAgICAgIGZvcmVhY2ggbXkgJG1lbWJlclR5cGUgKEB7JGlk
bFR5cGUtPnN1YnR5cGVzfSkgeworICAgICAgICBmb3JlYWNoIG15ICRtZW1iZXJUeXBlIChAeyR0
eXBlLT5zdWJ0eXBlc30pIHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlw
ZSgkbWVtYmVyVHlwZSwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU2VxdWVuY2VPckZyb3plbkFy
cmF5VHlwZSgkaWRsVHlwZSkpIHsKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU2VxdWVuY2VP
ckZyb3plbkFycmF5VHlwZSgkdHlwZSkpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIjxy
dW50aW1lL0pTQXJyYXkuaD4iLCAkY29uZGl0aW9uYWwpOwotICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlc0ZvcklETFR5cGUoQHskaWRsVHlwZS0+c3VidHlwZXN9WzBdLCAkY29uZGl0aW9uYWwpOwor
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlc0ZvcklETFR5cGUoQHskdHlwZS0+c3VidHlwZXN9WzBd
LCAkY29uZGl0aW9uYWwpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCRpZGxUeXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNF
eHRlcm5hbERpY3Rpb25hcnlUeXBlKCRpZGxUeXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNFeHRl
cm5hbEVudW1UeXBlKCRpZGxUeXBlKSkgewotICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMi
IC4gJGlkbFR5cGUtPm5hbWUgLiAiLmgiLCAkY29uZGl0aW9uYWwpOworICAgIGlmICgkY29kZUdl
bmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzRXh0ZXJu
YWxEaWN0aW9uYXJ5VHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzRXh0ZXJuYWxFbnVt
VHlwZSgkdHlwZSkpIHsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTIiAuICR0eXBlLT5u
YW1lIC4gIi5oIiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KQEAg
LTMzNCw3ICszMzgsNyBAQCBzdWIgR2V0Q3VzdG9tSXNSZWFjaGFibGUKIHN1YiBJc0RPTUdsb2Jh
bE9iamVjdAogewogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKLSAgICByZXR1cm4gJGludGVy
ZmFjZS0+bmFtZSBlcSAiRE9NV2luZG93IiB8fCAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRl
cmZhY2UoJGludGVyZmFjZSwgIldvcmtlckdsb2JhbFNjb3BlIikgfHwgJGludGVyZmFjZS0+bmFt
ZSBlcSAiVGVzdEdsb2JhbE9iamVjdCI7CisgICAgcmV0dXJuICRpbnRlcmZhY2UtPnR5cGUtPm5h
bWUgZXEgIkRPTVdpbmRvdyIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzSW50ZXJmYWNlKCRp
bnRlcmZhY2UsICJXb3JrZXJHbG9iYWxTY29wZSIpIHx8ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUg
ZXEgIlRlc3RHbG9iYWxPYmplY3QiOwogfQogCiBzdWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJv
dG90eXBlCkBAIC0zNDIsNyArMzQ2LDcgQEAgc3ViIFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3Rv
dHlwZQogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKIAogICAgICMgRm9yIHdvcmtlcnMsIHRo
ZSBnbG9iYWwgb2JqZWN0IGlzIGEgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuCi0gICAgcmV0
dXJuIDAgaWYgJGludGVyZmFjZS0+bmFtZSBlcSAiV29ya2VyR2xvYmFsU2NvcGUiOworICAgIHJl
dHVybiAwIGlmICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIldvcmtlckdsb2JhbFNjb3BlIjsK
IAogICAgIHJldHVybiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKIH0KQEAgLTM3OCw3
ICszODIsNyBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CiAgICAgICAgICMg
d2hlcmUgdGhlIGluZGV4IGlzIG91dCBvZiByYW5nZS4KICAgICAgICAgCiAgICAgICAgICMgRklY
TUU6IFNob3VsZCB0aGlzIHdvcmsgZm9yIGFsbCBzdHJpbmcgdHlwZXM/Ci0gICAgICAgIGlmICgk
aW5kZXhlZEdldHRlckZ1bmN0aW9uLT5zaWduYXR1cmUtPmlkbFR5cGUtPm5hbWUgZXEgIkRPTVN0
cmluZyIpIHsKKyAgICAgICAgaWYgKCRpbmRleGVkR2V0dGVyRnVuY3Rpb24tPnNpZ25hdHVyZS0+
dHlwZS0+bmFtZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJv
cGVydHlTbG90SW1wbCwgIiAgICBpZiAob3B0aW9uYWxJbmRleCkge1xuIik7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlm
IChvcHRpb25hbEluZGV4ICYmIG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndy
YXBwZWQoKS5sZW5ndGgoKSkge1xuIik7CkBAIC00NDEsNyArNDQ1LDcgQEAgc3ViIEdlbmVyYXRl
R2V0T3duUHJvcGVydHlTbG90Qm9keQogc3ViIEdlbmVyYXRlSGVhZGVyQ29udGVudEhlYWRlcgog
ewogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKLSAgICBteSAkY2xhc3NOYW1lID0gIkpTIiAu
ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgbXkgJGNsYXNzTmFtZSA9ICJKUyIgLiAkaW50ZXJmYWNl
LT50eXBlLT5uYW1lOwogCiAgICAgbXkgQGhlYWRlckNvbnRlbnRIZWFkZXI7CiAgICAgaWYgKCRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0FwcGxlQ29weXJpZ2h0fSkgewpAQCAtNDYw
LDcgKzQ2NCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlckNvbnRlbnRIZWFkZXIKIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcgogewogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlm
dDsKLSAgICBteSAkY2xhc3NOYW1lID0gIkpTIiAuICRpbnRlcmZhY2UtPm5hbWU7CisgICAgbXkg
JGNsYXNzTmFtZSA9ICJKUyIgLiAkaW50ZXJmYWNlLT50eXBlLT5uYW1lOwogCiAgICAgbXkgQGlt
cGxDb250ZW50SGVhZGVyOwogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntBcHBsZUNvcHlyaWdodH0pIHsKQEAgLTQ5MCw3ICs0OTQsNyBAQCBzdWIgU2hvdWxkR2VuZXJh
dGVUb1dyYXBwZWQKIAogICAgIHJldHVybiAwIGlmIG5vdCBOZWVkc0ltcGxlbWVudGF0aW9uQ2xh
c3MoJGludGVyZmFjZSk7CiAgICAgcmV0dXJuIDEgaWYgISRoYXNQYXJlbnQgb3IgJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0fTsKLSAgICBy
ZXR1cm4gMSBpZiAkaW50ZXJmYWNlLT5wYXJlbnQgJiYgJGludGVyZmFjZS0+cGFyZW50IGVxICJF
dmVudFRhcmdldCI7CisgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZS0+cGFyZW50VHlwZSAmJiAk
aW50ZXJmYWNlLT5wYXJlbnRUeXBlLT5uYW1lIGVxICJFdmVudFRhcmdldCI7CiAgICAgcmV0dXJu
IDA7CiB9CiAKQEAgLTUxNSw3ICs1MTksNyBAQCBzdWIgU2hvdWxkR2VuZXJhdGVUb0pTRGVjbGFy
YXRpb24KICAgICByZXR1cm4gMCBpZiBub3QgTmVlZHNJbXBsZW1lbnRhdGlvbkNsYXNzKCRpbnRl
cmZhY2UpOwogICAgIHJldHVybiAwIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e0N1c3RvbVByb3h5VG9KU09iamVjdH07CiAgICAgcmV0dXJuIDEgaWYgKCEkaGFzUGFyZW50IG9y
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0pTR2VuZXJhdGVUb0pTT2JqZWN0fSBv
ciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21Ub0pTT2JqZWN0fSk7Ci0g
ICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZS0+cGFyZW50ICYmICRpbnRlcmZhY2UtPnBhcmVudCBl
cSAiRXZlbnRUYXJnZXQiOworICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2UtPnBhcmVudFR5cGUg
JiYgJGludGVyZmFjZS0+cGFyZW50VHlwZS0+bmFtZSBlcSAiRXZlbnRUYXJnZXQiOwogICAgIHJl
dHVybiAxIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbnN0cnVjdG9yfSBv
ciAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntOYW1lZENvbnN0cnVjdG9yfTsKICAg
ICByZXR1cm4gMDsKIH0KQEAgLTUzNSw3ICs1MzksNyBAQCBzdWIgR2V0QXR0cmlidXRlR2V0dGVy
TmFtZQogCiAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjbGFzc05hbWUp
IC4gIkNvbnN0cnVjdG9yIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+bmFtZSkgaWYgJGF0dHJpYnV0ZS0+aXNTdGF0aWM7CiAgICAgcmV0dXJuIEdl
dEpTQnVpbHRpbkZ1bmN0aW9uTmFtZSgkY2xhc3NOYW1lLCAkYXR0cmlidXRlKSBpZiBJc0pTQnVp
bHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKLSAgICByZXR1cm4gImpzIiAuICRpbnRlcmZh
Y2UtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1
cmUtPm5hbWUpIC4gKCRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkYXR0cmlidXRl
LT5zaWduYXR1cmUtPmlkbFR5cGUpID8gIkNvbnN0cnVjdG9yIiA6ICIiKTsKKyAgICByZXR1cm4g
ImpzIiAuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpIC4gKCRjb2RlR2VuZXJhdG9yLT5Jc0NvbnN0
cnVjdG9yVHlwZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpID8gIkNvbnN0cnVjdG9yIiA6
ICIiKTsKIH0KIAogc3ViIEdldEF0dHJpYnV0ZVNldHRlck5hbWUKQEAgLTU0NCw3ICs1NDgsNyBA
QCBzdWIgR2V0QXR0cmlidXRlU2V0dGVyTmFtZQogCiAgICAgcmV0dXJuICJzZXQiIC4gJGNvZGVH
ZW5lcmF0b3ItPldLX3VjZmlyc3QoJGNsYXNzTmFtZSkgLiAiQ29uc3RydWN0b3IiIC4gJGNvZGVH
ZW5lcmF0b3ItPldLX3VjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lKSBpZiAkYXR0
cmlidXRlLT5pc1N0YXRpYzsKICAgICByZXR1cm4gInNldCIgLiAkY29kZUdlbmVyYXRvci0+V0tf
dWNmaXJzdChHZXRKU0J1aWx0aW5GdW5jdGlvbk5hbWUoJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSkp
IGlmIElzSlNCdWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwotICAgIHJldHVybiAic2V0
SlMiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRy
aWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAoJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JU
eXBlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aWRsVHlwZSkgPyAiQ29uc3RydWN0b3IiIDogIiIp
OworICAgIHJldHVybiAic2V0SlMiIC4gJGludGVyZmFjZS0+dHlwZS0+bmFtZSAuICRjb2RlR2Vu
ZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkgLiAoJGNvZGVH
ZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUeXBlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSkg
PyAiQ29uc3RydWN0b3IiIDogIiIpOwogfQogCiBzdWIgR2V0RnVuY3Rpb25OYW1lCkBAIC01NzEs
NyArNTc1LDcgQEAgc3ViIEdldFNwZWNpYWxBY2Nlc3NvckZ1bmN0aW9uRm9yVHlwZQogICAgICAg
ICBteSAkc3BlY2lhbHMgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+c3BlY2lhbHM7CiAgICAgICAg
IG15ICRzcGVjaWFsRXhpc3RzID0gZ3JlcCB7ICRfIGVxICRzcGVjaWFsIH0gQCRzcGVjaWFsczsK
ICAgICAgICAgbXkgJHBhcmFtZXRlcnMgPSAkZnVuY3Rpb24tPnBhcmFtZXRlcnM7Ci0gICAgICAg
IGlmICgkc3BlY2lhbEV4aXN0cyBhbmQgc2NhbGFyKEAkcGFyYW1ldGVycykgPT0gJG51bWJlck9m
UGFyYW1ldGVycyBhbmQgJHBhcmFtZXRlcnMtPlswXS0+aWRsVHlwZS0+bmFtZSBlcSAkZmlyc3RQ
YXJhbWV0ZXJUeXBlKSB7CisgICAgICAgIGlmICgkc3BlY2lhbEV4aXN0cyBhbmQgc2NhbGFyKEAk
cGFyYW1ldGVycykgPT0gJG51bWJlck9mUGFyYW1ldGVycyBhbmQgJHBhcmFtZXRlcnMtPlswXS0+
dHlwZS0+bmFtZSBlcSAkZmlyc3RQYXJhbWV0ZXJUeXBlKSB7CiAgICAgICAgICAgICByZXR1cm4g
JGZ1bmN0aW9uOwogICAgICAgICB9CiAgICAgfQpAQCAtNTkwLDcgKzU5NCw3IEBAIHN1YiBIYXND
b21wbGV4R2V0T3duUHJvcGVydHkKIHN1YiBJbnRlcmZhY2VSZXF1aXJlc0F0dHJpYnV0ZXNPbklu
c3RhbmNlCiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZh
Y2UtPnR5cGUtPm5hbWU7CiAKICAgICAjIEZJWE1FOiBBbGwgdGhlc2UgcmV0dXJuIDEgaWYgLi4u
IHNob3VsZCBpZGVhbGx5IGJlIHJlbW92ZWQuCiAgICAgIyBTb21lIG9mIHRoZW0gYXJlIHVuYXZv
aWRhYmxlIGR1ZSB0byBET00gd2VpcmRuZXNzLCBpbiB3aGljaCBjYXNlIHdlIHNob3VsZApAQCAt
NjAwLDcgKzYwNCw3IEBAIHN1YiBJbnRlcmZhY2VSZXF1aXJlc0F0dHJpYnV0ZXNPbkluc3RhbmMK
ICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlLT5pc0V4Y2VwdGlvbjsKIAogICAgICMgRklYTUU6
IEFkZCBzdXBwb3J0IGZvciBbUHJpbWFyeUdsb2JhbF0gLyBbR2xvYmFsXS4KLSAgICByZXR1cm4g
MSBpZiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKSAmJiAkaW50ZXJmYWNlLT5uYW1lIG5l
ICJXb3JrZXJHbG9iYWxTY29wZSI7CisgICAgcmV0dXJuIDEgaWYgSXNET01HbG9iYWxPYmplY3Qo
JGludGVyZmFjZSkgJiYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBuZSAiV29ya2VyR2xvYmFsU2Nv
cGUiOwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC02MTQsNyArNjE4LDcgQEAgc3ViIEF0dHJpYnV0
ZVNob3VsZEJlT25JbnN0YW5jZQogICAgIHJldHVybiAwIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57RW5hYmxlZEF0UnVudGltZX0gJiYgIUlzRE9NR2xvYmFs
T2JqZWN0KCRpbnRlcmZhY2UpOwogCiAgICAgcmV0dXJuIDEgaWYgSW50ZXJmYWNlUmVxdWlyZXNB
dHRyaWJ1dGVzT25JbnN0YW5jZSgkaW50ZXJmYWNlKTsKLSAgICByZXR1cm4gMSBpZiAkY29kZUdl
bmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxUeXBl
KTsKKyAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKIAogICAgICMgW1VuZm9yZ2VhYmxlXSBhdHRyaWJ1
dGVzIHNob3VsZCBiZSBvbiB0aGUgaW5zdGFuY2UuCiAgICAgIyBodHRwczovL2hleWNhbS5naXRo
dWIuaW8vd2ViaWRsLyNVbmZvcmdlYWJsZQpAQCAtNjM2LDcgKzY0MCw3IEBAIHN1YiBPcGVyYXRp
b25TaG91bGRCZU9uSW5zdGFuY2UKICAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKIAogICAgICMg
RklYTUU6IEFkZCBzdXBwb3J0IGZvciBbUHJpbWFyeUdsb2JhbF0gLyBbR2xvYmFsXS4KLSAgICBy
ZXR1cm4gMSBpZiBJc0RPTUdsb2JhbE9iamVjdCgkaW50ZXJmYWNlKSAmJiAkaW50ZXJmYWNlLT5u
YW1lIG5lICJXb3JrZXJHbG9iYWxTY29wZSI7CisgICAgcmV0dXJuIDEgaWYgSXNET01HbG9iYWxP
YmplY3QoJGludGVyZmFjZSkgJiYgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBuZSAiV29ya2VyR2xv
YmFsU2NvcGUiOwogCiAgICAgIyBGSVhNRTogVGhlIGJpbmRpbmdzIGdlbmVyYXRvciBkb2VzIG5v
dCBzdXBwb3J0IHB1dHRpbmcgcnVudGltZS1lbmFibGVkIG9wZXJhdGlvbnMgb24gdGhlIGluc3Rh
bmNlIHlldCAoZXhjZXB0IGZvciBnbG9iYWwgb2JqZWN0cykuCiAgICAgcmV0dXJuIDAgaWYgJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0VuYWJsZWRBdFJ1bnRpbWV9
OwpAQCAtNjU2LDEwICs2NjAsMTAgQEAgc3ViIEdldEpTQ0F0dHJpYnV0ZXNGb3JBdHRyaWJ1dGUK
ICAgICBwdXNoKEBzcGVjaWFscywgIkRvbnREZWxldGUiKSBpZiBJc1VuZm9yZ2VhYmxlKCRpbnRl
cmZhY2UsICRhdHRyaWJ1dGUpOwogCiAgICAgIyBBcyBwZXIgV2ViIElETCBzcGVjaWZpY2F0aW9u
LCBjb25zdHJ1Y3RvciBwcm9wZXJ0aWVzIG9uIHRoZSBFQ01BU2NyaXB0IGdsb2JhbCBvYmplY3Qg
c2hvdWxkIG5vdCBiZSBlbnVtZXJhYmxlLgotICAgIG15ICRpc19nbG9iYWxfY29uc3RydWN0b3Ig
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmlkbFR5cGUtPm5hbWUgPX4gL0NvbnN0cnVjdG9yJC87
Ci0gICAgcHVzaChAc3BlY2lhbHMsICJEb250RW51bSIpIGlmICgkYXR0cmlidXRlLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e05vdEVudW1lcmFibGV9IHx8ICRpc19nbG9iYWxfY29u
c3RydWN0b3IpOworICAgIG15ICRpc0dsb2JhbENvbnN0cnVjdG9yID0gJGNvZGVHZW5lcmF0b3It
PklzQ29uc3RydWN0b3JUeXBlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7CisgICAgcHVz
aChAc3BlY2lhbHMsICJEb250RW51bSIpIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e05vdEVudW1lcmFibGV9IHx8ICRpc0dsb2JhbENvbnN0cnVjdG9yKTsK
ICAgICBwdXNoKEBzcGVjaWFscywgIlJlYWRPbmx5IikgaWYgSXNSZWFkb25seSgkYXR0cmlidXRl
KTsKLSAgICBwdXNoKEBzcGVjaWFscywgIkN1c3RvbUFjY2Vzc29yIikgdW5sZXNzICRpc19nbG9i
YWxfY29uc3RydWN0b3Igb3IgSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7Cisg
ICAgcHVzaChAc3BlY2lhbHMsICJDdXN0b21BY2Nlc3NvciIpIHVubGVzcyAkaXNHbG9iYWxDb25z
dHJ1Y3RvciBvciBJc0pTQnVpbHRpbigkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICBwdXNo
KEBzcGVjaWFscywgIkRPTUpJVEF0dHJpYnV0ZSIpIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9OwogICAgIHB1c2goQHNwZWNpYWxzLCAiQWNj
ZXNzb3IgfCBCdWlsdGluIikgaWYgIElzSlNCdWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUp
OwogICAgIHJldHVybiAoQHNwZWNpYWxzID4gMCkgPyBqb2luKCIgfCAiLCBAc3BlY2lhbHMpIDog
IjAiOwpAQCAtNzY0LDcgKzc2OCw3IEBAIHN1YiBJbnN0YW5jZU5lZWRzVmlzaXRDaGlsZHJlbgog
ICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKICAgICByZXR1cm4gJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57SlNDdXN0b21NYXJrRnVuY3Rpb259CiAgICAgICAgIHx8ICRjb2RlR2Vu
ZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiRXZlbnRUYXJnZXQiKQotICAg
ICAgICB8fCAkaW50ZXJmYWNlLT5uYW1lIGVxICJFdmVudFRhcmdldCIKKyAgICAgICAgfHwgJGlu
dGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAiRXZlbnRUYXJnZXQiCiAgICAgICAgIHx8ICRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e1JlcG9ydEV4dHJhTWVtb3J5Q29zdH0KICAgICAgICAg
fHwgSXNKU0J1aWx0aW5Db25zdHJ1Y3RvcigkaW50ZXJmYWNlKQogfQpAQCAtNzgyLDcgKzc4Niw3
IEBAIHN1YiBHZXRJbXBsQ2xhc3NOYW1lCiAgICAgbXkgKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdM
aXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlwZSkgPSBHZXRTVkdQcm9wZXJ0eVR5cGVzKCRp
bnRlcmZhY2UpOwogICAgIHJldHVybiAkc3ZnTmF0aXZlVHlwZSBpZiAkc3ZnTmF0aXZlVHlwZTsK
IAotICAgIHJldHVybiAkaW50ZXJmYWNlLT5uYW1lOworICAgIHJldHVybiAkaW50ZXJmYWNlLT50
eXBlLT5uYW1lOwogfQogCiBzdWIgSXNDbGFzc05hbWVXb3JkQm91bmRhcnkKQEAgLTEwNDQsMjMg
KzEwNDgsMjMgQEAgc3ViIEdlbmVyYXRlRGVmYXVsdFZhbHVlCiAKICAgICBteSAkZGVmYXVsdFZh
bHVlID0gJHNpZ25hdHVyZS0+ZGVmYXVsdDsKIAotICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNF
bnVtVHlwZSgkc2lnbmF0dXJlLT5pZGxUeXBlKSkgeworICAgIGlmICgkY29kZUdlbmVyYXRvci0+
SXNFbnVtVHlwZSgkc2lnbmF0dXJlLT50eXBlKSkgewogICAgICAgICAjIEZJWE1FOiBXb3VsZCBi
ZSBuaWNlIHRvIHJlcG9ydCBhbiBlcnJvciBpZiB0aGUgdmFsdWUgZG9lcyBub3QgaGF2ZSBxdW90
ZSBtYXJrcyBhcm91bmQgaXQuCiAgICAgICAgICMgRklYTUU6IFdvdWxkIGJlIG5pY2UgdG8gcmVw
b3J0IGFuIGVycm9yIGlmIHRoZSB2YWx1ZSBpcyBub3Qgb25lIG9mIHRoZSBlbnVtZXJhdGlvbiB2
YWx1ZXMuCi0gICAgICAgIG15ICRjbGFzc05hbWUgPSBHZXRFbnVtZXJhdGlvbkNsYXNzTmFtZSgk
c2lnbmF0dXJlLT5pZGxUeXBlLCAkaW50ZXJmYWNlKTsKKyAgICAgICAgbXkgJGNsYXNzTmFtZSA9
IEdldEVudW1lcmF0aW9uQ2xhc3NOYW1lKCRzaWduYXR1cmUtPnR5cGUsICRpbnRlcmZhY2UpOwog
ICAgICAgICBteSAkZW51bWVyYXRpb25WYWx1ZU5hbWUgPSBHZXRFbnVtZXJhdGlvblZhbHVlTmFt
ZShzdWJzdHIoJGRlZmF1bHRWYWx1ZSwgMSwgLTEpKTsKICAgICAgICAgcmV0dXJuICRjbGFzc05h
bWUgLiAiOjoiIC4gJGVudW1lcmF0aW9uVmFsdWVOYW1lOwogICAgIH0KICAgICBpZiAoJGRlZmF1
bHRWYWx1ZSBlcSAibnVsbCIpIHsKLSAgICAgICAgaWYgKCRzaWduYXR1cmUtPmlkbFR5cGUtPmlz
VW5pb24pIHsKLSAgICAgICAgICAgIHJldHVybiAiTnVsbG9wdCIgaWYgJHNpZ25hdHVyZS0+aWRs
VHlwZS0+aXNOdWxsYWJsZTsKKyAgICAgICAgaWYgKCRzaWduYXR1cmUtPnR5cGUtPmlzVW5pb24p
IHsKKyAgICAgICAgICAgIHJldHVybiAiTnVsbG9wdCIgaWYgJHNpZ25hdHVyZS0+dHlwZS0+aXNO
dWxsYWJsZTsKIAotICAgICAgICAgICAgbXkgJElETFR5cGUgPSBHZXRJRExUeXBlKCRpbnRlcmZh
Y2UsICRzaWduYXR1cmUtPmlkbFR5cGUpOworICAgICAgICAgICAgbXkgJElETFR5cGUgPSBHZXRJ
RExUeXBlKCRpbnRlcmZhY2UsICRzaWduYXR1cmUtPnR5cGUpOwogICAgICAgICAgICAgcmV0dXJu
ICJjb252ZXJ0PCR7SURMVHlwZX0+KHN0YXRlLCBqc051bGwoKSk7IjsKICAgICAgICAgfQotICAg
ICAgICByZXR1cm4gImpzTnVsbCgpIiBpZiAkc2lnbmF0dXJlLT5pZGxUeXBlLT5uYW1lIGVxICJh
bnkiOwotICAgICAgICByZXR1cm4gIm51bGxwdHIiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBw
ZXJUeXBlKCRzaWduYXR1cmUtPmlkbFR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJy
YXlUeXBlKCRzaWduYXR1cmUtPmlkbFR5cGUpOwotICAgICAgICByZXR1cm4gIlN0cmluZygpIiBp
ZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRzaWduYXR1cmUtPmlkbFR5cGUpOworICAg
ICAgICByZXR1cm4gImpzTnVsbCgpIiBpZiAkc2lnbmF0dXJlLT50eXBlLT5uYW1lIGVxICJhbnki
OworICAgICAgICByZXR1cm4gIm51bGxwdHIiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJU
eXBlKCRzaWduYXR1cmUtPnR5cGUpIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBl
KCRzaWduYXR1cmUtPnR5cGUpOworICAgICAgICByZXR1cm4gIlN0cmluZygpIiBpZiAkY29kZUdl
bmVyYXRvci0+SXNTdHJpbmdUeXBlKCRzaWduYXR1cmUtPnR5cGUpOwogICAgICAgICByZXR1cm4g
Ik51bGxvcHQiOwogICAgIH0KICAgICBpZiAoJGRlZmF1bHRWYWx1ZSBlcSAiW10iKSB7CkBAIC0x
MDk1LDcgKzEwOTksNyBAQCBzdWIgR2VuZXJhdGVEaWN0aW9uYXJpZXNIZWFkZXJDb250ZW50CiAK
ICAgICBteSAkcmVzdWx0ID0gIiI7CiAgICAgZm9yZWFjaCBteSAkZGljdGlvbmFyeSAoQCRhbGxE
aWN0aW9uYXJpZXMpIHsKLSAgICAgICAgJGhlYWRlckluY2x1ZGVzeyRpbnRlcmZhY2UtPm5hbWUg
LiAiLmgifSA9IDE7CisgICAgICAgICRoZWFkZXJJbmNsdWRlc3skaW50ZXJmYWNlLT50eXBlLT5u
YW1lIC4gIi5oIn0gPSAxOwogICAgICAgICBteSAkY2xhc3NOYW1lID0gR2V0RGljdGlvbmFyeUNs
YXNzTmFtZSgkZGljdGlvbmFyeS0+dHlwZSwgJGludGVyZmFjZSk7CiAgICAgICAgIG15ICRjb25k
aXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5n
KCRkaWN0aW9uYXJ5KTsKICAgICAgICAgJHJlc3VsdCAuPSBHZW5lcmF0ZURpY3Rpb25hcnlIZWFk
ZXJDb250ZW50KCRkaWN0aW9uYXJ5LCAkY2xhc3NOYW1lLCAkY29uZGl0aW9uYWxTdHJpbmcpOwpA
QCAtMTEwOSw3ICsxMTEzLDcgQEAgc3ViIEdlbmVyYXRlRGljdGlvbmFyeUltcGxlbWVudGF0aW9u
Q29udAogCiAgICAgbXkgJHJlc3VsdCA9ICIiOwogCi0gICAgbXkgJG5hbWUgPSAkZGljdGlvbmFy
eS0+bmFtZTsKKyAgICBteSAkbmFtZSA9ICRkaWN0aW9uYXJ5LT50eXBlLT5uYW1lOwogCiAgICAg
JHJlc3VsdCAuPSAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIgaWYgJGNvbmRpdGlvbmFs
U3RyaW5nOwogCkBAIC0xMTU5LDEwICsxMTYzLDEwIEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlJ
bXBsZW1lbnRhdGlvbkNvbnQKICAgICAgICAgIyBGb3IgZWFjaCBkaWN0aW9uYXJ5IG1lbWJlciBt
ZW1iZXIgZGVjbGFyZWQgb24gZGljdGlvbmFyeSwgaW4gbGV4aWNvZ3JhcGhpY2FsIG9yZGVyOgog
ICAgICAgICBteSBAc29ydGVkTWVtYmVycyA9IHNvcnQgeyAkYS0+bmFtZSBjbXAgJGItPm5hbWUg
fSBAeyRkaWN0aW9uYXJ5LT5tZW1iZXJzfTsKICAgICAgICAgZm9yZWFjaCBteSAkbWVtYmVyIChA
c29ydGVkTWVtYmVycykgewotICAgICAgICAgICAgJG1lbWJlci0+ZGVmYXVsdCgidW5kZWZpbmVk
IikgaWYgJG1lbWJlci0+aWRsVHlwZS0+bmFtZSBlcSAiYW55IiBhbmQgIWRlZmluZWQoJG1lbWJl
ci0+ZGVmYXVsdCk7ICMgVXNlIHVuZGVmaW5lZCBhcyBkZWZhdWx0IHZhbHVlIGZvciBtZW1iZXIg
b2YgdHlwZSAnYW55JyB1bmxlc3Mgc3BlY2lmaWVkIG90aGVyd2lzZS4KKyAgICAgICAgICAgICRt
ZW1iZXItPmRlZmF1bHQoInVuZGVmaW5lZCIpIGlmICRtZW1iZXItPnR5cGUtPm5hbWUgZXEgImFu
eSIgYW5kICFkZWZpbmVkKCRtZW1iZXItPmRlZmF1bHQpOyAjIFVzZSB1bmRlZmluZWQgYXMgZGVm
YXVsdCB2YWx1ZSBmb3IgbWVtYmVyIG9mIHR5cGUgJ2FueScgdW5sZXNzIHNwZWNpZmllZCBvdGhl
cndpc2UuCiAKLSAgICAgICAgICAgIG15ICRpZGxUeXBlID0gJG1lbWJlci0+aWRsVHlwZTsKLSAg
ICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlwZSgkaWRsVHlwZSk7CisgICAgICAg
ICAgICBteSAkdHlwZSA9ICRtZW1iZXItPnR5cGU7CisgICAgICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlc0ZvcklETFR5cGUoJHR5cGUpOwogCiAgICAgICAgICAgICAjIDUuMS4gTGV0IGtleSBiZSB0
aGUgaWRlbnRpZmllciBvZiBtZW1iZXIuCiAgICAgICAgICAgICBteSAka2V5ID0gJG1lbWJlci0+
bmFtZTsKQEAgLTExNzAsNyArMTE3NCw3IEBAIHN1YiBHZW5lcmF0ZURpY3Rpb25hcnlJbXBsZW1l
bnRhdGlvbkNvbnQKICAgICAgICAgICAgICMgNS4yLiBMZXQgdmFsdWUgYmUgYW4gRUNNQVNjcmlw
dCB2YWx1ZSwgZGVwZW5kaW5nIG9uIFR5cGUoVik6CiAgICAgICAgICAgICAkcmVzdWx0IC49ICIg
ICAgSlNWYWx1ZSAke2tleX1WYWx1ZSA9IGlzTnVsbE9yVW5kZWZpbmVkID8ganNVbmRlZmluZWQo
KSA6IG9iamVjdC0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmc3RhdGUsIFwi
JHtrZXl9XCIpKTtcbiI7CiAKLSAgICAgICAgICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgk
aW50ZXJmYWNlLCAkaWRsVHlwZSk7CisgICAgICAgICAgICBteSAkSURMVHlwZSA9IEdldElETFR5
cGUoJGludGVyZmFjZSwgJHR5cGUpOwogCiAgICAgICAgICAgICAjIDUuMy4gSWYgdmFsdWUgaXMg
bm90IHVuZGVmaW5lZCwgdGhlbjoKICAgICAgICAgICAgICRyZXN1bHQgLj0gIiAgICBpZiAoISR7
a2V5fVZhbHVlLmlzVW5kZWZpbmVkKCkpIHtcbiI7CkBAIC0xMTg1LDcgKzExODksNyBAQCBzdWIg
R2VuZXJhdGVEaWN0aW9uYXJ5SW1wbGVtZW50YXRpb25Db250CiAgICAgICAgICAgICB9IGVsc2lm
ICghJG1lbWJlci0+aXNPcHRpb25hbCkgewogICAgICAgICAgICAgICAgICMgNS41LiBPdGhlcndp
c2UsIGlmIHZhbHVlIGlzIHVuZGVmaW5lZCBhbmQgdGhlIGRpY3Rpb25hcnkgbWVtYmVyIGlzIGEg
cmVxdWlyZWQgZGljdGlvbmFyeSBtZW1iZXIsIHRoZW4gdGhyb3cgYSBUeXBlRXJyb3IuCiAgICAg
ICAgICAgICAgICAgJHJlc3VsdCAuPSAiICAgIH0gZWxzZSB7XG4iOwotICAgICAgICAgICAgICAg
ICRyZXN1bHQgLj0gIiAgICAgICAgdGhyb3dSZXF1aXJlZE1lbWJlclR5cGVFcnJvcihzdGF0ZSwg
dGhyb3dTY29wZSwgXCIiLiRtZW1iZXItPm5hbWUuIlwiLCBcIiRuYW1lXCIsIFwiIi4kaWRsVHlw
ZS0+bmFtZS4iXCIpO1xuIjsKKyAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgICAgIHRo
cm93UmVxdWlyZWRNZW1iZXJUeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIFwiIi4gJG1lbWJl
ci0+bmFtZSAuIlwiLCBcIiRuYW1lXCIsIFwiIi4gJHR5cGUtPm5hbWUgLiJcIik7XG4iOwogICAg
ICAgICAgICAgICAgICRyZXN1bHQgLj0gIiAgICAgICAgcmV0dXJuIHsgfTtcbiI7CiAgICAgICAg
ICAgICAgICAgJHJlc3VsdCAuPSAiICAgIH1cbiI7CiAgICAgICAgICAgICB9IGVsc2UgewpAQCAt
MTI1MiwxMiArMTI1NiwxMiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIHsKICAgICBteSAoJG9iamVj
dCwgJGludGVyZmFjZSwgJGVudW1lcmF0aW9ucywgJGRpY3Rpb25hcmllcykgPSBAXzsKIAotICAg
IG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICBteSAkaW50ZXJmYWNl
TmFtZSA9ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWU7CiAgICAgbXkgJGNsYXNzTmFtZSA9ICJKUyRp
bnRlcmZhY2VOYW1lIjsKICAgICBteSAlc3RydWN0dXJlRmxhZ3MgPSAoKTsKIAogICAgIG15ICRo
YXNMZWdhY3lQYXJlbnQgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntKU0xlZ2Fj
eVBhcmVudH07Ci0gICAgbXkgJGhhc1JlYWxQYXJlbnQgPSAkaW50ZXJmYWNlLT5wYXJlbnQ7Cisg
ICAgbXkgJGhhc1JlYWxQYXJlbnQgPSAkaW50ZXJmYWNlLT5wYXJlbnRUeXBlOwogICAgIG15ICRo
YXNQYXJlbnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFyZW50OwogICAgIG15ICRw
YXJlbnRDbGFzc05hbWUgPSBHZXRQYXJlbnRDbGFzc05hbWUoJGludGVyZmFjZSk7CiAgICAgbXkg
JG5lZWRzVmlzaXRDaGlsZHJlbiA9IEluc3RhbmNlTmVlZHNWaXNpdENoaWxkcmVuKCRpbnRlcmZh
Y2UpOwpAQCAtMTMxMSw3ICsxMzE1LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgIyBTdGF0
aWMgY3JlYXRlIG1ldGhvZHMKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHVibGljOlxuIik7
CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB1c2luZyBCYXNlID0gJHBhcmVudENsYXNz
TmFtZTtcbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdXNpbmcgRE9NV3JhcHBl
ZCA9ICRpbXBsVHlwZTtcbiIpIGlmICRpbnRlcmZhY2UtPnBhcmVudDsKKyAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHVzaW5nIERPTVdyYXBwZWQgPSAkaW1wbFR5cGU7XG4iKSBpZiAkaGFz
UmVhbFBhcmVudDsKIAogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93Iikgewog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyAkY2xhc3NOYW1lKiBjcmVh
dGUoSlNDOjpWTSYgdm0sIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZjwkaW1wbFR5cGU+
JiYgaW1wbCwgSlNET01XaW5kb3dTaGVsbCogd2luZG93U2hlbGwpXG4iKTsKQEAgLTEzNjgsNyAr
MTM3Miw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgSlNWYWx1ZSB0byBpbXBsZW1lbnRh
dGlvbiB0eXBlCiAgICAgaWYgKFNob3VsZEdlbmVyYXRlVG9XcmFwcGVkKCRoYXNQYXJlbnQsICRp
bnRlcmZhY2UpKSB7CiAgICAgICAgIG15ICRuYXRpdmVUeXBlID0gR2V0TmF0aXZlVHlwZSgkaW50
ZXJmYWNlLCAkaW50ZXJmYWNlLT50eXBlKTsKLSAgICAgICAgaWYgKCRpbnRlcmZhY2UtPm5hbWUg
ZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2UtPnR5cGUtPm5h
bWUgZXEgIlhQYXRoTlNSZXNvbHZlciIpIHsKICAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgc3RhdGljICRuYXRpdmVUeXBlIHRvV3JhcHBlZChKU0M6OkV4ZWNTdGF0ZSYsIEpT
Qzo6SlNWYWx1ZSk7XG4iKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG15ICRleHBv
cnQgPSAiIjsKQEAgLTE3MzQsNyArMTczOCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAg
ICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKICAg
ICAgICAgICAgIG5leHQgdW5sZXNzICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57IkRPTUpJVCJ9OwogCi0gICAgICAgICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRp
bnRlcmZhY2UtPm5hbWU7CisgICAgICAgICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZh
Y2UtPnR5cGUtPm5hbWU7CiAgICAgICAgICAgICBteSAkY2xhc3NOYW1lID0gJGludGVyZmFjZU5h
bWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5h
bWUpOwogICAgICAgICAgICAgbXkgJGRvbUpJVENsYXNzTmFtZSA9ICRjbGFzc05hbWUgLiAiRE9N
SklUIjsKIApAQCAtMTc4MCw3ICsxNzg0LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAg
IG15IEBhbmNlc3RvcnM7CiAgICAgICAgICRjb2RlR2VuZXJhdG9yLT5Gb3JBbGxQYXJlbnRzKCRp
bnRlcmZhY2UsIHN1YiB7CiAgICAgICAgICAgICBteSAkY3VycmVudEludGVyZmFjZSA9IHNoaWZ0
OwotICAgICAgICAgICAgcHVzaChAYW5jZXN0b3JzLCAkY3VycmVudEludGVyZmFjZS0+bmFtZSk7
CisgICAgICAgICAgICBwdXNoKEBhbmNlc3RvcnMsICRjdXJyZW50SW50ZXJmYWNlLT50eXBlLT5u
YW1lKTsKICAgICAgICAgfSwgMCk7CiAgICAgICAgIGZvciBteSAkZGljdGlvbmFyeSAoQCRkaWN0
aW9uYXJpZXMpIHsKICAgICAgICAgICAgIG15ICRwYXJlbnRUeXBlID0gJGRpY3Rpb25hcnktPnBh
cmVudFR5cGU7CkBAIC0xODAxLDcgKzE4MDUsNyBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0aWVzSGFz
aFRhYmxlCiAgICAgbXkgKCRvYmplY3QsICRpbnRlcmZhY2UsICRpc0luc3RhbmNlLCAkaGFzaEtl
eXMsICRoYXNoU3BlY2lhbHMsICRoYXNoVmFsdWUxLCAkaGFzaFZhbHVlMiwgJGNvbmRpdGlvbmFs
cywgJHJ1bnRpbWVFbmFibGVkRnVuY3Rpb25zLCAkcnVudGltZUVuYWJsZWRBdHRyaWJ1dGVzKSA9
IEBfOwogCiAgICAgIyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIGZ1bmN0aW9ucyBvbiAkaW50ZXJm
YWNlLgotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICBteSAk
aW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWU7CiAgICAgbXkgJGNsYXNzTmFt
ZSA9ICJKUyRpbnRlcmZhY2VOYW1lIjsKICAgICAKICAgICAjIC0gQWRkIGFsbCBwcm9wZXJ0aWVz
IGluIGEgaGFzaHRhYmxlIGRlZmluaXRpb24KQEAgLTE4MzcsNyArMTg0MSw3IEBAIHN1YiBHZW5l
cmF0ZVByb3BlcnRpZXNIYXNoVGFibGUKICAgICAgICAgcHVzaChAJGhhc2hTcGVjaWFscywgJHNw
ZWNpYWwpOwogCiAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJET01KSVQifSkgewotICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTEsICJk
b21KSVRHZXR0ZXJTZXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9y
LT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSkpOworICAgICAgICAgICAg
cHVzaChAJGhhc2hWYWx1ZTEsICJkb21KSVRHZXR0ZXJTZXR0ZXJGb3IiIC4gJGludGVyZmFjZS0+
dHlwZS0+bmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+bmFtZSkpOwogICAgICAgICAgICAgcHVzaChAJGhhc2hWYWx1ZTIsICIwIik7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVy
TmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKQEAgLTE5MDMsMjEgKzE5
MDcsNiBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0aWVzSGFzaFRhYmxlCiAgICAgcmV0dXJuICRwcm9w
ZXJ0eUNvdW50OwogfQogCi1zdWIgSXNOdWxsYWJsZVR5cGUKLXsKLSAgICBteSAkdHlwZSA9IHNo
aWZ0OwotCi0gICAgcmV0dXJuIHN1YnN0cigkdHlwZSwgLTEpIGVxICI/IjsKLX0KLQotc3ViIFN0
cmlwTnVsbGFibGUKLXsKLSAgICBteSAkdHlwZSA9IHNoaWZ0OwotCi0gICAgY2hvcCgkdHlwZSkg
aWYgSXNOdWxsYWJsZVR5cGUoJHR5cGUpOwotICAgIHJldHVybiAkdHlwZTsKLX0KLQogIyBUaGlz
IGNvbXB1dGVzIGFuIGVmZmVjdGl2ZSBvdmVybG9hZCBzZXQgZm9yIGEgZ2l2ZW4gb3BlcmF0aW9u
IC8gY29uc3RydWN0b3IsCiAjIHdoaWNoIHJlcHJlc2VudHMgdGhlIGFsbG93YWJsZSBpbnZvY2F0
aW9ucy5UaGlzIHNldCBpcyB1c2VkIGFzIGlucHV0IGZvcgogIyB0aGUgV2ViIElETCBvdmVybG9h
ZCByZXNvbHV0aW9uIGFsZ29yaXRobS4KQEAgLTE5NDYsNyArMTkzNSw3IEBAIHN1YiBDb21wdXRl
RWZmZWN0aXZlT3ZlcmxvYWRTZXQKICAgICAgICAgbXkgQG87CiAgICAgICAgIG15ICRpc1Zhcmlh
ZGljID0gMDsKICAgICAgICAgZm9yZWFjaCBteSAkcGFyYW1ldGVyIChAeyRvdmVybG9hZC0+cGFy
YW1ldGVyc30pIHsKLSAgICAgICAgICAgIHB1c2goQHQsICRwYXJhbWV0ZXItPmlkbFR5cGUpOwor
ICAgICAgICAgICAgcHVzaChAdCwgJHBhcmFtZXRlci0+dHlwZSk7CiAgICAgICAgICAgICBpZiAo
JHBhcmFtZXRlci0+aXNPcHRpb25hbCkgewogICAgICAgICAgICAgICAgIHB1c2goQG8sICJvcHRp
b25hbCIpOwogICAgICAgICAgICAgfSBlbHNpZiAoJHBhcmFtZXRlci0+aXNWYXJpYWRpYykgewpA
QCAtMTk3OSwxMSArMTk2OCwxMSBAQCBzdWIgQ29tcHV0ZUVmZmVjdGl2ZU92ZXJsb2FkU2V0CiAK
IHN1YiBJc0lETFR5cGVEaXN0aW5ndWlzaGFibGVXaXRoVW5pb25Gb3JPdmVybG9hZFJlc29sdXRp
b24KIHsKLSAgICBteSAoJGlkbFR5cGUsICR1bmlvblN1YnR5cGVzKSA9IEBfOworICAgIG15ICgk
dHlwZSwgJHVuaW9uU3VidHlwZXMpID0gQF87CiAKLSAgICBhc3NlcnQoIkZpcnN0IHR5cGUgc2hv
dWxkIG5vdCBiZSBhIHVuaW9uIikgaWYgJGlkbFR5cGUtPmlzVW5pb247CisgICAgYXNzZXJ0KCJG
aXJzdCB0eXBlIHNob3VsZCBub3QgYmUgYSB1bmlvbiIpIGlmICR0eXBlLT5pc1VuaW9uOwogICAg
IGZvciBteSAkdW5pb25TdWJUeXBlIChAJHVuaW9uU3VidHlwZXMpIHsKLSAgICAgICAgcmV0dXJu
IDAgdW5sZXNzIEFyZVR5cGVzRGlzdGluZ3Vpc2hhYmxlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKCRp
ZGxUeXBlLCAkdW5pb25TdWJUeXBlKTsKKyAgICAgICAgcmV0dXJuIDAgdW5sZXNzIEFyZVR5cGVz
RGlzdGluZ3Vpc2hhYmxlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKCR0eXBlLCAkdW5pb25TdWJUeXBl
KTsKICAgICB9CiAgICAgcmV0dXJuIDE7CiB9CkBAIC0xOTkzLDcgKzE5ODIsNyBAQCBzdWIgSXNJ
RExUeXBlRGlzdGluZ3Vpc2hhYmxlV2l0aFVuaW9uRm9yCiAjIGh0dHA6Ly9oZXljYW0uZ2l0aHVi
LmlvL3dlYmlkbC8jZGZuLWRpc3Rpbmd1aXNoYWJsZQogc3ViIEFyZVR5cGVzRGlzdGluZ3Vpc2hh
YmxlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uCiB7Ci0gICAgbXkgKCRpZGxUeXBlQSwgJGlkbFR5cGVC
KSA9IEBfOworICAgIG15ICgkdHlwZUEsICR0eXBlQikgPSBAXzsKIAogICAgIG15ICRpc0RpY3Rp
b25hcnkgPSBzdWIgewogICAgICAgICBteSAkdHlwZSA9IHNoaWZ0OwpAQCAtMjAwNSwzMyArMTk5
NCwzMyBAQCBzdWIgQXJlVHlwZXNEaXN0aW5ndWlzaGFibGVGb3JPdmVybG9hZFJlCiAgICAgfTsK
IAogICAgICMgVHdvIHR5cGVzIGFyZSBkaXN0aW5ndWlzaGFibGUgZm9yIG92ZXJsb2FkIHJlc29s
dXRpb24gaWYgYXQgbW9zdCBvbmUgb2YgdGhlIHR3byBpbmNsdWRlcyBhIG51bGxhYmxlIHR5cGUu
Ci0gICAgcmV0dXJuIDAgaWYgJGlkbFR5cGVBLT5pc051bGxhYmxlICYmICRpZGxUeXBlQi0+aXNO
dWxsYWJsZTsKKyAgICByZXR1cm4gMCBpZiAkdHlwZUEtPmlzTnVsbGFibGUgJiYgJHR5cGVCLT5p
c051bGxhYmxlOwogCi0gICAgIyBVbmlvbiB0eXBlczogaWRsVHlwZUEgYW5kIGlkbFR5cGVCICBh
cmUgZGlzdGluZ3Vpc2hhYmxlIGlmOgorICAgICMgVW5pb24gdHlwZXM6IHR5cGVBIGFuZCB0eXBl
QiAgYXJlIGRpc3Rpbmd1aXNoYWJsZSBpZjoKICAgICAjIC0gQm90aCB0eXBlcyBhcmUgZWl0aGVy
IGEgdW5pb24gdHlwZSBvciBudWxsYWJsZSB1bmlvbiB0eXBlLCBhbmQgZWFjaCBtZW1iZXIgdHlw
ZSBvZiB0aGUgb25lIGlzCiAgICAgIyAgIGRpc3Rpbmd1aXNoYWJsZSB3aXRoIGVhY2ggbWVtYmVy
IHR5cGUgb2YgdGhlIG90aGVyLgogICAgICMgLSBPbmUgdHlwZSBpcyBhIHVuaW9uIHR5cGUgb3Ig
bnVsbGFibGUgdW5pb24gdHlwZSwgdGhlIG90aGVyIGlzIG5laXRoZXIgYSB1bmlvbiB0eXBlIG5v
ciBhIG51bGxhYmxlCiAgICAgIyAgIHVuaW9uIHR5cGUsIGFuZCBlYWNoIG1lbWJlciB0eXBlIG9m
IHRoZSBmaXJzdCBpcyBkaXN0aW5ndWlzaGFibGUgd2l0aCB0aGUgc2Vjb25kLgotICAgIGlmICgk
aWRsVHlwZUEtPmlzVW5pb24gJiYgJGlkbFR5cGVCLT5pc1VuaW9uKSB7Ci0gICAgICAgIGZvciBt
eSAkdW5pb25BU3ViVHlwZSAoQHskaWRsVHlwZUEtPnN1YnR5cGVzfSkgewotICAgICAgICAgICAg
cmV0dXJuIDAgdW5sZXNzIElzSURMVHlwZURpc3Rpbmd1aXNoYWJsZVdpdGhVbmlvbkZvck92ZXJs
b2FkUmVzb2x1dGlvbigkdW5pb25BU3ViVHlwZSwgJGlkbFR5cGVCLT5zdWJ0eXBlcyk7CisgICAg
aWYgKCR0eXBlQS0+aXNVbmlvbiAmJiAkdHlwZUItPmlzVW5pb24pIHsKKyAgICAgICAgZm9yIG15
ICR1bmlvbkFTdWJUeXBlIChAeyR0eXBlQS0+c3VidHlwZXN9KSB7CisgICAgICAgICAgICByZXR1
cm4gMCB1bmxlc3MgSXNJRExUeXBlRGlzdGluZ3Vpc2hhYmxlV2l0aFVuaW9uRm9yT3ZlcmxvYWRS
ZXNvbHV0aW9uKCR1bmlvbkFTdWJUeXBlLCAkdHlwZUItPnN1YnR5cGVzKTsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gMTsKLSAgICB9IGVsc2lmICgkaWRsVHlwZUEtPmlzVW5pb24pIHsKLSAg
ICAgICAgcmV0dXJuIElzSURMVHlwZURpc3Rpbmd1aXNoYWJsZVdpdGhVbmlvbkZvck92ZXJsb2Fk
UmVzb2x1dGlvbigkaWRsVHlwZUIsICRpZGxUeXBlQS0+c3VidHlwZXMpOwotICAgIH0gZWxzaWYg
KCRpZGxUeXBlQi0+aXNVbmlvbikgewotICAgICAgICByZXR1cm4gSXNJRExUeXBlRGlzdGluZ3Vp
c2hhYmxlV2l0aFVuaW9uRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKCRpZGxUeXBlQSwgJGlkbFR5cGVC
LT5zdWJ0eXBlcyk7CisgICAgfSBlbHNpZiAoJHR5cGVBLT5pc1VuaW9uKSB7CisgICAgICAgIHJl
dHVybiBJc0lETFR5cGVEaXN0aW5ndWlzaGFibGVXaXRoVW5pb25Gb3JPdmVybG9hZFJlc29sdXRp
b24oJHR5cGVCLCAkdHlwZUEtPnN1YnR5cGVzKTsKKyAgICB9IGVsc2lmICgkdHlwZUItPmlzVW5p
b24pIHsKKyAgICAgICAgcmV0dXJuIElzSURMVHlwZURpc3Rpbmd1aXNoYWJsZVdpdGhVbmlvbkZv
ck92ZXJsb2FkUmVzb2x1dGlvbigkdHlwZUEsICR0eXBlQi0+c3VidHlwZXMpOwogICAgIH0KIAot
ICAgIHJldHVybiAwIGlmICRpZGxUeXBlQS0+bmFtZSBlcSAkaWRsVHlwZUItPm5hbWU7Ci0gICAg
cmV0dXJuIDAgaWYgJGlkbFR5cGVBLT5uYW1lIGVxICJvYmplY3QiIG9yICRpZGxUeXBlQi0+bmFt
ZSBlcSAib2JqZWN0IjsKLSAgICByZXR1cm4gMCBpZiAkY29kZUdlbmVyYXRvci0+SXNOdW1lcmlj
VHlwZSgkaWRsVHlwZUEpICYmICRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBlKCRpZGxUeXBl
Qik7Ci0gICAgcmV0dXJuIDAgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nT3JFbnVtVHlwZSgk
aWRsVHlwZUEpICYmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ09yRW51bVR5cGUoJGlkbFR5cGVC
KTsKLSAgICByZXR1cm4gMCBpZiAmJGlzRGljdGlvbmFyeSgkaWRsVHlwZUEpICYmICYkaXNEaWN0
aW9uYXJ5KCRpZGxUeXBlQik7Ci0gICAgcmV0dXJuIDAgaWYgJGNvZGVHZW5lcmF0b3ItPklzQ2Fs
bGJhY2tJbnRlcmZhY2UoJGlkbFR5cGVBKSAmJiAkY29kZUdlbmVyYXRvci0+SXNDYWxsYmFja0lu
dGVyZmFjZSgkaWRsVHlwZUIpOwotICAgIHJldHVybiAwIGlmICYkaXNDYWxsYmFja0Z1bmN0aW9u
T3JEaWN0aW9uYXJ5KCRpZGxUeXBlQSkgJiYgJiRpc0NhbGxiYWNrRnVuY3Rpb25PckRpY3Rpb25h
cnkoJGlkbFR5cGVCKTsKLSAgICByZXR1cm4gMCBpZiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5j
ZU9yRnJvemVuQXJyYXlUeXBlKCRpZGxUeXBlQSkgJiYgJGNvZGVHZW5lcmF0b3ItPklzU2VxdWVu
Y2VPckZyb3plbkFycmF5VHlwZSgkaWRsVHlwZUIpOwotICAgICMgRklYTUU6IHJldHVybiAwIGlm
ICRpZGxUeXBlQSBhbmQgJGlkbFR5cGVCIGFyZSBib3RoIGV4Y2VwdGlvbiB0eXBlcy4KKyAgICBy
ZXR1cm4gMCBpZiAkdHlwZUEtPm5hbWUgZXEgJHR5cGVCLT5uYW1lOworICAgIHJldHVybiAwIGlm
ICR0eXBlQS0+bmFtZSBlcSAib2JqZWN0IiBvciAkdHlwZUItPm5hbWUgZXEgIm9iamVjdCI7Cisg
ICAgcmV0dXJuIDAgaWYgJGNvZGVHZW5lcmF0b3ItPklzTnVtZXJpY1R5cGUoJHR5cGVBKSAmJiAk
Y29kZUdlbmVyYXRvci0+SXNOdW1lcmljVHlwZSgkdHlwZUIpOworICAgIHJldHVybiAwIGlmICRj
b2RlR2VuZXJhdG9yLT5Jc1N0cmluZ09yRW51bVR5cGUoJHR5cGVBKSAmJiAkY29kZUdlbmVyYXRv
ci0+SXNTdHJpbmdPckVudW1UeXBlKCR0eXBlQik7CisgICAgcmV0dXJuIDAgaWYgJiRpc0RpY3Rp
b25hcnkoJHR5cGVBKSAmJiAmJGlzRGljdGlvbmFyeSgkdHlwZUIpOworICAgIHJldHVybiAwIGlm
ICRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCR0eXBlQSkgJiYgJGNvZGVHZW5l
cmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJHR5cGVCKTsKKyAgICByZXR1cm4gMCBpZiAmJGlz
Q2FsbGJhY2tGdW5jdGlvbk9yRGljdGlvbmFyeSgkdHlwZUEpICYmICYkaXNDYWxsYmFja0Z1bmN0
aW9uT3JEaWN0aW9uYXJ5KCR0eXBlQik7CisgICAgcmV0dXJuIDAgaWYgJGNvZGVHZW5lcmF0b3It
PklzU2VxdWVuY2VPckZyb3plbkFycmF5VHlwZSgkdHlwZUEpICYmICRjb2RlR2VuZXJhdG9yLT5J
c1NlcXVlbmNlT3JGcm96ZW5BcnJheVR5cGUoJHR5cGVCKTsKKyAgICAjIEZJWE1FOiByZXR1cm4g
MCBpZiAkdHlwZUEgYW5kICR0eXBlQiBhcmUgYm90aCBleGNlcHRpb24gdHlwZXMuCiAgICAgcmV0
dXJuIDE7CiB9CiAKQEAgLTIwNDQsMTIgKzIwMzMsMTIgQEAgc3ViIEdldERpc3Rpbmd1aXNoaW5n
QXJndW1lbnRJbmRleAogICAgIG15ICgkZnVuY3Rpb24sICRTKSA9IEBfOwogCiAgICAgIyBGSVhN
RTogQ29uc2lkZXIgYWxsIHRoZSB0dXBsZXMsIG5vdCBqdXN0IHRoZSAyIGZpcnN0IG9uZXM/Ci0g
ICAgbXkgJGZpcnN0VHVwbGVJRExUeXBlcyA9IEB7QHskU31bMF19WzFdOwotICAgIG15ICRzZWNv
bmRUdXBsZUlETFR5cGVzID0gQHtAeyRTfVsxXX1bMV07Ci0gICAgZm9yIChteSAkaW5kZXggPSAw
OyAkaW5kZXggPCBzY2FsYXIoQCRmaXJzdFR1cGxlSURMVHlwZXMpOyAkaW5kZXgrKykgewotICAg
ICAgICByZXR1cm4gJGluZGV4IGlmIEFyZVR5cGVzRGlzdGluZ3Vpc2hhYmxlRm9yT3ZlcmxvYWRS
ZXNvbHV0aW9uKEB7JGZpcnN0VHVwbGVJRExUeXBlc31bJGluZGV4XSwgQHskc2Vjb25kVHVwbGVJ
RExUeXBlc31bJGluZGV4XSk7CisgICAgbXkgJGZpcnN0VHVwbGVUeXBlcyA9IEB7QHskU31bMF19
WzFdOworICAgIG15ICRzZWNvbmRUdXBsZVR5cGVzID0gQHtAeyRTfVsxXX1bMV07CisgICAgZm9y
IChteSAkaW5kZXggPSAwOyAkaW5kZXggPCBzY2FsYXIoQCRmaXJzdFR1cGxlVHlwZXMpOyAkaW5k
ZXgrKykgeworICAgICAgICByZXR1cm4gJGluZGV4IGlmIEFyZVR5cGVzRGlzdGluZ3Vpc2hhYmxl
Rm9yT3ZlcmxvYWRSZXNvbHV0aW9uKEB7JGZpcnN0VHVwbGVUeXBlc31bJGluZGV4XSwgQHskc2Vj
b25kVHVwbGVUeXBlc31bJGluZGV4XSk7CiAgICAgfQotICAgIGRpZSAiVW5kaXN0aW5ndWlzaGFi
bGUgb3ZlcmxvYWRzIGZvciBvcGVyYXRpb24gIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1l
IC4gIiB3aXRoIGxlbmd0aDogIiAuIHNjYWxhcihAJGZpcnN0VHVwbGVJRExUeXBlcyk7CisgICAg
ZGllICJVbmRpc3Rpbmd1aXNoYWJsZSBvdmVybG9hZHMgZm9yIG9wZXJhdGlvbiAiIC4gJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPm5hbWUgLiAiIHdpdGggbGVuZ3RoOiAiIC4gc2NhbGFyKEAkZmlyc3RU
dXBsZVR5cGVzKTsKIH0KIAogc3ViIEdldE92ZXJsb2FkVGhhdE1hdGNoZXMKQEAgLTIwNTcsMTQg
KzIwNDYsMTQgQEAgc3ViIEdldE92ZXJsb2FkVGhhdE1hdGNoZXMKICAgICBteSAoJFMsICRwYXJh
bWV0ZXJJbmRleCwgJG1hdGNoZXMpID0gQF87CiAKICAgICBmb3IgbXkgJHR1cGxlIChAeyRTfSkg
ewotICAgICAgICBteSAkaWRsVHlwZSA9IEB7QHskdHVwbGV9WzFdfVskcGFyYW1ldGVySW5kZXhd
OworICAgICAgICBteSAkdHlwZSA9IEB7QHskdHVwbGV9WzFdfVskcGFyYW1ldGVySW5kZXhdOwog
ICAgICAgICBteSAkb3B0aW9uYWxpdHkgPSBAe0B7JHR1cGxlfVsyXX1bJHBhcmFtZXRlckluZGV4
XTsKLSAgICAgICAgaWYgKCRpZGxUeXBlLT5pc1VuaW9uKSB7Ci0gICAgICAgICAgICBmb3IgbXkg
JGlkbFN1YnR5cGUgKEdldEZsYXR0ZW5lZE1lbWJlclR5cGVzKCRpZGxUeXBlKSkgewotICAgICAg
ICAgICAgICAgIHJldHVybiBAeyR0dXBsZX1bMF0gaWYgJG1hdGNoZXMtPigkaWRsU3VidHlwZSwg
JG9wdGlvbmFsaXR5KTsKKyAgICAgICAgaWYgKCR0eXBlLT5pc1VuaW9uKSB7CisgICAgICAgICAg
ICBmb3IgbXkgJHN1YnR5cGUgKEdldEZsYXR0ZW5lZE1lbWJlclR5cGVzKCR0eXBlKSkgeworICAg
ICAgICAgICAgICAgIHJldHVybiBAeyR0dXBsZX1bMF0gaWYgJG1hdGNoZXMtPigkc3VidHlwZSwg
JG9wdGlvbmFsaXR5KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHJldHVybiBAeyR0dXBsZX1bMF0gaWYgJG1hdGNoZXMtPigkaWRsVHlwZSwgJG9wdGlvbmFs
aXR5KTsKKyAgICAgICAgICAgIHJldHVybiBAeyR0dXBsZX1bMF0gaWYgJG1hdGNoZXMtPigkdHlw
ZSwgJG9wdGlvbmFsaXR5KTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTIwNzQsOSArMjA2Myw5
IEBAIHN1YiBHZXRPdmVybG9hZFRoYXRNYXRjaGVzSWdub3JpbmdVbmlvblMKICAgICBteSAoJFMs
ICRwYXJhbWV0ZXJJbmRleCwgJG1hdGNoZXMpID0gQF87CiAKICAgICBmb3IgbXkgJHR1cGxlIChA
eyRTfSkgewotICAgICAgICBteSAkaWRsVHlwZSA9IEB7QHskdHVwbGV9WzFdfVskcGFyYW1ldGVy
SW5kZXhdOworICAgICAgICBteSAkdHlwZSA9IEB7QHskdHVwbGV9WzFdfVskcGFyYW1ldGVySW5k
ZXhdOwogICAgICAgICBteSAkb3B0aW9uYWxpdHkgPSBAe0B7JHR1cGxlfVsyXX1bJHBhcmFtZXRl
ckluZGV4XTsKLSAgICAgICAgcmV0dXJuIEB7JHR1cGxlfVswXSBpZiAkbWF0Y2hlcy0+KCRpZGxU
eXBlLCAkb3B0aW9uYWxpdHkpOworICAgICAgICByZXR1cm4gQHskdHVwbGV9WzBdIGlmICRtYXRj
aGVzLT4oJHR5cGUsICRvcHRpb25hbGl0eSk7CiAgICAgfQogfQogCkBAIC0yMTAyLDcgKzIwOTEs
NyBAQCBzdWIgR2VuZXJhdGVPdmVybG9hZGVkRnVuY3Rpb25PckNvbnN0cnVjCiAgICAgbXkgKCRm
dW5jdGlvbiwgJGludGVyZmFjZSwgJGlzQ29uc3RydWN0b3IpID0gQF87CiAgICAgbXkgJWFsbFNl
dHMgPSBDb21wdXRlRWZmZWN0aXZlT3ZlcmxvYWRTZXQoJGZ1bmN0aW9uLT57b3ZlcmxvYWRzfSk7
CiAKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgbXkgJGlu
dGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT50eXBlLT5uYW1lOwogICAgIG15ICRjbGFzc05hbWUg
PSAiSlMkaW50ZXJmYWNlTmFtZSI7CiAgICAgbXkgJGZ1bmN0aW9uTmFtZTsKICAgICBpZiAoJGlz
Q29uc3RydWN0b3IpIHsKQEAgLTIxMjIsNjggKzIxMTEsNjggQEAgc3ViIEdlbmVyYXRlT3Zlcmxv
YWRlZEZ1bmN0aW9uT3JDb25zdHJ1YwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRp
ZlxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgIH07CiAgICAgbXkgJGlzT3B0aW9uYWxQ
YXJhbWV0ZXIgPSBzdWIgewotICAgICAgICBteSAoJGlkbFR5cGUsICRvcHRpb25hbGl0eSkgPSBA
XzsKKyAgICAgICAgbXkgKCR0eXBlLCAkb3B0aW9uYWxpdHkpID0gQF87CiAgICAgICAgIHJldHVy
biAkb3B0aW9uYWxpdHkgZXEgIm9wdGlvbmFsIjsKICAgICB9OwogICAgIG15ICRpc0RpY3Rpb25h
cnlQYXJhbWV0ZXIgPSBzdWIgewotICAgICAgICBteSAoJGlkbFR5cGUsICRvcHRpb25hbGl0eSkg
PSBAXzsKLSAgICAgICAgcmV0dXJuICRpZGxUeXBlLT5uYW1lIGVxICJEaWN0aW9uYXJ5IiB8fCAk
Y29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5VHlwZSgkaWRsVHlwZSk7CisgICAgICAgIG15ICgk
dHlwZSwgJG9wdGlvbmFsaXR5KSA9IEBfOworICAgICAgICByZXR1cm4gJHR5cGUtPm5hbWUgZXEg
IkRpY3Rpb25hcnkiIHx8ICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCR0eXBlKTsK
ICAgICB9OwogICAgIG15ICRpc051bGxhYmxlT3JEaWN0aW9uYXJ5UGFyYW1ldGVyT3JVbmlvbkNv
bnRhaW5pbmdPbmUgPSBzdWIgewotICAgICAgICBteSAoJGlkbFR5cGUsICRvcHRpb25hbGl0eSkg
PSBAXzsKLSAgICAgICAgcmV0dXJuIDEgaWYgJGlkbFR5cGUtPmlzTnVsbGFibGU7Ci0gICAgICAg
IGlmICgkaWRsVHlwZS0+aXNVbmlvbikgewotICAgICAgICAgICAgZm9yIG15ICRpZGxTdWJ0eXBl
IChHZXRGbGF0dGVuZWRNZW1iZXJUeXBlcygkaWRsVHlwZSkpIHsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gMSBpZiAkaWRsVHlwZS0+aXNOdWxsYWJsZSB8fCAmJGlzRGljdGlvbmFyeVBhcmFtZXRl
cigkaWRsU3VidHlwZSwgJG9wdGlvbmFsaXR5KTsKKyAgICAgICAgbXkgKCR0eXBlLCAkb3B0aW9u
YWxpdHkpID0gQF87CisgICAgICAgIHJldHVybiAxIGlmICR0eXBlLT5pc051bGxhYmxlOworICAg
ICAgICBpZiAoJHR5cGUtPmlzVW5pb24pIHsKKyAgICAgICAgICAgIGZvciBteSAkc3VidHlwZSAo
R2V0RmxhdHRlbmVkTWVtYmVyVHlwZXMoJHR5cGUpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJu
IDEgaWYgJHR5cGUtPmlzTnVsbGFibGUgfHwgJiRpc0RpY3Rpb25hcnlQYXJhbWV0ZXIoJHN1YnR5
cGUsICRvcHRpb25hbGl0eSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gMDsK
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJldHVybiAmJGlzRGljdGlvbmFyeVBhcmFt
ZXRlcigkaWRsVHlwZSwgJG9wdGlvbmFsaXR5KTsKKyAgICAgICAgICAgIHJldHVybiAmJGlzRGlj
dGlvbmFyeVBhcmFtZXRlcigkdHlwZSwgJG9wdGlvbmFsaXR5KTsKICAgICAgICAgfQogICAgIH07
CiAgICAgbXkgJGlzUmVnRXhwT3JPYmplY3RQYXJhbWV0ZXIgPSBzdWIgewotICAgICAgICBteSAo
JGlkbFR5cGUsICRvcHRpb25hbGl0eSkgPSBAXzsKLSAgICAgICAgcmV0dXJuICRpZGxUeXBlLT5u
YW1lIGVxICJSZWdFeHAiIHx8ICRpZGxUeXBlLT5uYW1lIGVxICJvYmplY3QiOworICAgICAgICBt
eSAoJHR5cGUsICRvcHRpb25hbGl0eSkgPSBAXzsKKyAgICAgICAgcmV0dXJuICR0eXBlLT5uYW1l
IGVxICJSZWdFeHAiIHx8ICR0eXBlLT5uYW1lIGVxICJvYmplY3QiOwogICAgIH07CiAgICAgbXkg
JGlzT2JqZWN0T3JFcnJvclBhcmFtZXRlciA9IHN1YiB7Ci0gICAgICAgIG15ICgkaWRsVHlwZSwg
JG9wdGlvbmFsaXR5KSA9IEBfOwotICAgICAgICByZXR1cm4gJGlkbFR5cGUtPm5hbWUgZXEgIm9i
amVjdCIgfHwgJGlkbFR5cGUtPm5hbWUgZXEgIkVycm9yIjsKKyAgICAgICAgbXkgKCR0eXBlLCAk
b3B0aW9uYWxpdHkpID0gQF87CisgICAgICAgIHJldHVybiAkdHlwZS0+bmFtZSBlcSAib2JqZWN0
IiB8fCAkdHlwZS0+bmFtZSBlcSAiRXJyb3IiOwogICAgIH07CiAgICAgbXkgJGlzT2JqZWN0T3JF
cnJvck9yRE9NRXhjZXB0aW9uUGFyYW1ldGVyID0gc3ViIHsKLSAgICAgICAgbXkgKCRpZGxUeXBl
LCAkb3B0aW9uYWxpdHkpID0gQF87Ci0gICAgICAgIHJldHVybiAxIGlmICYkaXNPYmplY3RPckVy
cm9yUGFyYW1ldGVyKCRpZGxUeXBlLCAkb3B0aW9uYWxpdHkpOwotICAgICAgICByZXR1cm4gJGlk
bFR5cGUtPm5hbWUgZXEgIkRPTUV4Y2VwdGlvbiI7CisgICAgICAgIG15ICgkdHlwZSwgJG9wdGlv
bmFsaXR5KSA9IEBfOworICAgICAgICByZXR1cm4gMSBpZiAmJGlzT2JqZWN0T3JFcnJvclBhcmFt
ZXRlcigkdHlwZSwgJG9wdGlvbmFsaXR5KTsKKyAgICAgICAgcmV0dXJuICR0eXBlLT5uYW1lIGVx
ICJET01FeGNlcHRpb24iOwogICAgIH07CiAgICAgbXkgJGlzT2JqZWN0T3JDYWxsYmFja0Z1bmN0
aW9uUGFyYW1ldGVyID0gc3ViIHsKLSAgICAgICAgbXkgKCRpZGxUeXBlLCAkb3B0aW9uYWxpdHkp
ID0gQF87Ci0gICAgICAgIHJldHVybiAkaWRsVHlwZS0+bmFtZSBlcSAib2JqZWN0IiB8fCAkY29k
ZUdlbmVyYXRvci0+SXNGdW5jdGlvbk9ubHlDYWxsYmFja0ludGVyZmFjZSgkaWRsVHlwZSk7Cisg
ICAgICAgIG15ICgkdHlwZSwgJG9wdGlvbmFsaXR5KSA9IEBfOworICAgICAgICByZXR1cm4gJHR5
cGUtPm5hbWUgZXEgIm9iamVjdCIgfHwgJGNvZGVHZW5lcmF0b3ItPklzRnVuY3Rpb25Pbmx5Q2Fs
bGJhY2tJbnRlcmZhY2UoJHR5cGUpOwogICAgIH07CiAgICAgbXkgJGlzU2VxdWVuY2VPckZyb3pl
bkFycmF5UGFyYW1ldGVyID0gc3ViIHsKLSAgICAgICAgbXkgKCRpZGxUeXBlLCAkb3B0aW9uYWxp
dHkpID0gQF87Ci0gICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJv
emVuQXJyYXlUeXBlKCRpZGxUeXBlKTsKKyAgICAgICAgbXkgKCR0eXBlLCAkb3B0aW9uYWxpdHkp
ID0gQF87CisgICAgICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJvemVu
QXJyYXlUeXBlKCR0eXBlKTsKICAgICB9OwogICAgIG15ICRpc0RpY3Rpb25hcnlPck9iamVjdE9y
Q2FsbGJhY2tJbnRlcmZhY2VQYXJhbWV0ZXIgPSBzdWIgewotICAgICAgICBteSAoJGlkbFR5cGUs
ICRvcHRpb25hbGl0eSkgPSBAXzsKLSAgICAgICAgcmV0dXJuIDEgaWYgJiRpc0RpY3Rpb25hcnlQ
YXJhbWV0ZXIoJGlkbFR5cGUsICRvcHRpb25hbGl0eSk7Ci0gICAgICAgIHJldHVybiAxIGlmICRp
ZGxUeXBlLT5uYW1lIGVxICJvYmplY3QiOwotICAgICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVy
YXRvci0+SXNDYWxsYmFja0ludGVyZmFjZSgkaWRsVHlwZSkgJiYgISRjb2RlR2VuZXJhdG9yLT5J
c0Z1bmN0aW9uT25seUNhbGxiYWNrSW50ZXJmYWNlKCRpZGxUeXBlKTsKKyAgICAgICAgbXkgKCR0
eXBlLCAkb3B0aW9uYWxpdHkpID0gQF87CisgICAgICAgIHJldHVybiAxIGlmICYkaXNEaWN0aW9u
YXJ5UGFyYW1ldGVyKCR0eXBlLCAkb3B0aW9uYWxpdHkpOworICAgICAgICByZXR1cm4gMSBpZiAk
dHlwZS0+bmFtZSBlcSAib2JqZWN0IjsKKyAgICAgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0
b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJHR5cGUpICYmICEkY29kZUdlbmVyYXRvci0+SXNGdW5j
dGlvbk9ubHlDYWxsYmFja0ludGVyZmFjZSgkdHlwZSk7CiAgICAgICAgIHJldHVybiAwOwogICAg
IH07CiAgICAgbXkgJGlzQm9vbGVhblBhcmFtZXRlciA9IHN1YiB7Ci0gICAgICAgIG15ICgkaWRs
VHlwZSwgJG9wdGlvbmFsaXR5KSA9IEBfOwotICAgICAgICByZXR1cm4gJGlkbFR5cGUtPm5hbWUg
ZXEgImJvb2xlYW4iOworICAgICAgICBteSAoJHR5cGUsICRvcHRpb25hbGl0eSkgPSBAXzsKKyAg
ICAgICAgcmV0dXJuICR0eXBlLT5uYW1lIGVxICJib29sZWFuIjsKICAgICB9OwogICAgIG15ICRp
c051bWVyaWNQYXJhbWV0ZXIgPSBzdWIgewotICAgICAgICBteSAoJGlkbFR5cGUsICRvcHRpb25h
bGl0eSkgPSBAXzsKLSAgICAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5Jc051bWVyaWNUeXBl
KCRpZGxUeXBlKTsKKyAgICAgICAgbXkgKCR0eXBlLCAkb3B0aW9uYWxpdHkpID0gQF87CisgICAg
ICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+SXNOdW1lcmljVHlwZSgkdHlwZSk7CiAgICAgfTsK
ICAgICBteSAkaXNTdHJpbmdPckVudW1QYXJhbWV0ZXIgPSBzdWIgewotICAgICAgICBteSAoJGlk
bFR5cGUsICRvcHRpb25hbGl0eSkgPSBAXzsKLSAgICAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9y
LT5Jc1N0cmluZ09yRW51bVR5cGUoJGlkbFR5cGUpOworICAgICAgICBteSAoJHR5cGUsICRvcHRp
b25hbGl0eSkgPSBAXzsKKyAgICAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ09y
RW51bVR5cGUoJHR5cGUpOwogICAgIH07CiAgICAgbXkgJGlzQW55UGFyYW1ldGVyID0gc3ViIHsK
LSAgICAgICAgbXkgKCRpZGxUeXBlLCAkb3B0aW9uYWxpdHkpID0gQF87Ci0gICAgICAgIHJldHVy
biAkaWRsVHlwZS0+bmFtZSBlcSAiYW55IjsKKyAgICAgICAgbXkgKCR0eXBlLCAkb3B0aW9uYWxp
dHkpID0gQF87CisgICAgICAgIHJldHVybiAkdHlwZS0+bmFtZSBlcSAiYW55IjsKICAgICB9Owog
CiAgICAgbXkgJG1heEFyZ0NvdW50ID0gTGVuZ3RoT2ZMb25nZXN0RnVuY3Rpb25QYXJhbWV0ZXJM
aXN0KCRmdW5jdGlvbi0+e292ZXJsb2Fkc30pOwpAQCAtMjIyMSwxNiArMjIxMCwxNiBAQCBFTkQK
IAogICAgICAgICAgICAgZm9yIG15ICR0dXBsZSAoQHskU30pIHsKICAgICAgICAgICAgICAgICBt
eSAkb3ZlcmxvYWQgPSBAeyR0dXBsZX1bMF07Ci0gICAgICAgICAgICAgICAgbXkgJGlkbFR5cGUg
PSBAe0B7JHR1cGxlfVsxXX1bJGRdOworICAgICAgICAgICAgICAgIG15ICR0eXBlID0gQHtAeyR0
dXBsZX1bMV19WyRkXTsKIAotICAgICAgICAgICAgICAgIG15IEBpZGxTdWJ0eXBlcyA9ICRpZGxU
eXBlLT5pc1VuaW9uID8gR2V0RmxhdHRlbmVkTWVtYmVyVHlwZXMoJGlkbFR5cGUpIDogKCAkaWRs
VHlwZSApOwotICAgICAgICAgICAgICAgIGZvciBteSAkaWRsU3VidHlwZSAoQGlkbFN1YnR5cGVz
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlw
ZSgkaWRsU3VidHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJGlkbFN1
YnR5cGUpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGlkbFN1YnR5cGUtPm5hbWUg
ZXEgIkRPTVdpbmRvdyIpIHsKKyAgICAgICAgICAgICAgICBteSBAc3VidHlwZXMgPSAkdHlwZS0+
aXNVbmlvbiA/IEdldEZsYXR0ZW5lZE1lbWJlclR5cGVzKCR0eXBlKSA6ICggJHR5cGUgKTsKKyAg
ICAgICAgICAgICAgICBmb3IgbXkgJHN1YnR5cGUgKEBzdWJ0eXBlcykgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJHN1YnR5cGUpIHx8ICRj
b2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCRzdWJ0eXBlKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCRzdWJ0eXBlLT5uYW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NV2luZG93U2hlbGwu
aCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICYkZ2VuZXJhdGVPdmVybG9hZENhbGxJ
Zk5lY2Vzc2FyeSgkb3ZlcmxvYWQsICJkaXN0aW5ndWlzaGluZ0FyZy5pc09iamVjdCgpICYmIChh
c09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKEpTRE9NV2luZG93U2hlbGw6Omlu
Zm8oKSkgfHwgYXNPYmplY3QoZGlzdGluZ3Vpc2hpbmdBcmcpLT5pbmhlcml0cyhKU0RPTVdpbmRv
dzo6aW5mbygpKSkiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJiRnZW5lcmF0ZU92ZXJsb2FkQ2FsbElmTmVjZXNzYXJ5KCRv
dmVybG9hZCwgImRpc3Rpbmd1aXNoaW5nQXJnLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QoZGlzdGlu
Z3Vpc2hpbmdBcmcpLT5pbmhlcml0cyhKUyIgLiAkaWRsU3VidHlwZS0+bmFtZSAuICI6OmluZm8o
KSkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJGdlbmVyYXRlT3ZlcmxvYWRDYWxs
SWZOZWNlc3NhcnkoJG92ZXJsb2FkLCAiZGlzdGluZ3Vpc2hpbmdBcmcuaXNPYmplY3QoKSAmJiBh
c09iamVjdChkaXN0aW5ndWlzaGluZ0FyZyktPmluaGVyaXRzKEpTIiAuICRzdWJ0eXBlLT5uYW1l
IC4gIjo6aW5mbygpKSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtMjMzMiw4ICsyMzIxLDggQEAgc3ViIEdl
dE5hdGl2ZVR5cGVGb3JDb252ZXJzaW9ucwogewogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsK
IAotICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKLSAgICAkaW50ZXJm
YWNlTmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBlTmVlZGluZ1RlYXJPZmZGb3JUeXBl
KCRpbnRlcmZhY2UtPnR5cGUpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVh
ck9mZkZvclR5cGUoJGludGVyZmFjZS0+dHlwZSk7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAk
aW50ZXJmYWNlLT50eXBlLT5uYW1lOworICAgICRpbnRlcmZhY2VOYW1lID0gJGNvZGVHZW5lcmF0
b3ItPkdldFNWR1R5cGVOZWVkaW5nVGVhck9mZigkaW50ZXJmYWNlLT50eXBlKSBpZiAkY29kZUdl
bmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGludGVyZmFjZS0+dHlwZSk7CiAgICAg
cmV0dXJuICRpbnRlcmZhY2VOYW1lOwogfQogCkBAIC0yNDg0LDcgKzI0NzMsNyBAQCBzdWIgR2V0
UnVudGltZUVuYWJsZUZ1bmN0aW9uTmFtZQogc3ViIEdldENhc3RpbmdIZWxwZXJGb3JUaGlzT2Jq
ZWN0CiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAgIG15ICRpbnRlcmZhY2VOYW1l
ID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2Ut
PnR5cGUtPm5hbWU7CiAKICAgICByZXR1cm4gImpzTm9kZUNhc3QiIGlmICRpbnRlcmZhY2VOYW1l
IGVxICJOb2RlIjsKICAgICByZXR1cm4gImpzRWxlbWVudENhc3QiIGlmICRpbnRlcmZhY2VOYW1l
IGVxICJFbGVtZW50IjsKQEAgLTI0OTksNyArMjQ4OCw3IEBAIHN1YiBHZXRJbmRleGVkR2V0dGVy
RXhwcmVzc2lvbgogICAgIG15ICRpbmRleGVkR2V0dGVyRnVuY3Rpb24gPSBzaGlmdDsKICAgICAK
ICAgICAjIEZJWE1FOiBTaG91bGQgdGhpcyB3b3JrIGZvciBhbGwgc3RyaW5nIHR5cGVzPwotICAg
IHJldHVybiAianNTdHJpbmdPclVuZGVmaW5lZChzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgp
Lml0ZW0oaW5kZXgpKSIgaWYgJGluZGV4ZWRHZXR0ZXJGdW5jdGlvbi0+c2lnbmF0dXJlLT5pZGxU
eXBlLT5uYW1lIGVxICJET01TdHJpbmciOworICAgIHJldHVybiAianNTdHJpbmdPclVuZGVmaW5l
ZChzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSIgaWYgJGluZGV4ZWRH
ZXR0ZXJGdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlLT5uYW1lIGVxICJET01TdHJpbmciOwogICAg
IHJldHVybiAidG9KUyhzdGF0ZSwgdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkiOwogfQogCkBAIC0yNTI1LDcgKzI1MTQsOCBAQCBz
dWIgYWRkVW5zY29wYWJsZVByb3BlcnRpZXMKIHN1YiBHZXRSZXN1bHRUeXBlRmlsdGVyCiB7CiAg
ICAgbXkgKCRzaWduYXR1cmUpID0gQF87Ci0gICAgbXkgJGlkbFR5cGUgPSAkc2lnbmF0dXJlLT5p
ZGxUeXBlOworCisgICAgbXkgJHR5cGUgPSAkc2lnbmF0dXJlLT50eXBlOwogCiAgICAgbXkgJVR5
cGVGaWx0ZXJzID0gKAogICAgICAgICAiYW55IiA9PiAiU3BlY0hlYXBUb3AiLApAQCAtMjU0Nywx
MCArMjUzNywxMCBAQCBzdWIgR2V0UmVzdWx0VHlwZUZpbHRlcgogICAgICAgICAiVVNWU3RyaW5n
IiA9PiAiU3BlY1N0cmluZyIsCiAgICAgKTsKIAotICAgIGlmIChleGlzdHMgJFR5cGVGaWx0ZXJz
eyRpZGxUeXBlLT5uYW1lfSkgewotICAgICAgICBteSAkcmVzdWx0VHlwZSA9ICJKU0M6OiRUeXBl
RmlsdGVyc3skaWRsVHlwZS0+bmFtZX0iOwotICAgICAgICBpZiAoJGlkbFR5cGUtPmlzTnVsbGFi
bGUpIHsKLSAgICAgICAgICAgIGRpZSAiXCJhbnlcIiB0eXBlIG11c3Qgbm90IGJlY29tZSBudWxs
YWJsZS4iIGlmICRpZGxUeXBlLT5uYW1lIGVxICJhbnkiOworICAgIGlmIChleGlzdHMgJFR5cGVG
aWx0ZXJzeyR0eXBlLT5uYW1lfSkgeworICAgICAgICBteSAkcmVzdWx0VHlwZSA9ICJKU0M6OiRU
eXBlRmlsdGVyc3skdHlwZS0+bmFtZX0iOworICAgICAgICBpZiAoJHR5cGUtPmlzTnVsbGFibGUp
IHsKKyAgICAgICAgICAgIGRpZSAiXCJhbnlcIiB0eXBlIG11c3Qgbm90IGJlY29tZSBudWxsYWJs
ZS4iIGlmICR0eXBlLT5uYW1lIGVxICJhbnkiOwogICAgICAgICAgICAgJHJlc3VsdFR5cGUgPSAi
KCRyZXN1bHRUeXBlIHwgSlNDOjpTcGVjT3RoZXIpIjsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gJHJlc3VsdFR5cGU7CkBAIC0yNTYyLDE1ICsyNTUyLDE1IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiB7CiAgICAgbXkgKCRvYmplY3QsICRpbnRlcmZhY2UsICRlbnVtZXJhdGlvbnMs
ICRkaWN0aW9uYXJpZXMpID0gQF87CiAKLSAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZh
Y2UtPm5hbWU7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT50eXBlLT5uYW1l
OwogICAgIG15ICRjbGFzc05hbWUgPSAiSlMkaW50ZXJmYWNlTmFtZSI7CiAKICAgICBteSAkaGFz
TGVnYWN5UGFyZW50ID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SlNMZWdhY3lQ
YXJlbnR9OwotICAgIG15ICRoYXNSZWFsUGFyZW50ID0gJGludGVyZmFjZS0+cGFyZW50OworICAg
IG15ICRoYXNSZWFsUGFyZW50ID0gJGludGVyZmFjZS0+cGFyZW50VHlwZTsKICAgICBteSAkaGFz
UGFyZW50ID0gJGhhc0xlZ2FjeVBhcmVudCB8fCAkaGFzUmVhbFBhcmVudDsKICAgICBteSAkcGFy
ZW50Q2xhc3NOYW1lID0gR2V0UGFyZW50Q2xhc3NOYW1lKCRpbnRlcmZhY2UpOwogICAgIG15ICR2
aXNpYmxlSW50ZXJmYWNlTmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRWaXNpYmxlSW50ZXJmYWNl
TmFtZSgkaW50ZXJmYWNlKTsKLSAgICBteSAkZXZlbnRUYXJnZXQgPSAkY29kZUdlbmVyYXRvci0+
SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwgIkV2ZW50VGFyZ2V0IikgJiYgJGludGVyZmFj
ZS0+bmFtZSBuZSAiRXZlbnRUYXJnZXQiOworICAgIG15ICRldmVudFRhcmdldCA9ICRjb2RlR2Vu
ZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiRXZlbnRUYXJnZXQiKSAmJiAk
aW50ZXJmYWNlLT50eXBlLT5uYW1lIG5lICJFdmVudFRhcmdldCI7CiAgICAgbXkgJG5lZWRzVmlz
aXRDaGlsZHJlbiA9IEluc3RhbmNlTmVlZHNWaXNpdENoaWxkcmVuKCRpbnRlcmZhY2UpOwogCiAg
ICAgbXkgJG5hbWVkR2V0dGVyRnVuY3Rpb24gPSBHZXROYW1lZEdldHRlckZ1bmN0aW9uKCRpbnRl
cmZhY2UpOwpAQCAtMjcyOCw3ICsyNzE4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgIHB1c2goQGhhc2hTcGVjaWFscywgJHNwZWNpYWwpOwogCiAgICAgICAgICAg
ICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRE9NSklU
In0pIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUxLCAiZG9tSklUR2V0dGVyU2V0
dGVyRm9yIiAuICRpbnRlcmZhY2UtPm5hbWUgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBoYXNo
VmFsdWUxLCAiZG9tSklUR2V0dGVyU2V0dGVyRm9yIiAuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUg
LiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUp
KTsKICAgICAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAiMCIpOwogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICBteSAkZ2V0dGVyID0gR2V0QXR0cmlidXRlR2V0dGVy
TmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAkYXR0cmlidXRlKTsKQEAgLTI5OTEsOCArMjk4
MSw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgdW5sZXNzIChTaG91bGRVc2VH
bG9iYWxPYmplY3RQcm90b3R5cGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJKU09iamVjdCogJHtjbGFzc05hbWV9OjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAie1xuIik7Ci0gICAgICAgIGlmICgkaW50ZXJmYWNlLT5wYXJlbnQpIHsKLSAgICAgICAg
ICAgIG15ICRwYXJlbnRDbGFzc05hbWVGb3JQcm90b3R5cGUgPSAiSlMiIC4gJGludGVyZmFjZS0+
cGFyZW50OworICAgICAgICBpZiAoJGludGVyZmFjZS0+cGFyZW50VHlwZSkgeworICAgICAgICAg
ICAgbXkgJHBhcmVudENsYXNzTmFtZUZvclByb3RvdHlwZSA9ICJKUyIgLiAkaW50ZXJmYWNlLT5w
YXJlbnRUeXBlLT5uYW1lOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0
dXJuICR7Y2xhc3NOYW1lfVByb3RvdHlwZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsICR7Y2xh
c3NOYW1lfVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCBnbG9iYWxPYmplY3QsICR7cGFy
ZW50Q2xhc3NOYW1lRm9yUHJvdG90eXBlfTo6cHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpKSk7
XG4iKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG15ICRwcm90b3R5cGUgPSAkaW50
ZXJmYWNlLT5pc0V4Y2VwdGlvbiA/ICJlcnJvclByb3RvdHlwZSIgOiAib2JqZWN0UHJvdG90eXBl
IjsKQEAgLTMwNDgsNyArMzAzOCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAg
ICAgICAgICAgIGlmICgkaW5kZXhlZEdldHRlckZ1bmN0aW9uKSB7CiAgICAgICAgICAgICAgICAg
IyBGSVhNRTogU2hvdWxkIHRoaXMgd29yayBmb3IgYWxsIHN0cmluZyB0eXBlcz8KLSAgICAgICAg
ICAgICAgICBpZiAoJGluZGV4ZWRHZXR0ZXJGdW5jdGlvbi0+c2lnbmF0dXJlLT5pZGxUeXBlLT5u
YW1lIGVxICJET01TdHJpbmciKSB7CisgICAgICAgICAgICAgICAgaWYgKCRpbmRleGVkR2V0dGVy
RnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZS0+bmFtZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoTElLRUxZKGluZGV4IDw9
IE1BWF9BUlJBWV9JTkRFWCkpIHtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChMSUtFTFkoaW5kZXgg
PCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpKSB7XG4iKTsKQEAgLTMxMjcsNyArMzEx
Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBuZXh0IGlmIElz
SlNCdWlsdGluKCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogCiAgICAgICAgICAgICBteSAkbmFt
ZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKLSAgICAgICAgICAgIG15ICRpZGxUeXBl
ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxUeXBlOworICAgICAgICAgICAgbXkgJHR5cGUg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CiAgICAgICAgICAgICBteSAkZ2V0RnVuY3Rp
b25OYW1lID0gR2V0QXR0cmlidXRlR2V0dGVyTmFtZSgkaW50ZXJmYWNlLCAkY2xhc3NOYW1lLCAk
YXR0cmlidXRlKTsKICAgICAgICAgICAgIG15ICRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lID0gJGNv
ZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEFzfSB8fCAkbmFtZSk7CiAgICAgICAgICAgICBteSAkZ2V0
dGVyTWF5VGhyb3dMZWdhY3lFeGNlcHRpb24gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e0dldHRlck1heVRocm93TGVnYWN5RXhjZXB0aW9ufTsKQEAgLTMxMzcs
NyArMzEyNyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAk
YXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25k
aXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIjaWYgJHthdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRh
dHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKIAotICAgICAgICAgICAgaWYgKCEkYXR0cmlidXRl
LT5pc1N0YXRpYyB8fCAkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGlkbFR5cGUp
KSB7CisgICAgICAgICAgICBpZiAoISRhdHRyaWJ1dGUtPmlzU3RhdGljIHx8ICRjb2RlR2VuZXJh
dG9yLT5Jc0NvbnN0cnVjdG9yVHlwZSgkdHlwZSkpIHsKICAgICAgICAgICAgICAgICBteSAkdGVt
cGxhdGVQYXJhbWV0ZXJzID0gIiR7Z2V0RnVuY3Rpb25OYW1lfUdldHRlciI7CiAgICAgICAgICAg
ICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TGVu
aWVudFRoaXN9KSB7CiAgICAgICAgICAgICAgICAgICAgICR0ZW1wbGF0ZVBhcmFtZXRlcnMgLj0g
IiwgQ2FzdGVkVGhpc0Vycm9yQmVoYXZpb3I6OlJldHVybkVhcmx5IjsKQEAgLTMxNzYsNyArMzE2
Niw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICMgR2xvYmFsIGNvbnN0cnVjdG9ycyBjYW4gYmUgZGlzYWJsZWQgYXQgcnVudGltZS4K
LSAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGlkbFR5
cGUpKSB7CisgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUeXBl
KCR0eXBlKSkgewogICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e0VuYWJsZWRCeVNldHRpbmd9KSB7CiAgICAgICAgICAgICAgICAg
ICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJGcmFtZS5oIik7CiAgICAgICAgICAgICAgICAgICAgIEFk
ZFRvSW1wbEluY2x1ZGVzKCJTZXR0aW5ncy5oIik7CkBAIC0zMjExLDggKzMyMDEsOCBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBzdGF0ZS5sZXhpY2FsR2xvYmFs
T2JqZWN0KCk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBJ
bnB1dEN1cnNvciYgY3Vyc29yID0gZ2xvYmFsT2JqZWN0LT5pbnB1dEN1cnNvcigpO1xuIik7CiAK
LSAgICAgICAgICAgICAgICBteSAkbmF0aXZlVHlwZSA9IEdldE5hdGl2ZVR5cGUoJGludGVyZmFj
ZSwgJGlkbFR5cGUpOwotICAgICAgICAgICAgICAgIG15ICRtZW1vaXplZFR5cGUgPSBHZXROYXRp
dmVUeXBlRm9yTWVtb2l6YXRpb24oJGludGVyZmFjZSwgJGlkbFR5cGUpOworICAgICAgICAgICAg
ICAgIG15ICRuYXRpdmVUeXBlID0gR2V0TmF0aXZlVHlwZSgkaW50ZXJmYWNlLCAkdHlwZSk7Cisg
ICAgICAgICAgICAgICAgbXkgJG1lbW9pemVkVHlwZSA9IEdldE5hdGl2ZVR5cGVGb3JNZW1vaXph
dGlvbigkaW50ZXJmYWNlLCAkdHlwZSk7CiAgICAgICAgICAgICAgICAgbXkgJGV4Y2VwdGlvbkNv
ZGUgPSAkZ2V0dGVyTWF5VGhyb3dMZWdhY3lFeGNlcHRpb24gPyAiZWMiIDogIjAiOwogICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxj
b25zdCBBdG9taWNTdHJpbmc+IGJpbmRpbmdOYW1lKFwiJGludGVyZmFjZU5hbWUuJG5hbWVcIiwg
QXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCk7XG4iKTsKICAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoY3Vyc29yLmlzQ2FwdHVyaW5nKCkpIHtcbiIp
OwpAQCAtMzI0MiwxNSArMzIzMiwxNSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRE9NQmluZGluZy5oIn0gPSAxOwogICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0
LndyYXBwZWQoKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiBzaG91bGRBbGxvd0FjY2Vzc1RvTm9kZSgmc3RhdGUsIGltcGwuIiAuICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZSAuICIoKSkgPyAiIC4gTmF0aXZlVG9KU1ZhbHVlVXNpbmdSZWZl
cmVuY2VzKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGludGVyZmFjZSwgImltcGwuJGltcGxH
ZXR0ZXJGdW5jdGlvbk5hbWUoKSIsICJ0aGlzT2JqZWN0IikgLiAiIDoganNOdWxsKCk7XG4iKTsK
LSAgICAgICAgICAgIH0gZWxzaWYgKCRpZGxUeXBlLT5uYW1lIGVxICJFdmVudEhhbmRsZXIiKSB7
CisgICAgICAgICAgICB9IGVsc2lmICgkdHlwZS0+bmFtZSBlcSAiRXZlbnRIYW5kbGVyIikgewog
ICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkV2ZW50TmFtZXMuaCJ9ID0gMTsKICAgICAg
ICAgICAgICAgICBteSAkZ2V0dGVyID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntXaW5kb3dFdmVudEhhbmRsZXJ9ID8gIndpbmRvd0V2ZW50SGFuZGxlckF0dHJp
YnV0ZSIKICAgICAgICAgICAgICAgICAgICAgOiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e0RvY3VtZW50RXZlbnRIYW5kbGVyfSA/ICJkb2N1bWVudEV2ZW50SGFu
ZGxlckF0dHJpYnV0ZSIKICAgICAgICAgICAgICAgICAgICAgOiAiZXZlbnRIYW5kbGVyQXR0cmli
dXRlIjsKICAgICAgICAgICAgICAgICBteSAkZXZlbnROYW1lID0gRXZlbnRIYW5kbGVyQXR0cmli
dXRlRXZlbnROYW1lKCRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHJldHVybiAkZ2V0dGVyKHRoaXNPYmplY3Qud3JhcHBlZCgpLCAkZXZlbnROYW1l
KTtcbiIpOwotICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0
b3JUeXBlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aWRsVHlwZSkpIHsKLSAgICAgICAgICAgICAg
ICBteSAkY29uc3RydWN0b3JUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxUeXBlLT5u
YW1lOworICAgICAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JU
eXBlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSkpIHsKKyAgICAgICAgICAgICAgICBteSAk
Y29uc3RydWN0b3JUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlLT5uYW1lOwogICAg
ICAgICAgICAgICAgICRjb25zdHJ1Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3RvciQvLzsKICAgICAg
ICAgICAgICAgICAjIFdoZW4gQ29uc3RydWN0b3IgYXR0cmlidXRlIGlzIHVzZWQgYnkgRE9NV2lu
ZG93LmlkbCwgaXQncyBjb3JyZWN0IHRvIHBhc3MgdGhpc09iamVjdCBhcyB0aGUgZ2xvYmFsIG9i
amVjdAogICAgICAgICAgICAgICAgICMgV2hlbiBKU0RPTVdyYXBwZXJzIGhhdmUgYSBiYWNrLXBv
aW50ZXIgdG8gdGhlIGdsb2JhbE9iamVjdCB3ZSBjYW4gcGFzcyB0aGlzT2JqZWN0LT5nbG9iYWxP
YmplY3QoKQpAQCAtMzI5OSw3ICszMjg5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCBAY2FsbFdpdGhBcmdzKTsK
ICAgICAgICAgICAgICAgICAgICAgbXkgJGpzVHlwZSA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUmVm
ZXJlbmNlcygkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbnRlcmZhY2UsICIke2Z1bmN0aW9u
TmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKSIsICJ0aGlzT2JqZWN0Iik7CiAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8mIGltcGwgPSB0
aGlzT2JqZWN0LndyYXBwZWQoKTtcbiIpIGlmICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkaWRs
VHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR0Fu
aW1hdGVkVHlwZSgkdHlwZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGF1dG8gb2JqID0gJGpzVHlwZTtcbiIpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSByZXN1bHQgPSB0b0pTKCZzdGF0
ZSwgdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgb2JqLmdldCgpKTtcbiIpOwogICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgewpAQCAtMzMzMCw3ICszMzIwLDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KIAogICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkRPTUpJVCJ9KSB7CiAgICAgICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3siPHd0Zi9OZXZlckRlc3Ryb3llZC5oPiJ9ID0gMTsKLSAgICAgICAgICAgICAgICBteSAk
aW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgICAgICAgICAgICAgbXkgJGlu
dGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT50eXBlLT5uYW1lOwogICAgICAgICAgICAgICAgIG15
ICRhdHRyaWJ1dGVOYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICAg
ICAgICAgIG15ICRnZW5lcmF0b3JOYW1lID0gJGludGVyZmFjZU5hbWUgLiAkY29kZUdlbmVyYXRv
ci0+V0tfdWNmaXJzdCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUpOwogICAgICAgICAgICAg
ICAgIG15ICRkb21KSVRDbGFzc05hbWUgPSAkZ2VuZXJhdG9yTmFtZSAuICJET01KSVQiOwpAQCAt
MzQ0Nyw3ICszNDM3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
IG5leHQgaWYgSXNKU0J1aWx0aW4oJGludGVyZmFjZSwgJGF0dHJpYnV0ZSk7CiAKICAgICAgICAg
ICAgIG15ICRuYW1lID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5uYW1lOwotICAgICAgICAgICAg
bXkgJGlkbFR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmlkbFR5cGU7CisgICAgICAgICAg
ICBteSAkdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsKICAgICAgICAgICAgIG15
ICRwdXRGdW5jdGlvbk5hbWUgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZhY2UsICRj
bGFzc05hbWUsICRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgbXkgJGltcGxTZXR0ZXJGdW5jdGlv
bk5hbWUgPSAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkbmFtZSk7CiAgICAgICAgICAgICBt
eSAkc2V0dGVyTWF5VGhyb3dMZWdhY3lFeGNlcHRpb24gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e1NldHRlck1heVRocm93TGVnYWN5RXhjZXB0aW9ufTsKQEAg
LTM1MDEsNyArMzQ5MSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAg
ICBpZiAoSGFzQ3VzdG9tU2V0dGVyKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzKSkgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHRoaXNP
YmplY3Quc2V0JGltcGxTZXR0ZXJGdW5jdGlvbk5hbWUoc3RhdGUsIHZhbHVlKTtcbiIpOwogICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiB0cnVlO1xuIik7Ci0g
ICAgICAgICAgICB9IGVsc2lmICgkaWRsVHlwZS0+bmFtZSBlcSAiRXZlbnRIYW5kbGVyIikgewor
ICAgICAgICAgICAgfSBlbHNpZiAoJHR5cGUtPm5hbWUgZXEgIkV2ZW50SGFuZGxlciIpIHsKICAg
ICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0V2ZW50TGlzdGVuZXIuaCJ9ID0gMTsKICAg
ICAgICAgICAgICAgICBteSAkZXZlbnROYW1lID0gRXZlbnRIYW5kbGVyQXR0cmlidXRlRXZlbnRO
YW1lKCRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgICMgRklYTUU6IEZpbmQgYSB3YXkgdG8g
ZG8gdGhpcyBzcGVjaWFsIGNhc2Ugd2l0aG91dCBoYXJkY29kaW5nIHRoZSBjbGFzcyBhbmQgYXR0
cmlidXRlIG5hbWVzIGhlcmUuCkBAIC0zNTE2LDggKzM1MDYsOCBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAk
c2V0dGVyKHN0YXRlLCB0aGlzT2JqZWN0LCB0aGlzT2JqZWN0LndyYXBwZWQoKSwgJGV2ZW50TmFt
ZSwgdmFsdWUpO1xuIik7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIHJldHVybiB0cnVlO1xuIik7Ci0gICAgICAgICAgICB9IGVsc2lm
ICgkY29kZUdlbmVyYXRvci0+SXNDb25zdHJ1Y3RvclR5cGUoJGlkbFR5cGUpKSB7Ci0gICAgICAg
ICAgICAgICAgbXkgJGNvbnN0cnVjdG9yVHlwZSA9ICRpZGxUeXBlLT5uYW1lOworICAgICAgICAg
ICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzQ29uc3RydWN0b3JUeXBlKCR0eXBlKSkgewor
ICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkdHlwZS0+bmFtZTsKICAgICAg
ICAgICAgICAgICAkY29uc3RydWN0b3JUeXBlID1+IHMvQ29uc3RydWN0b3IkLy87CiAgICAgICAg
ICAgICAgICAgIyAkY29uc3RydWN0b3JUeXBlIH49IC9Db25zdHJ1Y3RvciQvIGluZGljYXRlcyB0
aGF0IGl0IGlzIE5hbWVkQ29uc3RydWN0b3IuCiAgICAgICAgICAgICAgICAgIyBXZSBkbyBub3Qg
Z2VuZXJhdGUgdGhlIGhlYWRlciBmaWxlIGZvciBOYW1lZENvbnN0cnVjdG9yIG9mIGNsYXNzIFhY
WFgsCkBAIC0zNTM5LDcgKzM1MjksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICAgICAgICAgICAgICBteSAkcHV0Rm9yd2FyZHMgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+e1B1dEZvcndhcmRzfTsKICAgICAgICAgICAgICAgICAgICAg
aWYgKCRwdXRGb3J3YXJkcykgewogICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGltcGxHZXR0
ZXJGdW5jdGlvbk5hbWUgPSAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkYXR0cmlidXRlLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0ltcGxlbWVudGVkQXN9IHx8ICRuYW1lKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIG15ICRmb3J3YXJkZWRBdHRyaWJ1dGUgPSAkY29kZUdl
bmVyYXRvci0+R2V0QXR0cmlidXRlRnJvbUludGVyZmFjZSgkaW50ZXJmYWNlLCAkaWRsVHlwZS0+
bmFtZSwgJHB1dEZvcndhcmRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG15ICRmb3J3YXJk
ZWRBdHRyaWJ1dGUgPSAkY29kZUdlbmVyYXRvci0+R2V0QXR0cmlidXRlRnJvbUludGVyZmFjZSgk
aW50ZXJmYWNlLCAkdHlwZS0+bmFtZSwgJHB1dEZvcndhcmRzKTsKIAogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCRmb3J3YXJkZWRBdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Q0VSZWFjdGlvbnN9KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIjaWYgRU5BQkxFKENVU1RPTV9FTEVNRU5UUylcbiIpOwpAQCAtMzU0
OCwxOSArMzUzOCwxOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVl
LmgifSA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAg
ICAgICAgIG15ICR0eXBlTmFtZSA9ICRpZGxUeXBlLT5uYW1lOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aXNOdWxsYWJsZSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJlZlB0cjwke3R5cGVO
YW1lfT4gZm9yd2FyZGVkSW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLiR7aW1wbEdldHRlckZ1
bmN0aW9uTmFtZX0oKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0eXBlLT5p
c051bGxhYmxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgUmVmUHRyPCIgLiAkdHlwZS0+bmFtZSAuICI+IGZvcndhcmRlZEltcGwgPSB0aGlz
T2JqZWN0LndyYXBwZWQoKS4ke2ltcGxHZXR0ZXJGdW5jdGlvbk5hbWV9KCk7XG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWZvcndh
cmRlZEltcGwpXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuIGZhbHNlO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byYgaW1wbCA9ICpmb3J3YXJkZWRJbXBs
O1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICMgQXR0cmlidXRlIGlzIG5vdCBudWxsYWJsZSwgdGhlIGltcGxlbWVudGF0
aW9uIGlzIGV4cGVjdGVkIHRvIHJldHVybiBhIHJlZmVyZW5jZS4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBSZWY8JHt0eXBlTmFtZX0+IGZvcndh
cmRlZEltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS4ke2ltcGxHZXR0ZXJGdW5jdGlvbk5hbWV9
KCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBSZWY8IiAuICR0eXBlLT5uYW1lIC4gIj4gZm9yd2FyZGVkSW1wbCA9IHRoaXNPYmplY3Qu
d3JhcHBlZCgpLiR7aW1wbEdldHRlckZ1bmN0aW9uTmFtZX0oKTtcbiIpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGF1dG8mIGltcGwgPSBmb3J3
YXJkZWRJbXBsLmdldCgpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAkYXR0cmlidXRlID0gJGZvcndhcmRlZEF0dHJpYnV0ZTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICRpZGxUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxU
eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGUgPSAkYXR0cmlidXRlLT5zaWduYXR1
cmUtPnR5cGU7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53
cmFwcGVkKCk7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAtMzU3MSwxNCArMzU2MCwx
NCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgIG15ICRzaG91
bGRQYXNzQnlSZWZlcmVuY2UgPSBTaG91bGRQYXNzV3JhcHBlckJ5UmVmZXJlbmNlKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZSwgJGludGVyZmFjZSk7CiAKICAgICAgICAgICAgICAgICBteSAoJG5hdGl2
ZVZhbHVlLCAkbWF5VGhyb3dFeGNlcHRpb24pID0gSlNWYWx1ZVRvTmF0aXZlKCRpbnRlcmZhY2Us
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgInZhbHVlIiwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0sICImc3RhdGUiLCAic3RhdGUiLCAidGhp
c09iamVjdCIpOwotICAgICAgICAgICAgICAgIGlmICghJHNob3VsZFBhc3NCeVJlZmVyZW5jZSAm
JiAoJGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJGlkbFR5cGUpIHx8ICRjb2RlR2VuZXJh
dG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCRpZGxUeXBlKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ISRzaG91bGRQYXNzQnlSZWZlcmVuY2UgJiYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBl
KCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSkpKSB7CiAg
ICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IjxydW50aW1lL0Vycm9yLmg+In0gPSAx
OwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAiIC4gR2V0TmF0
aXZlVHlwZUZyb21TaWduYXR1cmUoJGludGVyZmFjZSwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKSAu
ICIgbmF0aXZlVmFsdWUgPSBudWxscHRyO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmICghdmFsdWUuaXNVbmRlZmluZWRPck51bGwoKSkge1xuIik7
CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBuYXRpdmVW
YWx1ZSA9ICRuYXRpdmVWYWx1ZTtcbiIpOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7
XG4iKSBpZiAkbWF5VGhyb3dFeGNlcHRpb247CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICBpZiAoVU5MSUtFTFkoIW5hdGl2ZVZhbHVlKSkge1xuIik7Ci0g
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgdGhyb3dB
dHRyaWJ1dGVUeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIFwiJHZpc2libGVJbnRlcmZhY2VO
YW1lXCIsIFwiJG5hbWVcIiwgXCIiIC4gJGlkbFR5cGUtPm5hbWUgLiAiXCIpO1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgdGhyb3dBdHRy
aWJ1dGVUeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIFwiJHZpc2libGVJbnRlcmZhY2VOYW1l
XCIsIFwiJG5hbWVcIiwgXCIiIC4gJHR5cGUtPm5hbWUgLiAiXCIpO1xuIik7CiAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB9XG4i
KTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CkBA
IC0zNTg3LDE0ICszNTc2LDE0IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgZmFsc2UpO1xuIikgaWYgJG1heVRocm93RXhjZXB0aW9uOwogICAgICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlw
ZSgkaWRsVHlwZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzRW51
bVR5cGUoJHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgIHB1c2ggKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoVU5MSUtFTFkoIW5hdGl2ZVZhbHVlKSlcbiIpOwogICAgICAgICAgICAgICAgICAg
ICBwdXNoIChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybiBmYWxzZTtcbiIpOwogICAgICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICgkc2hvdWxkUGFzc0J5UmVmZXJlbmNl
KSB7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChVTkxJ
S0VMWSghbmF0aXZlVmFsdWUpKSB7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIHRocm93QXR0cmlidXRlVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Nj
b3BlLCBcIiR2aXNpYmxlSW50ZXJmYWNlTmFtZVwiLCBcIiRuYW1lXCIsIFwiIiAuICRpZGxUeXBl
LT5uYW1lIC4gIlwiKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICAgICAgdGhyb3dBdHRyaWJ1dGVUeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIFwi
JHZpc2libGVJbnRlcmZhY2VOYW1lXCIsIFwiJG5hbWVcIiwgXCIiIC4gJHR5cGUtPm5hbWUgLiAi
XCIpO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICByZXR1cm4gZmFsc2U7XG4iKTsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgfVxuIik7CiAgICAgICAgICAgICAgICAgfQpAQCAtMzYzMCw5ICszNjE5LDkgQEAg
c3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgICAgICAgICBteSAoJGZ1bmN0aW9uTmFtZSwgQGFyZ3VtZW50cykgPSAkY29kZUdl
bmVyYXRvci0+U2V0dGVyRXhwcmVzc2lvbihcJWltcGxJbmNsdWRlcywgJGludGVyZmFjZU5hbWUs
ICRhdHRyaWJ1dGUpOwogCi0gICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+
SXNUeXBlZEFycmF5VHlwZSgkaWRsVHlwZSkgYW5kIG5vdCAkaWRsVHlwZS0+bmFtZSBlcSAiQXJy
YXlCdWZmZXIiKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNU
eXBlZEFycmF5VHlwZSgkdHlwZSkgYW5kIG5vdCAkdHlwZS0+bmFtZSBlcSAiQXJyYXlCdWZmZXIi
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICJuYXRpdmVWYWx1
ZS5nZXQoKSIpOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+
SXNFbnVtVHlwZSgkaWRsVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNv
ZGVHZW5lcmF0b3ItPklzRW51bVR5cGUoJHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXNoKEBhcmd1bWVudHMsICJuYXRpdmVWYWx1ZS52YWx1ZSgpIik7CiAgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMs
ICRzaG91bGRQYXNzQnlSZWZlcmVuY2UgPyAiKm5hdGl2ZVZhbHVlIiA6ICJXVEZNb3ZlKG5hdGl2
ZVZhbHVlKSIpOwpAQCAtMzcyMSw3ICszNzEwLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KIAogICAgICAgICAgICAgbmV4dCBpZiAkaXNDdXN0b20gJiYgJGlzT3ZlcmxvYWRlZCAmJiAk
ZnVuY3Rpb24tPntvdmVybG9hZEluZGV4fSA+IDE7CiAKLSAgICAgICAgICAgIEFkZFRvSW1wbElu
Y2x1ZGVzRm9ySURMVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+aWRsVHlwZSkgdW5sZXNzICRp
c0N1c3RvbSBvciBJc1JldHVybmluZ1Byb21pc2UoJGZ1bmN0aW9uKTsKKyAgICAgICAgICAgIEFk
ZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlwZSgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSkgdW5s
ZXNzICRpc0N1c3RvbSBvciBJc1JldHVybmluZ1Byb21pc2UoJGZ1bmN0aW9uKTsKIAogICAgICAg
ICAgICAgbXkgJGZ1bmN0aW9uTmFtZSA9IEdldEZ1bmN0aW9uTmFtZSgkaW50ZXJmYWNlLCAkY2xh
c3NOYW1lLCAkZnVuY3Rpb24pOwogCkBAIC0zOTIwLDcgKzM5MDksNyBAQCBFTkQKIAogICAgIGlm
ICgkaW5kZXhlZEdldHRlckZ1bmN0aW9uKSB7CiAgICAgICAgICMgRklYTUU6IFNob3VsZCB0aGlz
IHdvcmsgZm9yIGFsbCBzdHJpbmcgdHlwZXMuCi0gICAgICAgICRpbXBsSW5jbHVkZXN7IlVSTC5o
In0gPSAxIGlmICRpbmRleGVkR2V0dGVyRnVuY3Rpb24tPnNpZ25hdHVyZS0+aWRsVHlwZS0+bmFt
ZSBlcSAiRE9NU3RyaW5nIjsKKyAgICAgICAgJGltcGxJbmNsdWRlc3siVVJMLmgifSA9IDEgaWYg
JGluZGV4ZWRHZXR0ZXJGdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlLT5uYW1lIGVxICJET01TdHJp
bmciOwogICAgICAgICBpZiAoJGludGVyZmFjZU5hbWUgPX4gL15IVE1MXHcqQ29sbGVjdGlvbiQv
IG9yICRpbnRlcmZhY2VOYW1lIGVxICJSYWRpb05vZGVMaXN0IikgewogICAgICAgICAgICAgJGlt
cGxJbmNsdWRlc3siSlNOb2RlLmgifSA9IDE7CiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJO
b2RlLmgifSA9IDE7CkBAIC00MTAwLDcgKzQwODksNyBAQCBzdWIgR2VuZXJhdGVTZXJpYWxpemVy
RnVuY3Rpb24KIHsKICAgICBteSAoJGludGVyZmFjZSwgJGNsYXNzTmFtZSkgPSBAXzsKIAotICAg
IG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICBteSAkaW50ZXJmYWNl
TmFtZSA9ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWU7CiAKICAgICBteSAkc2VyaWFsaXplckZ1bmN0
aW9uTmFtZSA9ICJ0b0pTT04iOwogICAgIG15ICRzZXJpYWxpemVyTmF0aXZlRnVuY3Rpb25OYW1l
ID0gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGNsYXNzTmFtZSkgLiAiUHJvdG90eXBlRnVu
Y3Rpb24iIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJHNlcmlhbGl6ZXJGdW5jdGlvbk5h
bWUpOwpAQCAtNDI4Niw3ICs0Mjc1LDcgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiB7
CiAgICAgbXkgKCRvdXRwdXRBcnJheSwgJGZ1bmN0aW9uLCAkaW50ZXJmYWNlLCAkZnVuY3Rpb25J
bXBsZW1lbnRhdGlvbk5hbWUsICRzdmdQcm9wZXJ0eVR5cGUsICRzdmdQcm9wZXJ0eU9yTGlzdFBy
b3BlcnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpID0gQF87CiAKLSAgICBteSAkaW50ZXJm
YWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50
ZXJmYWNlLT50eXBlLT5uYW1lOwogICAgIG15ICR2aXNpYmxlSW50ZXJmYWNlTmFtZSA9ICRjb2Rl
R2VuZXJhdG9yLT5HZXRWaXNpYmxlSW50ZXJmYWNlTmFtZSgkaW50ZXJmYWNlKTsKICAgICBteSBA
YXJndW1lbnRzOwogICAgIG15ICRmdW5jdGlvbk5hbWU7CkBAIC00MzE5LDQwICs0MzA4LDQwIEBA
IHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogCiAgICAgbXkgJGFyZ3VtZW50SW5kZXggPSAw
OwogICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7
Ci0gICAgICAgIG15ICRpZGxUeXBlID0gJHBhcmFtZXRlci0+aWRsVHlwZTsKKyAgICAgICAgbXkg
JHR5cGUgPSAkcGFyYW1ldGVyLT50eXBlOwogCi0gICAgICAgIGRpZSAiT3B0aW9uYWwgcGFyYW1l
dGVycyBvZiBub24tbnVsbGFibGUgd3JhcHBlciB0eXBlcyBhcmUgbm90IHN1cHBvcnRlZCIgaWYg
JHBhcmFtZXRlci0+aXNPcHRpb25hbCAmJiAhJHBhcmFtZXRlci0+aXNOdWxsYWJsZSAmJiAkY29k
ZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkaWRsVHlwZSk7CisgICAgICAgIGRpZSAiT3B0aW9u
YWwgcGFyYW1ldGVycyBvZiBub24tbnVsbGFibGUgd3JhcHBlciB0eXBlcyBhcmUgbm90IHN1cHBv
cnRlZCIgaWYgJHBhcmFtZXRlci0+aXNPcHRpb25hbCAmJiAhJHR5cGUtPmlzTnVsbGFibGUgJiYg
JGNvZGVHZW5lcmF0b3ItPklzV3JhcHBlclR5cGUoJHR5cGUpOwogICAgICAgICBkaWUgIk9wdGlv
bmFsIHBhcmFtZXRlcnMgcHJlY2VkaW5nIHZhcmlhZGljIHBhcmFtZXRlcnMgYXJlIG5vdCBzdXBw
b3J0ZWQiIGlmICgkcGFyYW1ldGVyLT5pc09wdGlvbmFsICYmICBAeyRmdW5jdGlvbi0+cGFyYW1l
dGVyc31bJG51bVBhcmFtZXRlcnMgLSAxXS0+aXNWYXJpYWRpYyk7CiAKICAgICAgICAgaWYgKCRw
YXJhbWV0ZXItPmlzT3B0aW9uYWwgJiYgIWRlZmluZWQoJHBhcmFtZXRlci0+ZGVmYXVsdCkpIHsK
ICAgICAgICAgICAgICMgQXMgcGVyIFdlYiBJREwsIG9wdGlvbmFsIGRpY3Rpb25hcnkgcGFyYW1l
dGVycyBhcmUgYWx3YXlzIGNvbnNpZGVyZWQgdG8gaGF2ZSBhIGRlZmF1bHQgdmFsdWUgb2YgYW4g
ZW1wdHkgZGljdGlvbmFyeSwgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQuCi0gICAgICAgICAg
ICAkcGFyYW1ldGVyLT5kZWZhdWx0KCJbXSIpIGlmICRpZGxUeXBlLT5uYW1lIGVxICJEaWN0aW9u
YXJ5IiBvciAkY29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5VHlwZSgkaWRsVHlwZSk7CisgICAg
ICAgICAgICAkcGFyYW1ldGVyLT5kZWZhdWx0KCJbXSIpIGlmICR0eXBlLT5uYW1lIGVxICJEaWN0
aW9uYXJ5IiBvciAkY29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5VHlwZSgkdHlwZSk7CiAKICAg
ICAgICAgICAgICMgV2UgdXNlIHVuZGVmaW5lZCBhcyBkZWZhdWx0IHZhbHVlIGZvciBvcHRpb25h
bCBwYXJhbWV0ZXJzIG9mIHR5cGUgJ2FueScgdW5sZXNzIHNwZWNpZmllZCBvdGhlcndpc2UuCi0g
ICAgICAgICAgICAkcGFyYW1ldGVyLT5kZWZhdWx0KCJ1bmRlZmluZWQiKSBpZiAkaWRsVHlwZS0+
bmFtZSBlcSAiYW55IjsKKyAgICAgICAgICAgICRwYXJhbWV0ZXItPmRlZmF1bHQoInVuZGVmaW5l
ZCIpIGlmICR0eXBlLT5uYW1lIGVxICJhbnkiOwogCiAgICAgICAgICAgICAjIFdlIHVzZSB0aGUg
bnVsbCBzdHJpbmcgYXMgZGVmYXVsdCB2YWx1ZSBmb3IgcGFyYW1ldGVycyBvZiB0eXBlIERPTVN0
cmluZyB1bmxlc3Mgc3BlY2lmaWVkIG90aGVyd2lzZS4KLSAgICAgICAgICAgICRwYXJhbWV0ZXIt
PmRlZmF1bHQoIm51bGwiKSBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRpZGxUeXBl
KTsKKyAgICAgICAgICAgICRwYXJhbWV0ZXItPmRlZmF1bHQoIm51bGwiKSBpZiAkY29kZUdlbmVy
YXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKIAogICAgICAgICAgICAgIyBBcyBwZXIgV2ViIElE
TCwgcGFzc2luZyB1bmRlZmluZWQgZm9yIGEgbnVsbGFibGUgcGFyYW1ldGVyIGlzIHRyZWF0ZWQg
YXMgbnVsbC4gVGhlcmVmb3JlLCB1c2UgbnVsbCBhcwogICAgICAgICAgICAgIyBkZWZhdWx0IHZh
bHVlIGZvciBudWxsYWJsZSBwYXJhbWV0ZXJzIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLgot
ICAgICAgICAgICAgJHBhcmFtZXRlci0+ZGVmYXVsdCgibnVsbCIpIGlmICRwYXJhbWV0ZXItPmlz
TnVsbGFibGU7CisgICAgICAgICAgICAkcGFyYW1ldGVyLT5kZWZhdWx0KCJudWxsIikgaWYgJHR5
cGUtPmlzTnVsbGFibGU7CiAKICAgICAgICAgICAgICMgRm9yIGNhbGxiYWNrIHBhcmFtZXRlcnMs
IHRoZSBnZW5lcmF0ZWQgYmluZGluZ3MgdHJlYXQgdW5kZWZpbmVkIGFzIG51bGwsIHNvIHVzZSBu
dWxsIGFzIGltcGxpY2l0IGRlZmF1bHQgdmFsdWUuCi0gICAgICAgICAgICAkcGFyYW1ldGVyLT5k
ZWZhdWx0KCJudWxsIikgaWYgJGNvZGVHZW5lcmF0b3ItPklzQ2FsbGJhY2tJbnRlcmZhY2UoJGlk
bFR5cGUpOworICAgICAgICAgICAgJHBhcmFtZXRlci0+ZGVmYXVsdCgibnVsbCIpIGlmICRjb2Rl
R2VuZXJhdG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCR0eXBlKTsKICAgICAgICAgfQogCiAgICAg
ICAgIG15ICRuYW1lID0gJHBhcmFtZXRlci0+bmFtZTsKICAgICAgICAgbXkgJHZhbHVlID0gJG5h
bWU7CiAKLSAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0NhbGxiYWNrSW50ZXJmYWNlKCRp
ZGxUeXBlKSkgewotICAgICAgICAgICAgbXkgJGNhbGxiYWNrQ2xhc3NOYW1lID0gR2V0Q2FsbGJh
Y2tDbGFzc05hbWUoJGlkbFR5cGUtPm5hbWUpOwotICAgICAgICAgICAgbXkgJHR5cGVOYW1lID0g
JGlkbFR5cGUtPm5hbWU7CisgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNDYWxsYmFja0lu
dGVyZmFjZSgkdHlwZSkpIHsKKyAgICAgICAgICAgIG15ICRjYWxsYmFja0NsYXNzTmFtZSA9IEdl
dENhbGxiYWNrQ2xhc3NOYW1lKCR0eXBlLT5uYW1lKTsKKyAgICAgICAgICAgIG15ICR0eXBlTmFt
ZSA9ICR0eXBlLT5uYW1lOwogICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJGNhbGxiYWNrQ2xh
c3NOYW1lLmgifSA9IDE7CiAgICAgICAgICAgICBpZiAoJHBhcmFtZXRlci0+aXNPcHRpb25hbCkg
ewogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBSZWZQdHI8JHR5cGVO
YW1lPiAkbmFtZTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBpZiAoIXN0YXRlLT5hcmd1bWVudCgkYXJndW1lbnRJbmRleCkuaXNVbmRlZmluZWRPck51bGwo
KSkge1xuIik7Ci0gICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0Z1bmN0aW9u
T25seUNhbGxiYWNrSW50ZXJmYWNlKCRpZGxUeXBlKSkgeworICAgICAgICAgICAgICAgIGlmICgk
Y29kZUdlbmVyYXRvci0+SXNGdW5jdGlvbk9ubHlDYWxsYmFja0ludGVyZmFjZSgkdHlwZSkpIHsK
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoIXN0
YXRlLT51bmNoZWNrZWRBcmd1bWVudCgkYXJndW1lbnRJbmRleCkuaXNGdW5jdGlvbigpKVxuIik7
CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICBpZiAoIXN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgkYXJndW1l
bnRJbmRleCkuaXNPYmplY3QoKSlcbiIpOwpAQCAtNDM2Nyw3ICs0MzU2LDcgQEAgc3ViIEdlbmVy
YXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIH1cbiIpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBkaWUgIkNh
bGxiYWNrSW50ZXJmYWNlIGRvZXMgbm90IHN1cHBvcnQgVmFyaWFkaWMgcGFyYW1ldGVyIiBpZiAk
cGFyYW1ldGVyLT5pc1ZhcmlhZGljOwotICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRv
ci0+SXNGdW5jdGlvbk9ubHlDYWxsYmFja0ludGVyZmFjZSgkaWRsVHlwZSkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJbnRlcmZh
Y2UoJHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBpZiAoVU5MSUtFTFkoIXN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgkYXJndW1lbnRJbmRleCku
aXNGdW5jdGlvbigpKSlcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoVU5MSUtFTFkoIXN0YXRlLT51
bmNoZWNrZWRBcmd1bWVudCgkYXJndW1lbnRJbmRleCkuaXNPYmplY3QoKSkpXG4iKTsKQEAgLTQz
ODMsMTYgKzQzNzIsMTYgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAg
ICAkdmFsdWUgPSAiV1RGTW92ZSgkbmFtZSkiOwogICAgICAgICB9IGVsc2lmICgkcGFyYW1ldGVy
LT5pc1ZhcmlhZGljKSB7CiAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKU0RPTUNvbnZlcnQu
aCJ9ID0gMTsKLSAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzRm9ySURMVHlwZSgkaWRsVHlw
ZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFs
fSk7CisgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlc0ZvcklETFR5cGUoJHR5cGUsICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbH0pOwogICAg
ICAgICAKLSAgICAgICAgICAgIG15ICRtZXRhVHlwZSA9IEdldElETFR5cGUoJGludGVyZmFjZSwg
JGlkbFR5cGUpOworICAgICAgICAgICAgbXkgJG1ldGFUeXBlID0gR2V0SURMVHlwZSgkaW50ZXJm
YWNlLCAkdHlwZSk7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byAk
bmFtZSA9IGNvbnZlcnRWYXJpYWRpY0FyZ3VtZW50czwkbWV0YVR5cGU+KCpzdGF0ZSwgJGFyZ3Vt
ZW50SW5kZXgpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTtcbiIpOwogCiAg
ICAgICAgICAgICAkdmFsdWUgPSAiV1RGTW92ZSgkbmFtZS5hcmd1bWVudHMudmFsdWUoKSkiOwog
Ci0gICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0VudW1UeXBlKCRpZGxUeXBlKSkg
ewotICAgICAgICAgICAgbXkgJGNsYXNzTmFtZSA9IEdldEVudW1lcmF0aW9uQ2xhc3NOYW1lKCRp
ZGxUeXBlLCAkaW50ZXJmYWNlKTsKKyAgICAgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklz
RW51bVR5cGUoJHR5cGUpKSB7CisgICAgICAgICAgICBteSAkY2xhc3NOYW1lID0gR2V0RW51bWVy
YXRpb25DbGFzc05hbWUoJHR5cGUsICRpbnRlcmZhY2UpOwogCiAgICAgICAgICAgICAkaW1wbElu
Y2x1ZGVzeyI8cnVudGltZS9FcnJvci5oPiJ9ID0gMTsKIApAQCAtNDQyNCw3ICs0NDEzLDcgQEAg
c3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAgICAgJGluZGVudCA9ICIg
ICAgIjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siSlMkY2xh
c3NOYW1lLmgifSA9IDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzRXh0ZXJuYWxFbnVtVHlwZSgkaWRs
VHlwZSk7CisgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJKUyRjbGFzc05hbWUuaCJ9ID0gMSBp
ZiAkY29kZUdlbmVyYXRvci0+SXNFeHRlcm5hbEVudW1UeXBlKCR0eXBlKTsKICAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiRpbmRlbnQgICAgJGRlZmluZU9wdGlvbmFsVmFsdWUgPSBw
YXJzZUVudW1lcmF0aW9uPCRjbGFzc05hbWU+KCpzdGF0ZSwgJHtuYW1lfVZhbHVlKTtcbiIpOwog
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiJGluZGVudCAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpO1xuIik7CiAgICAgICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIkaW5kZW50ICAgIGlmIChVTkxJS0VMWSghJG9wdGlvbmFsVmFs
dWUpKVxuIik7CkBAIC00NDM2LDEzICs0NDI1LDEzIEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnND
aGVjawogICAgICAgICAgICAgbXkgJG91dGVyOwogICAgICAgICAgICAgbXkgJGlubmVyOwogICAg
ICAgICAgICAgbXkgJG5hdGl2ZVR5cGUgPSBHZXROYXRpdmVUeXBlRnJvbVNpZ25hdHVyZSgkaW50
ZXJmYWNlLCAkcGFyYW1ldGVyKTsKLSAgICAgICAgICAgIG15ICRpc1RlYXJPZmYgPSAkY29kZUdl
bmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmZGb3JUeXBlKCRpZGxUeXBlKSAmJiAkaW50
ZXJmYWNlTmFtZSAhfiAvTGlzdCQvOworICAgICAgICAgICAgbXkgJGlzVGVhck9mZiA9ICRjb2Rl
R2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigkdHlwZSkgJiYgJGludGVyZmFjZU5h
bWUgIX4gL0xpc3QkLzsKICAgICAgICAgICAgIG15ICRzaG91bGRQYXNzQnlSZWZlcmVuY2UgPSAk
aXNUZWFyT2ZmIHx8IFNob3VsZFBhc3NXcmFwcGVyQnlSZWZlcmVuY2UoJHBhcmFtZXRlciwgJGlu
dGVyZmFjZSk7CiAKICAgICAgICAgICAgIGRpZSAiVmFyaWFkaWMgcGFyYW1ldGVyIGlzIGFscmVh
ZHkgaGFuZGxlZCBoZXJlIiBpZiAkcGFyYW1ldGVyLT5pc1ZhcmlhZGljOwogICAgICAgICAgICAg
bXkgJGFyZ3VtZW50TG9va3VwTWV0aG9kID0gJHBhcmFtZXRlci0+aXNPcHRpb25hbCA/ICJhcmd1
bWVudCIgOiAidW5jaGVja2VkQXJndW1lbnQiOwogCi0gICAgICAgICAgICBpZiAoISRzaG91bGRQ
YXNzQnlSZWZlcmVuY2UgJiYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCRpZGxUeXBl
KSB8fCAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkaWRsVHlwZSkpKSB7CisgICAg
ICAgICAgICBpZiAoISRzaG91bGRQYXNzQnlSZWZlcmVuY2UgJiYgKCRjb2RlR2VuZXJhdG9yLT5J
c1dyYXBwZXJUeXBlKCR0eXBlKSB8fCAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgk
dHlwZSkpKSB7CiAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvRXJyb3Iu
aD4ifSA9IDE7CiAgICAgICAgICAgICAgICAgbXkgJGNoZWNrZWRBcmd1bWVudCA9ICJzdGF0ZS0+
JGFyZ3VtZW50TG9va3VwTWV0aG9kKCRhcmd1bWVudEluZGV4KSI7CiAgICAgICAgICAgICAgICAg
bXkgJHVuY2hlY2tlZEFyZ3VtZW50ID0gInN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgkYXJndW1l
bnRJbmRleCkiOwpAQCAtNDQ1MiwxNSArNDQ0MSwxNSBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJz
Q2hlY2sKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICRuYW1l
ID0gJG5hdGl2ZVZhbHVlO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVl
KCkpO1xuIikgaWYgJG1heVRocm93RXhjZXB0aW9uOwogICAgICAgICAgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICAgICAgaWYgKFVOTElLRUxZKCEkbmFtZSkpXG4iKTsKLSAgICAgICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICByZXR1cm4gdGhyb3dBcmd1
bWVudFR5cGVFcnJvcigqc3RhdGUsIHRocm93U2NvcGUsICRhcmd1bWVudEluZGV4LCBcIiRuYW1l
XCIsIFwiJHZpc2libGVJbnRlcmZhY2VOYW1lXCIsICRxdW90ZWRGdW5jdGlvbk5hbWUsIFwiIiAu
ICRpZGxUeXBlLT5uYW1lIC4gIlwiKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKCpzdGF0
ZSwgdGhyb3dTY29wZSwgJGFyZ3VtZW50SW5kZXgsIFwiJG5hbWVcIiwgXCIkdmlzaWJsZUludGVy
ZmFjZU5hbWVcIiwgJHF1b3RlZEZ1bmN0aW9uTmFtZSwgXCIiIC4gJHR5cGUtPm5hbWUgLiAiXCIp
O1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpOwog
ICAgICAgICAgICAgICAgICR2YWx1ZSA9ICJXVEZNb3ZlKCRuYW1lKSI7CiAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICgkcGFyYW1ldGVyLT5pc09wdGlvbmFsICYmIGRl
ZmluZWQoJHBhcmFtZXRlci0+ZGVmYXVsdCkgJiYgIVdpbGxDb252ZXJ0VW5kZWZpbmVkVG9EZWZh
dWx0UGFyYW1ldGVyVmFsdWUoJGlkbFR5cGUsICRwYXJhbWV0ZXItPmRlZmF1bHQpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCRwYXJhbWV0ZXItPmlzT3B0aW9uYWwgJiYgZGVmaW5lZCgkcGFyYW1l
dGVyLT5kZWZhdWx0KSAmJiAhV2lsbENvbnZlcnRVbmRlZmluZWRUb0RlZmF1bHRQYXJhbWV0ZXJW
YWx1ZSgkdHlwZSwgJHBhcmFtZXRlci0+ZGVmYXVsdCkpIHsKICAgICAgICAgICAgICAgICAgICAg
bXkgJGRlZmF1bHRWYWx1ZSA9ICRwYXJhbWV0ZXItPmRlZmF1bHQ7CiAKICAgICAgICAgICAgICAg
ICAgICAgIyBTdHJpbmctcmVsYXRlZCBvcHRpbWl6YXRpb25zLgotICAgICAgICAgICAgICAgICAg
ICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkaWRsVHlwZSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBteSAkdXNlQXRvbWljU3RyaW5nID0gJHBhcmFtZXRlci0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57QXRvbWljU3RyaW5nfTsKICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkZGVmYXVsdFZhbHVlIGVxICJudWxsIikgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICRkZWZhdWx0VmFsdWUgPSAkdXNlQXRvbWljU3RyaW5nID8gIm51bGxBdG9tIiA6ICJT
dHJpbmcoKSI7CkBAIC00NDkyLDEzICs0NDgxLDEzIEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnND
aGVjawogCiAgICAgICAgICAgICBpZiAoJHNob3VsZFBhc3NCeVJlZmVyZW5jZSkgewogICAgICAg
ICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoVU5MSUtFTFkoISRuYW1lKSlc
biIpOwotICAgICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJu
IHRocm93QXJndW1lbnRUeXBlRXJyb3IoKnN0YXRlLCB0aHJvd1Njb3BlLCAkYXJndW1lbnRJbmRl
eCwgXCIkbmFtZVwiLCBcIiR2aXNpYmxlSW50ZXJmYWNlTmFtZVwiLCAkcXVvdGVkRnVuY3Rpb25O
YW1lLCBcIiIgLiAkaWRsVHlwZS0+bmFtZSAuICJcIik7XG4iKTsKKyAgICAgICAgICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0aHJvd0FyZ3VtZW50VHlwZUVycm9y
KCpzdGF0ZSwgdGhyb3dTY29wZSwgJGFyZ3VtZW50SW5kZXgsIFwiJG5hbWVcIiwgXCIkdmlzaWJs
ZUludGVyZmFjZU5hbWVcIiwgJHF1b3RlZEZ1bmN0aW9uTmFtZSwgXCIiIC4gJHR5cGUtPm5hbWUg
LiAiXCIpO1xuIik7CiAgICAgICAgICAgICAgICAgJHZhbHVlID0gJGlzVGVhck9mZiA/ICIkbmFt
ZS0+cHJvcGVydHlSZWZlcmVuY2UoKSIgOiAiKiRuYW1lIjsKICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCRpZGxUeXBlKSBh
bmQgJGlkbFR5cGUtPm5hbWUgbmUgIkFycmF5QnVmZmVyIikgeworICAgICAgICAgICAgaWYgKCRj
b2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBlKSBhbmQgJHR5cGUtPm5hbWUgbmUg
IkFycmF5QnVmZmVyIikgewogICAgICAgICAgICAgICAgJHZhbHVlID0gJHNob3VsZFBhc3NCeVJl
ZmVyZW5jZSA/ICIkbmFtZS5yZWxlYXNlTm9uTnVsbCgpIiA6ICJXVEZNb3ZlKCRuYW1lKSI7Ci0g
ICAgICAgICAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5VHlwZSgkaWRs
VHlwZSkpIHsKKyAgICAgICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25h
cnlUeXBlKCR0eXBlKSkgewogICAgICAgICAgICAgICAgICR2YWx1ZSA9ICJXVEZNb3ZlKCRuYW1l
KSI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTQ1MDksNyArNDQ5OCw3IEBAIHN1YiBH
ZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogCiAgICAgcHVzaCBAYXJndW1lbnRzLCBHZW5lcmF0ZVJl
dHVyblBhcmFtZXRlcnMoJGZ1bmN0aW9uKTsKICAgICBteSAkZnVuY3Rpb25TdHJpbmcgPSAiJGZ1
bmN0aW9uTmFtZSgiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpIjsKLSAgICAkZnVuY3Rp
b25TdHJpbmcgPSAicHJvcGFnYXRlRXhjZXB0aW9uKCpzdGF0ZSwgdGhyb3dTY29wZSwgJGZ1bmN0
aW9uU3RyaW5nKSIgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmlkbFR5cGUgJiYgJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmlkbFR5cGUtPm5hbWUgZXEgInZvaWQiICYmICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn07CisgICAgJGZ1bmN0
aW9uU3RyaW5nID0gInByb3BhZ2F0ZUV4Y2VwdGlvbigqc3RhdGUsIHRocm93U2NvcGUsICRmdW5j
dGlvblN0cmluZykiIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlICYmICRmdW5jdGlvbi0+
c2lnbmF0dXJlLT50eXBlLT5uYW1lIGVxICJ2b2lkIiAmJiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhyb3dFeGNlcHRpb259OwogCiAgICAgcmV0dXJuICgk
ZnVuY3Rpb25TdHJpbmcsIHNjYWxhciBAYXJndW1lbnRzKTsKIH0KQEAgLTQ1NzgsNyArNDU2Nyw3
IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyCiB7CiAgICAgbXkgKCRvYmplY3QsICRpbnRl
cmZhY2UsICRlbnVtZXJhdGlvbnMsICRkaWN0aW9uYXJpZXMpID0gQF87CiAKLSAgICBteSAkaW50
ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgbXkgJGludGVyZmFjZU5hbWUgPSAk
aW50ZXJmYWNlLT50eXBlLT5uYW1lOwogICAgIG15ICRjbGFzc05hbWUgPSAiSlMkaW50ZXJmYWNl
TmFtZSI7CiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlIGFuZCBoZWFkZXIg
cHJvdGVjdGlvbgpAQCAtNDYxNiw5ICs0NjA1LDkgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFk
ZXIKICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGludGVyZmFjZS0+ZnVuY3Rpb25z
fSkgewogICAgICAgICAgICAgbXkgQGFyZ3VtZW50cyA9ICgpOwogICAgICAgICAgICAgZm9yZWFj
aCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1ldGVyc30pIHsKLSAgICAgICAgICAg
ICAgICBwdXNoKEBhcmd1bWVudHMsIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGludGVyZmFj
ZSwgJHBhcmFtZXRlci0+aWRsVHlwZSkgLiAiICIgLiAkcGFyYW1ldGVyLT5uYW1lKTsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsIEdldE5hdGl2ZVR5cGVGb3JDYWxsYmFja3MoJGlu
dGVyZmFjZSwgJHBhcmFtZXRlci0+dHlwZSkgLiAiICIgLiAkcGFyYW1ldGVyLT5uYW1lKTsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmlydHVh
bCAiIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+aWRsVHlwZSkgLiAiICIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIo
IiAuIGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKTtcbiIpOworICAgICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsICIgLiBHZXROYXRpdmVUeXBlRm9yQ2FsbGJhY2tz
KCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIgIiAuICRmdW5jdGlv
bi0+c2lnbmF0dXJlLT5uYW1lIC4gIigiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpO1xu
Iik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTQ2NDgsNyArNDYzNyw3IEBAIHN1YiBHZW5lcmF0
ZUNhbGxiYWNrSW1wbGVtZW50YXRpb24KIHsKICAgICBteSAoJG9iamVjdCwgJGludGVyZmFjZSwg
JGVudW1lcmF0aW9ucywgJGRpY3Rpb25hcmllcykgPSBAXzsKIAotICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gJGludGVyZmFjZS0+bmFtZTsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZh
Y2UtPnR5cGUtPm5hbWU7CiAgICAgbXkgJHZpc2libGVJbnRlcmZhY2VOYW1lID0gJGNvZGVHZW5l
cmF0b3ItPkdldFZpc2libGVJbnRlcmZhY2VOYW1lKCRpbnRlcmZhY2UpOwogICAgIG15ICRjbGFz
c05hbWUgPSAiSlMkaW50ZXJmYWNlTmFtZSI7CiAKQEAgLTQ3NDgsMjAgKzQ3MzcsMjAgQEAgc3Vi
IEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIlxuLy8gRnVuY3Rpb25zXG4iKTsKICAgICAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7
JGludGVyZmFjZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICAgICAgbXkgQHBhcmFtcyA9IEB7JGZ1
bmN0aW9uLT5wYXJhbWV0ZXJzfTsKLSAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tfSB8fCBHZXROYXRpdmVUeXBlKCRpbnRlcmZh
Y2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5pZGxUeXBlKSBuZSAiYm9vbCIpIHsKKyAgICAgICAg
ICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9t
fSB8fCBHZXROYXRpdmVUeXBlKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBl
KSBuZSAiYm9vbCIpIHsKICAgICAgICAgICAgICAgICBuZXh0OwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlc0ZvcklETFR5cGUoJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmlkbFR5cGUpOworICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXNGb3JJRExUeXBlKCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKTsKICAgICAgICAgICAgIG15ICRmdW5jdGlvbk5hbWUg
PSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiXG4iIC4gR2V0TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+aWRsVHlwZSkgLiAiICR7Y2xhc3NOYW1lfTo6JHtmdW5jdGlvbk5hbWV9
KCIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiBHZXROYXRpdmVUeXBl
Rm9yQ2FsbGJhY2tzKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlKSAuICIg
JHtjbGFzc05hbWV9Ojoke2Z1bmN0aW9uTmFtZX0oIik7CiAKICAgICAgICAgICAgIG15IEBhcmdz
ID0gKCk7CiAgICAgICAgICAgICBteSBAYXJnc0NoZWNrID0gKCk7CiAgICAgICAgICAgICBmb3Jl
YWNoIG15ICRwYXJhbSAoQHBhcmFtcykgewogICAgICAgICAgICAgICAgIG15ICRwYXJhbU5hbWUg
PSAkcGFyYW0tPm5hbWU7Ci0gICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXNGb3JJRExU
eXBlKCRwYXJhbS0+aWRsVHlwZSwgMSk7Ci0gICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0
TmF0aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW0tPmlkbFR5cGUpIC4gIiAi
IC4gJHBhcmFtTmFtZSk7CisgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXNGb3JJRExU
eXBlKCRwYXJhbS0+dHlwZSwgMSk7CisgICAgICAgICAgICAgICAgcHVzaChAYXJncywgR2V0TmF0
aXZlVHlwZUZvckNhbGxiYWNrcygkaW50ZXJmYWNlLCAkcGFyYW0tPnR5cGUpIC4gIiAiIC4gJHBh
cmFtTmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
am9pbigiLCAiLCBAYXJncykpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIpXG4i
KTsKQEAgLTQ4MjksNyArNDgxOCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rp
b25DYWxsKCkKICAgICBteSAkbm9uZGV0ZXJtaW5pc3RpYyA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntOb25kZXRlcm1pbmlzdGljfTsKICAgICBteSAkbWF5VGhy
b3dMZWdhY3lFeGNlcHRpb24gPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57TWF5VGhyb3dMZWdhY3lFeGNlcHRpb259OwogCi0gICAgaWYgKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT5pZGxUeXBlLT5uYW1lIGVxICJ2b2lkIiB8fCBJc1JldHVybmluZ1Byb21pc2UoJGZ1
bmN0aW9uKSkgeworICAgIGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZS0+bmFtZSBlcSAi
dm9pZCIgfHwgSXNSZXR1cm5pbmdQcm9taXNlKCRmdW5jdGlvbikpIHsKICAgICAgICAgaWYgKCRu
b25kZXRlcm1pbmlzdGljKSB7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHJlcGxh
eS9JbnB1dEN1cnNvci5oPiIsICJXRUJfUkVQTEFZIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiNpZiBFTkFCTEUoV0VCX1JFUExBWSlcbiIpOwpAQCAtNDg2NSw4ICs0ODU0LDgg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoKQogICAgICAgICAgICAg
QWRkVG9JbXBsSW5jbHVkZXMoIjx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4iLCAiV0VCX1JFUExBWSIp
OwogCiAgICAgICAgICAgICBteSAkbmF0aXZlVHlwZSA9IEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0
dXJlKCRpbnRlcmZhY2UsICRmdW5jdGlvbi0+c2lnbmF0dXJlKTsKLSAgICAgICAgICAgIG15ICRt
ZW1vaXplZFR5cGUgPSBHZXROYXRpdmVUeXBlRm9yTWVtb2l6YXRpb24oJGludGVyZmFjZSwgJGZ1
bmN0aW9uLT5zaWduYXR1cmUtPmlkbFR5cGUpOwotICAgICAgICAgICAgbXkgJGJpbmRpbmdOYW1l
ID0gJGludGVyZmFjZS0+bmFtZSAuICIuIiAuICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwor
ICAgICAgICAgICAgbXkgJG1lbW9pemVkVHlwZSA9IEdldE5hdGl2ZVR5cGVGb3JNZW1vaXphdGlv
bigkaW50ZXJmYWNlLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSk7CisgICAgICAgICAgICBt
eSAkYmluZGluZ05hbWUgPSAkaW50ZXJmYWNlLT50eXBlLT5uYW1lIC4gIi4iIC4gJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPm5hbWU7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVu
dCAuICJKU1ZhbHVlIHJlc3VsdDtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIjaWYgRU5BQkxFKFdFQl9SRVBMQVkpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAkaW5kZW50IC4gIklucHV0Q3Vyc29yJiBjdXJzb3IgPSBzdGF0ZS0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLT5pbnB1dEN1cnNvcigpO1xuIik7CkBAIC00OTI2LDcgKzQ5MTUsNyBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbkl0ZXJhYmxlRnVuY3RpCiB7CiAgICAgbXkgJGludGVyZmFj
ZSA9IHNoaWZ0OwogCi0gICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwor
ICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+dHlwZS0+bmFtZTsKICAgICBteSAk
Y2xhc3NOYW1lID0gIkpTJGludGVyZmFjZU5hbWUiOwogICAgIG15ICR2aXNpYmxlSW50ZXJmYWNl
TmFtZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRWaXNpYmxlSW50ZXJmYWNlTmFtZSgkaW50ZXJmYWNl
KTsKIApAQCAtNDkzOSw4ICs0OTI4LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb25JdGVy
YWJsZUZ1bmN0aQogCiAgICAgbXkgJGl0ZXJhdG9yVHJhaXRzTmFtZSA9ICIke2ludGVyZmFjZU5h
bWV9SXRlcmF0b3JUcmFpdHMiOwogICAgIG15ICRpdGVyYXRvclRyYWl0c1R5cGUgPSAkaW50ZXJm
YWNlLT5pdGVyYWJsZS0+aXNLZXlWYWx1ZSA/ICJKU0RPTUl0ZXJhdG9yVHlwZTo6TWFwIiA6ICJK
U0RPTUl0ZXJhdG9yVHlwZTo6U2V0IjsKLSAgICBteSAkaXRlcmF0b3JUcmFpdHNLZXlUeXBlID0g
JGludGVyZmFjZS0+aXRlcmFibGUtPmlzS2V5VmFsdWUgPyBHZXRJRExUeXBlKCRpbnRlcmZhY2Us
ICRpbnRlcmZhY2UtPml0ZXJhYmxlLT5pZGxLZXlUeXBlKSA6ICJ2b2lkIjsKLSAgICBteSAkaXRl
cmF0b3JUcmFpdHNWYWx1ZVR5cGUgPSBHZXRJRExUeXBlKCRpbnRlcmZhY2UsICRpbnRlcmZhY2Ut
Pml0ZXJhYmxlLT5pZGxWYWx1ZVR5cGUpOworICAgIG15ICRpdGVyYXRvclRyYWl0c0tleVR5cGUg
PSAkaW50ZXJmYWNlLT5pdGVyYWJsZS0+aXNLZXlWYWx1ZSA/IEdldElETFR5cGUoJGludGVyZmFj
ZSwgJGludGVyZmFjZS0+aXRlcmFibGUtPmtleVR5cGUpIDogInZvaWQiOworICAgIG15ICRpdGVy
YXRvclRyYWl0c1ZhbHVlVHlwZSA9IEdldElETFR5cGUoJGludGVyZmFjZSwgJGludGVyZmFjZS0+
aXRlcmFibGUtPnZhbHVlVHlwZSk7CiAKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIDw8RU5EKTsK
IHN0cnVjdCAke2l0ZXJhdG9yVHJhaXRzTmFtZX0gewpAQCAtNTAyMCw3ICs1MDA5LDcgQEAgc3Vi
IEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlCiB7CiAgICAgbXkgKCRpbnRlcmZhY2UsICRzaWdu
YXR1cmUpID0gQF87CiAKLSAgICByZXR1cm4gR2V0TmF0aXZlVHlwZSgkaW50ZXJmYWNlLCAkc2ln
bmF0dXJlLT5pZGxUeXBlKTsKKyAgICByZXR1cm4gR2V0TmF0aXZlVHlwZSgkaW50ZXJmYWNlLCAk
c2lnbmF0dXJlLT50eXBlKTsKIH0KIAogbXkgJW5hdGl2ZVR5cGUgPSAoCkBAIC01MTEwLDcgKzUw
OTksNyBAQCBzdWIgR2V0SURMVW5pb25NZW1iZXJUeXBlcwogCiBzdWIgR2V0QmFzZUlETFR5cGUK
IHsKLSAgICBteSAoJGludGVyZmFjZSwgJGlkbFR5cGUpID0gQF87CisgICAgbXkgKCRpbnRlcmZh
Y2UsICR0eXBlKSA9IEBfOwogCiAgICAgbXkgJUlETFR5cGVzID0gKAogICAgICAgICAiYW55IiA9
PiAiSURMQW55IiwKQEAgLTUxMzYsMjEgKzUxMjUsMjEgQEAgc3ViIEdldEJhc2VJRExUeXBlCiAg
ICAgICAgICJCdWZmZXJTb3VyY2UiID0+ICJJRExCdWZmZXJTb3VyY2UiLAogICAgICk7CiAKLSAg
ICByZXR1cm4gJElETFR5cGVzeyRpZGxUeXBlLT5uYW1lfSBpZiBleGlzdHMgJElETFR5cGVzeyRp
ZGxUeXBlLT5uYW1lfTsKLSAgICByZXR1cm4gIklETEVudW1lcmF0aW9uPCIgLiBHZXRFbnVtZXJh
dGlvbkNsYXNzTmFtZSgkaWRsVHlwZSwgJGludGVyZmFjZSkgLiAiPiIgaWYgJGNvZGVHZW5lcmF0
b3ItPklzRW51bVR5cGUoJGlkbFR5cGUpOwotICAgIHJldHVybiAiSURMRGljdGlvbmFyeTwiIC4g
R2V0RGljdGlvbmFyeUNsYXNzTmFtZSgkaWRsVHlwZSwgJGludGVyZmFjZSkgLiAiPiIgaWYgJGNv
ZGVHZW5lcmF0b3ItPklzRGljdGlvbmFyeVR5cGUoJGlkbFR5cGUpOwotICAgIHJldHVybiAiSURM
U2VxdWVuY2U8IiAuIEdldElETFR5cGUoJGludGVyZmFjZSwgQHskaWRsVHlwZS0+c3VidHlwZXN9
WzBdKSAuICI+IiBpZiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZVR5cGUoJGlkbFR5cGUpOwot
ICAgIHJldHVybiAiSURMRnJvemVuQXJyYXk8IiAuIEdldElETFR5cGUoJGludGVyZmFjZSwgQHsk
aWRsVHlwZS0+c3VidHlwZXN9WzBdKSAuICI+IiBpZiAkY29kZUdlbmVyYXRvci0+SXNGcm96ZW5B
cnJheVR5cGUoJGlkbFR5cGUpOwotICAgIHJldHVybiAiSURMVW5pb248IiAuIGpvaW4oIiwgIiwg
R2V0SURMVW5pb25NZW1iZXJUeXBlcygkaW50ZXJmYWNlLCAkaWRsVHlwZSkpIC4gIj4iIGlmICRp
ZGxUeXBlLT5pc1VuaW9uOwotICAgIHJldHVybiAiSURMSW50ZXJmYWNlPCIgLiAkaWRsVHlwZS0+
bmFtZSAuICI+IjsKKyAgICByZXR1cm4gJElETFR5cGVzeyR0eXBlLT5uYW1lfSBpZiBleGlzdHMg
JElETFR5cGVzeyR0eXBlLT5uYW1lfTsKKyAgICByZXR1cm4gIklETEVudW1lcmF0aW9uPCIgLiBH
ZXRFbnVtZXJhdGlvbkNsYXNzTmFtZSgkdHlwZSwgJGludGVyZmFjZSkgLiAiPiIgaWYgJGNvZGVH
ZW5lcmF0b3ItPklzRW51bVR5cGUoJHR5cGUpOworICAgIHJldHVybiAiSURMRGljdGlvbmFyeTwi
IC4gR2V0RGljdGlvbmFyeUNsYXNzTmFtZSgkdHlwZSwgJGludGVyZmFjZSkgLiAiPiIgaWYgJGNv
ZGVHZW5lcmF0b3ItPklzRGljdGlvbmFyeVR5cGUoJHR5cGUpOworICAgIHJldHVybiAiSURMU2Vx
dWVuY2U8IiAuIEdldElETFR5cGUoJGludGVyZmFjZSwgQHskdHlwZS0+c3VidHlwZXN9WzBdKSAu
ICI+IiBpZiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZVR5cGUoJHR5cGUpOworICAgIHJldHVy
biAiSURMRnJvemVuQXJyYXk8IiAuIEdldElETFR5cGUoJGludGVyZmFjZSwgQHskdHlwZS0+c3Vi
dHlwZXN9WzBdKSAuICI+IiBpZiAkY29kZUdlbmVyYXRvci0+SXNGcm96ZW5BcnJheVR5cGUoJHR5
cGUpOworICAgIHJldHVybiAiSURMVW5pb248IiAuIGpvaW4oIiwgIiwgR2V0SURMVW5pb25NZW1i
ZXJUeXBlcygkaW50ZXJmYWNlLCAkdHlwZSkpIC4gIj4iIGlmICR0eXBlLT5pc1VuaW9uOworICAg
IHJldHVybiAiSURMSW50ZXJmYWNlPCIgLiAkdHlwZS0+bmFtZSAuICI+IjsKIH0KIAogc3ViIEdl
dElETFR5cGUKIHsKLSAgICBteSAoJGludGVyZmFjZSwgJGlkbFR5cGUpID0gQF87CisgICAgbXkg
KCRpbnRlcmZhY2UsICR0eXBlKSA9IEBfOwogCi0gICAgbXkgJGJhc2VJRExUeXBlID0gR2V0QmFz
ZUlETFR5cGUoJGludGVyZmFjZSwgJGlkbFR5cGUpOwotICAgIHJldHVybiAiSURMTnVsbGFibGU8
IiAuICRiYXNlSURMVHlwZSAuICI+IiBpZiAkaWRsVHlwZS0+aXNOdWxsYWJsZTsKKyAgICBteSAk
YmFzZUlETFR5cGUgPSBHZXRCYXNlSURMVHlwZSgkaW50ZXJmYWNlLCAkdHlwZSk7CisgICAgcmV0
dXJuICJJRExOdWxsYWJsZTwiIC4gJGJhc2VJRExUeXBlIC4gIj4iIGlmICR0eXBlLT5pc051bGxh
YmxlOwogICAgIHJldHVybiAkYmFzZUlETFR5cGU7CiB9CiAKQEAgLTUxNjgsNyArNTE1Nyw3IEBA
IHN1YiBHZXROYXRpdmVUeXBlCiAgICAgcmV0dXJuIEdldERpY3Rpb25hcnlDbGFzc05hbWUoJHR5
cGUsICRpbnRlcmZhY2UpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCR0eXBl
KTsKICAgICByZXR1cm4gR2V0TmF0aXZlVmVjdG9yVHlwZSgkdHlwZSkgaWYgJGNvZGVHZW5lcmF0
b3ItPklzU2VxdWVuY2VPckZyb3plbkFycmF5VHlwZSgkdHlwZSk7CiAKLSAgICBteSAkdGVhck9m
ZlR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmRm9yVHlwZSgk
dHlwZSk7CisgICAgbXkgJHRlYXJPZmZUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldFNWR1R5cGVO
ZWVkaW5nVGVhck9mZigkdHlwZSk7CiAgICAgcmV0dXJuICIke3RlYXJPZmZUeXBlfSoiIGlmICR0
ZWFyT2ZmVHlwZTsKIAogICAgIHJldHVybiAiUmVmUHRyPCR7dHlwZU5hbWV9PiIgaWYgJGNvZGVH
ZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpIGFuZCAkdHlwZU5hbWUgbmUgIkFycmF5
QnVmZmVyIjsKQEAgLTUxNzksNyArNTE2OCw3IEBAIHN1YiBTaG91bGRQYXNzV3JhcHBlckJ5UmVm
ZXJlbmNlCiB7CiAgICAgbXkgKCRwYXJhbWV0ZXIsICRpbnRlcmZhY2UpID0gQF87CiAKLSAgICBt
eSAkbmF0aXZlVHlwZSA9IEdldE5hdGl2ZVR5cGUoJGludGVyZmFjZSwgJHBhcmFtZXRlci0+aWRs
VHlwZSk7CisgICAgbXkgJG5hdGl2ZVR5cGUgPSBHZXROYXRpdmVUeXBlKCRpbnRlcmZhY2UsICRw
YXJhbWV0ZXItPnR5cGUpOwogICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+U2hvdWxkUGFzc1dy
YXBwZXJCeVJlZmVyZW5jZSgkcGFyYW1ldGVyLCAkaW50ZXJmYWNlKSAmJiAoc3Vic3RyKCRuYXRp
dmVUeXBlLCAtMSkgZXEgJyonIHx8ICRuYXRpdmVUeXBlID1+IC9eUmVmUHRyLyk7CiB9CiAKQEAg
LTUyMTMsNyArNTIwMiw3IEBAIHN1YiBHZXRTVkdQcm9wZXJ0eVR5cGVzCiB7CiAgICAgbXkgJGlu
dGVyZmFjZSA9IHNoaWZ0OwogCi0gICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5u
YW1lOworICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+dHlwZS0+bmFtZTsKIAog
ICAgIG15ICRzdmdQcm9wZXJ0eVR5cGU7CiAgICAgbXkgJHN2Z0xpc3RQcm9wZXJ0eVR5cGU7CkBA
IC01MjIxLDEwICs1MjEwLDEwIEBAIHN1YiBHZXRTVkdQcm9wZXJ0eVR5cGVzCiAKICAgICByZXR1
cm4gKCRzdmdQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlLCAkc3ZnTmF0aXZlVHlw
ZSkgaWYgbm90ICRpbnRlcmZhY2VOYW1lID1+IC9TVkcvOwogCi0gICAgJHN2Z05hdGl2ZVR5cGUg
PSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRpbmdUZWFyT2ZmRm9yVHlwZSgkaW50ZXJm
YWNlLT50eXBlKTsKKyAgICAkc3ZnTmF0aXZlVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdU
eXBlTmVlZGluZ1RlYXJPZmYoJGludGVyZmFjZS0+dHlwZSk7CiAgICAgcmV0dXJuICgkc3ZnUHJv
cGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSwgJHN2Z05hdGl2ZVR5cGUpIGlmIG5vdCAk
c3ZnTmF0aXZlVHlwZTsKIAotICAgIG15ICRzdmdXcmFwcGVkTmF0aXZlVHlwZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5HZXRTVkdXcmFwcGVkVHlwZU5lZWRpbmdUZWFyT2ZmRm9yVHlwZSgkaW50ZXJmYWNl
LT50eXBlKTsKKyAgICBteSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+
R2V0U1ZHV3JhcHBlZFR5cGVOZWVkaW5nVGVhck9mZigkaW50ZXJmYWNlLT50eXBlKTsKICAgICBp
ZiAoJHN2Z05hdGl2ZVR5cGUgPX4gL1NWR1Byb3BlcnR5VGVhck9mZi8pIHsKICAgICAgICAgJHN2
Z1Byb3BlcnR5VHlwZSA9ICRzdmdXcmFwcGVkTmF0aXZlVHlwZTsKICAgICAgICAgJGhlYWRlcklu
Y2x1ZGVzeyIkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUuaCJ9ID0gMTsKQEAgLTUyNzQsMjAgKzUyNjMs
MjAgQEAgc3ViIEdldFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uCiAKIHN1YiBKU1ZhbHVl
VG9OYXRpdmVJc0hhbmRsZWRCeURPTUNvbnZlcnQKIHsKLSAgICBteSAoJGlkbFR5cGUsICRzaWdu
YXR1cmUpID0gQF87CisgICAgbXkgKCR0eXBlLCAkc2lnbmF0dXJlKSA9IEBfOwogCi0gICAgcmV0
dXJuIDAgaWYgJGlkbFR5cGUtPm5hbWUgZXEgIkRPTVN0cmluZyIgJiYgKCRzaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e1JlcXVpcmVzRXhpc3RpbmdBdG9taWNTdHJpbmd9IHx8ICRzaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0F0b21pY1N0cmluZ30pOworICAgIHJldHVybiAw
IGlmICR0eXBlLT5uYW1lIGVxICJET01TdHJpbmciICYmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntSZXF1aXJlc0V4aXN0aW5nQXRvbWljU3RyaW5nfSB8fCAkc2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntBdG9taWNTdHJpbmd9KTsKIAotICAgIHJldHVybiAxIGlmICRp
ZGxUeXBlLT5pc1VuaW9uOwotICAgIHJldHVybiAxIGlmICRpZGxUeXBlLT5uYW1lIGVxICJhbnki
OwotICAgIHJldHVybiAxIGlmICRpZGxUeXBlLT5uYW1lIGVxICJib29sZWFuIjsKLSAgICByZXR1
cm4gMSBpZiAkaWRsVHlwZS0+bmFtZSBlcSAiRGF0ZSI7Ci0gICAgcmV0dXJuIDEgaWYgJGlkbFR5
cGUtPm5hbWUgZXEgIkJ1ZmZlclNvdXJjZSI7Ci0gICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0
b3ItPklzSW50ZWdlclR5cGUoJGlkbFR5cGUpOwotICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJh
dG9yLT5Jc0Zsb2F0aW5nUG9pbnRUeXBlKCRpZGxUeXBlKTsKLSAgICByZXR1cm4gMSBpZiAkY29k
ZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJvemVuQXJyYXlUeXBlKCRpZGxUeXBlKTsKLSAgICBy
ZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5VHlwZSgkaWRsVHlwZSk7Ci0g
ICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkaWRsVHlwZSk7Cisg
ICAgcmV0dXJuIDEgaWYgJHR5cGUtPmlzVW5pb247CisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5h
bWUgZXEgImFueSI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgImJvb2xlYW4iOwor
ICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJEYXRlIjsKKyAgICByZXR1cm4gMSBpZiAk
dHlwZS0+bmFtZSBlcSAiQnVmZmVyU291cmNlIjsKKyAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVy
YXRvci0+SXNJbnRlZ2VyVHlwZSgkdHlwZSk7CisgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0
b3ItPklzRmxvYXRpbmdQb2ludFR5cGUoJHR5cGUpOworICAgIHJldHVybiAxIGlmICRjb2RlR2Vu
ZXJhdG9yLT5Jc1NlcXVlbmNlT3JGcm96ZW5BcnJheVR5cGUoJHR5cGUpOworICAgIHJldHVybiAx
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4g
MSBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gMDsK
IH0KIApAQCAtNTI5Nyw5NSArNTI4Niw5NSBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiB7CiAgICAg
bXkgKCRpbnRlcmZhY2UsICRzaWduYXR1cmUsICR2YWx1ZSwgJGNvbmRpdGlvbmFsLCAkc3RhdGVQ
b2ludGVyLCAkc3RhdGVSZWZlcmVuY2UsICR0aGlzT2JqZWN0UmVmZXJlbmNlKSA9IEBfOwogCi0g
ICAgbXkgJGlkbFR5cGUgPSAkc2lnbmF0dXJlLT5pZGxUeXBlOworICAgIG15ICR0eXBlID0gJHNp
Z25hdHVyZS0+dHlwZTsKIAogICAgICMgRklYTUU6IFJlbW92ZSB0aGVzZSAzIHZhcmlhYmxlcyB3
aGVuIGFsbCBKU1ZhbHVlVG9OYXRpdmUgdXNlIHJlZmVyZW5jZXMuCiAgICAgJHN0YXRlUG9pbnRl
ciA9ICJzdGF0ZSIgdW5sZXNzICRzdGF0ZVBvaW50ZXI7CiAgICAgJHN0YXRlUmVmZXJlbmNlID0g
IipzdGF0ZSIgdW5sZXNzICRzdGF0ZVJlZmVyZW5jZTsKICAgICAkdGhpc09iamVjdFJlZmVyZW5j
ZSA9ICIqY2FzdGVkVGhpcyIgdW5sZXNzICR0aGlzT2JqZWN0UmVmZXJlbmNlOwogCi0gICAgaWYg
KEpTVmFsdWVUb05hdGl2ZUlzSGFuZGxlZEJ5RE9NQ29udmVydCgkaWRsVHlwZSwgJHNpZ25hdHVy
ZSkpIHsKKyAgICBpZiAoSlNWYWx1ZVRvTmF0aXZlSXNIYW5kbGVkQnlET01Db252ZXJ0KCR0eXBl
LCAkc2lnbmF0dXJlKSkgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01Db252ZXJ0
LmgiKTsKLSAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXNGb3JJRExUeXBlKCRpZGxUeXBlLCAkY29u
ZGl0aW9uYWwpOworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlc0ZvcklETFR5cGUoJHR5cGUsICRj
b25kaXRpb25hbCk7CiAKLSAgICAgICAgbXkgJElETFR5cGUgPSBHZXRJRExUeXBlKCRpbnRlcmZh
Y2UsICRpZGxUeXBlKTsKKyAgICAgICAgbXkgJElETFR5cGUgPSBHZXRJRExUeXBlKCRpbnRlcmZh
Y2UsICR0eXBlKTsKIAogICAgICAgICBteSBAY29udmVyc2lvbkFyZ3VtZW50cyA9ICgpOwogICAg
ICAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1lbnRzLCAiJHN0YXRlUmVmZXJlbmNlIik7CiAgICAg
ICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsICIkdmFsdWUiKTsKLSAgICAgICAgcHVzaChA
Y29udmVyc2lvbkFyZ3VtZW50cywgR2V0SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uKCRz
aWduYXR1cmUpKSBpZiAkY29kZUdlbmVyYXRvci0+SXNJbnRlZ2VyVHlwZSgkaWRsVHlwZSk7Ci0g
ICAgICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsIEdldFN0cmluZ0NvbnZlcnNpb25Db25m
aWd1cmF0aW9uKCRzaWduYXR1cmUpKSBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCRp
ZGxUeXBlKTsKKyAgICAgICAgcHVzaChAY29udmVyc2lvbkFyZ3VtZW50cywgR2V0SW50ZWdlckNv
bnZlcnNpb25Db25maWd1cmF0aW9uKCRzaWduYXR1cmUpKSBpZiAkY29kZUdlbmVyYXRvci0+SXNJ
bnRlZ2VyVHlwZSgkdHlwZSk7CisgICAgICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1bWVudHMsIEdl
dFN0cmluZ0NvbnZlcnNpb25Db25maWd1cmF0aW9uKCRzaWduYXR1cmUpKSBpZiAkY29kZUdlbmVy
YXRvci0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKIAogICAgICAgICByZXR1cm4gKCJjb252ZXJ0PCRJ
RExUeXBlPigiIC4gam9pbigiLCAiLCBAY29udmVyc2lvbkFyZ3VtZW50cykgLiAiKSIsIDEpOwog
ICAgIH0KIAotICAgIGlmICgkaWRsVHlwZS0+bmFtZSBlcSAiRE9NU3RyaW5nIikgeworICAgIGlm
ICgkdHlwZS0+bmFtZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICByZXR1cm4gKCJBdG9taWNT
dHJpbmcoJHZhbHVlLnRvU3RyaW5nKCRzdGF0ZVBvaW50ZXIpLT50b0V4aXN0aW5nQXRvbWljU3Ry
aW5nKCRzdGF0ZVBvaW50ZXIpKSIsIDEpIGlmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e1JlcXVpcmVzRXhpc3RpbmdBdG9taWNTdHJpbmd9OwogICAgICAgICByZXR1cm4gKCIkdmFs
dWUudG9TdHJpbmcoJHN0YXRlUG9pbnRlciktPnRvQXRvbWljU3RyaW5nKCRzdGF0ZVBvaW50ZXIp
IiwgMSkgaWYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57QXRvbWljU3RyaW5nfTsK
ICAgICAgICAgYXNzZXJ0KCJVbmhhbmRsZWQgc3RyaW5nIGNvbnZlcnNpb24uIik7CiAgICAgfQog
Ci0gICAgaWYgKCRpZGxUeXBlLT5uYW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7Cisg
ICAgaWYgKCR0eXBlLT5uYW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CiAgICAgICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIsICRjb25kaXRpb25h
bCk7CiAgICAgICAgIHJldHVybiAoIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKCRzdGF0
ZVJlZmVyZW5jZSwgJHZhbHVlKSIsIDEpOwogICAgIH0KIAotICAgIGlmICgkaWRsVHlwZS0+bmFt
ZSBlcSAiRGljdGlvbmFyeSIpIHsKKyAgICBpZiAoJHR5cGUtPm5hbWUgZXEgIkRpY3Rpb25hcnki
KSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJEaWN0aW9uYXJ5LmgiLCAkY29uZGl0aW9u
YWwpOwogICAgICAgICByZXR1cm4gKCJEaWN0aW9uYXJ5KCRzdGF0ZVBvaW50ZXIsICR2YWx1ZSki
LCAwKTsKICAgICB9CiAKLSAgICBBZGRUb0ltcGxJbmNsdWRlc0ZvcklETFR5cGUoJGlkbFR5cGUs
ICRjb25kaXRpb25hbCk7CisgICAgQWRkVG9JbXBsSW5jbHVkZXNGb3JJRExUeXBlKCR0eXBlLCAk
Y29uZGl0aW9uYWwpOwogCi0gICAgcmV0dXJuICgidG9Ae1skaWRsVHlwZS0+bmFtZV19KCR2YWx1
ZSkiLCAxKSBpZiAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkaWRsVHlwZSk7Ci0g
ICAgcmV0dXJuICgicGFyc2VFbnVtZXJhdGlvbjwiIC4gR2V0RW51bWVyYXRpb25DbGFzc05hbWUo
JGlkbFR5cGUsICRpbnRlcmZhY2UpIC4gIj4oJHN0YXRlUmVmZXJlbmNlLCAkdmFsdWUpIiwgMSkg
aWYgJGNvZGVHZW5lcmF0b3ItPklzRW51bVR5cGUoJGlkbFR5cGUpOworICAgIHJldHVybiAoInRv
QHtbJHR5cGUtPm5hbWVdfSgkdmFsdWUpIiwgMSkgaWYgJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRB
cnJheVR5cGUoJHR5cGUpOworICAgIHJldHVybiAoInBhcnNlRW51bWVyYXRpb248IiAuIEdldEVu
dW1lcmF0aW9uQ2xhc3NOYW1lKCR0eXBlLCAkaW50ZXJmYWNlKSAuICI+KCRzdGF0ZVJlZmVyZW5j
ZSwgJHZhbHVlKSIsIDEpIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0VudW1UeXBlKCR0eXBlKTsKIAog
ICAgICMgRklYTUU6IEV2ZW50TGlzdGVuZXIgc2hvdWxkIGJlIGEgY2FsbGJhY2sgaW50ZXJmYWNl
LgotICAgIHJldHVybiAiSlNFdmVudExpc3RlbmVyOjpjcmVhdGUoJHZhbHVlLCAkdGhpc09iamVj
dFJlZmVyZW5jZSwgZmFsc2UsIGN1cnJlbnRXb3JsZCgkc3RhdGVQb2ludGVyKSkiIGlmICRpZGxU
eXBlLT5uYW1lIGVxICJFdmVudExpc3RlbmVyIjsKKyAgICByZXR1cm4gIkpTRXZlbnRMaXN0ZW5l
cjo6Y3JlYXRlKCR2YWx1ZSwgJHRoaXNPYmplY3RSZWZlcmVuY2UsIGZhbHNlLCBjdXJyZW50V29y
bGQoJHN0YXRlUG9pbnRlcikpIiBpZiAkdHlwZS0+bmFtZSBlcSAiRXZlbnRMaXN0ZW5lciI7CiAK
LSAgICBteSAkZXh0ZW5kZWRBdHRyaWJ1dGVzID0gJGNvZGVHZW5lcmF0b3ItPkdldEludGVyZmFj
ZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21OYW1lKCRpZGxUeXBlLT5uYW1lKTsKLSAgICByZXR1cm4g
KCJKUyIgLiAkaWRsVHlwZS0+bmFtZSAuICI6OnRvV3JhcHBlZCgkc3RhdGVSZWZlcmVuY2UsICR2
YWx1ZSkiLCAxKSBpZiAkaWRsVHlwZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29sdmVyIjsKLSAgICBy
ZXR1cm4gKCJKUyIgLiAkaWRsVHlwZS0+bmFtZSAuICI6OnRvV3JhcHBlZCgkdmFsdWUpIiwgMCk7
CisgICAgbXkgJGV4dGVuZGVkQXR0cmlidXRlcyA9ICRjb2RlR2VuZXJhdG9yLT5HZXRJbnRlcmZh
Y2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tTmFtZSgkdHlwZS0+bmFtZSk7CisgICAgcmV0dXJuICgi
SlMiIC4gJHR5cGUtPm5hbWUgLiAiOjp0b1dyYXBwZWQoJHN0YXRlUmVmZXJlbmNlLCAkdmFsdWUp
IiwgMSkgaWYgJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciI7CisgICAgcmV0dXJuICgi
SlMiIC4gJHR5cGUtPm5hbWUgLiAiOjp0b1dyYXBwZWQoJHZhbHVlKSIsIDApOwogfQogCiBzdWIg
TmF0aXZlVG9KU1ZhbHVlSXNIYW5kbGVkQnlET01Db252ZXJ0CiB7Ci0gICAgbXkgKCRpZGxUeXBl
KSA9IEBfOworICAgIG15ICgkdHlwZSkgPSBAXzsKICAgICAKLSAgICByZXR1cm4gMSBpZiAkaWRs
VHlwZS0+bmFtZSBlcSAiYW55IjsKLSAgICByZXR1cm4gMSBpZiAkaWRsVHlwZS0+bmFtZSBlcSAi
Ym9vbGVhbiI7Ci0gICAgcmV0dXJuIDEgaWYgJGlkbFR5cGUtPm5hbWUgZXEgIkRhdGUiOwotICAg
IHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0ludGVnZXJUeXBlKCRpZGxUeXBlKTsKLSAg
ICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNGbG9hdGluZ1BvaW50VHlwZSgkaWRsVHlw
ZSk7Ci0gICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzU3RyaW5nVHlwZSgkaWRsVHlw
ZSk7Ci0gICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzRW51bVR5cGUoJGlkbFR5cGUp
OwotICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NlcXVlbmNlT3JGcm96ZW5BcnJh
eVR5cGUoJGlkbFR5cGUpOwotICAgIHJldHVybiAxIGlmICRpZGxUeXBlLT5pc1VuaW9uOworICAg
IHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJhbnkiOworICAgIHJldHVybiAxIGlmICR0eXBl
LT5uYW1lIGVxICJib29sZWFuIjsKKyAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiRGF0
ZSI7CisgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZWdlclR5cGUoJHR5cGUp
OworICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0Zsb2F0aW5nUG9pbnRUeXBlKCR0
eXBlKTsKKyAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdUeXBlKCR0eXBl
KTsKKyAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkdHlwZSk7Cisg
ICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzU2VxdWVuY2VPckZyb3plbkFycmF5VHlw
ZSgkdHlwZSk7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPmlzVW5pb247CiAKICAgICByZXR1cm4g
MDsKIH0KIAogc3ViIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZlcnROZWVkc1N0YXRlCiB7Ci0gICAg
bXkgKCRpZGxUeXBlKSA9IEBfOworICAgIG15ICgkdHlwZSkgPSBAXzsKICAgICAKICAgICAjIEZJ
WE1FOiBUaGlzIHNob3VsZCBhY3R1YWxseSBjaGVjayBpZiBhbGwgdGhlIHN1Yi1vYmplY3RzIG9m
IHRoZSB1bmlvbiBuZWVkIHRoZSBzdGF0ZS4KLSAgICByZXR1cm4gMSBpZiAkaWRsVHlwZS0+aXNV
bmlvbjsKLSAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJvemVu
QXJyYXlUeXBlKCRpZGxUeXBlKTsKLSAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNT
dHJpbmdUeXBlKCRpZGxUeXBlKTsKLSAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNF
bnVtVHlwZSgkaWRsVHlwZSk7Ci0gICAgcmV0dXJuIDEgaWYgJGlkbFR5cGUtPm5hbWUgZXEgIkRh
dGUiOworICAgIHJldHVybiAxIGlmICR0eXBlLT5pc1VuaW9uOworICAgIHJldHVybiAxIGlmICRj
b2RlR2VuZXJhdG9yLT5Jc1NlcXVlbmNlT3JGcm96ZW5BcnJheVR5cGUoJHR5cGUpOworICAgIHJl
dHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ1R5cGUoJHR5cGUpOworICAgIHJldHVy
biAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0VudW1UeXBlKCR0eXBlKTsKKyAgICByZXR1cm4gMSBp
ZiAkdHlwZS0+bmFtZSBlcSAiRGF0ZSI7CiAKICAgICByZXR1cm4gMDsKIH0KIAogc3ViIE5hdGl2
ZVRvSlNWYWx1ZURPTUNvbnZlcnROZWVkc0dsb2JhbE9iamVjdAogewotICAgIG15ICgkaWRsVHlw
ZSkgPSBAXzsKKyAgICBteSAoJHR5cGUpID0gQF87CiAgICAgCiAgICAgIyBGSVhNRTogVGhpcyBz
aG91bGQgYWN0dWFsbHkgY2hlY2sgaWYgYWxsIHRoZSBzdWItb2JqZWN0cyBvZiB0aGUgdW5pb24g
bmVlZCB0aGUgZ2xvYmFsIG9iamVjdC4KLSAgICByZXR1cm4gMSBpZiAkaWRsVHlwZS0+aXNVbmlv
bjsKLSAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJvemVuQXJy
YXlUeXBlKCRpZGxUeXBlKTsKKyAgICByZXR1cm4gMSBpZiAkdHlwZS0+aXNVbmlvbjsKKyAgICBy
ZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNTZXF1ZW5jZU9yRnJvemVuQXJyYXlUeXBlKCR0
eXBlKTsKIAogICAgIHJldHVybiAwOwogfQpAQCAtNTQxOCwxOCArNTQwNywxNyBAQCBzdWIgTmF0
aXZlVG9KU1ZhbHVlCiAgICAgbXkgKCRzaWduYXR1cmUsICRpbkZ1bmN0aW9uQ2FsbCwgJGludGVy
ZmFjZSwgJHZhbHVlLCAkc3RhdGVQb2ludGVyLCAkc3RhdGVSZWZlcmVuY2UsICR3cmFwcGVkLCAk
Z2xvYmFsT2JqZWN0KSA9IEBfOwogCiAgICAgbXkgJGNvbmRpdGlvbmFsID0gJHNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWx9OwotICAgIG15ICRpZGxUeXBlID0gJHNp
Z25hdHVyZS0+aWRsVHlwZTsKLSAgICBteSAkaXNOdWxsYWJsZSA9ICRzaWduYXR1cmUtPmlzTnVs
bGFibGU7CisgICAgbXkgJHR5cGUgPSAkc2lnbmF0dXJlLT50eXBlOwogICAgIG15ICRtYXlUaHJv
d0V4Y2VwdGlvbiA9ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0dldHRlck1heVRo
cm93RXhjZXB0aW9ufSB8fCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJv
d0V4Y2VwdGlvbn07CiAKICAgICAjIFdlIGNvdWxkIGluc3RlYWQgb3ZlcmxvYWQgYSBmdW5jdGlv
biB0byB3b3JrIHdpdGggb3B0aW9uYWwgYXMgd2VsbCBhcyBub24tb3B0aW9uYWwgbnVtYmVycywg
YnV0IHRoaXMKICAgICAjIGlzIHNsaWdodGx5IGJldHRlciBiZWNhdXNlIGl0IGd1YXJhbnRlZXMg
d2Ugd2lsbCBmYWlsIHRvIGNvbXBpbGUgaWYgdGhlIElETCBmaWxlIGRvZXNuJ3QgbWF0Y2ggdGhl
IEMrKy4KLSAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UmVmbGVjdH0g
YW5kICgkaWRsVHlwZS0+bmFtZSBlcSAidW5zaWduZWQgbG9uZyIgb3IgJGlkbFR5cGUtPm5hbWUg
ZXEgInVuc2lnbmVkIHNob3J0IikpIHsKKyAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57UmVmbGVjdH0gYW5kICgkdHlwZS0+bmFtZSBlcSAidW5zaWduZWQgbG9uZyIgb3Ig
JHR5cGUtPm5hbWUgZXEgInVuc2lnbmVkIHNob3J0IikpIHsKICAgICAgICAgJHZhbHVlID1+IHMv
Z2V0VW5zaWduZWRJbnRlZ3JhbEF0dHJpYnV0ZS9nZXRJbnRlZ3JhbEF0dHJpYnV0ZS9nOwogICAg
ICAgICAkdmFsdWUgPSAic3RkOjptYXgoMCwgJHZhbHVlKSI7CiAgICAgfQogCi0gICAgaWYgKCRp
ZGxUeXBlLT5uYW1lIGVxICJhbnkiKSB7CisgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJhbnkiKSB7
CiAgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57SW1wbGVtZW50YXRpb25SZXR1cm5UeXBlfTsKICAgICAgICAgaWYgKGRlZmluZWQgJHJldHVy
blR5cGUgYW5kICgkcmV0dXJuVHlwZSBlcSAiSURCS2V5UGF0aCIgb3IgJHJldHVyblR5cGUgZXEg
IklEQktleSIpKSB7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSURCQmluZGluZ1V0
aWxpdGllcy5oIiwgJGNvbmRpdGlvbmFsKTsKQEAgLTU0MzcsNTUgKzU0MjUsNTMgQEAgc3ViIE5h
dGl2ZVRvSlNWYWx1ZQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKE5hdGl2ZVRvSlNWYWx1
ZUlzSGFuZGxlZEJ5RE9NQ29udmVydCgkaWRsVHlwZSkpIHsKKyAgICBpZiAoTmF0aXZlVG9KU1Zh
bHVlSXNIYW5kbGVkQnlET01Db252ZXJ0KCR0eXBlKSkgewogICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiSlNET01Db252ZXJ0LmgiKTsKLSAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXNGb3JJRExU
eXBlKCRpZGxUeXBlLCAkY29uZGl0aW9uYWwpOworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlc0Zv
cklETFR5cGUoJHR5cGUsICRjb25kaXRpb25hbCk7CiAKLSAgICAgICAgbXkgJElETFR5cGUgPSBH
ZXRJRExUeXBlKCRpbnRlcmZhY2UsICRpZGxUeXBlKTsKKyAgICAgICAgbXkgJElETFR5cGUgPSBH
ZXRJRExUeXBlKCRpbnRlcmZhY2UsICR0eXBlKTsKIAogICAgICAgICBteSBAY29udmVyc2lvbkFy
Z3VtZW50cyA9ICgpOwotICAgICAgICBwdXNoKEBjb252ZXJzaW9uQXJndW1lbnRzLCAiJHN0YXRl
UmVmZXJlbmNlIikgaWYgTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUoJGlkbFR5
cGUpIHx8ICRtYXlUaHJvd0V4Y2VwdGlvbjsKLSAgICAgICAgcHVzaChAY29udmVyc2lvbkFyZ3Vt
ZW50cywgIiokZ2xvYmFsT2JqZWN0IikgaWYgTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRz
R2xvYmFsT2JqZWN0KCRpZGxUeXBlKTsKKyAgICAgICAgcHVzaChAY29udmVyc2lvbkFyZ3VtZW50
cywgIiRzdGF0ZVJlZmVyZW5jZSIpIGlmIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZlcnROZWVkc1N0
YXRlKCR0eXBlKSB8fCAkbWF5VGhyb3dFeGNlcHRpb247CisgICAgICAgIHB1c2goQGNvbnZlcnNp
b25Bcmd1bWVudHMsICIqJGdsb2JhbE9iamVjdCIpIGlmIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZl
cnROZWVkc0dsb2JhbE9iamVjdCgkdHlwZSk7CiAgICAgICAgIHB1c2goQGNvbnZlcnNpb25Bcmd1
bWVudHMsICJ0aHJvd1Njb3BlIikgaWYgJG1heVRocm93RXhjZXB0aW9uOwogICAgICAgICBwdXNo
KEBjb252ZXJzaW9uQXJndW1lbnRzLCAiJHZhbHVlIik7CiAKICAgICAgICAgcmV0dXJuICJ0b0pT
PCRJRExUeXBlPigiIC4gam9pbigiLCAiLCBAY29udmVyc2lvbkFyZ3VtZW50cykgLiAiKSI7CiAg
ICAgfQogCi0gICAgaWYgKCRpZGxUeXBlLT5uYW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUi
KSB7CisgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CiAg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIsICRjb25k
aXRpb25hbCk7CiAgICAgICAgIHJldHVybiAiJHZhbHVlID8gJHZhbHVlLT5kZXNlcmlhbGl6ZSgk
c3RhdGVSZWZlcmVuY2UsICRnbG9iYWxPYmplY3QpIDoganNOdWxsKCkiOwogICAgIH0KIAotICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJTdHlsZVByb3BlcnRpZXMuaCIsICRjb25kaXRpb25hbCkgaWYg
JGlkbFR5cGUtPm5hbWUgZXEgIkNTU1N0eWxlRGVjbGFyYXRpb24iOwotICAgIEFkZFRvSW1wbElu
Y2x1ZGVzKCJOYW1lTm9kZUxpc3QuaCIsICRjb25kaXRpb25hbCkgaWYgJGlkbFR5cGUtPm5hbWUg
ZXEgIk5vZGVMaXN0IjsKLSAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMiIC4gJGlkbFR5cGUtPm5h
bWUgLiAiLmgiLCAkY29uZGl0aW9uYWwpIGlmICEkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5
VHlwZSgkaWRsVHlwZSk7CisgICAgQWRkVG9JbXBsSW5jbHVkZXNGb3JJRExUeXBlKCR0eXBlLCAk
Y29uZGl0aW9uYWwpOwogCi0gICAgcmV0dXJuICR2YWx1ZSBpZiAkY29kZUdlbmVyYXRvci0+SXNT
VkdBbmltYXRlZFR5cGUoJGlkbFR5cGUpOworICAgIHJldHVybiAkdmFsdWUgaWYgJGNvZGVHZW5l
cmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCR0eXBlKTsKIAotICAgIGlmICgkY29kZUdlbmVyYXRv
ci0+SXNTVkdBbmltYXRlZFR5cGUoJGludGVyZmFjZS0+dHlwZSkgb3IgKCRpbnRlcmZhY2UtPm5h
bWUgZXEgIlNWR1ZpZXdTcGVjIiBhbmQgJGlkbFR5cGUtPm5hbWUgZXEgIlNWR1RyYW5zZm9ybUxp
c3QiKSkgeworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGludGVy
ZmFjZS0+dHlwZSkgb3IgKCRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgZXEgIlNWR1ZpZXdTcGVjIiBh
bmQgJHR5cGUtPm5hbWUgZXEgIlNWR1RyYW5zZm9ybUxpc3QiKSkgewogICAgICAgICAjIENvbnZl
cnQgZnJvbSBhYnN0cmFjdCBSZWZQdHI8TGlzdFByb3BlcnR5PiB0byByZWFsIHR5cGUsIHNvIHRo
ZSByaWdodCB0b0pTKCkgbWV0aG9kIGNhbiBiZSBpbnZva2VkLgotICAgICAgICAkdmFsdWUgPSAi
c3RhdGljX2Nhc3Q8IiAuIEdldE5hdGl2ZVR5cGUoJGludGVyZmFjZSwgJGlkbFR5cGUpIC4gIj4o
JHZhbHVlLmdldCgpKSI7Ci0gICAgfSBlbHNpZiAoJGludGVyZmFjZS0+bmFtZSBlcSAiU1ZHVmll
d1NwZWMiKSB7CisgICAgICAgICR2YWx1ZSA9ICJzdGF0aWNfY2FzdDwiIC4gR2V0TmF0aXZlVHlw
ZSgkaW50ZXJmYWNlLCAkdHlwZSkgLiAiPigkdmFsdWUuZ2V0KCkpIjsKKyAgICB9IGVsc2lmICgk
aW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICJTVkdWaWV3U3BlYyIpIHsKICAgICAgICAgIyBDb252
ZXJ0IGZyb20gYWJzdHJhY3QgU1ZHUHJvcGVydHkgdG8gcmVhbCB0eXBlLCBzbyB0aGUgcmlnaHQg
dG9KUygpIG1ldGhvZCBjYW4gYmUgaW52b2tlZC4KLSAgICAgICAgJHZhbHVlID0gInN0YXRpY19j
YXN0PCIgLiBHZXROYXRpdmVUeXBlKCRpbnRlcmZhY2UsICRpZGxUeXBlKSAuICI+KCR2YWx1ZSki
OwotICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZkZv
clR5cGUoJGlkbFR5cGUpIGFuZCBub3QgJGludGVyZmFjZS0+dHlwZS0+bmFtZSA9fiAvTGlzdCQv
KSB7Ci0gICAgICAgIG15ICR0ZWFyT2ZmVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRTVkdUeXBl
TmVlZGluZ1RlYXJPZmZGb3JUeXBlKCRpZGxUeXBlKTsKLSAgICAgICAgaWYgKCRjb2RlR2VuZXJh
dG9yLT5Jc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJPZmZGb3JUeXBl
KCRpZGxUeXBlKSBhbmQgISRpbkZ1bmN0aW9uQ2FsbCBhbmQgbm90IGRlZmluZWQgJHNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1tdXRhYmxlfSkgeworICAgICAgICAkdmFsdWUgPSAi
c3RhdGljX2Nhc3Q8IiAuIEdldE5hdGl2ZVR5cGUoJGludGVyZmFjZSwgJHR5cGUpIC4gIj4oJHZh
bHVlKSI7CisgICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFy
T2ZmKCR0eXBlKSBhbmQgbm90ICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgPX4gL0xpc3QkLykgewor
ICAgICAgICBteSAkdGVhck9mZlR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRp
bmdUZWFyT2ZmKCR0eXBlKTsKKyAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVX
aXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJPZmYoJHR5cGUpIGFuZCAhJGluRnVuY3Rp
b25DYWxsIGFuZCBub3QgZGVmaW5lZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJ
bW11dGFibGV9KSB7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gJHZhbHVlOwogICAgICAgICAg
ICAgJGdldHRlciA9fiBzL2ltcGxcLi8vOwogICAgICAgICAgICAgJGdldHRlciA9fiBzL2ltcGwt
Pi8vOwogICAgICAgICAgICAgJGdldHRlciA9fiBzL1woXCkvLzsKLSAgICAgICAgICAgIG15ICR1
cGRhdGVNZXRob2QgPSAiJiIgLiAkaW50ZXJmYWNlLT5uYW1lIC4gIjo6dXBkYXRlIiAuICRjb2Rl
R2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRnZXR0ZXIpOworICAgICAgICAgICAgbXkgJHVwZGF0ZU1l
dGhvZCA9ICImIiAuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgLiAiOjp1cGRhdGUiIC4gJGNvZGVH
ZW5lcmF0b3ItPldLX3VjZmlyc3QoJGdldHRlcik7CiAKLSAgICAgICAgICAgIG15ICRzZWxmSXNU
ZWFyT2ZmVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZkZvclR5
cGUoJGludGVyZmFjZS0+dHlwZSk7CisgICAgICAgICAgICBteSAkc2VsZklzVGVhck9mZlR5cGUg
PSAkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJGludGVyZmFjZS0+dHlw
ZSk7CiAgICAgICAgICAgICBpZiAoJHNlbGZJc1RlYXJPZmZUeXBlKSB7CiAgICAgICAgICAgICAg
ICAgIyBGSVhNRTogV2h5IFNWR01hdHJpeCBzcGVjaWZpY2FsbHk/CiAgICAgICAgICAgICAgICAg
QWRkVG9JbXBsSW5jbHVkZXMoIlNWR01hdHJpeFRlYXJPZmYuaCIsICRjb25kaXRpb25hbCk7CiAg
ICAgICAgICAgICAgICAgJHZhbHVlID0gIlNWR01hdHJpeFRlYXJPZmY6OmNyZWF0ZSgkd3JhcHBl
ZCwgJHZhbHVlKSI7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJTVkdTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCIsICRjb25kaXRpb25hbCk7
Ci0gICAgICAgICAgICAgICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOwor
ICAgICAgICAgICAgICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+dHlwZS0+bmFt
ZTsKICAgICAgICAgICAgICAgICAkdGVhck9mZlR5cGUgPX4gcy9TVkdQcm9wZXJ0eVRlYXJPZmY8
L1NWR1N0YXRpY1Byb3BlcnR5VGVhck9mZjwkaW50ZXJmYWNlTmFtZSwgLzsKICAgICAgICAgICAg
ICAgICAkdmFsdWUgPSAiJHt0ZWFyT2ZmVHlwZX06OmNyZWF0ZShpbXBsLCAkdmFsdWUsICR1cGRh
dGVNZXRob2QpIjsKICAgICAgICAgICAgIH0KQEAgLTU2NzYsNyArNTY2Miw3IEBAIHN1YiBXcml0
ZURhdGEKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAgbXkgJG91dHB1dERpciA9IHNo
aWZ0OwogCi0gICAgbXkgJG5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOworICAgIG15ICRuYW1lID0g
JGludGVyZmFjZS0+dHlwZS0+bmFtZTsKICAgICBteSAkcHJlZml4ID0gRmlsZU5hbWVQcmVmaXg7
CiAgICAgbXkgJGhlYWRlckZpbGVOYW1lID0gIiRvdXRwdXREaXIvJHByZWZpeCRuYW1lLmgiOwog
ICAgIG15ICRpbXBsRmlsZU5hbWUgPSAiJG91dHB1dERpci8kcHJlZml4JG5hbWUuY3BwIjsKQEAg
LTU4NDIsNyArNTgyOCw3IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24KIHsK
ICAgICBteSAoJG91dHB1dEFycmF5LCAkY2xhc3NOYW1lLCAkaW50ZXJmYWNlKSA9IEBfOwogCi0g
ICAgbXkgJGludGVyZmFjZU5hbWUgPSAkaW50ZXJmYWNlLT5uYW1lOworICAgIG15ICRpbnRlcmZh
Y2VOYW1lID0gJGludGVyZmFjZS0+dHlwZS0+bmFtZTsKICAgICBteSAkY29uc3RydWN0b3JDbGFz
c05hbWUgPSAiJHtjbGFzc05hbWV9Q29uc3RydWN0b3IiOwogICAgIG15ICR0ZW1wbGF0ZUNsYXNz
TmFtZSA9IEdldENvbnN0cnVjdG9yVGVtcGxhdGVDbGFzc05hbWUoJGludGVyZmFjZSk7CiAKQEAg
LTU4ODAsNyArNTg2Niw3IEBAIHN1YiBHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbgogCiAg
ICAgcmV0dXJuIGlmIElzSlNCdWlsdGluQ29uc3RydWN0b3IoJGludGVyZmFjZSk7CiAKLSAgICBt
eSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAgbXkgJGludGVyZmFjZU5h
bWUgPSAkaW50ZXJmYWNlLT50eXBlLT5uYW1lOwogICAgIG15ICRjb25zdHJ1Y3RvckNsYXNzTmFt
ZSA9ICRnZW5lcmF0aW5nTmFtZWRDb25zdHJ1Y3RvciA/ICIke2NsYXNzTmFtZX1OYW1lZENvbnN0
cnVjdG9yIiA6ICIke2NsYXNzTmFtZX1Db25zdHJ1Y3RvciI7CiAKICAgICBpZiAoSXNDb25zdHJ1
Y3RhYmxlKCRpbnRlcmZhY2UpKSB7CkBAIC02MDI1LDggKzYwMTEsOCBAQCBzdWIgR2VuZXJhdGVD
b25zdHJ1Y3RvckhlbHBlck1ldGhvZHMKICAgICAjIEZJWE1FOiBJREwgZG9lcyBub3QgYWxsb3cg
YW4gaW50ZXJmYWNlIHdpdGhvdXQgW05vSW50ZXJmYWNlT2JqZWN0XSB0byBpbmhlcml0IG9uZSB0
aGF0IGlzIG1hcmtlZCBhcyBbTm9JbnRlcmZhY2VPYmplY3RdCiAgICAgIyBzbyB3ZSBzaG91bGQg
YmUgYWJsZSB0byB1c2Ugb3VyIHBhcmVudCdzIGludGVyZmFjZSBvYmplY3Qgbm8gbWF0dGVyIHdo
YXQuIEhvd2V2ZXIsIHNvbWUgb2Ygb3VyIElETCBmaWxlcyAoZS5nLiBDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQpCiAgICAgIyBhcmUgbm90IHZhbGlkIHNvIHdlIG5lZWQgdGhpcyBjaGVjayBmb3Ig
bm93LgotICAgIGlmICgkaW50ZXJmYWNlLT5wYXJlbnQgJiYgISRjb2RlR2VuZXJhdG9yLT5HZXRJ
bnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tTmFtZSgkaW50ZXJmYWNlLT5wYXJlbnQpLT57
Tm9JbnRlcmZhY2VPYmplY3R9KSB7Ci0gICAgICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSAiSlMi
IC4gJGludGVyZmFjZS0+cGFyZW50OworICAgIGlmICgkaW50ZXJmYWNlLT5wYXJlbnRUeXBlICYm
ICEkY29kZUdlbmVyYXRvci0+R2V0SW50ZXJmYWNlRXh0ZW5kZWRBdHRyaWJ1dGVzRnJvbU5hbWUo
JGludGVyZmFjZS0+cGFyZW50VHlwZS0+bmFtZSktPntOb0ludGVyZmFjZU9iamVjdH0pIHsKKyAg
ICAgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9ICJKUyIgLiAkaW50ZXJmYWNlLT5wYXJlbnRUeXBl
LT5uYW1lOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuICR7cGFyZW50
Q2xhc3NOYW1lfTo6Z2V0Q29uc3RydWN0b3Iodm0sICZnbG9iYWxPYmplY3QpO1xuIik7CiAgICAg
fSBlbHNpZiAoJGludGVyZmFjZS0+aXNDYWxsYmFjaykgewogICAgICAgICAjIFRoZSBpbnRlcm5h
bCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIGFuIGludGVyZmFjZSBvYmplY3QgZm9yIGEgY2Fs
bGJhY2sgaW50ZXJmYWNlIG11c3QgYmUgdGhlIE9iamVjdC5wcm90b3R5cGUgb2JqZWN0LgpAQCAt
NjA2NCw3ICs2MDUwLDcgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JIZWxwZXJNZXRob2RzCiAg
ICAgaWYgKElzSlNCdWlsdGluQ29uc3RydWN0b3IoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAidGVtcGxhdGU8PiBGdW5jdGlvbkV4ZWN1dGFibGUqICR7Y29uc3Ry
dWN0b3JDbGFzc05hbWV9Ojppbml0aWFsaXplRXhlY3V0YWJsZShWTSYgdm0pXG4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICByZXR1cm4gIiAuIEdldEpTQnVpbHRpbkZ1bmN0aW9uTmFtZUZyb21TdHJpbmcoJGlu
dGVyZmFjZS0+bmFtZSwgImluaXRpYWxpemUiIC4gJGludGVyZmFjZS0+bmFtZSkgLiAiKHZtKTtc
biIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuICIgLiBHZXRKU0J1
aWx0aW5GdW5jdGlvbk5hbWVGcm9tU3RyaW5nKCRpbnRlcmZhY2UtPnR5cGUtPm5hbWUsICJpbml0
aWFsaXplIiAuICRpbnRlcmZhY2UtPnR5cGUtPm5hbWUpIC4gIih2bSk7XG4iKTsKICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAifVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IlxuIik7CiAgICAgfQpAQCAtNjEwNSw3ICs2MDkxLDcgQEAgc3ViIE5lZWRzQ29uc3RydWN0b3JQ
cm9wZXJ0eQogc3ViIElzUmV0dXJuaW5nUHJvbWlzZQogewogICAgIG15ICRmdW5jdGlvbiA9IHNo
aWZ0OwotICAgIHJldHVybiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+aWRsVHlwZSAmJiAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+aWRsVHlwZS0+bmFtZSBlcSAiUHJvbWlzZSI7CisgICAgcmV0dXJuICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlICYmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT50eXBlLT5u
YW1lIGVxICJQcm9taXNlIjsKIH0KIAogc3ViIElzQ29uc3RydWN0YWJsZQpAQCAtNjE4OCw3ICs2
MTc0LDcgQEAgc3ViIEdldEpTQnVpbHRpbkZ1bmN0aW9uTmFtZUZyb21TdHJpbmcKIHN1YiBHZXRK
U0J1aWx0aW5TY29wZU5hbWUKIHsKICAgICBteSAoJGludGVyZmFjZSwgJG9iamVjdCkgPSBAXzsK
LSAgICByZXR1cm4gJG9iamVjdC0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBs
ZW1lbnRlZEJ5fSB8fCAkaW50ZXJmYWNlLT5uYW1lOworICAgIHJldHVybiAkb2JqZWN0LT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0ltcGxlbWVudGVkQnl9IHx8ICRpbnRlcmZhY2Ut
PnR5cGUtPm5hbWU7CiB9CiAKIHN1YiBBZGRKU0J1aWx0aW5JbmNsdWRlc0lmTmVlZGVkKCkKQEAg
LTYxOTYsNyArNjE4Miw3IEBAIHN1YiBBZGRKU0J1aWx0aW5JbmNsdWRlc0lmTmVlZGVkKCkKICAg
ICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAKICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57SlNCdWlsdGlufSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntKU0J1aWx0aW5Db25zdHJ1Y3Rvcn0pIHsKLSAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoJGlu
dGVyZmFjZS0+bmFtZSAuICJCdWlsdGlucy5oIik7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCRpbnRlcmZhY2UtPnR5cGUtPm5hbWUgLiAiQnVpbHRpbnMuaCIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNl
ci5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBh
cnNlci5wbQkocmV2aXNpb24gMjA4MDYzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExQYXJzZXIucG0JKHdvcmtpbmcgY29weSkKQEAgLTUxLDEyICs1MSwyMiBAQCBzdHJ1
Y3QoIGRvbVR5cGUgPT4gewogICAgIHN1YnR5cGVzID0+ICAgICAnQCcsICMgQXJyYXkgb2Ygc3Vi
dHlwZXMsIG9ubHkgdmFsaWQgaWYgaXNVbmlvbiBvciBzZXF1ZW5jZQogfSk7CiAKKyMgVXNlZCB0
byByZXByZXNlbnQgYSBtYXAgb2YgJ3ZhcmlhYmxlIG5hbWUnIDwtPiAndmFyaWFibGUgdHlwZScK
K3N0cnVjdCggZG9tU2lnbmF0dXJlID0+IHsKKyAgICBkaXJlY3Rpb24gPT4gJyQnLCAgICMgVmFy
aWFibGUgZGlyZWN0aW9uIChpbiBvciBvdXQpCisgICAgbmFtZSA9PiAnJCcsICAgICAgICAjIFZh
cmlhYmxlIG5hbWUKKyAgICB0eXBlID0+ICdkb21UeXBlJywgICMgVmFyaWFibGUgdHlwZQorICAg
IHNwZWNpYWxzID0+ICdAJywgICAgIyBTcGVjaWFscworICAgIGV4dGVuZGVkQXR0cmlidXRlcyA9
PiAnJCcsICMgRXh0ZW5kZWQgYXR0cmlidXRlcworICAgIGlzVmFyaWFkaWMgPT4gJyQnLCAgIyBJ
cyB2YXJpYWJsZSB2YXJpYWRpYyAobG9uZy4uLiBudW1iZXJzKQorICAgIGlzT3B0aW9uYWwgPT4g
JyQnLCAgIyBJcyB2YXJpYWJsZSBvcHRpb25hbCAob3B0aW9uYWwgVCkKKyAgICBkZWZhdWx0ID0+
ICckJywgICAgICMgRGVmYXVsdCB2YWx1ZSBmb3IgcGFyYW1ldGVycworfSk7CisKICMgVXNlZCB0
byByZXByZXNlbnQgJ2ludGVyZmFjZScgYmxvY2tzCiBzdHJ1Y3QoIGRvbUludGVyZmFjZSA9PiB7
Ci0gICAgbmFtZSA9PiAnJCcsICAgICAgIyBDbGFzcyBpZGVudGlmaWVyCi0gICAgdHlwZSA9PiAn
JCcsICAgICAgIyBDbGFzcyB0eXBlCi0gICAgcGFyZW50ID0+ICckJywgICAgICAjIFBhcmVudCBj
bGFzcyBpZGVudGlmaWVyCi0gICAgcGFyZW50VHlwZSA9PiAnJCcsICAgICAgIyBQYXJlbnQgY2xh
c3MgdHlwZQorICAgIHR5cGUgPT4gJ2RvbVR5cGUnLCAjIENsYXNzIHR5cGUKKyAgICBwYXJlbnRU
eXBlID0+ICdkb21UeXBlJywgIyBQYXJlbnQgY2xhc3MgdHlwZQogICAgIGNvbnN0YW50cyA9PiAn
QCcsICAgICMgTGlzdCBvZiAnZG9tQ29uc3RhbnQnCiAgICAgZnVuY3Rpb25zID0+ICdAJywgICAg
IyBMaXN0IG9mICdkb21GdW5jdGlvbicKICAgICBhbm9ueW1vdXNGdW5jdGlvbnMgPT4gJ0AnLCAj
IExpc3Qgb2YgJ2RvbUZ1bmN0aW9uJwpAQCAtNzQsMzkgKzg0LDIzIEBAIHN0cnVjdCggZG9tSW50
ZXJmYWNlID0+IHsKICMgVXNlZCB0byByZXByZXNlbnQgZG9tSW50ZXJmYWNlIGNvbnRlbnRzIChu
YW1lIG9mIG1ldGhvZCwgc2lnbmF0dXJlKQogc3RydWN0KCBkb21GdW5jdGlvbiA9PiB7CiAgICAg
aXNTdGF0aWMgPT4gJyQnLAotICAgIHNpZ25hdHVyZSA9PiAnJCcsICAgICMgUmV0dXJuIHR5cGUv
T2JqZWN0IG5hbWUvZXh0ZW5kZWQgYXR0cmlidXRlcwotICAgIHBhcmFtZXRlcnMgPT4gJ0AnLCAg
ICAjIExpc3Qgb2YgJ2RvbVNpZ25hdHVyZScKKyAgICBzaWduYXR1cmUgPT4gJ2RvbVNpZ25hdHVy
ZScsICMgUmV0dXJuIHR5cGUvT2JqZWN0IG5hbWUvZXh0ZW5kZWQgYXR0cmlidXRlcworICAgIHBh
cmFtZXRlcnMgPT4gJ0AnLCAjIExpc3Qgb2YgJ2RvbVNpZ25hdHVyZScKIH0pOwogCiAjIFVzZWQg
dG8gcmVwcmVzZW50IGRvbUludGVyZmFjZSBjb250ZW50cyAobmFtZSBvZiBhdHRyaWJ1dGUsIHNp
Z25hdHVyZSkKIHN0cnVjdCggZG9tQXR0cmlidXRlID0+IHsKLSAgICB0eXBlID0+ICckJywgICAg
ICAgICAgICAgICMgQXR0cmlidXRlIHR5cGUgKGluY2x1ZGluZyBuYW1lc3BhY2UpCiAgICAgaXNT
dGF0aWMgPT4gJyQnLAogICAgIGlzU3RyaW5naWZpZXIgPT4gJyQnLAogICAgIGlzUmVhZE9ubHkg
PT4gJyQnLAotICAgIHNpZ25hdHVyZSA9PiAnJCcsICAgICAgICAgIyBBdHRyaWJ1dGUgc2lnbmF0
dXJlCi19KTsKLQotIyBVc2VkIHRvIHJlcHJlc2VudCBhIG1hcCBvZiAndmFyaWFibGUgbmFtZScg
PC0+ICd2YXJpYWJsZSB0eXBlJwotc3RydWN0KCBkb21TaWduYXR1cmUgPT4gewotICAgIGRpcmVj
dGlvbiA9PiAnJCcsICAgIyBWYXJpYWJsZSBkaXJlY3Rpb24gKGluIG9yIG91dCkKLSAgICBuYW1l
ID0+ICckJywgICAgICAgICMgVmFyaWFibGUgbmFtZQotICAgIGlkbFR5cGUgPT4gJyQnLCAgICAg
IyBWYXJpYWJsZSB0eXBlCi0gICAgc3BlY2lhbHMgPT4gJ0AnLCAgICAjIFNwZWNpYWxzCi0gICAg
ZXh0ZW5kZWRBdHRyaWJ1dGVzID0+ICckJywgIyBFeHRlbmRlZCBhdHRyaWJ1dGVzCi0gICAgaXNO
dWxsYWJsZSA9PiAnJCcsICAjIElzIHZhcmlhYmxlIHR5cGUgTnVsbGFibGUgKFQ/KQotICAgIGlz
VmFyaWFkaWMgPT4gJyQnLCAgIyBJcyB2YXJpYWJsZSB2YXJpYWRpYyAobG9uZy4uLiBudW1iZXJz
KQotICAgIGlzT3B0aW9uYWwgPT4gJyQnLCAgIyBJcyB2YXJpYWJsZSBvcHRpb25hbCAob3B0aW9u
YWwgVCkKLSAgICBkZWZhdWx0ID0+ICckJywgICAgICMgRGVmYXVsdCB2YWx1ZSBmb3IgcGFyYW1l
dGVycworICAgIHNpZ25hdHVyZSA9PiAnZG9tU2lnbmF0dXJlJywgIyBBdHRyaWJ1dGUgc2lnbmF0
dXJlCiB9KTsKIAogIyBVc2VkIHRvIHJlcHJlc2VudCBJdGVyYWJsZSBpbnRlcmZhY2VzCiBzdHJ1
Y3QoIGRvbUl0ZXJhYmxlID0+IHsKICAgICBpc0tleVZhbHVlID0+ICckJywjIElzIG1hcCBpdGVy
YWJsZSBvciBzZXQgaXRlcmFibGUKLSAgICBrZXlUeXBlID0+ICckJywgICAjIEtleSB0eXBlIG5h
bWUgZm9yIG1hcCBpdGVyYWJsZXMgKERFUFJFQ0FURUQgLSBwbGVhc2UgdXNlIGlkbEtleVR5cGUp
Ci0gICAgdmFsdWVUeXBlID0+ICckJywgIyBWYWx1ZSB0eXBlIG5hbWUgZm9yIG1hcCBvciBzZXQg
aXRlcmFibGVzIChERVBSRUNBVEVEIC0gcGxlYXNlIHVzZSBpZGxWYWx1ZVR5cGUpCi0gICAgaWRs
S2V5VHlwZSA9PiAnJCcsICAgIyBLZXkgdHlwZSBmb3IgbWFwIGl0ZXJhYmxlcwotICAgIGlkbFZh
bHVlVHlwZSA9PiAnJCcsICMgVmFsdWUgdHlwZSBmb3IgbWFwIG9yIHNldCBpdGVyYWJsZXMKKyAg
ICBrZXlUeXBlID0+ICdkb21UeXBlJywgIyBLZXkgdHlwZSBmb3IgbWFwIGl0ZXJhYmxlcworICAg
IHZhbHVlVHlwZSA9PiAnZG9tVHlwZScsICMgVmFsdWUgdHlwZSBmb3IgbWFwIG9yIHNldCBpdGVy
YWJsZXMKICAgICBmdW5jdGlvbnMgPT4gJ0AnLCAjIEl0ZXJhYmxlIGZ1bmN0aW9ucyAoZW50cmll
cywga2V5cywgdmFsdWVzLCBbU3ltYm9sLkl0ZXJhdG9yXSwgZm9yRWFjaCkKICAgICBleHRlbmRl
ZEF0dHJpYnV0ZXMgPT4gJyQnLCAjIEV4dGVuZGVkIGF0dHJpYnV0ZXMKIH0pOwpAQCAtMTIzLDcg
KzExNyw3IEBAIHN0cnVjdCggZG9tU2VyaWFsaXphYmxlID0+IHsKICMgVXNlZCB0byByZXByZXNl
bnQgc3RyaW5nIGNvbnN0YW50cwogc3RydWN0KCBkb21Db25zdGFudCA9PiB7CiAgICAgbmFtZSA9
PiAnJCcsICMgRE9NIENvbnN0YW50IGlkZW50aWZpZXIKLSAgICB0eXBlID0+ICckJywgIyBUeXBl
IG5hbWUgb2YgZGF0YQorICAgIHR5cGUgPT4gJ2RvbVR5cGUnLCAjIFR5cGUgbmFtZSBvZiBkYXRh
CiAgICAgdmFsdWUgPT4gJyQnLCAjIENvbnN0YW50IHZhbHVlCiAgICAgZXh0ZW5kZWRBdHRyaWJ1
dGVzID0+ICckJywgIyBFeHRlbmRlZCBhdHRyaWJ1dGVzCiB9KTsKQEAgLTEzMSwxNiArMTI1LDE0
IEBAIHN0cnVjdCggZG9tQ29uc3RhbnQgPT4gewogIyBVc2VkIHRvIHJlcHJlc2VudCAnZW51bScg
ZGVmaW5pdGlvbnMKIHN0cnVjdCggZG9tRW51bSA9PiB7CiAgICAgbmFtZSA9PiAnJCcsICMgRW51
bWVyYXRpb24gaWRlbnRpZmllcgotICAgIHR5cGUgPT4gJyQnLCAjIEVudW1lcmF0aW9uIHR5cGUK
KyAgICB0eXBlID0+ICdkb21UeXBlJywgIyBFbnVtZXJhdGlvbiB0eXBlCiAgICAgdmFsdWVzID0+
ICdAJywgIyBFbnVtZXJhdGlvbiB2YWx1ZXMgKGxpc3Qgb2YgdW5pcXVlIHN0cmluZ3MpCiAgICAg
ZXh0ZW5kZWRBdHRyaWJ1dGVzID0+ICckJywKIH0pOwogCiBzdHJ1Y3QoIGRvbURpY3Rpb25hcnkg
PT4gewotICAgIG5hbWUgPT4gJyQnLCAjIERpY3Rpb25hcnkgaWRlbnRpZmllcgotICAgIHR5cGUg
PT4gJyQnLCAjIERpY3Rpb25hcnkgdHlwZQotICAgIHBhcmVudCA9PiAnJCcsICAjIFBhcmVudCBp
ZGVudGlmaWVyCi0gICAgcGFyZW50VHlwZSA9PiAnJCcsICAjIFBhcmVudCB0eXBlIGlkZW50aWZp
ZXIKKyAgICB0eXBlID0+ICdkb21UeXBlJywgIyBEaWN0aW9uYXJ5IHR5cGUKKyAgICBwYXJlbnRU
eXBlID0+ICdkb21UeXBlJywgICMgUGFyZW50IHR5cGUgaWRlbnRpZmllcgogICAgIG1lbWJlcnMg
PT4gJ0AnLCAjIExpc3Qgb2YgJ2RvbVNpZ25hdHVyZScKICAgICBleHRlbmRlZEF0dHJpYnV0ZXMg
PT4gJyQnLAogfSk7CkBAIC0xNTIsNyArMTQ0LDcgQEAgc3RydWN0KCBUb2tlbiA9PiB7CiAKIHN0
cnVjdCggVHlwZWRlZiA9PiB7CiAgICAgZXh0ZW5kZWRBdHRyaWJ1dGVzID0+ICckJywgIyBFeHRl
bmRlZCBhdHRyaWJ1dGVzCi0gICAgaWRsVHlwZSA9PiAnJCcsICMgVHlwZSBvZiBkYXRhCisgICAg
dHlwZSA9PiAnZG9tVHlwZScsICMgVHlwZSBvZiBkYXRhCiB9KTsKIAogIyBNYXBzICd0eXBlZGVm
IG5hbWUnIC0+IFR5cGVkZWYKQEAgLTM3Niw2ICszNjgsMjIgQEAgc3ViIG1ha2VTaW1wbGVUeXBl
CiAgICAgcmV0dXJuICR0eXBlOwogfQogCitzdWIgY2xvbmVUeXBlCit7CisgICAgbXkgJHNlbGYg
PSBzaGlmdDsKKyAgICBteSAkdHlwZSA9IHNoaWZ0OworCisgICAgbXkgJGNsb25lZFR5cGUgPSBk
b21UeXBlLT5uZXcoKTsKKyAgICAkY2xvbmVkVHlwZS0+bmFtZSgkdHlwZS0+bmFtZSk7CisgICAg
JGNsb25lZFR5cGUtPmlzTnVsbGFibGUoJHR5cGUtPmlzTnVsbGFibGUpOworICAgICRjbG9uZWRU
eXBlLT5pc1VuaW9uKCR0eXBlLT5pc1VuaW9uKTsKKyAgICBmb3JlYWNoIG15ICRzdWJ0eXBlIChA
eyR0eXBlLT5zdWJ0eXBlc30pIHsKKyAgICAgICAgcHVzaChAeyRjbG9uZWRUeXBlLT5zdWJ0eXBl
c30sICRzZWxmLT5jbG9uZVR5cGUoJHN1YnR5cGUpKTsKKyAgICB9CisKKyAgICByZXR1cm4gJGNs
b25lZFR5cGU7Cit9CisKIG15ICRuZXh0QXR0cmlidXRlXzEgPSAnXihhdHRyaWJ1dGV8aW5oZXJp
dHxyZWFkb25seSkkJzsKIG15ICRuZXh0UHJpbWl0aXZlVHlwZV8xID0gJ14oaW50fGxvbmd8c2hv
cnR8dW5zaWduZWQpJCc7CiBteSAkbmV4dFByaW1pdGl2ZVR5cGVfMiA9ICdeKGRvdWJsZXxmbG9h
dHx1bnJlc3RyaWN0ZWQpJCc7CkBAIC00MzYsMTAgKzQ0NCwxNiBAQCBzdWIgYXBwbHlUeXBlZGVm
cwogICAgIGZvcmVhY2ggbXkgJGRlZmluaXRpb24gKEAkZGVmaW5pdGlvbnMpIHsKICAgICAgICAg
aWYgKHJlZigkZGVmaW5pdGlvbikgZXEgImRvbUludGVyZmFjZSIpIHsKICAgICAgICAgICAgIGZv
cmVhY2ggbXkgJGNvbnN0YW50IChAeyRkZWZpbml0aW9uLT5jb25zdGFudHN9KSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKGV4aXN0cyAkdHlwZWRlZnN7JGNvbnN0YW50LT50eXBlfSkgewotICAgICAg
ICAgICAgICAgICAgICBteSAkdHlwZWRlZiA9ICR0eXBlZGVmc3skY29uc3RhbnQtPnR5cGV9Owot
ICAgICAgICAgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0Tm9FeHRlbmRlZEF0dHJpYnV0ZXNJblR5
cGVkZWYoJGNvbnN0YW50LT50eXBlLCBfX0xJTkVfXyk7Ci0gICAgICAgICAgICAgICAgICAgICRj
b25zdGFudC0+dHlwZSgkdHlwZWRlZi0+aWRsVHlwZS0+bmFtZSk7CisgICAgICAgICAgICAgICAg
aWYgKGV4aXN0cyAkdHlwZWRlZnN7JGNvbnN0YW50LT50eXBlLT5uYW1lfSkgeworICAgICAgICAg
ICAgICAgICAgICBteSAkdHlwZWRlZiA9ICR0eXBlZGVmc3skY29uc3RhbnQtPnR5cGUtPm5hbWV9
OworICAgICAgICAgICAgICAgICAgICAkc2VsZi0+YXNzZXJ0Tm9FeHRlbmRlZEF0dHJpYnV0ZXNJ
blR5cGVkZWYoJGNvbnN0YW50LT50eXBlLT5uYW1lLCBfX0xJTkVfXyk7CisKKyAgICAgICAgICAg
ICAgICAgICAgbXkgJGNsb25lZFR5cGUgPSAkc2VsZi0+Y2xvbmVUeXBlKCR0eXBlZGVmLT50eXBl
KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgIyBSZXRhaW4gbnVsbGFi
aWxpdHkgZnJvbSB0aGUgb3JpZ2luYWwgdHlwZS4KKyAgICAgICAgICAgICAgICAgICAgJGNsb25l
ZFR5cGUtPmlzTnVsbGFibGUoJGNvbnN0YW50LT50eXBlLT5pc051bGxhYmxlKTsKKworICAgICAg
ICAgICAgICAgICAgICAkY29uc3RhbnQtPnR5cGUoJGNsb25lZFR5cGUpOwogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAo
QHskZGVmaW5pdGlvbi0+YXR0cmlidXRlc30pIHsKQEAgLTQ1OSw1MCArNDczLDM0IEBAIHN1YiBh
cHBseVR5cGVkZWZzCiAgICAgfQogfQogCi1zdWIgY2xvbmVUeXBlCi17Ci0gICAgbXkgJHNlbGYg
PSBzaGlmdDsKLSAgICBteSAkdHlwZSA9IHNoaWZ0OwotCi0gICAgbXkgJGNsb25lZFR5cGUgPSBk
b21UeXBlLT5uZXcoKTsKLSAgICAkY2xvbmVkVHlwZS0+bmFtZSgkdHlwZS0+bmFtZSk7Ci0gICAg
JGNsb25lZFR5cGUtPmlzTnVsbGFibGUoJHR5cGUtPmlzTnVsbGFibGUpOwotICAgICRjbG9uZWRU
eXBlLT5pc1VuaW9uKCR0eXBlLT5pc1VuaW9uKTsKLSAgICBmb3JlYWNoIG15ICRzdWJ0eXBlIChA
eyR0eXBlLT5zdWJ0eXBlc30pIHsKLSAgICAgICAgcHVzaChAeyRjbG9uZWRUeXBlLT5zdWJ0eXBl
c30sICRzZWxmLT5jbG9uZVR5cGUoJHN1YnR5cGUpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gJGNs
b25lZFR5cGU7Ci19Ci0KIHN1YiBhcHBseVR5cGVkZWZzRm9yU2lnbmF0dXJlCiB7CiAgICAgbXkg
JHNlbGYgPSBzaGlmdDsKICAgICBteSAkc2lnbmF0dXJlID0gc2hpZnQ7CiAKLSAgICBpZiAoIWRl
ZmluZWQgKCRzaWduYXR1cmUtPmlkbFR5cGUpKSB7CisgICAgaWYgKCFkZWZpbmVkICgkc2lnbmF0
dXJlLT50eXBlKSkgewogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbXkgJHR5cGVOYW1l
ID0gJHNpZ25hdHVyZS0+aWRsVHlwZS0+bmFtZTsKKyAgICBteSAkdHlwZU5hbWUgPSAkc2lnbmF0
dXJlLT50eXBlLT5uYW1lOwogCiAgICAgIyBIYW5kbGUgdW5pb24gdHlwZXMsIHNlcXVlbmNlcyBh
bmQgZXRjLgogICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlY3Vyc2l2ZS4KLSAgICBteSAk
bnVtYmVyT2ZTdWJ0eXBlcyA9IHNjYWxhciBAeyRzaWduYXR1cmUtPmlkbFR5cGUtPnN1YnR5cGVz
fTsKKyAgICBteSAkbnVtYmVyT2ZTdWJ0eXBlcyA9IHNjYWxhciBAeyRzaWduYXR1cmUtPnR5cGUt
PnN1YnR5cGVzfTsKICAgICBpZiAoJG51bWJlck9mU3VidHlwZXMpIHsKICAgICAgICAgZm9yIG15
ICRpICgwLi4kbnVtYmVyT2ZTdWJ0eXBlcyAtIDEpIHsKLSAgICAgICAgICAgIG15ICRzdWJ0eXBl
ID0gQHskc2lnbmF0dXJlLT5pZGxUeXBlLT5zdWJ0eXBlc31bJGldOworICAgICAgICAgICAgbXkg
JHN1YnR5cGUgPSBAeyRzaWduYXR1cmUtPnR5cGUtPnN1YnR5cGVzfVskaV07CiAgICAgICAgICAg
ICBteSAkc3VidHlwZU5hbWUgPSAkc3VidHlwZS0+bmFtZTsKIAogICAgICAgICAgICAgaWYgKGV4
aXN0cyAkdHlwZWRlZnN7JHN1YnR5cGVOYW1lfSkgewogICAgICAgICAgICAgICAgIG15ICR0eXBl
ZGVmID0gJHR5cGVkZWZzeyRzdWJ0eXBlTmFtZX07CiAKLSAgICAgICAgICAgICAgICBteSAkY2xv
bmVkVHlwZSA9ICRzZWxmLT5jbG9uZVR5cGUoJHR5cGVkZWYtPmlkbFR5cGUpOworICAgICAgICAg
ICAgICAgIG15ICRjbG9uZWRUeXBlID0gJHNlbGYtPmNsb25lVHlwZSgkdHlwZWRlZi0+dHlwZSk7
CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIyBSZXRhaW4gbnVsbGFiaWxpdHkg
ZnJvbSB0aGUgb3JpZ2luYWwgdHlwZS4KICAgICAgICAgICAgICAgICAkY2xvbmVkVHlwZS0+aXNO
dWxsYWJsZSgkc3VidHlwZS0+aXNOdWxsYWJsZSk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgQHskc2lnbmF0dXJlLT5pZGxUeXBlLT5zdWJ0eXBlc31bJGldID0gJGNsb25lZFR5
cGU7CisgICAgICAgICAgICAgICAgQHskc2lnbmF0dXJlLT50eXBlLT5zdWJ0eXBlc31bJGldID0g
JGNsb25lZFR5cGU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAKQEAgLTUxMiwxMyAr
NTEwLDEyIEBAIHN1YiBhcHBseVR5cGVkZWZzRm9yU2lnbmF0dXJlCiAgICAgaWYgKGV4aXN0cyAk
dHlwZWRlZnN7JHR5cGVOYW1lfSkgewogICAgICAgICBteSAkdHlwZWRlZiA9ICR0eXBlZGVmc3sk
dHlwZU5hbWV9OwogCi0gICAgICAgIG15ICRjbG9uZWRUeXBlID0gJHNlbGYtPmNsb25lVHlwZSgk
dHlwZWRlZi0+aWRsVHlwZSk7CisgICAgICAgIG15ICRjbG9uZWRUeXBlID0gJHNlbGYtPmNsb25l
VHlwZSgkdHlwZWRlZi0+dHlwZSk7CiAgICAgICAgIAogICAgICAgICAjIFJldGFpbiBudWxsYWJp
bGl0eSBmcm9tIHRoZSBvcmlnaW5hbCB0eXBlLgotICAgICAgICAkY2xvbmVkVHlwZS0+aXNOdWxs
YWJsZSgkc2lnbmF0dXJlLT5pZGxUeXBlLT5pc051bGxhYmxlKTsKKyAgICAgICAgJGNsb25lZFR5
cGUtPmlzTnVsbGFibGUoJHNpZ25hdHVyZS0+dHlwZS0+aXNOdWxsYWJsZSk7CiAKLSAgICAgICAg
JHNpZ25hdHVyZS0+aWRsVHlwZSgkY2xvbmVkVHlwZSk7Ci0gICAgICAgICRzaWduYXR1cmUtPmlz
TnVsbGFibGUoJGNsb25lZFR5cGUtPmlzTnVsbGFibGUpOworICAgICAgICAkc2lnbmF0dXJlLT50
eXBlKCRjbG9uZWRUeXBlKTsKIAogICAgICAgICBjb3B5RXh0ZW5kZWRBdHRyaWJ1dGVzKCRzaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcywgJHR5cGVkZWYtPmV4dGVuZGVkQXR0cmlidXRlcyk7
CiAgICAgfQpAQCAtNjAwLDEzICs1OTcsMTEgQEAgc3ViIHBhcnNlSW50ZXJmYWNlCiAgICAgICAg
ICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJGludGVyZmFjZU5hbWVUb2tlbiwgSWRlbnRpZmllclRv
a2VuKTsKICAgICAgICAgCiAgICAgICAgIG15ICRuYW1lID0gaWRlbnRpZmllclJlbW92ZU51bGxh
YmxlUHJlZml4KCRpbnRlcmZhY2VOYW1lVG9rZW4tPnZhbHVlKCkpOwotICAgICAgICAkaW50ZXJm
YWNlLT5uYW1lKCRuYW1lKTsKICAgICAgICAgJGludGVyZmFjZS0+dHlwZShtYWtlU2ltcGxlVHlw
ZSgkbmFtZSkpOwogCiAgICAgICAgICRuZXh0ID0gJHNlbGYtPm5leHRUb2tlbigpOwogICAgICAg
ICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjoiKSB7CiAgICAgICAgICAgICBteSAkcGFyZW50ID0g
JHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKTsKLSAgICAgICAgICAgICRpbnRlcmZhY2UtPnBhcmVu
dCgkcGFyZW50KTsKICAgICAgICAgICAgICRpbnRlcmZhY2UtPnBhcmVudFR5cGUobWFrZVNpbXBs
ZVR5cGUoJHBhcmVudCkpOwogICAgICAgICB9CiAKQEAgLTcyMSwxMyArNzE2LDExIEBAIHN1YiBw
YXJzZURpY3Rpb25hcnkKICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkbmFtZVRva2Vu
LCBJZGVudGlmaWVyVG9rZW4pOwogCiAgICAgICAgIG15ICRuYW1lID0gJG5hbWVUb2tlbi0+dmFs
dWUoKTsKLSAgICAgICAgJGRpY3Rpb25hcnktPm5hbWUoJG5hbWUpOwogICAgICAgICAkZGljdGlv
bmFyeS0+dHlwZShtYWtlU2ltcGxlVHlwZSgkbmFtZSkpOwogCiAgICAgICAgICRuZXh0ID0gJHNl
bGYtPm5leHRUb2tlbigpOwogICAgICAgICBpZiAoJG5leHQtPnZhbHVlKCkgZXEgIjoiKSB7CiAg
ICAgICAgICAgICBteSAkcGFyZW50ID0gJHNlbGYtPnBhcnNlSW5oZXJpdGFuY2UoKTsKLSAgICAg
ICAgICAgICRkaWN0aW9uYXJ5LT5wYXJlbnQoJHBhcmVudCk7CiAgICAgICAgICAgICAkZGljdGlv
bmFyeS0+cGFyZW50VHlwZShtYWtlU2ltcGxlVHlwZSgkcGFyZW50KSk7CiAgICAgICAgIH0KICAg
ICAgICAgCkBAIC03NzYsOCArNzY5LDcgQEAgc3ViIHBhcnNlRGljdGlvbmFyeU1lbWJlcgogICAg
ICAgICAkbWVtYmVyLT5leHRlbmRlZEF0dHJpYnV0ZXMoJGV4dGVuZGVkQXR0cmlidXRlTGlzdCk7
CiAKICAgICAgICAgbXkgJHR5cGUgPSAkc2VsZi0+cGFyc2VUeXBlKCk7Ci0gICAgICAgICRtZW1i
ZXItPmlkbFR5cGUoJHR5cGUpOwotICAgICAgICAkbWVtYmVyLT5pc051bGxhYmxlKCR0eXBlLT5p
c051bGxhYmxlKTsKKyAgICAgICAgJG1lbWJlci0+dHlwZSgkdHlwZSk7CiAKICAgICAgICAgbXkg
JG5hbWVUb2tlbiA9ICRzZWxmLT5nZXRUb2tlbigpOwogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9r
ZW5UeXBlKCRuYW1lVG9rZW4sIElkZW50aWZpZXJUb2tlbik7CkBAIC04NDcsMTQgKzgzOSwxMiBA
QCBzdWIgcGFyc2VFeGNlcHRpb24KICAgICAgICAgJHNlbGYtPmFzc2VydFRva2VuVHlwZSgkZXhj
ZXB0aW9uTmFtZVRva2VuLCBJZGVudGlmaWVyVG9rZW4pOwogCiAgICAgICAgIG15ICRuYW1lID0g
aWRlbnRpZmllclJlbW92ZU51bGxhYmxlUHJlZml4KCRleGNlcHRpb25OYW1lVG9rZW4tPnZhbHVl
KCkpOwotICAgICAgICAkaW50ZXJmYWNlLT5uYW1lKCRuYW1lKTsKICAgICAgICAgJGludGVyZmFj
ZS0+dHlwZShtYWtlU2ltcGxlVHlwZSgkbmFtZSkpOwogICAgICAgICAkaW50ZXJmYWNlLT5pc0V4
Y2VwdGlvbigxKTsKIAogICAgICAgICAkbmV4dCA9ICRzZWxmLT5uZXh0VG9rZW4oKTsKICAgICAg
ICAgaWYgKCRuZXh0LT52YWx1ZSgpIGVxICI6IikgewogICAgICAgICAgICAgbXkgJHBhcmVudCA9
ICRzZWxmLT5wYXJzZUluaGVyaXRhbmNlKCk7Ci0gICAgICAgICAgICAkaW50ZXJmYWNlLT5wYXJl
bnQoJHBhcmVudCk7CiAgICAgICAgICAgICAkaW50ZXJmYWNlLT5wYXJlbnRUeXBlKG1ha2VTaW1w
bGVUeXBlKCRwYXJlbnQpKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTk5MiwxMyArOTgyLDEz
IEBAIHN1YiBwYXJzZVR5cGVkZWYKICAgICAgICAgJHR5cGVkZWYtPmV4dGVuZGVkQXR0cmlidXRl
cygkc2VsZi0+cGFyc2VFeHRlbmRlZEF0dHJpYnV0ZUxpc3RBbGxvd0VtcHR5KCkpOwogCiAgICAg
ICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAgICAgICAkdHlwZWRlZi0+aWRs
VHlwZSgkdHlwZSk7CisgICAgICAgICR0eXBlZGVmLT50eXBlKCR0eXBlKTsKIAogICAgICAgICBt
eSAkbmFtZVRva2VuID0gJHNlbGYtPmdldFRva2VuKCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRU
b2tlblR5cGUoJG5hbWVUb2tlbiwgSWRlbnRpZmllclRva2VuKTsKICAgICAgICAgJHNlbGYtPmFz
c2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCksICI7IiwgX19MSU5FX18pOwogICAgICAg
ICBteSAkbmFtZSA9ICRuYW1lVG9rZW4tPnZhbHVlKCk7Ci0gICAgICAgIGRpZSAidHlwZWRlZiBy
ZWRlZmluaXRpb24gZm9yICIgLiAkbmFtZSAuICIgYXQgIiAuICRzZWxmLT57TGluZX0gaWYgKGV4
aXN0cyAkdHlwZWRlZnN7JG5hbWV9ICYmICR0eXBlZGVmLT5pZGxUeXBlLT5uYW1lIG5lICR0eXBl
ZGVmc3skbmFtZX0tPmlkbFR5cGUtPm5hbWUpOworICAgICAgICBkaWUgInR5cGVkZWYgcmVkZWZp
bml0aW9uIGZvciAiIC4gJG5hbWUgLiAiIGF0ICIgLiAkc2VsZi0+e0xpbmV9IGlmIChleGlzdHMg
JHR5cGVkZWZzeyRuYW1lfSAmJiAkdHlwZWRlZi0+dHlwZS0+bmFtZSBuZSAkdHlwZWRlZnN7JG5h
bWV9LT50eXBlLT5uYW1lKTsKICAgICAgICAgJHR5cGVkZWZzeyRuYW1lfSA9ICR0eXBlZGVmOwog
ICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTI5OCw4ICsxMjg4LDcgQEAgc3ViIHBhcnNlQXR0
cmlidXRlT3JPcGVyYXRpb25SZXN0CiAgICAgICAgIG15ICRyZXR1cm5UeXBlID0gJHNlbGYtPnBh
cnNlUmV0dXJuVHlwZSgpOwogICAgICAgICBteSAkaW50ZXJmYWNlID0gJHNlbGYtPnBhcnNlT3Bl
cmF0aW9uUmVzdCgkZXh0ZW5kZWRBdHRyaWJ1dGVMaXN0KTsKICAgICAgICAgaWYgKGRlZmluZWQg
KCRpbnRlcmZhY2UpKSB7Ci0gICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWduYXR1cmUtPmlkbFR5
cGUoJHJldHVyblR5cGUpOwotICAgICAgICAgICAgJGludGVyZmFjZS0+c2lnbmF0dXJlLT5pc051
bGxhYmxlKCRyZXR1cm5UeXBlLT5pc051bGxhYmxlKTsKKyAgICAgICAgICAgICRpbnRlcmZhY2Ut
PnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
ICRpbnRlcmZhY2U7CiAgICAgfQpAQCAtMTMyOCwxNyArMTMxNywxMyBAQCBzdWIgcGFyc2VBdHRy
aWJ1dGVSZXN0CiAgICAgaWYgKCRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEF0dHJpYnV0ZVJlc3Rf
MS8pIHsKICAgICAgICAgbXkgJG5ld0RhdGFOb2RlID0gZG9tQXR0cmlidXRlLT5uZXcoKTsKICAg
ICAgICAgaWYgKCRzZWxmLT5wYXJzZVJlYWRPbmx5KCkpIHsKLSAgICAgICAgICAgICRuZXdEYXRh
Tm9kZS0+dHlwZSgiYXR0cmlidXRlIik7CiAgICAgICAgICAgICAkbmV3RGF0YU5vZGUtPmlzUmVh
ZE9ubHkoMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAkbmV3RGF0YU5vZGUtPnR5
cGUoImF0dHJpYnV0ZSIpOwogICAgICAgICB9CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblZh
bHVlKCRzZWxmLT5nZXRUb2tlbigpLCAiYXR0cmlidXRlIiwgX19MSU5FX18pOwogICAgICAgICAk
bmV3RGF0YU5vZGUtPnNpZ25hdHVyZShkb21TaWduYXR1cmUtPm5ldygpKTsKICAgICAgICAgCiAg
ICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAgICAgICAkbmV3RGF0YU5v
ZGUtPnNpZ25hdHVyZS0+aWRsVHlwZSgkdHlwZSk7Ci0gICAgICAgICRuZXdEYXRhTm9kZS0+c2ln
bmF0dXJlLT5pc051bGxhYmxlKCR0eXBlLT5pc051bGxhYmxlKTsKKyAgICAgICAgJG5ld0RhdGFO
b2RlLT5zaWduYXR1cmUtPnR5cGUoJHR5cGUpOwogCiAgICAgICAgIG15ICR0b2tlbiA9ICRzZWxm
LT5nZXRUb2tlbigpOwogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5UeXBlKCR0b2tlbiwgSWRl
bnRpZmllclRva2VuKTsKQEAgLTEzOTQsOSArMTM3OSw3IEBAIHN1YiBwYXJzZU9wZXJhdGlvbk9y
SXRlcmF0b3IKICAgICAgICAgbXkgJG5leHQgPSAkc2VsZi0+bmV4dFRva2VuKCk7CiAgICAgICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+dmFsdWUoKSBl
cSAiKCIpIHsKICAgICAgICAgICAgIG15ICRvcGVyYXRpb24gPSAkc2VsZi0+cGFyc2VPcGVyYXRp
b25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwotICAgICAgICAgICAgJG9wZXJhdGlvbi0+
c2lnbmF0dXJlLT5pZGxUeXBlKCRyZXR1cm5UeXBlKTsKLSAgICAgICAgICAgICRvcGVyYXRpb24t
PnNpZ25hdHVyZS0+aXNOdWxsYWJsZSgkcmV0dXJuVHlwZS0+aXNOdWxsYWJsZSk7Ci0KKyAgICAg
ICAgICAgICRvcGVyYXRpb24tPnNpZ25hdHVyZS0+dHlwZSgkcmV0dXJuVHlwZSk7CiAgICAgICAg
ICAgICByZXR1cm4gJG9wZXJhdGlvbjsKICAgICAgICAgfQogICAgIH0KQEAgLTE0MTUsOCArMTM5
OCw3IEBAIHN1YiBwYXJzZVNwZWNpYWxPcGVyYXRpb24KICAgICAgICAgbXkgJHJldHVyblR5cGUg
PSAkc2VsZi0+cGFyc2VSZXR1cm5UeXBlKCk7CiAgICAgICAgIG15ICRpbnRlcmZhY2UgPSAkc2Vs
Zi0+cGFyc2VPcGVyYXRpb25SZXN0KCRleHRlbmRlZEF0dHJpYnV0ZUxpc3QpOwogICAgICAgICBp
ZiAoZGVmaW5lZCAoJGludGVyZmFjZSkpIHsKLSAgICAgICAgICAgICRpbnRlcmZhY2UtPnNpZ25h
dHVyZS0+aWRsVHlwZSgkcmV0dXJuVHlwZSk7Ci0gICAgICAgICAgICAkaW50ZXJmYWNlLT5zaWdu
YXR1cmUtPmlzTnVsbGFibGUoJHJldHVyblR5cGUtPmlzTnVsbGFibGUpOworICAgICAgICAgICAg
JGludGVyZmFjZS0+c2lnbmF0dXJlLT50eXBlKCRyZXR1cm5UeXBlKTsKICAgICAgICAgICAgICRp
bnRlcmZhY2UtPnNpZ25hdHVyZS0+c3BlY2lhbHMoXEBzcGVjaWFscyk7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuICRpbnRlcmZhY2U7CkBAIC0xNTEzLDcgKzE0OTUsNyBAQCBzdWIgcGFyc2VP
cHRpb25hbEl0ZXJhYmxlSW50ZXJmYWNlCiAgICAgJGZvckVhY2hGdW5jdGlvbi0+c2lnbmF0dXJl
LT5uYW1lKCJmb3JFYWNoIik7CiAgICAgbXkgJGZvckVhY2hBcmd1bWVudCA9IGRvbVNpZ25hdHVy
ZS0+bmV3KCk7CiAgICAgJGZvckVhY2hBcmd1bWVudC0+bmFtZSgiY2FsbGJhY2siKTsKLSAgICAk
Zm9yRWFjaEFyZ3VtZW50LT5pZGxUeXBlKG1ha2VTaW1wbGVUeXBlKCJhbnkiKSk7CisgICAgJGZv
ckVhY2hBcmd1bWVudC0+dHlwZShtYWtlU2ltcGxlVHlwZSgiYW55IikpOwogICAgIHB1c2goQHsk
Zm9yRWFjaEZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSwgKCRmb3JFYWNoQXJndW1lbnQpKTsKIAogICAg
IG15ICRuZXdEYXRhTm9kZSA9IGRvbUl0ZXJhYmxlLT5uZXcoKTsKQEAgLTE1MzIsMTQgKzE1MTQs
MTEgQEAgc3ViIHBhcnNlT3B0aW9uYWxJdGVyYWJsZUludGVyZmFjZQogCiAgICAgICAgIG15ICR0
eXBlMiA9ICRzZWxmLT5wYXJzZVR5cGUoKTsKICAgICAgICAgJG5ld0RhdGFOb2RlLT5pc0tleVZh
bHVlKDEpOwotICAgICAgICAkbmV3RGF0YU5vZGUtPmlkbEtleVR5cGUoJHR5cGUxKTsKLSAgICAg
ICAgJG5ld0RhdGFOb2RlLT5rZXlUeXBlKCR0eXBlMS0+bmFtZSk7Ci0gICAgICAgICRuZXdEYXRh
Tm9kZS0+aWRsVmFsdWVUeXBlKCR0eXBlMik7Ci0gICAgICAgICRuZXdEYXRhTm9kZS0+dmFsdWVU
eXBlKCR0eXBlMi0+bmFtZSk7CisgICAgICAgICRuZXdEYXRhTm9kZS0+a2V5VHlwZSgkdHlwZTEp
OworICAgICAgICAkbmV3RGF0YU5vZGUtPnZhbHVlVHlwZSgkdHlwZTIpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgICRuZXdEYXRhTm9kZS0+aXNLZXlWYWx1ZSgwKTsKLSAgICAgICAgJG5ld0RhdGFO
b2RlLT5pZGxWYWx1ZVR5cGUoJHR5cGUxKTsKLSAgICAgICAgJG5ld0RhdGFOb2RlLT52YWx1ZVR5
cGUoJHR5cGUxLT5uYW1lKTsKKyAgICAgICAgJG5ld0RhdGFOb2RlLT52YWx1ZVR5cGUoJHR5cGUx
KTsKICAgICB9CiAgICAgJHNlbGYtPmFzc2VydFRva2VuVmFsdWUoJHNlbGYtPmdldFRva2VuKCks
ICI+IiwgX19MSU5FX18pOwogCkBAIC0xNjM1LDggKzE2MTQsNyBAQCBzdWIgcGFyc2VPcHRpb25h
bE9yUmVxdWlyZWRBcmd1bWVudAogICAgICAgICAkc2VsZi0+YXNzZXJ0VG9rZW5WYWx1ZSgkc2Vs
Zi0+Z2V0VG9rZW4oKSwgIm9wdGlvbmFsIiwgX19MSU5FX18pOwogCiAgICAgICAgIG15ICR0eXBl
ID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aWRsVHlwZSgk
dHlwZSk7Ci0gICAgICAgICRwYXJhbURhdGFOb2RlLT5pc051bGxhYmxlKCR0eXBlLT5pc051bGxh
YmxlKTsKKyAgICAgICAgJHBhcmFtRGF0YU5vZGUtPnR5cGUoJHR5cGUpOwogICAgICAgICAkcGFy
YW1EYXRhTm9kZS0+aXNPcHRpb25hbCgxKTsKICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPm5hbWUo
JHNlbGYtPnBhcnNlQXJndW1lbnROYW1lKCkpOwogICAgICAgICAkcGFyYW1EYXRhTm9kZS0+ZGVm
YXVsdCgkc2VsZi0+cGFyc2VEZWZhdWx0KCkpOwpAQCAtMTY0NCw4ICsxNjIyLDcgQEAgc3ViIHBh
cnNlT3B0aW9uYWxPclJlcXVpcmVkQXJndW1lbnQKICAgICB9CiAgICAgaWYgKCRuZXh0LT50eXBl
KCkgPT0gSWRlbnRpZmllclRva2VuIHx8ICRuZXh0LT52YWx1ZSgpID1+IC8kbmV4dEV4Y2VwdGlv
bkZpZWxkXzEvKSB7CiAgICAgICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAg
ICAgICAkcGFyYW1EYXRhTm9kZS0+aWRsVHlwZSgkdHlwZSk7Ci0gICAgICAgICRwYXJhbURhdGFO
b2RlLT5pc051bGxhYmxlKCR0eXBlLT5pc051bGxhYmxlKTsKKyAgICAgICAgJHBhcmFtRGF0YU5v
ZGUtPnR5cGUoJHR5cGUpOwogICAgICAgICAkcGFyYW1EYXRhTm9kZS0+aXNPcHRpb25hbCgwKTsK
ICAgICAgICAgJHBhcmFtRGF0YU5vZGUtPmlzVmFyaWFkaWMoJHNlbGYtPnBhcnNlRWxsaXBzaXMo
KSk7CiAgICAgICAgICRwYXJhbURhdGFOb2RlLT5uYW1lKCRzZWxmLT5wYXJzZUFyZ3VtZW50TmFt
ZSgpKTsKQEAgLTE3MDYsOCArMTY4Myw3IEBAIHN1YiBwYXJzZUV4Y2VwdGlvbkZpZWxkCiAgICAg
ICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0dXJlKGRvbVNpZ25hdHVyZS0+bmV3KCkpOwogCiAgICAg
ICAgIG15ICR0eXBlID0gJHNlbGYtPnBhcnNlVHlwZSgpOwotICAgICAgICAkbmV3RGF0YU5vZGUt
PnNpZ25hdHVyZS0+aWRsVHlwZSgkdHlwZSk7Ci0gICAgICAgICRuZXdEYXRhTm9kZS0+c2lnbmF0
dXJlLT5pc051bGxhYmxlKCR0eXBlLT5pc051bGxhYmxlKTsKKyAgICAgICAgJG5ld0RhdGFOb2Rl
LT5zaWduYXR1cmUtPnR5cGUoJHR5cGUpOwogICAgICAgICAKICAgICAgICAgbXkgJHRva2VuID0g
JHNlbGYtPmdldFRva2VuKCk7CiAgICAgICAgICRzZWxmLT5hc3NlcnRUb2tlblR5cGUoJHRva2Vu
LCBJZGVudGlmaWVyVG9rZW4pOwpAQCAtMjM1Myw3ICsyMzI5LDcgQEAgc3ViIGlzU2VyaWFsaXph
YmxlQXR0cmlidXRlCiAgICAgIyBUaGlzIGNoZWNrIG1heSBoYXZlIHRvIG1vdmUgdG8gdGhlIGNv
ZGUgZ2VuZXJhdG9yLCBpZiB3ZSBkb24ndCBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbgogICAgICMg
aGVyZSB0byBkZXRlcm1pbmUgc2VyaWFsaXphYmlsaXR5OiBodHRwczovL2hleWNhbS5naXRodWIu
aW8vd2ViaWRsLyNpZGwtc2VyaWFsaXplcnMKICAgICBteSAkc2VyaWFsaXphYmxlX3R5cGVzID0g
J14oXChieXRlfG9jdGV0fHNob3J0fHVuc2lnbmVkIHNob3J0fGxvbmd8dW5zaWduZWQgbG9uZ3xs
b25nIGxvbmd8dW5zaWduZWQgbG9uZyBsb25nfGZsb2F0fHVucmVzdHJpY3RlZCBmbG9hdHxkb3Vi
bGV8dW5yZXN0cmljdGVkIGRvdWJsZXxib29sZWFufERPTVN0cmluZ3xCeXRlU3RyaW5nfFVTVlN0
cmluZykkJzsKLSAgICByZXR1cm4gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxUeXBlLT5uYW1l
ID1+IC8kc2VyaWFsaXphYmxlX3R5cGVzLzsKKyAgICByZXR1cm4gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT50eXBlLT5uYW1lID1+IC8kc2VyaWFsaXphYmxlX3R5cGVzLzsKIH0KIAogc3ViIGFwcGx5
TWVtYmVyTGlzdApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0
ZS1iaW5kaW5ncy5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCShyZXZpc2lvbiAyMDgwNjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL2dlbmVyYXRlLWJpbmRpbmdzLnBsCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDEsMTEgKzE0MSwxMSBAQCBmb3JlYWNoIG15ICRpZGxGaWxlIChAc3VwcGxlbWVudGVk
SWRsRmlsCiAgICAgbXkgJGRvY3VtZW50ID0gJHBhcnNlci0+UGFyc2UoJGlkbEZpbGUsICRkZWZp
bmVzLCAkcHJlcHJvY2Vzc29yKTsKIAogICAgIGZvcmVhY2ggbXkgJGludGVyZmFjZSAoQHskZG9j
dW1lbnQtPmludGVyZmFjZXN9KSB7Ci0gICAgICAgIGlmICghJGludGVyZmFjZS0+aXNQYXJ0aWFs
IHx8ICRpbnRlcmZhY2UtPm5hbWUgZXEgJHRhcmdldEludGVyZmFjZU5hbWUpIHsKKyAgICAgICAg
aWYgKCEkaW50ZXJmYWNlLT5pc1BhcnRpYWwgfHwgJGludGVyZmFjZS0+dHlwZS0+bmFtZSBlcSAk
dGFyZ2V0SW50ZXJmYWNlTmFtZSkgewogICAgICAgICAgICAgbXkgJHRhcmdldERhdGFOb2RlOwog
ICAgICAgICAgICAgbXkgQHRhcmdldEdsb2JhbENvbnRleHRzOwogICAgICAgICAgICAgZm9yZWFj
aCBteSAkaW50ZXJmYWNlIChAeyR0YXJnZXREb2N1bWVudC0+aW50ZXJmYWNlc30pIHsKLSAgICAg
ICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+bmFtZSBlcSAkdGFyZ2V0SW50ZXJmYWNlTmFtZSkg
eworICAgICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT50eXBlLT5uYW1lIGVxICR0YXJnZXRJ
bnRlcmZhY2VOYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgICR0YXJnZXREYXRhTm9kZSA9ICRp
bnRlcmZhY2U7CiAgICAgICAgICAgICAgICAgICAgIG15ICRleHBvc2VkQXR0cmlidXRlID0gJHRh
cmdldERhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXhwb3NlZCJ9IHx8ICJXaW5kb3ci
OwogICAgICAgICAgICAgICAgICAgICAkZXhwb3NlZEF0dHJpYnV0ZSA9IHN1YnN0cigkZXhwb3Nl
ZEF0dHJpYnV0ZSwgMSwgLTEpIGlmIHN1YnN0cigkZXhwb3NlZEF0dHJpYnV0ZSwgMCwgMSkgZXEg
IigiOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjA4MDYzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTYtMTAtMjggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBbV2ViSURMXSBVcGRhdGUgcGFyc2VyIGFuZCBjb2RlIGdlbmVyYXRvcnMgdG8g
b25seSBhY2Nlc3MgdHlwZSBpbmZvcm1hdGlvbiB0aHJvdWdoIHRoZSB0eXBlIHByb3BlcnR5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQxNDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0JpbmRpbmdzL0NvZGVHZW5lcmF0b3JEdW1wUmVuZGVyVHJlZS5wbToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0NvZGVHZW5lcmF0b3JU
ZXN0UnVubmVyLnBtOgorICAgICAgICBVcGRhdGUgdG8gYWx3YXlzIGFjY2VzcyB0eXBlIGluZm9y
bWF0aW9uIHRocm91Z2ggdHlwZSBhY2Nlc3NvcnMuIFJlbW92ZSB1c2Ugb2YgcmVtb3ZlZAorICAg
ICAgICBwcm9wZXJ0aWVzLgorCiAyMDE2LTEwLTI4ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVcGdyYWRlIEhhcmZCdXp6IHRvIHZlcnNpb24gMS4z
LjMKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0JpbmRpbmdzL0NvZGVHZW5lcmF0b3JEdW1w
UmVuZGVyVHJlZS5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9CaW5kaW5n
cy9Db2RlR2VuZXJhdG9yRHVtcFJlbmRlclRyZWUucG0JKHJldmlzaW9uIDIwODA2MykKKysrIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0JpbmRpbmdzL0NvZGVHZW5lcmF0b3JEdW1wUmVuZGVyVHJlZS5w
bQkod29ya2luZyBjb3B5KQpAQCAtNTUsMTYgKzU1LDE2IEBAIHN1YiBXcml0ZURhdGEKIAogc3Vi
IF9jbGFzc05hbWUKIHsKLSAgICBteSAoJGlkbFR5cGUpID0gQF87CisgICAgbXkgKCR0eXBlKSA9
IEBfOwogCi0gICAgcmV0dXJuICJKUyIgLiBfaW1wbGVtZW50YXRpb25DbGFzc05hbWUoJGlkbFR5
cGUpOworICAgIHJldHVybiAiSlMiIC4gX2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCR0eXBlKTsK
IH0KIAogc3ViIF9jbGFzc1JlZkdldHRlcgogewotICAgIG15ICgkc2VsZiwgJGlkbFR5cGUpID0g
QF87CisgICAgbXkgKCRzZWxmLCAkdHlwZSkgPSBAXzsKIAotICAgIHJldHVybiAkJHNlbGZ7Y29k
ZUdlbmVyYXRvcn0tPldLX2xjZmlyc3QoX2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCRpZGxUeXBl
KSkgLiAiQ2xhc3MiOworICAgIHJldHVybiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPldLX2xjZmly
c3QoX2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCR0eXBlKSkgLiAiQ2xhc3MiOwogfQogCiBzdWIg
X3BhcnNlTGljZW5zZUJsb2NrCkBAIC0xNDIsOSArMTQyLDkgQEAgc3ViIF9nZW5lcmF0ZUhlYWRl
ckZpbGUKIAogICAgIG15IEBjb250ZW50cyA9ICgpOwogCi0gICAgbXkgJGlkbFR5cGUgPSAkaW50
ZXJmYWNlLT50eXBlOwotICAgIG15ICRjbGFzc05hbWUgPSBfY2xhc3NOYW1lKCRpZGxUeXBlKTsK
LSAgICBteSAkaW1wbGVtZW50YXRpb25DbGFzc05hbWUgPSBfaW1wbGVtZW50YXRpb25DbGFzc05h
bWUoJGlkbFR5cGUpOworICAgIG15ICR0eXBlID0gJGludGVyZmFjZS0+dHlwZTsKKyAgICBteSAk
Y2xhc3NOYW1lID0gX2NsYXNzTmFtZSgkdHlwZSk7CisgICAgbXkgJGltcGxlbWVudGF0aW9uQ2xh
c3NOYW1lID0gX2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCR0eXBlKTsKICAgICBteSAkZmlsZW5h
bWUgPSAkY2xhc3NOYW1lIC4gIi5oIjsKIAogICAgIHB1c2goQGNvbnRlbnRzLCAkc2VsZi0+X2xp
Y2Vuc2VCbG9jaygpKTsKQEAgLTE2Niw3ICsxNjYsNyBAQCBjbGFzcyAke2ltcGxlbWVudGF0aW9u
Q2xhc3NOYW1lfTsKIAogY2xhc3MgJHtjbGFzc05hbWV9IDogcHVibGljICR7cGFyZW50Q2xhc3NO
YW1lfSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIEpTQ2xhc3NSZWYgQHtbJHNlbGYtPl9jbGFzc1Jl
ZkdldHRlcigkaWRsVHlwZSldfSgpOworICAgIHN0YXRpYyBKU0NsYXNzUmVmIEB7WyRzZWxmLT5f
Y2xhc3NSZWZHZXR0ZXIoJHR5cGUpXX0oKTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3Qg
SlNTdGF0aWNGdW5jdGlvbiogc3RhdGljRnVuY3Rpb25zKCk7CkBAIC0yMDksMTQgKzIwOSwxNCBA
QCBzdWIgX2dlbmVyYXRlSW1wbGVtZW50YXRpb25GaWxlCiAgICAgbXkgJWNvbnRlbnRzSW5jbHVk
ZXMgPSAoKTsKICAgICBteSBAY29udGVudHMgPSAoKTsKIAotICAgIG15ICRpZGxUeXBlID0gJGlu
dGVyZmFjZS0+dHlwZTsKLSAgICBteSAkY2xhc3NOYW1lID0gX2NsYXNzTmFtZSgkaWRsVHlwZSk7
Ci0gICAgbXkgJGltcGxlbWVudGF0aW9uQ2xhc3NOYW1lID0gX2ltcGxlbWVudGF0aW9uQ2xhc3NO
YW1lKCRpZGxUeXBlKTsKKyAgICBteSAkdHlwZSA9ICRpbnRlcmZhY2UtPnR5cGU7CisgICAgbXkg
JGNsYXNzTmFtZSA9IF9jbGFzc05hbWUoJHR5cGUpOworICAgIG15ICRpbXBsZW1lbnRhdGlvbkNs
YXNzTmFtZSA9IF9pbXBsZW1lbnRhdGlvbkNsYXNzTmFtZSgkdHlwZSk7CiAgICAgbXkgJGZpbGVu
YW1lID0gJGNsYXNzTmFtZSAuICIuY3BwIjsKIAogICAgIHB1c2goQGNvbnRlbnRzUHJlZml4LCAk
c2VsZi0+X2xpY2Vuc2VCbG9jaygpKTsKIAotICAgIG15ICRjbGFzc1JlZkdldHRlciA9ICRzZWxm
LT5fY2xhc3NSZWZHZXR0ZXIoJGlkbFR5cGUpOworICAgIG15ICRjbGFzc1JlZkdldHRlciA9ICRz
ZWxmLT5fY2xhc3NSZWZHZXR0ZXIoJHR5cGUpOwogICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBf
cGFyZW50Q2xhc3NOYW1lKCRpbnRlcmZhY2UpOwogCiAgICAgJGNvbnRlbnRzSW5jbHVkZXN7IiR7
Y2xhc3NOYW1lfS5oIn0gPSAxOwpAQCAtMjQ0LDcgKzI0NCw3IEBAIEpTQ2xhc3NSZWYgJHtjbGFz
c05hbWV9Ojoke2NsYXNzUmVmR2V0dGUKICAgICBzdGF0aWMgSlNDbGFzc1JlZiBqc0NsYXNzOwog
ICAgIGlmICghanNDbGFzcykgewogICAgICAgICBKU0NsYXNzRGVmaW5pdGlvbiBkZWZpbml0aW9u
ID0ga0pTQ2xhc3NEZWZpbml0aW9uRW1wdHk7Ci0gICAgICAgIGRlZmluaXRpb24uY2xhc3NOYW1l
ID0gIiR7aWRsVHlwZX0iOworICAgICAgICBkZWZpbml0aW9uLmNsYXNzTmFtZSA9ICIke3R5cGV9
IjsKICAgICAgICAgZGVmaW5pdGlvbi5wYXJlbnRDbGFzcyA9IEB7WyRzZWxmLT5fcGFyZW50Q2xh
c3NSZWZHZXR0ZXJFeHByZXNzaW9uKCRpbnRlcmZhY2UpXX07CiAgICAgICAgIGRlZmluaXRpb24u
c3RhdGljVmFsdWVzID0gc3RhdGljVmFsdWVzKCk7CiAgICAgICAgIGRlZmluaXRpb24uc3RhdGlj
RnVuY3Rpb25zID0gc3RhdGljRnVuY3Rpb25zKCk7CkBAIC0yODQsNyArMjg0LDcgQEAgRU9GCiAg
ICAgICAgICAgICAgICAgbXkgQHBhcmFtZXRlcnMgPSAoKTsKICAgICAgICAgICAgICAgICBteSBA
c3BlY2lmaWVkUGFyYW1ldGVycyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKIAotICAgICAg
ICAgICAgICAgICRzZWxmLT5faW5jbHVkZUhlYWRlcnMoXCVjb250ZW50c0luY2x1ZGVzLCAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+aWRsVHlwZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUpOworICAgICAg
ICAgICAgICAgICRzZWxmLT5faW5jbHVkZUhlYWRlcnMoXCVjb250ZW50c0luY2x1ZGVzLCAkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgJGZ1bmN0aW9uLT5zaWduYXR1cmUpOwogCiAgICAgICAg
ICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
UGFzc0NvbnRleHQifSkgewogICAgICAgICAgICAgICAgICAgICBwdXNoKEBwYXJhbWV0ZXJzLCAi
Y29udGV4dCIpOwpAQCAtMjkzLDcgKzI5Myw3IEBAIEVPRgogICAgICAgICAgICAgICAgIGZvcmVh
Y2ggbXkgJGkgKDAuLiQjc3BlY2lmaWVkUGFyYW1ldGVycykgewogICAgICAgICAgICAgICAgICAg
ICBteSAkcGFyYW1ldGVyID0gJHNwZWNpZmllZFBhcmFtZXRlcnNbJGldOwogCi0gICAgICAgICAg
ICAgICAgICAgICRzZWxmLT5faW5jbHVkZUhlYWRlcnMoXCVjb250ZW50c0luY2x1ZGVzLCAkaWRs
VHlwZSwgJHBhcmFtZXRlcik7CisgICAgICAgICAgICAgICAgICAgICRzZWxmLT5faW5jbHVkZUhl
YWRlcnMoXCVjb250ZW50c0luY2x1ZGVzLCAkdHlwZSwgJHBhcmFtZXRlcik7CiAKICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAY29udGVudHMsICIgICAgIiAuICRzZWxmLT5fcGxhdGZvcm1UeXBl
VmFyaWFibGVEZWNsYXJhdGlvbigkcGFyYW1ldGVyLCAkcGFyYW1ldGVyLT5uYW1lLCAiYXJndW1l
bnRzWyRpXSIsICJhcmd1bWVudENvdW50ID4gJGkiKSAuICJcbiIpOwogICAgICAgICAgICAgICAg
ICAgICAKQEAgLTMwMyw3ICszMDMsNyBAQCBFT0YKICAgICAgICAgICAgICAgICAkZnVuY3Rpb25D
YWxsID0gImltcGwtPiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSAuICIoIiAuIGpvaW4o
IiwgIiwgQHBhcmFtZXRlcnMpIC4gIikiOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0g
ICAgICAgICAgICBwdXNoKEBjb250ZW50cywgIiAgICAke2Z1bmN0aW9uQ2FsbH07XG5cbiIpIGlm
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5pZGxUeXBlLT5uYW1lIGVxICJ2b2lkIjsKKyAgICAgICAg
ICAgIHB1c2goQGNvbnRlbnRzLCAiICAgICR7ZnVuY3Rpb25DYWxsfTtcblxuIikgaWYgJGZ1bmN0
aW9uLT5zaWduYXR1cmUtPnR5cGUtPm5hbWUgZXEgInZvaWQiOwogICAgICAgICAgICAgcHVzaChA
Y29udGVudHMsICIgICAgcmV0dXJuICIgLiAkc2VsZi0+X3JldHVybkV4cHJlc3Npb24oJGZ1bmN0
aW9uLT5zaWduYXR1cmUsICRmdW5jdGlvbkNhbGwpIC4gIjtcbn1cbiIpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMzExLDcgKzMxMSw3IEBAIEVPRgogICAgIGlmIChteSBAYXR0cmlidXRlcyA9IEB7
JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAgcHVzaChAY29udGVudHMsICJcbi8v
IEF0dHJpYnV0ZXNcbiIpOwogICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEBhdHRyaWJ1
dGVzKSB7Ci0gICAgICAgICAgICAkc2VsZi0+X2luY2x1ZGVIZWFkZXJzKFwlY29udGVudHNJbmNs
dWRlcywgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxUeXBlLCAkYXR0cmlidXRlLT5zaWduYXR1
cmUpOworICAgICAgICAgICAgJHNlbGYtPl9pbmNsdWRlSGVhZGVycyhcJWNvbnRlbnRzSW5jbHVk
ZXMsICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsK
IAogICAgICAgICAgICAgbXkgJGdldHRlck5hbWUgPSAkc2VsZi0+X2dldHRlck5hbWUoJGF0dHJp
YnV0ZSk7CiAgICAgICAgICAgICBteSAkZ2V0dGVyRXhwcmVzc2lvbiA9ICJpbXBsLT4ke2dldHRl
ck5hbWV9KCkiOwpAQCAtMzczLDIzICszNzMsMjMgQEAgc3ViIF9nZXR0ZXJOYW1lCiAKIHN1YiBf
aW5jbHVkZUhlYWRlcnMKIHsKLSAgICBteSAoJHNlbGYsICRoZWFkZXJzLCAkaWRsVHlwZSwgJHNp
Z25hdHVyZSkgPSBAXzsKKyAgICBteSAoJHNlbGYsICRoZWFkZXJzLCAkdHlwZSwgJHNpZ25hdHVy
ZSkgPSBAXzsKIAotICAgIHJldHVybiB1bmxlc3MgZGVmaW5lZCAkaWRsVHlwZTsKLSAgICByZXR1
cm4gaWYgJGlkbFR5cGUtPm5hbWUgZXEgImJvb2xlYW4iOwotICAgIHJldHVybiBpZiAkaWRsVHlw
ZS0+bmFtZSBlcSAib2JqZWN0IjsKLSAgICByZXR1cm4gaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9
LT5Jc05vblBvaW50ZXJUeXBlKCRpZGxUeXBlKTsKLSAgICByZXR1cm4gaWYgJCRzZWxme2NvZGVH
ZW5lcmF0b3J9LT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpOworICAgIHJldHVybiB1bmxlc3MgZGVm
aW5lZCAkdHlwZTsKKyAgICByZXR1cm4gaWYgJHR5cGUtPm5hbWUgZXEgImJvb2xlYW4iOworICAg
IHJldHVybiBpZiAkdHlwZS0+bmFtZSBlcSAib2JqZWN0IjsKKyAgICByZXR1cm4gaWYgJCRzZWxm
e2NvZGVHZW5lcmF0b3J9LT5Jc05vblBvaW50ZXJUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4gaWYg
JCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc1N0cmluZ1R5cGUoJHR5cGUpOwogCi0gICAgJCRoZWFk
ZXJze19jbGFzc05hbWUoJGlkbFR5cGUpIC4gIi5oIn0gPSAxOwotICAgICQkaGVhZGVyc3tfaW1w
bGVtZW50YXRpb25DbGFzc05hbWUoJGlkbFR5cGUpIC4gIi5oIn0gPSAxOworICAgICQkaGVhZGVy
c3tfY2xhc3NOYW1lKCR0eXBlKSAuICIuaCJ9ID0gMTsKKyAgICAkJGhlYWRlcnN7X2ltcGxlbWVu
dGF0aW9uQ2xhc3NOYW1lKCR0eXBlKSAuICIuaCJ9ID0gMTsKIH0KIAogc3ViIF9pbXBsZW1lbnRh
dGlvbkNsYXNzTmFtZQogewotICAgIG15ICgkaWRsVHlwZSkgPSBAXzsKKyAgICBteSAoJHR5cGUp
ID0gQF87CiAKLSAgICByZXR1cm4gJGlkbFR5cGUtPm5hbWU7CisgICAgcmV0dXJuICR0eXBlLT5u
YW1lOwogfQogCiBzdWIgX3BhcmVudENsYXNzTmFtZQpAQCAtNDE2LDM1ICs0MTYsMzUgQEAgc3Vi
IF9wYXJlbnRJbnRlcmZhY2UKIAogc3ViIF9wbGF0Zm9ybVR5cGUKIHsKLSAgICBteSAoJHNlbGYs
ICRpZGxUeXBlLCAkc2lnbmF0dXJlKSA9IEBfOworICAgIG15ICgkc2VsZiwgJHR5cGUsICRzaWdu
YXR1cmUpID0gQF87CiAKLSAgICByZXR1cm4gdW5kZWYgdW5sZXNzIGRlZmluZWQgJGlkbFR5cGU7
CisgICAgcmV0dXJuIHVuZGVmIHVubGVzcyBkZWZpbmVkICR0eXBlOwogCi0gICAgcmV0dXJuICJi
b29sIiBpZiAkaWRsVHlwZS0+bmFtZSBlcSAiYm9vbGVhbiI7Ci0gICAgcmV0dXJuICJKU1ZhbHVl
UmVmIiBpZiAkaWRsVHlwZS0+bmFtZSBlcSAib2JqZWN0IjsKLSAgICByZXR1cm4gIkpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiIgaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc1N0cmluZ1R5cGUo
JGlkbFR5cGUpOwotICAgIHJldHVybiAiZG91YmxlIiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0t
PklzTm9uUG9pbnRlclR5cGUoJGlkbFR5cGUpOwotICAgIHJldHVybiBfaW1wbGVtZW50YXRpb25D
bGFzc05hbWUoJGlkbFR5cGUpOworICAgIHJldHVybiAiYm9vbCIgaWYgJHR5cGUtPm5hbWUgZXEg
ImJvb2xlYW4iOworICAgIHJldHVybiAiSlNWYWx1ZVJlZiIgaWYgJHR5cGUtPm5hbWUgZXEgIm9i
amVjdCI7CisgICAgcmV0dXJuICJKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4iIGlmICQkc2VsZntj
b2RlR2VuZXJhdG9yfS0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4gImRvdWJsZSIg
aWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc05vblBvaW50ZXJUeXBlKCR0eXBlKTsKKyAgICBy
ZXR1cm4gX2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCR0eXBlKTsKIH0KIAogc3ViIF9wbGF0Zm9y
bVR5cGVDb25zdHJ1Y3RvcgogewogICAgIG15ICgkc2VsZiwgJHNpZ25hdHVyZSwgJGFyZ3VtZW50
TmFtZSkgPSBAXzsKIAotICAgIG15ICRpZGxUeXBlID0gJHNpZ25hdHVyZS0+aWRsVHlwZTsKKyAg
ICBteSAkdHlwZSA9ICRzaWduYXR1cmUtPnR5cGU7CiAKLSAgICByZXR1cm4gIkpTVmFsdWVUb0Jv
b2xlYW4oY29udGV4dCwgJGFyZ3VtZW50TmFtZSkiIGlmICRpZGxUeXBlIGVxICJib29sZWFuIjsK
LSAgICByZXR1cm4gIiRhcmd1bWVudE5hbWUiIGlmICRpZGxUeXBlLT5uYW1lIGVxICJvYmplY3Qi
OwotICAgIHJldHVybiAiSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+KEFkb3B0LCBKU1ZhbHVlVG9T
dHJpbmdDb3B5KGNvbnRleHQsICRhcmd1bWVudE5hbWUsIDApKSIgaWYgJCRzZWxme2NvZGVHZW5l
cmF0b3J9LT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpOwotICAgIHJldHVybiAiSlNWYWx1ZVRvTnVt
YmVyKGNvbnRleHQsICRhcmd1bWVudE5hbWUsIDApIiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0t
PklzTm9uUG9pbnRlclR5cGUoJGlkbFR5cGUpOwotICAgIHJldHVybiAidG8iIC4gX2ltcGxlbWVu
dGF0aW9uQ2xhc3NOYW1lKCRpZGxUeXBlKSAuICIoY29udGV4dCwgJGFyZ3VtZW50TmFtZSkiOwor
ICAgIHJldHVybiAiSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCAkYXJndW1lbnROYW1lKSIgaWYg
JHR5cGUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiJGFyZ3VtZW50TmFtZSIgaWYgJHR5cGUt
Pm5hbWUgZXEgIm9iamVjdCI7CisgICAgcmV0dXJuICJKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4o
QWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgJGFyZ3VtZW50TmFtZSwgMCkpIiBp
ZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPklzU3RyaW5nVHlwZSgkdHlwZSk7CisgICAgcmV0dXJu
ICJKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgJGFyZ3VtZW50TmFtZSwgMCkiIGlmICQkc2VsZntj
b2RlR2VuZXJhdG9yfS0+SXNOb25Qb2ludGVyVHlwZSgkdHlwZSk7CisgICAgcmV0dXJuICJ0byIg
LiBfaW1wbGVtZW50YXRpb25DbGFzc05hbWUoJHR5cGUpIC4gIihjb250ZXh0LCAkYXJndW1lbnRO
YW1lKSI7CiB9CiAKIHN1YiBfcGxhdGZvcm1UeXBlVmFyaWFibGVEZWNsYXJhdGlvbgogewogICAg
IG15ICgkc2VsZiwgJHNpZ25hdHVyZSwgJHZhcmlhYmxlTmFtZSwgJGFyZ3VtZW50TmFtZSwgJGNv
bmRpdGlvbikgPSBAXzsKIAotICAgIG15ICRwbGF0Zm9ybVR5cGUgPSAkc2VsZi0+X3BsYXRmb3Jt
VHlwZSgkc2lnbmF0dXJlLT5pZGxUeXBlLCAkc2lnbmF0dXJlKTsKKyAgICBteSAkcGxhdGZvcm1U
eXBlID0gJHNlbGYtPl9wbGF0Zm9ybVR5cGUoJHNpZ25hdHVyZS0+dHlwZSwgJHNpZ25hdHVyZSk7
CiAgICAgbXkgJGNvbnN0cnVjdG9yID0gJHNlbGYtPl9wbGF0Zm9ybVR5cGVDb25zdHJ1Y3Rvcigk
c2lnbmF0dXJlLCAkYXJndW1lbnROYW1lKTsKIAogICAgIG15ICVub25Qb2ludGVyVHlwZXMgPSAo
CkBAIC00NzIsMTMgKzQ3MiwxMyBAQCBzdWIgX3JldHVybkV4cHJlc3Npb24KIHsKICAgICBteSAo
JHNlbGYsICRzaWduYXR1cmUsICRleHByZXNzaW9uKSA9IEBfOwogCi0gICAgbXkgJHJldHVybklE
TFR5cGUgPSAkc2lnbmF0dXJlLT5pZGxUeXBlOworICAgIG15ICRyZXR1cm5UeXBlID0gJHNpZ25h
dHVyZS0+dHlwZTsKIAotICAgIHJldHVybiAiSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCki
IGlmICRyZXR1cm5JRExUeXBlLT5uYW1lIGVxICJ2b2lkIjsKLSAgICByZXR1cm4gIkpTVmFsdWVN
YWtlQm9vbGVhbihjb250ZXh0LCAke2V4cHJlc3Npb259KSIgaWYgJHJldHVybklETFR5cGUtPm5h
bWUgZXEgImJvb2xlYW4iOwotICAgIHJldHVybiAiJHtleHByZXNzaW9ufSIgaWYgJHJldHVybklE
TFR5cGUtPm5hbWUgZXEgIm9iamVjdCI7Ci0gICAgcmV0dXJuICJKU1ZhbHVlTWFrZU51bWJlcihj
b250ZXh0LCAke2V4cHJlc3Npb259KSIgaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc05vblBv
aW50ZXJUeXBlKCRyZXR1cm5JRExUeXBlKTsKLSAgICByZXR1cm4gIkpTVmFsdWVNYWtlU3RyaW5n
T3JOdWxsKGNvbnRleHQsICR7ZXhwcmVzc2lvbn0uZ2V0KCkpIiBpZiAkJHNlbGZ7Y29kZUdlbmVy
YXRvcn0tPklzU3RyaW5nVHlwZSgkcmV0dXJuSURMVHlwZSk7CisgICAgcmV0dXJuICJKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KSIgaWYgJHJldHVyblR5cGUtPm5hbWUgZXEgInZvaWQiOwor
ICAgIHJldHVybiAiSlNWYWx1ZU1ha2VCb29sZWFuKGNvbnRleHQsICR7ZXhwcmVzc2lvbn0pIiBp
ZiAkcmV0dXJuVHlwZS0+bmFtZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICIke2V4cHJlc3Np
b259IiBpZiAkcmV0dXJuVHlwZS0+bmFtZSBlcSAib2JqZWN0IjsKKyAgICByZXR1cm4gIkpTVmFs
dWVNYWtlTnVtYmVyKGNvbnRleHQsICR7ZXhwcmVzc2lvbn0pIiBpZiAkJHNlbGZ7Y29kZUdlbmVy
YXRvcn0tPklzTm9uUG9pbnRlclR5cGUoJHJldHVyblR5cGUpOworICAgIHJldHVybiAiSlNWYWx1
ZU1ha2VTdHJpbmdPck51bGwoY29udGV4dCwgJHtleHByZXNzaW9ufS5nZXQoKSkiIGlmICQkc2Vs
Zntjb2RlR2VuZXJhdG9yfS0+SXNTdHJpbmdUeXBlKCRyZXR1cm5UeXBlKTsKICAgICByZXR1cm4g
InRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIoJHtleHByZXNzaW9ufSkpIjsKIH0KIApAQCAtNDg2
LDEwICs0ODYsMTAgQEAgc3ViIF9wYXJhbWV0ZXJFeHByZXNzaW9uCiB7CiAgICAgbXkgKCRzZWxm
LCAkcGFyYW1ldGVyKSA9IEBfOwogCi0gICAgbXkgJGlkbFR5cGUgPSAkcGFyYW1ldGVyLT5pZGxU
eXBlOworICAgIG15ICR0eXBlID0gJHBhcmFtZXRlci0+dHlwZTsKICAgICBteSAkbmFtZSA9ICRw
YXJhbWV0ZXItPm5hbWU7CiAKLSAgICByZXR1cm4gIiR7bmFtZX0uZ2V0KCkiIGlmICQkc2VsZntj
b2RlR2VuZXJhdG9yfS0+SXNTdHJpbmdUeXBlKCRpZGxUeXBlKTsKKyAgICByZXR1cm4gIiR7bmFt
ZX0uZ2V0KCkiIGlmICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNTdHJpbmdUeXBlKCR0eXBlKTsK
ICAgICByZXR1cm4gJG5hbWU7CiB9CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvQ29kZUdlbmVyYXRvclRlc3RSdW5uZXIucG0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9Db2Rl
R2VuZXJhdG9yVGVzdFJ1bm5lci5wbQkocmV2aXNpb24gMjA4MDYzKQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9Db2RlR2VuZXJhdG9yVGVzdFJ1bm5l
ci5wbQkod29ya2luZyBjb3B5KQpAQCAtNjksMTcgKzY5LDE3IEBAIHN1YiBXcml0ZURhdGEKIAog
c3ViIF9jbGFzc05hbWUKIHsKLSAgICBteSAoJGlkbFR5cGUpID0gQF87CisgICAgbXkgKCR0eXBl
KSA9IEBfOwogCi0gICAgYXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYgcmVmKCRpZGxUeXBlKSBuZSAi
ZG9tVHlwZSI7CisgICAgYXNzZXJ0KCJOb3QgYSB0eXBlIikgaWYgcmVmKCR0eXBlKSBuZSAiZG9t
VHlwZSI7CiAKLSAgICByZXR1cm4gIkpTIiAuIF9pbXBsZW1lbnRhdGlvbkNsYXNzTmFtZSgkaWRs
VHlwZSk7CisgICAgcmV0dXJuICJKUyIgLiBfaW1wbGVtZW50YXRpb25DbGFzc05hbWUoJHR5cGUp
OwogfQogCiBzdWIgX2NsYXNzUmVmR2V0dGVyCiB7Ci0gICAgbXkgKCRzZWxmLCAkaWRsVHlwZSkg
PSBAXzsKLSAgICByZXR1cm4gJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5XS19sY2ZpcnN0KF9pbXBs
ZW1lbnRhdGlvbkNsYXNzTmFtZSgkaWRsVHlwZSkpIC4gIkNsYXNzIjsKKyAgICBteSAoJHNlbGYs
ICR0eXBlKSA9IEBfOworICAgIHJldHVybiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPldLX2xjZmly
c3QoX2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCR0eXBlKSkgLiAiQ2xhc3MiOwogfQogCiBzdWIg
X3BhcnNlTGljZW5zZUJsb2NrCkBAIC0xNTcsOSArMTU3LDkgQEAgc3ViIF9nZW5lcmF0ZUhlYWRl
ckZpbGUKIAogICAgIG15IEBjb250ZW50cyA9ICgpOwogCi0gICAgbXkgJGlkbFR5cGUgPSAkaW50
ZXJmYWNlLT50eXBlOwotICAgIG15ICRjbGFzc05hbWUgPSBfY2xhc3NOYW1lKCRpZGxUeXBlKTsK
LSAgICBteSAkaW1wbGVtZW50YXRpb25DbGFzc05hbWUgPSBfaW1wbGVtZW50YXRpb25DbGFzc05h
bWUoJGlkbFR5cGUpOworICAgIG15ICR0eXBlID0gJGludGVyZmFjZS0+dHlwZTsKKyAgICBteSAk
Y2xhc3NOYW1lID0gX2NsYXNzTmFtZSgkdHlwZSk7CisgICAgbXkgJGltcGxlbWVudGF0aW9uQ2xh
c3NOYW1lID0gX2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCR0eXBlKTsKICAgICBteSAkZmlsZW5h
bWUgPSAkY2xhc3NOYW1lIC4gIi5oIjsKIAogICAgIHB1c2goQGNvbnRlbnRzLCAkc2VsZi0+X2xp
Y2Vuc2VCbG9jaygpKTsKQEAgLTE4MSw3ICsxODEsNyBAQCBjbGFzcyAke2ltcGxlbWVudGF0aW9u
Q2xhc3NOYW1lfTsKIAogY2xhc3MgJHtjbGFzc05hbWV9IDogcHVibGljICR7cGFyZW50Q2xhc3NO
YW1lfSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIEpTQ2xhc3NSZWYgQHtbJHNlbGYtPl9jbGFzc1Jl
ZkdldHRlcigkaWRsVHlwZSldfSgpOworICAgIHN0YXRpYyBKU0NsYXNzUmVmIEB7WyRzZWxmLT5f
Y2xhc3NSZWZHZXR0ZXIoJHR5cGUpXX0oKTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3Qg
SlNTdGF0aWNGdW5jdGlvbiogc3RhdGljRnVuY3Rpb25zKCk7CkBAIC0yMjQsMTQgKzIyNCwxNCBA
QCBzdWIgX2dlbmVyYXRlSW1wbGVtZW50YXRpb25GaWxlCiAgICAgbXkgJWNvbnRlbnRzSW5jbHVk
ZXMgPSAoKTsKICAgICBteSBAY29udGVudHMgPSAoKTsKIAotICAgIG15ICRpZGxUeXBlID0gJGlu
dGVyZmFjZS0+dHlwZTsKLSAgICBteSAkY2xhc3NOYW1lID0gX2NsYXNzTmFtZSgkaWRsVHlwZSk7
Ci0gICAgbXkgJGltcGxlbWVudGF0aW9uQ2xhc3NOYW1lID0gX2ltcGxlbWVudGF0aW9uQ2xhc3NO
YW1lKCRpZGxUeXBlKTsKKyAgICBteSAkdHlwZSA9ICRpbnRlcmZhY2UtPnR5cGU7CisgICAgbXkg
JGNsYXNzTmFtZSA9IF9jbGFzc05hbWUoJHR5cGUpOworICAgIG15ICRpbXBsZW1lbnRhdGlvbkNs
YXNzTmFtZSA9IF9pbXBsZW1lbnRhdGlvbkNsYXNzTmFtZSgkdHlwZSk7CiAgICAgbXkgJGZpbGVu
YW1lID0gJGNsYXNzTmFtZSAuICIuY3BwIjsKIAogICAgIHB1c2goQGNvbnRlbnRzUHJlZml4LCAk
c2VsZi0+X2xpY2Vuc2VCbG9jaygpKTsKIAotICAgIG15ICRjbGFzc1JlZkdldHRlciA9ICRzZWxm
LT5fY2xhc3NSZWZHZXR0ZXIoJGlkbFR5cGUpOworICAgIG15ICRjbGFzc1JlZkdldHRlciA9ICRz
ZWxmLT5fY2xhc3NSZWZHZXR0ZXIoJHR5cGUpOwogICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBf
cGFyZW50Q2xhc3NOYW1lKCRpbnRlcmZhY2UpOwogCiAgICAgJGNvbnRlbnRzSW5jbHVkZXN7IiR7
Y2xhc3NOYW1lfS5oIn0gPSAxOwpAQCAtMjU5LDcgKzI1OSw3IEBAIEpTQ2xhc3NSZWYgJHtjbGFz
c05hbWV9Ojoke2NsYXNzUmVmR2V0dGUKICAgICBzdGF0aWMgSlNDbGFzc1JlZiBqc0NsYXNzOwog
ICAgIGlmICghanNDbGFzcykgewogICAgICAgICBKU0NsYXNzRGVmaW5pdGlvbiBkZWZpbml0aW9u
ID0ga0pTQ2xhc3NEZWZpbml0aW9uRW1wdHk7Ci0gICAgICAgIGRlZmluaXRpb24uY2xhc3NOYW1l
ID0gIkB7WyRpZGxUeXBlLT5uYW1lXX0iOworICAgICAgICBkZWZpbml0aW9uLmNsYXNzTmFtZSA9
ICJAe1skdHlwZS0+bmFtZV19IjsKICAgICAgICAgZGVmaW5pdGlvbi5wYXJlbnRDbGFzcyA9IEB7
WyRzZWxmLT5fcGFyZW50Q2xhc3NSZWZHZXR0ZXJFeHByZXNzaW9uKCRpbnRlcmZhY2UpXX07CiAg
ICAgICAgIGRlZmluaXRpb24uc3RhdGljVmFsdWVzID0gc3RhdGljVmFsdWVzKCk7CiAgICAgICAg
IGRlZmluaXRpb24uc3RhdGljRnVuY3Rpb25zID0gc3RhdGljRnVuY3Rpb25zKCk7CkBAIC0yOTks
NyArMjk5LDcgQEAgRU9GCiAgICAgICAgICAgICAgICAgbXkgQHBhcmFtZXRlcnMgPSAoKTsKICAg
ICAgICAgICAgICAgICBteSBAc3BlY2lmaWVkUGFyYW1ldGVycyA9IEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfTsKIAotICAgICAgICAgICAgICAgICRzZWxmLT5faW5jbHVkZUhlYWRlcnMoXCVjb250
ZW50c0luY2x1ZGVzLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+aWRsVHlwZSwgJGZ1bmN0aW9uLT5z
aWduYXR1cmUpOworICAgICAgICAgICAgICAgICRzZWxmLT5faW5jbHVkZUhlYWRlcnMoXCVjb250
ZW50c0luY2x1ZGVzLCAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+dHlwZSwgJGZ1bmN0aW9uLT5zaWdu
YXR1cmUpOwogCiAgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiUGFzc0NvbnRleHQifSkgewogICAgICAgICAgICAgICAgICAgICBw
dXNoKEBwYXJhbWV0ZXJzLCAiY29udGV4dCIpOwpAQCAtMzA4LDcgKzMwOCw3IEBAIEVPRgogICAg
ICAgICAgICAgICAgIGZvcmVhY2ggbXkgJGkgKDAuLiQjc3BlY2lmaWVkUGFyYW1ldGVycykgewog
ICAgICAgICAgICAgICAgICAgICBteSAkcGFyYW1ldGVyID0gJHNwZWNpZmllZFBhcmFtZXRlcnNb
JGldOwogCi0gICAgICAgICAgICAgICAgICAgICRzZWxmLT5faW5jbHVkZUhlYWRlcnMoXCVjb250
ZW50c0luY2x1ZGVzLCAkaWRsVHlwZSwgJHBhcmFtZXRlcik7CisgICAgICAgICAgICAgICAgICAg
ICRzZWxmLT5faW5jbHVkZUhlYWRlcnMoXCVjb250ZW50c0luY2x1ZGVzLCAkdHlwZSwgJHBhcmFt
ZXRlcik7CiAKICAgICAgICAgICAgICAgICAgICAgcHVzaChAY29udGVudHMsICIgICAgIiAuICRz
ZWxmLT5fcGxhdGZvcm1UeXBlVmFyaWFibGVEZWNsYXJhdGlvbigkcGFyYW1ldGVyLCAkcGFyYW1l
dGVyLT5uYW1lLCAiYXJndW1lbnRzWyRpXSIsICJhcmd1bWVudENvdW50ID4gJGkiKSAuICJcbiIp
OwogICAgICAgICAgICAgICAgICAgICAKQEAgLTMxOCw3ICszMTgsNyBAQCBFT0YKICAgICAgICAg
ICAgICAgICAkZnVuY3Rpb25DYWxsID0gImltcGwtPiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
bmFtZSAuICIoIiAuIGpvaW4oIiwgIiwgQHBhcmFtZXRlcnMpIC4gIikiOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgCi0gICAgICAgICAgICBwdXNoKEBjb250ZW50cywgIiAgICAke2Z1bmN0
aW9uQ2FsbH07XG5cbiIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5pZGxUeXBlLT5uYW1lIGVx
ICJ2b2lkIjsKKyAgICAgICAgICAgIHB1c2goQGNvbnRlbnRzLCAiICAgICR7ZnVuY3Rpb25DYWxs
fTtcblxuIikgaWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUtPm5hbWUgZXEgInZvaWQiOwog
ICAgICAgICAgICAgcHVzaChAY29udGVudHMsICIgICAgcmV0dXJuICIgLiAkc2VsZi0+X3JldHVy
bkV4cHJlc3Npb24oJGZ1bmN0aW9uLT5zaWduYXR1cmUsICRmdW5jdGlvbkNhbGwpIC4gIjtcbn1c
biIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMzI2LDcgKzMyNiw3IEBAIEVPRgogICAgIGlmICht
eSBAYXR0cmlidXRlcyA9IEB7JGludGVyZmFjZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAgcHVz
aChAY29udGVudHMsICJcbi8vIEF0dHJpYnV0ZXNcbiIpOwogICAgICAgICBmb3JlYWNoIG15ICRh
dHRyaWJ1dGUgKEBhdHRyaWJ1dGVzKSB7Ci0gICAgICAgICAgICAkc2VsZi0+X2luY2x1ZGVIZWFk
ZXJzKFwlY29udGVudHNJbmNsdWRlcywgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pZGxUeXBlLCAk
YXR0cmlidXRlLT5zaWduYXR1cmUpOworICAgICAgICAgICAgJHNlbGYtPl9pbmNsdWRlSGVhZGVy
cyhcJWNvbnRlbnRzSW5jbHVkZXMsICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSwgJGF0dHJp
YnV0ZS0+c2lnbmF0dXJlKTsKIAogICAgICAgICAgICAgbXkgJGdldHRlck5hbWUgPSAkc2VsZi0+
X2dldHRlck5hbWUoJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBteSAkZ2V0dGVyRXhwcmVzc2lv
biA9ICJpbXBsLT4ke2dldHRlck5hbWV9KCkiOwpAQCAtMzg4LDIzICszODgsMjMgQEAgc3ViIF9n
ZXR0ZXJOYW1lCiAKIHN1YiBfaW5jbHVkZUhlYWRlcnMKIHsKLSAgICBteSAoJHNlbGYsICRoZWFk
ZXJzLCAkaWRsVHlwZSwgJHNpZ25hdHVyZSkgPSBAXzsKKyAgICBteSAoJHNlbGYsICRoZWFkZXJz
LCAkdHlwZSwgJHNpZ25hdHVyZSkgPSBAXzsKIAotICAgIHJldHVybiB1bmxlc3MgZGVmaW5lZCAk
aWRsVHlwZTsKLSAgICByZXR1cm4gaWYgJGlkbFR5cGUtPm5hbWUgZXEgImJvb2xlYW4iOwotICAg
IHJldHVybiBpZiAkaWRsVHlwZS0+bmFtZSBlcSAib2JqZWN0IjsKLSAgICByZXR1cm4gaWYgJCRz
ZWxme2NvZGVHZW5lcmF0b3J9LT5Jc05vblBvaW50ZXJUeXBlKCRpZGxUeXBlKTsKLSAgICByZXR1
cm4gaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpOworICAg
IHJldHVybiB1bmxlc3MgZGVmaW5lZCAkdHlwZTsKKyAgICByZXR1cm4gaWYgJHR5cGUtPm5hbWUg
ZXEgImJvb2xlYW4iOworICAgIHJldHVybiBpZiAkdHlwZS0+bmFtZSBlcSAib2JqZWN0IjsKKyAg
ICByZXR1cm4gaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc05vblBvaW50ZXJUeXBlKCR0eXBl
KTsKKyAgICByZXR1cm4gaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc1N0cmluZ1R5cGUoJHR5
cGUpOwogCi0gICAgJCRoZWFkZXJze19jbGFzc05hbWUoJGlkbFR5cGUpIC4gIi5oIn0gPSAxOwot
ICAgICQkaGVhZGVyc3tfaW1wbGVtZW50YXRpb25DbGFzc05hbWUoJGlkbFR5cGUpIC4gIi5oIn0g
PSAxOworICAgICQkaGVhZGVyc3tfY2xhc3NOYW1lKCR0eXBlKSAuICIuaCJ9ID0gMTsKKyAgICAk
JGhlYWRlcnN7X2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCR0eXBlKSAuICIuaCJ9ID0gMTsKIH0K
IAogc3ViIF9pbXBsZW1lbnRhdGlvbkNsYXNzTmFtZQogewotICAgIG15ICgkaWRsVHlwZSkgPSBA
XzsKKyAgICBteSAoJHR5cGUpID0gQF87CiAKLSAgICByZXR1cm4gJGlkbFR5cGUtPm5hbWU7Cisg
ICAgcmV0dXJuICR0eXBlLT5uYW1lOwogfQogCiBzdWIgX3BhcmVudENsYXNzTmFtZQpAQCAtNDMx
LDM1ICs0MzEsMzUgQEAgc3ViIF9wYXJlbnRJbnRlcmZhY2UKIAogc3ViIF9wbGF0Zm9ybVR5cGUK
IHsKLSAgICBteSAoJHNlbGYsICRpZGxUeXBlLCAkc2lnbmF0dXJlKSA9IEBfOworICAgIG15ICgk
c2VsZiwgJHR5cGUsICRzaWduYXR1cmUpID0gQF87CiAKLSAgICByZXR1cm4gdW5kZWYgdW5sZXNz
IGRlZmluZWQgJGlkbFR5cGU7CisgICAgcmV0dXJuIHVuZGVmIHVubGVzcyBkZWZpbmVkICR0eXBl
OwogCi0gICAgcmV0dXJuICJib29sIiBpZiAkaWRsVHlwZS0+bmFtZSBlcSAiYm9vbGVhbiI7Ci0g
ICAgcmV0dXJuICJKU1ZhbHVlUmVmIiBpZiAkaWRsVHlwZS0+bmFtZSBlcSAib2JqZWN0IjsKLSAg
ICByZXR1cm4gIkpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiIgaWYgJCRzZWxme2NvZGVHZW5lcmF0
b3J9LT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpOwotICAgIHJldHVybiAiZG91YmxlIiBpZiAkJHNl
bGZ7Y29kZUdlbmVyYXRvcn0tPklzTm9uUG9pbnRlclR5cGUoJGlkbFR5cGUpOwotICAgIHJldHVy
biBfaW1wbGVtZW50YXRpb25DbGFzc05hbWUoJGlkbFR5cGUpOworICAgIHJldHVybiAiYm9vbCIg
aWYgJHR5cGUtPm5hbWUgZXEgImJvb2xlYW4iOworICAgIHJldHVybiAiSlNWYWx1ZVJlZiIgaWYg
JHR5cGUtPm5hbWUgZXEgIm9iamVjdCI7CisgICAgcmV0dXJuICJKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4iIGlmICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKKyAg
ICByZXR1cm4gImRvdWJsZSIgaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc05vblBvaW50ZXJU
eXBlKCR0eXBlKTsKKyAgICByZXR1cm4gX2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCR0eXBlKTsK
IH0KIAogc3ViIF9wbGF0Zm9ybVR5cGVDb25zdHJ1Y3RvcgogewogICAgIG15ICgkc2VsZiwgJHNp
Z25hdHVyZSwgJGFyZ3VtZW50TmFtZSkgPSBAXzsKIAotICAgIG15ICRpZGxUeXBlID0gJHNpZ25h
dHVyZS0+aWRsVHlwZTsKKyAgICBteSAkdHlwZSA9ICRzaWduYXR1cmUtPnR5cGU7CiAKLSAgICBy
ZXR1cm4gIkpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgJGFyZ3VtZW50TmFtZSkiIGlmICRpZGxU
eXBlLT5uYW1lIGVxICJib29sZWFuIjsKLSAgICByZXR1cm4gIiRhcmd1bWVudE5hbWUiIGlmICRp
ZGxUeXBlLT5uYW1lIGVxICJvYmplY3QiOwotICAgIHJldHVybiAiSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+KEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsICRhcmd1bWVudE5hbWUs
IDApKSIgaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc1N0cmluZ1R5cGUoJGlkbFR5cGUpOwot
ICAgIHJldHVybiAiSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsICRhcmd1bWVudE5hbWUsIDApIiBp
ZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPklzTm9uUG9pbnRlclR5cGUoJGlkbFR5cGUpOwotICAg
IHJldHVybiAidG8iIC4gX2ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCRpZGxUeXBlKSAuICIoY29u
dGV4dCwgJGFyZ3VtZW50TmFtZSkiOworICAgIHJldHVybiAiSlNWYWx1ZVRvQm9vbGVhbihjb250
ZXh0LCAkYXJndW1lbnROYW1lKSIgaWYgJHR5cGUtPm5hbWUgZXEgImJvb2xlYW4iOworICAgIHJl
dHVybiAiJGFyZ3VtZW50TmFtZSIgaWYgJHR5cGUtPm5hbWUgZXEgIm9iamVjdCI7CisgICAgcmV0
dXJuICJKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4oQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHko
Y29udGV4dCwgJGFyZ3VtZW50TmFtZSwgMCkpIiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPklz
U3RyaW5nVHlwZSgkdHlwZSk7CisgICAgcmV0dXJuICJKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwg
JGFyZ3VtZW50TmFtZSwgMCkiIGlmICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNOb25Qb2ludGVy
VHlwZSgkdHlwZSk7CisgICAgcmV0dXJuICJ0byIgLiBfaW1wbGVtZW50YXRpb25DbGFzc05hbWUo
JHR5cGUpIC4gIihjb250ZXh0LCAkYXJndW1lbnROYW1lKSI7CiB9CiAKIHN1YiBfcGxhdGZvcm1U
eXBlVmFyaWFibGVEZWNsYXJhdGlvbgogewogICAgIG15ICgkc2VsZiwgJHNpZ25hdHVyZSwgJHZh
cmlhYmxlTmFtZSwgJGFyZ3VtZW50TmFtZSwgJGNvbmRpdGlvbikgPSBAXzsKIAotICAgIG15ICRw
bGF0Zm9ybVR5cGUgPSAkc2VsZi0+X3BsYXRmb3JtVHlwZSgkc2lnbmF0dXJlLT5pZGxUeXBlLCAk
c2lnbmF0dXJlKTsKKyAgICBteSAkcGxhdGZvcm1UeXBlID0gJHNlbGYtPl9wbGF0Zm9ybVR5cGUo
JHNpZ25hdHVyZS0+dHlwZSwgJHNpZ25hdHVyZSk7CiAgICAgbXkgJGNvbnN0cnVjdG9yID0gJHNl
bGYtPl9wbGF0Zm9ybVR5cGVDb25zdHJ1Y3Rvcigkc2lnbmF0dXJlLCAkYXJndW1lbnROYW1lKTsK
IAogICAgIG15ICVub25Qb2ludGVyVHlwZXMgPSAoCkBAIC00ODcsMTMgKzQ4NywxMyBAQCBzdWIg
X3JldHVybkV4cHJlc3Npb24KIHsKICAgICBteSAoJHNlbGYsICRzaWduYXR1cmUsICRleHByZXNz
aW9uKSA9IEBfOwogCi0gICAgbXkgJHJldHVybklETFR5cGUgPSAkc2lnbmF0dXJlLT5pZGxUeXBl
OworICAgIG15ICRyZXR1cm5UeXBlID0gJHNpZ25hdHVyZS0+dHlwZTsKIAotICAgIHJldHVybiAi
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCkiIGlmICRyZXR1cm5JRExUeXBlLT5uYW1lIGVx
ICJ2b2lkIjsKLSAgICByZXR1cm4gIkpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCAke2V4cHJl
c3Npb259KSIgaWYgJHJldHVybklETFR5cGUtPm5hbWUgZXEgImJvb2xlYW4iOwotICAgIHJldHVy
biAiJHtleHByZXNzaW9ufSIgaWYgJHJldHVybklETFR5cGUtPm5hbWUgZXEgIm9iamVjdCI7Ci0g
ICAgcmV0dXJuICJKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCAke2V4cHJlc3Npb259KSIgaWYg
JCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc05vblBvaW50ZXJUeXBlKCRyZXR1cm5JRExUeXBlKTsK
LSAgICByZXR1cm4gIkpTVmFsdWVNYWtlU3RyaW5nT3JOdWxsKGNvbnRleHQsICR7ZXhwcmVzc2lv
bn0uZ2V0KCkpIiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPklzU3RyaW5nVHlwZSgkcmV0dXJu
SURMVHlwZSk7CisgICAgcmV0dXJuICJKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KSIgaWYg
JHJldHVyblR5cGUtPm5hbWUgZXEgInZvaWQiOworICAgIHJldHVybiAiSlNWYWx1ZU1ha2VCb29s
ZWFuKGNvbnRleHQsICR7ZXhwcmVzc2lvbn0pIiBpZiAkcmV0dXJuVHlwZS0+bmFtZSBlcSAiYm9v
bGVhbiI7CisgICAgcmV0dXJuICIke2V4cHJlc3Npb259IiBpZiAkcmV0dXJuVHlwZS0+bmFtZSBl
cSAib2JqZWN0IjsKKyAgICByZXR1cm4gIkpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsICR7ZXhw
cmVzc2lvbn0pIiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPklzTm9uUG9pbnRlclR5cGUoJHJl
dHVyblR5cGUpOworICAgIHJldHVybiAiSlNWYWx1ZU1ha2VTdHJpbmdPck51bGwoY29udGV4dCwg
JHtleHByZXNzaW9ufS5nZXQoKSkiIGlmICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNTdHJpbmdU
eXBlKCRyZXR1cm5UeXBlKTsKICAgICByZXR1cm4gInRvSlMoY29udGV4dCwgV1RGOjpnZXRQdHIo
JHtleHByZXNzaW9ufSkpIjsKIH0KIApAQCAtNTAxLDEwICs1MDEsMTAgQEAgc3ViIF9wYXJhbWV0
ZXJFeHByZXNzaW9uCiB7CiAgICAgbXkgKCRzZWxmLCAkcGFyYW1ldGVyKSA9IEBfOwogCi0gICAg
bXkgJGlkbFR5cGUgPSAkcGFyYW1ldGVyLT5pZGxUeXBlOworICAgIG15ICR0eXBlID0gJHBhcmFt
ZXRlci0+dHlwZTsKICAgICBteSAkbmFtZSA9ICRwYXJhbWV0ZXItPm5hbWU7CiAKLSAgICByZXR1
cm4gIiR7bmFtZX0uZ2V0KCkiIGlmICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNTdHJpbmdUeXBl
KCRpZGxUeXBlKTsKKyAgICByZXR1cm4gIiR7bmFtZX0uZ2V0KCkiIGlmICQkc2VsZntjb2RlR2Vu
ZXJhdG9yfS0+SXNTdHJpbmdUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gJG5hbWU7CiB9CiAK
</data>
<flag name="review"
          id="316115"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>