<?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>135271</bug_id>
          
          <creation_ts>2014-07-24 16:49:59 -0700</creation_ts>
          <short_desc>Remove iOS Perl DumpRenderTree support target</short_desc>
          <delta_ts>2014-08-02 11:03:36 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>All</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="David Farler">dfarler</reporter>
          <assigned_to name="David Farler">dfarler</assigned_to>
          <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1024677</commentid>
    <comment_count>0</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-07-24 16:49:59 -0700</bug_when>
    <thetext>Once we&apos;re happy with the new run-webkit-tests support for iOS, we should remove the Perl module target from DumpRenderTree. If there are no more clients of old-run-webkit-tests, we should consider removing it as well. I believe the iOS Simulator is the last holdout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1025729</commentid>
    <comment_count>1</comment_count>
      <attachid>235747</attachid>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-07-30 10:08:32 -0700</bug_when>
    <thetext>Created attachment 235747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026434</commentid>
    <comment_count>2</comment_count>
      <attachid>235747</attachid>
    <who name="">mitz</who>
    <bug_when>2014-08-01 21:23:29 -0700</bug_when>
    <thetext>Comment on attachment 235747
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026474</commentid>
    <comment_count>3</comment_count>
    <who name="David Farler">dfarler</who>
    <bug_when>2014-08-02 11:03:36 -0700</bug_when>
    <thetext>Committed r171968: &lt;http://trac.webkit.org/changeset/171968&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235747</attachid>
            <date>2014-07-30 10:08:32 -0700</date>
            <delta_ts>2014-08-01 21:23:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135271-20140730100818.patch</filename>
            <type>text/plain</type>
            <size>237774</size>
            <attacher name="David Farler">dfarler</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxODAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjgxNjVmYWM5OWMxNmQwOWIyNTM5MmI1NWE0ZTcyZjhl
NTQ1MGMxZC4uMzZhZmQyNjc4OGI0OGM2OTdhY2M3ZGVlMjJmNjlmODQ3ODkzMGEyNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDE0LTA3LTMwICBEYXZpZCBGYXJsZXIgIDxkZmFybGVyQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgaU9TIFBlcmwgRHVtcFJlbmRlclRyZWUgc3VwcG9ydCB0YXJnZXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTI3MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlIHRoZSB0
YXJnZXQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydC5jOiBSZW1vdmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9Q
ZXJsU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRQcmVnZW5lcmF0ZWQucG06IFJlbW92ZWQu
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydF93cmFwUHJlZ2VuZXJhdGVkLmM6IFJlbW92ZWQuCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvaW9zL1BlcmxTdXBwb3J0L0lQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi9DaGFuZ2Vz
OiBSZW1vdmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9JUGhv
bmVTaW11bGF0b3JOb3RpZmljYXRpb24vSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uLnhzOiBS
ZW1vdmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9JUGhvbmVT
aW11bGF0b3JOb3RpZmljYXRpb24vTUFOSUZFU1Q6IFJlbW92ZWQuCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0lQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi9NYWtl
ZmlsZS5QTDogUmVtb3ZlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvUGVybFN1cHBv
cnQvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uL1JFQURNRTogUmVtb3ZlZC4KKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9pb3MvUGVybFN1cHBvcnQvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0
aW9uL2xpYi9JUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24ucG06IFJlbW92ZWQuCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0lQaG9uZVNpbXVsYXRvck5vdGlmaWNh
dGlvbi9wcHBvcnQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvUGVy
bFN1cHBvcnQvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uL3QvSVBob25lU2ltdWxhdG9yTm90
aWZpY2F0aW9uLnQ6IFJlbW92ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxT
dXBwb3J0L01ha2VmaWxlOiBSZW1vdmVkLgorCiAyMDE0LTA3LTI5ICBEYXZpZCBGYXJsZXIgIDxk
ZmFybGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBpT1MgU2ltdWxhdG9yIExheW91dFRlc3RSZWxh
eQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmIwNzhlMmY3NDM3NzAzYmQyNWVlZDM1
NTNhODYzZmU2ODNmZjM2Zi4uNjU2MjM4N2FkNzNjMGI1MTFiNDY3YTI3MTBkOTAyMTJiMDE1ODcx
YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVy
VHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMyw3ICsxMyw2IEBACiAJCQlidWls
ZFBoYXNlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCi0JCQkJQTExNThENjgxODky
N0IyNDAwODhDMTdCIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJMkQ0MDNGMjExNTA4
NzM2QzAwNTM1OEQyIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJQTEzNEU1MkQxODhG
QzA5MjAwOTAxRDA2IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkJQTg0RjYwOEYwOEIx
MzcwRTAwRTk3NDVGIC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCkBAIC0xNDYsMTMgKzE0NSw2
IEBACiAJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDJENDAzRUIyMTUwODcxRjkwMDUzNThEMjsK
IAkJCXJlbW90ZUluZm8gPSBMYXlvdXRUZXN0SGVscGVyOwogCQl9OwotCQlBMTE1OEQ2NzE4OTI3
QjI0MDA4OEMxN0IgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewotCQkJaXNhID0gUEJY
Q29udGFpbmVySXRlbVByb3h5OwotCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1
REMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovOwotCQkJcHJveHlUeXBlID0gMTsKLQkJCXJl
bW90ZUdsb2JhbElEU3RyaW5nID0gQTExNThENjIxODkyN0FGMDAwODhDMTdCOwotCQkJcmVtb3Rl
SW5mbyA9ICJQZXJsIFN1cHBvcnQiOwotCQl9OwogCQlBMTMyMUNENzE4OEZBQkUwMDAxMjU0MzQg
LyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRl
bVByb3h5OwogCQkJY29udGFpbmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMwMkFBQzA3IC8q
IFByb2plY3Qgb2JqZWN0ICovOwpAQCAtMTY3LDEzICsxNTksNiBAQAogCQkJcmVtb3RlR2xvYmFs
SURTdHJpbmcgPSA5MzQwOTk0QTA4NTQwQ0FFMDA3RjNCQzg7CiAJCQlyZW1vdGVJbmZvID0gRHVt
cFJlbmRlclRyZWU7CiAJCX07Ci0JCUExOTMxN0ZFMTg5Mjg4MzUwMDFDNTJCMSAvKiBQQlhDb250
YWluZXJJdGVtUHJveHkgKi8gPSB7Ci0JCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7Ci0J
CQljb250YWluZXJQb3J0YWwgPSAwOEZCNzc5M0ZFODQxNTVEQzAyQUFDMDcgLyogUHJvamVjdCBv
YmplY3QgKi87Ci0JCQlwcm94eVR5cGUgPSAxOwotCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSBB
MTE1OEQ3RTE4OTI3RTdBMDA4OEMxN0I7Ci0JCQlyZW1vdGVJbmZvID0gRHVtcFJlbmRlclRyZWUu
YXBwOwotCQl9OwogCQlBMTkzMTgwMTE4OTI4QzEwMDAxQzUyQjEgLyogUEJYQ29udGFpbmVySXRl
bVByb3h5ICovID0gewogCQkJaXNhID0gUEJYQ29udGFpbmVySXRlbVByb3h5OwogCQkJY29udGFp
bmVyUG9ydGFsID0gMDhGQjc3OTNGRTg0MTU1REMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICov
OwpAQCAtMjkzLDE4ICsyNzgsNiBAQAogCQlBMTE1OEQ1NTE4OTI3M0VCMDA4OEMxN0IgLyogRHVt
cFJlbmRlclRyZWVCcm93c2VyVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEdW1wUmVuZGVyVHJlZUJy
b3dzZXJWaWV3Lmg7IHBhdGggPSBpb3MvRHVtcFJlbmRlclRyZWVCcm93c2VyVmlldy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTE1OEQ1NjE4OTI3M0VCMDA4OEMxN0IgLyogRHVt
cFJlbmRlclRyZWVCcm93c2VyVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IER1bXBSZW5k
ZXJUcmVlQnJvd3NlclZpZXcubW07IHBhdGggPSBpb3MvRHVtcFJlbmRlclRyZWVCcm93c2VyVmll
dy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNThENTcxODkyNzNFQjAwODhD
MTdCIC8qIFBpeGVsRHVtcFN1cHBvcnRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQaXhl
bER1bXBTdXBwb3J0SU9TLm1tOyBwYXRoID0gaW9zL1BpeGVsRHVtcFN1cHBvcnRJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExMTU4RDZDMTg5MjdDRjEwMDg4QzE3QiAvKiBE
dW1wUmVuZGVyVHJlZVN1cHBvcnQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gRHVtcFJlbmRlclRyZWVTdXBw
b3J0LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExMTU4RDZEMTg5MjdDRjEwMDg4
QzE3QiAvKiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRfd3JhcFByZWdlbmVyYXRlZC5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7
IHBhdGggPSBEdW1wUmVuZGVyVHJlZVN1cHBvcnRfd3JhcFByZWdlbmVyYXRlZC5jOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlBMTE1OEQ2RTE4OTI3Q0YxMDA4OEMxN0IgLyogRHVtcFJl
bmRlclRyZWVTdXBwb3J0UHJlZ2VuZXJhdGVkLnBtICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucGVybDsgcGF0aCA9IER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFByZWdlbmVyYXRlZC5wbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQTExNThENzAxODkyN0NGMTAwODhDMTdCIC8qIENoYW5nZXMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hhbmdlczsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTExNThENzExODkyN0NGMTAwODhDMTdCIC8qIElQ
aG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi54cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJUGhvbmVTaW11bGF0b3JOb3RpZmlj
YXRpb24ueHM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExMTU4RDczMTg5MjdDRjIw
MDg4QzE3QiAvKiBJUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24ucG0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBwYXRo
ID0gSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uLnBtOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlBMTE1OEQ3NDE4OTI3Q0YyMDA4OEMxN0IgLyogTWFrZWZpbGUuUEwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJs
OyBwYXRoID0gTWFrZWZpbGUuUEw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExMTU4
RDc1MTg5MjdDRjIwMDg4QzE3QiAvKiBNQU5JRkVTVCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNQU5JRkVTVDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTExNThENzYxODkyN0NGMjAwODhDMTdCIC8qIHBwcG9ydC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBwcHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTExNThENzcxODkyN0NGMjAwODhDMTdCIC8qIFJFQURNRSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSRUFETUU7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUExMTU4RDc5MTg5MjdDRjIwMDg4QzE3QiAvKiBJUGhvbmVT
aW11bGF0b3JOb3RpZmljYXRpb24udCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24u
dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTExNThEN0ExODkyN0NGMjAwODhDMTdC
IC8qIE1ha2VmaWxlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5tYWtlOyBwYXRoID0gTWFrZWZpbGU7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExMTU4RDdGMTg5MjdFN0EwMDg4QzE3QiAvKiBEdW1wUmVuZGVyVHJlZS5h
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBw
ZXIuYXBwbGljYXRpb247IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IER1bXBSZW5kZXJUcmVl
LmFwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQTEzMjFDOUUxODhG
OUEzNjAwMTI1NDM0IC8qIGxpYkR1bXBSZW5kZXJUcmVlLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0g
MDsgcGF0aCA9IGxpYkR1bXBSZW5kZXJUcmVlLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCUExMzRFNTJGMTg4RkMyNzAwMDkwMUQwNiAvKiBEdW1wUmVuZGVyVHJlZU1h
aW4ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBEdW1wUmVuZGVy
VHJlZU1haW4ubW07IHBhdGggPSBtYWMvRHVtcFJlbmRlclRyZWVNYWluLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjU4LDU1ICs2MzEsMTAgQEAKIAkJCQlBMTE1OEQ1NTE4OTI3
M0VCMDA4OEMxN0IgLyogRHVtcFJlbmRlclRyZWVCcm93c2VyVmlldy5oICovLAogCQkJCUExMTU4
RDU2MTg5MjczRUIwMDg4QzE3QiAvKiBEdW1wUmVuZGVyVHJlZUJyb3dzZXJWaWV3Lm1tICovLAog
CQkJCUExOTMxN0ZDMTg5Mjg1NUYwMDFDNTJCMSAvKiBJbmZvLnBsaXN0ICovLAotCQkJCUExMTU4
RDZCMTg5MjdDRjEwMDg4QzE3QiAvKiBQZXJsU3VwcG9ydCAqLywKIAkJCSk7CiAJCQluYW1lID0g
aW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJQTExNThENkIxODkyN0NG
MTAwODhDMTdCIC8qIFBlcmxTdXBwb3J0ICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQlj
aGlsZHJlbiA9ICgKLQkJCQlBMTE1OEQ2QzE4OTI3Q0YxMDA4OEMxN0IgLyogRHVtcFJlbmRlclRy
ZWVTdXBwb3J0LmMgKi8sCi0JCQkJQTExNThENkQxODkyN0NGMTAwODhDMTdCIC8qIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydF93cmFwUHJlZ2VuZXJhdGVkLmMgKi8sCi0JCQkJQTExNThENkUxODkyN0NG
MTAwODhDMTdCIC8qIER1bXBSZW5kZXJUcmVlU3VwcG9ydFByZWdlbmVyYXRlZC5wbSAqLywKLQkJ
CQlBMTE1OEQ2RjE4OTI3Q0YxMDA4OEMxN0IgLyogSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9u
ICovLAotCQkJCUExMTU4RDdBMTg5MjdDRjIwMDg4QzE3QiAvKiBNYWtlZmlsZSAqLywKLQkJCSk7
Ci0JCQluYW1lID0gUGVybFN1cHBvcnQ7Ci0JCQlwYXRoID0gaW9zL1BlcmxTdXBwb3J0OwotCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKLQkJfTsKLQkJQTExNThENkYxODkyN0NGMTAwODhDMTdC
IC8qIElQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbiAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3Vw
OwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQTExNThENzAxODkyN0NGMTAwODhDMTdCIC8qIENoYW5n
ZXMgKi8sCi0JCQkJQTExNThENzExODkyN0NGMTAwODhDMTdCIC8qIElQaG9uZVNpbXVsYXRvck5v
dGlmaWNhdGlvbi54cyAqLywKLQkJCQlBMTE1OEQ3MjE4OTI3Q0YyMDA4OEMxN0IgLyogbGliICov
LAotCQkJCUExMTU4RDc0MTg5MjdDRjIwMDg4QzE3QiAvKiBNYWtlZmlsZS5QTCAqLywKLQkJCQlB
MTE1OEQ3NTE4OTI3Q0YyMDA4OEMxN0IgLyogTUFOSUZFU1QgKi8sCi0JCQkJQTExNThENzYxODky
N0NGMjAwODhDMTdCIC8qIHBwcG9ydC5oICovLAotCQkJCUExMTU4RDc3MTg5MjdDRjIwMDg4QzE3
QiAvKiBSRUFETUUgKi8sCi0JCQkJQTExNThENzgxODkyN0NGMjAwODhDMTdCIC8qIHQgKi8sCi0J
CQkpOwotCQkJcGF0aCA9IElQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbjsKLQkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUExMTU4RDcyMTg5MjdDRjIwMDg4QzE3QiAvKiBsaWIg
Ki8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCUExMTU4RDcz
MTg5MjdDRjIwMDg4QzE3QiAvKiBJUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24ucG0gKi8sCi0J
CQkpOwotCQkJcGF0aCA9IGxpYjsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0J
CUExMTU4RDc4MTg5MjdDRjIwMDg4QzE3QiAvKiB0ICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7
Ci0JCQljaGlsZHJlbiA9ICgKLQkJCQlBMTE1OEQ3OTE4OTI3Q0YyMDA4OEMxN0IgLyogSVBob25l
U2ltdWxhdG9yTm90aWZpY2F0aW9uLnQgKi8sCi0JCQkpOwotCQkJcGF0aCA9IHQ7Ci0JCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQlBODAzRkY2NDA5Q0FBQ0MxMDA5QjJBMzcgLyog
RnJhbWV3b3JrcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBA
IC04MDEsMjQgKzcyOSw2IEBACiAJCX07CiAvKiBFbmQgUEJYSGVhZGVyc0J1aWxkUGhhc2Ugc2Vj
dGlvbiAqLwogCi0vKiBCZWdpbiBQQlhMZWdhY3lUYXJnZXQgc2VjdGlvbiAqLwotCQlBMTE1OEQ2
MjE4OTI3QUYwMDA4OEMxN0IgLyogUGVybCBTdXBwb3J0ICovID0gewotCQkJaXNhID0gUEJYTGVn
YWN5VGFyZ2V0OwotCQkJYnVpbGRBcmd1bWVudHNTdHJpbmcgPSAiJChBQ1RJT04pIFBMQVRGT1JN
X05BTUU9JChQTEFURk9STV9OQU1FKSI7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gQTEx
NThENjMxODkyN0FGMDAwODhDMTdCIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJY
TGVnYWN5VGFyZ2V0ICJQZXJsIFN1cHBvcnQiICovOwotCQkJYnVpbGRQaGFzZXMgPSAoCi0JCQkp
OwotCQkJYnVpbGRUb29sUGF0aCA9IC91c3IvYmluL21ha2U7Ci0JCQlidWlsZFdvcmtpbmdEaXJl
Y3RvcnkgPSAiJChTUkNST09UKS9pb3MvUGVybFN1cHBvcnQiOwotCQkJZGVwZW5kZW5jaWVzID0g
KAotCQkJCUExOTMxN0ZGMTg5Mjg4MzUwMDFDNTJCMSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
LAotCQkJKTsKLQkJCW5hbWUgPSAiUGVybCBTdXBwb3J0IjsKLQkJCXBhc3NCdWlsZFNldHRpbmdz
SW5FbnZpcm9ubWVudCA9IDE7Ci0JCQlwcm9kdWN0TmFtZSA9ICJQZXJsIFN1cHBvcnQiOwotCQl9
OwotLyogRW5kIFBCWExlZ2FjeVRhcmdldCBzZWN0aW9uICovCi0KIC8qIEJlZ2luIFBCWE5hdGl2
ZVRhcmdldCBzZWN0aW9uICovCiAJCTE0MUJGMjFFMDk2QTQ0MUQwMEUwNzUzQyAvKiBUZXN0TmV0
c2NhcGVQbHVnSW4gKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CkBAIC05NTYsNyAr
ODY2LDYgQEAKIAkJCQlCNUE3NTI1QTA4QUY0QTRBMDAxMzhFNDUgLyogSW1hZ2VEaWZmICovLAog
CQkJCTE0MUJGMjFFMDk2QTQ0MUQwMEUwNzUzQyAvKiBUZXN0TmV0c2NhcGVQbHVnSW4gKi8sCiAJ
CQkJMkQ0MDNFQjIxNTA4NzFGOTAwNTM1OEQyIC8qIExheW91dFRlc3RIZWxwZXIgKi8sCi0JCQkJ
QTExNThENjIxODkyN0FGMDAwODhDMTdCIC8qIFBlcmwgU3VwcG9ydCAqLywKIAkJCSk7CiAJCX07
CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCkBAIC0xMTE4LDExICsxMDI3LDYgQEAKIAkJ
CXRhcmdldCA9IDJENDAzRUIyMTUwODcxRjkwMDUzNThEMiAvKiBMYXlvdXRUZXN0SGVscGVyICov
OwogCQkJdGFyZ2V0UHJveHkgPSAyRDQwM0YyMDE1MDg3MzZDMDA1MzU4RDIgLyogUEJYQ29udGFp
bmVySXRlbVByb3h5ICovOwogCQl9OwotCQlBMTE1OEQ2ODE4OTI3QjI0MDA4OEMxN0IgLyogUEJY
VGFyZ2V0RGVwZW5kZW5jeSAqLyA9IHsKLQkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7Ci0J
CQl0YXJnZXQgPSBBMTE1OEQ2MjE4OTI3QUYwMDA4OEMxN0IgLyogUGVybCBTdXBwb3J0ICovOwot
CQkJdGFyZ2V0UHJveHkgPSBBMTE1OEQ2NzE4OTI3QjI0MDA4OEMxN0IgLyogUEJYQ29udGFpbmVy
SXRlbVByb3h5ICovOwotCQl9OwogCQlBMTMyMUNEODE4OEZBQkUwMDAxMjU0MzQgLyogUEJYVGFy
Z2V0RGVwZW5kZW5jeSAqLyA9IHsKIAkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CiAJCQl0
YXJnZXQgPSBBMTMyMUM5RDE4OEY5QTM2MDAxMjU0MzQgLyogRHVtcFJlbmRlclRyZWUgKExpYnJh
cnkpICovOwpAQCAtMTEzMywxMSArMTAzNyw2IEBACiAJCQl0YXJnZXQgPSA5MzQwOTk0QTA4NTQw
Q0FFMDA3RjNCQzggLyogRHVtcFJlbmRlclRyZWUgKi87CiAJCQl0YXJnZXRQcm94eSA9IEExMzRF
NTJDMTg4RkMwOTIwMDkwMUQwNiAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CiAJCX07Ci0J
CUExOTMxN0ZGMTg5Mjg4MzUwMDFDNTJCMSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0gewot
CQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKLQkJCXRhcmdldCA9IEExMTU4RDdFMTg5MjdF
N0EwMDg4QzE3QiAvKiBEdW1wUmVuZGVyVHJlZS5hcHAgKi87Ci0JCQl0YXJnZXRQcm94eSA9IEEx
OTMxN0ZFMTg5Mjg4MzUwMDFDNTJCMSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87Ci0JCX07
CiAJCUExOTMxODAyMTg5MjhDMTAwMDFDNTJCMSAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0g
ewogCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKIAkJCXRhcmdldCA9IEExMzIxQzlEMTg4
RjlBMzYwMDEyNTQzNCAvKiBEdW1wUmVuZGVyVHJlZSAoTGlicmFyeSkgKi87CkBAIC0xMjY3LDI0
ICsxMTY2LDYgQEAKIAkJCX07CiAJCQluYW1lID0gUHJvZHVjdGlvbjsKIAkJfTsKLQkJQTExNThE
NjQxODkyN0FGMDAwODhDMTdCIC8qIERlYnVnICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZp
Z3VyYXRpb247Ci0JCQlidWlsZFNldHRpbmdzID0gewotCQkJfTsKLQkJCW5hbWUgPSBEZWJ1ZzsK
LQkJfTsKLQkJQTExNThENjUxODkyN0FGMDAwODhDMTdCIC8qIFJlbGVhc2UgKi8gPSB7Ci0JCQlp
c2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKLQkJCWJ1aWxkU2V0dGluZ3MgPSB7Ci0JCQl9Owot
CQkJbmFtZSA9IFJlbGVhc2U7Ci0JCX07Ci0JCUExMTU4RDY2MTg5MjdBRjAwMDg4QzE3QiAvKiBQ
cm9kdWN0aW9uICovID0gewotCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247Ci0JCQlidWls
ZFNldHRpbmdzID0gewotCQkJfTsKLQkJCW5hbWUgPSBQcm9kdWN0aW9uOwotCQl9OwogCQlBMTE1
OERBQzE4OTI3RTdCMDA4OEMxN0IgLyogRGVidWcgKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29u
ZmlndXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gQTE5MzE3RkQxODky
ODczODAwMUM1MkIxIC8qIER1bXBSZW5kZXJUcmVlQXBwLnhjY29uZmlnICovOwpAQCAtMTQyMywx
NiArMTMwNCw2IEBACiAJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CiAJCQlk
ZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOwogCQl9OwotCQlBMTE1OEQ2MzE4
OTI3QUYwMDA4OEMxN0IgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhMZWdhY3lU
YXJnZXQgIlBlcmwgU3VwcG9ydCIgKi8gPSB7Ci0JCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0
OwotCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKLQkJCQlBMTE1OEQ2NDE4OTI3QUYwMDA4OEMx
N0IgLyogRGVidWcgKi8sCi0JCQkJQTExNThENjUxODkyN0FGMDAwODhDMTdCIC8qIFJlbGVhc2Ug
Ki8sCi0JCQkJQTExNThENjYxODkyN0FGMDAwODhDMTdCIC8qIFByb2R1Y3Rpb24gKi8sCi0JCQkp
OwotCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOwotCQkJZGVmYXVsdENvbmZp
Z3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKLQkJfTsKIAkJQTExNThEQUIxODkyN0U3QjAwODhD
MTdCIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJEdW1w
UmVuZGVyVHJlZS5hcHAiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJ
CWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9pb3MvUGVybFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmMgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9pb3MvUGVybFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI3ZGZiNjA1OGI1M2EzYTZlNTIwMWU5MmY1MzNkNWM1YzY2
YzhiMTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydC5j
CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxzeXMv
c3lzY3RsLmg+Ci0KLWludCBwcm9jZXNzSXNDcmFzaGluZyhpbnQgcGlkKQotewotICAgIGludCBt
aWJbNF0gPSB7IENUTF9LRVJOLCBLRVJOX1BST0MsIEtFUk5fUFJPQ19QSUQsIHBpZCB9OwotICAg
IHN0cnVjdCBraW5mb19wcm9jIGluZm87Ci0gICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzaXplb2Yo
aW5mbyk7Ci0gICAgaWYgKHN5c2N0bChtaWIsIHNpemVvZihtaWIpIC8gc2l6ZW9mKG1pYlswXSks
ICZpbmZvLCAmYnVmZmVyU2l6ZSwgMCwgMCkpIHsKLSAgICAgICAgcGVycm9yKCJzeXNjdGwiKTsK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgc3RydWN0IGV4dGVybl9wcm9jIHByb2Mg
PSBpbmZvLmtwX3Byb2M7Ci0KLSAgICAvLyBUaGUgcHJvY2VzcyBpcyBjcmFzaGluZyBpZiBpdCBp
cyB3YWl0aW5nIHRvIGV4aXQsIGlzIG5vdCBhIHpvbWJpZSwgYW5kIGhhcyBhIG5vbi16ZXJvIGV4
aXQgY29kZS4KLSAgICByZXR1cm4gcHJvYy5wX3N0YXQgIT0gU1pPTUIgJiYgKHByb2MucF9mbGFn
ICYgUF9XRVhJVCkgJiYgcHJvYy5wX3hzdGF0OwotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFByZWdlbmVyYXRl
ZC5wbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRQcmVnZW5lcmF0ZWQucG0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdi
NGVhMzRlNTdmMjc1NzY0NGIxYjY1YzQyNDc5YzMxNDZmNjNiODYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1Bl
cmxTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFByZWdlbmVyYXRlZC5wbQorKysgL2Rldi9u
dWxsCkBAIC0xLDU0ICswLDAgQEAKLSMgVGhpcyBmaWxlIHdhcyBhdXRvbWF0aWNhbGx5IGdlbmVy
YXRlZCBieSBTV0lHCi1wYWNrYWdlIER1bXBSZW5kZXJUcmVlU3VwcG9ydDsKLXJlcXVpcmUgRXhw
b3J0ZXI7Ci1yZXF1aXJlIER5bmFMb2FkZXI7Ci1ASVNBID0gcXcoRXhwb3J0ZXIgRHluYUxvYWRl
cik7Ci1wYWNrYWdlIER1bXBSZW5kZXJUcmVlU3VwcG9ydGM7Ci1ib290c3RyYXAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0OwotcGFja2FnZSBEdW1wUmVuZGVyVHJlZVN1cHBvcnQ7Ci1ARVhQT1JUID0g
cXcoICk7Ci0KLSMgLS0tLS0tLS0tLSBCQVNFIE1FVEhPRFMgLS0tLS0tLS0tLS0tLQotCi1wYWNr
YWdlIER1bXBSZW5kZXJUcmVlU3VwcG9ydDsKLQotc3ViIFRJRUhBU0ggewotICAgIG15ICgkY2xh
c3NuYW1lLCRvYmopID0gQF87Ci0gICAgcmV0dXJuIGJsZXNzICRvYmosICRjbGFzc25hbWU7Ci19
Ci0KLXN1YiBDTEVBUiB7IH0KLQotc3ViIEZJUlNUS0VZIHsgfQotCi1zdWIgTkVYVEtFWSB7IH0K
LQotc3ViIEZFVENIIHsKLSAgICBteSAoJHNlbGYsJGZpZWxkKSA9IEBfOwotICAgIG15ICRtZW1i
ZXJfZnVuYyA9ICJzd2lnXyR7ZmllbGR9X2dldCI7Ci0gICAgJHNlbGYtPiRtZW1iZXJfZnVuYygp
OwotfQotCi1zdWIgU1RPUkUgewotICAgIG15ICgkc2VsZiwkZmllbGQsJG5ld3ZhbCkgPSBAXzsK
LSAgICBteSAkbWVtYmVyX2Z1bmMgPSAic3dpZ18ke2ZpZWxkfV9zZXQiOwotICAgICRzZWxmLT4k
bWVtYmVyX2Z1bmMoJG5ld3ZhbCk7Ci19Ci0KLXN1YiB0aGlzIHsKLSAgICBteSAkcHRyID0gc2hp
ZnQ7Ci0gICAgcmV0dXJuIHRpZWQoJSRwdHIpOwotfQotCi0KLSMgLS0tLS0tLSBGVU5DVElPTiBX
UkFQUEVSUyAtLS0tLS0tLQotCi1wYWNrYWdlIER1bXBSZW5kZXJUcmVlU3VwcG9ydDsKLQotKnBy
b2Nlc3NJc0NyYXNoaW5nID0gKkR1bXBSZW5kZXJUcmVlU3VwcG9ydGM6OnByb2Nlc3NJc0NyYXNo
aW5nOwotCi0jIC0tLS0tLS0gVkFSSUFCTEUgU1RVQlMgLS0tLS0tLS0KLQotcGFja2FnZSBEdW1w
UmVuZGVyVHJlZVN1cHBvcnQ7Ci0KLTE7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9pb3MvUGVybFN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0X3dyYXBQcmVnZW5lcmF0ZWQu
YyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRfd3JhcFByZWdlbmVyYXRlZC5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm
NzM0OTg5MzQyNzM2YzU4MDkyOWI0NDE4OTEyZGNjNTNlMjRlY2ZjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9Q
ZXJsU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRfd3JhcFByZWdlbmVyYXRlZC5jCisrKyAv
ZGV2L251bGwKQEAgLTEsMTE2NyArMCwwIEBACi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gKiBU
aGlzIGZpbGUgd2FzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IFNXSUcgKGh0dHA6Ly93d3cu
c3dpZy5vcmcpLgotICogVmVyc2lvbiAxLjMuMjQKLSAqIAotICogVGhpcyBmaWxlIGlzIG5vdCBp
bnRlbmRlZCB0byBiZSBlYXNpbHkgcmVhZGFibGUgYW5kIGNvbnRhaW5zIGEgbnVtYmVyIG9mIAot
ICogY29kaW5nIGNvbnZlbnRpb25zIGRlc2lnbmVkIHRvIGltcHJvdmUgcG9ydGFiaWxpdHkgYW5k
IGVmZmljaWVuY3kuIERvIG5vdCBtYWtlCi0gKiBjaGFuZ2VzIHRvIHRoaXMgZmlsZSB1bmxlc3Mg
eW91IGtub3cgd2hhdCB5b3UgYXJlIGRvaW5nLS1tb2RpZnkgdGhlIFNXSUcgCi0gKiBpbnRlcmZh
Y2UgZmlsZSBpbnN0ZWFkLiAKLSAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLQotI2lmbmRl
ZiBTV0lHX1RFTVBMQVRFX0RJU0FNQklHVUFUT1IKLSMgIGlmIGRlZmluZWQoX19TVU5QUk9fQ0Mp
IAotIyAgICBkZWZpbmUgU1dJR19URU1QTEFURV9ESVNBTUJJR1VBVE9SIHRlbXBsYXRlCi0jICBl
bHNlCi0jICAgIGRlZmluZSBTV0lHX1RFTVBMQVRFX0RJU0FNQklHVUFUT1IgCi0jICBlbmRpZgot
I2VuZGlmCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgotICogc3dpZ3J1bi5zd2cKLSAqCi0gKiAgICAgVGhp
cyBmaWxlIGNvbnRhaW5zIGdlbmVyaWMgQ0FQSSBTV0lHIHJ1bnRpbWUgc3VwcG9ydCBmb3IgcG9p
bnRlcgotICogICAgIHR5cGUgY2hlY2tpbmcuCi0gKgotICoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyog
VGhpcyBzaG91bGQgb25seSBiZSBpbmNyZW1lbnRlZCB3aGVuIGVpdGhlciB0aGUgbGF5b3V0IG9m
IHN3aWdfdHlwZV9pbmZvIGNoYW5nZXMsCi0gICBvciBmb3Igd2hhdGV2ZXIgcmVhc29uLCB0aGUg
cnVudGltZSBjaGFuZ2VzIGluY29tcGF0aWJseSAqLwotI2RlZmluZSBTV0lHX1JVTlRJTUVfVkVS
U0lPTiAiMSIKLQotLyogZGVmaW5lIFNXSUdfVFlQRV9UQUJMRV9OQU1FIGFzICJTV0lHX1RZUEVf
VEFCTEUiICovCi0jaWZkZWYgU1dJR19UWVBFX1RBQkxFCi0jZGVmaW5lIFNXSUdfUVVPVEVfU1RS
SU5HKHgpICN4Ci0jZGVmaW5lIFNXSUdfRVhQQU5EX0FORF9RVU9URV9TVFJJTkcoeCkgU1dJR19R
VU9URV9TVFJJTkcoeCkKLSNkZWZpbmUgU1dJR19UWVBFX1RBQkxFX05BTUUgU1dJR19FWFBBTkRf
QU5EX1FVT1RFX1NUUklORyhTV0lHX1RZUEVfVEFCTEUpCi0jZWxzZQotI2RlZmluZSBTV0lHX1RZ
UEVfVEFCTEVfTkFNRQotI2VuZGlmCi0KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLQotI2lmbmRlZiBT
V0lHSU5MSU5FCi0jaWYgZGVmaW5lZChfX2NwbHVzcGx1cykgfHwgKGRlZmluZWQoX19HTlVDX18p
ICYmICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykpCi0jICBkZWZpbmUgU1dJR0lOTElORSBpbmxp
bmUKLSNlbHNlCi0jICBkZWZpbmUgU1dJR0lOTElORQotI2VuZGlmCi0jZW5kaWYKLQotLyoKLSAg
WW91IGNhbiB1c2UgdGhlIFNXSUdSVU5USU1FIGFuZCBTV0lHUlVOVElNRUlOTElORSBtYWNyb3Mg
Zm9yCi0gIGNyZWF0aW5nIGEgc3RhdGljIG9yIGR5bmFtaWMgbGlicmFyeSBmcm9tIHRoZSBzd2ln
IHJ1bnRpbWUgY29kZS4KLSAgSW4gOTkuOSUgb2YgdGhlIGNhc2VzLCBzd2lnIGp1c3QgbmVlZHMg
dG8gZGVjbGFyZSB0aGVtIGFzICdzdGF0aWMnLgotICAKLSAgQnV0IG9ubHkgZG8gdGhpcyBpZiBp
cyBzdHJpY3RseSBuZWNlc3NhcnksIGllLCBpZiB5b3UgaGF2ZSBwcm9ibGVtcwotICB3aXRoIHlv
dXIgY29tcGlsZXIgb3Igc28uCi0qLwotI2lmbmRlZiBTV0lHUlVOVElNRQotI2RlZmluZSBTV0lH
UlVOVElNRSBzdGF0aWMKLSNlbmRpZgotI2lmbmRlZiBTV0lHUlVOVElNRUlOTElORQotI2RlZmlu
ZSBTV0lHUlVOVElNRUlOTElORSBTV0lHUlVOVElNRSBTV0lHSU5MSU5FCi0jZW5kaWYKLQotI2lm
ZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi10eXBlZGVmIHZvaWQgKigq
c3dpZ19jb252ZXJ0ZXJfZnVuYykodm9pZCAqKTsKLXR5cGVkZWYgc3RydWN0IHN3aWdfdHlwZV9p
bmZvICooKnN3aWdfZHljYXN0X2Z1bmMpKHZvaWQgKiopOwotCi10eXBlZGVmIHN0cnVjdCBzd2ln
X3R5cGVfaW5mbyB7Ci0gIGNvbnN0IGNoYXIgICAgICAgICAgICAgKm5hbWU7Ci0gIHN3aWdfY29u
dmVydGVyX2Z1bmMgICAgIGNvbnZlcnRlcjsKLSAgY29uc3QgY2hhciAgICAgICAgICAgICAqc3Ry
OwotICB2b2lkICAgICAgICAgICAgICAgICAgICpjbGllbnRkYXRhOwotICBzd2lnX2R5Y2FzdF9m
dW5jICAgICAgICBkY2FzdDsKLSAgc3RydWN0IHN3aWdfdHlwZV9pbmZvICAqbmV4dDsKLSAgc3Ry
dWN0IHN3aWdfdHlwZV9pbmZvICAqcHJldjsKLX0gc3dpZ190eXBlX2luZm87Ci0KLS8qIAotICBD
b21wYXJlIHR3byB0eXBlIG5hbWVzIHNraXBwaW5nIHRoZSBzcGFjZSBjaGFyYWN0ZXJzLCB0aGVy
ZWZvcmUKLSAgImNoYXIqIiA9PSAiY2hhciAqIiBhbmQgIkNsYXNzPGludD4iID09ICJDbGFzczxp
bnQgPiIsIGV0Yy4KLQotICBSZXR1cm4gMCB3aGVuIHRoZSB0d28gbmFtZSB0eXBlcyBhcmUgZXF1
aXZhbGVudCwgYXMgaW4KLSAgc3RybmNtcCwgYnV0IHNraXBwaW5nICcgJy4KLSovCi1TV0lHUlVO
VElNRSBpbnQKLVNXSUdfVHlwZU5hbWVDb21wKGNvbnN0IGNoYXIgKmYxLCBjb25zdCBjaGFyICps
MSwKLSAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmYyLCBjb25zdCBjaGFyICpsMikgewot
ICBmb3IgKDsoZjEgIT0gbDEpICYmIChmMiAhPSBsMik7ICsrZjEsICsrZjIpIHsKLSAgICB3aGls
ZSAoKCpmMSA9PSAnICcpICYmIChmMSAhPSBsMSkpICsrZjE7Ci0gICAgd2hpbGUgKCgqZjIgPT0g
JyAnKSAmJiAoZjIgIT0gbDIpKSArK2YyOwotICAgIGlmICgqZjEgIT0gKmYyKSByZXR1cm4gKmYx
IC0gKmYyOwotICB9Ci0gIHJldHVybiAobDEgLSBmMSkgLSAobDIgLSBmMik7Ci19Ci0KLS8qCi0g
IENoZWNrIHR5cGUgZXF1aXZhbGVuY2UgaW4gYSBuYW1lIGxpc3QgbGlrZSA8bmFtZTE+fDxuYW1l
Mj58Li4uCi0qLwotU1dJR1JVTlRJTUUgaW50Ci1TV0lHX1R5cGVFcXVpdihjb25zdCBjaGFyICpu
YiwgY29uc3QgY2hhciAqdGIpIHsKLSAgaW50IGVxdWl2ID0gMDsKLSAgY29uc3QgY2hhciogdGUg
PSB0YiArIHN0cmxlbih0Yik7Ci0gIGNvbnN0IGNoYXIqIG5lID0gbmI7Ci0gIHdoaWxlICghZXF1
aXYgJiYgKm5lKSB7Ci0gICAgZm9yIChuYiA9IG5lOyAqbmU7ICsrbmUpIHsKLSAgICAgIGlmICgq
bmUgPT0gJ3wnKSBicmVhazsKLSAgICB9Ci0gICAgZXF1aXYgPSBTV0lHX1R5cGVOYW1lQ29tcChu
YiwgbmUsIHRiLCB0ZSkgPT0gMDsKLSAgICBpZiAoKm5lKSArK25lOwotICB9Ci0gIHJldHVybiBl
cXVpdjsKLX0KLQotLyoKLSAgUmVnaXN0ZXIgYSB0eXBlIG1hcHBpbmcgd2l0aCB0aGUgdHlwZS1j
aGVja2luZwotKi8KLVNXSUdSVU5USU1FIHN3aWdfdHlwZV9pbmZvICoKLVNXSUdfVHlwZVJlZ2lz
dGVyVEwoc3dpZ190eXBlX2luZm8gKip0bCwgc3dpZ190eXBlX2luZm8gKnRpKSB7Ci0gIHN3aWdf
dHlwZV9pbmZvICp0YywgKmhlYWQsICpyZXQsICpuZXh0OwotICAvKiBDaGVjayB0byBzZWUgaWYg
dGhpcyB0eXBlIGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCAqLwotICB0YyA9ICp0bDsKLSAg
d2hpbGUgKHRjKSB7Ci0gICAgLyogY2hlY2sgc2ltcGxlIHR5cGUgZXF1aXZhbGVuY2UgKi8KLSAg
ICBpbnQgdHlwZWVxdWl2ID0gKHN0cmNtcCh0Yy0+bmFtZSwgdGktPm5hbWUpID09IDApOyAgIAot
ICAgIC8qIGNoZWNrIGZ1bGwgdHlwZSBlcXVpdmFsZW5jZSwgcmVzb2x2aW5nIHR5cGVkZWZzICov
Ci0gICAgaWYgKCF0eXBlZXF1aXYpIHsKLSAgICAgIC8qIG9ubHkgaWYgdGMgaXMgbm90IGEgdHlw
ZWRlZiAobm8gJ3wnIG9uIGl0KSAqLwotICAgICAgaWYgKHRjLT5zdHIgJiYgdGktPnN0ciAmJiAh
c3Ryc3RyKHRjLT5zdHIsInwiKSkgewotICAgICAgICB0eXBlZXF1aXYgPSBTV0lHX1R5cGVFcXVp
dih0aS0+c3RyLHRjLT5zdHIpOwotICAgICAgfQotICAgIH0KLSAgICBpZiAodHlwZWVxdWl2KSB7
Ci0gICAgICAvKiBBbHJlYWR5IGV4aXN0cyBpbiB0aGUgdGFibGUuICBKdXN0IGFkZCBhZGRpdGlv
bmFsIHR5cGVzIHRvIHRoZSBsaXN0ICovCi0gICAgICBpZiAodGktPmNsaWVudGRhdGEpIHRjLT5j
bGllbnRkYXRhID0gdGktPmNsaWVudGRhdGE7Ci0gICAgICBoZWFkID0gdGM7Ci0gICAgICBuZXh0
ID0gdGMtPm5leHQ7Ci0gICAgICBnb3RvIGwxOwotICAgIH0KLSAgICB0YyA9IHRjLT5wcmV2Owot
ICB9Ci0gIGhlYWQgPSB0aTsKLSAgbmV4dCA9IDA7Ci0KLSAgLyogUGxhY2UgaW4gbGlzdCAqLwot
ICB0aS0+cHJldiA9ICp0bDsKLSAgKnRsID0gdGk7Ci0KLSAgLyogQnVpbGQgbGlua2VkIGxpc3Rz
ICovCi0gIGwxOgotICByZXQgPSBoZWFkOwotICB0YyA9IHRpICsgMTsKLSAgLyogUGF0Y2ggdXAg
dGhlIHJlc3Qgb2YgdGhlIGxpbmtzICovCi0gIHdoaWxlICh0Yy0+bmFtZSkgewotICAgIGhlYWQt
Pm5leHQgPSB0YzsKLSAgICB0Yy0+cHJldiA9IGhlYWQ7Ci0gICAgaGVhZCA9IHRjOwotICAgIHRj
Kys7Ci0gIH0KLSAgaWYgKG5leHQpIG5leHQtPnByZXYgPSBoZWFkOwotICBoZWFkLT5uZXh0ID0g
bmV4dDsKLQotICByZXR1cm4gcmV0OwotfQotCi0vKgotICBDaGVjayB0aGUgdHlwZW5hbWUKLSov
Ci1TV0lHUlVOVElNRSBzd2lnX3R5cGVfaW5mbyAqCi1TV0lHX1R5cGVDaGVjayhjb25zdCBjaGFy
ICpjLCBzd2lnX3R5cGVfaW5mbyAqdHkpIHsKLSAgc3dpZ190eXBlX2luZm8gKnM7Ci0gIGlmICgh
dHkpIHJldHVybiAwOyAgICAgICAgLyogVm9pZCBwb2ludGVyICovCi0gIHMgPSB0eS0+bmV4dDsg
ICAgICAgICAgICAgLyogRmlyc3QgZWxlbWVudCBhbHdheXMganVzdCBhIG5hbWUgKi8KLSAgZG8g
ewotICAgIGlmIChzdHJjbXAocy0+bmFtZSxjKSA9PSAwKSB7Ci0gICAgICBpZiAocyA9PSB0eS0+
bmV4dCkgcmV0dXJuIHM7Ci0gICAgICAvKiBNb3ZlIHMgdG8gdGhlIHRvcCBvZiB0aGUgbGlua2Vk
IGxpc3QgKi8KLSAgICAgIHMtPnByZXYtPm5leHQgPSBzLT5uZXh0OwotICAgICAgaWYgKHMtPm5l
eHQpIHsKLSAgICAgICAgcy0+bmV4dC0+cHJldiA9IHMtPnByZXY7Ci0gICAgICB9Ci0gICAgICAv
KiBJbnNlcnQgcyBhcyBzZWNvbmQgZWxlbWVudCBpbiB0aGUgbGlzdCAqLwotICAgICAgcy0+bmV4
dCA9IHR5LT5uZXh0OwotICAgICAgaWYgKHR5LT5uZXh0KSB0eS0+bmV4dC0+cHJldiA9IHM7Ci0g
ICAgICB0eS0+bmV4dCA9IHM7Ci0gICAgICBzLT5wcmV2ID0gdHk7Ci0gICAgICByZXR1cm4gczsK
LSAgICB9Ci0gICAgcyA9IHMtPm5leHQ7Ci0gIH0gd2hpbGUgKHMgJiYgKHMgIT0gdHktPm5leHQp
KTsKLSAgcmV0dXJuIDA7Ci19Ci0KLS8qCi0gIENhc3QgYSBwb2ludGVyIHVwIGFuIGluaGVyaXRh
bmNlIGhpZXJhcmNoeQotKi8KLVNXSUdSVU5USU1FSU5MSU5FIHZvaWQgKgotU1dJR19UeXBlQ2Fz
dChzd2lnX3R5cGVfaW5mbyAqdHksIHZvaWQgKnB0cikgewotICByZXR1cm4gKCghdHkpIHx8ICgh
dHktPmNvbnZlcnRlcikpID8gcHRyIDogKCp0eS0+Y29udmVydGVyKShwdHIpOwotfQotCi0vKiAK
LSAgIER5bmFtaWMgcG9pbnRlciBjYXN0aW5nLiBEb3duIGFuIGluaGVyaXRhbmNlIGhpZXJhcmNo
eQotKi8KLVNXSUdSVU5USU1FIHN3aWdfdHlwZV9pbmZvICoKLVNXSUdfVHlwZUR5bmFtaWNDYXN0
KHN3aWdfdHlwZV9pbmZvICp0eSwgdm9pZCAqKnB0cikgewotICBzd2lnX3R5cGVfaW5mbyAqbGFz
dHR5ID0gdHk7Ci0gIGlmICghdHkgfHwgIXR5LT5kY2FzdCkgcmV0dXJuIHR5OwotICB3aGlsZSAo
dHkgJiYgKHR5LT5kY2FzdCkpIHsKLSAgICB0eSA9ICgqdHktPmRjYXN0KShwdHIpOwotICAgIGlm
ICh0eSkgbGFzdHR5ID0gdHk7Ci0gIH0KLSAgcmV0dXJuIGxhc3R0eTsKLX0KLQotLyoKLSAgUmV0
dXJuIHRoZSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHR5cGUKLSovCi1TV0lHUlVOVElNRUlO
TElORSBjb25zdCBjaGFyICoKLVNXSUdfVHlwZU5hbWUoY29uc3Qgc3dpZ190eXBlX2luZm8gKnR5
KSB7Ci0gIHJldHVybiB0eS0+bmFtZTsKLX0KLQotLyoKLSAgUmV0dXJuIHRoZSBwcmV0dHkgbmFt
ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyB0eXBlLAotICB0aGF0IGlzIGFuIHVubWFuZ2xlZCB0eXBl
IG5hbWUgaW4gYSBmb3JtIHByZXNlbnRhYmxlIHRvIHRoZSB1c2VyLgotKi8KLVNXSUdSVU5USU1F
IGNvbnN0IGNoYXIgKgotU1dJR19UeXBlUHJldHR5TmFtZShjb25zdCBzd2lnX3R5cGVfaW5mbyAq
dHlwZSkgewotICAvKiBUaGUgInN0ciIgZmllbGQgY29udGFpbnMgdGhlIGVxdWl2YWxlbnQgcHJl
dHR5IG5hbWVzIG9mIHRoZQotICAgICB0eXBlLCBzZXBhcmF0ZWQgYnkgdmVydGljYWwtYmFyIGNo
YXJhY3RlcnMuICBXZSBjaG9vc2UKLSAgICAgdG8gcHJpbnQgdGhlIGxhc3QgbmFtZSwgYXMgaXQg
aXMgb2Z0ZW4gKD8pIHRoZSBtb3N0Ci0gICAgIHNwZWNpZmljLiAqLwotICBpZiAodHlwZS0+c3Ry
ICE9IE5VTEwpIHsKLSAgICBjb25zdCBjaGFyICpsYXN0X25hbWUgPSB0eXBlLT5zdHI7Ci0gICAg
Y29uc3QgY2hhciAqczsKLSAgICBmb3IgKHMgPSB0eXBlLT5zdHI7ICpzOyBzKyspCi0gICAgICBp
ZiAoKnMgPT0gJ3wnKSBsYXN0X25hbWUgPSBzKzE7Ci0gICAgcmV0dXJuIGxhc3RfbmFtZTsKLSAg
fQotICBlbHNlCi0gICAgcmV0dXJuIHR5cGUtPm5hbWU7Ci19Ci0KLS8qCi0gIFNlYXJjaCBmb3Ig
YSBzd2lnX3R5cGVfaW5mbyBzdHJ1Y3R1cmUKLSovCi1TV0lHUlVOVElNRSBzd2lnX3R5cGVfaW5m
byAqCi1TV0lHX1R5cGVRdWVyeVRMKHN3aWdfdHlwZV9pbmZvICp0bCwgY29uc3QgY2hhciAqbmFt
ZSkgewotICBzd2lnX3R5cGVfaW5mbyAqdHkgPSB0bDsKLSAgd2hpbGUgKHR5KSB7Ci0gICAgaWYg
KHR5LT5zdHIgJiYgKFNXSUdfVHlwZUVxdWl2KHR5LT5zdHIsbmFtZSkpKSByZXR1cm4gdHk7Ci0g
ICAgaWYgKHR5LT5uYW1lICYmIChzdHJjbXAobmFtZSx0eS0+bmFtZSkgPT0gMCkpIHJldHVybiB0
eTsKLSAgICB0eSA9IHR5LT5wcmV2OwotICB9Ci0gIHJldHVybiAwOwotfQotCi0vKiAKLSAgIFNl
dCB0aGUgY2xpZW50ZGF0YSBmaWVsZCBmb3IgYSB0eXBlCi0qLwotU1dJR1JVTlRJTUUgdm9pZAot
U1dJR19UeXBlQ2xpZW50RGF0YVRMKHN3aWdfdHlwZV9pbmZvICp0bCwgc3dpZ190eXBlX2luZm8g
KnRpLCB2b2lkICpjbGllbnRkYXRhKSB7Ci0gIHN3aWdfdHlwZV9pbmZvICp0YywgKmVxdWl2Owot
ICBpZiAodGktPmNsaWVudGRhdGEpIHJldHVybjsKLSAgLyogaWYgKHRpLT5jbGllbnRkYXRhID09
IGNsaWVudGRhdGEpIHJldHVybjsgKi8KLSAgdGktPmNsaWVudGRhdGEgPSBjbGllbnRkYXRhOwot
ICBlcXVpdiA9IHRpLT5uZXh0OwotICB3aGlsZSAoZXF1aXYpIHsKLSAgICBpZiAoIWVxdWl2LT5j
b252ZXJ0ZXIpIHsKLSAgICAgIHRjID0gdGw7Ci0gICAgICB3aGlsZSAodGMpIHsKLSAgICAgICAg
aWYgKChzdHJjbXAodGMtPm5hbWUsIGVxdWl2LT5uYW1lKSA9PSAwKSkKLSAgICAgICAgICBTV0lH
X1R5cGVDbGllbnREYXRhVEwodGwsdGMsY2xpZW50ZGF0YSk7Ci0gICAgICAgIHRjID0gdGMtPnBy
ZXY7Ci0gICAgICB9Ci0gICAgfQotICAgIGVxdWl2ID0gZXF1aXYtPm5leHQ7Ci0gIH0KLX0KLQot
LyogCi0gICBQYWNrIGJpbmFyeSBkYXRhIGludG8gYSBzdHJpbmcKLSovCi1TV0lHUlVOVElNRSBj
aGFyICoKLVNXSUdfUGFja0RhdGEoY2hhciAqYywgdm9pZCAqcHRyLCBzaXplX3Qgc3opIHsKLSAg
c3RhdGljIGNoYXIgaGV4WzE3XSA9ICIwMTIzNDU2Nzg5YWJjZGVmIjsKLSAgdW5zaWduZWQgY2hh
ciAqdSA9ICh1bnNpZ25lZCBjaGFyICopIHB0cjsKLSAgY29uc3QgdW5zaWduZWQgY2hhciAqZXUg
PSAgdSArIHN6OwotICByZWdpc3RlciB1bnNpZ25lZCBjaGFyIHV1OwotICBmb3IgKDsgdSAhPSBl
dTsgKyt1KSB7Ci0gICAgdXUgPSAqdTsKLSAgICAqKGMrKykgPSBoZXhbKHV1ICYgMHhmMCkgPj4g
NF07Ci0gICAgKihjKyspID0gaGV4W3V1ICYgMHhmXTsKLSAgfQotICByZXR1cm4gYzsKLX0KLQot
LyogCi0gICBVbnBhY2sgYmluYXJ5IGRhdGEgZnJvbSBhIHN0cmluZwotKi8KLVNXSUdSVU5USU1F
IGNvbnN0IGNoYXIgKgotU1dJR19VbnBhY2tEYXRhKGNvbnN0IGNoYXIgKmMsIHZvaWQgKnB0ciwg
c2l6ZV90IHN6KSB7Ci0gIHJlZ2lzdGVyIHVuc2lnbmVkIGNoYXIgKnUgPSAodW5zaWduZWQgY2hh
ciAqKSBwdHI7Ci0gIHJlZ2lzdGVyIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmV1ID0gIHUgKyBzejsK
LSAgZm9yICg7IHUgIT0gZXU7ICsrdSkgewotICAgIHJlZ2lzdGVyIGludCBkID0gKihjKyspOwot
ICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGNoYXIgdXUgPSAwOwotICAgIGlmICgoZCA+PSAnMCcpICYm
IChkIDw9ICc5JykpCi0gICAgICB1dSA9ICgoZCAtICcwJykgPDwgNCk7Ci0gICAgZWxzZSBpZiAo
KGQgPj0gJ2EnKSAmJiAoZCA8PSAnZicpKQotICAgICAgdXUgPSAoKGQgLSAoJ2EnLTEwKSkgPDwg
NCk7Ci0gICAgZWxzZSAKLSAgICAgIHJldHVybiAoY2hhciAqKSAwOwotICAgIGQgPSAqKGMrKyk7
Ci0gICAgaWYgKChkID49ICcwJykgJiYgKGQgPD0gJzknKSkKLSAgICAgIHV1IHw9IChkIC0gJzAn
KTsKLSAgICBlbHNlIGlmICgoZCA+PSAnYScpICYmIChkIDw9ICdmJykpCi0gICAgICB1dSB8PSAo
ZCAtICgnYSctMTApKTsKLSAgICBlbHNlIAotICAgICAgcmV0dXJuIChjaGFyICopIDA7Ci0gICAg
KnUgPSB1dTsKLSAgfQotICByZXR1cm4gYzsKLX0KLQotLyoKLSAgVGhpcyBmdW5jdGlvbiB3aWxs
IHByb3BhZ2F0ZSB0aGUgY2xpZW50ZGF0YSBmaWVsZCBvZiB0eXBlIHRvIGFueSBuZXcKLSAgc3dp
Z190eXBlX2luZm8gc3RydWN0dXJlcyB0aGF0IGhhdmUgYmVlbiBhZGRlZCBpbnRvIHRoZSBsaXN0
IG9mCi0gIGVxdWl2YWxlbnQgdHlwZXMuICBJdCBpcyBsaWtlIGNhbGxpbmcgU1dJR19UeXBlQ2xp
ZW50RGF0YSh0eXBlLAotICBjbGllbnRkYXRhKSBhIHNlY29uZCB0aW1lLgotKi8KLVNXSUdSVU5U
SU1FIHZvaWQKLVNXSUdfUHJvcGFnYXRlQ2xpZW50RGF0YVRMKHN3aWdfdHlwZV9pbmZvICp0bCwg
c3dpZ190eXBlX2luZm8gKnR5cGUpIHsKLSAgc3dpZ190eXBlX2luZm8gKmVxdWl2ID0gdHlwZS0+
bmV4dDsKLSAgc3dpZ190eXBlX2luZm8gKnRjOwotICBpZiAoIXR5cGUtPmNsaWVudGRhdGEpIHJl
dHVybjsKLSAgd2hpbGUgKGVxdWl2KSB7Ci0gICAgaWYgKCFlcXVpdi0+Y29udmVydGVyKSB7Ci0g
ICAgICB0YyA9IHRsOwotICAgICAgd2hpbGUgKHRjKSB7Ci0gICAgICAgIGlmICgoc3RyY21wKHRj
LT5uYW1lLCBlcXVpdi0+bmFtZSkgPT0gMCkgJiYgIXRjLT5jbGllbnRkYXRhKQotICAgICAgICAg
IFNXSUdfVHlwZUNsaWVudERhdGFUTCh0bCx0YywgdHlwZS0+Y2xpZW50ZGF0YSk7Ci0gICAgICAg
IHRjID0gdGMtPnByZXY7Ci0gICAgICB9Ci0gICAgfQotICAgIGVxdWl2ID0gZXF1aXYtPm5leHQ7
Ci0gIH0KLX0KLQotLyogCi0gICBQYWNrICd2b2lkIConIGludG8gYSBzdHJpbmcgYnVmZmVyLgot
Ki8KLVNXSUdSVU5USU1FIGNoYXIgKgotU1dJR19QYWNrVm9pZFB0cihjaGFyICpidWZmLCB2b2lk
ICpwdHIsIGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBic3opIHsKLSAgY2hhciAqciA9IGJ1ZmY7
Ci0gIGlmICgoMipzaXplb2Yodm9pZCAqKSArIDIpID4gYnN6KSByZXR1cm4gMDsKLSAgKihyKysp
ID0gJ18nOwotICByID0gU1dJR19QYWNrRGF0YShyLCZwdHIsc2l6ZW9mKHZvaWQgKikpOwotICBp
ZiAoc3RybGVuKG5hbWUpICsgMSA+IChic3ogLSAociAtIGJ1ZmYpKSkgcmV0dXJuIDA7Ci0gIHN0
cmNweShyLG5hbWUpOwotICByZXR1cm4gYnVmZjsKLX0KLQotU1dJR1JVTlRJTUUgY29uc3QgY2hh
ciAqCi1TV0lHX1VucGFja1ZvaWRQdHIoY29uc3QgY2hhciAqYywgdm9pZCAqKnB0ciwgY29uc3Qg
Y2hhciAqbmFtZSkgewotICBpZiAoKmMgIT0gJ18nKSB7Ci0gICAgaWYgKHN0cmNtcChjLCJOVUxM
IikgPT0gMCkgewotICAgICAgKnB0ciA9ICh2b2lkICopIDA7Ci0gICAgICByZXR1cm4gbmFtZTsK
LSAgICB9IGVsc2UgewotICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICB9Ci0gIHJldHVybiBTV0lH
X1VucGFja0RhdGEoKytjLHB0cixzaXplb2Yodm9pZCAqKSk7Ci19Ci0KLVNXSUdSVU5USU1FIGNo
YXIgKgotU1dJR19QYWNrRGF0YU5hbWUoY2hhciAqYnVmZiwgdm9pZCAqcHRyLCBzaXplX3Qgc3os
IGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBic3opIHsKLSAgY2hhciAqciA9IGJ1ZmY7Ci0gIHNp
emVfdCBsbmFtZSA9IChuYW1lID8gc3RybGVuKG5hbWUpIDogMCk7Ci0gIGlmICgoMipzeiArIDIg
KyBsbmFtZSkgPiBic3opIHJldHVybiAwOwotICAqKHIrKykgPSAnXyc7Ci0gIHIgPSBTV0lHX1Bh
Y2tEYXRhKHIscHRyLHN6KTsKLSAgaWYgKGxuYW1lKSB7Ci0gICAgc3RybmNweShyLG5hbWUsbG5h
bWUrMSk7Ci0gIH0gZWxzZSB7Ci0gICAgKnIgPSAwOwotICB9Ci0gIHJldHVybiBidWZmOwotfQot
Ci1TV0lHUlVOVElNRSBjb25zdCBjaGFyICoKLVNXSUdfVW5wYWNrRGF0YU5hbWUoY29uc3QgY2hh
ciAqYywgdm9pZCAqcHRyLCBzaXplX3Qgc3osIGNvbnN0IGNoYXIgKm5hbWUpIHsKLSAgaWYgKCpj
ICE9ICdfJykgewotICAgIGlmIChzdHJjbXAoYywiTlVMTCIpID09IDApIHsKLSAgICAgIG1lbXNl
dChwdHIsMCxzeik7Ci0gICAgICByZXR1cm4gbmFtZTsKLSAgICB9IGVsc2UgewotICAgICAgcmV0
dXJuIDA7Ci0gICAgfQotICB9Ci0gIHJldHVybiBTV0lHX1VucGFja0RhdGEoKytjLHB0cixzeik7
Ci19Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLS8qKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgot
ICogY29tbW9uLnN3ZwotICoKLSAqICAgICBUaGlzIGZpbGUgY29udGFpbnMgZ2VuZXJpYyBTV0lH
IHJ1bnRpbWUgc3VwcG9ydCBmb3IgcG9pbnRlcgotICogICAgIHR5cGUgY2hlY2tpbmcgYXMgd2Vs
bCBhcyBhIGZldyBjb21tb25seSB1c2VkIG1hY3JvcyB0byBjb250cm9sCi0gKiAgICAgZXh0ZXJu
YWwgbGlua2FnZS4KLSAqCi0gKiBBdXRob3IgOiBEYXZpZCBCZWF6bGV5IChiZWF6bGV5QGNzLnVj
aGljYWdvLmVkdSkKLSAqCi0gKiBDb3B5cmlnaHQgKGMpIDE5OTktMjAwMCwgVGhlIFVuaXZlcnNp
dHkgb2YgQ2hpY2FnbwotICogCi0gKiBUaGlzIGZpbGUgbWF5IGJlIGZyZWVseSByZWRpc3RyaWJ1
dGVkIHdpdGhvdXQgbGljZW5zZSBvciBmZWUgcHJvdmlkZWQKLSAqIHRoaXMgY29weXJpZ2h0IG1l
c3NhZ2UgcmVtYWlucyBpbnRhY3QuCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0KLSNpZiBkZWZpbmVk
KF9XSU4zMikgfHwgZGVmaW5lZChfX1dJTjMyX18pIHx8IGRlZmluZWQoX19DWUdXSU5fXykKLSMg
IGlmICFkZWZpbmVkKFNUQVRJQ19MSU5LRUQpCi0jICAgIGRlZmluZSBTV0lHRVhQT1JUKGEpIF9f
ZGVjbHNwZWMoZGxsZXhwb3J0KSBhCi0jICBlbHNlCi0jICAgIGRlZmluZSBTV0lHRVhQT1JUKGEp
IGEKLSMgIGVuZGlmCi0jZWxzZQotIyAgZGVmaW5lIFNXSUdFWFBPUlQoYSkgYQotI2VuZGlmCi0K
LSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotCi0vKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKi8KLQotCi0vKiBUaGUgc3RhdGljIHR5cGUgaW5mbyBsaXN0ICovCi0KLXN0YXRpYyBz
d2lnX3R5cGVfaW5mbyAqc3dpZ190eXBlX2xpc3QgPSAwOwotc3RhdGljIHN3aWdfdHlwZV9pbmZv
ICoqc3dpZ190eXBlX2xpc3RfaGFuZGxlID0gJnN3aWdfdHlwZV9saXN0OwotICAKLQotLyogUmVn
aXN0ZXIgYSB0eXBlIG1hcHBpbmcgd2l0aCB0aGUgdHlwZS1jaGVja2luZyAqLwotc3RhdGljIHN3
aWdfdHlwZV9pbmZvICoKLVNXSUdfVHlwZVJlZ2lzdGVyKHN3aWdfdHlwZV9pbmZvICp0aSkgewot
ICByZXR1cm4gU1dJR19UeXBlUmVnaXN0ZXJUTChzd2lnX3R5cGVfbGlzdF9oYW5kbGUsIHRpKTsK
LX0KLQotLyogU2VhcmNoIGZvciBhIHN3aWdfdHlwZV9pbmZvIHN0cnVjdHVyZSAqLwotc3RhdGlj
IHN3aWdfdHlwZV9pbmZvICoKLVNXSUdfVHlwZVF1ZXJ5KGNvbnN0IGNoYXIgKm5hbWUpIHsKLSAg
cmV0dXJuIFNXSUdfVHlwZVF1ZXJ5VEwoKnN3aWdfdHlwZV9saXN0X2hhbmRsZSwgbmFtZSk7Ci19
Ci0KLS8qIFNldCB0aGUgY2xpZW50ZGF0YSBmaWVsZCBmb3IgYSB0eXBlICovCi1zdGF0aWMgdm9p
ZAotU1dJR19UeXBlQ2xpZW50RGF0YShzd2lnX3R5cGVfaW5mbyAqdGksIHZvaWQgKmNsaWVudGRh
dGEpIHsKLSAgU1dJR19UeXBlQ2xpZW50RGF0YVRMKCpzd2lnX3R5cGVfbGlzdF9oYW5kbGUsIHRp
LCBjbGllbnRkYXRhKTsKLX0KLQotLyogVGhpcyBmdW5jdGlvbiB3aWxsIHByb3BhZ2F0ZSB0aGUg
Y2xpZW50ZGF0YSBmaWVsZCBvZiB0eXBlIHRvCi0qIGFueSBuZXcgc3dpZ190eXBlX2luZm8gc3Ry
dWN0dXJlcyB0aGF0IGhhdmUgYmVlbiBhZGRlZCBpbnRvIHRoZSBsaXN0Ci0qIG9mIGVxdWl2YWxl
bnQgdHlwZXMuICBJdCBpcyBsaWtlIGNhbGxpbmcKLSogU1dJR19UeXBlQ2xpZW50RGF0YSh0eXBl
LCBjbGllbnRkYXRhKSBhIHNlY29uZCB0aW1lLgotKi8KLXN0YXRpYyB2b2lkCi1TV0lHX1Byb3Bh
Z2F0ZUNsaWVudERhdGEoc3dpZ190eXBlX2luZm8gKnR5cGUpIHsKLSAgU1dJR19Qcm9wYWdhdGVD
bGllbnREYXRhVEwoKnN3aWdfdHlwZV9saXN0X2hhbmRsZSwgdHlwZSk7Ci19Ci0KLSNpZmRlZiBf
X2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLSotIGMgLSotCi0gKiBw
ZXJsNS5zd2cKLSAqCi0gKiBQZXJsNSBydW50aW1lIGxpYnJhcnkKLSAqICRIZWFkZXI6IC9jdnNy
b290L3N3aWcvU1dJRy9MaWIvcGVybDUvcGVybHJ1bi5zd2csdiAxLjIwIDIwMDQvMTEvMjkgMjM6
MTM6NTcgd3V6emViIEV4cCAkCi0gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0jZGVmaW5l
IFNXSUdQRVJMCi0jZGVmaW5lIFNXSUdQRVJMNQotI2lmZGVmIF9fY3BsdXNwbHVzCi0vKiBOZWVk
ZWQgb24gc29tZSB3aW5kb3dzIG1hY2hpbmVzLS0tc2luY2UgTVMgcGxheXMgZnVubnkgZ2FtZXMg
d2l0aCB0aGUgaGVhZGVyIGZpbGVzIHVuZGVyIEMrKyAqLwotI2luY2x1ZGUgPG1hdGguaD4KLSNp
bmNsdWRlIDxzdGRsaWIuaD4KLWV4dGVybiAiQyIgewotI2VuZGlmCi0jaW5jbHVkZSAiRVhURVJO
LmgiCi0jaW5jbHVkZSAicGVybC5oIgotI2luY2x1ZGUgIlhTVUIuaCIKLQotLyogR2V0IHJpZCBv
ZiBmcmVlIGFuZCBtYWxsb2MgZGVmaW5lZCBieSBwZXJsICovCi0jdW5kZWYgZnJlZQotI3VuZGVm
IG1hbGxvYwotCi0jaWZuZGVmIHBUSFhfCi0jZGVmaW5lIHBUSFhfCi0jZW5kaWYKLQotI2luY2x1
ZGUgPHN0cmluZy5oPgotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotLyogTWFjcm8g
dG8gY2FsbCBhbiBYUyBmdW5jdGlvbiAqLwotCi0jaWZkZWYgUEVSTF9PQkpFQ1QgCi0jICBkZWZp
bmUgU1dJR19DQUxMWFMoX25hbWUpIF9uYW1lKGN2LHBQZXJsKSAKLSNlbHNlIAotIyAgaWZuZGVm
IE1VTFRJUExJQ0lUWSAKLSMgICAgZGVmaW5lIFNXSUdfQ0FMTFhTKF9uYW1lKSBfbmFtZShjdikg
Ci0jICBlbHNlIAotIyAgICBkZWZpbmUgU1dJR19DQUxMWFMoX25hbWUpIF9uYW1lKFBFUkxfR0VU
X1RIWCwgY3YpIAotIyAgZW5kaWYgCi0jZW5kaWYgCi0KLS8qIENvbnRyYWN0IHN1cHBvcnQgKi8K
LQotI2RlZmluZSBTV0lHX2NvbnRyYWN0X2Fzc2VydChleHByLG1zZykgaWYgKCEoZXhwcikpIHsg
U1dJR19jcm9hayhtc2cpOyB9IGVsc2UKLQotLyogTm90ZTogU3dpZ01hZ2ljRnVuY0hhY2sgaXMg
YSB0eXBlZGVmIHVzZWQgdG8gZ2V0IHRoZSBDKysgY29tcGlsZXIgdG8ganVzdCBzaHV0IHVwIGFs
cmVhZHkgKi8KLQotI2lmZGVmIFBFUkxfT0JKRUNUCi0jZGVmaW5lIE1BR0lDX1BQRVJMICBDUGVy
bE9iaiAqcFBlcmwgPSAoQ1BlcmxPYmogKikgdGhpczsKLXR5cGVkZWYgaW50IChDUGVybE9iajo6
KlN3aWdNYWdpY0Z1bmMpKFNWICosIE1BR0lDICopOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4
dGVybiAiQyIgewotI2VuZGlmCi10eXBlZGVmIGludCAoQ1BlcmxPYmo6OipTd2lnTWFnaWNGdW5j
SGFjaykoU1YgKiwgTUFHSUMgKik7Ci0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0j
ZGVmaW5lIFNXSUdfTUFHSUMoYSxiKSAoU1YgKmEsIE1BR0lDICpiKQotI2RlZmluZSBTV0lHQ0xB
U1NfU1RBVElDCi0jZWxzZQotI2RlZmluZSBNQUdJQ19QUEVSTAotI2RlZmluZSBTV0lHQ0xBU1Nf
U1RBVElDIHN0YXRpYwotI2lmbmRlZiBNVUxUSVBMSUNJVFkKLSNkZWZpbmUgU1dJR19NQUdJQyhh
LGIpIChTViAqYSwgTUFHSUMgKmIpCi10eXBlZGVmIGludCAoKlN3aWdNYWdpY0Z1bmMpKFNWICos
IE1BR0lDICopOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi10
eXBlZGVmIGludCAoKlN3aWdNYWdpY0Z1bmNIYWNrKShTViAqLCBNQUdJQyAqKTsKLSNpZmRlZiBf
X2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLQotI2Vsc2UKLSNkZWZpbmUgU1dJR19NQUdJQyhhLGIp
IChzdHJ1Y3QgaW50ZXJwcmV0ZXIgKmludGVycCwgU1YgKmEsIE1BR0lDICpiKQotdHlwZWRlZiBp
bnQgKCpTd2lnTWFnaWNGdW5jKShzdHJ1Y3QgaW50ZXJwcmV0ZXIgKiwgU1YgKiwgTUFHSUMgKik7
Ci0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi10eXBlZGVmIGludCAo
KlN3aWdNYWdpY0Z1bmNIYWNrKShzdHJ1Y3QgaW50ZXJwcmV0ZXIgKiwgU1YgKiwgTUFHSUMgKik7
Ci0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYKLSNlbmRpZgotCi0jaWYg
ZGVmaW5lZChXSU4zMikgJiYgZGVmaW5lZChQRVJMX09CSkVDVCkgJiYgIWRlZmluZWQoUGVybElP
X2V4cG9ydEZJTEUpCi0jZGVmaW5lIFBlcmxJT19leHBvcnRGSUxFKGZoLGZsKSAoRklMRSopKGZo
KQotI2VuZGlmCi0KLS8qIE1vZGlmaWNhdGlvbnMgZm9yIG5ld2VyIFBlcmwgNS4wMDUgcmVsZWFz
ZXMgKi8KLQotI2lmICFkZWZpbmVkKFBFUkxfUkVWSVNJT04pIHx8ICgoUEVSTF9SRVZJU0lPTiA+
PSA1KSAmJiAoKFBFUkxfVkVSU0lPTiA8IDUpIHx8ICgoUEVSTF9WRVJTSU9OID09IDUpICYmIChQ
RVJMX1NVQlZFUlNJT04gPCA1MCkpKSkKLSMgIGlmbmRlZiBQTF9zdl95ZXMKLSMgICAgZGVmaW5l
IFBMX3N2X3llcyBzdl95ZXMKLSMgIGVuZGlmCi0jICBpZm5kZWYgUExfc3ZfdW5kZWYKLSMgICAg
ZGVmaW5lIFBMX3N2X3VuZGVmIHN2X3VuZGVmCi0jICBlbmRpZgotIyAgaWZuZGVmIFBMX25hCi0j
ICAgIGRlZmluZSBQTF9uYSBuYQotIyAgZW5kaWYKLSNlbmRpZgotCi0jaW5jbHVkZSA8c3RkbGli
Lmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotI2RlZmlu
ZSBTV0lHX09XTkVSIDEKLSNkZWZpbmUgU1dJR19TSEFET1cgMgotCi0vKiBDb21tb24gU1dJRyBB
UEkgKi8KLQotI2lmZGVmIFBFUkxfT0JKRUNUCi0jICBkZWZpbmUgU1dJR19Db252ZXJ0UHRyKG9i
aiwgcHAsIHR5cGUsIGZsYWdzKSBcCi0gICAgIFNXSUdfUGVybF9Db252ZXJ0UHRyKHBQZXJsLCBv
YmosIHBwLCB0eXBlLCBmbGFncykKLSMgIGRlZmluZSBTV0lHX05ld1BvaW50ZXJPYmoocCwgdHlw
ZSwgZmxhZ3MpIFwKLSAgICAgU1dJR19QZXJsX05ld1BvaW50ZXJPYmoocFBlcmwsIHAsIHR5cGUs
IGZsYWdzKQotIyAgZGVmaW5lIFNXSUdfTWFrZVBhY2tlZE9iaihzdiwgcCwgcywgdHlwZSkgXAot
ICAgICBTV0lHX1BlcmxfTWFrZVBhY2tlZE9iaihwUGVybCwgc3YsIHAsIHMsIHR5cGUpCi0jICBk
ZWZpbmUgU1dJR19Db252ZXJ0UGFja2VkKG9iaiwgcCwgcywgdHlwZSwgZmxhZ3MpIFwKLSAgICAg
U1dJR19QZXJsX0NvbnZlcnRQYWNrZWQocFBlcmwsIG9iaiwgcCwgcywgdHlwZSwgZmxhZ3MpCi0K
LSNlbHNlCi0jICBkZWZpbmUgU1dJR19Db252ZXJ0UHRyKG9iaiwgcHAsIHR5cGUsIGZsYWdzKSBc
Ci0gICAgIFNXSUdfUGVybF9Db252ZXJ0UHRyKG9iaiwgcHAsIHR5cGUsIGZsYWdzKQotIyAgZGVm
aW5lIFNXSUdfTmV3UG9pbnRlck9iaihwLCB0eXBlLCBmbGFncykgXAotICAgICBTV0lHX1Blcmxf
TmV3UG9pbnRlck9iaihwLCB0eXBlLCBmbGFncykKLSMgIGRlZmluZSBTV0lHX01ha2VQYWNrZWRP
Ymooc3YsIHAsIHMsIHR5cGUpIFwKLSAgICAgU1dJR19QZXJsX01ha2VQYWNrZWRPYmooc3YsIHAs
IHMsIHR5cGUgKQotIyAgZGVmaW5lIFNXSUdfQ29udmVydFBhY2tlZChvYmosIHAsIHMsIHR5cGUs
IGZsYWdzKSBcCi0gICAgIFNXSUdfUGVybF9Db252ZXJ0UGFja2VkKG9iaiwgcCwgcywgdHlwZSwg
ZmxhZ3MpCi0jZW5kaWYKLQotLyogUGVybC1zcGVjaWZpYyBBUEkgKi8KLSNpZmRlZiBQRVJMX09C
SkVDVAotIyAgZGVmaW5lIFNXSUdfTWFrZVB0cihzdiwgcHRyLCB0eXBlLCBmbGFncykgXAotICAg
ICBTV0lHX1BlcmxfTWFrZVB0cihwUGVybCwgc3YsIHB0ciwgdHlwZSwgZmxhZ3MpCi0jICBkZWZp
bmUgU1dJR19TZXRFcnJvcihzdHIpIFwKLSAgICAgU1dJR19QZXJsX1NldEVycm9yKHBQZXJsLCBz
dHIpCi0jZWxzZQotIyAgZGVmaW5lIFNXSUdfTWFrZVB0cihzdiwgcHRyLCB0eXBlLCBmbGFncykg
XAotICAgICBTV0lHX1BlcmxfTWFrZVB0cihzdiwgcHRyLCB0eXBlLCBmbGFncykKLSMgIGRlZmlu
ZSBTV0lHX1NldEVycm9yKHN0cikgXAotICAgICBTV0lHX1BlcmxfU2V0RXJyb3Ioc3RyKQotIyAg
ZGVmaW5lIFNXSUdfU2V0RXJyb3JTVihzdHIpIFwKLSAgICAgU1dJR19QZXJsX1NldEVycm9yU1Yo
c3RyKQotI2VuZGlmCi0KLSNkZWZpbmUgU1dJR19TZXRFcnJvcmYgU1dJR19QZXJsX1NldEVycm9y
ZgotCi0KLSNpZmRlZiBQRVJMX09CSkVDVAotIyAgZGVmaW5lIFNXSUdfTUFZQkVfUEVSTF9PQkpF
Q1QgQ1BlcmxPYmogKnBQZXJsLAotI2Vsc2UKLSMgIGRlZmluZSBTV0lHX01BWUJFX1BFUkxfT0JK
RUNUCi0jZW5kaWYKLQotc3RhdGljIHN3aWdfdHlwZV9pbmZvICoqCi1TV0lHX1BlcmxfR2V0VHlw
ZUxpc3RIYW5kbGUoKSB7Ci0gIHN0YXRpYyB2b2lkICp0eXBlX3BvaW50ZXIgPSAodm9pZCAqKTA7
Ci0gIFNWICpwb2ludGVyOwotCi0gIC8qIGZpcnN0IGNoZWNrIGlmIHBvaW50ZXIgYWxyZWFkeSBj
cmVhdGVkICovCi0gIGlmICghdHlwZV9wb2ludGVyKSB7Ci0gICAgcG9pbnRlciA9IGdldF9zdigi
c3dpZ19ydW50aW1lX2RhdGE6OnR5cGVfcG9pbnRlciIgU1dJR19SVU5USU1FX1ZFUlNJT04gU1dJ
R19UWVBFX1RBQkxFX05BTUUsIEZBTFNFKTsKLSAgICBpZiAocG9pbnRlciAmJiBTdk9LKHBvaW50
ZXIpKSB7Ci0gICAgICB0eXBlX3BvaW50ZXIgPSBJTlQyUFRSKHN3aWdfdHlwZV9pbmZvICoqLCBT
dklWKHBvaW50ZXIpKTsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gKHN3aWdfdHlwZV9pbmZvICoq
KSB0eXBlX3BvaW50ZXI7Ci19Ci0KLS8qCi0gIFNlYXJjaCBmb3IgYSBzd2lnX3R5cGVfaW5mbyBz
dHJ1Y3R1cmUKLSAqLwotU1dJR1JVTlRJTUVJTkxJTkUgc3dpZ190eXBlX2luZm8gKgotU1dJR19Q
ZXJsX0dldFR5cGVMaXN0KCkgewotICBzd2lnX3R5cGVfaW5mbyAqKnRsaCA9IFNXSUdfUGVybF9H
ZXRUeXBlTGlzdEhhbmRsZSgpOwotICByZXR1cm4gdGxoID8gKnRsaCA6IChzd2lnX3R5cGVfaW5m
byopMDsKLX0KLQotI2RlZmluZSBTV0lHX1J1bnRpbWVfR2V0VHlwZUxpc3QgU1dJR19QZXJsX0dl
dFR5cGVMaXN0IAotCi1zdGF0aWMgc3dpZ190eXBlX2luZm8gKgotU1dJR19QZXJsX1R5cGVDaGVj
a1JWKFNXSUdfTUFZQkVfUEVSTF9PQkpFQ1QgU1YgKnJ2LCBzd2lnX3R5cGVfaW5mbyAqdHkpIHsK
LSAgc3dpZ190eXBlX2luZm8gKnM7Ci0gIGlmICghdHkpIHJldHVybiAwOyAgICAgICAgLyogVm9p
ZCBwb2ludGVyICovCi0gIHMgPSB0eS0+bmV4dDsgICAgICAgICAgICAgLyogRmlyc3QgZWxlbWVu
dCBhbHdheXMganVzdCBhIG5hbWUgKi8KLSAgZG8gewotICAgIGlmIChzdl9kZXJpdmVkX2Zyb20o
cnYsIChjaGFyICopIHMtPm5hbWUpKSB7Ci0gICAgICBpZiAocyA9PSB0eS0+bmV4dCkgcmV0dXJu
IHM7Ci0gICAgICAvKiBNb3ZlIHMgdG8gdGhlIHRvcCBvZiB0aGUgbGlua2VkIGxpc3QgKi8KLSAg
ICAgIHMtPnByZXYtPm5leHQgPSBzLT5uZXh0OwotICAgICAgaWYgKHMtPm5leHQpIHsKLSAgICAg
ICAgcy0+bmV4dC0+cHJldiA9IHMtPnByZXY7Ci0gICAgICB9Ci0gICAgICAvKiBJbnNlcnQgcyBh
cyBzZWNvbmQgZWxlbWVudCBpbiB0aGUgbGlzdCAqLwotICAgICAgcy0+bmV4dCA9IHR5LT5uZXh0
OwotICAgICAgaWYgKHR5LT5uZXh0KSB0eS0+bmV4dC0+cHJldiA9IHM7Ci0gICAgICB0eS0+bmV4
dCA9IHM7Ci0gICAgICBzLT5wcmV2ID0gdHk7Ci0gICAgICByZXR1cm4gczsKLSAgICB9Ci0gICAg
cyA9IHMtPm5leHQ7Ci0gIH0gd2hpbGUgKHMgJiYgKHMgIT0gdHktPm5leHQpKTsKLSAgcmV0dXJu
IDA7Ci19Ci0KLS8qIEZ1bmN0aW9uIGZvciBnZXR0aW5nIGEgcG9pbnRlciB2YWx1ZSAqLwotCi1z
dGF0aWMgaW50Ci1TV0lHX1BlcmxfQ29udmVydFB0cihTV0lHX01BWUJFX1BFUkxfT0JKRUNUIFNW
ICpzdiwgdm9pZCAqKnB0ciwgc3dpZ190eXBlX2luZm8gKl90LCBpbnQgZmxhZ3MpIHsKLSAgc3dp
Z190eXBlX2luZm8gKnRjOwotICB2b2lkICp2b2lkcHRyID0gKHZvaWQgKikwOwotCi0gIC8qIElm
IG1hZ2ljYWwsIGFwcGx5IG1vcmUgbWFnaWMgKi8KLSAgaWYgKFN2R01BR0lDQUwoc3YpKQotICAg
IG1nX2dldChzdik7Ci0KLSAgLyogQ2hlY2sgdG8gc2VlIGlmIHRoaXMgaXMgYW4gb2JqZWN0ICov
Ci0gIGlmIChzdl9pc29iamVjdChzdikpIHsKLSAgICBTViAqdHN2ID0gKFNWKikgU3ZSVihzdik7
Ci0gICAgSVYgdG1wID0gMDsKLSAgICBpZiAoKFN2VFlQRSh0c3YpID09IFNWdF9QVkhWKSkgewot
ICAgICAgTUFHSUMgKm1nOwotICAgICAgaWYgKFN2TUFHSUNBTCh0c3YpKSB7Ci0gICAgICAgIG1n
ID0gbWdfZmluZCh0c3YsJ1AnKTsKLSAgICAgICAgaWYgKG1nKSB7Ci0gICAgICAgICAgc3YgPSBt
Zy0+bWdfb2JqOwotICAgICAgICAgIGlmIChzdl9pc29iamVjdChzdikpIHsKLSAgICAgICAgICAg
IHRtcCA9IFN2SVYoKFNWKilTdlJWKHN2KSk7Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICB9IGVsc2UgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgICB9Ci0gICAgfSBlbHNlIHsKLSAg
ICAgIHRtcCA9IFN2SVYoKFNWKilTdlJWKHN2KSk7Ci0gICAgfQotICAgIHZvaWRwdHIgPSAodm9p
ZCAqKXRtcDsKLSAgICBpZiAoIV90KSB7Ci0gICAgICAqKHB0cikgPSB2b2lkcHRyOwotICAgICAg
cmV0dXJuIDA7Ci0gICAgfQotICB9IGVsc2UgaWYgKCEgU3ZPSyhzdikpIHsgICAgICAgICAgICAv
KiBDaGVjayBmb3IgdW5kZWYgKi8KLSAgICAqKHB0cikgPSAodm9pZCAqKSAwOwotICAgIHJldHVy
biAwOwotICB9IGVsc2UgaWYgKFN2VFlQRShzdikgPT0gU1Z0X1JWKSB7ICAvKiBDaGVjayBmb3Ig
TlVMTCBwb2ludGVyICovCi0gICAgKihwdHIpID0gKHZvaWQgKikgMDsKLSAgICBpZiAoIVN2Uk9L
KHN2KSkKLSAgICAgIHJldHVybiAwOwotICAgIGVsc2UKLSAgICAgIHJldHVybiAtMTsKLSAgfSBl
bHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRG9uJ3Qga25vdyB3aGF0IGl0IGlz
ICovCi0gICAgKihwdHIpID0gKHZvaWQgKikgMDsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLSAgaWYg
KF90KSB7Ci0gICAgLyogTm93IHNlZSBpZiB0aGUgdHlwZXMgbWF0Y2ggKi8KLSAgICBjaGFyICpf
YyA9IEh2TkFNRShTdlNUQVNIKFN2UlYoc3YpKSk7Ci0gICAgdGMgPSBTV0lHX1R5cGVDaGVjayhf
YyxfdCk7Ci0gICAgaWYgKCF0YykgewotICAgICAgKnB0ciA9IHZvaWRwdHI7Ci0gICAgICByZXR1
cm4gLTE7Ci0gICAgfQotICAgICpwdHIgPSBTV0lHX1R5cGVDYXN0KHRjLHZvaWRwdHIpOwotICAg
IHJldHVybiAwOwotICB9Ci0gICpwdHIgPSB2b2lkcHRyOwotICByZXR1cm4gMDsKLX0KLQotc3Rh
dGljIHZvaWQKLVNXSUdfUGVybF9NYWtlUHRyKFNXSUdfTUFZQkVfUEVSTF9PQkpFQ1QgU1YgKnN2
LCB2b2lkICpwdHIsIHN3aWdfdHlwZV9pbmZvICp0LCBpbnQgZmxhZ3MpIHsKLSAgaWYgKHB0ciAm
JiAoZmxhZ3MgJiBTV0lHX1NIQURPVykpIHsKLSAgICBTViAqc2VsZjsKLSAgICBTViAqb2JqPW5l
d1NWKDApOwotICAgIEhWICpoYXNoPW5ld0hWKCk7Ci0gICAgSFYgKnN0YXNoOwotICAgIHN2X3Nl
dHJlZl9wdihvYmosIChjaGFyICopIHQtPm5hbWUsIHB0cik7Ci0gICAgc3Rhc2g9U3ZTVEFTSChT
dlJWKG9iaikpOwotICAgIGlmIChmbGFncyAmIFNXSUdfT1dORVIpIHsKLSAgICAgIEhWICpodjsK
LSAgICAgIEdWICpndj0qKEdWKiopaHZfZmV0Y2goc3Rhc2gsICJPV05FUiIsIDUsIFRSVUUpOwot
ICAgICAgaWYgKCFpc0dWKGd2KSkKLSAgICAgICAgZ3ZfaW5pdChndiwgc3Rhc2gsICJPV05FUiIs
IDUsIEZBTFNFKTsKLSAgICAgIGh2PUd2SFZuKGd2KTsKLSAgICAgIGh2X3N0b3JlX2VudChodiwg
b2JqLCBuZXdTVml2KDEpLCAwKTsKLSAgICB9Ci0gICAgc3ZfbWFnaWMoKFNWICopaGFzaCwgKFNW
ICopb2JqLCAnUCcsIE51bGxjaCwgMCk7Ci0gICAgU3ZSRUZDTlRfZGVjKG9iaik7Ci0gICAgc2Vs
Zj1uZXdSVl9ub2luYygoU1YgKiloYXNoKTsKLSAgICBzdl9zZXRzdihzdiwgc2VsZik7Ci0gICAg
U3ZSRUZDTlRfZGVjKChTViAqKXNlbGYpOwotICAgIHN2X2JsZXNzKHN2LCBzdGFzaCk7Ci0gIH0K
LSAgZWxzZSB7Ci0gICAgc3Zfc2V0cmVmX3B2KHN2LCAoY2hhciAqKSB0LT5uYW1lLCBwdHIpOwot
ICB9Ci19Ci0KLXN0YXRpYyBTV0lHSU5MSU5FIFNWICoKLVNXSUdfUGVybF9OZXdQb2ludGVyT2Jq
KFNXSUdfTUFZQkVfUEVSTF9PQkpFQ1Qgdm9pZCAqcHRyLCBzd2lnX3R5cGVfaW5mbyAqdCwgaW50
IGZsYWdzKSB7Ci0gIFNWICpyZXN1bHQgPSBzdl9uZXdtb3J0YWwoKTsKLSAgU1dJR19NYWtlUHRy
KHJlc3VsdCwgcHRyLCB0LCBmbGFncyk7Ci0gIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyB2
b2lkCi0gIFNXSUdfUGVybF9NYWtlUGFja2VkT2JqKFNXSUdfTUFZQkVfUEVSTF9PQkpFQ1QgU1Yg
KnN2LCB2b2lkICpwdHIsIGludCBzeiwgc3dpZ190eXBlX2luZm8gKnR5cGUpIHsKLSAgY2hhciBy
ZXN1bHRbMTAyNF07Ci0gIGNoYXIgKnIgPSByZXN1bHQ7Ci0gIGlmICgoMipzeiArIDEgKyBzdHJs
ZW4odHlwZS0+bmFtZSkpID4gMTAwMCkgcmV0dXJuOwotICAqKHIrKykgPSAnXyc7Ci0gIHIgPSBT
V0lHX1BhY2tEYXRhKHIscHRyLHN6KTsKLSAgc3RyY3B5KHIsdHlwZS0+bmFtZSk7Ci0gIHN2X3Nl
dHB2KHN2LCByZXN1bHQpOwotfQotCi0vKiBDb252ZXJ0IGEgcGFja2VkIHZhbHVlIHZhbHVlICov
Ci1zdGF0aWMgaW50Ci1TV0lHX1BlcmxfQ29udmVydFBhY2tlZChTV0lHX01BWUJFX1BFUkxfT0JK
RUNUIFNWICpvYmosIHZvaWQgKnB0ciwgaW50IHN6LCBzd2lnX3R5cGVfaW5mbyAqdHksIGludCBm
bGFncykgewotICBzd2lnX3R5cGVfaW5mbyAqdGM7Ci0gIGNvbnN0IGNoYXIgICpjID0gMDsKLQot
ICBpZiAoKCFvYmopIHx8ICghU3ZPSyhvYmopKSkgcmV0dXJuIC0xOwotICBjID0gU3ZQVihvYmos
IFBMX25hKTsKLSAgLyogUG9pbnRlciB2YWx1ZXMgbXVzdCBzdGFydCB3aXRoIGxlYWRpbmcgdW5k
ZXJzY29yZSAqLwotICBpZiAoKmMgIT0gJ18nKSByZXR1cm4gLTE7Ci0gIGMrKzsKLSAgYyA9IFNX
SUdfVW5wYWNrRGF0YShjLHB0cixzeik7Ci0gIGlmICh0eSkgewotICAgIHRjID0gU1dJR19UeXBl
Q2hlY2soYyx0eSk7Ci0gICAgaWYgKCF0YykgcmV0dXJuIC0xOwotICB9Ci0gIHJldHVybiAwOwot
fQotCi1zdGF0aWMgU1dJR0lOTElORSB2b2lkCi1TV0lHX1BlcmxfU2V0RXJyb3IoU1dJR19NQVlC
RV9QRVJMX09CSkVDVCBjb25zdCBjaGFyICplcnJvcikgewotICBpZiAoZXJyb3IpIHN2X3NldHB2
KHBlcmxfZ2V0X3N2KCJAIiwgVFJVRSksIGVycm9yKTsKLX0KLQotc3RhdGljIFNXSUdJTkxJTkUg
dm9pZAotU1dJR19QZXJsX1NldEVycm9yU1YoU1dJR19NQVlCRV9QRVJMX09CSkVDVCBTViAqZXJy
b3IpIHsKLSAgaWYgKGVycm9yKSBzdl9zZXRzdihwZXJsX2dldF9zdigiQCIsIFRSVUUpLCBlcnJv
cik7Ci19Ci0KLXN0YXRpYyB2b2lkCi1TV0lHX1BlcmxfU2V0RXJyb3JmKGNvbnN0IGNoYXIgKmZt
dCwgLi4uKSB7Ci0gIHZhX2xpc3QgYXJnczsKLSAgdmFfc3RhcnQoYXJncywgZm10KTsKLSAgc3Zf
dnNldHB2Zm4ocGVybF9nZXRfc3YoIkAiLCBUUlVFKSwgZm10LCBzdHJsZW4oZm10KSwgJmFyZ3Ms
IE51bGwoU1YqKiksIDAsIE51bGwoYm9vbCopKTsKLSAgdmFfZW5kKGFyZ3MpOwotfQotCi0vKiBN
YWNyb3MgZm9yIGxvdy1sZXZlbCBleGNlcHRpb24gaGFuZGxpbmcgKi8KLSNkZWZpbmUgU1dJR19m
YWlsICAgICAgIGdvdG8gZmFpbAotI2RlZmluZSBTV0lHX2Nyb2FrKHgpICAgeyBTV0lHX1NldEVy
cm9yKHgpOyBnb3RvIGZhaWw7IH0KLSNkZWZpbmUgU1dJR19jcm9ha1NWKHgpIHsgU1dJR19TZXRF
cnJvclNWKHgpOyBnb3RvIGZhaWw7IH0KLS8qIG1vc3QgcHJlcHJvY2Vzc29ycyBkbyBub3Qgc3Vw
cG9ydCB2YXJhcmcgbWFjcm9zIDotKCAqLwotLyogI2RlZmluZSBTV0lHX2Nyb2FrZih4Li4uKSB7
IFNXSUdfU2V0RXJyb3JmKHgpOyBnb3RvIGZhaWw7IH0gKi8KLQotCi10eXBlZGVmIFhTKFN3aWdQ
ZXJsV3JhcHBlcik7Ci10eXBlZGVmIFN3aWdQZXJsV3JhcHBlciAqU3dpZ1BlcmxXcmFwcGVyUHRy
OwotCi0vKiBTdHJ1Y3R1cmUgZm9yIGNvbW1hbmQgdGFibGUgKi8KLXR5cGVkZWYgc3RydWN0IHsK
LSAgY29uc3QgY2hhciAgICAgICAgICpuYW1lOwotICBTd2lnUGVybFdyYXBwZXJQdHIgIHdyYXBw
ZXI7Ci19IHN3aWdfY29tbWFuZF9pbmZvOwotCi0vKiBJbmZvcm1hdGlvbiBmb3IgY29uc3RhbnQg
dGFibGUgKi8KLQotI2RlZmluZSBTV0lHX0lOVCAgICAgMQotI2RlZmluZSBTV0lHX0ZMT0FUICAg
MgotI2RlZmluZSBTV0lHX1NUUklORyAgMwotI2RlZmluZSBTV0lHX1BPSU5URVIgNAotI2RlZmlu
ZSBTV0lHX0JJTkFSWSAgNQotCi0vKiBDb25zdGFudCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgKi8K
LXR5cGVkZWYgc3RydWN0IHN3aWdfY29uc3RhbnRfaW5mbyB7Ci0gICAgaW50ICAgICAgICAgICAg
ICB0eXBlOwotICAgIGNvbnN0IGNoYXIgICAgICAqbmFtZTsKLSAgICBsb25nICAgICAgICAgICAg
IGx2YWx1ZTsKLSAgICBkb3VibGUgICAgICAgICAgIGR2YWx1ZTsKLSAgICB2b2lkICAgICAgICAg
ICAgKnB2YWx1ZTsKLSAgICBzd2lnX3R5cGVfaW5mbyAqKnB0eXBlOwotfSBzd2lnX2NvbnN0YW50
X2luZm87Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLS8qIFN0cnVjdHVyZSBm
b3IgdmFyaWFibGUgdGFibGUgKi8KLXR5cGVkZWYgc3RydWN0IHsKLSAgY29uc3QgY2hhciAgICpu
YW1lOwotICBTd2lnTWFnaWNGdW5jICAgc2V0OwotICBTd2lnTWFnaWNGdW5jICAgZ2V0OwotICBz
d2lnX3R5cGVfaW5mbyAgKip0eXBlOwotfSBzd2lnX3ZhcmlhYmxlX2luZm87Ci0KLS8qIE1hZ2lj
IHZhcmlhYmxlIGNvZGUgKi8KLSNpZm5kZWYgUEVSTF9PQkpFQ1QKLSNkZWZpbmUgc3dpZ19jcmVh
dGVfbWFnaWMocyxhLGIsYykgX3N3aWdfY3JlYXRlX21hZ2ljKHMsYSxiLGMpCi0gICNpZm5kZWYg
TVVMVElQTElDSVRZCi0gICAgIHN0YXRpYyB2b2lkIF9zd2lnX2NyZWF0ZV9tYWdpYyhTViAqc3Ys
IGNoYXIgKm5hbWUsIGludCAoKnNldCkoU1YgKiwgTUFHSUMgKiksIGludCAoKmdldCkoU1YgKixN
QUdJQyAqKSkgewotICAjZWxzZQotICAgICBzdGF0aWMgdm9pZCBfc3dpZ19jcmVhdGVfbWFnaWMo
U1YgKnN2LCBjaGFyICpuYW1lLCBpbnQgKCpzZXQpKHN0cnVjdCBpbnRlcnByZXRlciosIFNWICos
IE1BR0lDICopLCBpbnQgKCpnZXQpKHN0cnVjdCBpbnRlcnByZXRlciosIFNWICosTUFHSUMgKikp
IHsKLSAgI2VuZGlmCi0jZWxzZQotIyAgZGVmaW5lIHN3aWdfY3JlYXRlX21hZ2ljKHMsYSxiLGMp
IF9zd2lnX2NyZWF0ZV9tYWdpYyhwUGVybCxzLGEsYixjKQotc3RhdGljIHZvaWQgX3N3aWdfY3Jl
YXRlX21hZ2ljKENQZXJsT2JqICpwUGVybCwgU1YgKnN2LCBjb25zdCBjaGFyICpuYW1lLCBpbnQg
KENQZXJsT2JqOjoqc2V0KShTViAqLCBNQUdJQyAqKSwgaW50IChDUGVybE9iajo6KmdldCkoU1Yg
KiwgTUFHSUMgKikpIHsKLSNlbmRpZgotICBNQUdJQyAqbWc7Ci0gIHN2X21hZ2ljKHN2LHN2LCdV
JywoY2hhciAqKSBuYW1lLHN0cmxlbihuYW1lKSk7Ci0gIG1nID0gbWdfZmluZChzdiwnVScpOwot
ICBtZy0+bWdfdmlydHVhbCA9IChNR1ZUQkwgKikgbWFsbG9jKHNpemVvZihNR1ZUQkwpKTsKLSAg
bWctPm1nX3ZpcnR1YWwtPnN2dF9nZXQgPSAoU3dpZ01hZ2ljRnVuY0hhY2spIGdldDsKLSAgbWct
Pm1nX3ZpcnR1YWwtPnN2dF9zZXQgPSAoU3dpZ01hZ2ljRnVuY0hhY2spIHNldDsKLSAgbWctPm1n
X3ZpcnR1YWwtPnN2dF9sZW4gPSAwOwotICBtZy0+bWdfdmlydHVhbC0+c3Z0X2NsZWFyID0gMDsK
LSAgbWctPm1nX3ZpcnR1YWwtPnN2dF9mcmVlID0gMDsKLX0KLQotCi0KLQotCi0KLSNpZmRlZiBk
b19vcGVuCi0gICN1bmRlZiBkb19vcGVuCi0jZW5kaWYKLSNpZmRlZiBkb19jbG9zZQotICAjdW5k
ZWYgZG9fY2xvc2UKLSNlbmRpZgotI2lmZGVmIHNjYWxhcgotICAjdW5kZWYgc2NhbGFyCi0jZW5k
aWYKLSNpZmRlZiBsaXN0Ci0gICN1bmRlZiBsaXN0Ci0jZW5kaWYKLSNpZmRlZiBhcHBseQotICAj
dW5kZWYgYXBwbHkKLSNlbmRpZgotI2lmZGVmIGNvbnZlcnQKLSAgI3VuZGVmIGNvbnZlcnQKLSNl
bmRpZgotI2lmZGVmIEVycm9yCi0gICN1bmRlZiBFcnJvcgotI2VuZGlmCi0jaWZkZWYgZm9ybQot
ICAjdW5kZWYgZm9ybQotI2VuZGlmCi0jaWZkZWYgdmZvcm0KLSAgI3VuZGVmIHZmb3JtCi0jZW5k
aWYKLSNpZmRlZiBMQUJFTAotICAjdW5kZWYgTEFCRUwKLSNlbmRpZgotI2lmZGVmIE1FVEhPRAot
ICAjdW5kZWYgTUVUSE9ECi0jZW5kaWYKLSNpZmRlZiBNb3ZlCi0gICN1bmRlZiBNb3ZlCi0jZW5k
aWYKLSNpZmRlZiB5eWxleAotICAjdW5kZWYgeXlsZXgKLSNlbmRpZgotI2lmZGVmIHl5cGFyc2UK
LSAgI3VuZGVmIHl5cGFyc2UKLSNlbmRpZgotI2lmZGVmIHl5ZXJyb3IKLSAgI3VuZGVmIHl5ZXJy
b3IKLSNlbmRpZgotI2lmZGVmIGludmVydAotICAjdW5kZWYgaW52ZXJ0Ci0jZW5kaWYKLSNpZmRl
ZiByZWYKLSAgI3VuZGVmIHJlZgotI2VuZGlmCi0jaWZkZWYgRU5URVIKLSAgI3VuZGVmIEVOVEVS
Ci0jZW5kaWYKLQotCi0vKiAtLS0tLS0tLSBUWVBFUyBUQUJMRSAoQkVHSU4pIC0tLS0tLS0tICov
Ci0KLXN0YXRpYyBzd2lnX3R5cGVfaW5mbyAqc3dpZ190eXBlc1sxXTsKLQotLyogLS0tLS0tLS0g
VFlQRVMgVEFCTEUgKEVORCkgLS0tLS0tLS0gKi8KLQotI2RlZmluZSBTV0lHX2luaXQgICAgYm9v
dF9EdW1wUmVuZGVyVHJlZVN1cHBvcnQKLQotI2RlZmluZSBTV0lHX25hbWUgICAiRHVtcFJlbmRl
clRyZWVTdXBwb3J0Yzo6Ym9vdF9EdW1wUmVuZGVyVHJlZVN1cHBvcnQiCi0jZGVmaW5lIFNXSUdf
cHJlZml4ICJEdW1wUmVuZGVyVHJlZVN1cHBvcnRjOjoiCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwot
ZXh0ZXJuICJDIgotI2VuZGlmCi0jaWZuZGVmIFBFUkxfT0JKRUNUCi0jaWZuZGVmIE1VTFRJUExJ
Q0lUWQotU1dJR0VYUE9SVCh2b2lkKSBTV0lHX2luaXQgKENWKiBjdik7Ci0jZWxzZQotU1dJR0VY
UE9SVCh2b2lkKSBTV0lHX2luaXQgKHBUSFhvXyBDViogY3YpOwotI2VuZGlmCi0jZWxzZQotU1dJ
R0VYUE9SVCh2b2lkKSBTV0lHX2luaXQgKENWICpjdiwgQ1BlcmxPYmogKik7Ci0jZW5kaWYKLQot
aW50IHByb2Nlc3NJc0NyYXNoaW5nKGludCk7Ci0jaWZkZWYgUEVSTF9PQkpFQ1QKLSNkZWZpbmUg
TUFHSUNfQ0xBU1MgX3dyYXBfRHVtcFJlbmRlclRyZWVTdXBwb3J0X3Zhcjo6Ci1jbGFzcyBfd3Jh
cF9EdW1wUmVuZGVyVHJlZVN1cHBvcnRfdmFyIDogcHVibGljIENQZXJsT2JqIHsKLXB1YmxpYzoK
LSNlbHNlCi0jZGVmaW5lIE1BR0lDX0NMQVNTCi0jZW5kaWYKLVNXSUdDTEFTU19TVEFUSUMgaW50
IHN3aWdfbWFnaWNfcmVhZG9ubHkocFRIWF8gU1YgKnN2LCBNQUdJQyAqbWcpIHsKLSAgICBNQUdJ
Q19QUEVSTAotICAgIHN2ID0gc3Y7IG1nID0gbWc7Ci0gICAgY3JvYWsoIlZhbHVlIGlzIHJlYWQt
b25seS4iKTsKLSAgICByZXR1cm4gMDsKLX0KLQotCi0jaWZkZWYgUEVSTF9PQkpFQ1QKLX07Ci0j
ZW5kaWYKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotWFMoX3dy
YXBfcHJvY2Vzc0lzQ3Jhc2hpbmcpIHsKLSAgICB7Ci0gICAgICAgIGludCBhcmcxIDsKLSAgICAg
ICAgaW50IHJlc3VsdDsKLSAgICAgICAgaW50IGFyZ3ZpID0gMDsKLSAgICAgICAgZFhTQVJHUzsK
LSAgICAgICAgCi0gICAgICAgIGlmICgoaXRlbXMgPCAxKSB8fCAoaXRlbXMgPiAxKSkgewotICAg
ICAgICAgICAgU1dJR19jcm9haygiVXNhZ2U6IHByb2Nlc3NJc0NyYXNoaW5nKHBpZCk7Iik7Ci0g
ICAgICAgIH0KLSAgICAgICAgYXJnMSA9IChpbnQpIFN2SVYoU1QoMCkpOwotICAgICAgICByZXN1
bHQgPSAoaW50KXByb2Nlc3NJc0NyYXNoaW5nKGFyZzEpOwotICAgICAgICAKLSAgICAgICAgU1Qo
YXJndmkpID0gc3ZfbmV3bW9ydGFsKCk7Ci0gICAgICAgIHN2X3NldGl2KFNUKGFyZ3ZpKyspLCAo
SVYpIHJlc3VsdCk7Ci0gICAgICAgIFhTUkVUVVJOKGFyZ3ZpKTsKLSAgICAgICAgZmFpbDoKLSAg
ICAgICAgOwotICAgIH0KLSAgICBjcm9hayhOdWxsY2gpOwotfQotCi0KLQotLyogLS0tLS0tLS0g
VFlQRSBDT05WRVJTSU9OIEFORCBFUVVJVkFMRU5DRSBSVUxFUyAoQkVHSU4pIC0tLS0tLS0tICov
Ci0KLQotc3RhdGljIHN3aWdfdHlwZV9pbmZvICpzd2lnX3R5cGVzX2luaXRpYWxbXSA9IHsKLTAK
LX07Ci0KLQotLyogLS0tLS0tLS0gVFlQRSBDT05WRVJTSU9OIEFORCBFUVVJVkFMRU5DRSBSVUxF
UyAoRU5EKSAtLS0tLS0tLSAqLwotCi1zdGF0aWMgc3dpZ19jb25zdGFudF9pbmZvIHN3aWdfY29u
c3RhbnRzW10gPSB7Ci17MCwwLDAsMCwwLDB9Ci19OwotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0j
ZW5kaWYKLXN0YXRpYyBzd2lnX3ZhcmlhYmxlX2luZm8gc3dpZ192YXJpYWJsZXNbXSA9IHsKLXsw
LDAsMCwwfQotfTsKLXN0YXRpYyBzd2lnX2NvbW1hbmRfaW5mbyBzd2lnX2NvbW1hbmRzW10gPSB7
Ci17IkR1bXBSZW5kZXJUcmVlU3VwcG9ydGM6OnByb2Nlc3NJc0NyYXNoaW5nIiwgX3dyYXBfcHJv
Y2Vzc0lzQ3Jhc2hpbmd9LAotezAsMH0KLX07Ci0KLQotc3RhdGljIHZvaWQgU1dJR19QZXJsX1Nl
dFR5cGVMaXN0SGFuZGxlKHN3aWdfdHlwZV9pbmZvICoqaGFuZGxlKSB7Ci0gICAgU1YgKnBvaW50
ZXI7Ci0gICAgCi0gICAgLyogY3JlYXRlIGEgbmV3IHBvaW50ZXIgKi8KLSAgICBwb2ludGVyID0g
Z2V0X3N2KCJzd2lnX3J1bnRpbWVfZGF0YTo6dHlwZV9wb2ludGVyIiBTV0lHX1JVTlRJTUVfVkVS
U0lPTiBTV0lHX1RZUEVfVEFCTEVfTkFNRSwgVFJVRSk7Ci0gICAgc3Zfc2V0aXYocG9pbnRlciwg
UFRSMklWKHN3aWdfdHlwZV9saXN0X2hhbmRsZSkpOwotfQotCi1zdGF0aWMgc3dpZ190eXBlX2lu
Zm8gKioKLVNXSUdfUGVybF9Mb29rdXBUeXBlUG9pbnRlcihzd2lnX3R5cGVfaW5mbyAqKnR5cGVf
bGlzdF9oYW5kbGUpIHsKLSAgICBzd2lnX3R5cGVfaW5mbyAqKnR5cGVfcG9pbnRlcjsKLSAgICAK
LSAgICAvKiBmaXJzdCBjaGVjayBpZiBtb2R1bGUgYWxyZWFkeSBjcmVhdGVkICovCi0gICAgdHlw
ZV9wb2ludGVyID0gU1dJR19QZXJsX0dldFR5cGVMaXN0SGFuZGxlKCk7Ci0gICAgaWYgKHR5cGVf
cG9pbnRlcikgewotICAgICAgICByZXR1cm4gdHlwZV9wb2ludGVyOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIC8qIGNyZWF0ZSBhIG5ldyBtb2R1bGUgYW5kIHZhcmlhYmxlICovCi0gICAgICAgIFNX
SUdfUGVybF9TZXRUeXBlTGlzdEhhbmRsZSh0eXBlX2xpc3RfaGFuZGxlKTsKLSAgICAgICAgcmV0
dXJuIHR5cGVfbGlzdF9oYW5kbGU7Ci0gICAgfQotfQotCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwot
ZXh0ZXJuICJDIgotI2VuZGlmCi0KLVhTKFNXSUdfaW5pdCkgewotICAgIGRYU0FSR1M7Ci0gICAg
aW50IGk7Ci0gICAgc3RhdGljIGludCBfaW5pdCA9IDA7Ci0gICAgaWYgKCFfaW5pdCkgewotICAg
ICAgICBzd2lnX3R5cGVfbGlzdF9oYW5kbGUgPSBTV0lHX1BlcmxfTG9va3VwVHlwZVBvaW50ZXIo
c3dpZ190eXBlX2xpc3RfaGFuZGxlKTsKLSAgICAgICAgZm9yIChpID0gMDsgc3dpZ190eXBlc19p
bml0aWFsW2ldOyBpKyspIHsKLSAgICAgICAgICAgIHN3aWdfdHlwZXNbaV0gPSBTV0lHX1R5cGVS
ZWdpc3Rlcihzd2lnX3R5cGVzX2luaXRpYWxbaV0pOwotICAgICAgICB9Ci0gICAgICAgIF9pbml0
ID0gMTsKLSAgICB9Ci0gICAgCi0gICAgLyogSW5zdGFsbCBjb21tYW5kcyAqLwotICAgIGZvciAo
aSA9IDA7IHN3aWdfY29tbWFuZHNbaV0ubmFtZTsgaSsrKSB7Ci0gICAgICAgIG5ld1hTKChjaGFy
Kikgc3dpZ19jb21tYW5kc1tpXS5uYW1lLHN3aWdfY29tbWFuZHNbaV0ud3JhcHBlciwgKGNoYXIq
KV9fRklMRV9fKTsKLSAgICB9Ci0gICAgCi0gICAgLyogSW5zdGFsbCB2YXJpYWJsZXMgKi8KLSAg
ICBmb3IgKGkgPSAwOyBzd2lnX3ZhcmlhYmxlc1tpXS5uYW1lOyBpKyspIHsKLSAgICAgICAgU1Yg
KnN2OwotICAgICAgICBzdiA9IHBlcmxfZ2V0X3N2KChjaGFyKikgc3dpZ192YXJpYWJsZXNbaV0u
bmFtZSwgVFJVRSB8IDB4Mik7Ci0gICAgICAgIGlmIChzd2lnX3ZhcmlhYmxlc1tpXS50eXBlKSB7
Ci0gICAgICAgICAgICBTV0lHX01ha2VQdHIoc3YsKHZvaWQgKikxLCAqc3dpZ192YXJpYWJsZXNb
aV0udHlwZSwwKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHN2X3NldGl2KHN2LChJ
VikgMCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3dpZ19jcmVhdGVfbWFnaWMoc3YsIChjaGFyICop
IHN3aWdfdmFyaWFibGVzW2ldLm5hbWUsIHN3aWdfdmFyaWFibGVzW2ldLnNldCwgc3dpZ192YXJp
YWJsZXNbaV0uZ2V0KTsgCi0gICAgfQotICAgIAotICAgIC8qIEluc3RhbGwgY29uc3RhbnQgKi8K
LSAgICBmb3IgKGkgPSAwOyBzd2lnX2NvbnN0YW50c1tpXS50eXBlOyBpKyspIHsKLSAgICAgICAg
U1YgKnN2OwotICAgICAgICBzdiA9IHBlcmxfZ2V0X3N2KChjaGFyKilzd2lnX2NvbnN0YW50c1tp
XS5uYW1lLCBUUlVFIHwgMHgyKTsKLSAgICAgICAgc3dpdGNoKHN3aWdfY29uc3RhbnRzW2ldLnR5
cGUpIHsKLSAgICAgICAgICAgIGNhc2UgU1dJR19JTlQ6Ci0gICAgICAgICAgICBzdl9zZXRpdihz
diwgKElWKSBzd2lnX2NvbnN0YW50c1tpXS5sdmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIFNXSUdfRkxPQVQ6Ci0gICAgICAgICAgICBzdl9zZXRudihzdiwgKGRv
dWJsZSkgc3dpZ19jb25zdGFudHNbaV0uZHZhbHVlKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBTV0lHX1NUUklORzoKLSAgICAgICAgICAgIHN2X3NldHB2KHN2LCAoY2hh
ciAqKSBzd2lnX2NvbnN0YW50c1tpXS5wdmFsdWUpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICBjYXNlIFNXSUdfUE9JTlRFUjoKLSAgICAgICAgICAgIFNXSUdfTWFrZVB0cihzdiwg
c3dpZ19jb25zdGFudHNbaV0ucHZhbHVlLCAqKHN3aWdfY29uc3RhbnRzW2ldLnB0eXBlKSwwKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBTV0lHX0JJTkFSWToKLSAgICAg
ICAgICAgIFNXSUdfTWFrZVBhY2tlZE9iaihzdiwgc3dpZ19jb25zdGFudHNbaV0ucHZhbHVlLCBz
d2lnX2NvbnN0YW50c1tpXS5sdmFsdWUsICooc3dpZ19jb25zdGFudHNbaV0ucHR5cGUpKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICAgIFN2UkVBRE9OTFlfb24oc3YpOwotICAgIH0KLSAgICAKLSAg
ICBTVCgwKSA9ICZQTF9zdl95ZXM7Ci0gICAgWFNSRVRVUk4oMSk7Ci19Ci0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9JUGhvbmVTaW11bGF0b3JOb3Rp
ZmljYXRpb24vQ2hhbmdlcyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9J
UGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24vQ2hhbmdlcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDdiZTEyZWFjMjdjOTQyZDkwMTIyNTI1OGI3YTFhZWE2ZjgxMzY4Ny4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9pb3MvUGVybFN1cHBvcnQvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uL0NoYW5nZXMK
KysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLVJldmlzaW9uIGhpc3RvcnkgZm9yIFBlcmwg
ZXh0ZW5zaW9uIElQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi4KLQotMS4wMCAgRnJpIFNlcCAx
OCAxOTo1OToyOCAyMDA5Ci0JLSBvcmlnaW5hbCB2ZXJzaW9uOyBjcmVhdGVkIGJ5IGgyeHMgMS4y
MyB3aXRoIG9wdGlvbnMKLQkJLUEgLWIgNS44LjAgLW4gSVBob25lU2ltdWxhdG9yTm90aWZpY2F0
aW9uCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9J
UGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24vSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uLnhz
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0lQaG9uZVNpbXVsYXRvck5v
dGlmaWNhdGlvbi9JUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24ueHMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGMxMWFlMDYyNTVkZWM3OWEyNzViNjk5Yzc1ZWNkMGQwYmM3ZjRiNDAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0lQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi9J
UGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24ueHMKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNs
dWRlICJFWFRFUk4uaCIKLSNpbmNsdWRlICJwZXJsLmgiCi0jaW5jbHVkZSAiWFNVQi5oIgotCi0j
aW5jbHVkZSAicHBwb3J0LmgiCi0KLSNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgot
Ci1AaW50ZXJmYWNlIElQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbiA6IE5TT2JqZWN0Ci1AZW5k
Ci0KLUBpbXBsZW1lbnRhdGlvbiBJUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24KLS0gKHZvaWQp
cmVhZHlOb3RpZmljYXRpb25DYWxsYmFjayB7IH0KLS0gKHZvaWQpYXBwbGljYXRpb25MYXVuY2hl
ZE5vdGlmaWNhdGlvbkNhbGxiYWNrOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbiB7IH0K
LS0gKHZvaWQpYXBwbGljYXRpb25RdWl0Tm90aWZpY2F0aW9uQ2FsbGJhY2s6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uIHsgfQotQGVuZAotCi1NT0RVTEUgPSBJUGhvbmVTaW11bGF0b3JO
b3RpZmljYXRpb24JCVBBQ0tBR0UgPSBJUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24JCQotCi1Q
Uk9UT1RZUEVTOiBFTkFCTEUKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9z
L1BlcmxTdXBwb3J0L0lQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi9NQU5JRkVTVCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9JUGhvbmVTaW11bGF0b3JOb3RpZmljYXRp
b24vTUFOSUZFU1QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUwZjY5ODRlNzZjNzc4
ZTY0OWIzNzM4ZGZhYzZjNzdmY2I3M2IzMTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0lQ
aG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi9NQU5JRkVTVAorKysgL2Rldi9udWxsCkBAIC0xLDgg
KzAsMCBAQAotQ2hhbmdlcwotSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uLnhzCi1NYWtlZmls
ZS5QTAotTUFOSUZFU1QKLXBwcG9ydC5oCi1SRUFETUUKLXQvSVBob25lU2ltdWxhdG9yTm90aWZp
Y2F0aW9uLnQKLWxpYi9JUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24ucG0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9JUGhvbmVTaW11bGF0b3JOb3Rp
ZmljYXRpb24vTWFrZWZpbGUuUEwgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGVybFN1cHBv
cnQvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uL01ha2VmaWxlLlBMCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBiZjIzNDA1Yzk1MTdiY2M2YjkzYmZkZDEwZWExMTkzMjg1NzQ0MTgw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9JUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24v
TWFrZWZpbGUuUEwKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0jIENvcHlyaWdodCAo
QykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotIyAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
Ci0jICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCi0jICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAotIwotIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotIyBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotIyBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUwotIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0jIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAotIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSMgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotdXNlIDUuMDA4MDAwOwotdXNlIENvbmZpZzsKLXVzZSBFeHRVdGlsczo6TWFrZU1ha2VyOwot
Ci1jaG9tcChteSAkY2MgPSBteSAkbGQgPSBgeGNydW4gLWZpbmQgY2xhbmdgKTsKLQotIyBSZW1v
dmUgLWFyY2ggZmxhZ3MgKGVzcGVjaWFsbHkgIi1hcmNoIHBwYyIpIGZyb20gbGlua2VyIGZsYWdz
LgotbXkgJGFyY2hmbGFncyA9IGpvaW4oIiAiLCBtYXAgeyAoIi1hcmNoIiwgJF8pIH0gc3BsaXQo
IiAiLCAkRU5We0FSQ0hTfSkpIC4gIiAiOwotbXkgJGNvbmZpZ19sZGZsYWdzID0gJENvbmZpZ3ts
ZGZsYWdzfTsKLSRjb25maWdfbGRmbGFncyA9fiBzLy1hcmNoIFxTKyggfCQpLy9nOwotJGNvbmZp
Z19sZGZsYWdzID0gJGFyY2hmbGFncyAuICRjb25maWdfbGRmbGFnczsKLW15ICRjb25maWdfbGRk
bGZsYWdzID0gJENvbmZpZ3tsZGRsZmxhZ3N9OwotJGNvbmZpZ19sZGRsZmxhZ3MgPX4gcy8tYXJj
aCBcUysoIHwkKS8vZzsKLSRjb25maWdfbGRkbGZsYWdzID0gJGFyY2hmbGFncyAuICRjb25maWdf
bGRkbGZsYWdzOwotCi0jIFNlZSBsaWIvRXh0VXRpbHMvTWFrZU1ha2VyLnBtIGZvciBkZXRhaWxz
IG9mIGhvdyB0byBpbmZsdWVuY2UKLSMgdGhlIGNvbnRlbnRzIG9mIHRoZSBNYWtlZmlsZSB0aGF0
IGlzIHdyaXR0ZW4uCi1Xcml0ZU1ha2VmaWxlKAotICAgIE5BTUUgICAgICAgICAgICAgID0+ICdJ
UGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24nLAotICAgIFZFUlNJT05fRlJPTSAgICAgID0+ICds
aWIvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uLnBtJywgIyBmaW5kcyAkVkVSU0lPTgotICAg
IFBSRVJFUV9QTSAgICAgICAgID0+IHt9LCAjIGUuZy4sIE1vZHVsZTo6TmFtZSA9PiAxLjEKLSAg
ICAoJF0gPj0gNS4wMDUgPyAgICAgIyMgQWRkIHRoZXNlIG5ldyBrZXl3b3JkcyBzdXBwb3J0ZWQg
c2luY2UgNS4wMDUKLSAgICAgIChBQlNUUkFDVF9GUk9NICA9PiAnbGliL0lQaG9uZVNpbXVsYXRv
ck5vdGlmaWNhdGlvbi5wbScsICMgcmV0cmlldmUgYWJzdHJhY3QgZnJvbSBtb2R1bGUKLSAgICAg
ICBBVVRIT1IgICAgICAgICA9PiAnRGF2aWQgS2lsemVyIDxkZGtpbHplckBhcHBsZS5jb20+Jykg
OiAoKSksCi0gICAgTElCUyAgICAgICAgICAgICAgPT4gWycnXSwgIyBlLmcuLCAnLWxtJwotICAg
IENDICAgICAgICAgICAgICAgID0+ICRjYywKLSAgICBDQ0ZMQUdTICAgICAgICAgICA9PiAiLXgg
b2JqZWN0aXZlLWMgJGFyY2hmbGFncyIsCi0gICAgTEQgICAgICAgICAgICAgICAgPT4gJGxkLAot
ICAgIExERExGTEFHUyAgICAgICAgID0+ICRjb25maWdfbGRkbGZsYWdzLAotICAgIExERkxBR1Mg
ICAgICAgICAgID0+ICRjb25maWdfbGRmbGFncywKLSAgICBERUZJTkUgICAgICAgICAgICA9PiAn
JywgIyBlLmcuLCAnLURIQVZFX1NPTUVUSElORycKLSAgICBJTkMgICAgICAgICAgICAgICA9PiAn
LUkuJywgIyBlLmcuLCAnLUkuIC1JL3Vzci9pbmNsdWRlL290aGVyJwotCSMgVW4tY29tbWVudCB0
aGlzIGlmIHlvdSBhZGQgQyBmaWxlcyB0byBsaW5rIHdpdGggbGF0ZXI6Ci0gICAgIyBPQkpFQ1Qg
ICAgICAgICAgICA9PiAnJChPX0ZJTEVTKScsICMgbGluayBhbGwgdGhlIEMgZmlsZXMgdG9vCi0p
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0lQaG9u
ZVNpbXVsYXRvck5vdGlmaWNhdGlvbi9SRUFETUUgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3Mv
UGVybFN1cHBvcnQvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uL1JFQURNRQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNWM2NTE2NzM4MzgyMzFmNGY3MjVhZjM4MDIzZGMwYTI4ZWMz
MGQ1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9pb3MvUGVybFN1cHBvcnQvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0
aW9uL1JFQURNRQorKysgL2Rldi9udWxsCkBAIC0xLDQ3ICswLDAgQEAKLUlQaG9uZVNpbXVsYXRv
ck5vdGlmaWNhdGlvbiB2ZXJzaW9uIDEuMDAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLQotVGhlIElQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbiBtb2R1bGUgaXMg
dXNlZCB0byByZWNlaXZlIGRpc3RyaWJ1dGVkCi1ub3RpZmljYXRpb25zIGZyb20gdGhlIGlQaG9u
ZSBTaW11bGF0b3IuCi0KLUlOU1RBTExBVElPTgotCi1UbyBpbnN0YWxsIHRoaXMgbW9kdWxlIHR5
cGUgdGhlIGZvbGxvd2luZzoKLQotICAgcGVybCBNYWtlZmlsZS5QTAotICAgbWFrZQotICAgbWFr
ZSB0ZXN0Ci0gICBtYWtlIGluc3RhbGwKLQotREVQRU5ERU5DSUVTCi0KLVRoaXMgbW9kdWxlIHJl
cXVpcmVzIHRoZXNlIG90aGVyIG1vZHVsZXMgYW5kIGxpYnJhcmllczoKLQotICBGb3VuZGF0aW9u
Ci0gIFBlcmxPYmpDQnJpZGdlCi0KLUNPUFlSSUdIVCBBTkQgTElDRU5DRQotCi1Db3B5cmlnaHQg
KEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotYXJlIG1ldDoKLTEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0yLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi1FWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi1QVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi1FWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi1QUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLVBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLU9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9z
L1BlcmxTdXBwb3J0L0lQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi9saWIvSVBob25lU2ltdWxh
dG9yTm90aWZpY2F0aW9uLnBtIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0
L0lQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi9saWIvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0
aW9uLnBtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTNkZGFjMjY2OGYyNjE2ZDA2
OTZhYTllOWJlNTNmZjNjY2E0ZThjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9JUGhvbmVT
aW11bGF0b3JOb3RpZmljYXRpb24vbGliL0lQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi5wbQor
KysgL2Rldi9udWxsCkBAIC0xLDQwMCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSMgYXJlIG1ldDoKLSMKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotIyAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotIyAzLiAgTmVpdGhlciB0aGUg
bmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0jICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCi0jICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uIAotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotIyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECi0jIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotIyBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0jIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotIyBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotcGFja2FnZSBJ
UGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb247Ci0KLXVzZSA1LjAwODAwMDsKLXVzZSBzdHJpY3Q7
Ci11c2Ugd2FybmluZ3M7Ci0KLXJlcXVpcmUgRXhwb3J0ZXI7Ci0KLW91ciBASVNBID0gcXcoRHlu
YUxvYWRlciBFeHBvcnRlcik7Ci0KLSMgSXRlbXMgdG8gZXhwb3J0IGludG8gY2FsbGVycyBuYW1l
c3BhY2UgYnkgZGVmYXVsdC4gTm90ZTogZG8gbm90IGV4cG9ydAotIyBuYW1lcyBieSBkZWZhdWx0
IHdpdGhvdXQgYSB2ZXJ5IGdvb2QgcmVhc29uLiBVc2UgRVhQT1JUX09LIGluc3RlYWQuCi0jIERv
IG5vdCBzaW1wbHkgZXhwb3J0IGFsbCB5b3VyIHB1YmxpYyBmdW5jdGlvbnMvbWV0aG9kcy9jb25z
dGFudHMuCi0KLSMgVGhpcyBhbGxvd3MgZGVjbGFyYXRpb24gdXNlIElQaG9uZVNpbXVsYXRvck5v
dGlmaWNhdGlvbiAnOmFsbCc7Ci0jIElmIHlvdSBkbyBub3QgbmVlZCB0aGlzLCBtb3ZpbmcgdGhp
bmdzIGRpcmVjdGx5IGludG8gQEVYUE9SVCBvciBARVhQT1JUX09LCi0jIHdpbGwgc2F2ZSBtZW1v
cnkuCi1vdXIgJUVYUE9SVF9UQUdTID0gKCAnYWxsJyA9PiBbIHF3KAotICAgIAotKSBdICk7Ci0K
LW91ciBARVhQT1JUX09LID0gKCBAeyAkRVhQT1JUX1RBR1N7J2FsbCd9IH0gKTsKLQotb3VyIEBF
WFBPUlQgPSBxdygKLSAgICAmYXBwbGljYXRpb25MYXVuY2hlZEFwcGxpY2F0aW9uUElECi0gICAg
JmFwcGxpY2F0aW9uTGF1bmNoZWRTZXNzaW9uVVVJRAotICAgICZoYXNSZWNlaXZlZEFwcGxpY2F0
aW9uTGF1bmNoZWROb3RpZmljYXRpb24KLSAgICAmaGFzUmVjZWl2ZWRBcHBsaWNhdGlvblF1aXRO
b3RpZmljYXRpb24KLSAgICAmaGFzUmVjZWl2ZWRSZWFkeU5vdGlmaWNhdGlvbgotICAgICZuZXcK
LSAgICAmcG9zdEVuZFNlc3Npb25Ob3RpZmljYXRpb24KLSAgICAmcG9zdFN0YXJ0U2Vzc2lvbk5v
dGlmaWNhdGlvbgotICAgICZyZWFkeU5vdGlmaWNhdGlvbkNhbGxiYWNrCi0gICAgJnNldEhhc1Jl
Y2VpdmVkUmVhZHlOb3RpZmljYXRpb24KLSAgICAmc3RhcnRPYnNlcnZpbmdBcHBsaWNhdGlvbkxh
dW5jaGVkTm90aWZpY2F0aW9uCi0gICAgJnN0YXJ0T2JzZXJ2aW5nQXBwbGljYXRpb25RdWl0Tm90
aWZpY2F0aW9uCi0gICAgJnN0YXJ0T2JzZXJ2aW5nUmVhZHlOb3RpZmljYXRpb24KLSAgICAmc3Rv
cE9ic2VydmluZ0FwcGxpY2F0aW9uTGF1bmNoZWROb3RpZmljYXRpb24KLSAgICAmc3RvcE9ic2Vy
dmluZ0FwcGxpY2F0aW9uUXVpdE5vdGlmaWNhdGlvbgotICAgICZzdG9wT2JzZXJ2aW5nUmVhZHlO
b3RpZmljYXRpb24KLSk7Ci0KLW91ciAkVkVSU0lPTiA9ICcxLjAxJzsKLQotcmVxdWlyZSBYU0xv
YWRlcjsKLVhTTG9hZGVyOjpsb2FkKCdJUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24nLCAkVkVS
U0lPTik7Ci0KLSMgUHJlbG9hZGVkIG1ldGhvZHMgZ28gaGVyZS4KLQotdXNlIEZvdW5kYXRpb247
Ci0KLVBlcmxPYmpDQnJpZGdlOjpwcmVsb2FkU2VsZWN0b3JzKCdJUGhvbmVTaW11bGF0b3JOb3Rp
ZmljYXRpb24nKTsKLQotc3ViIG5ldwotewotICAgIG15ICRjbGFzcyA9IHNoaWZ0OwotCi0gICAg
bXkgJHNlbGYgPSB7fTsKLSAgICAkc2VsZi0+e2hhc1JlY2VpdmVkQXBwbGljYXRpb25MYXVuY2hl
ZE5vdGlmaWNhdGlvbn0gPSB7fTsKLSAgICAkc2VsZi0+e2hhc1JlY2VpdmVkQXBwbGljYXRpb25R
dWl0Tm90aWZpY2F0aW9ufSA9IHt9OwotICAgICRzZWxmLT57aGFzUmVjZWl2ZWRSZWFkeU5vdGlm
aWNhdGlvbn0gPSAwOwotICAgIGJsZXNzKCRzZWxmLCAkY2xhc3MpOwotCi0gICAgcmV0dXJuICRz
ZWxmOwotfQotCi1zdWIgREVTVFJPWQotewotICAgIG15ICRzZWxmID0gc2hpZnQ7Ci0KLSAgICAk
c2VsZi0+c3RvcE9ic2VydmluZ1JlYWR5Tm90aWZpY2F0aW9uKCk7Ci19Ci0KLXN1YiBhcHBsaWNh
dGlvbkxhdW5jaGVkTm90aWZpY2F0aW9uQ2FsbGJhY2tfCi17Ci0gICAgbXkgJHNlbGYgPSBzaGlm
dDsKLSAgICBteSAkbnNOb3RpZmljYXRpb24gPSBzaGlmdDsKLSAgICBteSAkdXNlckluZm8gPSAk
bnNOb3RpZmljYXRpb24tPnVzZXJJbmZvKCk7Ci0KLSAgICBteSAka2V5T2JqZWN0OwotICAgIG15
ICRlbnVtZXJhdG9yID0gJHVzZXJJbmZvLT5rZXlFbnVtZXJhdG9yKCk7Ci0gICAgd2hpbGUgKCRr
ZXlPYmplY3QgPSAkZW51bWVyYXRvci0+bmV4dE9iamVjdCgpIGFuZCAkJGtleU9iamVjdCkgewot
ICAgICAgICBteSAka2V5ID0gJGtleU9iamVjdC0+VVRGOFN0cmluZygpOwotICAgICAgICBteSAk
dmFsdWVPYmplY3QgPSAkdXNlckluZm8tPm9iamVjdEZvcktleV8oJGtleU9iamVjdCk7Ci0gICAg
ICAgIGlmICgka2V5IGVxICJlcnJvclN0cmluZyIpIHsKLSAgICAgICAgICAgIGRpZSAiaVBob25l
IFNpbXVsYXRvciByZXR1cm5lZCBlcnJvcjogIiAuICR2YWx1ZU9iamVjdC0+VVRGOFN0cmluZygp
OwotICAgICAgICB9IGVsc2lmICgka2V5IGVxICJhcHBsaWNhdGlvblBJRCIpIHsKLSAgICAgICAg
ICAgICRzZWxmLT57aGFzUmVjZWl2ZWRBcHBsaWNhdGlvbkxhdW5jaGVkTm90aWZpY2F0aW9ufS0+
e2FwcGxpY2F0aW9uUElEfSA9ICR2YWx1ZU9iamVjdC0+aW50VmFsdWUoKTsKLSAgICAgICAgfSBl
bHNpZiAoJGtleSBlcSAic2Vzc2lvblVVSUQiKSB7Ci0gICAgICAgICAgICAkc2VsZi0+e2hhc1Jl
Y2VpdmVkQXBwbGljYXRpb25MYXVuY2hlZE5vdGlmaWNhdGlvbn0tPntzZXNzaW9uVVVJRH0gPSAk
dmFsdWVPYmplY3QtPlVURjhTdHJpbmcoKTsKLSAgICAgICAgfQotICAgIH0KLX0KLQotc3ViIGFw
cGxpY2F0aW9uUXVpdE5vdGlmaWNhdGlvbkNhbGxiYWNrXwotewotICAgIG15ICRzZWxmID0gc2hp
ZnQ7Ci0gICAgbXkgJG5zTm90aWZpY2F0aW9uID0gc2hpZnQ7Ci0gICAgbXkgJHVzZXJJbmZvID0g
JG5zTm90aWZpY2F0aW9uLT51c2VySW5mbygpOwotCi0gICAgbXkgJGtleU9iamVjdDsKLSAgICBt
eSAkZW51bWVyYXRvciA9ICR1c2VySW5mby0+a2V5RW51bWVyYXRvcigpOwotICAgIHdoaWxlICgk
a2V5T2JqZWN0ID0gJGVudW1lcmF0b3ItPm5leHRPYmplY3QoKSBhbmQgJCRrZXlPYmplY3QpIHsK
LSAgICAgICAgbXkgJGtleSA9ICRrZXlPYmplY3QtPlVURjhTdHJpbmcoKTsKLSAgICAgICAgbXkg
JHZhbHVlT2JqZWN0ID0gJHVzZXJJbmZvLT5vYmplY3RGb3JLZXlfKCRrZXlPYmplY3QpOwotICAg
ICAgICBpZiAoJGtleSBlcSAiZXJyb3JTdHJpbmciKSB7Ci0gICAgICAgICAgICBteSAkZXJyb3JT
dHJpbmcgPSAkdmFsdWVPYmplY3QtPlVURjhTdHJpbmcoKTsKLSAgICAgICAgICAgIHdhcm4gImlQ
aG9uZSBTaW11bGF0b3IgcmV0dXJuZWQgZXJyb3I6ICIgLiAkZXJyb3JTdHJpbmcKLSAgICAgICAg
ICAgICAgICB1bmxlc3MgJGVycm9yU3RyaW5nIGVxICJUaGUgc2ltdWxhdGVkIGFwcGxpY2F0aW9u
IHF1aXQuIjsKLSAgICAgICAgfSBlbHNpZiAoJGtleSBlcSAic2Vzc2lvblVVSUQiKSB7Ci0gICAg
ICAgICAgICAkc2VsZi0+e2hhc1JlY2VpdmVkQXBwbGljYXRpb25RdWl0Tm90aWZpY2F0aW9ufS0+
e3Nlc3Npb25VVUlEfSA9ICR2YWx1ZU9iamVjdC0+VVRGOFN0cmluZygpOwotICAgICAgICB9Ci0g
ICAgfQotfQotCi1zdWIgcmVhZHlOb3RpZmljYXRpb25DYWxsYmFjawotewotICAgIG15ICRzZWxm
ID0gc2hpZnQ7Ci0gICAgJHNlbGYtPnNldEhhc1JlY2VpdmVkUmVhZHlOb3RpZmljYXRpb24oMSk7
Ci19Ci0KLXN1YiBhcHBsaWNhdGlvbkxhdW5jaGVkQXBwbGljYXRpb25QSUQKLXsKLSAgICBteSAk
c2VsZiA9IHNoaWZ0OwotICAgIHJldHVybiAkc2VsZi0+e2hhc1JlY2VpdmVkQXBwbGljYXRpb25M
YXVuY2hlZE5vdGlmaWNhdGlvbn0tPnthcHBsaWNhdGlvblBJRH07Ci19Ci0KLXN1YiBhcHBsaWNh
dGlvbkxhdW5jaGVkU2Vzc2lvblVVSUQKLXsKLSAgICBteSAkc2VsZiA9IHNoaWZ0OwotICAgIHJl
dHVybiAkc2VsZi0+e2hhc1JlY2VpdmVkQXBwbGljYXRpb25MYXVuY2hlZE5vdGlmaWNhdGlvbn0t
PntzZXNzaW9uVVVJRH07Ci19Ci0KLXN1YiBoYXNSZWNlaXZlZEFwcGxpY2F0aW9uTGF1bmNoZWRO
b3RpZmljYXRpb24KLXsKLSAgICBteSAkc2VsZiA9IHNoaWZ0OwotICAgIHJldHVybiBzY2FsYXIo
a2V5cygleyRzZWxmLT57aGFzUmVjZWl2ZWRBcHBsaWNhdGlvbkxhdW5jaGVkTm90aWZpY2F0aW9u
fX0pKSA+IDA7Ci19Ci0KLXN1YiBoYXNSZWNlaXZlZEFwcGxpY2F0aW9uUXVpdE5vdGlmaWNhdGlv
bgotewotICAgIG15ICRzZWxmID0gc2hpZnQ7Ci0gICAgcmV0dXJuIHNjYWxhcihrZXlzKCV7JHNl
bGYtPntoYXNSZWNlaXZlZEFwcGxpY2F0aW9uUXVpdE5vdGlmaWNhdGlvbn19KSkgPiAwOwotfQot
Ci1zdWIgaGFzUmVjZWl2ZWRSZWFkeU5vdGlmaWNhdGlvbgotewotICAgIG15ICRzZWxmID0gc2hp
ZnQ7Ci0gICAgcmV0dXJuICRzZWxmLT57aGFzUmVjZWl2ZWRSZWFkeU5vdGlmaWNhdGlvbn07Ci19
Ci0KLXN1YiBwb3N0RW5kU2Vzc2lvbk5vdGlmaWNhdGlvbgotewotICAgIG15ICRzZWxmID0gc2hp
ZnQ7Ci0gICAgbXkgJGRpY3QgPSBzaGlmdDsKLQotICAgIG15ICR1c2VySW5mbyA9IE5TTXV0YWJs
ZURpY3Rpb25hcnktPmRpY3Rpb25hcnlXaXRoQ2FwYWNpdHlfKDIpOwotICAgIGZvciBteSAkcHJv
cGVydHkgKHF3KGRvbnRRdWl0IHNlc3Npb25VVUlEKSkgewotICAgICAgICBpZiAoZXhpc3RzICRk
aWN0LT57JHByb3BlcnR5fSkgewotICAgICAgICAgICAgbXkgJGtleSA9IE5TU3RyaW5nLT5zdHJp
bmdXaXRoQ1N0cmluZ18oJHByb3BlcnR5KTsKLSAgICAgICAgICAgIG15ICR2YWx1ZSA9ICRkaWN0
LT57JHByb3BlcnR5fTsKLSAgICAgICAgICAgICR1c2VySW5mby0+c2V0T2JqZWN0X2ZvcktleV8o
JHZhbHVlLCAka2V5KTsKLSAgICAgICAgfQotICAgIH0KLSAgICAkdXNlckluZm8tPnNldE9iamVj
dF9mb3JLZXlfKE5TTnVtYmVyLT5udW1iZXJXaXRoSW50XygxKSwgTlNTdHJpbmctPnN0cmluZ1dp
dGhDU3RyaW5nXygidmVyc2lvbiIpKTsKLQotICAgIG15ICRjZW50ZXIgPSBOU0Rpc3RyaWJ1dGVk
Tm90aWZpY2F0aW9uQ2VudGVyLT5kZWZhdWx0Q2VudGVyKCk7Ci0gICAgJGNlbnRlci0+cG9zdE5v
dGlmaWNhdGlvbk5hbWVfb2JqZWN0X3VzZXJJbmZvXygiY29tLmFwcGxlLmlwaG9uZXNpbXVsYXRv
ci5lbmRTZXNzaW9uIiwgdW5kZWYsICR1c2VySW5mbyk7Ci19Ci0KLXN1YiBwb3N0U3RhcnRTZXNz
aW9uTm90aWZpY2F0aW9uCi17Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBteSAkZGljdCA9
IHNoaWZ0OwotCi0gICAgbXkgJHVzZXJJbmZvID0gTlNNdXRhYmxlRGljdGlvbmFyeS0+ZGljdGlv
bmFyeVdpdGhDYXBhY2l0eV8oc2NhbGFyKGtleXMoJGRpY3QpKSArIDEpOwotICAgIGZvcmVhY2gg
bXkgJGtleSAoa2V5cygkZGljdCkpIHsKLSAgICAgICAgJHVzZXJJbmZvLT5zZXRPYmplY3RfZm9y
S2V5XygkZGljdC0+eyRrZXl9LCAka2V5KTsKLSAgICB9Ci0gICAgJHVzZXJJbmZvLT5zZXRPYmpl
Y3RfZm9yS2V5XyhOU051bWJlci0+bnVtYmVyV2l0aEludF8oMSksIE5TU3RyaW5nLT5zdHJpbmdX
aXRoQ1N0cmluZ18oInZlcnNpb24iKSk7Ci0KLSAgICBteSAkY2VudGVyID0gTlNEaXN0cmlidXRl
ZE5vdGlmaWNhdGlvbkNlbnRlci0+ZGVmYXVsdENlbnRlcigpOwotICAgICRjZW50ZXItPnBvc3RO
b3RpZmljYXRpb25OYW1lX29iamVjdF91c2VySW5mb18oImNvbS5hcHBsZS5pcGhvbmVzaW11bGF0
b3Iuc3RhcnRTZXNzaW9uIiwgdW5kZWYsICR1c2VySW5mbyk7Ci19Ci0KLXN1YiBzZXRIYXNSZWNl
aXZlZFJlYWR5Tm90aWZpY2F0aW9uCi17Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICAkc2Vs
Zi0+e2hhc1JlY2VpdmVkUmVhZHlOb3RpZmljYXRpb259ID0gc2hpZnQ7Ci19Ci0KLXN1YiBzdGFy
dE9ic2VydmluZ0FwcGxpY2F0aW9uTGF1bmNoZWROb3RpZmljYXRpb24KLXsKLSAgICBteSAkc2Vs
ZiA9IHNoaWZ0OwotICAgIG15ICRjZW50ZXIgPSBOU0Rpc3RyaWJ1dGVkTm90aWZpY2F0aW9uQ2Vu
dGVyLT5kZWZhdWx0Q2VudGVyKCk7Ci0gICAgJGNlbnRlci0+YWRkT2JzZXJ2ZXJfc2VsZWN0b3Jf
bmFtZV9vYmplY3RfKCRzZWxmLCAnYXBwbGljYXRpb25MYXVuY2hlZE5vdGlmaWNhdGlvbkNhbGxi
YWNrOicsICJjb20uYXBwbGUuaXBob25lc2ltdWxhdG9yLmFwcGxpY2F0aW9uTGF1bmNoZWQiLCB1
bmRlZik7IAotfQotCi1zdWIgc3RhcnRPYnNlcnZpbmdBcHBsaWNhdGlvblF1aXROb3RpZmljYXRp
b24KLXsKLSAgICBteSAkc2VsZiA9IHNoaWZ0OwotICAgIG15ICRjZW50ZXIgPSBOU0Rpc3RyaWJ1
dGVkTm90aWZpY2F0aW9uQ2VudGVyLT5kZWZhdWx0Q2VudGVyKCk7Ci0gICAgJGNlbnRlci0+YWRk
T2JzZXJ2ZXJfc2VsZWN0b3JfbmFtZV9vYmplY3RfKCRzZWxmLCAnYXBwbGljYXRpb25RdWl0Tm90
aWZpY2F0aW9uQ2FsbGJhY2s6JywgImNvbS5hcHBsZS5pcGhvbmVzaW11bGF0b3IuYXBwbGljYXRp
b25RdWl0IiwgdW5kZWYpOyAKLX0KLQotc3ViIHN0YXJ0T2JzZXJ2aW5nUmVhZHlOb3RpZmljYXRp
b24KLXsKLSAgICBteSAkc2VsZiA9IHNoaWZ0OwotICAgIG15ICRjZW50ZXIgPSBOU0Rpc3RyaWJ1
dGVkTm90aWZpY2F0aW9uQ2VudGVyLT5kZWZhdWx0Q2VudGVyKCk7Ci0gICAgJGNlbnRlci0+YWRk
T2JzZXJ2ZXJfc2VsZWN0b3JfbmFtZV9vYmplY3RfKCRzZWxmLCAncmVhZHlOb3RpZmljYXRpb25D
YWxsYmFjaycsICJjb20uYXBwbGUuaXBob25lc2ltdWxhdG9yLnJlYWR5IiwgdW5kZWYpOyAKLX0K
LQotc3ViIHN0b3BPYnNlcnZpbmdBcHBsaWNhdGlvbkxhdW5jaGVkTm90aWZpY2F0aW9uCi17Ci0g
ICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBteSAkY2VudGVyID0gTlNEaXN0cmlidXRlZE5vdGlm
aWNhdGlvbkNlbnRlci0+ZGVmYXVsdENlbnRlcigpOwotICAgICRjZW50ZXItPnJlbW92ZU9ic2Vy
dmVyX25hbWVfb2JqZWN0Xygkc2VsZiwgImNvbS5hcHBsZS5pcGhvbmVzaW11bGF0b3IuYXBwbGlj
YXRpb25MYXVuY2hlZCIsIHVuZGVmKTsgCi19Ci0KLXN1YiBzdG9wT2JzZXJ2aW5nQXBwbGljYXRp
b25RdWl0Tm90aWZpY2F0aW9uCi17Ci0gICAgbXkgJHNlbGYgPSBzaGlmdDsKLSAgICBteSAkY2Vu
dGVyID0gTlNEaXN0cmlidXRlZE5vdGlmaWNhdGlvbkNlbnRlci0+ZGVmYXVsdENlbnRlcigpOwot
ICAgICRjZW50ZXItPnJlbW92ZU9ic2VydmVyX25hbWVfb2JqZWN0Xygkc2VsZiwgImNvbS5hcHBs
ZS5pcGhvbmVzaW11bGF0b3IuYXBwbGljYXRpb25RdWl0IiwgdW5kZWYpOyAKLX0KLQotc3ViIHN0
b3BPYnNlcnZpbmdSZWFkeU5vdGlmaWNhdGlvbgotewotICAgIG15ICRzZWxmID0gc2hpZnQ7Ci0g
ICAgbXkgJGNlbnRlciA9IE5TRGlzdHJpYnV0ZWROb3RpZmljYXRpb25DZW50ZXItPmRlZmF1bHRD
ZW50ZXIoKTsKLSAgICAkY2VudGVyLT5yZW1vdmVPYnNlcnZlcl9uYW1lX29iamVjdF8oJHNlbGYs
ICJjb20uYXBwbGUuaXBob25lc2ltdWxhdG9yLnJlYWR5IiwgdW5kZWYpOyAKLX0KLQotMTsKLV9f
RU5EX18KLQotPWhlYWQxIE5BTUUKLQotSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uIC0gUGVy
bCBleHRlbnNpb24gZm9yIHJlY2VpdmluZyBkaXN0cmlidXRlZCBub3RpZmljYXRpb25zIGZyb20g
dGhlIGlQaG9uZSBTaW11bGF0b3IKLQotPWhlYWQxIFNZTk9QU0lTCi0KLSAgICB1c2UgSVBob25l
U2ltdWxhdG9yTm90aWZpY2F0aW9uOwotCi0gICAgbXkgJGlwaG9uZVNpbXVsYXRvck5vdGlmaWNh
dGlvbiA9IG5ldyBJUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb247Ci0gICAgJGlwaG9uZVNpbXVs
YXRvck5vdGlmaWNhdGlvbi0+c3RhcnRPYnNlcnZpbmdSZWFkeU5vdGlmaWNhdGlvbigpOwotCi0g
ICAgd2hpbGUgKCEkaXBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uLT5oYXNSZWNlaXZlZFJlYWR5
Tm90aWZpY2F0aW9uKCkpIHsKLSAgICAgICAgbXkgJGRhdGUgPSBOU0RhdGUtPmRhdGVXaXRoVGlt
ZUludGVydmFsU2luY2VOb3coMC4xKTsKLSAgICAgICAgTlNSdW5Mb29wLT5jdXJyZW50UnVuTG9v
cC0+cnVuVW50aWxEYXRlKCRkYXRlKTsKLSAgICB9Ci0KLSAgICAkaXBob25lU2ltdWxhdG9yTm90
aWZpY2F0aW9uLT5zdG9wT2JzZXJ2aW5nUmVhZHlOb3RpZmljYXRpb24oKTsKLQotPWhlYWQxIERF
U0NSSVBUSU9OCi0KLUlQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbiBpcyB1c2VkIHRvIHJlY2Vp
dmUgZGlzdHJpYnV0ZWQgbm90aWZpY2F0aW9ucwotZnJvbSB0aGUgaVBob25lIFNpbXVsYXRvci4K
LQotPWhlYWQyIEV4cG9ydAotCi1DPCZhcHBsaWNhdGlvbkxhdW5jaGVkQXBwbGljYXRpb25QSUQ+
LAotQzwmYXBwbGljYXRpb25MYXVuY2hlZFNlc3Npb25VVUlEPiwKLUM8Jmhhc1JlY2VpdmVkQXBw
bGljYXRpb25MYXVuY2hlZE5vdGlmaWNhdGlvbj4sCi1DPCZoYXNSZWNlaXZlZEFwcGxpY2F0aW9u
UXVpdE5vdGlmaWNhdGlvbj4sCi1DPCZoYXNSZWNlaXZlZFJlYWR5Tm90aWZpY2F0aW9uPiwKLUM8
Jm5ldz4sCi1DPCZwb3N0RW5kU2Vzc2lvbk5vdGlmaWNhdGlvbj4sCi1DPCZwb3N0U3RhcnRTZXNz
aW9uTm90aWZpY2F0aW9uPiwKLUM8JnJlYWR5Tm90aWZpY2F0aW9uQ2FsbGJhY2s+LAotQzwmc2V0
SGFzUmVjZWl2ZWRSZWFkeU5vdGlmaWNhdGlvbj4sCi1DPCZzdGFydE9ic2VydmluZ0FwcGxpY2F0
aW9uTGF1bmNoZWROb3RpZmljYXRpb24+LAotQzwmc3RhcnRPYnNlcnZpbmdBcHBsaWNhdGlvblF1
aXROb3RpZmljYXRpb24+LAotQzwmc3RhcnRPYnNlcnZpbmdSZWFkeU5vdGlmaWNhdGlvbj4sCi1D
PCZzdG9wT2JzZXJ2aW5nQXBwbGljYXRpb25MYXVuY2hlZE5vdGlmaWNhdGlvbj4sCi1DPCZzdG9w
T2JzZXJ2aW5nQXBwbGljYXRpb25RdWl0Tm90aWZpY2F0aW9uPiwKLWFuZAotQzwmc3RvcE9ic2Vy
dmluZ1JlYWR5Tm90aWZpY2F0aW9uPgotYXJlIGV4cG9ydGVkIGJ5IGRlZmF1bHQuCi0KLT1oZWFk
MiBNZXRob2RzCi0KLT1vdmVyIDQKLQotPWl0ZW0gYXBwbGljYXRpb25MYXVuY2hlZEFwcGxpY2F0
aW9uUElEKCkKLQotUmV0dXJucyB0aGUgUElEIG9mIHRoZSBsYXVuY2hlZCBhcHBsaWNhdGlvbiBh
ZnRlciB0aGUgYXBwbGljYXRpb24gbGF1bmNoZWQKLWRpc3RyaWJ1dGVkIG5vdGlmaWNhdGlvbiBo
YXMgYmVlbiByZWNlaXZlZC4KLQotPWl0ZW0gYXBwbGljYXRpb25MYXVuY2hlZFNlc3Npb25VVUlE
KCkKLQotUmV0dXJucyB0aGUgc2Vzc2lvbiBVVUlEIG9mIHRoZSBsYXVuY2hlZCBhcHBsaWNhdGlv
biBhZnRlciB0aGUgYXBwbGljYXRpb24KLWxhdW5jaGVkIGRpc3RyaWJ1dGVkIG5vdGlmaWNhdGlv
biBoYXMgYmVlbiByZWNlaXZlZC4KLQotPWl0ZW0gaGFzUmVjZWl2ZWRBcHBsaWNhdGlvbkxhdW5j
aGVkTm90aWZpY2F0aW9uKCkKLQotUmV0dXJucyB0cnVlIGlmIHRoZSAiY29tLmFwcGxlLmlwaG9u
ZXNpbXVsYXRvci5hcHBsaWNhdGlvbkxhdW5jaGVkIgotZGlzdHJpYnV0ZWQgbm90aWZpY2F0aW9u
IGhhcyBiZWVuIHJlY2VpdmVkLCBlbHNlIGZhbHNlLgotCi09aXRlbSBoYXNSZWNlaXZlZEFwcGxp
Y2F0aW9uUXVpdE5vdGlmaWNhdGlvbigpCi0KLVJldHVybnMgdHJ1ZSBpZiB0aGUgImNvbS5hcHBs
ZS5pcGhvbmVzaW11bGF0b3IuYXBwbGljYXRpb25RdWl0IiBkaXN0cmlidXRlZAotbm90aWZpY2F0
aW9uIGhhcyBiZWVuIHJlY2VpdmVkLCBlbHNlIGZhbHNlLgotCi09aXRlbSBoYXNSZWNlaXZlZFJl
YWR5Tm90aWZpY2F0aW9uKCkKLQotUmV0dXJucyAxIGlmIHRoZSAiY29tLmFwcGxlLmlwaG9uZXNp
bXVsYXRvci5yZWFkeSIgZGlzdHJpYnV0ZWQgbm90aWZpY2F0aW9uCi1oYXMgYmVlbiByZWNlaXZl
ZCBmcm9tIHRoZSBpUGhvbmUgU2ltdWxhdG9yLCBlbHNlIHJldHVybnMgMC4KLQotTm90ZSB0aGF0
IGlmIHlvdSB3YW50IHRvIHJldXNlIHRoZSBJUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24gb2Jq
ZWN0LCB5b3UKLW11c3QgcmVzZXQgdGhlIGludGVybmFsIHN0YXRlIHVzaW5nIHRoZSBDPCZzZXRI
YXNSZWNlaXZlZFJlYWR5Tm90aWZpY2F0aW9uPgotbWV0aG9kLgotCi09aXRlbSBuZXcoKQotCi1D
cmVhdGVzIGEgbmV3IElQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbiBvYmplY3QuCi0KLT1pdGVt
IHBvc3RFbmRTZXNzaW9uTm90aWZpY2F0aW9uKCkKLQotU2VuZHMgImNvbS5hcHBsZS5pcGhvbmVz
aW11bGF0b3IuZW5kU2Vzc2lvbiIgZGlzdHJpYnV0ZWQgbm90aWZpY2F0aW9uIGZvcgotdGhlIGlQ
aG9uZSBTaW11bGF0b3IgcHJvY2Vzcy4KLQotPWl0ZW0gcG9zdFN0YXJ0U2Vzc2lvbk5vdGlmaWNh
dGlvbigpCi0KLVNlbmRzICJjb20uYXBwbGUuaXBob25lc2ltdWxhdG9yLnN0YXJ0U2Vzc2lvbiIg
ZGlzdHJpYnV0ZWQgbm90aWZpY2F0aW9uCi1mb3IgdGhlIGlQaG9uZSBTaW11bGF0b3IgcHJvY2Vz
cy4KLQotPWl0ZW0gcmVhZHlOb3RpZmljYXRpb25DYWxsYmFjaygpCi0KLU1ldGhvZCB1c2VkIHRv
IHJlY2VpdmUgdGhlICJjb20uYXBwbGUuaXBob25lc2ltdWxhdG9yLnJlYWR5IiBkaXN0cmlidXRl
ZAotbm90aWZpY2F0aW9uLiAgQ2FsbHMgQzwmc2V0SGFzUmVjZWl2ZWRSZWFkeU5vdGlmaWNhdGlv
bj4gdG8gc2V0IHRoZSB2YWx1ZQotdG8gMS4KLQotPWl0ZW0gc2V0SGFzUmVjZWl2ZWRSZWFkeU5v
dGlmaWNhdGlvbigkKQotCi1TZXRzIHRoZSBpbnRlcm5hbCBzdGF0ZSB0byB0aGUgdmFsdWUgcHJv
dmlkZWQuICBTaG91bGQgYmUgMCBvciAxLgotCi09aXRlbSBzdGFydE9ic2VydmluZ0FwcGxpY2F0
aW9uTGF1bmNoZWROb3RpZmljYXRpb24oKQotCi1TdGFydHMgb2JzZXJ2aW5nIHRoZSAiY29tLmFw
cGxlLmlwaG9uZXNpbXVsYXRvci5hcHBsaWNhdGlvbkxhdW5jaGVkIgotZGlzdHJpYnV0ZWQgbm90
aWZpY2F0aW9uLgotCi09aXRlbSBzdGFydE9ic2VydmluZ0FwcGxpY2F0aW9uUXVpdE5vdGlmaWNh
dGlvbigpCi0KLVN0YXJ0cyBvYnNlcnZpbmcgdGhlICJjb20uYXBwbGUuaXBob25lc2ltdWxhdG9y
LmFwcGxpY2F0aW9uUXVpdCIKLWRpc3RyaWJ1dGVkIG5vdGlmaWNhdGlvbi4KLQotPWl0ZW0gc3Rh
cnRPYnNlcnZpbmdSZWFkeU5vdGlmaWNhdGlvbigpCi0KLVN0YXJ0cyBvYnNlcnZpbmcgdGhlICJj
b20uYXBwbGUuaXBob25lc2ltdWxhdG9yLnJlYWR5IiBkaXN0cmlidXRlZAotbm90aWZpY2F0aW9u
LgotCi09aXRlbSBzdG9wT2JzZXJ2aW5nQXBwbGljYXRpb25MYXVuY2hlZE5vdGlmaWNhdGlvbigp
Ci0KLVN0b3BzIG9ic2VydmluZyB0aGUgImNvbS5hcHBsZS5pcGhvbmVzaW11bGF0b3IuYXBwbGlj
YXRpb25MYXVuY2hlZCIKLWRpc3RyaWJ1dGVkIG5vdGlmaWNhdGlvbi4KLQotPWl0ZW0gc3RvcE9i
c2VydmluZ0FwcGxpY2F0aW9uUXVpdE5vdGlmaWNhdGlvbigpCi0KLVN0b3BzIG9ic2VydmluZyB0
aGUgImNvbS5hcHBsZS5pcGhvbmVzaW11bGF0b3IuYXBwbGljYXRpb25RdWl0IgotZGlzdHJpYnV0
ZWQgbm90aWZpY2F0aW9uLgotCi09aXRlbSBzdG9wT2JzZXJ2aW5nUmVhZHlOb3RpZmljYXRpb24o
KQotCi1TdG9wcyBvYnNlcnZpbmcgdGhlICJjb20uYXBwbGUuaXBob25lc2ltdWxhdG9yLnJlYWR5
IiBkaXN0cmlidXRlZAotbm90aWZpY2F0aW9uLgotCi09YmFjawotCi09aGVhZDEgU0VFIEFMU08K
LQotTDxGb3VuZGF0aW9uPiBhbmQgTDxQZXJsT2JqQ0JyaWRnZT4uCi0KLT1jdXQKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9JUGhvbmVTaW11bGF0b3JO
b3RpZmljYXRpb24vcHBwb3J0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGVybFN1cHBv
cnQvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uL3BwcG9ydC5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiZjZkZDUwZWUxNzY5M2U4ZTUzZmYyOTZiNTNjMThmMGNlZjQ2Yzg5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9JUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24vcHBw
b3J0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2Mzc2ICswLDAgQEAKLSNpZiAwCi08PCdTS0lQJzsK
LSNlbmRpZgotLyoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIHBwcG9ydC5oIC0tIFBlcmwvUG9sbHV0
aW9uL1BvcnRhYmlsaXR5IFZlcnNpb24gMy4xMwotCi0gICAgQXV0b21hdGljYWxseSBjcmVhdGVk
IGJ5IERldmVsOjpQUFBvcnQgcnVubmluZyB1bmRlciBwZXJsIDUuMDEwMDAwLgotCi0gICAgRG8g
Tk9UIGVkaXQgdGhpcyBmaWxlIGRpcmVjdGx5ISAtLSBFZGl0IFBQUG9ydF9wbS5QTCBhbmQgdGhl
Ci0gICAgaW5jbHVkZXMgaW4gcGFydHMvaW5jLyBpbnN0ZWFkLgotCi0gICAgVXNlICdwZXJsZG9j
IHBwcG9ydC5oJyB0byB2aWV3IHRoZSBkb2N1bWVudGF0aW9uIGJlbG93LgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLVNLSVAKLQotPXBvZAotCi09aGVhZDEgTkFNRQotCi1wcHBvcnQuaCAtIFBlcmwvUG9s
bHV0aW9uL1BvcnRhYmlsaXR5IHZlcnNpb24gMy4xMwotCi09aGVhZDEgU1lOT1BTSVMKLQotICBw
ZXJsIHBwcG9ydC5oIFtvcHRpb25zXSBbc291cmNlIGZpbGVzXQotCi0gIFNlYXJjaGVzIGN1cnJl
bnQgZGlyZWN0b3J5IGZvciBmaWxlcyBpZiBubyBbc291cmNlIGZpbGVzXSBhcmUgZ2l2ZW4KLQot
ICAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgc2hvdyBzaG9ydCBoZWxwCi0KLSAgLS12ZXJz
aW9uICAgICAgICAgICAgICAgICAgIHNob3cgdmVyc2lvbgotCi0gIC0tcGF0Y2g9ZmlsZSAgICAg
ICAgICAgICAgICB3cml0ZSBvbmUgcGF0Y2ggZmlsZSB3aXRoIGNoYW5nZXMKLSAgLS1jb3B5PXN1
ZmZpeCAgICAgICAgICAgICAgIHdyaXRlIGNoYW5nZWQgY29waWVzIHdpdGggc3VmZml4Ci0gIC0t
ZGlmZj1wcm9ncmFtICAgICAgICAgICAgICB1c2UgZGlmZiBwcm9ncmFtIGFuZCBvcHRpb25zCi0K
LSAgLS1jb21wYXQtdmVyc2lvbj12ZXJzaW9uICAgIHByb3ZpZGUgY29tcGF0aWJpbGl0eSB3aXRo
IFBlcmwgdmVyc2lvbgotICAtLWNwbHVzcGx1cyAgICAgICAgICAgICAgICAgYWNjZXB0IEMrKyBj
b21tZW50cwotCi0gIC0tcXVpZXQgICAgICAgICAgICAgICAgICAgICBkb24ndCBvdXRwdXQgYW55
dGhpbmcgZXhjZXB0IGZhdGFsIGVycm9ycwotICAtLW5vZGlhZyAgICAgICAgICAgICAgICAgICAg
ZG9uJ3Qgc2hvdyBkaWFnbm9zdGljcwotICAtLW5vaGludHMgICAgICAgICAgICAgICAgICAgZG9u
J3Qgc2hvdyBoaW50cwotICAtLW5vY2hhbmdlcyAgICAgICAgICAgICAgICAgZG9uJ3Qgc3VnZ2Vz
dCBjaGFuZ2VzCi0gIC0tbm9maWx0ZXIgICAgICAgICAgICAgICAgICBkb24ndCBmaWx0ZXIgaW5w
dXQgZmlsZXMKLQotICAtLXN0cmlwICAgICAgICAgICAgICAgICAgICAgc3RyaXAgYWxsIHNjcmlw
dCBhbmQgZG9jIGZ1bmN0aW9uYWxpdHkgZnJvbQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHBwb3J0LmgKLQotICAtLWxpc3QtcHJvdmlkZWQgICAgICAgICAgICAgbGlzdCBwcm92aWRl
ZCBBUEkKLSAgLS1saXN0LXVuc3VwcG9ydGVkICAgICAgICAgIGxpc3QgdW5zdXBwb3J0ZWQgQVBJ
Ci0gIC0tYXBpLWluZm89bmFtZSAgICAgICAgICAgICBzaG93IFBlcmwgQVBJIHBvcnRhYmlsaXR5
IGluZm9ybWF0aW9uCi0KLT1oZWFkMSBDT01QQVRJQklMSVRZCi0KLVRoaXMgdmVyc2lvbiBvZiBG
PHBwcG9ydC5oPiBpcyBkZXNpZ25lZCB0byBzdXBwb3J0IG9wZXJhdGlvbiB3aXRoIFBlcmwKLWlu
c3RhbGxhdGlvbnMgYmFjayB0byA1LjAwMywgYW5kIGhhcyBiZWVuIHRlc3RlZCB1cCB0byA1LjEw
LjAuCi0KLT1oZWFkMSBPUFRJT05TCi0KLT1oZWFkMiAtLWhlbHAKLQotRGlzcGxheSBhIGJyaWVm
IHVzYWdlIHN1bW1hcnkuCi0KLT1oZWFkMiAtLXZlcnNpb24KLQotRGlzcGxheSB0aGUgdmVyc2lv
biBvZiBGPHBwcG9ydC5oPi4KLQotPWhlYWQyIC0tcGF0Y2g9STxmaWxlPgotCi1JZiB0aGlzIG9w
dGlvbiBpcyBnaXZlbiwgYSBzaW5nbGUgcGF0Y2ggZmlsZSB3aWxsIGJlIGNyZWF0ZWQgaWYKLWFu
eSBjaGFuZ2VzIGFyZSBzdWdnZXN0ZWQuIFRoaXMgcmVxdWlyZXMgYSB3b3JraW5nIGRpZmYgcHJv
Z3JhbQotdG8gYmUgaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtLgotCi09aGVhZDIgLS1jb3B5PUk8
c3VmZml4PgotCi1JZiB0aGlzIG9wdGlvbiBpcyBnaXZlbiwgYSBjb3B5IG9mIGVhY2ggZmlsZSB3
aWxsIGJlIHNhdmVkIHdpdGgKLXRoZSBnaXZlbiBzdWZmaXggdGhhdCBjb250YWlucyB0aGUgc3Vn
Z2VzdGVkIGNoYW5nZXMuIFRoaXMgZG9lcwotbm90IHJlcXVpcmUgYW55IGV4dGVybmFsIHByb2dy
YW1zLiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdAotYXV0b21hZ2lhbGx5IGFkZCBhIGRvdCBiZXR3
ZWVuIHRoZSBvcmlnaW5hbCBmaWxlbmFtZSBhbmQgdGhlCi1zdWZmaXguIElmIHlvdSB3YW50IHRo
ZSBkb3QsIHlvdSBoYXZlIHRvIGluY2x1ZGUgaXQgaW4gdGhlIG9wdGlvbgotYXJndW1lbnQuCi0K
LUlmIG5laXRoZXIgQzwtLXBhdGNoPiBvciBDPC0tY29weT4gYXJlIGdpdmVuLCB0aGUgZGVmYXVs
dCBpcyB0bwotc2ltcGx5IHByaW50IHRoZSBkaWZmcyBmb3IgZWFjaCBmaWxlLiBUaGlzIHJlcXVp
cmVzIGVpdGhlcgotQzxUZXh0OjpEaWZmPiBvciBhIEM8ZGlmZj4gcHJvZ3JhbSB0byBiZSBpbnN0
YWxsZWQuCi0KLT1oZWFkMiAtLWRpZmY9STxwcm9ncmFtPgotCi1NYW51YWxseSBzZXQgdGhlIGRp
ZmYgcHJvZ3JhbSBhbmQgb3B0aW9ucyB0byB1c2UuIFRoZSBkZWZhdWx0Ci1pcyB0byB1c2UgQzxU
ZXh0OjpEaWZmPiwgd2hlbiBpbnN0YWxsZWQsIGFuZCBvdXRwdXQgdW5pZmllZAotY29udGV4dCBk
aWZmcy4KLQotPWhlYWQyIC0tY29tcGF0LXZlcnNpb249STx2ZXJzaW9uPgotCi1UZWxsIEY8cHBw
b3J0Lmg+IHRvIGNoZWNrIGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGdpdmVuCi1QZXJsIHZl
cnNpb24uIFRoZSBkZWZhdWx0IGlzIHRvIGNoZWNrIGZvciBjb21wYXRpYmlsaXR5IHdpdGggUGVy
bAotdmVyc2lvbiA1LjAwMy4gWW91IGNhbiB1c2UgdGhpcyBvcHRpb24gdG8gcmVkdWNlIHRoZSBv
dXRwdXQKLW9mIEY8cHBwb3J0Lmg+IGlmIHlvdSBpbnRlbmQgdG8gYmUgYmFja3dhcmQgY29tcGF0
aWJsZSBvbmx5Ci1kb3duIHRvIGEgY2VydGFpbiBQZXJsIHZlcnNpb24uCi0KLT1oZWFkMiAtLWNw
bHVzcGx1cwotCi1Vc3VhbGx5LCBGPHBwcG9ydC5oPiB3aWxsIGRldGVjdCBDKysgc3R5bGUgY29t
bWVudHMgYW5kCi1yZXBsYWNlIHRoZW0gd2l0aCBDIHN0eWxlIGNvbW1lbnRzIGZvciBwb3J0YWJp
bGl0eSByZWFzb25zLgotVXNpbmcgdGhpcyBvcHRpb24gaW5zdHJ1Y3RzIEY8cHBwb3J0Lmg+IHRv
IGxlYXZlIEMrKwotY29tbWVudHMgdW50b3VjaGVkLgotCi09aGVhZDIgLS1xdWlldAotCi1CZSBx
dWlldC4gRG9uJ3QgcHJpbnQgYW55dGhpbmcgZXhjZXB0IGZhdGFsIGVycm9ycy4KLQotPWhlYWQy
IC0tbm9kaWFnCi0KLURvbid0IG91dHB1dCBhbnkgZGlhZ25vc3RpYyBtZXNzYWdlcy4gT25seSBw
b3J0YWJpbGl0eQotYWxlcnRzIHdpbGwgYmUgcHJpbnRlZC4KLQotPWhlYWQyIC0tbm9oaW50cwot
Ci1Eb24ndCBvdXRwdXQgYW55IGhpbnRzLiBIaW50cyBvZnRlbiBjb250YWluIHVzZWZ1bCBwb3J0
YWJpbGl0eQotbm90ZXMuIFdhcm5pbmdzIHdpbGwgc3RpbGwgYmUgZGlzcGxheWVkLgotCi09aGVh
ZDIgLS1ub2NoYW5nZXMKLQotRG9uJ3Qgc3VnZ2VzdCBhbnkgY2hhbmdlcy4gT25seSBnaXZlIGRp
YWdub3N0aWMgb3V0cHV0IGFuZCBoaW50cwotdW5sZXNzIHRoZXNlIGFyZSBhbHNvIGRlYWN0aXZh
dGVkLgotCi09aGVhZDIgLS1ub2ZpbHRlcgotCi1Eb24ndCBmaWx0ZXIgdGhlIGxpc3Qgb2YgaW5w
dXQgZmlsZXMuIEJ5IGRlZmF1bHQsIGZpbGVzIG5vdCBsb29raW5nCi1saWtlIHNvdXJjZSBjb2Rl
IChpLmUuIG5vdCAqLnhzLCAqLmMsICouY2MsICouY3BwIG9yICouaCkgYXJlIHNraXBwZWQuCi0K
LT1oZWFkMiAtLXN0cmlwCi0KLVN0cmlwIGFsbCBzY3JpcHQgYW5kIGRvY3VtZW50YXRpb24gZnVu
Y3Rpb25hbGl0eSBmcm9tIEY8cHBwb3J0Lmg+LgotVGhpcyByZWR1Y2VzIHRoZSBzaXplIG9mIEY8
cHBwb3J0Lmg+IGRyYW1hdGljYWxseSBhbmQgbWF5IGJlIHVzZWZ1bAotaWYgeW91IHdhbnQgdG8g
aW5jbHVkZSBGPHBwcG9ydC5oPiBpbiBzbWFsbGVyIG1vZHVsZXMgd2l0aG91dAotaW5jcmVhc2lu
ZyB0aGVpciBkaXN0cmlidXRpb24gc2l6ZSB0b28gbXVjaC4KLQotVGhlIHN0cmlwcGVkIEY8cHBw
b3J0Lmg+IHdpbGwgaGF2ZSBhIEM8LS11bnN0cmlwPiBvcHRpb24gdGhhdCBhbGxvd3MKLXlvdSB0
byB1bmRvIHRoZSBzdHJpcHBpbmcsIGJ1dCBvbmx5IGlmIGFuIGFwcHJvcHJpYXRlIEM8RGV2ZWw6
OlBQUG9ydD4KLW1vZHVsZSBpcyBpbnN0YWxsZWQuCi0KLT1oZWFkMiAtLWxpc3QtcHJvdmlkZWQK
LQotTGlzdHMgdGhlIEFQSSBlbGVtZW50cyBmb3Igd2hpY2ggY29tcGF0aWJpbGl0eSBpcyBwcm92
aWRlZCBieQotRjxwcHBvcnQuaD4uIEFsc28gbGlzdHMgaWYgaXQgbXVzdCBiZSBleHBsaWNpdGx5
IHJlcXVlc3RlZCwKLWlmIGl0IGhhcyBkZXBlbmRlbmNpZXMsIGFuZCBpZiB0aGVyZSBhcmUgaGlu
dHMgb3Igd2FybmluZ3MgZm9yIGl0LgotCi09aGVhZDIgLS1saXN0LXVuc3VwcG9ydGVkCi0KLUxp
c3RzIHRoZSBBUEkgZWxlbWVudHMgdGhhdCBhcmUga25vd24gbm90IHRvIGJlIHN1cHBvcnRlZCBi
eQotRjxwcHBvcnQuaD4gYW5kIGJlbG93IHdoaWNoIHZlcnNpb24gb2YgUGVybCB0aGV5IHByb2Jh
Ymx5Ci13b24ndCBiZSBhdmFpbGFibGUgb3Igd29yay4KLQotPWhlYWQyIC0tYXBpLWluZm89STxu
YW1lPgotCi1TaG93IHBvcnRhYmlsaXR5IGluZm9ybWF0aW9uIGZvciBBUEkgZWxlbWVudHMgbWF0
Y2hpbmcgSTxuYW1lPi4KLUlmIEk8bmFtZT4gaXMgc3Vycm91bmRlZCBieSBzbGFzaGVzLCBpdCBp
cyBpbnRlcnByZXRlZCBhcyBhIHJlZ3VsYXIKLWV4cHJlc3Npb24uCi0KLT1oZWFkMSBERVNDUklQ
VElPTgotCi1JbiBvcmRlciBmb3IgYSBQZXJsIGV4dGVuc2lvbiAoWFMpIG1vZHVsZSB0byBiZSBh
cyBwb3J0YWJsZSBhcyBwb3NzaWJsZQotYWNyb3NzIGRpZmZlcmluZyB2ZXJzaW9ucyBvZiBQZXJs
IGl0c2VsZiwgY2VydGFpbiBzdGVwcyBuZWVkIHRvIGJlIHRha2VuLgotCi09b3ZlciA0Ci0KLT1p
dGVtICoKLQotSW5jbHVkaW5nIHRoaXMgaGVhZGVyIGlzIHRoZSBmaXJzdCBtYWpvciBvbmUuIFRo
aXMgYWxvbmUgd2lsbCBnaXZlIHlvdQotYWNjZXNzIHRvIGEgbGFyZ2UgcGFydCBvZiB0aGUgUGVy
bCBBUEkgdGhhdCBoYXNuJ3QgYmVlbiBhdmFpbGFibGUgaW4KLWVhcmxpZXIgUGVybCByZWxlYXNl
cy4gVXNlCi0KLSAgICBwZXJsIHBwcG9ydC5oIC0tbGlzdC1wcm92aWRlZAotCi10byBzZWUgd2hp
Y2ggQVBJIGVsZW1lbnRzIGFyZSBwcm92aWRlZCBieSBwcHBvcnQuaC4KLQotPWl0ZW0gKgotCi1Z
b3Ugc2hvdWxkIGF2b2lkIHVzaW5nIGRlcHJlY2F0ZWQgcGFydHMgb2YgdGhlIEFQSS4gRm9yIGV4
YW1wbGUsIHVzaW5nCi1nbG9iYWwgUGVybCB2YXJpYWJsZXMgd2l0aG91dCB0aGUgQzxQTF8+IHBy
ZWZpeCBpcyBkZXByZWNhdGVkLiBBbHNvLAotc29tZSBBUEkgZnVuY3Rpb25zIHVzZWQgdG8gaGF2
ZSBhIEM8cGVybF8+IHByZWZpeC4gVXNpbmcgdGhpcyBmb3JtIGlzCi1hbHNvIGRlcHJlY2F0ZWQu
IFlvdSBjYW4gc2FmZWx5IHVzZSB0aGUgc3VwcG9ydGVkIEFQSSwgYXMgRjxwcHBvcnQuaD4KLXdp
bGwgcHJvdmlkZSB3cmFwcGVycyBmb3Igb2xkZXIgUGVybCB2ZXJzaW9ucy4KLQotPWl0ZW0gKgot
Ci1JZiB5b3UgdXNlIG9uZSBvZiBhIGZldyBmdW5jdGlvbnMgb3IgdmFyaWFibGVzIHRoYXQgd2Vy
ZSBub3QgcHJlc2VudCBpbgotZWFybGllciB2ZXJzaW9ucyBvZiBQZXJsLCBhbmQgdGhhdCBjYW4n
dCBiZSBwcm92aWRlZCB1c2luZyBhIG1hY3JvLCB5b3UKLWhhdmUgdG8gZXhwbGljaXRseSByZXF1
ZXN0IHN1cHBvcnQgZm9yIHRoZXNlIGZ1bmN0aW9ucyBieSBhZGRpbmcgb25lIG9yCi1tb3JlIEM8
I2RlZmluZT5zIGluIHlvdXIgc291cmNlIGNvZGUgYmVmb3JlIHRoZSBpbmNsdXNpb24gb2YgRjxw
cHBvcnQuaD4uCi0KLVRoZXNlIGZ1bmN0aW9ucyBvciB2YXJpYWJsZXMgd2lsbCBiZSBtYXJrZWQg
QzxleHBsaWNpdD4gaW4gdGhlIGxpc3Qgc2hvd24KLWJ5IEM8LS1saXN0LXByb3ZpZGVkPi4KLQot
RGVwZW5kaW5nIG9uIHdoZXRoZXIgeW91IG1vZHVsZSBoYXMgYSBzaW5nbGUgb3IgbXVsdGlwbGUg
ZmlsZXMgdGhhdAotdXNlIHN1Y2ggZnVuY3Rpb25zIG9yIHZhcmlhYmxlcywgeW91IHdhbnQgZWl0
aGVyIEM8c3RhdGljPiBvciBnbG9iYWwKLXZhcmlhbnRzLgotCi1Gb3IgYSBDPHN0YXRpYz4gZnVu
Y3Rpb24gb3IgdmFyaWFibGUgKHVzZWQgb25seSBpbiBhIHNpbmdsZSBzb3VyY2UKLWZpbGUpLCB1
c2U6Ci0KLSAgICAjZGVmaW5lIE5FRURfZnVuY3Rpb24KLSAgICAjZGVmaW5lIE5FRURfdmFyaWFi
bGUKLQotRm9yIGEgZ2xvYmFsIGZ1bmN0aW9uIG9yIHZhcmlhYmxlICh1c2VkIGluIG11bHRpcGxl
IHNvdXJjZSBmaWxlcyksCi11c2U6Ci0KLSAgICAjZGVmaW5lIE5FRURfZnVuY3Rpb25fR0xPQkFM
Ci0gICAgI2RlZmluZSBORUVEX3ZhcmlhYmxlX0dMT0JBTAotCi1Ob3RlIHRoYXQgeW91IG11c3Ru
J3QgaGF2ZSBtb3JlIHRoYW4gb25lIGdsb2JhbCByZXF1ZXN0IGZvciB0aGUKLXNhbWUgZnVuY3Rp
b24gb3IgdmFyaWFibGUgaW4geW91ciBwcm9qZWN0LgotCi0gICAgRnVuY3Rpb24gLyBWYXJpYWJs
ZSAgICAgICBTdGF0aWMgUmVxdWVzdCAgICAgICAgICAgICAgIEdsb2JhbCBSZXF1ZXN0Ci0gICAg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBQTF9zaWduYWxzICAgICAgICAg
ICAgICAgIE5FRURfUExfc2lnbmFscyAgICAgICAgICAgICAgTkVFRF9QTF9zaWduYWxzX0dMT0JB
TAotICAgIGV2YWxfcHYoKSAgICAgICAgICAgICAgICAgTkVFRF9ldmFsX3B2ICAgICAgICAgICAg
ICAgICBORUVEX2V2YWxfcHZfR0xPQkFMCi0gICAgZ3Jva19iaW4oKSAgICAgICAgICAgICAgICBO
RUVEX2dyb2tfYmluICAgICAgICAgICAgICAgIE5FRURfZ3Jva19iaW5fR0xPQkFMCi0gICAgZ3Jv
a19oZXgoKSAgICAgICAgICAgICAgICBORUVEX2dyb2tfaGV4ICAgICAgICAgICAgICAgIE5FRURf
Z3Jva19oZXhfR0xPQkFMCi0gICAgZ3Jva19udW1iZXIoKSAgICAgICAgICAgICBORUVEX2dyb2tf
bnVtYmVyICAgICAgICAgICAgIE5FRURfZ3Jva19udW1iZXJfR0xPQkFMCi0gICAgZ3Jva19udW1l
cmljX3JhZGl4KCkgICAgICBORUVEX2dyb2tfbnVtZXJpY19yYWRpeCAgICAgIE5FRURfZ3Jva19u
dW1lcmljX3JhZGl4X0dMT0JBTAotICAgIGdyb2tfb2N0KCkgICAgICAgICAgICAgICAgTkVFRF9n
cm9rX29jdCAgICAgICAgICAgICAgICBORUVEX2dyb2tfb2N0X0dMT0JBTAotICAgIGxvYWRfbW9k
dWxlKCkgICAgICAgICAgICAgTkVFRF9sb2FkX21vZHVsZSAgICAgICAgICAgICBORUVEX2xvYWRf
bW9kdWxlX0dMT0JBTAotICAgIG15X3NucHJpbnRmKCkgICAgICAgICAgICAgTkVFRF9teV9zbnBy
aW50ZiAgICAgICAgICAgICBORUVEX215X3NucHJpbnRmX0dMT0JBTAotICAgIG15X3N0cmxjYXQo
KSAgICAgICAgICAgICAgTkVFRF9teV9zdHJsY2F0ICAgICAgICAgICAgICBORUVEX215X3N0cmxj
YXRfR0xPQkFMCi0gICAgbXlfc3RybGNweSgpICAgICAgICAgICAgICBORUVEX215X3N0cmxjcHkg
ICAgICAgICAgICAgIE5FRURfbXlfc3RybGNweV9HTE9CQUwKLSAgICBuZXdDT05TVFNVQigpICAg
ICAgICAgICAgIE5FRURfbmV3Q09OU1RTVUIgICAgICAgICAgICAgTkVFRF9uZXdDT05TVFNVQl9H
TE9CQUwKLSAgICBuZXdSVl9ub2luYygpICAgICAgICAgICAgIE5FRURfbmV3UlZfbm9pbmMgICAg
ICAgICAgICAgTkVFRF9uZXdSVl9ub2luY19HTE9CQUwKLSAgICBuZXdTVnB2bl9zaGFyZSgpICAg
ICAgICAgIE5FRURfbmV3U1Zwdm5fc2hhcmUgICAgICAgICAgTkVFRF9uZXdTVnB2bl9zaGFyZV9H
TE9CQUwKLSAgICBzdl8ycHZfZmxhZ3MoKSAgICAgICAgICAgIE5FRURfc3ZfMnB2X2ZsYWdzICAg
ICAgICAgICAgTkVFRF9zdl8ycHZfZmxhZ3NfR0xPQkFMCi0gICAgc3ZfMnB2Ynl0ZSgpICAgICAg
ICAgICAgICBORUVEX3N2XzJwdmJ5dGUgICAgICAgICAgICAgIE5FRURfc3ZfMnB2Ynl0ZV9HTE9C
QUwKLSAgICBzdl9jYXRwdmZfbWcoKSAgICAgICAgICAgIE5FRURfc3ZfY2F0cHZmX21nICAgICAg
ICAgICAgTkVFRF9zdl9jYXRwdmZfbWdfR0xPQkFMCi0gICAgc3ZfY2F0cHZmX21nX25vY29udGV4
dCgpICBORUVEX3N2X2NhdHB2Zl9tZ19ub2NvbnRleHQgIE5FRURfc3ZfY2F0cHZmX21nX25vY29u
dGV4dF9HTE9CQUwKLSAgICBzdl9wdm5fZm9yY2VfZmxhZ3MoKSAgICAgIE5FRURfc3ZfcHZuX2Zv
cmNlX2ZsYWdzICAgICAgTkVFRF9zdl9wdm5fZm9yY2VfZmxhZ3NfR0xPQkFMCi0gICAgc3Zfc2V0
cHZmX21nKCkgICAgICAgICAgICBORUVEX3N2X3NldHB2Zl9tZyAgICAgICAgICAgIE5FRURfc3Zf
c2V0cHZmX21nX0dMT0JBTAotICAgIHN2X3NldHB2Zl9tZ19ub2NvbnRleHQoKSAgTkVFRF9zdl9z
ZXRwdmZfbWdfbm9jb250ZXh0ICBORUVEX3N2X3NldHB2Zl9tZ19ub2NvbnRleHRfR0xPQkFMCi0g
ICAgdmxvYWRfbW9kdWxlKCkgICAgICAgICAgICBORUVEX3Zsb2FkX21vZHVsZSAgICAgICAgICAg
IE5FRURfdmxvYWRfbW9kdWxlX0dMT0JBTAotICAgIHZuZXdTVnB2ZigpICAgICAgICAgICAgICAg
TkVFRF92bmV3U1ZwdmYgICAgICAgICAgICAgICBORUVEX3ZuZXdTVnB2Zl9HTE9CQUwKLSAgICB3
YXJuZXIoKSAgICAgICAgICAgICAgICAgIE5FRURfd2FybmVyICAgICAgICAgICAgICAgICAgTkVF
RF93YXJuZXJfR0xPQkFMCi0KLVRvIGF2b2lkIG5hbWVzcGFjZSBjb25mbGljdHMsIHlvdSBjYW4g
Y2hhbmdlIHRoZSBuYW1lc3BhY2Ugb2YgdGhlCi1leHBsaWNpdGx5IGV4cG9ydGVkIGZ1bmN0aW9u
cyAvIHZhcmlhYmxlcyB1c2luZyB0aGUgQzxEUFBQX05BTUVTUEFDRT4KLW1hY3JvLiBKdXN0IEM8
I2RlZmluZT4gdGhlIG1hY3JvIGJlZm9yZSBpbmNsdWRpbmcgQzxwcHBvcnQuaD46Ci0KLSAgICAj
ZGVmaW5lIERQUFBfTkFNRVNQQUNFIE15T3duTmFtZXNwYWNlXwotICAgICNpbmNsdWRlICJwcHBv
cnQuaCIKLQotVGhlIGRlZmF1bHQgbmFtZXNwYWNlIGlzIEM8RFBQUF8+LgotCi09YmFjawotCi1U
aGUgZ29vZCB0aGluZyBpcyB0aGF0IG1vc3Qgb2YgdGhlIGFib3ZlIGNhbiBiZSBjaGVja2VkIGJ5
IHJ1bm5pbmcKLUY8cHBwb3J0Lmg+IG9uIHlvdXIgc291cmNlIGNvZGUuIFNlZSB0aGUgbmV4dCBz
ZWN0aW9uIGZvcgotZGV0YWlscy4KLQotPWhlYWQxIEVYQU1QTEVTCi0KLVRvIHZlcmlmeSB3aGV0
aGVyIEY8cHBwb3J0Lmg+IGlzIG5lZWRlZCBmb3IgeW91ciBtb2R1bGUsIHdoZXRoZXIgeW91Ci1z
aG91bGQgbWFrZSBhbnkgY2hhbmdlcyB0byB5b3VyIGNvZGUsIGFuZCB3aGV0aGVyIGFueSBzcGVj
aWFsIGRlZmluZXMKLXNob3VsZCBiZSB1c2VkLCBGPHBwcG9ydC5oPiBjYW4gYmUgcnVuIGFzIGEg
UGVybCBzY3JpcHQgdG8gY2hlY2sgeW91cgotc291cmNlIGNvZGUuIFNpbXBseSBzYXk6Ci0KLSAg
ICBwZXJsIHBwcG9ydC5oCi0KLVRoZSByZXN1bHQgd2lsbCB1c3VhbGx5IGJlIGEgbGlzdCBvZiBw
YXRjaGVzIHN1Z2dlc3RpbmcgY2hhbmdlcwotdGhhdCBzaG91bGQgYXQgbGVhc3QgYmUgYWNjZXB0
YWJsZSwgaWYgbm90IG5lY2Vzc2FyaWx5IHRoZSBtb3N0Ci1lZmZpY2llbnQgc29sdXRpb24sIG9y
IGEgZml4IGZvciBhbGwgcG9zc2libGUgcHJvYmxlbXMuCi0KLUlmIHlvdSBrbm93IHRoYXQgeW91
ciBYUyBtb2R1bGUgdXNlcyBmZWF0dXJlcyBvbmx5IGF2YWlsYWJsZSBpbgotbmV3ZXIgUGVybCBy
ZWxlYXNlcywgaWYgeW91J3JlIGF3YXJlIHRoYXQgaXQgdXNlcyBDKysgY29tbWVudHMsCi1hbmQg
aWYgeW91IHdhbnQgYWxsIHN1Z2dlc3Rpb25zIGFzIGEgc2luZ2xlIHBhdGNoIGZpbGUsIHlvdSBj
b3VsZAotdXNlIHNvbWV0aGluZyBsaWtlIHRoaXM6Ci0KLSAgICBwZXJsIHBwcG9ydC5oIC0tY29t
cGF0LXZlcnNpb249NS42LjAgLS1jcGx1c3BsdXMgLS1wYXRjaD10ZXN0LmRpZmYKLQotSWYgeW91
IG9ubHkgd2FudCB5b3VyIGNvZGUgdG8gYmUgc2Nhbm5lZCB3aXRob3V0IGFueSBzdWdnZXN0aW9u
cwotZm9yIGNoYW5nZXMsIHVzZToKLQotICAgIHBlcmwgcHBwb3J0LmggLS1ub2NoYW5nZXMKLQot
WW91IGNhbiBzcGVjaWZ5IGEgZGlmZmVyZW50IEM8ZGlmZj4gcHJvZ3JhbSBvciBvcHRpb25zLCB1
c2luZwotdGhlIEM8LS1kaWZmPiBvcHRpb246Ci0KLSAgICBwZXJsIHBwcG9ydC5oIC0tZGlmZj0n
ZGlmZiAtQyAxMCcKLQotVGhpcyB3b3VsZCBvdXRwdXQgY29udGV4dCBkaWZmcyB3aXRoIDEwIGxp
bmVzIG9mIGNvbnRleHQuCi0KLUlmIHlvdSB3YW50IHRvIGNyZWF0ZSBwYXRjaGVkIGNvcGllcyBv
ZiB5b3VyIGZpbGVzIGluc3RlYWQsIHVzZToKLQotICAgIHBlcmwgcHBwb3J0LmggLS1jb3B5PS5u
ZXcKLQotVG8gZGlzcGxheSBwb3J0YWJpbGl0eSBpbmZvcm1hdGlvbiBmb3IgdGhlIEM8bmV3U1Zw
dm4+IGZ1bmN0aW9uLAotdXNlOgotCi0gICAgcGVybCBwcHBvcnQuaCAtLWFwaS1pbmZvPW5ld1NW
cHZuCi0KLVNpbmNlIHRoZSBhcmd1bWVudCB0byBDPC0tYXBpLWluZm8+IGNhbiBiZSBhIHJlZ3Vs
YXIgZXhwcmVzc2lvbiwKLXlvdSBjYW4gdXNlCi0KLSAgICBwZXJsIHBwcG9ydC5oIC0tYXBpLWlu
Zm89L19ub21nJC8KLQotdG8gZGlzcGxheSBwb3J0YWJpbGl0eSBpbmZvcm1hdGlvbiBmb3IgYWxs
IEM8X25vbWc+IGZ1bmN0aW9ucyBvcgotCi0gICAgcGVybCBwcHBvcnQuaCAtLWFwaS1pbmZvPS8u
LwotCi10byBkaXNwbGF5IGluZm9ybWF0aW9uIGZvciBhbGwga25vd24gQVBJIGVsZW1lbnRzLgot
Ci09aGVhZDEgQlVHUwotCi1JZiB0aGlzIHZlcnNpb24gb2YgRjxwcHBvcnQuaD4gaXMgY2F1c2lu
ZyBmYWlsdXJlIGR1cmluZwotdGhlIGNvbXBpbGF0aW9uIG9mIHRoaXMgbW9kdWxlLCBwbGVhc2Ug
Y2hlY2sgaWYgbmV3ZXIgdmVyc2lvbnMKLW9mIGVpdGhlciB0aGlzIG1vZHVsZSBvciBDPERldmVs
OjpQUFBvcnQ+IGFyZSBhdmFpbGFibGUgb24gQ1BBTgotYmVmb3JlIHNlbmRpbmcgYSBidWcgcmVw
b3J0LgotCi1JZiBGPHBwcG9ydC5oPiB3YXMgZ2VuZXJhdGVkIHVzaW5nIHRoZSBsYXRlc3QgdmVy
c2lvbiBvZgotQzxEZXZlbDo6UFBQb3J0PiBhbmQgaXMgY2F1c2luZyBmYWlsdXJlIG9mIHRoaXMg
bW9kdWxlLCBwbGVhc2UKLWZpbGUgYSBidWcgcmVwb3J0IHVzaW5nIHRoZSBDUEFOIFJlcXVlc3Qg
VHJhY2tlciBhdCBMPGh0dHA6Ly9ydC5jcGFuLm9yZy8+LgotCi1QbGVhc2UgaW5jbHVkZSB0aGUg
Zm9sbG93aW5nIGluZm9ybWF0aW9uOgotCi09b3ZlciA0Ci0KLT1pdGVtIDEuCi0KLVRoZSBjb21w
bGV0ZSBvdXRwdXQgZnJvbSBydW5uaW5nICJwZXJsIC1WIgotCi09aXRlbSAyLgotCi1UaGlzIGZp
bGUuCi0KLT1pdGVtIDMuCi0KLVRoZSBuYW1lIGFuZCB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUgeW91
IHdlcmUgdHJ5aW5nIHRvIGJ1aWxkLgotCi09aXRlbSA0LgotCi1BIGZ1bGwgbG9nIG9mIHRoZSBi
dWlsZCB0aGF0IGZhaWxlZC4KLQotPWl0ZW0gNS4KLQotQW55IG90aGVyIGluZm9ybWF0aW9uIHRo
YXQgeW91IHRoaW5rIGNvdWxkIGJlIHJlbGV2YW50LgotCi09YmFjawotCi1Gb3IgdGhlIGxhdGVz
dCB2ZXJzaW9uIG9mIHRoaXMgY29kZSwgcGxlYXNlIGdldCB0aGUgQzxEZXZlbDo6UFBQb3J0Pgot
bW9kdWxlIGZyb20gQ1BBTi4KLQotPWhlYWQxIENPUFlSSUdIVAotCi1WZXJzaW9uIDMueCwgQ29w
eXJpZ2h0IChjKSAyMDA0LTIwMDcsIE1hcmN1cyBIb2xsYW5kLU1vcml0ei4KLQotVmVyc2lvbiAy
LngsIENvcHlyaWdodCAoQykgMjAwMSwgUGF1bCBNYXJxdWVzcy4KLQotVmVyc2lvbiAxLngsIENv
cHlyaWdodCAoQykgMTk5OSwgS2VubmV0aCBBbGJhbm93c2tpLgotCi1UaGlzIHByb2dyYW0gaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi1tb2RpZnkgaXQg
dW5kZXIgdGhlIHNhbWUgdGVybXMgYXMgUGVybCBpdHNlbGYuCi0KLT1oZWFkMSBTRUUgQUxTTwot
Ci1TZWUgTDxEZXZlbDo6UFBQb3J0Pi4KLQotPWN1dAotCi11c2Ugc3RyaWN0OwotCi0jIERpc2Fi
bGUgYnJva2VuIFRSSUUtb3B0aW1pemF0aW9uCi1CRUdJTiB7IGV2YWwgJyR7XlJFX1RSSUVfTUFY
QlVGfSA9IC0xJyBpZiAkXSA+PSA1LjAwOTAwNCAmJiAkXSA8PSA1LjAwOTAwNSB9Ci0KLW15ICRW
RVJTSU9OID0gMy4xMzsKLQotbXkgJW9wdCA9ICgKLSAgcXVpZXQgICAgID0+IDAsCi0gIGRpYWcg
ICAgICA9PiAxLAotICBoaW50cyAgICAgPT4gMSwKLSAgY2hhbmdlcyAgID0+IDEsCi0gIGNwbHVz
cGx1cyA9PiAwLAotICBmaWx0ZXIgICAgPT4gMSwKLSAgc3RyaXAgICAgID0+IDAsCi0gIHZlcnNp
b24gICA9PiAwLAotKTsKLQotbXkoJHBwcG9ydCkgPSAkMCA9fiAvKFtcdy5dKykkLzsKLW15ICRM
RiA9ICcoPzpcclxufFtcclxuXSknOyAgICMgbGluZSBmZWVkCi1teSAkSFMgPSAiWyBcdF0iOyAg
ICAgICAgICAgICAjIGhvcml6b250YWwgd2hpdGVzcGFjZQotCi0jIE5ldmVyIHVzZSBDIGNvbW1l
bnRzIGluIHRoaXMgZmlsZSEKLW15ICRjY3MgID0gJy8nLicqJzsKLW15ICRjY2UgID0gJyonLicv
JzsKLW15ICRyY2NzID0gcXVvdGVtZXRhICRjY3M7Ci1teSAkcmNjZSA9IHF1b3RlbWV0YSAkY2Nl
OwotCi1ldmFsIHsKLSAgcmVxdWlyZSBHZXRvcHQ6Okxvbmc7Ci0gIEdldG9wdDo6TG9uZzo6R2V0
T3B0aW9ucyhcJW9wdCwgcXcoCi0gICAgaGVscCBxdWlldCBkaWFnISBmaWx0ZXIhIGhpbnRzISBj
aGFuZ2VzISBjcGx1c3BsdXMgc3RyaXAgdmVyc2lvbgotICAgIHBhdGNoPXMgY29weT1zIGRpZmY9
cyBjb21wYXQtdmVyc2lvbj1zCi0gICAgbGlzdC1wcm92aWRlZCBsaXN0LXVuc3VwcG9ydGVkIGFw
aS1pbmZvPXMKLSAgKSkgb3IgdXNhZ2UoKTsKLX07Ci0KLWlmICgkQCBhbmQgZ3JlcCAvXi0vLCBA
QVJHVikgewotICB1c2FnZSgpIGlmICJAQVJHViIgPX4gL14tLT9oKD86ZWxwKT8kLzsKLSAgZGll
ICJHZXRvcHQ6Okxvbmcgbm90IGZvdW5kLiBQbGVhc2UgZG9uJ3QgdXNlIGFueSBvcHRpb25zLlxu
IjsKLX0KLQotaWYgKCRvcHR7dmVyc2lvbn0pIHsKLSAgcHJpbnQgIlRoaXMgaXMgJDAgJFZFUlNJ
T04uXG4iOwotICBleGl0IDA7Ci19Ci0KLXVzYWdlKCkgaWYgJG9wdHtoZWxwfTsKLXN0cmlwKCkg
aWYgJG9wdHtzdHJpcH07Ci0KLWlmIChleGlzdHMgJG9wdHsnY29tcGF0LXZlcnNpb24nfSkgewot
ICBteSgkciwkdiwkcykgPSBldmFsIHsgcGFyc2VfdmVyc2lvbigkb3B0eydjb21wYXQtdmVyc2lv
bid9KSB9OwotICBpZiAoJEApIHsKLSAgICBkaWUgIkludmFsaWQgdmVyc2lvbiBudW1iZXIgZm9y
bWF0OiAnJG9wdHsnY29tcGF0LXZlcnNpb24nfSdcbiI7Ci0gIH0KLSAgZGllICJPbmx5IFBlcmwg
NSBpcyBzdXBwb3J0ZWRcbiIgaWYgJHIgIT0gNTsKLSAgZGllICJJbnZhbGlkIHZlcnNpb24gbnVt
YmVyOiAkb3B0eydjb21wYXQtdmVyc2lvbid9XG4iIGlmICR2ID49IDEwMDAgfHwgJHMgPj0gMTAw
MDsKLSAgJG9wdHsnY29tcGF0LXZlcnNpb24nfSA9IHNwcmludGYgIiVkLiUwM2QlMDNkIiwgJHIs
ICR2LCAkczsKLX0KLWVsc2UgewotICAkb3B0eydjb21wYXQtdmVyc2lvbid9ID0gNTsKLX0KLQot
bXkgJUFQSSA9IG1hcCB7IC9eKFx3KylcfChbXnxdKilcfChbXnxdKilcfChcdyopJC8KLSAgICAg
ICAgICAgICAgICA/ICggJDEgPT4gewotICAgICAgICAgICAgICAgICAgICAgICgkMiAgICAgICAg
ICAgICAgICAgID8gKCBiYXNlICAgICA9PiAkMiApIDogKCkpLAotICAgICAgICAgICAgICAgICAg
ICAgICgkMyAgICAgICAgICAgICAgICAgID8gKCB0b2RvICAgICA9PiAkMyApIDogKCkpLAotICAg
ICAgICAgICAgICAgICAgICAgIChpbmRleCgkNCwgJ3YnKSA+PSAwID8gKCB2YXJhcmdzICA9PiAx
ICApIDogKCkpLAotICAgICAgICAgICAgICAgICAgICAgIChpbmRleCgkNCwgJ3AnKSA+PSAwID8g
KCBwcm92aWRlZCA9PiAxICApIDogKCkpLAotICAgICAgICAgICAgICAgICAgICAgIChpbmRleCgk
NCwgJ24nKSA+PSAwID8gKCBub3RoeGFyZyA9PiAxICApIDogKCkpLAotICAgICAgICAgICAgICAg
ICAgICB9ICkKLSAgICAgICAgICAgICAgICA6IGRpZSAiaW52YWxpZCBzcGVjOiAkXyIgfSBxdygK
LUF2RklMTHB8NS4wMDQwNTB8fHAKLUF2RklMTHx8fAotQ0xBU1N8fHxuCi1DWF9DVVJQQURfU0FW
RXx8fAotQ1hfQ1VSUEFEX1NWfHx8Ci1Db3BGSUxFQVZ8NS4wMDYwMDB8fHAKLUNvcEZJTEVHVl9z
ZXR8NS4wMDYwMDB8fHAKLUNvcEZJTEVHVnw1LjAwNjAwMHx8cAotQ29wRklMRVNWfDUuMDA2MDAw
fHxwCi1Db3BGSUxFX3NldHw1LjAwNjAwMHx8cAotQ29wRklMRXw1LjAwNjAwMHx8cAotQ29wU1RB
U0hQVl9zZXR8NS4wMDYwMDB8fHAKLUNvcFNUQVNIUFZ8NS4wMDYwMDB8fHAKLUNvcFNUQVNIX2Vx
fDUuMDA2MDAwfHxwCi1Db3BTVEFTSF9zZXR8NS4wMDYwMDB8fHAKLUNvcFNUQVNIfDUuMDA2MDAw
fHxwCi1Db3B5RHw1LjAwOTAwMnx8cAotQ29weXx8fAotQ3ZQQURMSVNUfHx8Ci1DdlNUQVNIfHx8
Ci1DdldFQUtPVVRTSURFfHx8Ci1ERUZTVnw1LjAwNDA1MHx8cAotRU5EX0VYVEVSTl9DfDUuMDA1
MDAwfHxwCi1FTlRFUnx8fAotRVJSU1Z8NS4wMDQwNTB8fHAKLUVYVEVORHx8fAotRVhURVJOX0N8
NS4wMDUwMDB8fHAKLUYwY29udmVydHx8fG4KLUZSRUVUTVBTfHx8Ci1HSU1NRV9WfHw1LjAwNDAw
MHxuCi1HSU1NRXx8fG4KLUdST0tfTlVNRVJJQ19SQURJWHw1LjAwNzAwMnx8cAotR19BUlJBWXx8
fAotR19ESVNDQVJEfHx8Ci1HX0VWQUx8fHwKLUdfTk9BUkdTfHx8Ci1HX1NDQUxBUnx8fAotR19W
T0lEfHw1LjAwNDAwMHwKLUdldFZhcnN8fHwKLUd2U1Z8fHwKLUd2X0FNdXBkYXRlfHx8Ci1IRWZf
U1ZLRVl8fDUuMDA0MDAwfAotSGVIQVNIfHw1LjAwNDAwMHwKLUhlS0VZfHw1LjAwNDAwMHwKLUhl
S0xFTnx8NS4wMDQwMDB8Ci1IZVBWfHw1LjAwNDAwMHwKLUhlU1ZLRVlfZm9yY2V8fDUuMDA0MDAw
fAotSGVTVktFWV9zZXR8fDUuMDA0MDAwfAotSGVTVktFWXx8NS4wMDQwMDB8Ci1IZVZBTHx8NS4w
MDQwMDB8Ci1Idk5BTUV8fHwKLUlOVDJQVFJ8NS4wMDYwMDB8fHAKLUlOX0xPQ0FMRV9DT01QSUxF
VElNRXw1LjAwNzAwMnx8cAotSU5fTE9DQUxFX1JVTlRJTUV8NS4wMDcwMDJ8fHAKLUlOX0xPQ0FM
RXw1LjAwNzAwMnx8cAotSU5fUEVSTF9DT01QSUxFVElNRXw1LjAwODAwMXx8cAotSVNfTlVNQkVS
X0dSRUFURVJfVEhBTl9VVl9NQVh8NS4wMDcwMDJ8fHAKLUlTX05VTUJFUl9JTkZJTklUWXw1LjAw
NzAwMnx8cAotSVNfTlVNQkVSX0lOX1VWfDUuMDA3MDAyfHxwCi1JU19OVU1CRVJfTkFOfDUuMDA3
MDAzfHxwCi1JU19OVU1CRVJfTkVHfDUuMDA3MDAyfHxwCi1JU19OVU1CRVJfTk9UX0lOVHw1LjAw
NzAwMnx8cAotSVZTSVpFfDUuMDA2MDAwfHxwCi1JVlRZUEV8NS4wMDYwMDB8fHAKLUlWZGZ8NS4w
MDYwMDB8fHAKLUxFQVZFfHx8Ci1MVlJFVHx8fAotTUFSS3x8fAotTVVMVElDQUxMfHw1LjAwOTAw
NXwKLU1ZX0NYVF9DTE9ORXw1LjAwOTAwMnx8cAotTVlfQ1hUX0lOSVR8NS4wMDcwMDN8fHAKLU1Z
X0NYVHw1LjAwNzAwM3x8cAotTW92ZUR8NS4wMDkwMDJ8fHAKLU1vdmV8fHwKLU5PT1B8NS4wMDUw
MDB8fHAKLU5VTTJQVFJ8NS4wMDYwMDB8fHAKLU5WVFlQRXw1LjAwNjAwMHx8cAotTlZlZnw1LjAw
NjAwMXx8cAotTlZmZnw1LjAwNjAwMXx8cAotTlZnZnw1LjAwNjAwMXx8cAotTmV3eGN8NS4wMDkw
MDN8fHAKLU5ld3h6fDUuMDA5MDAzfHxwCi1OZXd4fDUuMDA5MDAzfHxwCi1OdWxsYXZ8fHwKLU51
bGxjaHx8fAotTnVsbGN2fHx8Ci1OdWxsaHZ8fHwKLU51bGxzdnx8fAotT1JJR01BUkt8fHwKLVBB
RF9CQVNFX1NWfHx8Ci1QQURfQ0xPTkVfVkFSU3x8fAotUEFEX0NPTVBOQU1FX0ZMQUdTfHx8Ci1Q
QURfQ09NUE5BTUVfR0VOX3NldHx8fAotUEFEX0NPTVBOQU1FX0dFTnx8fAotUEFEX0NPTVBOQU1F
X09VUlNUQVNIfHx8Ci1QQURfQ09NUE5BTUVfUFZ8fHwKLVBBRF9DT01QTkFNRV9UWVBFfHx8Ci1Q
QURfUkVTVE9SRV9MT0NBTHx8fAotUEFEX1NBVkVfTE9DQUx8fHwKLVBBRF9TQVZFX1NFVE5VTExQ
QUR8fHwKLVBBRF9TRVRTVnx8fAotUEFEX1NFVF9DVVJfTk9TQVZFfHx8Ci1QQURfU0VUX0NVUnx8
fAotUEFEX1NWbHx8fAotUEFEX1NWfHx8Ci1QRVJMX0FCU3w1LjAwODAwMXx8cAotUEVSTF9CQ0RW
RVJTSU9OfDUuMDA5MDA1fHxwCi1QRVJMX0dDQ19CUkFDRV9HUk9VUFNfRk9SQklEREVOfDUuMDA4
MDAxfHxwCi1QRVJMX0hBU0h8NS4wMDQwMDB8fHAKLVBFUkxfSU5UX01BWHw1LjAwNDAwMHx8cAot
UEVSTF9JTlRfTUlOfDUuMDA0MDAwfHxwCi1QRVJMX0xPTkdfTUFYfDUuMDA0MDAwfHxwCi1QRVJM
X0xPTkdfTUlOfDUuMDA0MDAwfHxwCi1QRVJMX01BR0lDX2FyeWxlbnw1LjAwNzAwMnx8cAotUEVS
TF9NQUdJQ19iYWNrcmVmfDUuMDA3MDAyfHxwCi1QRVJMX01BR0lDX2JtfDUuMDA3MDAyfHxwCi1Q
RVJMX01BR0lDX2NvbGx4ZnJtfDUuMDA3MDAyfHxwCi1QRVJMX01BR0lDX2RiZmlsZXw1LjAwNzAw
Mnx8cAotUEVSTF9NQUdJQ19kYmxpbmV8NS4wMDcwMDJ8fHAKLVBFUkxfTUFHSUNfZGVmZWxlbXw1
LjAwNzAwMnx8cAotUEVSTF9NQUdJQ19lbnZlbGVtfDUuMDA3MDAyfHxwCi1QRVJMX01BR0lDX2Vu
dnw1LjAwNzAwMnx8cAotUEVSTF9NQUdJQ19leHR8NS4wMDcwMDJ8fHAKLVBFUkxfTUFHSUNfZm18
NS4wMDcwMDJ8fHAKLVBFUkxfTUFHSUNfZ2xvYnw1LjAwOTAwNXx8cAotUEVSTF9NQUdJQ19pc2Fl
bGVtfDUuMDA3MDAyfHxwCi1QRVJMX01BR0lDX2lzYXw1LjAwNzAwMnx8cAotUEVSTF9NQUdJQ19t
dXRleHw1LjAwOTAwNXx8cAotUEVSTF9NQUdJQ19ua2V5c3w1LjAwNzAwMnx8cAotUEVSTF9NQUdJ
Q19vdmVybG9hZF9lbGVtfDUuMDA3MDAyfHxwCi1QRVJMX01BR0lDX292ZXJsb2FkX3RhYmxlfDUu
MDA3MDAyfHxwCi1QRVJMX01BR0lDX292ZXJsb2FkfDUuMDA3MDAyfHxwCi1QRVJMX01BR0lDX3Bv
c3w1LjAwNzAwMnx8cAotUEVSTF9NQUdJQ19xcnw1LjAwNzAwMnx8cAotUEVSTF9NQUdJQ19yZWdk
YXRhfDUuMDA3MDAyfHxwCi1QRVJMX01BR0lDX3JlZ2RhdHVtfDUuMDA3MDAyfHxwCi1QRVJMX01B
R0lDX3JlZ2V4X2dsb2JhbHw1LjAwNzAwMnx8cAotUEVSTF9NQUdJQ19zaGFyZWRfc2NhbGFyfDUu
MDA3MDAzfHxwCi1QRVJMX01BR0lDX3NoYXJlZHw1LjAwNzAwM3x8cAotUEVSTF9NQUdJQ19zaWdl
bGVtfDUuMDA3MDAyfHxwCi1QRVJMX01BR0lDX3NpZ3w1LjAwNzAwMnx8cAotUEVSTF9NQUdJQ19z
dWJzdHJ8NS4wMDcwMDJ8fHAKLVBFUkxfTUFHSUNfc3Z8NS4wMDcwMDJ8fHAKLVBFUkxfTUFHSUNf
dGFpbnR8NS4wMDcwMDJ8fHAKLVBFUkxfTUFHSUNfdGllZGVsZW18NS4wMDcwMDJ8fHAKLVBFUkxf
TUFHSUNfdGllZHNjYWxhcnw1LjAwNzAwMnx8cAotUEVSTF9NQUdJQ190aWVkfDUuMDA3MDAyfHxw
Ci1QRVJMX01BR0lDX3V0Zjh8NS4wMDgwMDF8fHAKLVBFUkxfTUFHSUNfdXZhcl9lbGVtfDUuMDA3
MDAzfHxwCi1QRVJMX01BR0lDX3V2YXJ8NS4wMDcwMDJ8fHAKLVBFUkxfTUFHSUNfdmVjfDUuMDA3
MDAyfHxwCi1QRVJMX01BR0lDX3ZzdHJpbmd8NS4wMDgwMDF8fHAKLVBFUkxfUVVBRF9NQVh8NS4w
MDQwMDB8fHAKLVBFUkxfUVVBRF9NSU58NS4wMDQwMDB8fHAKLVBFUkxfUkVWSVNJT058NS4wMDYw
MDB8fHAKLVBFUkxfU0NBTl9BTExPV19VTkRFUlNDT1JFU3w1LjAwNzAwM3x8cAotUEVSTF9TQ0FO
X0RJU0FMTE9XX1BSRUZJWHw1LjAwNzAwM3x8cAotUEVSTF9TQ0FOX0dSRUFURVJfVEhBTl9VVl9N
QVh8NS4wMDcwMDN8fHAKLVBFUkxfU0NBTl9TSUxFTlRfSUxMRElHSVR8NS4wMDgwMDF8fHAKLVBF
UkxfU0hPUlRfTUFYfDUuMDA0MDAwfHxwCi1QRVJMX1NIT1JUX01JTnw1LjAwNDAwMHx8cAotUEVS
TF9TSUdOQUxTX1VOU0FGRV9GTEFHfDUuMDA4MDAxfHxwCi1QRVJMX1NVQlZFUlNJT058NS4wMDYw
MDB8fHAKLVBFUkxfVUNIQVJfTUFYfDUuMDA0MDAwfHxwCi1QRVJMX1VDSEFSX01JTnw1LjAwNDAw
MHx8cAotUEVSTF9VSU5UX01BWHw1LjAwNDAwMHx8cAotUEVSTF9VSU5UX01JTnw1LjAwNDAwMHx8
cAotUEVSTF9VTE9OR19NQVh8NS4wMDQwMDB8fHAKLVBFUkxfVUxPTkdfTUlOfDUuMDA0MDAwfHxw
Ci1QRVJMX1VOVVNFRF9BUkd8NS4wMDkwMDN8fHAKLVBFUkxfVU5VU0VEX0NPTlRFWFR8NS4wMDkw
MDR8fHAKLVBFUkxfVU5VU0VEX0RFQ0x8NS4wMDcwMDJ8fHAKLVBFUkxfVU5VU0VEX1ZBUnw1LjAw
NzAwMnx8cAotUEVSTF9VUVVBRF9NQVh8NS4wMDQwMDB8fHAKLVBFUkxfVVFVQURfTUlOfDUuMDA0
MDAwfHxwCi1QRVJMX1VTRV9HQ0NfQlJBQ0VfR1JPVVBTfDUuMDA5MDA0fHxwCi1QRVJMX1VTSE9S
VF9NQVh8NS4wMDQwMDB8fHAKLVBFUkxfVVNIT1JUX01JTnw1LjAwNDAwMHx8cAotUEVSTF9WRVJT
SU9OfDUuMDA2MDAwfHxwCi1QTF9EQnNpZ25hbHw1LjAwNTAwMHx8cAotUExfREJzaW5nbGV8fHxw
bgotUExfREJzdWJ8fHxwbgotUExfREJ0cmFjZXx8fHBuCi1QTF9Tdnw1LjAwNTAwMHx8cAotUExf
Y29tcGlsaW5nfDUuMDA0MDUwfHxwCi1QTF9jb3BsaW5lfDUuMDA5MDA1fHxwCi1QTF9jdXJjb3B8
NS4wMDQwNTB8fHAKLVBMX2N1cnN0YXNofDUuMDA0MDUwfHxwCi1QTF9kZWJzdGFzaHw1LjAwNDA1
MHx8cAotUExfZGVmZ3Z8NS4wMDQwNTB8fHAKLVBMX2RpZWhvb2t8NS4wMDQwNTB8fHAKLVBMX2Rp
cnR5fDUuMDA0MDUwfHxwCi1QTF9kb3dhcm58fHxwbgotUExfZXJyZ3Z8NS4wMDQwNTB8fHAKLVBM
X2V4cGVjdHw1LjAwOTAwNXx8cAotUExfaGV4ZGlnaXR8NS4wMDUwMDB8fHAKLVBMX2hpbnRzfDUu
MDA1MDAwfHxwCi1QTF9sYXN0X2luX2d2fHx8bgotUExfbGFzdHN0YXR2YWx8NS4wMDUwMDB8fHAK
LVBMX21vZGdsb2JhbHx8NS4wMDUwMDB8bgotUExfbmF8NS4wMDQwNTB8fHBuCi1QTF9ub19tb2Rp
Znl8NS4wMDYwMDB8fHAKLVBMX29mc19zdnx8fG4KLVBMX3BlcmxfZGVzdHJ1Y3RfbGV2ZWx8NS4w
MDQwNTB8fHAKLVBMX3BlcmxkYnw1LjAwNDA1MHx8cAotUExfcHBhZGRyfDUuMDA2MDAwfHxwCi1Q
TF9yc2ZwX2ZpbHRlcnN8NS4wMDQwNTB8fHAKLVBMX3JzZnB8NS4wMDQwNTB8fHAKLVBMX3JzfHx8
bgotUExfc2lnbmFsc3w1LjAwODAwMXx8cAotUExfc3RhY2tfYmFzZXw1LjAwNDA1MHx8cAotUExf
c3RhY2tfc3B8NS4wMDQwNTB8fHAKLVBMX3N0YXRjYWNoZXw1LjAwNTAwMHx8cAotUExfc3RkaW5n
dnw1LjAwNDA1MHx8cAotUExfc3ZfYXJlbmFyb290fDUuMDA0MDUwfHxwCi1QTF9zdl9ub3w1LjAw
NDA1MHx8cG4KLVBMX3N2X3VuZGVmfDUuMDA0MDUwfHxwbgotUExfc3ZfeWVzfDUuMDA0MDUwfHxw
bgotUExfdGFpbnRlZHw1LjAwNDA1MHx8cAotUExfdGFpbnRpbmd8NS4wMDQwNTB8fHAKLVBPUF9N
VUxUSUNBTEx8fDUuMDA5MDA1fAotUE9QaXx8fG4KLVBPUGx8fHxuCi1QT1BufHx8bgotUE9QcGJ5
dGV4fHw1LjAwNzAwMXxuCi1QT1BweHx8NS4wMDUwMzB8bgotUE9QcHx8fG4KLVBPUHN8fHxuCi1Q
VFIySVZ8NS4wMDYwMDB8fHAKLVBUUjJOVnw1LjAwNjAwMHx8cAotUFRSMlVWfDUuMDA2MDAwfHxw
Ci1QVFIydWx8NS4wMDcwMDF8fHAKLVBUUlZ8NS4wMDYwMDB8fHAKLVBVU0hNQVJLfHx8Ci1QVVNI
X01VTFRJQ0FMTHx8NS4wMDkwMDV8Ci1QVVNIaXx8fAotUFVTSG1vcnRhbHw1LjAwOTAwMnx8cAot
UFVTSG58fHwKLVBVU0hwfHx8Ci1QVVNIc3x8fAotUFVTSHV8NS4wMDQwMDB8fHAKLVBVVEJBQ0t8
fHwKLVBlcmxJT19jbGVhcmVycnx8NS4wMDcwMDN8Ci1QZXJsSU9fY2xvc2V8fDUuMDA3MDAzfAot
UGVybElPX2NvbnRleHRfbGF5ZXJzfHw1LjAwOTAwNHwKLVBlcmxJT19lb2Z8fDUuMDA3MDAzfAot
UGVybElPX2Vycm9yfHw1LjAwNzAwM3wKLVBlcmxJT19maWxlbm98fDUuMDA3MDAzfAotUGVybElP
X2ZpbGx8fDUuMDA3MDAzfAotUGVybElPX2ZsdXNofHw1LjAwNzAwM3wKLVBlcmxJT19nZXRfYmFz
ZXx8NS4wMDcwMDN8Ci1QZXJsSU9fZ2V0X2J1ZnNpenx8NS4wMDcwMDN8Ci1QZXJsSU9fZ2V0X2Nu
dHx8NS4wMDcwMDN8Ci1QZXJsSU9fZ2V0X3B0cnx8NS4wMDcwMDN8Ci1QZXJsSU9fcmVhZHx8NS4w
MDcwMDN8Ci1QZXJsSU9fc2Vla3x8NS4wMDcwMDN8Ci1QZXJsSU9fc2V0X2NudHx8NS4wMDcwMDN8
Ci1QZXJsSU9fc2V0X3B0cmNudHx8NS4wMDcwMDN8Ci1QZXJsSU9fc2V0bGluZWJ1Znx8NS4wMDcw
MDN8Ci1QZXJsSU9fc3RkZXJyfHw1LjAwNzAwM3wKLVBlcmxJT19zdGRpbnx8NS4wMDcwMDN8Ci1Q
ZXJsSU9fc3Rkb3V0fHw1LjAwNzAwM3wKLVBlcmxJT190ZWxsfHw1LjAwNzAwM3wKLVBlcmxJT191
bnJlYWR8fDUuMDA3MDAzfAotUGVybElPX3dyaXRlfHw1LjAwNzAwM3wKLVBlcmxfc2lnbmJpdHx8
NS4wMDkwMDV8bgotUG9pc29uRnJlZXw1LjAwOTAwNHx8cAotUG9pc29uTmV3fDUuMDA5MDA0fHxw
Ci1Qb2lzb25XaXRofDUuMDA5MDA0fHxwCi1Qb2lzb258NS4wMDgwMDB8fHAKLVJFVFZBTHx8fG4K
LVJlbmV3Y3x8fAotUmVuZXd8fHwKLVNBVkVDTEVBUlNWfHx8Ci1TQVZFQ09NUFBBRHx8fAotU0FW
RVBBRFNWfHx8Ci1TQVZFVE1QU3x8fAotU0FWRV9ERUZTVnw1LjAwNDA1MHx8cAotU1BBR0FJTnx8
fAotU1B8fHwKLVNUQVJUX0VYVEVSTl9DfDUuMDA1MDAwfHxwCi1TVEFSVF9NWV9DWFR8NS4wMDcw
MDN8fHAKLVNUTVRfRU5EfHx8cAotU1RNVF9TVEFSVHx8fHAKLVNUUl9XSVRIX0xFTnw1LjAwOTAw
M3x8cAotU1R8fHwKLVNWX0NPTlNUX1JFVFVSTnw1LjAwOTAwM3x8cAotU1ZfQ09XX0RST1BfUFZ8
NS4wMDgwMDF8fHAKLVNWX0NPV19TSEFSRURfSEFTSF9LRVlTfDUuMDA5MDA1fHxwCi1TVl9HTUFH
SUN8NS4wMDcwMDJ8fHAKLVNWX0hBU19UUkFJTElOR19OVUx8NS4wMDkwMDR8fHAKLVNWX0lNTUVE
SUFURV9VTlJFRnw1LjAwNzAwMXx8cAotU1ZfTVVUQUJMRV9SRVRVUk58NS4wMDkwMDN8fHAKLVNW
X05PU1RFQUx8NS4wMDkwMDJ8fHAKLVNWX1NNQUdJQ3w1LjAwOTAwM3x8cAotU1ZfVVRGOF9OT19F
TkNPRElOR3w1LjAwODAwMXx8cAotU1ZmfDUuMDA2MDAwfHxwCi1TVnRfSVZ8fHwKLVNWdF9OVnx8
fAotU1Z0X1BWQVZ8fHwKLVNWdF9QVkNWfHx8Ci1TVnRfUFZIVnx8fAotU1Z0X1BWTUd8fHwKLVNW
dF9QVnx8fAotU2FmZWZyZWV8fHwKLVNsYWJfQWxsb2N8fHwKLVNsYWJfRnJlZXx8fAotU2xhYl90
b19yd3x8fAotU3RydWN0Q29weXx8fAotU3ZDVVJfc2V0fHx8Ci1TdkNVUnx8fAotU3ZFTkR8fHwK
LVN2R0FNQUdJQ3x8NS4wMDYwMDF8Ci1TdkdFVE1BR0lDfDUuMDA0MDUwfHxwCi1TdkdST1d8fHwK
LVN2SU9LX1VWfHw1LjAwNjAwMHwKLVN2SU9LX25vdFVWfHw1LjAwNjAwMHwKLVN2SU9LX29mZnx8
fAotU3ZJT0tfb25seV9VVnx8NS4wMDYwMDB8Ci1TdklPS19vbmx5fHx8Ci1TdklPS19vbnx8fAot
U3ZJT0twfHx8Ci1TdklPS3x8fAotU3ZJVlh8fHwKLVN2SVZfbm9tZ3w1LjAwOTAwMXx8cAotU3ZJ
Vl9zZXR8fHwKLVN2SVZ4fHx8Ci1TdklWfHx8Ci1TdklzQ09XX3NoYXJlZF9oYXNofHw1LjAwODAw
M3wKLVN2SXNDT1d8fDUuMDA4MDAzfAotU3ZMRU5fc2V0fHx8Ci1TdkxFTnx8fAotU3ZMT0NLfHw1
LjAwNzAwM3wKLVN2TUFHSUNfc2V0fDUuMDA5MDAzfHxwCi1Tdk5JT0tfb2ZmfHx8Ci1Tdk5JT0tw
fHx8Ci1Tdk5JT0t8fHwKLVN2Tk9LX29mZnx8fAotU3ZOT0tfb25seXx8fAotU3ZOT0tfb258fHwK
LVN2Tk9LcHx8fAotU3ZOT0t8fHwKLVN2TlZYfHx8Ci1Tdk5WX3NldHx8fAotU3ZOVnh8fHwKLVN2
TlZ8fHwKLVN2T0t8fHwKLVN2T09LfHx8Ci1TdlBPS19vZmZ8fHwKLVN2UE9LX29ubHlfVVRGOHx8
NS4wMDYwMDB8Ci1TdlBPS19vbmx5fHx8Ci1TdlBPS19vbnx8fAotU3ZQT0twfHx8Ci1TdlBPS3x8
fAotU3ZQVlhfY29uc3R8NS4wMDkwMDN8fHAKLVN2UFZYX211dGFibGV8NS4wMDkwMDN8fHAKLVN2
UFZYfHx8Ci1TdlBWX2NvbnN0fDUuMDA5MDAzfHxwCi1TdlBWX2ZsYWdzX2NvbnN0X25vbGVufDUu
MDA5MDAzfHxwCi1TdlBWX2ZsYWdzX2NvbnN0fDUuMDA5MDAzfHxwCi1TdlBWX2ZsYWdzX211dGFi
bGV8NS4wMDkwMDN8fHAKLVN2UFZfZmxhZ3N8NS4wMDcwMDJ8fHAKLVN2UFZfZm9yY2VfZmxhZ3Nf
bXV0YWJsZXw1LjAwOTAwM3x8cAotU3ZQVl9mb3JjZV9mbGFnc19ub2xlbnw1LjAwOTAwM3x8cAot
U3ZQVl9mb3JjZV9mbGFnc3w1LjAwNzAwMnx8cAotU3ZQVl9mb3JjZV9tdXRhYmxlfDUuMDA5MDAz
fHxwCi1TdlBWX2ZvcmNlX25vbGVufDUuMDA5MDAzfHxwCi1TdlBWX2ZvcmNlX25vbWdfbm9sZW58
NS4wMDkwMDN8fHAKLVN2UFZfZm9yY2Vfbm9tZ3w1LjAwNzAwMnx8cAotU3ZQVl9mb3JjZXx8fHAK
LVN2UFZfbXV0YWJsZXw1LjAwOTAwM3x8cAotU3ZQVl9ub2xlbl9jb25zdHw1LjAwOTAwM3x8cAot
U3ZQVl9ub2xlbnw1LjAwNjAwMHx8cAotU3ZQVl9ub21nX2NvbnN0X25vbGVufDUuMDA5MDAzfHxw
Ci1TdlBWX25vbWdfY29uc3R8NS4wMDkwMDN8fHAKLVN2UFZfbm9tZ3w1LjAwNzAwMnx8cAotU3ZQ
Vl9zZXR8fHwKLVN2UFZieXRlX2ZvcmNlfHw1LjAwOTAwMnwKLVN2UFZieXRlX25vbGVufHw1LjAw
NjAwMHwKLVN2UFZieXRleF9mb3JjZXx8NS4wMDYwMDB8Ci1TdlBWYnl0ZXh8fDUuMDA2MDAwfAot
U3ZQVmJ5dGV8NS4wMDYwMDB8fHAKLVN2UFZ1dGY4X2ZvcmNlfHw1LjAwNjAwMHwKLVN2UFZ1dGY4
X25vbGVufHw1LjAwNjAwMHwKLVN2UFZ1dGY4eF9mb3JjZXx8NS4wMDYwMDB8Ci1TdlBWdXRmOHh8
fDUuMDA2MDAwfAotU3ZQVnV0Zjh8fDUuMDA2MDAwfAotU3ZQVnh8fHwKLVN2UFZ8fHwKLVN2UkVG
Q05UX2RlY3x8fAotU3ZSRUZDTlRfaW5jX05OfDUuMDA5MDA0fHxwCi1TdlJFRkNOVF9pbmNfc2lt
cGxlX05OfDUuMDA5MDA0fHxwCi1TdlJFRkNOVF9pbmNfc2ltcGxlX3ZvaWRfTk58NS4wMDkwMDR8
fHAKLVN2UkVGQ05UX2luY19zaW1wbGVfdm9pZHw1LjAwOTAwNHx8cAotU3ZSRUZDTlRfaW5jX3Np
bXBsZXw1LjAwOTAwNHx8cAotU3ZSRUZDTlRfaW5jX3ZvaWRfTk58NS4wMDkwMDR8fHAKLVN2UkVG
Q05UX2luY192b2lkfDUuMDA5MDA0fHxwCi1TdlJFRkNOVF9pbmN8fHxwCi1TdlJFRkNOVHx8fAot
U3ZST0tfb2ZmfHx8Ci1TdlJPS19vbnx8fAotU3ZST0t8fHwKLVN2UlZfc2V0fDUuMDA5MDAzfHxw
Ci1TdlJWfHx8Ci1TdlJYT0t8fDUuMDA5MDA1fAotU3ZSWHx8NS4wMDkwMDV8Ci1TdlNFVE1BR0lD
fHx8Ci1TdlNIQVJFRF9IQVNIfDUuMDA5MDAzfHxwCi1TdlNIQVJFfHw1LjAwNzAwM3wKLVN2U1RB
U0hfc2V0fDUuMDA5MDAzfHxwCi1TdlNUQVNIfHx8Ci1TdlNldE1hZ2ljU1Zfbm9zdGVhbHx8NS4w
MDQwMDB8Ci1TdlNldE1hZ2ljU1Z8fDUuMDA0MDAwfAotU3ZTZXRTVl9ub3N0ZWFsfHw1LjAwNDAw
MHwKLVN2U2V0U1Z8fHwKLVN2VEFJTlRFRF9vZmZ8fDUuMDA0MDAwfAotU3ZUQUlOVEVEX29ufHw1
LjAwNDAwMHwKLVN2VEFJTlRFRHx8NS4wMDQwMDB8Ci1TdlRBSU5UfHx8Ci1TdlRSVUV8fHwKLVN2
VFlQRXx8fAotU3ZVTkxPQ0t8fDUuMDA3MDAzfAotU3ZVT0t8NS4wMDcwMDF8NS4wMDYwMDB8cAot
U3ZVUEdSQURFfHx8Ci1TdlVURjhfb2ZmfHw1LjAwNjAwMHwKLVN2VVRGOF9vbnx8NS4wMDYwMDB8
Ci1TdlVURjh8fDUuMDA2MDAwfAotU3ZVVlh4fDUuMDA0MDAwfHxwCi1TdlVWWHw1LjAwNDAwMHx8
cAotU3ZVVl9ub21nfDUuMDA5MDAxfHxwCi1TdlVWX3NldHw1LjAwOTAwM3x8cAotU3ZVVnh8NS4w
MDQwMDB8fHAKLVN2VVZ8NS4wMDQwMDB8fHAKLVN2Vk9LfHw1LjAwODAwMXwKLVN2VlNUUklOR19t
Z3w1LjAwOTAwNHx8cAotVEhJU3x8fG4KLVVOREVSQkFSfDUuMDA5MDAyfHxwCi1VVEY4X01BWEJZ
VEVTfDUuMDA5MDAyfHxwCi1VVlNJWkV8NS4wMDYwMDB8fHAKLVVWVFlQRXw1LjAwNjAwMHx8cAot
VVZYZnw1LjAwNzAwMXx8cAotVVZvZnw1LjAwNjAwMHx8cAotVVZ1Znw1LjAwNjAwMHx8cAotVVZ4
Znw1LjAwNjAwMHx8cAotV0FSTl9BTEx8NS4wMDYwMDB8fHAKLVdBUk5fQU1CSUdVT1VTfDUuMDA2
MDAwfHxwCi1XQVJOX0FTU0VSVElPTlN8NS4wMDkwMDV8fHAKLVdBUk5fQkFSRVdPUkR8NS4wMDYw
MDB8fHAKLVdBUk5fQ0xPU0VEfDUuMDA2MDAwfHxwCi1XQVJOX0NMT1NVUkV8NS4wMDYwMDB8fHAK
LVdBUk5fREVCVUdHSU5HfDUuMDA2MDAwfHxwCi1XQVJOX0RFUFJFQ0FURUR8NS4wMDYwMDB8fHAK
LVdBUk5fRElHSVR8NS4wMDYwMDB8fHAKLVdBUk5fRVhFQ3w1LjAwNjAwMHx8cAotV0FSTl9FWElU
SU5HfDUuMDA2MDAwfHxwCi1XQVJOX0dMT0J8NS4wMDYwMDB8fHAKLVdBUk5fSU5QTEFDRXw1LjAw
NjAwMHx8cAotV0FSTl9JTlRFUk5BTHw1LjAwNjAwMHx8cAotV0FSTl9JT3w1LjAwNjAwMHx8cAot
V0FSTl9MQVlFUnw1LjAwODAwMHx8cAotV0FSTl9NQUxMT0N8NS4wMDYwMDB8fHAKLVdBUk5fTUlT
Q3w1LjAwNjAwMHx8cAotV0FSTl9ORVdMSU5FfDUuMDA2MDAwfHxwCi1XQVJOX05VTUVSSUN8NS4w
MDYwMDB8fHAKLVdBUk5fT05DRXw1LjAwNjAwMHx8cAotV0FSTl9PVkVSRkxPV3w1LjAwNjAwMHx8
cAotV0FSTl9QQUNLfDUuMDA2MDAwfHxwCi1XQVJOX1BBUkVOVEhFU0lTfDUuMDA2MDAwfHxwCi1X
QVJOX1BJUEV8NS4wMDYwMDB8fHAKLVdBUk5fUE9SVEFCTEV8NS4wMDYwMDB8fHAKLVdBUk5fUFJF
Q0VERU5DRXw1LjAwNjAwMHx8cAotV0FSTl9QUklOVEZ8NS4wMDYwMDB8fHAKLVdBUk5fUFJPVE9U
WVBFfDUuMDA2MDAwfHxwCi1XQVJOX1FXfDUuMDA2MDAwfHxwCi1XQVJOX1JFQ1VSU0lPTnw1LjAw
NjAwMHx8cAotV0FSTl9SRURFRklORXw1LjAwNjAwMHx8cAotV0FSTl9SRUdFWFB8NS4wMDYwMDB8
fHAKLVdBUk5fUkVTRVJWRUR8NS4wMDYwMDB8fHAKLVdBUk5fU0VNSUNPTE9OfDUuMDA2MDAwfHxw
Ci1XQVJOX1NFVkVSRXw1LjAwNjAwMHx8cAotV0FSTl9TSUdOQUx8NS4wMDYwMDB8fHAKLVdBUk5f
U1VCU1RSfDUuMDA2MDAwfHxwCi1XQVJOX1NZTlRBWHw1LjAwNjAwMHx8cAotV0FSTl9UQUlOVHw1
LjAwNjAwMHx8cAotV0FSTl9USFJFQURTfDUuMDA4MDAwfHxwCi1XQVJOX1VOSU5JVElBTElaRUR8
NS4wMDYwMDB8fHAKLVdBUk5fVU5PUEVORUR8NS4wMDYwMDB8fHAKLVdBUk5fVU5QQUNLfDUuMDA2
MDAwfHxwCi1XQVJOX1VOVElFfDUuMDA2MDAwfHxwCi1XQVJOX1VURjh8NS4wMDYwMDB8fHAKLVdB
Uk5fVk9JRHw1LjAwNjAwMHx8cAotWENQVF9DQVRDSHw1LjAwOTAwMnx8cAotWENQVF9SRVRIUk9X
fDUuMDA5MDAyfHxwCi1YQ1BUX1RSWV9FTkR8NS4wMDkwMDJ8fHAKLVhDUFRfVFJZX1NUQVJUfDUu
MDA5MDAyfHxwCi1YUFVTSGl8fHwKLVhQVVNIbW9ydGFsfDUuMDA5MDAyfHxwCi1YUFVTSG58fHwK
LVhQVVNIcHx8fAotWFBVU0hzfHx8Ci1YUFVTSHV8NS4wMDQwMDB8fHAKLVhTUkVUVVJOX0VNUFRZ
fHx8Ci1YU1JFVFVSTl9JVnx8fAotWFNSRVRVUk5fTk98fHwKLVhTUkVUVVJOX05WfHx8Ci1YU1JF
VFVSTl9QVnx8fAotWFNSRVRVUk5fVU5ERUZ8fHwKLVhTUkVUVVJOX1VWfDUuMDA4MDAxfHxwCi1Y
U1JFVFVSTl9ZRVN8fHwKLVhTUkVUVVJOfHx8cAotWFNUX21JVnx8fAotWFNUX21OT3x8fAotWFNU
X21OVnx8fAotWFNUX21QVnx8fAotWFNUX21VTkRFRnx8fAotWFNUX21VVnw1LjAwODAwMXx8cAot
WFNUX21ZRVN8fHwKLVhTX1ZFUlNJT05fQk9PVENIRUNLfHx8Ci1YU19WRVJTSU9OfHx8Ci1YU3By
ZVBVU0h8NS4wMDYwMDB8fHAKLVhTfHx8Ci1aZXJvRHw1LjAwOTAwMnx8cAotWmVyb3x8fAotX2FN
WV9DWFR8NS4wMDcwMDN8fHAKLV9wTVlfQ1hUfDUuMDA3MDAzfHxwCi1hTVlfQ1hUX3w1LjAwNzAw
M3x8cAotYU1ZX0NYVHw1LjAwNzAwM3x8cAotYVRIWFJffDUuMDA5MDA1fHxwCi1hVEhYUnw1LjAw
OTAwNXx8cAotYVRIWF98NS4wMDYwMDB8fHAKLWFUSFh8NS4wMDYwMDB8fHAKLWFkZF9kYXRhfHx8
bgotYWRkbWFkfHx8Ci1hbGxvY215fHx8Ci1hbWFnaWNfY2FsbHx8fAotYW1hZ2ljX2NtcF9sb2Nh
bGV8fHwKLWFtYWdpY19jbXB8fHwKLWFtYWdpY19pX25jbXB8fHwKLWFtYWdpY19uY21wfHx8Ci1h
bnlfZHVwfHx8Ci1hb3x8fAotYXBwZW5kX2VsZW18fHwKLWFwcGVuZF9saXN0fHx8Ci1hcHBlbmRf
bWFkcHJvcHN8fHwKLWFwcGx5X2F0dHJzX215fHx8Ci1hcHBseV9hdHRyc19zdHJpbmd8fDUuMDA2
MDAxfAotYXBwbHlfYXR0cnN8fHwKLWFwcGx5fHx8Ci1hdGZvcmtfbG9ja3x8NS4wMDcwMDN8bgot
YXRmb3JrX3VubG9ja3x8NS4wMDcwMDN8bgotYXZfYXJ5bGVuX3B8fDUuMDA5MDAzfAotYXZfY2xl
YXJ8fHwKLWF2X2NyZWF0ZV9hbmRfcHVzaHx8NS4wMDkwMDV8Ci1hdl9jcmVhdGVfYW5kX3Vuc2hp
ZnRfb25lfHw1LjAwOTAwNXwKLWF2X2RlbGV0ZXx8NS4wMDYwMDB8Ci1hdl9leGlzdHN8fDUuMDA2
MDAwfAotYXZfZXh0ZW5kfHx8Ci1hdl9mYWtlfHx8Ci1hdl9mZXRjaHx8fAotYXZfZmlsbHx8fAot
YXZfbGVufHx8Ci1hdl9tYWtlfHx8Ci1hdl9wb3B8fHwKLWF2X3B1c2h8fHwKLWF2X3JlaWZ5fHx8
Ci1hdl9zaGlmdHx8fAotYXZfc3RvcmV8fHwKLWF2X3VuZGVmfHx8Ci1hdl91bnNoaWZ0fHx8Ci1h
eHx8fG4KLWJhZF90eXBlfHx8Ci1iaW5kX21hdGNofHx8Ci1ibG9ja19lbmR8fHwKLWJsb2NrX2dp
bW1lfHw1LjAwNDAwMHwKLWJsb2NrX3N0YXJ0fHx8Ci1ib29sU1Z8NS4wMDQwMDB8fHAKLWJvb3Rf
Y29yZV9QZXJsSU98fHwKLWJvb3RfY29yZV9VTklWRVJTQUx8fHwKLWJvb3RfY29yZV9tcm98fHwK
LWJvb3RfY29yZV94c3V0aWxzfHx8Ci1ieXRlc19mcm9tX3V0Zjh8fDUuMDA3MDAxfAotYnl0ZXNf
dG9fdW5pfHx8bgotYnl0ZXNfdG9fdXRmOHx8NS4wMDYwMDF8Ci1jYWxsX2FyZ3Z8NS4wMDYwMDB8
fHAKLWNhbGxfYXRleGl0fHw1LjAwNjAwMHwKLWNhbGxfbGlzdHx8NS4wMDQwMDB8Ci1jYWxsX21l
dGhvZHw1LjAwNjAwMHx8cAotY2FsbF9wdnw1LjAwNjAwMHx8cAotY2FsbF9zdnw1LjAwNjAwMHx8
cAotY2FsbG9jfHw1LjAwNzAwMnxuCi1jYW5kb3x8fAotY2FzdF9pMzJ8fDUuMDA2MDAwfAotY2Fz
dF9pdnx8NS4wMDYwMDB8Ci1jYXN0X3Vsb25nfHw1LjAwNjAwMHwKLWNhc3RfdXZ8fDUuMDA2MDAw
fAotY2hlY2tfdHlwZV9hbmRfb3Blbnx8fAotY2hlY2tfdW5pfHx8Ci1jaGVja2NvbW1hfHx8Ci1j
aGVja3Bvc2l4Y2N8fHwKLWNrV0FSTnw1LjAwNjAwMHx8cAotY2tfYW5vbmNvZGV8fHwKLWNrX2Jp
dG9wfHx8Ci1ja19jb25jYXR8fHwKLWNrX2RlZmluZWR8fHwKLWNrX2RlbGV0ZXx8fAotY2tfZGll
fHx8Ci1ja19lb2Z8fHwKLWNrX2V2YWx8fHwKLWNrX2V4ZWN8fHwKLWNrX2V4aXN0c3x8fAotY2tf
ZXhpdHx8fAotY2tfZnRzdHx8fAotY2tfZnVufHx8Ci1ja19nbG9ifHx8Ci1ja19ncmVwfHx8Ci1j
a19pbmRleHx8fAotY2tfam9pbnx8fAotY2tfbGVuZ3RoY29uc3R8fHwKLWNrX2xmdW58fHwKLWNr
X2xpc3Rpb2J8fHwKLWNrX21hdGNofHx8Ci1ja19tZXRob2R8fHwKLWNrX251bGx8fHwKLWNrX29w
ZW58fHwKLWNrX3JlYWRsaW5lfHx8Ci1ja19yZXBlYXR8fHwKLWNrX3JlcXVpcmV8fHwKLWNrX3Jl
dGFyZ2V0fHx8Ci1ja19yZXR1cm58fHwKLWNrX3JmdW58fHwKLWNrX3J2Y29uc3R8fHwKLWNrX3Nh
c3NpZ258fHwKLWNrX3NlbGVjdHx8fAotY2tfc2hpZnR8fHwKLWNrX3NvcnR8fHwKLWNrX3NwYWly
fHx8Ci1ja19zcGxpdHx8fAotY2tfc3Vicnx8fAotY2tfc3Vic3RyfHx8Ci1ja19zdmNvbnN0fHx8
Ci1ja190cnVuY3x8fAotY2tfdW5wYWNrfHx8Ci1ja3dhcm5fZHx8NS4wMDkwMDN8Ci1ja3dhcm58
fDUuMDA5MDAzfAotY2xfYW5kfHx8bgotY2xfYW55dGhpbmd8fHxuCi1jbF9pbml0X3plcm98fHxu
Ci1jbF9pbml0fHx8bgotY2xfaXNfYW55dGhpbmd8fHxuCi1jbF9vcnx8fG4KLWNsZWFyX3BsYWNl
aG9sZGVyc3x8fAotY2xvc2VzdF9jb3B8fHwKLWNvbnZlcnR8fHwKLWNvcF9mcmVlfHx8Ci1jcl90
ZXh0ZmlsdGVyfHx8Ci1jcmVhdGVfZXZhbF9zY29wZXx8fAotY3JvYWtfbm9jb250ZXh0fHx8dm4K
LWNyb2FrfHx8dgotY3NpZ2hhbmRsZXJ8fDUuMDA5MDAzfG4KLWN1cm1hZHx8fAotY3VzdG9tX29w
X2Rlc2N8fDUuMDA3MDAzfAotY3VzdG9tX29wX25hbWV8fDUuMDA3MDAzfAotY3ZfY2twcm90b19s
ZW58fHwKLWN2X2NrcHJvdG98fHwKLWN2X2Nsb25lfHx8Ci1jdl9jb25zdF9zdnx8NS4wMDQwMDB8
Ci1jdl9kdW1wfHx8Ci1jdl91bmRlZnx8fAotY3hfZHVtcHx8NS4wMDUwMDB8Ci1jeF9kdXB8fHwK
LWN4aW5jfHx8Ci1kQVhNQVJLfDUuMDA5MDAzfHxwCi1kQVh8NS4wMDcwMDJ8fHAKLWRJVEVNU3w1
LjAwNzAwMnx8cAotZE1BUkt8fHwKLWRNVUxUSUNBTEx8fDUuMDA5MDAzfAotZE1ZX0NYVF9TVnw1
LjAwNzAwM3x8cAotZE1ZX0NYVHw1LjAwNzAwM3x8cAotZE5PT1B8NS4wMDYwMDB8fHAKLWRPUklH
TUFSS3x8fAotZFNQfHx8Ci1kVEhSfDUuMDA0MDUwfHxwCi1kVEhYUnw1LjAwOTAwNXx8cAotZFRI
WGF8NS4wMDYwMDB8fHAKLWRUSFhvYXw1LjAwNjAwMHx8cAotZFRIWHw1LjAwNjAwMHx8cAotZFVO
REVSQkFSfDUuMDA5MDAyfHxwCi1kVkFSfDUuMDA5MDAzfHxwCi1kWENQVHw1LjAwOTAwMnx8cAot
ZFhTQVJHU3x8fAotZFhTSTMyfHx8Ci1kWFNUQVJHfDUuMDA2MDAwfHxwCi1kZWJfY3VyY3Z8fHwK
LWRlYl9ub2NvbnRleHR8fHx2bgotZGViX3N0YWNrX2FsbHx8fAotZGViX3N0YWNrX258fHwKLWRl
Ym9wfHw1LjAwNTAwMHwKLWRlYnByb2ZkdW1wfHw1LjAwNTAwMHwKLWRlYnByb2Z8fHwKLWRlYnN0
YWNrcHRyc3x8NS4wMDcwMDN8Ci1kZWJzdGFja3x8NS4wMDcwMDN8Ci1kZWJ1Z19zdGFydF9tYXRj
aHx8fAotZGVifHw1LjAwNzAwM3x2Ci1kZWxfc3Z8fHwKLWRlbGV0ZV9ldmFsX3Njb3BlfHx8Ci1k
ZWxpbWNweXx8NS4wMDQwMDB8Ci1kZXByZWNhdGVfb2xkfHx8Ci1kZXByZWNhdGV8fHwKLWRlc3Bh
dGNoX3NpZ25hbHN8fDUuMDA3MDAxfAotZGVzdHJveV9tYXRjaGVyfHx8Ci1kaWVfbm9jb250ZXh0
fHx8dm4KLWRpZV93aGVyZXx8fAotZGllfHx8dgotZGlycF9kdXB8fHwKLWRpdjEyOHx8fAotZGpT
UHx8fAotZG9fYWV4ZWM1fHx8Ci1kb19hZXhlY3x8fAotZG9fYXNwYXdufHx8Ci1kb19iaW5tb2Rl
fHw1LjAwNDA1MHwKLWRvX2Nob21wfHx8Ci1kb19jaG9wfHx8Ci1kb19jbG9zZXx8fAotZG9fZHVt
cF9wYWR8fHwKLWRvX2VvZnx8fAotZG9fZXhlYzN8fHwKLWRvX2V4ZWNmcmVlfHx8Ci1kb19leGVj
fHx8Ci1kb19ndl9kdW1wfHw1LjAwNjAwMHwKLWRvX2d2Z3ZfZHVtcHx8NS4wMDYwMDB8Ci1kb19o
dl9kdW1wfHw1LjAwNjAwMHwKLWRvX2lwY2N0bHx8fAotZG9faXBjZ2V0fHx8Ci1kb19qb2lufHx8
Ci1kb19rdnx8fAotZG9fbWFnaWNfZHVtcHx8NS4wMDYwMDB8Ci1kb19tc2dyY3Z8fHwKLWRvX21z
Z3NuZHx8fAotZG9fb2RkYmFsbHx8fAotZG9fb3BfZHVtcHx8NS4wMDYwMDB8Ci1kb19vcF94bWxk
dW1wfHx8Ci1kb19vcGVuOXx8NS4wMDYwMDB8Ci1kb19vcGVubnx8NS4wMDcwMDF8Ci1kb19vcGVu
fHw1LjAwNDAwMHwKLWRvX3BpcGV8fHwKLWRvX3Btb3BfZHVtcHx8NS4wMDYwMDB8Ci1kb19wbW9w
X3htbGR1bXB8fHwKLWRvX3ByaW50fHx8Ci1kb19yZWFkbGluZXx8fAotZG9fc2Vla3x8fAotZG9f
c2Vtb3B8fHwKLWRvX3NobWlvfHx8Ci1kb19zbWFydG1hdGNofHx8Ci1kb19zcGF3bl9ub3dhaXR8
fHwKLWRvX3NwYXdufHx8Ci1kb19zcHJpbnRmfHx8Ci1kb19zdl9kdW1wfHw1LjAwNjAwMHwKLWRv
X3N5c3NlZWt8fHwKLWRvX3RlbGx8fHwKLWRvX3RyYW5zX2NvbXBsZXhfdXRmOHx8fAotZG9fdHJh
bnNfY29tcGxleHx8fAotZG9fdHJhbnNfY291bnRfdXRmOHx8fAotZG9fdHJhbnNfY291bnR8fHwK
LWRvX3RyYW5zX3NpbXBsZV91dGY4fHx8Ci1kb190cmFuc19zaW1wbGV8fHwKLWRvX3RyYW5zfHx8
Ci1kb192ZWNnZXR8fHwKLWRvX3ZlY3NldHx8fAotZG9fdm9wfHx8Ci1kb2NhdGNoX2JvZHl8fHwK
LWRvY2F0Y2h8fHwKLWRvZXZhbHx8fAotZG9maWxlfHx8Ci1kb2ZpbmRsYWJlbHx8fAotZG9mb3Jt
fHx8Ci1kb2luZ190YWludHx8NS4wMDgwMDF8bgotZG9vbmVsaW5lcnx8fAotZG9vcGVuX3BtfHx8
Ci1kb3BhcnNlZm9ybXx8fAotZG9wb3B0b2V2YWx8fHwKLWRvcG9wdG9naXZlbnx8fAotZG9wb3B0
b2xhYmVsfHx8Ci1kb3BvcHRvbG9vcHx8fAotZG9wb3B0b3N1Yl9hdHx8fAotZG9wb3B0b3N1Ynx8
fAotZG9wb3B0b3doZW58fHwKLWRvcmVmfHw1LjAwOTAwM3wKLWRvdW53aW5kfHx8Ci1kb3dhbnRh
cnJheXx8fAotZHVtcF9hbGx8fDUuMDA2MDAwfAotZHVtcF9ldmFsfHw1LjAwNjAwMHwKLWR1bXBf
ZXhlY19wb3N8fHwKLWR1bXBfZmRzfHx8Ci1kdW1wX2Zvcm18fDUuMDA2MDAwfAotZHVtcF9pbmRl
bnR8fDUuMDA2MDAwfHYKLWR1bXBfbXN0YXRzfHx8Ci1kdW1wX3BhY2tzdWJzfHw1LjAwNjAwMHwK
LWR1bXBfc3VifHw1LjAwNjAwMHwKLWR1bXBfc3ZfY2hpbGR8fHwKLWR1bXBfdHJpZV9pbnRlcmlt
X2xpc3R8fHwKLWR1bXBfdHJpZV9pbnRlcmltX3RhYmxlfHx8Ci1kdW1wX3RyaWV8fHwKLWR1bXBf
dmluZGVudHx8NS4wMDYwMDB8Ci1kdW1wdW50aWx8fHwKLWR1cF9hdHRybGlzdHx8fAotZW11bGF0
ZV9jb3BfaW98fHwKLWVtdWxhdGVfZWFjY2Vzc3x8fAotZXZhbF9wdnw1LjAwNjAwMHx8cAotZXZh
bF9zdnw1LjAwNjAwMHx8cAotZXhlY19mYWlsZWR8fHwKLWV4cGVjdF9udW1iZXJ8fHwKLWZibV9j
b21waWxlfHw1LjAwNTAwMHwKLWZibV9pbnN0cnx8NS4wMDUwMDB8Ci1mZF9vbl9ub3N1aWRfZnN8
fHwKLWZlYXR1cmVfaXNfZW5hYmxlZHx8fAotZmlsdGVyX2FkZHx8fAotZmlsdGVyX2RlbHx8fAot
ZmlsdGVyX2dldHN8fHwKLWZpbHRlcl9yZWFkfHx8Ci1maW5kX2FuZF9mb3JnZXRfcG1vcHN8fHwK
LWZpbmRfYXJyYXlfc3Vic2NyaXB0fHx8Ci1maW5kX2JlZ2lubmluZ3x8fAotZmluZF9ieWNsYXNz
fHx8Ci1maW5kX2hhc2hfc3Vic2NyaXB0fHx8Ci1maW5kX2luX215X3N0YXNofHx8Ci1maW5kX3J1
bmN2fHw1LjAwODAwMXwKLWZpbmRfcnVuZGVmc3ZvZmZzZXR8fDUuMDA5MDAyfAotZmluZF9zY3Jp
cHR8fHwKLWZpbmRfdW5pbml0X3Zhcnx8fAotZmlyc3Rfc3ltYm9sfHx8bgotZm9sZF9jb25zdGFu
dHN8fHwKLWZvcmJpZF9zZXRpZHx8fAotZm9yY2VfaWRlbnR8fHwKLWZvcmNlX2xpc3R8fHwKLWZv
cmNlX25leHR8fHwKLWZvcmNlX3ZlcnNpb258fHwKLWZvcmNlX3dvcmR8fHwKLWZvcmdldF9wbW9w
fHx8Ci1mb3JtX25vY29udGV4dHx8fHZuCi1mb3JtfHw1LjAwNDAwMHx2Ci1mcF9kdXB8fHwKLWZw
cmludGZfbm9jb250ZXh0fHx8dm4KLWZyZWVfZ2xvYmFsX3N0cnVjdHx8fAotZnJlZV90aWVkX2h2
X3Bvb2x8fHwKLWZyZWVfdG1wc3x8fAotZ2VuX2NvbnN0YW50X2xpc3R8fHwKLWdldF9hcmVuYXx8
fAotZ2V0X2F2fDUuMDA2MDAwfHxwCi1nZXRfY29udGV4dHx8NS4wMDYwMDB8bgotZ2V0X2N2bl9m
bGFnc3x8NS4wMDkwMDV8Ci1nZXRfY3Z8NS4wMDYwMDB8fHAKLWdldF9kYl9zdWJ8fHwKLWdldF9k
ZWJ1Z19vcHRzfHx8Ci1nZXRfaGFzaF9zZWVkfHx8Ci1nZXRfaHZ8NS4wMDYwMDB8fHAKLWdldF9t
c3RhdHN8fHwKLWdldF9ub19tb2RpZnl8fHwKLWdldF9udW18fHwKLWdldF9vcF9kZXNjc3x8NS4w
MDUwMDB8Ci1nZXRfb3BfbmFtZXN8fDUuMDA1MDAwfAotZ2V0X29wYXJnc3x8fAotZ2V0X3BwYWRk
cnx8NS4wMDYwMDB8Ci1nZXRfcmVfYXJnfHx8Ci1nZXRfc3Z8NS4wMDYwMDB8fHAKLWdldF92dGJs
fHw1LjAwNTAzMHwKLWdldGN3ZF9zdnx8NS4wMDcwMDJ8Ci1nZXRlbnZfbGVufHx8Ci1nbG9iXzJu
dW1iZXJ8fHwKLWdsb2JfMnB2fHx8Ci1nbG9iX2Fzc2lnbl9nbG9ifHx8Ci1nbG9iX2Fzc2lnbl9y
ZWZ8fHwKLWdwX2R1cHx8fAotZ3BfZnJlZXx8fAotZ3BfcmVmfHx8Ci1ncm9rX2Jpbnw1LjAwNzAw
M3x8cAotZ3Jva19oZXh8NS4wMDcwMDN8fHAKLWdyb2tfbnVtYmVyfDUuMDA3MDAyfHxwCi1ncm9r
X251bWVyaWNfcmFkaXh8NS4wMDcwMDJ8fHAKLWdyb2tfb2N0fDUuMDA3MDAzfHxwCi1ncm91cF9l
bmR8fHwKLWd2X0FWYWRkfHx8Ci1ndl9IVmFkZHx8fAotZ3ZfSU9hZGR8fHwKLWd2X1NWYWRkfHx8
Ci1ndl9hdXRvbG9hZDR8fDUuMDA0MDAwfAotZ3ZfY2hlY2t8fHwKLWd2X2NvbnN0X3N2fHw1LjAw
OTAwM3wKLWd2X2R1bXB8fDUuMDA2MDAwfAotZ3ZfZWZ1bGxuYW1lM3x8NS4wMDQwMDB8Ci1ndl9l
ZnVsbG5hbWU0fHw1LjAwNjAwMXwKLWd2X2VmdWxsbmFtZXx8fAotZ3ZfZW5hbWV8fHwKLWd2X2Zl
dGNoZmlsZV9mbGFnc3x8NS4wMDkwMDV8Ci1ndl9mZXRjaGZpbGV8fHwKLWd2X2ZldGNobWV0aF9h
dXRvbG9hZHx8NS4wMDcwMDN8Ci1ndl9mZXRjaG1ldGhvZF9hdXRvbG9hZHx8NS4wMDQwMDB8Ci1n
dl9mZXRjaG1ldGhvZHx8fAotZ3ZfZmV0Y2htZXRofHx8Ci1ndl9mZXRjaHB2bl9mbGFnc3x8NS4w
MDkwMDJ8Ci1ndl9mZXRjaHB2fHx8Ci1ndl9mZXRjaHN2fHw1LjAwOTAwMnwKLWd2X2Z1bGxuYW1l
M3x8NS4wMDQwMDB8Ci1ndl9mdWxsbmFtZTR8fDUuMDA2MDAxfAotZ3ZfZnVsbG5hbWV8fHwKLWd2
X2hhbmRsZXJ8fDUuMDA3MDAxfAotZ3ZfaW5pdF9zdnx8fAotZ3ZfaW5pdHx8fAotZ3ZfbmFtZV9z
ZXR8fDUuMDA5MDA0fAotZ3Zfc3Rhc2hwdm58NS4wMDQwMDB8fHAKLWd2X3N0YXNocHZzfHw1LjAw
OTAwM3wKLWd2X3N0YXNocHZ8fHwKLWd2X3N0YXNoc3Z8fHwKLWhlX2R1cHx8fAotaGVrX2R1cHx8
fAotaGZyZWVlbnRyaWVzfHx8Ci1oc3BsaXR8fHwKLWh2X2Fzc2VydHx8NS4wMDkwMDV8Ci1odl9h
dXhpbml0fHx8bgotaHZfYmFja3JlZmVyZW5jZXNfcHx8fAotaHZfY2xlYXJfcGxhY2Vob2xkZXJz
fHw1LjAwOTAwMXwKLWh2X2NsZWFyfHx8Ci1odl9jb3B5X2hpbnRzX2h2fHx8Ci1odl9kZWxheWZy
ZWVfZW50fHw1LjAwNDAwMHwKLWh2X2RlbGV0ZV9jb21tb258fHwKLWh2X2RlbGV0ZV9lbnR8fDUu
MDA0MDAwfAotaHZfZGVsZXRlfHx8Ci1odl9laXRlcl9wfHw1LjAwOTAwM3wKLWh2X2VpdGVyX3Nl
dHx8NS4wMDkwMDN8Ci1odl9leGlzdHNfZW50fHw1LjAwNDAwMHwKLWh2X2V4aXN0c3x8fAotaHZf
ZmV0Y2hfY29tbW9ufHx8Ci1odl9mZXRjaF9lbnR8fDUuMDA0MDAwfAotaHZfZmV0Y2hzfDUuMDA5
MDAzfHxwCi1odl9mZXRjaHx8fAotaHZfZnJlZV9lbnR8fDUuMDA0MDAwfAotaHZfaXRlcmluaXR8
fHwKLWh2X2l0ZXJrZXlzdnx8NS4wMDQwMDB8Ci1odl9pdGVya2V5fHx8Ci1odl9pdGVybmV4dF9m
bGFnc3x8NS4wMDgwMDB8Ci1odl9pdGVybmV4dHN2fHx8Ci1odl9pdGVybmV4dHx8fAotaHZfaXRl
cnZhbHx8fAotaHZfa2lsbF9iYWNrcmVmc3x8fAotaHZfa3NwbGl0fHw1LjAwNDAwMHwKLWh2X21h
Z2ljX2NoZWNrfHx8bgotaHZfbWFnaWNfdXZhcl94a2V5fHx8Ci1odl9tYWdpY3x8fAotaHZfbmFt
ZV9zZXR8fDUuMDA5MDAzfAotaHZfbm90YWxsb3dlZHx8fAotaHZfcGxhY2Vob2xkZXJzX2dldHx8
NS4wMDkwMDN8Ci1odl9wbGFjZWhvbGRlcnNfcHx8NS4wMDkwMDN8Ci1odl9wbGFjZWhvbGRlcnNf
c2V0fHw1LjAwOTAwM3wKLWh2X3JpdGVyX3B8fDUuMDA5MDAzfAotaHZfcml0ZXJfc2V0fHw1LjAw
OTAwM3wKLWh2X3NjYWxhcnx8NS4wMDkwMDF8Ci1odl9zdG9yZV9lbnR8fDUuMDA0MDAwfAotaHZf
c3RvcmVfZmxhZ3N8fDUuMDA4MDAwfAotaHZfc3RvcmVzfDUuMDA5MDA0fHxwCi1odl9zdG9yZXx8
fAotaHZfdW5kZWZ8fHwKLWliY21wX2xvY2FsZXx8NS4wMDQwMDB8Ci1pYmNtcF91dGY4fHw1LjAw
NzAwM3wKLWliY21wfHx8Ci1pbmNsX3BlcmxkYnx8fAotaW5jbGluZXx8fAotaW5jcHVzaF9pZl9l
eGlzdHN8fHwKLWluY3B1c2h8fHwKLWluZ3JvdXB8fHwKLWluaXRfYXJndl9zeW1ib2xzfHx8Ci1p
bml0X2RlYnVnZ2VyfHx8Ci1pbml0X2dsb2JhbF9zdHJ1Y3R8fHwKLWluaXRfaTE4bmwxMG58fDUu
MDA2MDAwfAotaW5pdF9pMThubDE0bnx8NS4wMDYwMDB8Ci1pbml0X2lkc3x8fAotaW5pdF9pbnRl
cnB8fHwKLWluaXRfbWFpbl9zdGFzaHx8fAotaW5pdF9wZXJsbGlifHx8Ci1pbml0X3Bvc3RkdW1w
X3N5bWJvbHN8fHwKLWluaXRfcHJlZHVtcF9zeW1ib2xzfHx8Ci1pbml0X3N0YWNrc3x8NS4wMDUw
MDB8Ci1pbml0X3RtfHw1LjAwNzAwMnwKLWluc3RyfHx8Ci1pbnRyb19teXx8fAotaW50dWl0X21l
dGhvZHx8fAotaW50dWl0X21vcmV8fHwKLWludmVydHx8fAotaW9fY2xvc2V8fHwKLWlzQUxOVU18
fHwKLWlzQUxQSEF8fHwKLWlzRElHSVR8fHwKLWlzTE9XRVJ8fHwKLWlzU1BBQ0V8fHwKLWlzVVBQ
RVJ8fHwKLWlzX2FuX2ludHx8fAotaXNfZ3ZfbWFnaWNhbF9zdnx8fAotaXNfZ3ZfbWFnaWNhbHx8
fAotaXNfaGFuZGxlX2NvbnN0cnVjdG9yfHx8bgotaXNfbGlzdF9hc3NpZ25tZW50fHx8Ci1pc19s
dmFsdWVfc3VifHw1LjAwNzAwMXwKLWlzX3VuaV9hbG51bV9sY3x8NS4wMDYwMDB8Ci1pc191bmlf
YWxudW1jX2xjfHw1LjAwNjAwMHwKLWlzX3VuaV9hbG51bWN8fDUuMDA2MDAwfAotaXNfdW5pX2Fs
bnVtfHw1LjAwNjAwMHwKLWlzX3VuaV9hbHBoYV9sY3x8NS4wMDYwMDB8Ci1pc191bmlfYWxwaGF8
fDUuMDA2MDAwfAotaXNfdW5pX2FzY2lpX2xjfHw1LjAwNjAwMHwKLWlzX3VuaV9hc2NpaXx8NS4w
MDYwMDB8Ci1pc191bmlfY250cmxfbGN8fDUuMDA2MDAwfAotaXNfdW5pX2NudHJsfHw1LjAwNjAw
MHwKLWlzX3VuaV9kaWdpdF9sY3x8NS4wMDYwMDB8Ci1pc191bmlfZGlnaXR8fDUuMDA2MDAwfAot
aXNfdW5pX2dyYXBoX2xjfHw1LjAwNjAwMHwKLWlzX3VuaV9ncmFwaHx8NS4wMDYwMDB8Ci1pc191
bmlfaWRmaXJzdF9sY3x8NS4wMDYwMDB8Ci1pc191bmlfaWRmaXJzdHx8NS4wMDYwMDB8Ci1pc191
bmlfbG93ZXJfbGN8fDUuMDA2MDAwfAotaXNfdW5pX2xvd2VyfHw1LjAwNjAwMHwKLWlzX3VuaV9w
cmludF9sY3x8NS4wMDYwMDB8Ci1pc191bmlfcHJpbnR8fDUuMDA2MDAwfAotaXNfdW5pX3B1bmN0
X2xjfHw1LjAwNjAwMHwKLWlzX3VuaV9wdW5jdHx8NS4wMDYwMDB8Ci1pc191bmlfc3BhY2VfbGN8
fDUuMDA2MDAwfAotaXNfdW5pX3NwYWNlfHw1LjAwNjAwMHwKLWlzX3VuaV91cHBlcl9sY3x8NS4w
MDYwMDB8Ci1pc191bmlfdXBwZXJ8fDUuMDA2MDAwfAotaXNfdW5pX3hkaWdpdF9sY3x8NS4wMDYw
MDB8Ci1pc191bmlfeGRpZ2l0fHw1LjAwNjAwMHwKLWlzX3V0ZjhfYWxudW1jfHw1LjAwNjAwMHwK
LWlzX3V0ZjhfYWxudW18fDUuMDA2MDAwfAotaXNfdXRmOF9hbHBoYXx8NS4wMDYwMDB8Ci1pc191
dGY4X2FzY2lpfHw1LjAwNjAwMHwKLWlzX3V0ZjhfY2hhcl9zbG93fHx8bgotaXNfdXRmOF9jaGFy
fHw1LjAwNjAwMHwKLWlzX3V0ZjhfY250cmx8fDUuMDA2MDAwfAotaXNfdXRmOF9jb21tb258fHwK
LWlzX3V0ZjhfZGlnaXR8fDUuMDA2MDAwfAotaXNfdXRmOF9ncmFwaHx8NS4wMDYwMDB8Ci1pc191
dGY4X2lkY29udHx8NS4wMDgwMDB8Ci1pc191dGY4X2lkZmlyc3R8fDUuMDA2MDAwfAotaXNfdXRm
OF9sb3dlcnx8NS4wMDYwMDB8Ci1pc191dGY4X21hcmt8fDUuMDA2MDAwfAotaXNfdXRmOF9wcmlu
dHx8NS4wMDYwMDB8Ci1pc191dGY4X3B1bmN0fHw1LjAwNjAwMHwKLWlzX3V0Zjhfc3BhY2V8fDUu
MDA2MDAwfAotaXNfdXRmOF9zdHJpbmdfbG9jbGVufHw1LjAwOTAwM3wKLWlzX3V0Zjhfc3RyaW5n
X2xvY3x8NS4wMDgwMDF8Ci1pc191dGY4X3N0cmluZ3x8NS4wMDYwMDF8Ci1pc191dGY4X3VwcGVy
fHw1LjAwNjAwMHwKLWlzX3V0ZjhfeGRpZ2l0fHw1LjAwNjAwMHwKLWlzYV9sb29rdXB8fHwKLWl0
ZW1zfHx8bgotaXh8fHxuCi1qbWF5YmV8fHwKLWpvaW5fZXhhY3R8fHwKLWtleXdvcmR8fHwKLWxl
YXZlX3Njb3BlfHx8Ci1sZXhfZW5kfHx8Ci1sZXhfc3RhcnR8fHwKLWxpbmtsaXN0fHx8Ci1saXN0
a2lkc3x8fAotbGlzdHx8fAotbG9hZF9tb2R1bGVfbm9jb250ZXh0fHx8dm4KLWxvYWRfbW9kdWxl
fDUuMDA2MDAwfHxwdgotbG9jYWxpemV8fHwKLWxvb2tzX2xpa2VfYm9vbHx8fAotbG9va3NfbGlr
ZV9udW1iZXJ8fHwKLWxvcHx8fAotbVBVU0hpfDUuMDA5MDAyfHxwCi1tUFVTSG58NS4wMDkwMDJ8
fHAKLW1QVVNIcHw1LjAwOTAwMnx8cAotbVBVU0h1fDUuMDA5MDAyfHxwCi1tWFBVU0hpfDUuMDA5
MDAyfHxwCi1tWFBVU0hufDUuMDA5MDAyfHxwCi1tWFBVU0hwfDUuMDA5MDAyfHxwCi1tWFBVU0h1
fDUuMDA5MDAyfHxwCi1tYWRfZnJlZXx8fAotbWFkbGV4fHx8Ci1tYWRwYXJzZXx8fAotbWFnaWNf
Y2xlYXJfYWxsX2Vudnx8fAotbWFnaWNfY2xlYXJlbnZ8fHwKLW1hZ2ljX2NsZWFyaGludHx8fAot
bWFnaWNfY2xlYXJwYWNrfHx8Ci1tYWdpY19jbGVhcnNpZ3x8fAotbWFnaWNfZHVtcHx8NS4wMDYw
MDB8Ci1tYWdpY19leGlzdHNwYWNrfHx8Ci1tYWdpY19mcmVlYXJ5bGVuX3B8fHwKLW1hZ2ljX2Zy
ZWVvdnJsZHx8fAotbWFnaWNfZnJlZXJlZ2V4cHx8fAotbWFnaWNfZ2V0YXJ5bGVufHx8Ci1tYWdp
Y19nZXRkZWZlbGVtfHx8Ci1tYWdpY19nZXRua2V5c3x8fAotbWFnaWNfZ2V0cGFja3x8fAotbWFn
aWNfZ2V0cG9zfHx8Ci1tYWdpY19nZXRzaWd8fHwKLW1hZ2ljX2dldHN1YnN0cnx8fAotbWFnaWNf
Z2V0dGFpbnR8fHwKLW1hZ2ljX2dldHV2YXJ8fHwKLW1hZ2ljX2dldHZlY3x8fAotbWFnaWNfZ2V0
fHx8Ci1tYWdpY19raWxsYmFja3JlZnN8fHwKLW1hZ2ljX2xlbnx8fAotbWFnaWNfbWV0aGNhbGx8
fHwKLW1hZ2ljX21ldGhwYWNrfHx8Ci1tYWdpY19uZXh0cGFja3x8fAotbWFnaWNfcmVnZGF0YV9j
bnR8fHwKLW1hZ2ljX3JlZ2RhdHVtX2dldHx8fAotbWFnaWNfcmVnZGF0dW1fc2V0fHx8Ci1tYWdp
Y19zY2FsYXJwYWNrfHx8Ci1tYWdpY19zZXRfYWxsX2Vudnx8fAotbWFnaWNfc2V0YW1hZ2ljfHx8
Ci1tYWdpY19zZXRhcnlsZW58fHwKLW1hZ2ljX3NldGJtfHx8Ci1tYWdpY19zZXRjb2xseGZybXx8
fAotbWFnaWNfc2V0ZGJsaW5lfHx8Ci1tYWdpY19zZXRkZWZlbGVtfHx8Ci1tYWdpY19zZXRlbnZ8
fHwKLW1hZ2ljX3NldGZtfHx8Ci1tYWdpY19zZXRnbG9ifHx8Ci1tYWdpY19zZXRoaW50fHx8Ci1t
YWdpY19zZXRpc2F8fHwKLW1hZ2ljX3NldG1nbG9ifHx8Ci1tYWdpY19zZXRua2V5c3x8fAotbWFn
aWNfc2V0cGFja3x8fAotbWFnaWNfc2V0cG9zfHx8Ci1tYWdpY19zZXRyZWdleHB8fHwKLW1hZ2lj
X3NldHNpZ3x8fAotbWFnaWNfc2V0c3Vic3RyfHx8Ci1tYWdpY19zZXR0YWludHx8fAotbWFnaWNf
c2V0dXRmOHx8fAotbWFnaWNfc2V0dXZhcnx8fAotbWFnaWNfc2V0dmVjfHx8Ci1tYWdpY19zZXR8
fHwKLW1hZ2ljX3NpemVwYWNrfHx8Ci1tYWdpY193aXBlcGFja3x8fAotbWFnaWNuYW1lfHx8Ci1t
YWtlX21hdGNoZXJ8fHwKLW1ha2VfdHJpZV9mYWlsdGFibGV8fHwKLW1ha2VfdHJpZXx8fAotbWFs
bG9jZWRfc2l6ZXx8fG4KLW1hbGxvY3x8NS4wMDcwMDJ8bgotbWFya3N0YWNrX2dyb3d8fHwKLW1h
dGNoZXJfbWF0Y2hlc19zdnx8fAotbWVhc3VyZV9zdHJ1Y3R8fHwKLW1lbUVRfDUuMDA0MDAwfHxw
Ci1tZW1ORXw1LjAwNDAwMHx8cAotbWVtX2NvbGx4ZnJtfHx8Ci1tZXNzX2FsbG9jfHx8Ci1tZXNz
X25vY29udGV4dHx8fHZuCi1tZXNzfHw1LjAwNjAwMHx2Ci1tZXRob2RfY29tbW9ufHx8Ci1tZnJl
ZXx8NS4wMDcwMDJ8bgotbWdfY2xlYXJ8fHwKLW1nX2NvcHl8fHwKLW1nX2R1cHx8fAotbWdfZmlu
ZHx8fAotbWdfZnJlZXx8fAotbWdfZ2V0fHx8Ci1tZ19sZW5ndGh8fDUuMDA1MDAwfAotbWdfbG9j
YWxpemV8fHwKLW1nX21hZ2ljYWx8fHwKLW1nX3NldHx8fAotbWdfc2l6ZXx8NS4wMDUwMDB8Ci1t
aW5pX21rdGltZXx8NS4wMDcwMDJ8Ci1taXNzaW5ndGVybXx8fAotbW9kZV9mcm9tX2Rpc2NpcGxp
bmV8fHwKLW1vZGtpZHN8fHwKLW1vZHx8fAotbW9yZV9ib2RpZXN8fHwKLW1vcmVfc3Z8fHwKLW1v
cmVzd2l0Y2hlc3x8fAotbXJvX2dldF9saW5lYXJfaXNhX2MzfHw1LjAwOTAwNXwKLW1yb19nZXRf
bGluZWFyX2lzYV9kZnN8fDUuMDA5MDA1fAotbXJvX2dldF9saW5lYXJfaXNhfHw1LjAwOTAwNXwK
LW1yb19pc2FfY2hhbmdlZF9pbnx8fAotbXJvX21ldGFfZHVwfHx8Ci1tcm9fbWV0YV9pbml0fHx8
Ci1tcm9fbWV0aG9kX2NoYW5nZWRfaW58fDUuMDA5MDA1fAotbXVsMTI4fHx8Ci1tdWxleHAxMHx8
fG4KLW15X2F0b2YyfHw1LjAwNzAwMnwKLW15X2F0b2Z8fDUuMDA2MDAwfAotbXlfYXR0cnN8fHwK
LW15X2Jjb3B5fHx8bgotbXlfYmV0b2gxNnx8fG4KLW15X2JldG9oMzJ8fHxuCi1teV9iZXRvaDY0
fHx8bgotbXlfYmV0b2hpfHx8bgotbXlfYmV0b2hsfHx8bgotbXlfYmV0b2hzfHx8bgotbXlfYnpl
cm98fHxuCi1teV9jaHNpemV8fHwKLW15X2NsZWFyZW52fHx8Ci1teV9jeHRfaW5kZXh8fHwKLW15
X2N4dF9pbml0fHx8Ci1teV9kaXJmZHx8NS4wMDkwMDV8Ci1teV9leGl0X2p1bXB8fHwKLW15X2V4
aXR8fHwKLW15X2ZhaWx1cmVfZXhpdHx8NS4wMDQwMDB8Ci1teV9mZmx1c2hfYWxsfHw1LjAwNjAw
MHwKLW15X2Zvcmt8fDUuMDA3MDAzfG4KLW15X2h0b2JlMTZ8fHxuCi1teV9odG9iZTMyfHx8bgot
bXlfaHRvYmU2NHx8fG4KLW15X2h0b2JlaXx8fG4KLW15X2h0b2JlbHx8fG4KLW15X2h0b2Jlc3x8
fG4KLW15X2h0b2xlMTZ8fHxuCi1teV9odG9sZTMyfHx8bgotbXlfaHRvbGU2NHx8fG4KLW15X2h0
b2xlaXx8fG4KLW15X2h0b2xlbHx8fG4KLW15X2h0b2xlc3x8fG4KLW15X2h0b25sfHx8Ci1teV9r
aWR8fHwKLW15X2xldG9oMTZ8fHxuCi1teV9sZXRvaDMyfHx8bgotbXlfbGV0b2g2NHx8fG4KLW15
X2xldG9oaXx8fG4KLW15X2xldG9obHx8fG4KLW15X2xldG9oc3x8fG4KLW15X2xzdGF0fHx8Ci1t
eV9tZW1jbXB8fDUuMDA0MDAwfG4KLW15X21lbXNldHx8fG4KLW15X250b2hsfHx8Ci1teV9wY2xv
c2V8fDUuMDA0MDAwfAotbXlfcG9wZW5fbGlzdHx8NS4wMDcwMDF8Ci1teV9wb3Blbnx8NS4wMDQw
MDB8Ci1teV9zZXRlbnZ8fHwKLW15X3NucHJpbnRmfDUuMDA5MDA0fHxwdm4KLW15X3NvY2tldHBh
aXJ8fDUuMDA3MDAzfG4KLW15X3NwcmludGZ8fDUuMDA5MDAzfHZuCi1teV9zdGF0fHx8Ci1teV9z
dHJmdGltZXx8NS4wMDcwMDJ8Ci1teV9zdHJsY2F0fDUuMDA5MDA0fHxwbgotbXlfc3RybGNweXw1
LjAwOTAwNHx8cG4KLW15X3N3YWJufHx8bgotbXlfc3dhcHx8fAotbXlfdW5leGVjfHx8Ci1teV92
c25wcmludGZ8fDUuMDA5MDA0fG4KLW15fHx8Ci1uZWVkX3V0Zjh8fHxuCi1uZXdBTk9OQVRUUlNV
Qnx8NS4wMDYwMDB8Ci1uZXdBTk9OSEFTSHx8fAotbmV3QU5PTkxJU1R8fHwKLW5ld0FOT05TVUJ8
fHwKLW5ld0FTU0lHTk9QfHx8Ci1uZXdBVFRSU1VCfHw1LjAwNjAwMHwKLW5ld0FWUkVGfHx8Ci1u
ZXdBVnx8fAotbmV3QklOT1B8fHwKLW5ld0NPTkRPUHx8fAotbmV3Q09OU1RTVUJ8NS4wMDQwNTB8
fHAKLW5ld0NWUkVGfHx8Ci1uZXdERUZTVk9QfHx8Ci1uZXdGT1JNfHx8Ci1uZXdGT1JPUHx8fAot
bmV3R0lWRU5PUHx8NS4wMDkwMDN8Ci1uZXdHSVZXSEVOT1B8fHwKLW5ld0dQfHx8Ci1uZXdHVk9Q
fHx8Ci1uZXdHVlJFRnx8fAotbmV3R1ZnZW58fHwKLW5ld0hWUkVGfHx8Ci1uZXdIVmh2fHw1LjAw
NTAwMHwKLW5ld0hWfHx8Ci1uZXdJT3x8fAotbmV3TElTVE9QfHx8Ci1uZXdMT0dPUHx8fAotbmV3
TE9PUEVYfHx8Ci1uZXdMT09QT1B8fHwKLW5ld01BRFBST1B8fHwKLW5ld01BRHN2fHx8Ci1uZXdN
WVNVQnx8fAotbmV3TlVMTExJU1R8fHwKLW5ld09QfHx8Ci1uZXdQQURPUHx8fAotbmV3UE1PUHx8
fAotbmV3UFJPR3x8fAotbmV3UFZPUHx8fAotbmV3UkFOR0V8fHwKLW5ld1JWX2luY3w1LjAwNDAw
MHx8cAotbmV3UlZfbm9pbmN8NS4wMDQwMDB8fHAKLW5ld1JWfHx8Ci1uZXdTTElDRU9QfHx8Ci1u
ZXdTVEFURU9QfHx8Ci1uZXdTVUJ8fHwKLW5ld1NWT1B8fHwKLW5ld1NWUkVGfHx8Ci1uZXdTVl90
eXBlfHw1LjAwOTAwNXwKLW5ld1NWaGVrfHw1LjAwOTAwM3wKLW5ld1NWaXZ8fHwKLW5ld1NWbnZ8
fHwKLW5ld1NWcHZmX25vY29udGV4dHx8fHZuCi1uZXdTVnB2Znx8NS4wMDQwMDB8dgotbmV3U1Zw
dm5fc2hhcmV8NS4wMDcwMDF8fHAKLW5ld1NWcHZufDUuMDA0MDUwfHxwCi1uZXdTVnB2c19zaGFy
ZXx8NS4wMDkwMDN8Ci1uZXdTVnB2c3w1LjAwOTAwM3x8cAotbmV3U1Zwdnx8fAotbmV3U1Zydnx8
fAotbmV3U1Zzdnx8fAotbmV3U1Z1dnw1LjAwNjAwMHx8cAotbmV3U1Z8fHwKLW5ld1RPS0VOfHx8
Ci1uZXdVTk9QfHx8Ci1uZXdXSEVOT1B8fDUuMDA5MDAzfAotbmV3V0hJTEVPUHx8NS4wMDkwMDN8
Ci1uZXdYU19mbGFnc3x8NS4wMDkwMDR8Ci1uZXdYU3Byb3RvfHw1LjAwNjAwMHwKLW5ld1hTfHw1
LjAwNjAwMHwKLW5ld19jb2xsYXRlfHw1LjAwNjAwMHwKLW5ld19jb25zdGFudHx8fAotbmV3X2N0
eXBlfHw1LjAwNjAwMHwKLW5ld19oZXx8fAotbmV3X2xvZ29wfHx8Ci1uZXdfbnVtZXJpY3x8NS4w
MDYwMDB8Ci1uZXdfc3RhY2tpbmZvfHw1LjAwNTAwMHwKLW5ld192ZXJzaW9ufHw1LjAwOTAwMHwK
LW5ld193YXJuaW5nc19iaXRmaWVsZHx8fAotbmV4dF9zeW1ib2x8fHwKLW5leHRhcmd2fHx8Ci1u
ZXh0Y2hhcnx8fAotbmluc3RyfHx8Ci1ub19iYXJld29yZF9hbGxvd2VkfHx8Ci1ub19maF9hbGxv
d2VkfHx8Ci1ub19vcHx8fAotbm90X2FfbnVtYmVyfHx8Ci1ub3RocmVhZGhvb2t8fDUuMDA4MDAw
fAotbnVrZV9zdGFja3N8fHwKLW51bV9vdmVyZmxvd3x8fG4KLW9mZmVyX25pY2VfY2h1bmt8fHwK
LW9vcHNBVnx8fAotb29wc0NWfHx8Ci1vb3BzSFZ8fHwKLW9wX2NsZWFyfHx8Ci1vcF9jb25zdF9z
dnx8fAotb3BfZHVtcHx8NS4wMDYwMDB8Ci1vcF9mcmVlfHx8Ci1vcF9nZXRtYWRfd2Vha3x8fAot
b3BfZ2V0bWFkfHx8Ci1vcF9udWxsfHw1LjAwNzAwMnwKLW9wX3JlZmNudF9kZWN8fHwKLW9wX3Jl
ZmNudF9pbmN8fHwKLW9wX3JlZmNudF9sb2NrfHw1LjAwOTAwMnwKLW9wX3JlZmNudF91bmxvY2t8
fDUuMDA5MDAyfAotb3BfeG1sZHVtcHx8fAotb3Blbl9zY3JpcHR8fHwKLXBNWV9DWFRffDUuMDA3
MDAzfHxwCi1wTVlfQ1hUfDUuMDA3MDAzfHxwCi1wVEhYX3w1LjAwNjAwMHx8cAotcFRIWHw1LjAw
NjAwMHx8cAotcGFja1dBUk58NS4wMDcwMDN8fHAKLXBhY2tfY2F0fHw1LjAwNzAwM3wKLXBhY2tf
cmVjfHx8Ci1wYWNrYWdlfHx8Ci1wYWNrbGlzdHx8NS4wMDgwMDF8Ci1wYWRfYWRkX2Fub258fHwK
LXBhZF9hZGRfbmFtZXx8fAotcGFkX2FsbG9jfHx8Ci1wYWRfYmxvY2tfc3RhcnR8fHwKLXBhZF9j
aGVja19kdXB8fHwKLXBhZF9jb21wbmFtZV90eXBlfHx8Ci1wYWRfZmluZGxleHx8fAotcGFkX2Zp
bmRteXx8fAotcGFkX2ZpeHVwX2lubmVyX2Fub25zfHx8Ci1wYWRfZnJlZXx8fAotcGFkX2xlYXZl
bXl8fHwKLXBhZF9uZXd8fHwKLXBhZF9wZWd8fHxuCi1wYWRfcHVzaHx8fAotcGFkX3Jlc2V0fHx8
Ci1wYWRfc2V0c3Z8fHwKLXBhZF9zdnx8NS4wMDkwMDV8Ci1wYWRfc3dpcGV8fHwKLXBhZF90aWR5
fHx8Ci1wYWRfdW5kZWZ8fHwKLXBhcnNlX2JvZHl8fHwKLXBhcnNlX3VuaWNvZGVfb3B0c3x8fAot
cGFyc2VyX2R1cHx8fAotcGFyc2VyX2ZyZWV8fHwKLXBhdGhfaXNfYWJzb2x1dGV8fHxuCi1wZWVw
fHx8Ci1wZW5kaW5nX1NsYWJzX3RvX3JvfHx8Ci1wZXJsX2FsbG9jX3VzaW5nfHx8bgotcGVybF9h
bGxvY3x8fG4KLXBlcmxfY2xvbmVfdXNpbmd8fHxuCi1wZXJsX2Nsb25lfHx8bgotcGVybF9jb25z
dHJ1Y3R8fHxuCi1wZXJsX2Rlc3RydWN0fHw1LjAwNzAwM3xuCi1wZXJsX2ZyZWV8fHxuCi1wZXJs
X3BhcnNlfHw1LjAwNjAwMHxuCi1wZXJsX3J1bnx8fG4KLXBpZGdvbmV8fHwKLXBtX2Rlc2NyaXB0
aW9ufHx8Ci1wbWZsYWd8fHwKLXBtb3BfZHVtcHx8NS4wMDYwMDB8Ci1wbW9wX3htbGR1bXB8fHwK
LXBtcnVudGltZXx8fAotcG10cmFuc3x8fAotcG9wX3Njb3BlfHx8Ci1wcmVnY29tcHx8NS4wMDkw
MDV8Ci1wcmVnZXhlY3x8fAotcHJlZ2ZyZWV8fHwKLXByZXBlbmRfZWxlbXx8fAotcHJlcGVuZF9t
YWRwcm9wc3x8fAotcHJpbnRidWZ8fHwKLXByaW50Zl9ub2NvbnRleHR8fHx2bgotcHJvY2Vzc19z
cGVjaWFsX2Jsb2Nrc3x8fAotcHRyX3RhYmxlX2NsZWFyfHw1LjAwOTAwNXwKLXB0cl90YWJsZV9m
ZXRjaHx8NS4wMDkwMDV8Ci1wdHJfdGFibGVfZmluZHx8fG4KLXB0cl90YWJsZV9mcmVlfHw1LjAw
OTAwNXwKLXB0cl90YWJsZV9uZXd8fDUuMDA5MDA1fAotcHRyX3RhYmxlX3NwbGl0fHw1LjAwOTAw
NXwKLXB0cl90YWJsZV9zdG9yZXx8NS4wMDkwMDV8Ci1wdXNoX3Njb3BlfHx8Ci1wdXRfYnl0ZXx8
fAotcHZfZGlzcGxheXx8NS4wMDYwMDB8Ci1wdl9lc2NhcGV8fDUuMDA5MDA0fAotcHZfcHJldHR5
fHw1LjAwOTAwNHwKLXB2X3VuaV9kaXNwbGF5fHw1LjAwNzAwM3wKLXFlcnJvcnx8fAotcXNvcnRz
dnV8fHwKLXJlX2NvbXBpbGV8fDUuMDA5MDA1fAotcmVfY3JvYWsyfHx8Ci1yZV9kdXB8fHwKLXJl
X2ludHVpdF9zdGFydHx8NS4wMDkwMDV8Ci1yZV9pbnR1aXRfc3RyaW5nfHw1LjAwNjAwMHwKLXJl
YWRwaXBlX292ZXJyaWRlfHx8Ci1yZWFsbG9jfHw1LjAwNzAwMnxuCi1yZWVudHJhbnRfZnJlZXx8
fAotcmVlbnRyYW50X2luaXR8fHwKLXJlZW50cmFudF9yZXRyeXx8fHZuCi1yZWVudHJhbnRfc2l6
ZXx8fAotcmVmX2FycmF5X29yX2hhc2h8fHwKLXJlZmNvdW50ZWRfaGVfY2hhaW5fMmh2fHx8Ci1y
ZWZjb3VudGVkX2hlX2ZldGNofHx8Ci1yZWZjb3VudGVkX2hlX2ZyZWV8fHwKLXJlZmNvdW50ZWRf
aGVfbmV3fHx8Ci1yZWZjb3VudGVkX2hlX3ZhbHVlfHx8Ci1yZWZraWRzfHx8Ci1yZWZ0b3x8fAot
cmVmfHw1LjAwOTAwM3wKLXJlZ19jaGVja19uYW1lZF9idWZmX21hdGNoZWR8fHwKLXJlZ19uYW1l
ZF9idWZmX2FsbHx8NS4wMDkwMDV8Ci1yZWdfbmFtZWRfYnVmZl9leGlzdHN8fDUuMDA5MDA1fAot
cmVnX25hbWVkX2J1ZmZfZmV0Y2h8fDUuMDA5MDA1fAotcmVnX25hbWVkX2J1ZmZfZmlyc3RrZXl8
fDUuMDA5MDA1fAotcmVnX25hbWVkX2J1ZmZfaXRlcnx8fAotcmVnX25hbWVkX2J1ZmZfbmV4dGtl
eXx8NS4wMDkwMDV8Ci1yZWdfbmFtZWRfYnVmZl9zY2FsYXJ8fDUuMDA5MDA1fAotcmVnX25hbWVk
X2J1ZmZ8fHwKLXJlZ19uYW1lZHNlcXx8fAotcmVnX25vZGV8fHwKLXJlZ19udW1iZXJlZF9idWZm
X2ZldGNofHx8Ci1yZWdfbnVtYmVyZWRfYnVmZl9sZW5ndGh8fHwKLXJlZ19udW1iZXJlZF9idWZm
X3N0b3JlfHx8Ci1yZWdfcXJfcGFja2FnZXx8fAotcmVnX3JlY29kZXx8fAotcmVnX3NjYW5fbmFt
ZXx8fAotcmVnX3NraXBjb21tZW50fHx8Ci1yZWdfc3RyaW5naWZ5fHw1LjAwOTAwNXwKLXJlZ190
ZW1wX2NvcHl8fHwKLXJlZ2Fub2RlfHx8Ci1yZWdhdG9tfHx8Ci1yZWdicmFuY2h8fHwKLXJlZ2Ns
YXNzX3N3YXNofHw1LjAwOTAwNHwKLXJlZ2NsYXNzfHx8Ci1yZWdjcHBvcHx8fAotcmVnY3BwdXNo
fHx8Ci1yZWdjdXJseXx8fG4KLXJlZ2R1bXBfZXh0ZmxhZ3N8fHwKLXJlZ2R1bXB8fDUuMDA1MDAw
fAotcmVnZHVwZV9pbnRlcm5hbHx8fAotcmVnZXhlY19mbGFnc3x8NS4wMDUwMDB8Ci1yZWdmcmVl
X2ludGVybmFsfHw1LjAwOTAwNXwKLXJlZ2hvcDN8fHxuCi1yZWdob3A0fHx8bgotcmVnaG9wbWF5
YmUzfHx8bgotcmVnaW5jbGFzc3x8fAotcmVnaW5pdGNvbG9yc3x8NS4wMDYwMDB8Ci1yZWdpbnNl
cnR8fHwKLXJlZ21hdGNofHx8Ci1yZWduZXh0fHw1LjAwNTAwMHwKLXJlZ3BpZWNlfHx8Ci1yZWdw
cG9zaXhjY3x8fAotcmVncHJvcHx8fAotcmVncmVwZWF0fHx8Ci1yZWd0YWlsX3N0dWR5fHx8Ci1y
ZWd0YWlsfHx8Ci1yZWd0cnl8fHwKLXJlZ3VuaXx8fAotcmVnd2hpdGV8fHxuCi1yZWd8fHwKLXJl
cGVhdGNweXx8fAotcmVwb3J0X2V2aWxfZmh8fHwKLXJlcG9ydF91bmluaXR8fHwKLXJlcXVpcmVf
cHZ8fDUuMDA2MDAwfAotcmVxdWlyZV90aWVfbW9kfHx8Ci1yZXN0b3JlX21hZ2ljfHx8Ci1ybmlu
c3RyfHx8Ci1yc2lnbmFsX3Jlc3RvcmV8fHwKLXJzaWduYWxfc2F2ZXx8fAotcnNpZ25hbF9zdGF0
ZXx8NS4wMDQwMDB8Ci1yc2lnbmFsfHw1LjAwNDAwMHwKLXJ1bl9ib2R5fHx8Ci1ydW5fdXNlcl9m
aWx0ZXJ8fHwKLXJ1bm9wc19kZWJ1Z3x8NS4wMDUwMDB8Ci1ydW5vcHNfc3RhbmRhcmR8fDUuMDA1
MDAwfAotcnZwdl9kdXB8fHwKLXJ4cmVzX2ZyZWV8fHwKLXJ4cmVzX3Jlc3RvcmV8fHwKLXJ4cmVz
X3NhdmV8fHwKLXNhZmVzeXNjYWxsb2N8fDUuMDA2MDAwfG4KLXNhZmVzeXNmcmVlfHw1LjAwNjAw
MHxuCi1zYWZlc3lzbWFsbG9jfHw1LjAwNjAwMHxuCi1zYWZlc3lzcmVhbGxvY3x8NS4wMDYwMDB8
bgotc2FtZV9kaXJlbnR8fHwKLXNhdmVfSTE2fHw1LjAwNDAwMHwKLXNhdmVfSTMyfHx8Ci1zYXZl
X0k4fHw1LjAwNjAwMHwKLXNhdmVfYWVsZW18fDUuMDA0MDUwfAotc2F2ZV9hbGxvY3x8NS4wMDYw
MDB8Ci1zYXZlX2FwdHJ8fHwKLXNhdmVfYXJ5fHx8Ci1zYXZlX2Jvb2x8fDUuMDA4MDAxfAotc2F2
ZV9jbGVhcnN2fHx8Ci1zYXZlX2RlbGV0ZXx8fAotc2F2ZV9kZXN0cnVjdG9yX3h8fDUuMDA2MDAw
fAotc2F2ZV9kZXN0cnVjdG9yfHw1LjAwNjAwMHwKLXNhdmVfZnJlZW9wfHx8Ci1zYXZlX2ZyZWVw
dnx8fAotc2F2ZV9mcmVlc3Z8fHwKLXNhdmVfZ2VuZXJpY19wdnJlZnx8NS4wMDYwMDF8Ci1zYXZl
X2dlbmVyaWNfc3ZyZWZ8fDUuMDA1MDMwfAotc2F2ZV9ncHx8NS4wMDQwMDB8Ci1zYXZlX2hhc2h8
fHwKLXNhdmVfaGVrX2ZsYWdzfHx8bgotc2F2ZV9oZWxlbXx8NS4wMDQwNTB8Ci1zYXZlX2hpbnRz
fHw1LjAwNTAwMHwKLXNhdmVfaHB0cnx8fAotc2F2ZV9pbnR8fHwKLXNhdmVfaXRlbXx8fAotc2F2
ZV9pdnx8NS4wMDUwMDB8Ci1zYXZlX2xpbmVzfHx8Ci1zYXZlX2xpc3R8fHwKLXNhdmVfbG9uZ3x8
fAotc2F2ZV9tYWdpY3x8fAotc2F2ZV9tb3J0YWxpemVzdnx8NS4wMDcwMDF8Ci1zYXZlX25vZ3Z8
fHwKLXNhdmVfb3B8fHwKLXNhdmVfcGFkc3Z8fDUuMDA3MDAxfAotc2F2ZV9wcHRyfHx8Ci1zYXZl
X3JlX2NvbnRleHR8fDUuMDA2MDAwfAotc2F2ZV9zY2FsYXJfYXR8fHwKLXNhdmVfc2NhbGFyfHx8
Ci1zYXZlX3NldF9zdmZsYWdzfHw1LjAwOTAwMHwKLXNhdmVfc2hhcmVkX3B2cmVmfHw1LjAwNzAw
M3wKLXNhdmVfc3B0cnx8fAotc2F2ZV9zdnJlZnx8fAotc2F2ZV92cHRyfHw1LjAwNjAwMHwKLXNh
dmVwdm58fHwKLXNhdmVwdnN8fDUuMDA5MDAzfAotc2F2ZXB2fHx8Ci1zYXZlc2hhcmVkcHZufHw1
LjAwOTAwNXwKLXNhdmVzaGFyZWRwdnx8NS4wMDcwMDN8Ci1zYXZlc3RhY2tfZ3Jvd19jbnR8fDUu
MDA4MDAxfAotc2F2ZXN0YWNrX2dyb3d8fHwKLXNhdmVzdnB2fHw1LjAwOTAwMnwKLXNhd3BhcmVu
c3x8fAotc2NhbGFyX21vZF90eXBlfHx8bgotc2NhbGFyYm9vbGVhbnx8fAotc2NhbGFya2lkc3x8
fAotc2NhbGFyc2VxfHx8Ci1zY2FsYXJ2b2lkfHx8Ci1zY2FsYXJ8fHwKLXNjYW5fYmlufHw1LjAw
NjAwMHwKLXNjYW5fY29tbWl0fHx8Ci1zY2FuX2NvbnN0fHx8Ci1zY2FuX2Zvcm1saW5lfHx8Ci1z
Y2FuX2hlcmVkb2N8fHwKLXNjYW5faGV4fHx8Ci1zY2FuX2lkZW50fHx8Ci1zY2FuX2lucHV0c3lt
Ym9sfHx8Ci1zY2FuX251bXx8NS4wMDcwMDF8Ci1zY2FuX29jdHx8fAotc2Nhbl9wYXR8fHwKLXNj
YW5fc3RyfHx8Ci1zY2FuX3N1YnN0fHx8Ci1zY2FuX3RyYW5zfHx8Ci1zY2FuX3ZlcnNpb258fDUu
MDA5MDAxfAotc2Nhbl92c3RyaW5nfHw1LjAwOTAwNXwKLXNjYW5fd29yZHx8fAotc2NvcGV8fHwK
LXNjcmVhbWluc3RyfHw1LjAwNTAwMHwKLXNlZWR8fDUuMDA4MDAxfAotc2VxdWVuY2VfbnVtfHx8
Ci1zZXF1ZW5jZV90YWlsfHx8Ci1zZXF1ZW5jZXx8fAotc2V0X2NvbnRleHR8fDUuMDA2MDAwfG4K
LXNldF9jc2h8fHwKLXNldF9udW1lcmljX2xvY2FsfHw1LjAwNjAwMHwKLXNldF9udW1lcmljX3Jh
ZGl4fHw1LjAwNjAwMHwKLXNldF9udW1lcmljX3N0YW5kYXJkfHw1LjAwNjAwMHwKLXNldGRlZm91
dHx8fAotc2V0ZW52X2dldGl4fHx8Ci1zaGFyZV9oZWtfZmxhZ3N8fHwKLXNoYXJlX2hla3x8NS4w
MDQwMDB8Ci1zaV9kdXB8fHwKLXNpZ2hhbmRsZXJ8fHxuCi1zaW1wbGlmeV9zb3J0fHx8Ci1za2lw
c3BhY2UwfHx8Ci1za2lwc3BhY2UxfHx8Ci1za2lwc3BhY2UyfHx8Ci1za2lwc3BhY2V8fHwKLXNv
ZnRyZWYyeHZ8fHwKLXNvcnRjdl9zdGFja2VkfHx8Ci1zb3J0Y3ZfeHN1Ynx8fAotc29ydGN2fHx8
Ci1zb3J0c3ZfZmxhZ3N8fDUuMDA5MDAzfAotc29ydHN2fHw1LjAwNzAwM3wKLXNwYWNlX2pvaW5f
bmFtZXNfbW9ydGFsfHx8Ci1zc19kdXB8fHwKLXN0YWNrX2dyb3d8fHwKLXN0YXJ0X2ZvcmNlfHx8
Ci1zdGFydF9nbG9ifHx8Ci1zdGFydF9zdWJwYXJzZXx8NS4wMDQwMDB8Ci1zdGFzaHB2X2h2bmFt
ZV9tYXRjaHx8NS4wMDkwMDV8Ci1zdGRpemVfbG9jYWxlfHx8Ci1zdHJFUXx8fAotc3RyR0V8fHwK
LXN0ckdUfHx8Ci1zdHJMRXx8fAotc3RyTFR8fHwKLXN0ck5FfHx8Ci1zdHJfdG9fdmVyc2lvbnx8
NS4wMDYwMDB8Ci1zdHJpcF9yZXR1cm58fHwKLXN0cm5FUXx8fAotc3Rybk5FfHx8Ci1zdHVkeV9j
aHVua3x8fAotc3ViX2NydXNoX2RlcHRofHx8Ci1zdWJsZXhfZG9uZXx8fAotc3VibGV4X3B1c2h8
fHwKLXN1YmxleF9zdGFydHx8fAotc3ZfMmJvb2x8fHwKLXN2XzJjdnx8fAotc3ZfMmlvfHx8Ci1z
dl8yaXV2X2NvbW1vbnx8fAotc3ZfMml1dl9ub25fcHJlc2VydmV8fHwKLXN2XzJpdl9mbGFnc3x8
NS4wMDkwMDF8Ci1zdl8yaXZ8fHwKLXN2XzJtb3J0YWx8fHwKLXN2XzJudnx8fAotc3ZfMnB2X2Zs
YWdzfDUuMDA3MDAyfHxwCi1zdl8ycHZfbm9sZW58NS4wMDYwMDB8fHAKLXN2XzJwdmJ5dGVfbm9s
ZW58NS4wMDYwMDB8fHAKLXN2XzJwdmJ5dGV8NS4wMDYwMDB8fHAKLXN2XzJwdnV0Zjhfbm9sZW58
fDUuMDA2MDAwfAotc3ZfMnB2dXRmOHx8NS4wMDYwMDB8Ci1zdl8ycHZ8fHwKLXN2XzJ1dl9mbGFn
c3x8NS4wMDkwMDF8Ci1zdl8ydXZ8NS4wMDQwMDB8fHAKLXN2X2FkZF9hcmVuYXx8fAotc3ZfYWRk
X2JhY2tyZWZ8fHwKLXN2X2JhY2tvZmZ8fHwKLXN2X2JsZXNzfHx8Ci1zdl9jYXRfZGVjb2RlfHw1
LjAwODAwMXwKLXN2X2NhdHB2X21nfDUuMDA0MDUwfHxwCi1zdl9jYXRwdmZfbWdfbm9jb250ZXh0
fHx8cHZuCi1zdl9jYXRwdmZfbWd8NS4wMDYwMDB8NS4wMDQwMDB8cHYKLXN2X2NhdHB2Zl9ub2Nv
bnRleHR8fHx2bgotc3ZfY2F0cHZmfHw1LjAwNDAwMHx2Ci1zdl9jYXRwdm5fZmxhZ3N8fDUuMDA3
MDAyfAotc3ZfY2F0cHZuX21nfDUuMDA0MDUwfHxwCi1zdl9jYXRwdm5fbm9tZ3w1LjAwNzAwMnx8
cAotc3ZfY2F0cHZufHx8Ci1zdl9jYXRwdnN8NS4wMDkwMDN8fHAKLXN2X2NhdHB2fHx8Ci1zdl9j
YXRzdl9mbGFnc3x8NS4wMDcwMDJ8Ci1zdl9jYXRzdl9tZ3w1LjAwNDA1MHx8cAotc3ZfY2F0c3Zf
bm9tZ3w1LjAwNzAwMnx8cAotc3ZfY2F0c3Z8fHwKLXN2X2NhdHhtbHB2bnx8fAotc3ZfY2F0eG1s
c3Z8fHwKLXN2X2Nob3B8fHwKLXN2X2NsZWFuX2FsbHx8fAotc3ZfY2xlYW5fb2Jqc3x8fAotc3Zf
Y2xlYXJ8fHwKLXN2X2NtcF9sb2NhbGV8fDUuMDA0MDAwfAotc3ZfY21wfHx8Ci1zdl9jb2xseGZy
bXx8fAotc3ZfY29tcGlsZV8yb3B8fDUuMDA4MDAxfAotc3ZfY29weXB2fHw1LjAwNzAwM3wKLXN2
X2RlY3x8fAotc3ZfZGVsX2JhY2tyZWZ8fHwKLXN2X2Rlcml2ZWRfZnJvbXx8NS4wMDQwMDB8Ci1z
dl9kb2VzfHw1LjAwOTAwNHwKLXN2X2R1bXB8fHwKLXN2X2R1cHx8fAotc3ZfZXF8fHwKLXN2X2V4
cF9ncm93fHx8Ci1zdl9mb3JjZV9ub3JtYWxfZmxhZ3N8fDUuMDA3MDAxfAotc3ZfZm9yY2Vfbm9y
bWFsfHw1LjAwNjAwMHwKLXN2X2ZyZWUyfHx8Ci1zdl9mcmVlX2FyZW5hc3x8fAotc3ZfZnJlZXx8
fAotc3ZfZ2V0c3x8NS4wMDQwMDB8Ci1zdl9ncm93fHx8Ci1zdl9pX25jbXB8fHwKLXN2X2luY3x8
fAotc3ZfaW5zZXJ0fHx8Ci1zdl9pc2F8fHwKLXN2X2lzb2JqZWN0fHx8Ci1zdl9pdnx8NS4wMDUw
MDB8Ci1zdl9raWxsX2JhY2tyZWZzfHx8Ci1zdl9sZW5fdXRmOHx8NS4wMDYwMDB8Ci1zdl9sZW58
fHwKLXN2X21hZ2ljX3BvcnRhYmxlfDUuMDA5MDA1fDUuMDA0MDAwfHAKLXN2X21hZ2ljZXh0fHw1
LjAwNzAwM3wKLXN2X21hZ2ljfHx8Ci1zdl9tb3J0YWxjb3B5fHx8Ci1zdl9uY21wfHx8Ci1zdl9u
ZXdtb3J0YWx8fHwKLXN2X25ld3JlZnx8fAotc3Zfbm9sb2NraW5nfHw1LjAwNzAwM3wKLXN2X25v
c2hhcmluZ3x8NS4wMDcwMDN8Ci1zdl9ub3VubG9ja2luZ3x8fAotc3ZfbnZ8fDUuMDA1MDAwfAot
c3ZfcGVla3x8NS4wMDUwMDB8Ci1zdl9wb3NfYjJ1X21pZHdheXx8fAotc3ZfcG9zX2IydXx8NS4w
MDYwMDB8Ci1zdl9wb3NfdTJiX2NhY2hlZHx8fAotc3ZfcG9zX3UyYl9mb3J3YXJkc3x8fG4KLXN2
X3Bvc191MmJfbWlkd2F5fHx8bgotc3ZfcG9zX3UyYnx8NS4wMDYwMDB8Ci1zdl9wdmJ5dGVuX2Zv
cmNlfHw1LjAwNjAwMHwKLXN2X3B2Ynl0ZW58fDUuMDA2MDAwfAotc3ZfcHZieXRlfHw1LjAwNjAw
MHwKLXN2X3B2bl9mb3JjZV9mbGFnc3w1LjAwNzAwMnx8cAotc3ZfcHZuX2ZvcmNlfHx8Ci1zdl9w
dm5fbm9tZ3w1LjAwNzAwM3x8cAotc3ZfcHZufHx8Ci1zdl9wdnV0ZjhuX2ZvcmNlfHw1LjAwNjAw
MHwKLXN2X3B2dXRmOG58fDUuMDA2MDAwfAotc3ZfcHZ1dGY4fHw1LjAwNjAwMHwKLXN2X3B2fHw1
LjAwNjAwMHwKLXN2X3JlY29kZV90b191dGY4fHw1LjAwNzAwM3wKLXN2X3JlZnR5cGV8fHwKLXN2
X3JlbGVhc2VfQ09XfHx8Ci1zdl9yZXBsYWNlfHx8Ci1zdl9yZXBvcnRfdXNlZHx8fAotc3ZfcmVz
ZXR8fHwKLXN2X3J2d2Vha2VufHw1LjAwNjAwMHwKLXN2X3NldGl2X21nfDUuMDA0MDUwfHxwCi1z
dl9zZXRpdnx8fAotc3Zfc2V0bnZfbWd8NS4wMDYwMDB8fHAKLXN2X3NldG52fHx8Ci1zdl9zZXRw
dl9tZ3w1LjAwNDA1MHx8cAotc3Zfc2V0cHZmX21nX25vY29udGV4dHx8fHB2bgotc3Zfc2V0cHZm
X21nfDUuMDA2MDAwfDUuMDA0MDAwfHB2Ci1zdl9zZXRwdmZfbm9jb250ZXh0fHx8dm4KLXN2X3Nl
dHB2Znx8NS4wMDQwMDB8dgotc3Zfc2V0cHZpdl9tZ3x8NS4wMDgwMDF8Ci1zdl9zZXRwdml2fHw1
LjAwODAwMXwKLXN2X3NldHB2bl9tZ3w1LjAwNDA1MHx8cAotc3Zfc2V0cHZufHx8Ci1zdl9zZXRw
dnN8NS4wMDkwMDR8fHAKLXN2X3NldHB2fHx8Ci1zdl9zZXRyZWZfaXZ8fHwKLXN2X3NldHJlZl9u
dnx8fAotc3Zfc2V0cmVmX3B2bnx8fAotc3Zfc2V0cmVmX3B2fHx8Ci1zdl9zZXRyZWZfdXZ8fDUu
MDA3MDAxfAotc3Zfc2V0c3ZfY293fHx8Ci1zdl9zZXRzdl9mbGFnc3x8NS4wMDcwMDJ8Ci1zdl9z
ZXRzdl9tZ3w1LjAwNDA1MHx8cAotc3Zfc2V0c3Zfbm9tZ3w1LjAwNzAwMnx8cAotc3Zfc2V0c3Z8
fHwKLXN2X3NldHV2X21nfDUuMDA0MDUwfHxwCi1zdl9zZXR1dnw1LjAwNDAwMHx8cAotc3ZfdGFp
bnRlZHx8NS4wMDQwMDB8Ci1zdl90YWludHx8NS4wMDQwMDB8Ci1zdl90cnVlfHw1LjAwNTAwMHwK
LXN2X3VuZ2xvYnx8fAotc3ZfdW5pX2Rpc3BsYXl8fDUuMDA3MDAzfAotc3ZfdW5tYWdpY3x8fAot
c3ZfdW5yZWZfZmxhZ3N8fDUuMDA3MDAxfAotc3ZfdW5yZWZ8fHwKLXN2X3VudGFpbnR8fDUuMDA0
MDAwfAotc3ZfdXBncmFkZXx8fAotc3ZfdXNlcHZuX2ZsYWdzfHw1LjAwOTAwNHwKLXN2X3VzZXB2
bl9tZ3w1LjAwNDA1MHx8cAotc3ZfdXNlcHZufHx8Ci1zdl91dGY4X2RlY29kZXx8NS4wMDYwMDB8
Ci1zdl91dGY4X2Rvd25ncmFkZXx8NS4wMDYwMDB8Ci1zdl91dGY4X2VuY29kZXx8NS4wMDYwMDB8
Ci1zdl91dGY4X3VwZ3JhZGVfZmxhZ3N8fDUuMDA3MDAyfAotc3ZfdXRmOF91cGdyYWRlfHw1LjAw
NzAwMXwKLXN2X3V2fDUuMDA1MDAwfHxwCi1zdl92Y2F0cHZmX21nfDUuMDA2MDAwfDUuMDA0MDAw
fHAKLXN2X3ZjYXRwdmZufHw1LjAwNDAwMHwKLXN2X3ZjYXRwdmZ8NS4wMDYwMDB8NS4wMDQwMDB8
cAotc3ZfdnNldHB2Zl9tZ3w1LjAwNjAwMHw1LjAwNDAwMHxwCi1zdl92c2V0cHZmbnx8NS4wMDQw
MDB8Ci1zdl92c2V0cHZmfDUuMDA2MDAwfDUuMDA0MDAwfHAKLXN2X3htbHBlZWt8fHwKLXN2dHlw
ZXx8fAotc3dhbGxvd19ib218fHwKLXN3YXBfbWF0Y2hfYnVmZnx8fAotc3dhc2hfZmV0Y2h8fDUu
MDA3MDAyfAotc3dhc2hfZ2V0fHx8Ci1zd2FzaF9pbml0fHw1LjAwNjAwMHwKLXN5c19pbnRlcm5f
Y2xlYXJ8fHwKLXN5c19pbnRlcm5fZHVwfHx8Ci1zeXNfaW50ZXJuX2luaXR8fHwKLXRhaW50X2Vu
dnx8fAotdGFpbnRfcHJvcGVyfHx8Ci10bXBzX2dyb3d8fDUuMDA2MDAwfAotdG9MT1dFUnx8fAot
dG9VUFBFUnx8fAotdG9fYnl0ZV9zdWJzdHJ8fHwKLXRvX3VuaV9mb2xkfHw1LjAwNzAwM3wKLXRv
X3VuaV9sb3dlcl9sY3x8NS4wMDYwMDB8Ci10b191bmlfbG93ZXJ8fDUuMDA3MDAzfAotdG9fdW5p
X3RpdGxlX2xjfHw1LjAwNjAwMHwKLXRvX3VuaV90aXRsZXx8NS4wMDcwMDN8Ci10b191bmlfdXBw
ZXJfbGN8fDUuMDA2MDAwfAotdG9fdW5pX3VwcGVyfHw1LjAwNzAwM3wKLXRvX3V0ZjhfY2FzZXx8
NS4wMDcwMDN8Ci10b191dGY4X2ZvbGR8fDUuMDA3MDAzfAotdG9fdXRmOF9sb3dlcnx8NS4wMDcw
MDN8Ci10b191dGY4X3N1YnN0cnx8fAotdG9fdXRmOF90aXRsZXx8NS4wMDcwMDN8Ci10b191dGY4
X3VwcGVyfHw1LjAwNzAwM3wKLXRva2VuX2ZyZWV8fHwKLXRva2VuX2dldG1hZHx8fAotdG9rZW5p
emVfdXNlfHx8Ci10b2tlcXx8fAotdG9rZXJlcG9ydHx8fAotdG9vX2Zld19hcmd1bWVudHN8fHwK
LXRvb19tYW55X2FyZ3VtZW50c3x8fAotdWl2XzJidWZ8fHxuCi11bmxua3x8fAotdW5wYWNrX3Jl
Y3x8fAotdW5wYWNrX3N0cnx8NS4wMDcwMDN8Ci11bnBhY2tzdHJpbmd8fDUuMDA4MDAxfAotdW5z
aGFyZV9oZWtfb3JfcHZufHx8Ci11bnNoYXJlX2hla3x8fAotdW5zaGFyZXB2bnx8NS4wMDQwMDB8
Ci11bndpbmRfaGFuZGxlcl9zdGFja3x8fAotdXBkYXRlX2RlYnVnZ2VyX2luZm98fHwKLXVwZ192
ZXJzaW9ufHw1LjAwOTAwNXwKLXVzYWdlfHx8Ci11dGYxNl90b191dGY4X3JldmVyc2VkfHw1LjAw
NjAwMXwKLXV0ZjE2X3RvX3V0Zjh8fDUuMDA2MDAxfAotdXRmOF9kaXN0YW5jZXx8NS4wMDYwMDB8
Ci11dGY4X2hvcHx8NS4wMDYwMDB8Ci11dGY4X2xlbmd0aHx8NS4wMDcwMDF8Ci11dGY4X21nX3Bv
c19jYWNoZV91cGRhdGV8fHwKLXV0ZjhfdG9fYnl0ZXN8fDUuMDA2MDAxfAotdXRmOF90b191dmNo
cnx8NS4wMDcwMDF8Ci11dGY4X3RvX3V2dW5pfHw1LjAwNzAwMXwKLXV0ZjhuX3RvX3V2Y2hyfHx8
Ci11dGY4bl90b191dnVuaXx8NS4wMDcwMDF8Ci11dGlsaXplfHx8Ci11dmNocl90b191dGY4X2Zs
YWdzfHw1LjAwNzAwM3wKLXV2Y2hyX3RvX3V0Zjh8fHwKLXV2dW5pX3RvX3V0ZjhfZmxhZ3N8fDUu
MDA3MDAzfAotdXZ1bmlfdG9fdXRmOHx8NS4wMDcwMDF8Ci12YWxpZGF0ZV9zdWlkfHx8Ci12YXJu
YW1lfHx8Ci12Y21wfHw1LjAwOTAwMHwKLXZjcm9ha3x8NS4wMDYwMDB8Ci12ZGVifHw1LjAwNzAw
M3wKLXZkaWVfY29tbW9ufHx8Ci12ZGllX2Nyb2FrX2NvbW1vbnx8fAotdmRpZXx8fAotdmZvcm18
fDUuMDA2MDAwfAotdmlzaXR8fHwKLXZpdmlmeV9kZWZlbGVtfHx8Ci12aXZpZnlfcmVmfHx8Ci12
bG9hZF9tb2R1bGV8NS4wMDYwMDB8fHAKLXZtZXNzfHw1LjAwNjAwMHwKLXZuZXdTVnB2Znw1LjAw
NjAwMHw1LjAwNDAwMHxwCi12bm9ybWFsfHw1LjAwOTAwMnwKLXZudW1pZnl8fDUuMDA5MDAwfAot
dnN0cmluZ2lmeXx8NS4wMDkwMDB8Ci12dmVyaWZ5fHw1LjAwOTAwM3wKLXZ3YXJuZXJ8fDUuMDA2
MDAwfAotdndhcm58fDUuMDA2MDAwfAotd2FpdDRwaWR8fHwKLXdhcm5fbm9jb250ZXh0fHx8dm4K
LXdhcm5lcl9ub2NvbnRleHR8fHx2bgotd2FybmVyfDUuMDA2MDAwfDUuMDA0MDAwfHB2Ci13YXJu
fHx8dgotd2F0Y2h8fHwKLXdoaWNoc2lnfHx8Ci13cml0ZV9ub19tZW18fHwKLXdyaXRlX3RvX3N0
ZGVycnx8fAoteG1sZHVtcF9hbGx8fHwKLXhtbGR1bXBfYXR0cnx8fAoteG1sZHVtcF9ldmFsfHx8
Ci14bWxkdW1wX2Zvcm18fHwKLXhtbGR1bXBfaW5kZW50fHx8dgoteG1sZHVtcF9wYWNrc3Vic3x8
fAoteG1sZHVtcF9zdWJ8fHwKLXhtbGR1bXBfdmluZGVudHx8fAoteXllcnJvcnx8fAoteXlsZXh8
fHwKLXl5cGFyc2V8fHwKLXl5d2Fybnx8fAotKTsKLQotaWYgKGV4aXN0cyAkb3B0eydsaXN0LXVu
c3VwcG9ydGVkJ30pIHsKLSAgbXkgJGY7Ci0gIGZvciAkZiAoc29ydCB7IGxjICRhIGNtcCBsYyAk
YiB9IGtleXMgJUFQSSkgewotICAgIG5leHQgdW5sZXNzICRBUEl7JGZ9e3RvZG99OwotICAgIHBy
aW50ICIkZiAiLCAnLid4KDQwLWxlbmd0aCgkZikpLCAiICIsIGZvcm1hdF92ZXJzaW9uKCRBUEl7
JGZ9e3RvZG99KSwgIlxuIjsKLSAgfQotICBleGl0IDA7Ci19Ci0KLSMgU2NhbiBmb3IgcG9zc2li
bGUgcmVwbGFjZW1lbnQgY2FuZGlkYXRlcwotCi1teSglcmVwbGFjZSwgJW5lZWQsICVoaW50cywg
JXdhcm5pbmdzLCAlZGVwZW5kcyk7Ci1teSAkcmVwbGFjZSA9IDA7Ci1teSgkaGludCwgJGRlZmlu
ZSwgJGZ1bmN0aW9uKTsKLQotc3ViIGZpbmRfYXBpCi17Ci0gIG15ICRjb2RlID0gc2hpZnQ7Ci0g
ICRjb2RlID1+IHN7Ci0gICAgLyAoPzogXCpbXipdKlwqKyg/OlteJGNjc11bXipdKlwqKykqIC8g
fCAvW15cclxuXSopCi0gIHwgIlteIlxcXSooPzpcXC5bXiJcXF0qKSoiCi0gIHwgJ1teJ1xcXSoo
PzpcXC5bXidcXF0qKSonIH17fWVnc3g7Ci0gIGdyZXAgeyBleGlzdHMgJEFQSXskX30gfSAkY29k
ZSA9fiAvKFx3KykvbWc7Ci19Ci0KLXdoaWxlICg8REFUQT4pIHsKLSAgaWYgKCRoaW50KSB7Ci0g
ICAgbXkgJGggPSAkaGludC0+WzBdIGVxICdIaW50JyA/IFwlaGludHMgOiBcJXdhcm5pbmdzOwot
ICAgIGlmIChte15ccypcKlxzKC4qPylccyokfSkgewotICAgICAgZm9yIChAeyRoaW50LT5bMV19
KSB7Ci0gICAgICAgICRoLT57JF99IHx8PSAnJzsgICMgc3VwcHJlc3Mgd2FybmluZyB3aXRoIG9s
ZGVyIHBlcmxzCi0gICAgICAgICRoLT57JF99IC49ICIkMVxuIjsKLSAgICAgIH0KLSAgICB9Ci0g
ICAgZWxzZSB7IHVuZGVmICRoaW50IH0KLSAgfQotCi0gICRoaW50ID0gWyQxLCBbc3BsaXQgLyw/
XHMrLywgJDJdXQotICAgICAgaWYgbXteXHMqJHJjY3NccysoSGludHxXYXJuaW5nKTpccysoXHcr
KD86LD9ccytcdyspKilccyokfTsKLQotICBpZiAoJGRlZmluZSkgewotICAgIGlmICgkZGVmaW5l
LT5bMV0gPX4gL1xcJC8pIHsKLSAgICAgICRkZWZpbmUtPlsxXSAuPSAkXzsKLSAgICB9Ci0gICAg
ZWxzZSB7Ci0gICAgICBpZiAoZXhpc3RzICRBUEl7JGRlZmluZS0+WzBdfSAmJiAkZGVmaW5lLT5b
MV0gIX4gL15EUFBQX1woLykgewotICAgICAgICBteSBAbiA9IGZpbmRfYXBpKCRkZWZpbmUtPlsx
XSk7Ci0gICAgICAgIHB1c2ggQHskZGVwZW5kc3skZGVmaW5lLT5bMF19fSwgQG4gaWYgQG4KLSAg
ICAgIH0KLSAgICAgIHVuZGVmICRkZWZpbmU7Ci0gICAgfQotICB9Ci0KLSAgJGRlZmluZSA9IFsk
MSwgJDJdIGlmIG17XlxzKiNccypkZWZpbmVccysoXHcrKSg/OlwoW14pXSpcKSk/XHMrKC4qKX07
Ci0KLSAgaWYgKCRmdW5jdGlvbikgewotICAgIGlmICgvXn0vKSB7Ci0gICAgICBpZiAoZXhpc3Rz
ICRBUEl7JGZ1bmN0aW9uLT5bMF19KSB7Ci0gICAgICAgIG15IEBuID0gZmluZF9hcGkoJGZ1bmN0
aW9uLT5bMV0pOwotICAgICAgICBwdXNoIEB7JGRlcGVuZHN7JGZ1bmN0aW9uLT5bMF19fSwgQG4g
aWYgQG4KLSAgICAgIH0KLSAgICAgIHVuZGVmICRkZWZpbmU7Ci0gICAgfQotICAgIGVsc2Ugewot
ICAgICAgJGZ1bmN0aW9uLT5bMV0gLj0gJF87Ci0gICAgfQotICB9Ci0KLSAgJGZ1bmN0aW9uID0g
WyQxLCAnJ10gaWYgbXteRFBQUF9cKG15XyhcdyspXCl9OwotCi0gICRyZXBsYWNlICAgICA9ICQx
IGlmIG17XlxzKiRyY2NzXHMrUmVwbGFjZTpccysoXGQrKVxzKyRyY2NlXHMqJH07Ci0gICRyZXBs
YWNleyQyfSA9ICQxIGlmICRyZXBsYWNlIGFuZCBte15ccyojXHMqZGVmaW5lXHMrKFx3KykoPzpc
KFteKV0qXCkpP1xzKyhcdyspfTsKLSAgJHJlcGxhY2V7JDJ9ID0gJDEgaWYgbXteXHMqI1xzKmRl
ZmluZVxzKyhcdyspKD86XChbXildKlwpKT9ccysoXHcrKS4qJHJjY3NccytSZXBsYWNlXHMrJHJj
Y2V9OwotICAkcmVwbGFjZXskMX0gPSAkMiBpZiBte15ccyokcmNjc1xzK1JlcGxhY2UgKFx3Kykg
d2l0aCAoXHcrKVxzKyRyY2NlXHMqJH07Ci0KLSAgaWYgKG17XlxzKiRyY2NzXHMrKFx3Kylccytk
ZXBlbmRzXHMrb25ccysoXHcrKFxzKixccypcdyspKilccyskcmNjZVxzKiR9KSB7Ci0gICAgcHVz
aCBAeyRkZXBlbmRzeyQxfX0sIG1hcCB7IHMvXHMrLy9nOyAkXyB9IHNwbGl0IC8sLywgJDI7Ci0g
IH0KLQotICAkbmVlZHskMX0gPSAxIGlmIG17XiNpZlxzK2RlZmluZWRcKE5FRURfKFx3KykoPzpf
R0xPQkFMKT9cKX07Ci19Ci0KLWZvciAodmFsdWVzICVkZXBlbmRzKSB7Ci0gIG15ICVzOwotICAk
XyA9IFtzb3J0IGdyZXAgISRzeyRffSsrLCBAJF9dOwotfQotCi1pZiAoZXhpc3RzICRvcHR7J2Fw
aS1pbmZvJ30pIHsKLSAgbXkgJGY7Ci0gIG15ICRjb3VudCA9IDA7Ci0gIG15ICRtYXRjaCA9ICRv
cHR7J2FwaS1pbmZvJ30gPX4gbSFeLyguKikvJCEgPyAkMSA6ICJeXFEkb3B0eydhcGktaW5mbyd9
XEVcJCI7Ci0gIGZvciAkZiAoc29ydCB7IGxjICRhIGNtcCBsYyAkYiB9IGtleXMgJUFQSSkgewot
ICAgIG5leHQgdW5sZXNzICRmID1+IC8kbWF0Y2gvOwotICAgIHByaW50ICJcbj09PSAkZiA9PT1c
blxuIjsKLSAgICBteSAkaW5mbyA9IDA7Ci0gICAgaWYgKCRBUEl7JGZ9e2Jhc2V9IHx8ICRBUEl7
JGZ9e3RvZG99KSB7Ci0gICAgICBteSAkYmFzZSA9IGZvcm1hdF92ZXJzaW9uKCRBUEl7JGZ9e2Jh
c2V9IHx8ICRBUEl7JGZ9e3RvZG99KTsKLSAgICAgIHByaW50ICJTdXBwb3J0ZWQgYXQgbGVhc3Qg
c3RhcnRpbmcgZnJvbSBwZXJsLSRiYXNlLlxuIjsKLSAgICAgICRpbmZvKys7Ci0gICAgfQotICAg
IGlmICgkQVBJeyRmfXtwcm92aWRlZH0pIHsKLSAgICAgIG15ICR0b2RvID0gJEFQSXskZn17dG9k
b30gPyBmb3JtYXRfdmVyc2lvbigkQVBJeyRmfXt0b2RvfSkgOiAiNS4wMDMiOwotICAgICAgcHJp
bnQgIlN1cHBvcnQgYnkgJHBwcG9ydCBwcm92aWRlZCBiYWNrIHRvIHBlcmwtJHRvZG8uXG4iOwot
ICAgICAgcHJpbnQgIlN1cHBvcnQgbmVlZHMgdG8gYmUgZXhwbGljaXRseSByZXF1ZXN0ZWQgYnkg
TkVFRF8kZi5cbiIgaWYgZXhpc3RzICRuZWVkeyRmfTsKLSAgICAgIHByaW50ICJEZXBlbmRzIG9u
OiAiLCBqb2luKCcsICcsIEB7JGRlcGVuZHN7JGZ9fSksICIuXG4iIGlmIGV4aXN0cyAkZGVwZW5k
c3skZn07Ci0gICAgICBwcmludCAiXG4kaGludHN7JGZ9IiBpZiBleGlzdHMgJGhpbnRzeyRmfTsK
LSAgICAgIHByaW50ICJcbldBUk5JTkc6XG4kd2FybmluZ3N7JGZ9IiBpZiBleGlzdHMgJHdhcm5p
bmdzeyRmfTsKLSAgICAgICRpbmZvKys7Ci0gICAgfQotICAgIHByaW50ICJObyBwb3J0YWJpbGl0
eSBpbmZvcm1hdGlvbiBhdmFpbGFibGUuXG4iIHVubGVzcyAkaW5mbzsKLSAgICAkY291bnQrKzsK
LSAgfQotICAkY291bnQgb3IgcHJpbnQgIkZvdW5kIG5vIEFQSSBtYXRjaGluZyAnJG9wdHsnYXBp
LWluZm8nfScuIjsKLSAgcHJpbnQgIlxuIjsKLSAgZXhpdCAwOwotfQotCi1pZiAoZXhpc3RzICRv
cHR7J2xpc3QtcHJvdmlkZWQnfSkgewotICBteSAkZjsKLSAgZm9yICRmIChzb3J0IHsgbGMgJGEg
Y21wIGxjICRiIH0ga2V5cyAlQVBJKSB7Ci0gICAgbmV4dCB1bmxlc3MgJEFQSXskZn17cHJvdmlk
ZWR9OwotICAgIG15IEBmbGFnczsKLSAgICBwdXNoIEBmbGFncywgJ2V4cGxpY2l0JyBpZiBleGlz
dHMgJG5lZWR7JGZ9OwotICAgIHB1c2ggQGZsYWdzLCAnZGVwZW5kJyAgIGlmIGV4aXN0cyAkZGVw
ZW5kc3skZn07Ci0gICAgcHVzaCBAZmxhZ3MsICdoaW50JyAgICAgaWYgZXhpc3RzICRoaW50c3sk
Zn07Ci0gICAgcHVzaCBAZmxhZ3MsICd3YXJuaW5nJyAgaWYgZXhpc3RzICR3YXJuaW5nc3skZn07
Ci0gICAgbXkgJGZsYWdzID0gQGZsYWdzID8gJyAgWycuam9pbignLCAnLCBAZmxhZ3MpLiddJyA6
ICcnOwotICAgIHByaW50ICIkZiRmbGFnc1xuIjsKLSAgfQotICBleGl0IDA7Ci19Ci0KLW15IEBm
aWxlczsKLW15IEBzcmNleHQgPSBxdyggLnhzIC5jIC5oIC5jYyAuY3BwIC1jLmluYyAteHMuaW5j
ICk7Ci1teSAkc3JjZXh0ID0gam9pbiAnfCcsIG1hcCB7IHF1b3RlbWV0YSAkXyB9IEBzcmNleHQ7
Ci0KLWlmIChAQVJHVikgewotICBteSAlc2VlbjsKLSAgZm9yIChAQVJHVikgewotICAgIGlmICgt
ZSkgewotICAgICAgaWYgKC1mKSB7Ci0gICAgICAgIHB1c2ggQGZpbGVzLCAkXyB1bmxlc3MgJHNl
ZW57JF99Kys7Ci0gICAgICB9Ci0gICAgICBlbHNlIHsgd2FybiAiJyRfJyBpcyBub3QgYSBmaWxl
LlxuIiB9Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgbXkgQG5ldyA9IGdyZXAgeyAtZiB9IGds
b2IgJF8KLSAgICAgICAgICBvciB3YXJuICInJF8nIGRvZXMgbm90IGV4aXN0LlxuIjsKLSAgICAg
IHB1c2ggQGZpbGVzLCBncmVwIHsgISRzZWVueyRffSsrIH0gQG5ldzsKLSAgICB9Ci0gIH0KLX0K
LWVsc2UgewotICBldmFsIHsKLSAgICByZXF1aXJlIEZpbGU6OkZpbmQ7Ci0gICAgRmlsZTo6Rmlu
ZDo6ZmluZChzdWIgewotICAgICAgJEZpbGU6OkZpbmQ6Om5hbWUgPX4gLygkc3JjZXh0KSQvaQot
ICAgICAgICAgIGFuZCBwdXNoIEBmaWxlcywgJEZpbGU6OkZpbmQ6Om5hbWU7Ci0gICAgfSwgJy4n
KTsKLSAgfTsKLSAgaWYgKCRAKSB7Ci0gICAgQGZpbGVzID0gbWFwIHsgZ2xvYiAiKiRfIiB9IEBz
cmNleHQ7Ci0gIH0KLX0KLQotaWYgKCFAQVJHViB8fCAkb3B0e2ZpbHRlcn0pIHsKLSAgbXkoQGlu
LCBAb3V0KTsKLSAgbXkgJXhzYyA9IG1hcCB7IC8oLiopXC54cyQvID8gKCIkMS5jIiA9PiAxLCAi
JDEuY2MiID0+IDEpIDogKCkgfSBAZmlsZXM7Ci0gIGZvciAoQGZpbGVzKSB7Ci0gICAgbXkgJG91
dCA9IGV4aXN0cyAkeHNjeyRffSB8fCAvXGJcUSRwcHBvcnRcRSQvaSB8fCAhLygkc3JjZXh0KSQv
aTsKLSAgICBwdXNoIEB7ICRvdXQgPyBcQG91dCA6IFxAaW4gfSwgJF87Ci0gIH0KLSAgaWYgKEBB
UkdWICYmIEBvdXQpIHsKLSAgICB3YXJuaW5nKCJTa2lwcGluZyB0aGUgZm9sbG93aW5nIGZpbGVz
ICh1c2UgLS1ub2ZpbHRlciB0byBhdm9pZCB0aGlzKTpcbnwgIiwgam9pbiAiXG58ICIsIEBvdXQp
OwotICB9Ci0gIEBmaWxlcyA9IEBpbjsKLX0KLQotZGllICJObyBpbnB1dCBmaWxlcyBnaXZlbiFc
biIgdW5sZXNzIEBmaWxlczsKLQotbXkoJWZpbGVzLCAlZ2xvYmFsLCAlcmV2cmVwbGFjZSk7Ci0l
cmV2cmVwbGFjZSA9IHJldmVyc2UgJXJlcGxhY2U7Ci1teSAkZmlsZW5hbWU7Ci1teSAkcGF0Y2hf
b3BlbmVkID0gMDsKLQotZm9yICRmaWxlbmFtZSAoQGZpbGVzKSB7Ci0gIHVubGVzcyAob3BlbiBJ
TiwgIjwkZmlsZW5hbWUiKSB7Ci0gICAgd2FybiAiVW5hYmxlIHRvIHJlYWQgZnJvbSAkZmlsZW5h
bWU6ICQhXG4iOwotICAgIG5leHQ7Ci0gIH0KLQotICBpbmZvKCJTY2FubmluZyAkZmlsZW5hbWUg
Li4uIik7Ci0KLSAgbXkgJGMgPSBkbyB7IGxvY2FsICQvOyA8SU4+IH07Ci0gIGNsb3NlIElOOwot
Ci0gIG15ICVmaWxlID0gKG9yaWcgPT4gJGMsIGNoYW5nZXMgPT4gMCk7Ci0KLSAgIyBUZW1wb3Jh
cmlseSByZW1vdmUgQy9YUyBjb21tZW50cyBhbmQgc3RyaW5ncyBmcm9tIHRoZSBjb2RlCi0gIG15
IEBjY29tOwotCi0gICRjID1+IHN7Ci0gICAgKCBeJEhTKlwjJEhTKmluY2x1ZGVcYlteXHJcbl0r
XGIoPzpcUSRwcHBvcnRcRXxYU1VCXC5oKVxiW15cclxuXSoKLSAgICB8IF4kSFMqXCMkSFMqKD86
ZGVmaW5lfGVsaWZ8aWYoPzpkZWYpPylcYlteXHJcbl0qICkKLSAgfCAoIF4kSFMqXCNbXlxyXG5d
KgotICAgIHwgIlteIlxcXSooPzpcXC5bXiJcXF0qKSoiCi0gICAgfCAnW14nXFxdKig/OlxcLlte
J1xcXSopKicKLSAgICB8IC8gKD86IFwqW14qXSpcKisoPzpbXiRjY3NdW14qXSpcKispKiAvIHwg
L1teXHJcbl0qICkgKQotICB9eyBkZWZpbmVkICQyIGFuZCBwdXNoIEBjY29tLCAkMjsKLSAgICAg
ZGVmaW5lZCAkMSA/ICQxIDogIiRjY3MkI2Njb20kY2NlIiB9bWdzZXg7Ci0KLSAgJGZpbGV7Y2Nv
bX0gPSBcQGNjb207Ci0gICRmaWxle2NvZGV9ID0gJGM7Ci0gICRmaWxle2hhc19pbmNfcHBwb3J0
fSA9ICRjID1+IC9eJEhTKiMkSFMqaW5jbHVkZVteXHJcbl0rXGJcUSRwcHBvcnRcRVxiL207Ci0K
LSAgbXkgJGZ1bmM7Ci0KLSAgZm9yICRmdW5jIChrZXlzICVBUEkpIHsKLSAgICBteSAkbWF0Y2gg
PSAkZnVuYzsKLSAgICAkbWF0Y2ggLj0gInwkcmV2cmVwbGFjZXskZnVuY30iIGlmIGV4aXN0cyAk
cmV2cmVwbGFjZXskZnVuY307Ci0gICAgaWYgKCRjID1+IC9cYig/OlBlcmxfKT8oJG1hdGNoKVxi
LykgewotICAgICAgJGZpbGV7dXNlc19yZXBsYWNlfXskMX0rKyBpZiBleGlzdHMgJHJldnJlcGxh
Y2V7JGZ1bmN9ICYmICQxIGVxICRyZXZyZXBsYWNleyRmdW5jfTsKLSAgICAgICRmaWxle3VzZXNf
UGVybH17JGZ1bmN9KysgaWYgJGMgPX4gL1xiUGVybF8kZnVuY1xiLzsKLSAgICAgIGlmIChleGlz
dHMgJEFQSXskZnVuY317cHJvdmlkZWR9KSB7Ci0gICAgICAgICRmaWxle3VzZXNfcHJvdmlkZWR9
eyRmdW5jfSsrOwotICAgICAgICBpZiAoIWV4aXN0cyAkQVBJeyRmdW5jfXtiYXNlfSB8fCAkQVBJ
eyRmdW5jfXtiYXNlfSA+ICRvcHR7J2NvbXBhdC12ZXJzaW9uJ30pIHsKLSAgICAgICAgICAkZmls
ZXt1c2VzfXskZnVuY30rKzsKLSAgICAgICAgICBteSBAZGVwcyA9IHJlY19kZXBlbmQoJGZ1bmMp
OwotICAgICAgICAgIGlmIChAZGVwcykgewotICAgICAgICAgICAgJGZpbGV7dXNlc19kZXBzfXsk
ZnVuY30gPSBcQGRlcHM7Ci0gICAgICAgICAgICBmb3IgKEBkZXBzKSB7Ci0gICAgICAgICAgICAg
ICRmaWxle3VzZXN9eyRffSA9IDAgdW5sZXNzIGV4aXN0cyAkZmlsZXt1c2VzfXskX307Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICAgIGZvciAoJGZ1bmMsIEBkZXBzKSB7Ci0g
ICAgICAgICAgICAkZmlsZXtuZWVkc317JF99ID0gJ3N0YXRpYycgaWYgZXhpc3RzICRuZWVkeyRf
fTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICAgIGlmIChleGlzdHMgJEFQ
SXskZnVuY317dG9kb30gJiYgJEFQSXskZnVuY317dG9kb30gPiAkb3B0eydjb21wYXQtdmVyc2lv
bid9KSB7Ci0gICAgICAgIGlmICgkYyA9fiAvXGIkZnVuY1xiLykgewotICAgICAgICAgICRmaWxl
e3VzZXNfdG9kb317JGZ1bmN9Kys7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0gIH0KLQot
ICB3aGlsZSAoJGMgPX4gL14kSFMqIyRIUypkZWZpbmUkSFMrKE5FRURfKFx3Kz8pKF9HTE9CQUwp
PylcYi9tZykgewotICAgIGlmIChleGlzdHMgJG5lZWR7JDJ9KSB7Ci0gICAgICAkZmlsZXtkZWZp
bmVkICQzID8gJ25lZWRlZF9nbG9iYWwnIDogJ25lZWRlZF9zdGF0aWMnfXskMn0rKzsKLSAgICB9
Ci0gICAgZWxzZSB7IHdhcm5pbmcoIlBvc3NpYmx5IHdyb25nICNkZWZpbmUgJDEgaW4gJGZpbGVu
YW1lIikgfQotICB9Ci0KLSAgZm9yIChxdyh1c2VzIG5lZWRzIHVzZXNfdG9kbyBuZWVkZWRfZ2xv
YmFsIG5lZWRlZF9zdGF0aWMpKSB7Ci0gICAgZm9yICRmdW5jIChrZXlzICV7JGZpbGV7JF99fSkg
ewotICAgICAgcHVzaCBAeyRnbG9iYWx7JF99eyRmdW5jfX0sICRmaWxlbmFtZTsKLSAgICB9Ci0g
IH0KLQotICAkZmlsZXN7JGZpbGVuYW1lfSA9IFwlZmlsZTsKLX0KLQotIyBHbG9iYWxseSByZXNv
bHZlIE5FRURfJ3MKLW15ICRuZWVkOwotZm9yICRuZWVkIChrZXlzICV7JGdsb2JhbHtuZWVkc319
KSB7Ci0gIGlmIChAeyRnbG9iYWx7bmVlZHN9eyRuZWVkfX0gPiAxKSB7Ci0gICAgbXkgQHRhcmdl
dHMgPSBAeyRnbG9iYWx7bmVlZHN9eyRuZWVkfX07Ci0gICAgbXkgQHQgPSBncmVwICRmaWxlc3sk
X317bmVlZGVkX2dsb2JhbH17JG5lZWR9LCBAdGFyZ2V0czsKLSAgICBAdGFyZ2V0cyA9IEB0IGlm
IEB0OwotICAgIEB0ID0gZ3JlcCAvXC54cyQvaSwgQHRhcmdldHM7Ci0gICAgQHRhcmdldHMgPSBA
dCBpZiBAdDsKLSAgICBteSAkdGFyZ2V0ID0gc2hpZnQgQHRhcmdldHM7Ci0gICAgJGZpbGVzeyR0
YXJnZXR9e25lZWRzfXskbmVlZH0gPSAnZ2xvYmFsJzsKLSAgICBmb3IgKEB7JGdsb2JhbHtuZWVk
c317JG5lZWR9fSkgewotICAgICAgJGZpbGVzeyRffXtuZWVkc317JG5lZWR9ID0gJ2V4dGVybicg
aWYgJF8gbmUgJHRhcmdldDsKLSAgICB9Ci0gIH0KLX0KLQotZm9yICRmaWxlbmFtZSAoQGZpbGVz
KSB7Ci0gIGV4aXN0cyAkZmlsZXN7JGZpbGVuYW1lfSBvciBuZXh0OwotCi0gIGluZm8oIj09PSBB
bmFseXppbmcgJGZpbGVuYW1lID09PSIpOwotCi0gIG15ICVmaWxlID0gJXskZmlsZXN7JGZpbGVu
YW1lfX07Ci0gIG15ICRmdW5jOwotICBteSAkYyA9ICRmaWxle2NvZGV9OwotICBteSAkd2Fybmlu
Z3MgPSAwOwotCi0gIGZvciAkZnVuYyAoc29ydCBrZXlzICV7JGZpbGV7dXNlc19QZXJsfX0pIHsK
LSAgICBpZiAoJEFQSXskZnVuY317dmFyYXJnc30pIHsKLSAgICAgIHVubGVzcyAoJEFQSXskZnVu
Y317bm90aHhhcmd9KSB7Ci0gICAgICAgIG15ICRjaGFuZ2VzID0gKCRjID1+IHN7XGIoUGVybF8k
ZnVuY1xzKlwoXHMqKSg/IWFUSFhfPykoXCl8W15ccyldKlwpKX0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgJDEgLiAoJDIgZXEgJyknID8gJ2FUSFgnIDogJ2FUSFhfICcpIC4gJDIg
fWdlKTsKLSAgICAgICAgaWYgKCRjaGFuZ2VzKSB7Ci0gICAgICAgICAgd2FybmluZygiRG9lc24n
dCBwYXNzIGludGVycHJldGVyIGFyZ3VtZW50IGFUSFggdG8gUGVybF8kZnVuYyIpOwotICAgICAg
ICAgICRmaWxle2NoYW5nZXN9ICs9ICRjaGFuZ2VzOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAg
fQotICAgIGVsc2UgewotICAgICAgd2FybmluZygiVXNlcyBQZXJsXyRmdW5jIGluc3RlYWQgb2Yg
JGZ1bmMiKTsKLSAgICAgICRmaWxle2NoYW5nZXN9ICs9ICgkYyA9fiBze1xiUGVybF8kZnVuYyhc
cyopXCgoXHMqYVRIWF8/KT9ccyp9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsk
ZnVuYyQxKH1nKTsKLSAgICB9Ci0gIH0KLQotICBmb3IgJGZ1bmMgKHNvcnQga2V5cyAleyRmaWxl
e3VzZXNfcmVwbGFjZX19KSB7Ci0gICAgd2FybmluZygiVXNlcyAkZnVuYyBpbnN0ZWFkIG9mICRy
ZXBsYWNleyRmdW5jfSIpOwotICAgICRmaWxle2NoYW5nZXN9ICs9ICgkYyA9fiBzL1xiJGZ1bmNc
Yi8kcmVwbGFjZXskZnVuY30vZyk7Ci0gIH0KLQotICBmb3IgJGZ1bmMgKHNvcnQga2V5cyAleyRm
aWxle3VzZXNfcHJvdmlkZWR9fSkgewotICAgIGlmICgkZmlsZXt1c2VzfXskZnVuY30pIHsKLSAg
ICAgIGlmIChleGlzdHMgJGZpbGV7dXNlc19kZXBzfXskZnVuY30pIHsKLSAgICAgICAgZGlhZygi
VXNlcyAkZnVuYywgd2hpY2ggZGVwZW5kcyBvbiAiLCBqb2luKCcsICcsIEB7JGZpbGV7dXNlc19k
ZXBzfXskZnVuY319KSk7Ci0gICAgICB9Ci0gICAgICBlbHNlIHsKLSAgICAgICAgZGlhZygiVXNl
cyAkZnVuYyIpOwotICAgICAgfQotICAgIH0KLSAgICAkd2FybmluZ3MgKz0gaGludCgkZnVuYyk7
Ci0gIH0KLQotICB1bmxlc3MgKCRvcHR7cXVpZXR9KSB7Ci0gICAgZm9yICRmdW5jIChzb3J0IGtl
eXMgJXskZmlsZXt1c2VzX3RvZG99fSkgewotICAgICAgcHJpbnQgIioqKiBXQVJOSU5HOiBVc2Vz
ICRmdW5jLCB3aGljaCBtYXkgbm90IGJlIHBvcnRhYmxlIGJlbG93IHBlcmwgIiwKLSAgICAgICAg
ICAgIGZvcm1hdF92ZXJzaW9uKCRBUEl7JGZ1bmN9e3RvZG99KSwgIiwgZXZlbiB3aXRoICckcHBw
b3J0J1xuIjsKLSAgICAgICR3YXJuaW5ncysrOwotICAgIH0KLSAgfQotCi0gIGZvciAkZnVuYyAo
c29ydCBrZXlzICV7JGZpbGV7bmVlZGVkX3N0YXRpY319KSB7Ci0gICAgbXkgJG1lc3NhZ2UgPSAn
JzsKLSAgICBpZiAobm90IGV4aXN0cyAkZmlsZXt1c2VzfXskZnVuY30pIHsKLSAgICAgICRtZXNz
YWdlID0gIk5vIG5lZWQgdG8gZGVmaW5lIE5FRURfJGZ1bmMgaWYgJGZ1bmMgaXMgbmV2ZXIgdXNl
ZCI7Ci0gICAgfQotICAgIGVsc2lmIChleGlzdHMgJGZpbGV7bmVlZHN9eyRmdW5jfSAmJiAkZmls
ZXtuZWVkc317JGZ1bmN9IG5lICdzdGF0aWMnKSB7Ci0gICAgICAkbWVzc2FnZSA9ICJObyBuZWVk
IHRvIGRlZmluZSBORUVEXyRmdW5jIHdoZW4gYWxyZWFkeSBuZWVkZWQgZ2xvYmFsbHkiOwotICAg
IH0KLSAgICBpZiAoJG1lc3NhZ2UpIHsKLSAgICAgIGRpYWcoJG1lc3NhZ2UpOwotICAgICAgJGZp
bGV7Y2hhbmdlc30gKz0gKCRjID1+IHMvXiRIUyojJEhTKmRlZmluZSRIUytORUVEXyRmdW5jXGIu
KiRMRi8vbWcpOwotICAgIH0KLSAgfQotCi0gIGZvciAkZnVuYyAoc29ydCBrZXlzICV7JGZpbGV7
bmVlZGVkX2dsb2JhbH19KSB7Ci0gICAgbXkgJG1lc3NhZ2UgPSAnJzsKLSAgICBpZiAobm90IGV4
aXN0cyAkZ2xvYmFse3VzZXN9eyRmdW5jfSkgewotICAgICAgJG1lc3NhZ2UgPSAiTm8gbmVlZCB0
byBkZWZpbmUgTkVFRF8ke2Z1bmN9X0dMT0JBTCBpZiAkZnVuYyBpcyBuZXZlciB1c2VkIjsKLSAg
ICB9Ci0gICAgZWxzaWYgKGV4aXN0cyAkZmlsZXtuZWVkc317JGZ1bmN9KSB7Ci0gICAgICBpZiAo
JGZpbGV7bmVlZHN9eyRmdW5jfSBlcSAnZXh0ZXJuJykgewotICAgICAgICAkbWVzc2FnZSA9ICJO
byBuZWVkIHRvIGRlZmluZSBORUVEXyR7ZnVuY31fR0xPQkFMIHdoZW4gYWxyZWFkeSBuZWVkZWQg
Z2xvYmFsbHkiOwotICAgICAgfQotICAgICAgZWxzaWYgKCRmaWxle25lZWRzfXskZnVuY30gZXEg
J3N0YXRpYycpIHsKLSAgICAgICAgJG1lc3NhZ2UgPSAiTm8gbmVlZCB0byBkZWZpbmUgTkVFRF8k
e2Z1bmN9X0dMT0JBTCB3aGVuIG9ubHkgdXNlZCBpbiB0aGlzIGZpbGUiOwotICAgICAgfQotICAg
IH0KLSAgICBpZiAoJG1lc3NhZ2UpIHsKLSAgICAgIGRpYWcoJG1lc3NhZ2UpOwotICAgICAgJGZp
bGV7Y2hhbmdlc30gKz0gKCRjID1+IHMvXiRIUyojJEhTKmRlZmluZSRIUytORUVEXyR7ZnVuY31f
R0xPQkFMXGIuKiRMRi8vbWcpOwotICAgIH0KLSAgfQotCi0gICRmaWxle25lZWRzX2luY19wcHBv
cnR9ID0ga2V5cyAleyRmaWxle3VzZXN9fTsKLQotICBpZiAoJGZpbGV7bmVlZHNfaW5jX3BwcG9y
dH0pIHsKLSAgICBteSAkcHAgPSAnJzsKLQotICAgIGZvciAkZnVuYyAoc29ydCBrZXlzICV7JGZp
bGV7bmVlZHN9fSkgewotICAgICAgbXkgJHR5cGUgPSAkZmlsZXtuZWVkc317JGZ1bmN9OwotICAg
ICAgbmV4dCBpZiAkdHlwZSBlcSAnZXh0ZXJuJzsKLSAgICAgIG15ICRzdWZmaXggPSAkdHlwZSBl
cSAnZ2xvYmFsJyA/ICdfR0xPQkFMJyA6ICcnOwotICAgICAgdW5sZXNzIChleGlzdHMgJGZpbGV7
Im5lZWRlZF8kdHlwZSJ9eyRmdW5jfSkgewotICAgICAgICBpZiAoJHR5cGUgZXEgJ2dsb2JhbCcp
IHsKLSAgICAgICAgICBkaWFnKCJGaWxlcyBbQHskZ2xvYmFse25lZWRzfXskZnVuY319XSBuZWVk
ICRmdW5jLCBhZGRpbmcgZ2xvYmFsIHJlcXVlc3QiKTsKLSAgICAgICAgfQotICAgICAgICBlbHNl
IHsKLSAgICAgICAgICBkaWFnKCJGaWxlIG5lZWRzICRmdW5jLCBhZGRpbmcgc3RhdGljIHJlcXVl
c3QiKTsKLSAgICAgICAgfQotICAgICAgICAkcHAgLj0gIiNkZWZpbmUgTkVFRF8kZnVuYyRzdWZm
aXhcbiI7Ci0gICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCRwcCAmJiAoJGMgPX4gcy9eKD89JEhT
KiMkSFMqZGVmaW5lJEhTK05FRURfXHcrKS8kcHAvbSkpIHsKLSAgICAgICRwcCA9ICcnOwotICAg
ICAgJGZpbGV7Y2hhbmdlc30rKzsKLSAgICB9Ci0KLSAgICB1bmxlc3MgKCRmaWxle2hhc19pbmNf
cHBwb3J0fSkgewotICAgICAgZGlhZygiTmVlZHMgdG8gaW5jbHVkZSAnJHBwcG9ydCciKTsKLSAg
ICAgICRwcCAuPSBxcSgjaW5jbHVkZSAiJHBwcG9ydCJcbikKLSAgICB9Ci0KLSAgICBpZiAoJHBw
KSB7Ci0gICAgICAkZmlsZXtjaGFuZ2VzfSArPSAoJGMgPX4gcy9eKCRIUyojJEhTKmRlZmluZSRI
UytORUVEX1x3Ky4qPyleLyQxJHBwL21zKQotICAgICAgICAgICAgICAgICAgICAgfHwgKCRjID1+
IHMvXig/PSRIUyojJEhTKmluY2x1ZGUuKlxRJHBwcG9ydFxFKS8kcHAvbSkKLSAgICAgICAgICAg
ICAgICAgICAgIHx8ICgkYyA9fiBzL14oJEhTKiMkSFMqaW5jbHVkZS4qWFNVQi4qXHMqPyleLyQx
JHBwL20pCi0gICAgICAgICAgICAgICAgICAgICB8fCAoJGMgPX4gcy9eLyRwcC8pOwotICAgIH0K
LSAgfQotICBlbHNlIHsKLSAgICBpZiAoJGZpbGV7aGFzX2luY19wcHBvcnR9KSB7Ci0gICAgICBk
aWFnKCJObyBuZWVkIHRvIGluY2x1ZGUgJyRwcHBvcnQnIik7Ci0gICAgICAkZmlsZXtjaGFuZ2Vz
fSArPSAoJGMgPX4gcy9eJEhTKj8jJEhTKmluY2x1ZGUuKlxRJHBwcG9ydFxFLio/JExGLy9tKTsK
LSAgICB9Ci0gIH0KLQotICAjIHB1dCBiYWNrIGluIG91ciBDIGNvbW1lbnRzCi0gIG15ICRpeDsK
LSAgbXkgJGNwcGMgPSAwOwotICBteSBAY2NvbSA9IEB7JGZpbGV7Y2NvbX19OwotICBmb3IgJGl4
ICgwIC4uICQjY2NvbSkgewotICAgIGlmICghJG9wdHtjcGx1c3BsdXN9ICYmICRjY29tWyRpeF0g
PX4gcyFeLy8hISkgewotICAgICAgJGNwcGMrKzsKLSAgICAgICRmaWxle2NoYW5nZXN9ICs9ICRj
ID1+IHMvJHJjY3MkaXgkcmNjZS8kY2NzJGNjb21bJGl4XSAkY2NlLzsKLSAgICB9Ci0gICAgZWxz
ZSB7Ci0gICAgICAkYyA9fiBzLyRyY2NzJGl4JHJjY2UvJGNjb21bJGl4XS87Ci0gICAgfQotICB9
Ci0KLSAgaWYgKCRjcHBjKSB7Ci0gICAgbXkgJHMgPSAkY3BwYyAhPSAxID8gJ3MnIDogJyc7Ci0g
ICAgd2FybmluZygiVXNlcyAkY3BwYyBDKysgc3R5bGUgY29tbWVudCRzLCB3aGljaCBpcyBub3Qg
cG9ydGFibGUiKTsKLSAgfQotCi0gIG15ICRzID0gJHdhcm5pbmdzICE9IDEgPyAncycgOiAnJzsK
LSAgbXkgJHdhcm4gPSAkd2FybmluZ3MgPyAiICgkd2FybmluZ3Mgd2FybmluZyRzKSIgOiAnJzsK
LSAgaW5mbygiQW5hbHlzaXMgY29tcGxldGVkJHdhcm4iKTsKLQotICBpZiAoJGZpbGV7Y2hhbmdl
c30pIHsKLSAgICBpZiAoZXhpc3RzICRvcHR7Y29weX0pIHsKLSAgICAgIG15ICRuZXdmaWxlID0g
IiRmaWxlbmFtZSRvcHR7Y29weX0iOwotICAgICAgaWYgKC1lICRuZXdmaWxlKSB7Ci0gICAgICAg
IGVycm9yKCInJG5ld2ZpbGUnIGFscmVhZHkgZXhpc3RzLCByZWZ1c2luZyB0byB3cml0ZSBjb3B5
IG9mICckZmlsZW5hbWUnIik7Ci0gICAgICB9Ci0gICAgICBlbHNlIHsKLSAgICAgICAgbG9jYWwg
KkY7Ci0gICAgICAgIGlmIChvcGVuIEYsICI+JG5ld2ZpbGUiKSB7Ci0gICAgICAgICAgaW5mbygi
V3JpdGluZyBjb3B5IG9mICckZmlsZW5hbWUnIHdpdGggY2hhbmdlcyB0byAnJG5ld2ZpbGUnIik7
Ci0gICAgICAgICAgcHJpbnQgRiAkYzsKLSAgICAgICAgICBjbG9zZSBGOwotICAgICAgICB9Ci0g
ICAgICAgIGVsc2UgewotICAgICAgICAgIGVycm9yKCJDYW5ub3Qgb3BlbiAnJG5ld2ZpbGUnIGZv
ciB3cml0aW5nOiAkISIpOwotICAgICAgICB9Ci0gICAgICB9Ci0gICAgfQotICAgIGVsc2lmIChl
eGlzdHMgJG9wdHtwYXRjaH0gfHwgJG9wdHtjaGFuZ2VzfSkgewotICAgICAgaWYgKGV4aXN0cyAk
b3B0e3BhdGNofSkgewotICAgICAgICB1bmxlc3MgKCRwYXRjaF9vcGVuZWQpIHsKLSAgICAgICAg
ICBpZiAob3BlbiBQQVRDSCwgIj4kb3B0e3BhdGNofSIpIHsKLSAgICAgICAgICAgICRwYXRjaF9v
cGVuZWQgPSAxOwotICAgICAgICAgIH0KLSAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGVy
cm9yKCJDYW5ub3Qgb3BlbiAnJG9wdHtwYXRjaH0nIGZvciB3cml0aW5nOiAkISIpOwotICAgICAg
ICAgICAgZGVsZXRlICRvcHR7cGF0Y2h9OwotICAgICAgICAgICAgJG9wdHtjaGFuZ2VzfSA9IDE7
Ci0gICAgICAgICAgICBnb3RvIGZhbGxiYWNrOwotICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
ICAgICBteWRpZmYoXCpQQVRDSCwgJGZpbGVuYW1lLCAkYyk7Ci0gICAgICB9Ci0gICAgICBlbHNl
IHsKLWZhbGxiYWNrOgotICAgICAgICBpbmZvKCJTdWdnZXN0ZWQgY2hhbmdlczoiKTsKLSAgICAg
ICAgbXlkaWZmKFwqU1RET1VULCAkZmlsZW5hbWUsICRjKTsKLSAgICAgIH0KLSAgICB9Ci0gICAg
ZWxzZSB7Ci0gICAgICBteSAkcyA9ICRmaWxle2NoYW5nZXN9ID09IDEgPyAnJyA6ICdzJzsKLSAg
ICAgIGluZm8oIiRmaWxle2NoYW5nZXN9IHBvdGVudGlhbGx5IHJlcXVpcmVkIGNoYW5nZSRzIGRl
dGVjdGVkIik7Ci0gICAgfQotICB9Ci0gIGVsc2UgewotICAgIGluZm8oIkxvb2tzIGdvb2QiKTsK
LSAgfQotfQotCi1jbG9zZSBQQVRDSCBpZiAkcGF0Y2hfb3BlbmVkOwotCi1leGl0IDA7Ci0KLQot
c3ViIHRyeV91c2UgeyBldmFsICJ1c2UgQF87IjsgcmV0dXJuICRAIGVxICcnIH0KLQotc3ViIG15
ZGlmZgotewotICBsb2NhbCAqRiA9IHNoaWZ0OwotICBteSgkZmlsZSwgJHN0cikgPSBAXzsKLSAg
bXkgJGRpZmY7Ci0KLSAgaWYgKGV4aXN0cyAkb3B0e2RpZmZ9KSB7Ci0gICAgJGRpZmYgPSBydW5f
ZGlmZigkb3B0e2RpZmZ9LCAkZmlsZSwgJHN0cik7Ci0gIH0KLQotICBpZiAoIWRlZmluZWQgJGRp
ZmYgYW5kIHRyeV91c2UoJ1RleHQ6OkRpZmYnKSkgewotICAgICRkaWZmID0gVGV4dDo6RGlmZjo6
ZGlmZigkZmlsZSwgXCRzdHIsIHsgU1RZTEUgPT4gJ1VuaWZpZWQnIH0pOwotICAgICRkaWZmID0g
PDxIRUFERVIgLiAkZGlmZjsKLS0tLSAkZmlsZQotKysrICRmaWxlLnBhdGNoZWQKLUhFQURFUgot
ICB9Ci0KLSAgaWYgKCFkZWZpbmVkICRkaWZmKSB7Ci0gICAgJGRpZmYgPSBydW5fZGlmZignZGlm
ZiAtdScsICRmaWxlLCAkc3RyKTsKLSAgfQotCi0gIGlmICghZGVmaW5lZCAkZGlmZikgewotICAg
ICRkaWZmID0gcnVuX2RpZmYoJ2RpZmYnLCAkZmlsZSwgJHN0cik7Ci0gIH0KLQotICBpZiAoIWRl
ZmluZWQgJGRpZmYpIHsKLSAgICBlcnJvcigiQ2Fubm90IGdlbmVyYXRlIGEgZGlmZi4gUGxlYXNl
IGluc3RhbGwgVGV4dDo6RGlmZiBvciB1c2UgLS1jb3B5LiIpOwotICAgIHJldHVybjsKLSAgfQot
Ci0gIHByaW50IEYgJGRpZmY7Ci19Ci0KLXN1YiBydW5fZGlmZgotewotICBteSgkcHJvZywgJGZp
bGUsICRzdHIpID0gQF87Ci0gIG15ICR0bXAgPSAnZHBwcHRlbXAnOwotICBteSAkc3VmID0gJ2Fh
YSc7Ci0gIG15ICRkaWZmID0gJyc7Ci0gIGxvY2FsICpGOwotCi0gIHdoaWxlICgtZSAiJHRtcC4k
c3VmIikgeyAkc3VmKysgfQotICAkdG1wID0gIiR0bXAuJHN1ZiI7Ci0KLSAgaWYgKG9wZW4gRiwg
Ij4kdG1wIikgewotICAgIHByaW50IEYgJHN0cjsKLSAgICBjbG9zZSBGOwotCi0gICAgaWYgKG9w
ZW4gRiwgIiRwcm9nICRmaWxlICR0bXAgfCIpIHsKLSAgICAgIHdoaWxlICg8Rj4pIHsKLSAgICAg
ICAgcy9cUSR0bXBcRS8kZmlsZS5wYXRjaGVkLzsKLSAgICAgICAgJGRpZmYgLj0gJF87Ci0gICAg
ICB9Ci0gICAgICBjbG9zZSBGOwotICAgICAgdW5saW5rICR0bXA7Ci0gICAgICByZXR1cm4gJGRp
ZmY7Ci0gICAgfQotCi0gICAgdW5saW5rICR0bXA7Ci0gIH0KLSAgZWxzZSB7Ci0gICAgZXJyb3Io
IkNhbm5vdCBvcGVuICckdG1wJyBmb3Igd3JpdGluZzogJCEiKTsKLSAgfQotCi0gIHJldHVybiB1
bmRlZjsKLX0KLQotc3ViIHJlY19kZXBlbmQKLXsKLSAgbXkoJGZ1bmMsICRzZWVuKSA9IEBfOwot
ICByZXR1cm4gKCkgdW5sZXNzIGV4aXN0cyAkZGVwZW5kc3skZnVuY307Ci0gICRzZWVuID0geyV7
JHNlZW58fHt9fX07Ci0gIHJldHVybiAoKSBpZiAkc2Vlbi0+eyRmdW5jfSsrOwotICBteSAlczsK
LSAgZ3JlcCAhJHN7JF99KyssIG1hcCB7ICgkXywgcmVjX2RlcGVuZCgkXywgJHNlZW4pKSB9IEB7
JGRlcGVuZHN7JGZ1bmN9fTsKLX0KLQotc3ViIHBhcnNlX3ZlcnNpb24KLXsKLSAgbXkgJHZlciA9
IHNoaWZ0OwotCi0gIGlmICgkdmVyID1+IC9eKFxkKylcLihcZCspXC4oXGQrKSQvKSB7Ci0gICAg
cmV0dXJuICgkMSwgJDIsICQzKTsKLSAgfQotICBlbHNpZiAoJHZlciAhfiAvXlxkK1wuW1xkX10r
JC8pIHsKLSAgICBkaWUgImNhbm5vdCBwYXJzZSB2ZXJzaW9uICckdmVyJ1xuIjsKLSAgfQotCi0g
ICR2ZXIgPX4gcy9fLy9nOwotICAkdmVyID1+IHMvJC8wMDAwMDAvOwotCi0gIG15KCRyLCR2LCRz
KSA9ICR2ZXIgPX4gLyhcZCspXC4oXGR7M30pKFxkezN9KS87Ci0KLSAgJHYgPSBpbnQgJHY7Ci0g
ICRzID0gaW50ICRzOwotCi0gIGlmICgkciA8IDUgfHwgKCRyID09IDUgJiYgJHYgPCA2KSkgewot
ICAgIGlmICgkcyAlIDEwKSB7Ci0gICAgICBkaWUgImNhbm5vdCBwYXJzZSB2ZXJzaW9uICckdmVy
J1xuIjsKLSAgICB9Ci0gIH0KLQotICByZXR1cm4gKCRyLCAkdiwgJHMpOwotfQotCi1zdWIgZm9y
bWF0X3ZlcnNpb24KLXsKLSAgbXkgJHZlciA9IHNoaWZ0OwotCi0gICR2ZXIgPX4gcy8kLzAwMDAw
MC87Ci0gIG15KCRyLCR2LCRzKSA9ICR2ZXIgPX4gLyhcZCspXC4oXGR7M30pKFxkezN9KS87Ci0K
LSAgJHYgPSBpbnQgJHY7Ci0gICRzID0gaW50ICRzOwotCi0gIGlmICgkciA8IDUgfHwgKCRyID09
IDUgJiYgJHYgPCA2KSkgewotICAgIGlmICgkcyAlIDEwKSB7Ci0gICAgICBkaWUgImludmFsaWQg
dmVyc2lvbiAnJHZlcidcbiI7Ci0gICAgfQotICAgICRzIC89IDEwOwotCi0gICAgJHZlciA9IHNw
cmludGYgIiVkLiUwM2QiLCAkciwgJHY7Ci0gICAgJHMgPiAwIGFuZCAkdmVyIC49IHNwcmludGYg
Il8lMDJkIiwgJHM7Ci0KLSAgICByZXR1cm4gJHZlcjsKLSAgfQotCi0gIHJldHVybiBzcHJpbnRm
ICIlZC4lZC4lZCIsICRyLCAkdiwgJHM7Ci19Ci0KLXN1YiBpbmZvCi17Ci0gICRvcHR7cXVpZXR9
IGFuZCByZXR1cm47Ci0gIHByaW50IEBfLCAiXG4iOwotfQotCi1zdWIgZGlhZwotewotICAkb3B0
e3F1aWV0fSBhbmQgcmV0dXJuOwotICAkb3B0e2RpYWd9IGFuZCBwcmludCBAXywgIlxuIjsKLX0K
LQotc3ViIHdhcm5pbmcKLXsKLSAgJG9wdHtxdWlldH0gYW5kIHJldHVybjsKLSAgcHJpbnQgIioq
KiAiLCBAXywgIlxuIjsKLX0KLQotc3ViIGVycm9yCi17Ci0gIHByaW50ICIqKiogRVJST1I6ICIs
IEBfLCAiXG4iOwotfQotCi1teSAlZ2l2ZW5faGludHM7Ci1teSAlZ2l2ZW5fd2FybmluZ3M7Ci1z
dWIgaGludAotewotICAkb3B0e3F1aWV0fSBhbmQgcmV0dXJuOwotICBteSAkZnVuYyA9IHNoaWZ0
OwotICBteSAkcnYgPSAwOwotICBpZiAoZXhpc3RzICR3YXJuaW5nc3skZnVuY30gJiYgISRnaXZl
bl93YXJuaW5nc3skZnVuY30rKykgewotICAgIG15ICR3YXJuID0gJHdhcm5pbmdzeyRmdW5jfTsK
LSAgICAkd2FybiA9fiBzIV4hKioqICFtZzsKLSAgICBwcmludCAiKioqIFdBUk5JTkc6ICRmdW5j
XG4iLCAkd2FybjsKLSAgICAkcnYrKzsKLSAgfQotICBpZiAoJG9wdHtoaW50c30gJiYgZXhpc3Rz
ICRoaW50c3skZnVuY30gJiYgISRnaXZlbl9oaW50c3skZnVuY30rKykgewotICAgIG15ICRoaW50
ID0gJGhpbnRzeyRmdW5jfTsKLSAgICAkaGludCA9fiBzL14vICAgL21nOwotICAgIHByaW50ICIg
ICAtLS0gaGludCBmb3IgJGZ1bmMgLS0tXG4iLCAkaGludDsKLSAgfQotICAkcnY7Ci19Ci0KLXN1
YiB1c2FnZQotewotICBteSgkdXNhZ2UpID0gZG8geyBsb2NhbChAQVJHViwkLyk9KCQwKTsgPD4g
fSA9fiAvXj1oZWFkXGQkSFMrU1lOT1BTSVNccypeKC4qPylccypePS9tczsKLSAgbXkgJU0gPSAo
ICdJJyA9PiAnKicgKTsKLSAgJHVzYWdlID1+IHMvXlxzKnBlcmxccytcUysvJF5YICQwLzsKLSAg
JHVzYWdlID1+IHMvKFtBLVpdKTwoW14+XSspPi8kTXskMX0kMiRNeyQxfS9nOwotCi0gIHByaW50
IDw8RU5EVVNBR0U7Ci0KLVVzYWdlOiAkdXNhZ2UKLQotU2VlIHBlcmxkb2MgJDAgZm9yIGRldGFp
bHMuCi0KLUVORFVTQUdFCi0KLSAgZXhpdCAyOwotfQotCi1zdWIgc3RyaXAKLXsKLSAgbXkgJHNl
bGYgPSBkbyB7IGxvY2FsKEBBUkdWLCQvKT0oJDApOyA8PiB9OwotICBteSgkY29weSkgPSAkc2Vs
ZiA9fiAvXj1oZWFkXGRccytDT1BZUklHSFRccypeKC4qPylePVx3Ky9tczsKLSAgJGNvcHkgPX4g
cy9eKD89XFMrKS8gICAgL2dtczsKLSAgJHNlbGYgPX4gcy9eJEhTK0RvIE5PVCBlZGl0Lio/KD89
Xi0pLyRjb3B5L21zOwotICAkc2VsZiA9fiBzL15TS0lQLiooPz1eX19EQVRBX18pL1NLSVAKLWlm
IChcQEFSR1YgJiYgXCRBUkdWWzBdIGVxICctLXVuc3RyaXAnKSB7Ci0gIGV2YWwgeyByZXF1aXJl
IERldmVsOjpQUFBvcnQgfTsKLSAgXCRAIGFuZCBkaWUgIkNhbm5vdCByZXF1aXJlIERldmVsOjpQ
UFBvcnQsIHBsZWFzZSBpbnN0YWxsLlxcbiI7Ci0gIGlmIChcJERldmVsOjpQUFBvcnQ6OlZFUlNJ
T04gPCAkVkVSU0lPTikgewotICAgIGRpZSAiJDAgd2FzIG9yaWdpbmFsbHkgZ2VuZXJhdGVkIHdp
dGggRGV2ZWw6OlBQUG9ydCAkVkVSU0lPTi5cXG4iCi0gICAgICAuICJZb3VyIERldmVsOjpQUFBv
cnQgaXMgb25seSB2ZXJzaW9uIFwkRGV2ZWw6OlBQUG9ydDo6VkVSU0lPTi5cXG4iCi0gICAgICAu
ICJQbGVhc2UgaW5zdGFsbCBhIG5ld2VyIHZlcnNpb24sIG9yIC0tdW5zdHJpcCB3aWxsIG5vdCB3
b3JrLlxcbiI7Ci0gIH0KLSAgRGV2ZWw6OlBQUG9ydDo6V3JpdGVGaWxlKFwkMCk7Ci0gIGV4aXQg
MDsKLX0KLXByaW50IDw8RU5EOwotCi1Tb3JyeSwgYnV0IHRoaXMgaXMgYSBzdHJpcHBlZCB2ZXJz
aW9uIG9mIFwkMC4KLQotVG8gYmUgYWJsZSB0byB1c2UgaXRzIG9yaWdpbmFsIHNjcmlwdCBhbmQg
ZG9jIGZ1bmN0aW9uYWxpdHksCi1wbGVhc2UgdHJ5IHRvIHJlZ2VuZXJhdGUgdGhpcyBmaWxlIHVz
aW5nOgotCi0gIFwkXlggXCQwIC0tdW5zdHJpcAotCi1FTkQKLS9tczsKLSAgbXkoJHBsLCAkYykg
PSAkc2VsZiA9fiAvKC4qXl9fREFUQV9fKSguKikvbXM7Ci0gICRjID1+IHN7Ci0gICAgLyAoPzog
XCpbXipdKlwqKyg/OlteJGNjc11bXipdKlwqKykqIC8gfCAvW15cclxuXSopCi0gIHwgKCAiW14i
XFxdKig/OlxcLlteIlxcXSopKiIKLSAgICB8ICdbXidcXF0qKD86XFwuW14nXFxdKikqJyApCi0g
IHwgKCRIUyspIH17IGRlZmluZWQgJDIgPyAnICcgOiAoJDEgfHwgJycpIH1nc2V4OwotICAkYyA9
fiBzIVxzKyQhIW1nOwotICAkYyA9fiBzIV4kTEYhIW1nOwotICAkYyA9fiBzIV5ccyojXHMqISMh
bWc7Ci0gICRjID1+IHMhXlxzKyEhbWc7Ci0KLSAgb3BlbiBPVVQsICI+JDAiIG9yIGRpZSAiY2Fu
bm90IHN0cmlwICQwOiAkIVxuIjsKLSAgcHJpbnQgT1VUICIkcGwkY1xuIjsKLQotICBleGl0IDA7
Ci19Ci0KLV9fREFUQV9fCi0qLwotCi0jaWZuZGVmIF9QX1BfUE9SVEFCSUxJVFlfSF8KLSNkZWZp
bmUgX1BfUF9QT1JUQUJJTElUWV9IXwotCi0jaWZuZGVmIERQUFBfTkFNRVNQQUNFCi0jICBkZWZp
bmUgRFBQUF9OQU1FU1BBQ0UgRFBQUF8KLSNlbmRpZgotCi0jZGVmaW5lIERQUFBfQ0FUMih4LHkp
IENBVDIoeCx5KQotI2RlZmluZSBEUFBQXyhuYW1lKSBEUFBQX0NBVDIoRFBQUF9OQU1FU1BBQ0Us
IG5hbWUpCi0KLSNpZm5kZWYgUEVSTF9SRVZJU0lPTgotIyAgaWYgIWRlZmluZWQoX19QQVRDSExF
VkVMX0hfSU5DTFVERURfXykgJiYgIShkZWZpbmVkKFBBVENITEVWRUwpICYmIGRlZmluZWQoU1VC
VkVSU0lPTikpCi0jICAgIGRlZmluZSBQRVJMX1BBVENITEVWRUxfSF9JTVBMSUNJVAotIyAgICBp
bmNsdWRlIDxwYXRjaGxldmVsLmg+Ci0jICBlbmRpZgotIyAgaWYgIShkZWZpbmVkKFBFUkxfVkVS
U0lPTikgfHwgKGRlZmluZWQoU1VCVkVSU0lPTikgJiYgZGVmaW5lZChQQVRDSExFVkVMKSkpCi0j
ICAgIGluY2x1ZGUgPGNvdWxkX25vdF9maW5kX1BlcmxfcGF0Y2hsZXZlbC5oPgotIyAgZW5kaWYK
LSMgIGlmbmRlZiBQRVJMX1JFVklTSU9OCi0jICAgIGRlZmluZSBQRVJMX1JFVklTSU9OICAgICAg
ICg1KQotICAgICAvKiBSZXBsYWNlOiAxICovCi0jICAgIGRlZmluZSBQRVJMX1ZFUlNJT04gICAg
ICAgIFBBVENITEVWRUwKLSMgICAgZGVmaW5lIFBFUkxfU1VCVkVSU0lPTiAgICAgU1VCVkVSU0lP
TgotICAgICAvKiBSZXBsYWNlIFBFUkxfUEFUQ0hMRVZFTCB3aXRoIFBFUkxfVkVSU0lPTiAqLwot
ICAgICAvKiBSZXBsYWNlOiAwICovCi0jICBlbmRpZgotI2VuZGlmCi0KLSNkZWZpbmUgX2RwcHBE
RUMyQkNEKGRlYykgKCgoKGRlYykvMTAwKTw8OCl8KCgoKGRlYyklMTAwKS8xMCk8PDQpfCgoZGVj
KSUxMCkpCi0jZGVmaW5lIFBFUkxfQkNEVkVSU0lPTiAoKF9kcHBwREVDMkJDRChQRVJMX1JFVklT
SU9OKTw8MjQpfChfZHBwcERFQzJCQ0QoUEVSTF9WRVJTSU9OKTw8MTIpfF9kcHBwREVDMkJDRChQ
RVJMX1NVQlZFUlNJT04pKQotCi0vKiBJdCBpcyB2ZXJ5IHVubGlrZWx5IHRoYXQgYW55b25lIHdp
bGwgdHJ5IHRvIHVzZSB0aGlzIHdpdGggUGVybCA2Ci0gICAob3IgZ3JlYXRlciksIGJ1dCB3aG8g
a25vd3MuCi0gKi8KLSNpZiBQRVJMX1JFVklTSU9OICE9IDUKLSMgIGVycm9yIHBwcG9ydC5oIG9u
bHkgd29ya3Mgd2l0aCBQZXJsIHZlcnNpb24gNQotI2VuZGlmIC8qIFBFUkxfUkVWSVNJT04gIT0g
NSAqLwotCi0jaWZkZWYgSV9MSU1JVFMKLSMgIGluY2x1ZGUgPGxpbWl0cy5oPgotI2VuZGlmCi0K
LSNpZm5kZWYgUEVSTF9VQ0hBUl9NSU4KLSMgIGRlZmluZSBQRVJMX1VDSEFSX01JTiAoKHVuc2ln
bmVkIGNoYXIpMCkKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfVUNIQVJfTUFYCi0jICBpZmRlZiBV
Q0hBUl9NQVgKLSMgICAgZGVmaW5lIFBFUkxfVUNIQVJfTUFYICgodW5zaWduZWQgY2hhcilVQ0hB
Ul9NQVgpCi0jICBlbHNlCi0jICAgIGlmZGVmIE1BWFVDSEFSCi0jICAgICAgZGVmaW5lIFBFUkxf
VUNIQVJfTUFYICgodW5zaWduZWQgY2hhcilNQVhVQ0hBUikKLSMgICAgZWxzZQotIyAgICAgIGRl
ZmluZSBQRVJMX1VDSEFSX01BWCAoKHVuc2lnbmVkIGNoYXIpfih1bnNpZ25lZCkwKQotIyAgICBl
bmRpZgotIyAgZW5kaWYKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfVVNIT1JUX01JTgotIyAgZGVm
aW5lIFBFUkxfVVNIT1JUX01JTiAoKHVuc2lnbmVkIHNob3J0KTApCi0jZW5kaWYKLQotI2lmbmRl
ZiBQRVJMX1VTSE9SVF9NQVgKLSMgIGlmZGVmIFVTSE9SVF9NQVgKLSMgICAgZGVmaW5lIFBFUkxf
VVNIT1JUX01BWCAoKHVuc2lnbmVkIHNob3J0KVVTSE9SVF9NQVgpCi0jICBlbHNlCi0jICAgIGlm
ZGVmIE1BWFVTSE9SVAotIyAgICAgIGRlZmluZSBQRVJMX1VTSE9SVF9NQVggKCh1bnNpZ25lZCBz
aG9ydClNQVhVU0hPUlQpCi0jICAgIGVsc2UKLSMgICAgICBpZmRlZiBVU0hSVF9NQVgKLSMgICAg
ICAgIGRlZmluZSBQRVJMX1VTSE9SVF9NQVggKCh1bnNpZ25lZCBzaG9ydClVU0hSVF9NQVgpCi0j
ICAgICAgZWxzZQotIyAgICAgICAgZGVmaW5lIFBFUkxfVVNIT1JUX01BWCAoKHVuc2lnbmVkIHNo
b3J0KX4odW5zaWduZWQpMCkKLSMgICAgICBlbmRpZgotIyAgICBlbmRpZgotIyAgZW5kaWYKLSNl
bmRpZgotCi0jaWZuZGVmIFBFUkxfU0hPUlRfTUFYCi0jICBpZmRlZiBTSE9SVF9NQVgKLSMgICAg
ZGVmaW5lIFBFUkxfU0hPUlRfTUFYICgoc2hvcnQpU0hPUlRfTUFYKQotIyAgZWxzZQotIyAgICBp
ZmRlZiBNQVhTSE9SVCAgICAvKiBPZnRlbiB1c2VkIGluIDx2YWx1ZXMuaD4gKi8KLSMgICAgICBk
ZWZpbmUgUEVSTF9TSE9SVF9NQVggKChzaG9ydClNQVhTSE9SVCkKLSMgICAgZWxzZQotIyAgICAg
IGlmZGVmIFNIUlRfTUFYCi0jICAgICAgICBkZWZpbmUgUEVSTF9TSE9SVF9NQVggKChzaG9ydClT
SFJUX01BWCkKLSMgICAgICBlbHNlCi0jICAgICAgICBkZWZpbmUgUEVSTF9TSE9SVF9NQVggKChz
aG9ydCkgKFBFUkxfVVNIT1JUX01BWCA+PiAxKSkKLSMgICAgICBlbmRpZgotIyAgICBlbmRpZgot
IyAgZW5kaWYKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfU0hPUlRfTUlOCi0jICBpZmRlZiBTSE9S
VF9NSU4KLSMgICAgZGVmaW5lIFBFUkxfU0hPUlRfTUlOICgoc2hvcnQpU0hPUlRfTUlOKQotIyAg
ZWxzZQotIyAgICBpZmRlZiBNSU5TSE9SVAotIyAgICAgIGRlZmluZSBQRVJMX1NIT1JUX01JTiAo
KHNob3J0KU1JTlNIT1JUKQotIyAgICBlbHNlCi0jICAgICAgaWZkZWYgU0hSVF9NSU4KLSMgICAg
ICAgIGRlZmluZSBQRVJMX1NIT1JUX01JTiAoKHNob3J0KVNIUlRfTUlOKQotIyAgICAgIGVsc2UK
LSMgICAgICAgIGRlZmluZSBQRVJMX1NIT1JUX01JTiAoLVBFUkxfU0hPUlRfTUFYIC0gKCgzICYg
LTEpID09IDMpKQotIyAgICAgIGVuZGlmCi0jICAgIGVuZGlmCi0jICBlbmRpZgotI2VuZGlmCi0K
LSNpZm5kZWYgUEVSTF9VSU5UX01BWAotIyAgaWZkZWYgVUlOVF9NQVgKLSMgICAgZGVmaW5lIFBF
UkxfVUlOVF9NQVggKCh1bnNpZ25lZCBpbnQpVUlOVF9NQVgpCi0jICBlbHNlCi0jICAgIGlmZGVm
IE1BWFVJTlQKLSMgICAgICBkZWZpbmUgUEVSTF9VSU5UX01BWCAoKHVuc2lnbmVkIGludClNQVhV
SU5UKQotIyAgICBlbHNlCi0jICAgICAgZGVmaW5lIFBFUkxfVUlOVF9NQVggKH4odW5zaWduZWQg
aW50KTApCi0jICAgIGVuZGlmCi0jICBlbmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9VSU5U
X01JTgotIyAgZGVmaW5lIFBFUkxfVUlOVF9NSU4gKCh1bnNpZ25lZCBpbnQpMCkKLSNlbmRpZgot
Ci0jaWZuZGVmIFBFUkxfSU5UX01BWAotIyAgaWZkZWYgSU5UX01BWAotIyAgICBkZWZpbmUgUEVS
TF9JTlRfTUFYICgoaW50KUlOVF9NQVgpCi0jICBlbHNlCi0jICAgIGlmZGVmIE1BWElOVCAgICAv
KiBPZnRlbiB1c2VkIGluIDx2YWx1ZXMuaD4gKi8KLSMgICAgICBkZWZpbmUgUEVSTF9JTlRfTUFY
ICgoaW50KU1BWElOVCkKLSMgICAgZWxzZQotIyAgICAgIGRlZmluZSBQRVJMX0lOVF9NQVggKChp
bnQpKFBFUkxfVUlOVF9NQVggPj4gMSkpCi0jICAgIGVuZGlmCi0jICBlbmRpZgotI2VuZGlmCi0K
LSNpZm5kZWYgUEVSTF9JTlRfTUlOCi0jICBpZmRlZiBJTlRfTUlOCi0jICAgIGRlZmluZSBQRVJM
X0lOVF9NSU4gKChpbnQpSU5UX01JTikKLSMgIGVsc2UKLSMgICAgaWZkZWYgTUlOSU5UCi0jICAg
ICAgZGVmaW5lIFBFUkxfSU5UX01JTiAoKGludClNSU5JTlQpCi0jICAgIGVsc2UKLSMgICAgICBk
ZWZpbmUgUEVSTF9JTlRfTUlOICgtUEVSTF9JTlRfTUFYIC0gKCgzICYgLTEpID09IDMpKQotIyAg
ICBlbmRpZgotIyAgZW5kaWYKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfVUxPTkdfTUFYCi0jICBp
ZmRlZiBVTE9OR19NQVgKLSMgICAgZGVmaW5lIFBFUkxfVUxPTkdfTUFYICgodW5zaWduZWQgbG9u
ZylVTE9OR19NQVgpCi0jICBlbHNlCi0jICAgIGlmZGVmIE1BWFVMT05HCi0jICAgICAgZGVmaW5l
IFBFUkxfVUxPTkdfTUFYICgodW5zaWduZWQgbG9uZylNQVhVTE9ORykKLSMgICAgZWxzZQotIyAg
ICAgIGRlZmluZSBQRVJMX1VMT05HX01BWCAofih1bnNpZ25lZCBsb25nKTApCi0jICAgIGVuZGlm
Ci0jICBlbmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9VTE9OR19NSU4KLSMgIGRlZmluZSBQ
RVJMX1VMT05HX01JTiAoKHVuc2lnbmVkIGxvbmcpMEwpCi0jZW5kaWYKLQotI2lmbmRlZiBQRVJM
X0xPTkdfTUFYCi0jICBpZmRlZiBMT05HX01BWAotIyAgICBkZWZpbmUgUEVSTF9MT05HX01BWCAo
KGxvbmcpTE9OR19NQVgpCi0jICBlbHNlCi0jICAgIGlmZGVmIE1BWExPTkcKLSMgICAgICBkZWZp
bmUgUEVSTF9MT05HX01BWCAoKGxvbmcpTUFYTE9ORykKLSMgICAgZWxzZQotIyAgICAgIGRlZmlu
ZSBQRVJMX0xPTkdfTUFYICgobG9uZykgKFBFUkxfVUxPTkdfTUFYID4+IDEpKQotIyAgICBlbmRp
ZgotIyAgZW5kaWYKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfTE9OR19NSU4KLSMgIGlmZGVmIExP
TkdfTUlOCi0jICAgIGRlZmluZSBQRVJMX0xPTkdfTUlOICgobG9uZylMT05HX01JTikKLSMgIGVs
c2UKLSMgICAgaWZkZWYgTUlOTE9ORwotIyAgICAgIGRlZmluZSBQRVJMX0xPTkdfTUlOICgobG9u
ZylNSU5MT05HKQotIyAgICBlbHNlCi0jICAgICAgZGVmaW5lIFBFUkxfTE9OR19NSU4gKC1QRVJM
X0xPTkdfTUFYIC0gKCgzICYgLTEpID09IDMpKQotIyAgICBlbmRpZgotIyAgZW5kaWYKLSNlbmRp
ZgotCi0jaWYgZGVmaW5lZChIQVNfUVVBRCkgJiYgKGRlZmluZWQoY29udmV4KSB8fCBkZWZpbmVk
KHV0cykpCi0jICBpZm5kZWYgUEVSTF9VUVVBRF9NQVgKLSMgICAgaWZkZWYgVUxPTkdMT05HX01B
WAotIyAgICAgIGRlZmluZSBQRVJMX1VRVUFEX01BWCAoKHVuc2lnbmVkIGxvbmcgbG9uZylVTE9O
R0xPTkdfTUFYKQotIyAgICBlbHNlCi0jICAgICAgaWZkZWYgTUFYVUxPTkdMT05HCi0jICAgICAg
ICBkZWZpbmUgUEVSTF9VUVVBRF9NQVggKCh1bnNpZ25lZCBsb25nIGxvbmcpTUFYVUxPTkdMT05H
KQotIyAgICAgIGVsc2UKLSMgICAgICAgIGRlZmluZSBQRVJMX1VRVUFEX01BWCAofih1bnNpZ25l
ZCBsb25nIGxvbmcpMCkKLSMgICAgICBlbmRpZgotIyAgICBlbmRpZgotIyAgZW5kaWYKLQotIyAg
aWZuZGVmIFBFUkxfVVFVQURfTUlOCi0jICAgIGRlZmluZSBQRVJMX1VRVUFEX01JTiAoKHVuc2ln
bmVkIGxvbmcgbG9uZykwTCkKLSMgIGVuZGlmCi0KLSMgIGlmbmRlZiBQRVJMX1FVQURfTUFYCi0j
ICAgIGlmZGVmIExPTkdMT05HX01BWAotIyAgICAgIGRlZmluZSBQRVJMX1FVQURfTUFYICgobG9u
ZyBsb25nKUxPTkdMT05HX01BWCkKLSMgICAgZWxzZQotIyAgICAgIGlmZGVmIE1BWExPTkdMT05H
Ci0jICAgICAgICBkZWZpbmUgUEVSTF9RVUFEX01BWCAoKGxvbmcgbG9uZylNQVhMT05HTE9ORykK
LSMgICAgICBlbHNlCi0jICAgICAgICBkZWZpbmUgUEVSTF9RVUFEX01BWCAoKGxvbmcgbG9uZykg
KFBFUkxfVVFVQURfTUFYID4+IDEpKQotIyAgICAgIGVuZGlmCi0jICAgIGVuZGlmCi0jICBlbmRp
ZgotCi0jICBpZm5kZWYgUEVSTF9RVUFEX01JTgotIyAgICBpZmRlZiBMT05HTE9OR19NSU4KLSMg
ICAgICBkZWZpbmUgUEVSTF9RVUFEX01JTiAoKGxvbmcgbG9uZylMT05HTE9OR19NSU4pCi0jICAg
IGVsc2UKLSMgICAgICBpZmRlZiBNSU5MT05HTE9ORwotIyAgICAgICAgZGVmaW5lIFBFUkxfUVVB
RF9NSU4gKChsb25nIGxvbmcpTUlOTE9OR0xPTkcpCi0jICAgICAgZWxzZQotIyAgICAgICAgZGVm
aW5lIFBFUkxfUVVBRF9NSU4gKC1QRVJMX1FVQURfTUFYIC0gKCgzICYgLTEpID09IDMpKQotIyAg
ICAgIGVuZGlmCi0jICAgIGVuZGlmCi0jICBlbmRpZgotI2VuZGlmCi0KLS8qIFRoaXMgaXMgYmFz
ZWQgb24gY29kZSBmcm9tIDUuMDAzIHBlcmwuaCAqLwotI2lmZGVmIEhBU19RVUFECi0jICBpZmRl
ZiBjcmF5Ci0jaWZuZGVmIElWVFlQRQotIyAgZGVmaW5lIElWVFlQRSAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQKLSNlbmRpZgotCi0jaWZuZGVmIElWX01JTgotIyAgZGVmaW5lIElWX01JTiAg
ICAgICAgICAgICAgICAgICAgICAgICBQRVJMX0lOVF9NSU4KLSNlbmRpZgotCi0jaWZuZGVmIElW
X01BWAotIyAgZGVmaW5lIElWX01BWCAgICAgICAgICAgICAgICAgICAgICAgICBQRVJMX0lOVF9N
QVgKLSNlbmRpZgotCi0jaWZuZGVmIFVWX01JTgotIyAgZGVmaW5lIFVWX01JTiAgICAgICAgICAg
ICAgICAgICAgICAgICBQRVJMX1VJTlRfTUlOCi0jZW5kaWYKLQotI2lmbmRlZiBVVl9NQVgKLSMg
IGRlZmluZSBVVl9NQVggICAgICAgICAgICAgICAgICAgICAgICAgUEVSTF9VSU5UX01BWAotI2Vu
ZGlmCi0KLSMgICAgaWZkZWYgSU5UU0laRQotI2lmbmRlZiBJVlNJWkUKLSMgIGRlZmluZSBJVlNJ
WkUgICAgICAgICAgICAgICAgICAgICAgICAgSU5UU0laRQotI2VuZGlmCi0KLSMgICAgZW5kaWYK
LSMgIGVsc2UKLSMgICAgaWYgZGVmaW5lZChjb252ZXgpIHx8IGRlZmluZWQodXRzKQotI2lmbmRl
ZiBJVlRZUEUKLSMgIGRlZmluZSBJVlRZUEUgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBs
b25nCi0jZW5kaWYKLQotI2lmbmRlZiBJVl9NSU4KLSMgIGRlZmluZSBJVl9NSU4gICAgICAgICAg
ICAgICAgICAgICAgICAgUEVSTF9RVUFEX01JTgotI2VuZGlmCi0KLSNpZm5kZWYgSVZfTUFYCi0j
ICBkZWZpbmUgSVZfTUFYICAgICAgICAgICAgICAgICAgICAgICAgIFBFUkxfUVVBRF9NQVgKLSNl
bmRpZgotCi0jaWZuZGVmIFVWX01JTgotIyAgZGVmaW5lIFVWX01JTiAgICAgICAgICAgICAgICAg
ICAgICAgICBQRVJMX1VRVUFEX01JTgotI2VuZGlmCi0KLSNpZm5kZWYgVVZfTUFYCi0jICBkZWZp
bmUgVVZfTUFYICAgICAgICAgICAgICAgICAgICAgICAgIFBFUkxfVVFVQURfTUFYCi0jZW5kaWYK
LQotIyAgICAgIGlmZGVmIExPTkdMT05HU0laRQotI2lmbmRlZiBJVlNJWkUKLSMgIGRlZmluZSBJ
VlNJWkUgICAgICAgICAgICAgICAgICAgICAgICAgTE9OR0xPTkdTSVpFCi0jZW5kaWYKLQotIyAg
ICAgIGVuZGlmCi0jICAgIGVsc2UKLSNpZm5kZWYgSVZUWVBFCi0jICBkZWZpbmUgSVZUWVBFICAg
ICAgICAgICAgICAgICAgICAgICAgIGxvbmcKLSNlbmRpZgotCi0jaWZuZGVmIElWX01JTgotIyAg
ZGVmaW5lIElWX01JTiAgICAgICAgICAgICAgICAgICAgICAgICBQRVJMX0xPTkdfTUlOCi0jZW5k
aWYKLQotI2lmbmRlZiBJVl9NQVgKLSMgIGRlZmluZSBJVl9NQVggICAgICAgICAgICAgICAgICAg
ICAgICAgUEVSTF9MT05HX01BWAotI2VuZGlmCi0KLSNpZm5kZWYgVVZfTUlOCi0jICBkZWZpbmUg
VVZfTUlOICAgICAgICAgICAgICAgICAgICAgICAgIFBFUkxfVUxPTkdfTUlOCi0jZW5kaWYKLQot
I2lmbmRlZiBVVl9NQVgKLSMgIGRlZmluZSBVVl9NQVggICAgICAgICAgICAgICAgICAgICAgICAg
UEVSTF9VTE9OR19NQVgKLSNlbmRpZgotCi0jICAgICAgaWZkZWYgTE9OR1NJWkUKLSNpZm5kZWYg
SVZTSVpFCi0jICBkZWZpbmUgSVZTSVpFICAgICAgICAgICAgICAgICAgICAgICAgIExPTkdTSVpF
Ci0jZW5kaWYKLQotIyAgICAgIGVuZGlmCi0jICAgIGVuZGlmCi0jICBlbmRpZgotI2lmbmRlZiBJ
VlNJWkUKLSMgIGRlZmluZSBJVlNJWkUgICAgICAgICAgICAgICAgICAgICAgICAgOAotI2VuZGlm
Ci0KLSNpZm5kZWYgUEVSTF9RVUFEX01JTgotIyAgZGVmaW5lIFBFUkxfUVVBRF9NSU4gICAgICAg
ICAgICAgICAgICBJVl9NSU4KLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfUVVBRF9NQVgKLSMgIGRl
ZmluZSBQRVJMX1FVQURfTUFYICAgICAgICAgICAgICAgICAgSVZfTUFYCi0jZW5kaWYKLQotI2lm
bmRlZiBQRVJMX1VRVUFEX01JTgotIyAgZGVmaW5lIFBFUkxfVVFVQURfTUlOICAgICAgICAgICAg
ICAgICBVVl9NSU4KLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfVVFVQURfTUFYCi0jICBkZWZpbmUg
UEVSTF9VUVVBRF9NQVggICAgICAgICAgICAgICAgIFVWX01BWAotI2VuZGlmCi0KLSNlbHNlCi0j
aWZuZGVmIElWVFlQRQotIyAgZGVmaW5lIElWVFlQRSAgICAgICAgICAgICAgICAgICAgICAgICBs
b25nCi0jZW5kaWYKLQotI2lmbmRlZiBJVl9NSU4KLSMgIGRlZmluZSBJVl9NSU4gICAgICAgICAg
ICAgICAgICAgICAgICAgUEVSTF9MT05HX01JTgotI2VuZGlmCi0KLSNpZm5kZWYgSVZfTUFYCi0j
ICBkZWZpbmUgSVZfTUFYICAgICAgICAgICAgICAgICAgICAgICAgIFBFUkxfTE9OR19NQVgKLSNl
bmRpZgotCi0jaWZuZGVmIFVWX01JTgotIyAgZGVmaW5lIFVWX01JTiAgICAgICAgICAgICAgICAg
ICAgICAgICBQRVJMX1VMT05HX01JTgotI2VuZGlmCi0KLSNpZm5kZWYgVVZfTUFYCi0jICBkZWZp
bmUgVVZfTUFYICAgICAgICAgICAgICAgICAgICAgICAgIFBFUkxfVUxPTkdfTUFYCi0jZW5kaWYK
LQotI2VuZGlmCi0KLSNpZm5kZWYgSVZTSVpFCi0jICBpZmRlZiBMT05HU0laRQotIyAgICBkZWZp
bmUgSVZTSVpFIExPTkdTSVpFCi0jICBlbHNlCi0jICAgIGRlZmluZSBJVlNJWkUgNCAvKiBBIGJv
bGQgZ3Vlc3MsIGJ1dCB0aGUgYmVzdCB3ZSBjYW4gbWFrZS4gKi8KLSMgIGVuZGlmCi0jZW5kaWYK
LSNpZm5kZWYgVVZUWVBFCi0jICBkZWZpbmUgVVZUWVBFICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIElWVFlQRQotI2VuZGlmCi0KLSNpZm5kZWYgVVZTSVpFCi0jICBkZWZpbmUgVVZT
SVpFICAgICAgICAgICAgICAgICAgICAgICAgIElWU0laRQotI2VuZGlmCi0jaWZuZGVmIHN2X3Nl
dHV2Ci0jICBkZWZpbmUgc3Zfc2V0dXYoc3YsIHV2KSAgICAgICAgICAgICAgIFwKLSAgICAgICAg
ICAgICAgIFNUTVRfU1RBUlQgeyAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAg
ICAgICAgIFVWIFRlTXBVdiA9IHV2OyAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAg
ICAgICBpZiAoVGVNcFV2IDw9IElWX01BWCkgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAg
ICAgICBzdl9zZXRpdihzdiwgVGVNcFV2KTsgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAg
IGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAg
IHN2X3NldG52KHN2LCAoZG91YmxlKVRlTXBVdik7ICAgIFwKLSAgICAgICAgICAgICAgIH0gU1RN
VF9FTkQKLSNlbmRpZgotI2lmbmRlZiBuZXdTVnV2Ci0jICBkZWZpbmUgbmV3U1Z1dih1dikgICAg
ICAgICAgICAgICAgICAgICgodXYpIDw9IElWX01BWCA/IG5ld1NWaXYoKElWKXV2KSA6IG5ld1NW
bnYoKE5WKXV2KSkKLSNlbmRpZgotI2lmbmRlZiBzdl8ydXYKLSMgIGRlZmluZSBzdl8ydXYoc3Yp
ICAgICAgICAgICAgICAgICAgICAgKChQTF9TdiA9IChzdikpLCAoVVYpIChTdk5PSyhQTF9Tdikg
PyBTdk5WKFBMX1N2KSA6IHN2XzJudihQTF9TdikpKQotI2VuZGlmCi0KLSNpZm5kZWYgU3ZVVlgK
LSMgIGRlZmluZSBTdlVWWChzdikgICAgICAgICAgICAgICAgICAgICAgKChVVilTdklWWChzdikp
Ci0jZW5kaWYKLQotI2lmbmRlZiBTdlVWWHgKLSMgIGRlZmluZSBTdlVWWHgoc3YpICAgICAgICAg
ICAgICAgICAgICAgU3ZVVlgoc3YpCi0jZW5kaWYKLQotI2lmbmRlZiBTdlVWCi0jICBkZWZpbmUg
U3ZVVihzdikgICAgICAgICAgICAgICAgICAgICAgIChTdklPSyhzdikgPyBTdlVWWChzdikgOiBz
dl8ydXYoc3YpKQotI2VuZGlmCi0KLSNpZm5kZWYgU3ZVVngKLSMgIGRlZmluZSBTdlVWeChzdikg
ICAgICAgICAgICAgICAgICAgICAgKChQTF9TdiA9IChzdikpLCBTdlVWKFBMX1N2KSkKLSNlbmRp
ZgotCi0vKiBIaW50OiBzdl91dgotICogQWx3YXlzIHVzZSB0aGUgU3ZVVngoKSBtYWNybyBpbnN0
ZWFkIG9mIHN2X3V2KCkuCi0gKi8KLSNpZm5kZWYgc3ZfdXYKLSMgIGRlZmluZSBzdl91dihzdikg
ICAgICAgICAgICAgICAgICAgICAgU3ZVVngoc3YpCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKFN2
VU9LKSAmJiBkZWZpbmVkKFN2SU9LX1VWKQotIyAgZGVmaW5lIFN2VU9LKHN2KSBTdklPS19VVihz
dikKLSNlbmRpZgotI2lmbmRlZiBYU1RfbVVWCi0jICBkZWZpbmUgWFNUX21VVihpLHYpICAgICAg
ICAgICAgICAgICAgIChTVChpKSA9IHN2XzJtb3J0YWwobmV3U1Z1dih2KSkgICkKLSNlbmRpZgot
Ci0jaWZuZGVmIFhTUkVUVVJOX1VWCi0jICBkZWZpbmUgWFNSRVRVUk5fVVYodikgICAgICAgICAg
ICAgICAgIFNUTVRfU1RBUlQgeyBYU1RfbVVWKDAsdik7ICBYU1JFVFVSTigxKTsgfSBTVE1UX0VO
RAotI2VuZGlmCi0jaWZuZGVmIFBVU0h1Ci0jICBkZWZpbmUgUFVTSHUodSkgICAgICAgICAgICAg
ICAgICAgICAgIFNUTVRfU1RBUlQgeyBzdl9zZXR1dihUQVJHLCAoVVYpKHUpKTsgUFVTSFRBUkc7
ICB9IFNUTVRfRU5ECi0jZW5kaWYKLQotI2lmbmRlZiBYUFVTSHUKLSMgIGRlZmluZSBYUFVTSHUo
dSkgICAgICAgICAgICAgICAgICAgICAgU1RNVF9TVEFSVCB7IHN2X3NldHV2KFRBUkcsIChVViko
dSkpOyBYUFVTSFRBUkc7IH0gU1RNVF9FTkQKLSNlbmRpZgotCi0jaWZkZWYgSEFTX01FTUNNUAot
I2lmbmRlZiBtZW1ORQotIyAgZGVmaW5lIG1lbU5FKHMxLHMyLGwpICAgICAgICAgICAgICAgICAo
bWVtY21wKHMxLHMyLGwpKQotI2VuZGlmCi0KLSNpZm5kZWYgbWVtRVEKLSMgIGRlZmluZSBtZW1F
UShzMSxzMixsKSAgICAgICAgICAgICAgICAgKCFtZW1jbXAoczEsczIsbCkpCi0jZW5kaWYKLQot
I2Vsc2UKLSNpZm5kZWYgbWVtTkUKLSMgIGRlZmluZSBtZW1ORShzMSxzMixsKSAgICAgICAgICAg
ICAgICAgKGJjbXAoczEsczIsbCkpCi0jZW5kaWYKLQotI2lmbmRlZiBtZW1FUQotIyAgZGVmaW5l
IG1lbUVRKHMxLHMyLGwpICAgICAgICAgICAgICAgICAoIWJjbXAoczEsczIsbCkpCi0jZW5kaWYK
LQotI2VuZGlmCi0jaWZuZGVmIE1vdmVECi0jICBkZWZpbmUgTW92ZUQocyxkLG4sdCkgICAgICAg
ICAgICAgICAgIG1lbW1vdmUoKGNoYXIqKShkKSwoY2hhciopKHMpLCAobikgKiBzaXplb2YodCkp
Ci0jZW5kaWYKLQotI2lmbmRlZiBDb3B5RAotIyAgZGVmaW5lIENvcHlEKHMsZCxuLHQpICAgICAg
ICAgICAgICAgICBtZW1jcHkoKGNoYXIqKShkKSwoY2hhciopKHMpLCAobikgKiBzaXplb2YodCkp
Ci0jZW5kaWYKLQotI2lmZGVmIEhBU19NRU1TRVQKLSNpZm5kZWYgWmVyb0QKLSMgIGRlZmluZSBa
ZXJvRChkLG4sdCkgICAgICAgICAgICAgICAgICAgbWVtemVybygoY2hhciopKGQpLCAobikgKiBz
aXplb2YodCkpCi0jZW5kaWYKLQotI2Vsc2UKLSNpZm5kZWYgWmVyb0QKLSMgIGRlZmluZSBaZXJv
RChkLG4sdCkgICAgICAgICAgICAgICAgICAgKCh2b2lkKW1lbXplcm8oKGNoYXIqKShkKSwgKG4p
ICogc2l6ZW9mKHQpKSwgZCkKLSNlbmRpZgotCi0jZW5kaWYKLSNpZm5kZWYgUG9pc29uV2l0aAot
IyAgZGVmaW5lIFBvaXNvbldpdGgoZCxuLHQsYikgICAgICAgICAgICAodm9pZCltZW1zZXQoKGNo
YXIqKShkKSwgKFU4KShiKSwgKG4pICogc2l6ZW9mKHQpKQotI2VuZGlmCi0KLSNpZm5kZWYgUG9p
c29uTmV3Ci0jICBkZWZpbmUgUG9pc29uTmV3KGQsbix0KSAgICAgICAgICAgICAgIFBvaXNvbldp
dGgoZCxuLHQsMHhBQikKLSNlbmRpZgotCi0jaWZuZGVmIFBvaXNvbkZyZWUKLSMgIGRlZmluZSBQ
b2lzb25GcmVlKGQsbix0KSAgICAgICAgICAgICAgUG9pc29uV2l0aChkLG4sdCwweEVGKQotI2Vu
ZGlmCi0KLSNpZm5kZWYgUG9pc29uCi0jICBkZWZpbmUgUG9pc29uKGQsbix0KSAgICAgICAgICAg
ICAgICAgIFBvaXNvbkZyZWUoZCxuLHQpCi0jZW5kaWYKLSNpZm5kZWYgTmV3eAotIyAgZGVmaW5l
IE5ld3godixuLHQpICAgICAgICAgICAgICAgICAgICBOZXcoMCx2LG4sdCkKLSNlbmRpZgotCi0j
aWZuZGVmIE5ld3hjCi0jICBkZWZpbmUgTmV3eGModixuLHQsYykgICAgICAgICAgICAgICAgIE5l
d2MoMCx2LG4sdCxjKQotI2VuZGlmCi0KLSNpZm5kZWYgTmV3eHoKLSMgIGRlZmluZSBOZXd4eih2
LG4sdCkgICAgICAgICAgICAgICAgICAgTmV3eigwLHYsbix0KQotI2VuZGlmCi0KLSNpZm5kZWYg
UEVSTF9VTlVTRURfREVDTAotIyAgaWZkZWYgSEFTQVRUUklCVVRFCi0jICAgIGlmIChkZWZpbmVk
KF9fR05VQ19fKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKSkgfHwgZGVmaW5lZChfX0lOVEVMX0NP
TVBJTEVSKQotIyAgICAgIGRlZmluZSBQRVJMX1VOVVNFRF9ERUNMCi0jICAgIGVsc2UKLSMgICAg
ICBkZWZpbmUgUEVSTF9VTlVTRURfREVDTCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQotIyAgICBl
bmRpZgotIyAgZWxzZQotIyAgICBkZWZpbmUgUEVSTF9VTlVTRURfREVDTAotIyAgZW5kaWYKLSNl
bmRpZgotCi0jaWZuZGVmIFBFUkxfVU5VU0VEX0FSRwotIyAgaWYgZGVmaW5lZChsaW50KSAmJiBk
ZWZpbmVkKFNfU1BMSU5UX1MpIC8qIHd3dy5zcGxpbnQub3JnICovCi0jICAgIGluY2x1ZGUgPG5v
dGUuaD4KLSMgICAgZGVmaW5lIFBFUkxfVU5VU0VEX0FSRyh4KSBOT1RFKEFSR1VOVVNFRCh4KSkK
LSMgIGVsc2UKLSMgICAgZGVmaW5lIFBFUkxfVU5VU0VEX0FSRyh4KSAoKHZvaWQpeCkKLSMgIGVu
ZGlmCi0jZW5kaWYKLQotI2lmbmRlZiBQRVJMX1VOVVNFRF9WQVIKLSMgIGRlZmluZSBQRVJMX1VO
VVNFRF9WQVIoeCkgKCh2b2lkKXgpCi0jZW5kaWYKLQotI2lmbmRlZiBQRVJMX1VOVVNFRF9DT05U
RVhUCi0jICBpZmRlZiBVU0VfSVRIUkVBRFMKLSMgICAgZGVmaW5lIFBFUkxfVU5VU0VEX0NPTlRF
WFQgUEVSTF9VTlVTRURfQVJHKG15X3BlcmwpCi0jICBlbHNlCi0jICAgIGRlZmluZSBQRVJMX1VO
VVNFRF9DT05URVhUCi0jICBlbmRpZgotI2VuZGlmCi0jaWZuZGVmIE5PT1AKLSMgIGRlZmluZSBO
T09QICAgICAgICAgICAgICAgICAgICAgICAgICAgLypFTVBUWSovKHZvaWQpMAotI2VuZGlmCi0K
LSNpZm5kZWYgZE5PT1AKLSMgIGRlZmluZSBkTk9PUCAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXh0ZXJuIGludCAvKkB1bnVzZWRAKi8gUGVybF9fX25vdHVzZWQgUEVSTF9VTlVTRURfREVDTAot
I2VuZGlmCi0KLSNpZm5kZWYgTlZUWVBFCi0jICBpZiBkZWZpbmVkKFVTRV9MT05HX0RPVUJMRSkg
JiYgZGVmaW5lZChIQVNfTE9OR19ET1VCTEUpCi0jICAgIGRlZmluZSBOVlRZUEUgbG9uZyBkb3Vi
bGUKLSMgIGVsc2UKLSMgICAgZGVmaW5lIE5WVFlQRSBkb3VibGUKLSMgIGVuZGlmCi10eXBlZGVm
IE5WVFlQRSBOVjsKLSNlbmRpZgotCi0jaWZuZGVmIElOVDJQVFIKLQotIyAgaWYgKElWU0laRSA9
PSBQVFJTSVpFKSAmJiAoVVZTSVpFID09IFBUUlNJWkUpCi0jICAgIGRlZmluZSBQVFJWICAgICAg
ICAgICAgICAgICAgVVYKLSMgICAgZGVmaW5lIElOVDJQVFIoYW55LGQpICAgICAgICAoYW55KShk
KQotIyAgZWxzZQotIyAgICBpZiBQVFJTSVpFID09IExPTkdTSVpFCi0jICAgICAgZGVmaW5lIFBU
UlYgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZwotIyAgICBlbHNlCi0jICAgICAgZGVmaW5l
IFBUUlYgICAgICAgICAgICAgICAgdW5zaWduZWQKLSMgICAgZW5kaWYKLSMgICAgZGVmaW5lIElO
VDJQVFIoYW55LGQpICAgICAgICAoYW55KShQVFJWKShkKQotIyAgZW5kaWYKLQotIyAgZGVmaW5l
IE5VTTJQVFIoYW55LGQpICAoYW55KShQVFJWKShkKQotIyAgZGVmaW5lIFBUUjJJVihwKSAgICAg
ICBJTlQyUFRSKElWLHApCi0jICBkZWZpbmUgUFRSMlVWKHApICAgICAgIElOVDJQVFIoVVYscCkK
LSMgIGRlZmluZSBQVFIyTlYocCkgICAgICAgTlVNMlBUUihOVixwKQotCi0jICBpZiBQVFJTSVpF
ID09IExPTkdTSVpFCi0jICAgIGRlZmluZSBQVFIydWwocCkgICAgICh1bnNpZ25lZCBsb25nKShw
KQotIyAgZWxzZQotIyAgICBkZWZpbmUgUFRSMnVsKHApICAgICBJTlQyUFRSKHVuc2lnbmVkIGxv
bmcscCkKLSMgIGVuZGlmCi0KLSNlbmRpZiAvKiAhSU5UMlBUUiAqLwotCi0jdW5kZWYgU1RBUlRf
RVhURVJOX0MKLSN1bmRlZiBFTkRfRVhURVJOX0MKLSN1bmRlZiBFWFRFUk5fQwotI2lmZGVmIF9f
Y3BsdXNwbHVzCi0jICBkZWZpbmUgU1RBUlRfRVhURVJOX0MgZXh0ZXJuICJDIiB7Ci0jICBkZWZp
bmUgRU5EX0VYVEVSTl9DIH0KLSMgIGRlZmluZSBFWFRFUk5fQyBleHRlcm4gIkMiCi0jZWxzZQot
IyAgZGVmaW5lIFNUQVJUX0VYVEVSTl9DCi0jICBkZWZpbmUgRU5EX0VYVEVSTl9DCi0jICBkZWZp
bmUgRVhURVJOX0MgZXh0ZXJuCi0jZW5kaWYKLQotI2lmIGRlZmluZWQoUEVSTF9HQ0NfUEVEQU5U
SUMpCi0jICBpZm5kZWYgUEVSTF9HQ0NfQlJBQ0VfR1JPVVBTX0ZPUkJJRERFTgotIyAgICBkZWZp
bmUgUEVSTF9HQ0NfQlJBQ0VfR1JPVVBTX0ZPUkJJRERFTgotIyAgZW5kaWYKLSNlbmRpZgotCi0j
aWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoUEVSTF9HQ0NfQlJBQ0VfR1JPVVBTX0ZP
UkJJRERFTikgJiYgIWRlZmluZWQoX19jcGx1c3BsdXMpCi0jICBpZm5kZWYgUEVSTF9VU0VfR0ND
X0JSQUNFX0dST1VQUwotIyAgICBkZWZpbmUgUEVSTF9VU0VfR0NDX0JSQUNFX0dST1VQUwotIyAg
ZW5kaWYKLSNlbmRpZgotCi0jdW5kZWYgU1RNVF9TVEFSVAotI3VuZGVmIFNUTVRfRU5ECi0jaWZk
ZWYgUEVSTF9VU0VfR0NDX0JSQUNFX0dST1VQUwotIyAgZGVmaW5lIFNUTVRfU1RBUlQgICAgKHZv
aWQpKCAgICAvKiBnY2Mgc3VwcG9ydHMgYGAoeyBTVEFURU1FTlRTOyB9KScnICovCi0jICBkZWZp
bmUgU1RNVF9FTkQgICAgKQotI2Vsc2UKLSMgIGlmIGRlZmluZWQoVk9JREZMQUdTKSAmJiAoVk9J
REZMQUdTKSAmJiAoZGVmaW5lZChzdW4pIHx8IGRlZmluZWQoX19zdW5fXykpICYmICFkZWZpbmVk
KF9fR05VQ19fKQotIyAgICBkZWZpbmUgU1RNVF9TVEFSVCAgICBpZiAoMSkKLSMgICAgZGVmaW5l
IFNUTVRfRU5EICAgIGVsc2UgKHZvaWQpMAotIyAgZWxzZQotIyAgICBkZWZpbmUgU1RNVF9TVEFS
VCAgICBkbwotIyAgICBkZWZpbmUgU1RNVF9FTkQgICAgd2hpbGUgKDApCi0jICBlbmRpZgotI2Vu
ZGlmCi0jaWZuZGVmIGJvb2xTVgotIyAgZGVmaW5lIGJvb2xTVihiKSAgICAgICAgICAgICAgICAg
ICAgICAoKGIpID8gJlBMX3N2X3llcyA6ICZQTF9zdl9ubykKLSNlbmRpZgotCi0vKiBERUZTViBh
cHBlYXJzIGZpcnN0IGluIDUuMDA0XzU2ICovCi0jaWZuZGVmIERFRlNWCi0jICBkZWZpbmUgREVG
U1YgICAgICAgICAgICAgICAgICAgICAgICAgIEd2U1YoUExfZGVmZ3YpCi0jZW5kaWYKLQotI2lm
bmRlZiBTQVZFX0RFRlNWCi0jICBkZWZpbmUgU0FWRV9ERUZTViAgICAgICAgICAgICAgICAgICAg
IFNBVkVTUFRSKEd2U1YoUExfZGVmZ3YpKQotI2VuZGlmCi0KLS8qIE9sZGVyIHBlcmxzICg8PTUu
MDAzKSBsYWNrIEF2RklMTHAgKi8KLSNpZm5kZWYgQXZGSUxMcAotIyAgZGVmaW5lIEF2RklMTHAg
ICAgICAgICAgICAgICAgICAgICAgICBBdkZJTEwKLSNlbmRpZgotI2lmbmRlZiBFUlJTVgotIyAg
ZGVmaW5lIEVSUlNWICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfc3YoIkAiLEZBTFNFKQot
I2VuZGlmCi0jaWZuZGVmIG5ld1NWcHZuCi0jICBkZWZpbmUgbmV3U1Zwdm4oZGF0YSxsZW4pICAg
ICAgICAgICAgICgoZGF0YSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoKGxlbikgPyBu
ZXdTVnB2KChkYXRhKSwgKGxlbikpIDogbmV3U1ZwdigiIiwgMCkpIFwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDogbmV3U1YoMCkpCi0jZW5kaWYKLQotLyogSGludDogZ3Zf
c3Rhc2hwdm4KLSAqIFRoaXMgZnVuY3Rpb24ncyBiYWNrcG9ydCBkb2Vzbid0IHN1cHBvcnQgdGhl
IGxlbmd0aCBwYXJhbWV0ZXIsIGJ1dAotICogcmF0aGVyIGlnbm9yZXMgaXQuIFBvcnRhYmlsaXR5
IGNhbiBvbmx5IGJlIGVuc3VyZWQgaWYgdGhlIGxlbmd0aAotICogcGFyYW1ldGVyIGlzIHVzZWQg
Zm9yIHNwZWVkIHJlYXNvbnMsIGJ1dCB0aGUgbGVuZ3RoIGNhbiBhbHdheXMgYmUKLSAqIGNvcnJl
Y3RseSBjb21wdXRlZCBmcm9tIHRoZSBzdHJpbmcgYXJndW1lbnQuCi0gKi8KLSNpZm5kZWYgZ3Zf
c3Rhc2hwdm4KLSMgIGRlZmluZSBndl9zdGFzaHB2bihzdHIsbGVuLGNyZWF0ZSkgICAgZ3Zfc3Rh
c2hwdihzdHIsY3JlYXRlKQotI2VuZGlmCi0KLS8qIFJlcGxhY2U6IDEgKi8KLSNpZm5kZWYgZ2V0
X2N2Ci0jICBkZWZpbmUgZ2V0X2N2ICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmxfZ2V0X2N2
Ci0jZW5kaWYKLQotI2lmbmRlZiBnZXRfc3YKLSMgIGRlZmluZSBnZXRfc3YgICAgICAgICAgICAg
ICAgICAgICAgICAgcGVybF9nZXRfc3YKLSNlbmRpZgotCi0jaWZuZGVmIGdldF9hdgotIyAgZGVm
aW5lIGdldF9hdiAgICAgICAgICAgICAgICAgICAgICAgICBwZXJsX2dldF9hdgotI2VuZGlmCi0K
LSNpZm5kZWYgZ2V0X2h2Ci0jICBkZWZpbmUgZ2V0X2h2ICAgICAgICAgICAgICAgICAgICAgICAg
IHBlcmxfZ2V0X2h2Ci0jZW5kaWYKLQotLyogUmVwbGFjZTogMCAqLwotI2lmbmRlZiBkVU5ERVJC
QVIKLSMgIGRlZmluZSBkVU5ERVJCQVIgICAgICAgICAgICAgICAgICAgICAgZE5PT1AKLSNlbmRp
ZgotCi0jaWZuZGVmIFVOREVSQkFSCi0jICBkZWZpbmUgVU5ERVJCQVIgICAgICAgICAgICAgICAg
ICAgICAgIERFRlNWCi0jZW5kaWYKLSNpZm5kZWYgZEFYCi0jICBkZWZpbmUgZEFYICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEkzMiBheCA9IE1BUksgLSBQTF9zdGFja19iYXNlICsgMQotI2Vu
ZGlmCi0KLSNpZm5kZWYgZElURU1TCi0jICBkZWZpbmUgZElURU1TICAgICAgICAgICAgICAgICAg
ICAgICAgIEkzMiBpdGVtcyA9IFNQIC0gTUFSSwotI2VuZGlmCi0jaWZuZGVmIGRYU1RBUkcKLSMg
IGRlZmluZSBkWFNUQVJHICAgICAgICAgICAgICAgICAgICAgICAgU1YgKiB0YXJnID0gc3ZfbmV3
bW9ydGFsKCkKLSNlbmRpZgotI2lmbmRlZiBkQVhNQVJLCi0jICBkZWZpbmUgZEFYTUFSSyAgICAg
ICAgICAgICAgICAgICAgICAgIEkzMiBheCA9IFBPUE1BUks7IFwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWdpc3RlciBTViAqKiBjb25zdCBtYXJrID0gUExfc3RhY2tfYmFzZSAr
IGF4KysKLSNlbmRpZgotI2lmbmRlZiBYU3ByZVBVU0gKLSMgIGRlZmluZSBYU3ByZVBVU0ggICAg
ICAgICAgICAgICAgICAgICAgKHNwID0gUExfc3RhY2tfYmFzZSArIGF4IC0gMSkKLSNlbmRpZgot
Ci0jaWYgKFBFUkxfQkNEVkVSU0lPTiA8IDB4NTAwNTAwMCkKLSMgIHVuZGVmIFhTUkVUVVJOCi0j
ICBkZWZpbmUgWFNSRVRVUk4ob2ZmKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAotICAgICAgU1RNVF9TVEFSVCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgICAgICBQTF9zdGFja19zcCA9IFBMX3N0YWNrX2Jhc2UgKyBheCArICgob2Zm
KSAtIDEpOyBcCi0gICAgICAgICAgcmV0dXJuOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgICAgfSBTVE1UX0VORAotI2VuZGlmCi0jaWZuZGVmIFBFUkxfQUJT
Ci0jICBkZWZpbmUgUEVSTF9BQlMoeCkgICAgICAgICAgICAgICAgICAgICgoeCkgPCAwID8gLSh4
KSA6ICh4KSkKLSNlbmRpZgotI2lmbmRlZiBkVkFSCi0jICBkZWZpbmUgZFZBUiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGROT09QCi0jZW5kaWYKLSNpZm5kZWYgU1ZmCi0jICBkZWZpbmUgU1Zm
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfIgotI2VuZGlmCi0jaWZuZGVmIFVURjhfTUFY
QllURVMKLSMgIGRlZmluZSBVVEY4X01BWEJZVEVTICAgICAgICAgICAgICAgICAgVVRGOF9NQVhM
RU4KLSNlbmRpZgotI2lmbmRlZiBQRVJMX0hBU0gKLSMgIGRlZmluZSBQRVJMX0hBU0goaGFzaCxz
dHIsbGVuKSAgICAgICAgXAotICAgICBTVE1UX1NUQVJUICAgIHsgXAotICAgIGNvbnN0IGNoYXIg
KnNfUGVSbEhhU2ggPSBzdHI7IFwKLSAgICBJMzIgaV9QZVJsSGFTaCA9IGxlbjsgXAotICAgIFUz
MiBoYXNoX1BlUmxIYVNoID0gMDsgXAotICAgIHdoaWxlIChpX1BlUmxIYVNoLS0pIFwKLSAgICAg
ICAgaGFzaF9QZVJsSGFTaCA9IGhhc2hfUGVSbEhhU2ggKiAzMyArICpzX1BlUmxIYVNoKys7IFwK
LSAgICAoaGFzaCkgPSBoYXNoX1BlUmxIYVNoOyBcCi0gICAgfSBTVE1UX0VORAotI2VuZGlmCi0K
LSNpZm5kZWYgUEVSTF9TSUdOQUxTX1VOU0FGRV9GTEFHCi0KLSNkZWZpbmUgUEVSTF9TSUdOQUxT
X1VOU0FGRV9GTEFHIDB4MDAwMQotCi0jaWYgKFBFUkxfQkNEVkVSU0lPTiA8IDB4NTAwODAwMCkK
LSMgIGRlZmluZSBEX1BQUF9QRVJMX1NJR05BTFNfSU5JVCAgIFBFUkxfU0lHTkFMU19VTlNBRkVf
RkxBRwotI2Vsc2UKLSMgIGRlZmluZSBEX1BQUF9QRVJMX1NJR05BTFNfSU5JVCAgIDAKLSNlbmRp
ZgotCi0jaWYgZGVmaW5lZChORUVEX1BMX3NpZ25hbHMpCi1zdGF0aWMgVTMyIERQUFBfKG15X1BM
X3NpZ25hbHMpID0gRF9QUFBfUEVSTF9TSUdOQUxTX0lOSVQ7Ci0jZWxpZiBkZWZpbmVkKE5FRURf
UExfc2lnbmFsc19HTE9CQUwpCi1VMzIgRFBQUF8obXlfUExfc2lnbmFscykgPSBEX1BQUF9QRVJM
X1NJR05BTFNfSU5JVDsKLSNlbHNlCi1leHRlcm4gVTMyIERQUFBfKG15X1BMX3NpZ25hbHMpOwot
I2VuZGlmCi0jZGVmaW5lIFBMX3NpZ25hbHMgRFBQUF8obXlfUExfc2lnbmFscykKLQotI2VuZGlm
Ci0KLS8qIEhpbnQ6IFBMX3BwYWRkcgotICogQ2FsbGluZyBhbiBvcCB2aWEgUExfcHBhZGRyIHJl
cXVpcmVzIHBhc3NpbmcgYSBjb250ZXh0IGFyZ3VtZW50Ci0gKiBmb3IgdGhyZWFkZWQgYnVpbGRz
LiBTaW5jZSB0aGUgY29udGV4dCBhcmd1bWVudCBpcyBkaWZmZXJlbnQgZm9yCi0gKiA1LjAwNSBw
ZXJscywgeW91IGNhbiB1c2UgYVRIWFIgKHN1cHBsaWVkIGJ5IHBwcG9ydC5oKSwgd2hpY2ggd2ls
bAotICogYXV0b21hdGljYWxseSBiZSBkZWZpbmVkIGFzIHRoZSBjb3JyZWN0IGFyZ3VtZW50Lgot
ICovCi0KLSNpZiAoUEVSTF9CQ0RWRVJTSU9OIDw9IDB4NTAwNTAwNSkKLS8qIFJlcGxhY2U6IDEg
Ki8KLSMgIGRlZmluZSBQTF9wcGFkZHIgICAgICAgICAgICAgICAgIHBwYWRkcgotIyAgZGVmaW5l
IFBMX25vX21vZGlmeSAgICAgICAgICAgICAgbm9fbW9kaWZ5Ci0vKiBSZXBsYWNlOiAwICovCi0j
ZW5kaWYKLQotI2lmIChQRVJMX0JDRFZFUlNJT04gPD0gMHg1MDA0MDA1KQotLyogUmVwbGFjZTog
MSAqLwotIyAgZGVmaW5lIFBMX0RCc2lnbmFsICAgICAgICAgICAgICAgREJzaWduYWwKLSMgIGRl
ZmluZSBQTF9EQnNpbmdsZSAgICAgICAgICAgICAgIERCc2luZ2xlCi0jICBkZWZpbmUgUExfREJz
dWIgICAgICAgICAgICAgICAgICBEQnN1YgotIyAgZGVmaW5lIFBMX0RCdHJhY2UgICAgICAgICAg
ICAgICAgREJ0cmFjZQotIyAgZGVmaW5lIFBMX1N2ICAgICAgICAgICAgICAgICAgICAgU3YKLSMg
IGRlZmluZSBQTF9jb21waWxpbmcgICAgICAgICAgICAgIGNvbXBpbGluZwotIyAgZGVmaW5lIFBM
X2NvcGxpbmUgICAgICAgICAgICAgICAgY29wbGluZQotIyAgZGVmaW5lIFBMX2N1cmNvcCAgICAg
ICAgICAgICAgICAgY3VyY29wCi0jICBkZWZpbmUgUExfY3Vyc3Rhc2ggICAgICAgICAgICAgICBj
dXJzdGFzaAotIyAgZGVmaW5lIFBMX2RlYnN0YXNoICAgICAgICAgICAgICAgZGVic3Rhc2gKLSMg
IGRlZmluZSBQTF9kZWZndiAgICAgICAgICAgICAgICAgIGRlZmd2Ci0jICBkZWZpbmUgUExfZGll
aG9vayAgICAgICAgICAgICAgICBkaWVob29rCi0jICBkZWZpbmUgUExfZGlydHkgICAgICAgICAg
ICAgICAgICBkaXJ0eQotIyAgZGVmaW5lIFBMX2Rvd2FybiAgICAgICAgICAgICAgICAgZG93YXJu
Ci0jICBkZWZpbmUgUExfZXJyZ3YgICAgICAgICAgICAgICAgICBlcnJndgotIyAgZGVmaW5lIFBM
X2V4cGVjdCAgICAgICAgICAgICAgICAgZXhwZWN0Ci0jICBkZWZpbmUgUExfaGV4ZGlnaXQgICAg
ICAgICAgICAgICBoZXhkaWdpdAotIyAgZGVmaW5lIFBMX2hpbnRzICAgICAgICAgICAgICAgICAg
aGludHMKLSMgIGRlZmluZSBQTF9sYXN0c3RhdHZhbCAgICAgICAgICAgIGxhc3RzdGF0dmFsCi0j
ICBkZWZpbmUgUExfbmEgICAgICAgICAgICAgICAgICAgICBuYQotIyAgZGVmaW5lIFBMX3Blcmxf
ZGVzdHJ1Y3RfbGV2ZWwgICAgcGVybF9kZXN0cnVjdF9sZXZlbAotIyAgZGVmaW5lIFBMX3Blcmxk
YiAgICAgICAgICAgICAgICAgcGVybGRiCi0jICBkZWZpbmUgUExfcnNmcF9maWx0ZXJzICAgICAg
ICAgICByc2ZwX2ZpbHRlcnMKLSMgIGRlZmluZSBQTF9yc2ZwICAgICAgICAgICAgICAgICAgIHJz
ZnAKLSMgIGRlZmluZSBQTF9zdGFja19iYXNlICAgICAgICAgICAgIHN0YWNrX2Jhc2UKLSMgIGRl
ZmluZSBQTF9zdGFja19zcCAgICAgICAgICAgICAgIHN0YWNrX3NwCi0jICBkZWZpbmUgUExfc3Rh
dGNhY2hlICAgICAgICAgICAgICBzdGF0Y2FjaGUKLSMgIGRlZmluZSBQTF9zdGRpbmd2ICAgICAg
ICAgICAgICAgIHN0ZGluZ3YKLSMgIGRlZmluZSBQTF9zdl9hcmVuYXJvb3QgICAgICAgICAgIHN2
X2FyZW5hcm9vdAotIyAgZGVmaW5lIFBMX3N2X25vICAgICAgICAgICAgICAgICAgc3Zfbm8KLSMg
IGRlZmluZSBQTF9zdl91bmRlZiAgICAgICAgICAgICAgIHN2X3VuZGVmCi0jICBkZWZpbmUgUExf
c3ZfeWVzICAgICAgICAgICAgICAgICBzdl95ZXMKLSMgIGRlZmluZSBQTF90YWludGVkICAgICAg
ICAgICAgICAgIHRhaW50ZWQKLSMgIGRlZmluZSBQTF90YWludGluZyAgICAgICAgICAgICAgIHRh
aW50aW5nCi0vKiBSZXBsYWNlOiAwICovCi0jZW5kaWYKLQotLyogV2FybmluZzogUExfZXhwZWN0
LCBQTF9jb3BsaW5lLCBQTF9yc2ZwLCBQTF9yc2ZwX2ZpbHRlcnMKLSAqIERvIG5vdCB1c2UgdGhp
cyB2YXJpYWJsZS4gSXQgaXMgaW50ZXJuYWwgdG8gdGhlIHBlcmwgcGFyc2VyCi0gKiBhbmQgbWF5
IGNoYW5nZSBvciBldmVuIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gTm90ZSB0aGF0Ci0gKiBh
cyBvZiBwZXJsIDUuOS41IHlvdSBjYW5ub3QgYXNzaWduIHRvIHRoaXMgdmFyaWFibGUgYW55bW9y
ZS4KLSAqLwotCi0vKiBUT0RPOiBjYW5ub3QgYXNzaWduIHRvIHRoZXNlIHZhcnM7IGlzIGl0IHdv
cnRoIGZpeGluZz8gKi8KLSNpZiAoUEVSTF9CQ0RWRVJTSU9OID49IDB4NTAwOTAwNSkKLSMgIGRl
ZmluZSBQTF9leHBlY3QgICAgICAgICAoUExfcGFyc2VyID8gUExfcGFyc2VyLT5leHBlY3QgOiAw
KQotIyAgZGVmaW5lIFBMX2NvcGxpbmUgICAgICAgIChQTF9wYXJzZXIgPyBQTF9wYXJzZXItPmNv
cGxpbmUgOiAwKQotIyAgZGVmaW5lIFBMX3JzZnAgICAgICAgICAgIChQTF9wYXJzZXIgPyBQTF9w
YXJzZXItPnJzZnAgOiAoUGVybElPICopIDApCi0jICBkZWZpbmUgUExfcnNmcF9maWx0ZXJzICAg
KFBMX3BhcnNlciA/IFBMX3BhcnNlci0+cnNmcF9maWx0ZXJzIDogKEFWICopIDApCi0jZW5kaWYK
LSNpZm5kZWYgZFRIUgotIyAgZGVmaW5lIGRUSFIgICAgICAgICAgICAgICAgICAgICAgICAgICBk
Tk9PUAotI2VuZGlmCi0jaWZuZGVmIGRUSFgKLSMgIGRlZmluZSBkVEhYICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZE5PT1AKLSNlbmRpZgotCi0jaWZuZGVmIGRUSFhhCi0jICBkZWZpbmUgZFRI
WGEoeCkgICAgICAgICAgICAgICAgICAgICAgIGROT09QCi0jZW5kaWYKLSNpZm5kZWYgcFRIWAot
IyAgZGVmaW5lIHBUSFggICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkCi0jZW5kaWYKLQot
I2lmbmRlZiBwVEhYXwotIyAgZGVmaW5lIHBUSFhfCi0jZW5kaWYKLQotI2lmbmRlZiBhVEhYCi0j
ICBkZWZpbmUgYVRIWAotI2VuZGlmCi0KLSNpZm5kZWYgYVRIWF8KLSMgIGRlZmluZSBhVEhYXwot
I2VuZGlmCi0KLSNpZiAoUEVSTF9CQ0RWRVJTSU9OIDwgMHg1MDA2MDAwKQotIyAgaWZkZWYgVVNF
X1RIUkVBRFMKLSMgICAgZGVmaW5lIGFUSFhSICB0aHIKLSMgICAgZGVmaW5lIGFUSFhSXyB0aHIs
Ci0jICBlbHNlCi0jICAgIGRlZmluZSBhVEhYUgotIyAgICBkZWZpbmUgYVRIWFJfCi0jICBlbmRp
ZgotIyAgZGVmaW5lIGRUSFhSICBkVEhSCi0jZWxzZQotIyAgZGVmaW5lIGFUSFhSICBhVEhYCi0j
ICBkZWZpbmUgYVRIWFJfIGFUSFhfCi0jICBkZWZpbmUgZFRIWFIgIGRUSFgKLSNlbmRpZgotI2lm
bmRlZiBkVEhYb2EKLSMgIGRlZmluZSBkVEhYb2EoeCkgICAgICAgICAgICAgICAgICAgICAgZFRI
WGEoeCkKLSNlbmRpZgotI2lmbmRlZiBQVVNIbW9ydGFsCi0jICBkZWZpbmUgUFVTSG1vcnRhbCAg
ICAgICAgICAgICAgICAgICAgIFBVU0hzKHN2X25ld21vcnRhbCgpKQotI2VuZGlmCi0KLSNpZm5k
ZWYgbVBVU0hwCi0jICBkZWZpbmUgbVBVU0hwKHAsbCkgICAgICAgICAgICAgICAgICAgIHN2X3Nl
dHB2bl9tZyhQVVNIbW9ydGFsLCAocCksIChsKSkKLSNlbmRpZgotCi0jaWZuZGVmIG1QVVNIbgot
IyAgZGVmaW5lIG1QVVNIbihuKSAgICAgICAgICAgICAgICAgICAgICBzdl9zZXRudl9tZyhQVVNI
bW9ydGFsLCAoTlYpKG4pKQotI2VuZGlmCi0KLSNpZm5kZWYgbVBVU0hpCi0jICBkZWZpbmUgbVBV
U0hpKGkpICAgICAgICAgICAgICAgICAgICAgIHN2X3NldGl2X21nKFBVU0htb3J0YWwsIChJViko
aSkpCi0jZW5kaWYKLQotI2lmbmRlZiBtUFVTSHUKLSMgIGRlZmluZSBtUFVTSHUodSkgICAgICAg
ICAgICAgICAgICAgICAgc3Zfc2V0dXZfbWcoUFVTSG1vcnRhbCwgKFVWKSh1KSkKLSNlbmRpZgot
I2lmbmRlZiBYUFVTSG1vcnRhbAotIyAgZGVmaW5lIFhQVVNIbW9ydGFsICAgICAgICAgICAgICAg
ICAgICBYUFVTSHMoc3ZfbmV3bW9ydGFsKCkpCi0jZW5kaWYKLQotI2lmbmRlZiBtWFBVU0hwCi0j
ICBkZWZpbmUgbVhQVVNIcChwLGwpICAgICAgICAgICAgICAgICAgIFNUTVRfU1RBUlQgeyBFWFRF
TkQoc3AsMSk7IHN2X3NldHB2bl9tZyhQVVNIbW9ydGFsLCAocCksIChsKSk7IH0gU1RNVF9FTkQK
LSNlbmRpZgotCi0jaWZuZGVmIG1YUFVTSG4KLSMgIGRlZmluZSBtWFBVU0huKG4pICAgICAgICAg
ICAgICAgICAgICAgU1RNVF9TVEFSVCB7IEVYVEVORChzcCwxKTsgc3Zfc2V0bnZfbWcoUFVTSG1v
cnRhbCwgKE5WKShuKSk7IH0gU1RNVF9FTkQKLSNlbmRpZgotCi0jaWZuZGVmIG1YUFVTSGkKLSMg
IGRlZmluZSBtWFBVU0hpKGkpICAgICAgICAgICAgICAgICAgICAgU1RNVF9TVEFSVCB7IEVYVEVO
RChzcCwxKTsgc3Zfc2V0aXZfbWcoUFVTSG1vcnRhbCwgKElWKShpKSk7IH0gU1RNVF9FTkQKLSNl
bmRpZgotCi0jaWZuZGVmIG1YUFVTSHUKLSMgIGRlZmluZSBtWFBVU0h1KHUpICAgICAgICAgICAg
ICAgICAgICAgU1RNVF9TVEFSVCB7IEVYVEVORChzcCwxKTsgc3Zfc2V0dXZfbWcoUFVTSG1vcnRh
bCwgKFVWKSh1KSk7IH0gU1RNVF9FTkQKLSNlbmRpZgotCi0vKiBSZXBsYWNlOiAxICovCi0jaWZu
ZGVmIGNhbGxfc3YKLSMgIGRlZmluZSBjYWxsX3N2ICAgICAgICAgICAgICAgICAgICAgICAgcGVy
bF9jYWxsX3N2Ci0jZW5kaWYKLQotI2lmbmRlZiBjYWxsX3B2Ci0jICBkZWZpbmUgY2FsbF9wdiAg
ICAgICAgICAgICAgICAgICAgICAgIHBlcmxfY2FsbF9wdgotI2VuZGlmCi0KLSNpZm5kZWYgY2Fs
bF9hcmd2Ci0jICBkZWZpbmUgY2FsbF9hcmd2ICAgICAgICAgICAgICAgICAgICAgIHBlcmxfY2Fs
bF9hcmd2Ci0jZW5kaWYKLQotI2lmbmRlZiBjYWxsX21ldGhvZAotIyAgZGVmaW5lIGNhbGxfbWV0
aG9kICAgICAgICAgICAgICAgICAgICBwZXJsX2NhbGxfbWV0aG9kCi0jZW5kaWYKLSNpZm5kZWYg
ZXZhbF9zdgotIyAgZGVmaW5lIGV2YWxfc3YgICAgICAgICAgICAgICAgICAgICAgICBwZXJsX2V2
YWxfc3YKLSNlbmRpZgotI2lmbmRlZiBQRVJMX0xPQURNT0RfREVOWQotIyAgZGVmaW5lIFBFUkxf
TE9BRE1PRF9ERU5ZICAgICAgICAgICAgICAweDEKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfTE9B
RE1PRF9OT0lNUE9SVAotIyAgZGVmaW5lIFBFUkxfTE9BRE1PRF9OT0lNUE9SVCAgICAgICAgICAw
eDIKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfTE9BRE1PRF9JTVBPUlRfT1BTCi0jICBkZWZpbmUg
UEVSTF9MT0FETU9EX0lNUE9SVF9PUFMgICAgICAgIDB4NAotI2VuZGlmCi0KLS8qIFJlcGxhY2U6
IDAgKi8KLQotLyogUmVwbGFjZSBwZXJsX2V2YWxfcHYgd2l0aCBldmFsX3B2ICovCi0KLSNpZm5k
ZWYgZXZhbF9wdgotI2lmIGRlZmluZWQoTkVFRF9ldmFsX3B2KQotc3RhdGljIFNWKiBEUFBQXyht
eV9ldmFsX3B2KShjaGFyICpwLCBJMzIgY3JvYWtfb25fZXJyb3IpOwotc3RhdGljCi0jZWxzZQot
ZXh0ZXJuIFNWKiBEUFBQXyhteV9ldmFsX3B2KShjaGFyICpwLCBJMzIgY3JvYWtfb25fZXJyb3Ip
OwotI2VuZGlmCi0KLSNpZmRlZiBldmFsX3B2Ci0jICB1bmRlZiBldmFsX3B2Ci0jZW5kaWYKLSNk
ZWZpbmUgZXZhbF9wdihhLGIpIERQUFBfKG15X2V2YWxfcHYpKGFUSFhfIGEsYikKLSNkZWZpbmUg
UGVybF9ldmFsX3B2IERQUFBfKG15X2V2YWxfcHYpCi0KLSNpZiBkZWZpbmVkKE5FRURfZXZhbF9w
dikgfHwgZGVmaW5lZChORUVEX2V2YWxfcHZfR0xPQkFMKQotCi1TVioKLURQUFBfKG15X2V2YWxf
cHYpKGNoYXIgKnAsIEkzMiBjcm9ha19vbl9lcnJvcikKLXsKLSAgICBkU1A7Ci0gICAgU1YqIHN2
ID0gbmV3U1ZwdihwLCAwKTsKLQotICAgIFBVU0hNQVJLKHNwKTsKLSAgICBldmFsX3N2KHN2LCBH
X1NDQUxBUik7Ci0gICAgU3ZSRUZDTlRfZGVjKHN2KTsKLQotICAgIFNQQUdBSU47Ci0gICAgc3Yg
PSBQT1BzOwotICAgIFBVVEJBQ0s7Ci0KLSAgICBpZiAoY3JvYWtfb25fZXJyb3IgJiYgU3ZUUlVF
KEd2U1YoZXJyZ3YpKSkKLSAgICBjcm9hayhTdlBWeChHdlNWKGVycmd2KSwgbmEpKTsKLQotICAg
IHJldHVybiBzdjsKLX0KLQotI2VuZGlmCi0jZW5kaWYKLQotI2lmbmRlZiB2bG9hZF9tb2R1bGUK
LSNpZiBkZWZpbmVkKE5FRURfdmxvYWRfbW9kdWxlKQotc3RhdGljIHZvaWQgRFBQUF8obXlfdmxv
YWRfbW9kdWxlKShVMzIgZmxhZ3MsIFNWICpuYW1lLCBTViAqdmVyLCB2YV9saXN0ICphcmdzKTsK
LXN0YXRpYwotI2Vsc2UKLWV4dGVybiB2b2lkIERQUFBfKG15X3Zsb2FkX21vZHVsZSkoVTMyIGZs
YWdzLCBTViAqbmFtZSwgU1YgKnZlciwgdmFfbGlzdCAqYXJncyk7Ci0jZW5kaWYKLQotI2lmZGVm
IHZsb2FkX21vZHVsZQotIyAgdW5kZWYgdmxvYWRfbW9kdWxlCi0jZW5kaWYKLSNkZWZpbmUgdmxv
YWRfbW9kdWxlKGEsYixjLGQpIERQUFBfKG15X3Zsb2FkX21vZHVsZSkoYVRIWF8gYSxiLGMsZCkK
LSNkZWZpbmUgUGVybF92bG9hZF9tb2R1bGUgRFBQUF8obXlfdmxvYWRfbW9kdWxlKQotCi0jaWYg
ZGVmaW5lZChORUVEX3Zsb2FkX21vZHVsZSkgfHwgZGVmaW5lZChORUVEX3Zsb2FkX21vZHVsZV9H
TE9CQUwpCi0KLXZvaWQKLURQUFBfKG15X3Zsb2FkX21vZHVsZSkoVTMyIGZsYWdzLCBTViAqbmFt
ZSwgU1YgKnZlciwgdmFfbGlzdCAqYXJncykKLXsKLSAgICBkVEhSOwotICAgIGRWQVI7Ci0gICAg
T1AgKnZlb3AsICppbW9wOwotCi0gICAgT1AgKiBjb25zdCBtb2RuYW1lID0gbmV3U1ZPUChPUF9D
T05TVCwgMCwgbmFtZSk7Ci0gICAgLyogNS4wMDUgaGFzIGEgc29tZXdoYXQgaGFja3kgZm9yY2Vf
bm9ybWFsIHRoYXQgZG9lc24ndCBjcm9hayBvbgotICAgICAgIFN2UkVBRE9OTFkoKSBpZiBQTF9j
b21wbGluZyBpcyB0cnVlLiBDdXJyZW50IHBlcmxzIHRha2UgY2FyZSBpbgotICAgICAgIGNrX3Jl
cXVpcmUoKSB0byBjb3JyZWN0bHkgdHVybiBvZmYgU3ZSRUFET05MWSBiZWZvcmUgY2FsbGluZwot
ICAgICAgIGZvcmNlX25vcm1hbF9mbGFncygpLiBUaGlzIHNlZW1zIGEgYmV0dGVyIGZpeCB0aGFu
IGZ1ZGdpbmcgUExfY29tcGxpbmcKLSAgICAgKi8KLSAgICBTdlJFQURPTkxZX29mZigoKFNWT1Aq
KW1vZG5hbWUpLT5vcF9zdik7Ci0gICAgbW9kbmFtZS0+b3BfcHJpdmF0ZSB8PSBPUHBDT05TVF9C
QVJFOwotICAgIGlmICh2ZXIpIHsKLSAgICB2ZW9wID0gbmV3U1ZPUChPUF9DT05TVCwgMCwgdmVy
KTsKLSAgICB9Ci0gICAgZWxzZQotICAgIHZlb3AgPSBOVUxMOwotICAgIGlmIChmbGFncyAmIFBF
UkxfTE9BRE1PRF9OT0lNUE9SVCkgewotICAgIGltb3AgPSBzYXdwYXJlbnMobmV3TlVMTExJU1Qo
KSk7Ci0gICAgfQotICAgIGVsc2UgaWYgKGZsYWdzICYgUEVSTF9MT0FETU9EX0lNUE9SVF9PUFMp
IHsKLSAgICBpbW9wID0gdmFfYXJnKCphcmdzLCBPUCopOwotICAgIH0KLSAgICBlbHNlIHsKLSAg
ICBTViAqc3Y7Ci0gICAgaW1vcCA9IE5VTEw7Ci0gICAgc3YgPSB2YV9hcmcoKmFyZ3MsIFNWKik7
Ci0gICAgd2hpbGUgKHN2KSB7Ci0gICAgICAgIGltb3AgPSBhcHBlbmRfZWxlbShPUF9MSVNULCBp
bW9wLCBuZXdTVk9QKE9QX0NPTlNULCAwLCBzdikpOwotICAgICAgICBzdiA9IHZhX2FyZygqYXJn
cywgU1YqKTsKLSAgICB9Ci0gICAgfQotICAgIHsKLSAgICBjb25zdCBsaW5lX3Qgb2NvcGxpbmUg
PSBQTF9jb3BsaW5lOwotICAgIENPUCAqIGNvbnN0IG9jdXJjb3AgPSBQTF9jdXJjb3A7Ci0gICAg
Y29uc3QgaW50IG9leHBlY3QgPSBQTF9leHBlY3Q7Ci0KLSNpZiAoUEVSTF9CQ0RWRVJTSU9OID49
IDB4NTAwNDAwMCkKLSAgICB1dGlsaXplKCEoZmxhZ3MgJiBQRVJMX0xPQURNT0RfREVOWSksIHN0
YXJ0X3N1YnBhcnNlKEZBTFNFLCAwKSwKLSAgICAgICAgdmVvcCwgbW9kbmFtZSwgaW1vcCk7Ci0j
ZWxzZQotICAgIHV0aWxpemUoIShmbGFncyAmIFBFUkxfTE9BRE1PRF9ERU5ZKSwgc3RhcnRfc3Vi
cGFyc2UoKSwKLSAgICAgICAgbW9kbmFtZSwgaW1vcCk7Ci0jZW5kaWYKLSAgICBQTF9leHBlY3Qg
PSBvZXhwZWN0OwotICAgIFBMX2NvcGxpbmUgPSBvY29wbGluZTsKLSAgICBQTF9jdXJjb3AgPSBv
Y3VyY29wOwotICAgIH0KLX0KLQotI2VuZGlmCi0jZW5kaWYKLQotI2lmbmRlZiBsb2FkX21vZHVs
ZQotI2lmIGRlZmluZWQoTkVFRF9sb2FkX21vZHVsZSkKLXN0YXRpYyB2b2lkIERQUFBfKG15X2xv
YWRfbW9kdWxlKShVMzIgZmxhZ3MsIFNWICpuYW1lLCBTViAqdmVyLCAuLi4pOwotc3RhdGljCi0j
ZWxzZQotZXh0ZXJuIHZvaWQgRFBQUF8obXlfbG9hZF9tb2R1bGUpKFUzMiBmbGFncywgU1YgKm5h
bWUsIFNWICp2ZXIsIC4uLik7Ci0jZW5kaWYKLQotI2lmZGVmIGxvYWRfbW9kdWxlCi0jICB1bmRl
ZiBsb2FkX21vZHVsZQotI2VuZGlmCi0jZGVmaW5lIGxvYWRfbW9kdWxlIERQUFBfKG15X2xvYWRf
bW9kdWxlKQotI2RlZmluZSBQZXJsX2xvYWRfbW9kdWxlIERQUFBfKG15X2xvYWRfbW9kdWxlKQot
Ci0jaWYgZGVmaW5lZChORUVEX2xvYWRfbW9kdWxlKSB8fCBkZWZpbmVkKE5FRURfbG9hZF9tb2R1
bGVfR0xPQkFMKQotCi12b2lkCi1EUFBQXyhteV9sb2FkX21vZHVsZSkoVTMyIGZsYWdzLCBTViAq
bmFtZSwgU1YgKnZlciwgLi4uKQotewotICAgIHZhX2xpc3QgYXJnczsKLSAgICB2YV9zdGFydChh
cmdzLCB2ZXIpOwotICAgIHZsb2FkX21vZHVsZShmbGFncywgbmFtZSwgdmVyLCAmYXJncyk7Ci0g
ICAgdmFfZW5kKGFyZ3MpOwotfQotCi0jZW5kaWYKLSNlbmRpZgotI2lmbmRlZiBuZXdSVl9pbmMK
LSMgIGRlZmluZSBuZXdSVl9pbmMoc3YpICAgICAgICAgICAgICAgICAgbmV3UlYoc3YpICAgLyog
UmVwbGFjZSAqLwotI2VuZGlmCi0KLSNpZm5kZWYgbmV3UlZfbm9pbmMKLSNpZiBkZWZpbmVkKE5F
RURfbmV3UlZfbm9pbmMpCi1zdGF0aWMgU1YgKiBEUFBQXyhteV9uZXdSVl9ub2luYykoU1YgKnN2
KTsKLXN0YXRpYwotI2Vsc2UKLWV4dGVybiBTViAqIERQUFBfKG15X25ld1JWX25vaW5jKShTViAq
c3YpOwotI2VuZGlmCi0KLSNpZmRlZiBuZXdSVl9ub2luYwotIyAgdW5kZWYgbmV3UlZfbm9pbmMK
LSNlbmRpZgotI2RlZmluZSBuZXdSVl9ub2luYyhhKSBEUFBQXyhteV9uZXdSVl9ub2luYykoYVRI
WF8gYSkKLSNkZWZpbmUgUGVybF9uZXdSVl9ub2luYyBEUFBQXyhteV9uZXdSVl9ub2luYykKLQot
I2lmIGRlZmluZWQoTkVFRF9uZXdSVl9ub2luYykgfHwgZGVmaW5lZChORUVEX25ld1JWX25vaW5j
X0dMT0JBTCkKLVNWICoKLURQUFBfKG15X25ld1JWX25vaW5jKShTViAqc3YpCi17Ci0gIFNWICpy
diA9IChTViAqKW5ld1JWKHN2KTsKLSAgU3ZSRUZDTlRfZGVjKHN2KTsKLSAgcmV0dXJuIHJ2Owot
fQotI2VuZGlmCi0jZW5kaWYKLQotLyogSGludDogbmV3Q09OU1RTVUIKLSAqIFJldHVybnMgYSBD
ViogYXMgb2YgcGVybC01LjcuMS4gVGhpcyByZXR1cm4gdmFsdWUgaXMgbm90IHN1cHBvcnRlZAot
ICogYnkgRGV2ZWw6OlBQUG9ydC4KLSAqLwotCi0vKiBuZXdDT05TVFNVQiBmcm9tIElPLnhzIGlz
IGluIHRoZSBjb3JlIHN0YXJ0aW5nIHdpdGggNS4wMDRfNjMgKi8KLSNpZiAoUEVSTF9CQ0RWRVJT
SU9OIDwgMHg1MDA0MDYzKSAmJiAoUEVSTF9CQ0RWRVJTSU9OICE9IDB4NTAwNDAwNSkKLSNpZiBk
ZWZpbmVkKE5FRURfbmV3Q09OU1RTVUIpCi1zdGF0aWMgdm9pZCBEUFBQXyhteV9uZXdDT05TVFNV
QikoSFYgKnN0YXNoLCBjb25zdCBjaGFyICpuYW1lLCBTViAqc3YpOwotc3RhdGljCi0jZWxzZQot
ZXh0ZXJuIHZvaWQgRFBQUF8obXlfbmV3Q09OU1RTVUIpKEhWICpzdGFzaCwgY29uc3QgY2hhciAq
bmFtZSwgU1YgKnN2KTsKLSNlbmRpZgotCi0jaWZkZWYgbmV3Q09OU1RTVUIKLSMgIHVuZGVmIG5l
d0NPTlNUU1VCCi0jZW5kaWYKLSNkZWZpbmUgbmV3Q09OU1RTVUIoYSxiLGMpIERQUFBfKG15X25l
d0NPTlNUU1VCKShhVEhYXyBhLGIsYykKLSNkZWZpbmUgUGVybF9uZXdDT05TVFNVQiBEUFBQXyht
eV9uZXdDT05TVFNVQikKLQotI2lmIGRlZmluZWQoTkVFRF9uZXdDT05TVFNVQikgfHwgZGVmaW5l
ZChORUVEX25ld0NPTlNUU1VCX0dMT0JBTCkKLQotdm9pZAotRFBQUF8obXlfbmV3Q09OU1RTVUIp
KEhWICpzdGFzaCwgY29uc3QgY2hhciAqbmFtZSwgU1YgKnN2KQotewotICAgIFUzMiBvbGRoaW50
cyA9IFBMX2hpbnRzOwotICAgIEhWICpvbGRfY29wX3N0YXNoID0gUExfY3VyY29wLT5jb3Bfc3Rh
c2g7Ci0gICAgSFYgKm9sZF9jdXJzdGFzaCA9IFBMX2N1cnN0YXNoOwotICAgIGxpbmVfdCBvbGRs
aW5lID0gUExfY3VyY29wLT5jb3BfbGluZTsKLSAgICBQTF9jdXJjb3AtPmNvcF9saW5lID0gUExf
Y29wbGluZTsKLQotICAgIFBMX2hpbnRzICY9IH5ISU5UX0JMT0NLX1NDT1BFOwotICAgIGlmIChz
dGFzaCkKLSAgICAgICAgUExfY3Vyc3Rhc2ggPSBQTF9jdXJjb3AtPmNvcF9zdGFzaCA9IHN0YXNo
OwotCi0gICAgbmV3U1VCKAotCi0jaWYgICAoUEVSTF9CQ0RWRVJTSU9OIDwgMHg1MDAzMDIyKQot
ICAgICAgICBzdGFydF9zdWJwYXJzZSgpLAotI2VsaWYgKFBFUkxfQkNEVkVSU0lPTiA9PSAweDUw
MDMwMjIpCi0gICAgICAgICAgICAgc3RhcnRfc3VicGFyc2UoMCksCi0jZWxzZSAgLyogNS4wMDNf
MjMgIG9ud2FyZHMgKi8KLSAgICAgICAgICAgICBzdGFydF9zdWJwYXJzZShGQUxTRSwgMCksCi0j
ZW5kaWYKLQotICAgICAgICBuZXdTVk9QKE9QX0NPTlNULCAwLCBuZXdTVnB2KChjaGFyICopIG5h
bWUsIDApKSwKLSAgICAgICAgbmV3U1ZPUChPUF9DT05TVCwgMCwgJlBMX3N2X25vKSwgICAvKiBT
dlBWKCZQTF9zdl9ubykgPT0gIiIgLS0gR01CICovCi0gICAgICAgIG5ld1NUQVRFT1AoMCwgTnVs
bGNoLCBuZXdTVk9QKE9QX0NPTlNULCAwLCBzdikpCi0gICAgKTsKLQotICAgIFBMX2hpbnRzID0g
b2xkaGludHM7Ci0gICAgUExfY3VyY29wLT5jb3Bfc3Rhc2ggPSBvbGRfY29wX3N0YXNoOwotICAg
IFBMX2N1cnN0YXNoID0gb2xkX2N1cnN0YXNoOwotICAgIFBMX2N1cmNvcC0+Y29wX2xpbmUgPSBv
bGRsaW5lOwotfQotI2VuZGlmCi0jZW5kaWYKLQotLyoKLSAqIEJvaWxlcnBsYXRlIG1hY3JvcyBm
b3IgaW5pdGlhbGl6aW5nIGFuZCBhY2Nlc3NpbmcgaW50ZXJwcmV0ZXItbG9jYWwKLSAqIGRhdGEg
ZnJvbSBDLiAgQWxsIHN0YXRpY3MgaW4gZXh0ZW5zaW9ucyBzaG91bGQgYmUgcmV3b3JrZWQgdG8g
dXNlCi0gKiB0aGlzLCBpZiB5b3Ugd2FudCB0byBtYWtlIHRoZSBleHRlbnNpb24gdGhyZWFkLXNh
ZmUuICBTZWUgZXh0L3JlL3JlLnhzCi0gKiBmb3IgYW4gZXhhbXBsZSBvZiB0aGUgdXNlIG9mIHRo
ZXNlIG1hY3Jvcy4KLSAqCi0gKiBDb2RlIHRoYXQgdXNlcyB0aGVzZSBtYWNyb3MgaXMgcmVzcG9u
c2libGUgZm9yIHRoZSBmb2xsb3dpbmc6Ci0gKiAxLiAjZGVmaW5lIE1ZX0NYVF9LRVkgdG8gYSB1
bmlxdWUgc3RyaW5nLCBlLmcuICJEeW5hTG9hZGVyX2d1dHMiCi0gKiAyLiBEZWNsYXJlIGEgdHlw
ZWRlZiBuYW1lZCBteV9jeHRfdCB0aGF0IGlzIGEgc3RydWN0dXJlIHRoYXQgY29udGFpbnMKLSAq
ICAgIGFsbCB0aGUgZGF0YSB0aGF0IG5lZWRzIHRvIGJlIGludGVycHJldGVyLWxvY2FsLgotICog
My4gVXNlIHRoZSBTVEFSVF9NWV9DWFQgbWFjcm8gYWZ0ZXIgdGhlIGRlY2xhcmF0aW9uIG9mIG15
X2N4dF90LgotICogNC4gVXNlIHRoZSBNWV9DWFRfSU5JVCBtYWNybyBzdWNoIHRoYXQgaXQgaXMg
Y2FsbGVkIGV4YWN0bHkgb25jZQotICogICAgKHR5cGljYWxseSBwdXQgaW4gdGhlIEJPT1Q6IHNl
Y3Rpb24pLgotICogNS4gVXNlIHRoZSBtZW1iZXJzIG9mIHRoZSBteV9jeHRfdCBzdHJ1Y3R1cmUg
ZXZlcnl3aGVyZSBhcwotICogICAgTVlfQ1hULm1lbWJlci4KLSAqIDYuIFVzZSB0aGUgZE1ZX0NY
VCBtYWNybyAoYSBkZWNsYXJhdGlvbikgaW4gYWxsIHRoZSBmdW5jdGlvbnMgdGhhdAotICogICAg
YWNjZXNzIE1ZX0NYVC4KLSAqLwotCi0jaWYgZGVmaW5lZChNVUxUSVBMSUNJVFkpIHx8IGRlZmlu
ZWQoUEVSTF9PQkpFQ1QpIHx8IFwKLSAgICBkZWZpbmVkKFBFUkxfQ0FQSSkgICAgfHwgZGVmaW5l
ZChQRVJMX0lNUExJQ0lUX0NPTlRFWFQpCi0KLSNpZm5kZWYgU1RBUlRfTVlfQ1hUCi0KLS8qIFRo
aXMgbXVzdCBhcHBlYXIgaW4gYWxsIGV4dGVuc2lvbnMgdGhhdCBkZWZpbmUgYSBteV9jeHRfdCBz
dHJ1Y3R1cmUsCi0gKiByaWdodCBhZnRlciB0aGUgZGVmaW5pdGlvbiAoaS5lLiBhdCBmaWxlIHNj
b3BlKS4gIFRoZSBub24tdGhyZWFkcwotICogY2FzZSBiZWxvdyB1c2VzIGl0IHRvIGRlY2xhcmUg
dGhlIGRhdGEgYXMgc3RhdGljLiAqLwotI2RlZmluZSBTVEFSVF9NWV9DWFQKLQotI2lmIChQRVJM
X0JDRFZFUlNJT04gPCAweDUwMDQwNjgpCi0vKiBGZXRjaGVzIHRoZSBTViB0aGF0IGtlZXBzIHRo
ZSBwZXItaW50ZXJwcmV0ZXIgZGF0YS4gKi8KLSNkZWZpbmUgZE1ZX0NYVF9TViBcCi0gICAgU1Yg
Km15X2N4dF9zdiA9IGdldF9zdihNWV9DWFRfS0VZLCBGQUxTRSkKLSNlbHNlIC8qID49IHBlcmw1
LjAwNF82OCAqLwotI2RlZmluZSBkTVlfQ1hUX1NWIFwKLSAgICBTViAqbXlfY3h0X3N2ID0gKmh2
X2ZldGNoKFBMX21vZGdsb2JhbCwgTVlfQ1hUX0tFWSwgICAgICAgIFwKLSAgICAgICAgICAgICAg
ICAgIHNpemVvZihNWV9DWFRfS0VZKS0xLCBUUlVFKQotI2VuZGlmIC8qIDwgcGVybDUuMDA0XzY4
ICovCi0KLS8qIFRoaXMgZGVjbGFyYXRpb24gc2hvdWxkIGJlIHVzZWQgd2l0aGluIGFsbCBmdW5j
dGlvbnMgdGhhdCB1c2UgdGhlCi0gKiBpbnRlcnByZXRlci1sb2NhbCBkYXRhLiAqLwotI2RlZmlu
ZSBkTVlfQ1hUICAgIFwKLSAgICBkTVlfQ1hUX1NWOyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICAgbXlfY3h0X3QgKm15X2N4dHAgPSBJTlQyUFRSKG15X2N4dF90KixTdlVWKG15X2N4
dF9zdikpCi0KLS8qIENyZWF0ZXMgYW5kIHplcm9lcyB0aGUgcGVyLWludGVycHJldGVyIGRhdGEu
Ci0gKiAoV2UgYWxsb2NhdGUgbXlfY3h0cCBpbiBhIFBlcmwgU1Ygc28gdGhhdCBpdCB3aWxsIGJl
IHJlbGVhc2VkIHdoZW4KLSAqIHRoZSBpbnRlcnByZXRlciBnb2VzIGF3YXkuKSAqLwotI2RlZmlu
ZSBNWV9DWFRfSU5JVCBcCi0gICAgZE1ZX0NYVF9TVjsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAotICAgIC8qIG5ld1NWKCkgYWxsb2NhdGVzIG9uZSBtb3JlIHRoYW4gbmVlZGVkICovICAg
ICAgICAgICAgXAotICAgIG15X2N4dF90ICpteV9jeHRwID0gKG15X2N4dF90KilTdlBWWChuZXdT
VihzaXplb2YobXlfY3h0X3QpLTEpKTtcCi0gICAgWmVybyhteV9jeHRwLCAxLCBteV9jeHRfdCk7
ICAgICAgICAgICAgICAgICAgICBcCi0gICAgc3Zfc2V0dXYobXlfY3h0X3N2LCBQVFIyVVYobXlf
Y3h0cCkpCi0KLS8qIFRoaXMgbWFjcm8gbXVzdCBiZSB1c2VkIHRvIGFjY2VzcyBtZW1iZXJzIG9m
IHRoZSBteV9jeHRfdCBzdHJ1Y3R1cmUuCi0gKiBlLmcuIE1ZQ1hULnNvbWVfZGF0YSAqLwotI2Rl
ZmluZSBNWV9DWFQgICAgICAgICgqbXlfY3h0cCkKLQotLyogSnVkaWNpb3VzIHVzZSBvZiB0aGVz
ZSBtYWNyb3MgY2FuIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHRpbWVzIGRNWV9DWFQKLSAqIGlzIHVz
ZWQuICBVc2UgaXMgc2ltaWxhciB0byBwVEhYLCBhVEhYIGV0Yy4gKi8KLSNkZWZpbmUgcE1ZX0NY
VCAgICAgICAgbXlfY3h0X3QgKm15X2N4dHAKLSNkZWZpbmUgcE1ZX0NYVF8gICAgcE1ZX0NYVCwK
LSNkZWZpbmUgX3BNWV9DWFQgICAgLHBNWV9DWFQKLSNkZWZpbmUgYU1ZX0NYVCAgICAgICAgbXlf
Y3h0cAotI2RlZmluZSBhTVlfQ1hUXyAgICBhTVlfQ1hULAotI2RlZmluZSBfYU1ZX0NYVCAgICAs
YU1ZX0NYVAotCi0jZW5kaWYgLyogU1RBUlRfTVlfQ1hUICovCi0KLSNpZm5kZWYgTVlfQ1hUX0NM
T05FCi0vKiBDbG9uZXMgdGhlIHBlci1pbnRlcnByZXRlciBkYXRhLiAqLwotI2RlZmluZSBNWV9D
WFRfQ0xPTkUgXAotICAgIGRNWV9DWFRfU1Y7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
LSAgICBteV9jeHRfdCAqbXlfY3h0cCA9IChteV9jeHRfdCopU3ZQVlgobmV3U1Yoc2l6ZW9mKG15
X2N4dF90KS0xKSk7XAotICAgIENvcHkoSU5UMlBUUihteV9jeHRfdCosIFN2VVYobXlfY3h0X3N2
KSksIG15X2N4dHAsIDEsIG15X2N4dF90KTtcCi0gICAgc3Zfc2V0dXYobXlfY3h0X3N2LCBQVFIy
VVYobXlfY3h0cCkpCi0jZW5kaWYKLQotI2Vsc2UgLyogc2luZ2xlIGludGVycHJldGVyICovCi0K
LSNpZm5kZWYgU1RBUlRfTVlfQ1hUCi0KLSNkZWZpbmUgU1RBUlRfTVlfQ1hUICAgIHN0YXRpYyBt
eV9jeHRfdCBteV9jeHQ7Ci0jZGVmaW5lIGRNWV9DWFRfU1YgICAgZE5PT1AKLSNkZWZpbmUgZE1Z
X0NYVCAgICAgICAgZE5PT1AKLSNkZWZpbmUgTVlfQ1hUX0lOSVQgICAgTk9PUAotI2RlZmluZSBN
WV9DWFQgICAgICAgIG15X2N4dAotCi0jZGVmaW5lIHBNWV9DWFQgICAgICAgIHZvaWQKLSNkZWZp
bmUgcE1ZX0NYVF8KLSNkZWZpbmUgX3BNWV9DWFQKLSNkZWZpbmUgYU1ZX0NYVAotI2RlZmluZSBh
TVlfQ1hUXwotI2RlZmluZSBfYU1ZX0NYVAotCi0jZW5kaWYgLyogU1RBUlRfTVlfQ1hUICovCi0K
LSNpZm5kZWYgTVlfQ1hUX0NMT05FCi0jZGVmaW5lIE1ZX0NYVF9DTE9ORSAgICBOT09QCi0jZW5k
aWYKLQotI2VuZGlmCi0KLSNpZm5kZWYgSVZkZgotIyAgaWYgSVZTSVpFID09IExPTkdTSVpFCi0j
ICAgIGRlZmluZSAgICBJVmRmICAgICAgImxkIgotIyAgICBkZWZpbmUgICAgVVZ1ZiAgICAgICJs
dSIKLSMgICAgZGVmaW5lICAgIFVWb2YgICAgICAibG8iCi0jICAgIGRlZmluZSAgICBVVnhmICAg
ICAgImx4IgotIyAgICBkZWZpbmUgICAgVVZYZiAgICAgICJsWCIKLSMgIGVsc2UKLSMgICAgaWYg
SVZTSVpFID09IElOVFNJWkUKLSMgICAgICBkZWZpbmUgICAgSVZkZiAgICAgICJkIgotIyAgICAg
IGRlZmluZSAgICBVVnVmICAgICAgInUiCi0jICAgICAgZGVmaW5lICAgIFVWb2YgICAgICAibyIK
LSMgICAgICBkZWZpbmUgICAgVVZ4ZiAgICAgICJ4IgotIyAgICAgIGRlZmluZSAgICBVVlhmICAg
ICAgIlgiCi0jICAgIGVuZGlmCi0jICBlbmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgTlZlZgotIyAg
aWYgZGVmaW5lZChVU0VfTE9OR19ET1VCTEUpICYmIGRlZmluZWQoSEFTX0xPTkdfRE9VQkxFKSAm
JiBcCi0gICAgICBkZWZpbmVkKFBFUkxfUFJJZmxkYmwpIC8qIE5vdCB2ZXJ5IGxpa2VseSwgYnV0
IGxldCdzIHRyeSBhbnl3YXkuICovCi0jICAgIGRlZmluZSBOVmVmICAgICAgICAgIFBFUkxfUFJJ
ZWxkYmwKLSMgICAgZGVmaW5lIE5WZmYgICAgICAgICAgUEVSTF9QUklmbGRibAotIyAgICBkZWZp
bmUgTlZnZiAgICAgICAgICBQRVJMX1BSSWdsZGJsCi0jICBlbHNlCi0jICAgIGRlZmluZSBOVmVm
ICAgICAgICAgICJlIgotIyAgICBkZWZpbmUgTlZmZiAgICAgICAgICAiZiIKLSMgICAgZGVmaW5l
IE5WZ2YgICAgICAgICAgImciCi0jICBlbmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgU3ZSRUZDTlRf
aW5jCi0jICBpZmRlZiBQRVJMX1VTRV9HQ0NfQlJBQ0VfR1JPVVBTCi0jICAgIGRlZmluZSBTdlJF
RkNOVF9pbmMoc3YpICAgICAgICBcCi0gICAgICAoeyAgICAgICAgICAgICAgICBcCi0gICAgICAg
ICAgU1YgKiBjb25zdCBfc3YgPSAoU1YqKShzdik7ICAgIFwKLSAgICAgICAgICBpZiAoX3N2KSAg
ICAgICAgICAgIFwKLSAgICAgICAgICAgICAgIChTdlJFRkNOVChfc3YpKSsrOyAgICBcCi0gICAg
ICAgICAgX3N2OyAgICAgICAgICAgICAgICBcCi0gICAgICB9KQotIyAgZWxzZQotIyAgICBkZWZp
bmUgU3ZSRUZDTlRfaW5jKHN2KSAgICBcCi0gICAgICAgICAgKChQTF9Tdj0oU1YqKShzdikpID8g
KCsrKFN2UkVGQ05UKFBMX1N2KSksUExfU3YpIDogTlVMTCkKLSMgIGVuZGlmCi0jZW5kaWYKLQot
I2lmbmRlZiBTdlJFRkNOVF9pbmNfc2ltcGxlCi0jICBpZmRlZiBQRVJMX1VTRV9HQ0NfQlJBQ0Vf
R1JPVVBTCi0jICAgIGRlZmluZSBTdlJFRkNOVF9pbmNfc2ltcGxlKHN2KSAgICBcCi0gICAgICAo
eyAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgIGlmIChzdikgICAgICAgICAgICAgICAg
XAotICAgICAgICAgICAgICAgKFN2UkVGQ05UKHN2KSkrKzsgICAgICAgIFwKLSAgICAgICAgICAo
U1YgKikoc3YpOyAgICAgICAgICAgICAgICBcCi0gICAgICB9KQotIyAgZWxzZQotIyAgICBkZWZp
bmUgU3ZSRUZDTlRfaW5jX3NpbXBsZShzdikgXAotICAgICAgICAgICgoc3YpID8gKFN2UkVGQ05U
KHN2KSsrLChTViopKHN2KSkgOiBOVUxMKQotIyAgZW5kaWYKLSNlbmRpZgotCi0jaWZuZGVmIFN2
UkVGQ05UX2luY19OTgotIyAgaWZkZWYgUEVSTF9VU0VfR0NDX0JSQUNFX0dST1VQUwotIyAgICBk
ZWZpbmUgU3ZSRUZDTlRfaW5jX05OKHN2KSAgICAgICAgXAotICAgICAgKHsgICAgICAgICAgICAg
ICAgICAgIFwKLSAgICAgICAgICBTViAqIGNvbnN0IF9zdiA9IChTViopKHN2KTsgICAgXAotICAg
ICAgICAgIFN2UkVGQ05UKF9zdikrKzsgICAgICAgIFwKLSAgICAgICAgICBfc3Y7ICAgICAgICAg
ICAgICAgIFwKLSAgICAgIH0pCi0jICBlbHNlCi0jICAgIGRlZmluZSBTdlJFRkNOVF9pbmNfTk4o
c3YpIFwKLSAgICAgICAgICAoUExfU3Y9KFNWKikoc3YpLCsrKFN2UkVGQ05UKFBMX1N2KSksUExf
U3YpCi0jICBlbmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgU3ZSRUZDTlRfaW5jX3ZvaWQKLSMgIGlm
ZGVmIFBFUkxfVVNFX0dDQ19CUkFDRV9HUk9VUFMKLSMgICAgZGVmaW5lIFN2UkVGQ05UX2luY192
b2lkKHN2KSAgICAgICAgXAotICAgICAgKHsgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAg
ICBTViAqIGNvbnN0IF9zdiA9IChTViopKHN2KTsgICAgXAotICAgICAgICAgIGlmIChfc3YpICAg
ICAgICAgICAgXAotICAgICAgICAgICAgICAodm9pZCkoU3ZSRUZDTlQoX3N2KSsrKTsgICAgXAot
ICAgICAgfSkKLSMgIGVsc2UKLSMgICAgZGVmaW5lIFN2UkVGQ05UX2luY192b2lkKHN2KSBcCi0g
ICAgICAgICAgKHZvaWQpKChQTF9Tdj0oU1YqKShzdikpID8gKysoU3ZSRUZDTlQoUExfU3YpKSA6
IDApCi0jICBlbmRpZgotI2VuZGlmCi0jaWZuZGVmIFN2UkVGQ05UX2luY19zaW1wbGVfdm9pZAot
IyAgZGVmaW5lIFN2UkVGQ05UX2luY19zaW1wbGVfdm9pZChzdikgICBTVE1UX1NUQVJUIHsgaWYg
KHN2KSBTdlJFRkNOVChzdikrKzsgfSBTVE1UX0VORAotI2VuZGlmCi0KLSNpZm5kZWYgU3ZSRUZD
TlRfaW5jX3NpbXBsZV9OTgotIyAgZGVmaW5lIFN2UkVGQ05UX2luY19zaW1wbGVfTk4oc3YpICAg
ICAoKytTdlJFRkNOVChzdiksIChTViopKHN2KSkKLSNlbmRpZgotCi0jaWZuZGVmIFN2UkVGQ05U
X2luY192b2lkX05OCi0jICBkZWZpbmUgU3ZSRUZDTlRfaW5jX3ZvaWRfTk4oc3YpICAgICAgICh2
b2lkKSgrK1N2UkVGQ05UKChTViopKHN2KSkpCi0jZW5kaWYKLQotI2lmbmRlZiBTdlJFRkNOVF9p
bmNfc2ltcGxlX3ZvaWRfTk4KLSMgIGRlZmluZSBTdlJFRkNOVF9pbmNfc2ltcGxlX3ZvaWRfTk4o
c3YpICh2b2lkKSgrK1N2UkVGQ05UKChTViopKHN2KSkpCi0jZW5kaWYKLQotLyogQmFja3dhcmRz
IGNvbXBhdGliaWxpdHkgc3R1ZmYuLi4gOi0oICovCi0jaWYgIWRlZmluZWQoTkVFRF9zdl8ycHZf
ZmxhZ3MpICYmIGRlZmluZWQoTkVFRF9zdl8ycHZfbm9sZW4pCi0jICBkZWZpbmUgTkVFRF9zdl8y
cHZfZmxhZ3MKLSNlbmRpZgotI2lmICFkZWZpbmVkKE5FRURfc3ZfMnB2X2ZsYWdzX0dMT0JBTCkg
JiYgZGVmaW5lZChORUVEX3N2XzJwdl9ub2xlbl9HTE9CQUwpCi0jICBkZWZpbmUgTkVFRF9zdl8y
cHZfZmxhZ3NfR0xPQkFMCi0jZW5kaWYKLQotLyogSGludDogc3ZfMnB2X25vbGVuCi0gKiBVc2Ug
dGhlIFN2UFZfbm9sZW4oKSBvciBTdlBWX25vbGVuX2NvbnN0KCkgbWFjcm9zIGluc3RlYWQgb2Yg
c3ZfMnB2X25vbGVuKCkuCi0gKi8KLSNpZm5kZWYgc3ZfMnB2X25vbGVuCi0jICBkZWZpbmUgc3Zf
MnB2X25vbGVuKHN2KSAgICAgICAgICAgICAgIFN2UFZfbm9sZW4oc3YpCi0jZW5kaWYKLQotI2lm
ZGVmIFN2UFZieXRlCi0KLS8qIEhpbnQ6IFN2UFZieXRlCi0gKiBEb2VzIG5vdCB3b3JrIGluIHBl
cmwtNS42LjEsIHBwcG9ydC5oIGltcGxlbWVudHMgYSB2ZXJzaW9uCi0gKiBib3Jyb3dlZCBmcm9t
IHBlcmwtNS43LjMuCi0gKi8KLQotI2lmIChQRVJMX0JDRFZFUlNJT04gPCAweDUwMDcwMDApCi0K
LSNpZiBkZWZpbmVkKE5FRURfc3ZfMnB2Ynl0ZSkKLXN0YXRpYyBjaGFyICogRFBQUF8obXlfc3Zf
MnB2Ynl0ZSkocFRIWF8gU1YgKiBzdiwgU1RSTEVOICogbHApOwotc3RhdGljCi0jZWxzZQotZXh0
ZXJuIGNoYXIgKiBEUFBQXyhteV9zdl8ycHZieXRlKShwVEhYXyBTViAqIHN2LCBTVFJMRU4gKiBs
cCk7Ci0jZW5kaWYKLQotI2lmZGVmIHN2XzJwdmJ5dGUKLSMgIHVuZGVmIHN2XzJwdmJ5dGUKLSNl
bmRpZgotI2RlZmluZSBzdl8ycHZieXRlKGEsYikgRFBQUF8obXlfc3ZfMnB2Ynl0ZSkoYVRIWF8g
YSxiKQotI2RlZmluZSBQZXJsX3N2XzJwdmJ5dGUgRFBQUF8obXlfc3ZfMnB2Ynl0ZSkKLQotI2lm
IGRlZmluZWQoTkVFRF9zdl8ycHZieXRlKSB8fCBkZWZpbmVkKE5FRURfc3ZfMnB2Ynl0ZV9HTE9C
QUwpCi0KLWNoYXIgKgotRFBQUF8obXlfc3ZfMnB2Ynl0ZSkocFRIWF8gU1YgKnN2LCBTVFJMRU4g
KmxwKQotewotICBzdl91dGY4X2Rvd25ncmFkZShzdiwwKTsKLSAgcmV0dXJuIFN2UFYoc3YsKmxw
KTsKLX0KLQotI2VuZGlmCi0KLS8qIEhpbnQ6IHN2XzJwdmJ5dGUKLSAqIFVzZSB0aGUgU3ZQVmJ5
dGUoKSBtYWNybyBpbnN0ZWFkIG9mIHN2XzJwdmJ5dGUoKS4KLSAqLwotCi0jdW5kZWYgU3ZQVmJ5
dGUKLQotI2RlZmluZSBTdlBWYnl0ZShzdiwgbHApICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAoKFN2RkxBR1Moc3YpICYgKFNWZl9QT0t8
U1ZmX1VURjgpKSA9PSAoU1ZmX1BPSykgICAgICAgICAgICAgICAgXAotICAgICAgICAgPyAoKGxw
ID0gU3ZDVVIoc3YpKSwgU3ZQVlgoc3YpKSA6IHN2XzJwdmJ5dGUoc3YsICZscCkpCi0KLSNlbmRp
ZgotCi0jZWxzZQotCi0jICBkZWZpbmUgU3ZQVmJ5dGUgICAgICAgICAgU3ZQVgotIyAgZGVmaW5l
IHN2XzJwdmJ5dGUgICAgICAgIHN2XzJwdgotCi0jZW5kaWYKLSNpZm5kZWYgc3ZfMnB2Ynl0ZV9u
b2xlbgotIyAgZGVmaW5lIHN2XzJwdmJ5dGVfbm9sZW4oc3YpICAgICAgICAgICBzdl8ycHZfbm9s
ZW4oc3YpCi0jZW5kaWYKLQotLyogSGludDogc3ZfcHZuCi0gKiBBbHdheXMgdXNlIHRoZSBTdlBW
KCkgbWFjcm8gaW5zdGVhZCBvZiBzdl9wdm4oKS4KLSAqLwotCi0vKiBIaW50OiBzdl9wdm5fZm9y
Y2UKLSAqIEFsd2F5cyB1c2UgdGhlIFN2UFZfZm9yY2UoKSBtYWNybyBpbnN0ZWFkIG9mIHN2X3B2
bl9mb3JjZSgpLgotICovCi0KLS8qIElmIHRoZXNlIGFyZSB1bmRlZmluZWQsIHRoZXkncmUgbm90
IGhhbmRsZWQgYnkgdGhlIGNvcmUgYW55d2F5ICovCi0jaWZuZGVmIFNWX0lNTUVESUFURV9VTlJF
RgotIyAgZGVmaW5lIFNWX0lNTUVESUFURV9VTlJFRiAgICAgICAgICAgICAwCi0jZW5kaWYKLQot
I2lmbmRlZiBTVl9HTUFHSUMKLSMgIGRlZmluZSBTVl9HTUFHSUMgICAgICAgICAgICAgICAgICAg
ICAgMAotI2VuZGlmCi0KLSNpZm5kZWYgU1ZfQ09XX0RST1BfUFYKLSMgIGRlZmluZSBTVl9DT1df
RFJPUF9QViAgICAgICAgICAgICAgICAgMAotI2VuZGlmCi0KLSNpZm5kZWYgU1ZfVVRGOF9OT19F
TkNPRElORwotIyAgZGVmaW5lIFNWX1VURjhfTk9fRU5DT0RJTkcgICAgICAgICAgICAwCi0jZW5k
aWYKLQotI2lmbmRlZiBTVl9OT1NURUFMCi0jICBkZWZpbmUgU1ZfTk9TVEVBTCAgICAgICAgICAg
ICAgICAgICAgIDAKLSNlbmRpZgotCi0jaWZuZGVmIFNWX0NPTlNUX1JFVFVSTgotIyAgZGVmaW5l
IFNWX0NPTlNUX1JFVFVSTiAgICAgICAgICAgICAgICAwCi0jZW5kaWYKLQotI2lmbmRlZiBTVl9N
VVRBQkxFX1JFVFVSTgotIyAgZGVmaW5lIFNWX01VVEFCTEVfUkVUVVJOICAgICAgICAgICAgICAw
Ci0jZW5kaWYKLQotI2lmbmRlZiBTVl9TTUFHSUMKLSMgIGRlZmluZSBTVl9TTUFHSUMgICAgICAg
ICAgICAgICAgICAgICAgMAotI2VuZGlmCi0KLSNpZm5kZWYgU1ZfSEFTX1RSQUlMSU5HX05VTAot
IyAgZGVmaW5lIFNWX0hBU19UUkFJTElOR19OVUwgICAgICAgICAgICAwCi0jZW5kaWYKLQotI2lm
bmRlZiBTVl9DT1dfU0hBUkVEX0hBU0hfS0VZUwotIyAgZGVmaW5lIFNWX0NPV19TSEFSRURfSEFT
SF9LRVlTICAgICAgICAwCi0jZW5kaWYKLQotI2lmIChQRVJMX0JDRFZFUlNJT04gPCAweDUwMDcw
MDIpCi0KLSNpZiBkZWZpbmVkKE5FRURfc3ZfMnB2X2ZsYWdzKQotc3RhdGljIGNoYXIgKiBEUFBQ
XyhteV9zdl8ycHZfZmxhZ3MpKHBUSFhfIFNWICogc3YsIFNUUkxFTiAqIGxwLCBJMzIgZmxhZ3Mp
Owotc3RhdGljCi0jZWxzZQotZXh0ZXJuIGNoYXIgKiBEUFBQXyhteV9zdl8ycHZfZmxhZ3MpKHBU
SFhfIFNWICogc3YsIFNUUkxFTiAqIGxwLCBJMzIgZmxhZ3MpOwotI2VuZGlmCi0KLSNpZmRlZiBz
dl8ycHZfZmxhZ3MKLSMgIHVuZGVmIHN2XzJwdl9mbGFncwotI2VuZGlmCi0jZGVmaW5lIHN2XzJw
dl9mbGFncyhhLGIsYykgRFBQUF8obXlfc3ZfMnB2X2ZsYWdzKShhVEhYXyBhLGIsYykKLSNkZWZp
bmUgUGVybF9zdl8ycHZfZmxhZ3MgRFBQUF8obXlfc3ZfMnB2X2ZsYWdzKQotCi0jaWYgZGVmaW5l
ZChORUVEX3N2XzJwdl9mbGFncykgfHwgZGVmaW5lZChORUVEX3N2XzJwdl9mbGFnc19HTE9CQUwp
Ci0KLWNoYXIgKgotRFBQUF8obXlfc3ZfMnB2X2ZsYWdzKShwVEhYXyBTViAqc3YsIFNUUkxFTiAq
bHAsIEkzMiBmbGFncykKLXsKLSAgU1RSTEVOIG5fYSA9IChTVFJMRU4pIGZsYWdzOwotICByZXR1
cm4gc3ZfMnB2KHN2LCBscCA/IGxwIDogJm5fYSk7Ci19Ci0KLSNlbmRpZgotCi0jaWYgZGVmaW5l
ZChORUVEX3N2X3B2bl9mb3JjZV9mbGFncykKLXN0YXRpYyBjaGFyICogRFBQUF8obXlfc3ZfcHZu
X2ZvcmNlX2ZsYWdzKShwVEhYXyBTViAqIHN2LCBTVFJMRU4gKiBscCwgSTMyIGZsYWdzKTsKLXN0
YXRpYwotI2Vsc2UKLWV4dGVybiBjaGFyICogRFBQUF8obXlfc3ZfcHZuX2ZvcmNlX2ZsYWdzKShw
VEhYXyBTViAqIHN2LCBTVFJMRU4gKiBscCwgSTMyIGZsYWdzKTsKLSNlbmRpZgotCi0jaWZkZWYg
c3ZfcHZuX2ZvcmNlX2ZsYWdzCi0jICB1bmRlZiBzdl9wdm5fZm9yY2VfZmxhZ3MKLSNlbmRpZgot
I2RlZmluZSBzdl9wdm5fZm9yY2VfZmxhZ3MoYSxiLGMpIERQUFBfKG15X3N2X3B2bl9mb3JjZV9m
bGFncykoYVRIWF8gYSxiLGMpCi0jZGVmaW5lIFBlcmxfc3ZfcHZuX2ZvcmNlX2ZsYWdzIERQUFBf
KG15X3N2X3B2bl9mb3JjZV9mbGFncykKLQotI2lmIGRlZmluZWQoTkVFRF9zdl9wdm5fZm9yY2Vf
ZmxhZ3MpIHx8IGRlZmluZWQoTkVFRF9zdl9wdm5fZm9yY2VfZmxhZ3NfR0xPQkFMKQotCi1jaGFy
ICoKLURQUFBfKG15X3N2X3B2bl9mb3JjZV9mbGFncykocFRIWF8gU1YgKnN2LCBTVFJMRU4gKmxw
LCBJMzIgZmxhZ3MpCi17Ci0gIFNUUkxFTiBuX2EgPSAoU1RSTEVOKSBmbGFnczsKLSAgcmV0dXJu
IHN2X3B2bl9mb3JjZShzdiwgbHAgPyBscCA6ICZuX2EpOwotfQotCi0jZW5kaWYKLQotI2VuZGlm
Ci0jaWZuZGVmIFN2UFZfY29uc3QKLSMgIGRlZmluZSBTdlBWX2NvbnN0KHN2LCBscCkgICAgICAg
ICAgICAgU3ZQVl9mbGFnc19jb25zdChzdiwgbHAsIFNWX0dNQUdJQykKLSNlbmRpZgotCi0jaWZu
ZGVmIFN2UFZfbXV0YWJsZQotIyAgZGVmaW5lIFN2UFZfbXV0YWJsZShzdiwgbHApICAgICAgICAg
ICBTdlBWX2ZsYWdzX211dGFibGUoc3YsIGxwLCBTVl9HTUFHSUMpCi0jZW5kaWYKLSNpZm5kZWYg
U3ZQVl9mbGFncwotIyAgZGVmaW5lIFN2UFZfZmxhZ3Moc3YsIGxwLCBmbGFncykgICAgICBcCi0g
ICAgICAgICAgICAgICAgICgoU3ZGTEFHUyhzdikgJiAoU1ZmX1BPSykpID09IFNWZl9QT0sgXAot
ICAgICAgICAgICAgICAgICAgPyAoKGxwID0gU3ZDVVIoc3YpKSwgU3ZQVlgoc3YpKSA6IHN2XzJw
dl9mbGFncyhzdiwgJmxwLCBmbGFncykpCi0jZW5kaWYKLSNpZm5kZWYgU3ZQVl9mbGFnc19jb25z
dAotIyAgZGVmaW5lIFN2UFZfZmxhZ3NfY29uc3Qoc3YsIGxwLCBmbGFncykgXAotICAgICAgICAg
ICAgICAgICAoKFN2RkxBR1Moc3YpICYgKFNWZl9QT0spKSA9PSBTVmZfUE9LIFwKLSAgICAgICAg
ICAgICAgICAgID8gKChscCA9IFN2Q1VSKHN2KSksIFN2UFZYX2NvbnN0KHN2KSkgOiBcCi0gICAg
ICAgICAgICAgICAgICAoY29uc3QgY2hhciopIHN2XzJwdl9mbGFncyhzdiwgJmxwLCBmbGFnc3xT
Vl9DT05TVF9SRVRVUk4pKQotI2VuZGlmCi0jaWZuZGVmIFN2UFZfZmxhZ3NfY29uc3Rfbm9sZW4K
LSMgIGRlZmluZSBTdlBWX2ZsYWdzX2NvbnN0X25vbGVuKHN2LCBmbGFncykgXAotICAgICAgICAg
ICAgICAgICAoKFN2RkxBR1Moc3YpICYgKFNWZl9QT0spKSA9PSBTVmZfUE9LIFwKLSAgICAgICAg
ICAgICAgICAgID8gU3ZQVlhfY29uc3Qoc3YpIDogXAotICAgICAgICAgICAgICAgICAgKGNvbnN0
IGNoYXIqKSBzdl8ycHZfZmxhZ3Moc3YsIDAsIGZsYWdzfFNWX0NPTlNUX1JFVFVSTikpCi0jZW5k
aWYKLSNpZm5kZWYgU3ZQVl9mbGFnc19tdXRhYmxlCi0jICBkZWZpbmUgU3ZQVl9mbGFnc19tdXRh
YmxlKHN2LCBscCwgZmxhZ3MpIFwKLSAgICAgICAgICAgICAgICAgKChTdkZMQUdTKHN2KSAmIChT
VmZfUE9LKSkgPT0gU1ZmX1BPSyBcCi0gICAgICAgICAgICAgICAgICA/ICgobHAgPSBTdkNVUihz
dikpLCBTdlBWWF9tdXRhYmxlKHN2KSkgOiBcCi0gICAgICAgICAgICAgICAgICBzdl8ycHZfZmxh
Z3Moc3YsICZscCwgZmxhZ3N8U1ZfTVVUQUJMRV9SRVRVUk4pKQotI2VuZGlmCi0jaWZuZGVmIFN2
UFZfZm9yY2UKLSMgIGRlZmluZSBTdlBWX2ZvcmNlKHN2LCBscCkgICAgICAgICAgICAgU3ZQVl9m
b3JjZV9mbGFncyhzdiwgbHAsIFNWX0dNQUdJQykKLSNlbmRpZgotCi0jaWZuZGVmIFN2UFZfZm9y
Y2Vfbm9sZW4KLSMgIGRlZmluZSBTdlBWX2ZvcmNlX25vbGVuKHN2KSAgICAgICAgICAgU3ZQVl9m
b3JjZV9mbGFnc19ub2xlbihzdiwgU1ZfR01BR0lDKQotI2VuZGlmCi0KLSNpZm5kZWYgU3ZQVl9m
b3JjZV9tdXRhYmxlCi0jICBkZWZpbmUgU3ZQVl9mb3JjZV9tdXRhYmxlKHN2LCBscCkgICAgIFN2
UFZfZm9yY2VfZmxhZ3NfbXV0YWJsZShzdiwgbHAsIFNWX0dNQUdJQykKLSNlbmRpZgotCi0jaWZu
ZGVmIFN2UFZfZm9yY2Vfbm9tZwotIyAgZGVmaW5lIFN2UFZfZm9yY2Vfbm9tZyhzdiwgbHApICAg
ICAgICBTdlBWX2ZvcmNlX2ZsYWdzKHN2LCBscCwgMCkKLSNlbmRpZgotCi0jaWZuZGVmIFN2UFZf
Zm9yY2Vfbm9tZ19ub2xlbgotIyAgZGVmaW5lIFN2UFZfZm9yY2Vfbm9tZ19ub2xlbihzdikgICAg
ICBTdlBWX2ZvcmNlX2ZsYWdzX25vbGVuKHN2LCAwKQotI2VuZGlmCi0jaWZuZGVmIFN2UFZfZm9y
Y2VfZmxhZ3MKLSMgIGRlZmluZSBTdlBWX2ZvcmNlX2ZsYWdzKHN2LCBscCwgZmxhZ3MpIFwKLSAg
ICAgICAgICAgICAgICAgKChTdkZMQUdTKHN2KSAmIChTVmZfUE9LfFNWZl9USElOS0ZJUlNUKSkg
PT0gU1ZmX1BPSyBcCi0gICAgICAgICAgICAgICAgID8gKChscCA9IFN2Q1VSKHN2KSksIFN2UFZY
KHN2KSkgOiBzdl9wdm5fZm9yY2VfZmxhZ3Moc3YsICZscCwgZmxhZ3MpKQotI2VuZGlmCi0jaWZu
ZGVmIFN2UFZfZm9yY2VfZmxhZ3Nfbm9sZW4KLSMgIGRlZmluZSBTdlBWX2ZvcmNlX2ZsYWdzX25v
bGVuKHN2LCBmbGFncykgXAotICAgICAgICAgICAgICAgICAoKFN2RkxBR1Moc3YpICYgKFNWZl9Q
T0t8U1ZmX1RISU5LRklSU1QpKSA9PSBTVmZfUE9LIFwKLSAgICAgICAgICAgICAgICAgPyBTdlBW
WChzdikgOiBzdl9wdm5fZm9yY2VfZmxhZ3Moc3YsIDAsIGZsYWdzKSkKLSNlbmRpZgotI2lmbmRl
ZiBTdlBWX2ZvcmNlX2ZsYWdzX211dGFibGUKLSMgIGRlZmluZSBTdlBWX2ZvcmNlX2ZsYWdzX211
dGFibGUoc3YsIGxwLCBmbGFncykgXAotICAgICAgICAgICAgICAgICAoKFN2RkxBR1Moc3YpICYg
KFNWZl9QT0t8U1ZmX1RISU5LRklSU1QpKSA9PSBTVmZfUE9LIFwKLSAgICAgICAgICAgICAgICAg
PyAoKGxwID0gU3ZDVVIoc3YpKSwgU3ZQVlhfbXV0YWJsZShzdikpIFwKLSAgICAgICAgICAgICAg
ICAgIDogc3ZfcHZuX2ZvcmNlX2ZsYWdzKHN2LCAmbHAsIGZsYWdzfFNWX01VVEFCTEVfUkVUVVJO
KSkKLSNlbmRpZgotI2lmbmRlZiBTdlBWX25vbGVuCi0jICBkZWZpbmUgU3ZQVl9ub2xlbihzdikg
ICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgKChTdkZMQUdTKHN2KSAmIChTVmZf
UE9LKSkgPT0gU1ZmX1BPSyBcCi0gICAgICAgICAgICAgICAgICA/IFN2UFZYKHN2KSA6IHN2XzJw
dl9mbGFncyhzdiwgMCwgU1ZfR01BR0lDKSkKLSNlbmRpZgotI2lmbmRlZiBTdlBWX25vbGVuX2Nv
bnN0Ci0jICBkZWZpbmUgU3ZQVl9ub2xlbl9jb25zdChzdikgICAgICAgICAgIFwKLSAgICAgICAg
ICAgICAgICAgKChTdkZMQUdTKHN2KSAmIChTVmZfUE9LKSkgPT0gU1ZmX1BPSyBcCi0gICAgICAg
ICAgICAgICAgICA/IFN2UFZYX2NvbnN0KHN2KSA6IHN2XzJwdl9mbGFncyhzdiwgMCwgU1ZfR01B
R0lDfFNWX0NPTlNUX1JFVFVSTikpCi0jZW5kaWYKLSNpZm5kZWYgU3ZQVl9ub21nCi0jICBkZWZp
bmUgU3ZQVl9ub21nKHN2LCBscCkgICAgICAgICAgICAgIFN2UFZfZmxhZ3Moc3YsIGxwLCAwKQot
I2VuZGlmCi0KLSNpZm5kZWYgU3ZQVl9ub21nX2NvbnN0Ci0jICBkZWZpbmUgU3ZQVl9ub21nX2Nv
bnN0KHN2LCBscCkgICAgICAgIFN2UFZfZmxhZ3NfY29uc3Qoc3YsIGxwLCAwKQotI2VuZGlmCi0K
LSNpZm5kZWYgU3ZQVl9ub21nX2NvbnN0X25vbGVuCi0jICBkZWZpbmUgU3ZQVl9ub21nX2NvbnN0
X25vbGVuKHN2KSAgICAgIFN2UFZfZmxhZ3NfY29uc3Rfbm9sZW4oc3YsIDApCi0jZW5kaWYKLSNp
Zm5kZWYgU3ZNQUdJQ19zZXQKLSMgIGRlZmluZSBTdk1BR0lDX3NldChzdiwgdmFsKSAgICAgICAg
ICAgXAotICAgICAgICAgICAgICAgIFNUTVRfU1RBUlQgeyBhc3NlcnQoU3ZUWVBFKHN2KSA+PSBT
VnRfUFZNRyk7IFwKLSAgICAgICAgICAgICAgICAoKChYUFZNRyopIFN2QU5ZKHN2KSktPnhtZ19t
YWdpYyA9ICh2YWwpKTsgfSBTVE1UX0VORAotI2VuZGlmCi0KLSNpZiAoUEVSTF9CQ0RWRVJTSU9O
IDwgMHg1MDA5MDAzKQotI2lmbmRlZiBTdlBWWF9jb25zdAotIyAgZGVmaW5lIFN2UFZYX2NvbnN0
KHN2KSAgICAgICAgICAgICAgICAoKGNvbnN0IGNoYXIqKSAoMCArIFN2UFZYKHN2KSkpCi0jZW5k
aWYKLQotI2lmbmRlZiBTdlBWWF9tdXRhYmxlCi0jICBkZWZpbmUgU3ZQVlhfbXV0YWJsZShzdikg
ICAgICAgICAgICAgICgwICsgU3ZQVlgoc3YpKQotI2VuZGlmCi0jaWZuZGVmIFN2UlZfc2V0Ci0j
ICBkZWZpbmUgU3ZSVl9zZXQoc3YsIHZhbCkgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAg
ICBTVE1UX1NUQVJUIHsgYXNzZXJ0KFN2VFlQRShzdikgPj0gIFNWdF9SVik7IFwKLSAgICAgICAg
ICAgICAgICAoKChYUlYqKSBTdkFOWShzdikpLT54cnZfcnYgPSAodmFsKSk7IH0gU1RNVF9FTkQK
LSNlbmRpZgotCi0jZWxzZQotI2lmbmRlZiBTdlBWWF9jb25zdAotIyAgZGVmaW5lIFN2UFZYX2Nv
bnN0KHN2KSAgICAgICAgICAgICAgICAoKGNvbnN0IGNoYXIqKSgoc3YpLT5zdl91LnN2dV9wdikp
Ci0jZW5kaWYKLQotI2lmbmRlZiBTdlBWWF9tdXRhYmxlCi0jICBkZWZpbmUgU3ZQVlhfbXV0YWJs
ZShzdikgICAgICAgICAgICAgICgoc3YpLT5zdl91LnN2dV9wdikKLSNlbmRpZgotI2lmbmRlZiBT
dlJWX3NldAotIyAgZGVmaW5lIFN2UlZfc2V0KHN2LCB2YWwpICAgICAgICAgICAgICBcCi0gICAg
ICAgICAgICAgICAgU1RNVF9TVEFSVCB7IGFzc2VydChTdlRZUEUoc3YpID49ICBTVnRfUlYpOyBc
Ci0gICAgICAgICAgICAgICAgKChzdiktPnN2X3Uuc3Z1X3J2ID0gKHZhbCkpOyB9IFNUTVRfRU5E
Ci0jZW5kaWYKLQotI2VuZGlmCi0jaWZuZGVmIFN2U1RBU0hfc2V0Ci0jICBkZWZpbmUgU3ZTVEFT
SF9zZXQoc3YsIHZhbCkgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICBTVE1UX1NUQVJUIHsg
YXNzZXJ0KFN2VFlQRShzdikgPj0gU1Z0X1BWTUcpOyBcCi0gICAgICAgICAgICAgICAgKCgoWFBW
TUcqKSBTdkFOWShzdikpLT54bWdfc3Rhc2ggPSAodmFsKSk7IH0gU1RNVF9FTkQKLSNlbmRpZgot
Ci0jaWYgKFBFUkxfQkNEVkVSU0lPTiA8IDB4NTAwNDAwMCkKLSNpZm5kZWYgU3ZVVl9zZXQKLSMg
IGRlZmluZSBTdlVWX3NldChzdiwgdmFsKSAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAg
IFNUTVRfU1RBUlQgeyBhc3NlcnQoU3ZUWVBFKHN2KSA9PSBTVnRfSVYgfHwgU3ZUWVBFKHN2KSA+
PSBTVnRfUFZJVik7IFwKLSAgICAgICAgICAgICAgICAoKChYUFZJViopIFN2QU5ZKHN2KSktPnhp
dl9pdiA9IChJVikgKHZhbCkpOyB9IFNUTVRfRU5ECi0jZW5kaWYKLQotI2Vsc2UKLSNpZm5kZWYg
U3ZVVl9zZXQKLSMgIGRlZmluZSBTdlVWX3NldChzdiwgdmFsKSAgICAgICAgICAgICAgXAotICAg
ICAgICAgICAgICAgIFNUTVRfU1RBUlQgeyBhc3NlcnQoU3ZUWVBFKHN2KSA9PSBTVnRfSVYgfHwg
U3ZUWVBFKHN2KSA+PSBTVnRfUFZJVik7IFwKLSAgICAgICAgICAgICAgICAoKChYUFZVViopIFN2
QU5ZKHN2KSktPnh1dl91diA9ICh2YWwpKTsgfSBTVE1UX0VORAotI2VuZGlmCi0KLSNlbmRpZgot
Ci0jaWYgKFBFUkxfQkNEVkVSU0lPTiA+PSAweDUwMDQwMDApICYmICFkZWZpbmVkKHZuZXdTVnB2
ZikKLSNpZiBkZWZpbmVkKE5FRURfdm5ld1NWcHZmKQotc3RhdGljIFNWICogRFBQUF8obXlfdm5l
d1NWcHZmKShwVEhYXyBjb25zdCBjaGFyICogcGF0LCB2YV9saXN0ICogYXJncyk7Ci1zdGF0aWMK
LSNlbHNlCi1leHRlcm4gU1YgKiBEUFBQXyhteV92bmV3U1ZwdmYpKHBUSFhfIGNvbnN0IGNoYXIg
KiBwYXQsIHZhX2xpc3QgKiBhcmdzKTsKLSNlbmRpZgotCi0jaWZkZWYgdm5ld1NWcHZmCi0jICB1
bmRlZiB2bmV3U1ZwdmYKLSNlbmRpZgotI2RlZmluZSB2bmV3U1ZwdmYoYSxiKSBEUFBQXyhteV92
bmV3U1ZwdmYpKGFUSFhfIGEsYikKLSNkZWZpbmUgUGVybF92bmV3U1ZwdmYgRFBQUF8obXlfdm5l
d1NWcHZmKQotCi0jaWYgZGVmaW5lZChORUVEX3ZuZXdTVnB2ZikgfHwgZGVmaW5lZChORUVEX3Zu
ZXdTVnB2Zl9HTE9CQUwpCi0KLVNWICoKLURQUFBfKG15X3ZuZXdTVnB2ZikocFRIWF8gY29uc3Qg
Y2hhciAqcGF0LCB2YV9saXN0ICphcmdzKQotewotICByZWdpc3RlciBTViAqc3YgPSBuZXdTVigw
KTsKLSAgc3ZfdnNldHB2Zm4oc3YsIHBhdCwgc3RybGVuKHBhdCksIGFyZ3MsIE51bGwoU1YqKiks
IDAsIE51bGwoYm9vbCopKTsKLSAgcmV0dXJuIHN2OwotfQotCi0jZW5kaWYKLSNlbmRpZgotCi0j
aWYgKFBFUkxfQkNEVkVSU0lPTiA+PSAweDUwMDQwMDApICYmICFkZWZpbmVkKHN2X3ZjYXRwdmYp
Ci0jICBkZWZpbmUgc3ZfdmNhdHB2ZihzdiwgcGF0LCBhcmdzKSAgc3ZfdmNhdHB2Zm4oc3YsIHBh
dCwgc3RybGVuKHBhdCksIGFyZ3MsIE51bGwoU1YqKiksIDAsIE51bGwoYm9vbCopKQotI2VuZGlm
Ci0KLSNpZiAoUEVSTF9CQ0RWRVJTSU9OID49IDB4NTAwNDAwMCkgJiYgIWRlZmluZWQoc3ZfdnNl
dHB2ZikKLSMgIGRlZmluZSBzdl92c2V0cHZmKHN2LCBwYXQsIGFyZ3MpICBzdl92c2V0cHZmbihz
diwgcGF0LCBzdHJsZW4ocGF0KSwgYXJncywgTnVsbChTVioqKSwgMCwgTnVsbChib29sKikpCi0j
ZW5kaWYKLQotI2lmIChQRVJMX0JDRFZFUlNJT04gPj0gMHg1MDA0MDAwKSAmJiAhZGVmaW5lZChz
dl9jYXRwdmZfbWcpCi0jaWYgZGVmaW5lZChORUVEX3N2X2NhdHB2Zl9tZykKLXN0YXRpYyB2b2lk
IERQUFBfKG15X3N2X2NhdHB2Zl9tZykocFRIWF8gU1YgKiBzdiwgY29uc3QgY2hhciAqIHBhdCwg
Li4uKTsKLXN0YXRpYwotI2Vsc2UKLWV4dGVybiB2b2lkIERQUFBfKG15X3N2X2NhdHB2Zl9tZyko
cFRIWF8gU1YgKiBzdiwgY29uc3QgY2hhciAqIHBhdCwgLi4uKTsKLSNlbmRpZgotCi0jZGVmaW5l
IFBlcmxfc3ZfY2F0cHZmX21nIERQUFBfKG15X3N2X2NhdHB2Zl9tZykKLQotI2lmIGRlZmluZWQo
TkVFRF9zdl9jYXRwdmZfbWcpIHx8IGRlZmluZWQoTkVFRF9zdl9jYXRwdmZfbWdfR0xPQkFMKQot
Ci12b2lkCi1EUFBQXyhteV9zdl9jYXRwdmZfbWcpKHBUSFhfIFNWICpzdiwgY29uc3QgY2hhciAq
cGF0LCAuLi4pCi17Ci0gIHZhX2xpc3QgYXJnczsKLSAgdmFfc3RhcnQoYXJncywgcGF0KTsKLSAg
c3ZfdmNhdHB2Zm4oc3YsIHBhdCwgc3RybGVuKHBhdCksICZhcmdzLCBOdWxsKFNWKiopLCAwLCBO
dWxsKGJvb2wqKSk7Ci0gIFN2U0VUTUFHSUMoc3YpOwotICB2YV9lbmQoYXJncyk7Ci19Ci0KLSNl
bmRpZgotI2VuZGlmCi0KLSNpZmRlZiBQRVJMX0lNUExJQ0lUX0NPTlRFWFQKLSNpZiAoUEVSTF9C
Q0RWRVJTSU9OID49IDB4NTAwNDAwMCkgJiYgIWRlZmluZWQoc3ZfY2F0cHZmX21nX25vY29udGV4
dCkKLSNpZiBkZWZpbmVkKE5FRURfc3ZfY2F0cHZmX21nX25vY29udGV4dCkKLXN0YXRpYyB2b2lk
IERQUFBfKG15X3N2X2NhdHB2Zl9tZ19ub2NvbnRleHQpKFNWICogc3YsIGNvbnN0IGNoYXIgKiBw
YXQsIC4uLik7Ci1zdGF0aWMKLSNlbHNlCi1leHRlcm4gdm9pZCBEUFBQXyhteV9zdl9jYXRwdmZf
bWdfbm9jb250ZXh0KShTViAqIHN2LCBjb25zdCBjaGFyICogcGF0LCAuLi4pOwotI2VuZGlmCi0K
LSNkZWZpbmUgc3ZfY2F0cHZmX21nX25vY29udGV4dCBEUFBQXyhteV9zdl9jYXRwdmZfbWdfbm9j
b250ZXh0KQotI2RlZmluZSBQZXJsX3N2X2NhdHB2Zl9tZ19ub2NvbnRleHQgRFBQUF8obXlfc3Zf
Y2F0cHZmX21nX25vY29udGV4dCkKLQotI2lmIGRlZmluZWQoTkVFRF9zdl9jYXRwdmZfbWdfbm9j
b250ZXh0KSB8fCBkZWZpbmVkKE5FRURfc3ZfY2F0cHZmX21nX25vY29udGV4dF9HTE9CQUwpCi0K
LXZvaWQKLURQUFBfKG15X3N2X2NhdHB2Zl9tZ19ub2NvbnRleHQpKFNWICpzdiwgY29uc3QgY2hh
ciAqcGF0LCAuLi4pCi17Ci0gIGRUSFg7Ci0gIHZhX2xpc3QgYXJnczsKLSAgdmFfc3RhcnQoYXJn
cywgcGF0KTsKLSAgc3ZfdmNhdHB2Zm4oc3YsIHBhdCwgc3RybGVuKHBhdCksICZhcmdzLCBOdWxs
KFNWKiopLCAwLCBOdWxsKGJvb2wqKSk7Ci0gIFN2U0VUTUFHSUMoc3YpOwotICB2YV9lbmQoYXJn
cyk7Ci19Ci0KLSNlbmRpZgotI2VuZGlmCi0jZW5kaWYKLQotLyogc3ZfY2F0cHZmX21nIGRlcGVu
ZHMgb24gc3ZfY2F0cHZmX21nX25vY29udGV4dCAqLwotI2lmbmRlZiBzdl9jYXRwdmZfbWcKLSMg
IGlmZGVmIFBFUkxfSU1QTElDSVRfQ09OVEVYVAotIyAgICBkZWZpbmUgc3ZfY2F0cHZmX21nICAg
UGVybF9zdl9jYXRwdmZfbWdfbm9jb250ZXh0Ci0jICBlbHNlCi0jICAgIGRlZmluZSBzdl9jYXRw
dmZfbWcgICBQZXJsX3N2X2NhdHB2Zl9tZwotIyAgZW5kaWYKLSNlbmRpZgotCi0jaWYgKFBFUkxf
QkNEVkVSU0lPTiA+PSAweDUwMDQwMDApICYmICFkZWZpbmVkKHN2X3ZjYXRwdmZfbWcpCi0jICBk
ZWZpbmUgc3ZfdmNhdHB2Zl9tZyhzdiwgcGF0LCBhcmdzKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCi0gICBTVE1UX1NUQVJUIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIHN2X3ZjYXRwdmZuKHN2
LCBwYXQsIHN0cmxlbihwYXQpLCBhcmdzLCBOdWxsKFNWKiopLCAwLCBOdWxsKGJvb2wqKSk7ICBc
Ci0gICAgIFN2U0VUTUFHSUMoc3YpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCi0gICB9IFNUTVRfRU5ECi0jZW5kaWYKLQotI2lmIChQRVJM
X0JDRFZFUlNJT04gPj0gMHg1MDA0MDAwKSAmJiAhZGVmaW5lZChzdl9zZXRwdmZfbWcpCi0jaWYg
ZGVmaW5lZChORUVEX3N2X3NldHB2Zl9tZykKLXN0YXRpYyB2b2lkIERQUFBfKG15X3N2X3NldHB2
Zl9tZykocFRIWF8gU1YgKiBzdiwgY29uc3QgY2hhciAqIHBhdCwgLi4uKTsKLXN0YXRpYwotI2Vs
c2UKLWV4dGVybiB2b2lkIERQUFBfKG15X3N2X3NldHB2Zl9tZykocFRIWF8gU1YgKiBzdiwgY29u
c3QgY2hhciAqIHBhdCwgLi4uKTsKLSNlbmRpZgotCi0jZGVmaW5lIFBlcmxfc3Zfc2V0cHZmX21n
IERQUFBfKG15X3N2X3NldHB2Zl9tZykKLQotI2lmIGRlZmluZWQoTkVFRF9zdl9zZXRwdmZfbWcp
IHx8IGRlZmluZWQoTkVFRF9zdl9zZXRwdmZfbWdfR0xPQkFMKQotCi12b2lkCi1EUFBQXyhteV9z
dl9zZXRwdmZfbWcpKHBUSFhfIFNWICpzdiwgY29uc3QgY2hhciAqcGF0LCAuLi4pCi17Ci0gIHZh
X2xpc3QgYXJnczsKLSAgdmFfc3RhcnQoYXJncywgcGF0KTsKLSAgc3ZfdnNldHB2Zm4oc3YsIHBh
dCwgc3RybGVuKHBhdCksICZhcmdzLCBOdWxsKFNWKiopLCAwLCBOdWxsKGJvb2wqKSk7Ci0gIFN2
U0VUTUFHSUMoc3YpOwotICB2YV9lbmQoYXJncyk7Ci19Ci0KLSNlbmRpZgotI2VuZGlmCi0KLSNp
ZmRlZiBQRVJMX0lNUExJQ0lUX0NPTlRFWFQKLSNpZiAoUEVSTF9CQ0RWRVJTSU9OID49IDB4NTAw
NDAwMCkgJiYgIWRlZmluZWQoc3Zfc2V0cHZmX21nX25vY29udGV4dCkKLSNpZiBkZWZpbmVkKE5F
RURfc3Zfc2V0cHZmX21nX25vY29udGV4dCkKLXN0YXRpYyB2b2lkIERQUFBfKG15X3N2X3NldHB2
Zl9tZ19ub2NvbnRleHQpKFNWICogc3YsIGNvbnN0IGNoYXIgKiBwYXQsIC4uLik7Ci1zdGF0aWMK
LSNlbHNlCi1leHRlcm4gdm9pZCBEUFBQXyhteV9zdl9zZXRwdmZfbWdfbm9jb250ZXh0KShTViAq
IHN2LCBjb25zdCBjaGFyICogcGF0LCAuLi4pOwotI2VuZGlmCi0KLSNkZWZpbmUgc3Zfc2V0cHZm
X21nX25vY29udGV4dCBEUFBQXyhteV9zdl9zZXRwdmZfbWdfbm9jb250ZXh0KQotI2RlZmluZSBQ
ZXJsX3N2X3NldHB2Zl9tZ19ub2NvbnRleHQgRFBQUF8obXlfc3Zfc2V0cHZmX21nX25vY29udGV4
dCkKLQotI2lmIGRlZmluZWQoTkVFRF9zdl9zZXRwdmZfbWdfbm9jb250ZXh0KSB8fCBkZWZpbmVk
KE5FRURfc3Zfc2V0cHZmX21nX25vY29udGV4dF9HTE9CQUwpCi0KLXZvaWQKLURQUFBfKG15X3N2
X3NldHB2Zl9tZ19ub2NvbnRleHQpKFNWICpzdiwgY29uc3QgY2hhciAqcGF0LCAuLi4pCi17Ci0g
IGRUSFg7Ci0gIHZhX2xpc3QgYXJnczsKLSAgdmFfc3RhcnQoYXJncywgcGF0KTsKLSAgc3ZfdnNl
dHB2Zm4oc3YsIHBhdCwgc3RybGVuKHBhdCksICZhcmdzLCBOdWxsKFNWKiopLCAwLCBOdWxsKGJv
b2wqKSk7Ci0gIFN2U0VUTUFHSUMoc3YpOwotICB2YV9lbmQoYXJncyk7Ci19Ci0KLSNlbmRpZgot
I2VuZGlmCi0jZW5kaWYKLQotLyogc3Zfc2V0cHZmX21nIGRlcGVuZHMgb24gc3Zfc2V0cHZmX21n
X25vY29udGV4dCAqLwotI2lmbmRlZiBzdl9zZXRwdmZfbWcKLSMgIGlmZGVmIFBFUkxfSU1QTElD
SVRfQ09OVEVYVAotIyAgICBkZWZpbmUgc3Zfc2V0cHZmX21nICAgUGVybF9zdl9zZXRwdmZfbWdf
bm9jb250ZXh0Ci0jICBlbHNlCi0jICAgIGRlZmluZSBzdl9zZXRwdmZfbWcgICBQZXJsX3N2X3Nl
dHB2Zl9tZwotIyAgZW5kaWYKLSNlbmRpZgotCi0jaWYgKFBFUkxfQkNEVkVSU0lPTiA+PSAweDUw
MDQwMDApICYmICFkZWZpbmVkKHN2X3ZzZXRwdmZfbWcpCi0jICBkZWZpbmUgc3ZfdnNldHB2Zl9t
ZyhzdiwgcGF0LCBhcmdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0g
ICBTVE1UX1NUQVJUIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCi0gICAgIHN2X3ZzZXRwdmZuKHN2LCBwYXQsIHN0cmxlbihwYXQp
LCBhcmdzLCBOdWxsKFNWKiopLCAwLCBOdWxsKGJvb2wqKSk7ICBcCi0gICAgIFN2U0VUTUFHSUMo
c3YpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBcCi0gICB9IFNUTVRfRU5ECi0jZW5kaWYKLQotI2lmbmRlZiBuZXdTVnB2bl9zaGFyZQotCi0j
aWYgZGVmaW5lZChORUVEX25ld1NWcHZuX3NoYXJlKQotc3RhdGljIFNWICogRFBQUF8obXlfbmV3
U1Zwdm5fc2hhcmUpKHBUSFhfIGNvbnN0IGNoYXIgKnNyYywgSTMyIGxlbiwgVTMyIGhhc2gpOwot
c3RhdGljCi0jZWxzZQotZXh0ZXJuIFNWICogRFBQUF8obXlfbmV3U1Zwdm5fc2hhcmUpKHBUSFhf
IGNvbnN0IGNoYXIgKnNyYywgSTMyIGxlbiwgVTMyIGhhc2gpOwotI2VuZGlmCi0KLSNpZmRlZiBu
ZXdTVnB2bl9zaGFyZQotIyAgdW5kZWYgbmV3U1Zwdm5fc2hhcmUKLSNlbmRpZgotI2RlZmluZSBu
ZXdTVnB2bl9zaGFyZShhLGIsYykgRFBQUF8obXlfbmV3U1Zwdm5fc2hhcmUpKGFUSFhfIGEsYixj
KQotI2RlZmluZSBQZXJsX25ld1NWcHZuX3NoYXJlIERQUFBfKG15X25ld1NWcHZuX3NoYXJlKQot
Ci0jaWYgZGVmaW5lZChORUVEX25ld1NWcHZuX3NoYXJlKSB8fCBkZWZpbmVkKE5FRURfbmV3U1Zw
dm5fc2hhcmVfR0xPQkFMKQotCi1TViAqCi1EUFBQXyhteV9uZXdTVnB2bl9zaGFyZSkocFRIWF8g
Y29uc3QgY2hhciAqc3JjLCBJMzIgbGVuLCBVMzIgaGFzaCkKLXsKLSAgU1YgKnN2OwotICBpZiAo
bGVuIDwgMCkKLSAgICBsZW4gPSAtbGVuOwotICBpZiAoIWhhc2gpCi0gICAgUEVSTF9IQVNIKGhh
c2gsIChjaGFyKikgc3JjLCBsZW4pOwotICBzdiA9IG5ld1NWcHZuKChjaGFyICopIHNyYywgbGVu
KTsKLSAgc3ZfdXBncmFkZShzdiwgU1Z0X1BWSVYpOwotICBTdklWWChzdikgPSBoYXNoOwotICBT
dlJFQURPTkxZX29uKHN2KTsKLSAgU3ZQT0tfb24oc3YpOwotICByZXR1cm4gc3Y7Ci19Ci0KLSNl
bmRpZgotCi0jZW5kaWYKLSNpZm5kZWYgU3ZTSEFSRURfSEFTSAotIyAgZGVmaW5lIFN2U0hBUkVE
X0hBU0goc3YpICAgICAgICAgICAgICAoMCArIFN2VVZYKHN2KSkKLSNlbmRpZgotI2lmbmRlZiBX
QVJOX0FMTAotIyAgZGVmaW5lIFdBUk5fQUxMICAgICAgICAgICAgICAgICAgICAgICAwCi0jZW5k
aWYKLQotI2lmbmRlZiBXQVJOX0NMT1NVUkUKLSMgIGRlZmluZSBXQVJOX0NMT1NVUkUgICAgICAg
ICAgICAgICAgICAgMQotI2VuZGlmCi0KLSNpZm5kZWYgV0FSTl9ERVBSRUNBVEVECi0jICBkZWZp
bmUgV0FSTl9ERVBSRUNBVEVEICAgICAgICAgICAgICAgIDIKLSNlbmRpZgotCi0jaWZuZGVmIFdB
Uk5fRVhJVElORwotIyAgZGVmaW5lIFdBUk5fRVhJVElORyAgICAgICAgICAgICAgICAgICAzCi0j
ZW5kaWYKLQotI2lmbmRlZiBXQVJOX0dMT0IKLSMgIGRlZmluZSBXQVJOX0dMT0IgICAgICAgICAg
ICAgICAgICAgICAgNAotI2VuZGlmCi0KLSNpZm5kZWYgV0FSTl9JTwotIyAgZGVmaW5lIFdBUk5f
SU8gICAgICAgICAgICAgICAgICAgICAgICA1Ci0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX0NMT1NF
RAotIyAgZGVmaW5lIFdBUk5fQ0xPU0VEICAgICAgICAgICAgICAgICAgICA2Ci0jZW5kaWYKLQot
I2lmbmRlZiBXQVJOX0VYRUMKLSMgIGRlZmluZSBXQVJOX0VYRUMgICAgICAgICAgICAgICAgICAg
ICAgNwotI2VuZGlmCi0KLSNpZm5kZWYgV0FSTl9MQVlFUgotIyAgZGVmaW5lIFdBUk5fTEFZRVIg
ICAgICAgICAgICAgICAgICAgICA4Ci0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX05FV0xJTkUKLSMg
IGRlZmluZSBXQVJOX05FV0xJTkUgICAgICAgICAgICAgICAgICAgOQotI2VuZGlmCi0KLSNpZm5k
ZWYgV0FSTl9QSVBFCi0jICBkZWZpbmUgV0FSTl9QSVBFICAgICAgICAgICAgICAgICAgICAgIDEw
Ci0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX1VOT1BFTkVECi0jICBkZWZpbmUgV0FSTl9VTk9QRU5F
RCAgICAgICAgICAgICAgICAgIDExCi0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX01JU0MKLSMgIGRl
ZmluZSBXQVJOX01JU0MgICAgICAgICAgICAgICAgICAgICAgMTIKLSNlbmRpZgotCi0jaWZuZGVm
IFdBUk5fTlVNRVJJQwotIyAgZGVmaW5lIFdBUk5fTlVNRVJJQyAgICAgICAgICAgICAgICAgICAx
MwotI2VuZGlmCi0KLSNpZm5kZWYgV0FSTl9PTkNFCi0jICBkZWZpbmUgV0FSTl9PTkNFICAgICAg
ICAgICAgICAgICAgICAgIDE0Ci0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX09WRVJGTE9XCi0jICBk
ZWZpbmUgV0FSTl9PVkVSRkxPVyAgICAgICAgICAgICAgICAgIDE1Ci0jZW5kaWYKLQotI2lmbmRl
ZiBXQVJOX1BBQ0sKLSMgIGRlZmluZSBXQVJOX1BBQ0sgICAgICAgICAgICAgICAgICAgICAgMTYK
LSNlbmRpZgotCi0jaWZuZGVmIFdBUk5fUE9SVEFCTEUKLSMgIGRlZmluZSBXQVJOX1BPUlRBQkxF
ICAgICAgICAgICAgICAgICAgMTcKLSNlbmRpZgotCi0jaWZuZGVmIFdBUk5fUkVDVVJTSU9OCi0j
ICBkZWZpbmUgV0FSTl9SRUNVUlNJT04gICAgICAgICAgICAgICAgIDE4Ci0jZW5kaWYKLQotI2lm
bmRlZiBXQVJOX1JFREVGSU5FCi0jICBkZWZpbmUgV0FSTl9SRURFRklORSAgICAgICAgICAgICAg
ICAgIDE5Ci0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX1JFR0VYUAotIyAgZGVmaW5lIFdBUk5fUkVH
RVhQICAgICAgICAgICAgICAgICAgICAyMAotI2VuZGlmCi0KLSNpZm5kZWYgV0FSTl9TRVZFUkUK
LSMgIGRlZmluZSBXQVJOX1NFVkVSRSAgICAgICAgICAgICAgICAgICAgMjEKLSNlbmRpZgotCi0j
aWZuZGVmIFdBUk5fREVCVUdHSU5HCi0jICBkZWZpbmUgV0FSTl9ERUJVR0dJTkcgICAgICAgICAg
ICAgICAgIDIyCi0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX0lOUExBQ0UKLSMgIGRlZmluZSBXQVJO
X0lOUExBQ0UgICAgICAgICAgICAgICAgICAgMjMKLSNlbmRpZgotCi0jaWZuZGVmIFdBUk5fSU5U
RVJOQUwKLSMgIGRlZmluZSBXQVJOX0lOVEVSTkFMICAgICAgICAgICAgICAgICAgMjQKLSNlbmRp
ZgotCi0jaWZuZGVmIFdBUk5fTUFMTE9DCi0jICBkZWZpbmUgV0FSTl9NQUxMT0MgICAgICAgICAg
ICAgICAgICAgIDI1Ci0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX1NJR05BTAotIyAgZGVmaW5lIFdB
Uk5fU0lHTkFMICAgICAgICAgICAgICAgICAgICAyNgotI2VuZGlmCi0KLSNpZm5kZWYgV0FSTl9T
VUJTVFIKLSMgIGRlZmluZSBXQVJOX1NVQlNUUiAgICAgICAgICAgICAgICAgICAgMjcKLSNlbmRp
ZgotCi0jaWZuZGVmIFdBUk5fU1lOVEFYCi0jICBkZWZpbmUgV0FSTl9TWU5UQVggICAgICAgICAg
ICAgICAgICAgIDI4Ci0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX0FNQklHVU9VUwotIyAgZGVmaW5l
IFdBUk5fQU1CSUdVT1VTICAgICAgICAgICAgICAgICAyOQotI2VuZGlmCi0KLSNpZm5kZWYgV0FS
Tl9CQVJFV09SRAotIyAgZGVmaW5lIFdBUk5fQkFSRVdPUkQgICAgICAgICAgICAgICAgICAzMAot
I2VuZGlmCi0KLSNpZm5kZWYgV0FSTl9ESUdJVAotIyAgZGVmaW5lIFdBUk5fRElHSVQgICAgICAg
ICAgICAgICAgICAgICAzMQotI2VuZGlmCi0KLSNpZm5kZWYgV0FSTl9QQVJFTlRIRVNJUwotIyAg
ZGVmaW5lIFdBUk5fUEFSRU5USEVTSVMgICAgICAgICAgICAgICAzMgotI2VuZGlmCi0KLSNpZm5k
ZWYgV0FSTl9QUkVDRURFTkNFCi0jICBkZWZpbmUgV0FSTl9QUkVDRURFTkNFICAgICAgICAgICAg
ICAgIDMzCi0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX1BSSU5URgotIyAgZGVmaW5lIFdBUk5fUFJJ
TlRGICAgICAgICAgICAgICAgICAgICAzNAotI2VuZGlmCi0KLSNpZm5kZWYgV0FSTl9QUk9UT1RZ
UEUKLSMgIGRlZmluZSBXQVJOX1BST1RPVFlQRSAgICAgICAgICAgICAgICAgMzUKLSNlbmRpZgot
Ci0jaWZuZGVmIFdBUk5fUVcKLSMgIGRlZmluZSBXQVJOX1FXICAgICAgICAgICAgICAgICAgICAg
ICAgMzYKLSNlbmRpZgotCi0jaWZuZGVmIFdBUk5fUkVTRVJWRUQKLSMgIGRlZmluZSBXQVJOX1JF
U0VSVkVEICAgICAgICAgICAgICAgICAgMzcKLSNlbmRpZgotCi0jaWZuZGVmIFdBUk5fU0VNSUNP
TE9OCi0jICBkZWZpbmUgV0FSTl9TRU1JQ09MT04gICAgICAgICAgICAgICAgIDM4Ci0jZW5kaWYK
LQotI2lmbmRlZiBXQVJOX1RBSU5UCi0jICBkZWZpbmUgV0FSTl9UQUlOVCAgICAgICAgICAgICAg
ICAgICAgIDM5Ci0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX1RIUkVBRFMKLSMgIGRlZmluZSBXQVJO
X1RIUkVBRFMgICAgICAgICAgICAgICAgICAgNDAKLSNlbmRpZgotCi0jaWZuZGVmIFdBUk5fVU5J
TklUSUFMSVpFRAotIyAgZGVmaW5lIFdBUk5fVU5JTklUSUFMSVpFRCAgICAgICAgICAgICA0MQot
I2VuZGlmCi0KLSNpZm5kZWYgV0FSTl9VTlBBQ0sKLSMgIGRlZmluZSBXQVJOX1VOUEFDSyAgICAg
ICAgICAgICAgICAgICAgNDIKLSNlbmRpZgotCi0jaWZuZGVmIFdBUk5fVU5USUUKLSMgIGRlZmlu
ZSBXQVJOX1VOVElFICAgICAgICAgICAgICAgICAgICAgNDMKLSNlbmRpZgotCi0jaWZuZGVmIFdB
Uk5fVVRGOAotIyAgZGVmaW5lIFdBUk5fVVRGOCAgICAgICAgICAgICAgICAgICAgICA0NAotI2Vu
ZGlmCi0KLSNpZm5kZWYgV0FSTl9WT0lECi0jICBkZWZpbmUgV0FSTl9WT0lEICAgICAgICAgICAg
ICAgICAgICAgIDQ1Ci0jZW5kaWYKLQotI2lmbmRlZiBXQVJOX0FTU0VSVElPTlMKLSMgIGRlZmlu
ZSBXQVJOX0FTU0VSVElPTlMgICAgICAgICAgICAgICAgNDYKLSNlbmRpZgotI2lmbmRlZiBwYWNr
V0FSTgotIyAgZGVmaW5lIHBhY2tXQVJOKGEpICAgICAgICAgICAgICAgICAgICAoYSkKLSNlbmRp
ZgotCi0jaWZuZGVmIGNrV0FSTgotIyAgaWZkZWYgR19XQVJOX09OCi0jICAgIGRlZmluZSAgY2tX
QVJOKGEpICAgICAgICAgICAgICAgICAgKFBMX2Rvd2FybiAmIEdfV0FSTl9PTikKLSMgIGVsc2UK
LSMgICAgZGVmaW5lICBja1dBUk4oYSkgICAgICAgICAgICAgICAgICBQTF9kb3dhcm4KLSMgIGVu
ZGlmCi0jZW5kaWYKLQotI2lmIChQRVJMX0JDRFZFUlNJT04gPj0gMHg1MDA0MDAwKSAmJiAhZGVm
aW5lZCh3YXJuZXIpCi0jaWYgZGVmaW5lZChORUVEX3dhcm5lcikKLXN0YXRpYyB2b2lkIERQUFBf
KG15X3dhcm5lcikoVTMyIGVyciwgY29uc3QgY2hhciAqcGF0LCAuLi4pOwotc3RhdGljCi0jZWxz
ZQotZXh0ZXJuIHZvaWQgRFBQUF8obXlfd2FybmVyKShVMzIgZXJyLCBjb25zdCBjaGFyICpwYXQs
IC4uLik7Ci0jZW5kaWYKLQotI2RlZmluZSBQZXJsX3dhcm5lciBEUFBQXyhteV93YXJuZXIpCi0K
LSNpZiBkZWZpbmVkKE5FRURfd2FybmVyKSB8fCBkZWZpbmVkKE5FRURfd2FybmVyX0dMT0JBTCkK
LQotdm9pZAotRFBQUF8obXlfd2FybmVyKShVMzIgZXJyLCBjb25zdCBjaGFyICpwYXQsIC4uLikK
LXsKLSAgU1YgKnN2OwotICB2YV9saXN0IGFyZ3M7Ci0KLSAgUEVSTF9VTlVTRURfQVJHKGVycik7
Ci0KLSAgdmFfc3RhcnQoYXJncywgcGF0KTsKLSAgc3YgPSB2bmV3U1ZwdmYocGF0LCAmYXJncyk7
Ci0gIHZhX2VuZChhcmdzKTsKLSAgc3ZfMm1vcnRhbChzdik7Ci0gIHdhcm4oIiVzIiwgU3ZQVl9u
b2xlbihzdikpOwotfQotCi0jZGVmaW5lIHdhcm5lciAgUGVybF93YXJuZXIKLQotI2RlZmluZSBQ
ZXJsX3dhcm5lcl9ub2NvbnRleHQgIFBlcmxfd2FybmVyCi0KLSNlbmRpZgotI2VuZGlmCi0KLS8q
IGNvbmNhdGVuYXRpbmcgd2l0aCAiIiBlbnN1cmVzIHRoYXQgb25seSBsaXRlcmFsIHN0cmluZ3Mg
YXJlIGFjY2VwdGVkIGFzIGFyZ3VtZW50Ci0gKiBub3RlIHRoYXQgU1RSX1dJVEhfTEVOKCkgY2Fu
J3QgYmUgdXNlZCBhcyBhcmd1bWVudCB0byBtYWNyb3Mgb3IgZnVuY3Rpb25zIHRoYXQKLSAqIHVu
ZGVyIHNvbWUgY29uZmlndXJhdGlvbnMgbWlnaHQgYmUgbWFjcm9zCi0gKi8KLSNpZm5kZWYgU1RS
X1dJVEhfTEVOCi0jICBkZWZpbmUgU1RSX1dJVEhfTEVOKHMpICAgICAgICAgICAgICAgIChzICIi
KSwgKHNpemVvZihzKS0xKQotI2VuZGlmCi0jaWZuZGVmIG5ld1NWcHZzCi0jICBkZWZpbmUgbmV3
U1ZwdnMoc3RyKSAgICAgICAgICAgICAgICAgIG5ld1NWcHZuKHN0ciAiIiwgc2l6ZW9mKHN0cikg
LSAxKQotI2VuZGlmCi0KLSNpZm5kZWYgc3ZfY2F0cHZzCi0jICBkZWZpbmUgc3ZfY2F0cHZzKHN2
LCBzdHIpICAgICAgICAgICAgIHN2X2NhdHB2bihzdiwgc3RyICIiLCBzaXplb2Yoc3RyKSAtIDEp
Ci0jZW5kaWYKLQotI2lmbmRlZiBzdl9zZXRwdnMKLSMgIGRlZmluZSBzdl9zZXRwdnMoc3YsIHN0
cikgICAgICAgICAgICAgc3Zfc2V0cHZuKHN2LCBzdHIgIiIsIHNpemVvZihzdHIpIC0gMSkKLSNl
bmRpZgotCi0jaWZuZGVmIGh2X2ZldGNocwotIyAgZGVmaW5lIGh2X2ZldGNocyhodiwga2V5LCBs
dmFsKSAgICAgICBodl9mZXRjaChodiwga2V5ICIiLCBzaXplb2Yoa2V5KSAtIDEsIGx2YWwpCi0j
ZW5kaWYKLQotI2lmbmRlZiBodl9zdG9yZXMKLSMgIGRlZmluZSBodl9zdG9yZXMoaHYsIGtleSwg
dmFsKSAgICAgICAgaHZfc3RvcmUoaHYsIGtleSAiIiwgc2l6ZW9mKGtleSkgLSAxLCB2YWwsIDAp
Ci0jZW5kaWYKLSNpZm5kZWYgU3ZHRVRNQUdJQwotIyAgZGVmaW5lIFN2R0VUTUFHSUMoeCkgICAg
ICAgICAgICAgICAgICBTVE1UX1NUQVJUIHsgaWYgKFN2R01BR0lDQUwoeCkpIG1nX2dldCh4KTsg
fSBTVE1UX0VORAotI2VuZGlmCi0jaWZuZGVmIFBFUkxfTUFHSUNfc3YKLSMgIGRlZmluZSBQRVJM
X01BR0lDX3N2ICAgICAgICAgICAgICAgICAgJ1wwJwotI2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9N
QUdJQ19vdmVybG9hZAotIyAgZGVmaW5lIFBFUkxfTUFHSUNfb3ZlcmxvYWQgICAgICAgICAgICAn
QScKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfTUFHSUNfb3ZlcmxvYWRfZWxlbQotIyAgZGVmaW5l
IFBFUkxfTUFHSUNfb3ZlcmxvYWRfZWxlbSAgICAgICAnYScKLSNlbmRpZgotCi0jaWZuZGVmIFBF
UkxfTUFHSUNfb3ZlcmxvYWRfdGFibGUKLSMgIGRlZmluZSBQRVJMX01BR0lDX292ZXJsb2FkX3Rh
YmxlICAgICAgJ2MnCi0jZW5kaWYKLQotI2lmbmRlZiBQRVJMX01BR0lDX2JtCi0jICBkZWZpbmUg
UEVSTF9NQUdJQ19ibSAgICAgICAgICAgICAgICAgICdCJwotI2VuZGlmCi0KLSNpZm5kZWYgUEVS
TF9NQUdJQ19yZWdkYXRhCi0jICBkZWZpbmUgUEVSTF9NQUdJQ19yZWdkYXRhICAgICAgICAgICAg
ICdEJwotI2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9NQUdJQ19yZWdkYXR1bQotIyAgZGVmaW5lIFBF
UkxfTUFHSUNfcmVnZGF0dW0gICAgICAgICAgICAnZCcKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxf
TUFHSUNfZW52Ci0jICBkZWZpbmUgUEVSTF9NQUdJQ19lbnYgICAgICAgICAgICAgICAgICdFJwot
I2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9NQUdJQ19lbnZlbGVtCi0jICBkZWZpbmUgUEVSTF9NQUdJ
Q19lbnZlbGVtICAgICAgICAgICAgICdlJwotI2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9NQUdJQ19m
bQotIyAgZGVmaW5lIFBFUkxfTUFHSUNfZm0gICAgICAgICAgICAgICAgICAnZicKLSNlbmRpZgot
Ci0jaWZuZGVmIFBFUkxfTUFHSUNfcmVnZXhfZ2xvYmFsCi0jICBkZWZpbmUgUEVSTF9NQUdJQ19y
ZWdleF9nbG9iYWwgICAgICAgICdnJwotI2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9NQUdJQ19pc2EK
LSMgIGRlZmluZSBQRVJMX01BR0lDX2lzYSAgICAgICAgICAgICAgICAgJ0knCi0jZW5kaWYKLQot
I2lmbmRlZiBQRVJMX01BR0lDX2lzYWVsZW0KLSMgIGRlZmluZSBQRVJMX01BR0lDX2lzYWVsZW0g
ICAgICAgICAgICAgJ2knCi0jZW5kaWYKLQotI2lmbmRlZiBQRVJMX01BR0lDX25rZXlzCi0jICBk
ZWZpbmUgUEVSTF9NQUdJQ19ua2V5cyAgICAgICAgICAgICAgICdrJwotI2VuZGlmCi0KLSNpZm5k
ZWYgUEVSTF9NQUdJQ19kYmZpbGUKLSMgIGRlZmluZSBQRVJMX01BR0lDX2RiZmlsZSAgICAgICAg
ICAgICAgJ0wnCi0jZW5kaWYKLQotI2lmbmRlZiBQRVJMX01BR0lDX2RibGluZQotIyAgZGVmaW5l
IFBFUkxfTUFHSUNfZGJsaW5lICAgICAgICAgICAgICAnbCcKLSNlbmRpZgotCi0jaWZuZGVmIFBF
UkxfTUFHSUNfbXV0ZXgKLSMgIGRlZmluZSBQRVJMX01BR0lDX211dGV4ICAgICAgICAgICAgICAg
J20nCi0jZW5kaWYKLQotI2lmbmRlZiBQRVJMX01BR0lDX3NoYXJlZAotIyAgZGVmaW5lIFBFUkxf
TUFHSUNfc2hhcmVkICAgICAgICAgICAgICAnTicKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfTUFH
SUNfc2hhcmVkX3NjYWxhcgotIyAgZGVmaW5lIFBFUkxfTUFHSUNfc2hhcmVkX3NjYWxhciAgICAg
ICAnbicKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfTUFHSUNfY29sbHhmcm0KLSMgIGRlZmluZSBQ
RVJMX01BR0lDX2NvbGx4ZnJtICAgICAgICAgICAgJ28nCi0jZW5kaWYKLQotI2lmbmRlZiBQRVJM
X01BR0lDX3RpZWQKLSMgIGRlZmluZSBQRVJMX01BR0lDX3RpZWQgICAgICAgICAgICAgICAgJ1An
Ci0jZW5kaWYKLQotI2lmbmRlZiBQRVJMX01BR0lDX3RpZWRlbGVtCi0jICBkZWZpbmUgUEVSTF9N
QUdJQ190aWVkZWxlbSAgICAgICAgICAgICdwJwotI2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9NQUdJ
Q190aWVkc2NhbGFyCi0jICBkZWZpbmUgUEVSTF9NQUdJQ190aWVkc2NhbGFyICAgICAgICAgICdx
JwotI2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9NQUdJQ19xcgotIyAgZGVmaW5lIFBFUkxfTUFHSUNf
cXIgICAgICAgICAgICAgICAgICAncicKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfTUFHSUNfc2ln
Ci0jICBkZWZpbmUgUEVSTF9NQUdJQ19zaWcgICAgICAgICAgICAgICAgICdTJwotI2VuZGlmCi0K
LSNpZm5kZWYgUEVSTF9NQUdJQ19zaWdlbGVtCi0jICBkZWZpbmUgUEVSTF9NQUdJQ19zaWdlbGVt
ICAgICAgICAgICAgICdzJwotI2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9NQUdJQ190YWludAotIyAg
ZGVmaW5lIFBFUkxfTUFHSUNfdGFpbnQgICAgICAgICAgICAgICAndCcKLSNlbmRpZgotCi0jaWZu
ZGVmIFBFUkxfTUFHSUNfdXZhcgotIyAgZGVmaW5lIFBFUkxfTUFHSUNfdXZhciAgICAgICAgICAg
ICAgICAnVScKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfTUFHSUNfdXZhcl9lbGVtCi0jICBkZWZp
bmUgUEVSTF9NQUdJQ191dmFyX2VsZW0gICAgICAgICAgICd1JwotI2VuZGlmCi0KLSNpZm5kZWYg
UEVSTF9NQUdJQ192c3RyaW5nCi0jICBkZWZpbmUgUEVSTF9NQUdJQ192c3RyaW5nICAgICAgICAg
ICAgICdWJwotI2VuZGlmCi0KLSNpZm5kZWYgUEVSTF9NQUdJQ192ZWMKLSMgIGRlZmluZSBQRVJM
X01BR0lDX3ZlYyAgICAgICAgICAgICAgICAgJ3YnCi0jZW5kaWYKLQotI2lmbmRlZiBQRVJMX01B
R0lDX3V0ZjgKLSMgIGRlZmluZSBQRVJMX01BR0lDX3V0ZjggICAgICAgICAgICAgICAgJ3cnCi0j
ZW5kaWYKLQotI2lmbmRlZiBQRVJMX01BR0lDX3N1YnN0cgotIyAgZGVmaW5lIFBFUkxfTUFHSUNf
c3Vic3RyICAgICAgICAgICAgICAneCcKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfTUFHSUNfZGVm
ZWxlbQotIyAgZGVmaW5lIFBFUkxfTUFHSUNfZGVmZWxlbSAgICAgICAgICAgICAneScKLSNlbmRp
ZgotCi0jaWZuZGVmIFBFUkxfTUFHSUNfZ2xvYgotIyAgZGVmaW5lIFBFUkxfTUFHSUNfZ2xvYiAg
ICAgICAgICAgICAgICAnKicKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfTUFHSUNfYXJ5bGVuCi0j
ICBkZWZpbmUgUEVSTF9NQUdJQ19hcnlsZW4gICAgICAgICAgICAgICcjJwotI2VuZGlmCi0KLSNp
Zm5kZWYgUEVSTF9NQUdJQ19wb3MKLSMgIGRlZmluZSBQRVJMX01BR0lDX3BvcyAgICAgICAgICAg
ICAgICAgJy4nCi0jZW5kaWYKLQotI2lmbmRlZiBQRVJMX01BR0lDX2JhY2tyZWYKLSMgIGRlZmlu
ZSBQRVJMX01BR0lDX2JhY2tyZWYgICAgICAgICAgICAgJzwnCi0jZW5kaWYKLQotI2lmbmRlZiBQ
RVJMX01BR0lDX2V4dAotIyAgZGVmaW5lIFBFUkxfTUFHSUNfZXh0ICAgICAgICAgICAgICAgICAn
ficKLSNlbmRpZgotCi0vKiBUaGF0J3MgdGhlIGJlc3Qgd2UgY2FuIGRvLi4uICovCi0jaWZuZGVm
IHN2X2NhdHB2bl9ub21nCi0jICBkZWZpbmUgc3ZfY2F0cHZuX25vbWcgICAgICAgICAgICAgICAg
IHN2X2NhdHB2bgotI2VuZGlmCi0KLSNpZm5kZWYgc3ZfY2F0c3Zfbm9tZwotIyAgZGVmaW5lIHN2
X2NhdHN2X25vbWcgICAgICAgICAgICAgICAgICBzdl9jYXRzdgotI2VuZGlmCi0KLSNpZm5kZWYg
c3Zfc2V0c3Zfbm9tZwotIyAgZGVmaW5lIHN2X3NldHN2X25vbWcgICAgICAgICAgICAgICAgICBz
dl9zZXRzdgotI2VuZGlmCi0KLSNpZm5kZWYgc3ZfcHZuX25vbWcKLSMgIGRlZmluZSBzdl9wdm5f
bm9tZyAgICAgICAgICAgICAgICAgICAgc3ZfcHZuCi0jZW5kaWYKLQotI2lmbmRlZiBTdklWX25v
bWcKLSMgIGRlZmluZSBTdklWX25vbWcgICAgICAgICAgICAgICAgICAgICAgU3ZJVgotI2VuZGlm
Ci0KLSNpZm5kZWYgU3ZVVl9ub21nCi0jICBkZWZpbmUgU3ZVVl9ub21nICAgICAgICAgICAgICAg
ICAgICAgIFN2VVYKLSNlbmRpZgotCi0jaWZuZGVmIHN2X2NhdHB2X21nCi0jICBkZWZpbmUgc3Zf
Y2F0cHZfbWcoc3YsIHB0cikgICAgICAgICAgXAotICAgU1RNVF9TVEFSVCB7ICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKLSAgICAgU1YgKlRlTXBTdiA9IHN2OyAgICAgICAgICAgICAgICAgICBc
Ci0gICAgIHN2X2NhdHB2KFRlTXBTdixwdHIpOyAgICAgICAgICAgICAgXAotICAgICBTdlNFVE1B
R0lDKFRlTXBTdik7ICAgICAgICAgICAgICAgIFwKLSAgIH0gU1RNVF9FTkQKLSNlbmRpZgotCi0j
aWZuZGVmIHN2X2NhdHB2bl9tZwotIyAgZGVmaW5lIHN2X2NhdHB2bl9tZyhzdiwgcHRyLCBsZW4p
ICAgIFwKLSAgIFNUTVRfU1RBUlQgeyAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIFNW
ICpUZU1wU3YgPSBzdjsgICAgICAgICAgICAgICAgICAgXAotICAgICBzdl9jYXRwdm4oVGVNcFN2
LHB0cixsZW4pOyAgICAgICAgIFwKLSAgICAgU3ZTRVRNQUdJQyhUZU1wU3YpOyAgICAgICAgICAg
ICAgICBcCi0gICB9IFNUTVRfRU5ECi0jZW5kaWYKLQotI2lmbmRlZiBzdl9jYXRzdl9tZwotIyAg
ZGVmaW5lIHN2X2NhdHN2X21nKGRzdiwgc3N2KSAgICAgICAgIFwKLSAgIFNUTVRfU1RBUlQgeyAg
ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIFNWICpUZU1wU3YgPSBkc3Y7ICAgICAgICAg
ICAgICAgICAgXAotICAgICBzdl9jYXRzdihUZU1wU3Ysc3N2KTsgICAgICAgICAgICAgIFwKLSAg
ICAgU3ZTRVRNQUdJQyhUZU1wU3YpOyAgICAgICAgICAgICAgICBcCi0gICB9IFNUTVRfRU5ECi0j
ZW5kaWYKLQotI2lmbmRlZiBzdl9zZXRpdl9tZwotIyAgZGVmaW5lIHN2X3NldGl2X21nKHN2LCBp
KSAgICAgICAgICAgIFwKLSAgIFNUTVRfU1RBUlQgeyAgICAgICAgICAgICAgICAgICAgICAgICBc
Ci0gICAgIFNWICpUZU1wU3YgPSBzdjsgICAgICAgICAgICAgICAgICAgXAotICAgICBzdl9zZXRp
dihUZU1wU3YsaSk7ICAgICAgICAgICAgICAgIFwKLSAgICAgU3ZTRVRNQUdJQyhUZU1wU3YpOyAg
ICAgICAgICAgICAgICBcCi0gICB9IFNUTVRfRU5ECi0jZW5kaWYKLQotI2lmbmRlZiBzdl9zZXRu
dl9tZwotIyAgZGVmaW5lIHN2X3NldG52X21nKHN2LCBudW0pICAgICAgICAgIFwKLSAgIFNUTVRf
U1RBUlQgeyAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIFNWICpUZU1wU3YgPSBzdjsg
ICAgICAgICAgICAgICAgICAgXAotICAgICBzdl9zZXRudihUZU1wU3YsbnVtKTsgICAgICAgICAg
ICAgIFwKLSAgICAgU3ZTRVRNQUdJQyhUZU1wU3YpOyAgICAgICAgICAgICAgICBcCi0gICB9IFNU
TVRfRU5ECi0jZW5kaWYKLQotI2lmbmRlZiBzdl9zZXRwdl9tZwotIyAgZGVmaW5lIHN2X3NldHB2
X21nKHN2LCBwdHIpICAgICAgICAgIFwKLSAgIFNUTVRfU1RBUlQgeyAgICAgICAgICAgICAgICAg
ICAgICAgICBcCi0gICAgIFNWICpUZU1wU3YgPSBzdjsgICAgICAgICAgICAgICAgICAgXAotICAg
ICBzdl9zZXRwdihUZU1wU3YscHRyKTsgICAgICAgICAgICAgIFwKLSAgICAgU3ZTRVRNQUdJQyhU
ZU1wU3YpOyAgICAgICAgICAgICAgICBcCi0gICB9IFNUTVRfRU5ECi0jZW5kaWYKLQotI2lmbmRl
ZiBzdl9zZXRwdm5fbWcKLSMgIGRlZmluZSBzdl9zZXRwdm5fbWcoc3YsIHB0ciwgbGVuKSAgICBc
Ci0gICBTVE1UX1NUQVJUIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICBTViAqVGVN
cFN2ID0gc3Y7ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgc3Zfc2V0cHZuKFRlTXBTdixwdHIs
bGVuKTsgICAgICAgICBcCi0gICAgIFN2U0VUTUFHSUMoVGVNcFN2KTsgICAgICAgICAgICAgICAg
XAotICAgfSBTVE1UX0VORAotI2VuZGlmCi0KLSNpZm5kZWYgc3Zfc2V0c3ZfbWcKLSMgIGRlZmlu
ZSBzdl9zZXRzdl9tZyhkc3YsIHNzdikgICAgICAgICBcCi0gICBTVE1UX1NUQVJUIHsgICAgICAg
ICAgICAgICAgICAgICAgICAgXAotICAgICBTViAqVGVNcFN2ID0gZHN2OyAgICAgICAgICAgICAg
ICAgIFwKLSAgICAgc3Zfc2V0c3YoVGVNcFN2LHNzdik7ICAgICAgICAgICAgICBcCi0gICAgIFN2
U0VUTUFHSUMoVGVNcFN2KTsgICAgICAgICAgICAgICAgXAotICAgfSBTVE1UX0VORAotI2VuZGlm
Ci0KLSNpZm5kZWYgc3Zfc2V0dXZfbWcKLSMgIGRlZmluZSBzdl9zZXR1dl9tZyhzdiwgaSkgICAg
ICAgICAgICBcCi0gICBTVE1UX1NUQVJUIHsgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAg
ICBTViAqVGVNcFN2ID0gc3Y7ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgc3Zfc2V0dXYoVGVN
cFN2LGkpOyAgICAgICAgICAgICAgICBcCi0gICAgIFN2U0VUTUFHSUMoVGVNcFN2KTsgICAgICAg
ICAgICAgICAgXAotICAgfSBTVE1UX0VORAotI2VuZGlmCi0KLSNpZm5kZWYgc3ZfdXNlcHZuX21n
Ci0jICBkZWZpbmUgc3ZfdXNlcHZuX21nKHN2LCBwdHIsIGxlbikgICAgXAotICAgU1RNVF9TVEFS
VCB7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgU1YgKlRlTXBTdiA9IHN2OyAgICAg
ICAgICAgICAgICAgICBcCi0gICAgIHN2X3VzZXB2bihUZU1wU3YscHRyLGxlbik7ICAgICAgICAg
XAotICAgICBTdlNFVE1BR0lDKFRlTXBTdik7ICAgICAgICAgICAgICAgIFwKLSAgIH0gU1RNVF9F
TkQKLSNlbmRpZgotI2lmbmRlZiBTdlZTVFJJTkdfbWcKLSMgIGRlZmluZSBTdlZTVFJJTkdfbWco
c3YpICAgICAgICAgICAgICAgKFN2TUFHSUNBTChzdikgPyBtZ19maW5kKHN2LCBQRVJMX01BR0lD
X3ZzdHJpbmcpIDogTlVMTCkKLSNlbmRpZgotCi0vKiBIaW50OiBzdl9tYWdpY19wb3J0YWJsZQot
ICogVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgZnVuY3Rpb24gdGhhdCBpcyBvbmx5IGF2YWlsYWJs
ZSB3aXRoCi0gKiBEZXZlbDo6UFBQb3J0LiBJdCBpcyBOT1QgaW4gdGhlIHBlcmwgY29yZS4KLSAq
IEl0cyBwdXJwb3NlIGlzIHRvIG1pbWljIHRoZSA1LjguMCBiZWhhdmlvdXIgb2Ygc3ZfbWFnaWMo
KSB3aGVuCi0gKiBpdCBpcyBiZWluZyBwYXNzZWQgYSBuYW1lIHBvaW50ZXIgd2l0aCBuYW1sZW4g
PT0gMC4gSW4gdGhhdAotICogY2FzZSwgcGVybCA1LjguMCBhbmQgbGF0ZXIgc3RvcmUgdGhlIHBv
aW50ZXIsIG5vdCBhIGNvcHkgb2YgaXQuCi0gKiBUaGUgY29tcGF0aWJpbGl0eSBjYW4gYmUgcHJv
dmlkZWQgYmFjayB0byBwZXJsIDUuMDA0LiBXaXRoCi0gKiBlYXJsaWVyIHZlcnNpb25zLCB0aGUg
Y29kZSB3aWxsIG5vdCBjb21waWxlLgotICovCi0KLSNpZiAoUEVSTF9CQ0RWRVJTSU9OIDwgMHg1
MDA0MDAwKQotCi0gIC8qIGNvZGUgdGhhdCB1c2VzIHN2X21hZ2ljX3BvcnRhYmxlIHdpbGwgbm90
IGNvbXBpbGUgKi8KLQotI2VsaWYgKFBFUkxfQkNEVkVSU0lPTiA8IDB4NTAwODAwMCkKLQotIyAg
ZGVmaW5lIHN2X21hZ2ljX3BvcnRhYmxlKHN2LCBvYmosIGhvdywgbmFtZSwgbmFtbGVuKSAgICAg
XAotICAgU1RNVF9TVEFSVCB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAotICAgICBTViAqU3ZNcF9zdiA9IChzdik7ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAotICAgICBjaGFyICpTdk1wX25hbWUgPSAoY2hhciAqKSAobmFtZSk7ICAg
ICAgICAgICAgICAgICAgICAgXAotICAgICBJMzIgU3ZNcF9uYW1sZW4gPSAobmFtbGVuKTsgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICBpZiAoU3ZNcF9uYW1lICYmIFN2TXBfbmFt
bGVuID09IDApICAgICAgICAgICAgICAgICAgICAgXAotICAgICB7ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgIE1BR0lDICptZzsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgIHN2X21h
Z2ljKFN2TXBfc3YsIG9iaiwgaG93LCAwLCAwKTsgICAgICAgICAgICAgICAgICAgXAotICAgICAg
IG1nID0gU3ZNQUdJQyhTdk1wX3N2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAot
ICAgICAgIG1nLT5tZ19sZW4gPSAtNDI7IC8qIFhYWDogdGhpcyBpcyB0aGUgdHJpY2t5IHBhcnQg
Ki8gXAotICAgICAgIG1nLT5tZ19wdHIgPSBTdk1wX25hbWU7ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAotICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAotICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAotICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgIHN2X21hZ2ljKFN2TXBfc3YsIG9i
aiwgaG93LCBTdk1wX25hbWUsIFN2TXBfbmFtbGVuKTsgXAotICAgICB9ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgfSBTVE1UX0VORAot
Ci0jZWxzZQotCi0jICBkZWZpbmUgc3ZfbWFnaWNfcG9ydGFibGUoYSwgYiwgYywgZCwgZSkgIHN2
X21hZ2ljKGEsIGIsIGMsIGQsIGUpCi0KLSNlbmRpZgotCi0jaWZkZWYgVVNFX0lUSFJFQURTCi0j
aWZuZGVmIENvcEZJTEUKLSMgIGRlZmluZSBDb3BGSUxFKGMpICAgICAgICAgICAgICAgICAgICAg
KChjKS0+Y29wX2ZpbGUpCi0jZW5kaWYKLQotI2lmbmRlZiBDb3BGSUxFR1YKLSMgIGRlZmluZSBD
b3BGSUxFR1YoYykgICAgICAgICAgICAgICAgICAgKENvcEZJTEUoYykgPyBndl9mZXRjaGZpbGUo
Q29wRklMRShjKSkgOiBOdWxsZ3YpCi0jZW5kaWYKLQotI2lmbmRlZiBDb3BGSUxFX3NldAotIyAg
ZGVmaW5lIENvcEZJTEVfc2V0KGMscHYpICAgICAgICAgICAgICAoKGMpLT5jb3BfZmlsZSA9IHNh
dmVwdihwdikpCi0jZW5kaWYKLQotI2lmbmRlZiBDb3BGSUxFU1YKLSMgIGRlZmluZSBDb3BGSUxF
U1YoYykgICAgICAgICAgICAgICAgICAgKENvcEZJTEUoYykgPyBHdlNWKGd2X2ZldGNoZmlsZShD
b3BGSUxFKGMpKSkgOiBOdWxsc3YpCi0jZW5kaWYKLQotI2lmbmRlZiBDb3BGSUxFQVYKLSMgIGRl
ZmluZSBDb3BGSUxFQVYoYykgICAgICAgICAgICAgICAgICAgKENvcEZJTEUoYykgPyBHdkFWKGd2
X2ZldGNoZmlsZShDb3BGSUxFKGMpKSkgOiBOdWxsYXYpCi0jZW5kaWYKLQotI2lmbmRlZiBDb3BT
VEFTSFBWCi0jICBkZWZpbmUgQ29wU1RBU0hQVihjKSAgICAgICAgICAgICAgICAgICgoYyktPmNv
cF9zdGFzaHB2KQotI2VuZGlmCi0KLSNpZm5kZWYgQ29wU1RBU0hQVl9zZXQKLSMgIGRlZmluZSBD
b3BTVEFTSFBWX3NldChjLHB2KSAgICAgICAgICAgKChjKS0+Y29wX3N0YXNocHYgPSAoKHB2KSA/
IHNhdmVwdihwdikgOiBOdWxsY2gpKQotI2VuZGlmCi0KLSNpZm5kZWYgQ29wU1RBU0gKLSMgIGRl
ZmluZSBDb3BTVEFTSChjKSAgICAgICAgICAgICAgICAgICAgKENvcFNUQVNIUFYoYykgPyBndl9z
dGFzaHB2KENvcFNUQVNIUFYoYyksR1ZfQUREKSA6IE51bGxodikKLSNlbmRpZgotCi0jaWZuZGVm
IENvcFNUQVNIX3NldAotIyAgZGVmaW5lIENvcFNUQVNIX3NldChjLGh2KSAgICAgICAgICAgICBD
b3BTVEFTSFBWX3NldChjLCAoaHYpID8gSHZOQU1FKGh2KSA6IE51bGxjaCkKLSNlbmRpZgotCi0j
aWZuZGVmIENvcFNUQVNIX2VxCi0jICBkZWZpbmUgQ29wU1RBU0hfZXEoYyxodikgICAgICAgICAg
ICAgICgoaHYpICYmIChDb3BTVEFTSFBWKGMpID09IEh2TkFNRShodikgXAotICAgICAgICAgICAg
ICAgICAgICB8fCAoQ29wU1RBU0hQVihjKSAmJiBIdk5BTUUoaHYpIFwKLSAgICAgICAgICAgICAg
ICAgICAgJiYgc3RyRVEoQ29wU1RBU0hQVihjKSwgSHZOQU1FKGh2KSkpKSkKLSNlbmRpZgotCi0j
ZWxzZQotI2lmbmRlZiBDb3BGSUxFR1YKLSMgIGRlZmluZSBDb3BGSUxFR1YoYykgICAgICAgICAg
ICAgICAgICAgKChjKS0+Y29wX2ZpbGVndikKLSNlbmRpZgotCi0jaWZuZGVmIENvcEZJTEVHVl9z
ZXQKLSMgIGRlZmluZSBDb3BGSUxFR1Zfc2V0KGMsZ3YpICAgICAgICAgICAgKChjKS0+Y29wX2Zp
bGVndiA9IChHViopU3ZSRUZDTlRfaW5jKGd2KSkKLSNlbmRpZgotCi0jaWZuZGVmIENvcEZJTEVf
c2V0Ci0jICBkZWZpbmUgQ29wRklMRV9zZXQoYyxwdikgICAgICAgICAgICAgIENvcEZJTEVHVl9z
ZXQoKGMpLCBndl9mZXRjaGZpbGUocHYpKQotI2VuZGlmCi0KLSNpZm5kZWYgQ29wRklMRVNWCi0j
ICBkZWZpbmUgQ29wRklMRVNWKGMpICAgICAgICAgICAgICAgICAgIChDb3BGSUxFR1YoYykgPyBH
dlNWKENvcEZJTEVHVihjKSkgOiBOdWxsc3YpCi0jZW5kaWYKLQotI2lmbmRlZiBDb3BGSUxFQVYK
LSMgIGRlZmluZSBDb3BGSUxFQVYoYykgICAgICAgICAgICAgICAgICAgKENvcEZJTEVHVihjKSA/
IEd2QVYoQ29wRklMRUdWKGMpKSA6IE51bGxhdikKLSNlbmRpZgotCi0jaWZuZGVmIENvcEZJTEUK
LSMgIGRlZmluZSBDb3BGSUxFKGMpICAgICAgICAgICAgICAgICAgICAgKENvcEZJTEVTVihjKSA/
IFN2UFZYKENvcEZJTEVTVihjKSkgOiBOdWxsY2gpCi0jZW5kaWYKLQotI2lmbmRlZiBDb3BTVEFT
SAotIyAgZGVmaW5lIENvcFNUQVNIKGMpICAgICAgICAgICAgICAgICAgICAoKGMpLT5jb3Bfc3Rh
c2gpCi0jZW5kaWYKLQotI2lmbmRlZiBDb3BTVEFTSF9zZXQKLSMgIGRlZmluZSBDb3BTVEFTSF9z
ZXQoYyxodikgICAgICAgICAgICAgKChjKS0+Y29wX3N0YXNoID0gKGh2KSkKLSNlbmRpZgotCi0j
aWZuZGVmIENvcFNUQVNIUFYKLSMgIGRlZmluZSBDb3BTVEFTSFBWKGMpICAgICAgICAgICAgICAg
ICAgKENvcFNUQVNIKGMpID8gSHZOQU1FKENvcFNUQVNIKGMpKSA6IE51bGxjaCkKLSNlbmRpZgot
Ci0jaWZuZGVmIENvcFNUQVNIUFZfc2V0Ci0jICBkZWZpbmUgQ29wU1RBU0hQVl9zZXQoYyxwdikg
ICAgICAgICAgIENvcFNUQVNIX3NldCgoYyksIGd2X3N0YXNocHYocHYsR1ZfQUREKSkKLSNlbmRp
ZgotCi0jaWZuZGVmIENvcFNUQVNIX2VxCi0jICBkZWZpbmUgQ29wU1RBU0hfZXEoYyxodikgICAg
ICAgICAgICAgIChDb3BTVEFTSChjKSA9PSAoaHYpKQotI2VuZGlmCi0KLSNlbmRpZiAvKiBVU0Vf
SVRIUkVBRFMgKi8KLSNpZm5kZWYgSU5fUEVSTF9DT01QSUxFVElNRQotIyAgZGVmaW5lIElOX1BF
UkxfQ09NUElMRVRJTUUgICAgICAgICAgICAoUExfY3VyY29wID09ICZQTF9jb21waWxpbmcpCi0j
ZW5kaWYKLQotI2lmbmRlZiBJTl9MT0NBTEVfUlVOVElNRQotIyAgZGVmaW5lIElOX0xPQ0FMRV9S
VU5USU1FICAgICAgICAgICAgICAoUExfY3VyY29wLT5vcF9wcml2YXRlICYgSElOVF9MT0NBTEUp
Ci0jZW5kaWYKLQotI2lmbmRlZiBJTl9MT0NBTEVfQ09NUElMRVRJTUUKLSMgIGRlZmluZSBJTl9M
T0NBTEVfQ09NUElMRVRJTUUgICAgICAgICAgKFBMX2hpbnRzICYgSElOVF9MT0NBTEUpCi0jZW5k
aWYKLQotI2lmbmRlZiBJTl9MT0NBTEUKLSMgIGRlZmluZSBJTl9MT0NBTEUgICAgICAgICAgICAg
ICAgICAgICAgKElOX1BFUkxfQ09NUElMRVRJTUUgPyBJTl9MT0NBTEVfQ09NUElMRVRJTUUgOiBJ
Tl9MT0NBTEVfUlVOVElNRSkKLSNlbmRpZgotI2lmbmRlZiBJU19OVU1CRVJfSU5fVVYKLSMgIGRl
ZmluZSBJU19OVU1CRVJfSU5fVVYgICAgICAgICAgICAgICAgMHgwMQotI2VuZGlmCi0KLSNpZm5k
ZWYgSVNfTlVNQkVSX0dSRUFURVJfVEhBTl9VVl9NQVgKLSMgIGRlZmluZSBJU19OVU1CRVJfR1JF
QVRFUl9USEFOX1VWX01BWCAgMHgwMgotI2VuZGlmCi0KLSNpZm5kZWYgSVNfTlVNQkVSX05PVF9J
TlQKLSMgIGRlZmluZSBJU19OVU1CRVJfTk9UX0lOVCAgICAgICAgICAgICAgMHgwNAotI2VuZGlm
Ci0KLSNpZm5kZWYgSVNfTlVNQkVSX05FRwotIyAgZGVmaW5lIElTX05VTUJFUl9ORUcgICAgICAg
ICAgICAgICAgICAweDA4Ci0jZW5kaWYKLQotI2lmbmRlZiBJU19OVU1CRVJfSU5GSU5JVFkKLSMg
IGRlZmluZSBJU19OVU1CRVJfSU5GSU5JVFkgICAgICAgICAgICAgMHgxMAotI2VuZGlmCi0KLSNp
Zm5kZWYgSVNfTlVNQkVSX05BTgotIyAgZGVmaW5lIElTX05VTUJFUl9OQU4gICAgICAgICAgICAg
ICAgICAweDIwCi0jZW5kaWYKLSNpZm5kZWYgR1JPS19OVU1FUklDX1JBRElYCi0jICBkZWZpbmUg
R1JPS19OVU1FUklDX1JBRElYKHNwLCBzZW5kKSAgIGdyb2tfbnVtZXJpY19yYWRpeChzcCwgc2Vu
ZCkKLSNlbmRpZgotI2lmbmRlZiBQRVJMX1NDQU5fR1JFQVRFUl9USEFOX1VWX01BWAotIyAgZGVm
aW5lIFBFUkxfU0NBTl9HUkVBVEVSX1RIQU5fVVZfTUFYICAweDAyCi0jZW5kaWYKLQotI2lmbmRl
ZiBQRVJMX1NDQU5fU0lMRU5UX0lMTERJR0lUCi0jICBkZWZpbmUgUEVSTF9TQ0FOX1NJTEVOVF9J
TExESUdJVCAgICAgIDB4MDQKLSNlbmRpZgotCi0jaWZuZGVmIFBFUkxfU0NBTl9BTExPV19VTkRF
UlNDT1JFUwotIyAgZGVmaW5lIFBFUkxfU0NBTl9BTExPV19VTkRFUlNDT1JFUyAgICAweDAxCi0j
ZW5kaWYKLQotI2lmbmRlZiBQRVJMX1NDQU5fRElTQUxMT1dfUFJFRklYCi0jICBkZWZpbmUgUEVS
TF9TQ0FOX0RJU0FMTE9XX1BSRUZJWCAgICAgIDB4MDIKLSNlbmRpZgotCi0jaWZuZGVmIGdyb2tf
bnVtZXJpY19yYWRpeAotI2lmIGRlZmluZWQoTkVFRF9ncm9rX251bWVyaWNfcmFkaXgpCi1zdGF0
aWMgYm9vbCBEUFBQXyhteV9ncm9rX251bWVyaWNfcmFkaXgpKHBUSFhfIGNvbnN0IGNoYXIgKiog
c3AsIGNvbnN0IGNoYXIgKiBzZW5kKTsKLXN0YXRpYwotI2Vsc2UKLWV4dGVybiBib29sIERQUFBf
KG15X2dyb2tfbnVtZXJpY19yYWRpeCkocFRIWF8gY29uc3QgY2hhciAqKiBzcCwgY29uc3QgY2hh
ciAqIHNlbmQpOwotI2VuZGlmCi0KLSNpZmRlZiBncm9rX251bWVyaWNfcmFkaXgKLSMgIHVuZGVm
IGdyb2tfbnVtZXJpY19yYWRpeAotI2VuZGlmCi0jZGVmaW5lIGdyb2tfbnVtZXJpY19yYWRpeChh
LGIpIERQUFBfKG15X2dyb2tfbnVtZXJpY19yYWRpeCkoYVRIWF8gYSxiKQotI2RlZmluZSBQZXJs
X2dyb2tfbnVtZXJpY19yYWRpeCBEUFBQXyhteV9ncm9rX251bWVyaWNfcmFkaXgpCi0KLSNpZiBk
ZWZpbmVkKE5FRURfZ3Jva19udW1lcmljX3JhZGl4KSB8fCBkZWZpbmVkKE5FRURfZ3Jva19udW1l
cmljX3JhZGl4X0dMT0JBTCkKLWJvb2wKLURQUFBfKG15X2dyb2tfbnVtZXJpY19yYWRpeCkocFRI
WF8gY29uc3QgY2hhciAqKnNwLCBjb25zdCBjaGFyICpzZW5kKQotewotI2lmZGVmIFVTRV9MT0NB
TEVfTlVNRVJJQwotI2lmZGVmIFBMX251bWVyaWNfcmFkaXhfc3YKLSAgICBpZiAoUExfbnVtZXJp
Y19yYWRpeF9zdiAmJiBJTl9MT0NBTEUpIHsKLSAgICAgICAgU1RSTEVOIGxlbjsKLSAgICAgICAg
Y2hhciogcmFkaXggPSBTdlBWKFBMX251bWVyaWNfcmFkaXhfc3YsIGxlbik7Ci0gICAgICAgIGlm
ICgqc3AgKyBsZW4gPD0gc2VuZCAmJiBtZW1FUSgqc3AsIHJhZGl4LCBsZW4pKSB7Ci0gICAgICAg
ICAgICAqc3AgKz0gbGVuOwotICAgICAgICAgICAgcmV0dXJuIFRSVUU7Ci0gICAgICAgIH0KLSAg
ICB9Ci0jZWxzZQotICAgIC8qIG9sZGVyIHBlcmxzIGRvbid0IGhhdmUgUExfbnVtZXJpY19yYWRp
eF9zdiBzbyB0aGUgcmFkaXgKLSAgICAgKiBtdXN0IG1hbnVhbGx5IGJlIHJlcXVlc3RlZCBmcm9t
IGxvY2FsZS5oCi0gICAgICovCi0jaW5jbHVkZSA8bG9jYWxlLmg+Ci0gICAgZFRIUjsgIC8qIG5l
ZWRlZCBmb3Igb2xkZXIgdGhyZWFkZWQgcGVybHMgKi8KLSAgICBzdHJ1Y3QgbGNvbnYgKmxjID0g
bG9jYWxlY29udigpOwotICAgIGNoYXIgKnJhZGl4ID0gbGMtPmRlY2ltYWxfcG9pbnQ7Ci0gICAg
aWYgKHJhZGl4ICYmIElOX0xPQ0FMRSkgewotICAgICAgICBTVFJMRU4gbGVuID0gc3RybGVuKHJh
ZGl4KTsKLSAgICAgICAgaWYgKCpzcCArIGxlbiA8PSBzZW5kICYmIG1lbUVRKCpzcCwgcmFkaXgs
IGxlbikpIHsKLSAgICAgICAgICAgICpzcCArPSBsZW47Ci0gICAgICAgICAgICByZXR1cm4gVFJV
RTsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotI2VuZGlmIC8qIFVTRV9MT0NBTEVfTlVNRVJJ
QyAqLwotICAgIC8qIGFsd2F5cyB0cnkgIi4iIGlmIG51bWVyaWMgcmFkaXggZGlkbid0IG1hdGNo
IGJlY2F1c2UKLSAgICAgKiB3ZSBtYXkgaGF2ZSBkYXRhIGZyb20gZGlmZmVyZW50IGxvY2FsZXMg
bWl4ZWQgKi8KLSAgICBpZiAoKnNwIDwgc2VuZCAmJiAqKnNwID09ICcuJykgewotICAgICAgICAr
KypzcDsKLSAgICAgICAgcmV0dXJuIFRSVUU7Ci0gICAgfQotICAgIHJldHVybiBGQUxTRTsKLX0K
LSNlbmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgZ3Jva19udW1iZXIKLSNpZiBkZWZpbmVkKE5FRURf
Z3Jva19udW1iZXIpCi1zdGF0aWMgaW50IERQUFBfKG15X2dyb2tfbnVtYmVyKShwVEhYXyBjb25z
dCBjaGFyICogcHYsIFNUUkxFTiBsZW4sIFVWICogdmFsdWVwKTsKLXN0YXRpYwotI2Vsc2UKLWV4
dGVybiBpbnQgRFBQUF8obXlfZ3Jva19udW1iZXIpKHBUSFhfIGNvbnN0IGNoYXIgKiBwdiwgU1RS
TEVOIGxlbiwgVVYgKiB2YWx1ZXApOwotI2VuZGlmCi0KLSNpZmRlZiBncm9rX251bWJlcgotIyAg
dW5kZWYgZ3Jva19udW1iZXIKLSNlbmRpZgotI2RlZmluZSBncm9rX251bWJlcihhLGIsYykgRFBQ
UF8obXlfZ3Jva19udW1iZXIpKGFUSFhfIGEsYixjKQotI2RlZmluZSBQZXJsX2dyb2tfbnVtYmVy
IERQUFBfKG15X2dyb2tfbnVtYmVyKQotCi0jaWYgZGVmaW5lZChORUVEX2dyb2tfbnVtYmVyKSB8
fCBkZWZpbmVkKE5FRURfZ3Jva19udW1iZXJfR0xPQkFMKQotaW50Ci1EUFBQXyhteV9ncm9rX251
bWJlcikocFRIWF8gY29uc3QgY2hhciAqcHYsIFNUUkxFTiBsZW4sIFVWICp2YWx1ZXApCi17Ci0g
IGNvbnN0IGNoYXIgKnMgPSBwdjsKLSAgY29uc3QgY2hhciAqc2VuZCA9IHB2ICsgbGVuOwotICBj
b25zdCBVViBtYXhfZGl2XzEwID0gVVZfTUFYIC8gMTA7Ci0gIGNvbnN0IGNoYXIgbWF4X21vZF8x
MCA9IFVWX01BWCAlIDEwOwotICBpbnQgbnVtdHlwZSA9IDA7Ci0gIGludCBzYXdpbmYgPSAwOwot
ICBpbnQgc2F3bmFuID0gMDsKLQotICB3aGlsZSAocyA8IHNlbmQgJiYgaXNTUEFDRSgqcykpCi0g
ICAgcysrOwotICBpZiAocyA9PSBzZW5kKSB7Ci0gICAgcmV0dXJuIDA7Ci0gIH0gZWxzZSBpZiAo
KnMgPT0gJy0nKSB7Ci0gICAgcysrOwotICAgIG51bXR5cGUgPSBJU19OVU1CRVJfTkVHOwotICB9
Ci0gIGVsc2UgaWYgKCpzID09ICcrJykKLSAgcysrOwotCi0gIGlmIChzID09IHNlbmQpCi0gICAg
cmV0dXJuIDA7Ci0KLSAgLyogbmV4dCBtdXN0IGJlIGRpZ2l0IG9yIHRoZSByYWRpeCBzZXBhcmF0
b3Igb3IgYmVnaW5uaW5nIG9mIGluZmluaXR5ICovCi0gIGlmIChpc0RJR0lUKCpzKSkgewotICAg
IC8qIFVWcyBhcmUgYXQgbGVhc3QgMzIgYml0cywgc28gdGhlIGZpcnN0IDkgZGVjaW1hbCBkaWdp
dHMgY2Fubm90Ci0gICAgICAgb3ZlcmZsb3cuICAqLwotICAgIFVWIHZhbHVlID0gKnMgLSAnMCc7
Ci0gICAgLyogVGhpcyBjb25zdHJ1Y3Rpb24gc2VlbXMgdG8gYmUgbW9yZSBvcHRpbWlzZXIgZnJp
ZW5kbHkuCi0gICAgICAgKHdpdGhvdXQgaXQgZ2NjIGRvZXMgdGhlIGlzRElHSVQgdGVzdCBhbmQg
dGhlICpzIC0gJzAnIHNlcGFyYXRlbHkpCi0gICAgICAgV2l0aCBpdCBnY2Mgb24gYXJtIGlzIG1h
bmFnaW5nIDYgaW5zdHJ1Y3Rpb25zICg2IGN5Y2xlcykgcGVyIGRpZ2l0LgotICAgICAgIEluIHRo
ZW9yeSB0aGUgb3B0aW1pc2VyIGNvdWxkIGRlZHVjZSBob3cgZmFyIHRvIHVucm9sbCB0aGUgbG9v
cAotICAgICAgIGJlZm9yZSBjaGVja2luZyBmb3Igb3ZlcmZsb3cuICAqLwotICAgIGlmICgrK3Mg
PCBzZW5kKSB7Ci0gICAgICBpbnQgZGlnaXQgPSAqcyAtICcwJzsKLSAgICAgIGlmIChkaWdpdCA+
PSAwICYmIGRpZ2l0IDw9IDkpIHsKLSAgICAgICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7
Ci0gICAgICAgIGlmICgrK3MgPCBzZW5kKSB7Ci0gICAgICAgICAgZGlnaXQgPSAqcyAtICcwJzsK
LSAgICAgICAgICBpZiAoZGlnaXQgPj0gMCAmJiBkaWdpdCA8PSA5KSB7Ci0gICAgICAgICAgICB2
YWx1ZSA9IHZhbHVlICogMTAgKyBkaWdpdDsKLSAgICAgICAgICAgIGlmICgrK3MgPCBzZW5kKSB7
Ci0gICAgICAgICAgICAgIGRpZ2l0ID0gKnMgLSAnMCc7Ci0gICAgICAgICAgICAgIGlmIChkaWdp
dCA+PSAwICYmIGRpZ2l0IDw9IDkpIHsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlICog
MTAgKyBkaWdpdDsKLSAgICAgICAgaWYgKCsrcyA8IHNlbmQpIHsKLSAgICAgICAgICAgICAgICAg
IGRpZ2l0ID0gKnMgLSAnMCc7Ci0gICAgICAgICAgICAgICAgICBpZiAoZGlnaXQgPj0gMCAmJiBk
aWdpdCA8PSA5KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgKiAxMCArIGRp
Z2l0OwotICAgICAgICAgICAgICAgICAgICBpZiAoKytzIDwgc2VuZCkgewotICAgICAgICAgICAg
ICAgICAgICAgIGRpZ2l0ID0gKnMgLSAnMCc7Ci0gICAgICAgICAgICAgICAgICAgICAgaWYgKGRp
Z2l0ID49IDAgJiYgZGlnaXQgPD0gOSkgewotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUg
PSB2YWx1ZSAqIDEwICsgZGlnaXQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytzIDwg
c2VuZCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdCA9ICpzIC0gJzAnOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGlnaXQgPj0gMCAmJiBkaWdpdCA8PSA5KSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsrcyA8IHNlbmQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZ2l0ID0gKnMgLSAnMCc7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoZGlnaXQgPj0gMCAmJiBkaWdpdCA8PSA5KSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgKiAxMCArIGRpZ2l0OwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytzIDwgc2VuZCkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZ2l0ID0gKnMgLSAnMCc7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGRpZ2l0ID49IDAgJiYgZGlnaXQgPD0gOSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKytzIDwgc2VuZCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBOb3cgZ290IDkgZGlnaXRzLCBz
byBuZWVkIHRvIGNoZWNrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVhY2ggdGltZSBmb3Igb3ZlcmZsb3cuICAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWdpdCA9ICpzIC0gJzAnOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aGlsZSAoZGlnaXQgPj0gMCAmJiBkaWdpdCA8PSA5Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmFsdWUgPCBtYXhfZGl2XzEwCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKHZhbHVl
ID09IG1heF9kaXZfMTAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJiYgZGlnaXQgPD0gbWF4X21vZF8xMCkpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSAqIDEwICsgZGlnaXQ7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCsrcyA8IHNlbmQpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWdpdCA9ICpzIC0gJzAnOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChkaWdpdCA+PSAwICYmIGRpZ2l0IDw9IDkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICYmIChzIDwgc2VuZCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiB2YWx1ZSBvdmVyZmxvd2VkLgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXAgdGhlIHJlbWFpbmluZyBkaWdpdHMsIGRv
bid0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ycnkgYWJv
dXQgc2V0dGluZyAqdmFsdWVwLiAgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
Kys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAocyA8
IHNlbmQgJiYgaXNESUdJVCgqcykpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG51bXR5cGUgfD0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIElTX05VTUJFUl9HUkVBVEVSX1RIQU5fVVZfTUFYOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdvdG8gc2tpcF92YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgIH0KLSAgICAgIH0KLSAgICB9Ci0gICAgbnVt
dHlwZSB8PSBJU19OVU1CRVJfSU5fVVY7Ci0gICAgaWYgKHZhbHVlcCkKLSAgICAgICp2YWx1ZXAg
PSB2YWx1ZTsKLQotICBza2lwX3ZhbHVlOgotICAgIGlmIChHUk9LX05VTUVSSUNfUkFESVgoJnMs
IHNlbmQpKSB7Ci0gICAgICBudW10eXBlIHw9IElTX05VTUJFUl9OT1RfSU5UOwotICAgICAgd2hp
bGUgKHMgPCBzZW5kICYmIGlzRElHSVQoKnMpKSAgLyogb3B0aW9uYWwgZGlnaXRzIGFmdGVyIHRo
ZSByYWRpeCAqLwotICAgICAgICBzKys7Ci0gICAgfQotICB9Ci0gIGVsc2UgaWYgKEdST0tfTlVN
RVJJQ19SQURJWCgmcywgc2VuZCkpIHsKLSAgICBudW10eXBlIHw9IElTX05VTUJFUl9OT1RfSU5U
IHwgSVNfTlVNQkVSX0lOX1VWOyAvKiB2YWx1ZXAgYXNzaWduZWQgYmVsb3cgKi8KLSAgICAvKiBu
byBkaWdpdHMgYmVmb3JlIHRoZSByYWRpeCBtZWFucyB3ZSBuZWVkIGRpZ2l0cyBhZnRlciBpdCAq
LwotICAgIGlmIChzIDwgc2VuZCAmJiBpc0RJR0lUKCpzKSkgewotICAgICAgZG8gewotICAgICAg
ICBzKys7Ci0gICAgICB9IHdoaWxlIChzIDwgc2VuZCAmJiBpc0RJR0lUKCpzKSk7Ci0gICAgICBp
ZiAodmFsdWVwKSB7Ci0gICAgICAgIC8qIGludGVnZXIgYXBwcm94aW1hdGlvbiBpcyB2YWxpZCAt
IGl0J3MgMC4gICovCi0gICAgICAgICp2YWx1ZXAgPSAwOwotICAgICAgfQotICAgIH0KLSAgICBl
bHNlCi0gICAgICByZXR1cm4gMDsKLSAgfSBlbHNlIGlmICgqcyA9PSAnSScgfHwgKnMgPT0gJ2kn
KSB7Ci0gICAgcysrOyBpZiAocyA9PSBzZW5kIHx8ICgqcyAhPSAnTicgJiYgKnMgIT0gJ24nKSkg
cmV0dXJuIDA7Ci0gICAgcysrOyBpZiAocyA9PSBzZW5kIHx8ICgqcyAhPSAnRicgJiYgKnMgIT0g
J2YnKSkgcmV0dXJuIDA7Ci0gICAgcysrOyBpZiAocyA8IHNlbmQgJiYgKCpzID09ICdJJyB8fCAq
cyA9PSAnaScpKSB7Ci0gICAgICBzKys7IGlmIChzID09IHNlbmQgfHwgKCpzICE9ICdOJyAmJiAq
cyAhPSAnbicpKSByZXR1cm4gMDsKLSAgICAgIHMrKzsgaWYgKHMgPT0gc2VuZCB8fCAoKnMgIT0g
J0knICYmICpzICE9ICdpJykpIHJldHVybiAwOwotICAgICAgcysrOyBpZiAocyA9PSBzZW5kIHx8
ICgqcyAhPSAnVCcgJiYgKnMgIT0gJ3QnKSkgcmV0dXJuIDA7Ci0gICAgICBzKys7IGlmIChzID09
IHNlbmQgfHwgKCpzICE9ICdZJyAmJiAqcyAhPSAneScpKSByZXR1cm4gMDsKLSAgICAgIHMrKzsK
LSAgICB9Ci0gICAgc2F3aW5mID0gMTsKLSAgfSBlbHNlIGlmICgqcyA9PSAnTicgfHwgKnMgPT0g
J24nKSB7Ci0gICAgLyogWFhYIFRPRE86IFRoZXJlIGFyZSBzaWduYWxpbmcgTmFOcyBhbmQgcXVp
ZXQgTmFOcy4gKi8KLSAgICBzKys7IGlmIChzID09IHNlbmQgfHwgKCpzICE9ICdBJyAmJiAqcyAh
PSAnYScpKSByZXR1cm4gMDsKLSAgICBzKys7IGlmIChzID09IHNlbmQgfHwgKCpzICE9ICdOJyAm
JiAqcyAhPSAnbicpKSByZXR1cm4gMDsKLSAgICBzKys7Ci0gICAgc2F3bmFuID0gMTsKLSAgfSBl
bHNlCi0gICAgcmV0dXJuIDA7Ci0KLSAgaWYgKHNhd2luZikgewotICAgIG51bXR5cGUgJj0gSVNf
TlVNQkVSX05FRzsgLyogS2VlcCB0cmFjayBvZiBzaWduICAqLwotICAgIG51bXR5cGUgfD0gSVNf
TlVNQkVSX0lORklOSVRZIHwgSVNfTlVNQkVSX05PVF9JTlQ7Ci0gIH0gZWxzZSBpZiAoc2F3bmFu
KSB7Ci0gICAgbnVtdHlwZSAmPSBJU19OVU1CRVJfTkVHOyAvKiBLZWVwIHRyYWNrIG9mIHNpZ24g
ICovCi0gICAgbnVtdHlwZSB8PSBJU19OVU1CRVJfTkFOIHwgSVNfTlVNQkVSX05PVF9JTlQ7Ci0g
IH0gZWxzZSBpZiAocyA8IHNlbmQpIHsKLSAgICAvKiB3ZSBjYW4gaGF2ZSBhbiBvcHRpb25hbCBl
eHBvbmVudCBwYXJ0ICovCi0gICAgaWYgKCpzID09ICdlJyB8fCAqcyA9PSAnRScpIHsKLSAgICAg
IC8qIFRoZSBvbmx5IGZsYWcgd2Uga2VlcCBpcyBzaWduLiAgQmxvdyBhd2F5IGFueSAiaXQncyBV
ViIgICovCi0gICAgICBudW10eXBlICY9IElTX05VTUJFUl9ORUc7Ci0gICAgICBudW10eXBlIHw9
IElTX05VTUJFUl9OT1RfSU5UOwotICAgICAgcysrOwotICAgICAgaWYgKHMgPCBzZW5kICYmICgq
cyA9PSAnLScgfHwgKnMgPT0gJysnKSkKLSAgICAgICAgcysrOwotICAgICAgaWYgKHMgPCBzZW5k
ICYmIGlzRElHSVQoKnMpKSB7Ci0gICAgICAgIGRvIHsKLSAgICAgICAgICBzKys7Ci0gICAgICAg
IH0gd2hpbGUgKHMgPCBzZW5kICYmIGlzRElHSVQoKnMpKTsKLSAgICAgIH0KLSAgICAgIGVsc2UK
LSAgICAgIHJldHVybiAwOwotICAgIH0KLSAgfQotICB3aGlsZSAocyA8IHNlbmQgJiYgaXNTUEFD
RSgqcykpCi0gICAgcysrOwotICBpZiAocyA+PSBzZW5kKQotICAgIHJldHVybiBudW10eXBlOwot
ICBpZiAobGVuID09IDEwICYmIG1lbUVRKHB2LCAiMCBidXQgdHJ1ZSIsIDEwKSkgewotICAgIGlm
ICh2YWx1ZXApCi0gICAgICAqdmFsdWVwID0gMDsKLSAgICByZXR1cm4gSVNfTlVNQkVSX0lOX1VW
OwotICB9Ci0gIHJldHVybiAwOwotfQotI2VuZGlmCi0jZW5kaWYKLQotLyoKLSAqIFRoZSBncm9r
Xyogcm91dGluZXMgaGF2ZSBiZWVuIG1vZGlmaWVkIHRvIHVzZSB3YXJuKCkgaW5zdGVhZCBvZgot
ICogUGVybF93YXJuZXIoKS4gQWxzbywgJ2hleGRpZ2l0JyB3YXMgdGhlIGZvcm1lciBuYW1lIG9m
IFBMX2hleGRpZ2l0LAotICogd2hpY2ggaXMgd2h5IHRoZSBzdGFjayB2YXJpYWJsZSBoYXMgYmVl
biByZW5hbWVkIHRvICd4ZGlnaXQnLgotICovCi0KLSNpZm5kZWYgZ3Jva19iaW4KLSNpZiBkZWZp
bmVkKE5FRURfZ3Jva19iaW4pCi1zdGF0aWMgVVYgRFBQUF8obXlfZ3Jva19iaW4pKHBUSFhfIGNv
bnN0IGNoYXIgKiBzdGFydCwgU1RSTEVOICogbGVuX3AsIEkzMiAqIGZsYWdzLCBOViAqIHJlc3Vs
dCk7Ci1zdGF0aWMKLSNlbHNlCi1leHRlcm4gVVYgRFBQUF8obXlfZ3Jva19iaW4pKHBUSFhfIGNv
bnN0IGNoYXIgKiBzdGFydCwgU1RSTEVOICogbGVuX3AsIEkzMiAqIGZsYWdzLCBOViAqIHJlc3Vs
dCk7Ci0jZW5kaWYKLQotI2lmZGVmIGdyb2tfYmluCi0jICB1bmRlZiBncm9rX2JpbgotI2VuZGlm
Ci0jZGVmaW5lIGdyb2tfYmluKGEsYixjLGQpIERQUFBfKG15X2dyb2tfYmluKShhVEhYXyBhLGIs
YyxkKQotI2RlZmluZSBQZXJsX2dyb2tfYmluIERQUFBfKG15X2dyb2tfYmluKQotCi0jaWYgZGVm
aW5lZChORUVEX2dyb2tfYmluKSB8fCBkZWZpbmVkKE5FRURfZ3Jva19iaW5fR0xPQkFMKQotVVYK
LURQUFBfKG15X2dyb2tfYmluKShwVEhYXyBjb25zdCBjaGFyICpzdGFydCwgU1RSTEVOICpsZW5f
cCwgSTMyICpmbGFncywgTlYgKnJlc3VsdCkKLXsKLSAgICBjb25zdCBjaGFyICpzID0gc3RhcnQ7
Ci0gICAgU1RSTEVOIGxlbiA9ICpsZW5fcDsKLSAgICBVViB2YWx1ZSA9IDA7Ci0gICAgTlYgdmFs
dWVfbnYgPSAwOwotCi0gICAgY29uc3QgVVYgbWF4X2Rpdl8yID0gVVZfTUFYIC8gMjsKLSAgICBi
b29sIGFsbG93X3VuZGVyc2NvcmVzID0gKmZsYWdzICYgUEVSTF9TQ0FOX0FMTE9XX1VOREVSU0NP
UkVTOwotICAgIGJvb2wgb3ZlcmZsb3dlZCA9IEZBTFNFOwotCi0gICAgaWYgKCEoKmZsYWdzICYg
UEVSTF9TQ0FOX0RJU0FMTE9XX1BSRUZJWCkpIHsKLSAgICAgICAgLyogc3RyaXAgb2ZmIGxlYWRp
bmcgYiBvciAwYi4KLSAgICAgICAgICAgZm9yIGNvbXBhdGliaWxpdHkgc2lsZW50bHkgc3VmZmVy
ICJiIiBhbmQgIjBiIiBhcyB2YWxpZCBiaW5hcnkKLSAgICAgICAgICAgbnVtYmVycy4gKi8KLSAg
ICAgICAgaWYgKGxlbiA+PSAxKSB7Ci0gICAgICAgICAgICBpZiAoc1swXSA9PSAnYicpIHsKLSAg
ICAgICAgICAgICAgICBzKys7Ci0gICAgICAgICAgICAgICAgbGVuLS07Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBlbHNlIGlmIChsZW4gPj0gMiAmJiBzWzBdID09ICcwJyAmJiBzWzFdID09
ICdiJykgewotICAgICAgICAgICAgICAgIHMrPTI7Ci0gICAgICAgICAgICAgICAgbGVuLT0yOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotCi0gICAgZm9yICg7IGxlbi0tICYmICpz
OyBzKyspIHsKLSAgICAgICAgY2hhciBiaXQgPSAqczsKLSAgICAgICAgaWYgKGJpdCA9PSAnMCcg
fHwgYml0ID09ICcxJykgewotICAgICAgICAgICAgLyogV3JpdGUgaXQgaW4gdGhpcyB3b25reSBv
cmRlciB3aXRoIGEgZ290byB0byBhdHRlbXB0IHRvIGdldCB0aGUKLSAgICAgICAgICAgICAgIGNv
bXBpbGVyIHRvIG1ha2UgdGhlIGNvbW1vbiBjYXNlIGludGVnZXItb25seSBsb29wIHByZXR0eSB0
aWdodC4KLSAgICAgICAgICAgICAgIFdpdGggZ2NjIHNlZW1zIHRvIGJlIG11Y2ggc3RyYWlnaHRl
ciBjb2RlIHRoYW4gb2xkIHNjYW5fYmluLiAgKi8KLSAgICAgICAgICByZWRvOgotICAgICAgICAg
ICAgaWYgKCFvdmVyZmxvd2VkKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZhbHVlIDw9IG1heF9k
aXZfMikgewotICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9ICh2YWx1ZSA8PCAxKSB8IChiaXQg
LSAnMCcpOwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgLyogQmFoLiBXZSdyZSBqdXN0IG92ZXJmbG93ZWQuICAqLwotICAg
ICAgICAgICAgICAgIHdhcm4oIkludGVnZXIgb3ZlcmZsb3cgaW4gYmluYXJ5IG51bWJlciIpOwot
ICAgICAgICAgICAgICAgIG92ZXJmbG93ZWQgPSBUUlVFOwotICAgICAgICAgICAgICAgIHZhbHVl
X252ID0gKE5WKSB2YWx1ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhbHVlX252ICo9
IDIuMDsKLSAgICAgICAgLyogSWYgYW4gTlYgaGFzIG5vdCBlbm91Z2ggYml0cyBpbiBpdHMgbWFu
dGlzc2EgdG8KLSAgICAgICAgICogcmVwcmVzZW50IGEgVVYgdGhpcyBzdW1taW5nIG9mIHNtYWxs
IGxvdy1vcmRlciBudW1iZXJzCi0gICAgICAgICAqIGlzIGEgd2FzdGUgb2YgdGltZSAoYmVjYXVz
ZSB0aGUgTlYgY2Fubm90IHByZXNlcnZlCi0gICAgICAgICAqIHRoZSBsb3ctb3JkZXIgYml0cyBh
bnl3YXkpOiB3ZSBjb3VsZCBqdXN0IHJlbWVtYmVyIHdoZW4KLSAgICAgICAgICogZGlkIHdlIG92
ZXJmbG93IGFuZCBpbiB0aGUgZW5kIGp1c3QgbXVsdGlwbHkgdmFsdWVfbnYgYnkgdGhlCi0gICAg
ICAgICAqIHJpZ2h0IGFtb3VudC4gKi8KLSAgICAgICAgICAgIHZhbHVlX252ICs9IChOVikoYml0
IC0gJzAnKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChi
aXQgPT0gJ18nICYmIGxlbiAmJiBhbGxvd191bmRlcnNjb3JlcyAmJiAoYml0ID0gc1sxXSkKLSAg
ICAgICAgICAgICYmIChiaXQgPT0gJzAnIHx8IGJpdCA9PSAnMScpKQotICAgICAgICB7Ci0gICAg
ICAgIC0tbGVuOwotICAgICAgICArK3M7Ci0gICAgICAgICAgICAgICAgZ290byByZWRvOwotICAg
ICAgICB9Ci0gICAgICAgIGlmICghKCpmbGFncyAmIFBFUkxfU0NBTl9TSUxFTlRfSUxMRElHSVQp
KQotICAgICAgICAgICAgd2FybigiSWxsZWdhbCBiaW5hcnkgZGlnaXQgJyVjJyBpZ25vcmVkIiwg
KnMpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBpZiAoICAgKCBvdmVyZmxvd2VkICYm
IHZhbHVlX252ID4gNDI5NDk2NzI5NS4wKQotI2lmIFVWU0laRSA+IDQKLSAgICB8fCAoIW92ZXJm
bG93ZWQgJiYgdmFsdWUgPiAweGZmZmZmZmZmICApCi0jZW5kaWYKLSAgICApIHsKLSAgICB3YXJu
KCJCaW5hcnkgbnVtYmVyID4gMGIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSBub24t
cG9ydGFibGUiKTsKLSAgICB9Ci0gICAgKmxlbl9wID0gcyAtIHN0YXJ0OwotICAgIGlmICghb3Zl
cmZsb3dlZCkgewotICAgICAgICAqZmxhZ3MgPSAwOwotICAgICAgICByZXR1cm4gdmFsdWU7Ci0g
ICAgfQotICAgICpmbGFncyA9IFBFUkxfU0NBTl9HUkVBVEVSX1RIQU5fVVZfTUFYOwotICAgIGlm
IChyZXN1bHQpCi0gICAgICAgICpyZXN1bHQgPSB2YWx1ZV9udjsKLSAgICByZXR1cm4gVVZfTUFY
OwotfQotI2VuZGlmCi0jZW5kaWYKLQotI2lmbmRlZiBncm9rX2hleAotI2lmIGRlZmluZWQoTkVF
RF9ncm9rX2hleCkKLXN0YXRpYyBVViBEUFBQXyhteV9ncm9rX2hleCkocFRIWF8gY29uc3QgY2hh
ciAqIHN0YXJ0LCBTVFJMRU4gKiBsZW5fcCwgSTMyICogZmxhZ3MsIE5WICogcmVzdWx0KTsKLXN0
YXRpYwotI2Vsc2UKLWV4dGVybiBVViBEUFBQXyhteV9ncm9rX2hleCkocFRIWF8gY29uc3QgY2hh
ciAqIHN0YXJ0LCBTVFJMRU4gKiBsZW5fcCwgSTMyICogZmxhZ3MsIE5WICogcmVzdWx0KTsKLSNl
bmRpZgotCi0jaWZkZWYgZ3Jva19oZXgKLSMgIHVuZGVmIGdyb2tfaGV4Ci0jZW5kaWYKLSNkZWZp
bmUgZ3Jva19oZXgoYSxiLGMsZCkgRFBQUF8obXlfZ3Jva19oZXgpKGFUSFhfIGEsYixjLGQpCi0j
ZGVmaW5lIFBlcmxfZ3Jva19oZXggRFBQUF8obXlfZ3Jva19oZXgpCi0KLSNpZiBkZWZpbmVkKE5F
RURfZ3Jva19oZXgpIHx8IGRlZmluZWQoTkVFRF9ncm9rX2hleF9HTE9CQUwpCi1VVgotRFBQUF8o
bXlfZ3Jva19oZXgpKHBUSFhfIGNvbnN0IGNoYXIgKnN0YXJ0LCBTVFJMRU4gKmxlbl9wLCBJMzIg
KmZsYWdzLCBOViAqcmVzdWx0KQotewotICAgIGNvbnN0IGNoYXIgKnMgPSBzdGFydDsKLSAgICBT
VFJMRU4gbGVuID0gKmxlbl9wOwotICAgIFVWIHZhbHVlID0gMDsKLSAgICBOViB2YWx1ZV9udiA9
IDA7Ci0KLSAgICBjb25zdCBVViBtYXhfZGl2XzE2ID0gVVZfTUFYIC8gMTY7Ci0gICAgYm9vbCBh
bGxvd191bmRlcnNjb3JlcyA9ICpmbGFncyAmIFBFUkxfU0NBTl9BTExPV19VTkRFUlNDT1JFUzsK
LSAgICBib29sIG92ZXJmbG93ZWQgPSBGQUxTRTsKLSAgICBjb25zdCBjaGFyICp4ZGlnaXQ7Ci0K
LSAgICBpZiAoISgqZmxhZ3MgJiBQRVJMX1NDQU5fRElTQUxMT1dfUFJFRklYKSkgewotICAgICAg
ICAvKiBzdHJpcCBvZmYgbGVhZGluZyB4IG9yIDB4LgotICAgICAgICAgICBmb3IgY29tcGF0aWJp
bGl0eSBzaWxlbnRseSBzdWZmZXIgIngiIGFuZCAiMHgiIGFzIHZhbGlkIGhleCBudW1iZXJzLgot
ICAgICAgICAqLwotICAgICAgICBpZiAobGVuID49IDEpIHsKLSAgICAgICAgICAgIGlmIChzWzBd
ID09ICd4JykgewotICAgICAgICAgICAgICAgIHMrKzsKLSAgICAgICAgICAgICAgICBsZW4tLTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKGxlbiA+PSAyICYmIHNbMF0gPT0g
JzAnICYmIHNbMV0gPT0gJ3gnKSB7Ci0gICAgICAgICAgICAgICAgcys9MjsKLSAgICAgICAgICAg
ICAgICBsZW4tPTI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmb3Ig
KDsgbGVuLS0gJiYgKnM7IHMrKykgewotICAgIHhkaWdpdCA9IHN0cmNocigoY2hhciAqKSBQTF9o
ZXhkaWdpdCwgKnMpOwotICAgICAgICBpZiAoeGRpZ2l0KSB7Ci0gICAgICAgICAgICAvKiBXcml0
ZSBpdCBpbiB0aGlzIHdvbmt5IG9yZGVyIHdpdGggYSBnb3RvIHRvIGF0dGVtcHQgdG8gZ2V0IHRo
ZQotICAgICAgICAgICAgICAgY29tcGlsZXIgdG8gbWFrZSB0aGUgY29tbW9uIGNhc2UgaW50ZWdl
ci1vbmx5IGxvb3AgcHJldHR5IHRpZ2h0LgotICAgICAgICAgICAgICAgV2l0aCBnY2Mgc2VlbXMg
dG8gYmUgbXVjaCBzdHJhaWdodGVyIGNvZGUgdGhhbiBvbGQgc2Nhbl9oZXguICAqLwotICAgICAg
ICAgIHJlZG86Ci0gICAgICAgICAgICBpZiAoIW92ZXJmbG93ZWQpIHsKLSAgICAgICAgICAgICAg
ICBpZiAodmFsdWUgPD0gbWF4X2Rpdl8xNikgewotICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9
ICh2YWx1ZSA8PCA0KSB8ICgoeGRpZ2l0IC0gUExfaGV4ZGlnaXQpICYgMTUpOwotICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
d2FybigiSW50ZWdlciBvdmVyZmxvdyBpbiBoZXhhZGVjaW1hbCBudW1iZXIiKTsKLSAgICAgICAg
ICAgICAgICBvdmVyZmxvd2VkID0gVFJVRTsKLSAgICAgICAgICAgICAgICB2YWx1ZV9udiA9IChO
VikgdmFsdWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB2YWx1ZV9udiAqPSAxNi4wOwot
ICAgICAgICAvKiBJZiBhbiBOViBoYXMgbm90IGVub3VnaCBiaXRzIGluIGl0cyBtYW50aXNzYSB0
bwotICAgICAgICAgKiByZXByZXNlbnQgYSBVViB0aGlzIHN1bW1pbmcgb2Ygc21hbGwgbG93LW9y
ZGVyIG51bWJlcnMKLSAgICAgICAgICogaXMgYSB3YXN0ZSBvZiB0aW1lIChiZWNhdXNlIHRoZSBO
ViBjYW5ub3QgcHJlc2VydmUKLSAgICAgICAgICogdGhlIGxvdy1vcmRlciBiaXRzIGFueXdheSk6
IHdlIGNvdWxkIGp1c3QgcmVtZW1iZXIgd2hlbgotICAgICAgICAgKiBkaWQgd2Ugb3ZlcmZsb3cg
YW5kIGluIHRoZSBlbmQganVzdCBtdWx0aXBseSB2YWx1ZV9udiBieSB0aGUKLSAgICAgICAgICog
cmlnaHQgYW1vdW50IG9mIDE2LXR1cGxlcy4gKi8KLSAgICAgICAgICAgIHZhbHVlX252ICs9IChO
VikoKHhkaWdpdCAtIFBMX2hleGRpZ2l0KSAmIDE1KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICB9Ci0gICAgICAgIGlmICgqcyA9PSAnXycgJiYgbGVuICYmIGFsbG93X3VuZGVyc2Nv
cmVzICYmIHNbMV0KLSAgICAgICAgJiYgKHhkaWdpdCA9IHN0cmNocigoY2hhciAqKSBQTF9oZXhk
aWdpdCwgc1sxXSkpKQotICAgICAgICB7Ci0gICAgICAgIC0tbGVuOwotICAgICAgICArK3M7Ci0g
ICAgICAgICAgICAgICAgZ290byByZWRvOwotICAgICAgICB9Ci0gICAgICAgIGlmICghKCpmbGFn
cyAmIFBFUkxfU0NBTl9TSUxFTlRfSUxMRElHSVQpKQotICAgICAgICAgICAgd2FybigiSWxsZWdh
bCBoZXhhZGVjaW1hbCBkaWdpdCAnJWMnIGlnbm9yZWQiLCAqcyk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLQotICAgIGlmICggICAoIG92ZXJmbG93ZWQgJiYgdmFsdWVfbnYgPiA0Mjk0OTY3Mjk1
LjApCi0jaWYgVVZTSVpFID4gNAotICAgIHx8ICghb3ZlcmZsb3dlZCAmJiB2YWx1ZSA+IDB4ZmZm
ZmZmZmYgICkKLSNlbmRpZgotICAgICkgewotICAgIHdhcm4oIkhleGFkZWNpbWFsIG51bWJlciA+
IDB4ZmZmZmZmZmYgbm9uLXBvcnRhYmxlIik7Ci0gICAgfQotICAgICpsZW5fcCA9IHMgLSBzdGFy
dDsKLSAgICBpZiAoIW92ZXJmbG93ZWQpIHsKLSAgICAgICAgKmZsYWdzID0gMDsKLSAgICAgICAg
cmV0dXJuIHZhbHVlOwotICAgIH0KLSAgICAqZmxhZ3MgPSBQRVJMX1NDQU5fR1JFQVRFUl9USEFO
X1VWX01BWDsKLSAgICBpZiAocmVzdWx0KQotICAgICAgICAqcmVzdWx0ID0gdmFsdWVfbnY7Ci0g
ICAgcmV0dXJuIFVWX01BWDsKLX0KLSNlbmRpZgotI2VuZGlmCi0KLSNpZm5kZWYgZ3Jva19vY3QK
LSNpZiBkZWZpbmVkKE5FRURfZ3Jva19vY3QpCi1zdGF0aWMgVVYgRFBQUF8obXlfZ3Jva19vY3Qp
KHBUSFhfIGNvbnN0IGNoYXIgKiBzdGFydCwgU1RSTEVOICogbGVuX3AsIEkzMiAqIGZsYWdzLCBO
ViAqIHJlc3VsdCk7Ci1zdGF0aWMKLSNlbHNlCi1leHRlcm4gVVYgRFBQUF8obXlfZ3Jva19vY3Qp
KHBUSFhfIGNvbnN0IGNoYXIgKiBzdGFydCwgU1RSTEVOICogbGVuX3AsIEkzMiAqIGZsYWdzLCBO
ViAqIHJlc3VsdCk7Ci0jZW5kaWYKLQotI2lmZGVmIGdyb2tfb2N0Ci0jICB1bmRlZiBncm9rX29j
dAotI2VuZGlmCi0jZGVmaW5lIGdyb2tfb2N0KGEsYixjLGQpIERQUFBfKG15X2dyb2tfb2N0KShh
VEhYXyBhLGIsYyxkKQotI2RlZmluZSBQZXJsX2dyb2tfb2N0IERQUFBfKG15X2dyb2tfb2N0KQot
Ci0jaWYgZGVmaW5lZChORUVEX2dyb2tfb2N0KSB8fCBkZWZpbmVkKE5FRURfZ3Jva19vY3RfR0xP
QkFMKQotVVYKLURQUFBfKG15X2dyb2tfb2N0KShwVEhYXyBjb25zdCBjaGFyICpzdGFydCwgU1RS
TEVOICpsZW5fcCwgSTMyICpmbGFncywgTlYgKnJlc3VsdCkKLXsKLSAgICBjb25zdCBjaGFyICpz
ID0gc3RhcnQ7Ci0gICAgU1RSTEVOIGxlbiA9ICpsZW5fcDsKLSAgICBVViB2YWx1ZSA9IDA7Ci0g
ICAgTlYgdmFsdWVfbnYgPSAwOwotCi0gICAgY29uc3QgVVYgbWF4X2Rpdl84ID0gVVZfTUFYIC8g
ODsKLSAgICBib29sIGFsbG93X3VuZGVyc2NvcmVzID0gKmZsYWdzICYgUEVSTF9TQ0FOX0FMTE9X
X1VOREVSU0NPUkVTOwotICAgIGJvb2wgb3ZlcmZsb3dlZCA9IEZBTFNFOwotCi0gICAgZm9yICg7
IGxlbi0tICYmICpzOyBzKyspIHsKLSAgICAgICAgIC8qIGdjYyAyLjk1IG9wdGltaXNlciBub3Qg
c21hcnQgZW5vdWdoIHRvIGZpZ3VyZSB0aGF0IHRoaXMgc3VidHJhY3Rpb24KLSAgICAgICAgICAg
IG91dCBmcm9udCBhbGxvd3Mgc2xpY2tlciBjb2RlLiAgKi8KLSAgICAgICAgaW50IGRpZ2l0ID0g
KnMgLSAnMCc7Ci0gICAgICAgIGlmIChkaWdpdCA+PSAwICYmIGRpZ2l0IDw9IDcpIHsKLSAgICAg
ICAgICAgIC8qIFdyaXRlIGl0IGluIHRoaXMgd29ua3kgb3JkZXIgd2l0aCBhIGdvdG8gdG8gYXR0
ZW1wdCB0byBnZXQgdGhlCi0gICAgICAgICAgICAgICBjb21waWxlciB0byBtYWtlIHRoZSBjb21t
b24gY2FzZSBpbnRlZ2VyLW9ubHkgbG9vcCBwcmV0dHkgdGlnaHQuCi0gICAgICAgICAgICAqLwot
ICAgICAgICAgIHJlZG86Ci0gICAgICAgICAgICBpZiAoIW92ZXJmbG93ZWQpIHsKLSAgICAgICAg
ICAgICAgICBpZiAodmFsdWUgPD0gbWF4X2Rpdl84KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZh
bHVlID0gKHZhbHVlIDw8IDMpIHwgZGlnaXQ7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvKiBCYWguIFdlJ3JlIGp1c3Qg
b3ZlcmZsb3dlZC4gICovCi0gICAgICAgICAgICAgICAgd2FybigiSW50ZWdlciBvdmVyZmxvdyBp
biBvY3RhbCBudW1iZXIiKTsKLSAgICAgICAgICAgICAgICBvdmVyZmxvd2VkID0gVFJVRTsKLSAg
ICAgICAgICAgICAgICB2YWx1ZV9udiA9IChOVikgdmFsdWU7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB2YWx1ZV9udiAqPSA4LjA7Ci0gICAgICAgIC8qIElmIGFuIE5WIGhhcyBub3QgZW5v
dWdoIGJpdHMgaW4gaXRzIG1hbnRpc3NhIHRvCi0gICAgICAgICAqIHJlcHJlc2VudCBhIFVWIHRo
aXMgc3VtbWluZyBvZiBzbWFsbCBsb3ctb3JkZXIgbnVtYmVycwotICAgICAgICAgKiBpcyBhIHdh
c3RlIG9mIHRpbWUgKGJlY2F1c2UgdGhlIE5WIGNhbm5vdCBwcmVzZXJ2ZQotICAgICAgICAgKiB0
aGUgbG93LW9yZGVyIGJpdHMgYW55d2F5KTogd2UgY291bGQganVzdCByZW1lbWJlciB3aGVuCi0g
ICAgICAgICAqIGRpZCB3ZSBvdmVyZmxvdyBhbmQgaW4gdGhlIGVuZCBqdXN0IG11bHRpcGx5IHZh
bHVlX252IGJ5IHRoZQotICAgICAgICAgKiByaWdodCBhbW91bnQgb2YgOC10dXBsZXMuICovCi0g
ICAgICAgICAgICB2YWx1ZV9udiArPSAoTlYpZGlnaXQ7Ci0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoZGlnaXQgPT0gKCdfJyAtICcwJykgJiYgbGVuICYmIGFs
bG93X3VuZGVyc2NvcmVzCi0gICAgICAgICAgICAmJiAoZGlnaXQgPSBzWzFdIC0gJzAnKSAmJiAo
ZGlnaXQgPj0gMCAmJiBkaWdpdCA8PSA3KSkKLSAgICAgICAgewotICAgICAgICAtLWxlbjsKLSAg
ICAgICAgKytzOwotICAgICAgICAgICAgICAgIGdvdG8gcmVkbzsKLSAgICAgICAgfQotICAgICAg
ICAvKiBBbGxvdyBcb2N0YWwgdG8gd29yayB0aGUgRFdJTSB3YXkgKHRoYXQgaXMsIHN0b3Agc2Nh
bm5pbmcKLSAgICAgICAgICogYXMgc29vbiBhcyBub24tb2N0YWwgY2hhcmFjdGVycyBhcmUgc2Vl
biwgY29tcGxhaW4gb25seSBpZmYKLSAgICAgICAgICogc29tZW9uZSBzZWVtcyB0byB3YW50IHRv
IHVzZSB0aGUgZGlnaXRzIGVpZ2h0IGFuZCBuaW5lKS4gKi8KLSAgICAgICAgaWYgKGRpZ2l0ID09
IDggfHwgZGlnaXQgPT0gOSkgewotICAgICAgICAgICAgaWYgKCEoKmZsYWdzICYgUEVSTF9TQ0FO
X1NJTEVOVF9JTExESUdJVCkpCi0gICAgICAgICAgICAgICAgd2FybigiSWxsZWdhbCBvY3RhbCBk
aWdpdCAnJWMnIGlnbm9yZWQiLCAqcyk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotCi0gICAgaWYgKCAgICggb3ZlcmZsb3dlZCAmJiB2YWx1ZV9udiA+IDQyOTQ5NjcyOTUuMCkK
LSNpZiBVVlNJWkUgPiA0Ci0gICAgfHwgKCFvdmVyZmxvd2VkICYmIHZhbHVlID4gMHhmZmZmZmZm
ZiAgKQotI2VuZGlmCi0gICAgKSB7Ci0gICAgd2FybigiT2N0YWwgbnVtYmVyID4gMDM3Nzc3Nzc3
Nzc3IG5vbi1wb3J0YWJsZSIpOwotICAgIH0KLSAgICAqbGVuX3AgPSBzIC0gc3RhcnQ7Ci0gICAg
aWYgKCFvdmVyZmxvd2VkKSB7Ci0gICAgICAgICpmbGFncyA9IDA7Ci0gICAgICAgIHJldHVybiB2
YWx1ZTsKLSAgICB9Ci0gICAgKmZsYWdzID0gUEVSTF9TQ0FOX0dSRUFURVJfVEhBTl9VVl9NQVg7
Ci0gICAgaWYgKHJlc3VsdCkKLSAgICAgICAgKnJlc3VsdCA9IHZhbHVlX252OwotICAgIHJldHVy
biBVVl9NQVg7Ci19Ci0jZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQobXlfc25wcmludGYp
Ci0jaWYgZGVmaW5lZChORUVEX215X3NucHJpbnRmKQotc3RhdGljIGludCBEUFBQXyhteV9teV9z
bnByaW50ZikoY2hhciAqIGJ1ZmZlciwgY29uc3QgU2l6ZV90IGxlbiwgY29uc3QgY2hhciAqIGZv
cm1hdCwgLi4uKTsKLXN0YXRpYwotI2Vsc2UKLWV4dGVybiBpbnQgRFBQUF8obXlfbXlfc25wcmlu
dGYpKGNoYXIgKiBidWZmZXIsIGNvbnN0IFNpemVfdCBsZW4sIGNvbnN0IGNoYXIgKiBmb3JtYXQs
IC4uLik7Ci0jZW5kaWYKLQotI2RlZmluZSBteV9zbnByaW50ZiBEUFBQXyhteV9teV9zbnByaW50
ZikKLSNkZWZpbmUgUGVybF9teV9zbnByaW50ZiBEUFBQXyhteV9teV9zbnByaW50ZikKLQotI2lm
IGRlZmluZWQoTkVFRF9teV9zbnByaW50ZikgfHwgZGVmaW5lZChORUVEX215X3NucHJpbnRmX0dM
T0JBTCkKLQotaW50Ci1EUFBQXyhteV9teV9zbnByaW50ZikoY2hhciAqYnVmZmVyLCBjb25zdCBT
aXplX3QgbGVuLCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKLXsKLSAgICBkVEhYOwotICAgIGlu
dCByZXR2YWw7Ci0gICAgdmFfbGlzdCBhcDsKLSAgICB2YV9zdGFydChhcCwgZm9ybWF0KTsKLSNp
ZmRlZiBIQVNfVlNOUFJJTlRGCi0gICAgcmV0dmFsID0gdnNucHJpbnRmKGJ1ZmZlciwgbGVuLCBm
b3JtYXQsIGFwKTsKLSNlbHNlCi0gICAgcmV0dmFsID0gdnNwcmludGYoYnVmZmVyLCBmb3JtYXQs
IGFwKTsKLSNlbmRpZgotICAgIHZhX2VuZChhcCk7Ci0gICAgaWYgKHJldHZhbCA+PSAoaW50KWxl
bikKLSAgICBQZXJsX2Nyb2FrKGFUSFhfICJwYW5pYzogbXlfc25wcmludGYgYnVmZmVyIG92ZXJm
bG93Iik7Ci0gICAgcmV0dXJuIHJldHZhbDsKLX0KLQotI2VuZGlmCi0jZW5kaWYKLQotI2lmZGVm
IE5PX1hTTE9DS1MKLSMgIGlmZGVmIGRKTVBFTlYKLSMgICAgZGVmaW5lIGRYQ1BUICAgICAgICAg
ICAgIGRKTVBFTlY7IGludCByRXRWID0gMAotIyAgICBkZWZpbmUgWENQVF9UUllfU1RBUlQgICAg
Sk1QRU5WX1BVU0gockV0Vik7IGlmIChyRXRWID09IDApCi0jICAgIGRlZmluZSBYQ1BUX1RSWV9F
TkQgICAgICBKTVBFTlZfUE9QOwotIyAgICBkZWZpbmUgWENQVF9DQVRDSCAgICAgICAgaWYgKHJF
dFYgIT0gMCkKLSMgICAgZGVmaW5lIFhDUFRfUkVUSFJPVyAgICAgIEpNUEVOVl9KVU1QKHJFdFYp
Ci0jICBlbHNlCi0jICAgIGRlZmluZSBkWENQVCAgICAgICAgICAgICBTaWdqbXBfYnVmIG9sZFRP
UDsgaW50IHJFdFYgPSAwCi0jICAgIGRlZmluZSBYQ1BUX1RSWV9TVEFSVCAgICBDb3B5KHRvcF9l
bnYsIG9sZFRPUCwgMSwgU2lnam1wX2J1Zik7IHJFdFYgPSBTaWdzZXRqbXAodG9wX2VudiwgMSk7
IGlmIChyRXRWID09IDApCi0jICAgIGRlZmluZSBYQ1BUX1RSWV9FTkQgICAgICBDb3B5KG9sZFRP
UCwgdG9wX2VudiwgMSwgU2lnam1wX2J1Zik7Ci0jICAgIGRlZmluZSBYQ1BUX0NBVENIICAgICAg
ICBpZiAockV0ViAhPSAwKQotIyAgICBkZWZpbmUgWENQVF9SRVRIUk9XICAgICAgU2lnbG9uZ2pt
cCh0b3BfZW52LCByRXRWKQotIyAgZW5kaWYKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQobXlfc3Ry
bGNhdCkKLSNpZiBkZWZpbmVkKE5FRURfbXlfc3RybGNhdCkKLXN0YXRpYyBTaXplX3QgRFBQUF8o
bXlfbXlfc3RybGNhdCkoY2hhciAqIGRzdCwgY29uc3QgY2hhciAqIHNyYywgU2l6ZV90IHNpemUp
Owotc3RhdGljCi0jZWxzZQotZXh0ZXJuIFNpemVfdCBEUFBQXyhteV9teV9zdHJsY2F0KShjaGFy
ICogZHN0LCBjb25zdCBjaGFyICogc3JjLCBTaXplX3Qgc2l6ZSk7Ci0jZW5kaWYKLQotI2RlZmlu
ZSBteV9zdHJsY2F0IERQUFBfKG15X215X3N0cmxjYXQpCi0jZGVmaW5lIFBlcmxfbXlfc3RybGNh
dCBEUFBQXyhteV9teV9zdHJsY2F0KQotCi0jaWYgZGVmaW5lZChORUVEX215X3N0cmxjYXQpIHx8
IGRlZmluZWQoTkVFRF9teV9zdHJsY2F0X0dMT0JBTCkKLQotU2l6ZV90Ci1EUFBQXyhteV9teV9z
dHJsY2F0KShjaGFyICpkc3QsIGNvbnN0IGNoYXIgKnNyYywgU2l6ZV90IHNpemUpCi17Ci0gICAg
U2l6ZV90IHVzZWQsIGxlbmd0aCwgY29weTsKLQotICAgIHVzZWQgPSBzdHJsZW4oZHN0KTsKLSAg
ICBsZW5ndGggPSBzdHJsZW4oc3JjKTsKLSAgICBpZiAoc2l6ZSA+IDAgJiYgdXNlZCA8IHNpemUg
LSAxKSB7Ci0gICAgICAgIGNvcHkgPSAobGVuZ3RoID49IHNpemUgLSB1c2VkKSA/IHNpemUgLSB1
c2VkIC0gMSA6IGxlbmd0aDsKLSAgICAgICAgbWVtY3B5KGRzdCArIHVzZWQsIHNyYywgY29weSk7
Ci0gICAgICAgIGRzdFt1c2VkICsgY29weV0gPSAnXDAnOwotICAgIH0KLSAgICByZXR1cm4gdXNl
ZCArIGxlbmd0aDsKLX0KLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChteV9zdHJsY3B5
KQotI2lmIGRlZmluZWQoTkVFRF9teV9zdHJsY3B5KQotc3RhdGljIFNpemVfdCBEUFBQXyhteV9t
eV9zdHJsY3B5KShjaGFyICogZHN0LCBjb25zdCBjaGFyICogc3JjLCBTaXplX3Qgc2l6ZSk7Ci1z
dGF0aWMKLSNlbHNlCi1leHRlcm4gU2l6ZV90IERQUFBfKG15X215X3N0cmxjcHkpKGNoYXIgKiBk
c3QsIGNvbnN0IGNoYXIgKiBzcmMsIFNpemVfdCBzaXplKTsKLSNlbmRpZgotCi0jZGVmaW5lIG15
X3N0cmxjcHkgRFBQUF8obXlfbXlfc3RybGNweSkKLSNkZWZpbmUgUGVybF9teV9zdHJsY3B5IERQ
UFBfKG15X215X3N0cmxjcHkpCi0KLSNpZiBkZWZpbmVkKE5FRURfbXlfc3RybGNweSkgfHwgZGVm
aW5lZChORUVEX215X3N0cmxjcHlfR0xPQkFMKQotCi1TaXplX3QKLURQUFBfKG15X215X3N0cmxj
cHkpKGNoYXIgKmRzdCwgY29uc3QgY2hhciAqc3JjLCBTaXplX3Qgc2l6ZSkKLXsKLSAgICBTaXpl
X3QgbGVuZ3RoLCBjb3B5OwotCi0gICAgbGVuZ3RoID0gc3RybGVuKHNyYyk7Ci0gICAgaWYgKHNp
emUgPiAwKSB7Ci0gICAgICAgIGNvcHkgPSAobGVuZ3RoID49IHNpemUpID8gc2l6ZSAtIDEgOiBs
ZW5ndGg7Ci0gICAgICAgIG1lbWNweShkc3QsIHNyYywgY29weSk7Ci0gICAgICAgIGRzdFtjb3B5
XSA9ICdcMCc7Ci0gICAgfQotICAgIHJldHVybiBsZW5ndGg7Ci19Ci0KLSNlbmRpZgotI2VuZGlm
Ci0KLSNlbmRpZiAvKiBfUF9QX1BPUlRBQklMSVRZX0hfICovCi0KLS8qIEVuZCBvZiBGaWxlIHBw
cG9ydC5oICovCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGVybFN1cHBv
cnQvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uL3QvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0
aW9uLnQgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvUGVybFN1cHBvcnQvSVBob25lU2ltdWxh
dG9yTm90aWZpY2F0aW9uL3QvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uLnQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYyZjI1NDljNTY1YTk0ZWE5YTdkZTYzMDZjZmEyMTgyNzMy
OGJlNjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0L0lQaG9uZVNpbXVsYXRvck5vdGlmaWNh
dGlvbi90L0lQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi50CisrKyAvZGV2L251bGwKQEAgLTEs
MTUgKzAsMCBAQAotIyBCZWZvcmUgYG1ha2UgaW5zdGFsbCcgaXMgcGVyZm9ybWVkIHRoaXMgc2Ny
aXB0IHNob3VsZCBiZSBydW5uYWJsZSB3aXRoCi0jIGBtYWtlIHRlc3QnLiBBZnRlciBgbWFrZSBp
bnN0YWxsJyBpdCBzaG91bGQgd29yayBhcyBgcGVybCBJUGhvbmVTaW11bGF0b3JOb3RpZmljYXRp
b24udCcKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIGNoYW5nZSAndGVzdHMgPT4g
MScgdG8gJ3Rlc3RzID0+IGxhc3RfdGVzdF90b19wcmludCc7Ci0KLXVzZSBUZXN0OjpNb3JlIHRl
c3RzID0+IDE7Ci1CRUdJTiB7IHVzZV9vaygnSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uJykg
fTsKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jIEluc2VydCB5b3VyIHRlc3QgY29k
ZSBiZWxvdywgdGhlIFRlc3Q6Ok1vcmUgbW9kdWxlIGlzIHVzZSgpZWQgaGVyZSBzbyByZWFkCi0j
IGl0cyBtYW4gcGFnZSAoIHBlcmxkb2MgVGVzdDo6TW9yZSApIGZvciBoZWxwIHdyaXRpbmcgdGhp
cyB0ZXN0IHNjcmlwdC4KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1Bl
cmxTdXBwb3J0L01ha2VmaWxlIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1BlcmxTdXBwb3J0
L01ha2VmaWxlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzIxMWU5ODIzOGZjMGI0
YjA0NGFkNzFlYmM1YzRhNWRkZmMxODFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9QZXJsU3VwcG9ydC9NYWtl
ZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDEwMCArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAw
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotIyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0jIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0j
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSMgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLQotaWZu
ZXEgKCwkKGZpbHRlciBpcGhvbmVzaW11bGF0b3IsICQoUExBVEZPUk1fTkFNRSkpKQotCi1UQVJH
RVRfQlVJTERfRElSID89IC4KLU9VVFBVVF9ESVI9JChUQVJHRVRfQlVJTERfRElSKQotCi1XUkFQ
UEVSX0RJUj0kKE9VVFBVVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL0R1bXBSZW5kZXJUcmVlCi1pZm5l
cSAoJChQTEFURk9STV9OQU1FKSxpcGhvbmVvcykKLVdSQVBQRVI9JChXUkFQUEVSX0RJUikvRHVt
cFJlbmRlclRyZWVTdXBwb3J0X3dyYXAuYwotUEVSTF9NT0RVTEU9JChPVVRQVVRfRElSKS9EdW1w
UmVuZGVyVHJlZVN1cHBvcnQucG0KLURZTElCPSQoT1VUUFVUX0RJUikvRHVtcFJlbmRlclRyZWVT
dXBwb3J0LmR5bGliCi1lbmRpZgotRFVNUFJFTkRFUlRSRUU9JChPVVRQVVRfRElSKS9EdW1wUmVu
ZGVyVHJlZQotUEVSTD0vdXNyL2Jpbi9wZXJsCi0KLURVTVBSRU5ERVJUUkVFPSQoT1VUUFVUX0RJ
UikvRHVtcFJlbmRlclRyZWUuYXBwL0R1bXBSZW5kZXJUcmVlCi0KLSMgRklYTUU6IFdlIHNob3Vs
ZG4ndCBoYXJkIGNvZGUgdGhlc2UgYXJjaGl0ZWN0dXJlcy4gU2VlIDxyZGFyOi8vcHJvYmxlbS85
MDQ3MTcxPiBmb3IgbW9yZSBkaXNjdXNzaW9uIG9uIHdoeSB3ZSBoYXZlIHRvLgotQVJDSFM9aTM4
NiB4ODZfNjQKLQotIyBUaGUgRHVtcFJlbmRlclRyZWVTdXBwb3J0IGR5bGliIGFuZCB0aGUgSVBo
b25lU2ltdWxhdG9yTm90aWZpY2F0aW9uIGJ1bmRsZSBhcmUgT1MgWC1zcGVjaWZpYyBjb21wb25l
bnRzIHRoYXQKLSMgYXJlIG5lZWRlZCB0byBydW4gRHVtcFJlbmRlclRyZWUgaW4gaU9TIFNpbXVs
YXRvci4gV2UgZXhwbGljaXRseSB1bmV4cG9ydCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgU0RLUk9P
VCBhbmQKLSMgVE9PTENIQUlOUyBhbmQgdGhlbiBvdmVycmlkZSB0aGVtIHRvIHVzZSB0aGUgT1Mg
WCBTREsgYW5kIHRvb2xjaGFpbiB3aGVuIGJ1aWxkaW5nIHRoZXNlIGNvbXBvbmVudHMuCi11bmV4
cG9ydCBTREtST09UCi11bmV4cG9ydCBUT09MQ0hBSU5TCi1TREtST09UPW1hY29zeAotVE9PTENI
QUlOUz1vc3gKLQotYWxsOiAkKERZTElCKSAkKFBFUkxfTU9EVUxFKQotCi0kKFdSQVBQRVIpOiBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRfd3JhcFByZWdlbmVyYXRlZC5jICQoRFVNUFJFTkRFUlRSRUUp
Ci0JbWtkaXIgLXAgJChXUkFQUEVSX0RJUikKLQljcCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRfd3Jh
cFByZWdlbmVyYXRlZC5jICQoV1JBUFBFUikKLQotJChQRVJMX01PRFVMRSk6IER1bXBSZW5kZXJU
cmVlU3VwcG9ydFByZWdlbmVyYXRlZC5wbSAkKERVTVBSRU5ERVJUUkVFKQotCWNwIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFByZWdlbmVyYXRlZC5wbSAkKFBFUkxfTU9EVUxFKQotCi0kKERZTElCKTog
RHVtcFJlbmRlclRyZWVTdXBwb3J0LmMgJChXUkFQUEVSKQotCXhjcnVuIGNsYW5nIC1nIC1keW5h
bWljbGliIC1vICQoRFlMSUIpIGAkKFBFUkwpIC1NRXh0VXRpbHM6OkVtYmVkIC1lcGVybF9pbmNg
IGAkKFBFUkwpIC1NRXh0VXRpbHM6OkVtYmVkIC1lJ215ICQkb3B0cyA9IGxkb3B0cygwKTsgJCRv
cHRzID1+IHMvLWFyY2ggW14gXSooIHwkJCkvL2c7IHByaW50ICQkb3B0cywgIiAtYXJjaCAiLCBq
b2luKCIgLWFyY2ggIiwgc3BsaXQoIiAiLCQkRU5We0FSQ0hTfSkpJ2AgJF4KLQotSVBIT05FX1NJ
TVVMQVRPUl9OT1RJRkNBVElPTl9CVU5ETEU9JChPVVRQVVRfRElSKS9saWIvcGVybDUvZGFyd2lu
LXRocmVhZC1tdWx0aS0ybGV2ZWwvYXV0by9JUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24vSVBo
b25lU2ltdWxhdG9yTm90aWZpY2F0aW9uLmJ1bmRsZQotSVBIT05FX1NJTVVMQVRPUl9OT1RJRkNB
VElPTl9NT0RVTEU9JChPVVRQVVRfRElSKS9saWIvcGVybDUvZGFyd2luLXRocmVhZC1tdWx0aS0y
bGV2ZWwvSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uLnBtCi0KLWFsbDogJChJUEhPTkVfU0lN
VUxBVE9SX05PVElGQ0FUSU9OX0JVTkRMRSkgJChJUEhPTkVfU0lNVUxBVE9SX05PVElGQ0FUSU9O
X01PRFVMRSkKLQotJChJUEhPTkVfU0lNVUxBVE9SX05PVElGQ0FUSU9OX0JVTkRMRSkgJChJUEhP
TkVfU0lNVUxBVE9SX05PVElGQ0FUSU9OX01PRFVMRSk6IElQaG9uZVNpbXVsYXRvck5vdGlmaWNh
dGlvbi9JUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24ueHMgSVBob25lU2ltdWxhdG9yTm90aWZp
Y2F0aW9uL01ha2VmaWxlLlBMIElQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi9saWIvSVBob25l
U2ltdWxhdG9yTm90aWZpY2F0aW9uLnBtIElQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbi9wcHBv
cnQuaCBJUGhvbmVTaW11bGF0b3JOb3RpZmljYXRpb24vdC9JUGhvbmVTaW11bGF0b3JOb3RpZmlj
YXRpb24udAotCWNkIElQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbiAmJiBwZXJsIE1ha2VmaWxl
LlBMIElOU1RBTExfQkFTRT0kKE9VVFBVVF9ESVIpCi0JbWFrZSAtQyBJUGhvbmVTaW11bGF0b3JO
b3RpZmljYXRpb24gdGVzdAotCW1ha2UgLUMgSVBob25lU2ltdWxhdG9yTm90aWZpY2F0aW9uIGlu
c3RhbGwKLQltYWtlIC1DIElQaG9uZVNpbXVsYXRvck5vdGlmaWNhdGlvbiByZWFsY2xlYW4KLQkj
IFRvdWNoIHRoZSBidWlsdCBwZXJsIG1vZHVsZSBhbmQgaXRzIGJ1bmRsZSBzaW5jZSBJUGhvbmVT
aW11bGF0b3JOb3RpZmljYXRpb24ueHMgYW5kIE1ha2VmaWxlLlBMIGFsd2F5cyBoYXZlIG5ld2Vy
IGRhdGVzIGFmdGVyIGJ1aWxkaW5nLgotCXRvdWNoICQoSVBIT05FX1NJTVVMQVRPUl9OT1RJRkNB
VElPTl9CVU5ETEUpICQoSVBIT05FX1NJTVVMQVRPUl9OT1RJRkNBVElPTl9NT0RVTEUpCi0KLWNs
ZWFuOgotCXJtIC1mICQoV1JBUFBFUikgJChQRVJMX01PRFVMRSkgJChEWUxJQikKLQotaW5zdGFs
bGhkcnMgaW5zdGFsbHNyYzoKLQotSU5TVEFMTF9MT0NBVElPTj0kKERTVFJPT1QpLyQoU1lTVEVN
X0xJQlJBUllfRElSKS9GcmFtZXdvcmtzLyQoV0VCS0lUX0ZSQU1FV09SS19SRVNPVVJDRVNfUEFU
SCkKLQotaW5zdGFsbDogYWxsCi0JbWtkaXIgLXAgJChJTlNUQUxMX0xPQ0FUSU9OKQotCWNwICQo
RFlMSUIpICQoSU5TVEFMTF9MT0NBVElPTikvRHVtcFJlbmRlclRyZWVTdXBwb3J0LmR5bGliCi0J
Y3AgJChQRVJMX01PRFVMRSkgJChJTlNUQUxMX0xPQ0FUSU9OKS9EdW1wUmVuZGVyVHJlZVN1cHBv
cnQucG0KLQotZWxzZQotCi1pbnN0YWxsOgotCi1hbGw6Ci0KLWNsZWFuOgotCi1pbnN0YWxsaGRy
czoKLQotaW5zdGFsbHNyYzoKLQotZW5kaWYK
</data>
<flag name="review"
          id="260328"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>