<?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>226487</bug_id>
          
          <creation_ts>2021-06-01 04:44:27 -0700</creation_ts>
          <short_desc>Update libsrtp to M92</short_desc>
          <delta_ts>2021-06-07 00:00:26 -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>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765557</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-01 04:44:27 -0700</bug_when>
    <thetext>Update libsrtp to M92</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765568</commentid>
    <comment_count>1</comment_count>
      <attachid>430248</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-01 04:50:50 -0700</bug_when>
    <thetext>Created attachment 430248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765905</commentid>
    <comment_count>2</comment_count>
      <attachid>430326</attachid>
    <who name="Víctor M. Jáquez L.">vjaquez</who>
    <bug_when>2021-06-02 01:22:32 -0700</bug_when>
    <thetext>Created attachment 430326
fix compilation for webkitgtk/wpe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766735</commentid>
    <comment_count>3</comment_count>
      <attachid>430568</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-04 04:58:45 -0700</bug_when>
    <thetext>Created attachment 430568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767327</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-06 23:59:09 -0700</bug_when>
    <thetext>Committed r278547 (238545@main): &lt;https://commits.webkit.org/238545@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430568.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767328</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-07 00:00:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/78936402&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430248</attachid>
            <date>2021-06-01 04:50:50 -0700</date>
            <delta_ts>2021-06-04 04:58:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226487-20210601135048.patch</filename>
            <type>text/plain</type>
            <size>127432</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA0M2Q1NTA0NTQ2NjZkNTg5NjJjZGFjZTQ5NWI1NjRjNmRmMDEzZGU1Li41ODcz
NDUzMDhhOWM2NWM5OWYxZTQzOWQ4MDM0YTc5NGJiMTI1YjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNi0wMSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGxpYnNydHAgdG8gTTky
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY0ODcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL2xpYnNydHAueGNjb25maWc6CisgICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5
L2xpYnNydHA6IFJlc3luY2VkLgorICAgICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDIxLTA2LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBVcGRhdGUgYm9yaW5nc3NsIHRvIE05MgpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYnNydHAueGNjb25maWcgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlic3J0cC54Y2NvbmZp
ZwppbmRleCBkYTgxNjIxNTUxY2ZiMGYwMzJjNTliOWZhMTg1MjdlNDEzYzIxNjU4Li5hNTM1OTIy
ZDMzYWM1OTMwN2VjMzM0MWU3YmYwODYzNDNkMzE2NjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlic3J0cC54Y2NvbmZpZworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlic3J0cC54Y2NvbmZp
ZwpAQCAtMTEsNCArMTEsNCBAQCBIRUFERVJfU0VBUkNIX1BBVEhTID0gU291cmNlL3RoaXJkX3Bh
cnR5L2xpYnNydHAvaW5jbHVkZSBTb3VyY2UvdGhpcmRfcGFydHkvbGlicwogSU5TVEFMTF9QQVRI
ID0gL3Vzci9sb2NhbC9saWI7CiBQVUJMSUNfSEVBREVSU19GT0xERVJfUEFUSCA9IC91c3IvbG9j
YWwvaW5jbHVkZS9saWJ3ZWJydGM7CiBVU0VfSEVBREVSTUFQID0gTk87Ci1HQ0NfUFJFUFJPQ0VT
U09SX0RFRklOSVRJT05TID0gVjhfREVQUkVDQVRJT05fV0FSTklOR1MgRU5BQkxFX05PVElGSUNB
VElPTlMgRU5BQkxFX1BMVUdJTlM9MSBFTkFCTEVfUERGPTEgRU5BQkxFX1BSSU5USU5HPTEgRU5B
QkxFX0JBU0lDX1BSSU5USU5HPTEgRU5BQkxFX1BSSU5UX1BSRVZJRVc9MSBFTkFCTEVfU1BFTExD
SEVDSz0xIFVTRV9CUk9XU0VSX1NQRUxMQ0hFQ0tFUj0xIE5PX1RDTUFMTE9DIFVTRV9FWFRFUk5B
TF9QT1BVUF9NRU5VPTEgRU5BQkxFX1dFQlJUQz0xIEVOQUJMRV9FWFRFTlNJT05TPTEgRU5BQkxF
X1RBU0tfTUFOQUdFUj0xIEVOQUJMRV9USEVNRVM9MSBFTkFCTEVfU0VTU0lPTl9TRVJWSUNFPTEg
RU5BQkxFX1NVUEVSVklTRURfVVNFUlM9MSBGVUxMX1NBRkVfQlJPV1NJTkcgU0FGRV9CUk9XU0lO
R19DU0QgU0FGRV9CUk9XU0lOR19EQl9MT0NBTCBDSFJPTUlVTV9CVUlMRCBFTkFCTEVfTUVESUFf
Uk9VVEVSPTEgRklFTERUUklBTF9URVNUSU5HX0VOQUJMRUQgQ1JfQ0xBTkdfUkVWSVNJT049Mjg0
OTc5LTEgQ1JfWENPREVfVkVSU0lPTj0wODIwIF9fQVNTRVJUX01BQ1JPU19ERUZJTkVfVkVSU0lP
TlNfV0lUSE9VVF9VTkRFUlNDT1JFPTAgX0RFQlVHIERZTkFNSUNfQU5OT1RBVElPTlNfRU5BQkxF
RD0xIFdURl9VU0VfRFlOQU1JQ19BTk5PVEFUSU9OUz0xIFBBQ0tBR0VfU1RSSU5HPSJcImxpYnNy
dHAyIDIuMC4wLXByZVwiIiBQQUNLQUdFX1ZFUlNJT049IlwiMi4wLjAtcHJlXCIiIEhBVkVfQ09O
RklHX0ggT1BFTlNTTCBIQVZFX1NURExJQl9IIEhBVkVfU1RSSU5HX0ggSEFWRV9TVERJTlRfSCBI
QVZFX0lOVFRZUEVTX0ggSEFWRV9JTlQxNl9UIEhBVkVfSU5UMzJfVCBIQVZFX0lOVDhfVCBIQVZF
X1VJTlQxNl9UIEhBVkVfVUlOVDMyX1QgSEFWRV9VSU5UNjRfVCBIQVZFX1VJTlQ4X1QgSEFWRV9B
UlBBX0lORVRfSCBIQVZFX05FVElORVRfSU5fSCBIQVZFX1NZU19UWVBFU19IIEhBVkVfVU5JU1RE
X0ggJChpbmhlcml0ZWQpOworR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9IFY4X0RFUFJF
Q0FUSU9OX1dBUk5JTkdTIEVOQUJMRV9OT1RJRklDQVRJT05TIEVOQUJMRV9QTFVHSU5TPTEgRU5B
QkxFX1BERj0xIEVOQUJMRV9QUklOVElORz0xIEVOQUJMRV9CQVNJQ19QUklOVElORz0xIEVOQUJM
RV9QUklOVF9QUkVWSUVXPTEgRU5BQkxFX1NQRUxMQ0hFQ0s9MSBVU0VfQlJPV1NFUl9TUEVMTENI
RUNLRVI9MSBOT19UQ01BTExPQyBVU0VfRVhURVJOQUxfUE9QVVBfTUVOVT0xIEVOQUJMRV9XRUJS
VEM9MSBFTkFCTEVfRVhURU5TSU9OUz0xIEVOQUJMRV9UQVNLX01BTkFHRVI9MSBFTkFCTEVfVEhF
TUVTPTEgRU5BQkxFX1NFU1NJT05fU0VSVklDRT0xIEVOQUJMRV9TVVBFUlZJU0VEX1VTRVJTPTEg
RlVMTF9TQUZFX0JST1dTSU5HIFNBRkVfQlJPV1NJTkdfQ1NEIFNBRkVfQlJPV1NJTkdfREJfTE9D
QUwgQ0hST01JVU1fQlVJTEQgRU5BQkxFX01FRElBX1JPVVRFUj0xIEZJRUxEVFJJQUxfVEVTVElO
R19FTkFCTEVEIENSX0NMQU5HX1JFVklTSU9OPTI4NDk3OS0xIENSX1hDT0RFX1ZFUlNJT049MDgy
MCBfX0FTU0VSVF9NQUNST1NfREVGSU5FX1ZFUlNJT05TX1dJVEhPVVRfVU5ERVJTQ09SRT0wIF9E
RUJVRyBEWU5BTUlDX0FOTk9UQVRJT05TX0VOQUJMRUQ9MSBXVEZfVVNFX0RZTkFNSUNfQU5OT1RB
VElPTlM9MSBQQUNLQUdFX1NUUklORz0iXCJsaWJzcnRwMiAyLjAuMC1wcmVcIiIgUEFDS0FHRV9W
RVJTSU9OPSJcIjIuMC4wLXByZVwiIiBIQVZFX0NPTkZJR19IIE9QRU5TU0wgSEFWRV9TVERMSUJf
SCBIQVZFX1NUUklOR19IIEhBVkVfU1RESU5UX0ggSEFWRV9JTlRUWVBFU19IIEhBVkVfSU5UMTZf
VCBIQVZFX0lOVDMyX1QgSEFWRV9JTlQ4X1QgSEFWRV9VSU5UMTZfVCBIQVZFX1VJTlQzMl9UIEhB
VkVfVUlOVDY0X1QgSEFWRV9VSU5UOF9UIEhBVkVfQVJQQV9JTkVUX0ggSEFWRV9ORVRJTkVUX0lO
X0ggSEFWRV9TWVNfVFlQRVNfSCBIQVZFX1VOSVNURF9IIEdDTSAkKGluaGVyaXRlZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xp
YnNydHAvQlVJTEQuZ24gYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2xpYnNydHAvQlVJTEQuZ24KaW5kZXggNjM1OTU4NTdmMGU1YWQ4NWMwM2ZjYTA4MDdi
NWY1ODk5OThkNWUwNy4uMGYwZjllNTBkZTcxODY0YjRlNDM0ODRkMGUyNzRkOTkyNjRmNGZlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9saWJzcnRwL0JVSUxELmduCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvbGlic3J0cC9CVUlMRC5nbgpAQCAtMTMsMTIgKzEzLDEzIEBAIGRlY2xh
cmVfYXJncygpIHsKIGNvbmZpZygibGlic3J0cF9jb25maWciKSB7CiAgIGRlZmluZXMgPSBbCiAg
ICAgIyBQYWNrYWdlIGlkZW50aXR5Ci0gICAgIlBBQ0tBR0VfU1RSSU5HPVwibGlic3J0cDIgMi4x
LjAtcHJlXCIiLAotICAgICJQQUNLQUdFX1ZFUlNJT049XCIyLjEuMC1wcmVcIiIsCisgICAgIlBB
Q0tBR0VfU1RSSU5HPVwiODYwNDkyMjkwZjdkMWYyNWUyYmQ0NWRhNjQ3MWJmZDRjZDRkN2FkZFwi
IiwKKyAgICAiUEFDS0FHRV9WRVJTSU9OPVwiODYwNDkyMjkwZjdkMWYyNWUyYmQ0NWRhNjQ3MWJm
ZDRjZDRkN2FkZFwiIiwKIAogICAgICMgQ29uZmlnCiAgICAgIkhBVkVfQ09ORklHX0giLAogICAg
ICJPUEVOU1NMIiwKKyAgICAiR0NNIiwKIAogICAgICMgUGxhdGZvcm0gcHJvcGVydGllcwogICAg
ICJIQVZFX1NURExJQl9IIiwKQEAgLTMzLDYgKzM0LDcgQEAgY29uZmlnKCJsaWJzcnRwX2NvbmZp
ZyIpIHsKICAgICAiSEFWRV9VSU5UNjRfVCIsCiAgICAgIkhBVkVfVUlOVDhfVCIsCiAgIF0KKwog
ICBpZiAoaXNfcG9zaXggfHwgaXNfZnVjaHNpYSkgewogICAgIGRlZmluZXMgKz0gWwogICAgICAg
IkhBVkVfQVJQQV9JTkVUX0giLApAQCAtNzQsOSArNzYsMTAgQEAgc3RhdGljX2xpYnJhcnkoImxp
YnNydHAiKSB7CiAKICAgICAjIGhlYWRlcnMKICAgICAiY3J5cHRvL2luY2x1ZGUvYWVzLmgiLAot
ICAgICJjcnlwdG8vaW5jbHVkZS9hZXNfZ2NtX29zc2wuaCIsCisgICAgImNyeXB0by9pbmNsdWRl
L2Flc19nY20uaCIsCisgICAgImNyeXB0by9pbmNsdWRlL2NpcGhlcl9wcml2LmgiLAogICAgICJj
cnlwdG8vaW5jbHVkZS9hZXNfaWNtLmgiLAotICAgICJjcnlwdG8vaW5jbHVkZS9hZXNfaWNtX29z
c2wuaCIsCisgICAgImNyeXB0by9pbmNsdWRlL2Flc19pY21fZXh0LmgiLAogICAgICJjcnlwdG8v
aW5jbHVkZS9hbGxvYy5oIiwKICAgICAiY3J5cHRvL2luY2x1ZGUvYXV0aC5oIiwKICAgICAiY3J5
cHRvL2luY2x1ZGUvY2lwaGVyLmgiLApAQCAtMTEzLDcgKzExNiwyMyBAQCBzdGF0aWNfbGlicmFy
eSgibGlic3J0cCIpIHsKICAgICAiY3J5cHRvL3JlcGxheS9yZGJ4LmMiLAogICAgICJzcnRwL2Vr
dC5jIiwKICAgICAic3J0cC9zcnRwLmMiLAorCisgICAgIyBUT0RPKGJ1Z3Mud2VicnRjLm9yZy8x
MTkxNSk6IFRoZSBmb2xsb3dpbmcgZmlsZXMgYXJlIG5vdCBuZWVkZWQgYnkKKyAgICAjIFdlYlJU
QyBhbmQgdGhleSBhcmUgbm90IHBhcnQgb2YgdGhlIGJ1aWxkIGFuZCB0aGUgY2hlY2tvdXQuCisg
ICAgIyBBZGRpbmcgdGhlbSB0byB0aGUgYnVpbGQsIHJlcXVpcmVzIHRoZSBhZGRpdGlvbiBvZiBz
b21lIGNvbmRpdGlvbmFscworICAgICMgc2luY2UgdGhlc2UgZmlsZXMgaW5jbHVkZSBkdXBsaWNh
dGVkIHN5bWJvbHMgYW5kIGNhbm5vdCBiZSBidWlsdAorICAgICMgdG9nZXRoZXIuCisgICAgIwor
ICAgICMgImNyeXB0by9pbmNsdWRlL2htYWMuaCIsCisgICAgIyAiY3J5cHRvL2luY2x1ZGUvc2hh
MS5oIiwKKyAgICAjICJjcnlwdG8vY2lwaGVyL2Flcy5jIiwKKyAgICAjICJjcnlwdG8vY2lwaGVy
L2Flc19pY20uYyIsCisgICAgIyAiY3J5cHRvL2hhc2gvaG1hYy5jIiwKKyAgICAjICJjcnlwdG8v
aGFzaC9zaGExLmMiLAorICAgICMgImNyeXB0by9jaXBoZXIvYWVzX2djbV9uc3MuYyIsCisgICAg
IyAiY3J5cHRvL2NpcGhlci9hZXNfaWNtX25zcy5jIiwKICAgXQorCiAgIHB1YmxpY19kZXBzID0g
WwogICAgICIvL3RoaXJkX3BhcnR5L2JvcmluZ3NzbDpib3Jpbmdzc2wiLAogICBdCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNy
dHAvQ0hBTkdFUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvbGlic3J0cC9DSEFOR0VTCmluZGV4IGNhYTJiNjExMzljNjg4ZmE2OWU4MjUyMmM1YTRmZDE0
MjM0OTM4ZWUuLjE4MWEzMWI4MmE0YWU3MzQ3YjFmNGY3NWYzMGFlZmNiMDcwYWMzOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGli
c3J0cC9DSEFOR0VTCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvbGlic3J0cC9DSEFOR0VTCkBAIC0xLDYgKzEsNDIgQEAKIENoYW5nZWxvZwogCi0y
LjIuMC1wcmUgKFRoaXMgdmVyc2lvbikKKzIuNC4wLXByZSAoVGhpcyB2ZXJzaW9uKQorCisyLjMu
MAorCitNYWpvciBjaGFuZ2VzCisKK0EgZnV6emVyIHdhcyBhZGRlZCB0byB0aGUgcHJvamVjdCBi
YXNlZCBvbiBsaWJGdXp6ZXIuIFRoaXMgaXMgcnVuIGFzIHBhcnQgb2YgR29vZ2xlIG9zcy1mdXp6
LCB0aGUgY3VycmVudCBzdGF0dXMgY2FuIGJlIGZvdW5kIGF0IGh0dHBzOi8vb3NzLWZ1enotYnVp
bGQtbG9ncy5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL2luZGV4Lmh0bWwjbGlic3J0cCAuIERldGFp
bHMgYXZhaWxhYmxlIGluIFBSICM0NDIgYW5kIGlzc3VlICMzOTMuCisKK0NNYWtlIHN1cHBvcnQg
d2FzIGFkZGVkIGFzIGFuIGFsdGVybmF0aXZlIGJ1aWxkIHN5c3RlbS4gVGhpcyB3YXMgcHJpbWFy
aWx5IGFkZGVkIHRvIHJlcGxhY2UgdGhlIFZpc3VhbCBTdHVkaW8gcHJvamVjdCBmaWxlcyBjdXJy
ZW50bHkgY2hlY2tlZCBpbiBidXQgaGFzIGJlZW4gZXh0ZW5kIHRvIHN1cHBvcnQgYnVpbGRpbmcg
b24gYWxsIHBsYXRmb3Jtcy4gSW5pdGlhbCBQUiAjNDQ5IGFuZCAjNDU1IGJ1dCBoYXMgYmVlbiBz
dXBwb3J0IGhhcyBiZWVuIGNvbnRpbnVvdXNseSBpbXByb3ZlZC4gCisKK05TUyBzdXBwb3J0IGZv
ciBjcnlwdG8gYmFja2VuZCB3YXMgYWRkZWQuIFRoaXMgaXMgY2FuIGJlIHVzZWQgYXMgYW4gYWx0
ZXJuYXRpdmUgdG8gb3BlbnNzbC4gSW5pdGlhbCBQUiAjNDEzIGJ1dCB0aGVyZSBoYXMgYmVlbiBu
dW1lcm91cyBpbXByb3ZlbWVudHMuCisKK1BSICM0NzQgLSBBZGQgZmxhZyB0byBkaXNhYmxlIHBj
YXAgZGVwZW5kZW5jeSB3aGVuIGJ1aWxkIHRlc3QgYXBwcy4KKworUFIgIzQ3MiAtIEFkZCBjaSBi
dWlsZHMgZm9yIGlvcyBhbmQgYW5kcm9pZC4KKworUFIgIzQ2MyAtIHByb2JsZW0gb24gc3J0cF9h
ZXNfaWNtX29wZW5zc2xfZW5jcnlwdC4KKworUFIgIzQ3MSAtIEFsbG93IHRoZSBwY2FwIGZpbGUg
dG8gYmUgcmVhZCBmcm9tIGEgcGh5c2ljYWwgZmlsZS4KKworUFIgIzQ1NyAtIEZpeCBkb2NzIGNy
eXB0b19wb2xpY3lfKiAtPiBzcnRwX2NyeXB0b19wb2xpY3lfKiAuCisKK1BSICM0NTIgLSBjcnlw
dG8vY2lwaGVyOiBSZXNldCB0aGUgRVZQX0NJUEhFUl9DVFggc3RydWN0dXJlIGJlZm9yZSBlYWNo
IHRlc3QuCisKK1BSICM0NDQgLSBFeHRlbmQgcnRwX2Vjb2RlciB0byBzdXBwb3J0IFJUQ1AgYW5k
IG11bHRpcGxleGVkIFNTUkMncy4KKworUFIgIzQ0MyAtIHJ0cF9kZWNvZGVyIGF2b2lkIGNyYXNo
IHdoZW4gbm8gcGFja2V0cyBmb3VuZC4KKworUFIgIzQyOSAtIFJhbmQgZm9yIHRlc3Qgb25seS4K
KworUFIgIzQyMSAtIEZpeCBHQ00gSVYgbG9nZ2luZy4KKworUFIgIzQxNSAtIEZpeGVzIHVuYWxp
Z25lZCB0cmFpbGVyIGFjY2Vzcy4KKworUFIgIzQxNCAtIERldGVjdCBhbmQgaGFuZGxlIGJyb2tl
biAiT1BFTlNTTF9jbGVhbnNlIi4KKworMi4yLjAKIAogTWFqb3IgY2hhbmdlcwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNy
dHAvTElCU1JUUF9WRVJTSU9OIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9saWJzcnRwL0xJQlNSVFBfVkVSU0lPTgppbmRleCA1NDMyMjYxNDg3ZjVjYjA0
Zjg0OWUzYjhkNDUzMmE2N2RjNzcwZWE2Li5kNTRjNmE4MjdmNmRkMThmYzFkNTQ1YTIxYWRhMjY5
NmNhNDY1MTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2xpYnNydHAvTElCU1JUUF9WRVJTSU9OCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9MSUJTUlRQX1ZFUlNJT04K
QEAgLTEgKzEgQEAKLTIuMi4wLXByZQorODYwNDkyMjkwZjdkMWYyNWUyYmQ0NWRhNjQ3MWJmZDRj
ZDRkN2FkZApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9saWJzcnRwL09XTkVSUyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9PV05FUlMKaW5kZXggYTU1ODY3ODY3Mzc3ODkyMjhh
ZDMzNTMxOTVkYjE5YzMzZTkwZWMwMy4uODc2MWQ0NWNjOGU2MTYxNmQ2Mzk1MjM4ZGRiYTA4Nzcw
NzExMDY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9saWJzcnRwL09XTkVSUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvT1dORVJTCkBAIC0xLDIgKzEsNCBAQAogbWF0
dGRyQGNocm9taXVtLm9yZwogcGhvZ2x1bmRAY2hyb21pdW0ub3JnCisKKyMgQ09NUE9ORU5UOiBJ
bnRlcm5hbHM+V2ViUlRDCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL01ha2VmaWxlLmluIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9NYWtl
ZmlsZS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40NGYyOWFkMmNmMWUxNzczN2E1M2U0ZDFkZmVmYjcwN2FlZjFi
Y2JiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9NYWtlZmlsZS5pbgpAQCAtMCwwICsxLDExOSBA
QAorIyBNYWtlZmlsZSBmb3IgY3J5cHRvIHRlc3Qgc3VpdGUKKyMKKyMgRGF2aWQgQS4gTWNHcmV3
CisjIENpc2NvIFN5c3RlbXMsIEluYy4KKworc3JjZGlyID0gQHNyY2RpckAKK3RvcF9zcmNkaXIg
PSBAdG9wX3NyY2RpckAKK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACitWUEFUSCA9IEBz
cmNkaXJACisKK0NDCT0gQENDQAorSU5DRElSCT0gLUlpbmNsdWRlIC1JJChzcmNkaXIpL2luY2x1
ZGUgLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUKK0RFRlMJPSBAREVGU0AKK0NQUEZMQUdTPSBAQ1BQ
RkxBR1NACitDRkxBR1MJPSBAQ0ZMQUdTQAorTElCUwk9IEBMSUJTQAorTERGTEFHUwk9IEBMREZM
QUdTQCAtTC4gLUwuLgorQ09NUElMRSA9ICQoQ0MpICQoREVGUykgJChJTkNESVIpICQoQ1BQRkxB
R1MpICQoQ0ZMQUdTKQorQ1JZUFRPTElCID0gLWxzcnRwMgorQ1JZUFRPX0xJQkRJUiA9IEBDUllQ
VE9fTElCRElSQAorCitSQU5MSUIJPSBAUkFOTElCQAorCisjIFNwZWNpZnkgaG93IHRlc3RzIHNo
b3VsZCBmaW5kIHNoYXJlZCBsaWJyYXJpZXMgb24gbWFjT1MgYW5kIExpbnV4CisjCisjIG1hY09T
IHB1cmdlcyBEWUxEX0xJQlJBUllfUEFUSCB3aGVuIHNwYXduaW5nIHN1YnByb2Nlc3Nlcywgc28g
aXQncworIyBub3QgcG9zc2libGUgdG8gcGFzcyB0aGlzIGluIGZyb20gdGhlIG91dHNpZGU7IHdl
IGhhdmUgdG8gc3BlY2lmeQorIyBpdCBmb3IgYW55IHN1YnByb2Nlc3NlcyB3ZSBjYWxsLiBObyBz
dXBwb3J0IGZvciBkeW5hbWljIGxpbmtlZAorIyB0ZXN0cyBvbiBXaW5kb3dzLgoraWZuZXEgKCQo
c3RyaXAgJChDUllQVE9fTElCRElSKSksKQorCWlmbmVxICgkKE9TKSxXaW5kb3dzX05UKQorCQlV
TkFNRV9TID0gJChzaGVsbCB1bmFtZSAtcykKKwkJaWZlcSAoJChVTkFNRV9TKSxMaW51eCkKKwkJ
CUZJTkRfTElCUkFSSUVTID0gTERfTElCUkFSWV9QQVRIPSQoQ1JZUFRPX0xJQkRJUikKKwkJZW5k
aWYKKwkJaWZlcSAoJChVTkFNRV9TKSxEYXJ3aW4pCisJCQlGSU5EX0xJQlJBUklFUyA9IERZTERf
TElCUkFSWV9QQVRIPSQoQ1JZUFRPX0xJQkRJUikKKwkJZW5kaWYKKwllbmRpZgorZW5kaWYKKwor
IyBFWEUgZGVmaW5lcyB0aGUgc3VmZml4IG9uIGV4ZWN1dGFibGVzIC0gaXQncyAuZXhlIGZvciBj
eWd3aW4sIGFuZAorIyBudWxsIG9uIGxpbnV4LCBic2QsIGFuZCBPUyBYIGFuZCBvdGhlciBPU2Vz
LiAgd2UgZGVmaW5lIHRoaXMgc28gdGhhdAorIyBgbWFrZSBjbGVhbmAgd2lsbCB3b3JrIG9uIHRo
ZSBjeWd3aW4gcGxhdGZvcm0KK0VYRSA9IEBFWEVACisjIFJhbmRvbSBzb3VyY2UuCitVU0VfRVhU
RVJOQUxfQ1JZUFRPID0gQFVTRV9FWFRFUk5BTF9DUllQVE9ACisKK2lmZGVmIEFSQ0gKKyAgREVG
UyArPSAtRCQoQVJDSCk9MQorZW5kaWYKKworaWZkZWYgc3lzbmFtZQorICBERUZTICs9IC1EJChz
eXNuYW1lKT0xCitlbmRpZgorCisuUEhPTlk6IGR1bW15IGFsbCBydW50ZXN0IGNsZWFuIHN1cGVy
Y2xlYW4KKworZHVtbXkgOiBhbGwgcnVudGVzdAorCisjIHRlc3QgYXBwbGljYXRpb25zCitpZm5l
cSAoMSwgJChVU0VfRVhURVJOQUxfQ1JZUFRPKSkKK0FFU19DQUxDID0gdGVzdC9hZXNfY2FsYyQo
RVhFKQorZW5kaWYKKwordGVzdGFwcCA9IHRlc3QvY2lwaGVyX2RyaXZlciQoRVhFKSB0ZXN0L2Rh
dGF0eXBlc19kcml2ZXIkKEVYRSkgXAorCSAgdGVzdC9zdGF0X2RyaXZlciQoRVhFKSB0ZXN0L3No
YTFfZHJpdmVyJChFWEUpIFwKKwkgIHRlc3Qva2VybmVsX2RyaXZlciQoRVhFKSAkKEFFU19DQUxD
KSBcCisJICB0ZXN0L2VudiQoRVhFKQorCisjIGRhdGEgdmFsdWVzIHVzZWQgdG8gdGVzdCB0aGUg
YWVzX2NhbGMgYXBwbGljYXRpb24gZm9yIEFFUy0xMjgKK2sxMjg9MDAwMTAyMDMwNDA1MDYwNzA4
MDkwYTBiMGMwZDBlMGYKK3AxMjg9MDAxMTIyMzM0NDU1NjY3Nzg4OTlhYWJiY2NkZGVlZmYKK2Mx
Mjg9NjljNGUwZDg2YTdiMDQzMGQ4Y2RiNzgwNzBiNGM1NWEKKworCisjIGRhdGEgdmFsdWVzIHVz
ZWQgdG8gdGVzdCB0aGUgYWVzX2NhbGMgYXBwbGljYXRpb24gZm9yIEFFUy0yNTYKK2syNTY9MDAw
MTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYxMDExMTIxMzE0MTUxNjE3MTgxOTFhMWIxYzFk
MWUxZgorcDI1Nj0wMDExMjIzMzQ0NTU2Njc3ODg5OWFhYmJjY2RkZWVmZgorYzI1Nj04ZWEyYjdj
YTUxNjc0NWJmZWFmYzQ5OTA0YjQ5NjA4OQorCisKK3J1bnRlc3Q6ICQodGVzdGFwcCkKKwkkKEZJ
TkRfTElCUkFSSUVTKSB0ZXN0L2VudiQoRVhFKSAjIHByaW50IG91dCBpbmZvcm1hdGlvbiBvbiB0
aGUgYnVpbGQgZW52aXJvbm1lbnQKKwlAZWNobyAicnVubmluZyBjcnlwdG8gdGVzdCBhcHBsaWNh
dGlvbnMuLi4iCitpZm5lcSAoMSwgJChVU0VfRVhURVJOQUxfQ1JZUFRPKSkKKwkkKEZJTkRfTElC
UkFSSUVTKSB0ZXN0IGB0ZXN0L2Flc19jYWxjICQoazEyOCkgJChwMTI4KWAgPSAkKGMxMjgpCisJ
JChGSU5EX0xJQlJBUklFUykgdGVzdCBgdGVzdC9hZXNfY2FsYyAkKGsyNTYpICQocDI1NilgID0g
JChjMjU2KQorZW5kaWYKKwkkKEZJTkRfTElCUkFSSUVTKSB0ZXN0L2NpcGhlcl9kcml2ZXIkKEVY
RSkgLXYgPi9kZXYvbnVsbAorCSQoRklORF9MSUJSQVJJRVMpIHRlc3QvZGF0YXR5cGVzX2RyaXZl
ciQoRVhFKSAtdiA+L2Rldi9udWxsCisJJChGSU5EX0xJQlJBUklFUykgdGVzdC9zdGF0X2RyaXZl
ciQoRVhFKSA+L2Rldi9udWxsCisJJChGSU5EX0xJQlJBUklFUykgdGVzdC9zaGExX2RyaXZlciQo
RVhFKSAtdiA+L2Rldi9udWxsCisJJChGSU5EX0xJQlJBUklFUykgdGVzdC9rZXJuZWxfZHJpdmVy
JChFWEUpIC12ID4vZGV2L251bGwKKwlAZWNobyAiY3J5cHRvIHRlc3QgYXBwbGljYXRpb25zIHBh
c3NlZC4iCisKKworIyB0aGUgcnVsZSBmb3IgbWFraW5nIG9iamVjdCBmaWxlcyBhbmQgdGVzdCBh
cHBzCisKKyUubzogJS5jCisJJChDT01QSUxFKSAtYyAkPCAtbyAkQAorCislJChFWEUpOiAlLmMg
JChzcmNkaXIpLy4uL3Rlc3QvZ2V0b3B0X3MuYworCSQoQ09NUElMRSkgJChMREZMQUdTKSAkPCAk
KHNyY2RpcikvLi4vdGVzdC9nZXRvcHRfcy5jIC1vICRAICQoQ1JZUFRPTElCKSAkKExJQlMpCisK
K2FsbDogJCh0ZXN0YXBwKQorCisjIGhvdXNla2VlcGluZyBmdW5jdGlvbnMKKworY2xlYW46CisJ
cm0gLWYgJCh0ZXN0YXBwKSAqLm8gKi8qLm8KKwlmb3IgYSBpbiAqIC4qICovKjsgZG8gaWYgWyAt
ZiAiJCRhfiIgXSA7IHRoZW4gcm0gJCRhfjsgZmk7IGRvbmU7CisJcm0gLWYgYGZpbmQgLiAtbmFt
ZSAiKi5bY2hdfip+ImAKKwlybSAtcmYgbGF0ZXgKKworc3VwZXJjbGVhbjogY2xlYW4KKwlybSAt
ZiAqY29yZSBUQUdTIGt0cmFjZS5vdXQKKworIyBFT0YKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vY2lwaGVy
L2Flc19nY21fb3NzbC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9jaXBoZXIvYWVzX2djbV9vc3NsLmMKaW5kZXggZWYxM2E3
ODI0MDQ4Mzc3NTdkZjViNWIxNDdmZTBhNzk2ZGFiNTgzNi4uMzc1ZDYzY2U5OTdmMTdmNTc3NzEx
MDhhZDYzN2ViYmJmNTkxYmVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9jaXBoZXIvYWVzX2djbV9vc3Ns
LmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9s
aWJzcnRwL2NyeXB0by9jaXBoZXIvYWVzX2djbV9vc3NsLmMKQEAgLTQ5LDggKzQ5LDcgQEAKICNl
bmRpZgogCiAjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KLSNpbmNsdWRlICJhZXNfaWNtX29zc2wu
aCIKLSNpbmNsdWRlICJhZXNfZ2NtX29zc2wuaCIKKyNpbmNsdWRlICJhZXNfZ2NtLmgiCiAjaW5j
bHVkZSAiYWxsb2MuaCIKICNpbmNsdWRlICJlcnIuaCIgLyogZm9yIHNydHBfZGVidWcgKi8KICNp
bmNsdWRlICJjcnlwdG9fdHlwZXMuaCIKQEAgLTEyNCwxMyArMTIzLDEzIEBAIHN0YXRpYyBzcnRw
X2Vycl9zdGF0dXNfdCBzcnRwX2Flc19nY21fb3BlbnNzbF9hbGxvYyhzcnRwX2NpcGhlcl90ICoq
YywKICAgICAvKiBzZXR1cCBjaXBoZXIgYXR0cmlidXRlcyAqLwogICAgIHN3aXRjaCAoa2V5X2xl
bikgewogICAgIGNhc2UgU1JUUF9BRVNfR0NNXzEyOF9LRVlfTEVOX1dTQUxUOgotICAgICAgICAo
KmMpLT50eXBlID0gJnNydHBfYWVzX2djbV8xMjhfb3BlbnNzbDsKKyAgICAgICAgKCpjKS0+dHlw
ZSA9ICZzcnRwX2Flc19nY21fMTI4OwogICAgICAgICAoKmMpLT5hbGdvcml0aG0gPSBTUlRQX0FF
U19HQ01fMTI4OwogICAgICAgICBnY20tPmtleV9zaXplID0gU1JUUF9BRVNfMTI4X0tFWV9MRU47
CiAgICAgICAgIGdjbS0+dGFnX2xlbiA9IHRsZW47CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
U1JUUF9BRVNfR0NNXzI1Nl9LRVlfTEVOX1dTQUxUOgotICAgICAgICAoKmMpLT50eXBlID0gJnNy
dHBfYWVzX2djbV8yNTZfb3BlbnNzbDsKKyAgICAgICAgKCpjKS0+dHlwZSA9ICZzcnRwX2Flc19n
Y21fMjU2OwogICAgICAgICAoKmMpLT5hbGdvcml0aG0gPSBTUlRQX0FFU19HQ01fMjU2OwogICAg
ICAgICBnY20tPmtleV9zaXplID0gU1JUUF9BRVNfMjU2X0tFWV9MRU47CiAgICAgICAgIGdjbS0+
dGFnX2xlbiA9IHRsZW47CkBAIC0xOTMsNiArMTkyLDcgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1
c190IHNydHBfYWVzX2djbV9vcGVuc3NsX2NvbnRleHRfaW5pdCh2b2lkICpjdiwKICAgICAgICAg
YnJlYWs7CiAgICAgfQogCisgICAgRVZQX0NJUEhFUl9DVFhfY2xlYW51cChjLT5jdHgpOwogICAg
IGlmICghRVZQX0NpcGhlckluaXRfZXgoYy0+Y3R4LCBldnAsIE5VTEwsIGtleSwgTlVMTCwgMCkp
IHsKICAgICAgICAgcmV0dXJuIChzcnRwX2Vycl9zdGF0dXNfaW5pdF9mYWlsKTsKICAgICB9CkBA
IC0yMTgsNyArMjE4LDcgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfYWVzX2djbV9v
cGVuc3NsX3NldF9pdigKICAgICBjLT5kaXIgPSBkaXJlY3Rpb247CiAKICAgICBkZWJ1Z19wcmlu
dChzcnRwX21vZF9hZXNfZ2NtLCAic2V0dGluZyBpdjogJXMiLAotICAgICAgICAgICAgICAgIHYx
MjhfaGV4X3N0cmluZygodjEyOF90ICopaXYpKTsKKyAgICAgICAgICAgICAgICBzcnRwX29jdGV0
X3N0cmluZ19oZXhfc3RyaW5nKGl2LCAxMikpOwogCiAgICAgaWYgKCFFVlBfQ0lQSEVSX0NUWF9j
dHJsKGMtPmN0eCwgRVZQX0NUUkxfR0NNX1NFVF9JVkxFTiwgMTIsIDApKSB7CiAgICAgICAgIHJl
dHVybiAoc3J0cF9lcnJfc3RhdHVzX2luaXRfZmFpbCk7CkBAIC0yNDcsMjAgKzI0NywzMSBAQCBz
dGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9hZXNfZ2NtX29wZW5zc2xfc2V0X2FhZCh2b2lk
ICpjdiwKICAgICBzcnRwX2Flc19nY21fY3R4X3QgKmMgPSAoc3J0cF9hZXNfZ2NtX2N0eF90ICop
Y3Y7CiAgICAgaW50IHJ2OwogCi0gICAgLyoKLSAgICAgKiBTZXQgZHVtbXkgdGFnLCBPcGVuU1NM
IHJlcXVpcmVzIHRoZSBUYWcgdG8gYmUgc2V0IGJlZm9yZQotICAgICAqIHByb2Nlc3NpbmcgQUFE
Ci0gICAgICovCisgICAgZGVidWdfcHJpbnQoc3J0cF9tb2RfYWVzX2djbSwgInNldHRpbmcgQUFE
OiAlcyIsCisgICAgICAgICAgICAgICAgc3J0cF9vY3RldF9zdHJpbmdfaGV4X3N0cmluZyhhYWQs
IGFhZF9sZW4pKTsKIAogICAgIC8qCi0gICAgICogT3BlblNTTCBuZXZlciB3cml0ZSB0byBhZGRy
ZXNzIHBvaW50ZWQgYnkgdGhlIGxhc3QgcGFyYW1ldGVyIG9mCi0gICAgICogRVZQX0NJUEhFUl9D
VFhfY3RybCB3aGlsZSBFVlBfQ1RSTF9HQ01fU0VUX1RBRyAoaW4gcmVhbGl0eSwKLSAgICAgKiBP
cGVuU1NMIGNvcHkgaXRzIGNvbnRlbnQgdG8gdGhlIGNvbnRleHQpLCBzbyB3ZSBjYW4gbWFrZQot
ICAgICAqIGFhZCByZWFkLW9ubHkgaW4gdGhpcyBmdW5jdGlvbiBhbmQgYWxsIGl0cyB3cmFwcGVy
cy4KKyAgICAgKiBFVlBfQ1RSTF9HQ01fU0VUX1RBRyBjYW4gb25seSBiZSB1c2VkIHdoZW4gZGVj
cnlwdGluZwogICAgICAqLwotICAgIHVuc2lnbmVkIGNoYXIgZHVtbXlfdGFnW0dDTV9BVVRIX1RB
R19MRU5dOwotICAgIG1lbXNldChkdW1teV90YWcsIDB4MCwgR0NNX0FVVEhfVEFHX0xFTik7Ci0g
ICAgRVZQX0NJUEhFUl9DVFhfY3RybChjLT5jdHgsIEVWUF9DVFJMX0dDTV9TRVRfVEFHLCBjLT50
YWdfbGVuLCAmZHVtbXlfdGFnKTsKKyAgICBpZiAoYy0+ZGlyID09IHNydHBfZGlyZWN0aW9uX2Rl
Y3J5cHQpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogU2V0IGR1bW15IHRhZywgT3BlblNTTCBy
ZXF1aXJlcyB0aGUgVGFnIHRvIGJlIHNldCBiZWZvcmUKKyAgICAgICAgICogcHJvY2Vzc2luZyBB
QUQKKyAgICAgICAgICovCisKKyAgICAgICAgLyoKKyAgICAgICAgICogT3BlblNTTCBuZXZlciB3
cml0ZSB0byBhZGRyZXNzIHBvaW50ZWQgYnkgdGhlIGxhc3QgcGFyYW1ldGVyIG9mCisgICAgICAg
ICAqIEVWUF9DSVBIRVJfQ1RYX2N0cmwgd2hpbGUgRVZQX0NUUkxfR0NNX1NFVF9UQUcgKGluIHJl
YWxpdHksCisgICAgICAgICAqIE9wZW5TU0wgY29weSBpdHMgY29udGVudCB0byB0aGUgY29udGV4
dCksIHNvIHdlIGNhbiBtYWtlCisgICAgICAgICAqIGFhZCByZWFkLW9ubHkgaW4gdGhpcyBmdW5j
dGlvbiBhbmQgYWxsIGl0cyB3cmFwcGVycy4KKyAgICAgICAgICovCisgICAgICAgIHVuc2lnbmVk
IGNoYXIgZHVtbXlfdGFnW0dDTV9BVVRIX1RBR19MRU5dOworICAgICAgICBtZW1zZXQoZHVtbXlf
dGFnLCAweDAsIEdDTV9BVVRIX1RBR19MRU4pOworICAgICAgICBpZiAoIUVWUF9DSVBIRVJfQ1RY
X2N0cmwoYy0+Y3R4LCBFVlBfQ1RSTF9HQ01fU0VUX1RBRywgYy0+dGFnX2xlbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZkdW1teV90YWcpKSB7CisgICAgICAgICAgICByZXR1
cm4gKHNydHBfZXJyX3N0YXR1c19hbGdvX2ZhaWwpOworICAgICAgICB9CisgICAgfQogCiAgICAg
cnYgPSBFVlBfQ2lwaGVyKGMtPmN0eCwgTlVMTCwgYWFkLCBhYWRfbGVuKTsKICAgICBpZiAocnYg
IT0gYWFkX2xlbikgewpAQCAtMzE5LDcgKzMzMCw5IEBAIHN0YXRpYyBzcnRwX2Vycl9zdGF0dXNf
dCBzcnRwX2Flc19nY21fb3BlbnNzbF9nZXRfdGFnKHZvaWQgKmN2LAogICAgIC8qCiAgICAgICog
UmV0cmVpdmUgdGhlIHRhZwogICAgICAqLwotICAgIEVWUF9DSVBIRVJfQ1RYX2N0cmwoYy0+Y3R4
LCBFVlBfQ1RSTF9HQ01fR0VUX1RBRywgYy0+dGFnX2xlbiwgYnVmKTsKKyAgICBpZiAoIUVWUF9D
SVBIRVJfQ1RYX2N0cmwoYy0+Y3R4LCBFVlBfQ1RSTF9HQ01fR0VUX1RBRywgYy0+dGFnX2xlbiwg
YnVmKSkgeworICAgICAgICByZXR1cm4gKHNydHBfZXJyX3N0YXR1c19hbGdvX2ZhaWwpOworICAg
IH0KIAogICAgIC8qCiAgICAgICogSW5jcmVhc2UgZW5jcnlwdGlvbiBsZW5ndGggYnkgZGVzaXJl
ZCB0YWcgc2l6ZQpAQCAtMzQ5LDggKzM2MiwxMCBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qg
c3J0cF9hZXNfZ2NtX29wZW5zc2xfZGVjcnlwdCh2b2lkICpjdiwKICAgICAvKgogICAgICAqIFNl
dCB0aGUgdGFnIGJlZm9yZSBkZWNyeXB0aW5nCiAgICAgICovCi0gICAgRVZQX0NJUEhFUl9DVFhf
Y3RybChjLT5jdHgsIEVWUF9DVFJMX0dDTV9TRVRfVEFHLCBjLT50YWdfbGVuLAotICAgICAgICAg
ICAgICAgICAgICAgICAgYnVmICsgKCplbmNfbGVuIC0gYy0+dGFnX2xlbikpOworICAgIGlmICgh
RVZQX0NJUEhFUl9DVFhfY3RybChjLT5jdHgsIEVWUF9DVFJMX0dDTV9TRVRfVEFHLCBjLT50YWdf
bGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYgKyAoKmVuY19sZW4gLSBjLT50
YWdfbGVuKSkpIHsKKyAgICAgICAgcmV0dXJuIChzcnRwX2Vycl9zdGF0dXNfYXV0aF9mYWlsKTsK
KyAgICB9CiAgICAgRVZQX0NpcGhlcihjLT5jdHgsIGJ1ZiwgYnVmLCAqZW5jX2xlbiAtIGMtPnRh
Z19sZW4pOwogCiAgICAgLyoKQEAgLTU0OCw3ICs1NjMsNyBAQCBzdGF0aWMgY29uc3Qgc3J0cF9j
aXBoZXJfdGVzdF9jYXNlX3Qgc3J0cF9hZXNfZ2NtX3Rlc3RfY2FzZV8xID0gewogLyoKICAqIFRo
aXMgaXMgdGhlIHZlY3RvciBmdW5jdGlvbiB0YWJsZSBmb3IgdGhpcyBjcnlwdG8gZW5naW5lLgog
ICovCi1jb25zdCBzcnRwX2NpcGhlcl90eXBlX3Qgc3J0cF9hZXNfZ2NtXzEyOF9vcGVuc3NsID0g
eworY29uc3Qgc3J0cF9jaXBoZXJfdHlwZV90IHNydHBfYWVzX2djbV8xMjggPSB7CiAgICAgc3J0
cF9hZXNfZ2NtX29wZW5zc2xfYWxsb2MsCiAgICAgc3J0cF9hZXNfZ2NtX29wZW5zc2xfZGVhbGxv
YywKICAgICBzcnRwX2Flc19nY21fb3BlbnNzbF9jb250ZXh0X2luaXQsCkBAIC01NjUsNyArNTgw
LDcgQEAgY29uc3Qgc3J0cF9jaXBoZXJfdHlwZV90IHNydHBfYWVzX2djbV8xMjhfb3BlbnNzbCA9
IHsKIC8qCiAgKiBUaGlzIGlzIHRoZSB2ZWN0b3IgZnVuY3Rpb24gdGFibGUgZm9yIHRoaXMgY3J5
cHRvIGVuZ2luZS4KICAqLwotY29uc3Qgc3J0cF9jaXBoZXJfdHlwZV90IHNydHBfYWVzX2djbV8y
NTZfb3BlbnNzbCA9IHsKK2NvbnN0IHNydHBfY2lwaGVyX3R5cGVfdCBzcnRwX2Flc19nY21fMjU2
ID0gewogICAgIHNydHBfYWVzX2djbV9vcGVuc3NsX2FsbG9jLAogICAgIHNydHBfYWVzX2djbV9v
cGVuc3NsX2RlYWxsb2MsCiAgICAgc3J0cF9hZXNfZ2NtX29wZW5zc2xfY29udGV4dF9pbml0LApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9saWJzcnRwL2NyeXB0by9jaXBoZXIvYWVzX2ljbV9vc3NsLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2NpcGhlci9hZXNf
aWNtX29zc2wuYwppbmRleCBiNTkxODk3NjIzYmIxNjdiMWI5YTkzNWFlODZjYzJlZGQ4NmJlZTE1
Li40NTFjZDE4YzBkOGM0Yjc2YTVlMzNlMGQzMDE4MTU1NTcxZjI0OWY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5
cHRvL2NpcGhlci9hZXNfaWNtX29zc2wuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2NpcGhlci9hZXNfaWNtX29zc2wu
YwpAQCAtNTMsNyArNTMsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgot
I2luY2x1ZGUgImFlc19pY21fb3NzbC5oIgorI2luY2x1ZGUgImFlc19pY21fZXh0LmgiCiAjaW5j
bHVkZSAiY3J5cHRvX3R5cGVzLmgiCiAjaW5jbHVkZSAiZXJyLmgiIC8qIGZvciBzcnRwX2RlYnVn
ICovCiAjaW5jbHVkZSAiYWxsb2MuaCIKQEAgLTc4LDkgKzc4LDkgQEAgc3J0cF9kZWJ1Z19tb2R1
bGVfdCBzcnRwX21vZF9hZXNfaWNtID0gewogICogKy0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t
LSstLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0rICAgfAogICogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0tLS0r
Ci0gKgkJCQkJCQkgIHwgZW5jcnlwdCB8Ci0gKgkJCQkJCQkgICstLS0tLS0tLS0rCi0gKgkJCQkJ
CQkgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgZW5jcnlwdCB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0tLSsKKyAqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAqICstLS0t
LS0rLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tKyAgIHwK
ICAqIHwgICAgICAgICAgICAgICAgICAgIGtleXN0cmVhbSBibG9jayAgICAgICAgICAgICAgICAg
ICAgfDwtLSsKICAqICstLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLSst
LS0tLS0rLS0tLS0tKwpAQCAtMjQ4LDYgKzI0OCw3IEBAIHN0YXRpYyBzcnRwX2Vycl9zdGF0dXNf
dCBzcnRwX2Flc19pY21fb3BlbnNzbF9jb250ZXh0X2luaXQodm9pZCAqY3YsCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAorICAgIEVWUF9DSVBIRVJfQ1RYX2NsZWFudXAoYy0+Y3R4KTsKICAgICBp
ZiAoIUVWUF9FbmNyeXB0SW5pdF9leChjLT5jdHgsIGV2cCwgTlVMTCwga2V5LCBOVUxMKSkgewog
ICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7CiAgICAgfSBlbHNlIHsKQEAgLTMw
OCw3ICszMDksNyBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9hZXNfaWNtX29wZW5z
c2xfZW5jcnlwdCh2b2lkICpjdiwKICAgICB9CiAgICAgKmVuY19sZW4gPSBsZW47CiAKLSAgICBp
ZiAoIUVWUF9FbmNyeXB0RmluYWxfZXgoYy0+Y3R4LCBidWYsICZsZW4pKSB7CisgICAgaWYgKCFF
VlBfRW5jcnlwdEZpbmFsX2V4KGMtPmN0eCwgYnVmICsgbGVuLCAmbGVuKSkgewogICAgICAgICBy
ZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2NpcGhlcl9mYWlsOwogICAgIH0KICAgICAqZW5jX2xlbiAr
PSBsZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2NpcGhlci9jaXBoZXIuYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vY2lwaGVyL2Np
cGhlci5jCmluZGV4IDE5ZjAwYWJjNTViZTY2ZDYwNzU4NjNkYzljZTUwZDJlNDg2M2U0NWMuLmRl
OTNiYzkwZDhmMzAzYmEyMDVlMGE1OTNiYWRmMjBiNmU0YTg5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8v
Y2lwaGVyL2NpcGhlci5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vY2lwaGVyL2NpcGhlci5jCkBAIC00OSw2ICs0OSw3
IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgImNpcGhlci5oIgorI2luY2x1ZGUgImNpcGhlcl9wcml2
LmgiCiAjaW5jbHVkZSAiY3J5cHRvX3R5cGVzLmgiCiAjaW5jbHVkZSAiZXJyLmgiICAgLyogZm9y
IHNydHBfZGVidWcgKi8KICNpbmNsdWRlICJhbGxvYy5oIiAvKiBmb3IgY3J5cHRvX2FsbG9jKCks
IGNyeXB0b19mcmVlKCkgICovCkBAIC0xNjUsMjQgKzE2NiwxMSBAQCBpbnQgc3J0cF9jaXBoZXJf
Z2V0X2tleV9sZW5ndGgoY29uc3Qgc3J0cF9jaXBoZXJfdCAqYykKIH0KIAogLyoKLSAqIEEgdHJp
dmlhbCBwbGF0Zm9ybSBpbmRlcGVuZGVudCByYW5kb20gc291cmNlLiAgVGhlIHJhbmRvbQotICog
ZGF0YSBpcyB1c2VkIGZvciBzb21lIG9mIHRoZSBjaXBoZXIgc2VsZi10ZXN0cy4KKyAqIEEgdHJp
dmlhbCBwbGF0Zm9ybSBpbmRlcGVuZGVudCByYW5kb20gc291cmNlLgorICogRm9yIHVzZSBpbiB0
ZXN0IG9ubHkuCiAgKi8KLXN0YXRpYyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX2NpcGhlcl9yYW5k
KHZvaWQgKmRlc3QsIHVpbnQzMl90IGxlbikKK3ZvaWQgc3J0cF9jaXBoZXJfcmFuZF9mb3JfdGVz
dHModm9pZCAqZGVzdCwgdWludDMyX3QgbGVuKQogewotI2lmIGRlZmluZWQoSEFWRV9SQU5EX1Mp
Ci0gICAgdWludDhfdCAqZHN0ID0gKHVpbnQ4X3QgKilkZXN0OwotICAgIHdoaWxlIChsZW4pIHsK
LSAgICAgICAgdW5zaWduZWQgaW50IHZhbDsKLSAgICAgICAgZXJybm9fdCBlcnIgPSByYW5kX3Mo
JnZhbCk7Ci0KLSAgICAgICAgaWYgKGVyciAhPSAwKQotICAgICAgICAgICAgcmV0dXJuIHNydHBf
ZXJyX3N0YXR1c19mYWlsOwotCi0gICAgICAgICpkc3QrKyA9IHZhbCAmIDB4ZmY7Ci0gICAgICAg
IGxlbi0tOwotICAgIH0KLSNlbHNlCiAgICAgLyogR2VuZXJpYyBDLWxpYnJhcnkgKHJhbmQoKSkg
dmVyc2lvbiAqLwogICAgIC8qIFRoaXMgaXMgYSByYW5kb20gc291cmNlIG9mIGxhc3QgcmVzb3J0
ICovCiAgICAgdWludDhfdCAqZHN0ID0gKHVpbnQ4X3QgKilkZXN0OwpAQCAtMTk0LDggKzE4Miwx
NyBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9jaXBoZXJfcmFuZCh2b2lkICpkZXN0
LCB1aW50MzJfdCBsZW4pCiAgICAgICAgICpkc3QrKyA9IHZhbCAmIDB4ZmY7CiAgICAgICAgIGxl
bi0tOwogICAgIH0KLSNlbmRpZgotICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfb2s7Cit9CisK
Ky8qCisgKiBBIHRyaXZpYWwgcGxhdGZvcm0gaW5kZXBlbmRlbnQgMzIgYml0IHJhbmRvbSBudW1i
ZXIuCisgKiBGb3IgdXNlIGluIHRlc3Qgb25seS4KKyAqLwordWludDMyX3Qgc3J0cF9jaXBoZXJf
cmFuZF91MzJfZm9yX3Rlc3RzKHZvaWQpCit7CisgICAgdWludDMyX3QgcjsKKyAgICBzcnRwX2Np
cGhlcl9yYW5kX2Zvcl90ZXN0cygmciwgc2l6ZW9mKHIpKTsKKyAgICByZXR1cm4gcjsKIH0KIAog
I2RlZmluZSBTRUxGX1RFU1RfQlVGX09DVEVUUyAxMjgKQEAgLTI0Niw3ICsyNDMsNyBAQCBzcnRw
X2Vycl9zdGF0dXNfdCBzcnRwX2NpcGhlcl90eXBlX3Rlc3QoCiAgICAgICAgIC8qCiAgICAgICAg
ICAqIHRlc3QgdGhlIGVuY3J5cHQgZnVuY3Rpb24KICAgICAgICAgICovCi0gICAgICAgIGRlYnVn
X3ByaW50KHNydHBfbW9kX2NpcGhlciwgInRlc3RpbmcgZW5jcnlwdGlvbiIsIE5VTEwpOworICAg
ICAgICBkZWJ1Z19wcmludDAoc3J0cF9tb2RfY2lwaGVyLCAidGVzdGluZyBlbmNyeXB0aW9uIik7
CiAKICAgICAgICAgLyogaW5pdGlhbGl6ZSBjaXBoZXIgKi8KICAgICAgICAgc3RhdHVzID0gc3J0
cF9jaXBoZXJfaW5pdChjLCB0ZXN0X2Nhc2UtPmtleSk7CkBAIC0zNTAsNyArMzQ3LDcgQEAgc3J0
cF9lcnJfc3RhdHVzX3Qgc3J0cF9jaXBoZXJfdHlwZV90ZXN0KAogICAgICAgICAvKgogICAgICAg
ICAgKiB0ZXN0IHRoZSBkZWNyeXB0IGZ1bmN0aW9uCiAgICAgICAgICAqLwotICAgICAgICBkZWJ1
Z19wcmludChzcnRwX21vZF9jaXBoZXIsICJ0ZXN0aW5nIGRlY3J5cHRpb24iLCBOVUxMKTsKKyAg
ICAgICAgZGVidWdfcHJpbnQwKHNydHBfbW9kX2NpcGhlciwgInRlc3RpbmcgZGVjcnlwdGlvbiIp
OwogCiAgICAgICAgIC8qIHJlLWluaXRpYWxpemUgY2lwaGVyIGZvciBkZWNyeXB0aW9uICovCiAg
ICAgICAgIHN0YXR1cyA9IHNydHBfY2lwaGVyX2luaXQoYywgdGVzdF9jYXNlLT5rZXkpOwpAQCAt
NDY1LDEzICs0NjIsOSBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX2NpcGhlcl90eXBlX3Rlc3Qo
CiAgICAgICAgIHVpbnQ4X3QgaXZbTUFYX0tFWV9MRU5dOwogCiAgICAgICAgIC8qIGNob29zZSBh
IGxlbmd0aCBhdCByYW5kb20gKGxlYXZpbmcgcm9vbSBmb3IgSVYgYW5kIHBhZGRpbmcpICovCi0g
ICAgICAgIGxlbmd0aCA9IHJhbmQoKSAlIChTRUxGX1RFU1RfQlVGX09DVEVUUyAtIDY0KTsKKyAg
ICAgICAgbGVuZ3RoID0gc3J0cF9jaXBoZXJfcmFuZF91MzJfZm9yX3Rlc3RzKCkgJSAoU0VMRl9U
RVNUX0JVRl9PQ1RFVFMgLSA2NCk7CiAgICAgICAgIGRlYnVnX3ByaW50KHNydHBfbW9kX2NpcGhl
ciwgInJhbmRvbSBwbGFpbnRleHQgbGVuZ3RoICVkXG4iLCBsZW5ndGgpOwotICAgICAgICBzdGF0
dXMgPSBzcnRwX2NpcGhlcl9yYW5kKGJ1ZmZlciwgbGVuZ3RoKTsKLSAgICAgICAgaWYgKHN0YXR1
cykgewotICAgICAgICAgICAgc3J0cF9jaXBoZXJfZGVhbGxvYyhjKTsKLSAgICAgICAgICAgIHJl
dHVybiBzdGF0dXM7Ci0gICAgICAgIH0KKyAgICAgICAgc3J0cF9jaXBoZXJfcmFuZF9mb3JfdGVz
dHMoYnVmZmVyLCBsZW5ndGgpOwogCiAgICAgICAgIGRlYnVnX3ByaW50KHNydHBfbW9kX2NpcGhl
ciwgInBsYWludGV4dDogICAgJXMiLAogICAgICAgICAgICAgICAgICAgICBzcnRwX29jdGV0X3N0
cmluZ19oZXhfc3RyaW5nKGJ1ZmZlciwgbGVuZ3RoKSk7CkBAIC00ODYsMTggKzQ3OSwxMCBAQCBz
cnRwX2Vycl9zdGF0dXNfdCBzcnRwX2NpcGhlcl90eXBlX3Rlc3QoCiAgICAgICAgICAgICBzcnRw
X2NpcGhlcl9kZWFsbG9jKGMpOwogICAgICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19j
YW50X2NoZWNrOwogICAgICAgICB9Ci0gICAgICAgIHN0YXR1cyA9IHNydHBfY2lwaGVyX3JhbmQo
a2V5LCB0ZXN0X2Nhc2UtPmtleV9sZW5ndGhfb2N0ZXRzKTsKLSAgICAgICAgaWYgKHN0YXR1cykg
ewotICAgICAgICAgICAgc3J0cF9jaXBoZXJfZGVhbGxvYyhjKTsKLSAgICAgICAgICAgIHJldHVy
biBzdGF0dXM7Ci0gICAgICAgIH0KKyAgICAgICAgc3J0cF9jaXBoZXJfcmFuZF9mb3JfdGVzdHMo
a2V5LCB0ZXN0X2Nhc2UtPmtleV9sZW5ndGhfb2N0ZXRzKTsKIAogICAgICAgICAvKiBjaG9zZSBh
IHJhbmRvbSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKi8KLSAgICAgICAgc3RhdHVzID0gc3J0cF9j
aXBoZXJfcmFuZChpdiwgTUFYX0tFWV9MRU4pOwotICAgICAgICBpZiAoc3RhdHVzKSB7Ci0gICAg
ICAgICAgICBzcnRwX2NpcGhlcl9kZWFsbG9jKGMpOwotICAgICAgICAgICAgcmV0dXJuIHN0YXR1
czsKLSAgICAgICAgfQorICAgICAgICBzcnRwX2NpcGhlcl9yYW5kX2Zvcl90ZXN0cyhpdiwgTUFY
X0tFWV9MRU4pOwogCiAgICAgICAgIC8qIGluaXRpYWxpemUgY2lwaGVyICovCiAgICAgICAgIHN0
YXR1cyA9IHNydHBfY2lwaGVyX2luaXQoYywga2V5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vY2lwaGVy
L251bGxfY2lwaGVyLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2xpYnNydHAvY3J5cHRvL2NpcGhlci9udWxsX2NpcGhlci5jCmluZGV4IDY1OWFkZDBk
NDc2ZDQ2YjNhM2FmZjVlMDI5NWMxYzMyMjE4ZTliNGQuLjk2OTcyNDYxMWM0MmE3YTdiMGNhMGYz
NTk2N2E4NGMxYjRkZWVlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vY2lwaGVyL251bGxfY2lwaGVyLmMK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJz
cnRwL2NyeXB0by9jaXBoZXIvbnVsbF9jaXBoZXIuYwpAQCAtOTcsNyArOTcsNyBAQCBzdGF0aWMg
c3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9udWxsX2NpcGhlcl9pbml0KHZvaWQgKmN2LCBjb25zdCB1
aW50OF90ICprZXkpCiB7CiAgICAgLyogc3J0cF9udWxsX2NpcGhlcl9jdHhfdCAqYyA9IChzcnRw
X251bGxfY2lwaGVyX2N0eF90ICopY3Y7ICovCiAKLSAgICBkZWJ1Z19wcmludChzcnRwX21vZF9j
aXBoZXIsICJpbml0aWFsaXppbmcgbnVsbCBjaXBoZXIiLCBOVUxMKTsKKyAgICBkZWJ1Z19wcmlu
dDAoc3J0cF9tb2RfY2lwaGVyLCAiaW5pdGlhbGl6aW5nIG51bGwgY2lwaGVyIik7CiAKICAgICBy
ZXR1cm4gc3J0cF9lcnJfc3RhdHVzX29rOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2Fl
c19nY20uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
bGlic3J0cC9jcnlwdG8vaW5jbHVkZS9hZXNfZ2NtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ2MDMxZjRiZDg3
OWRlMTI5ZWM0ZGNmOTQwYWYyNGUzOTZiN2I2MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vaW5j
bHVkZS9hZXNfZ2NtLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIGFlc19nY20uaAorICoKKyAq
IEhlYWRlciBmb3IgQUVTIEdhbG9pcyBDb3VudGVyIE1vZGUuCisgKgorICogSm9obiBBLiBGb2xl
eQorICogQ2lzY28gU3lzdGVtcywgSW5jLgorICoKKyAqLworLyoKKyAqCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTMtMjAxNywgQ2lzY28gU3lzdGVtcywgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAg
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgZGlzY2xhaW1lciBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkCisgKiAgIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiAgIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIENp
c2NvIFN5c3RlbXMsIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqICAgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKKyAqIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFCisgKiBDT1BZUklHSFQgSE9MREVSUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULAorICogSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICog
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULAorICogU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRAorICogT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIEFFU19HQ01fSAorI2RlZmluZSBB
RVNfR0NNX0gKKworI2luY2x1ZGUgImNpcGhlci5oIgorI2luY2x1ZGUgInNydHAuaCIKKyNpbmNs
dWRlICJkYXRhdHlwZXMuaCIKKworI2lmZGVmIE9QRU5TU0wKKworI2luY2x1ZGUgPG9wZW5zc2wv
ZXZwLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9hZXMuaD4KKwordHlwZWRlZiBzdHJ1Y3QgeworICAg
IGludCBrZXlfc2l6ZTsKKyAgICBpbnQgdGFnX2xlbjsKKyAgICBFVlBfQ0lQSEVSX0NUWCAqY3R4
OworICAgIHNydHBfY2lwaGVyX2RpcmVjdGlvbl90IGRpcjsKK30gc3J0cF9hZXNfZ2NtX2N0eF90
OworCisjZW5kaWYgLyogT1BFTlNTTCAqLworCisjaWZkZWYgTlNTCisKKyNpbmNsdWRlIDxuc3Mu
aD4KKyNpbmNsdWRlIDxwazExcHViLmg+CisKKyNkZWZpbmUgTUFYX0FEX1NJWkUgMjA0OAorCit0
eXBlZGVmIHN0cnVjdCB7CisgICAgaW50IGtleV9zaXplOworICAgIGludCB0YWdfc2l6ZTsKKyAg
ICBzcnRwX2NpcGhlcl9kaXJlY3Rpb25fdCBkaXI7CisgICAgTlNTSW5pdENvbnRleHQgKm5zczsK
KyAgICBQSzExU3ltS2V5ICprZXk7CisgICAgdWludDhfdCBpdlsxMl07CisgICAgdWludDhfdCBh
YWRbTUFYX0FEX1NJWkVdOworICAgIGludCBhYWRfc2l6ZTsKKyAgICBDS19HQ01fUEFSQU1TIHBh
cmFtczsKKyAgICB1aW50OF90IHRhZ1sxNl07Cit9IHNydHBfYWVzX2djbV9jdHhfdDsKKworI2Vu
ZGlmIC8qIE5TUyAqLworCisjZW5kaWYgLyogQUVTX0dDTV9IICovCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRv
L2luY2x1ZGUvYWVzX2djbV9vc3NsLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvYWVzX2djbV9vc3NsLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1YjgzZWVlYjA3ZmE3Zjg3MDg3MWU1OTJjZDlk
YzA5ZTcwZDAwYTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRw
L2NyeXB0by9pbmNsdWRlL2Flc19nY21fb3NzbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAs
MCBAQAotLyoKLSAqIGFlc19nY21fb3NzbC5oCi0gKgotICogSGVhZGVyIGZvciBBRVMgR2Fsb2lz
IENvdW50ZXIgTW9kZS4KLSAqCi0gKiBKb2huIEEuIEZvbGV5Ci0gKiBDaXNjbyBTeXN0ZW1zLCBJ
bmMuCi0gKgotICovCi0vKgotICoKLSAqIENvcHlyaWdodCAoYykgMjAxMy0yMDE3LCBDaXNjbyBT
eXN0ZW1zLCBJbmMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICoK
LSAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZwotICogICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKLSAqICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqICAgTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgQ2lzY28gU3lzdGVtcywgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBIT0xE
RVJTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCi0gKiBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0gKiBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCi0gKiBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VECi0gKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgot
ICovCi0KLSNpZm5kZWYgQUVTX0dDTV9PU1NMX0gKLSNkZWZpbmUgQUVTX0dDTV9PU1NMX0gKLQot
I2luY2x1ZGUgImNpcGhlci5oIgotI2luY2x1ZGUgInNydHAuaCIKLSNpbmNsdWRlICJkYXRhdHlw
ZXMuaCIKLSNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgotI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+
Ci0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBpbnQga2V5X3NpemU7Ci0gICAgaW50IHRhZ19sZW47
Ci0gICAgRVZQX0NJUEhFUl9DVFggKmN0eDsKLSAgICBzcnRwX2NpcGhlcl9kaXJlY3Rpb25fdCBk
aXI7Ci19IHNydHBfYWVzX2djbV9jdHhfdDsKLQotI2VuZGlmIC8qIEFFU19HQ01fT1NTTF9IICov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvYWVzX2ljbV9leHQuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vaW5jbHVkZS9h
ZXNfaWNtX2V4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFkMzA2ZGRjYTViMzlkZjM0MGIyZDYxYWVhN2RiYzlj
NTBmMmUzODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvYWVzX2ljbV9leHQuaApA
QCAtMCwwICsxLDgzIEBACisvKgorICogYWVzX2ljbS5oCisgKgorICogSGVhZGVyIGZvciBBRVMg
SW50ZWdlciBDb3VudGVyIE1vZGUuCisgKgorICogRGF2aWQgQS4gTWNHcmV3CisgKiBDaXNjbyBT
eXN0ZW1zLCBJbmMuCisgKgorICovCisvKgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwMS0yMDE3
LCBDaXNjbyBTeXN0ZW1zLCBJbmMuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqICAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICoKKyAqICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAqICAgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqICAgTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgQ2lzY28gU3lzdGVtcywg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUworICogRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIENPUFlS
SUdIVCBIT0xERVJTIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCisg
KiBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCisg
KiBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VECisgKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKgorICovCisKKyNpZm5kZWYgQUVTX0lDTV9ICisjZGVmaW5lIEFFU19JQ01fSAorCisj
aW5jbHVkZSAiY2lwaGVyLmgiCisjaW5jbHVkZSAiZGF0YXR5cGVzLmgiCisKKyNpZmRlZiBPUEVO
U1NMCisKKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgorI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+
CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB2MTI4X3QgY291bnRlcjsgLyogaG9sZHMgdGhlIGNv
dW50ZXIgdmFsdWUgICAgICAgICAgKi8KKyAgICB2MTI4X3Qgb2Zmc2V0OyAgLyogaW5pdGlhbCBv
ZmZzZXQgdmFsdWUgICAgICAgICAgICAgKi8KKyAgICBpbnQga2V5X3NpemU7CisgICAgRVZQX0NJ
UEhFUl9DVFggKmN0eDsKK30gc3J0cF9hZXNfaWNtX2N0eF90OworCisjZW5kaWYgLyogT1BFTlNT
TCAqLworCisjaWZkZWYgTlNTCisKKyNpbmNsdWRlIDxuc3MuaD4KKyNpbmNsdWRlIDxwazExcHVi
Lmg+CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB2MTI4X3QgY291bnRlcjsKKyAgICB2MTI4X3Qg
b2Zmc2V0OworICAgIGludCBrZXlfc2l6ZTsKKyAgICB1aW50OF90IGl2WzE2XTsKKyAgICBOU1NJ
bml0Q29udGV4dCAqbnNzOworICAgIFBLMTFTeW1LZXkgKmtleTsKKyAgICBQSzExQ29udGV4dCAq
Y3R4OworfSBzcnRwX2Flc19pY21fY3R4X3Q7CisKKyNlbmRpZiAvKiBOU1MgKi8KKworI2VuZGlm
IC8qIEFFU19JQ01fSCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2Flc19pY21fb3NzbC5o
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRw
L2NyeXB0by9pbmNsdWRlL2Flc19pY21fb3NzbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjNGFhZTM3NmU2ZDczYzZlYzRjZDcyNGI5OGEyNGFjY2ZlMWQxY2MxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vaW5jbHVkZS9hZXNfaWNt
X29zc2wuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBhZXNfaWNtLmgK
LSAqCi0gKiBIZWFkZXIgZm9yIEFFUyBJbnRlZ2VyIENvdW50ZXIgTW9kZS4KLSAqCi0gKiBEYXZp
ZCBBLiBNY0dyZXcKLSAqIENpc2NvIFN5c3RlbXMsIEluYy4KLSAqCi0gKi8KLS8qCi0gKgotICog
Q29weXJpZ2h0IChjKSAyMDAxLTIwMTcsIENpc2NvIFN5c3RlbXMsIEluYy4KLSAqIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKgotICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKgotICogICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgIGRpc2Ns
YWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZAotICogICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogICBOZWl0aGVyIHRoZSBuYW1l
IG9mIHRoZSBDaXNjbyBTeXN0ZW1zLCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiAgIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAotICogICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTCi0gKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRQotICogQ09QWVJJR0hUIEhPTERFUlMgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwKLSAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0gKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikKLSAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwKLSAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKLSAqIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqCi0gKi8KLQotI2lmbmRlZiBBRVNfSUNNX0gK
LSNkZWZpbmUgQUVTX0lDTV9ICi0KLSNpbmNsdWRlICJjaXBoZXIuaCIKLSNpbmNsdWRlICJkYXRh
dHlwZXMuaCIKLSNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgotI2luY2x1ZGUgPG9wZW5zc2wvYWVz
Lmg+Ci0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICB2MTI4X3QgY291bnRlcjsgLyogaG9sZHMgdGhl
IGNvdW50ZXIgdmFsdWUgICAgICAgICAgKi8KLSAgICB2MTI4X3Qgb2Zmc2V0OyAgLyogaW5pdGlh
bCBvZmZzZXQgdmFsdWUgICAgICAgICAgICAgKi8KLSAgICBpbnQga2V5X3NpemU7Ci0gICAgRVZQ
X0NJUEhFUl9DVFggKmN0eDsKLX0gc3J0cF9hZXNfaWNtX2N0eF90OwotCi0jZW5kaWYgLyogQUVT
X0lDTV9IICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvY2lwaGVyX3ByaXYuaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8v
aW5jbHVkZS9jaXBoZXJfcHJpdi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2ODQ4ZWE3YzY0MmU2ZmIwMWMwZjJj
ZjJiMjI1NTY2Yjc3OGFiZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvY2lwaGVy
X3ByaXYuaApAQCAtMCwwICsxLDYyIEBACisvKgorICoKKyAqIENvcHlyaWdodChjKSAyMDAxLTIw
MTcgQ2lzY28gU3lzdGVtcywgSW5jLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAgIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqCisgKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkCisgKiAgIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiAgIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIENpc2NvIFN5c3RlbXMs
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKKyAqIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisgKiBDT1BZ
UklHSFQgSE9MREVSUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULAor
ICogSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULAor
ICogU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRAorICogT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICoKKyAqLworCisjaWZuZGVmIFNSVFBfQ0lIUEVSX1BSSVZfSAorI2RlZmluZSBTUlRQ
X0NJSFBFUl9QUklWX0gKKworI2luY2x1ZGUgImNpcGhlci5oIgorCisjaWZkZWYgX19jcGx1c3Bs
dXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qCisgKiBBIHRyaXZpYWwgcGxhdGZvcm0gaW5k
ZXBlbmRlbnQgcmFuZG9tIHNvdXJjZS4KKyAqIEZvciB1c2UgaW4gdGVzdCBvbmx5LgorICovCit2
b2lkIHNydHBfY2lwaGVyX3JhbmRfZm9yX3Rlc3RzKHZvaWQgKmRlc3QsIHVpbnQzMl90IGxlbik7
CisKKy8qCisgKiBBIHRyaXZpYWwgcGxhdGZvcm0gaW5kZXBlbmRlbnQgMzIgYml0IHJhbmRvbSBu
dW1iZXIuCisgKiBGb3IgdXNlIGluIHRlc3Qgb25seS4KKyAqLwordWludDMyX3Qgc3J0cF9jaXBo
ZXJfcmFuZF91MzJfZm9yX3Rlc3RzKHZvaWQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorCisjZW5kaWYgLyogU1JUUF9DSVBIRVJfUFJJVl9IICovCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRv
L2luY2x1ZGUvY2lwaGVyX3R5cGVzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvY2lwaGVyX3R5cGVzLmgKaW5k
ZXggYTU0M2I1NDc4YmEyZDY1YTZiMWQyYjAwMjMzMmQ5MTI0ZWExYTkwYy4uMThmMDMyOGZiYjZj
ZmY4ZmE5Y2Y1Y2Q5ZDIzNjk1N2JlYTNiZTgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2Np
cGhlcl90eXBlcy5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhp
cmRfcGFydHkvbGlic3J0cC9jcnlwdG8vaW5jbHVkZS9jaXBoZXJfdHlwZXMuaApAQCAtNDcsMTAg
KzQ3LDEwIEBACiBleHRlcm4gY29uc3Qgc3J0cF9jaXBoZXJfdHlwZV90IHNydHBfbnVsbF9jaXBo
ZXI7CiBleHRlcm4gY29uc3Qgc3J0cF9jaXBoZXJfdHlwZV90IHNydHBfYWVzX2ljbV8xMjg7CiBl
eHRlcm4gY29uc3Qgc3J0cF9jaXBoZXJfdHlwZV90IHNydHBfYWVzX2ljbV8yNTY7Ci0jaWZkZWYg
T1BFTlNTTAorI2lmZGVmIEdDTQogZXh0ZXJuIGNvbnN0IHNydHBfY2lwaGVyX3R5cGVfdCBzcnRw
X2Flc19pY21fMTkyOwotZXh0ZXJuIGNvbnN0IHNydHBfY2lwaGVyX3R5cGVfdCBzcnRwX2Flc19n
Y21fMTI4X29wZW5zc2w7Ci1leHRlcm4gY29uc3Qgc3J0cF9jaXBoZXJfdHlwZV90IHNydHBfYWVz
X2djbV8yNTZfb3BlbnNzbDsKK2V4dGVybiBjb25zdCBzcnRwX2NpcGhlcl90eXBlX3Qgc3J0cF9h
ZXNfZ2NtXzEyODsKK2V4dGVybiBjb25zdCBzcnRwX2NpcGhlcl90eXBlX3Qgc3J0cF9hZXNfZ2Nt
XzI1NjsKICNlbmRpZgogCiAvKgpAQCAtNzQsNiArNzQsOSBAQCBleHRlcm4gc3J0cF9kZWJ1Z19t
b2R1bGVfdCBzcnRwX21vZF9hZXNfaWNtOwogI2lmZGVmIE9QRU5TU0wKIGV4dGVybiBzcnRwX2Rl
YnVnX21vZHVsZV90IHNydHBfbW9kX2Flc19nY207CiAjZW5kaWYKKyNpZmRlZiBOU1MKK2V4dGVy
biBzcnRwX2RlYnVnX21vZHVsZV90IHNydHBfbW9kX2Flc19nY207CisjZW5kaWYKIAogLyogZGVi
dWcgbW9kdWxlcyBmb3IgYXV0aCB0eXBlcyAqLwogZXh0ZXJuIHNydHBfZGVidWdfbW9kdWxlX3Qg
c3J0cF9tb2RfaG1hYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vaW5jbHVkZS9kYXRhdHlwZXMuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlw
dG8vaW5jbHVkZS9kYXRhdHlwZXMuaAppbmRleCAxODJjY2EyNWI5ZDFiZjc2MDE5ODYxZTU0MGI1
M2U5ZTNmOWMzZmJkLi42YTU4OGQwZTkyZDNhOGQzM2JkZjVhZjIzZjkyNTliOTgzZDVjMjNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvZGF0YXR5cGVzLmgKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2Rh
dGF0eXBlcy5oCkBAIC0yNDEsMTMgKzI0MSwxMyBAQCB2b2lkIHYxMjhfc2V0X2JpdF90byh2MTI4
X3QgKngsIGludCBpLCBpbnQgeSk7CiAjZW5kaWYgLyogREFUQVRZUEVTX1VTRV9NQUNST1MgKi8K
IAogLyoKLSAqIG9jdGV0X3N0cmluZ19pc19lcShhLCBiLCBsZW4pIHJldHVybnMgMSBpZiB0aGUg
bGVuZ3RoIGxlbiBzdHJpbmdzIGEKLSAqIGFuZCBiIGFyZSBub3QgZXF1YWwuIEl0IHJldHVybnMg
MCBvdGhlcndpc2UuIFRoZSBydW5uaW5nIHRpbWUgb2YgdGhlCisgKiBzcnRwX29jdGV0X3N0cmlu
Z19pc19lcShhLCBiLCBsZW4pIHJldHVybnMgMSBpZiB0aGUgbGVuZ3RoIGxlbiBzdHJpbmdzCisg
KiBhIGFuZCBiIGFyZSBub3QgZXF1YWwuIEl0IHJldHVybnMgMCBvdGhlcndpc2UuIFRoZSBydW5u
aW5nIHRpbWUgb2YgdGhlCiAgKiBjb21wYXJpc29uIGRlcGVuZHMgb25seSBvbiBsZW4sIG1ha2lu
ZyB0aGlzIHNhZmUgdG8gdXNlIGZvciAoZS5nLikKICAqIHZlcmlmeWluZyBhdXRoZW50aWNhdGlv
biB0YWdzLgogICovCiAKLWludCBvY3RldF9zdHJpbmdfaXNfZXEodWludDhfdCAqYSwgdWludDhf
dCAqYiwgaW50IGxlbik7CitpbnQgc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEodWludDhfdCAqYSwg
dWludDhfdCAqYiwgaW50IGxlbik7CiAKIC8qCiAgKiBBIHBvcnRhYmxlIHdheSB0byB6ZXJvIG91
dCBtZW1vcnkgYXMgcmVjb21tZW5kZWQgYnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vaW5jbHVkZS9lcnIu
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0
cC9jcnlwdG8vaW5jbHVkZS9lcnIuaAppbmRleCA2NmExMDIzZWM4NjkxZGNhM2YxODBmZjA1ZjBj
MTNmODE5NWJmODVjLi4zMjZmNWU5NmI3N2NkODc3NmYwYjRhNGQ1M2JhODc4YzNmZTUyZmIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvZXJyLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2Vyci5oCkBA
IC0xMDksNiArMTA5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgewogCiAjaWZkZWYgRU5BQkxFX0RFQlVH
X0xPR0dJTkcKIAorI2RlZmluZSBkZWJ1Z19wcmludDAobW9kLCBmb3JtYXQpICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzcnRwX2Vycl9yZXBvcnQo
c3J0cF9lcnJfbGV2ZWxfZGVidWcsICgiJXM6ICIgZm9ybWF0ICJcbiIpLCBtb2QubmFtZSkKICNk
ZWZpbmUgZGVidWdfcHJpbnQobW9kLCBmb3JtYXQsIGFyZykgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBcCiAgICAgc3J0cF9lcnJfcmVwb3J0KHNydHBfZXJyX2xldmVs
X2RlYnVnLCAoIiVzOiAiIGZvcm1hdCAiXG4iKSwgbW9kLm5hbWUsIGFyZykKICNkZWZpbmUgZGVi
dWdfcHJpbnQyKG1vZCwgZm9ybWF0LCBhcmcxLCBhcmcyKSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCkBAIC0xMTcsNiArMTE5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgewogCiAjZWxz
ZQogCisjZGVmaW5lIGRlYnVnX3ByaW50MChtb2QsIGZvcm1hdCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmIChtb2Qub24pICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg
ICBzcnRwX2Vycl9yZXBvcnQoc3J0cF9lcnJfbGV2ZWxfZGVidWcsICgiJXM6ICIgZm9ybWF0ICJc
biIpLCBtb2QubmFtZSkKICNkZWZpbmUgZGVidWdfcHJpbnQobW9kLCBmb3JtYXQsIGFyZykgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgaWYgKG1vZC5vbikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICAgIHNydHBfZXJyX3JlcG9ydChzcnRwX2Vycl9sZXZlbF9kZWJ1ZywgKCIlczog
IiBmb3JtYXQgIlxuIiksIG1vZC5uYW1lLCBhcmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2tlcm5lbC9h
bGxvYy5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9s
aWJzcnRwL2NyeXB0by9rZXJuZWwvYWxsb2MuYwppbmRleCBkYmU1ODI2NmY0M2E2ODQ5ZWQ5NjVh
YzdmNzg3YWZmZDBlMmE4MjIxLi4zZWJjMzE1MjU5MTFhZTlkM2IwOWE2MjJiZmI4YWU1NzU2ZTFm
MzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2xpYnNydHAvY3J5cHRvL2tlcm5lbC9hbGxvYy5jCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8va2VybmVsL2Fs
bG9jLmMKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCAqc3J0cF9jcnlwdG9fYWxsb2Moc2l6ZV90IHNp
emUpCiAgICAgaWYgKHB0cikgewogICAgICAgICBkZWJ1Z19wcmludChzcnRwX21vZF9hbGxvYywg
Iihsb2NhdGlvbjogJXApIGFsbG9jYXRlZCIsIHB0cik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
ZGVidWdfcHJpbnQoc3J0cF9tb2RfYWxsb2MsICJhbGxvY2F0aW9uIGZhaWxlZCAoYXNrZWQgZm9y
ICVkIGJ5dGVzKVxuIiwKKyAgICAgICAgZGVidWdfcHJpbnQoc3J0cF9tb2RfYWxsb2MsICJhbGxv
Y2F0aW9uIGZhaWxlZCAoYXNrZWQgZm9yICV6dSBieXRlcylcbiIsCiAgICAgICAgICAgICAgICAg
ICAgIHNpemUpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9rZXJuZWwvY3J5cHRvX2tlcm5l
bC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJz
cnRwL2NyeXB0by9rZXJuZWwvY3J5cHRvX2tlcm5lbC5jCmluZGV4IGFiNDQ5MmU4YTY0NDc4MDhk
MmI1NWUwYjg3ZmZiMTRiODFjYTJlNjMuLmRmNmFmN2RhODg5ZjY4YzdiNTY2NDdjOTc1OTA0Yzk0
MzhiNDE3YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uv
dGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8va2VybmVsL2NyeXB0b19rZXJuZWwuYworKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5
cHRvL2tlcm5lbC9jcnlwdG9fa2VybmVsLmMKQEAgLTEzMCwxOCArMTMwLDE4IEBAIHNydHBfZXJy
X3N0YXR1c190IHNydHBfY3J5cHRvX2tlcm5lbF9pbml0KCkKICAgICBpZiAoc3RhdHVzKSB7CiAg
ICAgICAgIHJldHVybiBzdGF0dXM7CiAgICAgfQotI2lmZGVmIE9QRU5TU0wKKyNpZmRlZiBHQ00K
ICAgICBzdGF0dXMgPSBzcnRwX2NyeXB0b19rZXJuZWxfbG9hZF9jaXBoZXJfdHlwZSgmc3J0cF9h
ZXNfaWNtXzE5MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTUlRQX0FFU19JQ01fMTkyKTsKICAgICBpZiAoc3RhdHVzKSB7CiAgICAgICAgIHJldHVy
biBzdGF0dXM7CiAgICAgfQotICAgIHN0YXR1cyA9IHNydHBfY3J5cHRvX2tlcm5lbF9sb2FkX2Np
cGhlcl90eXBlKCZzcnRwX2Flc19nY21fMTI4X29wZW5zc2wsCisgICAgc3RhdHVzID0gc3J0cF9j
cnlwdG9fa2VybmVsX2xvYWRfY2lwaGVyX3R5cGUoJnNydHBfYWVzX2djbV8xMjgsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1JUUF9BRVNfR0NNXzEy
OCk7CiAgICAgaWYgKHN0YXR1cykgewogICAgICAgICByZXR1cm4gc3RhdHVzOwogICAgIH0KLSAg
ICBzdGF0dXMgPSBzcnRwX2NyeXB0b19rZXJuZWxfbG9hZF9jaXBoZXJfdHlwZSgmc3J0cF9hZXNf
Z2NtXzI1Nl9vcGVuc3NsLAorICAgIHN0YXR1cyA9IHNydHBfY3J5cHRvX2tlcm5lbF9sb2FkX2Np
cGhlcl90eXBlKCZzcnRwX2Flc19nY21fMjU2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNSVFBfQUVTX0dDTV8yNTYpOwogICAgIGlmIChzdGF0dXMp
IHsKICAgICAgICAgcmV0dXJuIHN0YXR1czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8va2VybmVsL2Vyci5j
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRw
L2NyeXB0by9rZXJuZWwvZXJyLmMKaW5kZXggZjQ0MzU0OWU1YTQ0MTM2ZWYyYTAxNDE4OWFlNjdk
MGYwNmQzZTdjZi4uOWRiNWJmYjQzMjc2ODgzNThjNzJiNmU0YjczMjRkYzU3YzRkNWJjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9s
aWJzcnRwL2NyeXB0by9rZXJuZWwvZXJyLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9rZXJuZWwvZXJyLmMKQEAgLTgw
LDYgKzgwLDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9pbnN0YWxsX2Vycl9yZXBvcnRfaGFu
ZGxlcigKIAogdm9pZCBzcnRwX2Vycl9yZXBvcnQoc3J0cF9lcnJfcmVwb3J0aW5nX2xldmVsX3Qg
bGV2ZWwsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQogeworICAgIGNoYXIgbXNnWzUxMl07CiAg
ICAgdmFfbGlzdCBhcmdzOwogICAgIGlmIChzcnRwX2Vycl9maWxlICE9IE5VTEwpIHsKICAgICAg
ICAgdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKQEAgLTg4LDcgKzg5LDYgQEAgdm9pZCBzcnRwX2Vy
cl9yZXBvcnQoc3J0cF9lcnJfcmVwb3J0aW5nX2xldmVsX3QgbGV2ZWwsIGNvbnN0IGNoYXIgKmZv
cm1hdCwgLi4uKQogICAgIH0KICAgICBpZiAoc3J0cF9lcnJfcmVwb3J0X2hhbmRsZXIgIT0gTlVM
TCkgewogICAgICAgICB2YV9zdGFydChhcmdzLCBmb3JtYXQpOwotICAgICAgICBjaGFyIG1zZ1s1
MTJdOwogICAgICAgICBpZiAodnNucHJpbnRmKG1zZywgc2l6ZW9mKG1zZyksIGZvcm1hdCwgYXJn
cykgPiAwKSB7CiAgICAgICAgICAgICAvKiBzdHJpcCB0cmFpbGluZyBcbiwgY2FsbGJhY2sgc2hv
dWxkIG5vdCBoYXZlIG9uZSAqLwogICAgICAgICAgICAgc2l6ZV90IGwgPSBzdHJsZW4obXNnKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvbGlic3J0cC9jcnlwdG8vbWF0aC9kYXRhdHlwZXMuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vbWF0aC9kYXRhdHlwZXMu
YwppbmRleCBjMGRmZWNlNjU5ZDc3NGJiZGQ4ZDA2NDg0ODNlYmJmMjE0ZmNlODIxLi4xMDE1ODg4
YWVkZmNiOWFhZGY0YzJjOTdjZjhkZDc5Y2ZhNjZkMDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL21hdGgv
ZGF0YXR5cGVzLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9tYXRoL2RhdGF0eXBlcy5jCkBAIC03OCw4ICs3OCw4IEBA
IGludCBvY3RldF9nZXRfd2VpZ2h0KHVpbnQ4X3Qgb2N0ZXQpCiAgKi8KIAogLyogdGhlIHZhbHVl
IE1BWF9QUklOVF9TVFJJTkdfTEVOIGlzIGRlZmluZWQgaW4gZGF0YXR5cGVzLmggKi8KLQotY2hh
ciBiaXRfc3RyaW5nW01BWF9QUklOVF9TVFJJTkdfTEVOXTsKKy8qIGluY2x1ZGUgc3BhY2UgZm9y
IG51bGwgdGVybWluYXRvciAqLworc3RhdGljIGNoYXIgYml0X3N0cmluZ1tNQVhfUFJJTlRfU1RS
SU5HX0xFTiArIDFdOwogCiB1aW50OF90IHNydHBfbmliYmxlX3RvX2hleF9jaGFyKHVpbnQ4X3Qg
bmliYmxlKQogewpAQCAtNDEwLDcgKzQxMCw3IEBAIHZvaWQgYml0dmVjdG9yX2xlZnRfc2hpZnQo
Yml0dmVjdG9yX3QgKngsIGludCBzaGlmdCkKICAgICAgICAgeC0+d29yZFtpXSA9IDA7CiB9CiAK
LWludCBvY3RldF9zdHJpbmdfaXNfZXEodWludDhfdCAqYSwgdWludDhfdCAqYiwgaW50IGxlbikK
K2ludCBzcnRwX29jdGV0X3N0cmluZ19pc19lcSh1aW50OF90ICphLCB1aW50OF90ICpiLCBpbnQg
bGVuKQogewogICAgIHVpbnQ4X3QgKmVuZCA9IGIgKyBsZW47CiAgICAgdWludDhfdCBhY2N1bXVs
YXRvciA9IDA7CkBAIC00MzYsNyArNDM2LDcgQEAgdm9pZCBzcnRwX2NsZWFuc2Uodm9pZCAqcywg
c2l6ZV90IGxlbikKIAogdm9pZCBvY3RldF9zdHJpbmdfc2V0X3RvX3plcm8odm9pZCAqcywgc2l6
ZV90IGxlbikKIHsKLSNpZmRlZiBPUEVOU1NMCisjaWYgZGVmaW5lZChPUEVOU1NMKSAmJiAhZGVm
aW5lZChPUEVOU1NMX0NMRUFOU0VfQlJPS0VOKQogICAgIE9QRU5TU0xfY2xlYW5zZShzLCBsZW4p
OwogI2Vsc2UKICAgICBzcnRwX2NsZWFuc2UocywgbGVuKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vbWF0
aC9zdGF0LmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2xpYnNydHAvY3J5cHRvL21hdGgvc3RhdC5jCmluZGV4IDZkZDMzMmIwY2Y1MzZjNTNhMTRlM2U3
Y2I2ZTI2ZmQ2MmE0MGI3NmIuLmQzMDA0NTM1N2I0YTRlMjg5ZTg1MDY1ZmIxODFkZDA2MTZlNTM2
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvbGlic3J0cC9jcnlwdG8vbWF0aC9zdGF0LmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9tYXRoL3N0YXQuYwpA
QCAtMTk2LDcgKzE5Niw3IEBAIHNydHBfZXJyX3N0YXR1c190IHN0YXRfdGVzdF9ydW5zKHVpbnQ4
X3QgKmRhdGEpCiAgICAgfQogCiAgICAgaWYgKHNydHBfbW9kX3N0YXQub24pIHsKLSAgICAgICAg
ZGVidWdfcHJpbnQoc3J0cF9tb2Rfc3RhdCwgInJ1bnMgdGVzdCIsIE5VTEwpOworICAgICAgICBk
ZWJ1Z19wcmludDAoc3J0cF9tb2Rfc3RhdCwgInJ1bnMgdGVzdCIpOwogICAgICAgICBmb3IgKGkg
PSAwOyBpIDwgNjsgaSsrKQogICAgICAgICAgICAgZGVidWdfcHJpbnQoc3J0cF9tb2Rfc3RhdCwg
IiAgcnVuc1tdOiAlZCIsIHJ1bnNbaV0pOwogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNjsgaSsr
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9saWJzcnRwL2NyeXB0by9yZXBsYXkvdXRfc2ltLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL3JlcGxheS91dF9zaW0u
YwppbmRleCBjNjIxYzBlOWYyMjU5YzE1NDA4MTdiMGRkZjdjMTdkZjkwM2I1MjkyLi4yODI1YjY4
ZGY5MTQyOGY4YjdiYWE1OTdjY2M4N2ExNDgwMTg5Zjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL3JlcGxh
eS91dF9zaW0uYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2xpYnNydHAvY3J5cHRvL3JlcGxheS91dF9zaW0uYwpAQCAtNDksMTAgKzQ5LDEzIEBA
CiAjZW5kaWYKIAogI2luY2x1ZGUgInV0X3NpbS5oIgorI2luY2x1ZGUgImNpcGhlcl9wcml2Lmgi
CiAKIGludCB1dF9jb21wYXIoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYikKIHsKLSAgICBy
ZXR1cm4gcmFuZCgpID4gKFJBTkRfTUFYIC8gMikgPyAtMSA6IDE7CisgICAgdWludDhfdCByOwor
ICAgIHNydHBfY2lwaGVyX3JhbmRfZm9yX3Rlc3RzKCZyLCBzaXplb2YocikpOworICAgIHJldHVy
biByID4gKFVJTlQ4X01BWCAvIDIpID8gLTEgOiAxOwogfQogCiB2b2lkIHV0X2luaXQodXRfY29u
bmVjdGlvbiAqdXRjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by90ZXN0L2NpcGhlcl9kcml2ZXIuYyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlw
dG8vdGVzdC9jaXBoZXJfZHJpdmVyLmMKaW5kZXggZTI4ZjVmMjY0ZjhkYTM2NWNhYjZmZDZjZTk2
YzY5NjQ5MjNjZjlmMy4uODIxOWEwNjE4MDYzMDA2YTkyMmZjMWI0ZmViYWUzZTc3MGU3YWQzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9saWJzcnRwL2NyeXB0by90ZXN0L2NpcGhlcl9kcml2ZXIuYworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL3Rlc3QvY2lw
aGVyX2RyaXZlci5jCkBAIC00NywxMyArNDcsMTMgQEAKICNpbmNsdWRlIDxjb25maWcuaD4KICNl
bmRpZgogCi0jaW5jbHVkZSA8c3RkaW8uaD4gIC8qIGZvciBwcmludGYoKSAqLwotI2luY2x1ZGUg
PHN0ZGxpYi5oPiAvKiBmb3IgcmFuZCgpICovCisjaW5jbHVkZSA8c3RkaW8uaD4gLyogZm9yIHBy
aW50ZigpICovCiAjaW5jbHVkZSAiZ2V0b3B0X3MuaCIKICNpbmNsdWRlICJjaXBoZXIuaCIKLSNp
ZmRlZiBPUEVOU1NMCi0jaW5jbHVkZSAiYWVzX2ljbV9vc3NsLmgiCi0jaW5jbHVkZSAiYWVzX2dj
bV9vc3NsLmgiCisjaW5jbHVkZSAiY2lwaGVyX3ByaXYuaCIKKyNpZmRlZiBHQ00KKyNpbmNsdWRl
ICJhZXNfaWNtX2V4dC5oIgorI2luY2x1ZGUgImFlc19nY20uaCIKICNlbHNlCiAjaW5jbHVkZSAi
YWVzX2ljbS5oIgogI2VuZGlmCkBAIC0xMTgsMTAgKzExOCwxMCBAQCB2b2lkIGNoZWNrX3N0YXR1
cyhzcnRwX2Vycl9zdGF0dXNfdCBzKQogZXh0ZXJuIHNydHBfY2lwaGVyX3R5cGVfdCBzcnRwX251
bGxfY2lwaGVyOwogZXh0ZXJuIHNydHBfY2lwaGVyX3R5cGVfdCBzcnRwX2Flc19pY21fMTI4Owog
ZXh0ZXJuIHNydHBfY2lwaGVyX3R5cGVfdCBzcnRwX2Flc19pY21fMjU2OwotI2lmZGVmIE9QRU5T
U0wKKyNpZmRlZiBHQ00KIGV4dGVybiBzcnRwX2NpcGhlcl90eXBlX3Qgc3J0cF9hZXNfaWNtXzE5
MjsKLWV4dGVybiBzcnRwX2NpcGhlcl90eXBlX3Qgc3J0cF9hZXNfZ2NtXzEyOF9vcGVuc3NsOwot
ZXh0ZXJuIHNydHBfY2lwaGVyX3R5cGVfdCBzcnRwX2Flc19nY21fMjU2X29wZW5zc2w7CitleHRl
cm4gc3J0cF9jaXBoZXJfdHlwZV90IHNydHBfYWVzX2djbV8xMjg7CitleHRlcm4gc3J0cF9jaXBo
ZXJfdHlwZV90IHNydHBfYWVzX2djbV8yNTY7CiAjZW5kaWYKIAogaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIgKmFyZ3ZbXSkKQEAgLTE4NywyMSArMTg3LDE5IEBAIGludCBtYWluKGludCBhcmdjLCBj
aGFyICphcmd2W10pCiAgICAgICAgICAgICBjaXBoZXJfZHJpdmVyX3Rlc3RfYXJyYXlfdGhyb3Vn
aHB1dCgKICAgICAgICAgICAgICAgICAmc3J0cF9hZXNfaWNtXzI1NiwgU1JUUF9BRVNfSUNNXzI1
Nl9LRVlfTEVOX1dTQUxULCBudW1fY2lwaGVyKTsKIAotI2lmZGVmIE9QRU5TU0wKKyNpZmRlZiBH
Q00KICAgICAgICAgZm9yIChudW1fY2lwaGVyID0gMTsgbnVtX2NpcGhlciA8IG1heF9udW1fY2lw
aGVyOyBudW1fY2lwaGVyICo9IDgpCiAgICAgICAgICAgICBjaXBoZXJfZHJpdmVyX3Rlc3RfYXJy
YXlfdGhyb3VnaHB1dCgKICAgICAgICAgICAgICAgICAmc3J0cF9hZXNfaWNtXzE5MiwgU1JUUF9B
RVNfSUNNXzE5Ml9LRVlfTEVOX1dTQUxULCBudW1fY2lwaGVyKTsKIAogICAgICAgICBmb3IgKG51
bV9jaXBoZXIgPSAxOyBudW1fY2lwaGVyIDwgbWF4X251bV9jaXBoZXI7IG51bV9jaXBoZXIgKj0g
OCkgewotICAgICAgICAgICAgY2lwaGVyX2RyaXZlcl90ZXN0X2FycmF5X3Rocm91Z2hwdXQoJnNy
dHBfYWVzX2djbV8xMjhfb3BlbnNzbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFNSVFBfQUVTX0dDTV8xMjhfS0VZX0xFTl9XU0FMVCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bV9jaXBoZXIpOworICAg
ICAgICAgICAgY2lwaGVyX2RyaXZlcl90ZXN0X2FycmF5X3Rocm91Z2hwdXQoCisgICAgICAgICAg
ICAgICAgJnNydHBfYWVzX2djbV8xMjgsIFNSVFBfQUVTX0dDTV8xMjhfS0VZX0xFTl9XU0FMVCwg
bnVtX2NpcGhlcik7CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKG51bV9jaXBoZXIgPSAxOyBu
dW1fY2lwaGVyIDwgbWF4X251bV9jaXBoZXI7IG51bV9jaXBoZXIgKj0gOCkgewotICAgICAgICAg
ICAgY2lwaGVyX2RyaXZlcl90ZXN0X2FycmF5X3Rocm91Z2hwdXQoJnNydHBfYWVzX2djbV8yNTZf
b3BlbnNzbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNSVFBfQUVTX0dDTV8yNTZfS0VZX0xFTl9XU0FMVCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG51bV9jaXBoZXIpOworICAgICAgICAgICAgY2lwaGVy
X2RyaXZlcl90ZXN0X2FycmF5X3Rocm91Z2hwdXQoCisgICAgICAgICAgICAgICAgJnNydHBfYWVz
X2djbV8yNTYsIFNSVFBfQUVTX0dDTV8yNTZfS0VZX0xFTl9XU0FMVCwgbnVtX2NpcGhlcik7CiAg
ICAgICAgIH0KICNlbmRpZgogICAgIH0KQEAgLTIxMCwxMCArMjA4LDEwIEBAIGludCBtYWluKGlu
dCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgIGNpcGhlcl9kcml2ZXJfc2VsZl90ZXN0KCZz
cnRwX251bGxfY2lwaGVyKTsKICAgICAgICAgY2lwaGVyX2RyaXZlcl9zZWxmX3Rlc3QoJnNydHBf
YWVzX2ljbV8xMjgpOwogICAgICAgICBjaXBoZXJfZHJpdmVyX3NlbGZfdGVzdCgmc3J0cF9hZXNf
aWNtXzI1Nik7Ci0jaWZkZWYgT1BFTlNTTAorI2lmZGVmIEdDTQogICAgICAgICBjaXBoZXJfZHJp
dmVyX3NlbGZfdGVzdCgmc3J0cF9hZXNfaWNtXzE5Mik7Ci0gICAgICAgIGNpcGhlcl9kcml2ZXJf
c2VsZl90ZXN0KCZzcnRwX2Flc19nY21fMTI4X29wZW5zc2wpOwotICAgICAgICBjaXBoZXJfZHJp
dmVyX3NlbGZfdGVzdCgmc3J0cF9hZXNfZ2NtXzI1Nl9vcGVuc3NsKTsKKyAgICAgICAgY2lwaGVy
X2RyaXZlcl9zZWxmX3Rlc3QoJnNydHBfYWVzX2djbV8xMjgpOworICAgICAgICBjaXBoZXJfZHJp
dmVyX3NlbGZfdGVzdCgmc3J0cF9hZXNfZ2NtXzI1Nik7CiAjZW5kaWYKICAgICB9CiAKQEAgLTI3
Nyw5ICsyNzUsOSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgIHN0YXR1
cyA9IHNydHBfY2lwaGVyX2RlYWxsb2MoYyk7CiAgICAgY2hlY2tfc3RhdHVzKHN0YXR1cyk7CiAK
LSNpZmRlZiBPUEVOU1NMCi0gICAgLyogcnVuIHRoZSB0aHJvdWdocHV0IHRlc3Qgb24gdGhlIGFl
c19nY21fMTI4X29wZW5zc2wgY2lwaGVyICovCi0gICAgc3RhdHVzID0gc3J0cF9jaXBoZXJfdHlw
ZV9hbGxvYygmc3J0cF9hZXNfZ2NtXzEyOF9vcGVuc3NsLCAmYywKKyNpZmRlZiBHQ00KKyAgICAv
KiBydW4gdGhlIHRocm91Z2hwdXQgdGVzdCBvbiB0aGUgYWVzX2djbV8xMjggY2lwaGVyICovCisg
ICAgc3RhdHVzID0gc3J0cF9jaXBoZXJfdHlwZV9hbGxvYygmc3J0cF9hZXNfZ2NtXzEyOCwgJmMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUlRQX0FFU19HQ01fMTI4X0tF
WV9MRU5fV1NBTFQsIDgpOwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgZnByaW50ZihzdGRl
cnIsICJlcnJvcjogY2FuJ3QgYWxsb2NhdGUgR0NNIDEyOCBjaXBoZXJcbiIpOwpAQCAtMjkxLDE1
ICsyODksMTMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgY2lw
aGVyX2RyaXZlcl90ZXN0X3Rocm91Z2hwdXQoYyk7CiAgICAgfQogCi0gICAgaWYgKGRvX3ZhbGlk
YXRpb24pIHsKLSAgICAgICAgc3RhdHVzID0gY2lwaGVyX2RyaXZlcl90ZXN0X2J1ZmZlcmluZyhj
KTsKLSAgICAgICAgY2hlY2tfc3RhdHVzKHN0YXR1cyk7Ci0gICAgfQorICAgIC8vIEdDTSBjaXBo
ZXJzIGRvbid0IGRvIGJ1ZmZlcmluZzsgdGhleSdyZSAib25lIHNob3QiCisKICAgICBzdGF0dXMg
PSBzcnRwX2NpcGhlcl9kZWFsbG9jKGMpOwogICAgIGNoZWNrX3N0YXR1cyhzdGF0dXMpOwogCi0g
ICAgLyogcnVuIHRoZSB0aHJvdWdocHV0IHRlc3Qgb24gdGhlIGFlc19nY21fMjU2X29wZW5zc2wg
Y2lwaGVyICovCi0gICAgc3RhdHVzID0gc3J0cF9jaXBoZXJfdHlwZV9hbGxvYygmc3J0cF9hZXNf
Z2NtXzI1Nl9vcGVuc3NsLCAmYywKKyAgICAvKiBydW4gdGhlIHRocm91Z2hwdXQgdGVzdCBvbiB0
aGUgYWVzX2djbV8yNTYgY2lwaGVyICovCisgICAgc3RhdHVzID0gc3J0cF9jaXBoZXJfdHlwZV9h
bGxvYygmc3J0cF9hZXNfZ2NtXzI1NiwgJmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBTUlRQX0FFU19HQ01fMjU2X0tFWV9MRU5fV1NBTFQsIDE2KTsKICAgICBpZiAoc3Rh
dHVzKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3I6IGNhbid0IGFsbG9jYXRlIEdD
TSAyNTYgY2lwaGVyXG4iKTsKQEAgLTMxMSwxMCArMzA3LDggQEAgaW50IG1haW4oaW50IGFyZ2Ms
IGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgY2lwaGVyX2RyaXZlcl90ZXN0X3Rocm91Z2hwdXQoYyk7
CiAgICAgfQogCi0gICAgaWYgKGRvX3ZhbGlkYXRpb24pIHsKLSAgICAgICAgc3RhdHVzID0gY2lw
aGVyX2RyaXZlcl90ZXN0X2J1ZmZlcmluZyhjKTsKLSAgICAgICAgY2hlY2tfc3RhdHVzKHN0YXR1
cyk7Ci0gICAgfQorICAgIC8vIEdDTSBjaXBoZXJzIGRvbid0IGRvIGJ1ZmZlcmluZzsgdGhleSdy
ZSAib25lIHNob3QiCisKICAgICBzdGF0dXMgPSBzcnRwX2NpcGhlcl9kZWFsbG9jKGMpOwogICAg
IGNoZWNrX3N0YXR1cyhzdGF0dXMpOwogI2VuZGlmCkBAIC0zOTYsNyArMzkwLDcgQEAgc3J0cF9l
cnJfc3RhdHVzX3QgY2lwaGVyX2RyaXZlcl90ZXN0X2J1ZmZlcmluZyhzcnRwX2NpcGhlcl90ICpj
KQogICAgICAgICBlbmQgPSBidWZmZXIxICsgYnVmbGVuOwogICAgICAgICB3aGlsZSAoY3VycmVu
dCA8IGVuZCkgewogICAgICAgICAgICAgLyogY2hvb3NlIGEgc2hvcnQgbGVuZ3RoICovCi0gICAg
ICAgICAgICBsZW4gPSByYW5kKCkgJiAweDAxZjsKKyAgICAgICAgICAgIGxlbiA9IHNydHBfY2lw
aGVyX3JhbmRfdTMyX2Zvcl90ZXN0cygpICYgMHgwMWY7CiAKICAgICAgICAgICAgIC8qIG1ha2Ug
c3VyZSB0aGF0IGxlbiBkb2Vzbid0IGNhdXNlIHVzIHRvIG92ZXJyZWFjaCB0aGUgYnVmZmVyICov
CiAgICAgICAgICAgICBpZiAoY3VycmVudCArIGxlbiA+IGVuZCkKQEAgLTQ3OSw5ICs0NzMsOCBA
QCBzcnRwX2Vycl9zdGF0dXNfdCBjaXBoZXJfYXJyYXlfYWxsb2NfaW5pdChzcnRwX2NpcGhlcl90
ICoqKmNhLAogICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKIAogICAgICAgICAvKiBnZW5lcmF0
ZSByYW5kb20ga2V5IGFuZCBpbml0aWFsaXplIGNpcGhlciAqLwotICAgICAgICBmb3IgKGogPSAw
OyBqIDwga2xlbjsgaisrKQotICAgICAgICAgICAga2V5W2pdID0gKHVpbnQ4X3QpcmFuZCgpOwot
ICAgICAgICBmb3IgKDsgaiA8IGtsZW5fcGFkOyBqKyspCisgICAgICAgIHNydHBfY2lwaGVyX3Jh
bmRfZm9yX3Rlc3RzKGtleSwga2xlbik7CisgICAgICAgIGZvciAoaiA9IGtsZW47IGogPCBrbGVu
X3BhZDsgaisrKQogICAgICAgICAgICAga2V5W2pdID0gMDsKICAgICAgICAgc3RhdHVzID0gc3J0
cF9jaXBoZXJfaW5pdCgqY2lwaGVyX2FycmF5LCBrZXkpOwogICAgICAgICBpZiAoc3RhdHVzKQpA
QCAtNTM1LDcgKzUyOCw3IEBAIHVpbnQ2NF90IGNpcGhlcl9hcnJheV9iaXRzX3Blcl9zZWNvbmQo
c3J0cF9jaXBoZXJfdCAqY2lwaGVyX2FycmF5W10sCiAgICAgdjEyOF90IG5vbmNlOwogICAgIGNs
b2NrX3QgdGltZXI7CiAgICAgdW5zaWduZWQgY2hhciAqZW5jX2J1ZjsKLSAgICBpbnQgY2lwaGVy
X2luZGV4ID0gcmFuZCgpICUgbnVtX2NpcGhlcjsKKyAgICBpbnQgY2lwaGVyX2luZGV4ID0gc3J0
cF9jaXBoZXJfcmFuZF91MzJfZm9yX3Rlc3RzKCkgJSBudW1fY2lwaGVyOwogCiAgICAgLyogT3Zl
ci1hbGxvYywgZm9yIE5JU1QgQ0JDIHBhZGRpbmcgKi8KICAgICBlbmNfYnVmID0gc3J0cF9jcnlw
dG9fYWxsb2Mob2N0ZXRzX2luX2J1ZmZlciArIDE3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vdGVzdC9k
YXRhdHlwZXNfZHJpdmVyLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL3Rlc3QvZGF0YXR5cGVzX2RyaXZlci5jCmluZGV4IDJm
Nzg5MDNlYjhlYjEzM2U2MjJkZWE1Y2QxZDBhOWVlMjE1N2QyN2QuLjk2Mzc5YmVmZTE1ZDBmYzE1
ZWI3MTg1OTIwMDExNzc5NGZkYzhiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vdGVzdC9kYXRhdHlwZXNf
ZHJpdmVyLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9saWJzcnRwL2NyeXB0by90ZXN0L2RhdGF0eXBlc19kcml2ZXIuYwpAQCAtNjAsNiArNjAs
OCBAQCB2b2lkIHByaW50X3N0cmluZyhjaGFyICpzKTsKIAogdm9pZCB0ZXN0X2Jzd2FwKHZvaWQp
OwogCit2b2lkIHRlc3Rfc2V0X3RvX3plcm8odm9pZCk7CisKIGludCBtYWluKHZvaWQpCiB7CiAg
ICAgLyoKQEAgLTEzNSw2ICsxMzcsNyBAQCBpbnQgbWFpbih2b2lkKQogICAgIHByaW50ZigiIH0g
XG4iKTsKIAogICAgIHRlc3RfYnN3YXAoKTsKKyAgICB0ZXN0X3NldF90b196ZXJvKCk7CiAKICAg
ICByZXR1cm4gMDsKIH0KQEAgLTIyOCwzICsyMzEsMjYgQEAgdm9pZCB0ZXN0X2Jzd2FwKHZvaWQp
CiAgICAgcHJpbnRmKCJic3dhcHBlZCBvY3RldCBzdHJpbmc6ICVzXG4iLAogICAgICAgICAgICBv
Y3RldF9zdHJpbmdfaGV4X3N0cmluZygodWludDhfdCAqKSZ5LCA4KSk7CiB9CisKK3ZvaWQgdGVz
dF9zZXRfdG9femVybyh2b2lkKQoreworI2RlZmluZSBCVUZGRVJfU0laRSAoMTYpCisgICAgdWlu
dDhfdCBidWZmZXJbQlVGRkVSX1NJWkVdOworICAgIHNpemVfdCBpOworCisgICAgZm9yIChpID0g
MDsgaSA8IEJVRkZFUl9TSVpFOyBpKyspIHsKKyAgICAgICAgYnVmZmVyW2ldID0gaSAmIDB4ZmY7
CisgICAgfQorICAgIHByaW50ZigiQnVmZmVyIGJlZm9yZTogJXNcbiIsIG9jdGV0X3N0cmluZ19o
ZXhfc3RyaW5nKGJ1ZmZlciwgQlVGRkVSX1NJWkUpKTsKKyAgICBvY3RldF9zdHJpbmdfc2V0X3Rv
X3plcm8oYnVmZmVyLCBCVUZGRVJfU0laRSk7CisgICAgcHJpbnRmKCJCdWZmZXIgYWZ0ZXI6ICVz
XG4iLCBvY3RldF9zdHJpbmdfaGV4X3N0cmluZyhidWZmZXIsIEJVRkZFUl9TSVpFKSk7CisgICAg
Zm9yIChpID0gMDsgaSA8IEJVRkZFUl9TSVpFOyBpKyspIHsKKyAgICAgICAgaWYgKGJ1ZmZlcltp
XSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJC
dWZmZXIgY29udGVudHMgbm90IHplcm8gYXQgcG9zaXRpb24gJXp1IChpcyAlZClcbiIsIGksCisg
ICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpXSk7CisgICAgICAgICAgICBhYm9ydCgpOworICAg
ICAgICB9CisgICAgfQorI3VuZGVmIEJVRkZFUl9TSVpFCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvaW5jbHVkZS9z
cnRwLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xp
YnNydHAvaW5jbHVkZS9zcnRwLmgKaW5kZXggMWZkZDZjM2FmZmQ4MzVjZDQyMjNkZDljY2M3Nzcw
NDVmODhkYmQ3Zi4uNTcyYmFkNmQ4OWRhODM5OTUwNWRiMDcxZjY3YjU0MmFkNzhhZjJiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9s
aWJzcnRwL2luY2x1ZGUvc3J0cC5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9pbmNsdWRlL3NydHAuaApAQCAtODYsNyArODYsNyBA
QCBleHRlcm4gIkMiIHsKIC8qKgogICogU1JUUF9NQVhfVFJBSUxFUl9MRU4gaXMgdGhlIG1heGlt
dW0gbGVuZ3RoIG9mIHRoZSBTUlRQIHRyYWlsZXIKICAqIChhdXRoZW50aWNhdGlvbiB0YWcgYW5k
IE1LSSkgc3VwcG9ydGVkIGJ5IGxpYlNSVFAuICBUaGlzIHZhbHVlIGlzCi0gKiB0aGUgbWFpeG11
bSBudW1iZXIgb2Ygb2N0ZXRzIHRoYXQgd2lsbCBiZSBhZGRlZCB0byBhbiBSVFAgcGFja2V0IGJ5
CisgKiB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb2N0ZXRzIHRoYXQgd2lsbCBiZSBhZGRlZCB0byBh
biBSVFAgcGFja2V0IGJ5CiAgKiBzcnRwX3Byb3RlY3QoKS4KICAqCiAgKiBAYnJpZWYgdGhlIG1h
eGltdW0gbnVtYmVyIG9mIG9jdGV0cyBhZGRlZCBieSBzcnRwX3Byb3RlY3QoKS4KQEAgLTEzMCw3
ICsxMzAsNyBAQCBleHRlcm4gIkMiIHsKICAqCiAgKiAgQSBzcnRwX2NpcGhlcl90eXBlX2lkX3Qg
aXMgYW4gaW50ZWdlciB0aGF0IHJlcHJlc2VudHMgYSBwYXJ0aWN1bGFyCiAgKiAgY2lwaGVyIHR5
cGUsIGUuZy4gdGhlIEFkdmFuY2VkIEVuY3J5cHRpb24gU3RhbmRhcmQgKEFFUykuICBBCi0gKiAg
U1JUUF9OVUxMX0NJUEhFUiBpcyBhdmFsaWFibGU7IHRoaXMgY2lwaGVyIGxlYXZlcyB0aGUgZGF0
YSB1bmNoYW5nZWQsCisgKiAgU1JUUF9OVUxMX0NJUEhFUiBpcyBhdmFpbGFibGU7IHRoaXMgY2lw
aGVyIGxlYXZlcyB0aGUgZGF0YSB1bmNoYW5nZWQsCiAgKiAgYW5kIGNhbiBiZSBzZWxlY3RlZCB0
byBpbmRpY2F0ZSB0aGF0IG5vIGVuY3J5cHRpb24gaXMgdG8gdGFrZQogICogIHBsYWNlLgogICoK
QEAgLTE0NSw3ICsxNDUsNyBAQCB0eXBlZGVmIHVpbnQzMl90IHNydHBfY2lwaGVyX3R5cGVfaWRf
dDsKICAqCiAgKiAgQW4gc3J0cF9hdXRoX3R5cGVfaWRfdCBpcyBhbiBpbnRlZ2VyIHRoYXQgcmVw
cmVzZW50cyBhIHBhcnRpY3VsYXIKICAqICBhdXRoZW50aWNhdGlvbiBmdW5jdGlvbiB0eXBlLCBl
LmcuIEhNQUMtU0hBMS4gIEEgU1JUUF9OVUxMX0FVVEggaXMKLSAqICBhdmFsaWFibGU7IHRoaXMg
YXV0aGVudGljYXRpb24gZnVuY3Rpb24gcGVyZm9ybXMgbm8gY29tcHV0YXRpb24sCisgKiAgYXZh
aWxhYmxlOyB0aGlzIGF1dGhlbnRpY2F0aW9uIGZ1bmN0aW9uIHBlcmZvcm1zIG5vIGNvbXB1dGF0
aW9uLAogICogIGFuZCBjYW4gYmUgc2VsZWN0ZWQgdG8gaW5kaWNhdGUgdGhhdCBubyBhdXRoZW50
aWNhdGlvbiBpcyB0byB0YWtlCiAgKiAgcGxhY2UuCiAgKgpAQCAtMjQyLDcgKzI0Miw3IEBAIHR5
cGVkZWYgc3RydWN0IHNydHBfY3J5cHRvX3BvbGljeV90IHsKICAqIEBicmllZiBzcnRwX3NzcmNf
dHlwZV90IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiBhbiBTU1JDLgogICoKICAqIEFuIHNydHBfc3Ny
Y190eXBlX3QgZW51bWVyYXRpb24gaXMgdXNlZCB0byBpbmRpY2F0ZSBhIHR5cGUgb2YgU1NSQy4g
IFNlZQotICogQHJlZiBzcnRwX3BvbGljeV90IGZvciBtb3JlIGluZm9ybWF0YWlvbi4KKyAqIEBy
ZWYgc3J0cF9wb2xpY3lfdCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAqLwogdHlwZWRlZiBlbnVt
IHsKICAgICBzc3JjX3VuZGVmaW5lZCA9IDAsICAgLyoqPCBJbmRpY2F0ZXMgYW4gdW5kZWZpbmVk
IFNTUkMgdHlwZS4gICAgKi8KQEAgLTM1MCw3ICszNTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBzcnRw
X3BvbGljeV90IHsKICAqIEBicmllZiBBbiBzcnRwX3QgcG9pbnRzIHRvIGFuIFNSVFAgc2Vzc2lv
biBzdHJ1Y3R1cmUuCiAgKgogICogVGhlIHR5cGVkZWYgc3J0cF90IGlzIGEgcG9pbnRlciB0byBh
IHN0cnVjdHVyZSB0aGF0IHJlcHJlc2VudHMKLSAqIGFuIFNSVFAgc2Vzc2lvbi4gIFRoaXMgZGF0
YXR5cGUgaXMgaW50ZW50aWFsbHkgb3BhcXVlIGluCisgKiBhbiBTUlRQIHNlc3Npb24uICBUaGlz
IGRhdGF0eXBlIGlzIGludGVudGlvbmFsbHkgb3BhcXVlIGluCiAgKiBvcmRlciB0byBzZXBhcmF0
ZSB0aGUgaW50ZXJmYWNlIGZyb20gdGhlIGltcGxlbWVudGF0aW9uLgogICoKICAqIEFuIFNSVFAg
c2Vzc2lvbiBjb25zaXN0cyBvZiBhbGwgb2YgdGhlIHRyYWZmaWMgc2VudCB0byB0aGUgUlRQIGFu
ZApAQCAtNTgxLDcgKzU4MSw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0X21r
aShzcnRwX3QgY3R4LAogICogaGF2ZSBpdHMgYG5leHQnIGZpZWxkIHNldCB0byBOVUxMLgogICoK
ICAqIEByZXR1cm4KLSAqICAgIC0gc3J0cF9lcnJfc3RhdHVzX29rICAgICAgICAgICBpZiBjcmVh
dGlvbiBzdWNjZWRlZC4KKyAqICAgIC0gc3J0cF9lcnJfc3RhdHVzX29rICAgICAgICAgICBpZiBj
cmVhdGlvbiBzdWNjZWVkZWQuCiAgKiAgICAtIHNydHBfZXJyX3N0YXR1c19hbGxvY19mYWlsICAg
aWYgYWxsb2NhdGlvbiBmYWlsZWQuCiAgKiAgICAtIHNydHBfZXJyX3N0YXR1c19pbml0X2ZhaWwg
ICAgaWYgaW5pdGlhbGl6YXRpb24gZmFpbGVkLgogICovCkBAIC01OTcsNyArNTk3LDcgQEAgc3J0
cF9lcnJfc3RhdHVzX3Qgc3J0cF9jcmVhdGUoc3J0cF90ICpzZXNzaW9uLCBjb25zdCBzcnRwX3Bv
bGljeV90ICpwb2xpY3kpOwogICogc3RyZWFtLgogICoKICAqIEByZXR1cm4gdmFsdWVzOgotICog
ICAgLSBzcnRwX2Vycl9zdGF0dXNfb2sgICAgICAgICAgIGlmIHN0cmVhbSBjcmVhdGlvbiBzdWNj
ZWRlZC4KKyAqICAgIC0gc3J0cF9lcnJfc3RhdHVzX29rICAgICAgICAgICBpZiBzdHJlYW0gY3Jl
YXRpb24gc3VjY2VlZGVkLgogICogICAgLSBzcnRwX2Vycl9zdGF0dXNfYWxsb2NfZmFpbCAgIGlm
IHN0cmVhbSBhbGxvY2F0aW9uIGZhaWxlZAogICogICAgLSBzcnRwX2Vycl9zdGF0dXNfaW5pdF9m
YWlsICAgIGlmIHN0cmVhbSBpbml0aWFsaXphdGlvbiBmYWlsZWQuCiAgKi8KQEAgLTYyMCwxOCAr
NjIwLDE4IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfYWRkX3N0cmVhbShzcnRwX3Qgc2Vzc2lv
biwgY29uc3Qgc3J0cF9wb2xpY3lfdCAqcG9saWN5KTsKICAqICAgICAgICAgIHNlc3Npb24uCiAg
KgogICogQHJldHVybgotICogICAgLSBzcnRwX2Vycl9zdGF0dXNfb2sgICAgIGlmIHRoZSBzdHJl
YW0gZGVhbGxvY2F0aW9uIHN1Y2NlZGVkLgorICogICAgLSBzcnRwX2Vycl9zdGF0dXNfb2sgICAg
IGlmIHRoZSBzdHJlYW0gZGVhbGxvY2F0aW9uIHN1Y2NlZWRlZC4KICAqICAgIC0gW290aGVyXSAg
ICAgICAgICAgb3RoZXJ3aXNlLgogICoKICAqLwogc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9yZW1v
dmVfc3RyZWFtKHNydHBfdCBzZXNzaW9uLCB1bnNpZ25lZCBpbnQgc3NyYyk7CiAKIC8qKgotICog
QGJyaWVmIHNydHBfdXBkYXRlKCkgdWRwYXRlcyBhbGwgc3RyZWFtcyBpbiB0aGUgc2Vzc2lvbi4K
KyAqIEBicmllZiBzcnRwX3VwZGF0ZSgpIHVwZGF0ZXMgYWxsIHN0cmVhbXMgaW4gdGhlIHNlc3Np
b24uCiAgKgogICogVGhlIGZ1bmN0aW9uIGNhbGwgc3J0cF91cGRhdGUoc2Vzc2lvbiwgcG9saWN5
KSB1cGRhdGVzCiAgKiBhbGwgdGhlIHN0cmVhbXMgaW4gdGhlIHNlc3Npb24gYXBwbHlpbmcgdGhl
IGdpdmVuIHBvbGljeQotICogYW5kIGtleS4gVGhlIGV4c2lzdGluZyBST0MgdmFsdWUgb2YgYWxs
IHN0cmVhbXMgd2lsbCBiZQorICogYW5kIGtleS4gVGhlIGV4aXN0aW5nIFJPQyB2YWx1ZSBvZiBh
bGwgc3RyZWFtcyB3aWxsIGJlCiAgKiBwcmVzZXJ2ZWQuCiAgKgogICogQHBhcmFtIHNlc3Npb24g
aXMgdGhlIFNSVFAgc2Vzc2lvbiB0aGF0IGNvbnRhaW5zIHRoZSBzdHJlYW1zCkBAIC02NDQsNyAr
NjQ0LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9yZW1vdmVfc3RyZWFtKHNydHBfdCBzZXNz
aW9uLCB1bnNpZ25lZCBpbnQgc3NyYyk7CiAgKiBoYXZlIGl0cyBgbmV4dCcgZmllbGQgc2V0IHRv
IE5VTEwuCiAgKgogICogQHJldHVybgotICogICAgLSBzcnRwX2Vycl9zdGF0dXNfb2sgICAgICAg
ICAgIGlmIHN0cmVhbSBjcmVhdGlvbiBzdWNjZWRlZC4KKyAqICAgIC0gc3J0cF9lcnJfc3RhdHVz
X29rICAgICAgICAgICBpZiBzdHJlYW0gY3JlYXRpb24gc3VjY2VlZC4KICAqICAgIC0gc3J0cF9l
cnJfc3RhdHVzX2FsbG9jX2ZhaWwgICBpZiBzdHJlYW0gYWxsb2NhdGlvbiBmYWlsZWQKICAqICAg
IC0gc3J0cF9lcnJfc3RhdHVzX2luaXRfZmFpbCAgICBpZiBzdHJlYW0gaW5pdGlhbGl6YXRpb24g
ZmFpbGVkLgogICogICAgLSBbb3RoZXJdICAgICAgICAgICAgICAgICBvdGhlcndpc2UuCkBAIC02
NTMsMTEgKzY1MywxMSBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3JlbW92ZV9zdHJlYW0oc3J0
cF90IHNlc3Npb24sIHVuc2lnbmVkIGludCBzc3JjKTsKIHNydHBfZXJyX3N0YXR1c190IHNydHBf
dXBkYXRlKHNydHBfdCBzZXNzaW9uLCBjb25zdCBzcnRwX3BvbGljeV90ICpwb2xpY3kpOwogCiAv
KioKLSAqIEBicmllZiBzcnRwX3VwZGF0ZV9zdHJlYW0oKSB1ZHBhdGVzIGEgU1JUUCBzdHJlYW0u
CisgKiBAYnJpZWYgc3J0cF91cGRhdGVfc3RyZWFtKCkgdXBkYXRlcyBhIFNSVFAgc3RyZWFtLgog
ICoKICAqIFRoZSBmdW5jdGlvbiBjYWxsIHNydHBfdXBkYXRlX3N0cmVhbShzZXNzaW9uLCBwb2xp
Y3kpIHVwZGF0ZXMKICAqIHRoZSBzdHJlYW0ocykgaW4gdGhlIHNlc3Npb24gdGhhdCBtYXRjaCBh
cHBseWluZyB0aGUgZ2l2ZW4KLSAqIHBvbGljeSBhbmQga2V5LiBUaGUgZXhzaXN0aW5nIFJPQyB2
YWx1ZSBvZiBhbGwgc3RyZWFtKHMpIHdpbGwKKyAqIHBvbGljeSBhbmQga2V5LiBUaGUgZXhpc3Rp
bmcgUk9DIHZhbHVlIG9mIGFsbCBzdHJlYW0ocykgd2lsbAogICogYmUgcHJlc2VydmVkLgogICoK
ICAqIEBwYXJhbSBzZXNzaW9uIGlzIHRoZSBTUlRQIHNlc3Npb24gdGhhdCBjb250YWlucyB0aGUg
c3RyZWFtcwpAQCAtNjY3LDcgKzY2Nyw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdXBkYXRl
KHNydHBfdCBzZXNzaW9uLCBjb25zdCBzcnRwX3BvbGljeV90ICpwb2xpY3kpOwogICogZm9yIHRo
ZSBzZXNzaW9uLgogICoKICAqIEByZXR1cm4KLSAqICAgIC0gc3J0cF9lcnJfc3RhdHVzX29rICAg
ICAgICAgICBpZiBzdHJlYW0gY3JlYXRpb24gc3VjY2VkZWQuCisgKiAgICAtIHNydHBfZXJyX3N0
YXR1c19vayAgICAgICAgICAgaWYgc3RyZWFtIGNyZWF0aW9uIHN1Y2NlZWRlZC4KICAqICAgIC0g
c3J0cF9lcnJfc3RhdHVzX2FsbG9jX2ZhaWwgICBpZiBzdHJlYW0gYWxsb2NhdGlvbiBmYWlsZWQK
ICAqICAgIC0gc3J0cF9lcnJfc3RhdHVzX2luaXRfZmFpbCAgICBpZiBzdHJlYW0gaW5pdGlhbGl6
YXRpb24gZmFpbGVkLgogICogICAgLSBbb3RoZXJdICAgICAgICAgICAgICAgICAgICAgIG90aGVy
d2lzZS4KQEAgLTY4MiwxNCArNjgyLDE0IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdXBkYXRl
X3N0cmVhbShzcnRwX3Qgc2Vzc2lvbiwKICAqCiAgKiBAcGFyYW0gcCBpcyBhIHBvaW50ZXIgdG8g
dGhlIHBvbGljeSBzdHJ1Y3R1cmUgdG8gYmUgc2V0CiAgKgotICogVGhlIGZ1bmN0aW9uIGNhbGwg
Y3J5cHRvX3BvbGljeV9zZXRfcnRwX2RlZmF1bHQoJnApIHNldHMgdGhlCi0gKiBjcnlwdG9fcG9s
aWN5X3QgYXQgbG9jYXRpb24gcCB0byB0aGUgU1JUUCBkZWZhdWx0IHBvbGljeSBmb3IgUlRQCisg
KiBUaGUgZnVuY3Rpb24gY2FsbCBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X3J0cF9kZWZhdWx0KCZw
KSBzZXRzIHRoZQorICogc3J0cF9jcnlwdG9fcG9saWN5X3QgYXQgbG9jYXRpb24gcCB0byB0aGUg
U1JUUCBkZWZhdWx0IHBvbGljeSBmb3IgUlRQCiAgKiBwcm90ZWN0aW9uLCBhcyBkZWZpbmVkIGlu
IHRoZSBzcGVjaWZpY2F0aW9uLiAgVGhpcyBmdW5jdGlvbiBpcyBhCiAgKiBjb252ZW5pZW5jZSB0
aGF0IGhlbHBzIHRvIGF2b2lkIGRlYWxpbmcgZGlyZWN0bHkgd2l0aCB0aGUgcG9saWN5CiAgKiBk
YXRhIHN0cnVjdHVyZS4gIFlvdSBhcmUgZW5jb3VyYWdlZCB0byBpbml0aWFsaXplIHBvbGljeSBl
bGVtZW50cwogICogd2l0aCB0aGlzIGZ1bmN0aW9uIGNhbGwuICBEb2luZyBzbyBtYXkgYWxsb3cg
eW91ciBjb2RlIHRvIGJlCiAgKiBmb3J3YXJkIGNvbXBhdGlibGUgd2l0aCBsYXRlciB2ZXJzaW9u
cyBvZiBsaWJTUlRQIHRoYXQgaW5jbHVkZSBtb3JlCi0gKiBlbGVtZW50cyBpbiB0aGUgY3J5cHRv
X3BvbGljeV90IGRhdGF0eXBlLgorICogZWxlbWVudHMgaW4gdGhlIHNydHBfY3J5cHRvX3BvbGlj
eV90IGRhdGF0eXBlLgogICoKICAqIEByZXR1cm4gdm9pZC4KICAqCkBAIC04MDIsNyArODAyLDcg
QEAgdm9pZCBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19jbV8xMjhfbnVsbF9hdXRoKHNydHBf
Y3J5cHRvX3BvbGljeV90ICpwKTsKICAqIHNldHMgdGhlIHNydHBfY3J5cHRvX3BvbGljeV90IGF0
IGxvY2F0aW9uIHAgdG8gdXNlIEhNQUMtU0hBMSB3aXRoIGFuIDgwCiAgKiBiaXQgYXV0aGVudGlj
YXRpb24gdGFnIHRvIHByb3ZpZGUgbWVzc2FnZSBhdXRoZW50aWNhdGlvbiwgYnV0IHRvCiAgKiB1
c2Ugbm8gZW5jcnlwdGlvbi4gIFRoaXMgcG9saWN5IGlzIE5PVCBSRUNPTU1FTkRFRCBmb3IgU1JU
UCB1bmxlc3MKLSAqIHRoZXJlIGlzIGEgcmVxdWlyZW1lbnQgdG8gZm9yZWdvIGVuY3J5cHRpb24u
CisgKiB0aGVyZSBpcyBhIHJlcXVpcmVtZW50IHRvIGZvcmdvIGVuY3J5cHRpb24uCiAgKgogICog
VGhpcyBmdW5jdGlvbiBpcyBhIGNvbnZlbmllbmNlIHRoYXQgaGVscHMgdG8gYXZvaWQgZGVhbGlu
ZyBkaXJlY3RseQogICogd2l0aCB0aGUgcG9saWN5IGRhdGEgc3RydWN0dXJlLiAgWW91IGFyZSBl
bmNvdXJhZ2VkIHRvIGluaXRpYWxpemUKQEAgLTgxMSw3ICs4MTEsNyBAQCB2b2lkIHNydHBfY3J5
cHRvX3BvbGljeV9zZXRfYWVzX2NtXzEyOF9udWxsX2F1dGgoc3J0cF9jcnlwdG9fcG9saWN5X3Qg
KnApOwogICogaW5jbHVkZSBtb3JlIGVsZW1lbnRzIGluIHRoZSBzcnRwX2NyeXB0b19wb2xpY3lf
dCBkYXRhdHlwZS4KICAqCiAgKiBAd2FybmluZyBUaGlzIHBvbGljeSBpcyBOT1QgUkVDT01NRU5E
RUQgZm9yIFNSVFAgdW5sZXNzIHRoZXJlIGlzIGEKLSAqIHJlcXVpcmVtZW50IHRvIGZvcmVnbyBl
bmNyeXB0aW9uLgorICogcmVxdWlyZW1lbnQgdG8gZm9yZ28gZW5jcnlwdGlvbi4KICAqCiAgKiBA
cmV0dXJuIHZvaWQuCiAgKgpAQCAtODI3LDcgKzgyNyw3IEBAIHZvaWQgc3J0cF9jcnlwdG9fcG9s
aWN5X3NldF9udWxsX2NpcGhlcl9obWFjX3NoYTFfODAoc3J0cF9jcnlwdG9fcG9saWN5X3QgKnAp
OwogICogVGhlIGZ1bmN0aW9uIGNhbGwgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9udWxsX2NpcGhl
cl9obWFjX251bGwoJnApCiAgKiBzZXRzIHRoZSBzcnRwX2NyeXB0b19wb2xpY3lfdCBhdCBsb2Nh
dGlvbiBwIHRvIHVzZSBubyBlbmNyeXB0aW9uIGFuZAogICogbm8gYXV0aGVudGljYXRpb24uICBU
aGlzIHBvbGljeSBzaG91bGQgb25seSBiZSB1c2VkIGZvciB0ZXN0aW5nIGFuZAotICogdHJvdWJs
ZXNob290aW5nbC4KKyAqIHRyb3VibGVzaG9vdGluZy4KICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGlz
IGEgY29udmVuaWVuY2UgdGhhdCBoZWxwcyB0byBhdm9pZCBkZWFsaW5nIGRpcmVjdGx5CiAgKiB3
aXRoIHRoZSBwb2xpY3kgZGF0YSBzdHJ1Y3R1cmUuICBZb3UgYXJlIGVuY291cmFnZWQgdG8gaW5p
dGlhbGl6ZQpAQCAtODM2LDcgKzgzNiw3IEBAIHZvaWQgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9u
dWxsX2NpcGhlcl9obWFjX3NoYTFfODAoc3J0cF9jcnlwdG9fcG9saWN5X3QgKnApOwogICogaW5j
bHVkZSBtb3JlIGVsZW1lbnRzIGluIHRoZSBzcnRwX2NyeXB0b19wb2xpY3lfdCBkYXRhdHlwZS4K
ICAqCiAgKiBAd2FybmluZyBUaGlzIHBvbGljeSBpcyBOT1QgUkVDT01NRU5ERUQgZm9yIFNSVFAg
dW5sZXNzIHRoZXJlIGlzIGEKLSAqIHJlcXVpcmVtZW50IHRvIGZvcmVnbyBlbmNyeXB0aW9uIGFu
ZCBhdXRoZW50aWNhdGlvbi4KKyAqIHJlcXVpcmVtZW50IHRvIGZvcmdvIGVuY3J5cHRpb24gYW5k
IGF1dGhlbnRpY2F0aW9uLgogICoKICAqIEByZXR1cm4gdm9pZC4KICAqCkBAIC05MzQsNyArOTM0
LDcgQEAgdm9pZCBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19jbV8yNTZfbnVsbF9hdXRoKHNy
dHBfY3J5cHRvX3BvbGljeV90ICpwKTsKICAqIEBwYXJhbSBwIGlzIGEgcG9pbnRlciB0byB0aGUg
cG9saWN5IHN0cnVjdHVyZSB0byBiZSBzZXQKICAqCiAgKiBUaGUgZnVuY3Rpb24gY2FsbCBzcnRw
X2NyeXB0b19wb2xpY3lfc2V0X2Flc19jbV8xOTJfaG1hY19zaGExXzgwKCZwKQotICogc2V0cyB0
aGUgY3J5cHRvX3BvbGljeV90IGF0IGxvY2F0aW9uIHAgdG8gdXNlIHBvbGljeQorICogc2V0cyB0
aGUgc3J0cF9jcnlwdG9fcG9saWN5X3QgYXQgbG9jYXRpb24gcCB0byB1c2UgcG9saWN5CiAgKiBB
RVNfQ01fMTkyX0hNQUNfU0hBMV84MCBhcyBkZWZpbmVkIGluIFJGQyA2MTg4LiAgVGhpcyBwb2xp
Y3kgdXNlcyBBRVMtMTkyCiAgKiBDb3VudGVyIE1vZGUgZW5jcnlwdGlvbiBhbmQgSE1BQy1TSEEx
IGF1dGhlbnRpY2F0aW9uLCB3aXRoIGFuIDgwIGJpdAogICogYXV0aGVudGljYXRpb24gdGFnLgpA
QCAtOTQzLDcgKzk0Myw3IEBAIHZvaWQgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9hZXNfY21fMjU2
X251bGxfYXV0aChzcnRwX2NyeXB0b19wb2xpY3lfdCAqcCk7CiAgKiB3aXRoIHRoZSBwb2xpY3kg
ZGF0YSBzdHJ1Y3R1cmUuICBZb3UgYXJlIGVuY291cmFnZWQgdG8gaW5pdGlhbGl6ZQogICogcG9s
aWN5IGVsZW1lbnRzIHdpdGggdGhpcyBmdW5jdGlvbiBjYWxsLiAgRG9pbmcgc28gbWF5IGFsbG93
IHlvdXIKICAqIGNvZGUgdG8gYmUgZm9yd2FyZCBjb21wYXRpYmxlIHdpdGggbGF0ZXIgdmVyc2lv
bnMgb2YgbGliU1JUUCB0aGF0Ci0gKiBpbmNsdWRlIG1vcmUgZWxlbWVudHMgaW4gdGhlIGNyeXB0
b19wb2xpY3lfdCBkYXRhdHlwZS4KKyAqIGluY2x1ZGUgbW9yZSBlbGVtZW50cyBpbiB0aGUgc3J0
cF9jcnlwdG9fcG9saWN5X3QgZGF0YXR5cGUuCiAgKgogICogQHJldHVybiB2b2lkLgogICoKQEAg
LTk1OCw3ICs5NTgsNyBAQCB2b2lkIHNydHBfY3J5cHRvX3BvbGljeV9zZXRfYWVzX2NtXzE5Ml9o
bWFjX3NoYTFfODAoc3J0cF9jcnlwdG9fcG9saWN5X3QgKnApOwogICogQHBhcmFtIHAgaXMgYSBw
b2ludGVyIHRvIHRoZSBwb2xpY3kgc3RydWN0dXJlIHRvIGJlIHNldAogICoKICAqIFRoZSBmdW5j
dGlvbiBjYWxsIHNydHBfY3J5cHRvX3BvbGljeV9zZXRfYWVzX2NtXzE5Ml9obWFjX3NoYTFfMzIo
JnApCi0gKiBzZXRzIHRoZSBjcnlwdG9fcG9saWN5X3QgYXQgbG9jYXRpb24gcCB0byB1c2UgcG9s
aWN5CisgKiBzZXRzIHRoZSBzcnRwX2NyeXB0b19wb2xpY3lfdCBhdCBsb2NhdGlvbiBwIHRvIHVz
ZSBwb2xpY3kKICAqIEFFU19DTV8xOTJfSE1BQ19TSEExXzMyIGFzIGRlZmluZWQgaW4gUkZDIDYx
ODguICBUaGlzIHBvbGljeSB1c2VzIEFFUy0xOTIKICAqIENvdW50ZXIgTW9kZSBlbmNyeXB0aW9u
IGFuZCBITUFDLVNIQTEgYXV0aGVudGljYXRpb24sIHdpdGggYW4KICAqIGF1dGhlbnRpY2F0aW9u
IHRhZyB0aGF0IGlzIG9ubHkgMzIgYml0cyBsb25nLiAgVGhpcyBsZW5ndGggaXMKQEAgLTk3MCw3
ICs5NzAsNyBAQCB2b2lkIHNydHBfY3J5cHRvX3BvbGljeV9zZXRfYWVzX2NtXzE5Ml9obWFjX3No
YTFfODAoc3J0cF9jcnlwdG9fcG9saWN5X3QgKnApOwogICogd2l0aCB0aGUgcG9saWN5IGRhdGEg
c3RydWN0dXJlLiAgWW91IGFyZSBlbmNvdXJhZ2VkIHRvIGluaXRpYWxpemUKICAqIHBvbGljeSBl
bGVtZW50cyB3aXRoIHRoaXMgZnVuY3Rpb24gY2FsbC4gIERvaW5nIHNvIG1heSBhbGxvdyB5b3Vy
CiAgKiBjb2RlIHRvIGJlIGZvcndhcmQgY29tcGF0aWJsZSB3aXRoIGxhdGVyIHZlcnNpb25zIG9m
IGxpYlNSVFAgdGhhdAotICogaW5jbHVkZSBtb3JlIGVsZW1lbnRzIGluIHRoZSBjcnlwdG9fcG9s
aWN5X3QgZGF0YXR5cGUuCisgKiBpbmNsdWRlIG1vcmUgZWxlbWVudHMgaW4gdGhlIHNydHBfY3J5
cHRvX3BvbGljeV90IGRhdGF0eXBlLgogICoKICAqIEB3YXJuaW5nIFRoaXMgY3J5cHRvIHBvbGlj
eSBpcyBpbnRlbmRlZCBmb3IgdXNlIGluIFNSVFAsIGJ1dCBub3QgaW4KICAqIFNSVENQLiAgSXQg
aXMgcmVjb21tZW5kZWQgdGhhdCBhIHBvbGljeSB0aGF0IHVzZXMgbG9uZ2VyCkBAIC05ODksNyAr
OTg5LDcgQEAgdm9pZCBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19jbV8xOTJfaG1hY19zaGEx
XzMyKHNydHBfY3J5cHRvX3BvbGljeV90ICpwKTsKICAqIEBwYXJhbSBwIGlzIGEgcG9pbnRlciB0
byB0aGUgcG9saWN5IHN0cnVjdHVyZSB0byBiZSBzZXQKICAqCiAgKiBUaGUgZnVuY3Rpb24gY2Fs
bCBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19jbV8xOTJfbnVsbF9hdXRoKCZwKSBzZXRzCi0g
KiB0aGUgY3J5cHRvX3BvbGljeV90IGF0IGxvY2F0aW9uIHAgdG8gdXNlIHRoZSBTUlRQIGRlZmF1
bHQgY2lwaGVyCisgKiB0aGUgc3J0cF9jcnlwdG9fcG9saWN5X3QgYXQgbG9jYXRpb24gcCB0byB1
c2UgdGhlIFNSVFAgZGVmYXVsdCBjaXBoZXIKICAqIChBRVMtMTkyIENvdW50ZXIgTW9kZSksIGJ1
dCB0byB1c2Ugbm8gYXV0aGVudGljYXRpb24gbWV0aG9kLiAgVGhpcwogICogcG9saWN5IGlzIE5P
VCBSRUNPTU1FTkRFRCB1bmxlc3MgaXQgaXMgdW5hdm9pZGFibGU7IHNlZSBTZWN0aW9uIDcuNQog
ICogb2YgUkZDIDM3MTEgKGh0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzM3MTEudHh0KS4KQEAg
LTk5OCw3ICs5OTgsNyBAQCB2b2lkIHNydHBfY3J5cHRvX3BvbGljeV9zZXRfYWVzX2NtXzE5Ml9o
bWFjX3NoYTFfMzIoc3J0cF9jcnlwdG9fcG9saWN5X3QgKnApOwogICogd2l0aCB0aGUgcG9saWN5
IGRhdGEgc3RydWN0dXJlLiAgWW91IGFyZSBlbmNvdXJhZ2VkIHRvIGluaXRpYWxpemUKICAqIHBv
bGljeSBlbGVtZW50cyB3aXRoIHRoaXMgZnVuY3Rpb24gY2FsbC4gIERvaW5nIHNvIG1heSBhbGxv
dyB5b3VyCiAgKiBjb2RlIHRvIGJlIGZvcndhcmQgY29tcGF0aWJsZSB3aXRoIGxhdGVyIHZlcnNp
b25zIG9mIGxpYlNSVFAgdGhhdAotICogaW5jbHVkZSBtb3JlIGVsZW1lbnRzIGluIHRoZSBjcnlw
dG9fcG9saWN5X3QgZGF0YXR5cGUuCisgKiBpbmNsdWRlIG1vcmUgZWxlbWVudHMgaW4gdGhlIHNy
dHBfY3J5cHRvX3BvbGljeV90IGRhdGF0eXBlLgogICoKICAqIEB3YXJuaW5nIFRoaXMgcG9saWN5
IGlzIE5PVCBSRUNPTU1FTkRFRCBmb3IgU1JUUCB1bmxlc3MgaXQgaXMKICAqIHVuYXZvaWRhYmxl
LCBhbmQgaXQgaXMgTk9UIFJFQ09NTUVOREVEIGF0IGFsbCBmb3IgU1JUQ1A7IHNlZQpAQCAtMTE2
MCw3ICsxMTYwLDcgQEAgdm9pZCBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19nY21fMjU2XzE2
X2F1dGgoc3J0cF9jcnlwdG9fcG9saWN5X3QgKnApOwogICoKICAqIEByZXR1cm4KICAqICAgIC0g
c3J0cF9lcnJfc3RhdHVzX29rICAgICAgICAgICAgIGlmIHRoZXJlIG5vIHByb2JsZW1zLgotICog
ICAgLSBzcnRwX2Vycl9zdGF0dXNfZGVhbGxvY19mYWlsICAgYSBtZW1vcnkgZGVhbGxvY2F0aW9u
IGZhaWx1cmUgb2NjdXJlZC4KKyAqICAgIC0gc3J0cF9lcnJfc3RhdHVzX2RlYWxsb2NfZmFpbCAg
IGEgbWVtb3J5IGRlYWxsb2NhdGlvbiBmYWlsdXJlIG9jY3VycmVkLgogICovCiBzcnRwX2Vycl9z
dGF0dXNfdCBzcnRwX2RlYWxsb2Moc3J0cF90IHMpOwogCkBAIC0xMzYzLDcgKzEzNjMsNyBAQCBz
cnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Byb3RlY3RfcnRjcChzcnRwX3QgY3R4LAogICogd2lsbAog
ICogdXNlIHRoZSBzZXNzaW9uIGtleXMgaWRlbnRpZmllZCBieSB0aGUgbWtpX2luZGV4CiAgKgot
ICogQHBhcmFtIG1raV9pbmRleCBpbnRlZ2VyIHZhbHVlIHNwZWNpZnlpbmcgd2hpY2ggc2V0IG9m
IHNlc3Npb24ga2VzeSBzaG91bGQgYmUKKyAqIEBwYXJhbSBta2lfaW5kZXggaW50ZWdlciB2YWx1
ZSBzcGVjaWZ5aW5nIHdoaWNoIHNldCBvZiBzZXNzaW9uIGtleXMgc2hvdWxkIGJlCiAgKiB1c2Vk
IGlmIHVzZV9ta2kgaXMgc2V0IHRvIHRydWUuCiAgKgogICogQHJldHVybgpAQCAtMTU2MCw3ICsx
NTYwLDcgQEAgdm9pZCAqc3J0cF9nZXRfdXNlcl9kYXRhKHNydHBfdCBjdHgpOwogICogbGF0dGVy
IGNhc2UsIGFsbCBvZiB0aGUgc3RyZWFtcyBpbiB0aGUgc2Vzc2lvbiB3aWxsIGV4cGlyZS4KICAq
LwogdHlwZWRlZiBlbnVtIHsKLSAgICBldmVudF9zc3JjX2NvbGxpc2lvbiwgICAgLyoqPCBBbiBT
U1JDIGNvbGxpc2lvbiBvY2N1cmVkLiAgICAgICAgICAgICovCisgICAgZXZlbnRfc3NyY19jb2xs
aXNpb24sICAgIC8qKjwgQW4gU1NSQyBjb2xsaXNpb24gb2NjdXJyZWQuICAgICAgICAgICAqLwog
ICAgIGV2ZW50X2tleV9zb2Z0X2xpbWl0LCAgICAvKio8IEFuIFNSVFAgc3RyZWFtIHJlYWNoZWQg
dGhlIHNvZnQga2V5ICAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyoqPCB1c2Fn
ZSBsaW1pdCBhbmQgd2lsbCBleHBpcmUgc29vbi4gICAgICovCiAgICAgZXZlbnRfa2V5X2hhcmRf
bGltaXQsICAgIC8qKjwgQW4gU1JUUCBzdHJlYW0gcmVhY2hlZCB0aGUgaGFyZCAgICAgICAqLwpA
QCAtMTU3Nyw5ICsxNTc3LDkgQEAgdHlwZWRlZiBlbnVtIHsKICAqIGhhbmRsZXIgZnVuY3Rpb24u
CiAgKi8KIHR5cGVkZWYgc3RydWN0IHNydHBfZXZlbnRfZGF0YV90IHsKLSAgICBzcnRwX3Qgc2Vz
c2lvbjsgICAgIC8qKjwgVGhlIHNlc3Npb24gaW4gd2hpY2ggdGhlIGV2ZW50IGhhcHBlbmQuICAg
ICAgICAqLworICAgIHNydHBfdCBzZXNzaW9uOyAgICAgLyoqPCBUaGUgc2Vzc2lvbiBpbiB3aGlj
aCB0aGUgZXZlbnQgaGFwcGVuZWQuICAgICAgICovCiAgICAgdWludDMyX3Qgc3NyYzsgICAgICAv
Kio8IFRoZSBzc3JjIGluIGhvc3Qgb3JkZXIgb2YgdGhlIHN0cmVhbSBpbiB3aGljaCAgKi8KLSAg
ICAgICAgICAgICAgICAgICAgICAgIC8qKjwgdGhlIGV2ZW50IGhhcHBlbmQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICAgICAgLyoqPCB0aGUgZXZl
bnQgaGFwcGVuZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgc3J0cF9ldmVu
dF90IGV2ZW50OyAvKio8IEFuIGVudW0gaW5kaWNhdGluZyB0aGUgdHlwZSBvZiBldmVudC4gICAg
ICAgICAgKi8KIH0gc3J0cF9ldmVudF9kYXRhX3Q7CiAKQEAgLTE2MDMsNyArMTYwMyw3IEBAIHR5
cGVkZWYgdm9pZChzcnRwX2V2ZW50X2hhbmRsZXJfZnVuY190KShzcnRwX2V2ZW50X2RhdGFfdCAq
ZGF0YSk7CiAgKiBhcyBhbiBhcmd1bWVudDsgaW4gdGhpcyBjYXNlLCBldmVudHMgd2lsbCBiZSBp
Z25vcmVkIHJhdGhlciB0aGFuCiAgKiBoYW5kbGVkLgogICoKLSAqIEBwYXJhbSBmdW5jIGlzIGEg
cG9pbnRlciB0byBhIGZ1Y3Rpb24gdGhhdCB0YWtlcyBhbiBzcnRwX2V2ZW50X2RhdGFfdAorICog
QHBhcmFtIGZ1bmMgaXMgYSBwb2ludGVyIHRvIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBhbiBzcnRw
X2V2ZW50X2RhdGFfdAogICogICAgICAgICAgICAgcG9pbnRlciBhcyBhbiBhcmd1bWVudCBhbmQg
cmV0dXJucyB2b2lkLiAgVGhpcyBmdW5jdGlvbgogICogICAgICAgICAgICAgd2lsbCBiZSB1c2Vk
IGJ5IGxpYlNSVFAgdG8gaGFuZGxlIGV2ZW50cy4KICAqLwpAQCAtMTY3MSwxMCArMTY3MSwxMCBA
QCB0eXBlZGVmIHZvaWQoc3J0cF9sb2dfaGFuZGxlcl9mdW5jX3QpKHNydHBfbG9nX2xldmVsX3Qg
bGV2ZWwsCiAgKiBUaGUgZnVuY3Rpb24gY2FsbCBzcnRwX2luc3RhbGxfbG9nX2hhbmRsZXIoZnVu
Yykgc2V0cyB0aGUgbG9nCiAgKiBoYW5kbGVyIGZ1bmN0aW9uIHRvIHRoZSB2YWx1ZSBmdW5jLiAg
VGhlIHZhbHVlIE5VTEwgaXMgYWNjZXB0YWJsZQogICogYXMgYW4gYXJndW1lbnQ7IGluIHRoaXMg
Y2FzZSwgbG9nIG1lc3NhZ2VzIHdpbGwgYmUgaWdub3JlZC4KLSAqIFRoaXMgZnVuY3Rpb24gY2Fu
IGJlIGNhbGxlZCBiZWZvcmUgc3J0cF9pbml0KCkgaW5vcmRlciB0byBjYXB0dXJlCisgKiBUaGlz
IGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHNydHBfaW5pdCgpIGluIG9yZGVyIHRvIGNh
cHR1cmUKICAqIGFueSBsb2dnaW5nIGR1cmluZyBzdGFydCB1cC4KICAqCi0gKiBAcGFyYW0gZnVu
YyBpcyBhIHBvaW50ZXIgdG8gYSBmdWN0aW9uIG9mIHR5cGUgc3J0cF9sb2dfaGFuZGxlcl9mdW5j
X3QuCisgKiBAcGFyYW0gZnVuYyBpcyBhIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiBvZiB0eXBlIHNy
dHBfbG9nX2hhbmRsZXJfZnVuY190LgogICogICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxs
IGJlIHVzZWQgYnkgbGliU1JUUCB0byBvdXRwdXQgbG9nIG1lc3NhZ2VzLgogICogQHBhcmFtIGRh
dGEgaXMgYSB1c2VyIHBvaW50ZXIgdGhhdCB3aWxsIGJlIHJldHVybmVkIGFzIHRoZSBkYXRhIGFy
Z3VtZW50IGluCiAgKiBmdW5jLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2luY2x1ZGUvc3J0cF9wcml2LmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvaW5jbHVk
ZS9zcnRwX3ByaXYuaAppbmRleCA5ODhlZmM0MTY0ZDNjMWM0ZDdlZTZhNzI5YTk3ZjhmNDk2NTM4
YTU4Li5kNDQ5ZjJhNGVlMzUyYzkxY2I2YTVmOWNjYWRlYmE2MjM1MzViN2E4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAv
aW5jbHVkZS9zcnRwX3ByaXYuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvaW5jbHVkZS9zcnRwX3ByaXYuaApAQCAtMjE1LDcgKzIx
NSw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAqIHNydGNwX2hkcl90IHJlcHJlc2VudHMgYSBzZWN1
cmUgcnRjcCBoZWFkZXIKICAqCiAgKiBpbiB0aGlzIGltcGxlbWVudGF0aW9uLCBhbiBzcnRjcCBo
ZWFkZXIgaXMgYXNzdW1lZCB0byBiZSAzMi1iaXQKLSAqIGFsaW5nZWQKKyAqIGFsaWduZWQKICAq
LwogCiAjaWZuZGVmIFdPUkRTX0JJR0VORElBTgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3NydHAvZWt0LmMgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvc3J0cC9l
a3QuYwppbmRleCBiNTRlY2Y2NGViNDQ1ZWU1OTQxNDI1YTIyZjQ2YTE2Y2ZkZTdmNGM5Li4yNGFm
OTNiZDk5N2JjODZkNjc1MGRlM2IyYThjOGVlNTYzZDMyMTZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvc3J0cC9la3Qu
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xp
YnNydHAvc3J0cC9la3QuYwpAQCAtMTUxLDcgKzE1MSw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNy
dHBfZWt0X3N0cmVhbV9pbml0X2Zyb21fcG9saWN5KAogCiB2b2lkIGFlc19kZWNyeXB0X3dpdGhf
cmF3X2tleSh2b2lkICpjaXBoZXJ0ZXh0LCBjb25zdCB2b2lkICprZXksIGludCBrZXlfbGVuKQog
ewotI2lmbmRlZiBPUEVOU1NMCisjaWZuZGVmIEdDTQogICAgIC8vIEZJWE1FOiBuZWVkIHRvIGdl
dCB0aGlzIHdvcmtpbmcgdGhyb3VnaCB0aGUgY3J5cHRvIG1vZHVsZSBpbnRlcmZhY2UKICAgICBz
cnRwX2Flc19leHBhbmRlZF9rZXlfdCBleHBhbmRlZF9rZXk7CiAKQEAgLTIxOCw3ICsyMTgsNyBA
QCB2b2lkIHNydHBfZWt0X3dyaXRlX2RhdGEoc3J0cF9la3Rfc3RyZWFtX3QgZWt0LAogCiAgICAg
LyogaWYgdGhlIHBvaW50ZXIgZWt0IGlzIE5VTEwsIHRoZW4gRUtUIGlzIG5vdCBpbiBlZmZlY3Qg
Ki8KICAgICBpZiAoIWVrdCkgewotICAgICAgICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgIkVLVCBu
b3QgaW4gdXNlIiwgTlVMTCk7CisgICAgICAgIGRlYnVnX3ByaW50MChtb2Rfc3J0cCwgIkVLVCBu
b3QgaW4gdXNlIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9zcnRwL3Ny
dHAuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGli
c3J0cC9zcnRwL3NydHAuYwppbmRleCA0NDYyNTAxNWU3YjY4NWIwN2Y5NTlhNWE2ZWI1OWFiMDg1
ZmMzNDYzLi4wMzBjYzgzY2Q0YWIwNWE5MWFjMzRkYjlhNGQ0ZTdjODgzZmM5NWQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNy
dHAvc3J0cC9zcnRwLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9saWJzcnRwL3NydHAvc3J0cC5jCkBAIC01MSwxMiArNTEsMTMgQEAKICNpbmNs
dWRlICJla3QuaCIgICAvKiBmb3IgU1JUUCBFbmNyeXB0ZWQgS2V5IFRyYW5zcG9ydCAqLwogI2lu
Y2x1ZGUgImFsbG9jLmgiIC8qIGZvciBzcnRwX2NyeXB0b19hbGxvYygpICovCiAKLSNpZmRlZiBP
UEVOU1NMCi0jaW5jbHVkZSAiYWVzX2djbV9vc3NsLmgiIC8qIGZvciBBRVMgR0NNIG1vZGUgKi8K
KyNpZmRlZiBHQ00KKyNpbmNsdWRlICJhZXNfZ2NtLmgiIC8qIGZvciBBRVMgR0NNIG1vZGUgKi8K
KyNlbmRpZgorCiAjaWZkZWYgT1BFTlNTTF9LREYKICNpbmNsdWRlIDxvcGVuc3NsL2tkZi5oPgot
I2luY2x1ZGUgImFlc19pY21fb3NzbC5oIiAvKiBmb3IgQUVTIEdDTSBtb2RlICovCi0jZW5kaWYK
KyNpbmNsdWRlICJhZXNfaWNtX2V4dC5oIgogI2VuZGlmCiAKICNpbmNsdWRlIDxsaW1pdHMuaD4K
QEAgLTgxLDEzICs4MiwxNCBAQCBzcnRwX2RlYnVnX21vZHVsZV90IG1vZF9zcnRwID0gewogc3Rh
dGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfdmFsaWRhdGVfcnRwX2hlYWRlcih2b2lkICpydHBf
aGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgKnBrdF9vY3RldF9sZW4pCiB7CisgICAgc3J0cF9oZHJfdCAqaGRyID0gKHNydHBfaGRyX3Qg
KilydHBfaGRyOworICAgIGludCBydHBfaGVhZGVyX2xlbjsKKwogICAgIGlmICgqcGt0X29jdGV0
X2xlbiA8IG9jdGV0c19pbl9ydHBfaGVhZGVyKQogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3Rh
dHVzX2JhZF9wYXJhbTsKIAotICAgIHNydHBfaGRyX3QgKmhkciA9IChzcnRwX2hkcl90ICopcnRw
X2hkcjsKLQogICAgIC8qIENoZWNrIFJUUCBoZWFkZXIgbGVuZ3RoICovCi0gICAgaW50IHJ0cF9o
ZWFkZXJfbGVuID0gb2N0ZXRzX2luX3J0cF9oZWFkZXIgKyA0ICogaGRyLT5jYzsKKyAgICBydHBf
aGVhZGVyX2xlbiA9IG9jdGV0c19pbl9ydHBfaGVhZGVyICsgNCAqIGhkci0+Y2M7CiAgICAgaWYg
KGhkci0+eCA9PSAxKQogICAgICAgICBydHBfaGVhZGVyX2xlbiArPSBvY3RldHNfaW5fcnRwX2V4
dG5faGRyOwogCkBAIC02NzcsNiArNjc5LDggQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNy
dHBfa2RmX2luaXQoc3J0cF9rZGZfdCAqa2RmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGtleV9sZW4pCiB7CiAgICAgc3J0cF9jaXBoZXJfdHlwZV9pZF90IGNp
cGhlcl9pZDsKKyAgICBzcnRwX2Vycl9zdGF0dXNfdCBzdGF0OworCiAgICAgc3dpdGNoIChrZXlf
bGVuKSB7CiAgICAgY2FzZSBTUlRQX0FFU19JQ01fMjU2X0tFWV9MRU5fV1NBTFQ6CiAgICAgICAg
IGNpcGhlcl9pZCA9IFNSVFBfQUVTX0lDTV8yNTY7CkBAIC02OTIsNyArNjk2LDYgQEAgc3RhdGlj
IHNydHBfZXJyX3N0YXR1c190IHNydHBfa2RmX2luaXQoc3J0cF9rZGZfdCAqa2RmLAogICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICBzcnRwX2Vycl9zdGF0dXNfdCBzdGF0OwogICAgIHN0YXQg
PSBzcnRwX2NyeXB0b19rZXJuZWxfYWxsb2NfY2lwaGVyKGNpcGhlcl9pZCwgJmtkZi0+Y2lwaGVy
LCBrZXlfbGVuLCAwKTsKICAgICBpZiAoc3RhdCkKICAgICAgICAgcmV0dXJuIHN0YXQ7CkBAIC05
NTksNyArOTYyLDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9zdHJlYW1faW5pdF9rZXlzKHNy
dHBfc3RyZWFtX2N0eF90ICpzcnRwLAogICAgICAqIHRvIGdlbmVyYXRlIHRoZSBzYWx0IHZhbHVl
CiAgICAgICovCiAgICAgaWYgKHJ0cF9zYWx0X2xlbiA+IDApIHsKLSAgICAgICAgZGVidWdfcHJp
bnQobW9kX3NydHAsICJmb3VuZCBydHBfc2FsdF9sZW4gPiAwLCBnZW5lcmF0aW5nIHNhbHQiLCBO
VUxMKTsKKyAgICAgICAgZGVidWdfcHJpbnQwKG1vZF9zcnRwLCAiZm91bmQgcnRwX3NhbHRfbGVu
ID4gMCwgZ2VuZXJhdGluZyBzYWx0Iik7CiAKICAgICAgICAgLyogZ2VuZXJhdGUgZW5jcnlwdGlv
biBzYWx0LCBwdXQgYWZ0ZXIgZW5jcnlwdGlvbiBrZXkgKi8KICAgICAgICAgc3RhdCA9IHNydHBf
a2RmX2dlbmVyYXRlKCZrZGYsIGxhYmVsX3J0cF9zYWx0LApAQCAtMTA2OCw5ICsxMDcxLDggQEAg
c3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9zdHJlYW1faW5pdF9rZXlzKHNydHBfc3RyZWFtX2N0eF90
ICpzcnRwLAogICAgICAgICAgKiB0byBnZW5lcmF0ZSB0aGUgc2FsdCB2YWx1ZQogICAgICAgICAg
Ki8KICAgICAgICAgaWYgKHJ0cF94dG5faGRyX3NhbHRfbGVuID4gMCkgewotICAgICAgICAgICAg
ZGVidWdfcHJpbnQobW9kX3NydHAsCi0gICAgICAgICAgICAgICAgICAgICAgICAiZm91bmQgcnRw
X3h0bl9oZHJfc2FsdF9sZW4gPiAwLCBnZW5lcmF0aW5nIHNhbHQiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICBkZWJ1Z19wcmludDAobW9kX3NydHAsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgImZvdW5kIHJ0cF94dG5faGRyX3NhbHRfbGVuID4gMCwgZ2Vu
ZXJhdGluZyBzYWx0Iik7CiAKICAgICAgICAgICAgIC8qIGdlbmVyYXRlIGVuY3J5cHRpb24gc2Fs
dCwgcHV0IGFmdGVyIGVuY3J5cHRpb24ga2V5ICovCiAgICAgICAgICAgICBzdGF0ID0gc3J0cF9r
ZGZfZ2VuZXJhdGUoeHRuX2hkcl9rZGYsIGxhYmVsX3J0cF9oZWFkZXJfc2FsdCwKQEAgLTExNTEs
OCArMTE1Myw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfc3RyZWFtX2luaXRfa2V5cyhzcnRw
X3N0cmVhbV9jdHhfdCAqc3J0cCwKICAgICAgKiB0byBnZW5lcmF0ZSB0aGUgc2FsdCB2YWx1ZQog
ICAgICAqLwogICAgIGlmIChydGNwX3NhbHRfbGVuID4gMCkgewotICAgICAgICBkZWJ1Z19wcmlu
dChtb2Rfc3J0cCwgImZvdW5kIHJ0Y3Bfc2FsdF9sZW4gPiAwLCBnZW5lcmF0aW5nIHJ0Y3Agc2Fs
dCIsCi0gICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICBkZWJ1Z19wcmludDAobW9k
X3NydHAsICJmb3VuZCBydGNwX3NhbHRfbGVuID4gMCwgZ2VuZXJhdGluZyBydGNwIHNhbHQiKTsK
IAogICAgICAgICAvKiBnZW5lcmF0ZSBlbmNyeXB0aW9uIHNhbHQsIHB1dCBhZnRlciBlbmNyeXB0
aW9uIGtleSAqLwogICAgICAgICBzdGF0ID0gc3J0cF9rZGZfZ2VuZXJhdGUoJmtkZiwgbGFiZWxf
cnRjcF9zYWx0LApAQCAtMTQyMiw3ICsxNDIzLDcgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190
IHNydHBfcHJvY2Vzc19oZWFkZXJfZW5jcnlwdGlvbigKICAgICAgICAgICAgICAgICB4dG5faGRy
X2RhdGErKzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgIH0gZWxzZSBpZiAoKG50b2hz
KHh0bl9oZHItPnByb2ZpbGVfc3BlY2lmaWMpICYgMHgxZmZmKSA9PSAweDEwMCkgeworICAgIH0g
ZWxzZSBpZiAoKG50b2hzKHh0bl9oZHItPnByb2ZpbGVfc3BlY2lmaWMpICYgMHhmZmYwKSA9PSAw
eDEwMDApIHsKICAgICAgICAgLyogUkZDIDUyODUsIHNlY3Rpb24gNC4zLiBUd28tQnl0ZSBIZWFk
ZXIgKi8KICAgICAgICAgd2hpbGUgKHh0bl9oZHJfZGF0YSArIDEgPCB4dG5faGRyX2VuZCkgewog
ICAgICAgICAgICAgdWludDhfdCB4aWQgPSAqeHRuX2hkcl9kYXRhOwpAQCAtMTY2OCw3ICsxNjY5
LDcgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfZ2V0X2VzdF9wa3RfaW5kZXgoc3J0
cF9oZHJfdCAqaGRyLAogICAgIGRlYnVnX3ByaW50Mihtb2Rfc3J0cCwgImVzdGltYXRlZCB1X3Bh
Y2tldCBpbmRleDogJTA4eCUwOHgiLCBoaWdoMzIoKmVzdCksCiAgICAgICAgICAgICAgICAgIGxv
dzMyKCplc3QpKTsKICNlbHNlCi0gICAgZGVidWdfcHJpbnQobW9kX3NydHAsICJlc3RpbWF0ZWQg
dV9wYWNrZXQgaW5kZXg6ICUwMTZsbHgiLCAqZXN0KTsKKyAgICBkZWJ1Z19wcmludChtb2Rfc3J0
cCwgImVzdGltYXRlZCB1X3BhY2tldCBpbmRleDogJTAxNiIgUFJJeDY0LCAqZXN0KTsKICNlbmRp
ZgogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xNjk4LDcgKzE2OTksNyBAQCBzdGF0aWMgc3J0
cF9lcnJfc3RhdHVzX3Qgc3J0cF9wcm90ZWN0X2FlYWQoc3J0cF9jdHhfdCAqY3R4LAogICAgIHVu
c2lnbmVkIGludCBta2lfc2l6ZSA9IDA7CiAgICAgdWludDhfdCAqbWtpX2xvY2F0aW9uID0gTlVM
TDsKIAotICAgIGRlYnVnX3ByaW50KG1vZF9zcnRwLCAiZnVuY3Rpb24gc3J0cF9wcm90ZWN0X2Fl
YWQiLCBOVUxMKTsKKyAgICBkZWJ1Z19wcmludDAobW9kX3NydHAsICJmdW5jdGlvbiBzcnRwX3By
b3RlY3RfYWVhZCIpOwogCiAgICAgLyoKICAgICAgKiB1cGRhdGUgdGhlIGtleSB1c2FnZSBsaW1p
dCwgYW5kIGNoZWNrIGl0IHRvIG1ha2Ugc3VyZSB0aGF0IHdlCkBAIC0xNzU3LDcgKzE3NTgsNyBA
QCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9wcm90ZWN0X2FlYWQoc3J0cF9jdHhfdCAq
Y3R4LAogICAgIGRlYnVnX3ByaW50Mihtb2Rfc3J0cCwgImVzdGltYXRlZCBwYWNrZXQgaW5kZXg6
ICUwOHglMDh4IiwgaGlnaDMyKGVzdCksCiAgICAgICAgICAgICAgICAgIGxvdzMyKGVzdCkpOwog
I2Vsc2UKLSAgICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgImVzdGltYXRlZCBwYWNrZXQgaW5kZXg6
ICUwMTZsbHgiLCBlc3QpOworICAgIGRlYnVnX3ByaW50KG1vZF9zcnRwLCAiZXN0aW1hdGVkIHBh
Y2tldCBpbmRleDogJTAxNiIgUFJJeDY0LCBlc3QpOwogI2VuZGlmCiAKICAgICAvKgpAQCAtMTg1
OSwxMyArMTg2MCwxMyBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF91bnByb3RlY3Rf
YWVhZChzcnRwX2N0eF90ICpjdHgsCiAgICAgdW5zaWduZWQgaW50IGFhZF9sZW47CiAgICAgc3J0
cF9oZHJfeHRuZF90ICp4dG5faGRyID0gTlVMTDsKIAotICAgIGRlYnVnX3ByaW50KG1vZF9zcnRw
LCAiZnVuY3Rpb24gc3J0cF91bnByb3RlY3RfYWVhZCIsIE5VTEwpOworICAgIGRlYnVnX3ByaW50
MChtb2Rfc3J0cCwgImZ1bmN0aW9uIHNydHBfdW5wcm90ZWN0X2FlYWQiKTsKIAogI2lmZGVmIE5P
XzY0QklUX01BVEgKICAgICBkZWJ1Z19wcmludDIobW9kX3NydHAsICJlc3RpbWF0ZWQgdV9wYWNr
ZXQgaW5kZXg6ICUwOHglMDh4IiwgaGlnaDMyKGVzdCksCiAgICAgICAgICAgICAgICAgIGxvdzMy
KGVzdCkpOwogI2Vsc2UKLSAgICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgImVzdGltYXRlZCB1X3Bh
Y2tldCBpbmRleDogJTAxNmxseCIsIGVzdCk7CisgICAgZGVidWdfcHJpbnQobW9kX3NydHAsICJl
c3RpbWF0ZWQgdV9wYWNrZXQgaW5kZXg6ICUwMTYiIFBSSXg2NCwgZXN0KTsKICNlbmRpZgogCiAg
ICAgLyogZ2V0IHRhZyBsZW5ndGggZnJvbSBzdHJlYW0gKi8KQEAgLTIwNjAsNyArMjA2MSw3IEBA
IHNydHBfZXJyX3N0YXR1c190IHNydHBfcHJvdGVjdF9ta2koc3J0cF9jdHhfdCAqY3R4LAogICAg
IHVpbnQ4X3QgKm1raV9sb2NhdGlvbiA9IE5VTEw7CiAgICAgaW50IGFkdmFuY2VfcGFja2V0X2lu
ZGV4ID0gMDsKIAotICAgIGRlYnVnX3ByaW50KG1vZF9zcnRwLCAiZnVuY3Rpb24gc3J0cF9wcm90
ZWN0IiwgTlVMTCk7CisgICAgZGVidWdfcHJpbnQwKG1vZF9zcnRwLCAiZnVuY3Rpb24gc3J0cF9w
cm90ZWN0Iik7CiAKICAgICAvKiB3ZSBhc3N1bWUgdGhlIGhkciBpcyAzMi1iaXQgYWxpZ25lZCB0
byBzdGFydCAqLwogCkBAIC0yMjMxLDcgKzIyMzIsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRw
X3Byb3RlY3RfbWtpKHNydHBfY3R4X3QgKmN0eCwKICAgICBkZWJ1Z19wcmludDIobW9kX3NydHAs
ICJlc3RpbWF0ZWQgcGFja2V0IGluZGV4OiAlMDh4JTA4eCIsIGhpZ2gzMihlc3QpLAogICAgICAg
ICAgICAgICAgICBsb3czMihlc3QpKTsKICNlbHNlCi0gICAgZGVidWdfcHJpbnQobW9kX3NydHAs
ICJlc3RpbWF0ZWQgcGFja2V0IGluZGV4OiAlMDE2bGx4IiwgZXN0KTsKKyAgICBkZWJ1Z19wcmlu
dChtb2Rfc3J0cCwgImVzdGltYXRlZCBwYWNrZXQgaW5kZXg6ICUwMTYiIFBSSXg2NCwgZXN0KTsK
ICNlbmRpZgogCiAgICAgLyoKQEAgLTIzMzcsNyArMjMzOCw3IEBAIHNydHBfZXJyX3N0YXR1c190
IHNydHBfcHJvdGVjdF9ta2koc3J0cF9jdHhfdCAqY3R4LAogICAgICAgICAgICAgcmV0dXJuIHN0
YXR1czsKIAogICAgICAgICAvKiBydW4gYXV0aCBmdW5jIG92ZXIgUk9DLCBwdXQgcmVzdWx0IGlu
dG8gYXV0aF90YWcgKi8KLSAgICAgICAgZGVidWdfcHJpbnQobW9kX3NydHAsICJlc3RpbWF0ZWQg
cGFja2V0IGluZGV4OiAlMDE2bGx4IiwgZXN0KTsKKyAgICAgICAgZGVidWdfcHJpbnQobW9kX3Ny
dHAsICJlc3RpbWF0ZWQgcGFja2V0IGluZGV4OiAlMDE2IiBQUkl4NjQsIGVzdCk7CiAgICAgICAg
IHN0YXR1cyA9IHNydHBfYXV0aF9jb21wdXRlKHNlc3Npb25fa2V5cy0+cnRwX2F1dGgsICh1aW50
OF90ICopJmVzdCwgNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aF90
YWcpOwogICAgICAgICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgInNydHAgYXV0aCB0YWc6ICAgICVz
IiwKQEAgLTIzOTAsNyArMjM5MSw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0
X21raShzcnRwX2N0eF90ICpjdHgsCiAgICAgdWludDMyX3Qgcm9jX3RvX3NldCA9IDA7CiAgICAg
dWludDE2X3Qgc2VxX3RvX3NldCA9IDA7CiAKLSAgICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgImZ1
bmN0aW9uIHNydHBfdW5wcm90ZWN0IiwgTlVMTCk7CisgICAgZGVidWdfcHJpbnQwKG1vZF9zcnRw
LCAiZnVuY3Rpb24gc3J0cF91bnByb3RlY3QiKTsKIAogICAgIC8qIHdlIGFzc3VtZSB0aGUgaGRy
IGlzIDMyLWJpdCBhbGlnbmVkIHRvIHN0YXJ0ICovCiAKQEAgLTI0NTksNyArMjQ2MCw3IEBAIHNy
dHBfZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0X21raShzcnRwX2N0eF90ICpjdHgsCiAgICAg
ZGVidWdfcHJpbnQyKG1vZF9zcnRwLCAiZXN0aW1hdGVkIHVfcGFja2V0IGluZGV4OiAlMDh4JTA4
eCIsIGhpZ2gzMihlc3QpLAogICAgICAgICAgICAgICAgICBsb3czMihlc3QpKTsKICNlbHNlCi0g
ICAgZGVidWdfcHJpbnQobW9kX3NydHAsICJlc3RpbWF0ZWQgdV9wYWNrZXQgaW5kZXg6ICUwMTZs
bHgiLCBlc3QpOworICAgIGRlYnVnX3ByaW50KG1vZF9zcnRwLCAiZXN0aW1hdGVkIHVfcGFja2V0
IGluZGV4OiAlMDE2IiBQUkl4NjQsIGVzdCk7CiAjZW5kaWYKIAogICAgIC8qIERldGVybWluZSBp
ZiBNS0kgaXMgYmVpbmcgdXNlZCBhbmQgd2hhdCBzZXNzaW9uIGtleXMgc2hvdWxkIGJlIHVzZWQg
Ki8KQEAgLTI2MDMsNiArMjYwNCw4IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0
X21raShzcnRwX2N0eF90ICpjdHgsCiAgICAgICAgIC8qIG5vdyBjb21wdXRlIGF1dGggZnVuY3Rp
b24gb3ZlciBwYWNrZXQgKi8KICAgICAgICAgc3RhdHVzID0gc3J0cF9hdXRoX3VwZGF0ZShzZXNz
aW9uX2tleXMtPnJ0cF9hdXRoLCAodWludDhfdCAqKWF1dGhfc3RhcnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKnBrdF9vY3RldF9sZW4gLSB0YWdfbGVuIC0gbWtpX3NpemUp
OworICAgICAgICBpZiAoc3RhdHVzKQorICAgICAgICAgICAgcmV0dXJuIHN0YXR1czsKIAogICAg
ICAgICAvKiBydW4gYXV0aCBmdW5jIG92ZXIgUk9DLCB0aGVuIHdyaXRlIHRtcCB0YWcgKi8KICAg
ICAgICAgc3RhdHVzID0gc3J0cF9hdXRoX2NvbXB1dGUoc2Vzc2lvbl9rZXlzLT5ydHBfYXV0aCwg
KHVpbnQ4X3QgKikmZXN0LCA0LApAQCAtMjYxNSw3ICsyNjE4LDcgQEAgc3J0cF9lcnJfc3RhdHVz
X3Qgc3J0cF91bnByb3RlY3RfbWtpKHNydHBfY3R4X3QgKmN0eCwKICAgICAgICAgaWYgKHN0YXR1
cykKICAgICAgICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfYXV0aF9mYWlsOwogCi0gICAg
ICAgIGlmIChvY3RldF9zdHJpbmdfaXNfZXEodG1wX3RhZywgYXV0aF90YWcsIHRhZ19sZW4pKQor
ICAgICAgICBpZiAoc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEodG1wX3RhZywgYXV0aF90YWcsIHRh
Z19sZW4pKQogICAgICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19hdXRoX2ZhaWw7CiAg
ICAgfQogCkBAIC0zMjg2LDcgKzMyODksNiBAQCB2b2lkIHNydHBfY3J5cHRvX3BvbGljeV9zZXRf
YWVzX2NtXzI1Nl9udWxsX2F1dGgoc3J0cF9jcnlwdG9fcG9saWN5X3QgKnApCiAgICAgcC0+c2Vj
X3NlcnYgPSBzZWNfc2Vydl9jb25mOwogfQogCi0jaWZkZWYgT1BFTlNTTAogdm9pZCBzcnRwX2Ny
eXB0b19wb2xpY3lfc2V0X2Flc19jbV8xOTJfaG1hY19zaGExXzgwKHNydHBfY3J5cHRvX3BvbGlj
eV90ICpwKQogewogICAgIC8qCkBAIC0zNDA4LDggKzM0MTAsNiBAQCB2b2lkIHNydHBfY3J5cHRv
X3BvbGljeV9zZXRfYWVzX2djbV8yNTZfMTZfYXV0aChzcnRwX2NyeXB0b19wb2xpY3lfdCAqcCkK
ICAgICBwLT5zZWNfc2VydiA9IHNlY19zZXJ2X2NvbmZfYW5kX2F1dGg7CiB9CiAKLSNlbmRpZgot
CiAvKgogICogc2VjdXJlIHJ0Y3AgZnVuY3Rpb25zCiAgKi8KQEAgLTM0OTcsNyArMzQ5Nyw4IEBA
IHN0YXRpYyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Byb3RlY3RfcnRjcF9hZWFkKAogewogICAg
IHNydGNwX2hkcl90ICpoZHIgPSAoc3J0Y3BfaGRyX3QgKilydGNwX2hkcjsKICAgICB1aW50MzJf
dCAqZW5jX3N0YXJ0OyAgICAgICAgICAgIC8qIHBvaW50ZXIgdG8gc3RhcnQgb2YgZW5jcnlwdGVk
IHBvcnRpb24gICovCi0gICAgdWludDMyX3QgKnRyYWlsZXI7ICAgICAgICAgICAgICAvKiBwb2lu
dGVyIHRvIHN0YXJ0IG9mIHRyYWlsZXIgICAgICAgICAgICAqLworICAgIHVpbnQzMl90ICp0cmFp
bGVyX3A7ICAgICAgICAgICAgLyogcG9pbnRlciB0byBzdGFydCBvZiB0cmFpbGVyICAgICAgICAg
ICAgKi8KKyAgICB1aW50MzJfdCB0cmFpbGVyOyAgICAgICAgICAgICAgIC8qIHRyYWlsZXIgdmFs
dWUgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgdW5zaWduZWQgaW50IGVuY19vY3Rl
dF9sZW4gPSAwOyAvKiBudW1iZXIgb2Ygb2N0ZXRzIGluIGVuY3J5cHRlZCBwb3J0aW9uICovCiAg
ICAgdWludDhfdCAqYXV0aF90YWcgPSBOVUxMOyAgICAgICAvKiBsb2NhdGlvbiBvZiBhdXRoX3Rh
ZyB3aXRoaW4gcGFja2V0ICAgICAqLwogICAgIHNydHBfZXJyX3N0YXR1c190IHN0YXR1czsKQEAg
LTM1MjAsMTggKzM1MjEsMTUgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfcHJvdGVj
dF9ydGNwX2FlYWQoCiAgICAgLyogTk9URTogaGRyLT5sZW5ndGggaXMgbm90IHVzYWJsZSAtIGl0
IHJlZmVycyB0byBvbmx5IHRoZSBmaXJzdAogICAgICAqIFJUQ1AgcmVwb3J0IGluIHRoZSBjb21w
b3VuZCBwYWNrZXQhCiAgICAgICovCi0gICAgLyogTk9URTogdHJhaWxlciBpcyAzMi1iaXQgYWxp
Z25lZCBiZWNhdXNlIFJUQ1AgJ3BhY2tldHMnIGFyZSBhbHdheXMKLSAgICAgKiBtdWx0aXBsZXMg
b2YgMzItYml0cyAoUkZDIDM1NTAgNi4xKQotICAgICAqLwotICAgIHRyYWlsZXIgPSAodWludDMy
X3QgKikoKGNoYXIgKillbmNfc3RhcnQgKyBlbmNfb2N0ZXRfbGVuICsgdGFnX2xlbik7CisgICAg
dHJhaWxlcl9wID0gKHVpbnQzMl90ICopKChjaGFyICopZW5jX3N0YXJ0ICsgZW5jX29jdGV0X2xl
biArIHRhZ19sZW4pOwogCiAgICAgaWYgKHN0cmVhbS0+cnRjcF9zZXJ2aWNlcyAmIHNlY19zZXJ2
X2NvbmYpIHsKLSAgICAgICAgKnRyYWlsZXIgPSBodG9ubChTUlRDUF9FX0JJVCk7IC8qIHNldCBl
bmNyeXB0IGJpdCAqLworICAgICAgICB0cmFpbGVyID0gaHRvbmwoU1JUQ1BfRV9CSVQpOyAvKiBz
ZXQgZW5jcnlwdCBiaXQgKi8KICAgICB9IGVsc2UgewogICAgICAgICBlbmNfc3RhcnQgPSBOVUxM
OwogICAgICAgICBlbmNfb2N0ZXRfbGVuID0gMDsKICAgICAgICAgLyogMCBpcyBuZXR3b3JrLW9y
ZGVyIGluZGVwZW5kYW50ICovCi0gICAgICAgICp0cmFpbGVyID0gMHgwMDAwMDAwMDsgLyogc2V0
IGVuY3J5cHQgYml0ICovCisgICAgICAgIHRyYWlsZXIgPSAweDAwMDAwMDAwOyAvKiBzZXQgZW5j
cnlwdCBiaXQgKi8KICAgICB9CiAKICAgICBta2lfc2l6ZSA9IHNydHBfaW5qZWN0X21raSgodWlu
dDhfdCAqKWhkciArICpwa3Rfb2N0ZXRfbGVuICsgdGFnX2xlbiArCkBAIC0zNTU1LDkgKzM1NTMs
MTEgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfcHJvdGVjdF9ydGNwX2FlYWQoCiAg
ICAgICAgIHJldHVybiBzdGF0dXM7CiAgICAgfQogICAgIHNlcV9udW0gPSBzcnRwX3JkYl9nZXRf
dmFsdWUoJnN0cmVhbS0+cnRjcF9yZGIpOwotICAgICp0cmFpbGVyIHw9IGh0b25sKHNlcV9udW0p
OworICAgIHRyYWlsZXIgfD0gaHRvbmwoc2VxX251bSk7CiAgICAgZGVidWdfcHJpbnQobW9kX3Ny
dHAsICJzcnRjcCBpbmRleDogJXgiLCBzZXFfbnVtKTsKIAorICAgIG1lbWNweSh0cmFpbGVyX3As
ICZ0cmFpbGVyLCBzaXplb2YodHJhaWxlcikpOworCiAgICAgLyoKICAgICAgKiBDYWxjdWxhdGUg
YW5kIHNldCB0aGUgSVYKICAgICAgKi8KQEAgLTM1OTksNyArMzU5OSw3IEBAIHN0YXRpYyBzcnRw
X2Vycl9zdGF0dXNfdCBzcnRwX3Byb3RlY3RfcnRjcF9hZWFkKAogICAgIC8qCiAgICAgICogUHJv
Y2VzcyB0aGUgc2VxdWVuY2UjIGFzIEFBRAogICAgICAqLwotICAgIHRzZXEgPSAqdHJhaWxlcjsK
KyAgICB0c2VxID0gdHJhaWxlcjsKICAgICBzdGF0dXMgPSBzcnRwX2NpcGhlcl9zZXRfYWFkKHNl
c3Npb25fa2V5cy0+cnRjcF9jaXBoZXIsICh1aW50OF90ICopJnRzZXEsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3J0Y3BfdHJhaWxlcl90KSk7CiAgICAgaWYgKHN0
YXR1cykgewpAQCAtMzY2OCw3ICszNjY4LDggQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNy
dHBfdW5wcm90ZWN0X3J0Y3BfYWVhZCgKIHsKICAgICBzcnRjcF9oZHJfdCAqaGRyID0gKHNydGNw
X2hkcl90ICopc3J0Y3BfaGRyOwogICAgIHVpbnQzMl90ICplbmNfc3RhcnQ7ICAgICAgICAgICAg
LyogcG9pbnRlciB0byBzdGFydCBvZiBlbmNyeXB0ZWQgcG9ydGlvbiAgKi8KLSAgICB1aW50MzJf
dCAqdHJhaWxlcjsgICAgICAgICAgICAgIC8qIHBvaW50ZXIgdG8gc3RhcnQgb2YgdHJhaWxlciAg
ICAgICAgICAgICovCisgICAgdWludDMyX3QgKnRyYWlsZXJfcDsgICAgICAgICAgICAvKiBwb2lu
dGVyIHRvIHN0YXJ0IG9mIHRyYWlsZXIgICAgICAgICAgICAqLworICAgIHVpbnQzMl90IHRyYWls
ZXI7ICAgICAgICAgICAgICAgLyogdHJhaWxlciB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgKi8KICAgICB1bnNpZ25lZCBpbnQgZW5jX29jdGV0X2xlbiA9IDA7IC8qIG51bWJlciBvZiBv
Y3RldHMgaW4gZW5jcnlwdGVkIHBvcnRpb24gKi8KICAgICB1aW50OF90ICphdXRoX3RhZyA9IE5V
TEw7ICAgICAgIC8qIGxvY2F0aW9uIG9mIGF1dGhfdGFnIHdpdGhpbiBwYWNrZXQgICAgICovCiAg
ICAgc3J0cF9lcnJfc3RhdHVzX3Qgc3RhdHVzOwpAQCAtMzY5NCwxMiArMzY5NSwxMCBAQCBzdGF0
aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF91bnByb3RlY3RfcnRjcF9hZWFkKAogICAgICAqLwog
ICAgIC8qIFRoaXMgc2hvdWxkIHBvaW50IHRyYWlsZXIgdG8gdGhlIHdvcmQgcGFzdCB0aGUgZW5k
IG9mIHRoZSBub3JtYWwgZGF0YS4gKi8KICAgICAvKiBUaGlzIHdvdWxkIG5lZWQgdG8gYmUgbW9k
aWZpZWQgZm9yIG9wdGlvbmFsIG1pa2V5IGRhdGEgKi8KLSAgICAvKgotICAgICAqIE5PVEU6IHRy
YWlsZXIgaXMgMzItYml0IGFsaWduZWQgYmVjYXVzZSBSVENQICdwYWNrZXRzJyBhcmUgYWx3YXlz
Ci0gICAgICogICBtdWx0aXBsZXMgb2YgMzItYml0cyAoUkZDIDM1NTAgNi4xKQotICAgICAqLwot
ICAgIHRyYWlsZXIgPSAodWludDMyX3QgKikoKGNoYXIgKiloZHIgKyAqcGt0X29jdGV0X2xlbiAt
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3J0Y3BfdHJhaWxlcl90KSAtIG1r
aV9zaXplKTsKKyAgICB0cmFpbGVyX3AgPSAodWludDMyX3QgKikoKGNoYXIgKiloZHIgKyAqcGt0
X29jdGV0X2xlbiAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzcnRjcF90
cmFpbGVyX3QpIC0gbWtpX3NpemUpOworICAgIG1lbWNweSgmdHJhaWxlciwgdHJhaWxlcl9wLCBz
aXplb2YodHJhaWxlcikpOworCiAgICAgLyoKICAgICAgKiBXZSBwYXNzIHRoZSB0YWcgZG93biB0
byB0aGUgY2lwaGVyIHdoZW4gZG9pbmcgR0NNIG1vZGUKICAgICAgKi8KQEAgLTM3MDgsNyArMzcw
Nyw3IEBAIHN0YXRpYyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3VucHJvdGVjdF9ydGNwX2FlYWQo
CiAgICAgYXV0aF90YWcgPSAodWludDhfdCAqKWhkciArICpwa3Rfb2N0ZXRfbGVuIC0gdGFnX2xl
biAtIG1raV9zaXplIC0KICAgICAgICAgICAgICAgIHNpemVvZihzcnRjcF90cmFpbGVyX3QpOwog
Ci0gICAgaWYgKCooKHVuc2lnbmVkIGNoYXIgKil0cmFpbGVyKSAmIFNSVENQX0VfQllURV9CSVQp
IHsKKyAgICBpZiAoKigodW5zaWduZWQgY2hhciAqKXRyYWlsZXJfcCkgJiBTUlRDUF9FX0JZVEVf
QklUKSB7CiAgICAgICAgIGVuY19zdGFydCA9ICh1aW50MzJfdCAqKWhkciArIHVpbnQzMnNfaW5f
cnRjcF9oZWFkZXI7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZW5jX29jdGV0X2xlbiA9IDA7CkBA
IC0zNzE5LDcgKzM3MTgsNyBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF91bnByb3Rl
Y3RfcnRjcF9hZWFkKAogICAgICAqIGNoZWNrIHRoZSBzZXF1ZW5jZSBudW1iZXIgZm9yIHJlcGxh
eXMKICAgICAgKi8KICAgICAvKiB0aGlzIGlzIGVhc2llciB0aGFuIGRlYWxpbmcgd2l0aCBiaXRm
aWVsZCBhY2Nlc3MgKi8KLSAgICBzZXFfbnVtID0gbnRvaGwoKnRyYWlsZXIpICYgU1JUQ1BfSU5E
RVhfTUFTSzsKKyAgICBzZXFfbnVtID0gbnRvaGwodHJhaWxlcikgJiBTUlRDUF9JTkRFWF9NQVNL
OwogICAgIGRlYnVnX3ByaW50KG1vZF9zcnRwLCAic3J0Y3AgaW5kZXg6ICV4Iiwgc2VxX251bSk7
CiAgICAgc3RhdHVzID0gc3J0cF9yZGJfY2hlY2soJnN0cmVhbS0+cnRjcF9yZGIsIHNlcV9udW0p
OwogICAgIGlmIChzdGF0dXMpIHsKQEAgLTM3NjksNyArMzc2OCw3IEBAIHN0YXRpYyBzcnRwX2Vy
cl9zdGF0dXNfdCBzcnRwX3VucHJvdGVjdF9ydGNwX2FlYWQoCiAgICAgLyoKICAgICAgKiBQcm9j
ZXNzIHRoZSBzZXF1ZW5jZSMgYXMgQUFECiAgICAgICovCi0gICAgdHNlcSA9ICp0cmFpbGVyOwor
ICAgIHRzZXEgPSB0cmFpbGVyOwogICAgIHN0YXR1cyA9IHNydHBfY2lwaGVyX3NldF9hYWQoc2Vz
c2lvbl9rZXlzLT5ydGNwX2NpcGhlciwgKHVpbnQ4X3QgKikmdHNlcSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVvZihzcnRjcF90cmFpbGVyX3QpKTsKICAgICBpZiAoc3Rh
dHVzKSB7CkBAIC0zODY3LDcgKzM4NjYsOCBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Byb3Rl
Y3RfcnRjcF9ta2koc3J0cF90IGN0eCwKICAgICBzcnRjcF9oZHJfdCAqaGRyID0gKHNydGNwX2hk
cl90ICopcnRjcF9oZHI7CiAgICAgdWludDMyX3QgKmVuY19zdGFydDsgICAgICAgICAgICAvKiBw
b2ludGVyIHRvIHN0YXJ0IG9mIGVuY3J5cHRlZCBwb3J0aW9uICAqLwogICAgIHVpbnQzMl90ICph
dXRoX3N0YXJ0OyAgICAgICAgICAgLyogcG9pbnRlciB0byBzdGFydCBvZiBhdXRoLiBwb3J0aW9u
ICAgICAgKi8KLSAgICB1aW50MzJfdCAqdHJhaWxlcjsgICAgICAgICAgICAgIC8qIHBvaW50ZXIg
dG8gc3RhcnQgb2YgdHJhaWxlciAgICAgICAgICAgICovCisgICAgdWludDMyX3QgKnRyYWlsZXJf
cDsgICAgICAgICAgICAvKiBwb2ludGVyIHRvIHN0YXJ0IG9mIHRyYWlsZXIgICAgICAgICAgICAq
LworICAgIHVpbnQzMl90IHRyYWlsZXI7ICAgICAgICAgICAgICAgLyogdHJhaWxlciB2YWx1ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgICB1bnNpZ25lZCBpbnQgZW5jX29jdGV0X2xl
biA9IDA7IC8qIG51bWJlciBvZiBvY3RldHMgaW4gZW5jcnlwdGVkIHBvcnRpb24gKi8KICAgICB1
aW50OF90ICphdXRoX3RhZyA9IE5VTEw7ICAgICAgIC8qIGxvY2F0aW9uIG9mIGF1dGhfdGFnIHdp
dGhpbiBwYWNrZXQgICAgICovCiAgICAgc3J0cF9lcnJfc3RhdHVzX3Qgc3RhdHVzOwpAQCAtMzk2
MCwxOSArMzk2MCwxNSBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Byb3RlY3RfcnRjcF9ta2ko
c3J0cF90IGN0eCwKICAgICAgKiBOT1RFOiBoZHItPmxlbmd0aCBpcyBub3QgdXNhYmxlIC0gaXQg
cmVmZXJzIHRvIG9ubHkgdGhlIGZpcnN0IFJUQ1AgcmVwb3J0CiAgICAgICogaW4gdGhlIGNvbXBv
dW5kIHBhY2tldCEKICAgICAgKi8KLSAgICAvKgotICAgICAqIE5PVEU6IHRyYWlsZXIgaXMgMzIt
Yml0IGFsaWduZWQgYmVjYXVzZSBSVENQICdwYWNrZXRzJyBhcmUgYWx3YXlzCi0gICAgICogbXVs
dGlwbGVzIG9mIDMyLWJpdHMgKFJGQyAzNTUwIDYuMSkKLSAgICAgKi8KLSAgICB0cmFpbGVyID0g
KHVpbnQzMl90ICopKChjaGFyICopZW5jX3N0YXJ0ICsgZW5jX29jdGV0X2xlbik7CisgICAgdHJh
aWxlcl9wID0gKHVpbnQzMl90ICopKChjaGFyICopZW5jX3N0YXJ0ICsgZW5jX29jdGV0X2xlbik7
CiAKICAgICBpZiAoc3RyZWFtLT5ydGNwX3NlcnZpY2VzICYgc2VjX3NlcnZfY29uZikgewotICAg
ICAgICAqdHJhaWxlciA9IGh0b25sKFNSVENQX0VfQklUKTsgLyogc2V0IGVuY3J5cHQgYml0ICov
CisgICAgICAgIHRyYWlsZXIgPSBodG9ubChTUlRDUF9FX0JJVCk7IC8qIHNldCBlbmNyeXB0IGJp
dCAqLwogICAgIH0gZWxzZSB7CiAgICAgICAgIGVuY19zdGFydCA9IE5VTEw7CiAgICAgICAgIGVu
Y19vY3RldF9sZW4gPSAwOwogICAgICAgICAvKiAwIGlzIG5ldHdvcmstb3JkZXIgaW5kZXBlbmRh
bnQgKi8KLSAgICAgICAgKnRyYWlsZXIgPSAweDAwMDAwMDAwOyAvKiBzZXQgZW5jcnlwdCBiaXQg
Ki8KKyAgICAgICAgdHJhaWxlciA9IDB4MDAwMDAwMDA7IC8qIHNldCBlbmNyeXB0IGJpdCAqLwog
ICAgIH0KIAogICAgIG1raV9zaXplID0gc3J0cF9pbmplY3RfbWtpKCh1aW50OF90ICopaGRyICsg
KnBrdF9vY3RldF9sZW4gKwpAQCAtNDAwMCw5ICszOTk2LDExIEBAIHNydHBfZXJyX3N0YXR1c190
IHNydHBfcHJvdGVjdF9ydGNwX21raShzcnRwX3QgY3R4LAogICAgIGlmIChzdGF0dXMpCiAgICAg
ICAgIHJldHVybiBzdGF0dXM7CiAgICAgc2VxX251bSA9IHNydHBfcmRiX2dldF92YWx1ZSgmc3Ry
ZWFtLT5ydGNwX3JkYik7Ci0gICAgKnRyYWlsZXIgfD0gaHRvbmwoc2VxX251bSk7CisgICAgdHJh
aWxlciB8PSBodG9ubChzZXFfbnVtKTsKICAgICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgInNydGNw
IGluZGV4OiAleCIsIHNlcV9udW0pOwogCisgICAgbWVtY3B5KHRyYWlsZXJfcCwgJnRyYWlsZXIs
IHNpemVvZih0cmFpbGVyKSk7CisKICAgICAvKgogICAgICAqIGlmIHdlJ3JlIHVzaW5nIHJpbmRh
ZWwgY291bnRlciBtb2RlLCBzZXQgbm9uY2UgYW5kIHNlcQogICAgICAqLwpAQCAtNDA2MCw3ICs0
MDU4LDkgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9wcm90ZWN0X3J0Y3BfbWtpKHNydHBfdCBj
dHgsCiAgICAgfQogCiAgICAgLyogaW5pdGlhbGl6ZSBhdXRoIGZ1bmMgY29udGV4dCAqLwotICAg
IHNydHBfYXV0aF9zdGFydChzZXNzaW9uX2tleXMtPnJ0Y3BfYXV0aCk7CisgICAgc3RhdHVzID0g
c3J0cF9hdXRoX3N0YXJ0KHNlc3Npb25fa2V5cy0+cnRjcF9hdXRoKTsKKyAgICBpZiAoc3RhdHVz
KQorICAgICAgICByZXR1cm4gc3RhdHVzOwogCiAgICAgLyoKICAgICAgKiBydW4gYXV0aCBmdW5j
IG92ZXIgcGFja2V0IChpbmNsdWRpbmcgdHJhaWxlciksIGFuZCB3cml0ZSB0aGUKQEAgLTQwOTgs
NyArNDA5OCw4IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0X3J0Y3BfbWtpKHNy
dHBfdCBjdHgsCiAgICAgc3J0Y3BfaGRyX3QgKmhkciA9IChzcnRjcF9oZHJfdCAqKXNydGNwX2hk
cjsKICAgICB1aW50MzJfdCAqZW5jX3N0YXJ0OyAgICAgICAgICAgIC8qIHBvaW50ZXIgdG8gc3Rh
cnQgb2YgZW5jcnlwdGVkIHBvcnRpb24gICovCiAgICAgdWludDMyX3QgKmF1dGhfc3RhcnQ7ICAg
ICAgICAgICAvKiBwb2ludGVyIHRvIHN0YXJ0IG9mIGF1dGguIHBvcnRpb24gICAgICAqLwotICAg
IHVpbnQzMl90ICp0cmFpbGVyOyAgICAgICAgICAgICAgLyogcG9pbnRlciB0byBzdGFydCBvZiB0
cmFpbGVyICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCAqdHJhaWxlcl9wOyAgICAgICAgICAg
IC8qIHBvaW50ZXIgdG8gc3RhcnQgb2YgdHJhaWxlciAgICAgICAgICAgICovCisgICAgdWludDMy
X3QgdHJhaWxlcjsgICAgICAgICAgICAgICAvKiB0cmFpbGVyIHZhbHVlICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLwogICAgIHVuc2lnbmVkIGludCBlbmNfb2N0ZXRfbGVuID0gMDsgLyogbnVt
YmVyIG9mIG9jdGV0cyBpbiBlbmNyeXB0ZWQgcG9ydGlvbiAqLwogICAgIHVpbnQ4X3QgKmF1dGhf
dGFnID0gTlVMTDsgICAgICAgLyogbG9jYXRpb24gb2YgYXV0aF90YWcgd2l0aGluIHBhY2tldCAg
ICAgKi8KICAgICB1aW50OF90IHRtcF90YWdbU1JUUF9NQVhfVEFHX0xFTl07CkBAIC00MjE2LDE0
ICs0MjE3LDEyIEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0X3J0Y3BfbWtpKHNy
dHBfdCBjdHgsCiAgICAgICovCiAgICAgLyogVGhpcyBzaG91bGQgcG9pbnQgdHJhaWxlciB0byB0
aGUgd29yZCBwYXN0IHRoZSBlbmQgb2YgdGhlIG5vcm1hbCBkYXRhLiAqLwogICAgIC8qIFRoaXMg
d291bGQgbmVlZCB0byBiZSBtb2RpZmllZCBmb3Igb3B0aW9uYWwgbWlrZXkgZGF0YSAqLwotICAg
IC8qCi0gICAgICogTk9URTogdHJhaWxlciBpcyAzMi1iaXQgYWxpZ25lZCBiZWNhdXNlIFJUQ1Ag
J3BhY2tldHMnIGFyZSBhbHdheXMKLSAgICAgKiAgIG11bHRpcGxlcyBvZiAzMi1iaXRzIChSRkMg
MzU1MCA2LjEpCi0gICAgICovCi0gICAgdHJhaWxlciA9ICh1aW50MzJfdCAqKSgoY2hhciAqKWhk
ciArICpwa3Rfb2N0ZXRfbGVuIC0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YWdfbGVu
ICsgbWtpX3NpemUgKyBzaXplb2Yoc3J0Y3BfdHJhaWxlcl90KSkpOworICAgIHRyYWlsZXJfcCA9
ICh1aW50MzJfdCAqKSgoY2hhciAqKWhkciArICpwa3Rfb2N0ZXRfbGVuIC0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHRhZ19sZW4gKyBta2lfc2l6ZSArIHNpemVvZihzcnRjcF90cmFp
bGVyX3QpKSk7CisgICAgbWVtY3B5KCZ0cmFpbGVyLCB0cmFpbGVyX3AsIHNpemVvZih0cmFpbGVy
KSk7CisKICAgICBlX2JpdF9pbl9wYWNrZXQgPQotICAgICAgICAoKigodW5zaWduZWQgY2hhciAq
KXRyYWlsZXIpICYgU1JUQ1BfRV9CWVRFX0JJVCkgPT0gU1JUQ1BfRV9CWVRFX0JJVDsKKyAgICAg
ICAgKCooKHVuc2lnbmVkIGNoYXIgKil0cmFpbGVyX3ApICYgU1JUQ1BfRV9CWVRFX0JJVCkgPT0g
U1JUQ1BfRV9CWVRFX0JJVDsKICAgICBpZiAoZV9iaXRfaW5fcGFja2V0ICE9IHNlY19zZXJ2X2Nv
bmZpZGVudGlhbGl0eSkgewogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2NhbnRfY2hl
Y2s7CiAgICAgfQpAQCAtNDI2Nyw3ICs0MjY2LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF91
bnByb3RlY3RfcnRjcF9ta2koc3J0cF90IGN0eCwKICAgICAgKiBjaGVjayB0aGUgc2VxdWVuY2Ug
bnVtYmVyIGZvciByZXBsYXlzCiAgICAgICovCiAgICAgLyogdGhpcyBpcyBlYXNpZXIgdGhhbiBk
ZWFsaW5nIHdpdGggYml0ZmllbGQgYWNjZXNzICovCi0gICAgc2VxX251bSA9IG50b2hsKCp0cmFp
bGVyKSAmIFNSVENQX0lOREVYX01BU0s7CisgICAgc2VxX251bSA9IG50b2hsKHRyYWlsZXIpICYg
U1JUQ1BfSU5ERVhfTUFTSzsKICAgICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgInNydGNwIGluZGV4
OiAleCIsIHNlcV9udW0pOwogICAgIHN0YXR1cyA9IHNydHBfcmRiX2NoZWNrKCZzdHJlYW0tPnJ0
Y3BfcmRiLCBzZXFfbnVtKTsKICAgICBpZiAoc3RhdHVzKQpAQCAtNDMwMyw3ICs0MzAyLDkgQEAg
c3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF91bnByb3RlY3RfcnRjcF9ta2koc3J0cF90IGN0eCwKICAg
ICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19jaXBoZXJfZmFpbDsKIAogICAgIC8qIGluaXRp
YWxpemUgYXV0aCBmdW5jIGNvbnRleHQgKi8KLSAgICBzcnRwX2F1dGhfc3RhcnQoc2Vzc2lvbl9r
ZXlzLT5ydGNwX2F1dGgpOworICAgIHN0YXR1cyA9IHNydHBfYXV0aF9zdGFydChzZXNzaW9uX2tl
eXMtPnJ0Y3BfYXV0aCk7CisgICAgaWYgKHN0YXR1cykKKyAgICAgICAgcmV0dXJuIHN0YXR1czsK
IAogICAgIC8qIHJ1biBhdXRoIGZ1bmMgb3ZlciBwYWNrZXQsIHB1dCByZXN1bHQgaW50byB0bXBf
dGFnICovCiAgICAgc3RhdHVzID0gc3J0cF9hdXRoX2NvbXB1dGUoc2Vzc2lvbl9rZXlzLT5ydGNw
X2F1dGgsICh1aW50OF90ICopYXV0aF9zdGFydCwKQEAgLTQzMTYsNyArNDMxNyw3IEBAIHNydHBf
ZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0X3J0Y3BfbWtpKHNydHBfdCBjdHgsCiAgICAgLyog
Y29tcGFyZSB0aGUgdGFnIGp1c3QgY29tcHV0ZWQgd2l0aCB0aGUgb25lIGluIHRoZSBwYWNrZXQg
Ki8KICAgICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgInNydGNwIHRhZyBmcm9tIHBhY2tldDogICAg
JXMiLAogICAgICAgICAgICAgICAgIHNydHBfb2N0ZXRfc3RyaW5nX2hleF9zdHJpbmcoYXV0aF90
YWcsIHRhZ19sZW4pKTsKLSAgICBpZiAob2N0ZXRfc3RyaW5nX2lzX2VxKHRtcF90YWcsIGF1dGhf
dGFnLCB0YWdfbGVuKSkKKyAgICBpZiAoc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEodG1wX3RhZywg
YXV0aF90YWcsIHRhZ19sZW4pKQogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2F1dGhf
ZmFpbDsKIAogICAgIC8qCkBAIC00NDM4LDcgKzQ0MzksNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBz
cnRwX2NyeXB0b19wb2xpY3lfc2V0X2Zyb21fcHJvZmlsZV9mb3JfcnRwKAogICAgIGNhc2Ugc3J0
cF9wcm9maWxlX251bGxfc2hhMV84MDoKICAgICAgICAgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9u
dWxsX2NpcGhlcl9obWFjX3NoYTFfODAocG9saWN5KTsKICAgICAgICAgYnJlYWs7Ci0jaWYgZGVm
aW5lZChPUEVOU1NMKQorI2lmZGVmIEdDTQogICAgIGNhc2Ugc3J0cF9wcm9maWxlX2FlYWRfYWVz
XzEyOF9nY206CiAgICAgICAgIHNydHBfY3J5cHRvX3BvbGljeV9zZXRfYWVzX2djbV8xMjhfMTZf
YXV0aChwb2xpY3kpOwogICAgICAgICBicmVhazsKQEAgLTQ0NzIsNyArNDQ3Myw3IEBAIHNydHBf
ZXJyX3N0YXR1c190IHNydHBfY3J5cHRvX3BvbGljeV9zZXRfZnJvbV9wcm9maWxlX2Zvcl9ydGNw
KAogICAgIGNhc2Ugc3J0cF9wcm9maWxlX251bGxfc2hhMV84MDoKICAgICAgICAgc3J0cF9jcnlw
dG9fcG9saWN5X3NldF9udWxsX2NpcGhlcl9obWFjX3NoYTFfODAocG9saWN5KTsKICAgICAgICAg
YnJlYWs7Ci0jaWYgZGVmaW5lZChPUEVOU1NMKQorI2lmZGVmIEdDTQogICAgIGNhc2Ugc3J0cF9w
cm9maWxlX2FlYWRfYWVzXzEyOF9nY206CiAgICAgICAgIHNydHBfY3J5cHRvX3BvbGljeV9zZXRf
YWVzX2djbV8xMjhfMTZfYXV0aChwb2xpY3kpOwogICAgICAgICBicmVhazsKQEAgLTQ1NTMsMTAg
KzQ1NTQsMTAgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3RyZWFtX2dldF9wcm90ZWN0X3RyYWlsZXJf
bGVuZ3RoKHNydHBfc3RyZWFtX2N0eF90ICpzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWtpX2luZGV4LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICps
ZW5ndGgpCiB7Ci0gICAgKmxlbmd0aCA9IDA7Ci0KICAgICBzcnRwX3Nlc3Npb25fa2V5c190ICpz
ZXNzaW9uX2tleTsKIAorICAgICpsZW5ndGggPSAwOworCiAgICAgaWYgKHVzZV9ta2kpIHsKICAg
ICAgICAgaWYgKG1raV9pbmRleCA+PSBzdHJlYW0tPm51bV9tYXN0ZXJfa2V5cykgewogICAgICAg
ICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19iYWRfbWtpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3QvZ2V0
b3B0X3MuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkv
bGlic3J0cC90ZXN0L2dldG9wdF9zLmMKaW5kZXggYWI2MzE4NzhhNDA1MGExNTY3MjMwYzYwZTA4
NmFjYzlhOTkxNTY3OC4uZTBiZDdmNzdlZDczYmZkMjg0NDlkMDJlZTUzNWM2YTk3NzBjNmZlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9saWJzcnRwL3Rlc3QvZ2V0b3B0X3MuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9nZXRvcHRfcy5jCkBAIC01OCw4ICs1
OCw5IEBAIHN0YXRpYyBpbnQgZ2V0b3B0X2NoZWNrX2NoYXJhY3RlcihjaGFyIGMsIGNvbnN0IGNo
YXIgKnN0cmluZykKIAogICAgIHdoaWxlICgqc3RyaW5nICE9IDApIHsKICAgICAgICAgaWYgKG1h
eF9zdHJpbmdfbGVuID09IDApIHsKLSAgICAgICAgICAgIHJldHVybiAnPyc7CisgICAgICAgICAg
ICByZXR1cm4gR0VUT1BUX05PVF9GT1VORDsKICAgICAgICAgfQorICAgICAgICBtYXhfc3RyaW5n
X2xlbi0tOwogICAgICAgICBpZiAoKnN0cmluZysrID09IGMpIHsKICAgICAgICAgICAgIGlmICgq
c3RyaW5nID09ICc6JykgewogICAgICAgICAgICAgICAgIHJldHVybiBHRVRPUFRfRk9VTkRfV0lU
SF9BUkdVTUVOVDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3JkYnhfZHJpdmVyLmMgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9yZGJ4X2RyaXZl
ci5jCmluZGV4IDYwOWNlOWM4ZTQ4YTI3NWNjMTk5YjNhMWU4ZGFiNGI4OTBhOWFiN2QuLmRmNDM0
YTAyMjQ1Y2Y3MWYwMGQ2MDczY2E2MTYzZmUxNmEwMTU5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3JkYnhf
ZHJpdmVyLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9saWJzcnRwL3Rlc3QvcmRieF9kcml2ZXIuYwpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1
ZGUgImdldG9wdF9zLmgiIC8qIGZvciBsb2NhbCBnZXRvcHQoKSAgICAqLwogCiAjaW5jbHVkZSAi
cmRieC5oIgorI2luY2x1ZGUgImNpcGhlcl9wcml2LmgiCiAKICNpZmRlZiBST0NfVEVTVAogI2Vy
cm9yICJzcnRwX3JkYnhfdCB3b24ndCB3b3JrIHdpdGggUk9DX1RFU1QgLSBiaXRtYXNrIHNhbWUg
c2l6ZSBhcyBzZXFfbWVkaWFuIgpAQCAtMzA1LDcgKzMwNiw3IEBAIHNydHBfZXJyX3N0YXR1c190
IHRlc3RfcmVwbGF5X2RieChpbnQgbnVtX3RyaWFscywgdW5zaWduZWQgbG9uZyB3cykKICAgICAg
Ki8KICAgICBwcmludGYoIlx0dGVzdGluZyBpbnNlcnRpb24gd2l0aCBsYXJnZSBnYXBzLi4uIik7
CiAgICAgZm9yIChpZHggPSAwLCBpcmN2ZCA9IDA7IChpbnQpaWR4IDwgbnVtX3RyaWFsczsKLSAg
ICAgICAgIGlkeCsrLCBpcmN2ZCArPSAoMSA8PCAocmFuZCgpICUgMTIpKSkgeworICAgICAgICAg
aWR4KyssIGlyY3ZkICs9ICgxIDw8IChzcnRwX2NpcGhlcl9yYW5kX3UzMl9mb3JfdGVzdHMoKSAl
IDEyKSkpIHsKICAgICAgICAgc3RhdHVzID0gcmRieF9jaGVja19hZGQoJnJkYngsIGlyY3ZkKTsK
ICAgICAgICAgaWYgKHN0YXR1cykKICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CkBAIC0zMjAs
OCArMzIxLDcgQEAgc3J0cF9lcnJfc3RhdHVzX3QgdGVzdF9yZXBsYXlfZGJ4KGludCBudW1fdHJp
YWxzLCB1bnNpZ25lZCBsb25nIHdzKQogICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfb2s7CiB9
CiAKLSNpbmNsdWRlIDx0aW1lLmg+ICAgLyogZm9yIGNsb2NrKCkgICovCi0jaW5jbHVkZSA8c3Rk
bGliLmg+IC8qIGZvciByYW5kb20oKSAqLworI2luY2x1ZGUgPHRpbWUuaD4gLyogZm9yIGNsb2Nr
KCkgICovCiAKIGRvdWJsZSByZGJ4X2NoZWNrX2FkZHNfcGVyX3NlY29uZChpbnQgbnVtX3RyaWFs
cywgdW5zaWduZWQgbG9uZyB3cykKIHsKQEAgLTM0OCw2ICszNDgsOSBAQCBkb3VibGUgcmRieF9j
aGVja19hZGRzX3Blcl9zZWNvbmQoaW50IG51bV90cmlhbHMsIHVuc2lnbmVkIGxvbmcgd3MpCiAg
ICAgICAgICAgICArK2ZhaWx1cmVzOwogICAgIH0KICAgICB0aW1lciA9IGNsb2NrKCkgLSB0aW1l
cjsKKyAgICBpZiAodGltZXIgPCAxKSB7CisgICAgICAgIHRpbWVyID0gMTsKKyAgICB9CiAKICAg
ICBwcmludGYoIm51bWJlciBvZiBmYWlsdXJlczogJWQgXG4iLCBmYWlsdXJlcyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGli
c3J0cC90ZXN0L3JlcGxheV9kcml2ZXIuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3JlcGxheV9kcml2ZXIuYwppbmRleCBhODgy
MjQ2ODRmNmE0MTFjZTE1YWViNTMwYjMzYTBjOGM1OGU1NWEzLi5lMDgwOGI2ODVhNzkxOGZhMzY3
YzQwMjA4OTA4NDhjOTZkOGI1YzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9yZXBsYXlfZHJpdmVyLmMKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRw
L3Rlc3QvcmVwbGF5X2RyaXZlci5jCkBAIC01Miw2ICs1Miw4IEBACiAjaW5jbHVkZSAicmRiLmgi
CiAjaW5jbHVkZSAidXRfc2ltLmgiCiAKKyNpbmNsdWRlICJjaXBoZXJfcHJpdi5oIgorCiAvKgog
ICogbnVtX3RyaWFscyBkZWZpbmVzIHRoZSBudW1iZXIgb2YgdHJpYWxzIHRoYXQgYXJlIHVzZWQg
aW4gdGhlCiAgKiB2YWxpZGF0aW9uIGZ1bmN0aW9ucyBiZWxvdwpAQCAtMTg5LDcgKzE5MSw3IEBA
IHNydHBfZXJyX3N0YXR1c190IHRlc3RfcmRiX2RiKCkKIAogICAgIC8qIHRlc3QgaW5zZXJ0aW9u
IHdpdGggbGFyZ2UgZ2FwcyAqLwogICAgIGZvciAoaWR4ID0gMCwgaXJjdmQgPSAwOyBpZHggPCBu
dW1fdHJpYWxzOwotICAgICAgICAgaWR4KyssIGlyY3ZkICs9ICgxIDw8IChyYW5kKCkgJSAxMCkp
KSB7CisgICAgICAgICBpZHgrKywgaXJjdmQgKz0gKDEgPDwgKHNydHBfY2lwaGVyX3JhbmRfdTMy
X2Zvcl90ZXN0cygpICUgMTApKSkgewogICAgICAgICBlcnIgPSByZGJfY2hlY2tfYWRkKCZyZGIs
IGlyY3ZkKTsKICAgICAgICAgaWYgKGVycikKICAgICAgICAgICAgIHJldHVybiBlcnI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xp
YnNydHAvdGVzdC9yb2NfZHJpdmVyLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9yb2NfZHJpdmVyLmMKaW5kZXggZDYxYmE4ZWYy
NGVhMjJmNjZiYjk4Mzc3M2FhNjY2MmY0N2Y0ZmIzNy4uNDM5ODYyMDM5YTQ2MmY2M2M2ZTAyMTMz
ZmEyYmRkOTM1NTUwYjc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3Qvcm9jX2RyaXZlci5jCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3Jv
Y19kcml2ZXIuYwpAQCAtOTcsNyArOTcsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCByb2NfdGVzdChp
bnQgbnVtX3RyaWFscykKIAogICAgIHByaW50ZigiXG5cdHRlc3Rpbmcgc2VxdWVudGlhbCBpbnNl
cnRpb24uLi4iKTsKICAgICBmb3IgKGkgPSAwOyBpIDwgMjA0ODsgaSsrKSB7Ci0gICAgICAgIGRl
bHRhID0gc3J0cF9pbmRleF9ndWVzcygmbG9jYWwsICZlc3QsICh1aW50MTZfdClyZWYpOworICAg
ICAgICBzcnRwX2luZGV4X2d1ZXNzKCZsb2NhbCwgJmVzdCwgKHVpbnQxNl90KXJlZik7CiAjaWYg
Uk9DX1ZFUkJPU0UKICAgICAgICAgcHJpbnRmKCIlbGxkLCAlbGxkLCAlZFxuIiwgcmVmLCBlc3Qs
IGkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9ydHAuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3J0cC5jCmluZGV4IGY2MGE5
YjExYjI4ODUwZTYwMjU4MDBkYzk1ODNjYWFhNDEwODY0OGMuLjcwMjQ4ZWUyYjVhMWNjMTdhOWZk
ZTc4ZGQ4OTA0ZWRmMzk0NTljYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3J0cC5jCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3J0cC5j
CkBAIC01Myw2ICs1Myw4IEBACiAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgogI2VuZGlmCiAKKyNp
bmNsdWRlICJjaXBoZXJfcHJpdi5oIgorCiAjZGVmaW5lIFBSSU5UX0RFQlVHIDAgICAvKiBzZXQg
dG8gMSB0byBwcmludCBvdXQgZGVidWdnaW5nIGRhdGEgKi8KICNkZWZpbmUgVkVSQk9TRV9ERUJV
RyAwIC8qIHNldCB0byAxIHRvIHByaW50IG91dCBtb3JlIGRhdGEgICAgICAqLwogCkBAIC0xNDgs
NyArMTUwLDcgQEAgaW50IHJ0cF9zZW5kZXJfaW5pdChydHBfc2VuZGVyX3Qgc2VuZGVyLAogICAg
IC8qIHNldCBoZWFkZXIgdmFsdWVzICovCiAgICAgc2VuZGVyLT5tZXNzYWdlLmhlYWRlci5zc3Jj
ID0gaHRvbmwoc3NyYyk7CiAgICAgc2VuZGVyLT5tZXNzYWdlLmhlYWRlci50cyA9IDA7Ci0gICAg
c2VuZGVyLT5tZXNzYWdlLmhlYWRlci5zZXEgPSAodWludDE2X3QpcmFuZCgpOworICAgIHNlbmRl
ci0+bWVzc2FnZS5oZWFkZXIuc2VxID0gKHVpbnQxNl90KXNydHBfY2lwaGVyX3JhbmRfdTMyX2Zv
cl90ZXN0cygpOwogICAgIHNlbmRlci0+bWVzc2FnZS5oZWFkZXIubSA9IDA7CiAgICAgc2VuZGVy
LT5tZXNzYWdlLmhlYWRlci5wdCA9IDB4MTsKICAgICBzZW5kZXItPm1lc3NhZ2UuaGVhZGVyLnZl
cnNpb24gPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3QvcnRwdy5jIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3QvcnRwdy5jCmluZGV4IDZlNzQx
NmM3ZjUyNGQ4NmU2ODlhNGZjODBmMjEwZDg2YzhlMjM3Y2UuLjBkMzdlN2JkZDU5MzljNDJjYmVj
ZWJmZjI5NjJkZTJmZWE4Nzk4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3J0cHcuYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9ydHB3
LmMKQEAgLTk2LDcgKzk2LDcgQEAKIAogI2lmbmRlZiBIQVZFX1VTTEVFUAogI2lmZGVmIEhBVkVf
V0lORE9XU19ICi0jZGVmaW5lIHVzbGVlcCh1cykgU2xlZXAoKHVzKSAvIDEwMDApCisjZGVmaW5l
IHVzbGVlcCh1cykgU2xlZXAoKChEV09SRCl1cykgLyAxMDAwKQogI2Vsc2UKICNkZWZpbmUgdXNs
ZWVwKHVzKSBzbGVlcCgodXMpIC8gMTAwMDAwMCkKICNlbmRpZgpAQCAtMzE3LDYgKzMxNyw3IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgIGV4aXQoMSk7CiAgICAg
fQogCisgICAgbWVtc2V0KCZuYW1lLCAwLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSk7CiAg
ICAgbmFtZS5zaW5fYWRkciA9IHJjdnJfYWRkcjsKICAgICBuYW1lLnNpbl9mYW1pbHkgPSBQRl9J
TkVUOwogICAgIG5hbWUuc2luX3BvcnQgPSBodG9ucyhwb3J0KTsKQEAgLTM2NCw3ICszNjUsNyBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICBzd2l0Y2ggKHNlY19z
ZXJ2cykgewogICAgICAgICBjYXNlIHNlY19zZXJ2X2NvbmZfYW5kX2F1dGg6CiAgICAgICAgICAg
ICBpZiAoZ2NtX29uKSB7Ci0jaWZkZWYgT1BFTlNTTAorI2lmZGVmIEdDTQogICAgICAgICAgICAg
ICAgIHN3aXRjaCAoa2V5X3NpemUpIHsKICAgICAgICAgICAgICAgICBjYXNlIDEyODoKICAgICAg
ICAgICAgICAgICAgICAgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9hZXNfZ2NtXzEyOF84X2F1dGgo
JnBvbGljeS5ydHApOwpAQCAtMzc3LDcgKzM3OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
ICphcmd2W10pCiAgICAgICAgICAgICAgICAgfQogI2Vsc2UKICAgICAgICAgICAgICAgICBwcmlu
dGYoImVycm9yOiBHQ00gbW9kZSBvbmx5IHN1cHBvcnRlZCB3aGVuIHVzaW5nIHRoZSBPcGVuU1NM
ICIKLSAgICAgICAgICAgICAgICAgICAgICAgImNyeXB0byBlbmdpbmUuXG4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIm9yIE5TUyBjcnlwdG8gZW5naW5lLlxuIik7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIDA7CiAjZW5kaWYKICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC00MTMsNyArNDE0
LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIHNlY19zZXJ2X2F1dGg6CiAgICAgICAgICAgICBpZiAoZ2NtX29uKSB7
Ci0jaWZkZWYgT1BFTlNTTAorI2lmZGVmIEdDTQogICAgICAgICAgICAgICAgIHN3aXRjaCAoa2V5
X3NpemUpIHsKICAgICAgICAgICAgICAgICBjYXNlIDEyODoKICAgICAgICAgICAgICAgICAgICAg
c3J0cF9jcnlwdG9fcG9saWN5X3NldF9hZXNfZ2NtXzEyOF84X29ubHlfYXV0aCgmcG9saWN5LnJ0
cCk7CkBAIC02NzAsNyArNjcxLDcgQEAgdm9pZCBoYW5kbGVfc2lnbmFsKGludCBzaWdudW0pCiAK
IGludCBzZXR1cF9zaWduYWxfaGFuZGxlcihjaGFyICpuYW1lKQogewotI2lmIEhBVkVfU0lHQUNU
SU9OCisjaWZkZWYgSEFWRV9TSUdBQ1RJT04KICAgICBzdHJ1Y3Qgc2lnYWN0aW9uIGFjdDsKICAg
ICBtZW1zZXQoJmFjdCwgMCwgc2l6ZW9mKGFjdCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9ydHB3X3Rl
c3Quc2ggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xp
YnNydHAvdGVzdC9ydHB3X3Rlc3Quc2gKaW5kZXggMjM4ZWM5M2M1ZDQ1ZTI2ZjY5MTEwN2ZjNDQ3
MWRiMWVjMTYzYWI0MC4uOGZjYjM1ZjM2M2ZkMmYxNzJhZjAyMjUzNDYwMzU5YTNhMTk1N2NmZCAx
MDA3NTUKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9saWJzcnRwL3Rlc3QvcnRwd190ZXN0LnNoCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3J0cHdfdGVzdC5zaApAQCAtNDEs
MTIgKzQxLDI0IEBAIGNhc2UgJCh1bmFtZSAtcykgaW4KICAgICAqQ1lHV0lOKnwqTUlOR1cqKQog
ICAgICAgICBFWEU9Ii5leGUiCiAgICAgICAgIDs7Ci0gICAgKikKKyAgICAqTGludXgqKQogICAg
ICAgICBFWEU9IiIKKyAgICAgICAgaWYgWyAtbiAiJENSWVBUT19MSUJESVIiIF0KKyAgICAgICAg
dGhlbgorICAgICAgICAgICAgZXhwb3J0IExEX0xJQlJBUllfUEFUSD0iJENSWVBUT19MSUJESVIi
CisgICAgICAgIGZpCisgICAgICAgIDs7CisgICAgKkRhcndpbiopCisgICAgICAgIEVYRT0iIgor
ICAgICAgICBpZiBbIC1uICIkQ1JZUFRPX0xJQkRJUiIgXQorICAgICAgICB0aGVuCisgICAgICAg
ICAgICBleHBvcnQgRFlMRF9MSUJSQVJZX1BBVEg9IiRDUllQVE9fTElCRElSIgorICAgICAgICBm
aQogICAgICAgICA7OwogZXNhYwogCiBSVFBXPS4vcnRwdyRFWEUKK1sgLW4gIiRNRVNPTl9FWEVf
V1JBUFBFUiIgXSAmJiBSVFBXPSIkTUVTT05fRVhFX1dSQVBQRVIgJFJUUFciCiBERVNUX1BPUlQ9
OTk5OQogRFVSQVRJT049MwogCkBAIC02Miw3ICs3NCw3IEBAIEFSR1M9Ii1iICRrZXkgLWEgLWUg
MTI4IgogCiBraWxsYWxsIHJ0cHcgMj4vZGV2L251bGwKIAotaWYgdGVzdCAteCAkUlRQVzsgdGhl
bgoraWYgdGVzdCAtbiAkTUVTT05fRVhFX1dSQVBQRVIgfHwgdGVzdCAteCAkUlRQVzsgdGhlbgog
CiBlY2hvICAkMCAiOiBzdGFydGluZyBydHB3IHJlY2VpdmVyIHByb2Nlc3MuLi4gIgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xp
YnNydHAvdGVzdC9ydHB3X3Rlc3RfZ2NtLnNoIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3QvcnRwd190ZXN0X2djbS5zaAppbmRleCA3
NzM0MDA1NjJjZDVkYTUxNmM0ZmVhNjQ2NzdlNjhiNzNjMDE3YTlhLi4xNzIyZjQ0ZWE3M2YxYjdl
NmQyNjQ0N2U1NjNiNDc3MzdkMTkwZWRjIDEwMDc1NQotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9ydHB3X3Rlc3RfZ2NtLnNo
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGli
c3J0cC90ZXN0L3J0cHdfdGVzdF9nY20uc2gKQEAgLTQxLDEyICs0MSwyNCBAQCBjYXNlICQodW5h
bWUgLXMpIGluCiAgICAgKkNZR1dJTip8Kk1JTkdXKikKICAgICAgICAgRVhFPSIuZXhlIgogICAg
ICAgICA7OwotICAgICopCisgICAgKkxpbnV4KikKICAgICAgICAgRVhFPSIiCisgICAgICAgIGlm
IFsgLW4gIiRDUllQVE9fTElCRElSIiBdCisgICAgICAgIHRoZW4KKyAgICAgICAgICAgIGV4cG9y
dCBMRF9MSUJSQVJZX1BBVEg9IiRDUllQVE9fTElCRElSIgorICAgICAgICBmaQorICAgICAgICA7
OworICAgICpEYXJ3aW4qKQorICAgICAgICBFWEU9IiIKKyAgICAgICAgaWYgWyAtbiAiJENSWVBU
T19MSUJESVIiIF0KKyAgICAgICAgdGhlbgorICAgICAgICAgICAgZXhwb3J0IERZTERfTElCUkFS
WV9QQVRIPSIkQ1JZUFRPX0xJQkRJUiIKKyAgICAgICAgZmkKICAgICAgICAgOzsKIGVzYWMKIAog
UlRQVz0uL3J0cHckRVhFCitbIC1uICIkTUVTT05fRVhFX1dSQVBQRVIiIF0gJiYgUlRQVz0iJE1F
U09OX0VYRV9XUkFQUEVSICRSVFBXIgogREVTVF9QT1JUPTk5OTkKIERVUkFUSU9OPTMKIApAQCAt
NTgsNyArNzAsNyBAQCBEVVJBVElPTj0zCiAKIGtpbGxhbGwgcnRwdyAyPi9kZXYvbnVsbAogCi1p
ZiB0ZXN0IC14ICRSVFBXOyB0aGVuCitpZiB0ZXN0IC1uICRNRVNPTl9FWEVfV1JBUFBFUiB8fCB0
ZXN0IC14ICRSVFBXOyB0aGVuCiAKIEdDTUFSR1MxMjg9Ii1rIDAxMjM0NTY3ODkwMTIzNDU2Nzg5
MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1IC1nIC1lIDEyOCIKIGVjaG8gICQw
ICI6IHN0YXJ0aW5nIEdDTSBtb2RlIDEyOC1iaXQgcnRwdyByZWNlaXZlciBwcm9jZXNzLi4uICIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvbGlic3J0cC90ZXN0L3NydHBfZHJpdmVyLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9zcnRwX2RyaXZlci5jCmluZGV4IDRl
YThmZTUzMDJjMWJlMzQ5MjlmOWIwZDlmMjc3MTBiYjEzY2NiY2UuLjEzMzU1NDA2MDllOWQyY2Q2
ZWIyNmQ3ZDA3ZjExMDM1OTUzOWMwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3NydHBfZHJpdmVyLmMKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRw
L3Rlc3Qvc3J0cF9kcml2ZXIuYwpAQCAtNjEsMTMgKzYxLDEzIEBACiAKIHNydHBfZXJyX3N0YXR1
c190IHNydHBfdmFsaWRhdGUodm9pZCk7CiAKLSNpZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NNCiBz
cnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRlX2djbSh2b2lkKTsKICNlbmRpZgogCiBzcnRw
X2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRlX2VuY3J5cHRlZF9leHRlbnNpb25zX2hlYWRlcnMo
dm9pZCk7CiAKLSNpZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NNCiBzcnRwX2Vycl9zdGF0dXNfdCBz
cnRwX3ZhbGlkYXRlX2VuY3J5cHRlZF9leHRlbnNpb25zX2hlYWRlcnNfZ2NtKHZvaWQpOwogI2Vu
ZGlmCiAKQEAgLTc5LDcgKzc5LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9kZWFsbG9jX2Jp
Z19wb2xpY3koc3J0cF9wb2xpY3lfdCAqbGlzdCk7CiAKIHNydHBfZXJyX3N0YXR1c190IHNydHBf
dGVzdF9lbXB0eV9wYXlsb2FkKHZvaWQpOwogCi0jaWZkZWYgT1BFTlNTTAorI2lmZGVmIEdDTQog
c3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF90ZXN0X2VtcHR5X3BheWxvYWRfZ2NtKHZvaWQpOwogI2Vu
ZGlmCiAKQEAgLTQyMiw3ICs0MjIsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd
KQogICAgICAgICAgICAgZXhpdCgxKTsKICAgICAgICAgfQogCi0jaWZkZWYgT1BFTlNTTAorI2lm
ZGVmIEdDTQogICAgICAgICBwcmludGYoInRlc3Rpbmcgc3J0cF9wcm90ZWN0IGFuZCBzcnRwX3Vu
cHJvdGVjdCBhZ2FpbnN0ICIKICAgICAgICAgICAgICAgICJyZWZlcmVuY2UgcGFja2V0IHVzaW5n
IEdDTVxuIik7CiAgICAgICAgIGlmIChzcnRwX3ZhbGlkYXRlX2djbSgpID09IHNydHBfZXJyX3N0
YXR1c19vaykgewpAQCAtNDQyLDcgKzQ0Miw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICph
cmd2W10pCiAgICAgICAgICAgICBleGl0KDEpOwogICAgICAgICB9CiAKLSNpZmRlZiBPUEVOU1NM
CisjaWZkZWYgR0NNCiAgICAgICAgIHByaW50ZigidGVzdGluZyBzcnRwX3Byb3RlY3QgYW5kIHNy
dHBfdW5wcm90ZWN0IGFnYWluc3QgIgogICAgICAgICAgICAgICAgInJlZmVyZW5jZSBwYWNrZXQg
d2l0aCBlbmNyeXB0ZWQgZXh0ZW5zaW9uIGhlYWRlcnMgKEdDTSlcbiIpOwogICAgICAgICBpZiAo
c3J0cF92YWxpZGF0ZV9lbmNyeXB0ZWRfZXh0ZW5zaW9uc19oZWFkZXJzX2djbSgpID09CkBAIC00
NzgsNyArNDc4LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAg
ICAgIHByaW50ZigiZmFpbGVkXG4iKTsKICAgICAgICAgICAgIGV4aXQoMSk7CiAgICAgICAgIH0K
LSNpZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NNCiAgICAgICAgIHByaW50ZigidGVzdGluZyBzcnRw
X3Byb3RlY3QgYW5kIHNydHBfdW5wcm90ZWN0IGFnYWluc3QgIgogICAgICAgICAgICAgICAgInBh
Y2tldCB3aXRoIGVtcHR5IHBheWxvYWQgKEdDTSlcbiIpOwogICAgICAgICBpZiAoc3J0cF90ZXN0
X2VtcHR5X3BheWxvYWRfZ2NtKCkgPT0gc3J0cF9lcnJfc3RhdHVzX29rKSB7CkBAIC0xMzQxLDYg
KzEzNDEsOCBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRjcF90ZXN0KGNvbnN0IHNydHBfcG9saWN5
X3QgKnBvbGljeSwgaW50IG1raV9pbmRleCkKICAgICAgKi8KICAgICByY3ZyX3BvbGljeSA9IChz
cnRwX3BvbGljeV90ICopbWFsbG9jKHNpemVvZihzcnRwX3BvbGljeV90KSk7CiAgICAgaWYgKHJj
dnJfcG9saWN5ID09IE5VTEwpIHsKKyAgICAgICAgZnJlZShoZHIpOworICAgICAgICBmcmVlKGhk
cjIpOwogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2FsbG9jX2ZhaWw7CiAgICAgfQog
ICAgIG1lbWNweShyY3ZyX3BvbGljeSwgcG9saWN5LCBzaXplb2Yoc3J0cF9wb2xpY3lfdCkpOwpA
QCAtMTYwNiw2ICsxNjA4LDkgQEAgZG91YmxlIG1pcHNfZXN0aW1hdGUoaW50IG51bV90cmlhbHMs
IGludCAqaWdub3JlKQogICAgICAgICBzdW0gKz0gaTsKICAgICB9CiAgICAgdCA9IGNsb2NrKCkg
LSB0OworICAgIGlmICh0IDwgMSkgeworICAgICAgICB0ID0gMTsKKyAgICB9CiAKICAgICAvKiAg
IHByaW50ZigiJWRcbiIsIHN1bSk7ICovCiAgICAgKmlnbm9yZSA9IHN1bTsKQEAgLTE3MDIsNyAr
MTcwNyw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdmFsaWRhdGUoKQogICAgIGRlYnVnX3By
aW50KG1vZF9kcml2ZXIsICJjaXBoZXJ0ZXh0IHJlZmVyZW5jZTpcbiAgJXMiLAogICAgICAgICAg
ICAgICAgIG9jdGV0X3N0cmluZ19oZXhfc3RyaW5nKHNydHBfY2lwaGVydGV4dCwgbGVuKSk7CiAK
LSAgICBpZiAob2N0ZXRfc3RyaW5nX2lzX2VxKHNydHBfcGxhaW50ZXh0LCBzcnRwX2NpcGhlcnRl
eHQsIGxlbikpIHsKKyAgICBpZiAoc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEoc3J0cF9wbGFpbnRl
eHQsIHNydHBfY2lwaGVydGV4dCwgbGVuKSkgewogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3Rh
dHVzX2ZhaWw7CiAgICAgfQogCkBAIC0xNzIwLDcgKzE3MjUsNyBAQCBzcnRwX2Vycl9zdGF0dXNf
dCBzcnRwX3ZhbGlkYXRlKCkKICAgICBkZWJ1Z19wcmludChtb2RfZHJpdmVyLCAic3J0Y3AgY2lw
aGVydGV4dCByZWZlcmVuY2U6XG4gICVzIiwKICAgICAgICAgICAgICAgICBvY3RldF9zdHJpbmdf
aGV4X3N0cmluZyhzcnRjcF9jaXBoZXJ0ZXh0LCBsZW4pKTsKIAotICAgIGlmIChvY3RldF9zdHJp
bmdfaXNfZXEocnRjcF9wbGFpbnRleHQsIHNydGNwX2NpcGhlcnRleHQsIGxlbikpIHsKKyAgICBp
ZiAoc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEocnRjcF9wbGFpbnRleHQsIHNydGNwX2NpcGhlcnRl
eHQsIGxlbikpIHsKICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19mYWlsOwogICAgIH0K
IApAQCAtMTc0Miw3ICsxNzQ3LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92YWxpZGF0ZSgp
CiAgICAgICAgIHJldHVybiBzdGF0dXM7CiAgICAgfQogCi0gICAgaWYgKG9jdGV0X3N0cmluZ19p
c19lcShzcnRwX2NpcGhlcnRleHQsIHNydHBfcGxhaW50ZXh0X3JlZiwgbGVuKSkgeworICAgIGlm
IChzcnRwX29jdGV0X3N0cmluZ19pc19lcShzcnRwX2NpcGhlcnRleHQsIHNydHBfcGxhaW50ZXh0
X3JlZiwgbGVuKSkgewogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7CiAgICAg
fQogCkBAIC0xNzU1LDcgKzE3NjAsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRl
KCkKICAgICAgICAgcmV0dXJuIHN0YXR1czsKICAgICB9CiAKLSAgICBpZiAob2N0ZXRfc3RyaW5n
X2lzX2VxKHNydGNwX2NpcGhlcnRleHQsIHJ0Y3BfcGxhaW50ZXh0X3JlZiwgbGVuKSkgeworICAg
IGlmIChzcnRwX29jdGV0X3N0cmluZ19pc19lcShzcnRjcF9jaXBoZXJ0ZXh0LCBydGNwX3BsYWlu
dGV4dF9yZWYsIGxlbikpIHsKICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19mYWlsOwog
ICAgIH0KIApAQCAtMTc3Miw3ICsxNzc3LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92YWxp
ZGF0ZSgpCiAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19vazsKIH0KIAotI2lmZGVmIE9QRU5T
U0wKKyNpZmRlZiBHQ00KIC8qCiAgKiBzcnRwX3ZhbGlkYXRlX2djbSgpIHZlcmlmaWVzIHRoZSBj
b3JyZWN0bmVzcyBvZiBsaWJzcnRwIGJ5IGNvbXBhcmluZwogICogYW4gY29tcHV0ZWQgcGFja2V0
IGFnYWluc3QgdGhlIGtub3duIGNpcGhlcnRleHQgZm9yIHRoZSBwbGFpbnRleHQuCkBAIC0xODcw
LDcgKzE4NzUsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRlX2djbSgpCiAgICAg
ZGVidWdfcHJpbnQobW9kX2RyaXZlciwgInNydHAgY2lwaGVydGV4dCByZWZlcmVuY2U6XG4gICVz
IiwKICAgICAgICAgICAgICAgICBvY3RldF9zdHJpbmdfaGV4X3N0cmluZyhzcnRwX2NpcGhlcnRl
eHQsIGxlbikpOwogCi0gICAgaWYgKG9jdGV0X3N0cmluZ19pc19lcShydHBfcGxhaW50ZXh0LCBz
cnRwX2NpcGhlcnRleHQsIGxlbikpIHsKKyAgICBpZiAoc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEo
cnRwX3BsYWludGV4dCwgc3J0cF9jaXBoZXJ0ZXh0LCBsZW4pKSB7CiAgICAgICAgIHJldHVybiBz
cnRwX2Vycl9zdGF0dXNfZmFpbDsKICAgICB9CiAKQEAgLTE4ODgsNyArMTg5Myw3IEBAIHNydHBf
ZXJyX3N0YXR1c190IHNydHBfdmFsaWRhdGVfZ2NtKCkKICAgICBkZWJ1Z19wcmludChtb2RfZHJp
dmVyLCAic3J0Y3AgY2lwaGVydGV4dCByZWZlcmVuY2U6XG4gICVzIiwKICAgICAgICAgICAgICAg
ICBvY3RldF9zdHJpbmdfaGV4X3N0cmluZyhzcnRjcF9jaXBoZXJ0ZXh0LCBsZW4pKTsKIAotICAg
IGlmIChvY3RldF9zdHJpbmdfaXNfZXEocnRjcF9wbGFpbnRleHQsIHNydGNwX2NpcGhlcnRleHQs
IGxlbikpIHsKKyAgICBpZiAoc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEocnRjcF9wbGFpbnRleHQs
IHNydGNwX2NpcGhlcnRleHQsIGxlbikpIHsKICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1
c19mYWlsOwogICAgIH0KIApAQCAtMTkxMSw3ICsxOTE2LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qg
c3J0cF92YWxpZGF0ZV9nY20oKQogICAgICAgICByZXR1cm4gc3RhdHVzOwogICAgIH0KIAotICAg
IGlmIChvY3RldF9zdHJpbmdfaXNfZXEoc3J0cF9jaXBoZXJ0ZXh0LCBydHBfcGxhaW50ZXh0X3Jl
ZiwgbGVuKSkgeworICAgIGlmIChzcnRwX29jdGV0X3N0cmluZ19pc19lcShzcnRwX2NpcGhlcnRl
eHQsIHJ0cF9wbGFpbnRleHRfcmVmLCBsZW4pKSB7CiAgICAgICAgIHJldHVybiBzcnRwX2Vycl9z
dGF0dXNfZmFpbDsKICAgICB9CiAKQEAgLTE5MjQsNyArMTkyOSw3IEBAIHNydHBfZXJyX3N0YXR1
c190IHNydHBfdmFsaWRhdGVfZ2NtKCkKICAgICAgICAgcmV0dXJuIHN0YXR1czsKICAgICB9CiAK
LSAgICBpZiAob2N0ZXRfc3RyaW5nX2lzX2VxKHNydGNwX2NpcGhlcnRleHQsIHJ0Y3BfcGxhaW50
ZXh0X3JlZiwgbGVuKSkgeworICAgIGlmIChzcnRwX29jdGV0X3N0cmluZ19pc19lcShzcnRjcF9j
aXBoZXJ0ZXh0LCBydGNwX3BsYWludGV4dF9yZWYsIGxlbikpIHsKICAgICAgICAgcmV0dXJuIHNy
dHBfZXJyX3N0YXR1c19mYWlsOwogICAgIH0KIApAQCAtMjAyNyw3ICsyMDMyLDcgQEAgc3J0cF9l
cnJfc3RhdHVzX3Qgc3J0cF92YWxpZGF0ZV9lbmNyeXB0ZWRfZXh0ZW5zaW9uc19oZWFkZXJzKCkK
ICAgICBkZWJ1Z19wcmludChtb2RfZHJpdmVyLCAiY2lwaGVydGV4dCByZWZlcmVuY2U6XG4gICVz
IiwKICAgICAgICAgICAgICAgICBzcnRwX29jdGV0X3N0cmluZ19oZXhfc3RyaW5nKHNydHBfY2lw
aGVydGV4dCwgbGVuKSk7CiAKLSAgICBpZiAob2N0ZXRfc3RyaW5nX2lzX2VxKHNydHBfcGxhaW50
ZXh0LCBzcnRwX2NpcGhlcnRleHQsIGxlbikpCisgICAgaWYgKHNydHBfb2N0ZXRfc3RyaW5nX2lz
X2VxKHNydHBfcGxhaW50ZXh0LCBzcnRwX2NpcGhlcnRleHQsIGxlbikpCiAgICAgICAgIHJldHVy
biBzcnRwX2Vycl9zdGF0dXNfZmFpbDsKIAogICAgIC8qCkBAIC0yMDQ5LDcgKzIwNTQsNyBAQCBz
cnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRlX2VuY3J5cHRlZF9leHRlbnNpb25zX2hlYWRl
cnMoKQogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7CiAgICAgfQogCi0gICAg
aWYgKG9jdGV0X3N0cmluZ19pc19lcShzcnRwX2NpcGhlcnRleHQsIHNydHBfcGxhaW50ZXh0X3Jl
ZiwgbGVuKSkKKyAgICBpZiAoc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEoc3J0cF9jaXBoZXJ0ZXh0
LCBzcnRwX3BsYWludGV4dF9yZWYsIGxlbikpCiAgICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0
dXNfZmFpbDsKIAogICAgIHN0YXR1cyA9IHNydHBfZGVhbGxvYyhzcnRwX3NuZCk7CkBAIC0yMDYz
LDcgKzIwNjgsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRlX2VuY3J5cHRlZF9l
eHRlbnNpb25zX2hlYWRlcnMoKQogICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfb2s7CiB9CiAK
LSNpZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NNCiAKIC8qCiAgKiBIZWFkZXJzIG9mIHRlc3QgdmVj
dG9ycyB0YWtlbiBmcm9tIFJGQyA2OTA0LCBBcHBlbmRpeCBBCkBAIC0yMTQ4LDcgKzIxNTMsNyBA
QCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRlX2VuY3J5cHRlZF9leHRlbnNpb25zX2hl
YWRlcnNfZ2NtKCkKICAgICBkZWJ1Z19wcmludChtb2RfZHJpdmVyLCAiY2lwaGVydGV4dCByZWZl
cmVuY2U6XG4gICVzIiwKICAgICAgICAgICAgICAgICBzcnRwX29jdGV0X3N0cmluZ19oZXhfc3Ry
aW5nKHNydHBfY2lwaGVydGV4dCwgbGVuKSk7CiAKLSAgICBpZiAob2N0ZXRfc3RyaW5nX2lzX2Vx
KHNydHBfcGxhaW50ZXh0LCBzcnRwX2NpcGhlcnRleHQsIGxlbikpCisgICAgaWYgKHNydHBfb2N0
ZXRfc3RyaW5nX2lzX2VxKHNydHBfcGxhaW50ZXh0LCBzcnRwX2NpcGhlcnRleHQsIGxlbikpCiAg
ICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfZmFpbDsKIAogICAgIC8qCkBAIC0yMTcwLDcg
KzIxNzUsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRlX2VuY3J5cHRlZF9leHRl
bnNpb25zX2hlYWRlcnNfZ2NtKCkKICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19mYWls
OwogICAgIH0KIAotICAgIGlmIChvY3RldF9zdHJpbmdfaXNfZXEoc3J0cF9jaXBoZXJ0ZXh0LCBz
cnRwX3BsYWludGV4dF9yZWYsIGxlbikpCisgICAgaWYgKHNydHBfb2N0ZXRfc3RyaW5nX2lzX2Vx
KHNydHBfY2lwaGVydGV4dCwgc3J0cF9wbGFpbnRleHRfcmVmLCBsZW4pKQogICAgICAgICByZXR1
cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7CiAKICAgICBzdGF0dXMgPSBzcnRwX2RlYWxsb2Moc3J0
cF9zbmQpOwpAQCAtMjI2NCw3ICsyMjY5LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92YWxp
ZGF0ZV9hZXNfMjU2KCkKICAgICBkZWJ1Z19wcmludChtb2RfZHJpdmVyLCAiY2lwaGVydGV4dCBy
ZWZlcmVuY2U6XG4gICVzIiwKICAgICAgICAgICAgICAgICBvY3RldF9zdHJpbmdfaGV4X3N0cmlu
ZyhzcnRwX2NpcGhlcnRleHQsIGxlbikpOwogCi0gICAgaWYgKG9jdGV0X3N0cmluZ19pc19lcShz
cnRwX3BsYWludGV4dCwgc3J0cF9jaXBoZXJ0ZXh0LCBsZW4pKSB7CisgICAgaWYgKHNydHBfb2N0
ZXRfc3RyaW5nX2lzX2VxKHNydHBfcGxhaW50ZXh0LCBzcnRwX2NpcGhlcnRleHQsIGxlbikpIHsK
ICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19mYWlsOwogICAgIH0KIApAQCAtMjI4Niw3
ICsyMjkxLDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92YWxpZGF0ZV9hZXNfMjU2KCkKICAg
ICAgICAgcmV0dXJuIHN0YXR1czsKICAgICB9CiAKLSAgICBpZiAob2N0ZXRfc3RyaW5nX2lzX2Vx
KHNydHBfY2lwaGVydGV4dCwgc3J0cF9wbGFpbnRleHRfcmVmLCBsZW4pKSB7CisgICAgaWYgKHNy
dHBfb2N0ZXRfc3RyaW5nX2lzX2VxKHNydHBfY2lwaGVydGV4dCwgc3J0cF9wbGFpbnRleHRfcmVm
LCBsZW4pKSB7CiAgICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfZmFpbDsKICAgICB9CiAK
QEAgLTI0MjQsNyArMjQyOSw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdGVzdF9lbXB0eV9w
YXlsb2FkKCkKICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX29rOwogfQogCi0jaWZkZWYgT1BF
TlNTTAorI2lmZGVmIEdDTQogc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF90ZXN0X2VtcHR5X3BheWxv
YWRfZ2NtKCkKIHsKICAgICBzcnRwX3Qgc3J0cF9zbmQsIHNydHBfcmVjdjsKQEAgLTI0OTksNyAr
MjUwNCw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdGVzdF9lbXB0eV9wYXlsb2FkX2djbSgp
CiAKICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX29rOwogfQotI2VuZGlmIC8vIE9QRU5TU0wK
KyNlbmRpZiAvLyBHQ00KIAogc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF90ZXN0X3JlbW92ZV9zdHJl
YW0oKQogewpAQCAtMjc4MywxMCArMjc4OCwxMCBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Rl
c3Rfc2V0dXBfcHJvdGVjdF90cmFpbGVyX3N0cmVhbXMoCiAgICAgc3J0cF9wb2xpY3lfdCBwb2xp
Y3k7CiAgICAgc3J0cF9wb2xpY3lfdCBwb2xpY3lfbWtpOwogCi0jaWZkZWYgT1BFTlNTTAorI2lm
ZGVmIEdDTQogICAgIHNydHBfcG9saWN5X3QgcG9saWN5X2Flc19nY207CiAgICAgc3J0cF9wb2xp
Y3lfdCBwb2xpY3lfYWVzX2djbV9ta2k7Ci0jZW5kaWYgLy8gT1BFTlNTTAorI2VuZGlmIC8vIEdD
TQogCiAgICAgbWVtc2V0KCZwb2xpY3ksIDAsIHNpemVvZihwb2xpY3kpKTsKICAgICBzcnRwX2Ny
eXB0b19wb2xpY3lfc2V0X3J0cF9kZWZhdWx0KCZwb2xpY3kucnRwKTsKQEAgLTI4MTAsNyArMjgx
NSw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdGVzdF9zZXR1cF9wcm90ZWN0X3RyYWlsZXJf
c3RyZWFtcygKICAgICBwb2xpY3lfbWtpLmtleXMgPSB0ZXN0X2tleXM7CiAgICAgcG9saWN5X21r
aS5udW1fbWFzdGVyX2tleXMgPSAyOwogCi0jaWZkZWYgT1BFTlNTTAorI2lmZGVmIEdDTQogICAg
IG1lbXNldCgmcG9saWN5X2Flc19nY20sIDAsIHNpemVvZihwb2xpY3lfYWVzX2djbSkpOwogICAg
IHNydHBfY3J5cHRvX3BvbGljeV9zZXRfYWVzX2djbV8xMjhfMTZfYXV0aCgmcG9saWN5X2Flc19n
Y20ucnRwKTsKICAgICBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19nY21fMTI4XzE2X2F1dGgo
JnBvbGljeV9hZXNfZ2NtLnJ0Y3ApOwpAQCAtMjgzMiw3ICsyODM3LDcgQEAgc3J0cF9lcnJfc3Rh
dHVzX3Qgc3J0cF90ZXN0X3NldHVwX3Byb3RlY3RfdHJhaWxlcl9zdHJlYW1zKAogICAgIHBvbGlj
eV9hZXNfZ2NtX21raS5rZXkgPSBOVUxMOwogICAgIHBvbGljeV9hZXNfZ2NtX21raS5rZXlzID0g
dGVzdF9rZXlzOwogICAgIHBvbGljeV9hZXNfZ2NtX21raS5udW1fbWFzdGVyX2tleXMgPSAyOwot
I2VuZGlmCisjZW5kaWYgLy8gR0NNCiAKICAgICAvKiBjcmVhdGUgYSBzZW5kIGN0eCB3aXRoIGRl
ZnVhbHQgcHJvZmlsZSBhbmQgdGVzdF9rZXkgKi8KICAgICBzdGF0dXMgPSBzcnRwX2NyZWF0ZShz
cnRwX3NlbmQsICZwb2xpY3kpOwpAQCAtMjg0Myw3ICsyODQ4LDcgQEAgc3J0cF9lcnJfc3RhdHVz
X3Qgc3J0cF90ZXN0X3NldHVwX3Byb3RlY3RfdHJhaWxlcl9zdHJlYW1zKAogICAgIGlmIChzdGF0
dXMpCiAgICAgICAgIHJldHVybiBzdGF0dXM7CiAKLSNpZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NN
CiAgICAgc3RhdHVzID0gc3J0cF9jcmVhdGUoc3J0cF9zZW5kX2Flc19nY20sICZwb2xpY3lfYWVz
X2djbSk7CiAgICAgaWYgKHN0YXR1cykKICAgICAgICAgcmV0dXJuIHN0YXR1czsKQEAgLTI4NTEs
NyArMjg1Niw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdGVzdF9zZXR1cF9wcm90ZWN0X3Ry
YWlsZXJfc3RyZWFtcygKICAgICBzdGF0dXMgPSBzcnRwX2NyZWF0ZShzcnRwX3NlbmRfYWVzX2dj
bV9ta2ksICZwb2xpY3lfYWVzX2djbV9ta2kpOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJl
dHVybiBzdGF0dXM7Ci0jZW5kaWYgLy8gT1BFTlNTTAorI2VuZGlmIC8vIEdDTQogCiAgICAgcmV0
dXJuIHNydHBfZXJyX3N0YXR1c19vazsKIH0KQEAgLTI4ODQsNyArMjg4OSw3IEBAIHNydHBfZXJy
X3N0YXR1c190IHNydHBfdGVzdF9wcm90ZWN0X3RyYWlsZXJfbGVuZ3RoKCkKICAgICBpZiAobGVu
Z3RoICE9IDE0KQogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7CiAKLSNpZmRl
ZiBPUEVOU1NMCisjaWZkZWYgR0NNCiAgICAgc3RhdHVzID0gc3J0cF9nZXRfcHJvdGVjdF90cmFp
bGVyX2xlbmd0aChzcnRwX3NlbmRfYWVzX2djbSwgMCwgMCwgJmxlbmd0aCk7CiAgICAgaWYgKHN0
YXR1cykKICAgICAgICAgcmV0dXJuIHN0YXR1czsKQEAgLTI5MDEsMTEgKzI5MDYsMTEgQEAgc3J0
cF9lcnJfc3RhdHVzX3Qgc3J0cF90ZXN0X3Byb3RlY3RfdHJhaWxlcl9sZW5ndGgoKQogICAgIC8q
ICBUQUcgTGVuZ3RoOiAxNiBieXRlcyArIE1LSSBsZW5ndGg6IDQgYnl0ZXMqLwogICAgIGlmIChs
ZW5ndGggIT0gMjApCiAgICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfZmFpbDsKLSNlbmRp
ZiAvLyBPUEVOU1NMCisjZW5kaWYgLy8gR0NNCiAKICAgICBzcnRwX2RlYWxsb2Moc3J0cF9zZW5k
KTsKICAgICBzcnRwX2RlYWxsb2Moc3J0cF9zZW5kX21raSk7Ci0jaWZkZWYgT1BFTlNTTAorI2lm
ZGVmIEdDTQogICAgIHNydHBfZGVhbGxvYyhzcnRwX3NlbmRfYWVzX2djbSk7CiAgICAgc3J0cF9k
ZWFsbG9jKHNydHBfc2VuZF9hZXNfZ2NtX21raSk7CiAjZW5kaWYKQEAgLTI5NDEsNyArMjk0Niw3
IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdGVzdF9wcm90ZWN0X3J0Y3BfdHJhaWxlcl9sZW5n
dGgoKQogICAgIGlmIChsZW5ndGggIT0gMTgpCiAgICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0
dXNfZmFpbDsKIAotI2lmZGVmIE9QRU5TU0wKKyNpZmRlZiBHQ00KICAgICBzdGF0dXMgPQogICAg
ICAgICBzcnRwX2dldF9wcm90ZWN0X3J0Y3BfdHJhaWxlcl9sZW5ndGgoc3J0cF9zZW5kX2Flc19n
Y20sIDAsIDAsICZsZW5ndGgpOwogICAgIGlmIChzdGF0dXMpCkBAIC0yOTU5LDExICsyOTY0LDEx
IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdGVzdF9wcm90ZWN0X3J0Y3BfdHJhaWxlcl9sZW5n
dGgoKQogICAgIC8qICBUQUcgTGVuZ3RoOiAxNiBieXRlcyArIFNSVENQIFRyYWlsZXIgNCBieXRl
cyArIE1LSSA0IGJ5dGVzKi8KICAgICBpZiAobGVuZ3RoICE9IDI0KQogICAgICAgICByZXR1cm4g
c3J0cF9lcnJfc3RhdHVzX2ZhaWw7Ci0jZW5kaWYgLy8gT1BFTlNTTAorI2VuZGlmIC8vIEdDTQog
CiAgICAgc3J0cF9kZWFsbG9jKHNydHBfc2VuZCk7CiAgICAgc3J0cF9kZWFsbG9jKHNydHBfc2Vu
ZF9ta2kpOwotI2lmZGVmIE9QRU5TU0wKKyNpZmRlZiBHQ00KICAgICBzcnRwX2RlYWxsb2Moc3J0
cF9zZW5kX2Flc19nY20pOwogICAgIHNydHBfZGVhbGxvYyhzcnRwX3NlbmRfYWVzX2djbV9ta2kp
OwogI2VuZGlmCkBAIC0zMDg4LDYgKzMwOTMsNyBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qg
dGVzdF9zZXRfcmVjZWl2ZXJfcm9jKHVpbnQzMl90IHBhY2tldHMsCiAgICAgICAgIGlmIChzdGF0
dXMpIHsKICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CiAgICAgICAgIH0KKwogICAgICAgICBz
ZXErKzsKICAgICAgICAgdHMrKzsKICAgICB9CkBAIC0zNTAwLDcgKzM1MDYsNyBAQCBjb25zdCBz
cnRwX3BvbGljeV90IGhtYWNfb25seV9wb2xpY3kgPSB7CiAgICAgTlVMTAogfTsKIAotI2lmZGVm
IE9QRU5TU0wKKyNpZmRlZiBHQ00KIGNvbnN0IHNydHBfcG9saWN5X3QgYWVzMTI4X2djbV84X3Bv
bGljeSA9IHsKICAgICB7IHNzcmNfYW55X291dGJvdW5kLCAwIH0sIC8qIFNTUkMgKi8KICAgICB7
CkBAIC0zNzg2LDcgKzM3OTIsNyBAQCBjb25zdCBzcnRwX3BvbGljeV90ICpwb2xpY3lfYXJyYXlb
XSA9IHsKICAgICAmaG1hY19vbmx5X3BvbGljeSwKICAgICAmYWVzX29ubHlfcG9saWN5LAogICAg
ICZkZWZhdWx0X3BvbGljeSwKLSNpZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NNCiAgICAgJmFlczEy
OF9nY21fOF9wb2xpY3ksCiAgICAgJmFlczEyOF9nY21fOF9jYXV0aF9wb2xpY3ksCiAgICAgJmFl
czI1Nl9nY21fOF9wb2xpY3ksCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC90ZXN0X3NydHAuYyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3Rlc3Rf
c3J0cC5jCmluZGV4IGNkYzliNWQ1Yjc2Mjg3ODYwODIyMjJkMzgyNGRjYTVhMTJkM2YwZGQuLjBj
ZWExZjNjMzc0MmQ5M2ZiODdlNDhhYzRmY2RlN2VkMDMzMWNmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3Rl
c3Rfc3J0cC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvbGlic3J0cC90ZXN0L3Rlc3Rfc3J0cC5jCkBAIC00NCwxNCArNDQsMTQgQEAKICAqLwog
CiAvKgotICogVGVzdCBzcGVjaWZpYy4KKyAqIGxpYlNSVFAgc3BlY2lmaWMuCiAgKi8KLSNpbmNs
dWRlICJjdXRlc3QuaCIKKyNpbmNsdWRlICIuLi9zcnRwL3NydHAuYyIgLy8gR2V0IGFjY2VzcyB0
byBzdGF0aWMgZnVuY3Rpb25zCiAKIC8qCi0gKiBsaWJTUlRQIHNwZWNpZmljLgorICogVGVzdCBz
cGVjaWZpYy4KICAqLwotI2luY2x1ZGUgIi4uL3NydHAvc3J0cC5jIiAvLyBHZXQgYWNjZXNzIHRv
IHN0YXRpYyBmdW5jdGlvbnMKKyNpbmNsdWRlICJjdXRlc3QuaCIKIAogLyoKICAqIFN0YW5kYXJk
IGxpYnJhcnkuCkBAIC0xNTIsMTQgKzE1MiwxNSBAQCB2b2lkIHNydHBfY2FsY19hZWFkX2l2X3Ny
dGNwX2Rpc3RpbmN0X2l2X3Blcl9zZXF1ZW5jZV9udW1iZXIoKQogICAgIHNydHBfc2Vzc2lvbl9r
ZXlzX3Qgc2Vzc2lvbl9rZXlzOwogICAgIHNydGNwX2hkcl90IGhlYWRlcjsKICAgICB2MTI4X3Qg
b3V0cHV0X2l2W1NBTVBMRV9DT1VOVF07Ci0gICAgbWVtc2V0KCZvdXRwdXRfaXYsIDAsIFNBTVBM
RV9DT1VOVCAqIHNpemVvZih2MTI4X3QpKTsKICAgICB1aW50MzJfdCBzZXF1ZW5jZV9udW1bU0FN
UExFX0NPVU5UXTsKKyAgICB2MTI4X3QgZmluYWxfaXZbU0FNUExFX0NPVU5UXTsKKyAgICBzaXpl
X3QgaSA9IDA7CisgICAgbWVtc2V0KCZvdXRwdXRfaXYsIDAsIFNBTVBMRV9DT1VOVCAqIHNpemVv
Zih2MTI4X3QpKTsKICAgICBzZXF1ZW5jZV9udW1bMF0gPSAweEZGOwogICAgIHNlcXVlbmNlX251
bVsxXSA9IDB4RkYwMDsKICAgICBzZXF1ZW5jZV9udW1bMl0gPSAweEZGMDAwMDsKIAogICAgIC8v
IFBvc3Rjb25kaXRpb25zCi0gICAgdjEyOF90IGZpbmFsX2l2W1NBTVBMRV9DT1VOVF07CiAgICAg
bWVtc2V0KCZmaW5hbF9pdiwgMCwgU0FNUExFX0NPVU5UICogc2l6ZW9mKHYxMjhfdCkpOwogICAg
IGZpbmFsX2l2WzBdLnY4WzExXSA9IDB4RkY7CiAgICAgZmluYWxfaXZbMV0udjhbMTBdID0gMHhG
RjsKQEAgLTE3MCw3ICsxNzEsNiBAQCB2b2lkIHNydHBfY2FsY19hZWFkX2l2X3NydGNwX2Rpc3Rp
bmN0X2l2X3Blcl9zZXF1ZW5jZV9udW1iZXIoKQogICAgIG1lbXNldCgmaGVhZGVyLCAwLCBzaXpl
b2Yoc3J0Y3BfaGRyX3QpKTsKIAogICAgIC8vIFdoZW4KLSAgICBzaXplX3QgaSA9IDA7CiAgICAg
Zm9yIChpID0gMDsgaSA8IFNBTVBMRV9DT1VOVDsgaSsrKSB7CiAgICAgICAgIFRFU1RfQ0hFQ0so
c3J0cF9jYWxjX2FlYWRfaXZfc3J0Y3AoJnNlc3Npb25fa2V5cywgJm91dHB1dF9pdltpXSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXF1ZW5jZV9udW1baV0s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2xpYnNydHAvdGVzdC91dGlsLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC91dGlsLmMKaW5kZXggZWIyMDNmNGM0YWZlZTk4
MmJiMjQ5MzgwYWU2NjFlMTQxNzcwMWEzNi4uYzBmNzYxNDkwMzExMzI5MWI4MWEzNDhlYTdjMGQ4
ODY3NWZiZjEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3QvdXRpbC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3V0aWwuYwpAQCAtNDIs
MTIgKzQyLDE0IEBACiAgKgogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJ1
dGlsLmgiCiAKICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDxzdGRpbnQuaD4KIAotY2hh
ciBiaXRfc3RyaW5nW01BWF9QUklOVF9TVFJJTkdfTEVOXTsKKy8qIGluY2x1ZGUgc3BhY2UgZm9y
IG51bGwgdGVybWluYXRvciAqLworc3RhdGljIGNoYXIgYml0X3N0cmluZ1tNQVhfUFJJTlRfU1RS
SU5HX0xFTiArIDFdOwogCiBzdGF0aWMgaW5saW5lIGludCBoZXhfY2hhcl90b19uaWJibGUodWlu
dDhfdCBjKQogewpAQCAtMTUxLDcgKzE1Myw3IEBAIGNoYXIgKm9jdGV0X3N0cmluZ19oZXhfc3Ry
aW5nKGNvbnN0IHZvaWQgKnMsIGludCBsZW5ndGgpCiAKICAgICAvKiB0cnVuY2F0ZSBzdHJpbmcg
aWYgaXQgd291bGQgYmUgdG9vIGxvbmcgKi8KICAgICBpZiAobGVuZ3RoID4gTUFYX1BSSU5UX1NU
UklOR19MRU4pIHsKLSAgICAgICAgbGVuZ3RoID0gTUFYX1BSSU5UX1NUUklOR19MRU4gLSAxOwor
ICAgICAgICBsZW5ndGggPSBNQVhfUFJJTlRfU1RSSU5HX0xFTjsKICAgICB9CiAKICAgICBmb3Ig
KGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA1YTgwZWUwZGM5ZGRhZDllYjQ2N2ZhZGZmZDdmMGRmZmM2YjcwMTYwLi5kMzE2YTBk
OWFkNzM0ODgxNzUwMTZjNTEyZWMzODQ4MmFlNGU2ZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yMjIwLDYgKzIyMjAsMTIgQEAKIAkJNDFENzI4RkYyNjY1MDc1QTAwNjUx
QTBCIC8qIGhwa2UuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxRDcyOEZFMjY2NTA3NUEwMDY1MUEwQiAvKiBocGtlLmMgKi87IH07CiAJCTQxRDcyOTAy
MjY2NTA3OTcwMDY1MUEwQiAvKiBlbmNyeXB0ZWRfY2xpZW50X2hlbGxvLmNjIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFENzI5MDAyNjY1MDc5NjAwNjUx
QTBCIC8qIGVuY3J5cHRlZF9jbGllbnRfaGVsbG8uY2MgKi87IH07CiAJCTQxRDcyOTAzMjY2NTA3
OTcwMDY1MUEwQiAvKiBoYW5kb2ZmLmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFENzI5MDEyNjY1MDc5NjAwNjUxQTBCIC8qIGhhbmRvZmYuY2MgKi87
IH07CisJCTQxRDcyOTBDMjY2NTA5MkIwMDY1MUEwQiAvKiBhZXNfZ2NtLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQ3MjkwNjI2NjUwOTFBMDA2NTFB
MEIgLyogYWVzX2djbS5oICovOyB9OworCQk0MUQ3MjkwRDI2NjUwOTMxMDA2NTFBMEIgLyogYWVz
X2ljbV9leHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxRDcyOTA0MjY2NTA5MTkwMDY1MUEwQiAvKiBhZXNfaWNtX2V4dC5oICovOyB9OworCQk0MUQ3
MjkwRjI2NjUwOTNEMDA2NTFBMEIgLyogY2lwaGVyX3ByaXYuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDcyOTA1MjY2NTA5MUEwMDY1MUEwQiAvKiBj
aXBoZXJfcHJpdi5oICovOyB9OworCQk0MUQ3MjkxMDI2NjUwOTQxMDA2NTFBMEIgLyogY2lwaGVy
X3R5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUQ3MjkwNzI2NjUwOTFBMDA2NTFBMEIgLyogY2lwaGVyX3R5cGVzLmggKi87IH07CisJCTQxRDcy
OTExMjY2NTA5RkIwMDY1MUEwQiAvKiBjaXBoZXJfdHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDcyOTA3MjY2NTA5MUEwMDY1MUEwQiAvKiBj
aXBoZXJfdHlwZXMuaCAqLzsgfTsKKwkJNDFENzI5MTIyNjY1MEE1OTAwNjUxQTBCIC8qIGFlc19n
Y21fb3NzbC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUNERDkwQUExRTQzRDUyOTAwNjIxRTkyIC8qIGFlc19nY21fb3NzbC5jICovOyB9OwogCQk0MURC
MUE5NDI0MzIxNjE0MDA1QUI4RUEgLyogcnRjc3RhdHNfb2JqZWN0cy5jYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREIxQTkzMjQzMjE2MTQwMDVBQjhF
QSAvKiBydGNzdGF0c19vYmplY3RzLmNjICovOyB9OwogCQk0MUREQjI0RDIxMjY1QkQ3MDAyOTZE
NDcgLyogZml4ZWRfYXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxRERCMjRCMjEyNjVCRDcwMDI5NkQ0NyAvKiBmaXhlZF9hcnJheS5oICovOyB9
OwogCQk0MUREQjI0RTIxMjY1QkQ3MDAyOTZENDcgLyogaW5saW5lZF92ZWN0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRERCMjRDMjEyNjVCRDcw
MDI5NkQ0NyAvKiBpbmxpbmVkX3ZlY3Rvci5oICovOyB9OwpAQCAtMjUwMywxNSArMjUwOSwxMiBA
QAogCQk1QzA4ODUwNzFFNEE5ODgzMDA0MDM5OTUgLyogYXV0aC5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNERDkwQTQxRTQzRDUxQjAwNjIxRTkyIC8q
IGF1dGguYyAqLzsgfTsKIAkJNUMwODg1MDgxRTRBOTg4MzAwNDAzOTk1IC8qIGhtYWNfb3NzbC5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNERDkwQTUx
RTQzRDUxQjAwNjIxRTkyIC8qIGhtYWNfb3NzbC5jICovOyB9OwogCQk1QzA4ODUwOTFFNEE5ODgz
MDA0MDM5OTUgLyogbnVsbF9hdXRoLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1Q0REOTBBNjFFNDNENTFCMDA2MjFFOTIgLyogbnVsbF9hdXRoLmMgKi87
IH07Ci0JCTVDMDg4NTBBMUU0QTk4ODkwMDQwMzk5NSAvKiBhZXNfZ2NtX29zc2wuYyBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDREQ5MEFBMUU0M0Q1Mjkw
MDYyMUU5MiAvKiBhZXNfZ2NtX29zc2wuYyAqLzsgfTsKIAkJNUMwODg1MEIxRTRBOTg4OTAwNDAz
OTk1IC8qIGFlc19pY21fb3NzbC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUNERDkwQUIxRTQzRDUyOTAwNjIxRTkyIC8qIGFlc19pY21fb3NzbC5jICov
OyB9OwogCQk1QzA4ODUwQzFFNEE5ODg5MDA0MDM5OTUgLyogY2lwaGVyLmMgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0REOTBBQzFFNDNENTI5MDA2MjFF
OTIgLyogY2lwaGVyLmMgKi87IH07CiAJCTVDMDg4NTBEMUU0QTk4ODkwMDQwMzk5NSAvKiBudWxs
X2NpcGhlci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUNERDkwQUQxRTQzRDUyOTAwNjIxRTkyIC8qIG51bGxfY2lwaGVyLmMgKi87IH07CiAJCTVDMDg4
NTBFMUU0QTk4OTAwMDQwMzk5NSAvKiByZGIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDREQ5MDhEMUU0M0Q0Q0MwMDYyMUU5MiAvKiByZGIuYyAqLzsg
fTsKIAkJNUMwODg1MEYxRTRBOTg5MDAwNDAzOTk1IC8qIHJkYnguYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDREQ5MDhFMUU0M0Q0Q0MwMDYyMUU5MiAv
KiByZGJ4LmMgKi87IH07CiAJCTVDMDg4NTEwMUU0QTk4OTAwMDQwMzk5NSAvKiB1dF9zaW0uYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDREQ5MDhGMUU0
M0Q0Q0MwMDYyMUU5MiAvKiB1dF9zaW0uYyAqLzsgfTsKLQkJNUMwODg1MjQxRTRBOTlEMjAwNDAz
OTk1IC8qIGFlc19nY21fb3NzbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUMwODg1MTIxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19nY21fb3NzbC5oICov
OyB9OwotCQk1QzA4ODUyNTFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2ljbV9vc3NsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzA4ODUxMzFFNEE5OUQy
MDA0MDM5OTUgLyogYWVzX2ljbV9vc3NsLmggKi87IH07CiAJCTVDMDg4NTI2MUU0QTk5RDIwMDQw
Mzk5NSAvKiBhZXNfaWNtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1QzA4ODUxNDFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2ljbS5oICovOyB9OwogCQk1
QzA4ODUyNzFFNEE5OUQyMDA0MDM5OTUgLyogYWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzA4ODUxNTFFNEE5OUQyMDA0MDM5OTUgLyogYWVzLmgg
Ki87IH07CiAJCTVDMDg4NTI4MUU0QTk5RDIwMDQwMzk5NSAvKiBhbGxvYy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwODg1MTYxRTRBOTlEMjAwNDAz
OTk1IC8qIGFsbG9jLmggKi87IH07CkBAIC02NTU5LDYgKzY1NjIsMTAgQEAKIAkJNDFENzI4RkUy
NjY1MDc1QTAwNjUxQTBCIC8qIGhwa2UuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRo
ID0gaHBrZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUQ3MjkwMDI2NjUwNzk2
MDA2NTFBMEIgLyogZW5jcnlwdGVkX2NsaWVudF9oZWxsby5jYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IGVuY3J5cHRlZF9jbGllbnRfaGVsbG8uY2M7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxRDcyOTAxMjY2NTA3OTYwMDY1MUEwQiAvKiBoYW5kb2ZmLmNj
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gaGFuZG9mZi5jYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFENzI5MDQyNjY1MDkxOTAwNjUxQTBCIC8qIGFlc19p
Y21fZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGFlc19pY21fZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRDcyOTA1MjY2NTA5MUEwMDY1MUEwQiAv
KiBjaXBoZXJfcHJpdi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBjaXBoZXJf
cHJpdi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUQ3MjkwNjI2NjUwOTFBMDA2
NTFBMEIgLyogYWVzX2djbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBhZXNf
Z2NtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRDcyOTA3MjY2NTA5MUEwMDY1
MUEwQiAvKiBjaXBoZXJfdHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Y2lwaGVyX3R5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxREIxQTkzMjQz
MjE2MTQwMDVBQjhFQSAvKiBydGNzdGF0c19vYmplY3RzLmNjICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gcnRjc3RhdHNfb2JqZWN0cy5jYzsgcGF0aCA9IHN0YXRzL3J0Y3N0
YXRzX29iamVjdHMuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRERCMjRCMjEy
NjVCRDcwMDI5NkQ0NyAvKiBmaXhlZF9hcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBmaXhlZF9hcnJheS5oOyBwYXRoID0gY29udGFpbmVyL2ZpeGVkX2FycmF5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRERCMjRDMjEyNjVCRDcwMDI5NkQ0NyAvKiBp
bmxpbmVkX3ZlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBpbmxpbmVk
X3ZlY3Rvci5oOyBwYXRoID0gY29udGFpbmVyL2lubGluZWRfdmVjdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC02ODM4LDggKzY4NDUsNiBAQAogCQk1QzA4ODQ4QTFFNEE5NzhD
MDA0MDM5OTUgLyogbGlieXV2LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IGxpYnl1di54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMwODg0
RDExRTRBOTdFMzAwNDAzOTk1IC8qIGxpYnNydHAuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gbGlic3J0cC5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1
QzA4ODRERTFFNEE5ODAxMDA0MDM5OTUgLyogbGlieXV2LmEgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0g
MDsgcGF0aCA9IGxpYnl1di5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owot
CQk1QzA4ODUxMjFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2djbV9vc3NsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGFlc19nY21fb3NzbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1QzA4ODUxMzFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2ljbV9vc3NsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGFlc19pY21fb3NzbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1QzA4ODUxNDFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2ljbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBhZXNfaWNtLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDMDg4NTE1MUU0QTk5RDIwMDQwMzk5NSAvKiBhZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gYWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDMDg4NTE2MUU0QTk5RDIwMDQwMzk5NSAvKiBhbGxvYy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBhbGxvYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTE4MTUsMTIgKzExODIwLDE0IEBACiAJCTVDMDg4NTExMUU0QTk5QzIwMDQwMzk5NSAv
KiBpbmNsdWRlICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQk1QzA4ODUxNTFFNEE5OUQyMDA0MDM5OTUgLyogYWVzLmggKi8sCi0JCQkJNUMwODg1MTIxRTRB
OTlEMjAwNDAzOTk1IC8qIGFlc19nY21fb3NzbC5oICovLAorCQkJCTQxRDcyOTA2MjY2NTA5MUEw
MDY1MUEwQiAvKiBhZXNfZ2NtLmggKi8sCisJCQkJNDFENzI5MDQyNjY1MDkxOTAwNjUxQTBCIC8q
IGFlc19pY21fZXh0LmggKi8sCiAJCQkJNUMwODg1MTQxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19p
Y20uaCAqLywKLQkJCQk1QzA4ODUxMzFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2ljbV9vc3NsLmgg
Ki8sCisJCQkJNUMwODg1MTUxRTRBOTlEMjAwNDAzOTk1IC8qIGFlcy5oICovLAogCQkJCTVDMDg4
NTE2MUU0QTk5RDIwMDQwMzk5NSAvKiBhbGxvYy5oICovLAogCQkJCTVDMDg4NTE3MUU0QTk5RDIw
MDQwMzk5NSAvKiBhdXRoLmggKi8sCisJCQkJNDFENzI5MDUyNjY1MDkxQTAwNjUxQTBCIC8qIGNp
cGhlcl9wcml2LmggKi8sCisJCQkJNDFENzI5MDcyNjY1MDkxQTAwNjUxQTBCIC8qIGNpcGhlcl90
eXBlcy5oICovLAogCQkJCTVDMDg4NTE4MUU0QTk5RDIwMDQwMzk5NSAvKiBjaXBoZXIuaCAqLywK
IAkJCQk1QzA4ODUxOTFFNEE5OUQyMDA0MDM5OTUgLyogY3J5cHRvX2tlcm5lbC5oICovLAogCQkJ
CTVDMDg4NTFBMUU0QTk5RDIwMDQwMzk5NSAvKiBjcnlwdG9fdHlwZXMuaCAqLywKQEAgLTE1NDM5
LDYgKzE1NDQ2LDcgQEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRB
Y3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCTQxRDcyOTExMjY2NTA5
RkIwMDY1MUEwQiAvKiBjaXBoZXJfdHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTU2NTQsOSAr
MTU2NjIsNyBAQAogCQkJCTVDREQ4NUU4MUU0M0I4MTAwMDYyMUU5MiAvKiBhZWNtX2NvcmUuaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4NUU5MUU0M0I4MTAwMDYyMUU5MiAvKiBhZWNtX2RlZmlu
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMDg4NTI3MUU0QTk5RDIwMDQwMzk5NSAvKiBhZXMu
aCBpbiBIZWFkZXJzICovLAotCQkJCTVDMDg4NTI0MUU0QTk5RDIwMDQwMzk5NSAvKiBhZXNfZ2Nt
X29zc2wuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMDg4NTI2MUU0QTk5RDIwMDQwMzk5NSAvKiBh
ZXNfaWNtLmggaW4gSGVhZGVycyAqLywKLQkJCQk1QzA4ODUyNTFFNEE5OUQyMDA0MDM5OTUgLyog
YWVzX2ljbV9vc3NsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODcwMjFFNDNCQTc1MDA2MjFF
OTIgLyogYWdjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZEM0JERjIxMjczMUMyMDA3NzVGMDkg
LyogYWdjMl9jb21tb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NzAwMUU0M0JBNzUwMDYy
MUU5MiAvKiBhZ2NfbWFuYWdlcl9kaXJlY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMTU4OTYsNiAr
MTU5MDIsNyBAQAogCQkJCTQxODkzOTFDMjQyQTcwNEUwMDdGREM0MSAvKiBjcmVhdGVfdmlkZW9f
cnRwX2RlcGFja2V0aXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBMTAxRTQzQkZCMzAw
NjIxRTkyIC8qIGNyb3NzX2NvcnJlbGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzA0
RTIzNEI4OThEMDAyOEE2MTUgLyogY3J5cHRfc3RyaW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQk0
MUQ3MjkwRDI2NjUwOTMxMDA2NTFBMEIgLyogYWVzX2ljbV9leHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDMDg4NTJCMUU0QTk5RDIwMDQwMzk5NSAvKiBjcnlwdG9fa2VybmVsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTMxQzNCNDIzNEI5NzEyMDAyOEE2MTUgLyogY3J5cHRvX29wdGlvbnMuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxMzFDMzA5MjM0QjhEQzIwMDI4QTYxNSAvKiBjcnlwdG9fcGFy
YW1zLmggaW4gSGVhZGVycyAqLywKQEAgLTE2MTA3LDYgKzE2MTE0LDcgQEAKIAkJCQk0MTMxQzRG
NzIzNEM4NjdCMDAyOEE2MTUgLyogaGlzdG9ncmFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0RE
ODNEQzFFNDM5QTZGMDA2MjFFOTIgLyogaGlzdG9ncmFtLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTlDODM1ODFGRTI0NjY1MDA0MEMzMEYgLyogaGlzdG9ncmFtX3BlcmNlbnRpbGVfY291bnRlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDFENzI5MEYyNjY1MDkzRDAwNjUxQTBCIC8qIGNpcGhlcl9w
cml2LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTg5Mzk4NTI0MkE3MjUxMDA3RkRDNDEgLyogaGlz
dG9ncmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMwODEyMzRCODk4RDAwMjhBNjE1IC8q
IGh0dHBfY29tbW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEwOEJBRDIxMjY4MUM4MDAxRDVE
N0IgLyogaTAxMF9idWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTY0MDYsNiArMTY0MTQsNyBA
QAogCQkJCTQxMDA5MUREMjQyRTBCQkMwMEM1RURBMiAvKiByZWNvcmRhYmxlX2VuY29kZWRfZnJh
bWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMkZGOUUxMjU0QjNGQzgwMDFERjAzNiAvKiByZWN1
cnNpdmVfY3JpdGljYWxfc2VjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhBNEUxRTQz
QkZCMzAwNjIxRTkyIC8qIHJlZF9wYXlsb2FkX3NwbGl0dGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MUQ3MjkwQzI2NjUwOTJCMDA2NTFBMEIgLyogYWVzX2djbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDEzMUMxMDEyMzRCODlFMjAwMjhBNjE1IC8qIHJlZl9jb3VudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDEzMUMyRkQyMzRCOERDMjAwMjhBNjE1IC8qIHJlZl9jb3VudGVkX2Jhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxMzFDMTQ5MjM0Qjg5RTIwMDI4QTYxNSAvKiByZWZfY291bnRlZF9v
YmplY3QuaCBpbiBIZWFkZXJzICovLApAQCAtMTY4NzEsNiArMTY4ODAsNyBAQAogCQkJCTQxODkz
OUNBMjQyQTczMzcwMDdGREM0MSAvKiB1c2VkX2lkcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEz
QTIxNDAxRkUwRjBFRjAwMzczRTk5IC8qIHV0X3NpbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNE
RDg3MDkxRTQzQkE3NTAwNjIxRTkyIC8qIHV0aWxpdHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
RDcyOTEwMjY2NTA5NDEwMDY1MUEwQiAvKiBjaXBoZXJfdHlwZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDREQ4N0RGMUU0M0JDMkUwMDYyMUU5MiAvKiB1dGlsaXR5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk1Q0REODczQjFFNDNCQUJFMDA2MjFFOTIgLyogdmFkX2F1ZGlvX3Byb2MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4NzM4MUU0M0JBQkUwMDYyMUU5MiAvKiB2YWRfYXVkaW9fcHJvY19p
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzczMyw5ICsxNzc0Myw5IEBACiAJCQlpc2Eg
PSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7
CiAJCQlmaWxlcyA9ICgKLQkJCQk1QzA4ODUwQTFFNEE5ODg5MDA0MDM5OTUgLyogYWVzX2djbV9v
c3NsLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzA4ODUwQjFFNEE5ODg5MDA0MDM5OTUgLyogYWVz
X2ljbV9vc3NsLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzA4ODUwMzFFNEE5ODdDMDA0MDM5OTUg
LyogYWxsb2MuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxRDcyOTEyMjY2NTBBNTkwMDY1MUEwQiAv
KiBhZXNfZ2NtX29zc2wuYyBpbiBTb3VyY2VzICovLAogCQkJCTVDMDg4NTA3MUU0QTk4ODMwMDQw
Mzk5NSAvKiBhdXRoLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzA4ODUwQzFFNEE5ODg5MDA0MDM5
OTUgLyogY2lwaGVyLmMgaW4gU291cmNlcyAqLywKIAkJCQk1QzA4ODUwNDFFNEE5ODdDMDA0MDM5
OTUgLyogY3J5cHRvX2tlcm5lbC5jIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430326</attachid>
            <date>2021-06-02 01:22:32 -0700</date>
            <delta_ts>2021-06-04 04:58:40 -0700</delta_ts>
            <desc>fix compilation for webkitgtk/wpe</desc>
            <filename>0001-Fix-webkitgtk-wpe-for-libsrtp-sync.patch</filename>
            <type>text/plain</type>
            <size>1640</size>
            <attacher name="Víctor M. Jáquez L.">vjaquez</attacher>
            
              <data encoding="base64">RnJvbSA0NzI2YjMwYmFmOGQwYjgzNTBlNmM1NjE2ZWZjZDE5NTBlMTM4MjFmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Vj1DMz1BRGN0b3I9MjBNYW51ZWw9MjBKPUMz
PUExcXVlej0yMExlYWw/PQogPHZqYXF1ZXpAaWdhbGlhLmNvbT4KRGF0ZTogV2VkLCAyIEp1biAy
MDIxIDEwOjE5OjEyICswMjAwClN1YmplY3Q6IFtQQVRDSCB4c2VydmVyXSBGaXggd2Via2l0Z3Rr
L3dwZSBmb3IgbGlic3J0cCBzeW5jCgotLS0KIFNvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9D
TWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8IDEgKwogLi4uL1NvdXJjZS90aGly
ZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2NpcGhlcl90eXBlcy5oICAgIHwgMiArLQog
MiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQKaW5kZXggYTZmMWMyNTYyNmM3Li45
YmJmMjE2NjJhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50
eHQKQEAgLTE3NjIsNiArMTc2Miw3IEBAIHRhcmdldF9jb21waWxlX29wdGlvbnMobGlic3J0cCBQ
UklWQVRFCiApCiAKIHRhcmdldF9jb21waWxlX2RlZmluaXRpb25zKGxpYnNydHAgUFJJVkFURQor
ICAgIEdDTQogICAgIEhBVkVfQVJQQV9JTkVUX0gKICAgICBIQVZFX0NPTkZJR19ICiAgICAgSEFW
RV9JTlQxNl9UCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNl
L3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvY2lwaGVyX3R5cGVzLmggYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRv
L2luY2x1ZGUvY2lwaGVyX3R5cGVzLmgKaW5kZXggMThmMDMyOGZiYjZjLi45ZWZkYWYyYTc5ODEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvbGlic3J0cC9jcnlwdG8vaW5jbHVkZS9jaXBoZXJfdHlwZXMuaAorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1
ZGUvY2lwaGVyX3R5cGVzLmgKQEAgLTQ3LDggKzQ3LDggQEAKIGV4dGVybiBjb25zdCBzcnRwX2Np
cGhlcl90eXBlX3Qgc3J0cF9udWxsX2NpcGhlcjsKIGV4dGVybiBjb25zdCBzcnRwX2NpcGhlcl90
eXBlX3Qgc3J0cF9hZXNfaWNtXzEyODsKIGV4dGVybiBjb25zdCBzcnRwX2NpcGhlcl90eXBlX3Qg
c3J0cF9hZXNfaWNtXzI1NjsKLSNpZmRlZiBHQ00KIGV4dGVybiBjb25zdCBzcnRwX2NpcGhlcl90
eXBlX3Qgc3J0cF9hZXNfaWNtXzE5MjsKKyNpZmRlZiBHQ00KIGV4dGVybiBjb25zdCBzcnRwX2Np
cGhlcl90eXBlX3Qgc3J0cF9hZXNfZ2NtXzEyODsKIGV4dGVybiBjb25zdCBzcnRwX2NpcGhlcl90
eXBlX3Qgc3J0cF9hZXNfZ2NtXzI1NjsKICNlbmRpZgotLSAKMi4zMC4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430568</attachid>
            <date>2021-06-04 04:58:45 -0700</date>
            <delta_ts>2021-06-06 23:59:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226487-20210604135843.patch</filename>
            <type>text/plain</type>
            <size>127967</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA1NzgzNTgzYmMyZDNiMmU5Yzg0NmM1MDhhZTQ3ZmJmMjM0ODNkZTQ5Li42YjUy
NjhkZmZiMTM0ZWU1ZGQ2OWNmOGEzN2Q0MDZjMGIyNmY4MTBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNi0wNCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGxpYnNydHAgdG8gTTky
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY0ODcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZp
Z3VyYXRpb25zL2xpYnNydHAueGNjb25maWc6CisgICAgICAgICogU291cmNlL3RoaXJkX3BhcnR5
L2xpYnNydHA6IFJlc3luY2VkLgorICAgICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCiAyMDIxLTA2LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBDaGVycnktcGljayB3ZWJydGMgZml4IHRvIGNvcnJlY3RseSBoYW5kbGUg
YXVkaW8gdHJhY2sgc3RhdGUgaW4gY2FzZSBvZiByZW5lZ290aWF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvQ01ha2VMaXN0cy50eHQKaW5kZXggYTZmMWMyNTYyNmM3OWVhMGY5ODIy
NmJhOTJhNTRkMTFiY2IyNjRmYi4uOWJiZjIxNjYyYWYzYmE0MTkxZjVjODVhNmJiZGZjMzczNWY5
NDYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DTWFrZUxpc3RzLnR4dApAQCAt
MTc2Miw2ICsxNzYyLDcgQEAgdGFyZ2V0X2NvbXBpbGVfb3B0aW9ucyhsaWJzcnRwIFBSSVZBVEUK
ICkKIAogdGFyZ2V0X2NvbXBpbGVfZGVmaW5pdGlvbnMobGlic3J0cCBQUklWQVRFCisgICAgR0NN
CiAgICAgSEFWRV9BUlBBX0lORVRfSAogICAgIEhBVkVfQ09ORklHX0gKICAgICBIQVZFX0lOVDE2
X1QKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9u
cy9saWJzcnRwLnhjY29uZmlnIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3Vy
YXRpb25zL2xpYnNydHAueGNjb25maWcKaW5kZXggZGE4MTYyMTU1MWNmYjBmMDMyYzU5YjlmYTE4
NTI3ZTQxM2MyMTY1OC4uYTUzNTkyMmQzM2FjNTkzMDdlYzMzNDFlN2JmMDg2MzQzZDMxNjYwMiAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xp
YnNydHAueGNjb25maWcKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3Vy
YXRpb25zL2xpYnNydHAueGNjb25maWcKQEAgLTExLDQgKzExLDQgQEAgSEVBREVSX1NFQVJDSF9Q
QVRIUyA9IFNvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2luY2x1ZGUgU291cmNlL3RoaXJkX3Bh
cnR5L2xpYnMKIElOU1RBTExfUEFUSCA9IC91c3IvbG9jYWwvbGliOwogUFVCTElDX0hFQURFUlNf
Rk9MREVSX1BBVEggPSAvdXNyL2xvY2FsL2luY2x1ZGUvbGlid2VicnRjOwogVVNFX0hFQURFUk1B
UCA9IE5POwotR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9IFY4X0RFUFJFQ0FUSU9OX1dB
Uk5JTkdTIEVOQUJMRV9OT1RJRklDQVRJT05TIEVOQUJMRV9QTFVHSU5TPTEgRU5BQkxFX1BERj0x
IEVOQUJMRV9QUklOVElORz0xIEVOQUJMRV9CQVNJQ19QUklOVElORz0xIEVOQUJMRV9QUklOVF9Q
UkVWSUVXPTEgRU5BQkxFX1NQRUxMQ0hFQ0s9MSBVU0VfQlJPV1NFUl9TUEVMTENIRUNLRVI9MSBO
T19UQ01BTExPQyBVU0VfRVhURVJOQUxfUE9QVVBfTUVOVT0xIEVOQUJMRV9XRUJSVEM9MSBFTkFC
TEVfRVhURU5TSU9OUz0xIEVOQUJMRV9UQVNLX01BTkFHRVI9MSBFTkFCTEVfVEhFTUVTPTEgRU5B
QkxFX1NFU1NJT05fU0VSVklDRT0xIEVOQUJMRV9TVVBFUlZJU0VEX1VTRVJTPTEgRlVMTF9TQUZF
X0JST1dTSU5HIFNBRkVfQlJPV1NJTkdfQ1NEIFNBRkVfQlJPV1NJTkdfREJfTE9DQUwgQ0hST01J
VU1fQlVJTEQgRU5BQkxFX01FRElBX1JPVVRFUj0xIEZJRUxEVFJJQUxfVEVTVElOR19FTkFCTEVE
IENSX0NMQU5HX1JFVklTSU9OPTI4NDk3OS0xIENSX1hDT0RFX1ZFUlNJT049MDgyMCBfX0FTU0VS
VF9NQUNST1NfREVGSU5FX1ZFUlNJT05TX1dJVEhPVVRfVU5ERVJTQ09SRT0wIF9ERUJVRyBEWU5B
TUlDX0FOTk9UQVRJT05TX0VOQUJMRUQ9MSBXVEZfVVNFX0RZTkFNSUNfQU5OT1RBVElPTlM9MSBQ
QUNLQUdFX1NUUklORz0iXCJsaWJzcnRwMiAyLjAuMC1wcmVcIiIgUEFDS0FHRV9WRVJTSU9OPSJc
IjIuMC4wLXByZVwiIiBIQVZFX0NPTkZJR19IIE9QRU5TU0wgSEFWRV9TVERMSUJfSCBIQVZFX1NU
UklOR19IIEhBVkVfU1RESU5UX0ggSEFWRV9JTlRUWVBFU19IIEhBVkVfSU5UMTZfVCBIQVZFX0lO
VDMyX1QgSEFWRV9JTlQ4X1QgSEFWRV9VSU5UMTZfVCBIQVZFX1VJTlQzMl9UIEhBVkVfVUlOVDY0
X1QgSEFWRV9VSU5UOF9UIEhBVkVfQVJQQV9JTkVUX0ggSEFWRV9ORVRJTkVUX0lOX0ggSEFWRV9T
WVNfVFlQRVNfSCBIQVZFX1VOSVNURF9IICQoaW5oZXJpdGVkKTsKK0dDQ19QUkVQUk9DRVNTT1Jf
REVGSU5JVElPTlMgPSBWOF9ERVBSRUNBVElPTl9XQVJOSU5HUyBFTkFCTEVfTk9USUZJQ0FUSU9O
UyBFTkFCTEVfUExVR0lOUz0xIEVOQUJMRV9QREY9MSBFTkFCTEVfUFJJTlRJTkc9MSBFTkFCTEVf
QkFTSUNfUFJJTlRJTkc9MSBFTkFCTEVfUFJJTlRfUFJFVklFVz0xIEVOQUJMRV9TUEVMTENIRUNL
PTEgVVNFX0JST1dTRVJfU1BFTExDSEVDS0VSPTEgTk9fVENNQUxMT0MgVVNFX0VYVEVSTkFMX1BP
UFVQX01FTlU9MSBFTkFCTEVfV0VCUlRDPTEgRU5BQkxFX0VYVEVOU0lPTlM9MSBFTkFCTEVfVEFT
S19NQU5BR0VSPTEgRU5BQkxFX1RIRU1FUz0xIEVOQUJMRV9TRVNTSU9OX1NFUlZJQ0U9MSBFTkFC
TEVfU1VQRVJWSVNFRF9VU0VSUz0xIEZVTExfU0FGRV9CUk9XU0lORyBTQUZFX0JST1dTSU5HX0NT
RCBTQUZFX0JST1dTSU5HX0RCX0xPQ0FMIENIUk9NSVVNX0JVSUxEIEVOQUJMRV9NRURJQV9ST1VU
RVI9MSBGSUVMRFRSSUFMX1RFU1RJTkdfRU5BQkxFRCBDUl9DTEFOR19SRVZJU0lPTj0yODQ5Nzkt
MSBDUl9YQ09ERV9WRVJTSU9OPTA4MjAgX19BU1NFUlRfTUFDUk9TX0RFRklORV9WRVJTSU9OU19X
SVRIT1VUX1VOREVSU0NPUkU9MCBfREVCVUcgRFlOQU1JQ19BTk5PVEFUSU9OU19FTkFCTEVEPTEg
V1RGX1VTRV9EWU5BTUlDX0FOTk9UQVRJT05TPTEgUEFDS0FHRV9TVFJJTkc9IlwibGlic3J0cDIg
Mi4wLjAtcHJlXCIiIFBBQ0tBR0VfVkVSU0lPTj0iXCIyLjAuMC1wcmVcIiIgSEFWRV9DT05GSUdf
SCBPUEVOU1NMIEhBVkVfU1RETElCX0ggSEFWRV9TVFJJTkdfSCBIQVZFX1NURElOVF9IIEhBVkVf
SU5UVFlQRVNfSCBIQVZFX0lOVDE2X1QgSEFWRV9JTlQzMl9UIEhBVkVfSU5UOF9UIEhBVkVfVUlO
VDE2X1QgSEFWRV9VSU5UMzJfVCBIQVZFX1VJTlQ2NF9UIEhBVkVfVUlOVDhfVCBIQVZFX0FSUEFf
SU5FVF9IIEhBVkVfTkVUSU5FVF9JTl9IIEhBVkVfU1lTX1RZUEVTX0ggSEFWRV9VTklTVERfSCBH
Q00gJChpbmhlcml0ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL0JVSUxELmduIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL0JVSUxELmduCmluZGV4IDYzNTk1
ODU3ZjBlNWFkODVjMDNmY2EwODA3YjVmNTg5OTk4ZDVlMDcuLjBmMGY5ZTUwZGU3MTg2NGI0ZTQz
NDg0ZDBlMjc0ZDk5MjY0ZjRmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9CVUlMRC5nbgorKysgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvQlVJTEQuZ24KQEAg
LTEzLDEyICsxMywxMyBAQCBkZWNsYXJlX2FyZ3MoKSB7CiBjb25maWcoImxpYnNydHBfY29uZmln
IikgewogICBkZWZpbmVzID0gWwogICAgICMgUGFja2FnZSBpZGVudGl0eQotICAgICJQQUNLQUdF
X1NUUklORz1cImxpYnNydHAyIDIuMS4wLXByZVwiIiwKLSAgICAiUEFDS0FHRV9WRVJTSU9OPVwi
Mi4xLjAtcHJlXCIiLAorICAgICJQQUNLQUdFX1NUUklORz1cIjg2MDQ5MjI5MGY3ZDFmMjVlMmJk
NDVkYTY0NzFiZmQ0Y2Q0ZDdhZGRcIiIsCisgICAgIlBBQ0tBR0VfVkVSU0lPTj1cIjg2MDQ5MjI5
MGY3ZDFmMjVlMmJkNDVkYTY0NzFiZmQ0Y2Q0ZDdhZGRcIiIsCiAKICAgICAjIENvbmZpZwogICAg
ICJIQVZFX0NPTkZJR19IIiwKICAgICAiT1BFTlNTTCIsCisgICAgIkdDTSIsCiAKICAgICAjIFBs
YXRmb3JtIHByb3BlcnRpZXMKICAgICAiSEFWRV9TVERMSUJfSCIsCkBAIC0zMyw2ICszNCw3IEBA
IGNvbmZpZygibGlic3J0cF9jb25maWciKSB7CiAgICAgIkhBVkVfVUlOVDY0X1QiLAogICAgICJI
QVZFX1VJTlQ4X1QiLAogICBdCisKICAgaWYgKGlzX3Bvc2l4IHx8IGlzX2Z1Y2hzaWEpIHsKICAg
ICBkZWZpbmVzICs9IFsKICAgICAgICJIQVZFX0FSUEFfSU5FVF9IIiwKQEAgLTc0LDkgKzc2LDEw
IEBAIHN0YXRpY19saWJyYXJ5KCJsaWJzcnRwIikgewogCiAgICAgIyBoZWFkZXJzCiAgICAgImNy
eXB0by9pbmNsdWRlL2Flcy5oIiwKLSAgICAiY3J5cHRvL2luY2x1ZGUvYWVzX2djbV9vc3NsLmgi
LAorICAgICJjcnlwdG8vaW5jbHVkZS9hZXNfZ2NtLmgiLAorICAgICJjcnlwdG8vaW5jbHVkZS9j
aXBoZXJfcHJpdi5oIiwKICAgICAiY3J5cHRvL2luY2x1ZGUvYWVzX2ljbS5oIiwKLSAgICAiY3J5
cHRvL2luY2x1ZGUvYWVzX2ljbV9vc3NsLmgiLAorICAgICJjcnlwdG8vaW5jbHVkZS9hZXNfaWNt
X2V4dC5oIiwKICAgICAiY3J5cHRvL2luY2x1ZGUvYWxsb2MuaCIsCiAgICAgImNyeXB0by9pbmNs
dWRlL2F1dGguaCIsCiAgICAgImNyeXB0by9pbmNsdWRlL2NpcGhlci5oIiwKQEAgLTExMyw3ICsx
MTYsMjMgQEAgc3RhdGljX2xpYnJhcnkoImxpYnNydHAiKSB7CiAgICAgImNyeXB0by9yZXBsYXkv
cmRieC5jIiwKICAgICAic3J0cC9la3QuYyIsCiAgICAgInNydHAvc3J0cC5jIiwKKworICAgICMg
VE9ETyhidWdzLndlYnJ0Yy5vcmcvMTE5MTUpOiBUaGUgZm9sbG93aW5nIGZpbGVzIGFyZSBub3Qg
bmVlZGVkIGJ5CisgICAgIyBXZWJSVEMgYW5kIHRoZXkgYXJlIG5vdCBwYXJ0IG9mIHRoZSBidWls
ZCBhbmQgdGhlIGNoZWNrb3V0LgorICAgICMgQWRkaW5nIHRoZW0gdG8gdGhlIGJ1aWxkLCByZXF1
aXJlcyB0aGUgYWRkaXRpb24gb2Ygc29tZSBjb25kaXRpb25hbHMKKyAgICAjIHNpbmNlIHRoZXNl
IGZpbGVzIGluY2x1ZGUgZHVwbGljYXRlZCBzeW1ib2xzIGFuZCBjYW5ub3QgYmUgYnVpbHQKKyAg
ICAjIHRvZ2V0aGVyLgorICAgICMKKyAgICAjICJjcnlwdG8vaW5jbHVkZS9obWFjLmgiLAorICAg
ICMgImNyeXB0by9pbmNsdWRlL3NoYTEuaCIsCisgICAgIyAiY3J5cHRvL2NpcGhlci9hZXMuYyIs
CisgICAgIyAiY3J5cHRvL2NpcGhlci9hZXNfaWNtLmMiLAorICAgICMgImNyeXB0by9oYXNoL2ht
YWMuYyIsCisgICAgIyAiY3J5cHRvL2hhc2gvc2hhMS5jIiwKKyAgICAjICJjcnlwdG8vY2lwaGVy
L2Flc19nY21fbnNzLmMiLAorICAgICMgImNyeXB0by9jaXBoZXIvYWVzX2ljbV9uc3MuYyIsCiAg
IF0KKwogICBwdWJsaWNfZGVwcyA9IFsKICAgICAiLy90aGlyZF9wYXJ0eS9ib3Jpbmdzc2w6Ym9y
aW5nc3NsIiwKICAgXQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL0NIQU5HRVMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvQ0hBTkdFUwppbmRleCBjYWEyYjYxMTM5
YzY4OGZhNjllODI1MjJjNWE0ZmQxNDIzNDkzOGVlLi4xODFhMzFiODJhNGFlNzM0N2IxZjRmNzVm
MzBhZWZjYjA3MGFjMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvQ0hBTkdFUworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvQ0hBTkdFUwpAQCAtMSw2ICsx
LDQyIEBACiBDaGFuZ2Vsb2cKIAotMi4yLjAtcHJlIChUaGlzIHZlcnNpb24pCisyLjQuMC1wcmUg
KFRoaXMgdmVyc2lvbikKKworMi4zLjAKKworTWFqb3IgY2hhbmdlcworCitBIGZ1enplciB3YXMg
YWRkZWQgdG8gdGhlIHByb2plY3QgYmFzZWQgb24gbGliRnV6emVyLiBUaGlzIGlzIHJ1biBhcyBw
YXJ0IG9mIEdvb2dsZSBvc3MtZnV6eiwgdGhlIGN1cnJlbnQgc3RhdHVzIGNhbiBiZSBmb3VuZCBh
dCBodHRwczovL29zcy1mdXp6LWJ1aWxkLWxvZ3Muc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9pbmRl
eC5odG1sI2xpYnNydHAgLiBEZXRhaWxzIGF2YWlsYWJsZSBpbiBQUiAjNDQyIGFuZCBpc3N1ZSAj
MzkzLgorCitDTWFrZSBzdXBwb3J0IHdhcyBhZGRlZCBhcyBhbiBhbHRlcm5hdGl2ZSBidWlsZCBz
eXN0ZW0uIFRoaXMgd2FzIHByaW1hcmlseSBhZGRlZCB0byByZXBsYWNlIHRoZSBWaXN1YWwgU3R1
ZGlvIHByb2plY3QgZmlsZXMgY3VycmVudGx5IGNoZWNrZWQgaW4gYnV0IGhhcyBiZWVuIGV4dGVu
ZCB0byBzdXBwb3J0IGJ1aWxkaW5nIG9uIGFsbCBwbGF0Zm9ybXMuIEluaXRpYWwgUFIgIzQ0OSBh
bmQgIzQ1NSBidXQgaGFzIGJlZW4gc3VwcG9ydCBoYXMgYmVlbiBjb250aW51b3VzbHkgaW1wcm92
ZWQuIAorCitOU1Mgc3VwcG9ydCBmb3IgY3J5cHRvIGJhY2tlbmQgd2FzIGFkZGVkLiBUaGlzIGlz
IGNhbiBiZSB1c2VkIGFzIGFuIGFsdGVybmF0aXZlIHRvIG9wZW5zc2wuIEluaXRpYWwgUFIgIzQx
MyBidXQgdGhlcmUgaGFzIGJlZW4gbnVtZXJvdXMgaW1wcm92ZW1lbnRzLgorCitQUiAjNDc0IC0g
QWRkIGZsYWcgdG8gZGlzYWJsZSBwY2FwIGRlcGVuZGVuY3kgd2hlbiBidWlsZCB0ZXN0IGFwcHMu
CisKK1BSICM0NzIgLSBBZGQgY2kgYnVpbGRzIGZvciBpb3MgYW5kIGFuZHJvaWQuCisKK1BSICM0
NjMgLSBwcm9ibGVtIG9uIHNydHBfYWVzX2ljbV9vcGVuc3NsX2VuY3J5cHQuCisKK1BSICM0NzEg
LSBBbGxvdyB0aGUgcGNhcCBmaWxlIHRvIGJlIHJlYWQgZnJvbSBhIHBoeXNpY2FsIGZpbGUuCisK
K1BSICM0NTcgLSBGaXggZG9jcyBjcnlwdG9fcG9saWN5XyogLT4gc3J0cF9jcnlwdG9fcG9saWN5
XyogLgorCitQUiAjNDUyIC0gY3J5cHRvL2NpcGhlcjogUmVzZXQgdGhlIEVWUF9DSVBIRVJfQ1RY
IHN0cnVjdHVyZSBiZWZvcmUgZWFjaCB0ZXN0LgorCitQUiAjNDQ0IC0gRXh0ZW5kIHJ0cF9lY29k
ZXIgdG8gc3VwcG9ydCBSVENQIGFuZCBtdWx0aXBsZXhlZCBTU1JDJ3MuCisKK1BSICM0NDMgLSBy
dHBfZGVjb2RlciBhdm9pZCBjcmFzaCB3aGVuIG5vIHBhY2tldHMgZm91bmQuCisKK1BSICM0Mjkg
LSBSYW5kIGZvciB0ZXN0IG9ubHkuCisKK1BSICM0MjEgLSBGaXggR0NNIElWIGxvZ2dpbmcuCisK
K1BSICM0MTUgLSBGaXhlcyB1bmFsaWduZWQgdHJhaWxlciBhY2Nlc3MuCisKK1BSICM0MTQgLSBE
ZXRlY3QgYW5kIGhhbmRsZSBicm9rZW4gIk9QRU5TU0xfY2xlYW5zZSIuCisKKzIuMi4wCiAKIE1h
am9yIGNoYW5nZXMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL0xJQlNSVFBfVkVSU0lPTiBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9MSUJTUlRQX1ZFUlNJT04K
aW5kZXggNTQzMjI2MTQ4N2Y1Y2IwNGY4NDllM2I4ZDQ1MzJhNjdkYzc3MGVhNi4uZDU0YzZhODI3
ZjZkZDE4ZmMxZDU0NWEyMWFkYTI2OTZjYTQ2NTE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL0xJQlNSVFBfVkVSU0lP
TgorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xp
YnNydHAvTElCU1JUUF9WRVJTSU9OCkBAIC0xICsxIEBACi0yLjIuMC1wcmUKKzg2MDQ5MjI5MGY3
ZDFmMjVlMmJkNDVkYTY0NzFiZmQ0Y2Q0ZDdhZGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9PV05FUlMgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvT1dORVJTCmlu
ZGV4IGE1NTg2Nzg2NzM3Nzg5MjI4YWQzMzUzMTk1ZGIxOWMzM2U5MGVjMDMuLjg3NjFkNDVjYzhl
NjE2MTZkNjM5NTIzOGRkYmEwODc3MDcxMTA2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9PV05FUlMKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL09XTkVS
UwpAQCAtMSwyICsxLDQgQEAKIG1hdHRkckBjaHJvbWl1bS5vcmcKIHBob2dsdW5kQGNocm9taXVt
Lm9yZworCisjIENPTVBPTkVOVDogSW50ZXJuYWxzPldlYlJUQwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9N
YWtlZmlsZS5pbiBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFy
dHkvbGlic3J0cC9jcnlwdG8vTWFrZWZpbGUuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRmMjlhZDJjZjFlMTc3
MzdhNTNlNGQxZGZlZmI3MDdhZWYxYmNiYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vTWFrZWZp
bGUuaW4KQEAgLTAsMCArMSwxMTkgQEAKKyMgTWFrZWZpbGUgZm9yIGNyeXB0byB0ZXN0IHN1aXRl
CisjCisjIERhdmlkIEEuIE1jR3JldworIyBDaXNjbyBTeXN0ZW1zLCBJbmMuCisKK3NyY2RpciA9
IEBzcmNkaXJACit0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACit0b3BfYnVpbGRkaXIgPSBAdG9w
X2J1aWxkZGlyQAorVlBBVEggPSBAc3JjZGlyQAorCitDQwk9IEBDQ0AKK0lOQ0RJUgk9IC1JaW5j
bHVkZSAtSSQoc3JjZGlyKS9pbmNsdWRlIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlCitERUZTCT0g
QERFRlNACitDUFBGTEFHUz0gQENQUEZMQUdTQAorQ0ZMQUdTCT0gQENGTEFHU0AKK0xJQlMJPSBA
TElCU0AKK0xERkxBR1MJPSBATERGTEFHU0AgLUwuIC1MLi4KK0NPTVBJTEUgPSAkKENDKSAkKERF
RlMpICQoSU5DRElSKSAkKENQUEZMQUdTKSAkKENGTEFHUykKK0NSWVBUT0xJQiA9IC1sc3J0cDIK
K0NSWVBUT19MSUJESVIgPSBAQ1JZUFRPX0xJQkRJUkAKKworUkFOTElCCT0gQFJBTkxJQkAKKwor
IyBTcGVjaWZ5IGhvdyB0ZXN0cyBzaG91bGQgZmluZCBzaGFyZWQgbGlicmFyaWVzIG9uIG1hY09T
IGFuZCBMaW51eAorIworIyBtYWNPUyBwdXJnZXMgRFlMRF9MSUJSQVJZX1BBVEggd2hlbiBzcGF3
bmluZyBzdWJwcm9jZXNzZXMsIHNvIGl0J3MKKyMgbm90IHBvc3NpYmxlIHRvIHBhc3MgdGhpcyBp
biBmcm9tIHRoZSBvdXRzaWRlOyB3ZSBoYXZlIHRvIHNwZWNpZnkKKyMgaXQgZm9yIGFueSBzdWJw
cm9jZXNzZXMgd2UgY2FsbC4gTm8gc3VwcG9ydCBmb3IgZHluYW1pYyBsaW5rZWQKKyMgdGVzdHMg
b24gV2luZG93cy4KK2lmbmVxICgkKHN0cmlwICQoQ1JZUFRPX0xJQkRJUikpLCkKKwlpZm5lcSAo
JChPUyksV2luZG93c19OVCkKKwkJVU5BTUVfUyA9ICQoc2hlbGwgdW5hbWUgLXMpCisJCWlmZXEg
KCQoVU5BTUVfUyksTGludXgpCisJCQlGSU5EX0xJQlJBUklFUyA9IExEX0xJQlJBUllfUEFUSD0k
KENSWVBUT19MSUJESVIpCisJCWVuZGlmCisJCWlmZXEgKCQoVU5BTUVfUyksRGFyd2luKQorCQkJ
RklORF9MSUJSQVJJRVMgPSBEWUxEX0xJQlJBUllfUEFUSD0kKENSWVBUT19MSUJESVIpCisJCWVu
ZGlmCisJZW5kaWYKK2VuZGlmCisKKyMgRVhFIGRlZmluZXMgdGhlIHN1ZmZpeCBvbiBleGVjdXRh
YmxlcyAtIGl0J3MgLmV4ZSBmb3IgY3lnd2luLCBhbmQKKyMgbnVsbCBvbiBsaW51eCwgYnNkLCBh
bmQgT1MgWCBhbmQgb3RoZXIgT1Nlcy4gIHdlIGRlZmluZSB0aGlzIHNvIHRoYXQKKyMgYG1ha2Ug
Y2xlYW5gIHdpbGwgd29yayBvbiB0aGUgY3lnd2luIHBsYXRmb3JtCitFWEUgPSBARVhFQAorIyBS
YW5kb20gc291cmNlLgorVVNFX0VYVEVSTkFMX0NSWVBUTyA9IEBVU0VfRVhURVJOQUxfQ1JZUFRP
QAorCitpZmRlZiBBUkNICisgIERFRlMgKz0gLUQkKEFSQ0gpPTEKK2VuZGlmCisKK2lmZGVmIHN5
c25hbWUKKyAgREVGUyArPSAtRCQoc3lzbmFtZSk9MQorZW5kaWYKKworLlBIT05ZOiBkdW1teSBh
bGwgcnVudGVzdCBjbGVhbiBzdXBlcmNsZWFuCisKK2R1bW15IDogYWxsIHJ1bnRlc3QKKworIyB0
ZXN0IGFwcGxpY2F0aW9ucworaWZuZXEgKDEsICQoVVNFX0VYVEVSTkFMX0NSWVBUTykpCitBRVNf
Q0FMQyA9IHRlc3QvYWVzX2NhbGMkKEVYRSkKK2VuZGlmCisKK3Rlc3RhcHAgPSB0ZXN0L2NpcGhl
cl9kcml2ZXIkKEVYRSkgdGVzdC9kYXRhdHlwZXNfZHJpdmVyJChFWEUpIFwKKwkgIHRlc3Qvc3Rh
dF9kcml2ZXIkKEVYRSkgdGVzdC9zaGExX2RyaXZlciQoRVhFKSBcCisJICB0ZXN0L2tlcm5lbF9k
cml2ZXIkKEVYRSkgJChBRVNfQ0FMQykgXAorCSAgdGVzdC9lbnYkKEVYRSkKKworIyBkYXRhIHZh
bHVlcyB1c2VkIHRvIHRlc3QgdGhlIGFlc19jYWxjIGFwcGxpY2F0aW9uIGZvciBBRVMtMTI4Citr
MTI4PTAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmCitwMTI4PTAwMTEyMjMzNDQ1NTY2
Nzc4ODk5YWFiYmNjZGRlZWZmCitjMTI4PTY5YzRlMGQ4NmE3YjA0MzBkOGNkYjc4MDcwYjRjNTVh
CisKKworIyBkYXRhIHZhbHVlcyB1c2VkIHRvIHRlc3QgdGhlIGFlc19jYWxjIGFwcGxpY2F0aW9u
IGZvciBBRVMtMjU2CitrMjU2PTAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEy
MTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYKK3AyNTY9MDAxMTIyMzM0NDU1NjY3Nzg4OTlhYWJi
Y2NkZGVlZmYKK2MyNTY9OGVhMmI3Y2E1MTY3NDViZmVhZmM0OTkwNGI0OTYwODkKKworCitydW50
ZXN0OiAkKHRlc3RhcHApCisJJChGSU5EX0xJQlJBUklFUykgdGVzdC9lbnYkKEVYRSkgIyBwcmlu
dCBvdXQgaW5mb3JtYXRpb24gb24gdGhlIGJ1aWxkIGVudmlyb25tZW50CisJQGVjaG8gInJ1bm5p
bmcgY3J5cHRvIHRlc3QgYXBwbGljYXRpb25zLi4uIgoraWZuZXEgKDEsICQoVVNFX0VYVEVSTkFM
X0NSWVBUTykpCisJJChGSU5EX0xJQlJBUklFUykgdGVzdCBgdGVzdC9hZXNfY2FsYyAkKGsxMjgp
ICQocDEyOClgID0gJChjMTI4KQorCSQoRklORF9MSUJSQVJJRVMpIHRlc3QgYHRlc3QvYWVzX2Nh
bGMgJChrMjU2KSAkKHAyNTYpYCA9ICQoYzI1NikKK2VuZGlmCisJJChGSU5EX0xJQlJBUklFUykg
dGVzdC9jaXBoZXJfZHJpdmVyJChFWEUpIC12ID4vZGV2L251bGwKKwkkKEZJTkRfTElCUkFSSUVT
KSB0ZXN0L2RhdGF0eXBlc19kcml2ZXIkKEVYRSkgLXYgPi9kZXYvbnVsbAorCSQoRklORF9MSUJS
QVJJRVMpIHRlc3Qvc3RhdF9kcml2ZXIkKEVYRSkgPi9kZXYvbnVsbAorCSQoRklORF9MSUJSQVJJ
RVMpIHRlc3Qvc2hhMV9kcml2ZXIkKEVYRSkgLXYgPi9kZXYvbnVsbAorCSQoRklORF9MSUJSQVJJ
RVMpIHRlc3Qva2VybmVsX2RyaXZlciQoRVhFKSAtdiA+L2Rldi9udWxsCisJQGVjaG8gImNyeXB0
byB0ZXN0IGFwcGxpY2F0aW9ucyBwYXNzZWQuIgorCisKKyMgdGhlIHJ1bGUgZm9yIG1ha2luZyBv
YmplY3QgZmlsZXMgYW5kIHRlc3QgYXBwcworCislLm86ICUuYworCSQoQ09NUElMRSkgLWMgJDwg
LW8gJEAKKworJSQoRVhFKTogJS5jICQoc3JjZGlyKS8uLi90ZXN0L2dldG9wdF9zLmMKKwkkKENP
TVBJTEUpICQoTERGTEFHUykgJDwgJChzcmNkaXIpLy4uL3Rlc3QvZ2V0b3B0X3MuYyAtbyAkQCAk
KENSWVBUT0xJQikgJChMSUJTKQorCithbGw6ICQodGVzdGFwcCkKKworIyBob3VzZWtlZXBpbmcg
ZnVuY3Rpb25zCisKK2NsZWFuOgorCXJtIC1mICQodGVzdGFwcCkgKi5vICovKi5vCisJZm9yIGEg
aW4gKiAuKiAqLyo7IGRvIGlmIFsgLWYgIiQkYX4iIF0gOyB0aGVuIHJtICQkYX47IGZpOyBkb25l
OworCXJtIC1mIGBmaW5kIC4gLW5hbWUgIiouW2NoXX4qfiJgCisJcm0gLXJmIGxhdGV4CisKK3N1
cGVyY2xlYW46IGNsZWFuCisJcm0gLWYgKmNvcmUgVEFHUyBrdHJhY2Uub3V0CisKKyMgRU9GCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2xpYnNydHAvY3J5cHRvL2NpcGhlci9hZXNfZ2NtX29zc2wuYyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vY2lwaGVyL2Flc19n
Y21fb3NzbC5jCmluZGV4IGVmMTNhNzgyNDA0ODM3NzU3ZGY1YjViMTQ3ZmUwYTc5NmRhYjU4MzYu
LjM3NWQ2M2NlOTk3ZjE3ZjU3NzcxMTA4YWQ2MzdlYmJiZjU5MWJlZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlw
dG8vY2lwaGVyL2Flc19nY21fb3NzbC5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vY2lwaGVyL2Flc19nY21fb3NzbC5j
CkBAIC00OSw4ICs0OSw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+Ci0j
aW5jbHVkZSAiYWVzX2ljbV9vc3NsLmgiCi0jaW5jbHVkZSAiYWVzX2djbV9vc3NsLmgiCisjaW5j
bHVkZSAiYWVzX2djbS5oIgogI2luY2x1ZGUgImFsbG9jLmgiCiAjaW5jbHVkZSAiZXJyLmgiIC8q
IGZvciBzcnRwX2RlYnVnICovCiAjaW5jbHVkZSAiY3J5cHRvX3R5cGVzLmgiCkBAIC0xMjQsMTMg
KzEyMywxMyBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9hZXNfZ2NtX29wZW5zc2xf
YWxsb2Moc3J0cF9jaXBoZXJfdCAqKmMsCiAgICAgLyogc2V0dXAgY2lwaGVyIGF0dHJpYnV0ZXMg
Ki8KICAgICBzd2l0Y2ggKGtleV9sZW4pIHsKICAgICBjYXNlIFNSVFBfQUVTX0dDTV8xMjhfS0VZ
X0xFTl9XU0FMVDoKLSAgICAgICAgKCpjKS0+dHlwZSA9ICZzcnRwX2Flc19nY21fMTI4X29wZW5z
c2w7CisgICAgICAgICgqYyktPnR5cGUgPSAmc3J0cF9hZXNfZ2NtXzEyODsKICAgICAgICAgKCpj
KS0+YWxnb3JpdGhtID0gU1JUUF9BRVNfR0NNXzEyODsKICAgICAgICAgZ2NtLT5rZXlfc2l6ZSA9
IFNSVFBfQUVTXzEyOF9LRVlfTEVOOwogICAgICAgICBnY20tPnRhZ19sZW4gPSB0bGVuOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIFNSVFBfQUVTX0dDTV8yNTZfS0VZX0xFTl9XU0FMVDoKLSAg
ICAgICAgKCpjKS0+dHlwZSA9ICZzcnRwX2Flc19nY21fMjU2X29wZW5zc2w7CisgICAgICAgICgq
YyktPnR5cGUgPSAmc3J0cF9hZXNfZ2NtXzI1NjsKICAgICAgICAgKCpjKS0+YWxnb3JpdGhtID0g
U1JUUF9BRVNfR0NNXzI1NjsKICAgICAgICAgZ2NtLT5rZXlfc2l6ZSA9IFNSVFBfQUVTXzI1Nl9L
RVlfTEVOOwogICAgICAgICBnY20tPnRhZ19sZW4gPSB0bGVuOwpAQCAtMTkzLDYgKzE5Miw3IEBA
IHN0YXRpYyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX2Flc19nY21fb3BlbnNzbF9jb250ZXh0X2lu
aXQodm9pZCAqY3YsCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIEVWUF9DSVBIRVJfQ1RY
X2NsZWFudXAoYy0+Y3R4KTsKICAgICBpZiAoIUVWUF9DaXBoZXJJbml0X2V4KGMtPmN0eCwgZXZw
LCBOVUxMLCBrZXksIE5VTEwsIDApKSB7CiAgICAgICAgIHJldHVybiAoc3J0cF9lcnJfc3RhdHVz
X2luaXRfZmFpbCk7CiAgICAgfQpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBzcnRwX2Vycl9z
dGF0dXNfdCBzcnRwX2Flc19nY21fb3BlbnNzbF9zZXRfaXYoCiAgICAgYy0+ZGlyID0gZGlyZWN0
aW9uOwogCiAgICAgZGVidWdfcHJpbnQoc3J0cF9tb2RfYWVzX2djbSwgInNldHRpbmcgaXY6ICVz
IiwKLSAgICAgICAgICAgICAgICB2MTI4X2hleF9zdHJpbmcoKHYxMjhfdCAqKWl2KSk7CisgICAg
ICAgICAgICAgICAgc3J0cF9vY3RldF9zdHJpbmdfaGV4X3N0cmluZyhpdiwgMTIpKTsKIAogICAg
IGlmICghRVZQX0NJUEhFUl9DVFhfY3RybChjLT5jdHgsIEVWUF9DVFJMX0dDTV9TRVRfSVZMRU4s
IDEyLCAwKSkgewogICAgICAgICByZXR1cm4gKHNydHBfZXJyX3N0YXR1c19pbml0X2ZhaWwpOwpA
QCAtMjQ3LDIwICsyNDcsMzEgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfYWVzX2dj
bV9vcGVuc3NsX3NldF9hYWQodm9pZCAqY3YsCiAgICAgc3J0cF9hZXNfZ2NtX2N0eF90ICpjID0g
KHNydHBfYWVzX2djbV9jdHhfdCAqKWN2OwogICAgIGludCBydjsKIAotICAgIC8qCi0gICAgICog
U2V0IGR1bW15IHRhZywgT3BlblNTTCByZXF1aXJlcyB0aGUgVGFnIHRvIGJlIHNldCBiZWZvcmUK
LSAgICAgKiBwcm9jZXNzaW5nIEFBRAotICAgICAqLworICAgIGRlYnVnX3ByaW50KHNydHBfbW9k
X2Flc19nY20sICJzZXR0aW5nIEFBRDogJXMiLAorICAgICAgICAgICAgICAgIHNydHBfb2N0ZXRf
c3RyaW5nX2hleF9zdHJpbmcoYWFkLCBhYWRfbGVuKSk7CiAKICAgICAvKgotICAgICAqIE9wZW5T
U0wgbmV2ZXIgd3JpdGUgdG8gYWRkcmVzcyBwb2ludGVkIGJ5IHRoZSBsYXN0IHBhcmFtZXRlciBv
ZgotICAgICAqIEVWUF9DSVBIRVJfQ1RYX2N0cmwgd2hpbGUgRVZQX0NUUkxfR0NNX1NFVF9UQUcg
KGluIHJlYWxpdHksCi0gICAgICogT3BlblNTTCBjb3B5IGl0cyBjb250ZW50IHRvIHRoZSBjb250
ZXh0KSwgc28gd2UgY2FuIG1ha2UKLSAgICAgKiBhYWQgcmVhZC1vbmx5IGluIHRoaXMgZnVuY3Rp
b24gYW5kIGFsbCBpdHMgd3JhcHBlcnMuCisgICAgICogRVZQX0NUUkxfR0NNX1NFVF9UQUcgY2Fu
IG9ubHkgYmUgdXNlZCB3aGVuIGRlY3J5cHRpbmcKICAgICAgKi8KLSAgICB1bnNpZ25lZCBjaGFy
IGR1bW15X3RhZ1tHQ01fQVVUSF9UQUdfTEVOXTsKLSAgICBtZW1zZXQoZHVtbXlfdGFnLCAweDAs
IEdDTV9BVVRIX1RBR19MRU4pOwotICAgIEVWUF9DSVBIRVJfQ1RYX2N0cmwoYy0+Y3R4LCBFVlBf
Q1RSTF9HQ01fU0VUX1RBRywgYy0+dGFnX2xlbiwgJmR1bW15X3RhZyk7CisgICAgaWYgKGMtPmRp
ciA9PSBzcnRwX2RpcmVjdGlvbl9kZWNyeXB0KSB7CisgICAgICAgIC8qCisgICAgICAgICAqIFNl
dCBkdW1teSB0YWcsIE9wZW5TU0wgcmVxdWlyZXMgdGhlIFRhZyB0byBiZSBzZXQgYmVmb3JlCisg
ICAgICAgICAqIHByb2Nlc3NpbmcgQUFECisgICAgICAgICAqLworCisgICAgICAgIC8qCisgICAg
ICAgICAqIE9wZW5TU0wgbmV2ZXIgd3JpdGUgdG8gYWRkcmVzcyBwb2ludGVkIGJ5IHRoZSBsYXN0
IHBhcmFtZXRlciBvZgorICAgICAgICAgKiBFVlBfQ0lQSEVSX0NUWF9jdHJsIHdoaWxlIEVWUF9D
VFJMX0dDTV9TRVRfVEFHIChpbiByZWFsaXR5LAorICAgICAgICAgKiBPcGVuU1NMIGNvcHkgaXRz
IGNvbnRlbnQgdG8gdGhlIGNvbnRleHQpLCBzbyB3ZSBjYW4gbWFrZQorICAgICAgICAgKiBhYWQg
cmVhZC1vbmx5IGluIHRoaXMgZnVuY3Rpb24gYW5kIGFsbCBpdHMgd3JhcHBlcnMuCisgICAgICAg
ICAqLworICAgICAgICB1bnNpZ25lZCBjaGFyIGR1bW15X3RhZ1tHQ01fQVVUSF9UQUdfTEVOXTsK
KyAgICAgICAgbWVtc2V0KGR1bW15X3RhZywgMHgwLCBHQ01fQVVUSF9UQUdfTEVOKTsKKyAgICAg
ICAgaWYgKCFFVlBfQ0lQSEVSX0NUWF9jdHJsKGMtPmN0eCwgRVZQX0NUUkxfR0NNX1NFVF9UQUcs
IGMtPnRhZ19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZHVtbXlfdGFn
KSkgeworICAgICAgICAgICAgcmV0dXJuIChzcnRwX2Vycl9zdGF0dXNfYWxnb19mYWlsKTsKKyAg
ICAgICAgfQorICAgIH0KIAogICAgIHJ2ID0gRVZQX0NpcGhlcihjLT5jdHgsIE5VTEwsIGFhZCwg
YWFkX2xlbik7CiAgICAgaWYgKHJ2ICE9IGFhZF9sZW4pIHsKQEAgLTMxOSw3ICszMzAsOSBAQCBz
dGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9hZXNfZ2NtX29wZW5zc2xfZ2V0X3RhZyh2b2lk
ICpjdiwKICAgICAvKgogICAgICAqIFJldHJlaXZlIHRoZSB0YWcKICAgICAgKi8KLSAgICBFVlBf
Q0lQSEVSX0NUWF9jdHJsKGMtPmN0eCwgRVZQX0NUUkxfR0NNX0dFVF9UQUcsIGMtPnRhZ19sZW4s
IGJ1Zik7CisgICAgaWYgKCFFVlBfQ0lQSEVSX0NUWF9jdHJsKGMtPmN0eCwgRVZQX0NUUkxfR0NN
X0dFVF9UQUcsIGMtPnRhZ19sZW4sIGJ1ZikpIHsKKyAgICAgICAgcmV0dXJuIChzcnRwX2Vycl9z
dGF0dXNfYWxnb19mYWlsKTsKKyAgICB9CiAKICAgICAvKgogICAgICAqIEluY3JlYXNlIGVuY3J5
cHRpb24gbGVuZ3RoIGJ5IGRlc2lyZWQgdGFnIHNpemUKQEAgLTM0OSw4ICszNjIsMTAgQEAgc3Rh
dGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfYWVzX2djbV9vcGVuc3NsX2RlY3J5cHQodm9pZCAq
Y3YsCiAgICAgLyoKICAgICAgKiBTZXQgdGhlIHRhZyBiZWZvcmUgZGVjcnlwdGluZwogICAgICAq
LwotICAgIEVWUF9DSVBIRVJfQ1RYX2N0cmwoYy0+Y3R4LCBFVlBfQ1RSTF9HQ01fU0VUX1RBRywg
Yy0+dGFnX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiArICgqZW5jX2xlbiAtIGMt
PnRhZ19sZW4pKTsKKyAgICBpZiAoIUVWUF9DSVBIRVJfQ1RYX2N0cmwoYy0+Y3R4LCBFVlBfQ1RS
TF9HQ01fU0VUX1RBRywgYy0+dGFnX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnVmICsgKCplbmNfbGVuIC0gYy0+dGFnX2xlbikpKSB7CisgICAgICAgIHJldHVybiAoc3J0cF9l
cnJfc3RhdHVzX2F1dGhfZmFpbCk7CisgICAgfQogICAgIEVWUF9DaXBoZXIoYy0+Y3R4LCBidWYs
IGJ1ZiwgKmVuY19sZW4gLSBjLT50YWdfbGVuKTsKIAogICAgIC8qCkBAIC01NDgsNyArNTYzLDcg
QEAgc3RhdGljIGNvbnN0IHNydHBfY2lwaGVyX3Rlc3RfY2FzZV90IHNydHBfYWVzX2djbV90ZXN0
X2Nhc2VfMSA9IHsKIC8qCiAgKiBUaGlzIGlzIHRoZSB2ZWN0b3IgZnVuY3Rpb24gdGFibGUgZm9y
IHRoaXMgY3J5cHRvIGVuZ2luZS4KICAqLwotY29uc3Qgc3J0cF9jaXBoZXJfdHlwZV90IHNydHBf
YWVzX2djbV8xMjhfb3BlbnNzbCA9IHsKK2NvbnN0IHNydHBfY2lwaGVyX3R5cGVfdCBzcnRwX2Fl
c19nY21fMTI4ID0gewogICAgIHNydHBfYWVzX2djbV9vcGVuc3NsX2FsbG9jLAogICAgIHNydHBf
YWVzX2djbV9vcGVuc3NsX2RlYWxsb2MsCiAgICAgc3J0cF9hZXNfZ2NtX29wZW5zc2xfY29udGV4
dF9pbml0LApAQCAtNTY1LDcgKzU4MCw3IEBAIGNvbnN0IHNydHBfY2lwaGVyX3R5cGVfdCBzcnRw
X2Flc19nY21fMTI4X29wZW5zc2wgPSB7CiAvKgogICogVGhpcyBpcyB0aGUgdmVjdG9yIGZ1bmN0
aW9uIHRhYmxlIGZvciB0aGlzIGNyeXB0byBlbmdpbmUuCiAgKi8KLWNvbnN0IHNydHBfY2lwaGVy
X3R5cGVfdCBzcnRwX2Flc19nY21fMjU2X29wZW5zc2wgPSB7Citjb25zdCBzcnRwX2NpcGhlcl90
eXBlX3Qgc3J0cF9hZXNfZ2NtXzI1NiA9IHsKICAgICBzcnRwX2Flc19nY21fb3BlbnNzbF9hbGxv
YywKICAgICBzcnRwX2Flc19nY21fb3BlbnNzbF9kZWFsbG9jLAogICAgIHNydHBfYWVzX2djbV9v
cGVuc3NsX2NvbnRleHRfaW5pdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vY2lwaGVyL2Flc19pY21fb3Nz
bC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJz
cnRwL2NyeXB0by9jaXBoZXIvYWVzX2ljbV9vc3NsLmMKaW5kZXggYjU5MTg5NzYyM2JiMTY3YjFi
OWE5MzVhZTg2Y2MyZWRkODZiZWUxNS4uNDUxY2QxOGMwZDhjNGI3NmE1ZTMzZTBkMzAxODE1NTU3
MWYyNDlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9jaXBoZXIvYWVzX2ljbV9vc3NsLmMKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0
by9jaXBoZXIvYWVzX2ljbV9vc3NsLmMKQEAgLTUzLDcgKzUzLDcgQEAKICNlbmRpZgogCiAjaW5j
bHVkZSA8b3BlbnNzbC9ldnAuaD4KLSNpbmNsdWRlICJhZXNfaWNtX29zc2wuaCIKKyNpbmNsdWRl
ICJhZXNfaWNtX2V4dC5oIgogI2luY2x1ZGUgImNyeXB0b190eXBlcy5oIgogI2luY2x1ZGUgImVy
ci5oIiAvKiBmb3Igc3J0cF9kZWJ1ZyAqLwogI2luY2x1ZGUgImFsbG9jLmgiCkBAIC03OCw5ICs3
OCw5IEBAIHNydHBfZGVidWdfbW9kdWxlX3Qgc3J0cF9tb2RfYWVzX2ljbSA9IHsKICAqICstLS0t
LS0rLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tKyAgIHwK
ICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwKICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICArLS0tLS0tLS0tKwotICoJCQkJCQkJICB8IGVuY3J5cHQgfAotICoJCQkJCQkJ
ICArLS0tLS0tLS0tKwotICoJCQkJCQkJICAgICAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGVuY3J5cHQgfAorICogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0t
LS0rCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8CiAgKiArLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t
LS0rLS0tLS0tKy0tLS0tLSsgICB8CiAgKiB8ICAgICAgICAgICAgICAgICAgICBrZXlzdHJlYW0g
YmxvY2sgICAgICAgICAgICAgICAgICAgIHw8LS0rCiAgKiArLS0tLS0tKy0tLS0tLSstLS0tLS0r
LS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLSsKQEAgLTI0OCw2ICsyNDgsNyBAQCBz
dGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9hZXNfaWNtX29wZW5zc2xfY29udGV4dF9pbml0
KHZvaWQgKmN2LAogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBFVlBfQ0lQSEVSX0NUWF9j
bGVhbnVwKGMtPmN0eCk7CiAgICAgaWYgKCFFVlBfRW5jcnlwdEluaXRfZXgoYy0+Y3R4LCBldnAs
IE5VTEwsIGtleSwgTlVMTCkpIHsKICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19mYWls
OwogICAgIH0gZWxzZSB7CkBAIC0zMDgsNyArMzA5LDcgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1
c190IHNydHBfYWVzX2ljbV9vcGVuc3NsX2VuY3J5cHQodm9pZCAqY3YsCiAgICAgfQogICAgICpl
bmNfbGVuID0gbGVuOwogCi0gICAgaWYgKCFFVlBfRW5jcnlwdEZpbmFsX2V4KGMtPmN0eCwgYnVm
LCAmbGVuKSkgeworICAgIGlmICghRVZQX0VuY3J5cHRGaW5hbF9leChjLT5jdHgsIGJ1ZiArIGxl
biwgJmxlbikpIHsKICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19jaXBoZXJfZmFpbDsK
ICAgICB9CiAgICAgKmVuY19sZW4gKz0gbGVuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9jaXBoZXIvY2lw
aGVyLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xp
YnNydHAvY3J5cHRvL2NpcGhlci9jaXBoZXIuYwppbmRleCAxOWYwMGFiYzU1YmU2NmQ2MDc1ODYz
ZGM5Y2U1MGQyZTQ4NjNlNDVjLi5kZTkzYmM5MGQ4ZjMwM2JhMjA1ZTBhNTkzYmFkZjIwYjZlNGE4
OWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2xpYnNydHAvY3J5cHRvL2NpcGhlci9jaXBoZXIuYworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2NpcGhlci9j
aXBoZXIuYwpAQCAtNDksNiArNDksNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJjaXBoZXIuaCIK
KyNpbmNsdWRlICJjaXBoZXJfcHJpdi5oIgogI2luY2x1ZGUgImNyeXB0b190eXBlcy5oIgogI2lu
Y2x1ZGUgImVyci5oIiAgIC8qIGZvciBzcnRwX2RlYnVnICovCiAjaW5jbHVkZSAiYWxsb2MuaCIg
LyogZm9yIGNyeXB0b19hbGxvYygpLCBjcnlwdG9fZnJlZSgpICAqLwpAQCAtMTY1LDI0ICsxNjYs
MTEgQEAgaW50IHNydHBfY2lwaGVyX2dldF9rZXlfbGVuZ3RoKGNvbnN0IHNydHBfY2lwaGVyX3Qg
KmMpCiB9CiAKIC8qCi0gKiBBIHRyaXZpYWwgcGxhdGZvcm0gaW5kZXBlbmRlbnQgcmFuZG9tIHNv
dXJjZS4gIFRoZSByYW5kb20KLSAqIGRhdGEgaXMgdXNlZCBmb3Igc29tZSBvZiB0aGUgY2lwaGVy
IHNlbGYtdGVzdHMuCisgKiBBIHRyaXZpYWwgcGxhdGZvcm0gaW5kZXBlbmRlbnQgcmFuZG9tIHNv
dXJjZS4KKyAqIEZvciB1c2UgaW4gdGVzdCBvbmx5LgogICovCi1zdGF0aWMgc3J0cF9lcnJfc3Rh
dHVzX3Qgc3J0cF9jaXBoZXJfcmFuZCh2b2lkICpkZXN0LCB1aW50MzJfdCBsZW4pCit2b2lkIHNy
dHBfY2lwaGVyX3JhbmRfZm9yX3Rlc3RzKHZvaWQgKmRlc3QsIHVpbnQzMl90IGxlbikKIHsKLSNp
ZiBkZWZpbmVkKEhBVkVfUkFORF9TKQotICAgIHVpbnQ4X3QgKmRzdCA9ICh1aW50OF90ICopZGVz
dDsKLSAgICB3aGlsZSAobGVuKSB7Ci0gICAgICAgIHVuc2lnbmVkIGludCB2YWw7Ci0gICAgICAg
IGVycm5vX3QgZXJyID0gcmFuZF9zKCZ2YWwpOwotCi0gICAgICAgIGlmIChlcnIgIT0gMCkKLSAg
ICAgICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfZmFpbDsKLQotICAgICAgICAqZHN0Kysg
PSB2YWwgJiAweGZmOwotICAgICAgICBsZW4tLTsKLSAgICB9Ci0jZWxzZQogICAgIC8qIEdlbmVy
aWMgQy1saWJyYXJ5IChyYW5kKCkpIHZlcnNpb24gKi8KICAgICAvKiBUaGlzIGlzIGEgcmFuZG9t
IHNvdXJjZSBvZiBsYXN0IHJlc29ydCAqLwogICAgIHVpbnQ4X3QgKmRzdCA9ICh1aW50OF90ICop
ZGVzdDsKQEAgLTE5NCw4ICsxODIsMTcgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNydHBf
Y2lwaGVyX3JhbmQodm9pZCAqZGVzdCwgdWludDMyX3QgbGVuKQogICAgICAgICAqZHN0KysgPSB2
YWwgJiAweGZmOwogICAgICAgICBsZW4tLTsKICAgICB9Ci0jZW5kaWYKLSAgICByZXR1cm4gc3J0
cF9lcnJfc3RhdHVzX29rOworfQorCisvKgorICogQSB0cml2aWFsIHBsYXRmb3JtIGluZGVwZW5k
ZW50IDMyIGJpdCByYW5kb20gbnVtYmVyLgorICogRm9yIHVzZSBpbiB0ZXN0IG9ubHkuCisgKi8K
K3VpbnQzMl90IHNydHBfY2lwaGVyX3JhbmRfdTMyX2Zvcl90ZXN0cyh2b2lkKQoreworICAgIHVp
bnQzMl90IHI7CisgICAgc3J0cF9jaXBoZXJfcmFuZF9mb3JfdGVzdHMoJnIsIHNpemVvZihyKSk7
CisgICAgcmV0dXJuIHI7CiB9CiAKICNkZWZpbmUgU0VMRl9URVNUX0JVRl9PQ1RFVFMgMTI4CkBA
IC0yNDYsNyArMjQzLDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9jaXBoZXJfdHlwZV90ZXN0
KAogICAgICAgICAvKgogICAgICAgICAgKiB0ZXN0IHRoZSBlbmNyeXB0IGZ1bmN0aW9uCiAgICAg
ICAgICAqLwotICAgICAgICBkZWJ1Z19wcmludChzcnRwX21vZF9jaXBoZXIsICJ0ZXN0aW5nIGVu
Y3J5cHRpb24iLCBOVUxMKTsKKyAgICAgICAgZGVidWdfcHJpbnQwKHNydHBfbW9kX2NpcGhlciwg
InRlc3RpbmcgZW5jcnlwdGlvbiIpOwogCiAgICAgICAgIC8qIGluaXRpYWxpemUgY2lwaGVyICov
CiAgICAgICAgIHN0YXR1cyA9IHNydHBfY2lwaGVyX2luaXQoYywgdGVzdF9jYXNlLT5rZXkpOwpA
QCAtMzUwLDcgKzM0Nyw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfY2lwaGVyX3R5cGVfdGVz
dCgKICAgICAgICAgLyoKICAgICAgICAgICogdGVzdCB0aGUgZGVjcnlwdCBmdW5jdGlvbgogICAg
ICAgICAgKi8KLSAgICAgICAgZGVidWdfcHJpbnQoc3J0cF9tb2RfY2lwaGVyLCAidGVzdGluZyBk
ZWNyeXB0aW9uIiwgTlVMTCk7CisgICAgICAgIGRlYnVnX3ByaW50MChzcnRwX21vZF9jaXBoZXIs
ICJ0ZXN0aW5nIGRlY3J5cHRpb24iKTsKIAogICAgICAgICAvKiByZS1pbml0aWFsaXplIGNpcGhl
ciBmb3IgZGVjcnlwdGlvbiAqLwogICAgICAgICBzdGF0dXMgPSBzcnRwX2NpcGhlcl9pbml0KGMs
IHRlc3RfY2FzZS0+a2V5KTsKQEAgLTQ2NSwxMyArNDYyLDkgQEAgc3J0cF9lcnJfc3RhdHVzX3Qg
c3J0cF9jaXBoZXJfdHlwZV90ZXN0KAogICAgICAgICB1aW50OF90IGl2W01BWF9LRVlfTEVOXTsK
IAogICAgICAgICAvKiBjaG9vc2UgYSBsZW5ndGggYXQgcmFuZG9tIChsZWF2aW5nIHJvb20gZm9y
IElWIGFuZCBwYWRkaW5nKSAqLwotICAgICAgICBsZW5ndGggPSByYW5kKCkgJSAoU0VMRl9URVNU
X0JVRl9PQ1RFVFMgLSA2NCk7CisgICAgICAgIGxlbmd0aCA9IHNydHBfY2lwaGVyX3JhbmRfdTMy
X2Zvcl90ZXN0cygpICUgKFNFTEZfVEVTVF9CVUZfT0NURVRTIC0gNjQpOwogICAgICAgICBkZWJ1
Z19wcmludChzcnRwX21vZF9jaXBoZXIsICJyYW5kb20gcGxhaW50ZXh0IGxlbmd0aCAlZFxuIiwg
bGVuZ3RoKTsKLSAgICAgICAgc3RhdHVzID0gc3J0cF9jaXBoZXJfcmFuZChidWZmZXIsIGxlbmd0
aCk7Ci0gICAgICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgICAgIHNydHBfY2lwaGVyX2RlYWxs
b2MoYyk7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICB9CisgICAgICAgIHNy
dHBfY2lwaGVyX3JhbmRfZm9yX3Rlc3RzKGJ1ZmZlciwgbGVuZ3RoKTsKIAogICAgICAgICBkZWJ1
Z19wcmludChzcnRwX21vZF9jaXBoZXIsICJwbGFpbnRleHQ6ICAgICVzIiwKICAgICAgICAgICAg
ICAgICAgICAgc3J0cF9vY3RldF9zdHJpbmdfaGV4X3N0cmluZyhidWZmZXIsIGxlbmd0aCkpOwpA
QCAtNDg2LDE4ICs0NzksMTAgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9jaXBoZXJfdHlwZV90
ZXN0KAogICAgICAgICAgICAgc3J0cF9jaXBoZXJfZGVhbGxvYyhjKTsKICAgICAgICAgICAgIHJl
dHVybiBzcnRwX2Vycl9zdGF0dXNfY2FudF9jaGVjazsKICAgICAgICAgfQotICAgICAgICBzdGF0
dXMgPSBzcnRwX2NpcGhlcl9yYW5kKGtleSwgdGVzdF9jYXNlLT5rZXlfbGVuZ3RoX29jdGV0cyk7
Ci0gICAgICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgICAgIHNydHBfY2lwaGVyX2RlYWxsb2Mo
Yyk7Ci0gICAgICAgICAgICByZXR1cm4gc3RhdHVzOwotICAgICAgICB9CisgICAgICAgIHNydHBf
Y2lwaGVyX3JhbmRfZm9yX3Rlc3RzKGtleSwgdGVzdF9jYXNlLT5rZXlfbGVuZ3RoX29jdGV0cyk7
CiAKICAgICAgICAgLyogY2hvc2UgYSByYW5kb20gaW5pdGlhbGl6YXRpb24gdmVjdG9yICovCi0g
ICAgICAgIHN0YXR1cyA9IHNydHBfY2lwaGVyX3JhbmQoaXYsIE1BWF9LRVlfTEVOKTsKLSAgICAg
ICAgaWYgKHN0YXR1cykgewotICAgICAgICAgICAgc3J0cF9jaXBoZXJfZGVhbGxvYyhjKTsKLSAg
ICAgICAgICAgIHJldHVybiBzdGF0dXM7Ci0gICAgICAgIH0KKyAgICAgICAgc3J0cF9jaXBoZXJf
cmFuZF9mb3JfdGVzdHMoaXYsIE1BWF9LRVlfTEVOKTsKIAogICAgICAgICAvKiBpbml0aWFsaXpl
IGNpcGhlciAqLwogICAgICAgICBzdGF0dXMgPSBzcnRwX2NpcGhlcl9pbml0KGMsIGtleSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2xpYnNydHAvY3J5cHRvL2NpcGhlci9udWxsX2NpcGhlci5jIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9jaXBoZXIvbnVsbF9j
aXBoZXIuYwppbmRleCA2NTlhZGQwZDQ3NmQ0NmIzYTNhZmY1ZTAyOTVjMWMzMjIxOGU5YjRkLi45
Njk3MjQ2MTFjNDJhN2E3YjBjYTBmMzU5NjdhODRjMWI0ZGVlZTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRv
L2NpcGhlci9udWxsX2NpcGhlci5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vY2lwaGVyL251bGxfY2lwaGVyLmMKQEAg
LTk3LDcgKzk3LDcgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfbnVsbF9jaXBoZXJf
aW5pdCh2b2lkICpjdiwgY29uc3QgdWludDhfdCAqa2V5KQogewogICAgIC8qIHNydHBfbnVsbF9j
aXBoZXJfY3R4X3QgKmMgPSAoc3J0cF9udWxsX2NpcGhlcl9jdHhfdCAqKWN2OyAqLwogCi0gICAg
ZGVidWdfcHJpbnQoc3J0cF9tb2RfY2lwaGVyLCAiaW5pdGlhbGl6aW5nIG51bGwgY2lwaGVyIiwg
TlVMTCk7CisgICAgZGVidWdfcHJpbnQwKHNydHBfbW9kX2NpcGhlciwgImluaXRpYWxpemluZyBu
dWxsIGNpcGhlciIpOwogCiAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19vazsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGli
c3J0cC9jcnlwdG8vaW5jbHVkZS9hZXNfZ2NtLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvYWVzX2djbS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjRkNjAzMWY0YmQ4NzlkZTEyOWVjNGRjZjk0MGFmMjRlMzk2YjdiNjMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvYWVzX2djbS5oCkBAIC0wLDAgKzEsODkgQEAKKy8q
CisgKiBhZXNfZ2NtLmgKKyAqCisgKiBIZWFkZXIgZm9yIEFFUyBHYWxvaXMgQ291bnRlciBNb2Rl
LgorICoKKyAqIEpvaG4gQS4gRm9sZXkKKyAqIENpc2NvIFN5c3RlbXMsIEluYy4KKyAqCisgKi8K
Ky8qCisgKgorICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMTcsIENpc2NvIFN5c3RlbXMsIEluYy4K
KyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
CisgKiAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZAorICogICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogICBOZWl0
aGVyIHRoZSBuYW1lIG9mIHRoZSBDaXNjbyBTeXN0ZW1zLCBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAorICogICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQ09QWVJJR0hUIEhPTERFUlMgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQK
KyAqIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRl
ZiBBRVNfR0NNX0gKKyNkZWZpbmUgQUVTX0dDTV9ICisKKyNpbmNsdWRlICJjaXBoZXIuaCIKKyNp
bmNsdWRlICJzcnRwLmgiCisjaW5jbHVkZSAiZGF0YXR5cGVzLmgiCisKKyNpZmRlZiBPUEVOU1NM
CisKKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgorI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+CisK
K3R5cGVkZWYgc3RydWN0IHsKKyAgICBpbnQga2V5X3NpemU7CisgICAgaW50IHRhZ19sZW47Cisg
ICAgRVZQX0NJUEhFUl9DVFggKmN0eDsKKyAgICBzcnRwX2NpcGhlcl9kaXJlY3Rpb25fdCBkaXI7
Cit9IHNydHBfYWVzX2djbV9jdHhfdDsKKworI2VuZGlmIC8qIE9QRU5TU0wgKi8KKworI2lmZGVm
IE5TUworCisjaW5jbHVkZSA8bnNzLmg+CisjaW5jbHVkZSA8cGsxMXB1Yi5oPgorCisjZGVmaW5l
IE1BWF9BRF9TSVpFIDIwNDgKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIGludCBrZXlfc2l6ZTsK
KyAgICBpbnQgdGFnX3NpemU7CisgICAgc3J0cF9jaXBoZXJfZGlyZWN0aW9uX3QgZGlyOworICAg
IE5TU0luaXRDb250ZXh0ICpuc3M7CisgICAgUEsxMVN5bUtleSAqa2V5OworICAgIHVpbnQ4X3Qg
aXZbMTJdOworICAgIHVpbnQ4X3QgYWFkW01BWF9BRF9TSVpFXTsKKyAgICBpbnQgYWFkX3NpemU7
CisgICAgQ0tfR0NNX1BBUkFNUyBwYXJhbXM7CisgICAgdWludDhfdCB0YWdbMTZdOworfSBzcnRw
X2Flc19nY21fY3R4X3Q7CisKKyNlbmRpZiAvKiBOU1MgKi8KKworI2VuZGlmIC8qIEFFU19HQ01f
SCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2Flc19nY21fb3NzbC5oIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNs
dWRlL2Flc19nY21fb3NzbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNWI4M2Vl
ZWIwN2ZhN2Y4NzA4NzFlNTkyY2Q5ZGMwOWU3MGQwMGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vaW5jbHVkZS9hZXNfZ2NtX29zc2wuaAorKysg
L2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBhZXNfZ2NtX29zc2wuaAotICoKLSAq
IEhlYWRlciBmb3IgQUVTIEdhbG9pcyBDb3VudGVyIE1vZGUuCi0gKgotICogSm9obiBBLiBGb2xl
eQotICogQ2lzY28gU3lzdGVtcywgSW5jLgotICoKLSAqLwotLyoKLSAqCi0gKiBDb3B5cmlnaHQg
KGMpIDIwMTMtMjAxNywgQ2lzY28gU3lzdGVtcywgSW5jLgotICogQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAg
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqCi0gKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgZGlzY2xhaW1lciBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkCi0gKiAgIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiAgIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIENp
c2NvIFN5c3RlbXMsIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqICAgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAg
IGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAqIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFCi0gKiBDT1BZUklHSFQgSE9MREVSUyBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULAotICogSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSAqIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotICog
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULAotICogU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRAotICogT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICoKLSAqLwotCi0jaWZuZGVmIEFFU19HQ01fT1NTTF9ICi0jZGVm
aW5lIEFFU19HQ01fT1NTTF9ICi0KLSNpbmNsdWRlICJjaXBoZXIuaCIKLSNpbmNsdWRlICJzcnRw
LmgiCi0jaW5jbHVkZSAiZGF0YXR5cGVzLmgiCi0jaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KLSNp
bmNsdWRlIDxvcGVuc3NsL2Flcy5oPgotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgaW50IGtleV9z
aXplOwotICAgIGludCB0YWdfbGVuOwotICAgIEVWUF9DSVBIRVJfQ1RYICpjdHg7Ci0gICAgc3J0
cF9jaXBoZXJfZGlyZWN0aW9uX3QgZGlyOwotfSBzcnRwX2Flc19nY21fY3R4X3Q7Ci0KLSNlbmRp
ZiAvKiBBRVNfR0NNX09TU0xfSCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2Flc19pY21f
ZXh0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xp
YnNydHAvY3J5cHRvL2luY2x1ZGUvYWVzX2ljbV9leHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZDMwNmRkY2E1
YjM5ZGYzNDBiMmQ2MWFlYTdkYmM5YzUwZjJlMzg3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9p
bmNsdWRlL2Flc19pY21fZXh0LmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIGFlc19pY20uaAor
ICoKKyAqIEhlYWRlciBmb3IgQUVTIEludGVnZXIgQ291bnRlciBNb2RlLgorICoKKyAqIERhdmlk
IEEuIE1jR3JldworICogQ2lzY28gU3lzdGVtcywgSW5jLgorICoKKyAqLworLyoKKyAqCisgKiBD
b3B5cmlnaHQgKGMpIDIwMDEtMjAxNywgQ2lzY28gU3lzdGVtcywgSW5jLgorICogQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAgIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAgIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
CisgKiAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiAgIE5laXRoZXIgdGhlIG5hbWUg
b2YgdGhlIENpc2NvIFN5c3RlbXMsIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqICAgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MKKyAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFCisgKiBDT1BZUklHSFQgSE9MREVSUyBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULAorICogSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULAorICogU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRAorICogT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLworCisjaWZuZGVmIEFFU19JQ01fSAor
I2RlZmluZSBBRVNfSUNNX0gKKworI2luY2x1ZGUgImNpcGhlci5oIgorI2luY2x1ZGUgImRhdGF0
eXBlcy5oIgorCisjaWZkZWYgT1BFTlNTTAorCisjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KKyNp
bmNsdWRlIDxvcGVuc3NsL2Flcy5oPgorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdjEyOF90IGNv
dW50ZXI7IC8qIGhvbGRzIHRoZSBjb3VudGVyIHZhbHVlICAgICAgICAgICovCisgICAgdjEyOF90
IG9mZnNldDsgIC8qIGluaXRpYWwgb2Zmc2V0IHZhbHVlICAgICAgICAgICAgICovCisgICAgaW50
IGtleV9zaXplOworICAgIEVWUF9DSVBIRVJfQ1RYICpjdHg7Cit9IHNydHBfYWVzX2ljbV9jdHhf
dDsKKworI2VuZGlmIC8qIE9QRU5TU0wgKi8KKworI2lmZGVmIE5TUworCisjaW5jbHVkZSA8bnNz
Lmg+CisjaW5jbHVkZSA8cGsxMXB1Yi5oPgorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgdjEyOF90
IGNvdW50ZXI7CisgICAgdjEyOF90IG9mZnNldDsKKyAgICBpbnQga2V5X3NpemU7CisgICAgdWlu
dDhfdCBpdlsxNl07CisgICAgTlNTSW5pdENvbnRleHQgKm5zczsKKyAgICBQSzExU3ltS2V5ICpr
ZXk7CisgICAgUEsxMUNvbnRleHQgKmN0eDsKK30gc3J0cF9hZXNfaWNtX2N0eF90OworCisjZW5k
aWYgLyogTlNTICovCisKKyNlbmRpZiAvKiBBRVNfSUNNX0ggKi8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8v
aW5jbHVkZS9hZXNfaWNtX29zc2wuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vaW5jbHVkZS9hZXNfaWNtX29zc2wuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzRhYWUzNzZlNmQ3M2M2ZWM0Y2Q3MjRiOThhMjRh
Y2NmZTFkMWNjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAv
Y3J5cHRvL2luY2x1ZGUvYWVzX2ljbV9vc3NsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCww
IEBACi0vKgotICogYWVzX2ljbS5oCi0gKgotICogSGVhZGVyIGZvciBBRVMgSW50ZWdlciBDb3Vu
dGVyIE1vZGUuCi0gKgotICogRGF2aWQgQS4gTWNHcmV3Ci0gKiBDaXNjbyBTeXN0ZW1zLCBJbmMu
Ci0gKgotICovCi0vKgotICoKLSAqIENvcHlyaWdodCAoYykgMjAwMS0yMDE3LCBDaXNjbyBTeXN0
ZW1zLCBJbmMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqICAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICoKLSAq
ICAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZwotICogICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKLSAqICAgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqICAgTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgQ2lzY28gU3lzdGVtcywgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICogICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUwotICogRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSAqIENPUFlSSUdIVCBIT0xERVJT
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsCi0gKiBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgotICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0gKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsCi0gKiBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VECi0gKiBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKgotICov
Ci0KLSNpZm5kZWYgQUVTX0lDTV9ICi0jZGVmaW5lIEFFU19JQ01fSAotCi0jaW5jbHVkZSAiY2lw
aGVyLmgiCi0jaW5jbHVkZSAiZGF0YXR5cGVzLmgiCi0jaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4K
LSNpbmNsdWRlIDxvcGVuc3NsL2Flcy5oPgotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgdjEyOF90
IGNvdW50ZXI7IC8qIGhvbGRzIHRoZSBjb3VudGVyIHZhbHVlICAgICAgICAgICovCi0gICAgdjEy
OF90IG9mZnNldDsgIC8qIGluaXRpYWwgb2Zmc2V0IHZhbHVlICAgICAgICAgICAgICovCi0gICAg
aW50IGtleV9zaXplOwotICAgIEVWUF9DSVBIRVJfQ1RYICpjdHg7Ci19IHNydHBfYWVzX2ljbV9j
dHhfdDsKLQotI2VuZGlmIC8qIEFFU19JQ01fSCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRl
L2NpcGhlcl9wcml2LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvY2lwaGVyX3ByaXYuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
Njg0OGVhN2M2NDJlNmZiMDFjMGYyY2YyYjIyNTU2NmI3NzhhYmZjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRw
L2NyeXB0by9pbmNsdWRlL2NpcGhlcl9wcml2LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqCisg
KiBDb3B5cmlnaHQoYykgMjAwMS0yMDE3IENpc2NvIFN5c3RlbXMsIEluYy4KKyAqIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgIGRpc2Ns
YWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZAorICogICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogICBOZWl0aGVyIHRoZSBuYW1l
IG9mIHRoZSBDaXNjbyBTeXN0ZW1zLCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiAgIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZAorICogICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTCisgKiBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRQorICogQ09QWVJJR0hUIEhPTERFUlMgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwKKyAqIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwKKyAqIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQKKyAqIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRlZiBTUlRQX0NJSFBF
Ul9QUklWX0gKKyNkZWZpbmUgU1JUUF9DSUhQRVJfUFJJVl9ICisKKyNpbmNsdWRlICJjaXBoZXIu
aCIKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKgorICog
QSB0cml2aWFsIHBsYXRmb3JtIGluZGVwZW5kZW50IHJhbmRvbSBzb3VyY2UuCisgKiBGb3IgdXNl
IGluIHRlc3Qgb25seS4KKyAqLwordm9pZCBzcnRwX2NpcGhlcl9yYW5kX2Zvcl90ZXN0cyh2b2lk
ICpkZXN0LCB1aW50MzJfdCBsZW4pOworCisvKgorICogQSB0cml2aWFsIHBsYXRmb3JtIGluZGVw
ZW5kZW50IDMyIGJpdCByYW5kb20gbnVtYmVyLgorICogRm9yIHVzZSBpbiB0ZXN0IG9ubHkuCisg
Ki8KK3VpbnQzMl90IHNydHBfY2lwaGVyX3JhbmRfdTMyX2Zvcl90ZXN0cyh2b2lkKTsKKworI2lm
ZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFNSVFBfQ0lQSEVSX1BSSVZf
SCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2NpcGhlcl90eXBlcy5oIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNs
dWRlL2NpcGhlcl90eXBlcy5oCmluZGV4IGE1NDNiNTQ3OGJhMmQ2NWE2YjFkMmIwMDIzMzJkOTEy
NGVhMWE5MGMuLjllZmRhZjJhNzk4MTJiOWFkMTllZDFjZmQ3MzcxOTM0OTBlMzEwN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGli
c3J0cC9jcnlwdG8vaW5jbHVkZS9jaXBoZXJfdHlwZXMuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvY2lw
aGVyX3R5cGVzLmgKQEAgLTQ3LDEwICs0NywxMCBAQAogZXh0ZXJuIGNvbnN0IHNydHBfY2lwaGVy
X3R5cGVfdCBzcnRwX251bGxfY2lwaGVyOwogZXh0ZXJuIGNvbnN0IHNydHBfY2lwaGVyX3R5cGVf
dCBzcnRwX2Flc19pY21fMTI4OwogZXh0ZXJuIGNvbnN0IHNydHBfY2lwaGVyX3R5cGVfdCBzcnRw
X2Flc19pY21fMjU2OwotI2lmZGVmIE9QRU5TU0wKIGV4dGVybiBjb25zdCBzcnRwX2NpcGhlcl90
eXBlX3Qgc3J0cF9hZXNfaWNtXzE5MjsKLWV4dGVybiBjb25zdCBzcnRwX2NpcGhlcl90eXBlX3Qg
c3J0cF9hZXNfZ2NtXzEyOF9vcGVuc3NsOwotZXh0ZXJuIGNvbnN0IHNydHBfY2lwaGVyX3R5cGVf
dCBzcnRwX2Flc19nY21fMjU2X29wZW5zc2w7CisjaWZkZWYgR0NNCitleHRlcm4gY29uc3Qgc3J0
cF9jaXBoZXJfdHlwZV90IHNydHBfYWVzX2djbV8xMjg7CitleHRlcm4gY29uc3Qgc3J0cF9jaXBo
ZXJfdHlwZV90IHNydHBfYWVzX2djbV8yNTY7CiAjZW5kaWYKIAogLyoKQEAgLTc0LDYgKzc0LDkg
QEAgZXh0ZXJuIHNydHBfZGVidWdfbW9kdWxlX3Qgc3J0cF9tb2RfYWVzX2ljbTsKICNpZmRlZiBP
UEVOU1NMCiBleHRlcm4gc3J0cF9kZWJ1Z19tb2R1bGVfdCBzcnRwX21vZF9hZXNfZ2NtOwogI2Vu
ZGlmCisjaWZkZWYgTlNTCitleHRlcm4gc3J0cF9kZWJ1Z19tb2R1bGVfdCBzcnRwX21vZF9hZXNf
Z2NtOworI2VuZGlmCiAKIC8qIGRlYnVnIG1vZHVsZXMgZm9yIGF1dGggdHlwZXMgKi8KIGV4dGVy
biBzcnRwX2RlYnVnX21vZHVsZV90IHNydHBfbW9kX2htYWM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2lu
Y2x1ZGUvZGF0YXR5cGVzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvZGF0YXR5cGVzLmgKaW5kZXggMTgyY2Nh
MjViOWQxYmY3NjAxOTg2MWU1NDBiNTNlOWUzZjljM2ZiZC4uNmE1ODhkMGU5MmQzYThkMzNiZGY1
YWYyM2Y5MjU5Yjk4M2Q1YzIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2RhdGF0eXBlcy5o
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGli
c3J0cC9jcnlwdG8vaW5jbHVkZS9kYXRhdHlwZXMuaApAQCAtMjQxLDEzICsyNDEsMTMgQEAgdm9p
ZCB2MTI4X3NldF9iaXRfdG8odjEyOF90ICp4LCBpbnQgaSwgaW50IHkpOwogI2VuZGlmIC8qIERB
VEFUWVBFU19VU0VfTUFDUk9TICovCiAKIC8qCi0gKiBvY3RldF9zdHJpbmdfaXNfZXEoYSwgYiwg
bGVuKSByZXR1cm5zIDEgaWYgdGhlIGxlbmd0aCBsZW4gc3RyaW5ncyBhCi0gKiBhbmQgYiBhcmUg
bm90IGVxdWFsLiBJdCByZXR1cm5zIDAgb3RoZXJ3aXNlLiBUaGUgcnVubmluZyB0aW1lIG9mIHRo
ZQorICogc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEoYSwgYiwgbGVuKSByZXR1cm5zIDEgaWYgdGhl
IGxlbmd0aCBsZW4gc3RyaW5ncworICogYSBhbmQgYiBhcmUgbm90IGVxdWFsLiBJdCByZXR1cm5z
IDAgb3RoZXJ3aXNlLiBUaGUgcnVubmluZyB0aW1lIG9mIHRoZQogICogY29tcGFyaXNvbiBkZXBl
bmRzIG9ubHkgb24gbGVuLCBtYWtpbmcgdGhpcyBzYWZlIHRvIHVzZSBmb3IgKGUuZy4pCiAgKiB2
ZXJpZnlpbmcgYXV0aGVudGljYXRpb24gdGFncy4KICAqLwogCi1pbnQgb2N0ZXRfc3RyaW5nX2lz
X2VxKHVpbnQ4X3QgKmEsIHVpbnQ4X3QgKmIsIGludCBsZW4pOworaW50IHNydHBfb2N0ZXRfc3Ry
aW5nX2lzX2VxKHVpbnQ4X3QgKmEsIHVpbnQ4X3QgKmIsIGludCBsZW4pOwogCiAvKgogICogQSBw
b3J0YWJsZSB3YXkgdG8gemVybyBvdXQgbWVtb3J5IGFzIHJlY29tbWVuZGVkIGJ5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNy
dHAvY3J5cHRvL2luY2x1ZGUvZXJyLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2luY2x1ZGUvZXJyLmgKaW5kZXggNjZhMTAy
M2VjODY5MWRjYTNmMTgwZmYwNWYwYzEzZjgxOTViZjg1Yy4uMzI2ZjVlOTZiNzdjZDg3NzZmMGI0
YTRkNTNiYTg3OGMzZmU1MmZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9pbmNsdWRlL2Vyci5oCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9j
cnlwdG8vaW5jbHVkZS9lcnIuaApAQCAtMTA5LDYgKzEwOSw4IEBAIHR5cGVkZWYgc3RydWN0IHsK
IAogI2lmZGVmIEVOQUJMRV9ERUJVR19MT0dHSU5HCiAKKyNkZWZpbmUgZGVidWdfcHJpbnQwKG1v
ZCwgZm9ybWF0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc
CisgICAgc3J0cF9lcnJfcmVwb3J0KHNydHBfZXJyX2xldmVsX2RlYnVnLCAoIiVzOiAiIGZvcm1h
dCAiXG4iKSwgbW9kLm5hbWUpCiAjZGVmaW5lIGRlYnVnX3ByaW50KG1vZCwgZm9ybWF0LCBhcmcp
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHNydHBfZXJy
X3JlcG9ydChzcnRwX2Vycl9sZXZlbF9kZWJ1ZywgKCIlczogIiBmb3JtYXQgIlxuIiksIG1vZC5u
YW1lLCBhcmcpCiAjZGVmaW5lIGRlYnVnX3ByaW50Mihtb2QsIGZvcm1hdCwgYXJnMSwgYXJnMikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTE3LDYgKzExOSw5IEBAIHR5
cGVkZWYgc3RydWN0IHsKIAogI2Vsc2UKIAorI2RlZmluZSBkZWJ1Z19wcmludDAobW9kLCBmb3Jt
YXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBp
ZiAobW9kLm9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgc3J0cF9lcnJfcmVwb3J0KHNydHBfZXJyX2xldmVsX2Rl
YnVnLCAoIiVzOiAiIGZvcm1hdCAiXG4iKSwgbW9kLm5hbWUpCiAjZGVmaW5lIGRlYnVnX3ByaW50
KG1vZCwgZm9ybWF0LCBhcmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgIGlmIChtb2Qub24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBzcnRwX2Vycl9yZXBvcnQoc3J0cF9l
cnJfbGV2ZWxfZGVidWcsICgiJXM6ICIgZm9ybWF0ICJcbiIpLCBtb2QubmFtZSwgYXJnKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9s
aWJzcnRwL2NyeXB0by9rZXJuZWwvYWxsb2MuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8va2VybmVsL2FsbG9jLmMKaW5kZXgg
ZGJlNTgyNjZmNDNhNjg0OWVkOTY1YWM3Zjc4N2FmZmQwZTJhODIyMS4uM2ViYzMxNTI1OTExYWU5
ZDNiMDlhNjIyYmZiOGFlNTc1NmUxZjMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9rZXJuZWwvYWxsb2Mu
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xp
YnNydHAvY3J5cHRvL2tlcm5lbC9hbGxvYy5jCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgKnNydHBf
Y3J5cHRvX2FsbG9jKHNpemVfdCBzaXplKQogICAgIGlmIChwdHIpIHsKICAgICAgICAgZGVidWdf
cHJpbnQoc3J0cF9tb2RfYWxsb2MsICIobG9jYXRpb246ICVwKSBhbGxvY2F0ZWQiLCBwdHIpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIGRlYnVnX3ByaW50KHNydHBfbW9kX2FsbG9jLCAiYWxsb2Nh
dGlvbiBmYWlsZWQgKGFza2VkIGZvciAlZCBieXRlcylcbiIsCisgICAgICAgIGRlYnVnX3ByaW50
KHNydHBfbW9kX2FsbG9jLCAiYWxsb2NhdGlvbiBmYWlsZWQgKGFza2VkIGZvciAlenUgYnl0ZXMp
XG4iLAogICAgICAgICAgICAgICAgICAgICBzaXplKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlw
dG8va2VybmVsL2NyeXB0b19rZXJuZWwuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8va2VybmVsL2NyeXB0b19rZXJuZWwuYwpp
bmRleCBhYjQ0OTJlOGE2NDQ3ODA4ZDJiNTVlMGI4N2ZmYjE0YjgxY2EyZTYzLi5kZjZhZjdkYTg4
OWY2OGM3YjU2NjQ3Yzk3NTkwNGM5NDM4YjQxN2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL2tlcm5lbC9j
cnlwdG9fa2VybmVsLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90
aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9rZXJuZWwvY3J5cHRvX2tlcm5lbC5jCkBAIC0xMzAs
MTggKzEzMCwxOCBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX2NyeXB0b19rZXJuZWxfaW5pdCgp
CiAgICAgaWYgKHN0YXR1cykgewogICAgICAgICByZXR1cm4gc3RhdHVzOwogICAgIH0KLSNpZmRl
ZiBPUEVOU1NMCisjaWZkZWYgR0NNCiAgICAgc3RhdHVzID0gc3J0cF9jcnlwdG9fa2VybmVsX2xv
YWRfY2lwaGVyX3R5cGUoJnNydHBfYWVzX2ljbV8xOTIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU1JUUF9BRVNfSUNNXzE5Mik7CiAgICAgaWYgKHN0
YXR1cykgewogICAgICAgICByZXR1cm4gc3RhdHVzOwogICAgIH0KLSAgICBzdGF0dXMgPSBzcnRw
X2NyeXB0b19rZXJuZWxfbG9hZF9jaXBoZXJfdHlwZSgmc3J0cF9hZXNfZ2NtXzEyOF9vcGVuc3Ns
LAorICAgIHN0YXR1cyA9IHNydHBfY3J5cHRvX2tlcm5lbF9sb2FkX2NpcGhlcl90eXBlKCZzcnRw
X2Flc19nY21fMTI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFNSVFBfQUVTX0dDTV8xMjgpOwogICAgIGlmIChzdGF0dXMpIHsKICAgICAgICAgcmV0
dXJuIHN0YXR1czsKICAgICB9Ci0gICAgc3RhdHVzID0gc3J0cF9jcnlwdG9fa2VybmVsX2xvYWRf
Y2lwaGVyX3R5cGUoJnNydHBfYWVzX2djbV8yNTZfb3BlbnNzbCwKKyAgICBzdGF0dXMgPSBzcnRw
X2NyeXB0b19rZXJuZWxfbG9hZF9jaXBoZXJfdHlwZSgmc3J0cF9hZXNfZ2NtXzI1NiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUlRQX0FFU19HQ01f
MjU2KTsKICAgICBpZiAoc3RhdHVzKSB7CiAgICAgICAgIHJldHVybiBzdGF0dXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNy
dHAvY3J5cHRvL2tlcm5lbC9lcnIuYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8va2VybmVsL2Vyci5jCmluZGV4IGY0NDM1NDll
NWE0NDEzNmVmMmEwMTQxODlhZTY3ZDBmMDZkM2U3Y2YuLjlkYjViZmI0MzI3Njg4MzU4YzcyYjZl
NGI3MzI0ZGM1N2M0ZDViY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8va2VybmVsL2Vyci5jCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlw
dG8va2VybmVsL2Vyci5jCkBAIC04MCw2ICs4MCw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBf
aW5zdGFsbF9lcnJfcmVwb3J0X2hhbmRsZXIoCiAKIHZvaWQgc3J0cF9lcnJfcmVwb3J0KHNydHBf
ZXJyX3JlcG9ydGluZ19sZXZlbF90IGxldmVsLCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKIHsK
KyAgICBjaGFyIG1zZ1s1MTJdOwogICAgIHZhX2xpc3QgYXJnczsKICAgICBpZiAoc3J0cF9lcnJf
ZmlsZSAhPSBOVUxMKSB7CiAgICAgICAgIHZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7CkBAIC04OCw3
ICs4OSw2IEBAIHZvaWQgc3J0cF9lcnJfcmVwb3J0KHNydHBfZXJyX3JlcG9ydGluZ19sZXZlbF90
IGxldmVsLCBjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKICAgICB9CiAgICAgaWYgKHNydHBfZXJy
X3JlcG9ydF9oYW5kbGVyICE9IE5VTEwpIHsKICAgICAgICAgdmFfc3RhcnQoYXJncywgZm9ybWF0
KTsKLSAgICAgICAgY2hhciBtc2dbNTEyXTsKICAgICAgICAgaWYgKHZzbnByaW50Zihtc2csIHNp
emVvZihtc2cpLCBmb3JtYXQsIGFyZ3MpID4gMCkgewogICAgICAgICAgICAgLyogc3RyaXAgdHJh
aWxpbmcgXG4sIGNhbGxiYWNrIHNob3VsZCBub3QgaGF2ZSBvbmUgKi8KICAgICAgICAgICAgIHNp
emVfdCBsID0gc3RybGVuKG1zZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL21hdGgvZGF0YXR5cGVzLmMg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAv
Y3J5cHRvL21hdGgvZGF0YXR5cGVzLmMKaW5kZXggYzBkZmVjZTY1OWQ3NzRiYmRkOGQwNjQ4NDgz
ZWJiZjIxNGZjZTgyMS4uMTAxNTg4OGFlZGZjYjlhYWRmNGMyYzk3Y2Y4ZGQ3OWNmYTY2ZDA4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9saWJzcnRwL2NyeXB0by9tYXRoL2RhdGF0eXBlcy5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vbWF0aC9kYXRhdHlw
ZXMuYwpAQCAtNzgsOCArNzgsOCBAQCBpbnQgb2N0ZXRfZ2V0X3dlaWdodCh1aW50OF90IG9jdGV0
KQogICovCiAKIC8qIHRoZSB2YWx1ZSBNQVhfUFJJTlRfU1RSSU5HX0xFTiBpcyBkZWZpbmVkIGlu
IGRhdGF0eXBlcy5oICovCi0KLWNoYXIgYml0X3N0cmluZ1tNQVhfUFJJTlRfU1RSSU5HX0xFTl07
CisvKiBpbmNsdWRlIHNwYWNlIGZvciBudWxsIHRlcm1pbmF0b3IgKi8KK3N0YXRpYyBjaGFyIGJp
dF9zdHJpbmdbTUFYX1BSSU5UX1NUUklOR19MRU4gKyAxXTsKIAogdWludDhfdCBzcnRwX25pYmJs
ZV90b19oZXhfY2hhcih1aW50OF90IG5pYmJsZSkKIHsKQEAgLTQxMCw3ICs0MTAsNyBAQCB2b2lk
IGJpdHZlY3Rvcl9sZWZ0X3NoaWZ0KGJpdHZlY3Rvcl90ICp4LCBpbnQgc2hpZnQpCiAgICAgICAg
IHgtPndvcmRbaV0gPSAwOwogfQogCi1pbnQgb2N0ZXRfc3RyaW5nX2lzX2VxKHVpbnQ4X3QgKmEs
IHVpbnQ4X3QgKmIsIGludCBsZW4pCitpbnQgc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEodWludDhf
dCAqYSwgdWludDhfdCAqYiwgaW50IGxlbikKIHsKICAgICB1aW50OF90ICplbmQgPSBiICsgbGVu
OwogICAgIHVpbnQ4X3QgYWNjdW11bGF0b3IgPSAwOwpAQCAtNDM2LDcgKzQzNiw3IEBAIHZvaWQg
c3J0cF9jbGVhbnNlKHZvaWQgKnMsIHNpemVfdCBsZW4pCiAKIHZvaWQgb2N0ZXRfc3RyaW5nX3Nl
dF90b196ZXJvKHZvaWQgKnMsIHNpemVfdCBsZW4pCiB7Ci0jaWZkZWYgT1BFTlNTTAorI2lmIGRl
ZmluZWQoT1BFTlNTTCkgJiYgIWRlZmluZWQoT1BFTlNTTF9DTEVBTlNFX0JST0tFTikKICAgICBP
UEVOU1NMX2NsZWFuc2UocywgbGVuKTsKICNlbHNlCiAgICAgc3J0cF9jbGVhbnNlKHMsIGxlbik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2xpYnNydHAvY3J5cHRvL21hdGgvc3RhdC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9tYXRoL3N0YXQuYwppbmRleCA2
ZGQzMzJiMGNmNTM2YzUzYTE0ZTNlN2NiNmUyNmZkNjJhNDBiNzZiLi5kMzAwNDUzNTdiNGE0ZTI4
OWU4NTA2NWZiMTgxZGQwNjE2ZTUzNmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL21hdGgvc3RhdC5jCisr
KyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0
cC9jcnlwdG8vbWF0aC9zdGF0LmMKQEAgLTE5Niw3ICsxOTYsNyBAQCBzcnRwX2Vycl9zdGF0dXNf
dCBzdGF0X3Rlc3RfcnVucyh1aW50OF90ICpkYXRhKQogICAgIH0KIAogICAgIGlmIChzcnRwX21v
ZF9zdGF0Lm9uKSB7Ci0gICAgICAgIGRlYnVnX3ByaW50KHNydHBfbW9kX3N0YXQsICJydW5zIHRl
c3QiLCBOVUxMKTsKKyAgICAgICAgZGVidWdfcHJpbnQwKHNydHBfbW9kX3N0YXQsICJydW5zIHRl
c3QiKTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IDY7IGkrKykKICAgICAgICAgICAgIGRlYnVn
X3ByaW50KHNydHBfbW9kX3N0YXQsICIgIHJ1bnNbXTogJWQiLCBydW5zW2ldKTsKICAgICAgICAg
Zm9yIChpID0gMDsgaSA8IDY7IGkrKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vcmVwbGF5L3V0X3NpbS5j
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRw
L2NyeXB0by9yZXBsYXkvdXRfc2ltLmMKaW5kZXggYzYyMWMwZTlmMjI1OWMxNTQwODE3YjBkZGY3
YzE3ZGY5MDNiNTI5Mi4uMjgyNWI2OGRmOTE0MjhmOGI3YmFhNTk3Y2NjODdhMTQ4MDE4OWY3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9saWJzcnRwL2NyeXB0by9yZXBsYXkvdXRfc2ltLmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by9yZXBsYXkvdXRfc2lt
LmMKQEAgLTQ5LDEwICs0OSwxMyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJ1dF9zaW0uaCIKKyNp
bmNsdWRlICJjaXBoZXJfcHJpdi5oIgogCiBpbnQgdXRfY29tcGFyKGNvbnN0IHZvaWQgKmEsIGNv
bnN0IHZvaWQgKmIpCiB7Ci0gICAgcmV0dXJuIHJhbmQoKSA+IChSQU5EX01BWCAvIDIpID8gLTEg
OiAxOworICAgIHVpbnQ4X3QgcjsKKyAgICBzcnRwX2NpcGhlcl9yYW5kX2Zvcl90ZXN0cygmciwg
c2l6ZW9mKHIpKTsKKyAgICByZXR1cm4gciA+IChVSU5UOF9NQVggLyAyKSA/IC0xIDogMTsKIH0K
IAogdm9pZCB1dF9pbml0KHV0X2Nvbm5lY3Rpb24gKnV0YykKZGlmZiAtLWdpdCBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vdGVz
dC9jaXBoZXJfZHJpdmVyLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3Ro
aXJkX3BhcnR5L2xpYnNydHAvY3J5cHRvL3Rlc3QvY2lwaGVyX2RyaXZlci5jCmluZGV4IGUyOGY1
ZjI2NGY4ZGEzNjVjYWI2ZmQ2Y2U5NmM2OTY0OTIzY2Y5ZjMuLjgyMTlhMDYxODA2MzAwNmE5MjJm
YzFiNGZlYmFlM2U3NzBlN2FkM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vdGVzdC9jaXBoZXJfZHJpdmVy
LmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9s
aWJzcnRwL2NyeXB0by90ZXN0L2NpcGhlcl9kcml2ZXIuYwpAQCAtNDcsMTMgKzQ3LDEzIEBACiAj
aW5jbHVkZSA8Y29uZmlnLmg+CiAjZW5kaWYKIAotI2luY2x1ZGUgPHN0ZGlvLmg+ICAvKiBmb3Ig
cHJpbnRmKCkgKi8KLSNpbmNsdWRlIDxzdGRsaWIuaD4gLyogZm9yIHJhbmQoKSAqLworI2luY2x1
ZGUgPHN0ZGlvLmg+IC8qIGZvciBwcmludGYoKSAqLwogI2luY2x1ZGUgImdldG9wdF9zLmgiCiAj
aW5jbHVkZSAiY2lwaGVyLmgiCi0jaWZkZWYgT1BFTlNTTAotI2luY2x1ZGUgImFlc19pY21fb3Nz
bC5oIgotI2luY2x1ZGUgImFlc19nY21fb3NzbC5oIgorI2luY2x1ZGUgImNpcGhlcl9wcml2Lmgi
CisjaWZkZWYgR0NNCisjaW5jbHVkZSAiYWVzX2ljbV9leHQuaCIKKyNpbmNsdWRlICJhZXNfZ2Nt
LmgiCiAjZWxzZQogI2luY2x1ZGUgImFlc19pY20uaCIKICNlbmRpZgpAQCAtMTE4LDEwICsxMTgs
MTAgQEAgdm9pZCBjaGVja19zdGF0dXMoc3J0cF9lcnJfc3RhdHVzX3QgcykKIGV4dGVybiBzcnRw
X2NpcGhlcl90eXBlX3Qgc3J0cF9udWxsX2NpcGhlcjsKIGV4dGVybiBzcnRwX2NpcGhlcl90eXBl
X3Qgc3J0cF9hZXNfaWNtXzEyODsKIGV4dGVybiBzcnRwX2NpcGhlcl90eXBlX3Qgc3J0cF9hZXNf
aWNtXzI1NjsKLSNpZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NNCiBleHRlcm4gc3J0cF9jaXBoZXJf
dHlwZV90IHNydHBfYWVzX2ljbV8xOTI7Ci1leHRlcm4gc3J0cF9jaXBoZXJfdHlwZV90IHNydHBf
YWVzX2djbV8xMjhfb3BlbnNzbDsKLWV4dGVybiBzcnRwX2NpcGhlcl90eXBlX3Qgc3J0cF9hZXNf
Z2NtXzI1Nl9vcGVuc3NsOworZXh0ZXJuIHNydHBfY2lwaGVyX3R5cGVfdCBzcnRwX2Flc19nY21f
MTI4OworZXh0ZXJuIHNydHBfY2lwaGVyX3R5cGVfdCBzcnRwX2Flc19nY21fMjU2OwogI2VuZGlm
CiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCkBAIC0xODcsMjEgKzE4NywxOSBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICAgICAgY2lwaGVyX2Ry
aXZlcl90ZXN0X2FycmF5X3Rocm91Z2hwdXQoCiAgICAgICAgICAgICAgICAgJnNydHBfYWVzX2lj
bV8yNTYsIFNSVFBfQUVTX0lDTV8yNTZfS0VZX0xFTl9XU0FMVCwgbnVtX2NpcGhlcik7CiAKLSNp
ZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NNCiAgICAgICAgIGZvciAobnVtX2NpcGhlciA9IDE7IG51
bV9jaXBoZXIgPCBtYXhfbnVtX2NpcGhlcjsgbnVtX2NpcGhlciAqPSA4KQogICAgICAgICAgICAg
Y2lwaGVyX2RyaXZlcl90ZXN0X2FycmF5X3Rocm91Z2hwdXQoCiAgICAgICAgICAgICAgICAgJnNy
dHBfYWVzX2ljbV8xOTIsIFNSVFBfQUVTX0lDTV8xOTJfS0VZX0xFTl9XU0FMVCwgbnVtX2NpcGhl
cik7CiAKICAgICAgICAgZm9yIChudW1fY2lwaGVyID0gMTsgbnVtX2NpcGhlciA8IG1heF9udW1f
Y2lwaGVyOyBudW1fY2lwaGVyICo9IDgpIHsKLSAgICAgICAgICAgIGNpcGhlcl9kcml2ZXJfdGVz
dF9hcnJheV90aHJvdWdocHV0KCZzcnRwX2Flc19nY21fMTI4X29wZW5zc2wsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUlRQX0FFU19HQ01fMTI4X0tF
WV9MRU5fV1NBTFQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBudW1fY2lwaGVyKTsKKyAgICAgICAgICAgIGNpcGhlcl9kcml2ZXJfdGVzdF9hcnJheV90
aHJvdWdocHV0KAorICAgICAgICAgICAgICAgICZzcnRwX2Flc19nY21fMTI4LCBTUlRQX0FFU19H
Q01fMTI4X0tFWV9MRU5fV1NBTFQsIG51bV9jaXBoZXIpOwogICAgICAgICB9CiAKICAgICAgICAg
Zm9yIChudW1fY2lwaGVyID0gMTsgbnVtX2NpcGhlciA8IG1heF9udW1fY2lwaGVyOyBudW1fY2lw
aGVyICo9IDgpIHsKLSAgICAgICAgICAgIGNpcGhlcl9kcml2ZXJfdGVzdF9hcnJheV90aHJvdWdo
cHV0KCZzcnRwX2Flc19nY21fMjU2X29wZW5zc2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBTUlRQX0FFU19HQ01fMjU2X0tFWV9MRU5fV1NBTFQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1fY2lwaGVy
KTsKKyAgICAgICAgICAgIGNpcGhlcl9kcml2ZXJfdGVzdF9hcnJheV90aHJvdWdocHV0KAorICAg
ICAgICAgICAgICAgICZzcnRwX2Flc19nY21fMjU2LCBTUlRQX0FFU19HQ01fMjU2X0tFWV9MRU5f
V1NBTFQsIG51bV9jaXBoZXIpOwogICAgICAgICB9CiAjZW5kaWYKICAgICB9CkBAIC0yMTAsMTAg
KzIwOCwxMCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICBjaXBo
ZXJfZHJpdmVyX3NlbGZfdGVzdCgmc3J0cF9udWxsX2NpcGhlcik7CiAgICAgICAgIGNpcGhlcl9k
cml2ZXJfc2VsZl90ZXN0KCZzcnRwX2Flc19pY21fMTI4KTsKICAgICAgICAgY2lwaGVyX2RyaXZl
cl9zZWxmX3Rlc3QoJnNydHBfYWVzX2ljbV8yNTYpOwotI2lmZGVmIE9QRU5TU0wKKyNpZmRlZiBH
Q00KICAgICAgICAgY2lwaGVyX2RyaXZlcl9zZWxmX3Rlc3QoJnNydHBfYWVzX2ljbV8xOTIpOwot
ICAgICAgICBjaXBoZXJfZHJpdmVyX3NlbGZfdGVzdCgmc3J0cF9hZXNfZ2NtXzEyOF9vcGVuc3Ns
KTsKLSAgICAgICAgY2lwaGVyX2RyaXZlcl9zZWxmX3Rlc3QoJnNydHBfYWVzX2djbV8yNTZfb3Bl
bnNzbCk7CisgICAgICAgIGNpcGhlcl9kcml2ZXJfc2VsZl90ZXN0KCZzcnRwX2Flc19nY21fMTI4
KTsKKyAgICAgICAgY2lwaGVyX2RyaXZlcl9zZWxmX3Rlc3QoJnNydHBfYWVzX2djbV8yNTYpOwog
I2VuZGlmCiAgICAgfQogCkBAIC0yNzcsOSArMjc1LDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo
YXIgKmFyZ3ZbXSkKICAgICBzdGF0dXMgPSBzcnRwX2NpcGhlcl9kZWFsbG9jKGMpOwogICAgIGNo
ZWNrX3N0YXR1cyhzdGF0dXMpOwogCi0jaWZkZWYgT1BFTlNTTAotICAgIC8qIHJ1biB0aGUgdGhy
b3VnaHB1dCB0ZXN0IG9uIHRoZSBhZXNfZ2NtXzEyOF9vcGVuc3NsIGNpcGhlciAqLwotICAgIHN0
YXR1cyA9IHNydHBfY2lwaGVyX3R5cGVfYWxsb2MoJnNydHBfYWVzX2djbV8xMjhfb3BlbnNzbCwg
JmMsCisjaWZkZWYgR0NNCisgICAgLyogcnVuIHRoZSB0aHJvdWdocHV0IHRlc3Qgb24gdGhlIGFl
c19nY21fMTI4IGNpcGhlciAqLworICAgIHN0YXR1cyA9IHNydHBfY2lwaGVyX3R5cGVfYWxsb2Mo
JnNydHBfYWVzX2djbV8xMjgsICZjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU1JUUF9BRVNfR0NNXzEyOF9LRVlfTEVOX1dTQUxULCA4KTsKICAgICBpZiAoc3RhdHVzKSB7
CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3I6IGNhbid0IGFsbG9jYXRlIEdDTSAxMjgg
Y2lwaGVyXG4iKTsKQEAgLTI5MSwxNSArMjg5LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
ICphcmd2W10pCiAgICAgICAgIGNpcGhlcl9kcml2ZXJfdGVzdF90aHJvdWdocHV0KGMpOwogICAg
IH0KIAotICAgIGlmIChkb192YWxpZGF0aW9uKSB7Ci0gICAgICAgIHN0YXR1cyA9IGNpcGhlcl9k
cml2ZXJfdGVzdF9idWZmZXJpbmcoYyk7Ci0gICAgICAgIGNoZWNrX3N0YXR1cyhzdGF0dXMpOwot
ICAgIH0KKyAgICAvLyBHQ00gY2lwaGVycyBkb24ndCBkbyBidWZmZXJpbmc7IHRoZXkncmUgIm9u
ZSBzaG90IgorCiAgICAgc3RhdHVzID0gc3J0cF9jaXBoZXJfZGVhbGxvYyhjKTsKICAgICBjaGVj
a19zdGF0dXMoc3RhdHVzKTsKIAotICAgIC8qIHJ1biB0aGUgdGhyb3VnaHB1dCB0ZXN0IG9uIHRo
ZSBhZXNfZ2NtXzI1Nl9vcGVuc3NsIGNpcGhlciAqLwotICAgIHN0YXR1cyA9IHNydHBfY2lwaGVy
X3R5cGVfYWxsb2MoJnNydHBfYWVzX2djbV8yNTZfb3BlbnNzbCwgJmMsCisgICAgLyogcnVuIHRo
ZSB0aHJvdWdocHV0IHRlc3Qgb24gdGhlIGFlc19nY21fMjU2IGNpcGhlciAqLworICAgIHN0YXR1
cyA9IHNydHBfY2lwaGVyX3R5cGVfYWxsb2MoJnNydHBfYWVzX2djbV8yNTYsICZjLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1JUUF9BRVNfR0NNXzI1Nl9LRVlfTEVOX1dT
QUxULCAxNik7CiAgICAgaWYgKHN0YXR1cykgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImVy
cm9yOiBjYW4ndCBhbGxvY2F0ZSBHQ00gMjU2IGNpcGhlclxuIik7CkBAIC0zMTEsMTAgKzMwNyw4
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAgICAgICAgIGNpcGhlcl9kcml2
ZXJfdGVzdF90aHJvdWdocHV0KGMpOwogICAgIH0KIAotICAgIGlmIChkb192YWxpZGF0aW9uKSB7
Ci0gICAgICAgIHN0YXR1cyA9IGNpcGhlcl9kcml2ZXJfdGVzdF9idWZmZXJpbmcoYyk7Ci0gICAg
ICAgIGNoZWNrX3N0YXR1cyhzdGF0dXMpOwotICAgIH0KKyAgICAvLyBHQ00gY2lwaGVycyBkb24n
dCBkbyBidWZmZXJpbmc7IHRoZXkncmUgIm9uZSBzaG90IgorCiAgICAgc3RhdHVzID0gc3J0cF9j
aXBoZXJfZGVhbGxvYyhjKTsKICAgICBjaGVja19zdGF0dXMoc3RhdHVzKTsKICNlbmRpZgpAQCAt
Mzk2LDcgKzM5MCw3IEBAIHNydHBfZXJyX3N0YXR1c190IGNpcGhlcl9kcml2ZXJfdGVzdF9idWZm
ZXJpbmcoc3J0cF9jaXBoZXJfdCAqYykKICAgICAgICAgZW5kID0gYnVmZmVyMSArIGJ1ZmxlbjsK
ICAgICAgICAgd2hpbGUgKGN1cnJlbnQgPCBlbmQpIHsKICAgICAgICAgICAgIC8qIGNob29zZSBh
IHNob3J0IGxlbmd0aCAqLwotICAgICAgICAgICAgbGVuID0gcmFuZCgpICYgMHgwMWY7CisgICAg
ICAgICAgICBsZW4gPSBzcnRwX2NpcGhlcl9yYW5kX3UzMl9mb3JfdGVzdHMoKSAmIDB4MDFmOwog
CiAgICAgICAgICAgICAvKiBtYWtlIHN1cmUgdGhhdCBsZW4gZG9lc24ndCBjYXVzZSB1cyB0byBv
dmVycmVhY2ggdGhlIGJ1ZmZlciAqLwogICAgICAgICAgICAgaWYgKGN1cnJlbnQgKyBsZW4gPiBl
bmQpCkBAIC00NzksOSArNDczLDggQEAgc3J0cF9lcnJfc3RhdHVzX3QgY2lwaGVyX2FycmF5X2Fs
bG9jX2luaXQoc3J0cF9jaXBoZXJfdCAqKipjYSwKICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7
CiAKICAgICAgICAgLyogZ2VuZXJhdGUgcmFuZG9tIGtleSBhbmQgaW5pdGlhbGl6ZSBjaXBoZXIg
Ki8KLSAgICAgICAgZm9yIChqID0gMDsgaiA8IGtsZW47IGorKykKLSAgICAgICAgICAgIGtleVtq
XSA9ICh1aW50OF90KXJhbmQoKTsKLSAgICAgICAgZm9yICg7IGogPCBrbGVuX3BhZDsgaisrKQor
ICAgICAgICBzcnRwX2NpcGhlcl9yYW5kX2Zvcl90ZXN0cyhrZXksIGtsZW4pOworICAgICAgICBm
b3IgKGogPSBrbGVuOyBqIDwga2xlbl9wYWQ7IGorKykKICAgICAgICAgICAgIGtleVtqXSA9IDA7
CiAgICAgICAgIHN0YXR1cyA9IHNydHBfY2lwaGVyX2luaXQoKmNpcGhlcl9hcnJheSwga2V5KTsK
ICAgICAgICAgaWYgKHN0YXR1cykKQEAgLTUzNSw3ICs1MjgsNyBAQCB1aW50NjRfdCBjaXBoZXJf
YXJyYXlfYml0c19wZXJfc2Vjb25kKHNydHBfY2lwaGVyX3QgKmNpcGhlcl9hcnJheVtdLAogICAg
IHYxMjhfdCBub25jZTsKICAgICBjbG9ja190IHRpbWVyOwogICAgIHVuc2lnbmVkIGNoYXIgKmVu
Y19idWY7Ci0gICAgaW50IGNpcGhlcl9pbmRleCA9IHJhbmQoKSAlIG51bV9jaXBoZXI7CisgICAg
aW50IGNpcGhlcl9pbmRleCA9IHNydHBfY2lwaGVyX3JhbmRfdTMyX2Zvcl90ZXN0cygpICUgbnVt
X2NpcGhlcjsKIAogICAgIC8qIE92ZXItYWxsb2MsIGZvciBOSVNUIENCQyBwYWRkaW5nICovCiAg
ICAgZW5jX2J1ZiA9IHNydHBfY3J5cHRvX2FsbG9jKG9jdGV0c19pbl9idWZmZXIgKyAxNyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5
L2xpYnNydHAvY3J5cHRvL3Rlc3QvZGF0YXR5cGVzX2RyaXZlci5jIGIvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NyeXB0by90ZXN0L2RhdGF0
eXBlc19kcml2ZXIuYwppbmRleCAyZjc4OTAzZWI4ZWIxMzNlNjIyZGVhNWNkMWQwYTllZTIxNTdk
MjdkLi45NjM3OWJlZmUxNWQwZmMxNWViNzE4NTkyMDAxMTc3OTRmZGM4YmM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAv
Y3J5cHRvL3Rlc3QvZGF0YXR5cGVzX2RyaXZlci5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jcnlwdG8vdGVzdC9kYXRhdHlwZXNf
ZHJpdmVyLmMKQEAgLTYwLDYgKzYwLDggQEAgdm9pZCBwcmludF9zdHJpbmcoY2hhciAqcyk7CiAK
IHZvaWQgdGVzdF9ic3dhcCh2b2lkKTsKIAordm9pZCB0ZXN0X3NldF90b196ZXJvKHZvaWQpOwor
CiBpbnQgbWFpbih2b2lkKQogewogICAgIC8qCkBAIC0xMzUsNiArMTM3LDcgQEAgaW50IG1haW4o
dm9pZCkKICAgICBwcmludGYoIiB9IFxuIik7CiAKICAgICB0ZXN0X2Jzd2FwKCk7CisgICAgdGVz
dF9zZXRfdG9femVybygpOwogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC0yMjgsMyArMjMxLDI2IEBA
IHZvaWQgdGVzdF9ic3dhcCh2b2lkKQogICAgIHByaW50ZigiYnN3YXBwZWQgb2N0ZXQgc3RyaW5n
OiAlc1xuIiwKICAgICAgICAgICAgb2N0ZXRfc3RyaW5nX2hleF9zdHJpbmcoKHVpbnQ4X3QgKikm
eSwgOCkpOwogfQorCit2b2lkIHRlc3Rfc2V0X3RvX3plcm8odm9pZCkKK3sKKyNkZWZpbmUgQlVG
RkVSX1NJWkUgKDE2KQorICAgIHVpbnQ4X3QgYnVmZmVyW0JVRkZFUl9TSVpFXTsKKyAgICBzaXpl
X3QgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBCVUZGRVJfU0laRTsgaSsrKSB7CisgICAgICAg
IGJ1ZmZlcltpXSA9IGkgJiAweGZmOworICAgIH0KKyAgICBwcmludGYoIkJ1ZmZlciBiZWZvcmU6
ICVzXG4iLCBvY3RldF9zdHJpbmdfaGV4X3N0cmluZyhidWZmZXIsIEJVRkZFUl9TSVpFKSk7Cisg
ICAgb2N0ZXRfc3RyaW5nX3NldF90b196ZXJvKGJ1ZmZlciwgQlVGRkVSX1NJWkUpOworICAgIHBy
aW50ZigiQnVmZmVyIGFmdGVyOiAlc1xuIiwgb2N0ZXRfc3RyaW5nX2hleF9zdHJpbmcoYnVmZmVy
LCBCVUZGRVJfU0laRSkpOworICAgIGZvciAoaSA9IDA7IGkgPCBCVUZGRVJfU0laRTsgaSsrKSB7
CisgICAgICAgIGlmIChidWZmZXJbaV0pIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAor
ICAgICAgICAgICAgICAgICAgICAiQnVmZmVyIGNvbnRlbnRzIG5vdCB6ZXJvIGF0IHBvc2l0aW9u
ICV6dSAoaXMgJWQpXG4iLCBpLAorICAgICAgICAgICAgICAgICAgICBidWZmZXJbaV0pOworICAg
ICAgICAgICAgYWJvcnQoKTsKKyAgICAgICAgfQorICAgIH0KKyN1bmRlZiBCVUZGRVJfU0laRQor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9saWJzcnRwL2luY2x1ZGUvc3J0cC5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2luY2x1ZGUvc3J0cC5oCmluZGV4IDFmZGQ2YzNh
ZmZkODM1Y2Q0MjIzZGQ5Y2NjNzc3MDQ1Zjg4ZGJkN2YuLjU3MmJhZDZkODlkYTgzOTk1MDVkYjA3
MWY2N2I1NDJhZDc4YWYyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9pbmNsdWRlL3NydHAuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvaW5jbHVkZS9z
cnRwLmgKQEAgLTg2LDcgKzg2LDcgQEAgZXh0ZXJuICJDIiB7CiAvKioKICAqIFNSVFBfTUFYX1RS
QUlMRVJfTEVOIGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGUgU1JUUCB0cmFpbGVyCiAgKiAo
YXV0aGVudGljYXRpb24gdGFnIGFuZCBNS0kpIHN1cHBvcnRlZCBieSBsaWJTUlRQLiAgVGhpcyB2
YWx1ZSBpcwotICogdGhlIG1haXhtdW0gbnVtYmVyIG9mIG9jdGV0cyB0aGF0IHdpbGwgYmUgYWRk
ZWQgdG8gYW4gUlRQIHBhY2tldCBieQorICogdGhlIG1heGltdW0gbnVtYmVyIG9mIG9jdGV0cyB0
aGF0IHdpbGwgYmUgYWRkZWQgdG8gYW4gUlRQIHBhY2tldCBieQogICogc3J0cF9wcm90ZWN0KCku
CiAgKgogICogQGJyaWVmIHRoZSBtYXhpbXVtIG51bWJlciBvZiBvY3RldHMgYWRkZWQgYnkgc3J0
cF9wcm90ZWN0KCkuCkBAIC0xMzAsNyArMTMwLDcgQEAgZXh0ZXJuICJDIiB7CiAgKgogICogIEEg
c3J0cF9jaXBoZXJfdHlwZV9pZF90IGlzIGFuIGludGVnZXIgdGhhdCByZXByZXNlbnRzIGEgcGFy
dGljdWxhcgogICogIGNpcGhlciB0eXBlLCBlLmcuIHRoZSBBZHZhbmNlZCBFbmNyeXB0aW9uIFN0
YW5kYXJkIChBRVMpLiAgQQotICogIFNSVFBfTlVMTF9DSVBIRVIgaXMgYXZhbGlhYmxlOyB0aGlz
IGNpcGhlciBsZWF2ZXMgdGhlIGRhdGEgdW5jaGFuZ2VkLAorICogIFNSVFBfTlVMTF9DSVBIRVIg
aXMgYXZhaWxhYmxlOyB0aGlzIGNpcGhlciBsZWF2ZXMgdGhlIGRhdGEgdW5jaGFuZ2VkLAogICog
IGFuZCBjYW4gYmUgc2VsZWN0ZWQgdG8gaW5kaWNhdGUgdGhhdCBubyBlbmNyeXB0aW9uIGlzIHRv
IHRha2UKICAqICBwbGFjZS4KICAqCkBAIC0xNDUsNyArMTQ1LDcgQEAgdHlwZWRlZiB1aW50MzJf
dCBzcnRwX2NpcGhlcl90eXBlX2lkX3Q7CiAgKgogICogIEFuIHNydHBfYXV0aF90eXBlX2lkX3Qg
aXMgYW4gaW50ZWdlciB0aGF0IHJlcHJlc2VudHMgYSBwYXJ0aWN1bGFyCiAgKiAgYXV0aGVudGlj
YXRpb24gZnVuY3Rpb24gdHlwZSwgZS5nLiBITUFDLVNIQTEuICBBIFNSVFBfTlVMTF9BVVRIIGlz
Ci0gKiAgYXZhbGlhYmxlOyB0aGlzIGF1dGhlbnRpY2F0aW9uIGZ1bmN0aW9uIHBlcmZvcm1zIG5v
IGNvbXB1dGF0aW9uLAorICogIGF2YWlsYWJsZTsgdGhpcyBhdXRoZW50aWNhdGlvbiBmdW5jdGlv
biBwZXJmb3JtcyBubyBjb21wdXRhdGlvbiwKICAqICBhbmQgY2FuIGJlIHNlbGVjdGVkIHRvIGlu
ZGljYXRlIHRoYXQgbm8gYXV0aGVudGljYXRpb24gaXMgdG8gdGFrZQogICogIHBsYWNlLgogICoK
QEAgLTI0Miw3ICsyNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBzcnRwX2NyeXB0b19wb2xpY3lfdCB7
CiAgKiBAYnJpZWYgc3J0cF9zc3JjX3R5cGVfdCBkZXNjcmliZXMgdGhlIHR5cGUgb2YgYW4gU1NS
Qy4KICAqCiAgKiBBbiBzcnRwX3NzcmNfdHlwZV90IGVudW1lcmF0aW9uIGlzIHVzZWQgdG8gaW5k
aWNhdGUgYSB0eXBlIG9mIFNTUkMuICBTZWUKLSAqIEByZWYgc3J0cF9wb2xpY3lfdCBmb3IgbW9y
ZSBpbmZvcm1hdGFpb24uCisgKiBAcmVmIHNydHBfcG9saWN5X3QgZm9yIG1vcmUgaW5mb3JtYXRp
b24uCiAgKi8KIHR5cGVkZWYgZW51bSB7CiAgICAgc3NyY191bmRlZmluZWQgPSAwLCAgIC8qKjwg
SW5kaWNhdGVzIGFuIHVuZGVmaW5lZCBTU1JDIHR5cGUuICAgICovCkBAIC0zNTAsNyArMzUwLDcg
QEAgdHlwZWRlZiBzdHJ1Y3Qgc3J0cF9wb2xpY3lfdCB7CiAgKiBAYnJpZWYgQW4gc3J0cF90IHBv
aW50cyB0byBhbiBTUlRQIHNlc3Npb24gc3RydWN0dXJlLgogICoKICAqIFRoZSB0eXBlZGVmIHNy
dHBfdCBpcyBhIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgdGhhdCByZXByZXNlbnRzCi0gKiBhbiBT
UlRQIHNlc3Npb24uICBUaGlzIGRhdGF0eXBlIGlzIGludGVudGlhbGx5IG9wYXF1ZSBpbgorICog
YW4gU1JUUCBzZXNzaW9uLiAgVGhpcyBkYXRhdHlwZSBpcyBpbnRlbnRpb25hbGx5IG9wYXF1ZSBp
bgogICogb3JkZXIgdG8gc2VwYXJhdGUgdGhlIGludGVyZmFjZSBmcm9tIHRoZSBpbXBsZW1lbnRh
dGlvbi4KICAqCiAgKiBBbiBTUlRQIHNlc3Npb24gY29uc2lzdHMgb2YgYWxsIG9mIHRoZSB0cmFm
ZmljIHNlbnQgdG8gdGhlIFJUUCBhbmQKQEAgLTU4MSw3ICs1ODEsNyBAQCBzcnRwX2Vycl9zdGF0
dXNfdCBzcnRwX3VucHJvdGVjdF9ta2koc3J0cF90IGN0eCwKICAqIGhhdmUgaXRzIGBuZXh0JyBm
aWVsZCBzZXQgdG8gTlVMTC4KICAqCiAgKiBAcmV0dXJuCi0gKiAgICAtIHNydHBfZXJyX3N0YXR1
c19vayAgICAgICAgICAgaWYgY3JlYXRpb24gc3VjY2VkZWQuCisgKiAgICAtIHNydHBfZXJyX3N0
YXR1c19vayAgICAgICAgICAgaWYgY3JlYXRpb24gc3VjY2VlZGVkLgogICogICAgLSBzcnRwX2Vy
cl9zdGF0dXNfYWxsb2NfZmFpbCAgIGlmIGFsbG9jYXRpb24gZmFpbGVkLgogICogICAgLSBzcnRw
X2Vycl9zdGF0dXNfaW5pdF9mYWlsICAgIGlmIGluaXRpYWxpemF0aW9uIGZhaWxlZC4KICAqLwpA
QCAtNTk3LDcgKzU5Nyw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfY3JlYXRlKHNydHBfdCAq
c2Vzc2lvbiwgY29uc3Qgc3J0cF9wb2xpY3lfdCAqcG9saWN5KTsKICAqIHN0cmVhbS4KICAqCiAg
KiBAcmV0dXJuIHZhbHVlczoKLSAqICAgIC0gc3J0cF9lcnJfc3RhdHVzX29rICAgICAgICAgICBp
ZiBzdHJlYW0gY3JlYXRpb24gc3VjY2VkZWQuCisgKiAgICAtIHNydHBfZXJyX3N0YXR1c19vayAg
ICAgICAgICAgaWYgc3RyZWFtIGNyZWF0aW9uIHN1Y2NlZWRlZC4KICAqICAgIC0gc3J0cF9lcnJf
c3RhdHVzX2FsbG9jX2ZhaWwgICBpZiBzdHJlYW0gYWxsb2NhdGlvbiBmYWlsZWQKICAqICAgIC0g
c3J0cF9lcnJfc3RhdHVzX2luaXRfZmFpbCAgICBpZiBzdHJlYW0gaW5pdGlhbGl6YXRpb24gZmFp
bGVkLgogICovCkBAIC02MjAsMTggKzYyMCwxOCBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX2Fk
ZF9zdHJlYW0oc3J0cF90IHNlc3Npb24sIGNvbnN0IHNydHBfcG9saWN5X3QgKnBvbGljeSk7CiAg
KiAgICAgICAgICBzZXNzaW9uLgogICoKICAqIEByZXR1cm4KLSAqICAgIC0gc3J0cF9lcnJfc3Rh
dHVzX29rICAgICBpZiB0aGUgc3RyZWFtIGRlYWxsb2NhdGlvbiBzdWNjZWRlZC4KKyAqICAgIC0g
c3J0cF9lcnJfc3RhdHVzX29rICAgICBpZiB0aGUgc3RyZWFtIGRlYWxsb2NhdGlvbiBzdWNjZWVk
ZWQuCiAgKiAgICAtIFtvdGhlcl0gICAgICAgICAgIG90aGVyd2lzZS4KICAqCiAgKi8KIHNydHBf
ZXJyX3N0YXR1c190IHNydHBfcmVtb3ZlX3N0cmVhbShzcnRwX3Qgc2Vzc2lvbiwgdW5zaWduZWQg
aW50IHNzcmMpOwogCiAvKioKLSAqIEBicmllZiBzcnRwX3VwZGF0ZSgpIHVkcGF0ZXMgYWxsIHN0
cmVhbXMgaW4gdGhlIHNlc3Npb24uCisgKiBAYnJpZWYgc3J0cF91cGRhdGUoKSB1cGRhdGVzIGFs
bCBzdHJlYW1zIGluIHRoZSBzZXNzaW9uLgogICoKICAqIFRoZSBmdW5jdGlvbiBjYWxsIHNydHBf
dXBkYXRlKHNlc3Npb24sIHBvbGljeSkgdXBkYXRlcwogICogYWxsIHRoZSBzdHJlYW1zIGluIHRo
ZSBzZXNzaW9uIGFwcGx5aW5nIHRoZSBnaXZlbiBwb2xpY3kKLSAqIGFuZCBrZXkuIFRoZSBleHNp
c3RpbmcgUk9DIHZhbHVlIG9mIGFsbCBzdHJlYW1zIHdpbGwgYmUKKyAqIGFuZCBrZXkuIFRoZSBl
eGlzdGluZyBST0MgdmFsdWUgb2YgYWxsIHN0cmVhbXMgd2lsbCBiZQogICogcHJlc2VydmVkLgog
ICoKICAqIEBwYXJhbSBzZXNzaW9uIGlzIHRoZSBTUlRQIHNlc3Npb24gdGhhdCBjb250YWlucyB0
aGUgc3RyZWFtcwpAQCAtNjQ0LDcgKzY0NCw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfcmVt
b3ZlX3N0cmVhbShzcnRwX3Qgc2Vzc2lvbiwgdW5zaWduZWQgaW50IHNzcmMpOwogICogaGF2ZSBp
dHMgYG5leHQnIGZpZWxkIHNldCB0byBOVUxMLgogICoKICAqIEByZXR1cm4KLSAqICAgIC0gc3J0
cF9lcnJfc3RhdHVzX29rICAgICAgICAgICBpZiBzdHJlYW0gY3JlYXRpb24gc3VjY2VkZWQuCisg
KiAgICAtIHNydHBfZXJyX3N0YXR1c19vayAgICAgICAgICAgaWYgc3RyZWFtIGNyZWF0aW9uIHN1
Y2NlZWQuCiAgKiAgICAtIHNydHBfZXJyX3N0YXR1c19hbGxvY19mYWlsICAgaWYgc3RyZWFtIGFs
bG9jYXRpb24gZmFpbGVkCiAgKiAgICAtIHNydHBfZXJyX3N0YXR1c19pbml0X2ZhaWwgICAgaWYg
c3RyZWFtIGluaXRpYWxpemF0aW9uIGZhaWxlZC4KICAqICAgIC0gW290aGVyXSAgICAgICAgICAg
ICAgICAgb3RoZXJ3aXNlLgpAQCAtNjUzLDExICs2NTMsMTEgQEAgc3J0cF9lcnJfc3RhdHVzX3Qg
c3J0cF9yZW1vdmVfc3RyZWFtKHNydHBfdCBzZXNzaW9uLCB1bnNpZ25lZCBpbnQgc3NyYyk7CiBz
cnRwX2Vycl9zdGF0dXNfdCBzcnRwX3VwZGF0ZShzcnRwX3Qgc2Vzc2lvbiwgY29uc3Qgc3J0cF9w
b2xpY3lfdCAqcG9saWN5KTsKIAogLyoqCi0gKiBAYnJpZWYgc3J0cF91cGRhdGVfc3RyZWFtKCkg
dWRwYXRlcyBhIFNSVFAgc3RyZWFtLgorICogQGJyaWVmIHNydHBfdXBkYXRlX3N0cmVhbSgpIHVw
ZGF0ZXMgYSBTUlRQIHN0cmVhbS4KICAqCiAgKiBUaGUgZnVuY3Rpb24gY2FsbCBzcnRwX3VwZGF0
ZV9zdHJlYW0oc2Vzc2lvbiwgcG9saWN5KSB1cGRhdGVzCiAgKiB0aGUgc3RyZWFtKHMpIGluIHRo
ZSBzZXNzaW9uIHRoYXQgbWF0Y2ggYXBwbHlpbmcgdGhlIGdpdmVuCi0gKiBwb2xpY3kgYW5kIGtl
eS4gVGhlIGV4c2lzdGluZyBST0MgdmFsdWUgb2YgYWxsIHN0cmVhbShzKSB3aWxsCisgKiBwb2xp
Y3kgYW5kIGtleS4gVGhlIGV4aXN0aW5nIFJPQyB2YWx1ZSBvZiBhbGwgc3RyZWFtKHMpIHdpbGwK
ICAqIGJlIHByZXNlcnZlZC4KICAqCiAgKiBAcGFyYW0gc2Vzc2lvbiBpcyB0aGUgU1JUUCBzZXNz
aW9uIHRoYXQgY29udGFpbnMgdGhlIHN0cmVhbXMKQEAgLTY2Nyw3ICs2NjcsNyBAQCBzcnRwX2Vy
cl9zdGF0dXNfdCBzcnRwX3VwZGF0ZShzcnRwX3Qgc2Vzc2lvbiwgY29uc3Qgc3J0cF9wb2xpY3lf
dCAqcG9saWN5KTsKICAqIGZvciB0aGUgc2Vzc2lvbi4KICAqCiAgKiBAcmV0dXJuCi0gKiAgICAt
IHNydHBfZXJyX3N0YXR1c19vayAgICAgICAgICAgaWYgc3RyZWFtIGNyZWF0aW9uIHN1Y2NlZGVk
LgorICogICAgLSBzcnRwX2Vycl9zdGF0dXNfb2sgICAgICAgICAgIGlmIHN0cmVhbSBjcmVhdGlv
biBzdWNjZWVkZWQuCiAgKiAgICAtIHNydHBfZXJyX3N0YXR1c19hbGxvY19mYWlsICAgaWYgc3Ry
ZWFtIGFsbG9jYXRpb24gZmFpbGVkCiAgKiAgICAtIHNydHBfZXJyX3N0YXR1c19pbml0X2ZhaWwg
ICAgaWYgc3RyZWFtIGluaXRpYWxpemF0aW9uIGZhaWxlZC4KICAqICAgIC0gW290aGVyXSAgICAg
ICAgICAgICAgICAgICAgICBvdGhlcndpc2UuCkBAIC02ODIsMTQgKzY4MiwxNCBAQCBzcnRwX2Vy
cl9zdGF0dXNfdCBzcnRwX3VwZGF0ZV9zdHJlYW0oc3J0cF90IHNlc3Npb24sCiAgKgogICogQHBh
cmFtIHAgaXMgYSBwb2ludGVyIHRvIHRoZSBwb2xpY3kgc3RydWN0dXJlIHRvIGJlIHNldAogICoK
LSAqIFRoZSBmdW5jdGlvbiBjYWxsIGNyeXB0b19wb2xpY3lfc2V0X3J0cF9kZWZhdWx0KCZwKSBz
ZXRzIHRoZQotICogY3J5cHRvX3BvbGljeV90IGF0IGxvY2F0aW9uIHAgdG8gdGhlIFNSVFAgZGVm
YXVsdCBwb2xpY3kgZm9yIFJUUAorICogVGhlIGZ1bmN0aW9uIGNhbGwgc3J0cF9jcnlwdG9fcG9s
aWN5X3NldF9ydHBfZGVmYXVsdCgmcCkgc2V0cyB0aGUKKyAqIHNydHBfY3J5cHRvX3BvbGljeV90
IGF0IGxvY2F0aW9uIHAgdG8gdGhlIFNSVFAgZGVmYXVsdCBwb2xpY3kgZm9yIFJUUAogICogcHJv
dGVjdGlvbiwgYXMgZGVmaW5lZCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4gIFRoaXMgZnVuY3Rpb24g
aXMgYQogICogY29udmVuaWVuY2UgdGhhdCBoZWxwcyB0byBhdm9pZCBkZWFsaW5nIGRpcmVjdGx5
IHdpdGggdGhlIHBvbGljeQogICogZGF0YSBzdHJ1Y3R1cmUuICBZb3UgYXJlIGVuY291cmFnZWQg
dG8gaW5pdGlhbGl6ZSBwb2xpY3kgZWxlbWVudHMKICAqIHdpdGggdGhpcyBmdW5jdGlvbiBjYWxs
LiAgRG9pbmcgc28gbWF5IGFsbG93IHlvdXIgY29kZSB0byBiZQogICogZm9yd2FyZCBjb21wYXRp
YmxlIHdpdGggbGF0ZXIgdmVyc2lvbnMgb2YgbGliU1JUUCB0aGF0IGluY2x1ZGUgbW9yZQotICog
ZWxlbWVudHMgaW4gdGhlIGNyeXB0b19wb2xpY3lfdCBkYXRhdHlwZS4KKyAqIGVsZW1lbnRzIGlu
IHRoZSBzcnRwX2NyeXB0b19wb2xpY3lfdCBkYXRhdHlwZS4KICAqCiAgKiBAcmV0dXJuIHZvaWQu
CiAgKgpAQCAtODAyLDcgKzgwMiw3IEBAIHZvaWQgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9hZXNf
Y21fMTI4X251bGxfYXV0aChzcnRwX2NyeXB0b19wb2xpY3lfdCAqcCk7CiAgKiBzZXRzIHRoZSBz
cnRwX2NyeXB0b19wb2xpY3lfdCBhdCBsb2NhdGlvbiBwIHRvIHVzZSBITUFDLVNIQTEgd2l0aCBh
biA4MAogICogYml0IGF1dGhlbnRpY2F0aW9uIHRhZyB0byBwcm92aWRlIG1lc3NhZ2UgYXV0aGVu
dGljYXRpb24sIGJ1dCB0bwogICogdXNlIG5vIGVuY3J5cHRpb24uICBUaGlzIHBvbGljeSBpcyBO
T1QgUkVDT01NRU5ERUQgZm9yIFNSVFAgdW5sZXNzCi0gKiB0aGVyZSBpcyBhIHJlcXVpcmVtZW50
IHRvIGZvcmVnbyBlbmNyeXB0aW9uLgorICogdGhlcmUgaXMgYSByZXF1aXJlbWVudCB0byBmb3Jn
byBlbmNyeXB0aW9uLgogICoKICAqIFRoaXMgZnVuY3Rpb24gaXMgYSBjb252ZW5pZW5jZSB0aGF0
IGhlbHBzIHRvIGF2b2lkIGRlYWxpbmcgZGlyZWN0bHkKICAqIHdpdGggdGhlIHBvbGljeSBkYXRh
IHN0cnVjdHVyZS4gIFlvdSBhcmUgZW5jb3VyYWdlZCB0byBpbml0aWFsaXplCkBAIC04MTEsNyAr
ODExLDcgQEAgdm9pZCBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19jbV8xMjhfbnVsbF9hdXRo
KHNydHBfY3J5cHRvX3BvbGljeV90ICpwKTsKICAqIGluY2x1ZGUgbW9yZSBlbGVtZW50cyBpbiB0
aGUgc3J0cF9jcnlwdG9fcG9saWN5X3QgZGF0YXR5cGUuCiAgKgogICogQHdhcm5pbmcgVGhpcyBw
b2xpY3kgaXMgTk9UIFJFQ09NTUVOREVEIGZvciBTUlRQIHVubGVzcyB0aGVyZSBpcyBhCi0gKiBy
ZXF1aXJlbWVudCB0byBmb3JlZ28gZW5jcnlwdGlvbi4KKyAqIHJlcXVpcmVtZW50IHRvIGZvcmdv
IGVuY3J5cHRpb24uCiAgKgogICogQHJldHVybiB2b2lkLgogICoKQEAgLTgyNyw3ICs4MjcsNyBA
QCB2b2lkIHNydHBfY3J5cHRvX3BvbGljeV9zZXRfbnVsbF9jaXBoZXJfaG1hY19zaGExXzgwKHNy
dHBfY3J5cHRvX3BvbGljeV90ICpwKTsKICAqIFRoZSBmdW5jdGlvbiBjYWxsIHNydHBfY3J5cHRv
X3BvbGljeV9zZXRfbnVsbF9jaXBoZXJfaG1hY19udWxsKCZwKQogICogc2V0cyB0aGUgc3J0cF9j
cnlwdG9fcG9saWN5X3QgYXQgbG9jYXRpb24gcCB0byB1c2Ugbm8gZW5jcnlwdGlvbiBhbmQKICAq
IG5vIGF1dGhlbnRpY2F0aW9uLiAgVGhpcyBwb2xpY3kgc2hvdWxkIG9ubHkgYmUgdXNlZCBmb3Ig
dGVzdGluZyBhbmQKLSAqIHRyb3VibGVzaG9vdGluZ2wuCisgKiB0cm91Ymxlc2hvb3RpbmcuCiAg
KgogICogVGhpcyBmdW5jdGlvbiBpcyBhIGNvbnZlbmllbmNlIHRoYXQgaGVscHMgdG8gYXZvaWQg
ZGVhbGluZyBkaXJlY3RseQogICogd2l0aCB0aGUgcG9saWN5IGRhdGEgc3RydWN0dXJlLiAgWW91
IGFyZSBlbmNvdXJhZ2VkIHRvIGluaXRpYWxpemUKQEAgLTgzNiw3ICs4MzYsNyBAQCB2b2lkIHNy
dHBfY3J5cHRvX3BvbGljeV9zZXRfbnVsbF9jaXBoZXJfaG1hY19zaGExXzgwKHNydHBfY3J5cHRv
X3BvbGljeV90ICpwKTsKICAqIGluY2x1ZGUgbW9yZSBlbGVtZW50cyBpbiB0aGUgc3J0cF9jcnlw
dG9fcG9saWN5X3QgZGF0YXR5cGUuCiAgKgogICogQHdhcm5pbmcgVGhpcyBwb2xpY3kgaXMgTk9U
IFJFQ09NTUVOREVEIGZvciBTUlRQIHVubGVzcyB0aGVyZSBpcyBhCi0gKiByZXF1aXJlbWVudCB0
byBmb3JlZ28gZW5jcnlwdGlvbiBhbmQgYXV0aGVudGljYXRpb24uCisgKiByZXF1aXJlbWVudCB0
byBmb3JnbyBlbmNyeXB0aW9uIGFuZCBhdXRoZW50aWNhdGlvbi4KICAqCiAgKiBAcmV0dXJuIHZv
aWQuCiAgKgpAQCAtOTM0LDcgKzkzNCw3IEBAIHZvaWQgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9h
ZXNfY21fMjU2X251bGxfYXV0aChzcnRwX2NyeXB0b19wb2xpY3lfdCAqcCk7CiAgKiBAcGFyYW0g
cCBpcyBhIHBvaW50ZXIgdG8gdGhlIHBvbGljeSBzdHJ1Y3R1cmUgdG8gYmUgc2V0CiAgKgogICog
VGhlIGZ1bmN0aW9uIGNhbGwgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9hZXNfY21fMTkyX2htYWNf
c2hhMV84MCgmcCkKLSAqIHNldHMgdGhlIGNyeXB0b19wb2xpY3lfdCBhdCBsb2NhdGlvbiBwIHRv
IHVzZSBwb2xpY3kKKyAqIHNldHMgdGhlIHNydHBfY3J5cHRvX3BvbGljeV90IGF0IGxvY2F0aW9u
IHAgdG8gdXNlIHBvbGljeQogICogQUVTX0NNXzE5Ml9ITUFDX1NIQTFfODAgYXMgZGVmaW5lZCBp
biBSRkMgNjE4OC4gIFRoaXMgcG9saWN5IHVzZXMgQUVTLTE5MgogICogQ291bnRlciBNb2RlIGVu
Y3J5cHRpb24gYW5kIEhNQUMtU0hBMSBhdXRoZW50aWNhdGlvbiwgd2l0aCBhbiA4MCBiaXQKICAq
IGF1dGhlbnRpY2F0aW9uIHRhZy4KQEAgLTk0Myw3ICs5NDMsNyBAQCB2b2lkIHNydHBfY3J5cHRv
X3BvbGljeV9zZXRfYWVzX2NtXzI1Nl9udWxsX2F1dGgoc3J0cF9jcnlwdG9fcG9saWN5X3QgKnAp
OwogICogd2l0aCB0aGUgcG9saWN5IGRhdGEgc3RydWN0dXJlLiAgWW91IGFyZSBlbmNvdXJhZ2Vk
IHRvIGluaXRpYWxpemUKICAqIHBvbGljeSBlbGVtZW50cyB3aXRoIHRoaXMgZnVuY3Rpb24gY2Fs
bC4gIERvaW5nIHNvIG1heSBhbGxvdyB5b3VyCiAgKiBjb2RlIHRvIGJlIGZvcndhcmQgY29tcGF0
aWJsZSB3aXRoIGxhdGVyIHZlcnNpb25zIG9mIGxpYlNSVFAgdGhhdAotICogaW5jbHVkZSBtb3Jl
IGVsZW1lbnRzIGluIHRoZSBjcnlwdG9fcG9saWN5X3QgZGF0YXR5cGUuCisgKiBpbmNsdWRlIG1v
cmUgZWxlbWVudHMgaW4gdGhlIHNydHBfY3J5cHRvX3BvbGljeV90IGRhdGF0eXBlLgogICoKICAq
IEByZXR1cm4gdm9pZC4KICAqCkBAIC05NTgsNyArOTU4LDcgQEAgdm9pZCBzcnRwX2NyeXB0b19w
b2xpY3lfc2V0X2Flc19jbV8xOTJfaG1hY19zaGExXzgwKHNydHBfY3J5cHRvX3BvbGljeV90ICpw
KTsKICAqIEBwYXJhbSBwIGlzIGEgcG9pbnRlciB0byB0aGUgcG9saWN5IHN0cnVjdHVyZSB0byBi
ZSBzZXQKICAqCiAgKiBUaGUgZnVuY3Rpb24gY2FsbCBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X2Fl
c19jbV8xOTJfaG1hY19zaGExXzMyKCZwKQotICogc2V0cyB0aGUgY3J5cHRvX3BvbGljeV90IGF0
IGxvY2F0aW9uIHAgdG8gdXNlIHBvbGljeQorICogc2V0cyB0aGUgc3J0cF9jcnlwdG9fcG9saWN5
X3QgYXQgbG9jYXRpb24gcCB0byB1c2UgcG9saWN5CiAgKiBBRVNfQ01fMTkyX0hNQUNfU0hBMV8z
MiBhcyBkZWZpbmVkIGluIFJGQyA2MTg4LiAgVGhpcyBwb2xpY3kgdXNlcyBBRVMtMTkyCiAgKiBD
b3VudGVyIE1vZGUgZW5jcnlwdGlvbiBhbmQgSE1BQy1TSEExIGF1dGhlbnRpY2F0aW9uLCB3aXRo
IGFuCiAgKiBhdXRoZW50aWNhdGlvbiB0YWcgdGhhdCBpcyBvbmx5IDMyIGJpdHMgbG9uZy4gIFRo
aXMgbGVuZ3RoIGlzCkBAIC05NzAsNyArOTcwLDcgQEAgdm9pZCBzcnRwX2NyeXB0b19wb2xpY3lf
c2V0X2Flc19jbV8xOTJfaG1hY19zaGExXzgwKHNydHBfY3J5cHRvX3BvbGljeV90ICpwKTsKICAq
IHdpdGggdGhlIHBvbGljeSBkYXRhIHN0cnVjdHVyZS4gIFlvdSBhcmUgZW5jb3VyYWdlZCB0byBp
bml0aWFsaXplCiAgKiBwb2xpY3kgZWxlbWVudHMgd2l0aCB0aGlzIGZ1bmN0aW9uIGNhbGwuICBE
b2luZyBzbyBtYXkgYWxsb3cgeW91cgogICogY29kZSB0byBiZSBmb3J3YXJkIGNvbXBhdGlibGUg
d2l0aCBsYXRlciB2ZXJzaW9ucyBvZiBsaWJTUlRQIHRoYXQKLSAqIGluY2x1ZGUgbW9yZSBlbGVt
ZW50cyBpbiB0aGUgY3J5cHRvX3BvbGljeV90IGRhdGF0eXBlLgorICogaW5jbHVkZSBtb3JlIGVs
ZW1lbnRzIGluIHRoZSBzcnRwX2NyeXB0b19wb2xpY3lfdCBkYXRhdHlwZS4KICAqCiAgKiBAd2Fy
bmluZyBUaGlzIGNyeXB0byBwb2xpY3kgaXMgaW50ZW5kZWQgZm9yIHVzZSBpbiBTUlRQLCBidXQg
bm90IGluCiAgKiBTUlRDUC4gIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgYSBwb2xpY3kgdGhhdCB1
c2VzIGxvbmdlcgpAQCAtOTg5LDcgKzk4OSw3IEBAIHZvaWQgc3J0cF9jcnlwdG9fcG9saWN5X3Nl
dF9hZXNfY21fMTkyX2htYWNfc2hhMV8zMihzcnRwX2NyeXB0b19wb2xpY3lfdCAqcCk7CiAgKiBA
cGFyYW0gcCBpcyBhIHBvaW50ZXIgdG8gdGhlIHBvbGljeSBzdHJ1Y3R1cmUgdG8gYmUgc2V0CiAg
KgogICogVGhlIGZ1bmN0aW9uIGNhbGwgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9hZXNfY21fMTky
X251bGxfYXV0aCgmcCkgc2V0cwotICogdGhlIGNyeXB0b19wb2xpY3lfdCBhdCBsb2NhdGlvbiBw
IHRvIHVzZSB0aGUgU1JUUCBkZWZhdWx0IGNpcGhlcgorICogdGhlIHNydHBfY3J5cHRvX3BvbGlj
eV90IGF0IGxvY2F0aW9uIHAgdG8gdXNlIHRoZSBTUlRQIGRlZmF1bHQgY2lwaGVyCiAgKiAoQUVT
LTE5MiBDb3VudGVyIE1vZGUpLCBidXQgdG8gdXNlIG5vIGF1dGhlbnRpY2F0aW9uIG1ldGhvZC4g
IFRoaXMKICAqIHBvbGljeSBpcyBOT1QgUkVDT01NRU5ERUQgdW5sZXNzIGl0IGlzIHVuYXZvaWRh
YmxlOyBzZWUgU2VjdGlvbiA3LjUKICAqIG9mIFJGQyAzNzExIChodHRwOi8vd3d3LmlldGYub3Jn
L3JmYy9yZmMzNzExLnR4dCkuCkBAIC05OTgsNyArOTk4LDcgQEAgdm9pZCBzcnRwX2NyeXB0b19w
b2xpY3lfc2V0X2Flc19jbV8xOTJfaG1hY19zaGExXzMyKHNydHBfY3J5cHRvX3BvbGljeV90ICpw
KTsKICAqIHdpdGggdGhlIHBvbGljeSBkYXRhIHN0cnVjdHVyZS4gIFlvdSBhcmUgZW5jb3VyYWdl
ZCB0byBpbml0aWFsaXplCiAgKiBwb2xpY3kgZWxlbWVudHMgd2l0aCB0aGlzIGZ1bmN0aW9uIGNh
bGwuICBEb2luZyBzbyBtYXkgYWxsb3cgeW91cgogICogY29kZSB0byBiZSBmb3J3YXJkIGNvbXBh
dGlibGUgd2l0aCBsYXRlciB2ZXJzaW9ucyBvZiBsaWJTUlRQIHRoYXQKLSAqIGluY2x1ZGUgbW9y
ZSBlbGVtZW50cyBpbiB0aGUgY3J5cHRvX3BvbGljeV90IGRhdGF0eXBlLgorICogaW5jbHVkZSBt
b3JlIGVsZW1lbnRzIGluIHRoZSBzcnRwX2NyeXB0b19wb2xpY3lfdCBkYXRhdHlwZS4KICAqCiAg
KiBAd2FybmluZyBUaGlzIHBvbGljeSBpcyBOT1QgUkVDT01NRU5ERUQgZm9yIFNSVFAgdW5sZXNz
IGl0IGlzCiAgKiB1bmF2b2lkYWJsZSwgYW5kIGl0IGlzIE5PVCBSRUNPTU1FTkRFRCBhdCBhbGwg
Zm9yIFNSVENQOyBzZWUKQEAgLTExNjAsNyArMTE2MCw3IEBAIHZvaWQgc3J0cF9jcnlwdG9fcG9s
aWN5X3NldF9hZXNfZ2NtXzI1Nl8xNl9hdXRoKHNydHBfY3J5cHRvX3BvbGljeV90ICpwKTsKICAq
CiAgKiBAcmV0dXJuCiAgKiAgICAtIHNydHBfZXJyX3N0YXR1c19vayAgICAgICAgICAgICBpZiB0
aGVyZSBubyBwcm9ibGVtcy4KLSAqICAgIC0gc3J0cF9lcnJfc3RhdHVzX2RlYWxsb2NfZmFpbCAg
IGEgbWVtb3J5IGRlYWxsb2NhdGlvbiBmYWlsdXJlIG9jY3VyZWQuCisgKiAgICAtIHNydHBfZXJy
X3N0YXR1c19kZWFsbG9jX2ZhaWwgICBhIG1lbW9yeSBkZWFsbG9jYXRpb24gZmFpbHVyZSBvY2N1
cnJlZC4KICAqLwogc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9kZWFsbG9jKHNydHBfdCBzKTsKIApA
QCAtMTM2Myw3ICsxMzYzLDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9wcm90ZWN0X3J0Y3Ao
c3J0cF90IGN0eCwKICAqIHdpbGwKICAqIHVzZSB0aGUgc2Vzc2lvbiBrZXlzIGlkZW50aWZpZWQg
YnkgdGhlIG1raV9pbmRleAogICoKLSAqIEBwYXJhbSBta2lfaW5kZXggaW50ZWdlciB2YWx1ZSBz
cGVjaWZ5aW5nIHdoaWNoIHNldCBvZiBzZXNzaW9uIGtlc3kgc2hvdWxkIGJlCisgKiBAcGFyYW0g
bWtpX2luZGV4IGludGVnZXIgdmFsdWUgc3BlY2lmeWluZyB3aGljaCBzZXQgb2Ygc2Vzc2lvbiBr
ZXlzIHNob3VsZCBiZQogICogdXNlZCBpZiB1c2VfbWtpIGlzIHNldCB0byB0cnVlLgogICoKICAq
IEByZXR1cm4KQEAgLTE1NjAsNyArMTU2MCw3IEBAIHZvaWQgKnNydHBfZ2V0X3VzZXJfZGF0YShz
cnRwX3QgY3R4KTsKICAqIGxhdHRlciBjYXNlLCBhbGwgb2YgdGhlIHN0cmVhbXMgaW4gdGhlIHNl
c3Npb24gd2lsbCBleHBpcmUuCiAgKi8KIHR5cGVkZWYgZW51bSB7Ci0gICAgZXZlbnRfc3NyY19j
b2xsaXNpb24sICAgIC8qKjwgQW4gU1NSQyBjb2xsaXNpb24gb2NjdXJlZC4gICAgICAgICAgICAq
LworICAgIGV2ZW50X3NzcmNfY29sbGlzaW9uLCAgICAvKio8IEFuIFNTUkMgY29sbGlzaW9uIG9j
Y3VycmVkLiAgICAgICAgICAgKi8KICAgICBldmVudF9rZXlfc29mdF9saW1pdCwgICAgLyoqPCBB
biBTUlRQIHN0cmVhbSByZWFjaGVkIHRoZSBzb2Z0IGtleSAgICovCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qKjwgdXNhZ2UgbGltaXQgYW5kIHdpbGwgZXhwaXJlIHNvb24uICAgICAq
LwogICAgIGV2ZW50X2tleV9oYXJkX2xpbWl0LCAgICAvKio8IEFuIFNSVFAgc3RyZWFtIHJlYWNo
ZWQgdGhlIGhhcmQgICAgICAgKi8KQEAgLTE1NzcsOSArMTU3Nyw5IEBAIHR5cGVkZWYgZW51bSB7
CiAgKiBoYW5kbGVyIGZ1bmN0aW9uLgogICovCiB0eXBlZGVmIHN0cnVjdCBzcnRwX2V2ZW50X2Rh
dGFfdCB7Ci0gICAgc3J0cF90IHNlc3Npb247ICAgICAvKio8IFRoZSBzZXNzaW9uIGluIHdoaWNo
IHRoZSBldmVudCBoYXBwZW5kLiAgICAgICAgKi8KKyAgICBzcnRwX3Qgc2Vzc2lvbjsgICAgIC8q
KjwgVGhlIHNlc3Npb24gaW4gd2hpY2ggdGhlIGV2ZW50IGhhcHBlbmVkLiAgICAgICAqLwogICAg
IHVpbnQzMl90IHNzcmM7ICAgICAgLyoqPCBUaGUgc3NyYyBpbiBob3N0IG9yZGVyIG9mIHRoZSBz
dHJlYW0gaW4gd2hpY2ggICovCi0gICAgICAgICAgICAgICAgICAgICAgICAvKio8IHRoZSBldmVu
dCBoYXBwZW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8qKjwgdGhlIGV2ZW50IGhhcHBlbmVkICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqLwogICAgIHNydHBfZXZlbnRfdCBldmVudDsgLyoqPCBBbiBlbnVtIGluZGljYXRpbmcg
dGhlIHR5cGUgb2YgZXZlbnQuICAgICAgICAgICovCiB9IHNydHBfZXZlbnRfZGF0YV90OwogCkBA
IC0xNjAzLDcgKzE2MDMsNyBAQCB0eXBlZGVmIHZvaWQoc3J0cF9ldmVudF9oYW5kbGVyX2Z1bmNf
dCkoc3J0cF9ldmVudF9kYXRhX3QgKmRhdGEpOwogICogYXMgYW4gYXJndW1lbnQ7IGluIHRoaXMg
Y2FzZSwgZXZlbnRzIHdpbGwgYmUgaWdub3JlZCByYXRoZXIgdGhhbgogICogaGFuZGxlZC4KICAq
Ci0gKiBAcGFyYW0gZnVuYyBpcyBhIHBvaW50ZXIgdG8gYSBmdWN0aW9uIHRoYXQgdGFrZXMgYW4g
c3J0cF9ldmVudF9kYXRhX3QKKyAqIEBwYXJhbSBmdW5jIGlzIGEgcG9pbnRlciB0byBhIGZ1bmN0
aW9uIHRoYXQgdGFrZXMgYW4gc3J0cF9ldmVudF9kYXRhX3QKICAqICAgICAgICAgICAgIHBvaW50
ZXIgYXMgYW4gYXJndW1lbnQgYW5kIHJldHVybnMgdm9pZC4gIFRoaXMgZnVuY3Rpb24KICAqICAg
ICAgICAgICAgIHdpbGwgYmUgdXNlZCBieSBsaWJTUlRQIHRvIGhhbmRsZSBldmVudHMuCiAgKi8K
QEAgLTE2NzEsMTAgKzE2NzEsMTAgQEAgdHlwZWRlZiB2b2lkKHNydHBfbG9nX2hhbmRsZXJfZnVu
Y190KShzcnRwX2xvZ19sZXZlbF90IGxldmVsLAogICogVGhlIGZ1bmN0aW9uIGNhbGwgc3J0cF9p
bnN0YWxsX2xvZ19oYW5kbGVyKGZ1bmMpIHNldHMgdGhlIGxvZwogICogaGFuZGxlciBmdW5jdGlv
biB0byB0aGUgdmFsdWUgZnVuYy4gIFRoZSB2YWx1ZSBOVUxMIGlzIGFjY2VwdGFibGUKICAqIGFz
IGFuIGFyZ3VtZW50OyBpbiB0aGlzIGNhc2UsIGxvZyBtZXNzYWdlcyB3aWxsIGJlIGlnbm9yZWQu
Ci0gKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHNydHBfaW5pdCgpIGlub3Jk
ZXIgdG8gY2FwdHVyZQorICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGJlZm9yZSBzcnRw
X2luaXQoKSBpbiBvcmRlciB0byBjYXB0dXJlCiAgKiBhbnkgbG9nZ2luZyBkdXJpbmcgc3RhcnQg
dXAuCiAgKgotICogQHBhcmFtIGZ1bmMgaXMgYSBwb2ludGVyIHRvIGEgZnVjdGlvbiBvZiB0eXBl
IHNydHBfbG9nX2hhbmRsZXJfZnVuY190LgorICogQHBhcmFtIGZ1bmMgaXMgYSBwb2ludGVyIHRv
IGEgZnVuY3Rpb24gb2YgdHlwZSBzcnRwX2xvZ19oYW5kbGVyX2Z1bmNfdC4KICAqICAgICAgICAg
ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIGJ5IGxpYlNSVFAgdG8gb3V0cHV0IGxvZyBt
ZXNzYWdlcy4KICAqIEBwYXJhbSBkYXRhIGlzIGEgdXNlciBwb2ludGVyIHRoYXQgd2lsbCBiZSBy
ZXR1cm5lZCBhcyB0aGUgZGF0YSBhcmd1bWVudCBpbgogICogZnVuYy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9pbmNs
dWRlL3NydHBfcHJpdi5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9saWJzcnRwL2luY2x1ZGUvc3J0cF9wcml2LmgKaW5kZXggOTg4ZWZjNDE2NGQzYzFj
NGQ3ZWU2YTcyOWE5N2Y4ZjQ5NjUzOGE1OC4uZDQ0OWYyYTRlZTM1MmM5MWNiNmE1ZjljY2FkZWJh
NjIzNTM1YjdhOCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS90aGlyZF9wYXJ0eS9saWJzcnRwL2luY2x1ZGUvc3J0cF9wcml2LmgKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2luY2x1ZGUvc3J0
cF9wcml2LmgKQEAgLTIxNSw3ICsyMTUsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgKiBzcnRjcF9o
ZHJfdCByZXByZXNlbnRzIGEgc2VjdXJlIHJ0Y3AgaGVhZGVyCiAgKgogICogaW4gdGhpcyBpbXBs
ZW1lbnRhdGlvbiwgYW4gc3J0Y3AgaGVhZGVyIGlzIGFzc3VtZWQgdG8gYmUgMzItYml0Ci0gKiBh
bGluZ2VkCisgKiBhbGlnbmVkCiAgKi8KIAogI2lmbmRlZiBXT1JEU19CSUdFTkRJQU4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGli
c3J0cC9zcnRwL2VrdC5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGly
ZF9wYXJ0eS9saWJzcnRwL3NydHAvZWt0LmMKaW5kZXggYjU0ZWNmNjRlYjQ0NWVlNTk0MTQyNWEy
MmY0NmExNmNmZGU3ZjRjOS4uMjRhZjkzYmQ5OTdiYzg2ZDY3NTBkZTNiMmE4YzhlZTU2M2QzMjE2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9saWJzcnRwL3NydHAvZWt0LmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3NydHAvZWt0LmMKQEAgLTE1MSw3ICsxNTEsNyBA
QCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX2VrdF9zdHJlYW1faW5pdF9mcm9tX3BvbGljeSgKIAog
dm9pZCBhZXNfZGVjcnlwdF93aXRoX3Jhd19rZXkodm9pZCAqY2lwaGVydGV4dCwgY29uc3Qgdm9p
ZCAqa2V5LCBpbnQga2V5X2xlbikKIHsKLSNpZm5kZWYgT1BFTlNTTAorI2lmbmRlZiBHQ00KICAg
ICAvLyBGSVhNRTogbmVlZCB0byBnZXQgdGhpcyB3b3JraW5nIHRocm91Z2ggdGhlIGNyeXB0byBt
b2R1bGUgaW50ZXJmYWNlCiAgICAgc3J0cF9hZXNfZXhwYW5kZWRfa2V5X3QgZXhwYW5kZWRfa2V5
OwogCkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBzcnRwX2VrdF93cml0ZV9kYXRhKHNydHBfZWt0
X3N0cmVhbV90IGVrdCwKIAogICAgIC8qIGlmIHRoZSBwb2ludGVyIGVrdCBpcyBOVUxMLCB0aGVu
IEVLVCBpcyBub3QgaW4gZWZmZWN0ICovCiAgICAgaWYgKCFla3QpIHsKLSAgICAgICAgZGVidWdf
cHJpbnQobW9kX3NydHAsICJFS1Qgbm90IGluIHVzZSIsIE5VTEwpOworICAgICAgICBkZWJ1Z19w
cmludDAobW9kX3NydHAsICJFS1Qgbm90IGluIHVzZSIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2xpYnNydHAvc3J0cC9zcnRwLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvc3J0cC9zcnRwLmMKaW5kZXggNDQ2MjUwMTVlN2I2
ODViMDdmOTU5YTVhNmViNTlhYjA4NWZjMzQ2My4uMDMwY2M4M2NkNGFiMDVhOTFhYzM0ZGI5YTRk
NGU3Yzg4M2ZjOTVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3NydHAvc3J0cC5jCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9zcnRwL3NydHAuYwpAQCAt
NTEsMTIgKzUxLDEzIEBACiAjaW5jbHVkZSAiZWt0LmgiICAgLyogZm9yIFNSVFAgRW5jcnlwdGVk
IEtleSBUcmFuc3BvcnQgKi8KICNpbmNsdWRlICJhbGxvYy5oIiAvKiBmb3Igc3J0cF9jcnlwdG9f
YWxsb2MoKSAqLwogCi0jaWZkZWYgT1BFTlNTTAotI2luY2x1ZGUgImFlc19nY21fb3NzbC5oIiAv
KiBmb3IgQUVTIEdDTSBtb2RlICovCisjaWZkZWYgR0NNCisjaW5jbHVkZSAiYWVzX2djbS5oIiAv
KiBmb3IgQUVTIEdDTSBtb2RlICovCisjZW5kaWYKKwogI2lmZGVmIE9QRU5TU0xfS0RGCiAjaW5j
bHVkZSA8b3BlbnNzbC9rZGYuaD4KLSNpbmNsdWRlICJhZXNfaWNtX29zc2wuaCIgLyogZm9yIEFF
UyBHQ00gbW9kZSAqLwotI2VuZGlmCisjaW5jbHVkZSAiYWVzX2ljbV9leHQuaCIKICNlbmRpZgog
CiAjaW5jbHVkZSA8bGltaXRzLmg+CkBAIC04MSwxMyArODIsMTQgQEAgc3J0cF9kZWJ1Z19tb2R1
bGVfdCBtb2Rfc3J0cCA9IHsKIHN0YXRpYyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRl
X3J0cF9oZWFkZXIodm9pZCAqcnRwX2hkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50ICpwa3Rfb2N0ZXRfbGVuKQogeworICAgIHNydHBfaGRy
X3QgKmhkciA9IChzcnRwX2hkcl90ICopcnRwX2hkcjsKKyAgICBpbnQgcnRwX2hlYWRlcl9sZW47
CisKICAgICBpZiAoKnBrdF9vY3RldF9sZW4gPCBvY3RldHNfaW5fcnRwX2hlYWRlcikKICAgICAg
ICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19iYWRfcGFyYW07CiAKLSAgICBzcnRwX2hkcl90ICpo
ZHIgPSAoc3J0cF9oZHJfdCAqKXJ0cF9oZHI7Ci0KICAgICAvKiBDaGVjayBSVFAgaGVhZGVyIGxl
bmd0aCAqLwotICAgIGludCBydHBfaGVhZGVyX2xlbiA9IG9jdGV0c19pbl9ydHBfaGVhZGVyICsg
NCAqIGhkci0+Y2M7CisgICAgcnRwX2hlYWRlcl9sZW4gPSBvY3RldHNfaW5fcnRwX2hlYWRlciAr
IDQgKiBoZHItPmNjOwogICAgIGlmIChoZHItPnggPT0gMSkKICAgICAgICAgcnRwX2hlYWRlcl9s
ZW4gKz0gb2N0ZXRzX2luX3J0cF9leHRuX2hkcjsKIApAQCAtNjc3LDYgKzY3OSw4IEBAIHN0YXRp
YyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX2tkZl9pbml0KHNydHBfa2RmX3QgKmtkZiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBrZXlfbGVuKQogewogICAgIHNy
dHBfY2lwaGVyX3R5cGVfaWRfdCBjaXBoZXJfaWQ7CisgICAgc3J0cF9lcnJfc3RhdHVzX3Qgc3Rh
dDsKKwogICAgIHN3aXRjaCAoa2V5X2xlbikgewogICAgIGNhc2UgU1JUUF9BRVNfSUNNXzI1Nl9L
RVlfTEVOX1dTQUxUOgogICAgICAgICBjaXBoZXJfaWQgPSBTUlRQX0FFU19JQ01fMjU2OwpAQCAt
NjkyLDcgKzY5Niw2IEBAIHN0YXRpYyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX2tkZl9pbml0KHNy
dHBfa2RmX3QgKmtkZiwKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgc3J0cF9lcnJfc3Rh
dHVzX3Qgc3RhdDsKICAgICBzdGF0ID0gc3J0cF9jcnlwdG9fa2VybmVsX2FsbG9jX2NpcGhlcihj
aXBoZXJfaWQsICZrZGYtPmNpcGhlciwga2V5X2xlbiwgMCk7CiAgICAgaWYgKHN0YXQpCiAgICAg
ICAgIHJldHVybiBzdGF0OwpAQCAtOTU5LDcgKzk2Miw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNy
dHBfc3RyZWFtX2luaXRfa2V5cyhzcnRwX3N0cmVhbV9jdHhfdCAqc3J0cCwKICAgICAgKiB0byBn
ZW5lcmF0ZSB0aGUgc2FsdCB2YWx1ZQogICAgICAqLwogICAgIGlmIChydHBfc2FsdF9sZW4gPiAw
KSB7Ci0gICAgICAgIGRlYnVnX3ByaW50KG1vZF9zcnRwLCAiZm91bmQgcnRwX3NhbHRfbGVuID4g
MCwgZ2VuZXJhdGluZyBzYWx0IiwgTlVMTCk7CisgICAgICAgIGRlYnVnX3ByaW50MChtb2Rfc3J0
cCwgImZvdW5kIHJ0cF9zYWx0X2xlbiA+IDAsIGdlbmVyYXRpbmcgc2FsdCIpOwogCiAgICAgICAg
IC8qIGdlbmVyYXRlIGVuY3J5cHRpb24gc2FsdCwgcHV0IGFmdGVyIGVuY3J5cHRpb24ga2V5ICov
CiAgICAgICAgIHN0YXQgPSBzcnRwX2tkZl9nZW5lcmF0ZSgma2RmLCBsYWJlbF9ydHBfc2FsdCwK
QEAgLTEwNjgsOSArMTA3MSw4IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfc3RyZWFtX2luaXRf
a2V5cyhzcnRwX3N0cmVhbV9jdHhfdCAqc3J0cCwKICAgICAgICAgICogdG8gZ2VuZXJhdGUgdGhl
IHNhbHQgdmFsdWUKICAgICAgICAgICovCiAgICAgICAgIGlmIChydHBfeHRuX2hkcl9zYWx0X2xl
biA+IDApIHsKLSAgICAgICAgICAgIGRlYnVnX3ByaW50KG1vZF9zcnRwLAotICAgICAgICAgICAg
ICAgICAgICAgICAgImZvdW5kIHJ0cF94dG5faGRyX3NhbHRfbGVuID4gMCwgZ2VuZXJhdGluZyBz
YWx0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgZGVidWdf
cHJpbnQwKG1vZF9zcnRwLAorICAgICAgICAgICAgICAgICAgICAgICAgICJmb3VuZCBydHBfeHRu
X2hkcl9zYWx0X2xlbiA+IDAsIGdlbmVyYXRpbmcgc2FsdCIpOwogCiAgICAgICAgICAgICAvKiBn
ZW5lcmF0ZSBlbmNyeXB0aW9uIHNhbHQsIHB1dCBhZnRlciBlbmNyeXB0aW9uIGtleSAqLwogICAg
ICAgICAgICAgc3RhdCA9IHNydHBfa2RmX2dlbmVyYXRlKHh0bl9oZHJfa2RmLCBsYWJlbF9ydHBf
aGVhZGVyX3NhbHQsCkBAIC0xMTUxLDggKzExNTMsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRw
X3N0cmVhbV9pbml0X2tleXMoc3J0cF9zdHJlYW1fY3R4X3QgKnNydHAsCiAgICAgICogdG8gZ2Vu
ZXJhdGUgdGhlIHNhbHQgdmFsdWUKICAgICAgKi8KICAgICBpZiAocnRjcF9zYWx0X2xlbiA+IDAp
IHsKLSAgICAgICAgZGVidWdfcHJpbnQobW9kX3NydHAsICJmb3VuZCBydGNwX3NhbHRfbGVuID4g
MCwgZ2VuZXJhdGluZyBydGNwIHNhbHQiLAotICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAg
ICAgICAgZGVidWdfcHJpbnQwKG1vZF9zcnRwLCAiZm91bmQgcnRjcF9zYWx0X2xlbiA+IDAsIGdl
bmVyYXRpbmcgcnRjcCBzYWx0Iik7CiAKICAgICAgICAgLyogZ2VuZXJhdGUgZW5jcnlwdGlvbiBz
YWx0LCBwdXQgYWZ0ZXIgZW5jcnlwdGlvbiBrZXkgKi8KICAgICAgICAgc3RhdCA9IHNydHBfa2Rm
X2dlbmVyYXRlKCZrZGYsIGxhYmVsX3J0Y3Bfc2FsdCwKQEAgLTE0MjIsNyArMTQyMyw3IEBAIHN0
YXRpYyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Byb2Nlc3NfaGVhZGVyX2VuY3J5cHRpb24oCiAg
ICAgICAgICAgICAgICAgeHRuX2hkcl9kYXRhKys7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
LSAgICB9IGVsc2UgaWYgKChudG9ocyh4dG5faGRyLT5wcm9maWxlX3NwZWNpZmljKSAmIDB4MWZm
ZikgPT0gMHgxMDApIHsKKyAgICB9IGVsc2UgaWYgKChudG9ocyh4dG5faGRyLT5wcm9maWxlX3Nw
ZWNpZmljKSAmIDB4ZmZmMCkgPT0gMHgxMDAwKSB7CiAgICAgICAgIC8qIFJGQyA1Mjg1LCBzZWN0
aW9uIDQuMy4gVHdvLUJ5dGUgSGVhZGVyICovCiAgICAgICAgIHdoaWxlICh4dG5faGRyX2RhdGEg
KyAxIDwgeHRuX2hkcl9lbmQpIHsKICAgICAgICAgICAgIHVpbnQ4X3QgeGlkID0gKnh0bl9oZHJf
ZGF0YTsKQEAgLTE2NjgsNyArMTY2OSw3IEBAIHN0YXRpYyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRw
X2dldF9lc3RfcGt0X2luZGV4KHNydHBfaGRyX3QgKmhkciwKICAgICBkZWJ1Z19wcmludDIobW9k
X3NydHAsICJlc3RpbWF0ZWQgdV9wYWNrZXQgaW5kZXg6ICUwOHglMDh4IiwgaGlnaDMyKCplc3Qp
LAogICAgICAgICAgICAgICAgICBsb3czMigqZXN0KSk7CiAjZWxzZQotICAgIGRlYnVnX3ByaW50
KG1vZF9zcnRwLCAiZXN0aW1hdGVkIHVfcGFja2V0IGluZGV4OiAlMDE2bGx4IiwgKmVzdCk7Cisg
ICAgZGVidWdfcHJpbnQobW9kX3NydHAsICJlc3RpbWF0ZWQgdV9wYWNrZXQgaW5kZXg6ICUwMTYi
IFBSSXg2NCwgKmVzdCk7CiAjZW5kaWYKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTY5OCw3
ICsxNjk5LDcgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfcHJvdGVjdF9hZWFkKHNy
dHBfY3R4X3QgKmN0eCwKICAgICB1bnNpZ25lZCBpbnQgbWtpX3NpemUgPSAwOwogICAgIHVpbnQ4
X3QgKm1raV9sb2NhdGlvbiA9IE5VTEw7CiAKLSAgICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgImZ1
bmN0aW9uIHNydHBfcHJvdGVjdF9hZWFkIiwgTlVMTCk7CisgICAgZGVidWdfcHJpbnQwKG1vZF9z
cnRwLCAiZnVuY3Rpb24gc3J0cF9wcm90ZWN0X2FlYWQiKTsKIAogICAgIC8qCiAgICAgICogdXBk
YXRlIHRoZSBrZXkgdXNhZ2UgbGltaXQsIGFuZCBjaGVjayBpdCB0byBtYWtlIHN1cmUgdGhhdCB3
ZQpAQCAtMTc1Nyw3ICsxNzU4LDcgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfcHJv
dGVjdF9hZWFkKHNydHBfY3R4X3QgKmN0eCwKICAgICBkZWJ1Z19wcmludDIobW9kX3NydHAsICJl
c3RpbWF0ZWQgcGFja2V0IGluZGV4OiAlMDh4JTA4eCIsIGhpZ2gzMihlc3QpLAogICAgICAgICAg
ICAgICAgICBsb3czMihlc3QpKTsKICNlbHNlCi0gICAgZGVidWdfcHJpbnQobW9kX3NydHAsICJl
c3RpbWF0ZWQgcGFja2V0IGluZGV4OiAlMDE2bGx4IiwgZXN0KTsKKyAgICBkZWJ1Z19wcmludCht
b2Rfc3J0cCwgImVzdGltYXRlZCBwYWNrZXQgaW5kZXg6ICUwMTYiIFBSSXg2NCwgZXN0KTsKICNl
bmRpZgogCiAgICAgLyoKQEAgLTE4NTksMTMgKzE4NjAsMTMgQEAgc3RhdGljIHNydHBfZXJyX3N0
YXR1c190IHNydHBfdW5wcm90ZWN0X2FlYWQoc3J0cF9jdHhfdCAqY3R4LAogICAgIHVuc2lnbmVk
IGludCBhYWRfbGVuOwogICAgIHNydHBfaGRyX3h0bmRfdCAqeHRuX2hkciA9IE5VTEw7CiAKLSAg
ICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgImZ1bmN0aW9uIHNydHBfdW5wcm90ZWN0X2FlYWQiLCBO
VUxMKTsKKyAgICBkZWJ1Z19wcmludDAobW9kX3NydHAsICJmdW5jdGlvbiBzcnRwX3VucHJvdGVj
dF9hZWFkIik7CiAKICNpZmRlZiBOT182NEJJVF9NQVRICiAgICAgZGVidWdfcHJpbnQyKG1vZF9z
cnRwLCAiZXN0aW1hdGVkIHVfcGFja2V0IGluZGV4OiAlMDh4JTA4eCIsIGhpZ2gzMihlc3QpLAog
ICAgICAgICAgICAgICAgICBsb3czMihlc3QpKTsKICNlbHNlCi0gICAgZGVidWdfcHJpbnQobW9k
X3NydHAsICJlc3RpbWF0ZWQgdV9wYWNrZXQgaW5kZXg6ICUwMTZsbHgiLCBlc3QpOworICAgIGRl
YnVnX3ByaW50KG1vZF9zcnRwLCAiZXN0aW1hdGVkIHVfcGFja2V0IGluZGV4OiAlMDE2IiBQUkl4
NjQsIGVzdCk7CiAjZW5kaWYKIAogICAgIC8qIGdldCB0YWcgbGVuZ3RoIGZyb20gc3RyZWFtICov
CkBAIC0yMDYwLDcgKzIwNjEsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Byb3RlY3RfbWtp
KHNydHBfY3R4X3QgKmN0eCwKICAgICB1aW50OF90ICpta2lfbG9jYXRpb24gPSBOVUxMOwogICAg
IGludCBhZHZhbmNlX3BhY2tldF9pbmRleCA9IDA7CiAKLSAgICBkZWJ1Z19wcmludChtb2Rfc3J0
cCwgImZ1bmN0aW9uIHNydHBfcHJvdGVjdCIsIE5VTEwpOworICAgIGRlYnVnX3ByaW50MChtb2Rf
c3J0cCwgImZ1bmN0aW9uIHNydHBfcHJvdGVjdCIpOwogCiAgICAgLyogd2UgYXNzdW1lIHRoZSBo
ZHIgaXMgMzItYml0IGFsaWduZWQgdG8gc3RhcnQgKi8KIApAQCAtMjIzMSw3ICsyMjMyLDcgQEAg
c3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9wcm90ZWN0X21raShzcnRwX2N0eF90ICpjdHgsCiAgICAg
ZGVidWdfcHJpbnQyKG1vZF9zcnRwLCAiZXN0aW1hdGVkIHBhY2tldCBpbmRleDogJTA4eCUwOHgi
LCBoaWdoMzIoZXN0KSwKICAgICAgICAgICAgICAgICAgbG93MzIoZXN0KSk7CiAjZWxzZQotICAg
IGRlYnVnX3ByaW50KG1vZF9zcnRwLCAiZXN0aW1hdGVkIHBhY2tldCBpbmRleDogJTAxNmxseCIs
IGVzdCk7CisgICAgZGVidWdfcHJpbnQobW9kX3NydHAsICJlc3RpbWF0ZWQgcGFja2V0IGluZGV4
OiAlMDE2IiBQUkl4NjQsIGVzdCk7CiAjZW5kaWYKIAogICAgIC8qCkBAIC0yMzM3LDcgKzIzMzgs
NyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Byb3RlY3RfbWtpKHNydHBfY3R4X3QgKmN0eCwK
ICAgICAgICAgICAgIHJldHVybiBzdGF0dXM7CiAKICAgICAgICAgLyogcnVuIGF1dGggZnVuYyBv
dmVyIFJPQywgcHV0IHJlc3VsdCBpbnRvIGF1dGhfdGFnICovCi0gICAgICAgIGRlYnVnX3ByaW50
KG1vZF9zcnRwLCAiZXN0aW1hdGVkIHBhY2tldCBpbmRleDogJTAxNmxseCIsIGVzdCk7CisgICAg
ICAgIGRlYnVnX3ByaW50KG1vZF9zcnRwLCAiZXN0aW1hdGVkIHBhY2tldCBpbmRleDogJTAxNiIg
UFJJeDY0LCBlc3QpOwogICAgICAgICBzdGF0dXMgPSBzcnRwX2F1dGhfY29tcHV0ZShzZXNzaW9u
X2tleXMtPnJ0cF9hdXRoLCAodWludDhfdCAqKSZlc3QsIDQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dGhfdGFnKTsKICAgICAgICAgZGVidWdfcHJpbnQobW9kX3NydHAs
ICJzcnRwIGF1dGggdGFnOiAgICAlcyIsCkBAIC0yMzkwLDcgKzIzOTEsNyBAQCBzcnRwX2Vycl9z
dGF0dXNfdCBzcnRwX3VucHJvdGVjdF9ta2koc3J0cF9jdHhfdCAqY3R4LAogICAgIHVpbnQzMl90
IHJvY190b19zZXQgPSAwOwogICAgIHVpbnQxNl90IHNlcV90b19zZXQgPSAwOwogCi0gICAgZGVi
dWdfcHJpbnQobW9kX3NydHAsICJmdW5jdGlvbiBzcnRwX3VucHJvdGVjdCIsIE5VTEwpOworICAg
IGRlYnVnX3ByaW50MChtb2Rfc3J0cCwgImZ1bmN0aW9uIHNydHBfdW5wcm90ZWN0Iik7CiAKICAg
ICAvKiB3ZSBhc3N1bWUgdGhlIGhkciBpcyAzMi1iaXQgYWxpZ25lZCB0byBzdGFydCAqLwogCkBA
IC0yNDU5LDcgKzI0NjAsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3VucHJvdGVjdF9ta2ko
c3J0cF9jdHhfdCAqY3R4LAogICAgIGRlYnVnX3ByaW50Mihtb2Rfc3J0cCwgImVzdGltYXRlZCB1
X3BhY2tldCBpbmRleDogJTA4eCUwOHgiLCBoaWdoMzIoZXN0KSwKICAgICAgICAgICAgICAgICAg
bG93MzIoZXN0KSk7CiAjZWxzZQotICAgIGRlYnVnX3ByaW50KG1vZF9zcnRwLCAiZXN0aW1hdGVk
IHVfcGFja2V0IGluZGV4OiAlMDE2bGx4IiwgZXN0KTsKKyAgICBkZWJ1Z19wcmludChtb2Rfc3J0
cCwgImVzdGltYXRlZCB1X3BhY2tldCBpbmRleDogJTAxNiIgUFJJeDY0LCBlc3QpOwogI2VuZGlm
CiAKICAgICAvKiBEZXRlcm1pbmUgaWYgTUtJIGlzIGJlaW5nIHVzZWQgYW5kIHdoYXQgc2Vzc2lv
biBrZXlzIHNob3VsZCBiZSB1c2VkICovCkBAIC0yNjAzLDYgKzI2MDQsOCBAQCBzcnRwX2Vycl9z
dGF0dXNfdCBzcnRwX3VucHJvdGVjdF9ta2koc3J0cF9jdHhfdCAqY3R4LAogICAgICAgICAvKiBu
b3cgY29tcHV0ZSBhdXRoIGZ1bmN0aW9uIG92ZXIgcGFja2V0ICovCiAgICAgICAgIHN0YXR1cyA9
IHNydHBfYXV0aF91cGRhdGUoc2Vzc2lvbl9rZXlzLT5ydHBfYXV0aCwgKHVpbnQ4X3QgKilhdXRo
X3N0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwa3Rfb2N0ZXRfbGVu
IC0gdGFnX2xlbiAtIG1raV9zaXplKTsKKyAgICAgICAgaWYgKHN0YXR1cykKKyAgICAgICAgICAg
IHJldHVybiBzdGF0dXM7CiAKICAgICAgICAgLyogcnVuIGF1dGggZnVuYyBvdmVyIFJPQywgdGhl
biB3cml0ZSB0bXAgdGFnICovCiAgICAgICAgIHN0YXR1cyA9IHNydHBfYXV0aF9jb21wdXRlKHNl
c3Npb25fa2V5cy0+cnRwX2F1dGgsICh1aW50OF90ICopJmVzdCwgNCwKQEAgLTI2MTUsNyArMjYx
OCw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0X21raShzcnRwX2N0eF90ICpj
dHgsCiAgICAgICAgIGlmIChzdGF0dXMpCiAgICAgICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3Rh
dHVzX2F1dGhfZmFpbDsKIAotICAgICAgICBpZiAob2N0ZXRfc3RyaW5nX2lzX2VxKHRtcF90YWcs
IGF1dGhfdGFnLCB0YWdfbGVuKSkKKyAgICAgICAgaWYgKHNydHBfb2N0ZXRfc3RyaW5nX2lzX2Vx
KHRtcF90YWcsIGF1dGhfdGFnLCB0YWdfbGVuKSkKICAgICAgICAgICAgIHJldHVybiBzcnRwX2Vy
cl9zdGF0dXNfYXV0aF9mYWlsOwogICAgIH0KIApAQCAtMzI4Niw3ICszMjg5LDYgQEAgdm9pZCBz
cnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19jbV8yNTZfbnVsbF9hdXRoKHNydHBfY3J5cHRvX3Bv
bGljeV90ICpwKQogICAgIHAtPnNlY19zZXJ2ID0gc2VjX3NlcnZfY29uZjsKIH0KIAotI2lmZGVm
IE9QRU5TU0wKIHZvaWQgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9hZXNfY21fMTkyX2htYWNfc2hh
MV84MChzcnRwX2NyeXB0b19wb2xpY3lfdCAqcCkKIHsKICAgICAvKgpAQCAtMzQwOCw4ICszNDEw
LDYgQEAgdm9pZCBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19nY21fMjU2XzE2X2F1dGgoc3J0
cF9jcnlwdG9fcG9saWN5X3QgKnApCiAgICAgcC0+c2VjX3NlcnYgPSBzZWNfc2Vydl9jb25mX2Fu
ZF9hdXRoOwogfQogCi0jZW5kaWYKLQogLyoKICAqIHNlY3VyZSBydGNwIGZ1bmN0aW9ucwogICov
CkBAIC0zNDk3LDcgKzM0OTcsOCBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9wcm90
ZWN0X3J0Y3BfYWVhZCgKIHsKICAgICBzcnRjcF9oZHJfdCAqaGRyID0gKHNydGNwX2hkcl90ICop
cnRjcF9oZHI7CiAgICAgdWludDMyX3QgKmVuY19zdGFydDsgICAgICAgICAgICAvKiBwb2ludGVy
IHRvIHN0YXJ0IG9mIGVuY3J5cHRlZCBwb3J0aW9uICAqLwotICAgIHVpbnQzMl90ICp0cmFpbGVy
OyAgICAgICAgICAgICAgLyogcG9pbnRlciB0byBzdGFydCBvZiB0cmFpbGVyICAgICAgICAgICAg
Ki8KKyAgICB1aW50MzJfdCAqdHJhaWxlcl9wOyAgICAgICAgICAgIC8qIHBvaW50ZXIgdG8gc3Rh
cnQgb2YgdHJhaWxlciAgICAgICAgICAgICovCisgICAgdWludDMyX3QgdHJhaWxlcjsgICAgICAg
ICAgICAgICAvKiB0cmFpbGVyIHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogICAg
IHVuc2lnbmVkIGludCBlbmNfb2N0ZXRfbGVuID0gMDsgLyogbnVtYmVyIG9mIG9jdGV0cyBpbiBl
bmNyeXB0ZWQgcG9ydGlvbiAqLwogICAgIHVpbnQ4X3QgKmF1dGhfdGFnID0gTlVMTDsgICAgICAg
LyogbG9jYXRpb24gb2YgYXV0aF90YWcgd2l0aGluIHBhY2tldCAgICAgKi8KICAgICBzcnRwX2Vy
cl9zdGF0dXNfdCBzdGF0dXM7CkBAIC0zNTIwLDE4ICszNTIxLDE1IEBAIHN0YXRpYyBzcnRwX2Vy
cl9zdGF0dXNfdCBzcnRwX3Byb3RlY3RfcnRjcF9hZWFkKAogICAgIC8qIE5PVEU6IGhkci0+bGVu
Z3RoIGlzIG5vdCB1c2FibGUgLSBpdCByZWZlcnMgdG8gb25seSB0aGUgZmlyc3QKICAgICAgKiBS
VENQIHJlcG9ydCBpbiB0aGUgY29tcG91bmQgcGFja2V0IQogICAgICAqLwotICAgIC8qIE5PVEU6
IHRyYWlsZXIgaXMgMzItYml0IGFsaWduZWQgYmVjYXVzZSBSVENQICdwYWNrZXRzJyBhcmUgYWx3
YXlzCi0gICAgICogbXVsdGlwbGVzIG9mIDMyLWJpdHMgKFJGQyAzNTUwIDYuMSkKLSAgICAgKi8K
LSAgICB0cmFpbGVyID0gKHVpbnQzMl90ICopKChjaGFyICopZW5jX3N0YXJ0ICsgZW5jX29jdGV0
X2xlbiArIHRhZ19sZW4pOworICAgIHRyYWlsZXJfcCA9ICh1aW50MzJfdCAqKSgoY2hhciAqKWVu
Y19zdGFydCArIGVuY19vY3RldF9sZW4gKyB0YWdfbGVuKTsKIAogICAgIGlmIChzdHJlYW0tPnJ0
Y3Bfc2VydmljZXMgJiBzZWNfc2Vydl9jb25mKSB7Ci0gICAgICAgICp0cmFpbGVyID0gaHRvbmwo
U1JUQ1BfRV9CSVQpOyAvKiBzZXQgZW5jcnlwdCBiaXQgKi8KKyAgICAgICAgdHJhaWxlciA9IGh0
b25sKFNSVENQX0VfQklUKTsgLyogc2V0IGVuY3J5cHQgYml0ICovCiAgICAgfSBlbHNlIHsKICAg
ICAgICAgZW5jX3N0YXJ0ID0gTlVMTDsKICAgICAgICAgZW5jX29jdGV0X2xlbiA9IDA7CiAgICAg
ICAgIC8qIDAgaXMgbmV0d29yay1vcmRlciBpbmRlcGVuZGFudCAqLwotICAgICAgICAqdHJhaWxl
ciA9IDB4MDAwMDAwMDA7IC8qIHNldCBlbmNyeXB0IGJpdCAqLworICAgICAgICB0cmFpbGVyID0g
MHgwMDAwMDAwMDsgLyogc2V0IGVuY3J5cHQgYml0ICovCiAgICAgfQogCiAgICAgbWtpX3NpemUg
PSBzcnRwX2luamVjdF9ta2koKHVpbnQ4X3QgKiloZHIgKyAqcGt0X29jdGV0X2xlbiArIHRhZ19s
ZW4gKwpAQCAtMzU1NSw5ICszNTUzLDExIEBAIHN0YXRpYyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRw
X3Byb3RlY3RfcnRjcF9hZWFkKAogICAgICAgICByZXR1cm4gc3RhdHVzOwogICAgIH0KICAgICBz
ZXFfbnVtID0gc3J0cF9yZGJfZ2V0X3ZhbHVlKCZzdHJlYW0tPnJ0Y3BfcmRiKTsKLSAgICAqdHJh
aWxlciB8PSBodG9ubChzZXFfbnVtKTsKKyAgICB0cmFpbGVyIHw9IGh0b25sKHNlcV9udW0pOwog
ICAgIGRlYnVnX3ByaW50KG1vZF9zcnRwLCAic3J0Y3AgaW5kZXg6ICV4Iiwgc2VxX251bSk7CiAK
KyAgICBtZW1jcHkodHJhaWxlcl9wLCAmdHJhaWxlciwgc2l6ZW9mKHRyYWlsZXIpKTsKKwogICAg
IC8qCiAgICAgICogQ2FsY3VsYXRlIGFuZCBzZXQgdGhlIElWCiAgICAgICovCkBAIC0zNTk5LDcg
KzM1OTksNyBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9wcm90ZWN0X3J0Y3BfYWVh
ZCgKICAgICAvKgogICAgICAqIFByb2Nlc3MgdGhlIHNlcXVlbmNlIyBhcyBBQUQKICAgICAgKi8K
LSAgICB0c2VxID0gKnRyYWlsZXI7CisgICAgdHNlcSA9IHRyYWlsZXI7CiAgICAgc3RhdHVzID0g
c3J0cF9jaXBoZXJfc2V0X2FhZChzZXNzaW9uX2tleXMtPnJ0Y3BfY2lwaGVyLCAodWludDhfdCAq
KSZ0c2VxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHNydGNwX3Ry
YWlsZXJfdCkpOwogICAgIGlmIChzdGF0dXMpIHsKQEAgLTM2NjgsNyArMzY2OCw4IEBAIHN0YXRp
YyBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3VucHJvdGVjdF9ydGNwX2FlYWQoCiB7CiAgICAgc3J0
Y3BfaGRyX3QgKmhkciA9IChzcnRjcF9oZHJfdCAqKXNydGNwX2hkcjsKICAgICB1aW50MzJfdCAq
ZW5jX3N0YXJ0OyAgICAgICAgICAgIC8qIHBvaW50ZXIgdG8gc3RhcnQgb2YgZW5jcnlwdGVkIHBv
cnRpb24gICovCi0gICAgdWludDMyX3QgKnRyYWlsZXI7ICAgICAgICAgICAgICAvKiBwb2ludGVy
IHRvIHN0YXJ0IG9mIHRyYWlsZXIgICAgICAgICAgICAqLworICAgIHVpbnQzMl90ICp0cmFpbGVy
X3A7ICAgICAgICAgICAgLyogcG9pbnRlciB0byBzdGFydCBvZiB0cmFpbGVyICAgICAgICAgICAg
Ki8KKyAgICB1aW50MzJfdCB0cmFpbGVyOyAgICAgICAgICAgICAgIC8qIHRyYWlsZXIgdmFsdWUg
ICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgdW5zaWduZWQgaW50IGVuY19vY3RldF9s
ZW4gPSAwOyAvKiBudW1iZXIgb2Ygb2N0ZXRzIGluIGVuY3J5cHRlZCBwb3J0aW9uICovCiAgICAg
dWludDhfdCAqYXV0aF90YWcgPSBOVUxMOyAgICAgICAvKiBsb2NhdGlvbiBvZiBhdXRoX3RhZyB3
aXRoaW4gcGFja2V0ICAgICAqLwogICAgIHNydHBfZXJyX3N0YXR1c190IHN0YXR1czsKQEAgLTM2
OTQsMTIgKzM2OTUsMTAgQEAgc3RhdGljIHNydHBfZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0
X3J0Y3BfYWVhZCgKICAgICAgKi8KICAgICAvKiBUaGlzIHNob3VsZCBwb2ludCB0cmFpbGVyIHRv
IHRoZSB3b3JkIHBhc3QgdGhlIGVuZCBvZiB0aGUgbm9ybWFsIGRhdGEuICovCiAgICAgLyogVGhp
cyB3b3VsZCBuZWVkIHRvIGJlIG1vZGlmaWVkIGZvciBvcHRpb25hbCBtaWtleSBkYXRhICovCi0g
ICAgLyoKLSAgICAgKiBOT1RFOiB0cmFpbGVyIGlzIDMyLWJpdCBhbGlnbmVkIGJlY2F1c2UgUlRD
UCAncGFja2V0cycgYXJlIGFsd2F5cwotICAgICAqICAgbXVsdGlwbGVzIG9mIDMyLWJpdHMgKFJG
QyAzNTUwIDYuMSkKLSAgICAgKi8KLSAgICB0cmFpbGVyID0gKHVpbnQzMl90ICopKChjaGFyICop
aGRyICsgKnBrdF9vY3RldF9sZW4gLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9m
KHNydGNwX3RyYWlsZXJfdCkgLSBta2lfc2l6ZSk7CisgICAgdHJhaWxlcl9wID0gKHVpbnQzMl90
ICopKChjaGFyICopaGRyICsgKnBrdF9vY3RldF9sZW4gLQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplb2Yoc3J0Y3BfdHJhaWxlcl90KSAtIG1raV9zaXplKTsKKyAgICBtZW1jcHko
JnRyYWlsZXIsIHRyYWlsZXJfcCwgc2l6ZW9mKHRyYWlsZXIpKTsKKwogICAgIC8qCiAgICAgICog
V2UgcGFzcyB0aGUgdGFnIGRvd24gdG8gdGhlIGNpcGhlciB3aGVuIGRvaW5nIEdDTSBtb2RlCiAg
ICAgICovCkBAIC0zNzA4LDcgKzM3MDcsNyBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0
cF91bnByb3RlY3RfcnRjcF9hZWFkKAogICAgIGF1dGhfdGFnID0gKHVpbnQ4X3QgKiloZHIgKyAq
cGt0X29jdGV0X2xlbiAtIHRhZ19sZW4gLSBta2lfc2l6ZSAtCiAgICAgICAgICAgICAgICBzaXpl
b2Yoc3J0Y3BfdHJhaWxlcl90KTsKIAotICAgIGlmICgqKCh1bnNpZ25lZCBjaGFyICopdHJhaWxl
cikgJiBTUlRDUF9FX0JZVEVfQklUKSB7CisgICAgaWYgKCooKHVuc2lnbmVkIGNoYXIgKil0cmFp
bGVyX3ApICYgU1JUQ1BfRV9CWVRFX0JJVCkgewogICAgICAgICBlbmNfc3RhcnQgPSAodWludDMy
X3QgKiloZHIgKyB1aW50MzJzX2luX3J0Y3BfaGVhZGVyOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IGVuY19vY3RldF9sZW4gPSAwOwpAQCAtMzcxOSw3ICszNzE4LDcgQEAgc3RhdGljIHNydHBfZXJy
X3N0YXR1c190IHNydHBfdW5wcm90ZWN0X3J0Y3BfYWVhZCgKICAgICAgKiBjaGVjayB0aGUgc2Vx
dWVuY2UgbnVtYmVyIGZvciByZXBsYXlzCiAgICAgICovCiAgICAgLyogdGhpcyBpcyBlYXNpZXIg
dGhhbiBkZWFsaW5nIHdpdGggYml0ZmllbGQgYWNjZXNzICovCi0gICAgc2VxX251bSA9IG50b2hs
KCp0cmFpbGVyKSAmIFNSVENQX0lOREVYX01BU0s7CisgICAgc2VxX251bSA9IG50b2hsKHRyYWls
ZXIpICYgU1JUQ1BfSU5ERVhfTUFTSzsKICAgICBkZWJ1Z19wcmludChtb2Rfc3J0cCwgInNydGNw
IGluZGV4OiAleCIsIHNlcV9udW0pOwogICAgIHN0YXR1cyA9IHNydHBfcmRiX2NoZWNrKCZzdHJl
YW0tPnJ0Y3BfcmRiLCBzZXFfbnVtKTsKICAgICBpZiAoc3RhdHVzKSB7CkBAIC0zNzY5LDcgKzM3
NjgsNyBAQCBzdGF0aWMgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF91bnByb3RlY3RfcnRjcF9hZWFk
KAogICAgIC8qCiAgICAgICogUHJvY2VzcyB0aGUgc2VxdWVuY2UjIGFzIEFBRAogICAgICAqLwot
ICAgIHRzZXEgPSAqdHJhaWxlcjsKKyAgICB0c2VxID0gdHJhaWxlcjsKICAgICBzdGF0dXMgPSBz
cnRwX2NpcGhlcl9zZXRfYWFkKHNlc3Npb25fa2V5cy0+cnRjcF9jaXBoZXIsICh1aW50OF90ICop
JnRzZXEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3J0Y3BfdHJh
aWxlcl90KSk7CiAgICAgaWYgKHN0YXR1cykgewpAQCAtMzg2Nyw3ICszODY2LDggQEAgc3J0cF9l
cnJfc3RhdHVzX3Qgc3J0cF9wcm90ZWN0X3J0Y3BfbWtpKHNydHBfdCBjdHgsCiAgICAgc3J0Y3Bf
aGRyX3QgKmhkciA9IChzcnRjcF9oZHJfdCAqKXJ0Y3BfaGRyOwogICAgIHVpbnQzMl90ICplbmNf
c3RhcnQ7ICAgICAgICAgICAgLyogcG9pbnRlciB0byBzdGFydCBvZiBlbmNyeXB0ZWQgcG9ydGlv
biAgKi8KICAgICB1aW50MzJfdCAqYXV0aF9zdGFydDsgICAgICAgICAgIC8qIHBvaW50ZXIgdG8g
c3RhcnQgb2YgYXV0aC4gcG9ydGlvbiAgICAgICovCi0gICAgdWludDMyX3QgKnRyYWlsZXI7ICAg
ICAgICAgICAgICAvKiBwb2ludGVyIHRvIHN0YXJ0IG9mIHRyYWlsZXIgICAgICAgICAgICAqLwor
ICAgIHVpbnQzMl90ICp0cmFpbGVyX3A7ICAgICAgICAgICAgLyogcG9pbnRlciB0byBzdGFydCBv
ZiB0cmFpbGVyICAgICAgICAgICAgKi8KKyAgICB1aW50MzJfdCB0cmFpbGVyOyAgICAgICAgICAg
ICAgIC8qIHRyYWlsZXIgdmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgdW5z
aWduZWQgaW50IGVuY19vY3RldF9sZW4gPSAwOyAvKiBudW1iZXIgb2Ygb2N0ZXRzIGluIGVuY3J5
cHRlZCBwb3J0aW9uICovCiAgICAgdWludDhfdCAqYXV0aF90YWcgPSBOVUxMOyAgICAgICAvKiBs
b2NhdGlvbiBvZiBhdXRoX3RhZyB3aXRoaW4gcGFja2V0ICAgICAqLwogICAgIHNydHBfZXJyX3N0
YXR1c190IHN0YXR1czsKQEAgLTM5NjAsMTkgKzM5NjAsMTUgQEAgc3J0cF9lcnJfc3RhdHVzX3Qg
c3J0cF9wcm90ZWN0X3J0Y3BfbWtpKHNydHBfdCBjdHgsCiAgICAgICogTk9URTogaGRyLT5sZW5n
dGggaXMgbm90IHVzYWJsZSAtIGl0IHJlZmVycyB0byBvbmx5IHRoZSBmaXJzdCBSVENQIHJlcG9y
dAogICAgICAqIGluIHRoZSBjb21wb3VuZCBwYWNrZXQhCiAgICAgICovCi0gICAgLyoKLSAgICAg
KiBOT1RFOiB0cmFpbGVyIGlzIDMyLWJpdCBhbGlnbmVkIGJlY2F1c2UgUlRDUCAncGFja2V0cycg
YXJlIGFsd2F5cwotICAgICAqIG11bHRpcGxlcyBvZiAzMi1iaXRzIChSRkMgMzU1MCA2LjEpCi0g
ICAgICovCi0gICAgdHJhaWxlciA9ICh1aW50MzJfdCAqKSgoY2hhciAqKWVuY19zdGFydCArIGVu
Y19vY3RldF9sZW4pOworICAgIHRyYWlsZXJfcCA9ICh1aW50MzJfdCAqKSgoY2hhciAqKWVuY19z
dGFydCArIGVuY19vY3RldF9sZW4pOwogCiAgICAgaWYgKHN0cmVhbS0+cnRjcF9zZXJ2aWNlcyAm
IHNlY19zZXJ2X2NvbmYpIHsKLSAgICAgICAgKnRyYWlsZXIgPSBodG9ubChTUlRDUF9FX0JJVCk7
IC8qIHNldCBlbmNyeXB0IGJpdCAqLworICAgICAgICB0cmFpbGVyID0gaHRvbmwoU1JUQ1BfRV9C
SVQpOyAvKiBzZXQgZW5jcnlwdCBiaXQgKi8KICAgICB9IGVsc2UgewogICAgICAgICBlbmNfc3Rh
cnQgPSBOVUxMOwogICAgICAgICBlbmNfb2N0ZXRfbGVuID0gMDsKICAgICAgICAgLyogMCBpcyBu
ZXR3b3JrLW9yZGVyIGluZGVwZW5kYW50ICovCi0gICAgICAgICp0cmFpbGVyID0gMHgwMDAwMDAw
MDsgLyogc2V0IGVuY3J5cHQgYml0ICovCisgICAgICAgIHRyYWlsZXIgPSAweDAwMDAwMDAwOyAv
KiBzZXQgZW5jcnlwdCBiaXQgKi8KICAgICB9CiAKICAgICBta2lfc2l6ZSA9IHNydHBfaW5qZWN0
X21raSgodWludDhfdCAqKWhkciArICpwa3Rfb2N0ZXRfbGVuICsKQEAgLTQwMDAsOSArMzk5Niwx
MSBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Byb3RlY3RfcnRjcF9ta2koc3J0cF90IGN0eCwK
ICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gc3RhdHVzOwogICAgIHNlcV9udW0gPSBz
cnRwX3JkYl9nZXRfdmFsdWUoJnN0cmVhbS0+cnRjcF9yZGIpOwotICAgICp0cmFpbGVyIHw9IGh0
b25sKHNlcV9udW0pOworICAgIHRyYWlsZXIgfD0gaHRvbmwoc2VxX251bSk7CiAgICAgZGVidWdf
cHJpbnQobW9kX3NydHAsICJzcnRjcCBpbmRleDogJXgiLCBzZXFfbnVtKTsKIAorICAgIG1lbWNw
eSh0cmFpbGVyX3AsICZ0cmFpbGVyLCBzaXplb2YodHJhaWxlcikpOworCiAgICAgLyoKICAgICAg
KiBpZiB3ZSdyZSB1c2luZyByaW5kYWVsIGNvdW50ZXIgbW9kZSwgc2V0IG5vbmNlIGFuZCBzZXEK
ICAgICAgKi8KQEAgLTQwNjAsNyArNDA1OCw5IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfcHJv
dGVjdF9ydGNwX21raShzcnRwX3QgY3R4LAogICAgIH0KIAogICAgIC8qIGluaXRpYWxpemUgYXV0
aCBmdW5jIGNvbnRleHQgKi8KLSAgICBzcnRwX2F1dGhfc3RhcnQoc2Vzc2lvbl9rZXlzLT5ydGNw
X2F1dGgpOworICAgIHN0YXR1cyA9IHNydHBfYXV0aF9zdGFydChzZXNzaW9uX2tleXMtPnJ0Y3Bf
YXV0aCk7CisgICAgaWYgKHN0YXR1cykKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKIAogICAgIC8q
CiAgICAgICogcnVuIGF1dGggZnVuYyBvdmVyIHBhY2tldCAoaW5jbHVkaW5nIHRyYWlsZXIpLCBh
bmQgd3JpdGUgdGhlCkBAIC00MDk4LDcgKzQwOTgsOCBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRw
X3VucHJvdGVjdF9ydGNwX21raShzcnRwX3QgY3R4LAogICAgIHNydGNwX2hkcl90ICpoZHIgPSAo
c3J0Y3BfaGRyX3QgKilzcnRjcF9oZHI7CiAgICAgdWludDMyX3QgKmVuY19zdGFydDsgICAgICAg
ICAgICAvKiBwb2ludGVyIHRvIHN0YXJ0IG9mIGVuY3J5cHRlZCBwb3J0aW9uICAqLwogICAgIHVp
bnQzMl90ICphdXRoX3N0YXJ0OyAgICAgICAgICAgLyogcG9pbnRlciB0byBzdGFydCBvZiBhdXRo
LiBwb3J0aW9uICAgICAgKi8KLSAgICB1aW50MzJfdCAqdHJhaWxlcjsgICAgICAgICAgICAgIC8q
IHBvaW50ZXIgdG8gc3RhcnQgb2YgdHJhaWxlciAgICAgICAgICAgICovCisgICAgdWludDMyX3Qg
KnRyYWlsZXJfcDsgICAgICAgICAgICAvKiBwb2ludGVyIHRvIHN0YXJ0IG9mIHRyYWlsZXIgICAg
ICAgICAgICAqLworICAgIHVpbnQzMl90IHRyYWlsZXI7ICAgICAgICAgICAgICAgLyogdHJhaWxl
ciB2YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgICB1bnNpZ25lZCBpbnQgZW5j
X29jdGV0X2xlbiA9IDA7IC8qIG51bWJlciBvZiBvY3RldHMgaW4gZW5jcnlwdGVkIHBvcnRpb24g
Ki8KICAgICB1aW50OF90ICphdXRoX3RhZyA9IE5VTEw7ICAgICAgIC8qIGxvY2F0aW9uIG9mIGF1
dGhfdGFnIHdpdGhpbiBwYWNrZXQgICAgICovCiAgICAgdWludDhfdCB0bXBfdGFnW1NSVFBfTUFY
X1RBR19MRU5dOwpAQCAtNDIxNiwxNCArNDIxNywxMiBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRw
X3VucHJvdGVjdF9ydGNwX21raShzcnRwX3QgY3R4LAogICAgICAqLwogICAgIC8qIFRoaXMgc2hv
dWxkIHBvaW50IHRyYWlsZXIgdG8gdGhlIHdvcmQgcGFzdCB0aGUgZW5kIG9mIHRoZSBub3JtYWwg
ZGF0YS4gKi8KICAgICAvKiBUaGlzIHdvdWxkIG5lZWQgdG8gYmUgbW9kaWZpZWQgZm9yIG9wdGlv
bmFsIG1pa2V5IGRhdGEgKi8KLSAgICAvKgotICAgICAqIE5PVEU6IHRyYWlsZXIgaXMgMzItYml0
IGFsaWduZWQgYmVjYXVzZSBSVENQICdwYWNrZXRzJyBhcmUgYWx3YXlzCi0gICAgICogICBtdWx0
aXBsZXMgb2YgMzItYml0cyAoUkZDIDM1NTAgNi4xKQotICAgICAqLwotICAgIHRyYWlsZXIgPSAo
dWludDMyX3QgKikoKGNoYXIgKiloZHIgKyAqcGt0X29jdGV0X2xlbiAtCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAodGFnX2xlbiArIG1raV9zaXplICsgc2l6ZW9mKHNydGNwX3RyYWlsZXJf
dCkpKTsKKyAgICB0cmFpbGVyX3AgPSAodWludDMyX3QgKikoKGNoYXIgKiloZHIgKyAqcGt0X29j
dGV0X2xlbiAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YWdfbGVuICsgbWtpX3Np
emUgKyBzaXplb2Yoc3J0Y3BfdHJhaWxlcl90KSkpOworICAgIG1lbWNweSgmdHJhaWxlciwgdHJh
aWxlcl9wLCBzaXplb2YodHJhaWxlcikpOworCiAgICAgZV9iaXRfaW5fcGFja2V0ID0KLSAgICAg
ICAgKCooKHVuc2lnbmVkIGNoYXIgKil0cmFpbGVyKSAmIFNSVENQX0VfQllURV9CSVQpID09IFNS
VENQX0VfQllURV9CSVQ7CisgICAgICAgICgqKCh1bnNpZ25lZCBjaGFyICopdHJhaWxlcl9wKSAm
IFNSVENQX0VfQllURV9CSVQpID09IFNSVENQX0VfQllURV9CSVQ7CiAgICAgaWYgKGVfYml0X2lu
X3BhY2tldCAhPSBzZWNfc2Vydl9jb25maWRlbnRpYWxpdHkpIHsKICAgICAgICAgcmV0dXJuIHNy
dHBfZXJyX3N0YXR1c19jYW50X2NoZWNrOwogICAgIH0KQEAgLTQyNjcsNyArNDI2Niw3IEBAIHNy
dHBfZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0X3J0Y3BfbWtpKHNydHBfdCBjdHgsCiAgICAg
ICogY2hlY2sgdGhlIHNlcXVlbmNlIG51bWJlciBmb3IgcmVwbGF5cwogICAgICAqLwogICAgIC8q
IHRoaXMgaXMgZWFzaWVyIHRoYW4gZGVhbGluZyB3aXRoIGJpdGZpZWxkIGFjY2VzcyAqLwotICAg
IHNlcV9udW0gPSBudG9obCgqdHJhaWxlcikgJiBTUlRDUF9JTkRFWF9NQVNLOworICAgIHNlcV9u
dW0gPSBudG9obCh0cmFpbGVyKSAmIFNSVENQX0lOREVYX01BU0s7CiAgICAgZGVidWdfcHJpbnQo
bW9kX3NydHAsICJzcnRjcCBpbmRleDogJXgiLCBzZXFfbnVtKTsKICAgICBzdGF0dXMgPSBzcnRw
X3JkYl9jaGVjaygmc3RyZWFtLT5ydGNwX3JkYiwgc2VxX251bSk7CiAgICAgaWYgKHN0YXR1cykK
QEAgLTQzMDMsNyArNDMwMiw5IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdW5wcm90ZWN0X3J0
Y3BfbWtpKHNydHBfdCBjdHgsCiAgICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfY2lwaGVy
X2ZhaWw7CiAKICAgICAvKiBpbml0aWFsaXplIGF1dGggZnVuYyBjb250ZXh0ICovCi0gICAgc3J0
cF9hdXRoX3N0YXJ0KHNlc3Npb25fa2V5cy0+cnRjcF9hdXRoKTsKKyAgICBzdGF0dXMgPSBzcnRw
X2F1dGhfc3RhcnQoc2Vzc2lvbl9rZXlzLT5ydGNwX2F1dGgpOworICAgIGlmIChzdGF0dXMpCisg
ICAgICAgIHJldHVybiBzdGF0dXM7CiAKICAgICAvKiBydW4gYXV0aCBmdW5jIG92ZXIgcGFja2V0
LCBwdXQgcmVzdWx0IGludG8gdG1wX3RhZyAqLwogICAgIHN0YXR1cyA9IHNydHBfYXV0aF9jb21w
dXRlKHNlc3Npb25fa2V5cy0+cnRjcF9hdXRoLCAodWludDhfdCAqKWF1dGhfc3RhcnQsCkBAIC00
MzE2LDcgKzQzMTcsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3VucHJvdGVjdF9ydGNwX21r
aShzcnRwX3QgY3R4LAogICAgIC8qIGNvbXBhcmUgdGhlIHRhZyBqdXN0IGNvbXB1dGVkIHdpdGgg
dGhlIG9uZSBpbiB0aGUgcGFja2V0ICovCiAgICAgZGVidWdfcHJpbnQobW9kX3NydHAsICJzcnRj
cCB0YWcgZnJvbSBwYWNrZXQ6ICAgICVzIiwKICAgICAgICAgICAgICAgICBzcnRwX29jdGV0X3N0
cmluZ19oZXhfc3RyaW5nKGF1dGhfdGFnLCB0YWdfbGVuKSk7Ci0gICAgaWYgKG9jdGV0X3N0cmlu
Z19pc19lcSh0bXBfdGFnLCBhdXRoX3RhZywgdGFnX2xlbikpCisgICAgaWYgKHNydHBfb2N0ZXRf
c3RyaW5nX2lzX2VxKHRtcF90YWcsIGF1dGhfdGFnLCB0YWdfbGVuKSkKICAgICAgICAgcmV0dXJu
IHNydHBfZXJyX3N0YXR1c19hdXRoX2ZhaWw7CiAKICAgICAvKgpAQCAtNDQzOCw3ICs0NDM5LDcg
QEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9mcm9tX3Byb2ZpbGVf
Zm9yX3J0cCgKICAgICBjYXNlIHNydHBfcHJvZmlsZV9udWxsX3NoYTFfODA6CiAgICAgICAgIHNy
dHBfY3J5cHRvX3BvbGljeV9zZXRfbnVsbF9jaXBoZXJfaG1hY19zaGExXzgwKHBvbGljeSk7CiAg
ICAgICAgIGJyZWFrOwotI2lmIGRlZmluZWQoT1BFTlNTTCkKKyNpZmRlZiBHQ00KICAgICBjYXNl
IHNydHBfcHJvZmlsZV9hZWFkX2Flc18xMjhfZ2NtOgogICAgICAgICBzcnRwX2NyeXB0b19wb2xp
Y3lfc2V0X2Flc19nY21fMTI4XzE2X2F1dGgocG9saWN5KTsKICAgICAgICAgYnJlYWs7CkBAIC00
NDcyLDcgKzQ0NzMsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX2NyeXB0b19wb2xpY3lfc2V0
X2Zyb21fcHJvZmlsZV9mb3JfcnRjcCgKICAgICBjYXNlIHNydHBfcHJvZmlsZV9udWxsX3NoYTFf
ODA6CiAgICAgICAgIHNydHBfY3J5cHRvX3BvbGljeV9zZXRfbnVsbF9jaXBoZXJfaG1hY19zaGEx
XzgwKHBvbGljeSk7CiAgICAgICAgIGJyZWFrOwotI2lmIGRlZmluZWQoT1BFTlNTTCkKKyNpZmRl
ZiBHQ00KICAgICBjYXNlIHNydHBfcHJvZmlsZV9hZWFkX2Flc18xMjhfZ2NtOgogICAgICAgICBz
cnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19nY21fMTI4XzE2X2F1dGgocG9saWN5KTsKICAgICAg
ICAgYnJlYWs7CkBAIC00NTUzLDEwICs0NTU0LDEwIEBAIHNydHBfZXJyX3N0YXR1c190IHN0cmVh
bV9nZXRfcHJvdGVjdF90cmFpbGVyX2xlbmd0aChzcnRwX3N0cmVhbV9jdHhfdCAqc3RyZWFtLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz
Ml90IG1raV9pbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1aW50MzJfdCAqbGVuZ3RoKQogewotICAgICpsZW5ndGggPSAwOwotCiAgICAg
c3J0cF9zZXNzaW9uX2tleXNfdCAqc2Vzc2lvbl9rZXk7CiAKKyAgICAqbGVuZ3RoID0gMDsKKwog
ICAgIGlmICh1c2VfbWtpKSB7CiAgICAgICAgIGlmIChta2lfaW5kZXggPj0gc3RyZWFtLT5udW1f
bWFzdGVyX2tleXMpIHsKICAgICAgICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfYmFkX21r
aTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRf
cGFydHkvbGlic3J0cC90ZXN0L2dldG9wdF9zLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9nZXRvcHRfcy5jCmluZGV4IGFiNjMx
ODc4YTQwNTBhMTU2NzIzMGM2MGUwODZhY2M5YTk5MTU2NzguLmUwYmQ3Zjc3ZWQ3M2JmZDI4NDQ5
ZDAyZWU1MzVjNmE5NzcwYzZmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L2dldG9wdF9zLmMKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3Qv
Z2V0b3B0X3MuYwpAQCAtNTgsOCArNTgsOSBAQCBzdGF0aWMgaW50IGdldG9wdF9jaGVja19jaGFy
YWN0ZXIoY2hhciBjLCBjb25zdCBjaGFyICpzdHJpbmcpCiAKICAgICB3aGlsZSAoKnN0cmluZyAh
PSAwKSB7CiAgICAgICAgIGlmIChtYXhfc3RyaW5nX2xlbiA9PSAwKSB7Ci0gICAgICAgICAgICBy
ZXR1cm4gJz8nOworICAgICAgICAgICAgcmV0dXJuIEdFVE9QVF9OT1RfRk9VTkQ7CiAgICAgICAg
IH0KKyAgICAgICAgbWF4X3N0cmluZ19sZW4tLTsKICAgICAgICAgaWYgKCpzdHJpbmcrKyA9PSBj
KSB7CiAgICAgICAgICAgICBpZiAoKnN0cmluZyA9PSAnOicpIHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gR0VUT1BUX0ZPVU5EX1dJVEhfQVJHVU1FTlQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9yZGJ4X2Ry
aXZlci5jIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9s
aWJzcnRwL3Rlc3QvcmRieF9kcml2ZXIuYwppbmRleCA2MDljZTljOGU0OGEyNzVjYzE5OWIzYTFl
OGRhYjRiODkwYTlhYjdkLi5kZjQzNGEwMjI0NWNmNzFmMDBkNjA3M2NhNjE2M2ZlMTZhMDE1OTY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2xpYnNydHAvdGVzdC9yZGJ4X2RyaXZlci5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3JkYnhfZHJpdmVyLmMKQEAg
LTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJnZXRvcHRfcy5oIiAvKiBmb3IgbG9jYWwgZ2V0b3B0
KCkgICAgKi8KIAogI2luY2x1ZGUgInJkYnguaCIKKyNpbmNsdWRlICJjaXBoZXJfcHJpdi5oIgog
CiAjaWZkZWYgUk9DX1RFU1QKICNlcnJvciAic3J0cF9yZGJ4X3Qgd29uJ3Qgd29yayB3aXRoIFJP
Q19URVNUIC0gYml0bWFzayBzYW1lIHNpemUgYXMgc2VxX21lZGlhbiIKQEAgLTMwNSw3ICszMDYs
NyBAQCBzcnRwX2Vycl9zdGF0dXNfdCB0ZXN0X3JlcGxheV9kYngoaW50IG51bV90cmlhbHMsIHVu
c2lnbmVkIGxvbmcgd3MpCiAgICAgICovCiAgICAgcHJpbnRmKCJcdHRlc3RpbmcgaW5zZXJ0aW9u
IHdpdGggbGFyZ2UgZ2Fwcy4uLiIpOwogICAgIGZvciAoaWR4ID0gMCwgaXJjdmQgPSAwOyAoaW50
KWlkeCA8IG51bV90cmlhbHM7Ci0gICAgICAgICBpZHgrKywgaXJjdmQgKz0gKDEgPDwgKHJhbmQo
KSAlIDEyKSkpIHsKKyAgICAgICAgIGlkeCsrLCBpcmN2ZCArPSAoMSA8PCAoc3J0cF9jaXBoZXJf
cmFuZF91MzJfZm9yX3Rlc3RzKCkgJSAxMikpKSB7CiAgICAgICAgIHN0YXR1cyA9IHJkYnhfY2hl
Y2tfYWRkKCZyZGJ4LCBpcmN2ZCk7CiAgICAgICAgIGlmIChzdGF0dXMpCiAgICAgICAgICAgICBy
ZXR1cm4gc3RhdHVzOwpAQCAtMzIwLDggKzMyMSw3IEBAIHNydHBfZXJyX3N0YXR1c190IHRlc3Rf
cmVwbGF5X2RieChpbnQgbnVtX3RyaWFscywgdW5zaWduZWQgbG9uZyB3cykKICAgICByZXR1cm4g
c3J0cF9lcnJfc3RhdHVzX29rOwogfQogCi0jaW5jbHVkZSA8dGltZS5oPiAgIC8qIGZvciBjbG9j
aygpICAqLwotI2luY2x1ZGUgPHN0ZGxpYi5oPiAvKiBmb3IgcmFuZG9tKCkgKi8KKyNpbmNsdWRl
IDx0aW1lLmg+IC8qIGZvciBjbG9jaygpICAqLwogCiBkb3VibGUgcmRieF9jaGVja19hZGRzX3Bl
cl9zZWNvbmQoaW50IG51bV90cmlhbHMsIHVuc2lnbmVkIGxvbmcgd3MpCiB7CkBAIC0zNDgsNiAr
MzQ4LDkgQEAgZG91YmxlIHJkYnhfY2hlY2tfYWRkc19wZXJfc2Vjb25kKGludCBudW1fdHJpYWxz
LCB1bnNpZ25lZCBsb25nIHdzKQogICAgICAgICAgICAgKytmYWlsdXJlczsKICAgICB9CiAgICAg
dGltZXIgPSBjbG9jaygpIC0gdGltZXI7CisgICAgaWYgKHRpbWVyIDwgMSkgeworICAgICAgICB0
aW1lciA9IDE7CisgICAgfQogCiAgICAgcHJpbnRmKCJudW1iZXIgb2YgZmFpbHVyZXM6ICVkIFxu
IiwgZmFpbHVyZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9yZXBsYXlfZHJpdmVyLmMgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9yZXBs
YXlfZHJpdmVyLmMKaW5kZXggYTg4MjI0Njg0ZjZhNDExY2UxNWFlYjUzMGIzM2EwYzhjNThlNTVh
My4uZTA4MDhiNjg1YTc5MThmYTM2N2M0MDIwODkwODQ4Yzk2ZDhiNWM2YSAxMDA2NDQKLS0tIGEv
U291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rl
c3QvcmVwbGF5X2RyaXZlci5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3JlcGxheV9kcml2ZXIuYwpAQCAtNTIsNiArNTIs
OCBAQAogI2luY2x1ZGUgInJkYi5oIgogI2luY2x1ZGUgInV0X3NpbS5oIgogCisjaW5jbHVkZSAi
Y2lwaGVyX3ByaXYuaCIKKwogLyoKICAqIG51bV90cmlhbHMgZGVmaW5lcyB0aGUgbnVtYmVyIG9m
IHRyaWFscyB0aGF0IGFyZSB1c2VkIGluIHRoZQogICogdmFsaWRhdGlvbiBmdW5jdGlvbnMgYmVs
b3cKQEAgLTE4OSw3ICsxOTEsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCB0ZXN0X3JkYl9kYigpCiAK
ICAgICAvKiB0ZXN0IGluc2VydGlvbiB3aXRoIGxhcmdlIGdhcHMgKi8KICAgICBmb3IgKGlkeCA9
IDAsIGlyY3ZkID0gMDsgaWR4IDwgbnVtX3RyaWFsczsKLSAgICAgICAgIGlkeCsrLCBpcmN2ZCAr
PSAoMSA8PCAocmFuZCgpICUgMTApKSkgeworICAgICAgICAgaWR4KyssIGlyY3ZkICs9ICgxIDw8
IChzcnRwX2NpcGhlcl9yYW5kX3UzMl9mb3JfdGVzdHMoKSAlIDEwKSkpIHsKICAgICAgICAgZXJy
ID0gcmRiX2NoZWNrX2FkZCgmcmRiLCBpcmN2ZCk7CiAgICAgICAgIGlmIChlcnIpCiAgICAgICAg
ICAgICByZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3Qvcm9jX2RyaXZlci5jIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3Qvcm9jX2Ry
aXZlci5jCmluZGV4IGQ2MWJhOGVmMjRlYTIyZjY2YmI5ODM3NzNhYTY2NjJmNDdmNGZiMzcuLjQz
OTg2MjAzOWE0NjJmNjNjNmUwMjEzM2ZhMmJkZDkzNTU1MGI3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3Jv
Y19kcml2ZXIuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2xpYnNydHAvdGVzdC9yb2NfZHJpdmVyLmMKQEAgLTk3LDcgKzk3LDcgQEAgc3J0cF9l
cnJfc3RhdHVzX3Qgcm9jX3Rlc3QoaW50IG51bV90cmlhbHMpCiAKICAgICBwcmludGYoIlxuXHR0
ZXN0aW5nIHNlcXVlbnRpYWwgaW5zZXJ0aW9uLi4uIik7CiAgICAgZm9yIChpID0gMDsgaSA8IDIw
NDg7IGkrKykgewotICAgICAgICBkZWx0YSA9IHNydHBfaW5kZXhfZ3Vlc3MoJmxvY2FsLCAmZXN0
LCAodWludDE2X3QpcmVmKTsKKyAgICAgICAgc3J0cF9pbmRleF9ndWVzcygmbG9jYWwsICZlc3Qs
ICh1aW50MTZfdClyZWYpOwogI2lmIFJPQ19WRVJCT1NFCiAgICAgICAgIHByaW50ZigiJWxsZCwg
JWxsZCwgJWRcbiIsIHJlZiwgZXN0LCBpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3QvcnRwLmMg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAv
dGVzdC9ydHAuYwppbmRleCBmNjBhOWIxMWIyODg1MGU2MDI1ODAwZGM5NTgzY2FhYTQxMDg2NDhj
Li43MDI0OGVlMmI1YTFjYzE3YTlmZGU3OGRkODkwNGVkZjM5NDU5Y2I1IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVz
dC9ydHAuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2xpYnNydHAvdGVzdC9ydHAuYwpAQCAtNTMsNiArNTMsOCBAQAogI2luY2x1ZGUgPHN5cy9z
b2NrZXQuaD4KICNlbmRpZgogCisjaW5jbHVkZSAiY2lwaGVyX3ByaXYuaCIKKwogI2RlZmluZSBQ
UklOVF9ERUJVRyAwICAgLyogc2V0IHRvIDEgdG8gcHJpbnQgb3V0IGRlYnVnZ2luZyBkYXRhICov
CiAjZGVmaW5lIFZFUkJPU0VfREVCVUcgMCAvKiBzZXQgdG8gMSB0byBwcmludCBvdXQgbW9yZSBk
YXRhICAgICAgKi8KIApAQCAtMTQ4LDcgKzE1MCw3IEBAIGludCBydHBfc2VuZGVyX2luaXQocnRw
X3NlbmRlcl90IHNlbmRlciwKICAgICAvKiBzZXQgaGVhZGVyIHZhbHVlcyAqLwogICAgIHNlbmRl
ci0+bWVzc2FnZS5oZWFkZXIuc3NyYyA9IGh0b25sKHNzcmMpOwogICAgIHNlbmRlci0+bWVzc2Fn
ZS5oZWFkZXIudHMgPSAwOwotICAgIHNlbmRlci0+bWVzc2FnZS5oZWFkZXIuc2VxID0gKHVpbnQx
Nl90KXJhbmQoKTsKKyAgICBzZW5kZXItPm1lc3NhZ2UuaGVhZGVyLnNlcSA9ICh1aW50MTZfdClz
cnRwX2NpcGhlcl9yYW5kX3UzMl9mb3JfdGVzdHMoKTsKICAgICBzZW5kZXItPm1lc3NhZ2UuaGVh
ZGVyLm0gPSAwOwogICAgIHNlbmRlci0+bWVzc2FnZS5oZWFkZXIucHQgPSAweDE7CiAgICAgc2Vu
ZGVyLT5tZXNzYWdlLmhlYWRlci52ZXJzaW9uID0gMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3J0cHcuYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90
ZXN0L3J0cHcuYwppbmRleCA2ZTc0MTZjN2Y1MjRkODZlNjg5YTRmYzgwZjIxMGQ4NmM4ZTIzN2Nl
Li4wZDM3ZTdiZGQ1OTM5YzQyY2JlY2ViZmYyOTYyZGUyZmVhODc5ODNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVz
dC9ydHB3LmMKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9w
YXJ0eS9saWJzcnRwL3Rlc3QvcnRwdy5jCkBAIC05Niw3ICs5Niw3IEBACiAKICNpZm5kZWYgSEFW
RV9VU0xFRVAKICNpZmRlZiBIQVZFX1dJTkRPV1NfSAotI2RlZmluZSB1c2xlZXAodXMpIFNsZWVw
KCh1cykgLyAxMDAwKQorI2RlZmluZSB1c2xlZXAodXMpIFNsZWVwKCgoRFdPUkQpdXMpIC8gMTAw
MCkKICNlbHNlCiAjZGVmaW5lIHVzbGVlcCh1cykgc2xlZXAoKHVzKSAvIDEwMDAwMDApCiAjZW5k
aWYKQEAgLTMxNyw2ICszMTcsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQog
ICAgICAgICBleGl0KDEpOwogICAgIH0KIAorICAgIG1lbXNldCgmbmFtZSwgMCwgc2l6ZW9mKHN0
cnVjdCBzb2NrYWRkcl9pbikpOwogICAgIG5hbWUuc2luX2FkZHIgPSByY3ZyX2FkZHI7CiAgICAg
bmFtZS5zaW5fZmFtaWx5ID0gUEZfSU5FVDsKICAgICBuYW1lLnNpbl9wb3J0ID0gaHRvbnMocG9y
dCk7CkBAIC0zNjQsNyArMzY1LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK
ICAgICAgICAgc3dpdGNoIChzZWNfc2VydnMpIHsKICAgICAgICAgY2FzZSBzZWNfc2Vydl9jb25m
X2FuZF9hdXRoOgogICAgICAgICAgICAgaWYgKGdjbV9vbikgewotI2lmZGVmIE9QRU5TU0wKKyNp
ZmRlZiBHQ00KICAgICAgICAgICAgICAgICBzd2l0Y2ggKGtleV9zaXplKSB7CiAgICAgICAgICAg
ICAgICAgY2FzZSAxMjg6CiAgICAgICAgICAgICAgICAgICAgIHNydHBfY3J5cHRvX3BvbGljeV9z
ZXRfYWVzX2djbV8xMjhfOF9hdXRoKCZwb2xpY3kucnRwKTsKQEAgLTM3Nyw3ICszNzgsNyBAQCBp
bnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICAgICAgICAgIH0KICNlbHNl
CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJlcnJvcjogR0NNIG1vZGUgb25seSBzdXBwb3J0ZWQg
d2hlbiB1c2luZyB0aGUgT3BlblNTTCAiCi0gICAgICAgICAgICAgICAgICAgICAgICJjcnlwdG8g
ZW5naW5lLlxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICJvciBOU1MgY3J5cHRvIGVuZ2lu
ZS5cbiIpOwogICAgICAgICAgICAgICAgIHJldHVybiAwOwogI2VuZGlmCiAgICAgICAgICAgICB9
IGVsc2UgewpAQCAtNDEzLDcgKzQxNCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2
W10pCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBzZWNfc2Vydl9hdXRoOgogICAg
ICAgICAgICAgaWYgKGdjbV9vbikgewotI2lmZGVmIE9QRU5TU0wKKyNpZmRlZiBHQ00KICAgICAg
ICAgICAgICAgICBzd2l0Y2ggKGtleV9zaXplKSB7CiAgICAgICAgICAgICAgICAgY2FzZSAxMjg6
CiAgICAgICAgICAgICAgICAgICAgIHNydHBfY3J5cHRvX3BvbGljeV9zZXRfYWVzX2djbV8xMjhf
OF9vbmx5X2F1dGgoJnBvbGljeS5ydHApOwpAQCAtNjcwLDcgKzY3MSw3IEBAIHZvaWQgaGFuZGxl
X3NpZ25hbChpbnQgc2lnbnVtKQogCiBpbnQgc2V0dXBfc2lnbmFsX2hhbmRsZXIoY2hhciAqbmFt
ZSkKIHsKLSNpZiBIQVZFX1NJR0FDVElPTgorI2lmZGVmIEhBVkVfU0lHQUNUSU9OCiAgICAgc3Ry
dWN0IHNpZ2FjdGlvbiBhY3Q7CiAgICAgbWVtc2V0KCZhY3QsIDAsIHNpemVvZihhY3QpKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0
eS9saWJzcnRwL3Rlc3QvcnRwd190ZXN0LnNoIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3QvcnRwd190ZXN0LnNoCmluZGV4IDIzOGVj
OTNjNWQ0NWUyNmY2OTExMDdmYzQ0NzFkYjFlYzE2M2FiNDAuLjhmY2IzNWYzNjNmZDJmMTcyYWYw
MjI1MzQ2MDM1OWEzYTE5NTdjZmQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3J0cHdfdGVzdC5zaAorKysgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVz
dC9ydHB3X3Rlc3Quc2gKQEAgLTQxLDEyICs0MSwyNCBAQCBjYXNlICQodW5hbWUgLXMpIGluCiAg
ICAgKkNZR1dJTip8Kk1JTkdXKikKICAgICAgICAgRVhFPSIuZXhlIgogICAgICAgICA7OwotICAg
ICopCisgICAgKkxpbnV4KikKICAgICAgICAgRVhFPSIiCisgICAgICAgIGlmIFsgLW4gIiRDUllQ
VE9fTElCRElSIiBdCisgICAgICAgIHRoZW4KKyAgICAgICAgICAgIGV4cG9ydCBMRF9MSUJSQVJZ
X1BBVEg9IiRDUllQVE9fTElCRElSIgorICAgICAgICBmaQorICAgICAgICA7OworICAgICpEYXJ3
aW4qKQorICAgICAgICBFWEU9IiIKKyAgICAgICAgaWYgWyAtbiAiJENSWVBUT19MSUJESVIiIF0K
KyAgICAgICAgdGhlbgorICAgICAgICAgICAgZXhwb3J0IERZTERfTElCUkFSWV9QQVRIPSIkQ1JZ
UFRPX0xJQkRJUiIKKyAgICAgICAgZmkKICAgICAgICAgOzsKIGVzYWMKIAogUlRQVz0uL3J0cHck
RVhFCitbIC1uICIkTUVTT05fRVhFX1dSQVBQRVIiIF0gJiYgUlRQVz0iJE1FU09OX0VYRV9XUkFQ
UEVSICRSVFBXIgogREVTVF9QT1JUPTk5OTkKIERVUkFUSU9OPTMKIApAQCAtNjIsNyArNzQsNyBA
QCBBUkdTPSItYiAka2V5IC1hIC1lIDEyOCIKIAoga2lsbGFsbCBydHB3IDI+L2Rldi9udWxsCiAK
LWlmIHRlc3QgLXggJFJUUFc7IHRoZW4KK2lmIHRlc3QgLW4gJE1FU09OX0VYRV9XUkFQUEVSIHx8
IHRlc3QgLXggJFJUUFc7IHRoZW4KIAogZWNobyAgJDAgIjogc3RhcnRpbmcgcnRwdyByZWNlaXZl
ciBwcm9jZXNzLi4uICIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3QvcnRwd190ZXN0X2djbS5zaCBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3J0
cHdfdGVzdF9nY20uc2gKaW5kZXggNzczNDAwNTYyY2Q1ZGE1MTZjNGZlYTY0Njc3ZTY4YjczYzAx
N2E5YS4uMTcyMmY0NGVhNzNmMWI3ZTZkMjY0NDdlNTYzYjQ3NzM3ZDE5MGVkYyAxMDA3NTUKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRw
L3Rlc3QvcnRwd190ZXN0X2djbS5zaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9ydHB3X3Rlc3RfZ2NtLnNoCkBAIC00MSwx
MiArNDEsMjQgQEAgY2FzZSAkKHVuYW1lIC1zKSBpbgogICAgICpDWUdXSU4qfCpNSU5HVyopCiAg
ICAgICAgIEVYRT0iLmV4ZSIKICAgICAgICAgOzsKLSAgICAqKQorICAgICpMaW51eCopCiAgICAg
ICAgIEVYRT0iIgorICAgICAgICBpZiBbIC1uICIkQ1JZUFRPX0xJQkRJUiIgXQorICAgICAgICB0
aGVuCisgICAgICAgICAgICBleHBvcnQgTERfTElCUkFSWV9QQVRIPSIkQ1JZUFRPX0xJQkRJUiIK
KyAgICAgICAgZmkKKyAgICAgICAgOzsKKyAgICAqRGFyd2luKikKKyAgICAgICAgRVhFPSIiCisg
ICAgICAgIGlmIFsgLW4gIiRDUllQVE9fTElCRElSIiBdCisgICAgICAgIHRoZW4KKyAgICAgICAg
ICAgIGV4cG9ydCBEWUxEX0xJQlJBUllfUEFUSD0iJENSWVBUT19MSUJESVIiCisgICAgICAgIGZp
CiAgICAgICAgIDs7CiBlc2FjCiAKIFJUUFc9Li9ydHB3JEVYRQorWyAtbiAiJE1FU09OX0VYRV9X
UkFQUEVSIiBdICYmIFJUUFc9IiRNRVNPTl9FWEVfV1JBUFBFUiAkUlRQVyIKIERFU1RfUE9SVD05
OTk5CiBEVVJBVElPTj0zCiAKQEAgLTU4LDcgKzcwLDcgQEAgRFVSQVRJT049MwogCiBraWxsYWxs
IHJ0cHcgMj4vZGV2L251bGwKIAotaWYgdGVzdCAteCAkUlRQVzsgdGhlbgoraWYgdGVzdCAtbiAk
TUVTT05fRVhFX1dSQVBQRVIgfHwgdGVzdCAteCAkUlRQVzsgdGhlbgogCiBHQ01BUkdTMTI4PSIt
ayAwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0
NSAtZyAtZSAxMjgiCiBlY2hvICAkMCAiOiBzdGFydGluZyBHQ00gbW9kZSAxMjgtYml0IHJ0cHcg
cmVjZWl2ZXIgcHJvY2Vzcy4uLiAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC9zcnRwX2RyaXZlci5jIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3Qv
c3J0cF9kcml2ZXIuYwppbmRleCA0ZWE4ZmU1MzAyYzFiZTM0OTI5ZjliMGQ5ZjI3NzEwYmIxM2Nj
YmNlLi4xMzM1NTQwNjA5ZTlkMmNkNmViMjZkN2QwN2YxMTAzNTk1MzljMGRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAv
dGVzdC9zcnRwX2RyaXZlci5jCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3Vy
Y2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3NydHBfZHJpdmVyLmMKQEAgLTYxLDEzICs2MSwx
MyBAQAogCiBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRlKHZvaWQpOwogCi0jaWZkZWYg
T1BFTlNTTAorI2lmZGVmIEdDTQogc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92YWxpZGF0ZV9nY20o
dm9pZCk7CiAjZW5kaWYKIAogc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92YWxpZGF0ZV9lbmNyeXB0
ZWRfZXh0ZW5zaW9uc19oZWFkZXJzKHZvaWQpOwogCi0jaWZkZWYgT1BFTlNTTAorI2lmZGVmIEdD
TQogc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92YWxpZGF0ZV9lbmNyeXB0ZWRfZXh0ZW5zaW9uc19o
ZWFkZXJzX2djbSh2b2lkKTsKICNlbmRpZgogCkBAIC03OSw3ICs3OSw3IEBAIHNydHBfZXJyX3N0
YXR1c190IHNydHBfZGVhbGxvY19iaWdfcG9saWN5KHNydHBfcG9saWN5X3QgKmxpc3QpOwogCiBz
cnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Rlc3RfZW1wdHlfcGF5bG9hZCh2b2lkKTsKIAotI2lmZGVm
IE9QRU5TU0wKKyNpZmRlZiBHQ00KIHNydHBfZXJyX3N0YXR1c190IHNydHBfdGVzdF9lbXB0eV9w
YXlsb2FkX2djbSh2b2lkKTsKICNlbmRpZgogCkBAIC00MjIsNyArNDIyLDcgQEAgaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgICAgIGV4aXQoMSk7CiAgICAgICAgIH0K
IAotI2lmZGVmIE9QRU5TU0wKKyNpZmRlZiBHQ00KICAgICAgICAgcHJpbnRmKCJ0ZXN0aW5nIHNy
dHBfcHJvdGVjdCBhbmQgc3J0cF91bnByb3RlY3QgYWdhaW5zdCAiCiAgICAgICAgICAgICAgICAi
cmVmZXJlbmNlIHBhY2tldCB1c2luZyBHQ01cbiIpOwogICAgICAgICBpZiAoc3J0cF92YWxpZGF0
ZV9nY20oKSA9PSBzcnRwX2Vycl9zdGF0dXNfb2spIHsKQEAgLTQ0Miw3ICs0NDIsNyBAQCBpbnQg
bWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogICAgICAgICAgICAgZXhpdCgxKTsKICAgICAg
ICAgfQogCi0jaWZkZWYgT1BFTlNTTAorI2lmZGVmIEdDTQogICAgICAgICBwcmludGYoInRlc3Rp
bmcgc3J0cF9wcm90ZWN0IGFuZCBzcnRwX3VucHJvdGVjdCBhZ2FpbnN0ICIKICAgICAgICAgICAg
ICAgICJyZWZlcmVuY2UgcGFja2V0IHdpdGggZW5jcnlwdGVkIGV4dGVuc2lvbiBoZWFkZXJzIChH
Q00pXG4iKTsKICAgICAgICAgaWYgKHNydHBfdmFsaWRhdGVfZW5jcnlwdGVkX2V4dGVuc2lvbnNf
aGVhZGVyc19nY20oKSA9PQpAQCAtNDc4LDcgKzQ3OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBj
aGFyICphcmd2W10pCiAgICAgICAgICAgICBwcmludGYoImZhaWxlZFxuIik7CiAgICAgICAgICAg
ICBleGl0KDEpOwogICAgICAgICB9Ci0jaWZkZWYgT1BFTlNTTAorI2lmZGVmIEdDTQogICAgICAg
ICBwcmludGYoInRlc3Rpbmcgc3J0cF9wcm90ZWN0IGFuZCBzcnRwX3VucHJvdGVjdCBhZ2FpbnN0
ICIKICAgICAgICAgICAgICAgICJwYWNrZXQgd2l0aCBlbXB0eSBwYXlsb2FkIChHQ00pXG4iKTsK
ICAgICAgICAgaWYgKHNydHBfdGVzdF9lbXB0eV9wYXlsb2FkX2djbSgpID09IHNydHBfZXJyX3N0
YXR1c19vaykgewpAQCAtMTM0MSw2ICsxMzQxLDggQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0Y3Bf
dGVzdChjb25zdCBzcnRwX3BvbGljeV90ICpwb2xpY3ksIGludCBta2lfaW5kZXgpCiAgICAgICov
CiAgICAgcmN2cl9wb2xpY3kgPSAoc3J0cF9wb2xpY3lfdCAqKW1hbGxvYyhzaXplb2Yoc3J0cF9w
b2xpY3lfdCkpOwogICAgIGlmIChyY3ZyX3BvbGljeSA9PSBOVUxMKSB7CisgICAgICAgIGZyZWUo
aGRyKTsKKyAgICAgICAgZnJlZShoZHIyKTsKICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1
c19hbGxvY19mYWlsOwogICAgIH0KICAgICBtZW1jcHkocmN2cl9wb2xpY3ksIHBvbGljeSwgc2l6
ZW9mKHNydHBfcG9saWN5X3QpKTsKQEAgLTE2MDYsNiArMTYwOCw5IEBAIGRvdWJsZSBtaXBzX2Vz
dGltYXRlKGludCBudW1fdHJpYWxzLCBpbnQgKmlnbm9yZSkKICAgICAgICAgc3VtICs9IGk7CiAg
ICAgfQogICAgIHQgPSBjbG9jaygpIC0gdDsKKyAgICBpZiAodCA8IDEpIHsKKyAgICAgICAgdCA9
IDE7CisgICAgfQogCiAgICAgLyogICBwcmludGYoIiVkXG4iLCBzdW0pOyAqLwogICAgICppZ25v
cmUgPSBzdW07CkBAIC0xNzAyLDcgKzE3MDcsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Zh
bGlkYXRlKCkKICAgICBkZWJ1Z19wcmludChtb2RfZHJpdmVyLCAiY2lwaGVydGV4dCByZWZlcmVu
Y2U6XG4gICVzIiwKICAgICAgICAgICAgICAgICBvY3RldF9zdHJpbmdfaGV4X3N0cmluZyhzcnRw
X2NpcGhlcnRleHQsIGxlbikpOwogCi0gICAgaWYgKG9jdGV0X3N0cmluZ19pc19lcShzcnRwX3Bs
YWludGV4dCwgc3J0cF9jaXBoZXJ0ZXh0LCBsZW4pKSB7CisgICAgaWYgKHNydHBfb2N0ZXRfc3Ry
aW5nX2lzX2VxKHNydHBfcGxhaW50ZXh0LCBzcnRwX2NpcGhlcnRleHQsIGxlbikpIHsKICAgICAg
ICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19mYWlsOwogICAgIH0KIApAQCAtMTcyMCw3ICsxNzI1
LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92YWxpZGF0ZSgpCiAgICAgZGVidWdfcHJpbnQo
bW9kX2RyaXZlciwgInNydGNwIGNpcGhlcnRleHQgcmVmZXJlbmNlOlxuICAlcyIsCiAgICAgICAg
ICAgICAgICAgb2N0ZXRfc3RyaW5nX2hleF9zdHJpbmcoc3J0Y3BfY2lwaGVydGV4dCwgbGVuKSk7
CiAKLSAgICBpZiAob2N0ZXRfc3RyaW5nX2lzX2VxKHJ0Y3BfcGxhaW50ZXh0LCBzcnRjcF9jaXBo
ZXJ0ZXh0LCBsZW4pKSB7CisgICAgaWYgKHNydHBfb2N0ZXRfc3RyaW5nX2lzX2VxKHJ0Y3BfcGxh
aW50ZXh0LCBzcnRjcF9jaXBoZXJ0ZXh0LCBsZW4pKSB7CiAgICAgICAgIHJldHVybiBzcnRwX2Vy
cl9zdGF0dXNfZmFpbDsKICAgICB9CiAKQEAgLTE3NDIsNyArMTc0Nyw3IEBAIHNydHBfZXJyX3N0
YXR1c190IHNydHBfdmFsaWRhdGUoKQogICAgICAgICByZXR1cm4gc3RhdHVzOwogICAgIH0KIAot
ICAgIGlmIChvY3RldF9zdHJpbmdfaXNfZXEoc3J0cF9jaXBoZXJ0ZXh0LCBzcnRwX3BsYWludGV4
dF9yZWYsIGxlbikpIHsKKyAgICBpZiAoc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEoc3J0cF9jaXBo
ZXJ0ZXh0LCBzcnRwX3BsYWludGV4dF9yZWYsIGxlbikpIHsKICAgICAgICAgcmV0dXJuIHNydHBf
ZXJyX3N0YXR1c19mYWlsOwogICAgIH0KIApAQCAtMTc1NSw3ICsxNzYwLDcgQEAgc3J0cF9lcnJf
c3RhdHVzX3Qgc3J0cF92YWxpZGF0ZSgpCiAgICAgICAgIHJldHVybiBzdGF0dXM7CiAgICAgfQog
Ci0gICAgaWYgKG9jdGV0X3N0cmluZ19pc19lcShzcnRjcF9jaXBoZXJ0ZXh0LCBydGNwX3BsYWlu
dGV4dF9yZWYsIGxlbikpIHsKKyAgICBpZiAoc3J0cF9vY3RldF9zdHJpbmdfaXNfZXEoc3J0Y3Bf
Y2lwaGVydGV4dCwgcnRjcF9wbGFpbnRleHRfcmVmLCBsZW4pKSB7CiAgICAgICAgIHJldHVybiBz
cnRwX2Vycl9zdGF0dXNfZmFpbDsKICAgICB9CiAKQEAgLTE3NzIsNyArMTc3Nyw3IEBAIHNydHBf
ZXJyX3N0YXR1c190IHNydHBfdmFsaWRhdGUoKQogICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNf
b2s7CiB9CiAKLSNpZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NNCiAvKgogICogc3J0cF92YWxpZGF0
ZV9nY20oKSB2ZXJpZmllcyB0aGUgY29ycmVjdG5lc3Mgb2YgbGlic3J0cCBieSBjb21wYXJpbmcK
ICAqIGFuIGNvbXB1dGVkIHBhY2tldCBhZ2FpbnN0IHRoZSBrbm93biBjaXBoZXJ0ZXh0IGZvciB0
aGUgcGxhaW50ZXh0LgpAQCAtMTg3MCw3ICsxODc1LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0
cF92YWxpZGF0ZV9nY20oKQogICAgIGRlYnVnX3ByaW50KG1vZF9kcml2ZXIsICJzcnRwIGNpcGhl
cnRleHQgcmVmZXJlbmNlOlxuICAlcyIsCiAgICAgICAgICAgICAgICAgb2N0ZXRfc3RyaW5nX2hl
eF9zdHJpbmcoc3J0cF9jaXBoZXJ0ZXh0LCBsZW4pKTsKIAotICAgIGlmIChvY3RldF9zdHJpbmdf
aXNfZXEocnRwX3BsYWludGV4dCwgc3J0cF9jaXBoZXJ0ZXh0LCBsZW4pKSB7CisgICAgaWYgKHNy
dHBfb2N0ZXRfc3RyaW5nX2lzX2VxKHJ0cF9wbGFpbnRleHQsIHNydHBfY2lwaGVydGV4dCwgbGVu
KSkgewogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7CiAgICAgfQogCkBAIC0x
ODg4LDcgKzE4OTMsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRlX2djbSgpCiAg
ICAgZGVidWdfcHJpbnQobW9kX2RyaXZlciwgInNydGNwIGNpcGhlcnRleHQgcmVmZXJlbmNlOlxu
ICAlcyIsCiAgICAgICAgICAgICAgICAgb2N0ZXRfc3RyaW5nX2hleF9zdHJpbmcoc3J0Y3BfY2lw
aGVydGV4dCwgbGVuKSk7CiAKLSAgICBpZiAob2N0ZXRfc3RyaW5nX2lzX2VxKHJ0Y3BfcGxhaW50
ZXh0LCBzcnRjcF9jaXBoZXJ0ZXh0LCBsZW4pKSB7CisgICAgaWYgKHNydHBfb2N0ZXRfc3RyaW5n
X2lzX2VxKHJ0Y3BfcGxhaW50ZXh0LCBzcnRjcF9jaXBoZXJ0ZXh0LCBsZW4pKSB7CiAgICAgICAg
IHJldHVybiBzcnRwX2Vycl9zdGF0dXNfZmFpbDsKICAgICB9CiAKQEAgLTE5MTEsNyArMTkxNiw3
IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdmFsaWRhdGVfZ2NtKCkKICAgICAgICAgcmV0dXJu
IHN0YXR1czsKICAgICB9CiAKLSAgICBpZiAob2N0ZXRfc3RyaW5nX2lzX2VxKHNydHBfY2lwaGVy
dGV4dCwgcnRwX3BsYWludGV4dF9yZWYsIGxlbikpIHsKKyAgICBpZiAoc3J0cF9vY3RldF9zdHJp
bmdfaXNfZXEoc3J0cF9jaXBoZXJ0ZXh0LCBydHBfcGxhaW50ZXh0X3JlZiwgbGVuKSkgewogICAg
ICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7CiAgICAgfQogCkBAIC0xOTI0LDcgKzE5
MjksNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3ZhbGlkYXRlX2djbSgpCiAgICAgICAgIHJl
dHVybiBzdGF0dXM7CiAgICAgfQogCi0gICAgaWYgKG9jdGV0X3N0cmluZ19pc19lcShzcnRjcF9j
aXBoZXJ0ZXh0LCBydGNwX3BsYWludGV4dF9yZWYsIGxlbikpIHsKKyAgICBpZiAoc3J0cF9vY3Rl
dF9zdHJpbmdfaXNfZXEoc3J0Y3BfY2lwaGVydGV4dCwgcnRjcF9wbGFpbnRleHRfcmVmLCBsZW4p
KSB7CiAgICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfZmFpbDsKICAgICB9CiAKQEAgLTIw
MjcsNyArMjAzMiw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdmFsaWRhdGVfZW5jcnlwdGVk
X2V4dGVuc2lvbnNfaGVhZGVycygpCiAgICAgZGVidWdfcHJpbnQobW9kX2RyaXZlciwgImNpcGhl
cnRleHQgcmVmZXJlbmNlOlxuICAlcyIsCiAgICAgICAgICAgICAgICAgc3J0cF9vY3RldF9zdHJp
bmdfaGV4X3N0cmluZyhzcnRwX2NpcGhlcnRleHQsIGxlbikpOwogCi0gICAgaWYgKG9jdGV0X3N0
cmluZ19pc19lcShzcnRwX3BsYWludGV4dCwgc3J0cF9jaXBoZXJ0ZXh0LCBsZW4pKQorICAgIGlm
IChzcnRwX29jdGV0X3N0cmluZ19pc19lcShzcnRwX3BsYWludGV4dCwgc3J0cF9jaXBoZXJ0ZXh0
LCBsZW4pKQogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7CiAKICAgICAvKgpA
QCAtMjA0OSw3ICsyMDU0LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92YWxpZGF0ZV9lbmNy
eXB0ZWRfZXh0ZW5zaW9uc19oZWFkZXJzKCkKICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1
c19mYWlsOwogICAgIH0KIAotICAgIGlmIChvY3RldF9zdHJpbmdfaXNfZXEoc3J0cF9jaXBoZXJ0
ZXh0LCBzcnRwX3BsYWludGV4dF9yZWYsIGxlbikpCisgICAgaWYgKHNydHBfb2N0ZXRfc3RyaW5n
X2lzX2VxKHNydHBfY2lwaGVydGV4dCwgc3J0cF9wbGFpbnRleHRfcmVmLCBsZW4pKQogICAgICAg
ICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7CiAKICAgICBzdGF0dXMgPSBzcnRwX2RlYWxs
b2Moc3J0cF9zbmQpOwpAQCAtMjA2Myw3ICsyMDY4LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0
cF92YWxpZGF0ZV9lbmNyeXB0ZWRfZXh0ZW5zaW9uc19oZWFkZXJzKCkKICAgICByZXR1cm4gc3J0
cF9lcnJfc3RhdHVzX29rOwogfQogCi0jaWZkZWYgT1BFTlNTTAorI2lmZGVmIEdDTQogCiAvKgog
ICogSGVhZGVycyBvZiB0ZXN0IHZlY3RvcnMgdGFrZW4gZnJvbSBSRkMgNjkwNCwgQXBwZW5kaXgg
QQpAQCAtMjE0OCw3ICsyMTUzLDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92YWxpZGF0ZV9l
bmNyeXB0ZWRfZXh0ZW5zaW9uc19oZWFkZXJzX2djbSgpCiAgICAgZGVidWdfcHJpbnQobW9kX2Ry
aXZlciwgImNpcGhlcnRleHQgcmVmZXJlbmNlOlxuICAlcyIsCiAgICAgICAgICAgICAgICAgc3J0
cF9vY3RldF9zdHJpbmdfaGV4X3N0cmluZyhzcnRwX2NpcGhlcnRleHQsIGxlbikpOwogCi0gICAg
aWYgKG9jdGV0X3N0cmluZ19pc19lcShzcnRwX3BsYWludGV4dCwgc3J0cF9jaXBoZXJ0ZXh0LCBs
ZW4pKQorICAgIGlmIChzcnRwX29jdGV0X3N0cmluZ19pc19lcShzcnRwX3BsYWludGV4dCwgc3J0
cF9jaXBoZXJ0ZXh0LCBsZW4pKQogICAgICAgICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7
CiAKICAgICAvKgpAQCAtMjE3MCw3ICsyMTc1LDcgQEAgc3J0cF9lcnJfc3RhdHVzX3Qgc3J0cF92
YWxpZGF0ZV9lbmNyeXB0ZWRfZXh0ZW5zaW9uc19oZWFkZXJzX2djbSgpCiAgICAgICAgIHJldHVy
biBzcnRwX2Vycl9zdGF0dXNfZmFpbDsKICAgICB9CiAKLSAgICBpZiAob2N0ZXRfc3RyaW5nX2lz
X2VxKHNydHBfY2lwaGVydGV4dCwgc3J0cF9wbGFpbnRleHRfcmVmLCBsZW4pKQorICAgIGlmIChz
cnRwX29jdGV0X3N0cmluZ19pc19lcShzcnRwX2NpcGhlcnRleHQsIHNydHBfcGxhaW50ZXh0X3Jl
ZiwgbGVuKSkKICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19mYWlsOwogCiAgICAgc3Rh
dHVzID0gc3J0cF9kZWFsbG9jKHNydHBfc25kKTsKQEAgLTIyNjQsNyArMjI2OSw3IEBAIHNydHBf
ZXJyX3N0YXR1c190IHNydHBfdmFsaWRhdGVfYWVzXzI1NigpCiAgICAgZGVidWdfcHJpbnQobW9k
X2RyaXZlciwgImNpcGhlcnRleHQgcmVmZXJlbmNlOlxuICAlcyIsCiAgICAgICAgICAgICAgICAg
b2N0ZXRfc3RyaW5nX2hleF9zdHJpbmcoc3J0cF9jaXBoZXJ0ZXh0LCBsZW4pKTsKIAotICAgIGlm
IChvY3RldF9zdHJpbmdfaXNfZXEoc3J0cF9wbGFpbnRleHQsIHNydHBfY2lwaGVydGV4dCwgbGVu
KSkgeworICAgIGlmIChzcnRwX29jdGV0X3N0cmluZ19pc19lcShzcnRwX3BsYWludGV4dCwgc3J0
cF9jaXBoZXJ0ZXh0LCBsZW4pKSB7CiAgICAgICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfZmFp
bDsKICAgICB9CiAKQEAgLTIyODYsNyArMjI5MSw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBf
dmFsaWRhdGVfYWVzXzI1NigpCiAgICAgICAgIHJldHVybiBzdGF0dXM7CiAgICAgfQogCi0gICAg
aWYgKG9jdGV0X3N0cmluZ19pc19lcShzcnRwX2NpcGhlcnRleHQsIHNydHBfcGxhaW50ZXh0X3Jl
ZiwgbGVuKSkgeworICAgIGlmIChzcnRwX29jdGV0X3N0cmluZ19pc19lcShzcnRwX2NpcGhlcnRl
eHQsIHNydHBfcGxhaW50ZXh0X3JlZiwgbGVuKSkgewogICAgICAgICByZXR1cm4gc3J0cF9lcnJf
c3RhdHVzX2ZhaWw7CiAgICAgfQogCkBAIC0yNDI0LDcgKzI0MjksNyBAQCBzcnRwX2Vycl9zdGF0
dXNfdCBzcnRwX3Rlc3RfZW1wdHlfcGF5bG9hZCgpCiAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1
c19vazsKIH0KIAotI2lmZGVmIE9QRU5TU0wKKyNpZmRlZiBHQ00KIHNydHBfZXJyX3N0YXR1c190
IHNydHBfdGVzdF9lbXB0eV9wYXlsb2FkX2djbSgpCiB7CiAgICAgc3J0cF90IHNydHBfc25kLCBz
cnRwX3JlY3Y7CkBAIC0yNDk5LDcgKzI1MDQsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Rl
c3RfZW1wdHlfcGF5bG9hZF9nY20oKQogCiAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19vazsK
IH0KLSNlbmRpZiAvLyBPUEVOU1NMCisjZW5kaWYgLy8gR0NNCiAKIHNydHBfZXJyX3N0YXR1c190
IHNydHBfdGVzdF9yZW1vdmVfc3RyZWFtKCkKIHsKQEAgLTI3ODMsMTAgKzI3ODgsMTAgQEAgc3J0
cF9lcnJfc3RhdHVzX3Qgc3J0cF90ZXN0X3NldHVwX3Byb3RlY3RfdHJhaWxlcl9zdHJlYW1zKAog
ICAgIHNydHBfcG9saWN5X3QgcG9saWN5OwogICAgIHNydHBfcG9saWN5X3QgcG9saWN5X21raTsK
IAotI2lmZGVmIE9QRU5TU0wKKyNpZmRlZiBHQ00KICAgICBzcnRwX3BvbGljeV90IHBvbGljeV9h
ZXNfZ2NtOwogICAgIHNydHBfcG9saWN5X3QgcG9saWN5X2Flc19nY21fbWtpOwotI2VuZGlmIC8v
IE9QRU5TU0wKKyNlbmRpZiAvLyBHQ00KIAogICAgIG1lbXNldCgmcG9saWN5LCAwLCBzaXplb2Yo
cG9saWN5KSk7CiAgICAgc3J0cF9jcnlwdG9fcG9saWN5X3NldF9ydHBfZGVmYXVsdCgmcG9saWN5
LnJ0cCk7CkBAIC0yODEwLDcgKzI4MTUsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Rlc3Rf
c2V0dXBfcHJvdGVjdF90cmFpbGVyX3N0cmVhbXMoCiAgICAgcG9saWN5X21raS5rZXlzID0gdGVz
dF9rZXlzOwogICAgIHBvbGljeV9ta2kubnVtX21hc3Rlcl9rZXlzID0gMjsKIAotI2lmZGVmIE9Q
RU5TU0wKKyNpZmRlZiBHQ00KICAgICBtZW1zZXQoJnBvbGljeV9hZXNfZ2NtLCAwLCBzaXplb2Yo
cG9saWN5X2Flc19nY20pKTsKICAgICBzcnRwX2NyeXB0b19wb2xpY3lfc2V0X2Flc19nY21fMTI4
XzE2X2F1dGgoJnBvbGljeV9hZXNfZ2NtLnJ0cCk7CiAgICAgc3J0cF9jcnlwdG9fcG9saWN5X3Nl
dF9hZXNfZ2NtXzEyOF8xNl9hdXRoKCZwb2xpY3lfYWVzX2djbS5ydGNwKTsKQEAgLTI4MzIsNyAr
MjgzNyw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdGVzdF9zZXR1cF9wcm90ZWN0X3RyYWls
ZXJfc3RyZWFtcygKICAgICBwb2xpY3lfYWVzX2djbV9ta2kua2V5ID0gTlVMTDsKICAgICBwb2xp
Y3lfYWVzX2djbV9ta2kua2V5cyA9IHRlc3Rfa2V5czsKICAgICBwb2xpY3lfYWVzX2djbV9ta2ku
bnVtX21hc3Rlcl9rZXlzID0gMjsKLSNlbmRpZgorI2VuZGlmIC8vIEdDTQogCiAgICAgLyogY3Jl
YXRlIGEgc2VuZCBjdHggd2l0aCBkZWZ1YWx0IHByb2ZpbGUgYW5kIHRlc3Rfa2V5ICovCiAgICAg
c3RhdHVzID0gc3J0cF9jcmVhdGUoc3J0cF9zZW5kLCAmcG9saWN5KTsKQEAgLTI4NDMsNyArMjg0
OCw3IEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdGVzdF9zZXR1cF9wcm90ZWN0X3RyYWlsZXJf
c3RyZWFtcygKICAgICBpZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gc3RhdHVzOwogCi0jaWZk
ZWYgT1BFTlNTTAorI2lmZGVmIEdDTQogICAgIHN0YXR1cyA9IHNydHBfY3JlYXRlKHNydHBfc2Vu
ZF9hZXNfZ2NtLCAmcG9saWN5X2Flc19nY20pOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJl
dHVybiBzdGF0dXM7CkBAIC0yODUxLDcgKzI4NTYsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRw
X3Rlc3Rfc2V0dXBfcHJvdGVjdF90cmFpbGVyX3N0cmVhbXMoCiAgICAgc3RhdHVzID0gc3J0cF9j
cmVhdGUoc3J0cF9zZW5kX2Flc19nY21fbWtpLCAmcG9saWN5X2Flc19nY21fbWtpKTsKICAgICBp
ZiAoc3RhdHVzKQogICAgICAgICByZXR1cm4gc3RhdHVzOwotI2VuZGlmIC8vIE9QRU5TU0wKKyNl
bmRpZiAvLyBHQ00KIAogICAgIHJldHVybiBzcnRwX2Vycl9zdGF0dXNfb2s7CiB9CkBAIC0yODg0
LDcgKzI4ODksNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Rlc3RfcHJvdGVjdF90cmFpbGVy
X2xlbmd0aCgpCiAgICAgaWYgKGxlbmd0aCAhPSAxNCkKICAgICAgICAgcmV0dXJuIHNydHBfZXJy
X3N0YXR1c19mYWlsOwogCi0jaWZkZWYgT1BFTlNTTAorI2lmZGVmIEdDTQogICAgIHN0YXR1cyA9
IHNydHBfZ2V0X3Byb3RlY3RfdHJhaWxlcl9sZW5ndGgoc3J0cF9zZW5kX2Flc19nY20sIDAsIDAs
ICZsZW5ndGgpOwogICAgIGlmIChzdGF0dXMpCiAgICAgICAgIHJldHVybiBzdGF0dXM7CkBAIC0y
OTAxLDExICsyOTA2LDExIEBAIHNydHBfZXJyX3N0YXR1c190IHNydHBfdGVzdF9wcm90ZWN0X3Ry
YWlsZXJfbGVuZ3RoKCkKICAgICAvKiAgVEFHIExlbmd0aDogMTYgYnl0ZXMgKyBNS0kgbGVuZ3Ro
OiA0IGJ5dGVzKi8KICAgICBpZiAobGVuZ3RoICE9IDIwKQogICAgICAgICByZXR1cm4gc3J0cF9l
cnJfc3RhdHVzX2ZhaWw7Ci0jZW5kaWYgLy8gT1BFTlNTTAorI2VuZGlmIC8vIEdDTQogCiAgICAg
c3J0cF9kZWFsbG9jKHNydHBfc2VuZCk7CiAgICAgc3J0cF9kZWFsbG9jKHNydHBfc2VuZF9ta2kp
OwotI2lmZGVmIE9QRU5TU0wKKyNpZmRlZiBHQ00KICAgICBzcnRwX2RlYWxsb2Moc3J0cF9zZW5k
X2Flc19nY20pOwogICAgIHNydHBfZGVhbGxvYyhzcnRwX3NlbmRfYWVzX2djbV9ta2kpOwogI2Vu
ZGlmCkBAIC0yOTQxLDcgKzI5NDYsNyBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Rlc3RfcHJv
dGVjdF9ydGNwX3RyYWlsZXJfbGVuZ3RoKCkKICAgICBpZiAobGVuZ3RoICE9IDE4KQogICAgICAg
ICByZXR1cm4gc3J0cF9lcnJfc3RhdHVzX2ZhaWw7CiAKLSNpZmRlZiBPUEVOU1NMCisjaWZkZWYg
R0NNCiAgICAgc3RhdHVzID0KICAgICAgICAgc3J0cF9nZXRfcHJvdGVjdF9ydGNwX3RyYWlsZXJf
bGVuZ3RoKHNydHBfc2VuZF9hZXNfZ2NtLCAwLCAwLCAmbGVuZ3RoKTsKICAgICBpZiAoc3RhdHVz
KQpAQCAtMjk1OSwxMSArMjk2NCwxMSBAQCBzcnRwX2Vycl9zdGF0dXNfdCBzcnRwX3Rlc3RfcHJv
dGVjdF9ydGNwX3RyYWlsZXJfbGVuZ3RoKCkKICAgICAvKiAgVEFHIExlbmd0aDogMTYgYnl0ZXMg
KyBTUlRDUCBUcmFpbGVyIDQgYnl0ZXMgKyBNS0kgNCBieXRlcyovCiAgICAgaWYgKGxlbmd0aCAh
PSAyNCkKICAgICAgICAgcmV0dXJuIHNydHBfZXJyX3N0YXR1c19mYWlsOwotI2VuZGlmIC8vIE9Q
RU5TU0wKKyNlbmRpZiAvLyBHQ00KIAogICAgIHNydHBfZGVhbGxvYyhzcnRwX3NlbmQpOwogICAg
IHNydHBfZGVhbGxvYyhzcnRwX3NlbmRfbWtpKTsKLSNpZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NN
CiAgICAgc3J0cF9kZWFsbG9jKHNydHBfc2VuZF9hZXNfZ2NtKTsKICAgICBzcnRwX2RlYWxsb2Mo
c3J0cF9zZW5kX2Flc19nY21fbWtpKTsKICNlbmRpZgpAQCAtMzA4OCw2ICszMDkzLDcgQEAgc3Rh
dGljIHNydHBfZXJyX3N0YXR1c190IHRlc3Rfc2V0X3JlY2VpdmVyX3JvYyh1aW50MzJfdCBwYWNr
ZXRzLAogICAgICAgICBpZiAoc3RhdHVzKSB7CiAgICAgICAgICAgICByZXR1cm4gc3RhdHVzOwog
ICAgICAgICB9CisKICAgICAgICAgc2VxKys7CiAgICAgICAgIHRzKys7CiAgICAgfQpAQCAtMzUw
MCw3ICszNTA2LDcgQEAgY29uc3Qgc3J0cF9wb2xpY3lfdCBobWFjX29ubHlfcG9saWN5ID0gewog
ICAgIE5VTEwKIH07CiAKLSNpZmRlZiBPUEVOU1NMCisjaWZkZWYgR0NNCiBjb25zdCBzcnRwX3Bv
bGljeV90IGFlczEyOF9nY21fOF9wb2xpY3kgPSB7CiAgICAgeyBzc3JjX2FueV9vdXRib3VuZCwg
MCB9LCAvKiBTU1JDICovCiAgICAgewpAQCAtMzc4Niw3ICszNzkyLDcgQEAgY29uc3Qgc3J0cF9w
b2xpY3lfdCAqcG9saWN5X2FycmF5W10gPSB7CiAgICAgJmhtYWNfb25seV9wb2xpY3ksCiAgICAg
JmFlc19vbmx5X3BvbGljeSwKICAgICAmZGVmYXVsdF9wb2xpY3ksCi0jaWZkZWYgT1BFTlNTTAor
I2lmZGVmIEdDTQogICAgICZhZXMxMjhfZ2NtXzhfcG9saWN5LAogICAgICZhZXMxMjhfZ2NtXzhf
Y2F1dGhfcG9saWN5LAogICAgICZhZXMyNTZfZ2NtXzhfcG9saWN5LApkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3Qv
dGVzdF9zcnRwLmMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3Bh
cnR5L2xpYnNydHAvdGVzdC90ZXN0X3NydHAuYwppbmRleCBjZGM5YjVkNWI3NjI4Nzg2MDgyMjIy
ZDM4MjRkY2E1YTEyZDNmMGRkLi4wY2VhMWYzYzM3NDJkOTNmYjg3ZTQ4YWM0ZmNkZTdlZDAzMzFj
ZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJk
X3BhcnR5L2xpYnNydHAvdGVzdC90ZXN0X3NydHAuYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvdGVzdC90ZXN0X3NydHAuYwpAQCAt
NDQsMTQgKzQ0LDE0IEBACiAgKi8KIAogLyoKLSAqIFRlc3Qgc3BlY2lmaWMuCisgKiBsaWJTUlRQ
IHNwZWNpZmljLgogICovCi0jaW5jbHVkZSAiY3V0ZXN0LmgiCisjaW5jbHVkZSAiLi4vc3J0cC9z
cnRwLmMiIC8vIEdldCBhY2Nlc3MgdG8gc3RhdGljIGZ1bmN0aW9ucwogCiAvKgotICogbGliU1JU
UCBzcGVjaWZpYy4KKyAqIFRlc3Qgc3BlY2lmaWMuCiAgKi8KLSNpbmNsdWRlICIuLi9zcnRwL3Ny
dHAuYyIgLy8gR2V0IGFjY2VzcyB0byBzdGF0aWMgZnVuY3Rpb25zCisjaW5jbHVkZSAiY3V0ZXN0
LmgiCiAKIC8qCiAgKiBTdGFuZGFyZCBsaWJyYXJ5LgpAQCAtMTUyLDE0ICsxNTIsMTUgQEAgdm9p
ZCBzcnRwX2NhbGNfYWVhZF9pdl9zcnRjcF9kaXN0aW5jdF9pdl9wZXJfc2VxdWVuY2VfbnVtYmVy
KCkKICAgICBzcnRwX3Nlc3Npb25fa2V5c190IHNlc3Npb25fa2V5czsKICAgICBzcnRjcF9oZHJf
dCBoZWFkZXI7CiAgICAgdjEyOF90IG91dHB1dF9pdltTQU1QTEVfQ09VTlRdOwotICAgIG1lbXNl
dCgmb3V0cHV0X2l2LCAwLCBTQU1QTEVfQ09VTlQgKiBzaXplb2YodjEyOF90KSk7CiAgICAgdWlu
dDMyX3Qgc2VxdWVuY2VfbnVtW1NBTVBMRV9DT1VOVF07CisgICAgdjEyOF90IGZpbmFsX2l2W1NB
TVBMRV9DT1VOVF07CisgICAgc2l6ZV90IGkgPSAwOworICAgIG1lbXNldCgmb3V0cHV0X2l2LCAw
LCBTQU1QTEVfQ09VTlQgKiBzaXplb2YodjEyOF90KSk7CiAgICAgc2VxdWVuY2VfbnVtWzBdID0g
MHhGRjsKICAgICBzZXF1ZW5jZV9udW1bMV0gPSAweEZGMDA7CiAgICAgc2VxdWVuY2VfbnVtWzJd
ID0gMHhGRjAwMDA7CiAKICAgICAvLyBQb3N0Y29uZGl0aW9ucwotICAgIHYxMjhfdCBmaW5hbF9p
dltTQU1QTEVfQ09VTlRdOwogICAgIG1lbXNldCgmZmluYWxfaXYsIDAsIFNBTVBMRV9DT1VOVCAq
IHNpemVvZih2MTI4X3QpKTsKICAgICBmaW5hbF9pdlswXS52OFsxMV0gPSAweEZGOwogICAgIGZp
bmFsX2l2WzFdLnY4WzEwXSA9IDB4RkY7CkBAIC0xNzAsNyArMTcxLDYgQEAgdm9pZCBzcnRwX2Nh
bGNfYWVhZF9pdl9zcnRjcF9kaXN0aW5jdF9pdl9wZXJfc2VxdWVuY2VfbnVtYmVyKCkKICAgICBt
ZW1zZXQoJmhlYWRlciwgMCwgc2l6ZW9mKHNydGNwX2hkcl90KSk7CiAKICAgICAvLyBXaGVuCi0g
ICAgc2l6ZV90IGkgPSAwOwogICAgIGZvciAoaSA9IDA7IGkgPCBTQU1QTEVfQ09VTlQ7IGkrKykg
ewogICAgICAgICBURVNUX0NIRUNLKHNydHBfY2FsY19hZWFkX2l2X3NydGNwKCZzZXNzaW9uX2tl
eXMsICZvdXRwdXRfaXZbaV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VxdWVuY2VfbnVtW2ldLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3QvdXRpbC5jIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL3Rlc3QvdXRpbC5j
CmluZGV4IGViMjAzZjRjNGFmZWU5ODJiYjI0OTM4MGFlNjYxZTE0MTc3MDFhMzYuLmMwZjc2MTQ5
MDMxMTMyOTFiODFhMzQ4ZWE3YzBkODg2NzVmYmYxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC90ZXN0L3V0aWwuYwor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3RoaXJkX3BhcnR5L2xpYnNy
dHAvdGVzdC91dGlsLmMKQEAgLTQyLDEyICs0MiwxNCBAQAogICoKICAqLwogCisjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAidXRpbC5oIgogCiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5j
bHVkZSA8c3RkaW50Lmg+CiAKLWNoYXIgYml0X3N0cmluZ1tNQVhfUFJJTlRfU1RSSU5HX0xFTl07
CisvKiBpbmNsdWRlIHNwYWNlIGZvciBudWxsIHRlcm1pbmF0b3IgKi8KK3N0YXRpYyBjaGFyIGJp
dF9zdHJpbmdbTUFYX1BSSU5UX1NUUklOR19MRU4gKyAxXTsKIAogc3RhdGljIGlubGluZSBpbnQg
aGV4X2NoYXJfdG9fbmliYmxlKHVpbnQ4X3QgYykKIHsKQEAgLTE1MSw3ICsxNTMsNyBAQCBjaGFy
ICpvY3RldF9zdHJpbmdfaGV4X3N0cmluZyhjb25zdCB2b2lkICpzLCBpbnQgbGVuZ3RoKQogCiAg
ICAgLyogdHJ1bmNhdGUgc3RyaW5nIGlmIGl0IHdvdWxkIGJlIHRvbyBsb25nICovCiAgICAgaWYg
KGxlbmd0aCA+IE1BWF9QUklOVF9TVFJJTkdfTEVOKSB7Ci0gICAgICAgIGxlbmd0aCA9IE1BWF9Q
UklOVF9TVFJJTkdfTEVOIC0gMTsKKyAgICAgICAgbGVuZ3RoID0gTUFYX1BSSU5UX1NUUklOR19M
RU47CiAgICAgfQogCiAgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSArPSAyKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWE4MGVlMGRjOWRkYWQ5ZWI0NjdmYWRmZmQ3
ZjBkZmZjNmI3MDE2MC4uZDMxNmEwZDlhZDczNDg4MTc1MDE2YzUxMmVjMzg0ODJhZTRlNmQxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3
ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjIyMCw2ICsyMjIwLDEyIEBACiAJ
CTQxRDcyOEZGMjY2NTA3NUEwMDY1MUEwQiAvKiBocGtlLmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQ3MjhGRTI2NjUwNzVBMDA2NTFBMEIgLyogaHBr
ZS5jICovOyB9OwogCQk0MUQ3MjkwMjI2NjUwNzk3MDA2NTFBMEIgLyogZW5jcnlwdGVkX2NsaWVu
dF9oZWxsby5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxRDcyOTAwMjY2NTA3OTYwMDY1MUEwQiAvKiBlbmNyeXB0ZWRfY2xpZW50X2hlbGxvLmNjICov
OyB9OwogCQk0MUQ3MjkwMzI2NjUwNzk3MDA2NTFBMEIgLyogaGFuZG9mZi5jYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDcyOTAxMjY2NTA3OTYwMDY1
MUEwQiAvKiBoYW5kb2ZmLmNjICovOyB9OworCQk0MUQ3MjkwQzI2NjUwOTJCMDA2NTFBMEIgLyog
YWVzX2djbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFENzI5MDYyNjY1MDkxQTAwNjUxQTBCIC8qIGFlc19nY20uaCAqLzsgfTsKKwkJNDFENzI5MEQy
NjY1MDkzMTAwNjUxQTBCIC8qIGFlc19pY21fZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQ3MjkwNDI2NjUwOTE5MDA2NTFBMEIgLyogYWVzX2lj
bV9leHQuaCAqLzsgfTsKKwkJNDFENzI5MEYyNjY1MDkzRDAwNjUxQTBCIC8qIGNpcGhlcl9wcml2
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQ3Mjkw
NTI2NjUwOTFBMDA2NTFBMEIgLyogY2lwaGVyX3ByaXYuaCAqLzsgfTsKKwkJNDFENzI5MTAyNjY1
MDk0MTAwNjUxQTBCIC8qIGNpcGhlcl90eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDFENzI5MDcyNjY1MDkxQTAwNjUxQTBCIC8qIGNpcGhlcl90
eXBlcy5oICovOyB9OworCQk0MUQ3MjkxMTI2NjUwOUZCMDA2NTFBMEIgLyogY2lwaGVyX3R5cGVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUQ3Mjkw
NzI2NjUwOTFBMDA2NTFBMEIgLyogY2lwaGVyX3R5cGVzLmggKi87IH07CisJCTQxRDcyOTEyMjY2
NTBBNTkwMDY1MUEwQiAvKiBhZXNfZ2NtX29zc2wuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDREQ5MEFBMUU0M0Q1MjkwMDYyMUU5MiAvKiBhZXNfZ2Nt
X29zc2wuYyAqLzsgfTsKIAkJNDFEQjFBOTQyNDMyMTYxNDAwNUFCOEVBIC8qIHJ0Y3N0YXRzX29i
amVjdHMuY2MgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MURCMUE5MzI0MzIxNjE0MDA1QUI4RUEgLyogcnRjc3RhdHNfb2JqZWN0cy5jYyAqLzsgfTsKIAkJ
NDFEREIyNEQyMTI2NUJENzAwMjk2RDQ3IC8qIGZpeGVkX2FycmF5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUREQjI0QjIxMjY1QkQ3MDAyOTZENDcg
LyogZml4ZWRfYXJyYXkuaCAqLzsgfTsKIAkJNDFEREIyNEUyMTI2NUJENzAwMjk2RDQ3IC8qIGlu
bGluZWRfdmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MUREQjI0QzIxMjY1QkQ3MDAyOTZENDcgLyogaW5saW5lZF92ZWN0b3IuaCAqLzsgfTsK
QEAgLTI1MDMsMTUgKzI1MDksMTIgQEAKIAkJNUMwODg1MDcxRTRBOTg4MzAwNDAzOTk1IC8qIGF1
dGguYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDREQ5
MEE0MUU0M0Q1MUIwMDYyMUU5MiAvKiBhdXRoLmMgKi87IH07CiAJCTVDMDg4NTA4MUU0QTk4ODMw
MDQwMzk5NSAvKiBobWFjX29zc2wuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDREQ5MEE1MUU0M0Q1MUIwMDYyMUU5MiAvKiBobWFjX29zc2wuYyAqLzsg
fTsKIAkJNUMwODg1MDkxRTRBOTg4MzAwNDAzOTk1IC8qIG51bGxfYXV0aC5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNERDkwQTYxRTQzRDUxQjAwNjIx
RTkyIC8qIG51bGxfYXV0aC5jICovOyB9OwotCQk1QzA4ODUwQTFFNEE5ODg5MDA0MDM5OTUgLyog
YWVzX2djbV9vc3NsLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1Q0REOTBBQTFFNDNENTI5MDA2MjFFOTIgLyogYWVzX2djbV9vc3NsLmMgKi87IH07CiAJ
CTVDMDg4NTBCMUU0QTk4ODkwMDQwMzk5NSAvKiBhZXNfaWNtX29zc2wuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDREQ5MEFCMUU0M0Q1MjkwMDYyMUU5
MiAvKiBhZXNfaWNtX29zc2wuYyAqLzsgfTsKIAkJNUMwODg1MEMxRTRBOTg4OTAwNDAzOTk1IC8q
IGNpcGhlci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUNERDkwQUMxRTQzRDUyOTAwNjIxRTkyIC8qIGNpcGhlci5jICovOyB9OwogCQk1QzA4ODUwRDFF
NEE5ODg5MDA0MDM5OTUgLyogbnVsbF9jaXBoZXIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDREQ5MEFEMUU0M0Q1MjkwMDYyMUU5MiAvKiBudWxsX2Np
cGhlci5jICovOyB9OwogCQk1QzA4ODUwRTFFNEE5ODkwMDA0MDM5OTUgLyogcmRiLmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0REOTA4RDFFNDNENEND
MDA2MjFFOTIgLyogcmRiLmMgKi87IH07CiAJCTVDMDg4NTBGMUU0QTk4OTAwMDQwMzk5NSAvKiBy
ZGJ4LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0RE
OTA4RTFFNDNENENDMDA2MjFFOTIgLyogcmRieC5jICovOyB9OwogCQk1QzA4ODUxMDFFNEE5ODkw
MDA0MDM5OTUgLyogdXRfc2ltLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1Q0REOTA4RjFFNDNENENDMDA2MjFFOTIgLyogdXRfc2ltLmMgKi87IH07Ci0J
CTVDMDg4NTI0MUU0QTk5RDIwMDQwMzk5NSAvKiBhZXNfZ2NtX29zc2wuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMDg4NTEyMUU0QTk5RDIwMDQwMzk5
NSAvKiBhZXNfZ2NtX29zc2wuaCAqLzsgfTsKLQkJNUMwODg1MjUxRTRBOTlEMjAwNDAzOTk1IC8q
IGFlc19pY21fb3NzbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUMwODg1MTMxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19pY21fb3NzbC5oICovOyB9Owog
CQk1QzA4ODUyNjFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2ljbS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwODg1MTQxRTRBOTlEMjAwNDAzOTk1IC8q
IGFlc19pY20uaCAqLzsgfTsKIAkJNUMwODg1MjcxRTRBOTlEMjAwNDAzOTk1IC8qIGFlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMwODg1MTUxRTRB
OTlEMjAwNDAzOTk1IC8qIGFlcy5oICovOyB9OwogCQk1QzA4ODUyODFFNEE5OUQyMDA0MDM5OTUg
LyogYWxsb2MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDMDg4NTE2MUU0QTk5RDIwMDQwMzk5NSAvKiBhbGxvYy5oICovOyB9OwpAQCAtNjU1OSw2ICs2
NTYyLDEwIEBACiAJCTQxRDcyOEZFMjY2NTA3NUEwMDY1MUEwQiAvKiBocGtlLmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IGhwa2UuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDFENzI5MDAyNjY1MDc5NjAwNjUxQTBCIC8qIGVuY3J5cHRlZF9jbGllbnRfaGVsbG8u
Y2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBlbmNyeXB0ZWRfY2xpZW50
X2hlbGxvLmNjOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUQ3MjkwMTI2NjUwNzk2
MDA2NTFBMEIgLyogaGFuZG9mZi5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IGhhbmRvZmYuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRDcyOTA0MjY2
NTA5MTkwMDY1MUEwQiAvKiBhZXNfaWNtX2V4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBhZXNfaWNtX2V4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUQ3
MjkwNTI2NjUwOTFBMDA2NTFBMEIgLyogY2lwaGVyX3ByaXYuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gY2lwaGVyX3ByaXYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFENzI5MDYyNjY1MDkxQTAwNjUxQTBCIC8qIGFlc19nY20uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gYWVzX2djbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MUQ3MjkwNzI2NjUwOTFBMDA2NTFBMEIgLyogY2lwaGVyX3R5cGVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGNpcGhlcl90eXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MURCMUE5MzI0MzIxNjE0MDA1QUI4RUEgLyogcnRjc3RhdHNfb2JqZWN0cy5j
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IHJ0Y3N0YXRzX29iamVjdHMu
Y2M7IHBhdGggPSBzdGF0cy9ydGNzdGF0c19vYmplY3RzLmNjOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MUREQjI0QjIxMjY1QkQ3MDAyOTZENDcgLyogZml4ZWRfYXJyYXkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gZml4ZWRfYXJyYXkuaDsgcGF0aCA9IGNvbnRh
aW5lci9maXhlZF9hcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUREQjI0
QzIxMjY1QkQ3MDAyOTZENDcgLyogaW5saW5lZF92ZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gaW5saW5lZF92ZWN0b3IuaDsgcGF0aCA9IGNvbnRhaW5lci9pbmxpbmVk
X3ZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjgzOCw4ICs2ODQ1LDYg
QEAKIAkJNUMwODg0OEExRTRBOTc4QzAwNDAzOTk1IC8qIGxpYnl1di54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBsaWJ5dXYueGNjb25maWc7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDMDg4NEQxMUU0QTk3RTMwMDQwMzk5NSAvKiBsaWJzcnRwLmEgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7
IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYnNydHAuYTsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJNUMwODg0REUxRTRBOTgwMTAwNDAzOTk1IC8qIGxpYnl1di5h
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBhcmNoaXZl
LmFyOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJ5dXYuYTsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJNUMwODg1MTIxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19n
Y21fb3NzbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBhZXNfZ2NtX29zc2wu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUMwODg1MTMxRTRBOTlEMjAwNDAzOTk1
IC8qIGFlc19pY21fb3NzbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBhZXNf
aWNtX29zc2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMwODg1MTQxRTRBOTlE
MjAwNDAzOTk1IC8qIGFlc19pY20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
YWVzX2ljbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzA4ODUxNTFFNEE5OUQy
MDA0MDM5OTUgLyogYWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGFlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzA4ODUxNjFFNEE5OUQyMDA0MDM5OTUg
LyogYWxsb2MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gYWxsb2MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODE1LDEyICsxMTgyMCwxNCBAQAogCQk1QzA4
ODUxMTFFNEE5OUMyMDA0MDM5OTUgLyogaW5jbHVkZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNUMwODg1MTUxRTRBOTlEMjAwNDAzOTk1IC8qIGFlcy5o
ICovLAotCQkJCTVDMDg4NTEyMUU0QTk5RDIwMDQwMzk5NSAvKiBhZXNfZ2NtX29zc2wuaCAqLywK
KwkJCQk0MUQ3MjkwNjI2NjUwOTFBMDA2NTFBMEIgLyogYWVzX2djbS5oICovLAorCQkJCTQxRDcy
OTA0MjY2NTA5MTkwMDY1MUEwQiAvKiBhZXNfaWNtX2V4dC5oICovLAogCQkJCTVDMDg4NTE0MUU0
QTk5RDIwMDQwMzk5NSAvKiBhZXNfaWNtLmggKi8sCi0JCQkJNUMwODg1MTMxRTRBOTlEMjAwNDAz
OTk1IC8qIGFlc19pY21fb3NzbC5oICovLAorCQkJCTVDMDg4NTE1MUU0QTk5RDIwMDQwMzk5NSAv
KiBhZXMuaCAqLywKIAkJCQk1QzA4ODUxNjFFNEE5OUQyMDA0MDM5OTUgLyogYWxsb2MuaCAqLywK
IAkJCQk1QzA4ODUxNzFFNEE5OUQyMDA0MDM5OTUgLyogYXV0aC5oICovLAorCQkJCTQxRDcyOTA1
MjY2NTA5MUEwMDY1MUEwQiAvKiBjaXBoZXJfcHJpdi5oICovLAorCQkJCTQxRDcyOTA3MjY2NTA5
MUEwMDY1MUEwQiAvKiBjaXBoZXJfdHlwZXMuaCAqLywKIAkJCQk1QzA4ODUxODFFNEE5OUQyMDA0
MDM5OTUgLyogY2lwaGVyLmggKi8sCiAJCQkJNUMwODg1MTkxRTRBOTlEMjAwNDAzOTk1IC8qIGNy
eXB0b19rZXJuZWwuaCAqLywKIAkJCQk1QzA4ODUxQTFFNEE5OUQyMDA0MDM5OTUgLyogY3J5cHRv
X3R5cGVzLmggKi8sCkBAIC0xNTQzOSw2ICsxNTQ0Niw3IEBACiAJCQlpc2EgPSBQQlhIZWFkZXJz
QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9
ICgKKwkJCQk0MUQ3MjkxMTI2NjUwOUZCMDA2NTFBMEIgLyogY2lwaGVyX3R5cGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKQEAgLTE1NjU0LDkgKzE1NjYyLDcgQEAKIAkJCQk1Q0REODVFODFFNDNCODEwMDA2
MjFFOTIgLyogYWVjbV9jb3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODVFOTFFNDNCODEw
MDA2MjFFOTIgLyogYWVjbV9kZWZpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyNzFF
NEE5OUQyMDA0MDM5OTUgLyogYWVzLmggaW4gSGVhZGVycyAqLywKLQkJCQk1QzA4ODUyNDFFNEE5
OUQyMDA0MDM5OTUgLyogYWVzX2djbV9vc3NsLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUy
NjFFNEE5OUQyMDA0MDM5OTUgLyogYWVzX2ljbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNUMwODg1
MjUxRTRBOTlEMjAwNDAzOTk1IC8qIGFlc19pY21fb3NzbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNERDg3MDIxRTQzQkE3NTAwNjIxRTkyIC8qIGFnYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE2
RDNCREYyMTI3MzFDMjAwNzc1RjA5IC8qIGFnYzJfY29tbW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REODcwMDFFNDNCQTc1MDA2MjFFOTIgLyogYWdjX21hbmFnZXJfZGlyZWN0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTE1ODk2LDYgKzE1OTAyLDcgQEAKIAkJCQk0MTg5MzkxQzI0MkE3MDRFMDA3
RkRDNDEgLyogY3JlYXRlX3ZpZGVvX3J0cF9kZXBhY2tldGl6ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDREQ4QTEwMUU0M0JGQjMwMDYyMUU5MiAvKiBjcm9zc19jb3JyZWxhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDEzMUMwNEUyMzRCODk4RDAwMjhBNjE1IC8qIGNyeXB0X3N0cmluZy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNDFENzI5MEQyNjY1MDkzMTAwNjUxQTBCIC8qIGFlc19pY21f
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzA4ODUyQjFFNEE5OUQyMDA0MDM5OTUgLyogY3J5
cHRvX2tlcm5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzMUMzQjQyMzRCOTcxMjAwMjhBNjE1
IC8qIGNyeXB0b19vcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzMwOTIzNEI4REMy
MDAyOEE2MTUgLyogY3J5cHRvX3BhcmFtcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNjEwNyw2ICsx
NjExNCw3IEBACiAJCQkJNDEzMUM0RjcyMzRDODY3QjAwMjhBNjE1IC8qIGhpc3RvZ3JhbS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNUNERDgzREMxRTQzOUE2RjAwNjIxRTkyIC8qIGhpc3RvZ3JhbS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDE5QzgzNTgxRkUyNDY2NTAwNDBDMzBGIC8qIGhpc3RvZ3Jh
bV9wZXJjZW50aWxlX2NvdW50ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxRDcyOTBGMjY2NTA5
M0QwMDY1MUEwQiAvKiBjaXBoZXJfcHJpdi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE4OTM5ODUy
NDJBNzI1MTAwN0ZEQzQxIC8qIGhpc3RvZ3JhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFD
MDgxMjM0Qjg5OEQwMDI4QTYxNSAvKiBodHRwX2NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDFBMDhCQUQyMTI2ODFDODAwMUQ1RDdCIC8qIGkwMTBfYnVmZmVyLmggaW4gSGVhZGVycyAqLywK
QEAgLTE2NDA2LDYgKzE2NDE0LDcgQEAKIAkJCQk0MTAwOTFERDI0MkUwQkJDMDBDNUVEQTIgLyog
cmVjb3JkYWJsZV9lbmNvZGVkX2ZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTJGRjlFMTI1
NEIzRkM4MDAxREYwMzYgLyogcmVjdXJzaXZlX2NyaXRpY2FsX3NlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDREQ4QTRFMUU0M0JGQjMwMDYyMUU5MiAvKiByZWRfcGF5bG9hZF9zcGxpdHRl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFENzI5MEMyNjY1MDkyQjAwNjUxQTBCIC8qIGFlc19n
Y20uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMTAxMjM0Qjg5RTIwMDI4QTYxNSAvKiByZWZf
Y291bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMzFDMkZEMjM0QjhEQzIwMDI4QTYxNSAvKiBy
ZWZfY291bnRlZF9iYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTMxQzE0OTIzNEI4OUUyMDAy
OEE2MTUgLyogcmVmX2NvdW50ZWRfb2JqZWN0LmggaW4gSGVhZGVycyAqLywKQEAgLTE2ODcxLDYg
KzE2ODgwLDcgQEAKIAkJCQk0MTg5MzlDQTI0MkE3MzM3MDA3RkRDNDEgLyogdXNlZF9pZHMuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxM0EyMTQwMUZFMEYwRUYwMDM3M0U5OSAvKiB1dF9zaW0uaCBp
biBIZWFkZXJzICovLAogCQkJCTVDREQ4NzA5MUU0M0JBNzUwMDYyMUU5MiAvKiB1dGlsaXR5Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQk0MUQ3MjkxMDI2NjUwOTQxMDA2NTFBMEIgLyogY2lwaGVyX3R5
cGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODdERjFFNDNCQzJFMDA2MjFFOTIgLyogdXRp
bGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDg3M0IxRTQzQkFCRTAwNjIxRTkyIC8qIHZh
ZF9hdWRpb19wcm9jLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REODczODFFNDNCQUJFMDA2MjFF
OTIgLyogdmFkX2F1ZGlvX3Byb2NfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtMTc3MzMs
OSArMTc3NDMsOSBAQAogCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJNUMwODg1MEExRTRBOTg4
OTAwNDAzOTk1IC8qIGFlc19nY21fb3NzbC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMwODg1MEIx
RTRBOTg4OTAwNDAzOTk1IC8qIGFlc19pY21fb3NzbC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMw
ODg1MDMxRTRBOTg3QzAwNDAzOTk1IC8qIGFsbG9jLmMgaW4gU291cmNlcyAqLywKKwkJCQk0MUQ3
MjkxMjI2NjUwQTU5MDA2NTFBMEIgLyogYWVzX2djbV9vc3NsLmMgaW4gU291cmNlcyAqLywKIAkJ
CQk1QzA4ODUwNzFFNEE5ODgzMDA0MDM5OTUgLyogYXV0aC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUMwODg1MEMxRTRBOTg4OTAwNDAzOTk1IC8qIGNpcGhlci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUMwODg1MDQxRTRBOTg3QzAwNDAzOTk1IC8qIGNyeXB0b19rZXJuZWwuYyBpbiBTb3VyY2VzICov
LAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>