<?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>157237</bug_id>
          
          <creation_ts>2016-04-30 15:26:31 -0700</creation_ts>
          <short_desc>Streamline and remove unused bindings generation code</short_desc>
          <delta_ts>2016-04-30 21:17:29 -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>Bindings</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1189134</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-30 15:26:31 -0700</bug_when>
    <thetext>Streamline and remove unused bindings generation code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189135</commentid>
    <comment_count>1</comment_count>
      <attachid>277833</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-30 15:39:50 -0700</bug_when>
    <thetext>Created attachment 277833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189151</commentid>
    <comment_count>2</comment_count>
      <attachid>277833</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-30 19:23:25 -0700</bug_when>
    <thetext>Comment on attachment 277833
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=277833&amp;action=review

&gt; Source/WebCore/Modules/notifications/NotificationCenter.idl:-39
&gt; -   int checkPermission();

We should probably drop int / unsigned int from %numericTypeHash in CodeGenerator.pm too. We should also forbid them in the IDL Parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189154</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-30 20:29:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; We should probably drop int / unsigned int from %numericTypeHash in
&gt; CodeGenerator.pm too. We should also forbid them in the IDL Parser.

Yes, once they are all gone. There are some in internal Apple projects, which is why I didn’t do that in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189159</commentid>
    <comment_count>4</comment_count>
      <attachid>277833</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-30 21:17:23 -0700</bug_when>
    <thetext>Comment on attachment 277833
Patch

Clearing flags on attachment: 277833

Committed r200299: &lt;http://trac.webkit.org/changeset/200299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1189160</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-30 21:17:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>277833</attachid>
            <date>2016-04-30 15:39:50 -0700</date>
            <delta_ts>2016-04-30 21:17:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157237-20160430154024.patch</filename>
            <type>text/plain</type>
            <size>66878</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmM5MjdlMzRhY2YzYTJj
OTkyYzRiZmFmNDQxMzQ1MjdkZjI3ZmFlZC4uZmUwZWJkYzRkMGQzNDM2ZTg5N2E4NWU2YjljYzFl
Mzk1M2MxZDkzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE2LTA0LTMwICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJlYW1saW5lIGFuZCByZW1v
dmUgdW51c2VkIGJpbmRpbmdzIGdlbmVyYXRpb24gY29kZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MjM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uQ2VudGVyLmlkbDogUmVwbGFjZSBub24tc3RhbmRhcmQgImludCIKKyAgICAgICAgd2l0
aCBzdGFuZGFyZCAibG9uZyIsIHdoaWNoIG1lYW5zIHRoZSBzYW1lIHRoaW5nLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtOgorICAgICAgICAoVXBkYXRlRmls
ZSk6IFVzZSBhIGJldHRlciBwZXJsIGlkaW9tIGZvciBvcGVuLgorICAgICAgICAoSXNUeXBlZEFy
cmF5VHlwZSk6IFVzZSBhIGhhc2ggaW5zdGVhZCBvZiBhIGxpc3Qgb2YgY2hlY2tzIGluIHRoZSBj
b2RlLgorICAgICAgICAoSXNSZWZQdHJUeXBlKTogVXNlIEdldEFycmF5T3JTZXF1ZW5jZVR5cGUu
IEFkZCBoYW5kbGluZyBmb3IgImFueSIsIHdoaWNoCisgICAgICAgIGlzIG5vdCBhICJSZWZQdHIi
IHR5cGUuCisgICAgICAgIChJc1dyYXBwZXJUeXBlKTogQnVpbGQgb24gdG9wIG9mIElzUmVmUHRy
IHR5cGUgc28gd2UgZG9uJ3QgaGF2ZSB0byByZXBlYXQKKyAgICAgICAgdGhlIGxpc3QuCisgICAg
ICAgIChnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tTmFtZSk6IEFkZGVkIGEgRklY
TUUgYWJvdXQgd2h5IHRoaXMgaXMgbm8gZ29vZC4KKyAgICAgICAgKENvbXB1dGVJc0NhbGxiYWNr
SW50ZXJmYWNlKTogUmVuYW1lZC4KKyAgICAgICAgKElzQ2FsbGJhY2tJbnRlcmZhY2UpOiBBZGRl
ZCBhIGNhY2hlIHNvIHdlIGRvbid0IGtlZXAgcmVhZGluZyB0aGUgc2FtZSBmaWxlCisgICAgICAg
IG92ZXIgYW5kIG92ZXIgYWdhaW4uIEFkZGVkIGEgRklYTUUgYWJvdXQgd2h5IHRoaXMgaXMgbm8g
Z29vZC4KKyAgICAgICAgKENvbXB1dGVJc0Z1bmN0aW9uT25seUNhbGxiYWNrSW50ZXJmYWNlKTog
RGl0dG8uCisgICAgICAgIChJc0Z1bmN0aW9uT25seUNhbGxiYWNrSW50ZXJmYWNlKTogRGl0dG8u
CisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAg
ICAgKEFkZEluY2x1ZGVzRm9yVHlwZSk6IFVzZSBHZXRBcnJheU9yU2VxdWVuY2VUeXBlLgorICAg
ICAgICAoSXNTY3JpcHRQcm9maWxlVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChBZGRUeXBlZGVm
Rm9yU2NyaXB0UHJvZmlsZVR5cGUpOiBEZWxldGVkLgorICAgICAgICAoQWRkQ2xhc3NGb3J3YXJk
SWZOZWVkZWQpOiBTdHJlYW1saW5lZCB0aGUgY29kZSBhbmQgbWFkZSB0aGUgU2NyaXB0UHJvZmls
ZU5vZGUKKyAgICAgICAgc3BlY2lhbCBjYXNlIGVhc2llciB0byByZWFkLgorICAgICAgICAoR2Vu
ZXJhdGVQYXJhbWV0ZXJzQ2hlY2tFeHByZXNzaW9uKTogVXNlIEdldEFycmF5T3JTZXF1ZW5jZVR5
cGUuCisgICAgICAgIChHZXRGdW5jdGlvbkxlbmd0aCk6IFR3ZWFrZWQgZm9ybWF0dGluZyBhbmQg
YXJndW1lbnQgbmFtZXMuCisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKTogTWVyZ2Vk
IGEgY291cGxlIGNoZWNrcyBpbnRvIGEgc2luZ2xlIGlmIHN0YXRlbWVudC4KKyAgICAgICAgKFdp
bGxDb252ZXJ0VW5kZWZpbmVkVG9EZWZhdWx0UGFyYW1ldGVyVmFsdWUpOiBTdHJlYW1saW5lZCB0
aGUgZnVuY3Rpb24gYnkKKyAgICAgICAgdXNpbmcgYSBoYXNoIGluc3RlYWQgb2YgYSBzZXF1ZW5j
ZSBvZiBpZiBzdGF0ZW1lbnRzIGZvciBtb3N0IGNhc2VzLgorICAgICAgICAoR2V0TmF0aXZlVHlw
ZSk6IFVzZSBHZXRBcnJheU9yU2VxdWVuY2VUeXBlLgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZl
KTogRG8gdGhlIGludGVnZXIgY29udmVyc2lvbiBiYXNlZCBvbiBhIGhhc2ggcmF0aGVyIHRoYW4K
KyAgICAgICAgd2l0aCBsb3RzIG9mIHNlcGFyYXRlIGxpbmVzIG9mIGNvZGUuIE1vdmVkIG1vcmUg
b2YgdGhlIHNpbXBsZSBuYW1lcyBkb3duIHRvCisgICAgICAgIHRoZSBib3R0b20gb2YgdGhlIGZ1
bmN0aW9uIGFuZCBzdHJlYW1saW5lZCB0aGUgbG9naWMuIFJlbW92ZWQgdW5uZWNlc3NhcnkKKyAg
ICAgICAgaW5jbHVkZXMgb2YgdGhlIERPTSBoZWFkZXJzIGRpcmVjdGx5LCBzaW5jZSBvdXIgaGVh
ZGVyIGZpbGUgaW5jbHVkZXMgdGhvc2UuCisgICAgICAgIChOYXRpdmVUb0pTVmFsdWUpOiBGYWN0
b3JlZCBvdXQgdGhlIGdsb2JhbCBvYmplY3QgaGFuZGxpbmcgc28gaXQgd29ya3MgYWNyb3NzCisg
ICAgICAgIG1vcmUgY2FzZXMuIFNpbXBsaWZpZWQgdGhlIGxvZ2ljIGZvciBkYXRlcy4gVXNlIElz
TnVtZXJpY1R5cGUgaW5zdGVhZCBvZgorICAgICAgICBJc1ByaW1pdGl2ZVR5cGUgdG8gZ3VhcmQg
Y29kZSB0aGF0IGlzIHJpZ2h0IG9ubHkgZm9yIHRoZSBudW1lcmljIHR5cGVzLgorICAgICAgICBS
ZW1vdmVkIGNvZGUgdG8gaGFuZGxlICJTeW1ib2wiIHNpbmNlIHdlIGRvbid0IGV2ZXIgdXNlIHRo
YXQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2su
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1
bmN0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgUmVnZW5lcmF0ZWQuCisKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6IFJlbW92ZWQgdGVzdCBjb3Zl
cmFnZSBmb3IgU3ltYm9sLCB3aGljaAorICAgICAgICB3ZSBuZXZlciB1c2UgYW55d2hlcmUuCisK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9FWFRCbGVuZE1pbk1heC5pZGw6IFJlcGxhY2Ugbm9uLXN0
YW5kYXJkICJpbnQiIHdpdGggc3RhbmRhcmQKKyAgICAgICAgImxvbmciLCB3aGljaCBtZWFucyB0
aGUgc2FtZSB0aGluZy4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMuaWRsOiBEaXR0by4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9FWFRzUkdCLmlkbDog
RGl0dG8uCisgICAgICAgICogaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGw6
IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmlkbDog
RGl0dG8uCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5p
ZGw6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQ
VlJUQy5pZGw6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmlkbDogRGl0dG8uCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mby5pZGw6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVwdGhU
ZXh0dXJlLmlkbDogRGl0dG8uCisKIDIwMTYtMDQtMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBbV2ViIElETF0gUGFzcyBldmVuIG1vcmUgdHlwZXMgYnkgcmVm
ZXJlbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCmluZGV4IDM5MTY1ZmUzODY5NmYyMmJmYjUwYjY2
NGUxOGIwZGI4ZWNlMDM0ZDkuLmFlNWI1YjY2YjQ0OTgxOGUxM2UxNWIyZDgyYjQ1OWEzYjEzMmFk
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25DZW50ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaWRsCkBAIC0zMCwxMyArMzAsMTIgQEAKICAqLwogCiBb
Ci0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi0gICAgQ29uZGl0aW9uYWw9TEVHQUNZX05PVElGSUNB
VElPTlMsCiAgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIENvbmRpdGlvbmFsPUxFR0FDWV9OT1RJ
RklDQVRJT05TLAorICAgIE5vSW50ZXJmYWNlT2JqZWN0LAogXSBpbnRlcmZhY2UgTm90aWZpY2F0
aW9uQ2VudGVyIHsKICAgIFtSYWlzZXNFeGNlcHRpb25dIE5vdGlmaWNhdGlvbiBjcmVhdGVOb3Rp
ZmljYXRpb24oRE9NU3RyaW5nIGljb25VcmwsIERPTVN0cmluZyB0aXRsZSwgRE9NU3RyaW5nIGJv
ZHkpOwogCi0gICBpbnQgY2hlY2tQZXJtaXNzaW9uKCk7CisgICBsb25nIGNoZWNrUGVybWlzc2lv
bigpOwogICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25hbCBWb2lkQ2FsbGJhY2s/IGNh
bGxiYWNrKTsKIH07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvci5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvci5wbQppbmRleCBjMjVhZWNmNmIzNTkyYjU4Yzg0NmQxZTQ4NWNjNTNkMWY1Mjhm
MWFjLi5iYTZiZWYyNWJhNjJlODE2OTYyYTNjNWYyMTZiOTAzMmRlNDBlMmMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0KKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCkBAIC03MSw2
ICs3MSwyMSBAQCBteSAld2ViQ29yZVR5cGVIYXNoID0gKAogCiBteSAlZW51bVR5cGVIYXNoID0g
KCk7CiAKK215ICV0eXBlZEFycmF5VHlwZXMgPSAoCisgICAgIkFycmF5QnVmZmVyIiA9PiAxLAor
ICAgICJBcnJheUJ1ZmZlclZpZXciID0+IDEsCisgICAgIkRhdGFWaWV3IiA9PiAxLAorICAgICJG
bG9hdDMyQXJyYXkiID0+IDEsCisgICAgIkZsb2F0NjRBcnJheSIgPT4gMSwKKyAgICAiSW50MTZB
cnJheSIgPT4gMSwKKyAgICAiSW50MzJBcnJheSIgPT4gMSwKKyAgICAiSW50OEFycmF5IiA9PiAx
LAorICAgICJVaW50MTZBcnJheSIgPT4gMSwKKyAgICAiVWludDMyQXJyYXkiID0+IDEsCisgICAg
IlVpbnQ4QXJyYXkiID0+IDEsCisgICAgIlVpbnQ4Q2xhbXBlZEFycmF5IiA9PiAxLAorKTsKKwog
bXkgJW5vblBvaW50ZXJUeXBlSGFzaCA9ICggIkRPTVRpbWVTdGFtcCIgPT4gMSApOwogCiBteSAl
c3ZnQXR0cmlidXRlc0luSFRNTEhhc2ggPSAoCkBAIC0yMDQsNyArMjE5LDcgQEAgc3ViIFVwZGF0
ZUZpbGUKICAgICBteSAkZmlsZU5hbWUgPSBzaGlmdDsKICAgICBteSAkY29udGVudHMgPSBzaGlm
dDsKIAotICAgIG9wZW4gRkgsICI+ICRmaWxlTmFtZSIgb3IgZGllICJDb3VsZG4ndCBvcGVuICRm
aWxlTmFtZTogJCFcbiI7CisgICAgb3BlbiBGSCwgIj4iLCAkZmlsZU5hbWUgb3IgZGllICJDb3Vs
ZG4ndCBvcGVuICRmaWxlTmFtZTogJCFcbiI7CiAgICAgcHJpbnQgRkggJGNvbnRlbnRzOwogICAg
IGNsb3NlIEZIOwogfQpAQCAtNDM0LDEwICs0NDksOCBAQCBzdWIgSXNUeXBlZEFycmF5VHlwZQog
ewogICAgIG15ICRvYmplY3QgPSBzaGlmdDsKICAgICBteSAkdHlwZSA9IHNoaWZ0OwotICAgIHJl
dHVybiAxIGlmICgoJHR5cGUgZXEgIkFycmF5QnVmZmVyIikgb3IgKCR0eXBlIGVxICJBcnJheUJ1
ZmZlclZpZXciKSk7Ci0gICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiVWludDhBcnJheSIpIG9y
ICgkdHlwZSBlcSAiVWludDhDbGFtcGVkQXJyYXkiKSBvciAoJHR5cGUgZXEgIlVpbnQxNkFycmF5
Iikgb3IgKCR0eXBlIGVxICJVaW50MzJBcnJheSIpKTsKLSAgICByZXR1cm4gMSBpZiAoKCR0eXBl
IGVxICJJbnQ4QXJyYXkiKSBvciAoJHR5cGUgZXEgIkludDE2QXJyYXkiKSBvciAoJHR5cGUgZXEg
IkludDMyQXJyYXkiKSk7Ci0gICAgcmV0dXJuIDEgaWYgKCgkdHlwZSBlcSAiRmxvYXQzMkFycmF5
Iikgb3IgKCR0eXBlIGVxICJGbG9hdDY0QXJyYXkiKSBvciAoJHR5cGUgZXEgIkRhdGFWaWV3Iikp
OworCisgICAgcmV0dXJuIDEgaWYgJHR5cGVkQXJyYXlUeXBlc3skdHlwZX07CiAgICAgcmV0dXJu
IDA7CiB9CiAKQEAgLTQ0NywxMCArNDYwLDEwIEBAIHN1YiBJc1JlZlB0clR5cGUKICAgICBteSAk
dHlwZSA9IHNoaWZ0OwogCiAgICAgcmV0dXJuIDAgaWYgJG9iamVjdC0+SXNQcmltaXRpdmVUeXBl
KCR0eXBlKTsKLSAgICByZXR1cm4gMCBpZiAkb2JqZWN0LT5HZXRBcnJheVR5cGUoJHR5cGUpOwot
ICAgIHJldHVybiAwIGlmICRvYmplY3QtPkdldFNlcXVlbmNlVHlwZSgkdHlwZSk7Ci0gICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7CisgICAgcmV0dXJuIDAgaWYgJG9iamVjdC0+
R2V0QXJyYXlPclNlcXVlbmNlVHlwZSgkdHlwZSk7CiAgICAgcmV0dXJuIDAgaWYgJG9iamVjdC0+
SXNFbnVtVHlwZSgkdHlwZSk7CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgIkRPTVN0cmluZyI7
CisgICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgImFueSI7CiAKICAgICByZXR1cm4gMTsKIH0KQEAg
LTY5NiwyNyArNzA5LDI0IEBAIHN1YiBJc1dyYXBwZXJUeXBlCiAgICAgbXkgJG9iamVjdCA9IHNo
aWZ0OwogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAKLSAgICByZXR1cm4gMCBpZiAkb2JqZWN0LT5J
c1ByaW1pdGl2ZVR5cGUoJHR5cGUpOwotICAgIHJldHVybiAwIGlmICRvYmplY3QtPkdldEFycmF5
VHlwZSgkdHlwZSk7Ci0gICAgcmV0dXJuIDAgaWYgJG9iamVjdC0+R2V0U2VxdWVuY2VUeXBlKCR0
eXBlKTsKLSAgICByZXR1cm4gMCBpZiAkb2JqZWN0LT5Jc0VudW1UeXBlKCR0eXBlKTsKLSAgICBy
ZXR1cm4gMCBpZiAkb2JqZWN0LT5Jc1N0cmluZ1R5cGUoJHR5cGUpOworICAgIHJldHVybiAwIGlm
ICEkb2JqZWN0LT5Jc1JlZlB0clR5cGUoJHR5cGUpOwogICAgIHJldHVybiAwIGlmICRvYmplY3Qt
PklzVHlwZWRBcnJheVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAwIGlmICR3ZWJDb3JlVHlwZUhh
c2h7JHR5cGV9OwotICAgIHJldHVybiAwIGlmICR0eXBlIGVxICJhbnkiOwogCiAgICAgcmV0dXJu
IDE7CiB9CiAKIHN1YiBnZXRJbnRlcmZhY2VFeHRlbmRlZEF0dHJpYnV0ZXNGcm9tTmFtZQogewor
ICAgICMgRklYTUU6IEl0J3MgYmFkIHRvIGhhdmUgYSBmdW5jdGlvbiBsaWtlIHRoaXMgdGhhdCBv
cGVucyBhbm90aGVyIElETCBmaWxlIHRvIGFuc3dlciBhIHF1ZXN0aW9uLgorICAgICMgT3ZlcnVz
aW5nIHRoaXMga2luZCBvZiBmdW5jdGlvbiBjYW4gbWFrZSB0aGluZ3MgcmVhbGx5IHNsb3cuIExl
dHMgYXZvaWQgdGhlc2UgaWYgd2UgY2FuLgorCiAgICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogICAg
IG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7CiAKLSAgICBteSAkaWRsRmlsZSA9ICRvYmplY3Qt
PklETEZpbGVGb3JJbnRlcmZhY2UoJGludGVyZmFjZU5hbWUpCi0gICAgICBvciBkaWUoIkNvdWxk
IE5PVCBmaW5kIElETCBmaWxlIGZvciBpbnRlcmZhY2UgXCIkaW50ZXJmYWNlTmFtZVwiIVxuIik7
CisgICAgbXkgJGlkbEZpbGUgPSAkb2JqZWN0LT5JRExGaWxlRm9ySW50ZXJmYWNlKCRpbnRlcmZh
Y2VOYW1lKSBvciBkaWUoIkNvdWxkIE5PVCBmaW5kIElETCBmaWxlIGZvciBpbnRlcmZhY2UgXCIk
aW50ZXJmYWNlTmFtZVwiIVxuIik7CiAKLSAgICBvcGVuIEZJTEUsICI8IiwgJGlkbEZpbGU7Cisg
ICAgb3BlbiBGSUxFLCAiPCIsICRpZGxGaWxlIG9yIGRpZTsKICAgICBteSBAbGluZXMgPSA8RklM
RT47CiAgICAgY2xvc2UgRklMRTsKIApAQCAtNzM5LDE3ICs3NDksMTYgQEAgc3ViIGdldEludGVy
ZmFjZUV4dGVuZGVkQXR0cmlidXRlc0Zyb21OYW1lCiAgICAgcmV0dXJuICRleHRlbmRlZEF0dHJp
YnV0ZXM7CiB9CiAKLXN1YiBJc0NhbGxiYWNrSW50ZXJmYWNlCitzdWIgQ29tcHV0ZUlzQ2FsbGJh
Y2tJbnRlcmZhY2UKIHsKICAgbXkgJG9iamVjdCA9IHNoaWZ0OwogICBteSAkdHlwZSA9IHNoaWZ0
OwogCiAgIHJldHVybiAwIHVubGVzcyAkb2JqZWN0LT5Jc1dyYXBwZXJUeXBlKCR0eXBlKTsKIAot
ICBteSAkaWRsRmlsZSA9ICRvYmplY3QtPklETEZpbGVGb3JJbnRlcmZhY2UoJHR5cGUpCi0gICAg
ICBvciBkaWUoIkNvdWxkIE5PVCBmaW5kIElETCBmaWxlIGZvciBpbnRlcmZhY2UgXCIkdHlwZVwi
IVxuIik7CisgIG15ICRpZGxGaWxlID0gJG9iamVjdC0+SURMRmlsZUZvckludGVyZmFjZSgkdHlw
ZSkgb3IgZGllKCJDb3VsZCBOT1QgZmluZCBJREwgZmlsZSBmb3IgaW50ZXJmYWNlIFwiJHR5cGVc
IiFcbiIpOwogCi0gIG9wZW4gRklMRSwgIjwiLCAkaWRsRmlsZTsKKyAgb3BlbiBGSUxFLCAiPCIs
ICRpZGxGaWxlIG9yIGRpZTsKICAgbXkgQGxpbmVzID0gPEZJTEU+OwogICBjbG9zZSBGSUxFOwog
CkBAIC03NTcsMjAgKzc2NiwzNSBAQCBzdWIgSXNDYWxsYmFja0ludGVyZmFjZQogICByZXR1cm4g
KCRmaWxlQ29udGVudHMgPX4gL2NhbGxiYWNrXHMraW50ZXJmYWNlXHMrKFx3KykvZ3MpOwogfQog
CitteSAlaXNDYWxsYmFja0ludGVyZmFjZSA9ICgpOworCitzdWIgSXNDYWxsYmFja0ludGVyZmFj
ZQoreworICAgICMgRklYTUU6IEl0J3MgYmFkIHRvIGhhdmUgYSBmdW5jdGlvbiBsaWtlIHRoaXMg
dGhhdCBvcGVucyBhbm90aGVyIElETCBmaWxlIHRvIGFuc3dlciBhIHF1ZXN0aW9uLgorICAgICMg
T3ZlcnVzaW5nIHRoaXMga2luZCBvZiBmdW5jdGlvbiBjYW4gbWFrZSB0aGluZ3MgcmVhbGx5IHNs
b3cuIExldHMgYXZvaWQgdGhlc2UgaWYgd2UgY2FuLgorICAgICMgVG8gbWl0aWdhdGUgdGhhdCwg
bGV0cyBjYWNoZSB3aGF0IHdlIGxlYXJuIGluIGEgaGFzaCBzbyB3ZSBkb24ndCBvcGVuIHRoZSBz
YW1lIGZpbGUgb3ZlciBhbmQgb3Zlci4KKworICAgIG15ICgkb2JqZWN0LCAkdHlwZSkgPSBAXzsK
KworICAgIHJldHVybiAkaXNDYWxsYmFja0ludGVyZmFjZXskdHlwZX0gaWYgZXhpc3RzICRpc0Nh
bGxiYWNrSW50ZXJmYWNleyR0eXBlfTsKKyAgICBteSAkcmVzdWx0ID0gQ29tcHV0ZUlzQ2FsbGJh
Y2tJbnRlcmZhY2UoJG9iamVjdCwgJHR5cGUpOworICAgICRpc0NhbGxiYWNrSW50ZXJmYWNleyR0
eXBlfSA9ICRyZXN1bHQ7CisgICAgcmV0dXJuICRyZXN1bHQ7Cit9CisKICMgQ2FsbGJhY2sgaW50
ZXJmYWNlIHdpdGggW0NhbGxiYWNrPUZ1bmN0aW9uT25seV0uCiAjIEZJWE1FOiBUaGlzIHNob3Vs
ZCBiZSBhIGNhbGxiYWNrIGZ1bmN0aW9uOgogIyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2Vi
aWRsLyNpZGwtY2FsbGJhY2stZnVuY3Rpb25zCi1zdWIgSXNGdW5jdGlvbk9ubHlDYWxsYmFja0lu
dGVyZmFjZQorc3ViIENvbXB1dGVJc0Z1bmN0aW9uT25seUNhbGxiYWNrSW50ZXJmYWNlCiB7CiAg
IG15ICRvYmplY3QgPSBzaGlmdDsKICAgbXkgJHR5cGUgPSBzaGlmdDsKIAogICByZXR1cm4gMCB1
bmxlc3MgJG9iamVjdC0+SXNDYWxsYmFja0ludGVyZmFjZSgkdHlwZSk7CiAKLSAgbXkgJGlkbEZp
bGUgPSAkb2JqZWN0LT5JRExGaWxlRm9ySW50ZXJmYWNlKCR0eXBlKQotICAgICAgb3IgZGllKCJD
b3VsZCBOT1QgZmluZCBJREwgZmlsZSBmb3IgaW50ZXJmYWNlIFwiJHR5cGVcIiFcbiIpOworICBt
eSAkaWRsRmlsZSA9ICRvYmplY3QtPklETEZpbGVGb3JJbnRlcmZhY2UoJHR5cGUpIG9yIGRpZSgi
Q291bGQgTk9UIGZpbmQgSURMIGZpbGUgZm9yIGludGVyZmFjZSBcIiR0eXBlXCIhXG4iKTsKIAot
ICBvcGVuIEZJTEUsICI8IiwgJGlkbEZpbGU7CisgIG9wZW4gRklMRSwgIjwiLCAkaWRsRmlsZSBv
ciBkaWU7CiAgIG15IEBsaW5lcyA9IDxGSUxFPjsKICAgY2xvc2UgRklMRTsKIApAQCAtNzkxLDYg
KzgxNSwyMiBAQCBzdWIgSXNGdW5jdGlvbk9ubHlDYWxsYmFja0ludGVyZmFjZQogICByZXR1cm4g
MDsKIH0KIAorbXkgJWlzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJbnRlcmZhY2UgPSAoKTsKKworc3Vi
IElzRnVuY3Rpb25Pbmx5Q2FsbGJhY2tJbnRlcmZhY2UKK3sKKyAgICAjIEZJWE1FOiBJdCdzIGJh
ZCB0byBoYXZlIGEgZnVuY3Rpb24gbGlrZSB0aGlzIHRoYXQgb3BlbnMgYW5vdGhlciBJREwgZmls
ZSB0byBhbnN3ZXIgYSBxdWVzdGlvbi4KKyAgICAjIE92ZXJ1c2luZyB0aGlzIGtpbmQgb2YgZnVu
Y3Rpb24gY2FuIG1ha2UgdGhpbmdzIHJlYWxseSBzbG93LiBMZXRzIGF2b2lkIHRoZXNlIGlmIHdl
IGNhbi4KKyAgICAjIFRvIG1pdGlnYXRlIHRoYXQsIGxldHMgY2FjaGUgd2hhdCB3ZSBsZWFybiBp
biBhIGhhc2ggc28gd2UgZG9uJ3Qgb3BlbiB0aGUgc2FtZSBmaWxlIG92ZXIgYW5kIG92ZXIuCisK
KyAgICBteSAoJG9iamVjdCwgJHR5cGUpID0gQF87CisKKyAgICByZXR1cm4gJGlzRnVuY3Rpb25P
bmx5Q2FsbGJhY2tJbnRlcmZhY2V7JHR5cGV9IGlmIGV4aXN0cyAkaXNGdW5jdGlvbk9ubHlDYWxs
YmFja0ludGVyZmFjZXskdHlwZX07CisgICAgbXkgJHJlc3VsdCA9IENvbXB1dGVJc0Z1bmN0aW9u
T25seUNhbGxiYWNrSW50ZXJmYWNlKCRvYmplY3QsICR0eXBlKTsKKyAgICAkaXNGdW5jdGlvbk9u
bHlDYWxsYmFja0ludGVyZmFjZXskdHlwZX0gPSAkcmVzdWx0OworICAgIHJldHVybiAkcmVzdWx0
OworfQorCiBzdWIgR2VuZXJhdGVDb25kaXRpb25hbFN0cmluZwogewogICAgIG15ICRnZW5lcmF0
b3IgPSBzaGlmdDsKQEAgLTkzMyw2ICs5NzMsNyBAQCBzdWIgU2hvdWxkUGFzc1dyYXBwZXJCeVJl
ZmVyZW5jZQogICAgIHJldHVybiAwIGlmICRwYXJhbWV0ZXItPmlzTnVsbGFibGU7CiAgICAgcmV0
dXJuIDAgaWYgISRvYmplY3QtPklzV3JhcHBlclR5cGUoJHBhcmFtZXRlci0+dHlwZSkgJiYgISRv
YmplY3QtPklzVHlwZWRBcnJheVR5cGUoJHBhcmFtZXRlci0+dHlwZSk7CiAgICAgcmV0dXJuIDAg
aWYgJG9iamVjdC0+SXNTVkdUeXBlTmVlZGluZ1RlYXJPZmYoJHBhcmFtZXRlci0+dHlwZSk7CisK
ICAgICByZXR1cm4gMTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBjN2UzZTBiYzg3ZDBjOTQwYTcyYzkyMWFiZmFh
NWZmNjhlN2QzOTRjLi45NTI1Mzk2ZjcwZGIzNTE4OWYyZjdmN2U1MmU3ZjI4NGMxNTJmNmZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbQpAQCAtMjM5LDE4ICsyMzksMTUgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogCiAgICAg
cmV0dXJuIGlmIFNraXBJbmNsdWRlSGVhZGVyKCR0eXBlKTsKICAgICAKLSAgICAjIFdoZW4gd2Un
cmUgZmluaXNoZWQgd2l0aCB0aGUgb25lLWZpbGUtcGVyLWNsYXNzCi0gICAgIyByZW9yZ2FuaXph
dGlvbiwgd2Ugd29uJ3QgbmVlZCB0aGVzZSBzcGVjaWFsIGNhc2VzLgorICAgICMgV2hlbiB3ZSdy
ZSBmaW5pc2hlZCB3aXRoIHRoZSBvbmUtZmlsZS1wZXItY2xhc3MgcmVvcmdhbml6YXRpb24sIHdl
IHdvbid0IG5lZWQgdGhlc2Ugc3BlY2lhbCBjYXNlcy4KICAgICBpZiAoJHR5cGUgZXEgIlhQYXRo
TlNSZXNvbHZlciIpIHsKICAgICAgICAgJGluY2x1ZGVzUmVmLT57IkpTWFBhdGhOU1Jlc29sdmVy
LmgifSA9IDE7CiAgICAgICAgICRpbmNsdWRlc1JlZi0+eyJKU0N1c3RvbVhQYXRoTlNSZXNvbHZl
ci5oIn0gPSAxOwogICAgIH0gZWxzaWYgKCRpc0NhbGxiYWNrICYmICRjb2RlR2VuZXJhdG9yLT5J
c1dyYXBwZXJUeXBlKCR0eXBlKSkgewogICAgICAgICAkaW5jbHVkZXNSZWYtPnsiSlMke3R5cGV9
LmgifSA9IDE7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0b3ItPkdldFNlcXVlbmNlVHlwZSgk
dHlwZSkgb3IgJGNvZGVHZW5lcmF0b3ItPkdldEFycmF5VHlwZSgkdHlwZSkpIHsKKyAgICB9IGVs
c2lmICgkY29kZUdlbmVyYXRvci0+R2V0QXJyYXlPclNlcXVlbmNlVHlwZSgkdHlwZSkpIHsKICAg
ICAgICAgbXkgJGFycmF5VHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRBcnJheVR5cGUoJHR5cGUp
OwotICAgICAgICBteSAkc2VxdWVuY2VUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldFNlcXVlbmNl
VHlwZSgkdHlwZSk7Ci0gICAgICAgIG15ICRhcnJheU9yU2VxdWVuY2VUeXBlID0gJGFycmF5VHlw
ZSB8fCAkc2VxdWVuY2VUeXBlOwotCisgICAgICAgIG15ICRhcnJheU9yU2VxdWVuY2VUeXBlID0g
JGFycmF5VHlwZSB8fCAkY29kZUdlbmVyYXRvci0+R2V0U2VxdWVuY2VUeXBlKCR0eXBlKTsKICAg
ICAgICAgaWYgKCRhcnJheVR5cGUgZXEgIkRPTVN0cmluZyIpIHsKICAgICAgICAgICAgICRpbmNs
dWRlc1JlZi0+eyJKU0RPTVN0cmluZ0xpc3QuaCJ9ID0gMTsKICAgICAgICAgICAgICRpbmNsdWRl
c1JlZi0+eyJET01TdHJpbmdMaXN0LmgifSA9IDE7CkBAIC0yODAsMzkgKzI3NywyOCBAQCBzdWIg
QWRkVG9JbXBsSW5jbHVkZXMKICAgICB9CiB9CiAKLXN1YiBJc1NjcmlwdFByb2ZpbGVUeXBlCi17
Ci0gICAgbXkgJHR5cGUgPSBzaGlmdDsKLSAgICByZXR1cm4gMSBpZiAoJHR5cGUgZXEgIlNjcmlw
dFByb2ZpbGVOb2RlIik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHN1YiBJc1JlYWRvbmx5CiB7CiAg
ICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0OwogICAgIHJldHVybiAkYXR0cmlidXRlLT5pc1JlYWRP
bmx5ICYmICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBs
YWNlYWJsZSJ9ICYmICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJQdXRGb3J3YXJkcyJ9OwogfQogCi1zdWIgQWRkVHlwZWRlZkZvclNjcmlwdFByb2ZpbGVUeXBl
Ci17Ci0gICAgbXkgJHR5cGUgPSBzaGlmdDsKLSAgICAobXkgJGpzY1R5cGUgPSAkdHlwZSkgPX4g
cy9TY3JpcHQvLzsKLQotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ0eXBlZGVmIEpTQzo6JGpz
Y1R5cGUgJHR5cGU7XG5cbiIpOwotfQotCiBzdWIgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQKIHsK
ICAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OwogCi0gICAgIyBTVkdBbmltYXRlZExlbmd0
aC9OdW1iZXIvZXRjLiBhcmUgdHlwZWRlZnMgdG8gU1ZHQW5pbWF0ZWRUZW1wbGF0ZSwgc28gZG9u
J3QgdXNlIGNsYXNzIGZvcndhcmRzIGZvciB0aGVtIQotICAgIHVubGVzcyAoJGNvZGVHZW5lcmF0
b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRpbnRlcmZhY2VOYW1lKSBvciBJc1NjcmlwdFByb2ZpbGVU
eXBlKCRpbnRlcmZhY2VOYW1lKSBvciAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgk
aW50ZXJmYWNlTmFtZSkpIHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICRp
bnRlcmZhY2VOYW1lO1xuXG4iKTsKLSAgICAjIFNjcmlwdFByb2ZpbGUgYW5kIFNjcmlwdFByb2Zp
bGVOb2RlIGFyZSB0eXBlZGVmcyB0byBKU0M6OlByb2ZpbGUgYW5kIEpTQzo6UHJvZmlsZU5vZGUu
Ci0gICAgfSBlbHNpZiAoSXNTY3JpcHRQcm9maWxlVHlwZSgkaW50ZXJmYWNlTmFtZSkpIHsKKyAg
ICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIlNjcmlwdFByb2ZpbGVOb2RlIikgewogICAgICAgICAk
aGVhZGVySW5jbHVkZXN7Ijxwcm9maWxlci9Qcm9maWxlTm9kZS5oPiJ9ID0gMTsKLSAgICAgICAg
QWRkVHlwZWRlZkZvclNjcmlwdFByb2ZpbGVUeXBlKCRpbnRlcmZhY2VOYW1lKTsKKyAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgInR5cGVkZWYgSlNDOjpQcm9maWxlTm9kZSBTY3JpcHRQcm9m
aWxlTm9kZTtcblxuIik7CisgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICAjIFNWR0FuaW1h
dGVkTGVuZ3RoL051bWJlci9ldGMuIGFyZSB0eXBlZGVmcyBhbmQgc2hvdWxkIG5vdCBiZSBmb3J3
YXJkLWRlY2xhcmVkIGFzIGNsYXNzZXMuCisgICAgcmV0dXJuIGlmICRjb2RlR2VuZXJhdG9yLT5J
c1NWR0FuaW1hdGVkVHlwZSgkaW50ZXJmYWNlTmFtZSk7CisKKyAgICByZXR1cm4gaWYgJGNvZGVH
ZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJGludGVyZmFjZU5hbWUpOworCisgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgImNsYXNzICRpbnRlcmZhY2VOYW1lO1xuXG4iKTsKIH0KIAogc3ViIEdl
dEdlbmVyYXRlSXNSZWFjaGFibGUKQEAgLTQ3Miw3ICs0NTgsNyBAQCBzdWIgTmVlZHNJbXBsZW1l
bnRhdGlvbkNsYXNzCiB7CiAgICAgbXkgKCRpbnRlcmZhY2UpID0gQF87CiAKLSAgICByZXR1cm4g
MCBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQnVpbHRpbiJ9KTsKKyAg
ICByZXR1cm4gMCBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNCdWlsdGlu
In07CiAgICAgcmV0dXJuIDE7CiB9CiAKQEAgLTY3OSw4ICs2NjUsNyBAQCBzdWIgT3BlcmF0aW9u
U2hvdWxkQmVPbkluc3RhbmNlCiAgICAgIyBGSVhNRTogVGhlIGJpbmRpbmdzIGdlbmVyYXRvciBk
b2VzIG5vdCBzdXBwb3J0IHB1dHRpbmcgcnVudGltZS1lbmFibGVkIG9wZXJhdGlvbnMgb24gdGhl
IGluc3RhbmNlIHlldCAoZXhjZXB0IGZvciBnbG9iYWwgb2JqZWN0cykuCiAgICAgcmV0dXJuIDAg
aWYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJFbmFibGVkQXRS
dW50aW1lIn07CiAKLSAgICAjIFtVbmZvcmdlYWJsZV0gb3BlcmF0aW9ucyBzaG91bGQgYmUgb24g
dGhlIGluc3RhbmNlLgotICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jVW5m
b3JnZWFibGUKKyAgICAjIFtVbmZvcmdlYWJsZV0gb3BlcmF0aW9ucyBzaG91bGQgYmUgb24gdGhl
IGluc3RhbmNlLiBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNVbmZvcmdlYWJsZQog
ICAgIHJldHVybiAxIGlmIElzVW5mb3JnZWFibGUoJGludGVyZmFjZSwgJGZ1bmN0aW9uKTsKIAog
ICAgIHJldHVybiAwOwpAQCAtNzgxLDcgKzc2Niw2IEBAIHN1YiBJbnN0YW5jZU92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdAogICAgICAgICB8fCAkaGFzTmFtZWRHZXR0ZXI7CiAKICAgICByZXR1
cm4gJG51bUluc3RhbmNlUHJvcGVydGllcyA+IDAgfHwgJGhhc0NvbXBsZXhHZXR0ZXI7Ci0KIH0K
IAogc3ViIFByb3RvdHlwZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdApAQCAtODI5LDEyICs4
MTMsMTQgQEAgc3ViIEdldEltcGxDbGFzc05hbWUKICAgICByZXR1cm4gJG5hbWU7CiB9CiAKLXN1
YiBHZXRFbnVtZXJhdGlvbkNsYXNzTmFtZSB7CitzdWIgR2V0RW51bWVyYXRpb25DbGFzc05hbWUK
K3sKICAgICBteSAoJG5hbWUpID0gQF87CiAgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS191
Y2ZpcnN0KCRuYW1lKTsKIH07CiAKLXN1YiBHZXRFbnVtZXJhdGlvblZhbHVlTmFtZSB7CitzdWIg
R2V0RW51bWVyYXRpb25WYWx1ZU5hbWUKK3sKICAgICBteSAoJG5hbWUpID0gQF87CiAgICAgcmV0
dXJuICJFbXB0eVN0cmluZyIgaWYgJG5hbWUgZXEgIiI7CiAgICAgJG5hbWUgPSBqb2luKCIiLCBt
YXAgeyAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJzdCgkXykgfSBzcGxpdCgiLSIsICRuYW1lKSk7
CkBAIC0xNTc3LDcgKzE1NjMsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2tFeHByZXNz
aW9uCiAgICAgICAgICAgICAjIGh0dHA6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZXMtbnVs
bGFibGUtdHlwZQogICAgICAgICAgICAgJGNvbmRpdGlvbiAuPSAiJHt2YWx1ZX0uaXNOdWxsKCkg
fHwgIiBpZiAkcGFyYW1ldGVyLT5pc051bGxhYmxlOwogCi0gICAgICAgICAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPkdldEFycmF5VHlwZSgkdHlwZSkgfHwgJGNvZGVHZW5lcmF0b3ItPkdldFNlcXVl
bmNlVHlwZSgkdHlwZSkpIHsKKyAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+R2V0QXJy
YXlPclNlcXVlbmNlVHlwZSgkdHlwZSkpIHsKICAgICAgICAgICAgICAgICAjIEZJWE1FOiBBZGQg
cHJvcGVyIHN1cHBvcnQgZm9yIFRbXSwgVFtdPywgc2VxdWVuY2U8VD4uCiAgICAgICAgICAgICAg
ICAgJGNvbmRpdGlvbiAuPSAiKCR7dmFsdWV9LmlzT2JqZWN0KCkgJiYgaXNKU0FycmF5KCR7dmFs
dWV9KSkiOwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTE1OTMsMjAgKzE1NzksMTkgQEAgc3Vi
IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrRXhwcmVzc2lvbgogICAgIHJldHVybiAoJHJlcywgc29y
dCB7JGEgPD0+ICRifSAoa2V5cyAldXNlZEFyZ3VtZW50cykpOwogfQogCi0jIEFzIHBlciBXZWIg
SURMIHNwZWNpZmljYXRpb24sIHRoZSBsZW5ndGggb2YgYSBmdW5jdGlvbiBPYmplY3QgaXMKLSMg
aXRzIG51bWJlciBvZiBtYW5kYXRvcnkgcGFyYW1ldGVycy4KKyMgQXMgcGVyIFdlYiBJREwgc3Bl
Y2lmaWNhdGlvbiwgdGhlIGxlbmd0aCBvZiBhIGZ1bmN0aW9uIE9iamVjdCBpcyBpdHMgbnVtYmVy
IG9mIG1hbmRhdG9yeSBwYXJhbWV0ZXJzLgogc3ViIEdldEZ1bmN0aW9uTGVuZ3RoCiB7Ci0gIG15
ICRmdW5jdGlvbiA9IHNoaWZ0OworICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0OwogCi0gIG15ICRu
dW1NYW5kYXRvcnlQYXJhbXMgPSAwOwotICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7JGZ1bmN0
aW9uLT5wYXJhbWV0ZXJzfSkgewotICAgICMgQWJvcnQgYXMgc29vbiBhcyB3ZSBmaW5kIHRoZSBm
aXJzdCBvcHRpb25hbCBwYXJhbWV0ZXIgYXMgbm8gbWFuZGF0b3J5Ci0gICAgIyBwYXJhbWV0ZXIg
Y2FuIGZvbGxvdyBhbiBvcHRpb25hbCBvbmUuCi0gICAgbGFzdCBpZiAkcGFyYW1ldGVyLT5pc09w
dGlvbmFsIHx8ICRwYXJhbWV0ZXItPmlzVmFyaWFkaWM7Ci0gICAgJG51bU1hbmRhdG9yeVBhcmFt
cysrOwotICB9Ci0gIHJldHVybiAkbnVtTWFuZGF0b3J5UGFyYW1zOworICAgIG15ICRsZW5ndGgg
PSAwOworICAgIGZvcmVhY2ggbXkgJHBhcmFtZXRlciAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9
KSB7CisgICAgICAgICMgQWJvcnQgYXMgc29vbiBhcyB3ZSBmaW5kIHRoZSBmaXJzdCBvcHRpb25h
bCBwYXJhbWV0ZXIgYXMgbm8gbWFuZGF0b3J5CisgICAgICAgICMgcGFyYW1ldGVyIGNhbiBmb2xs
b3cgYW4gb3B0aW9uYWwgb25lLgorICAgICAgICBsYXN0IGlmICRwYXJhbWV0ZXItPmlzT3B0aW9u
YWwgfHwgJHBhcmFtZXRlci0+aXNWYXJpYWRpYzsKKyAgICAgICAgJGxlbmd0aCsrOworICAgIH0K
KyAgICByZXR1cm4gJGxlbmd0aDsKIH0KIAogc3ViIEdlbmVyYXRlRnVuY3Rpb25QYXJhbWV0ZXJz
Q2hlY2sKQEAgLTI4NDQsMTUgKzI4MjksMTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICAjIGlzIHRocm93biByYXRoZXIgdGhhbiBzaWxlbnRseSBwYXNzaW5n
IE5VTEwgdG8gdGhlIEMrKyBjb2RlLgogICAgICAgICAgICAgICAgICMgUGVyIHRoZSBXZWIgSURM
IGFuZCBFQ01BU2NyaXB0IHNwZWNpZmljYXRpb25zLCBpbmNvbWluZyB2YWx1ZXMgY2FuIGFsd2F5
cyBiZSBjb252ZXJ0ZWQgdG8KICAgICAgICAgICAgICAgICAjIGJvdGggc3RyaW5ncyBhbmQgbnVt
YmVycywgc28gZG8gbm90IHRocm93IFR5cGVFcnJvciBpZiB0aGUgYXR0cmlidXRlIGlzIG9mIHRo
ZXNlIHR5cGVzLgotICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJTdHJpY3RUeXBlQ2hlY2tpbmcifSkgeworICAgICAgICAgICAg
ICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVyVHlwZSgkdHlwZSkgJiYgJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3RyaWN0VHlwZUNoZWNraW5nIn0p
IHsKICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siPHJ1bnRpbWUvRXJyb3IuaD4i
fSA9IDE7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBw
ZXJUeXBlKCR0eXBlKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICF2YWx1
ZS5pbmhlcml0cyhKUyR7dHlwZX06OmluZm8oKSkpKSB7XG4iKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICB0aHJvd0F0dHJpYnV0ZVR5cGVFcnJv
cigqc3RhdGUsIFwiJGludGVyZmFjZU5hbWVcIiwgXCIkbmFtZVwiLCBcIiR0eXBlXCIpO1xuIik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0
dXJuIGZhbHNlO1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICB9O1xuIik7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKFVOTElLRUxZKCF2YWx1ZS5pc1VuZGVmaW5l
ZE9yTnVsbCgpICYmICF2YWx1ZS5pbmhlcml0cyhKUyR7dHlwZX06OmluZm8oKSkpKSB7XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHRocm93QXR0
cmlidXRlVHlwZUVycm9yKCpzdGF0ZSwgXCIkaW50ZXJmYWNlTmFtZVwiLCBcIiRuYW1lXCIsIFwi
JHR5cGVcIik7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIHJldHVybiBmYWxzZTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB9O1xuIik7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJl
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSkgLiAiIG5hdGl2ZVZhbHVlID0gIiAuIEpTVmFsdWVUb05h
dGl2ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsICJ2YWx1ZSIsICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn0pIC4gIjtcbiIpOwpAQCAtMzQ3
NSw0MiArMzQ1Nyw0OCBAQCBzdWIgQ2FuVXNlV1RGT3B0aW9uYWxGb3JQYXJhbWV0ZXIKICAgICBy
ZXR1cm4gMTsKIH0KIAotc3ViIFdpbGxDb252ZXJ0VW5kZWZpbmVkVG9EZWZhdWx0UGFyYW1ldGVy
VmFsdWUKLXsKLSAgICBteSAkcGFyYW1ldGVyVHlwZSA9IHNoaWZ0OwotICAgIG15ICRkZWZhdWx0
VmFsdWUgPSBzaGlmdDsKLQotICAgIGlmICgkZGVmYXVsdFZhbHVlIGVxICJbXSIpIHsKLSAgICAg
ICAgIyBEaWN0aW9uYXJ5KHN0YXRlLCB1bmRlZmluZWQpIHdpbGwgY29uc3RydWN0IGFuIGVtcHR5
IERpY3Rpb25hcnkuCi0gICAgICAgIHJldHVybiAxIGlmICRwYXJhbWV0ZXJUeXBlIGVxICJEaWN0
aW9uYXJ5IjsKLQotICAgICAgICAjIHRvUmVmUHRyTmF0aXZlQXJyYXkoKSB3aWxsIGNvbnZlcnQg
dW5kZWZpbmVkIHRvIGFuIGVtcHR5IFZlY3Rvci4KLSAgICAgICAgcmV0dXJuIDEgaWYgJGNvZGVH
ZW5lcmF0b3ItPkdldEFycmF5VHlwZSgkcGFyYW1ldGVyVHlwZSkgb3IgJGNvZGVHZW5lcmF0b3It
PkdldFNlcXVlbmNlVHlwZSgkcGFyYW1ldGVyVHlwZSk7Ci0gICAgfQorbXkgJWF1dG9tYXRpY2Fs
bHlHZW5lcmF0ZWREZWZhdWx0VmFsdWVzID0gKAorICAgICJhbnkiID0+ICJ1bmRlZmluZWQiLAog
CiAgICAgIyB0b1N0cmluZygpIHdpbGwgY29udmVydCB1bmRlZmluZWQgdG8gdGhlIHN0cmluZyAi
dW5kZWZpbmVkIjsKLSAgICByZXR1cm4gMSBpZiAkcGFyYW1ldGVyVHlwZSBlcSAiRE9NU3RyaW5n
IiBhbmQgJGRlZmF1bHRWYWx1ZSBlcSAiXCJ1bmRlZmluZWRcIiI7CisgICAgIyAobm90ZSB0aGF0
IHRoaXMgb3B0aW1pemVzIGEgYmVoYXZpb3IgdGhhdCBpcyBhbG1vc3QgbmV2ZXIgdXNlZnVsKQor
ICAgICJET01TdHJpbmciID0+ICJcInVuZGVmaW5lZFwiIiwKIAotICAgIHJldHVybiAxIGlmICRw
YXJhbWV0ZXJUeXBlIGVxICJhbnkiIGFuZCAkZGVmYXVsdFZhbHVlIGVxICJ1bmRlZmluZWQiOwor
ICAgICMgRGljdGlvbmFyeShzdGF0ZSwgdW5kZWZpbmVkKSB3aWxsIGNvbnN0cnVjdCBhbiBlbXB0
eSBEaWN0aW9uYXJ5LgorICAgICJEaWN0aW9uYXJ5IiA9PiAiW10iLAogCiAgICAgIyBKU1ZhbHVl
Ojp0b0Jvb2xlYW4oKSB3aWxsIGNvbnZlcnQgdW5kZWZpbmVkIHRvIGZhbHNlLgotICAgIHJldHVy
biAxIGlmICRwYXJhbWV0ZXJUeXBlIGVxICJib29sZWFuIiBhbmQgJGRlZmF1bHRWYWx1ZSBlcSAi
ZmFsc2UiOworICAgICJib29sZWFuIiA9PiAiZmFsc2UiLAogCiAgICAgIyBKU1ZhbHVlOjp0b0lu
dCooKSAvIEpTVmFsdWU6OnRvVWludCooKSB3aWxsIGNvbnZlcnQgdW5kZWZpbmVkIHRvIDAuCi0g
ICAgaWYgKCRkZWZhdWx0VmFsdWUgZXEgIjAiKSB7Ci0gICAgICAgIHJldHVybiAxIGlmICRwYXJh
bWV0ZXJUeXBlIGVxICJieXRlIiBvciAkcGFyYW1ldGVyVHlwZSBlcSAib2N0ZXQiOwotICAgICAg
ICByZXR1cm4gMSBpZiAkcGFyYW1ldGVyVHlwZSBlcSAic2hvcnQiIG9yICRwYXJhbWV0ZXJUeXBl
IGVxICJ1bnNpZ25lZCBzaG9ydCI7Ci0gICAgICAgIHJldHVybiAxIGlmICRwYXJhbWV0ZXJUeXBl
IGVxICJsb25nIiBvciAkcGFyYW1ldGVyVHlwZSBlcSAidW5zaWduZWQgbG9uZyI7Ci0gICAgICAg
IHJldHVybiAxIGlmICRwYXJhbWV0ZXJUeXBlIGVxICJsb25nIGxvbmciIG9yICRwYXJhbWV0ZXJU
eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOwotICAgIH0KKyAgICAiYnl0ZSIgPT4gIjAiLAor
ICAgICJsb25nIGxvbmciID0+ICIwIiwKKyAgICAibG9uZyIgPT4gIjAiLAorICAgICJvY3RldCIg
PT4gIjAiLAorICAgICJzaG9ydCIgPT4gIjAiLAorICAgICJ1bnNpZ25lZCBsb25nIGxvbmciID0+
ICIwIiwKKyAgICAidW5zaWduZWQgbG9uZyIgPT4gIjAiLAorICAgICJ1bnNpZ25lZCBzaG9ydCIg
PT4gIjAiLAorCisgICAgIyB0b051bWJlcigpIC8gdG9GbG9hdCgpIGNvbnZlcnQgdW5kZWZpbmVk
IHRvIE5hTi4KKyAgICAiZG91YmxlIiA9PiAiTmFOIiwKKyAgICAiZmxvYXQiID0+ICJOYU4iLAor
ICAgICJ1bnJlc3RyaWN0ZWQgZG91YmxlIiA9PiAiTmFOIiwKKyAgICAidW5yZXN0cmljdGVkIGZs
b2F0IiA9PiAiTmFOIiwKKyk7CiAKLSAgICBpZiAoJGRlZmF1bHRWYWx1ZSBlcSAiTmFOIikgewot
ICAgICAgICAjIHRvTnVtYmVyKCkgLyB0b0Zsb2F0KCkgY29udmVydCB1bmRlZmluZWQgdG8gTmFO
LgotICAgICAgICByZXR1cm4gMSBpZiAkcGFyYW1ldGVyVHlwZSBlcSAiZG91YmxlIiBvciAkcGFy
YW1ldGVyVHlwZSBlcSAidW5yZXN0cmljdGVkIGRvdWJsZSI7Ci0gICAgICAgIHJldHVybiAxIGlm
ICRwYXJhbWV0ZXJUeXBlIGVxICJmbG9hdCIgb3IgJHBhcmFtZXRlclR5cGUgZXEgInVucmVzdHJp
Y3RlZCBmbG9hdCI7Ci0gICAgfQorc3ViIFdpbGxDb252ZXJ0VW5kZWZpbmVkVG9EZWZhdWx0UGFy
YW1ldGVyVmFsdWUKK3sKKyAgICBteSAkcGFyYW1ldGVyVHlwZSA9IHNoaWZ0OworICAgIG15ICRk
ZWZhdWx0VmFsdWUgPSBzaGlmdDsKKworICAgIG15ICRhdXRvbWF0aWNhbGx5R2VuZXJhdGVkRGVm
YXVsdFZhbHVlID0gJGF1dG9tYXRpY2FsbHlHZW5lcmF0ZWREZWZhdWx0VmFsdWVzeyRwYXJhbWV0
ZXJUeXBlfTsKKyAgICByZXR1cm4gMSBpZiBkZWZpbmVkICRhdXRvbWF0aWNhbGx5R2VuZXJhdGVk
RGVmYXVsdFZhbHVlICYmICRhdXRvbWF0aWNhbGx5R2VuZXJhdGVkRGVmYXVsdFZhbHVlIGVxICRk
ZWZhdWx0VmFsdWU7CiAKLSAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNXcmFwcGVy
VHlwZSgkcGFyYW1ldGVyVHlwZSkgYW5kICRkZWZhdWx0VmFsdWUgZXEgIm51bGwiOworICAgICMg
dG9SZWZQdHJOYXRpdmVBcnJheSgpIHdpbGwgY29udmVydCB1bmRlZmluZWQgdG8gYW4gZW1wdHkg
VmVjdG9yLgorICAgIHJldHVybiAxIGlmICRkZWZhdWx0VmFsdWUgZXEgIltdIiAmJiAkY29kZUdl
bmVyYXRvci0+R2V0QXJyYXlPclNlcXVlbmNlVHlwZSgkcGFyYW1ldGVyVHlwZSk7CisKKyAgICBy
ZXR1cm4gMSBpZiAkZGVmYXVsdFZhbHVlIGVxICJudWxsIiAmJiAkY29kZUdlbmVyYXRvci0+SXNX
cmFwcGVyVHlwZSgkcGFyYW1ldGVyVHlwZSk7CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTQyNjUs
MjYgKzQyNTMsMjUgQEAgc3ViIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlCiAKIG15ICVuYXRp
dmVUeXBlID0gKAogICAgICJET01TdHJpbmciID0+ICJTdHJpbmciLAotICAgICJOb2RlRmlsdGVy
IiA9PiAiUmVmUHRyPE5vZGVGaWx0ZXI+IiwKLSAgICAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiA9
PiAiUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4iLAorICAgICJET01UaW1lU3RhbXAiID0+
ICJET01UaW1lU3RhbXAiLAogICAgICJEYXRlIiA9PiAiZG91YmxlIiwKICAgICAiRGljdGlvbmFy
eSIgPT4gIkRpY3Rpb25hcnkiLAorICAgICJOb2RlRmlsdGVyIiA9PiAiUmVmUHRyPE5vZGVGaWx0
ZXI+IiwKKyAgICAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiA9PiAiUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4iLAogICAgICJhbnkiID0+ICJKU0M6OkpTVmFsdWUiLAogICAgICJib29sZWFu
IiA9PiAiYm9vbCIsCisgICAgImJ5dGUiID0+ICJpbnQ4X3QiLAogICAgICJkb3VibGUiID0+ICJk
b3VibGUiLAogICAgICJmbG9hdCIgPT4gImZsb2F0IiwKKyAgICAibG9uZyBsb25nIiA9PiAibG9u
ZyBsb25nIiwKKyAgICAibG9uZyIgPT4gImludCIsCisgICAgIm9jdGV0IiA9PiAidWludDhfdCIs
CisgICAgInNob3J0IiA9PiAiaW50MTZfdCIsCiAgICAgInVucmVzdHJpY3RlZCBkb3VibGUiID0+
ICJkb3VibGUiLAogICAgICJ1bnJlc3RyaWN0ZWQgZmxvYXQiID0+ICJmbG9hdCIsCi0gICAgInNo
b3J0IiA9PiAiaW50MTZfdCIsCi0gICAgImxvbmciID0+ICJpbnQiLAorICAgICJ1bnNpZ25lZCBs
b25nIGxvbmciID0+ICJ1bnNpZ25lZCBsb25nIGxvbmciLAogICAgICJ1bnNpZ25lZCBsb25nIiA9
PiAidW5zaWduZWQiLAogICAgICJ1bnNpZ25lZCBzaG9ydCIgPT4gInVpbnQxNl90IiwKLSAgICAi
bG9uZyBsb25nIiA9PiAibG9uZyBsb25nIiwKLSAgICAidW5zaWduZWQgbG9uZyBsb25nIiA9PiAi
dW5zaWduZWQgbG9uZyBsb25nIiwKLSAgICAiYnl0ZSIgPT4gImludDhfdCIsCi0gICAgIm9jdGV0
IiA9PiAidWludDhfdCIsCi0gICAgIkRPTVRpbWVTdGFtcCIgPT4gIkRPTVRpbWVTdGFtcCIsCi0g
ICAgIlN5bWJvbCIgPT4gIlByaXZhdGVOYW1lIgogKTsKIAogc3ViIEdldE5hdGl2ZVR5cGUKQEAg
LTQyOTksOSArNDI4Niw3IEBAIHN1YiBHZXROYXRpdmVUeXBlCiAgICAgcmV0dXJuICJSZWZQdHI8
JHt0eXBlfT4iIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBlKSBhbmQg
bm90ICR0eXBlIGVxICJBcnJheUJ1ZmZlciI7CiAgICAgcmV0dXJuICRuYXRpdmVUeXBleyR0eXBl
fSBpZiBleGlzdHMgJG5hdGl2ZVR5cGV7JHR5cGV9OwogCi0gICAgbXkgJGFycmF5VHlwZSA9ICRj
b2RlR2VuZXJhdG9yLT5HZXRBcnJheVR5cGUoJHR5cGUpOwotICAgIG15ICRzZXF1ZW5jZVR5cGUg
PSAkY29kZUdlbmVyYXRvci0+R2V0U2VxdWVuY2VUeXBlKCR0eXBlKTsKLSAgICBteSAkYXJyYXlP
clNlcXVlbmNlVHlwZSA9ICRhcnJheVR5cGUgfHwgJHNlcXVlbmNlVHlwZTsKKyAgICBteSAkYXJy
YXlPclNlcXVlbmNlVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRBcnJheU9yU2VxdWVuY2VUeXBl
KCR0eXBlKTsKIAogICAgIHJldHVybiAiVmVjdG9yPCIgLiBHZXROYXRpdmVWZWN0b3JJbm5lclR5
cGUoJGFycmF5T3JTZXF1ZW5jZVR5cGUpIC4gIj4iIGlmICRhcnJheU9yU2VxdWVuY2VUeXBlOwog
ICAgIHJldHVybiAiU3RyaW5nIiBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdCYXNlZEVudW1U
eXBlKCR0eXBlKTsKQEAgLTQzOTEsNiArNDM3NiwxNyBAQCBzdWIgSXNOYXRpdmVUeXBlCiAgICAg
cmV0dXJuIGV4aXN0cyAkbmF0aXZlVHlwZXskdHlwZX07CiB9CiAKK215ICVpbnRlZ2VyQ29udmVy
c2lvbkZ1bmN0aW9uID0gKAorICAgICJieXRlIiA9PiAidG9JbnQ4IiwKKyAgICAibG9uZyBsb25n
IiA9PiAidG9JbnQ2NCIsCisgICAgImxvbmciID0+ICJ0b0ludDMyIiwKKyAgICAib2N0ZXQiID0+
ICJ0b1VJbnQ4IiwKKyAgICAic2hvcnQiID0+ICJ0b0ludDE2IiwKKyAgICAidW5zaWduZWQgbG9u
ZyBsb25nIiA9PiAidG9VSW50NjQiLAorICAgICJ1bnNpZ25lZCBsb25nIiA9PiAidG9VSW50MzIi
LAorICAgICJ1bnNpZ25lZCBzaG9ydCIgPT4gInRvVUludDE2IiwKKyk7CisKIHN1YiBKU1ZhbHVl
VG9OYXRpdmUKIHsKICAgICBteSAkc2lnbmF0dXJlID0gc2hpZnQ7CkBAIC00Mzk5LDIzICs0Mzk1
LDEzIEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKIAogICAgIG15ICR0eXBlID0gJHNpZ25hdHVyZS0+
dHlwZTsKIAotICAgIHJldHVybiAiJHZhbHVlLnRvQm9vbGVhbihzdGF0ZSkiIGlmICR0eXBlIGVx
ICJib29sZWFuIjsKLSAgICByZXR1cm4gIiR2YWx1ZS50b051bWJlcihzdGF0ZSkiIGlmICR0eXBl
IGVxICJkb3VibGUiIG9yICR0eXBlIGVxICJ1bnJlc3RyaWN0ZWQgZG91YmxlIiA7Ci0gICAgcmV0
dXJuICIkdmFsdWUudG9GbG9hdChzdGF0ZSkiIGlmICR0eXBlIGVxICJmbG9hdCIgb3IgJHR5cGUg
ZXEgInVucmVzdHJpY3RlZCBmbG9hdCIgOwotCi0gICAgbXkgJGludENvbnZlcnNpb24gPSAiTm9y
bWFsQ29udmVyc2lvbiI7Ci0gICAgJGludENvbnZlcnNpb24gPSAiRW5mb3JjZVJhbmdlIiBpZiAk
c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRW5mb3JjZVJhbmdlIn07Ci0gICAgJGlu
dENvbnZlcnNpb24gPSAiQ2xhbXAiIGlmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDbGFtcCJ9OwotICAgIHJldHVybiAidG9JbnQ4KHN0YXRlLCAkdmFsdWUsICRpbnRDb252ZXJz
aW9uKSIgaWYgJHR5cGUgZXEgImJ5dGUiOwotICAgIHJldHVybiAidG9VSW50OChzdGF0ZSwgJHZh
bHVlLCAkaW50Q29udmVyc2lvbikiIGlmICR0eXBlIGVxICJvY3RldCI7Ci0gICAgcmV0dXJuICJ0
b0ludDE2KHN0YXRlLCAkdmFsdWUsICRpbnRDb252ZXJzaW9uKSIgaWYgJHR5cGUgZXEgInNob3J0
IjsKLSAgICByZXR1cm4gInRvVUludDE2KHN0YXRlLCAkdmFsdWUsICRpbnRDb252ZXJzaW9uKSIg
aWYgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKLSAgICByZXR1cm4gInRvSW50MzIoc3RhdGUs
ICR2YWx1ZSwgJGludENvbnZlcnNpb24pIiBpZiAkdHlwZSBlcSAibG9uZyI7Ci0gICAgcmV0dXJu
ICJ0b1VJbnQzMihzdGF0ZSwgJHZhbHVlLCAkaW50Q29udmVyc2lvbikiIGlmICR0eXBlIGVxICJ1
bnNpZ25lZCBsb25nIjsKLSAgICByZXR1cm4gInRvSW50NjQoc3RhdGUsICR2YWx1ZSwgJGludENv
bnZlcnNpb24pIiBpZiAkdHlwZSBlcSAibG9uZyBsb25nIjsKLSAgICByZXR1cm4gInRvVUludDY0
KHN0YXRlLCAkdmFsdWUsICRpbnRDb252ZXJzaW9uKSIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxv
bmcgbG9uZyI7Ci0KLSAgICByZXR1cm4gInZhbHVlVG9EYXRlKHN0YXRlLCAkdmFsdWUpIiBpZiAk
dHlwZSBlcSAiRGF0ZSI7CisgICAgbXkgJGZ1bmN0aW9uID0gJGludGVnZXJDb252ZXJzaW9uRnVu
Y3Rpb257JHR5cGV9OworICAgIGlmICgkZnVuY3Rpb24pIHsKKyAgICAgICAgbXkgJGNvbnZlcnNp
b25UeXBlID0gIk5vcm1hbENvbnZlcnNpb24iOworICAgICAgICAkY29udmVyc2lvblR5cGUgPSAi
RW5mb3JjZVJhbmdlIiBpZiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRW5mb3Jj
ZVJhbmdlIn07CisgICAgICAgICRjb252ZXJzaW9uVHlwZSA9ICJDbGFtcCIgaWYgJHNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNsYW1wIn07CisgICAgICAgIHJldHVybiAiJGZ1bmN0
aW9uKHN0YXRlLCAkdmFsdWUsICRjb252ZXJzaW9uVHlwZSkiOworICAgIH0KIAogICAgIGlmICgk
dHlwZSBlcSAiRE9NU3RyaW5nIikgewogICAgICAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlRyZWF0TnVsbEFzIn0pIHsKQEAgLTQ0MjQsMTkgKzQ0MTAsOSBAQCBzdWIg
SlNWYWx1ZVRvTmF0aXZlCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuICJ2YWx1ZVRvU3RyaW5n
V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKHN0YXRlLCAkdmFsdWUpIiBpZiAkc2lnbmF0dXJlLT5p
c051bGxhYmxlOwogICAgICAgICByZXR1cm4gIiR2YWx1ZS50b1N0cmluZyhzdGF0ZSktPnRvQXRv
bWljU3RyaW5nKHN0YXRlKSIgaWYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkF0
b21pY1N0cmluZyJ9OwotCiAgICAgICAgIHJldHVybiAiJHZhbHVlLnRvV1RGU3RyaW5nKHN0YXRl
KSI7CiAgICAgfQogCi0gICAgaWYgKCR0eXBlIGVxICJhbnkiKSB7Ci0gICAgICAgIHJldHVybiAk
dmFsdWU7Ci0gICAgfQotCi0gICAgaWYgKCR0eXBlIGVxICJOb2RlRmlsdGVyIikgewotICAgICAg
ICBBZGRUb0ltcGxJbmNsdWRlcygiSlMkdHlwZS5oIiwgJGNvbmRpdGlvbmFsKTsKLSAgICAgICAg
cmV0dXJuICJKUyR7dHlwZX06OnRvV3JhcHBlZChzdGF0ZS0+dm0oKSwgJHZhbHVlKSI7Ci0gICAg
fQotCiAgICAgaWYgKCR0eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiKSB7CiAgICAgICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIsICRjb25kaXRpb25h
bCk7CiAgICAgICAgIHJldHVybiAiU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoc3RhdGUs
ICR2YWx1ZSwgMCwgMCkiOwpAQCAtNDQ0NywyMiArNDQyMyw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRp
dmUKICAgICAgICAgcmV0dXJuICJ7IHN0YXRlLCAkdmFsdWUgfSI7CiAgICAgfQogCi0gICAgaWYg
KCR0eXBlIGVxICJET01TdHJpbmdMaXN0IiApIHsKLSAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IkpTRE9NU3RyaW5nTGlzdC5oIiwgJGNvbmRpdGlvbmFsKTsKLSAgICAgICAgcmV0dXJuICJ0b0RP
TVN0cmluZ0xpc3Qoc3RhdGUsICR2YWx1ZSkiOwotICAgIH0KLSAgICAKLSAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpKSB7Ci0gICAgICAgIHJldHVybiAidG8k
dHlwZSgkdmFsdWUpIjsKLSAgICB9Ci0KLSAgICBBZGRUb0ltcGxJbmNsdWRlcygiSFRNTE9wdGlv
bkVsZW1lbnQuaCIsICRjb25kaXRpb25hbCkgaWYgJHR5cGUgZXEgIkhUTUxPcHRpb25FbGVtZW50
IjsKLSAgICBBZGRUb0ltcGxJbmNsdWRlcygiRXZlbnQuaCIsICRjb25kaXRpb25hbCkgaWYgJHR5
cGUgZXEgIkV2ZW50IjsKLQotICAgIG15ICRhcnJheVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0
QXJyYXlUeXBlKCR0eXBlKTsKLSAgICBteSAkc2VxdWVuY2VUeXBlID0gJGNvZGVHZW5lcmF0b3It
PkdldFNlcXVlbmNlVHlwZSgkdHlwZSk7Ci0gICAgbXkgJGFycmF5T3JTZXF1ZW5jZVR5cGUgPSAk
YXJyYXlUeXBlIHx8ICRzZXF1ZW5jZVR5cGU7Ci0KKyAgICBteSAkYXJyYXlPclNlcXVlbmNlVHlw
ZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRBcnJheU9yU2VxdWVuY2VUeXBlKCR0eXBlKTsKICAgICBp
ZiAoJGFycmF5T3JTZXF1ZW5jZVR5cGUpIHsKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5J
c1JlZlB0clR5cGUoJGFycmF5T3JTZXF1ZW5jZVR5cGUpKSB7CiAgICAgICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiSlMke2FycmF5T3JTZXF1ZW5jZVR5cGV9LmgiKTsKQEAgLTQ0NzEsMTUgKzQ0
MzIsMjIgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gInRvTmF0aXZlQXJy
YXk8IiAuIEdldE5hdGl2ZVZlY3RvcklubmVyVHlwZSgkYXJyYXlPclNlcXVlbmNlVHlwZSkgLiAi
PihzdGF0ZSwgJHZhbHVlKSI7CiAgICAgfQogCi0gICAgcmV0dXJuICIkdmFsdWUudG9XVEZTdHJp
bmcoc3RhdGUpIiBpZiAkY29kZUdlbmVyYXRvci0+SXNTdHJpbmdCYXNlZEVudW1UeXBlKCR0eXBl
KTsKKyAgICByZXR1cm4gJHZhbHVlIGlmICR0eXBlIGVxICJhbnkiOwogCi0gICAgaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc0VudW1UeXBlKCR0eXBlKSkgewotICAgICAgICBteSAkY2xhc3NOYW1lID0g
R2V0RW51bWVyYXRpb25DbGFzc05hbWUoJHR5cGUpOwotICAgICAgICByZXR1cm4gInBhcnNlJGNs
YXNzTmFtZSgqc3RhdGUsICR2YWx1ZSkiOwotICAgIH0KKyAgICByZXR1cm4gIiR2YWx1ZS50b0Jv
b2xlYW4oc3RhdGUpIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CisgICAgcmV0dXJuICIkdmFsdWUu
dG9OdW1iZXIoc3RhdGUpIiBpZiAkdHlwZSBlcSAiZG91YmxlIiBvciAkdHlwZSBlcSAidW5yZXN0
cmljdGVkIGRvdWJsZSI7CisgICAgcmV0dXJuICIkdmFsdWUudG9GbG9hdChzdGF0ZSkiIGlmICR0
eXBlIGVxICJmbG9hdCIgb3IgJHR5cGUgZXEgInVucmVzdHJpY3RlZCBmbG9hdCI7CisgICAgcmV0
dXJuICJ2YWx1ZVRvRGF0ZShzdGF0ZSwgJHZhbHVlKSIgaWYgJHR5cGUgZXEgIkRhdGUiOworCisg
ICAgcmV0dXJuICJ0byR0eXBlKCR2YWx1ZSkiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJy
YXlUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4gIiR2YWx1ZS50b1dURlN0cmluZyhzdGF0ZSkiIGlm
ICRjb2RlR2VuZXJhdG9yLT5Jc1N0cmluZ0Jhc2VkRW51bVR5cGUoJHR5cGUpOworICAgIHJldHVy
biAicGFyc2UiIC4gR2V0RW51bWVyYXRpb25DbGFzc05hbWUoJHR5cGUpIC4gIigqc3RhdGUsICR2
YWx1ZSkiIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0VudW1UeXBlKCR0eXBlKTsKIAotICAgICMgRGVm
YXVsdCwgYXNzdW1lIGF1dG9nZW5lcmF0ZWQgdHlwZSBjb252ZXJzaW9uIHJvdXRpbmVzCiAgICAg
QWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25kaXRpb25hbCk7CisKKyAgICByZXR1
cm4gInRvRE9NU3RyaW5nTGlzdChzdGF0ZSwgJHZhbHVlKSIgaWYgJHR5cGUgZXEgIkRPTVN0cmlu
Z0xpc3QiOworICAgIHJldHVybiAiSlNOb2RlRmlsdGVyOjp0b1dyYXBwZWQoc3RhdGUtPnZtKCks
ICR2YWx1ZSkiIGlmICR0eXBlIGVxICJOb2RlRmlsdGVyIjsKKwogICAgIHJldHVybiAiSlMke3R5
cGV9Ojp0b1dyYXBwZWQoJHZhbHVlKSI7CiB9CiAKQEAgLTQ0OTQsMzIgKzQ0NjIsMjQgQEAgc3Vi
IE5hdGl2ZVRvSlNWYWx1ZQogICAgIG15ICRjb25kaXRpb25hbCA9ICRzaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9OwogICAgIG15ICR0eXBlID0gJHNpZ25hdHVy
ZS0+dHlwZTsKIAorICAgIG15ICRnbG9iYWxPYmplY3QgPSAkdGhpc1ZhbHVlID8gIiR0aGlzVmFs
dWUtPmdsb2JhbE9iamVjdCgpIiA6ICJqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihzdGF0ZS0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKSI7CisKICAgICByZXR1cm4gImpzQm9vbGVhbigkdmFsdWUp
IiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CiAKLSAgICAjIE5lZWQgdG8gY2hlY2sgRGF0ZSB0eXBl
IGJlZm9yZSBJc1ByaW1pdGl2ZVR5cGUoKS4KICAgICBpZiAoJHR5cGUgZXEgIkRhdGUiKSB7Ci0g
ICAgICAgIG15ICRjb252ID0gJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlRyZWF0
UmV0dXJuZWROYU5EYXRlQXMifTsKLSAgICAgICAgaWYgKGRlZmluZWQgJGNvbnYpIHsKLSAgICAg
ICAgICAgIHJldHVybiAianNEYXRlT3JOdWxsKHN0YXRlLCAkdmFsdWUpIiBpZiAkY29udiBlcSAi
TnVsbCI7Ci0gICAgICAgICAgICByZXR1cm4gImpzRGF0ZU9yTmFOKHN0YXRlLCAkdmFsdWUpIiBp
ZiAkY29udiBlcSAiTmFOIjsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZGllICJVbmtub3du
IHZhbHVlIGZvciBUcmVhdFJldHVybmVkTmFORGF0ZUFzIGV4dGVuZGVkIGF0dHJpYnV0ZSI7Ci0g
ICAgICAgIH0KLSAgICAgICAgcmV0dXJuICJqc0RhdGVPck51bGwoc3RhdGUsICR2YWx1ZSkiOwot
ICAgIH0KLQotICAgIGlmICgkdHlwZSBlcSAiU3ltYm9sIikgewotICAgICAgICBBZGRUb0ltcGxJ
bmNsdWRlcygiPHJ1bnRpbWUvU3ltYm9sLmg+IiwgJGNvbmRpdGlvbmFsKTsKLSAgICAgICAgcmV0
dXJuICJTeW1ib2w6OmNyZWF0ZShzdGF0ZS0+dm0oKSwgKigkdmFsdWUpLnVpZCgpKSI7CisgICAg
ICAgIG15ICRoYW5kbGluZ0Zvck5hTiA9ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJUcmVhdFJldHVybmVkTmFORGF0ZUFzIn07CisgICAgICAgIHJldHVybiAianNEYXRlT3JOdWxs
KHN0YXRlLCAkdmFsdWUpIiBpZiAhZGVmaW5lZCAkaGFuZGxpbmdGb3JOYU4gfHwgJGhhbmRsaW5n
Rm9yTmFOIGVxICJOdWxsIjsKKyAgICAgICAgcmV0dXJuICJqc0RhdGVPck5hTihzdGF0ZSwgJHZh
bHVlKSIgaWYgJGhhbmRsaW5nRm9yTmFOIGVxICJOYU4iOworICAgICAgICBkaWUgIlVua25vd24g
dmFsdWUgZm9yIFRyZWF0UmV0dXJuZWROYU5EYXRlQXMgZXh0ZW5kZWQgYXR0cmlidXRlIjsKICAg
ICB9CiAKLSAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlwZSkgb3Ig
JHR5cGUgZXEgIkRPTVRpbWVTdGFtcCIpIHsKKyAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzTnVt
ZXJpY1R5cGUoJHR5cGUpIG9yICR0eXBlIGVxICJET01UaW1lU3RhbXAiKSB7CiAgICAgICAgICMg
V2UgY291bGQgaW5zdGVhZCBvdmVybG9hZCBhIGZ1bmN0aW9uIHRvIHdvcmsgd2l0aCBvcHRpb25h
bCBhcyB3ZWxsIGFzIG5vbi1vcHRpb25hbCBudW1iZXJzLCBidXQgdGhpcwogICAgICAgICAjIGlz
IHNsaWdodGx5IGJldHRlciBiZWNhdXNlIGl0IGd1YXJhbnRlZXMgd2Ugd2lsbCBmYWlsIHRvIGNv
bXBpbGUgaWYgdGhlIElETCBmaWxlIGRvZXNuJ3QgbWF0Y2ggdGhlIEMrKy4KICAgICAgICAgbXkg
JGZ1bmN0aW9uID0gJHNpZ25hdHVyZS0+aXNOdWxsYWJsZSA/ICJ0b051bGxhYmxlSlNOdW1iZXIi
IDogImpzTnVtYmVyIjsKICAgICAgICAgaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJSZWZsZWN0In0gYW5kICgkdHlwZSBlcSAidW5zaWduZWQgbG9uZyIgb3IgJHR5cGUgZXEg
InVuc2lnbmVkIHNob3J0IikpIHsKICAgICAgICAgICAgICR2YWx1ZSA9fiBzL2dldFVuc2lnbmVk
SW50ZWdyYWxBdHRyaWJ1dGUvZ2V0SW50ZWdyYWxBdHRyaWJ1dGUvZzsKLSAgICAgICAgICAgIHJl
dHVybiAiJGZ1bmN0aW9uKHN0ZDo6bWF4KDAsICIgLiAkdmFsdWUgLiAiKSkiOworICAgICAgICAg
ICAgJHZhbHVlID0gInN0ZDo6bWF4KDAsICR2YWx1ZSkiOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiAiJGZ1bmN0aW9uKCR2YWx1ZSkiOwogICAgIH0KQEAgLTQ1MzYsMzQgKzQ0OTYsMTYgQEAg
c3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICByZXR1cm4gImpzU3RyaW5nV2l0aENhY2hlKHN0
YXRlLCAkdmFsdWUpIjsKICAgICB9CiAgICAgCi0gICAgbXkgJGdsb2JhbE9iamVjdDsKLSAgICBp
ZiAoJHRoaXNWYWx1ZSkgewotICAgICAgICAkZ2xvYmFsT2JqZWN0ID0gIiR0aGlzVmFsdWUtPmds
b2JhbE9iamVjdCgpIjsKLSAgICB9Ci0KLSAgICBpZiAoJHR5cGUgZXEgIkNTU1N0eWxlRGVjbGFy
YXRpb24iKSB7Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTdHlsZVByb3BlcnRpZXMuaCIs
ICRjb25kaXRpb25hbCk7Ci0gICAgfQotCi0gICAgaWYgKCR0eXBlIGVxICJOb2RlTGlzdCIpIHsK
LSAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIk5hbWVOb2RlTGlzdC5oIiwgJGNvbmRpdGlvbmFs
KTsKLSAgICB9Ci0KICAgICBteSAkYXJyYXlUeXBlID0gJGNvZGVHZW5lcmF0b3ItPkdldEFycmF5
VHlwZSgkdHlwZSk7Ci0gICAgbXkgJHNlcXVlbmNlVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRT
ZXF1ZW5jZVR5cGUoJHR5cGUpOwotICAgIG15ICRhcnJheU9yU2VxdWVuY2VUeXBlID0gJGFycmF5
VHlwZSB8fCAkc2VxdWVuY2VUeXBlOworICAgIG15ICRhcnJheU9yU2VxdWVuY2VUeXBlID0gJGFy
cmF5VHlwZSB8fCAkY29kZUdlbmVyYXRvci0+R2V0U2VxdWVuY2VUeXBlKCR0eXBlKTsKIAogICAg
IGlmICgkYXJyYXlPclNlcXVlbmNlVHlwZSkgewogICAgICAgICBpZiAoJGFycmF5VHlwZSBlcSAi
RE9NU3RyaW5nIikgewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NU3RyaW5n
TGlzdC5oIiwgJGNvbmRpdGlvbmFsKTsKLSAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJE
T01TdHJpbmdMaXN0LmgiLCAkY29uZGl0aW9uYWwpOwotCiAgICAgICAgIH0gZWxzaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc1JlZlB0clR5cGUoJGFycmF5T3JTZXF1ZW5jZVR5cGUpKSB7CiAgICAgICAg
ICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMke2FycmF5T3JTZXF1ZW5jZVR5cGV9LmgiLCAkY29u
ZGl0aW9uYWwpOwotICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIiR7YXJyYXlPclNlcXVl
bmNlVHlwZX0uaCIsICRjb25kaXRpb25hbCk7CiAgICAgICAgIH0KICAgICAgICAgQWRkVG9JbXBs
SW5jbHVkZXMoIjxydW50aW1lL0pTQXJyYXkuaD4iLCAkY29uZGl0aW9uYWwpOwotCiAgICAgICAg
IHJldHVybiAianNBcnJheShzdGF0ZSwgJGdsb2JhbE9iamVjdCwgJHZhbHVlKSI7CiAgICAgfQog
CkBAIC00NTcyLDM1ICs0NTE0LDMwIEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAgICAgaWYg
KGRlZmluZWQgJHJldHVyblR5cGUgYW5kICgkcmV0dXJuVHlwZSBlcSAiSURCS2V5UGF0aCIgb3Ig
JHJldHVyblR5cGUgZXEgIklEQktleSIpKSB7CiAgICAgICAgICAgICBBZGRUb0ltcGxJbmNsdWRl
cygiSURCQmluZGluZ1V0aWxpdGllcy5oIiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgICAgIHJl
dHVybiAidG9KUygqc3RhdGUsICokZ2xvYmFsT2JqZWN0LCAkdmFsdWUpIjsKLSAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgIHJldHVybiAkdmFsdWU7CiAgICAgICAgIH0KLSAgICB9IGVsc2lm
ICgkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIikgeworICAgICAgICByZXR1cm4gJHZh
bHVlOworICAgIH0KKworICAgIGlmICgkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIikg
ewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiLCAk
Y29uZGl0aW9uYWwpOwogICAgICAgICByZXR1cm4gIiR2YWx1ZSA/ICR2YWx1ZS0+ZGVzZXJpYWxp
emUoc3RhdGUsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCAwKSA6IGpzTnVsbCgpIjsKLSAg
ICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSkpIHsKLSAg
ICAgICAgIyBEbyBub3RoaW5nIC0gYWxsIGhlYWRlcnMgYXJlIGFscmVhZHkgaW5jbHVkZWQuCi0g
ICAgfSBlbHNlIHsKLSAgICAgICAgIyBEZWZhdWx0LCBpbmNsdWRlIGhlYWRlciB3aXRoIHNhbWUg
bmFtZS4KLSAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTJHR5cGUuaCIsICRjb25kaXRpb25h
bCk7Ci0gICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCIkdHlwZS5oIiwgJGNvbmRpdGlvbmFsKSBp
ZiBub3QgJGNvZGVHZW5lcmF0b3ItPlNraXBJbmNsdWRlSGVhZGVyKCR0eXBlKTsKICAgICB9CiAK
LSAgICByZXR1cm4gJHZhbHVlIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgk
dHlwZSk7CisgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlN0eWxlUHJvcGVydGllcy5oIiwgJGNvbmRp
dGlvbmFsKSBpZiAkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiI7CisgICAgQWRkVG9JbXBs
SW5jbHVkZXMoIk5hbWVOb2RlTGlzdC5oIiwgJGNvbmRpdGlvbmFsKSBpZiAkdHlwZSBlcSAiTm9k
ZUxpc3QiOworICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKUyR0eXBlLmgiLCAkY29uZGl0aW9uYWwp
IGlmICEkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSk7CiAKLSAgICBpZiAo
JHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5ld09iamVjdCJ9KSB7Ci0gICAgICAg
IHJldHVybiAidG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgJGdsb2JhbE9iamVjdCwgV1RGOjpnZXRQ
dHIoJHZhbHVlKSkiOwotICAgIH0KKyAgICByZXR1cm4gJHZhbHVlIGlmICRjb2RlR2VuZXJhdG9y
LT5Jc1NWR0FuaW1hdGVkVHlwZSgkdHlwZSk7CiAKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklz
U1ZHQW5pbWF0ZWRUeXBlKCRpbnRlcmZhY2VOYW1lKSBvciAoJGludGVyZmFjZU5hbWUgZXEgIlNW
R1ZpZXdTcGVjIiBhbmQgJHR5cGUgZXEgIlNWR1RyYW5zZm9ybUxpc3QiKSkgewogICAgICAgICAj
IENvbnZlcnQgZnJvbSBhYnN0cmFjdCBSZWZQdHI8TGlzdFByb3BlcnR5PiB0byByZWFsIHR5cGUs
IHNvIHRoZSByaWdodCB0b0pTKCkgbWV0aG9kIGNhbiBiZSBpbnZva2VkLgotICAgICAgICAkdmFs
dWUgPSAic3RhdGljX2Nhc3Q8IiAuIEdldE5hdGl2ZVR5cGUoJHR5cGUpIC4gIj4oJHZhbHVlIiAu
ICIuZ2V0KCkpIjsKKyAgICAgICAgJHZhbHVlID0gInN0YXRpY19jYXN0PCIgLiBHZXROYXRpdmVU
eXBlKCR0eXBlKSAuICI+KCR2YWx1ZS5nZXQoKSkiOwogICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJTVkdWaWV3U3BlYyIpIHsKICAgICAgICAgIyBDb252ZXJ0IGZyb20gYWJzdHJhY3Qg
U1ZHUHJvcGVydHkgdG8gcmVhbCB0eXBlLCBzbyB0aGUgcmlnaHQgdG9KUygpIG1ldGhvZCBjYW4g
YmUgaW52b2tlZC4KICAgICAgICAgJHZhbHVlID0gInN0YXRpY19jYXN0PCIgLiBHZXROYXRpdmVU
eXBlKCR0eXBlKSAuICI+KCR2YWx1ZSkiOwogICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5J
c1NWR1R5cGVOZWVkaW5nVGVhck9mZigkdHlwZSkgYW5kIG5vdCAkaW50ZXJmYWNlTmFtZSA9fiAv
TGlzdCQvKSB7CiAgICAgICAgIG15ICR0ZWFyT2ZmVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5HZXRT
VkdUeXBlTmVlZGluZ1RlYXJPZmYoJHR5cGUpOwotICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3It
PklzU1ZHVHlwZVdpdGhXcml0YWJsZVByb3BlcnRpZXNOZWVkaW5nVGVhck9mZigkdHlwZSkgYW5k
ICRpbkZ1bmN0aW9uQ2FsbCBlcSAwIGFuZCBub3QgZGVmaW5lZCAkc2lnbmF0dXJlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPnsiSW1tdXRhYmxlIn0pIHsKKyAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9y
LT5Jc1NWR1R5cGVXaXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJPZmYoJHR5cGUpIGFu
ZCAhJGluRnVuY3Rpb25DYWxsIGFuZCBub3QgZGVmaW5lZCAkc2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiSW1tdXRhYmxlIn0pIHsKICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAkdmFs
dWU7CiAgICAgICAgICAgICAkZ2V0dGVyID1+IHMvaW1wbFwuLy87CiAgICAgICAgICAgICAkZ2V0
dGVyID1+IHMvaW1wbC0+Ly87CkBAIC00NjA5LDggKzQ1NDYsOCBAQCBzdWIgTmF0aXZlVG9KU1Zh
bHVlCiAKICAgICAgICAgICAgIG15ICRzZWxmSXNUZWFyT2ZmVHlwZSA9ICRjb2RlR2VuZXJhdG9y
LT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAgICAgICBp
ZiAoJHNlbGZJc1RlYXJPZmZUeXBlKSB7CisgICAgICAgICAgICAgICAgIyBGSVhNRTogV2h5IFNW
R01hdHJpeCBzcGVjaWZpY2FsbHk/CiAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMo
IlNWR01hdHJpeFRlYXJPZmYuaCIsICRjb25kaXRpb25hbCk7Ci0gICAgICAgICAgICAgICAgIyBG
SVhNRTogQmxpbms6IERvbid0IGNyZWF0ZSBhIG5ldyBvbmUgZXZlcnl0aW1lIHdlIGFjY2VzcyB0
aGUgbWF0cml4IHByb3BlcnR5LiBUaGlzIG1lYW5zLCBlLmcsID09PSB3b24ndCB3b3JrLgogICAg
ICAgICAgICAgICAgICR2YWx1ZSA9ICJTVkdNYXRyaXhUZWFyT2ZmOjpjcmVhdGUoY2FzdGVkVGhp
cy0+d3JhcHBlZCgpLCAkdmFsdWUpIjsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlNWR1N0YXRpY1Byb3BlcnR5VGVhck9mZi5oIiwgJGNv
bmRpdGlvbmFsKTsKQEAgLTQ2MjMsMTEgKzQ1NjAsMTAgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQog
ICAgICAgICAgICAgJHZhbHVlID0gIiR7dGVhck9mZlR5cGV9OjpjcmVhdGUoJHZhbHVlKSI7CiAg
ICAgICAgIH0KICAgICB9Ci0gICAgaWYgKCRnbG9iYWxPYmplY3QpIHsKLSAgICAgICAgcmV0dXJu
ICJ0b0pTKHN0YXRlLCAkZ2xvYmFsT2JqZWN0LCBXVEY6OmdldFB0cigkdmFsdWUpKSI7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgcmV0dXJuICJ0b0pTKHN0YXRlLCBqc0Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihzdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgV1RGOjpnZXRQdHIoJHZhbHVl
KSkiOwotICAgIH0KKworICAgIG15ICRmdW5jdGlvbiA9ICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJOZXdPYmplY3QifSA/ICJ0b0pTTmV3bHlDcmVhdGVkIiA6ICJ0b0pTIjsKKwor
ICAgIHJldHVybiAiJGZ1bmN0aW9uKHN0YXRlLCAkZ2xvYmFsT2JqZWN0LCBXVEY6OmdldFB0cigk
dmFsdWUpKSI7CiB9CiAKIHN1YiBjZWlsaW5nVG9Qb3dlck9mMgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFjay5jcHAK
aW5kZXggZDk0YmFmMmQ2OTg4MzVjYjdjMmNjY2ExNjI3Y2EyYjg1NTZkODNhNS4uMGMwMWE3NGE2
MzE5MDI2MDA3M2I4MGZmMTY0ODMxNjQwZTcyMTMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2suY3BwCkBA
IC0yNCwxMyArMjQsMTEgQEAKIAogI2luY2x1ZGUgIkpTVGVzdENhbGxiYWNrLmgiCiAKLSNpbmNs
dWRlICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvci5oIgogI2lu
Y2x1ZGUgIkpTRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIkpTVGVzdE5vZGUuaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmgiCi0jaW5jbHVkZSAiVGVzdE5vZGUuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNs
dWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0xv
Y2suaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0Z1bmN0aW9uLmNwcAppbmRleCAxYTMzYTRkOTRh
ODBkOGY2NzE3N2ViZjI2NTk0YzEyOTFmMDg1NDliLi5mZTlhOTA1MGQ4NjI3MWM2MGZjZTNmOGM2
MDMyYjhhZmM4NTQyNGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tGdW5jdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrRnVuY3Rpb24uY3BwCkBA
IC0yNCwxMiArMjQsMTAgQEAKIAogI2luY2x1ZGUgIkpTVGVzdENhbGxiYWNrRnVuY3Rpb24uaCIK
IAotI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJKU0RPTVN0cmluZ0xpc3Qu
aCIKICNpbmNsdWRlICJKU1Rlc3ROb2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgotI2luY2x1ZGUgIlRl
c3ROb2RlLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8cnVudGltZS9KU0xvY2suaD4K
ICNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4
IDZkNTgyMDg2MTNhZTZjNDVjMzlmYTM3YjMzYWM5ODZlZjQyYzllNTIuLjk3MWNjYTQ4MDQ1Nzc4
M2I2NmJkYTRmMDdiZmM4YzRkNmFhMGJhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC00
MCw3ICs0MCw2IEBACiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MTIpIHx8IEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQogI2luY2x1
ZGUgIkpTTm9kZS5oIgogI2luY2x1ZGUgIkpTVGVzdE9iai5oIgotI2luY2x1ZGUgIk5vZGUuaCIK
ICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDxydW50aW1lL0pTU3RyaW5nLmg+CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAKaW5kZXggOTdhMWU2ZWRmNDUzNGQzOGVlNzNiNjNlYWY4ZWYwZjlkZmNmYjk2MC4u
ZTQ3OTgzZDdkOWMwYTY1ZDhmMDRmYzdiYjkyNDk3YzRjYzM3MWU1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAg
LTU0LDcgKzU0LDYgQEAKICNpbmNsdWRlICJTY3JpcHRQcm9maWxlLmgiCiAjaW5jbHVkZSAiU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJU
ZXN0Tm9kZS5oIgogI2luY2x1ZGUgIlRlc3RPYmouaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNs
dWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCkBAIC02Niw3ICs2NSw2IEBACiAjaW5jbHVkZSA8
cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1N0cmluZy5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaD4KLSNpbmNsdWRlIDxydW50aW1lL1N5bWJv
bC5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KIAogI2lmIEVOQUJMRShDb25kaXRpb24xKQpA
QCAtNDQxLDggKzQzOSw2IEBAIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqWE1MT2JqQXR0
cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTCiBib29sIHNldEpTVGVz
dE9ialhNTE9iakF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OkVuY29kZWRKU1ZhbHVlKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ3JlYXRlKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwog
Ym9vbCBzZXRKU1Rlc3RPYmpDcmVhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVhZE9ubHlTeW1ib2xBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1
Y3RvclN0YXRpY1JlYWRPbmx5U3ltYm9sQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2Rl
ZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIEpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0
T2JqUmVmbGVjdGVkU3RyaW5nQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIGJvb2wgc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5n
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpT
VmFsdWUpOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWZsZWN0ZWRJbnRlZ3JhbEF0
dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7CkBAIC02NjUsNyArNjYxLDYgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVz
dE9iakNvbnN0cnVjdG9yVGFibGVWYWx1ZXNbXSA9CiAgICAgeyAic3RhdGljUmVhZE9ubHlMb25n
QXR0ciIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25zdHJ1Y3Rv
clN0YXRpY1JlYWRPbmx5TG9uZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3Bl
cnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCiAgICAgeyAic3RhdGljU3RyaW5nQXR0ciIs
IERvbnREZWxldGUsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRy
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNTdHJpbmdBdHRyKSB9IH0sCiAgICAgeyAiVGVz
dFN1Yk9iaiIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25zdHJ1
Y3RvclRlc3RTdWJPYmopLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6
UHV0VmFsdWVGdW5jPigwKSB9IH0sCi0gICAgeyAic3RhdGljUmVhZE9ubHlTeW1ib2xBdHRyIiwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbnN0cnVjdG9yU3RhdGlj
UmVhZE9ubHlTeW1ib2xBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogICAgIHsgIm51bGxhYmxlU3RyaW5nU3RhdGljTWV0
aG9kIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0
PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpDb25zdHJ1Y3RvckZ1bmN0aW9uTnVsbGFibGVTdHJp
bmdTdGF0aWNNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9IH0sCiAgICAgeyAic3RhdGljTWV0aG9k
V2l0aENhbGxiYWNrQW5kT3B0aW9uYWxBcmciLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywg
eyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9iakNvbnN0cnVj
dG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBbmRPcHRpb25hbEFyZyksIChpbnRw
dHJfdCkgKDApIH0gfSwKICAgICB7ICJzdGF0aWNNZXRob2RXaXRoQ2FsbGJhY2tBcmciLCBKU0M6
OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVu
Y3Rpb24+KGpzVGVzdE9iakNvbnN0cnVjdG9yRnVuY3Rpb25TdGF0aWNNZXRob2RXaXRoQ2FsbGJh
Y2tBcmcpLCAoaW50cHRyX3QpICgxKSB9IH0sCkBAIC03NTIsNyArNzQ3LDYgQEAgc3RhdGljIGNv
bnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQogICAg
IHsgInN0cmluZ0F0dHJUcmVhdGluZ051bGxBc0VtcHR5U3RyaW5nIiwgQ3VzdG9tQWNjZXNzb3Is
IE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqU3RyaW5nQXR0clRyZWF0aW5nTnVsbEFzRW1wdHlTdHJpbmcpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RPYmpTdHJpbmdBdHRyVHJlYXRpbmdOdWxsQXNFbXB0eVN0cmluZykgfSB9LAogICAgIHsg
IlhNTE9iakF0dHIiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpYTUxPYmpBdHRy
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
c2V0SlNUZXN0T2JqWE1MT2JqQXR0cikgfSB9LAogICAgIHsgImNyZWF0ZSIsIEN1c3RvbUFjY2Vz
c29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNyZWF0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9iakNyZWF0ZSkgfSB9LAotICAg
IHsgInJlYWRPbmx5U3ltYm9sQXR0ciIsIFJlYWRPbmx5IHwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50
cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqUmVhZE9ubHlTeW1ib2xBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQ
dXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAogICAgIHsgInJlZmxlY3RlZFN0
cmluZ0F0dHIiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRTdHJp
bmdBdHRyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVl
RnVuYz4oc2V0SlNUZXN0T2JqUmVmbGVjdGVkU3RyaW5nQXR0cikgfSB9LAogICAgIHsgInJlZmxl
Y3RlZEludGVncmFsQXR0ciIsIEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlZmxl
Y3RlZEludGVncmFsQXR0ciksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90
OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialJlZmxlY3RlZEludGVncmFsQXR0cikgfSB9LAog
ICAgIHsgInJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyIiwgQ3VzdG9tQWNjZXNzb3IsIE5v
SW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqUmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHIpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpS
ZWZsZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0cikgfSB9LApAQCAtMTQxMCwzMCArMTQwNCw2IEBA
IEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNyZWF0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlCiB9CiAKIAotRW5jb2RlZEpTVmFsdWUganNUZXN0T2Jq
UmVhZE9ubHlTeW1ib2xBdHRyKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNW
YWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHRoaXNWYWx1ZSk7Ci0gICAgSlNWYWx1ZSBkZWNvZGVkVGhpc1ZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSk7Ci0gICAgYXV0byogY2FzdGVkVGhpcyA9IGpzRHluYW1p
Y0Nhc3Q8SlNUZXN0T2JqKj4oZGVjb2RlZFRoaXNWYWx1ZSk7Ci0gICAgaWYgKFVOTElLRUxZKCFj
YXN0ZWRUaGlzKSkgewotICAgICAgICByZXR1cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3IoKnN0YXRl
LCAiVGVzdE9iaiIsICJyZWFkT25seVN5bWJvbEF0dHIiKTsKLSAgICB9Ci0gICAgYXV0byYgaW1w
bCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IFN5bWJvbDo6
Y3JlYXRlKHN0YXRlLT52bSgpLCAqKGltcGwucmVhZE9ubHlTeW1ib2xBdHRyKCkpLnVpZCgpKTsK
LSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Ci19Ci0KLQotRW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ29uc3RydWN0b3JTdGF0aWNSZWFkT25seVN5bWJvbEF0dHIoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAg
VU5VU0VEX1BBUkFNKHN0YXRlKTsKLSAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKLSAgICBK
U1ZhbHVlIHJlc3VsdCA9IFN5bWJvbDo6Y3JlYXRlKHN0YXRlLT52bSgpLCAqKFRlc3RPYmo6OnN0
YXRpY1JlYWRPbmx5U3ltYm9sQXR0cigpKS51aWQoKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwotfQotCi0KIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialJlZmxlY3RlZFN0
cmluZ0F0dHIoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggZWYzM2Ni
OWZhNmQzZjhkMWRhMmNhMGZlMGY1ZDhmZGJkMGU1Y2RhOC4uM2Q2ZDQ2ZmRmZGI3NmViYWI5ZTIx
ODYxYzdkMmE2ZWJiOGY4ODA1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTI3LDcgKzI3LDYgQEAKICNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yLmgiCiAjaW5jbHVk
ZSAiSlNNZXNzYWdlUG9ydC5oIgotI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3Rv
dHlwZS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGM4MWI4YTYyYWUzZGUz
OTFmYWQ3OTljNjY5OTRjYjZiM2Q4MzMxNjAuLjk4YTdiNGQ2MGViM2Q4N2QzNjkwMDRmNTE2NWEy
M2I0ZTVkYWE1MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwKQEAgLTcxLDEwICs3MSw2IEBAIGVudW0gX29wdGlvbmFsIHsgIiIsICJP
cHRpb25hbFZhbHVlMSIsICJPcHRpb25hbFZhbHVlMiIsICJPcHRpb25hbFZhbHVlMyIgfTsKICAg
ICBhdHRyaWJ1dGUgVGVzdE9iaiAgICAgICAgICAgICAgICAgIFhNTE9iakF0dHI7CiAgICAgYXR0
cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgICAgICBjcmVhdGU7CiAKLSAgICAvLyBSZWFkb25s
eSBTeW1ib2wgdHlwZWQgYXR0cmlidXRlcy4KLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU3ltYm9s
IHJlYWRPbmx5U3ltYm9sQXR0cjsKLSAgICBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIFN5bWJv
bCBzdGF0aWNSZWFkT25seVN5bWJvbEF0dHI7Ci0KICAgICAvLyBSZWZsZWN0ZWQgRE9NIGF0dHJp
YnV0ZXMKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyByZWZsZWN0ZWRTdHJpbmdB
dHRyOwogICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgbG9uZyByZWZsZWN0ZWRJbnRlZ3JhbEF0dHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRCbGVuZE1pbk1heC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRCbGVuZE1pbk1heC5pZGwKaW5kZXgg
MDhhY2JkOGI2NmM5YzcwOTYyZDJkYzFkMTE4YTNjNmZiMGQ1ZGRlYS4uYzFhOGMxOWEwN2I1MWE5
MWJlMTdiYzY2NmQxNzlkNmJjMDg5NzBhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRVhUQmxlbmRNaW5NYXguaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0VYVEJsZW5kTWluTWF4LmlkbApAQCAtMjQsMTAgKzI0LDEwIEBACiAqLwogCiBbCi0gICAg
Tm9JbnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCi0gICAgR2VuZXJhdGVJ
c1JlYWNoYWJsZT1JbXBsV2ViR0xSZW5kZXJpbmdDb250ZXh0CisgICAgR2VuZXJhdGVJc1JlYWNo
YWJsZT1JbXBsV2ViR0xSZW5kZXJpbmdDb250ZXh0LAorICAgIE5vSW50ZXJmYWNlT2JqZWN0LAog
XSBpbnRlcmZhY2UgRVhUQmxlbmRNaW5NYXggewotICAgIGNvbnN0IHVuc2lnbmVkIGludCBNSU5f
RVhUID0gMHg4MDA3OwotICAgIGNvbnN0IHVuc2lnbmVkIGludCBNQVhfRVhUID0gMHg4MDA4Owor
ICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgTUlOX0VYVCA9IDB4ODAwNzsKKyAgICBjb25zdCB1bnNp
Z25lZCBsb25nIE1BWF9FWFQgPSAweDgwMDg7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5pZGwKaW5kZXgg
NDVhYzg5NTE1MzBiMzhlMzZkMDJkMGRmMjMxNWE0NGNhYzcyZGQ4MS4uOTAwMjIzMWM1OTE1MTRk
MDgyMmI5NTFlNDc0YzcxYWQ0ZGY0MmQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaWRsCkBAIC0yNCwx
MSArMjQsMTAgQEAKICAqLwogCiBbCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0
aW9uYWw9V0VCR0wsCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsV2ViR0xSZW5kZXJpbmdD
b250ZXh0LAotICAgIERvTm90Q2hlY2tDb25zdGFudHMKKyAgICBOb0ludGVyZmFjZU9iamVjdCwK
IF0gaW50ZXJmYWNlIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyB7Ci0gICAgY29uc3QgdW5z
aWduZWQgaW50IFRFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUID0gMHg4NEZFOwotICAgIGNvbnN0
IHVuc2lnbmVkIGludCBNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQgPSAweDg0RkY7Cisg
ICAgY29uc3QgdW5zaWduZWQgbG9uZyBURVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCA9IDB4ODRG
RTsKKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIE1BWF9URVhUVVJFX01BWF9BTklTT1RST1BZX0VY
VCA9IDB4ODRGRjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9F
WFRzUkdCLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVHNSR0IuaWRsCmluZGV4
IGRlMDZiMzdlODQ4N2IzOGUwZDRkN2QyNWVjZDBjYWE0NTcwNjkxYTMuLmNiMGRhM2U5ZTcxMGY0
Y2IwNmQ2M2IyOTAxZWQzMjRjMzk2MGU2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0VYVHNSR0IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VY
VHNSR0IuaWRsCkBAIC0yNCwxMiArMjQsMTIgQEAKICovCiAKIFsKLSAgICBOb0ludGVyZmFjZU9i
amVjdCwKICAgICBDb25kaXRpb25hbD1XRUJHTCwKLSAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUlt
cGxXZWJHTFJlbmRlcmluZ0NvbnRleHQKKyAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxXZWJH
TFJlbmRlcmluZ0NvbnRleHQsCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBF
WFRzUkdCIHsKLSAgICBjb25zdCB1bnNpZ25lZCBpbnQgU1JHQl9FWFQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPSAweDhDNDA7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50IFNS
R0JfQUxQSEFfRVhUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMHg4QzQyOwotICAg
IGNvbnN0IHVuc2lnbmVkIGludCBTUkdCOF9BTFBIQThfRVhUICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA9IDB4OEM0MzsKLSAgICBjb25zdCB1bnNpZ25lZCBpbnQgRlJBTUVCVUZGRVJfQVRU
QUNITUVOVF9DT0xPUl9FTkNPRElOR19FWFQgICAgPSAweDgyMTA7CisgICAgY29uc3QgdW5zaWdu
ZWQgbG9uZyBTUkdCX0VYVCA9IDB4OEM0MDsKKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIFNSR0Jf
QUxQSEFfRVhUID0gMHg4QzQyOworICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgU1JHQjhfQUxQSEE4
X0VYVCA9IDB4OEM0MzsKKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIEZSQU1FQlVGRkVSX0FUVEFD
SE1FTlRfQ09MT1JfRU5DT0RJTkdfRVhUID0gMHg4MjEwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwKaW5kZXggODUw
MjYwYmZlNTA3NjliOWFlMjlmZTJkNmEzMjRiMmMwNmMzNTkwMy4uZDlkOTk4MzhiNzM5YzZlN2Fh
NmRhNWU0ZDUxYWNlNjQ3OTAwYzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5pZGwKQEAgLTI0LDEwICsyNCwxMCBAQAog
ICovCiAKIFsKLSAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBDb25kaXRpb25hbD1XRUJHTCwK
KyAgICBEb05vdENoZWNrQ29uc3RhbnRzLAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbFdl
YkdMUmVuZGVyaW5nQ29udGV4dCwKLSAgICBEb05vdENoZWNrQ29uc3RhbnRzCisgICAgTm9JbnRl
cmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBPRVNTdGFuZGFyZERlcml2YXRpdmVzIHsKLSAgICBj
b25zdCB1bnNpZ25lZCBpbnQgRlJBR01FTlRfU0hBREVSX0RFUklWQVRJVkVfSElOVF9PRVMgPSAw
eDhCOEI7CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBGUkFHTUVOVF9TSEFERVJfREVSSVZBVElW
RV9ISU5UX09FUyA9IDB4OEI4QjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5pZGwKaW5kZXggMzI2ZWYxYTRkZmFjM2ViNWZhYTUx
ZDc0MWE2YTA0MzNhMzhlNTdmNC4uODYxZWQ4YWMyNDRiMWM4NmZkZWU0YzI0MWRmN2EzMzM0YWMx
NDM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJy
YXlPYmplY3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFy
cmF5T2JqZWN0LmlkbApAQCAtMjksOCArMjksOCBAQAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9
SW1wbFdlYkdMUmVuZGVyaW5nQ29udGV4dCwKICAgICBOb0ludGVyZmFjZU9iamVjdCwKIF0gaW50
ZXJmYWNlIE9FU1ZlcnRleEFycmF5T2JqZWN0IHsKLSAgICBjb25zdCB1bnNpZ25lZCBpbnQgVkVS
VEVYX0FSUkFZX0JJTkRJTkdfT0VTID0gMHg4NUI1OwotICAgIAorICAgIGNvbnN0IHVuc2lnbmVk
IGxvbmcgVkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTID0gMHg4NUI1OworCiAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyBjcmVhdGVWZXJ0ZXhBcnJheU9F
UygpOwogICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMo
b3B0aW9uYWwgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz8gYXJyYXlPYmplY3QgPSBudWxsKTsK
ICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSBib29sZWFuIGlzVmVydGV4QXJyYXlPRVMob3B0aW9u
YWwgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz8gYXJyYXlPYmplY3QgPSBudWxsKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVB
VEMuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQy5pZGwKaW5kZXggZmY0MTVhNzU2MjBiNWUwNmJiM2E1ZGUzMDA5ODMwZjVhOGYwMjJhMi4u
ZmZkOGQyMmUwZTE5OWZmZjVmOTBmMmM3YjkzMWRmYzAzNTU5M2ZhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5p
ZGwKQEAgLTI0LDEzICsyNCwxMiBAQAogICovCiAKIFsKLSAgICBOb0ludGVyZmFjZU9iamVjdCwK
ICAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBEb05vdENoZWNrQ29uc3RhbnRzLAogICAgIEdl
bmVyYXRlSXNSZWFjaGFibGU9SW1wbFdlYkdMUmVuZGVyaW5nQ29udGV4dCwKLSAgICBEb05vdENo
ZWNrQ29uc3RhbnRzCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDIHsKLSAgICAvKiBDb21wcmVzc2VkIFRleHR1cmUgRm9ybWF0cyAq
LwotICAgIGNvbnN0IHVuc2lnbmVkIGludCBDT01QUkVTU0VEX1JHQl9BVENfV0VCR0wgICAgICAg
ICAgICAgICAgICAgICA9IDB4OEM5MjsKLSAgICBjb25zdCB1bnNpZ25lZCBpbnQgQ09NUFJFU1NF
RF9SR0JBX0FUQ19FWFBMSUNJVF9BTFBIQV9XRUJHTCAgICAgPSAweDhDOTM7Ci0gICAgY29uc3Qg
dW5zaWduZWQgaW50IENPTVBSRVNTRURfUkdCQV9BVENfSU5URVJQT0xBVEVEX0FMUEhBX1dFQkdM
ID0gMHg4N0VFOworICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQ09NUFJFU1NFRF9SR0JfQVRDX1dF
QkdMID0gMHg4QzkyOworICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQ09NUFJFU1NFRF9SR0JBX0FU
Q19FWFBMSUNJVF9BTFBIQV9XRUJHTCA9IDB4OEM5MzsKKyAgICBjb25zdCB1bnNpZ25lZCBsb25n
IENPTVBSRVNTRURfUkdCQV9BVENfSU5URVJQT0xBVEVEX0FMUEhBX1dFQkdMID0gMHg4N0VFOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuaWRsCmluZGV4IDViNjFhMjBhMmZkNzJjMTRlYTkwOGYxODBhZGI3
MTdiY2QzMjMwOTcuLjJjZmJmMzEzMWZhZTRiOGIyNTk4M2U4ZTMxYWE1ZWVhYWY3NTZiZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVQVlJUQy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVBWUlRDLmlkbApAQCAtMjQsMTQgKzI0LDEzIEBACiAgKi8KIAogWwotICAgIE5v
SW50ZXJmYWNlT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIERvTm90Q2hlY2tD
b25zdGFudHMsCiAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsV2ViR0xSZW5kZXJpbmdDb250
ZXh0LAotICAgIERvTm90Q2hlY2tDb25zdGFudHMKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKIF0g
aW50ZXJmYWNlIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQyB7Ci0gICAgLyogQ29tcHJlc3Nl
ZCBUZXh0dXJlIEZvcm1hdHMgKi8KLSAgICBjb25zdCB1bnNpZ25lZCBpbnQgQ09NUFJFU1NFRF9S
R0JfUFZSVENfNEJQUFYxX0lNRyAgPSAweDhDMDA7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50IENP
TVBSRVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUcgID0gMHg4QzAxOwotICAgIGNvbnN0IHVuc2ln
bmVkIGludCBDT01QUkVTU0VEX1JHQkFfUFZSVENfNEJQUFYxX0lNRyA9IDB4OEMwMjsKLSAgICBj
b25zdCB1bnNpZ25lZCBpbnQgQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUcgPSAweDhD
MDM7CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBDT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFf
SU1HID0gMHg4QzAwOworICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQ09NUFJFU1NFRF9SR0JfUFZS
VENfMkJQUFYxX0lNRyA9IDB4OEMwMTsKKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIENPTVBSRVNT
RURfUkdCQV9QVlJUQ180QlBQVjFfSU1HID0gMHg4QzAyOworICAgIGNvbnN0IHVuc2lnbmVkIGxv
bmcgQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUcgPSAweDhDMDM7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVMzVEMuaWRsCmluZGV4IGU3NzMwM2JkZWYwNGJkOTI1OWY1NzBlODE3NTIzMzY1ZTU3YmQ0YWIu
LmY5NzE4YjgzOTI3ZjA1OTE4ZDcyNjk3NjhkMzcyZDBjNjIyZGJlYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
Qy5pZGwKQEAgLTI0LDE0ICsyNCwxMyBAQAogICovCiAKIFsKLSAgICBOb0ludGVyZmFjZU9iamVj
dCwKICAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICBEb05vdENoZWNrQ29uc3RhbnRzLAogICAg
IEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbFdlYkdMUmVuZGVyaW5nQ29udGV4dCwKLSAgICBEb05v
dENoZWNrQ29uc3RhbnRzCisgICAgTm9JbnRlcmZhY2VPYmplY3QsCiBdIGludGVyZmFjZSBXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQyB7Ci0gICAgLyogQ29tcHJlc3NlZCBUZXh0dXJlIEZvcm1h
dHMgKi8KLSAgICBjb25zdCB1bnNpZ25lZCBpbnQgQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VY
VCAgICAgICAgPSAweDgzRjA7Ci0gICAgY29uc3QgdW5zaWduZWQgaW50IENPTVBSRVNTRURfUkdC
QV9TM1RDX0RYVDFfRVhUICAgICAgID0gMHg4M0YxOwotICAgIGNvbnN0IHVuc2lnbmVkIGludCBD
T01QUkVTU0VEX1JHQkFfUzNUQ19EWFQzX0VYVCAgICAgICA9IDB4ODNGMjsKLSAgICBjb25zdCB1
bnNpZ25lZCBpbnQgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUNV9FWFQgICAgICAgPSAweDgzRjM7
CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBDT01QUkVTU0VEX1JHQl9TM1RDX0RYVDFfRVhUID0g
MHg4M0YwOworICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhU
MV9FWFQgPSAweDgzRjE7CisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBDT01QUkVTU0VEX1JHQkFf
UzNUQ19EWFQzX0VYVCA9IDB4ODNGMjsKKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIENPTVBSRVNT
RURfUkdCQV9TM1RDX0RYVDVfRVhUID0gMHg4M0YzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwKaW5kZXggYTRmOTUz
ODQxYjM5ODhkYjAzOGJmZTM5M2VjZDFkNzFlODJjMWNmZi4uYzkyOTJkZTYxNWFjMGZiMjMzNzhi
YzQxODZmNGIyZmVhZTYwOTA4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwKQEAgLTI0LDExICsyNCwxMSBAQAogICov
CiAKIFsKLSAgICBOb0ludGVyZmFjZU9iamVjdCwKICAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAg
ICBEb05vdENoZWNrQ29uc3RhbnRzLAogICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbFdlYkdM
UmVuZGVyaW5nQ29udGV4dCwKLSAgICBEb05vdENoZWNrQ29uc3RhbnRzCisgICAgTm9JbnRlcmZh
Y2VPYmplY3QsCiBdIGludGVyZmFjZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvIHsKLSAgICBjb25z
dCB1bnNpZ25lZCBpbnQgVU5NQVNLRURfVkVORE9SX1dFQkdMID0gMHg5MjQ1OwotICAgIGNvbnN0
IHVuc2lnbmVkIGludCBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTCA9IDB4OTI0NjsKKyAgICBjb25z
dCB1bnNpZ25lZCBsb25nIFVOTUFTS0VEX1ZFTkRPUl9XRUJHTCA9IDB4OTI0NTsKKyAgICBjb25z
dCB1bnNpZ25lZCBsb25nIFVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMID0gMHg5MjQ2OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmlkbAppbmRl
eCA2MGZjY2EzNmYyZTBlMmZhMjhlZDdjMTlmMGQ0ZDA1NWMyZjg5YWE1Li41Mzk1NGNlYTBjMmJl
MDdkYjE5ZGVhZmYzMDlhM2RjZTE4N2ZlMDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xEZXB0aFRleHR1cmUuaWRsCkBAIC0yNCwxMCArMjQsMTAgQEAKICAqLwog
CiBbCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCiAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAg
RG9Ob3RDaGVja0NvbnN0YW50cywKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxXZWJHTFJl
bmRlcmluZ0NvbnRleHQsCi0gICAgRG9Ob3RDaGVja0NvbnN0YW50cworICAgIE5vSW50ZXJmYWNl
T2JqZWN0LAogXSBpbnRlcmZhY2UgV2ViR0xEZXB0aFRleHR1cmUgewotICAgIGNvbnN0IHVuc2ln
bmVkIGludCBVTlNJR05FRF9JTlRfMjRfOF9XRUJHTCA9IDB4ODRGQTsKKyAgICBjb25zdCB1bnNp
Z25lZCBsb25nIFVOU0lHTkVEX0lOVF8yNF84X1dFQkdMID0gMHg4NEZBOwogfTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMmRiNmUyOTIwMDBi
M2QyOGFkNzA3OGEzMTdlZGExNDI0NDhjY2U5Li43YjkyODIwMWI1YjUyNjNjNDMzZjlkYWZmNTQx
MTZhOGYxMmEzY2RjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTYtMDQtMzAgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCisgICAgICAgIFN0cmVhbWxpbmUgYW5kIHJlbW92ZSB1bnVzZWQgYmluZGlu
Z3MgZ2VuZXJhdGlvbiBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTcyMzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGw6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bDoKKyAgICAgICAgUmVwbGFjZSBub24tc3RhbmRhcmQgImludCIgd2l0aCBzdGFuZGFyZCAibG9u
ZyIsIHdoaWNoIG1lYW5zIHRoZSBzYW1lIHRoaW5nLgorCisyMDE2LTA0LTMwICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KKwogICAgICAgICBOZXh0IGJhdGNoIG9mIGNvbnZlcnNpb25z
IHRvIHVzZSBDKysgZW51bSBjbGFzcyBpbnN0ZWFkIG9mIHN0cmluZ3MgZm9yIGVudW1lcmF0aW9u
cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3MjMy
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGwKaW5k
ZXggMzgzMTE1NGUwYTJmZmM1MGUxZDg4ZTJkNjg0YjM5YTRmYWY0Yzg1OS4uZDUwYTIwMzNmYzJl
MjExOWRjYzc4NTk2ZDZhNDVhNDA4NGRkMTAwNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5p
ZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGwKQEAgLTMwLDcgKzMwLDcgQEAgaW50ZXJmYWNlIEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyIHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IHBsYXRmb3JtTmFtZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCByb290RWxlbWVudDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCBmb2N1c2VkRWxlbWVudDsKLSAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGVsZW1l
bnRBdFBvaW50KGludCB4LCBpbnQgeSk7CisgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBlbGVt
ZW50QXRQb2ludChsb25nIHgsIGxvbmcgeSk7CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBh
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoRE9NU3RyaW5nIGlkKTsKICAgICAKICAgICBib29sZWFuIGFk
ZE5vdGlmaWNhdGlvbkxpc3RlbmVyKG9iamVjdCBmdW5jdGlvbkNhbGxiYWNrKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaWRsCmluZGV4IDIzOThiZTY4NzE3
ZTNiODcxNzAxMjY1NDg1NjQxNzEzOWU5NDI3NjYuLjYwYmU2MDNkYTg5NGMxYmFmYmRjNTNmNzVm
YTM2ZDgyY2RlNWRkODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5pZGwKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmlkbApAQCAtMzEsNyArMzEsNyBAQCBpbnRlcmZhY2UgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBkb2N1bWVudFVSSTsKIAog
ICAgIC8vIEVsZW1lbnQgYWNjZXNzLgotICAgIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgZWxlbWVu
dEF0UG9pbnQoaW50IHgsIGludCB5KTsKKyAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGVsZW1l
bnRBdFBvaW50KGxvbmcgeCwgbG9uZyB5KTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGNo
aWxkQXRJbmRleCh1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICB1bnNpZ25lZCBsb25nIGluZGV4
T2ZDaGlsZChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGNoaWxkKTsKICAgICBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50IGxpbmtlZFVJRWxlbWVudEF0SW5kZXgodW5zaWduZWQgbG9uZyBpbmRleCk7CkBA
IC01NCw3ICs1NCw3IEBAIGludGVyZmFjZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHsKICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVybDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHNwZWFrOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgb3JpZW50
YXRpb247Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCBpbnNlcnRpb25Qb2ludExpbmVOdW1i
ZXI7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgaW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVy
OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc2VsZWN0ZWRUZXh0UmFuZ2U7CiAK
ICAgICBET01TdHJpbmcgc3RyaW5nQXR0cmlidXRlVmFsdWUoRE9NU3RyaW5nIGF0dHIpOwpAQCAt
NzAsOSArNzAsOSBAQCBpbnRlcmZhY2UgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCB7CiAgICAgYm9v
bGVhbiBpc0RlY3JlbWVudEFjdGlvblN1cHBvcnRlZCgpOwogCiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBzdHJpbmdWYWx1ZTsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgaW50IGlu
dFZhbHVlOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgbWluVmFsdWU7Ci0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIGludCBtYXhWYWx1ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBp
bnRWYWx1ZTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBtaW5WYWx1ZTsKKyAgICByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyBtYXhWYWx1ZTsKICAgICAKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBpc0VuYWJsZWQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNS
ZXF1aXJlZDsKQEAgLTkxLDIyICs5MSwyMiBAQCBpbnRlcmZhY2UgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNJZ25vcmVkOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzT2ZmU2NyZWVuOwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGlzVmFsaWQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCBoaWVyYXJj
aGljYWxMZXZlbDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBoaWVyYXJjaGljYWxMZXZl
bDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhcmlhSXNHcmFiYmVkOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgYXJpYURyb3BFZmZlY3RzOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgY2xhc3NMaXN0OwogCi0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IGludCB4OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgeTsKLSAgICByZWFkb25seSBhdHRy
aWJ1dGUgaW50IHdpZHRoOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgaGVpZ2h0OwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgY2xpY2tQb2ludFg7Ci0gICAgcmVhZG9ubHkgYXR0cmli
dXRlIGludCBjbGlja1BvaW50WTsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyB4OworICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcg
d2lkdGg7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgaGVpZ2h0OworICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nIGNsaWNrUG9pbnRYOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
IGNsaWNrUG9pbnRZOwogCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGludCBjaGlsZHJlbkNvdW50
OwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgc2VsZWN0ZWRDaGlsZHJlbkNvdW50OwotICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgcm93Q291bnQ7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IGludCBjb2x1bW5Db3VudDsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBjaGlsZHJlbkNv
dW50OworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHNlbGVjdGVkQ2hpbGRyZW5Db3VudDsK
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyByb3dDb3VudDsKKyAgICByZWFkb25seSBhdHRy
aWJ1dGUgbG9uZyBjb2x1bW5Db3VudDsKIAogICAgIC8vIEFjdGlvbnMuCiAgICAgdm9pZCBpbmNy
ZW1lbnQoKTsKQEAgLTEyMSwxMCArMTIxLDEwIEBAIGludGVyZmFjZSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50IHsKICAgICBET01TdHJpbmcgYXR0cmlidXRlc09mRG9jdW1lbnRMaW5rcygpOwogCiAg
ICAgLy8gVGV4dCBpbmZvLgotICAgIERPTVN0cmluZyBjaGFyYWN0ZXJBdE9mZnNldChpbnQgb2Zm
c2V0KTsKLSAgICBET01TdHJpbmcgd29yZEF0T2Zmc2V0KGludCBvZmZzZXQpOwotICAgIERPTVN0
cmluZyBsaW5lQXRPZmZzZXQoaW50IG9mZnNldCk7Ci0gICAgRE9NU3RyaW5nIHNlbnRlbmNlQXRP
ZmZzZXQoaW50IG9mZnNldCk7CisgICAgRE9NU3RyaW5nIGNoYXJhY3RlckF0T2Zmc2V0KGxvbmcg
b2Zmc2V0KTsKKyAgICBET01TdHJpbmcgd29yZEF0T2Zmc2V0KGxvbmcgb2Zmc2V0KTsKKyAgICBE
T01TdHJpbmcgbGluZUF0T2Zmc2V0KGxvbmcgb2Zmc2V0KTsKKyAgICBET01TdHJpbmcgc2VudGVu
Y2VBdE9mZnNldChsb25nIG9mZnNldCk7CiAgICAgCiAgICAgLy8gVGFibGUgaW5mby4KICAgICBE
T01TdHJpbmcgYXR0cmlidXRlc09mQ29sdW1uSGVhZGVycygpOwpAQCAtMTM4LDExICsxMzgsMTEg
QEAgaW50ZXJmYWNlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgewogICAgIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQgZGlzY2xvc2VkQnlSb3coKTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGRp
c2Nsb3NlZFJvd0F0SW5kZXgodW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudCByb3dBdEluZGV4KHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotICAgIGludCBpbmRl
eEluVGFibGUoKTsKKyAgICBsb25nIGluZGV4SW5UYWJsZSgpOwogICAgIERPTVN0cmluZyByb3dJ
bmRleFJhbmdlKCk7CiAgICAgRE9NU3RyaW5nIGNvbHVtbkluZGV4UmFuZ2UoKTsKLSAgICBpbnQg
cm93Q291bnQoKTsKLSAgICBpbnQgY29sdW1uQ291bnQoKTsKKyAgICBsb25nIHJvd0NvdW50KCk7
CisgICAgbG9uZyBjb2x1bW5Db3VudCgpOwogICAgIG9iamVjdCBjb2x1bW5IZWFkZXJzKCk7CiAg
ICAgb2JqZWN0IHJvd0hlYWRlcnMoKTsKIApAQCAtMTUyLDE0ICsxNTIsMTQgQEAgaW50ZXJmYWNl
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgewogCiAgICAgLy8gUGFyYW1hdGVyaXplZCBhdHRyaWJ1
dGVzLgogICAgIERPTVN0cmluZyBwYXJhbWV0ZXJpemVkQXR0cmlidXRlTmFtZXMoKTsKLSAgICBp
bnQgbGluZUZvckluZGV4KGludCBpbmRleCk7Ci0gICAgRE9NU3RyaW5nIHJhbmdlRm9yTGluZShp
bnQgaW5kZXgpOwotICAgIERPTVN0cmluZyByYW5nZUZvclBvc2l0aW9uKGludCB4LCBpbnQgeSk7
CisgICAgbG9uZyBsaW5lRm9ySW5kZXgobG9uZyBpbmRleCk7CisgICAgRE9NU3RyaW5nIHJhbmdl
Rm9yTGluZShsb25nIGluZGV4KTsKKyAgICBET01TdHJpbmcgcmFuZ2VGb3JQb3NpdGlvbihsb25n
IHgsIGxvbmcgeSk7CiAgICAgRE9NU3RyaW5nIGJvdW5kc0ZvclJhbmdlKHVuc2lnbmVkIGxvbmcg
bG9jYXRpb24sIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKTsKICAgICBET01TdHJpbmcgc3RyaW5nRm9y
UmFuZ2UodW5zaWduZWQgbG9uZyBsb2NhdGlvbiwgdW5zaWduZWQgbG9uZyBsZW5ndGgpOwogICAg
IERPTVN0cmluZyBhdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2UodW5zaWduZWQgbG9uZyBsb2NhdGlv
biwgdW5zaWduZWQgbG9uZyBsZW5ndGgpOwogICAgIGJvb2xlYW4gYXR0cmlidXRlZFN0cmluZ1Jh
bmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkIGxvbmcgbG9jYXRpb24sIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoKTsKLSAgICBbUGFzc0NvbnRleHRdIHVuc2lnbmVkIGludCB1aUVsZW1lbnRDb3VudEZvclNl
YXJjaFByZWRpY2F0ZShBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IHN0YXJ0RWxlbWVudCwgYm9vbGVh
biBpc0RpcmVjdGlvbk5leHQsIG9iamVjdCBzZWFyY2hLZXksIERPTVN0cmluZyBzZWFyY2hUZXh0
LCBib29sZWFuIHZpc2libGVPbmx5LCBib29sZWFuIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSk7
CisgICAgW1Bhc3NDb250ZXh0XSB1bnNpZ25lZCBsb25nIHVpRWxlbWVudENvdW50Rm9yU2VhcmNo
UHJlZGljYXRlKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgc3RhcnRFbGVtZW50LCBib29sZWFuIGlz
RGlyZWN0aW9uTmV4dCwgb2JqZWN0IHNlYXJjaEtleSwgRE9NU3RyaW5nIHNlYXJjaFRleHQsIGJv
b2xlYW4gdmlzaWJsZU9ubHksIGJvb2xlYW4gaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KTsKICAg
ICBbUGFzc0NvbnRleHRdIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgdWlFbGVtZW50Rm9yU2VhcmNo
UHJlZGljYXRlKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgc3RhcnRFbGVtZW50LCBib29sZWFuIGlz
RGlyZWN0aW9uTmV4dCwgb2JqZWN0IHNlYXJjaEtleSwgRE9NU3RyaW5nIHNlYXJjaFRleHQsIGJv
b2xlYW4gdmlzaWJsZU9ubHksIGJvb2xlYW4gaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5KTsKICAg
ICBbUGFzc0NvbnRleHRdIERPTVN0cmluZyBzZWxlY3RUZXh0V2l0aENyaXRlcmlhKERPTVN0cmlu
ZyBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBvYmplY3Qgc2VhcmNoU3RyaW5ncywgRE9NU3RyaW5nIHJl
cGxhY2VtZW50U3RyaW5nLCBET01TdHJpbmcgYWN0aXZpdHkpOwogICAgIGJvb2xlYW4gc2V0U2Vs
ZWN0ZWRUZXh0UmFuZ2UodW5zaWduZWQgbG9uZyBsb2NhdGlvbiwgdW5zaWduZWQgbG9uZyBsZW5n
dGgpOwpAQCAtMTY5LDggKzE2OSw4IEBAIGludGVyZmFjZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
IHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCB2ZXJ0aWNh
bFNjcm9sbGJhcjsKIAogICAgIHZvaWQgc2Nyb2xsVG9NYWtlVmlzaWJsZSgpOwotICAgIHZvaWQg
c2Nyb2xsVG9HbG9iYWxQb2ludChpbnQgeCwgaW50IHkpOwotICAgIHZvaWQgc2Nyb2xsVG9NYWtl
VmlzaWJsZVdpdGhTdWJGb2N1cyhpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7
CisgICAgdm9pZCBzY3JvbGxUb0dsb2JhbFBvaW50KGxvbmcgeCwgbG9uZyB5KTsKKyAgICB2b2lk
IHNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXMobG9uZyB4LCBsb25nIHksIGxvbmcgd2lk
dGgsIGxvbmcgaGVpZ2h0KTsKIAogICAgIHZvaWQgdGFrZUZvY3VzKCk7CiAgICAgYm9vbGVhbiBz
Y3JvbGxQYWdlRG93bigpOwpAQCAtMTg2LDE4ICsxODYsMTggQEAgaW50ZXJmYWNlIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQgewogICAgIHZvaWQgcmVzZXRTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSgp
OwogICAgIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyIHN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJr
ZXJSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlIHJhbmdlKTsKICAgICBBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlciBlbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UgcmFuZ2UpOwotICAgIEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
IGVuZFRleHRNYXJrZXJGb3JCb3VuZHMoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWln
aHQpOwotICAgIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyIHN0YXJ0VGV4dE1hcmtlckZvckJvdW5k
cyhpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7Ci0gICAgQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXIgdGV4dE1hcmtlckZvclBvaW50KGludCB4LCBpbnQgeSk7CisgICAgQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIgZW5kVGV4dE1hcmtlckZvckJvdW5kcyhsb25nIHgsIGxvbmcgeSwg
bG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQpOworICAgIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyIHN0
YXJ0VGV4dE1hcmtlckZvckJvdW5kcyhsb25nIHgsIGxvbmcgeSwgbG9uZyB3aWR0aCwgbG9uZyBo
ZWlnaHQpOworICAgIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyIHRleHRNYXJrZXJGb3JQb2ludChs
b25nIHgsIGxvbmcgeSk7CiAgICAgQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIgcHJldmlvdXNUZXh0
TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyIG1hcmtlcik7CiAgICAgQWNjZXNzaWJpbGl0
eVRleHRNYXJrZXIgbmV4dFRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIgbWFya2Vy
KTsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGFjY2Vzc2liaWxpdHlFbGVtZW50Rm9yVGV4
dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciBtYXJrZXIpOwogICAgIERPTVN0cmluZyBz
dHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSByYW5n
ZSk7Ci0gICAgaW50IHRleHRNYXJrZXJSYW5nZUxlbmd0aChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlIHJhbmdlKTsKKyAgICBsb25nIHRleHRNYXJrZXJSYW5nZUxlbmd0aChBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlclJhbmdlIHJhbmdlKTsKICAgICBib29sZWFuIGF0dHJpYnV0ZWRTdHJpbmdG
b3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShET01TdHJpbmcgYXR0ciwgQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZSByYW5nZSk7Ci0gICAgaW50IGluZGV4Rm9yVGV4dE1hcmtl
cihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciBtYXJrZXIpOworICAgIGxvbmcgaW5kZXhGb3JUZXh0
TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyIG1hcmtlcik7CiAgICAgYm9vbGVhbiBpc1Rl
eHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciBtYXJrZXIpOwotICAgIEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyIHRleHRNYXJrZXJGb3JJbmRleChpbnQgdGV4dEluZGV4KTsKKyAg
ICBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciB0ZXh0TWFya2VyRm9ySW5kZXgobG9uZyB0ZXh0SW5k
ZXgpOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciBzdGFy
dFRleHRNYXJrZXI7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyIGVuZFRleHRNYXJrZXI7CiAgICAgYm9vbGVhbiBzZXRTZWxlY3RlZFZpc2libGVUZXh0UmFu
Z2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSByYW5nZSk7CkBAIC0yMjIsOCArMjIyLDgg
QEAgaW50ZXJmYWNlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgewogICAgIC8vIGlPUyBzcGVjaWZp
YyBhY2Nlc3NpYmlsaXR5IG1ldGhvZHMuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBpZGVudGlmaWVyOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHJhaXRzOwot
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBpbnQgZWxlbWVudFRleHRQb3NpdGlvbjsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgaW50IGVsZW1lbnRUZXh0TGVuZ3RoOworICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIGVsZW1lbnRUZXh0UG9zaXRpb247CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxv
bmcgZWxlbWVudFRleHRMZW5ndGg7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBz
dHJpbmdGb3JTZWxlY3Rpb247CiAgICAgb2JqZWN0IGVsZW1lbnRzRm9yUmFuZ2UodW5zaWduZWQg
bG9uZyBsb2NhdGlvbiwgdW5zaWduZWQgbG9uZyBsZW5ndGgpOwogICAgIHZvaWQgaW5jcmVhc2VU
ZXh0U2VsZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCA4OWMzYzhlYmMz
Y2RlN2JhMTgxYTE0MDMzMjJkN2VlM2MwZjJlNjk4Li5hNDMwMzdkNWQ4YzZkMDk5M2M5ZThhMzJh
OTllMTY4NGM3OWM1ZjVmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTc0LDcgKzc0
LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhy
b3VnaEVsZW1lbnRzKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgdm9pZCBzZXRTZXJpYWxpemVIVFRQ
TG9hZHMoKTsKICAgICB2b2lkIGRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpOwotICAgIHZv
aWQgc2V0Q2FjaGVNb2RlbChpbnQgbW9kZWwpOworICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChsb25n
IG1vZGVsKTsKICAgICB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJv
b2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0UHJpbnRpbmcoKTsKICAgICB2b2lkIHNldFNob3Vs
ZERlY2lkZU5hdmlnYXRpb25Qb2xpY3lBZnRlckRlbGF5KGJvb2xlYW4gdmFsdWUpOwpAQCAtOTUs
NyArOTUsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBkaXNwbGF5KCk7CiAK
ICAgICAvLyBQcmludGluZwotICAgIGJvb2xlYW4gaXNQYWdlQm94VmlzaWJsZShpbnQgcGFnZUlu
ZGV4KTsKKyAgICBib29sZWFuIGlzUGFnZUJveFZpc2libGUobG9uZyBwYWdlSW5kZXgpOwogCiAg
ICAgW1Bhc3NDb250ZXh0XSB2b2lkIHNldFZhbHVlRm9yVXNlcihvYmplY3QgZWxlbWVudCwgRE9N
U3RyaW5nIHZhbHVlKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>