<?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>227228</bug_id>
          
          <creation_ts>2021-06-21 11:25:02 -0700</creation_ts>
          <short_desc>Update TBA macros for iOS 15 / macOS 13</short_desc>
          <delta_ts>2021-06-21 16:54:17 -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>WebKit2</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1771365</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-21 11:25:02 -0700</bug_when>
    <thetext>Update TBA macros for iOS 15 / macOS 13.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771366</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-21 11:25:13 -0700</bug_when>
    <thetext>&lt;rdar://78581134&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771369</commentid>
    <comment_count>2</comment_count>
      <attachid>431884</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-21 11:32:03 -0700</bug_when>
    <thetext>Created attachment 431884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771383</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-21 11:51:24 -0700</bug_when>
    <thetext>Before we land this, let&apos;s double check the build on Monterey/iOS 15/tvOS 15/watchOS 8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771419</commentid>
    <comment_count>4</comment_count>
      <attachid>431900</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-21 13:23:50 -0700</bug_when>
    <thetext>Created attachment 431900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771529</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-21 16:46:13 -0700</bug_when>
    <thetext>This works on Monterey, iOS 15 and watchOS 8. tvOS 15 is sufficiently similar to iOS 15 that I don&apos;t think we need to be concerned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771530</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-21 16:46:45 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #5)
&gt; This works on Monterey, iOS 15 and watchOS 8. tvOS 15 is sufficiently
&gt; similar to iOS 15 that I don&apos;t think we need to be concerned.

Awesome. Thanks for checking!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771535</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-21 16:54:17 -0700</bug_when>
    <thetext>Committed r279089 (239006@main): &lt;https://commits.webkit.org/239006@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431884</attachid>
            <date>2021-06-21 11:32:03 -0700</date>
            <delta_ts>2021-06-21 13:23:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227228-20210621113202.patch</filename>
            <type>text/plain</type>
            <size>130375</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBmZGM2ZmNiMzc5YjlkOTY5
MDM4M2M5NjVjNjU2NzM2N2M0YTJkMDUuLjU4NzljZjRkNWI1NTI0ZTkxYjlkMDhlOWY5YTQ2NzM5
NDA2OTY1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMjEtMDYtMjEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgVEJBIG1hY3JvcyBmb3Ig
aU9TIDE1IC8gbWFjT1MgMTMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNzIyOAorICAgICAgICA8cmRhcjovLzc4NTgxMTM0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2Vi
S2l0LnhjY29uZmlnOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUu
aDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdEludGVyZmFjZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3RQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Rvd25sb2FkLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Rvd25sb2FkRGVsZWdhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZUZvclRlc3RpbmcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFSZWNvcmRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tBcHBIaWdobGlnaHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Fw
cEhpZ2hsaWdodERlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
cHBsaWNhdGlvbk1hbmlmZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tB
dXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRv
ckF0dGFjaG1lbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tBdXRoZW50aWNhdG9yUmVzcG9uc2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvbkRlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRG93bmxvYWREZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRWxlbWVudEFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLSW5zcGVjdG9yLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3JDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNw
ZWN0b3JFeHRlbnNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRpYWxFbnRpdHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRpYWxQYXJhbWV0
ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50
aWFsUmVseWluZ1BhcnR5RW50aXR5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRpYWxVc2VyRW50aXR5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxl
ci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvblRv
a2VuLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxGb3JUZXN0aW5nLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vz
c1BsdWdJbkZyYW1lLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nl
c3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRD
b250cm9sbGVyUHJpdmF0ZS5oOgorCiAyMDIxLTA2LTIxICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI3NTQ5Nik6IFdl
YlNvY2tldCBNZXNzYWdlIHRvbyBsb25nIHdoZW4gbWVzc2FnZSBpcyBsYXJnZXIgdGhhbiAxbWIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmln
IGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKaW5kZXggZWQ1
N2JmMzgzZWUxNDdkMjc0YTMwYTljNTcwMzdlZmYwNjA4OThkYy4uOWY3Y2NlNTEzN2NlNmZmZjI0
YzA1YjY3NjE2YzBkNjBmM2YxZWE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9XZWJLaXQueGNjb25maWcKQEAgLTE3NSwxMCArMTc1LDEwIEBAIEVYQ0xVREVEX01BQ09TX1BM
VUdJTl9GSUxFX05BTUVTW3Nkaz1pcGhvbmUqXSA9IFBsdWdpblByb2Nlc3NTaGltLmR5bGliIFNl
Y0l0ZW1TCiBJTlNUQUxMSERSU19TQ1JJUFRfUEhBU0UgPSBZRVM7CiBBUFBMWV9SVUxFU19JTl9D
T1BZX0hFQURFUlMgPSAkKFdLX1VTRV9ORVdfQlVJTERfU1lTVEVNKTsKIAotV0tfRlJBTUVXT1JL
X0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9bWFjb3N4Kl0gPSAkKFdLX0ZSQU1F
V09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRUQkKFdLX01BQ09TXzEyMDApKTsKLVdL
X0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURfTUFDT1NfQkVGT1JFXzEy
MDAgPSBZRVM7Ci1XS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEW3Nk
az1pcGhvbmUqXSA9ICQoV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxF
RCQoV0tfSU9TXzE1KSk7Ci1XS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FC
TEVEX0lPU19CRUZPUkVfMTUgPSBZRVM7CitXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNT
SU5HX0RJU0FCTEVEW3Nkaz1tYWNvc3gqXSA9ICQoV0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJP
Q0VTU0lOR19ESVNBQkxFRCQoV0tfTUFDT1NfMTMwMCkpOworV0tfRlJBTUVXT1JLX0hFQURFUl9Q
T1NUUFJPQ0VTU0lOR19ESVNBQkxFRF9NQUNPU19CRUZPUkVfMTMwMCA9IFlFUzsKK1dLX0ZSQU1F
V09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURbc2RrPWlwaG9uZSpdID0gJChXS19G
UkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEJChXS19JT1NfMTYpKTsKK1dL
X0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURfSU9TX0JFRk9SRV8xNiA9
IFlFUzsKIAogV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1MgPSAkKFdLX1JFTE9DQVRB
QkxFX0ZSQU1FV09SS19MREZMQUdTXyQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLUylfJChXS19Q
TEFURk9STV9OQU1FKSk7CiBXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHU19ZRVNfbWFj
b3N4ID0gLVdsLC1ub3RfZm9yX2R5bGRfc2hhcmVkX2NhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS0ZyYW1lSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUuaAppbmRleCA1YmI2YjA4MzUyYmQ3ZThk
ODdiMzQ5NDc3NmU5MjJiYTIxNWUzZmM5Li5kYjBkOTkzMmViMDc2ODUwYWE5YmU5NDI5MTMxODA3
NmVhN2U3MDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dL
RnJhbWVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJh
bWVIYW5kbGUuaApAQCAtMjksNiArMjksNiBAQAogV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEw
LjEwKSwgaW9zKDguMCkpCiBAaW50ZXJmYWNlIF9XS0ZyYW1lSGFuZGxlIDogTlNPYmplY3QgPE5T
Q29weWluZywgTlNTZWN1cmVDb2Rpbmc+CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgdWludDY0X3QgZnJhbWVJRCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSB1aW50NjRf
dCBmcmFtZUlEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIEBl
bmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVP
YmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1v
dGVPYmplY3RJbnRlcmZhY2UuaAppbmRleCAzMTUyODgyZWVkZjU4OGM1ODIzNDRkZWVjZTg4YTQ1
NWE3NjljM2UxLi5lOGM3YTc0NGU1ZTcyODAyNmY2NTg4OWEyNzYyMzQ4MDkwOGE3YjA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0SW50
ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9i
amVjdEludGVyZmFjZS5oCkBAIC0zOSw3ICszOSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cygxMC4xMCksIGlvcyg4LjApKQogLSAoTlNTZXQgKiljbGFzc2VzRm9yU2VsZWN0b3I6KFNFTClz
ZWxlY3RvciBhcmd1bWVudEluZGV4OihOU1VJbnRlZ2VyKWFyZ3VtZW50SW5kZXggb2ZSZXBseToo
Qk9PTClvZlJlcGx5OwogLSAodm9pZClzZXRDbGFzc2VzOihOU1NldCAqKWNsYXNzZXMgZm9yU2Vs
ZWN0b3I6KFNFTClzZWxlY3RvciBhcmd1bWVudEluZGV4OihOU1VJbnRlZ2VyKWFyZ3VtZW50SW5k
ZXggb2ZSZXBseTooQk9PTClvZlJlcGx5OwogCi0tIChOU1NldCAqKWNsYXNzZXNGb3JTZWxlY3Rv
cjooU0VMKXNlbGVjdG9yIGFyZ3VtZW50SW5kZXg6KE5TVUludGVnZXIpYXJndW1lbnRJbmRleCBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItY2xhc3Nlc0ZvclNlbGVjdG9yOmFy
Z3VtZW50SW5kZXg6b2ZSZXBseToiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAs
IFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpc2V0Q2xhc3NlczooTlNTZXQgKiljbGFzc2VzIGZvclNl
bGVjdG9yOihTRUwpc2VsZWN0b3IgYXJndW1lbnRJbmRleDooTlNVSW50ZWdlcilhcmd1bWVudElu
ZGV4IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1zZXRDbGFzc2VzOmZvclNl
bGVjdG9yOmFyZ3VtZW50SW5kZXg6b2ZSZXBseToiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSks
IGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKKy0gKE5TU2V0ICopY2xhc3Nlc0ZvclNlbGVjdG9yOihT
RUwpc2VsZWN0b3IgYXJndW1lbnRJbmRleDooTlNVSW50ZWdlcilhcmd1bWVudEluZGV4IFdLX0FQ
SV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1jbGFzc2VzRm9yU2VsZWN0b3I6YXJndW1l
bnRJbmRleDpvZlJlcGx5OiIsIG1hY29zKDEwLjEwLCAxMi4wKSwgaW9zKDguMCwgMTUuMCkpOwor
LSAodm9pZClzZXRDbGFzc2VzOihOU1NldCAqKWNsYXNzZXMgZm9yU2VsZWN0b3I6KFNFTClzZWxl
Y3RvciBhcmd1bWVudEluZGV4OihOU1VJbnRlZ2VyKWFyZ3VtZW50SW5kZXggV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLXNldENsYXNzZXM6Zm9yU2VsZWN0b3I6YXJndW1lbnRJ
bmRleDpvZlJlcGx5OiIsIG1hY29zKDEwLjEwLCAxMi4wKSwgaW9zKDguMCwgMTUuMCkpOwogCiBA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250
ZW50UnVsZUxpc3RQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tDb250ZW50UnVsZUxpc3RQcml2YXRlLmgKaW5kZXggZGNiMzA1NTFkZmVkYzdmODgyNTUwZjAz
NzIxOWU2YmFmZDE3MWExZC4uODI2NDZhZjdjZmE2ODUxZTY5YzY0OTU5ZDA0NzJkMjUxYmUxNzg1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVu
dFJ1bGVMaXN0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0NvbnRlbnRSdWxlTGlzdFByaXZhdGUuaApAQCAtMjcsNiArMjcsNiBAQAogCiBAaW50ZXJm
YWNlIFdLQ29udGVudFJ1bGVMaXN0IChXS1ByaXZhdGUpCiAKLSsgKEJPT0wpX3N1cHBvcnRzUmVn
dWxhckV4cHJlc3Npb246KE5TU3RyaW5nICopcmVnZXggV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKysgKEJPT0wpX3N1cHBvcnRzUmVndWxhckV4
cHJlc3Npb246KE5TU3RyaW5nICopcmVnZXggV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Rvd25sb2FkLmgKaW5kZXggMjIwNGUzYmQ4MWQzZGIzZGUzYjc4MjdjMzVmZDdhNjFmMTA0
ZTY0ZS4uZTYwY2NkZjgxOTliYTE1MjA0YTM4MWQ5NTkyOTIyZWU4YjA1OWJlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRG93bmxvYWQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tEb3dubG9hZC5oCkBAIC0zMyw3ICsz
Myw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEyLjApLCBpb3MoMTUuMCkpCiBAaW50ZXJmYWNlIFdLRG93bmxvYWQgOiBOU09iamVjdDxO
U1Byb2dyZXNzUmVwb3J0aW5nPgogCiAvKiBAYWJzdHJhY3QgVGhlIHJlcXVlc3QgdXNlZCB0byBp
bml0aWF0ZSB0aGlzIGRvd25sb2FkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRG93bmxvYWREZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLRG93bmxvYWREZWxlZ2F0ZS5oCmluZGV4IGViOTIxMzg2NWZiNmEzODA4
ODQ2YzE3YmEyNDI5MmQzYzI4YjgzNGYuLmU4MzRiMjcyMTZlMzFjZmZiNDExZDk2MTkxMGRjNzc5
NmI4YzdlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0Rvd25sb2FkRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tEb3dubG9hZERlbGVnYXRlLmgKQEAgLTM2LDcgKzM2LDcgQEAKIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIFdLRG93bmxvYWRSZWRpcmVjdFBvbGljeSkgewogICAgIFdLRG93bmxvYWRS
ZWRpcmVjdFBvbGljeUNhbmNlbCwKICAgICBXS0Rvd25sb2FkUmVkaXJlY3RQb2xpY3lBbGxvdywK
LX0gTlNfU1dJRlRfTkFNRShXS0Rvd25sb2FkLlJlZGlyZWN0UG9saWN5KSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBOU19TV0lGVF9OQU1F
KFdLRG93bmxvYWQuUmVkaXJlY3RQb2xpY3kpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCks
IGlvcygxNS4wKSk7CiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZVByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZVBy
aXZhdGUuaAppbmRleCA3ZTE5NDNlZjI4ZTdiMzI0Y2E1OGQxZTExYmVlZTQ3Y2EwZWFmZTZhLi40
M2I1M2YwMDQxY2ZlZTczMWFhMWRkNDM2MDk3NWExODBlYmNjNjkwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3Jl
UHJpdmF0ZS5oCkBAIC0yNyw2ICsyNyw2IEBACiAKIEBpbnRlcmZhY2UgV0tIVFRQQ29va2llU3Rv
cmUgKFdLUHJpdmF0ZSkKIC0gKHZvaWQpX2dldENvb2tpZXNGb3JVUkw6KE5TVVJMICopdXJsIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PE5TSFRUUENvb2tpZSAqPiAqKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwot
LSAodm9pZClfc2V0Q29va2llQWNjZXB0UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQb2xpY3kp
cG9saWN5IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
LSAodm9pZClfZmx1c2hDb29raWVzVG9EaXNrV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRDb29raWVBY2NlcHRQb2xpY3k6KE5T
SFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3kgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlv
cygxNS4wKSk7CistICh2b2lkKV9mbHVzaENvb2tpZXNUb0Rpc2tXaXRoQ29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5o
CmluZGV4IGZlMmQ5Mjc0YTYwNTc5ZWNkYzNjOTMwOTQ4ZGI4Y2ZkMmNjY2RhM2IuLmI2NTM1Zjk0
MGIyYmIyZGMwMDYwNDZiZDUxOWJiZDJiMmQ0ZTljYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVy
c1ByaXZhdGUuaApAQCAtNDYsNyArNDYsNyBAQCBXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICog
Y29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3BlbkxpbmtJbk5ld1dpbmRvdyBXS19BUAogV0tf
RVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllck9wZW5N
ZWRpYUluTmV3V2luZG93IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkp
OwogV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmll
clBhc3RlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclJlbG9hZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKLVdLX0VYUE9SVCBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJSZXZlYWxJbWFnZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclJldmVhbElt
YWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2VhcmNoV2ViIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogV0tfRVhQT1JUIGV4dGVy
biBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNob3dIaWRlTWVkaWFDb250
cm9scyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIFdLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJUb2dnbGVFbmhh
bmNlZEZ1bGxTY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7
CkBAIC01NSwxMSArNTUsMTEgQEAgV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9X
S01lbnVJdGVtSWRlbnRpZmllclRvZ2dsZUZ1bGxTY3JlZW4gV0tfQVBJX0EKIFdLX0VYUE9SVCBl
eHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTaGFyZU1lbnUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBXS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU3BlZWNoTWVudSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAotV0tfRVhQT1JUIGV4dGVybiBO
U1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckFkZEhpZ2hsaWdodFRvQ3VycmVu
dFF1aWNrTm90ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRl
bnRpZmllckFkZEhpZ2hsaWdodFRvTmV3UXVpY2tOb3RlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5n
ICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQWRkSGlnaGxpZ2h0VG9DdXJyZW50UXVpY2tO
b3RlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CitXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQWRkSGlnaGxpZ2h0
VG9OZXdRdWlja05vdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsK
IAogLy8gRklYTUU6IHJlbW92ZSBiZWxvdyBhZnRlciBzdGFnaW5nIGNvbXBsZXRlLgotV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckFkZEhpZ2hs
aWdodFRvQ3VycmVudEdyb3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVu
dUl0ZW1JZGVudGlmaWVyQWRkSGlnaGxpZ2h0VG9OZXdHcm91cCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworV0tfRVhQT1JUIGV4dGVybiBOU1N0
cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllckFkZEhpZ2hsaWdodFRvQ3VycmVudEdy
b3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CitXS19FWFBPUlQg
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQWRkSGlnaGxpZ2h0
VG9OZXdHcm91cCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCi1X
S19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyVHJh
bnNsYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyVHJhbnNsYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9u
QWN0aW9uLmgKaW5kZXggNmU2ODY5OTI3OTBmZDgzZTVkZGRhZjgwNmMxMDQ4MjIzM2ZkYjJkZS4u
OWRhNDk3MzA3ZjAzNTlhY2NmNTA5MDRlZWJkZThkNmJiNDM2YzhlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24uaApA
QCAtNzgsNyArNzgsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4w
KSkKIAogLyohIEBhYnN0cmFjdCBBIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0aGUgd2ViIGNv
bnRlbnQgdXNlZCBhIGRvd25sb2FkIGF0dHJpYnV0ZSB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgc2hv
dWxkIGJlIGRvd25sb2FkZWQuCiAqLwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIHNob3VsZFBlcmZvcm1Eb3dubG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIHNob3VsZFBlcmZvcm1Eb3dubG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBp
b3MoMTUuMCkpOwogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb25Qcml2
YXRlLmgKaW5kZXggNTNjYzVhOTdjN2VhOTI1NGEzMjUwNGE0ZGU2NGY2YzNmZjNlNWE2ZS4uNGRi
NjY5NDMyMzI1ZmMzNzNkOTBiMjhmMDRhMDI3N2RhZGNjZDUxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9u
UHJpdmF0ZS5oCkBAIC00NSw3ICs0NSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdL
U3ludGhldGljQ2xpY2tUeXBlKSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX2NhbkhhbmRsZVJlcXVlc3Q7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX3Nob3VsZE9wZW5FeHRlcm5hbFNjaGVtZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MSksIGlvcyg5LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hv
dWxkT3BlbkFwcExpbmtzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTEpLCBpb3MoOS4wKSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZFBlcmZvcm1Eb3du
bG9hZCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJkb3dubG9hZEF0dHJpYnV0
ZSIsIG1hY29zKDEwLjE1LCBXS19NQUNfVEJBKSwgaW9zKDEzLjAsIFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkUGVyZm9ybURvd25sb2Fk
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoImRvd25sb2FkQXR0cmlidXRlIiwg
bWFjb3MoMTAuMTUsIDEyLjApLCBpb3MoMTMuMCwgMTUuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgX3Nob3VsZE9wZW5FeHRlcm5hbFVSTHMgV0tfQVBJX0RFUFJF
Q0FURUQoInVzZSBfc2hvdWxkT3BlbkV4dGVybmFsU2NoZW1lcyBhbmQgX3Nob3VsZE9wZW5BcHBM
aW5rcyIsIG1hY29zKDEwLjExLCAxMC4xMSksIGlvcyg5LjAsIDkuMCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0
ZS5oCmluZGV4IDM3NGFhNGM2YzE4ZDMzY2VkYWQzMDYwNjhmOWUwM2FjYWUxYzhmOWIuLmE2ZDUx
NTZlOGZkMDRiZmRkZDk2ODk4YTMxNjg1YzQxMzllNjY5NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZS5oCkBA
IC00Niw3ICs0Niw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpIHsKICAgICBXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3lDYW5jZWwsCiAgICAgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3csCi0g
ICAgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSwKKyAgICBXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3lEb3dubG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpLAog
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwogCiAvKiEgQGVudW0g
V0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kKQEAgLTU4LDcgKzU4LDcgQEAgdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KSB7CiB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkgewogICAgIFdLTmF2aWdh
dGlvblJlc3BvbnNlUG9saWN5Q2FuY2VsLAogICAgIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5
QWxsb3csCi0gICAgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lEb3dubG9hZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpLAorICAgIFdLTmF2aWdh
dGlvblJlc3BvbnNlUG9saWN5RG93bmxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKSwKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKTsK
IAogLyohIEEgY2xhc3MgY29uZm9ybWluZyB0byB0aGUgV0tOYXZpZ2F0aW9uRGVsZWdhdGUgcHJv
dG9jb2wgY2FuIHByb3ZpZGUKQEAgLTE3Niw3ICsxNzYsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkgewogIEBwYXJhbSBkb3dubG9hZCBU
aGUgZG93bmxvYWQuCiAgQGRpc2N1c3Npb24gVGhlIGRvd25sb2FkIG5lZWRzIGl0cyBkZWxlZ2F0
ZSB0byBiZSBzZXQgdG8gcmVjZWl2ZSB1cGRhdGVzIGFib3V0IGl0cyBwcm9ncmVzcy4KICovCi0t
ICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbmF2aWdhdGlvbkFjdGlvbjooV0tO
YXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkaWRCZWNvbWVEb3dubG9hZDooV0tE
b3dubG9hZCAqKWRvd25sb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbmF2
aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkaWRC
ZWNvbWVEb3dubG9hZDooV0tEb3dubG9hZCAqKWRvd25sb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8qCiAgQGFic3RyYWN0IENhbGxlZCBhZnRlciB1c2lu
ZyBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeURvd25sb2FkLgpAQCAtMTg1LDcgKzE4NSw3IEBA
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KSB7
CiAgQHBhcmFtIGRvd25sb2FkIFRoZSBkb3dubG9hZC4KICBAZGlzY3Vzc2lvbiBUaGUgZG93bmxv
YWQgbmVlZHMgaXRzIGRlbGVnYXRlIHRvIGJlIHNldCB0byByZWNlaXZlIHVwZGF0ZXMgYWJvdXQg
aXRzIHByb2dyZXNzLgogKi8KLS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBu
YXZpZ2F0aW9uUmVzcG9uc2U6KFdLTmF2aWdhdGlvblJlc3BvbnNlICopbmF2aWdhdGlvblJlc3Bv
bnNlIGRpZEJlY29tZURvd25sb2FkOihXS0Rvd25sb2FkICopZG93bmxvYWQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBuYXZpZ2F0aW9uUmVzcG9uc2U6KFdLTmF2aWdhdGlvblJl
c3BvbnNlICopbmF2aWdhdGlvblJlc3BvbnNlIGRpZEJlY29tZURvd25sb2FkOihXS0Rvd25sb2Fk
ICopZG93bmxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAog
QGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tO
YXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggOGUzYjZhMDhkNDZmNDdl
ZTIxYzFkMTE2MjYzYWNjZTMyOWRlNzNiNS4uMGIwOTNiZWU2YTBiNzI1YzUxZjVmYjlmNDhmZDAw
YTk4MzAyMmM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaApAQCAtNTcsMTEgKzU3
LDExIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1NPQXV0aG9yaXphdGlvbkxvYWRQ
b2xpY3kpIHsKICAgICBfV0tTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5SWdub3JlLAogfSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIAotc3RhdGljIGNvbnN0IFdL
TmF2aWdhdGlvbkFjdGlvblBvbGljeSBfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5RG93bmxvYWQg
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5RG93bmxvYWQiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19U
QkEpKSA9IChXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eUFsbG93ICsgMSk7CitzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IF9XS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3lEb3dubG9hZCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lEb3dubG9hZCIsIG1hY29zKDEwLjEwLCAx
Mi4wKSwgaW9zKDguMCwgMTUuMCkpID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkoV0tOYXZp
Z2F0aW9uQWN0aW9uUG9saWN5QWxsb3cgKyAxKTsKIHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25B
Y3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjApKSBfV0tO
YXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGluayA9IChXS05hdmln
YXRpb25BY3Rpb25Qb2xpY3kpKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93ICsgMik7CiBz
dGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQuNCksIGlvcygxMi4yKSkgX1dLTmF2aWdhdGlvbkFjdGlvblBvbGljeUFsbG93SW5O
ZXdQcm9jZXNzID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkoX1dLTmF2aWdhdGlvbkFjdGlv
blBvbGljeUFsbG93V2l0aG91dFRyeWluZ0FwcExpbmsgKyAxKTsKIAotc3RhdGljIGNvbnN0IFdL
TmF2aWdhdGlvblJlc3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29t
ZURvd25sb2FkIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLTmF2aWdhdGlv
blJlc3BvbnNlUG9saWN5RG93bmxvYWQiLCBtYWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4
LjAsIFdLX0lPU19UQkEpKSA9IChXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkoV0tOYXZpZ2F0
aW9uUmVzcG9uc2VQb2xpY3lBbGxvdyArIDEpOworc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlvblJl
c3BvbnNlUG9saWN5IF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2FkIFdL
X0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLTmF2aWdhdGlvblJlc3BvbnNlUG9s
aWN5RG93bmxvYWQiLCBtYWNvcygxMC4xMCwgMTIuMCksIGlvcyg4LjAsIDE1LjApKSA9IChXS05h
dmlnYXRpb25SZXNwb25zZVBvbGljeSkoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lBbGxvdyAr
IDEpOwogCiBAcHJvdG9jb2wgV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlIDxXS05hdmlnYXRp
b25EZWxlZ2F0ZT4KIApAQCAtODUsOSArODUsOSBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9u
UmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYQog
LSAoTlNEYXRhICopX3dlYkNyeXB0b01hc3RlcktleUZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXc7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6KE5TVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgKiljaGFsbGVuZ2Ug
c2hvdWxkQWxsb3dMZWdhY3lUTFM6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7Ci0tICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZE5lZ290aWF0ZU1vZGVyblRMU0ZvclVSTDooTlNV
UkwgKil1cmwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTmVnb3RpYXRl
TW9kZXJuVExTRm9yVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjAp
LCBpb3MoMTUuMCkpOwogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNv
bnRleHRNZW51RGlkQ3JlYXRlRG93bmxvYWQ6KFdLRG93bmxvYWQgKilkb3dubG9hZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudURpZENyZWF0ZURvd25sb2Fk
OihXS0Rvd25sb2FkICopZG93bmxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9z
KDE1LjApKTsKIAogLSAodm9pZClfd2ViVmlld0RpZEJlZ2luTmF2aWdhdGlvbkdlc3R1cmU6KFdL
V2ViVmlldyAqKXdlYlZpZXc7CiAvLyBJdGVtIGlzIG5pbCBpZiB0aGUgZ2VzdHVyZSBlbmRlZCB3
aXRob3V0IG5hdmlnYXRpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMuaAppbmRleCA4MzdlMjBiMzdiZDNjZTM4MTA4YThlNThjZTkwMzZm
MDY3ZDI4MzgxLi45ZjYzN2ZjZTk5ZDkxYmE4MTM3MDExY2I2OWQxODFhNmE3Y2I0ZWVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmgK
QEAgLTYyLDcgKzYyLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDgu
MCkpCiAKIC8qISBAYWJzdHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0
ZXh0IGludGVyYWN0aW9uIGlzIGRpc2FibGVkLgogKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBn
ZXR0ZXI9aXNUZXh0SW50ZXJhY3Rpb25FbmFibGVkKSBCT09MIHRleHRJbnRlcmFjdGlvbkVuYWJs
ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNUZXh0SW50ZXJhY3Rpb25FbmFibGVkKSBC
T09MIHRleHRJbnRlcmFjdGlvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDc2NjY5NjAwOGZlMmJi
NGFkM2ZmNjIxM2QyNWIzN2JmZmVkYzJiZDIuLjg2Yzg5OTVkZmE4M2I1OTkzYjg0ZjI0NjljNGUw
MGI1ODdmYjQxNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC01NSw3ICs1NSw3IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS1BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSkgewogICAgIF9X
S1BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobUJlc3RBbGxBcm91bmQsCiAgICAgX1dLUGl0Y2hDb3Jy
ZWN0aW9uQWxnb3JpdGhtQmVzdEZvck11c2ljLAogICAgIF9XS1BpdGNoQ29ycmVjdGlvbkFsZ29y
aXRobUJlc3RGb3JTcGVlY2gsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CiAKIEBjbGFzcyBfV0tFeHBlcmltZW50YWxGZWF0dXJlOwogQGNsYXNzIF9XS0ludGVy
bmFsRGVidWdGZWF0dXJlOwpAQCAtMTY3LDEwICsxNjcsMTAgQEAgdHlwZWRlZiBOU19FTlVNKE5T
SW50ZWdlciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKSB7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkOikgQk9PTCBfcmVx
dWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQp
LCBpb3MoMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2VydmljZVdv
cmtlckVudGl0bGVtZW50RGlzYWJsZWRGb3JUZXN0aW5nOikgQk9PTCBfc2VydmljZVdvcmtlckVu
dGl0bGVtZW50RGlzYWJsZWRGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCks
IGlvcygxNC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBY2Nlc3NpYmls
aXR5SXNvbGF0ZWRUcmVlRW5hYmxlZDopIEJPT0wgX2FjY2Vzc2liaWxpdHlJc29sYXRlZFRyZWVF
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTYpKTsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNwZWVjaFJlY29nbml0aW9uRW5hYmxlZDopIEJPT0wgX3NwZWVjaFJl
Y29nbml0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFbmFibGVkOikgQk9PTCBfcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQaXRjaENvcnJlY3Rpb25BbGdvcml0
aG06KSBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0gX3BpdGNoQ29ycmVjdGlvbkFsZ29yaXRo
bSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFTZXNzaW9uRW5hYmxlZDopIEJP
T0wgX21lZGlhU2Vzc2lvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNw
ZWVjaFJlY29nbml0aW9uRW5hYmxlZDopIEJPT0wgX3NwZWVjaFJlY29nbml0aW9uRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkOikgQk9PTCBf
cHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIu
MCksIGlvcygxNS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQaXRjaENv
cnJlY3Rpb25BbGdvcml0aG06KSBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0gX3BpdGNoQ29y
cmVjdGlvbkFsZ29yaXRobSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFTZXNzaW9uRW5hYmxlZDop
IEJPT0wgX21lZGlhU2Vzc2lvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRXZWJHTEVuYWJsZWQ6KSBCT09MIF93ZWJHTEVuYWJsZWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDM3YTBjY2Y3YWI1
NTA5YmQzODVlZTE3YTg1ZTQ3ZDBiMGM5NTZhOTUuLjk0NTZjNDRhYzM3YWE5YzVkMTY1NDNiNThj
ZDcwNDNkMTk4ZmQ4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC00OCw5ICs0OCw5IEBACiAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9u
ICpfY29uZmlndXJhdGlvbjsKIAotLSAodm9pZClfc2V0QWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRp
ZmljYXRlOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0OihOU1N0cmluZyAqKWhv
c3QgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJzaXRlRGF0YVN0b3Jl
Ll9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46Zm9ySG9zdDoiLCBtYWNvcygxMC4xMCwgV0tfTUFD
X1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldEFsbG93c1NwZWNpZmlj
SFRUUFNDZXJ0aWZpY2F0ZTooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4gZm9ySG9zdDooTlNT
dHJpbmcgKilob3N0IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2Vic2l0
ZURhdGFTdG9yZS5fYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluOmZvckhvc3Q6IiwgbWFjb3MoMTAu
MTAsIDEyLjApLCBpb3MoOC4wLCAxNS4wKSk7CiAtICh2b2lkKV9zZXRDYW5IYW5kbGVIVFRQU1Nl
cnZlclRydXN0RXZhbHVhdGlvbjooQk9PTCl2YWx1ZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5mYXN0U2VydmVyVHJ1
c3RFdmFsdWF0aW9uRW5hYmxlZCIsIG1hY29zKDEwLjExLCAxMC4xNS40KSwgaW9zKDkuMCwgMTMu
NCkpOwotLSAodm9pZClfc2V0Q29va2llQWNjZXB0UG9saWN5OihOU0hUVFBDb29raWVBY2NlcHRQ
b2xpY3kpcG9saWN5IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLSFRUUENv
b2tpZVN0b3JlLl9zZXRDb29raWVBY2NlcHRQb2xpY3k6Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFj
b3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV9z
ZXRDb29raWVBY2NlcHRQb2xpY3k6KE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSlwb2xpY3kgV0tf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tIVFRQQ29va2llU3RvcmUuX3NldENv
b2tpZUFjY2VwdFBvbGljeTpjb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xMCwgMTIuMCks
IGlvcyg4LjAsIDE1LjApKTsKIAogLSAoaWQpX29iamVjdEZvckJ1bmRsZVBhcmFtZXRlcjooTlNT
dHJpbmcgKilwYXJhbWV0ZXI7CiAtICh2b2lkKV9zZXRPYmplY3Q6KGlkIDxOU0NvcHlpbmcsIE5T
U2VjdXJlQ29kaW5nPilvYmplY3QgZm9yQnVuZGxlUGFyYW1ldGVyOihOU1N0cmluZyAqKXBhcmFt
ZXRlcjsKQEAgLTYyLDcgKzYyLDcgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwg
Y29weSkgTlNEaWN0aW9uYXJ5ICpfcGx1Z2luTG9hZENsaWVudFBvbGljaWVzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpKTsKICNlbmRpZgogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgd2Vh
aywgc2V0dGVyPV9zZXREb3dubG9hZERlbGVnYXRlOikgaWQgPF9XS0Rvd25sb2FkRGVsZWdhdGU+
IF9kb3dubG9hZERlbGVnYXRlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldL
RG93bmxvYWQuZG93bmxvYWREZWxlZ2F0ZSIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9z
KDguMCwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1f
c2V0RG93bmxvYWREZWxlZ2F0ZTopIGlkIDxfV0tEb3dubG9hZERlbGVnYXRlPiBfZG93bmxvYWRE
ZWxlZ2F0ZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS0Rvd25sb2FkLmRv
d25sb2FkRGVsZWdhdGUiLCBtYWNvcygxMC4xMCwgMTIuMCksIGlvcyg4LjAsIDE1LjApKTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEF1dG9tYXRpb25EZWxlZ2F0ZTop
IGlkIDxfV0tBdXRvbWF0aW9uRGVsZWdhdGU+IF9hdXRvbWF0aW9uRGVsZWdhdGUgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05F
CkBAIC04MiwxMiArODIsMTIgQEAKIC0gKHZvaWQpX2NsZWFyU3VwcG9ydGVkUGx1Z2lucyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAogLSAodm9pZClfcmVnaXN0
ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0OihOU1N0cmluZyAqKXNjaGVt
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKLS0gKHZvaWQpX3Jl
Z2lzdGVyVVJMU2NoZW1lQXNTZWN1cmU6KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9yZWdpc3Rl
clVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5OihOU1N0cmluZyAqKXNj
aGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwotLSAodm9pZClfc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZTooTlNT
dHJpbmcgKilzY2hlbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmU6KE5TU3RyaW5n
ICopc2NoZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CistICh2
b2lkKV9yZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5OihO
U1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkp
OworLSAodm9pZClfc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZTooTlNT
dHJpbmcgKilzY2hlbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsK
IAotLSAoX1dLRG93bmxvYWQgKilfZG93bmxvYWRVUkxSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKily
ZXF1ZXN0IHdlYnNpdGVEYXRhU3RvcmU6KFdLV2Vic2l0ZURhdGFTdG9yZSAqKWRhdGFTdG9yZSBv
cmlnaW5hdGluZ1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3IF9kb3dubG9hZFJlcXVlc3QiLCBtYWNvcygxMC4x
MCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKLS0gKF9XS0Rvd25sb2FkICop
X3Jlc3VtZURvd25sb2FkRnJvbURhdGE6KE5TRGF0YSAqKXJlc3VtZURhdGEgd2Vic2l0ZURhdGFT
dG9yZTooV0tXZWJzaXRlRGF0YVN0b3JlICopZGF0YVN0b3JlICBwYXRoOihOU1N0cmluZyAqKXBh
dGggb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5yZXN1bWVEb3dubG9hZEZyb21SZXN1bWVE
YXRhOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDgu
MCwgV0tfSU9TX1RCQSkpOworLSAoX1dLRG93bmxvYWQgKilfZG93bmxvYWRVUkxSZXF1ZXN0OihO
U1VSTFJlcXVlc3QgKilyZXF1ZXN0IHdlYnNpdGVEYXRhU3RvcmU6KFdLV2Vic2l0ZURhdGFTdG9y
ZSAqKWRhdGFTdG9yZSBvcmlnaW5hdGluZ1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3IF9kb3dubG9hZFJlcXVl
c3QiLCBtYWNvcygxMC4xMCwgMTIuMCksIGlvcyg4LjAsIDE1LjApKTsKKy0gKF9XS0Rvd25sb2Fk
ICopX3Jlc3VtZURvd25sb2FkRnJvbURhdGE6KE5TRGF0YSAqKXJlc3VtZURhdGEgd2Vic2l0ZURh
dGFTdG9yZTooV0tXZWJzaXRlRGF0YVN0b3JlICopZGF0YVN0b3JlICBwYXRoOihOU1N0cmluZyAq
KXBhdGggb3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5yZXN1bWVEb3dubG9hZEZyb21SZXN1
bWVEYXRhOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEwLCAxMi4wKSwgaW9zKDguMCwg
MTUuMCkpOwogCiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3
ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIHJ1bm5pbmcuCiAtICh2b2lkKV90ZXJtaW5hdGVTZXJ2
aWNlV29ya2VycyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKQEAg
LTEwMiwyMyArMTAyLDIzIEBACiAtIChzaXplX3QpX3dlYlByb2Nlc3NDb3VudElnbm9yaW5nUHJl
d2FybWVkQW5kQ2FjaGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4y
KSk7CiAtIChzaXplX3QpX3BsdWdpblByb2Nlc3NDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAoc2l6ZV90KV9zZXJ2aWNlV29ya2VyUHJvY2Vzc0Nv
dW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotLSAodm9pZClf
c3luY05ldHdvcmtQcm9jZXNzQ29va2llcyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJXS0hUVFBDb29raWVTdG9yZS5fZmx1c2hDb29raWVzVG9EaXNrV2l0aENvbXBsZXRpb25I
YW5kbGVyOiIsIG1hY29zKDEwLjEzLCBXS19NQUNfVEJBKSwgaW9zKDExLjAsIFdLX0lPU19UQkEp
KTsKKy0gKHZvaWQpX3N5bmNOZXR3b3JrUHJvY2Vzc0Nvb2tpZXMgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiV0tIVFRQQ29va2llU3RvcmUuX2ZsdXNoQ29va2llc1RvRGlza1dp
dGhDb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xMywgMTIuMCksIGlvcygxMS4wLCAxNS4w
KSk7CiAtICh2b2lkKV9tYWtlTmV4dFdlYlByb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIC0gKE5TVUludGVnZXIpX21h
eGltdW1TdXNwZW5kZWRQYWdlQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwg
aW9zKDEyLjIpKTsKIC0gKE5TVUludGVnZXIpX3Byb2Nlc3NDYWNoZUNhcGFjaXR5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAtIChOU1VJbnRlZ2VyKV9wcm9j
ZXNzQ2FjaGVTaXplIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwog
LSAodm9pZClfY2xlYXJXZWJQcm9jZXNzQ2FjaGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NS40KSwgaW9zKDEzLjQpKTsKIC0gKHZvaWQpX3NldFVzZVNlcGFyYXRlU2VydmljZVdvcmtlclBy
b2Nlc3M6KEJPT0wpZm9yY2VTZXJ2aWNlV29ya2VyUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwotLSAocGlkX3QpX2dwdVByb2Nlc3NJZGVudGlmaWVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0t
IChCT09MKV9yZXF1ZXN0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uOihwaWRfdClwaWQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHBpZF90KV9n
cHVQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUu
MCkpOworLSAoQk9PTClfcmVxdWVzdFdlYlByb2Nlc3NUZXJtaW5hdGlvbjoocGlkX3QpcGlkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8vIFRlc3Qgb25seS4g
UmV0dXJucyB3ZWIgcHJvY2Vzc2VzIHJ1bm5pbmcgd2ViIHBhZ2VzIChkb2VzIG5vdCBpbmNsdWRl
IHdlYiBwcm9jZXNzZXMgcnVubmluZyBzZXJ2aWNlIHdvcmtlcnMpCiAtIChzaXplX3QpX3dlYlBh
Z2VDb250ZW50UHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgYW55IHdl
YiBjb250ZW50IHByb2Nlc3NlcyBhcmUgbGF1bmNoZWQuCiArICh2b2lkKV9mb3JjZUdhbWVDb250
cm9sbGVyRnJhbWV3b3JrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkp
OwotKyAodm9pZClfc2V0TGlua2VkT25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLSsgKHZvaWQp
X3NldExpbmtlZE9uT3JCZWZvcmVFdmVyeXRoaW5nRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworKyAodm9pZClfc2V0TGlua2Vk
T25PckFmdGVyRXZlcnl0aGluZ0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4w
KSwgaW9zKDE1LjApKTsKKysgKHZvaWQpX3NldExpbmtlZE9uT3JCZWZvcmVFdmVyeXRoaW5nRm9y
VGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAtICh2
b2lkKV9wcmVjb25uZWN0VG9TZXJ2ZXI6KE5TVVJMICopc2VydmVyVVJMIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViVmlldy5fcHJlY29ubmVjdFRvU2VydmVyIiwgbWFj
b3MoMTAuMTMuNCwgMTAuMTUuNCksIGlvcygxMS4zLCAxMy40KSk7CiAKQEAgLTEzMiw3ICsxMzIs
NyBAQAogLSAodm9pZClfc2VlZFJlc291cmNlTG9hZFN0YXRpc3RpY3NGb3JUZXN0aW5nV2l0aEZp
cnN0UGFydHk6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5OihOU1VSTCAqKXRoaXJk
UGFydHlVUkwgc2hvdWxkU2NoZWR1bGVOb3RpZmljYXRpb246KEJPT0wpc2hvdWxkU2NoZWR1bGVO
b3RpZmljYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhh
bmRsZXIgIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CiAtICh2
b2lkKV9nYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzRm9yVGVzdGluZyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogLSAoc2l6ZV90KV9udW1iZXJPZkNvbm5l
Y3RlZEdhbWVwYWRzRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3Mo
MTQuMCkpOwotLSAoc2l6ZV90KV9udW1iZXJPZkNvbm5lY3RlZEhJREdhbWVwYWRzRm9yVGVzdGlu
ZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoc2l6
ZV90KV9udW1iZXJPZkNvbm5lY3RlZEhJREdhbWVwYWRzRm9yVGVzdGluZyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTUuMCkpOwogLSAoc2l6ZV90KV9udW1iZXJPZkNvbm5lY3Rl
ZEdhbWVDb250cm9sbGVyRnJhbWV3b3JrR2FtZXBhZHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAtICh2b2lkKV9zZXRVc2VzT25seUhJREdhbWVw
YWRQcm92aWRlckZvclRlc3Rpbmc6KEJPT0wpdXNlc0hJRFByb3ZpZGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmgKaW5kZXggMTk4MDY4Y2YzNWY2M2JmMGY3
ZWExNjUyNmFiYTY1ZWY1YjYxYmYyMC4uODIwMDNlYTExMDk4ZmE2MGU3YWM3ZTJjZGQyOWVhODYx
NTRjN2NjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGUuaApAQCAtNDksMTMgKzQ5LDEzIEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IFdLUGVybWlzc2lvbkRlY2lzaW9uKSB7CiAgICAgV0tQZXJtaXNzaW9uRGVjaXNpb25Qcm9tcHQs
CiAgICAgV0tQZXJtaXNzaW9uRGVjaXNpb25HcmFudCwKICAgICBXS1Blcm1pc3Npb25EZWNpc2lv
bkRlbnksCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTWVkaWFDYXB0dXJlVHlwZSkgewogICAgIFdLTWVk
aWFDYXB0dXJlVHlwZUNhbWVyYSwKICAgICBXS01lZGlhQ2FwdHVyZVR5cGVNaWNyb3Bob25lLAog
ICAgIFdLTWVkaWFDYXB0dXJlVHlwZUNhbWVyYUFuZE1pY3JvcGhvbmUsCi19IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8qISBBIGNsYXNzIGNvbmZvcm1pbmcg
dG8gdGhlIFdLVUlEZWxlZ2F0ZSBwcm90b2NvbCBwcm92aWRlcyBtZXRob2RzIGZvcgogIHByZXNl
bnRpbmcgbmF0aXZlIFVJIG9uIGJlaGFsZiBvZiBhIHdlYnBhZ2UuCkBAIC0xNDQsMTQgKzE0NCwx
NCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS01lZGlhQ2FwdHVyZVR5cGUpIHsKICBA
cGFyYW0gZGVjaXNpb25IYW5kbGVyIFRoZSBjb21wbGV0aW9uIGhhbmRsZXIgdG8gY2FsbCBvbmNl
IHRoZSBkZWNpc2lvbiBpcyBtYWRlCiAgQGRpc2N1c3Npb24gSWYgbm90IGltcGxlbWVudGVkLCB0
aGUgcmVzdWx0IGlzIHRoZSBzYW1lIGFzIGNhbGxpbmcgdGhlIGRlY2lzaW9uSGFuZGxlciB3aXRo
IFdLUGVybWlzc2lvbkRlY2lzaW9uUHJvbXB0LgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZVBlcm1pc3Npb25Gb3JPcmlnaW46KFdL
U2VjdXJpdHlPcmlnaW4gKilvcmlnaW4gaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilm
cmFtZSB0eXBlOihXS01lZGlhQ2FwdHVyZVR5cGUpdHlwZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQg
KF4pKFdLUGVybWlzc2lvbkRlY2lzaW9uIGRlY2lzaW9uKSlkZWNpc2lvbkhhbmRsZXIgV0tfU1dJ
RlRfQVNZTkNfTkFNRSh3ZWJWaWV3KF86ZGVjaWRlTWVkaWFDYXB0dXJlUGVybWlzc2lvbnNGb3I6
aW5pdGlhdGVkQnk6dHlwZTopKSBXS19TV0lGVF9BU1lOQyg1KSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZCl3ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVQZXJtaXNzaW9uRm9yT3JpZ2luOihX
S1NlY3VyaXR5T3JpZ2luICopb3JpZ2luIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICop
ZnJhbWUgdHlwZTooV0tNZWRpYUNhcHR1cmVUeXBlKXR5cGUgZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShXS1Blcm1pc3Npb25EZWNpc2lvbiBkZWNpc2lvbikpZGVjaXNpb25IYW5kbGVyIFdLX1NX
SUZUX0FTWU5DX05BTUUod2ViVmlldyhfOmRlY2lkZU1lZGlhQ2FwdHVyZVBlcm1pc3Npb25zRm9y
OmluaXRpYXRlZEJ5OnR5cGU6KSkgV0tfU1dJRlRfQVNZTkMoNSkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLyohIEBhYnN0cmFjdCBBbGxvd3MgeW91ciBhcHAg
dG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiBzZWN1cml0eSBvcmlnaW4gc2hv
dWxkIGhhdmUgYWNjZXNzIHRvIHRoZSBkZXZpY2UncyBvcmllbnRhdGlvbiBhbmQgbW90aW9uLgog
IEBwYXJhbSBzZWN1cml0eU9yaWdpbiBUaGUgc2VjdXJpdHkgb3JpZ2luIHdoaWNoIHJlcXVlc3Rl
ZCBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9yaWVudGF0aW9uIGFuZCBtb3Rpb24uCiAgQHBhcmFt
IGZyYW1lIFRoZSBmcmFtZSB0aGF0IGluaXRpYXRlZCB0aGUgcmVxdWVzdC4KICBAcGFyYW0gZGVj
aXNpb25IYW5kbGVyIFRoZSBkZWNpc2lvbiBoYW5kbGVyIHRvIGNhbGwgb25jZSB0aGUgYXBwIGhh
cyBtYWRlIGl0cyBkZWNpc2lvbi4KICAqLwotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHJlcXVlc3REZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvblBlcm1pc3Npb25Gb3JPcmln
aW46KFdLU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4gaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUlu
Zm8gKilmcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLUGVybWlzc2lvbkRlY2lzaW9u
IGRlY2lzaW9uKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RC
QSkpIFdLX0FQSV9VTkFWQUlMQUJMRShtYWNvcyk7CistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkZv
ck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBpbml0aWF0ZWRCeUZyYW1lOihXS0Zy
YW1lSW5mbyAqKWZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tQZXJtaXNzaW9uRGVj
aXNpb24gZGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4w
KSkgV0tfQVBJX1VOQVZBSUxBQkxFKG1hY29zKTsKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0
ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmgKaW5kZXggMjQ2OTkyNTkwMDg0YWUzYzA2NTNjZTA0ZDUxZTJiZjZlZDkyOTE1
OS4uMTgwNTllZGEwNWI3MmE0MmQzNzk1Y2Y3OGVmMTE5Mjc4NGM0YjU5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0
ZS5oCkBAIC0xMDcsNyArMTA3LDcgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3Rh
Rm9yU2VjdXJpdHlPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilzZWN1cml0eU9yaWdpbiBjdXJy
ZW50UXVvdGE6KHVuc2lnbmVkIGxvbmcgbG9uZyljdXJyZW50UXVvdGEgdG90YWxCeXRlc05lZWRl
ZDoodW5zaWduZWQgbG9uZyBsb25nKXRvdGFsQnl0ZXNOZWVkZWQgZGVjaXNpb25IYW5kbGVyOih2
b2lkICheKSh1bnNpZ25lZCBsb25nIGxvbmcgbmV3UXVvdGEpKWRlY2lzaW9uSGFuZGxlcjsKIAog
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFt
ZUhhbmRsZSAqKWZyYW1lOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBw
cmludEZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIHBkZkZpcnN0UGFnZVNpemU6KENHU2l6
ZSlzaXplIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFt
ZUhhbmRsZSAqKWZyYW1lIHBkZkZpcnN0UGFnZVNpemU6KENHU2l6ZSlzaXplIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAtICh2b2lkKV93ZWJWaWV3Q2xvc2U6KFdLV2Vi
VmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKV93ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5s
aW5lOihXS1dlYlZpZXcgKil3ZWJWaWV3OwpAQCAtMTI5LDcgKzEyOSw3IEBAIHN0cnVjdCBVSUVk
Z2VJbnNldHM7CiAtIChXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbilfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvOihpZClk
cmFnZ2luZ0luZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAt
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNyZWF0ZVdlYlZpZXdXaXRoQ29u
ZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gZm9yTmF2
aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiB3aW5k
b3dGZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRvd0ZlYXR1cmVzIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShXS1dlYlZpZXcgKndlYlZpZXcpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJh
bWU6KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGFs
bG93ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBp
b3MoMTEuMykpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0
R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luKilvcmlnaW4g
aW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKFdLUGVybWlzc2lvbkRlY2lzaW9uIGRlY2lzaW9uKSlkZWNpc2lvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xvY2F0aW9uUGVybWlz
c2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiopb3JpZ2luIGluaXRpYXRlZEJ5RnJhbWU6
KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS1Blcm1pc3Np
b25EZWNpc2lvbiBkZWNpc2lvbikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KE5TU3RyaW5nICop
bWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShCT09MIHJlc3VsdCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGVkaXRvclN0YXRlRGlkQ2hhbmdlOihOU0RpY3Rpb25hcnkgKillZGl0
b3JTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwpAQCAt
MTUyLDE5ICsxNTIsMTkgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIAogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyB3aWxsU2hhcmVBY3Rpdml0eUl0ZW1zOihOU0FycmF5ICop
YWN0aXZpdHlJdGVtcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwog
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25Gb3JPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4gZGVj
aXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0U3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uRm9yT3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2luIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAotLSAodm9pZClfd2ViVmlld0Rp
ZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQp
X3dlYlZpZXdEaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbjooV0tXZWJWaWV3ICopd2Vi
VmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAodm9pZClfd2ViVmlld0RpZEVuYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW46KFdLV2Vi
VmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsK
Ky0gKHZvaWQpX3dlYlZpZXdEaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbjooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwog
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0WFJTZXNzaW9uV2l0
aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRYUlNlc3Npb25XaXRoQ29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKGlkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCiAtIChC
T09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0
aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBXS19BUElf
QVZBSUxBQkxFKGlvcyg5LjApKTsKIC0gKE5TQXJyYXkgKilfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBhY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVt
ZW50IGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilkZWZhdWx0
QWN0aW9uczsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTm90SGFu
ZGxlVGFwQXNDbGlja0F0UG9pbnQ6KENHUG9pbnQpcG9pbnQ7Ci0tICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGRpZE5vdEhhbmRsZVRhcEFzTWVhbmluZ2Z1bENsaWNrQXRQb2lu
dDooQ0dQb2ludClwb2ludCBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZE5vdEhhbmRsZVRhcEFzTWVhbmlu
Z2Z1bENsaWNrQXRQb2ludDooQ0dQb2ludClwb2ludCBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4w
KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RHZW9sb2Nh
dGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6KE5TVVJMICopdXJsIGZyYW1lOihXS0ZyYW1lSW5mbyAq
KWZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogLSAoQk9PTClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBmaWxlVXBsb2FkUGFuZWxDb250ZW50SXNNYW5hZ2VkV2l0aElu
aXRpYXRpbmdGcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZTsKIApAQCAtMTkxLDcgKzE5MSw3IEBA
IHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtIChOU0FycmF5ICopX2F0dGFjaG1lbnRMaXN0Rm9yV2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzb3VyY2VJc01hbmFnZWQ6KEJPT0wqKXNvdXJjZUlz
TWFuYWdlZCBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CiAtIChOU1VJbnRlZ2VyKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluZGV4SW50b0F0dGFjaG1lbnRMaXN0Rm9yRWxlbWVu
dDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9z
KDEwLjMpKTsKIC0gKFVJRWRnZUluc2V0cylfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBm
aW5hbE9ic2N1cmVkSW5zZXRzRm9yU2Nyb2xsVmlldzooVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmll
dyB3aXRoVmVsb2NpdHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29udGVudE9mZnNldDooaW5v
dXQgQ0dQb2ludCAqKXRhcmdldENvbnRlbnRPZmZzZXQgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4w
KSk7Ci0tIChVSVZpZXcgKilfY29udGV4dE1lbnVIaW50UHJldmlld0NvbnRhaW5lclZpZXdGb3JX
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19U
QkEpKTsKKy0gKFVJVmlldyAqKV9jb250ZXh0TWVudUhpbnRQcmV2aWV3Q29udGFpbmVyVmlld0Zv
cldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkp
OwogLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHBy
ZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5T
QXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVCgid2ViVmlldzpjb250ZXh0TWVudUNvbmZpZ3VyYXRpb25Gb3JFbGVtZW50OmNvbXBs
ZXRpb25IYW5kbGVyOiIsIGlvcyg5LjAsIDEzLjApKTsKIC0gKFVJVmlld0NvbnRyb2xsZXIgKilf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JBbmlt
YXRlZEltYWdlQXRVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0Vs
ZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50
SW5mbyAqKWVsZW1lbnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdlU2l6ZSBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJWaWV3OmNvbnRleHRNZW51Q29uZmlndXJhdGlv
bkZvckVsZW1lbnQ6Y29tcGxldGlvbkhhbmRsZXI6IiwgaW9zKDkuMCwgMTMuMCkpOwogLSAoVUlW
aWV3Q29udHJvbGxlciAqKV9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKQEAgLTIyMCw3ICsy
MjAsNyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkaWREaXNtaXNzRm9jdXNlZEVsZW1lbnRWaWV3Q29udHJvbGxlcjooVUlWaWV3
Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTIuMCkpOwogLSAo
Qk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBnZXN0dXJlUmVjb2duaXplckNvdWxk
UGluY2g6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplciBXS19BUElfQVZB
SUxBQkxFKGlvcygxMy4wKSk7CiAKLS0gKEJPT0wpX3dlYlZpZXdDYW5CZWNvbWVGb2N1c2VkOihX
S1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0g
KEJPT0wpX3dlYlZpZXdDYW5CZWNvbWVGb2N1c2VkOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDE1LjApKTsKIAogI2Vsc2UgLy8gIVRBUkdFVF9PU19JUEhPTkUKIApA
QCAtMjU2LDE5ICsyNTYsMTkgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKICAgICBwcm92aWRlIGEg
Y3VzdG9tIF9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb24gdGhhdCBzaG91bGQgYmUgdXNlZCB3aGVu
IGNyZWF0aW5nIHRoZSBXZWIgSW5zcGVjdG9yLgogICAgIEBwYXJhbSBpbnNwZWN0b3IgVGhlIFdl
YiBJbnNwZWN0b3IgaW5zdGFuY2UgdGhhdCBpcyBhYm91dCB0byBiZSBpbml0aWFsaXplZC4KICAq
LwotLSAoX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbiAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNvbmZpZ3VyYXRpb25Gb3JMb2NhbEluc3BlY3RvcjooX1dLSW5zcGVjdG9yICopaW5z
cGVjdG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworLSAoX1dLSW5zcGVj
dG9yQ29uZmlndXJhdGlvbiAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbmZpZ3Vy
YXRpb25Gb3JMb2NhbEluc3BlY3RvcjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCkpOwogCiAvKiEgQGFic3RyYWN0IENhbGxlZCB3aGVuIGEgV2Vi
IEluc3BlY3RvciBpbnN0YW5jZSBpcyBhdHRhY2hlZCB0byB0aGlzIFdLV2ViVmlldy4gVGhpcyBp
cyBub3QgY2FsbGVkIGluIHRoZSBjYXNlIG9mIHJlbW90ZSBpbnNwZWN0aW9uLgogICAgIEBwYXJh
bSB3ZWJWaWV3IFRoZSBXS1dlYlZpZXcgaW5zdGFuY2UgYmVpbmcgaW5zcGVjdGVkLgogICAgIEBw
YXJhbSBpbnNwZWN0b3IgVGhlIFdlYiBJbnNwZWN0b3IgaW5zdGFuY2UgYXR0YWNoZWQgdG8gdGhp
cyBXS1dlYlZpZXcuCiAgKi8KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
ZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3I6KF9XS0luc3BlY3RvciAqKWluc3BlY3RvciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3I6KF9XS0luc3BlY3RvciAqKWluc3Bl
Y3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApKTsKIAogLyohIEBhYnN0cmFjdCBDYWxs
ZWQgYmVmb3JlIGNsb3NpbmcgdGhlIFdlYiBJbnNwZWN0b3IgaW5zdGFuY2UgZm9yIHRoaXMgV0tX
ZWJWaWV3LiBUaGlzIGlzIG5vdCBjYWxsZWQgaW4gdGhlIGNhc2Ugb2YgcmVtb3RlIGluc3BlY3Rp
b24uCiAgICAgQHBhcmFtIHdlYlZpZXcgVGhlIFdLV2ViVmlldyBpbnN0YW5jZSBiZWluZyBpbnNw
ZWN0ZWQuCiAgICAgQHBhcmFtIGluc3BlY3RvciBUaGUgV2ViIEluc3BlY3RvciBpbnN0YW5jZSBi
ZWluZyBjbG9zZWQuCiAgKi8KLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
d2lsbENsb3NlTG9jYWxJbnNwZWN0b3I6KF9XS0luc3BlY3RvciAqKWluc3BlY3RvciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgd2lsbENsb3NlTG9jYWxJbnNwZWN0b3I6KF9XS0luc3BlY3RvciAqKWluc3Bl
Y3RvciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApKTsKIAogI2VuZGlmIC8vICFUQVJHRVRf
T1NfSVBIT05FCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oCmluZGV4IDZkNWE1ODEzNzhjMzU5YWE1N2Q0
ZDNjOGZjM2VmNjdmYzcxMmFjNzIuLjEyYTVlOWRhOWVjM2E2ZDBlMTc3NmMyZDA1MjcwM2RhZDFi
NTIwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VS
TFNjaGVtZVRhc2tQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVVJMU2NoZW1lVGFza1ByaXZhdGUuaApAQCAtNDMsNyArNDMsNyBAQCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRo
cm93biBpZiB5b3UgbWFrZSBhbnkgb3RoZXIgY2FsbGJhY2tzIHRvIHRoZSBXS1VSTFNjaGVtZVRh
c2sgd2hpbGUgdGhpcyBjb21wbGV0aW9uSGFuZGxlciBpcyBwZW5kaW5nLCBvdGhlciB0aGFuIGRp
ZEZhaWxXaXRoRXJyb3I6LgogIEFuIGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93biBpZiB5b3VyIGFw
cCBoYXMgYmVlbiB0b2xkIHRvIHN0b3AgbG9hZGluZyB0aGlzIHRhc2sgdmlhIHRoZSByZWdpc3Rl
cmVkIFdLVVJMU2NoZW1lSGFuZGxlciBvYmplY3QuCiAgKi8KLS0gKHZvaWQpX3dpbGxQZXJmb3Jt
UmVkaXJlY3Rpb246KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZSBuZXdSZXF1ZXN0OihOU1VSTFJl
cXVlc3QgKilyZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFJlcXVlc3Qg
KikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dpbGxQZXJmb3JtUmVkaXJlY3Rpb246KE5TVVJM
UmVzcG9uc2UgKilyZXNwb25zZSBuZXdSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFJlcXVlc3QgKikpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX2Rp
ZFBlcmZvcm1SZWRpcmVjdGlvbjooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlIG5ld1JlcXVlc3Q6
KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Q7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgQk9PTCBfcmVxdWVzdE9ubHlJZkNhY2hlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1
KSwgaW9zKDEzLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcuaAppbmRleCA2ZTQzYjhhNTU3YjFmNzJkYmIwZjQwOWM1YWM0OGJiZTA0YTFlY2E4Li44
Y2QzMWMzOGM2MDA5NmM3N2MwYmE3YmEyOTZhNjA4NDlmYzFkMTBiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCkBAIC02NiwxMyArNjYsMTMgQEAg
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tNZWRpYVBsYXliYWNrU3RhdGUpIHsKICAgICBX
S01lZGlhUGxheWJhY2tTdGF0ZVBsYXlpbmcsCiAgICAgV0tNZWRpYVBsYXliYWNrU3RhdGVQYXVz
ZWQsCiAgICAgV0tNZWRpYVBsYXliYWNrU3RhdGVTdXNwZW5kZWQKLX0gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
V0tNZWRpYUNhcHR1cmVTdGF0ZSkgewogICAgIFdLTWVkaWFDYXB0dXJlU3RhdGVOb25lLAogICAg
IFdLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmUsCiAgICAgV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVk
LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAvKiEgQGFi
c3RyYWN0IEEgY29weSBvZiB0aGUgY29uZmlndXJhdGlvbiB3aXRoIHdoaWNoIHRoZSB3ZWIgdmll
dyB3YXMKICBpbml0aWFsaXplZC4gKi8KQEAgLTM0MiwyNyArMzQyLDI3IEBAIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIFdLTWVkaWFDYXB0dXJlU3RhdGUpIHsKIC8qISBAYWJzdHJhY3QgQ2xv
c2VzIGFsbCBvdXQtb2Ytd2luZG93IG1lZGlhIHByZXNlbnRhdGlvbnMgaW4gYSBXS1dlYlZpZXcu
CiAgQGRpc2N1c3Npb24gSW5jbHVkZXMgcGljdHVyZS1pbi1waWN0dXJlIGFuZCBmdWxsc2NyZWVu
LgogICovCi0tICh2b2lkKWNsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zV2l0aENvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheX051bGxhYmxlKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClj
bG9zZUFsbE1lZGlhUHJlc2VudGF0aW9uc1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXl9O
dWxsYWJsZSkodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
Mi4wKSwgaW9zKDE1LjApKTsKICNpZm5kZWYgX19zd2lmdF9fCi0tICh2b2lkKWNsb3NlQWxsTWVk
aWFQcmVzZW50YXRpb25zOih2b2lkICheX051bGxhYmxlKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJjbG9zZUFsbE1lZGlhUHJlc2Vu
dGF0aW9uc1dpdGhDb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNvcygxMS4zLCBXS19NQUNfVEJBKSwg
aW9zKDE0LjUsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpY2xvc2VBbGxNZWRpYVByZXNlbnRhdGlv
bnM6KHZvaWQgKF5fTnVsbGFibGUpKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoImNsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zV2l0aENv
bXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDExLjMsIDEyLjApLCBpb3MoMTQuNSwgMTUuMCkpOwog
I2VuZGlmCiAKIC8qISBAYWJzdHJhY3QgUGF1c2VzIG1lZGlhIHBsYXliYWNrIGluIFdLV2ViVmll
dy4KICBAZGlzY3Vzc2lvbiBQYXVzZXMgbWVkaWEgcGxheWJhY2suIE1lZGlhIGluIHRoZSBwYWdl
IGNhbiBiZSByZXN0YXJ0ZWQgYnkgY2FsbGluZyBwbGF5KCkgb24gYSBtZWRpYSBlbGVtZW50IG9y
IHJlc3VtZSgpIG9uIGFuIEF1ZGlvQ29udGV4dCBpbiBKYXZhU2NyaXB0LiBBIHVzZXIgY2FuIGFs
c28gdXNlIG1lZGlhIGNvbnRyb2xzIHRvIHBsYXkgbWVkaWEgY29udGVudCBhZnRlciBpdCBoYXMg
YmVlbiBwYXVzZWQuCiAgKi8KLS0gKHZvaWQpcGF1c2VBbGxNZWRpYVBsYXliYWNrV2l0aENvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheX051bGxhYmxlKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
dm9pZClwYXVzZUFsbE1lZGlhUGxheWJhY2tXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF5f
TnVsbGFibGUpKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTIuMCksIGlvcygxNS4wKSk7CiAjaWZuZGVmIF9fc3dpZnRfXwotLSAodm9pZClwYXVzZUFsbE1l
ZGlhUGxheWJhY2s6KHZvaWQgKF5fTnVsbGFibGUpKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoInBhdXNlQWxsTWVkaWFQbGF5YmFja1dp
dGhDb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNvcygxMS4zLCBXS19NQUNfVEJBKSwgaW9zKDE0LjUs
IFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpcGF1c2VBbGxNZWRpYVBsYXliYWNrOih2b2lkICheX051
bGxhYmxlKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKCJwYXVzZUFsbE1lZGlhUGxheWJhY2tXaXRoQ29tcGxldGlvbkhhbmRsZXI6Iiwg
bWFjb3MoMTEuMywgMTIuMCksIGlvcygxNC41LCAxNS4wKSk7CiAjZW5kaWYKIAogLyohIEBhYnN0
cmFjdCBTdXNwZW5kcyBvciByZXN1bWVzIGFsbCBtZWRpYSBwbGF5YmFjayBpbiBXS1dlYlZpZXcu
CiAgIEBwYXJhbSBzdXNwZW5kZWQgV2hldGhlciBtZWRpYSBwbGF5YmFjayBzaG91bGQgYmUgc3Vz
cGVuZGVkIG9yIHJlc3VtZWQuCiAgIEBkaXNjdXNzaW9uIElmIHN1c3BlbmRlZCBpcyB0cnVlLCB0
aGlzIHBhdXNlcyBtZWRpYSBwbGF5YmFjayBhbmQgYmxvY2tzIGFsbCBhdHRlbXB0cyBieSB0aGUg
cGFnZSBvciB0aGUgdXNlciB0byByZXN1bWUgdW50aWwgc2V0QWxsTWVkaWFQbGF5YmFja1N1c3Bl
bmRlZCBpcyBjYWxsZWQgYWdhaW4gd2l0aCBzdXNwZW5kZWQgc2V0IHRvIGZhbHNlLiBNZWRpYSBw
bGF5YmFjayBzaG91bGQgYWx3YXlzIGJlIHN1c3BlbmRlZCBhbmQgcmVzdW1lZCBpbiBwYWlycy4K
ICovCi0tICh2b2lkKXNldEFsbE1lZGlhUGxheWJhY2tTdXNwZW5kZWQ6KEJPT0wpc3VzcGVuZGVk
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheX051bGxhYmxlKSh2b2lkKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAodm9pZClzZXRBbGxNZWRpYVBsYXliYWNrU3VzcGVuZGVkOihCT09MKXN1c3BlbmRlZCBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXl9OdWxsYWJsZSkodm9pZCkpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKICNpZm5kZWYgX19z
d2lmdF9fCi0tICh2b2lkKXJlc3VtZUFsbE1lZGlhUGxheWJhY2s6KHZvaWQgKF4gX051bGxhYmxl
KSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJzZXRBbGxNZWRpYVBsYXliYWNrU3VzcGVuZGVkOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1h
Y29zKDExLjMsIFdLX01BQ19UQkEpLCBpb3MoMTQuNSwgV0tfSU9TX1RCQSkpOwotLSAodm9pZClz
dXNwZW5kQWxsTWVkaWFQbGF5YmFjazoodm9pZCAoXl9OdWxsYWJsZSkodm9pZCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgic2V0QWxsTWVkaWFQ
bGF5YmFja1N1c3BlbmRlZDpjb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNvcygxMS4zLCBXS19NQUNf
VEJBKSwgaW9zKDE0LjUsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpcmVzdW1lQWxsTWVkaWFQbGF5
YmFjazoodm9pZCAoXiBfTnVsbGFibGUpKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoInNldEFsbE1lZGlhUGxheWJhY2tTdXNwZW5kZWQ6
Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3MoMTEuMywgMTIuMCksIGlvcygxNC41LCAxNS4wKSk7
CistICh2b2lkKXN1c3BlbmRBbGxNZWRpYVBsYXliYWNrOih2b2lkICheX051bGxhYmxlKSh2b2lk
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJz
ZXRBbGxNZWRpYVBsYXliYWNrU3VzcGVuZGVkOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEx
LjMsIDEyLjApLCBpb3MoMTQuNSwgMTUuMCkpOwogI2VuZGlmCiAKIC8qISBAYWJzdHJhY3QgR2V0
IHRoZSBjdXJyZW50IG1lZGlhIHBsYXliYWNrIHN0YXRlIG9mIGEgV0tXZWJWaWV3LgpAQCAtMzcy
LDIyICszNzIsMjIgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tNZWRpYUNhcHR1cmVT
dGF0ZSkgewogIElmIG5vIG1lZGlhIHBsYXliYWNrIGV4aXN0cyBpbiB0aGUgY3VycmVudCBXS1dl
YlZpZXcsIFdLTWVkaWFQbGF5YmFja1N0YXRlIHdpbGwgZXF1YWwKICBXS01lZGlhUGxheWJhY2tT
dGF0ZU5vbmUuCiAgKi8KLS0gKHZvaWQpcmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZVdpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tNZWRpYVBsYXliYWNrU3RhdGUpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKXJlcXVlc3RNZWRpYVBsYXliYWNrU3RhdGVXaXRoQ29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKFdLTWVkaWFQbGF5YmFja1N0YXRlKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogI2lmbmRlZiBfX3N3aWZ0X18K
LS0gKHZvaWQpcmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZToodm9pZCAoXikoV0tNZWRpYVBsYXli
YWNrU3RhdGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoInJlcXVlc3RNZWRpYVBsYXliYWNrU3RhdGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6Iiwg
bWFjb3MoMTEuMywgV0tfTUFDX1RCQSksIGlvcygxNC41LCBXS19JT1NfVEJBKSk7CistICh2b2lk
KXJlcXVlc3RNZWRpYVBsYXliYWNrU3RhdGU6KHZvaWQgKF4pKFdLTWVkaWFQbGF5YmFja1N0YXRl
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJy
ZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlV2l0aENvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEx
LjMsIDEyLjApLCBpb3MoMTQuNSwgMTUuMCkpOwogI2VuZGlmCiAKIC8qISBAYWJzdHJhY3QgVGhl
IHN0YXRlIG9mIGNhbWVyYSBjYXB0dXJlIG9uIGEgd2ViIHBhZ2UuCiAgQGRpc2N1c3Npb24gQGxp
bmsgV0tXZWJWaWV3IEAvbGluayBpcyBrZXktdmFsdWUgb2JzZXJ2aW5nIChLVk8pIGNvbXBsaWFu
dAogIGZvciB0aGlzIHByb3BlcnR5LgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIFdLTWVkaWFDYXB0dXJlU3RhdGUgY2FtZXJhQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIFdLTWVkaWFDYXB0dXJlU3RhdGUgY2FtZXJhQ2FwdHVyZVN0YXRlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8qISBAYWJzdHJhY3Qg
VGhlIHN0YXRlIG9mIG1pY3JvcGhvbmUgY2FwdHVyZSBvbiBhIHdlYiBwYWdlLgogIEBkaXNjdXNz
aW9uIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsgaXMga2V5LXZhbHVlIG9ic2VydmluZyAoS1ZPKSBj
b21wbGlhbnQKICBmb3IgdGhpcyBwcm9wZXJ0eS4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBXS01lZGlhQ2FwdHVyZVN0YXRlIG1pY3JvcGhvbmVDYXB0dXJlU3RhdGUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tNZWRpYUNhcHR1cmVTdGF0ZSBtaWNyb3Bob25l
Q2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAK
IC8qISBAYWJzdHJhY3QgU2V0IGNhbWVyYSBjYXB0dXJlIHN0YXRlIG9mIGEgV0tXZWJWaWV3Lgog
IEBwYXJhbSBzdGF0ZSBTdGF0ZSB0byBhcHBseSBmb3IgY2FwdHVyZS4KQEAgLTM5Nyw3ICszOTcs
NyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS01lZGlhQ2FwdHVyZVN0YXRlKSB7CiAg
SWYgdmFsdWUgaXMgV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkLCBhbnkgYWN0aXZlIGNhbWVyYSBj
YXB0dXJlIHdpbGwgYmVjb21lIG11dGVkLgogIElmIHZhbHVlIGlzIFdLTWVkaWFDYXB0dXJlU3Rh
dGVBY3RpdmUsIGFueSBtdXRlZCBjYW1lcmEgY2FwdHVyZSB3aWxsIGJlY29tZSBhY3RpdmUuCiAg
Ki8KLS0gKHZvaWQpc2V0Q2FtZXJhQ2FwdHVyZVN0YXRlOihXS01lZGlhQ2FwdHVyZVN0YXRlKXN0
YXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheX051bGxhYmxlKSh2b2lkKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZClzZXRDYW1lcmFDYXB0dXJlU3RhdGU6KFdLTWVkaWFDYXB0dXJlU3RhdGUp
c3RhdGUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF5fTnVsbGFibGUpKHZvaWQpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8q
ISBAYWJzdHJhY3QgU2V0IG1pY3JvcGhvbmUgY2FwdHVyZSBzdGF0ZSBvZiBhIFdLV2ViVmlldy4K
ICBAcGFyYW0gc3RhdGUgc3RhdGUgdG8gYXBwbHkgZm9yIGNhcHR1cmUuCkBAIC00MDcsNyArNDA3
LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tNZWRpYUNhcHR1cmVTdGF0ZSkgewog
IElmIHZhbHVlIGlzIFdLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZCwgYW55IGFjdGl2ZSBtaWNyb3Bo
b25lIGNhcHR1cmUgd2lsbCBiZWNvbWUgbXV0ZWQuCiAgSWYgdmFsdWUgaXMgV0tNZWRpYUNhcHR1
cmVTdGF0ZUFjdGl2ZSwgYW55IG11dGVkIG1pY3JvcGhvbmUgY2FwdHVyZSB3aWxsIGJlY29tZSBh
Y3RpdmUuCiAgKi8KLS0gKHZvaWQpc2V0TWljcm9waG9uZUNhcHR1cmVTdGF0ZTooV0tNZWRpYUNh
cHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXl9OdWxsYWJsZSkodm9p
ZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpc2V0TWljcm9waG9uZUNhcHR1cmVTdGF0ZTooV0tN
ZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXl9OdWxsYWJs
ZSkodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKIAogLyohIEBhYnN0cmFjdCBHZXQgYSBzbmFwc2hvdCBmb3IgdGhlIHZpc2li
bGUgdmlld3BvcnQgb2YgV0tXZWJWaWV3LgogIEBwYXJhbSBzbmFwc2hvdENvbmZpZ3VyYXRpb24g
QW4gb2JqZWN0IHRoYXQgc3BlY2lmaWVzIGhvdyB0aGUgc25hcHNob3QgaXMgY29uZmlndXJlZC4K
QEAgLTUxMiwxNCArNTEyLDE0IEBAIFRoZSB1bmlmb3JtIHR5cGUgaWRlbnRpZmllciBrVVRUeXBl
V2ViQXJjaGl2ZSBjYW4gYmUgdXNlZCBnZXQgdGhlIHJlbGF0ZWQgcGFzdGViCiAgQHBhcmFtIGNv
bXBsZXRpb25IYW5kbGVyIEEgYmxvY2sgY2FsbGVkIHdoZW4gdGhlIGRvd25sb2FkIGhhcyBzdGFy
dGVkLgogIEBkaXNjdXNzaW9uIFRoZSBkb3dubG9hZCBuZWVkcyBpdHMgZGVsZWdhdGUgdG8gYmUg
c2V0IGluIHRoZSBjb21wbGV0aW9uSGFuZGxlciATdG8gcmVjZWl2ZSB1cGRhdGVzIGFib3V0IGl0
cyBwcm9ncmVzcy4KICAqLwotLSAodm9pZClzdGFydERvd25sb2FkVXNpbmdSZXF1ZXN0OihOU1VS
TFJlcXVlc3QgKilyZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKFdLRG93bmxvYWQg
KikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpc3RhcnREb3dubG9hZFVzaW5nUmVxdWVzdDooTlNV
UkxSZXF1ZXN0ICopcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShXS0Rvd25sb2Fk
ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CiAKIC8qIEBhYnN0cmFjdCBSZXN1bWVzIGEgZG93bmxvYWQgdGhhdCBmYWlsZWQgb3Ig
d2FzIGNhbmNlbGVkLgogIEBwYXJhbSByZXN1bWVEYXRhIERhdGEgZnJvbSBhIFdLRG93bmxvYWRE
ZWxlZ2F0ZSdzIGRpZEZhaWxXaXRoRXJyb3Igb3IgYSBXS0Rvd25sb2FkJ3MgY2FuY2VsIGNvbXBs
ZXRpb25IYW5kbGVyLgogIEBwYXJhbSBjb21wbGV0aW9uSGFuZGxlciBBIGJsb2NrIGNhbGxlZCB3
aGVuIHRoZSBkb3dubG9hZCBoYXMgcmVzdW1lZC4KICBAZGlzY3Vzc2lvbiBUaGUgZG93bmxvYWQg
bmVlZHMgaXRzIGRlbGVnYXRlIHRvIGJlIHNldCBpbiB0aGUgY29tcGxldGlvbkhhbmRsZXIgdG8g
cmVjZWl2ZSB1cGRhdGVzIGFib3V0IGl0cyBwcm9ncmVzcy4KICAqLwotLSAodm9pZClyZXN1bWVE
b3dubG9hZEZyb21SZXN1bWVEYXRhOihOU0RhdGEgKilyZXN1bWVEYXRhIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkKF4pKFdLRG93bmxvYWQgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpcmVzdW1l
RG93bmxvYWRGcm9tUmVzdW1lRGF0YTooTlNEYXRhICopcmVzdW1lRGF0YSBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKShXS0Rvd25sb2FkICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8qIEBhYnN0cmFjdCBUaGUgbWVkaWEg
dHlwZSBmb3IgdGhlIFdLV2ViVmlldwogIEBkaXNjdXNzaW9uIFRoZSB2YWx1ZSBvZiBtZWRpYVR5
cGUgd2lsbCBvdmVycmlkZSB0aGUgbm9ybWFsIHZhbHVlIG9mIHRoZSBDU1MgbWVkaWEgcHJvcGVy
dHkuCkBAIC01MzIsNyArNTMyLDcgQEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5
cGVXZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKICBAZGlzY3Vz
c2lvbiBUaGUgaW50ZXJhY3Rpb24gc3RhdGUgKGJhY2stZm9yd2FyZCBsaXN0LCBjdXJyZW50bHkg
bG9hZGVkIHBhZ2UsIHNjcm9sbCBwb3NpdGlvbiwgZm9ybSBkYXRhLi4uKSBmb3IgdGhlIFdLV2Vi
Vmlldywgd2hpY2gKICBjYW4gYmUgcmV0cmlldmVkIGFuZCBzZXQgb24gYW5vdGhlciBXS1dlYlZp
ZXcgdG8gcmVzdG9yZSBzdGF0ZS4KICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUs
IGNvcHkpIGlkIGludGVyYWN0aW9uU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwg
Y29weSkgaWQgaW50ZXJhY3Rpb25TdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBp
b3MoMTUuMCkpOwogCiAvKiEgQGFic3RyYWN0IFNldHMgdGhlIHdlYnBhZ2UgY29udGVudHMgZnJv
bSB0aGUgcGFzc2VkIGRhdGEgYXMgaWYgaXQgd2FzIHRoZQogIHJlc3BvbnNlIHRvIHRoZSBzdXBw
bGllZCByZXF1ZXN0LiBUaGUgcmVxdWVzdCBpcyBuZXZlciBhY3R1YWxseSBzZW50IHRvIHRoZQpA
QCAtNTQ0LDggKzU0NCw4IEBAIFRoZSB1bmlmb3JtIHR5cGUgaWRlbnRpZmllciBrVVRUeXBlV2Vi
QXJjaGl2ZSBjYW4gYmUgdXNlZCBnZXQgdGhlIHJlbGF0ZWQgcGFzdGViCiAgQHBhcmFtIGRhdGEg
VGhlIGRhdGEgdG8gdXNlIGFzIHRoZSBjb250ZW50cyBvZiB0aGUgd2VicGFnZS4KICBAcmVzdWx0
IEEgbmV3IG5hdmlnYXRpb24uCiAqLwotLSAoV0tOYXZpZ2F0aW9uICopbG9hZFNpbXVsYXRlZFJl
cXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgcmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKily
ZXNwb25zZSByZXNwb25zZURhdGE6KE5TRGF0YSAqKWRhdGEgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKFdLTmF2aWdhdGlvbiAqKWxvYWRT
aW11bGF0ZWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IHdpdGhSZXNwb25zZTooTlNV
UkxSZXNwb25zZSAqKXJlc3BvbnNlIHJlc3BvbnNlRGF0YTooTlNEYXRhICopZGF0YSBXS19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJsb2FkU2ltdWxhdGVkUmVxdWVzdDpyZXNwb25z
ZTpyZXNwb25zZURhdGE6IiwgbWFjb3MoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBLCBXS19JT1NfVEJBKSk7CistIChXS05hdmlnYXRpb24gKilsb2FkU2ltdWxhdGVkUmVx
dWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCByZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJl
c3BvbnNlIHJlc3BvbnNlRGF0YTooTlNEYXRhICopZGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpOworLSAoV0tOYXZpZ2F0aW9uICopbG9hZFNpbXVsYXRlZFJlcXVl
c3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qgd2l0aFJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICop
cmVzcG9uc2UgcmVzcG9uc2VEYXRhOihOU0RhdGEgKilkYXRhIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoImxvYWRTaW11bGF0ZWRSZXF1ZXN0OnJlc3BvbnNlOnJlc3BvbnNlRGF0
YToiLCBtYWNvcygxMi4wLCAxMi4wKSwgaW9zKDE1LjAsIDE1LjApKTsKIAogLyohIEBhYnN0cmFj
dCBOYXZpZ2F0ZXMgdG8gdGhlIHJlcXVlc3RlZCBmaWxlIFVSTCBvbiB0aGUgZmlsZXN5c3RlbS4K
ICBAcGFyYW0gcmVxdWVzdCBUaGUgcmVxdWVzdCBzcGVjaWZ5aW5nIHRoZSBmaWxlIFVSTCB0byB3
aGljaCB0byBuYXZpZ2F0ZS4KQEAgLTU1NSw3ICs1NTUsNyBAQCBUaGUgdW5pZm9ybSB0eXBlIGlk
ZW50aWZpZXIga1VUVHlwZVdlYkFyY2hpdmUgY2FuIGJlIHVzZWQgZ2V0IHRoZSByZWxhdGVkIHBh
c3RlYgogIElmIHJlYWRBY2Nlc3NVUkwgcmVmZXJlbmNlcyBhIGRpcmVjdG9yeSwgZmlsZXMgaW5z
aWRlIHRoYXQgZmlsZSBtYXkgYmUgbG9hZGVkIGJ5IFdlYktpdC4KICBAcmVzdWx0IEEgbmV3IG5h
dmlnYXRpb24gZm9yIHRoZSBnaXZlbiBmaWxlIFVSTC4KICovCi0tIChXS05hdmlnYXRpb24gKils
b2FkRmlsZVJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgYWxsb3dpbmdSZWFkQWNjZXNz
VG9VUkw6KE5TVVJMICopcmVhZEFjY2Vzc1VSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoV0tOYXZpZ2F0aW9uICopbG9hZEZpbGVSZXF1
ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IGFsbG93aW5nUmVhZEFjY2Vzc1RvVVJMOihOU1VS
TCAqKXJlYWRBY2Nlc3NVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjAp
KTsKIAogLyohIEBhYnN0cmFjdCBTZXRzIHRoZSB3ZWJwYWdlIGNvbnRlbnRzIGZyb20gdGhlIHBh
c3NlZCBIVE1MIHN0cmluZyBhcyBpZiBpdCB3YXMKICB0aGUgcmVzcG9uc2UgdG8gdGhlIHN1cHBs
aWVkIHJlcXVlc3QuIFRoZSByZXF1ZXN0IGlzIG5ldmVyIGFjdHVhbGx5IHNlbnQgdG8gdGhlCkBA
IC01NjYsOCArNTY2LDggQEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5cGVXZWJB
cmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKICBAcGFyYW0gc3RyaW5n
IFRoZSBkYXRhIHRvIHVzZSBhcyB0aGUgY29udGVudHMgb2YgdGhlIHdlYnBhZ2UuCiAgQHJlc3Vs
dCBBIG5ldyBuYXZpZ2F0aW9uLgogKi8KLS0gKFdLTmF2aWdhdGlvbiAqKWxvYWRTaW11bGF0ZWRS
ZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IHJlc3BvbnNlSFRNTFN0cmluZzooTlNTdHJp
bmcgKilzdHJpbmcgTlNfU1dJRlRfTkFNRShsb2FkU2ltdWxhdGVkUmVxdWVzdChfOnJlc3BvbnNl
SFRNTDopKSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwotLSAoV0tOYXZpZ2F0aW9uICopbG9hZFNpbXVsYXRlZFJlcXVlc3Q6KE5TVVJMUmVxdWVz
dCAqKXJlcXVlc3Qgd2l0aFJlc3BvbnNlSFRNTFN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgTlNf
U1dJRlRfTkFNRShsb2FkU2ltdWxhdGVkUmVxdWVzdChfOndpdGhSZXNwb25zZUhUTUw6KSkgV0tf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgibG9hZFNpbXVsYXRlZFJlcXVlc3Q6cmVz
cG9uc2VIVE1MU3RyaW5nOiIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSwgV0tfSU9TX1RCQSkpOworLSAoV0tOYXZpZ2F0aW9uICopbG9hZFNpbXVsYXRlZFJl
cXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgcmVzcG9uc2VIVE1MU3RyaW5nOihOU1N0cmlu
ZyAqKXN0cmluZyBOU19TV0lGVF9OQU1FKGxvYWRTaW11bGF0ZWRSZXF1ZXN0KF86cmVzcG9uc2VI
VE1MOikpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CistIChXS05h
dmlnYXRpb24gKilsb2FkU2ltdWxhdGVkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCB3
aXRoUmVzcG9uc2VIVE1MU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBOU19TV0lGVF9OQU1FKGxv
YWRTaW11bGF0ZWRSZXF1ZXN0KF86d2l0aFJlc3BvbnNlSFRNTDopKSBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJsb2FkU2ltdWxhdGVkUmVxdWVzdDpyZXNwb25zZUhUTUxTdHJp
bmc6IiwgbWFjb3MoMTIuMCwgMTIuMCksIGlvcygxNS4wLCAxNS4wKSk7CiAKICNpZiAhVEFSR0VU
X09TX0lQSE9ORQogLyogQGFic3RyYWN0IFJldHVybnMgYW4gTlNQcmludE9wZXJhdGlvbiBvYmpl
Y3QgY29uZmlndXJlZCB0byBwcmludCB0aGUgY29udGVudHMgb2YgdGhpcyBXS1dlYlZpZXcKQEAg
LTU4Nyw5ICs1ODcsOSBAQCBUaGUgdW5pZm9ybSB0eXBlIGlkZW50aWZpZXIga1VUVHlwZVdlYkFy
Y2hpdmUgY2FuIGJlIHVzZWQgZ2V0IHRoZSByZWxhdGVkIHBhc3RlYgogIHByb3BlcnR5LgogICov
CiAjaWYgVEFSR0VUX09TX0lQSE9ORQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBu
dWxsYWJsZSkgVUlDb2xvciAqdGhlbWVDb2xvciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlKSBVSUNvbG9y
ICp0aGVtZUNvbG9yIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDE1LjApKTsKICNlbHNlCi1AcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlKSBOU0NvbG9yICp0aGVtZUNvbG9yIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBudWxsYWJsZSkgTlNDb2xvciAqdGhlbWVDb2xvciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApKTsKICNlbmRpZgogCiAvKiEgQGFic3RyYWN0IFRoZSBjb2xvciBkcmF3biBi
ZWhpbmQgdGhlIGFjdGl2ZSBwYWdlLgpAQCAtNjAxLDkgKzYwMSw5IEBAIFRoZSB1bmlmb3JtIHR5
cGUgaWRlbnRpZmllciBrVVRUeXBlV2ViQXJjaGl2ZSBjYW4gYmUgdXNlZCBnZXQgdGhlIHJlbGF0
ZWQgcGFzdGViCiAgQGxpbmsgV0tXZWJWaWV3IEAvbGluayBpcyBrZXktdmFsdWUgb2JzZXJ2aW5n
IChLVk8pIGNvbXBsaWFudCBmb3IgdGhpcyBwcm9wZXJ0eS4KICAqLwogI2lmIFRBUkdFVF9PU19J
UEhPTkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsX3Jlc2V0dGFibGUsIGNvcHkpIFVJQ29s
b3IgKnVuZGVyUGFnZUJhY2tncm91bmRDb2xvciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbF9yZXNldHRhYmxlLCBjb3B5KSBVSUNv
bG9yICp1bmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkp
OwogI2Vsc2UKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsX3Jlc2V0dGFibGUsIGNvcHkpIE5T
Q29sb3IgKnVuZGVyUGFnZUJhY2tncm91bmRDb2xvciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsX3Jlc2V0dGFibGUsIGNvcHkp
IE5TQ29sb3IgKnVuZGVyUGFnZUJhY2tncm91bmRDb2xvciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApKTsKICNlbmRpZgogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAppbmRleCA5NmY5YTBi
MWRkMWRkZDI3M2IxMDY4NTIxNTgxYjliZThmOWI1YzNmLi41OTJhODJkM2U5ZDAzNzFjNDgwNTQw
NjI3MmE1MmMzODdhNThkMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgKQEAgLTEzMSw3ICsxMzEs
NyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIC8qISBAYWJz
dHJhY3QgQSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciBIVFRQIHJlcXVlc3RzIHRv
IHNlcnZlcnMga25vd24gdG8gc3VwcG9ydCBIVFRQUyBzaG91bGQgYmUgYXV0b21hdGljYWxseSB1
cGdyYWRlZCB0byBIVFRQUyByZXF1ZXN0cy4KICBAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2YWx1
ZSBpcyBZRVMuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHVwZ3JhZGVLbm93bkhv
c3RzVG9IVFRQUyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdXBncmFkZUtub3duSG9zdHNUb0hU
VFBTIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBlcyBtZWRpYVR5cGVzUmVxdWlyaW5n
VXNlckFjdGlvbkZvclBsYXliYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCmluZGV4IDBhMmRjOGNi
YTY1NTM2ZGEyOTRhOGQ0YmE3NGEyMGZjYTdmNTI5YWUuLmFjZjVjMDJjNzQ4ZTcxMGFhOGFiMGFh
OTBiZGEzNmIzMWQ0OTM4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBA
IC03OSw4ICs3OSw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERl
bGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZWZlcnJhYmxlVXNlclNj
cmlwdHNTaG91bGRXYWl0VW50aWxOb3RpZmljYXRpb246KSBCT09MIF9kZWZlcnJhYmxlVXNlclNj
cmlwdHNTaG91bGRXYWl0VW50aWxOb3RpZmljYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldENyb3Nz
T3JpZ2luQWNjZXNzQ29udHJvbENoZWNrRW5hYmxlZDopIEJPT0wgX2Nyb3NzT3JpZ2luQWNjZXNz
Q29udHJvbENoZWNrRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQu
MCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2Fkc0Zyb21OZXR3b3Jr
OikgQk9PTCBfbG9hZHNGcm9tTmV0d29yayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJfYWxsb3dlZE5ldHdvcmtIb3N0cyIsIG1hY29zKDExLjAsIFdLX01BQ19UQkEpLCBpb3Mo
MTQuMCwgV0tfSU9TX1RCQSkpOwotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1f
c2V0QWxsb3dlZE5ldHdvcmtIb3N0czopIE5TU2V0PE5TU3RyaW5nICo+ICpfYWxsb3dlZE5ldHdv
cmtIb3N0cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG9hZHNGcm9tTmV0d29yazop
IEJPT0wgX2xvYWRzRnJvbU5ldHdvcmsgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiX2FsbG93ZWROZXR3b3JrSG9zdHMiLCBtYWNvcygxMS4wLCAxMi4wKSwgaW9zKDE0LjAsIDE1
LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldEFsbG93ZWROZXR3
b3JrSG9zdHM6KSBOU1NldDxOU1N0cmluZyAqPiAqX2FsbG93ZWROZXR3b3JrSG9zdHMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldExvYWRzU3VicmVzb3VyY2VzOikgQk9PTCBfbG9hZHNTdWJyZXNvdXJjZXMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldElnbm9yZXNBcHBCb3VuZERvbWFpbnM6KSBCT09MIF9pZ25vcmVz
QXBwQm91bmREb21haW5zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7
CiAKQEAgLTk4LDcgKzk4LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdM
aWZ0RGVsYXkpIHsKICNlbHNlCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG93
c1VSTHNJblRvb2xUaXBzOikgQk9PTCBfc2hvd3NVUkxzSW5Ub29sVGlwcyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEyKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2
aWNlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfc2VydmljZUNvbnRyb2xzRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRJbWFnZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX2ltYWdlQ29udHJvbHNFbmFibGVkIFdLX0FQ
SV9ERVBSRUNBVEVEKCJJbWFnZSBjb250cm9scyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1h
Y29zKDEwLjEyLCBXS19NQUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRJbWFnZUNvbnRyb2xzRW5hYmxlZDopIEJPT0wgX2ltYWdlQ29udHJvbHNFbmFibGVkIFdLX0FQ
SV9ERVBSRUNBVEVEKCJJbWFnZSBjb250cm9scyBhcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZCIsIG1h
Y29zKDEwLjEyLCAxMi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0
ZXI9X3NldFJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXI6KSBCT09M
IF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJvbHNNYW5hZ2VyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNl
dHRlcj1fc2V0Q1BVTGltaXQ6KSBkb3VibGUgX2NwdUxpbWl0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9z
ZXRQYWdlR3JvdXA6KSBXS1BhZ2VHcm91cFJlZiBfcGFnZUdyb3VwIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCkpOwpAQCAtMTEzLDcgKzExMyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJ
bnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRMZWdhY3lFbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQ6KSBCT09MIF9sZWdhY3lFbmNyeXB0
ZWRNZWRpYUFQSUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4w
KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd01lZGlhQ29udGVudFR5
cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0QXNGYWxsYmFjazopIEJPT0wgX2FsbG93TWVkaWFD
b250ZW50VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRBc0ZhbGxiYWNrIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRNZWRpYUNhcHR1cmVFbmFibGVkOikgQk9PTCBfbWVkaWFDYXB0dXJlRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFDYXB0dXJlRW5hYmxlZDopIEJP
T0wgX21lZGlhQ2FwdHVyZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9z
KDE1LjApKTsKIAogLy8gVGhlIGlucHV0IG9mIHRoaXMgU1BJIGlzIGFuIGFycmF5IG9mIGltYWdl
IFVUSSAoVW5pZm9ybSBUeXBlIElkZW50aWZpZXIpLgogQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHksIHNldHRlcj1fc2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXM6KSBOU0FycmF5PE5T
U3RyaW5nICo+ICpfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKQEAgLTEyMiwxNSArMTIyLDE1IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzop
IEJPT0wgX3Nob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRQcm9jZXNzRGlzcGxheU5hbWU6KSBOU1N0cmluZyAqX3Byb2Nlc3NEaXNwbGF5TmFtZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRBcHBIaWdobGlnaHRzRW5hYmxlZDopIEJPT0wgX2FwcEhpZ2hs
aWdodHNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBcHBIaWdobGlnaHRz
RW5hYmxlZDopIEJPT0wgX2FwcEhpZ2hsaWdodHNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8vIFRoZSBtYXhpbXVtIExhYiBjb2xvciBkaWZmZXJl
bmNlIGFsbG93ZWQgYmV0d2VlbiB0d28gY29uc2VjdXRpdmUgcGFnZSB0b3Agc25hcHNob3RzLgog
Ly8gRXhwZWN0cyAwIChkaXNhYmxlcyBwYWdlIHRvcCBjb2xvciBzYW1wbGluZyBlbnRpcmVseSkg
b3IgYW55IHBvc2l0aXZlIG51bWJlci4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFNhbXBsZWRQYWdlVG9wQ29sb3JNYXhEaWZmZXJlbmNlOikgZG91YmxlIF9zYW1wbGVkUGFnZVRv
cENvbG9yTWF4RGlmZmVyZW5jZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2FtcGxl
ZFBhZ2VUb3BDb2xvck1heERpZmZlcmVuY2U6KSBkb3VibGUgX3NhbXBsZWRQYWdlVG9wQ29sb3JN
YXhEaWZmZXJlbmNlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAK
IC8vIEhvdyBmYXIgZG93biB0aGUgcGFnZSB0aGUgc2FtcGxlZCBwYWdlIHRvcCBjb2xvciBuZWVk
cyB0byBleHRlbmQgaW4gb3JkZXIgdG8gYmUgY29uc2lkZXJlZCB2YWxpZC4KIC8vIEV4cGVjdHMg
MCAodGhlIGNvbG9yIGRvZXNuJ3QgbmVlZCB0byBjb250aW51ZSBpbnRvIHRoZSBwYWdlIGF0IGFs
bCkgb3IgYW55IHBvc2l0aXZlIG51bWJlci4KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFNhbXBsZWRQYWdlVG9wQ29sb3JNaW5IZWlnaHQ6KSBkb3VibGUgX3NhbXBsZWRQYWdlVG9w
Q29sb3JNaW5IZWlnaHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNhbXBsZWRQYWdl
VG9wQ29sb3JNaW5IZWlnaHQ6KSBkb3VibGUgX3NhbXBsZWRQYWdlVG9wQ29sb3JNaW5IZWlnaHQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLy8gQXR0cmlidXRl
cyBuZXR3b3JrIGFjdGl2aXR5IGZyb20gdGhpcyBXS1dlYlZpZXcgdG8gdGhlIGFwcCB3aXRoIHRo
aXMgYnVuZGxlLgogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXI6KSBOU1N0cmluZyAqX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOwpA
QCAtMTQxLDcgKzE0MSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlm
dERlbGF5KSB7CiAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAoV0tQcml2YXRl
RGVwcmVjYXRlZCkKIAotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEludGVy
YWN0aW9uR2VzdHVyZXNFbmFibGVkOikgQk9PTCBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFi
bGVkIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLUHJlZmVyZW5jZXMudGV4
dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIiwgaW9zKDEyLjAsIFdLX0lPU19UQkEpKTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5h
YmxlZDopIEJPT0wgX3RleHRJbnRlcmFjdGlvbkdlc3R1cmVzRW5hYmxlZCBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1ByZWZlcmVuY2VzLnRleHRJbnRlcmFjdGlvbkdlc3R1
cmVzRW5hYmxlZCIsIGlvcygxMi4wLCAxNS4wKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggNGZk
ZDc4ZDhjNjJkYzE1ZTY3YTAyNmZjZjY3MDYyYzEwZWJjYTg0Mi4uMmUzZTk0NmZmNzA0NjBmMjY2
M2E2ODE1Mjg1ZDY3OWE1MWM2YjkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC03Miw3ICs3Miw3IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpIHsK
ICAgICBfV0tTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5Tm90QWxsb3csCiAgICAgX1dLU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeUFsbG93LAogICAgIF9XS1Nob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3lBbGxvd0V4dGVybmFsU2NoZW1lc0J1dE5vdEFwcExpbmtzLAotfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9O
RQogCkBAIC0xNTYsNyArMTU2LDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9X
S1JlY3RFZGdlKSB7CiAtICh2b2lkKV9sb2FkQWx0ZXJuYXRlSFRNTFN0cmluZzooTlNTdHJpbmcg
KilzdHJpbmcgYmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIGZvclVucmVhY2hhYmxlVVJMOihOU1VS
TCAqKXVucmVhY2hhYmxlVVJMOwogLSAoV0tOYXZpZ2F0aW9uICopX2xvYWREYXRhOihOU0RhdGEg
KilkYXRhIE1JTUVUeXBlOihOU1N0cmluZyAqKU1JTUVUeXBlIGNoYXJhY3RlckVuY29kaW5nTmFt
ZTooTlNTdHJpbmcgKiljaGFyYWN0ZXJFbmNvZGluZ05hbWUgYmFzZVVSTDooTlNVUkwgKiliYXNl
VVJMIHVzZXJEYXRhOihpZCl1c2VyRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwg
aW9zKDEwLjApKTsKIC0gKFdLTmF2aWdhdGlvbiAqKV9sb2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0
ICopcmVxdWVzdCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzOihCT09MKXNob3VsZE9wZW5FeHRlcm5h
bFVSTHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7Ci0tIChXS05h
dmlnYXRpb24gKilfbG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qgc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeTooX1dLU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSlzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistIChXS05hdmlnYXRpb24gKilfbG9hZFJlcXVlc3Q6KE5T
VVJMUmVxdWVzdCAqKXJlcXVlc3Qgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTooX1dLU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSlzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgTlNBcnJheSAqX2NlcnRpZmljYXRlQ2hhaW4gV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiY2VydGlmaWNhdGVDaGFpbiIsIG1hY29zKDEwLjEwLCAx
MC4xMSksIGlvcyg4LjAsIDkuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBO
U1VSTCAqX2NvbW1pdHRlZFVSTDsKQEAgLTE5Miw3ICsxOTIsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0
eS4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWxsb3dzUmVtb3RlSW5zcGVj
dGlvbjopIEJPT0wgX2FsbG93c1JlbW90ZUluc3BlY3Rpb247CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSwgc2V0dGVyPV9zZXRSZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlOikgTlNTdHJp
bmcgKl9yZW1vdGVJbnNwZWN0aW9uTmFtZU92ZXJyaWRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTIpLCBpb3MoMTAuMCkpOwotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09M
IF9pc0JlaW5nSW5zcGVjdGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX2lz
QmVpbmdJbnNwZWN0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLSW5zcGVjdG9yICpfaW5zcGVjdG9y
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLRnJhbWVIYW5kbGUgKl9tYWluRnJhbWUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKQEAgLTIyMSw3ICsyMjEsNyBA
QCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQpX2V2YWx1YXRlSmF2YVNjcmlwdDooTlNTdHJp
bmcgKilqYXZhU2NyaXB0U3RyaW5nIHdpdGhTb3VyY2VVUkw6KE5TVVJMICopc291cmNlVVJMIGlu
RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxk
ICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNFcnJvciAq
IGVycm9yKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBp
b3MoMTQuMCkpOwogLSAodm9pZClfY2FsbEFzeW5jSmF2YVNjcmlwdDooTlNTdHJpbmcgKilmdW5j
dGlvbkJvZHkgYXJndW1lbnRzOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopYXJndW1l
bnRzIGluRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgaW5Db250ZW50V29ybGQ6KFdLQ29udGVu
dFdvcmxkICopY29udGVudFdvcmxkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShpZCwgTlNF
cnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEu
MCksIGlvcygxNC4wKSk7CiAKLS0gKEJPT0wpX2FsbE1lZGlhUHJlc2VudGF0aW9uc0Nsb3NlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
Qk9PTClfYWxsTWVkaWFQcmVzZW50YXRpb25zQ2xvc2VkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTIuMCksIGlvcygxNS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExh
eW91dE1vZGU6KSBfV0tMYXlvdXRNb2RlIF9sYXlvdXRNb2RlOwogLy8gRm9yIHVzZSB3aXRoIF9s
YXlvdXRNb2RlID0gX1dLTGF5b3V0TW9kZUZpeGVkU2l6ZToKQEAgLTI0NCw3ICsyNDQsNyBAQCBm
b3IgdGhpcyBwcm9wZXJ0eS4KIAogLSAodm9pZClfc2ltdWxhdGVEZXZpY2VPcmllbnRhdGlvbkNo
YW5nZVdpdGhBbHBoYTooZG91YmxlKWFscGhhIGJldGE6KGRvdWJsZSliZXRhIGdhbW1hOihkb3Vi
bGUpZ2FtbWEgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAot
KyAoQk9PTClfd2lsbFVwZ3JhZGVUb0hUVFBTOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworKyAoQk9PTClfd2lsbFVwZ3Jh
ZGVUb0hUVFBTOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpOwogCiArIChCT09MKV9oYW5kbGVzU2FmZUJyb3dzaW5nIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiArIChOU1VSTCAqKV9jb25maXJtTWFsd2FyZVNl
bnRpbmVsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CkBAIC0z
NTAsNyArMzUwLDcgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2b2lkKV9jbG9zZUFsbE1lZGlh
UHJlc2VudGF0aW9uczsKIAogLSAodm9pZClfdGFrZVBERlNuYXBzaG90V2l0aENvbmZpZ3VyYXRp
b246KFdLU25hcHNob3RDb25maWd1cmF0aW9uICopc25hcHNob3RDb25maWd1cmF0aW9uIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKnBkZlNuYXBzaG90RGF0YSwgTlNFcnJvciAq
ZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCks
IGlvcygxMy40KSk7Ci0tICh2b2lkKV9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTooX1dLRnJh
bWVIYW5kbGUgKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShDR1NpemUpKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistICh2b2lkKV9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTooX1dLRnJhbWVI
YW5kbGUgKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShDR1NpemUpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC0g
KHZvaWQpX2dldFByb2Nlc3NEaXNwbGF5TmFtZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoTlNTdHJpbmcgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKIApAQCAtMzYxLDQwICszNjEsNDAgQEAgZm9yIHRoaXMgcHJvcGVy
dHkuCiAKIC0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2U6KSBCT09MIF9jYW5Vc2VD
cmVkZW50aWFsU3RvcmFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q2FuVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2U6KSBCT09MIF9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCi0tICh2b2lkKV9kaWRFbmFibGVCcm93
c2VyRXh0ZW5zaW9uczooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIE5TU3RyaW5nICo+ICopZXh0
ZW5zaW9uSURUb05hbWVNYXAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX2RpZERpc2FibGVCcm93c2VyRXh0ZW5zaW9uczooTlNT
ZXQ8TlNTdHJpbmcgKj4gKilleHRlbnNpb25JRHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2RpZEVuYWJsZUJyb3dzZXJFeHRl
bnNpb25zOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKilleHRlbnNpb25J
RFRvTmFtZU1hcCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAo
dm9pZClfZGlkRGlzYWJsZUJyb3dzZXJFeHRlbnNpb25zOihOU1NldDxOU1N0cmluZyAqPiAqKWV4
dGVuc2lvbklEcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCi1A
cHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVyPV9zZXRBcHBIaWdobGlnaHREZWxlZ2F0
ZTopIGlkIDxfV0tBcHBIaWdobGlnaHREZWxlZ2F0ZT4gX2FwcEhpZ2hsaWdodERlbGVnYXRlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2
b2lkKV9yZXN0b3JlQXBwSGlnaGxpZ2h0czooTlNBcnJheTxOU0RhdGEgKj4gKiloaWdobGlnaHRz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0t
ICh2b2lkKV9yZXN0b3JlQW5kU2Nyb2xsVG9BcHBIaWdobGlnaHQ6KE5TRGF0YSAqKWhpZ2hsaWdo
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwot
LSAodm9pZClfYWRkQXBwSGlnaGxpZ2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9hZGRBcHBIaWdobGlnaHRJbk5ld0dyb3Vw
OihCT09MKW5ld0dyb3VwIG9yaWdpbmF0ZWRJbkFwcDooQk9PTClvcmlnaW5hdGVkSW5BcHAgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEFwcEhpZ2hsaWdodERlbGVnYXRlOikg
aWQgPF9XS0FwcEhpZ2hsaWdodERlbGVnYXRlPiBfYXBwSGlnaGxpZ2h0RGVsZWdhdGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX3Jlc3RvcmVBcHBI
aWdobGlnaHRzOihOU0FycmF5PE5TRGF0YSAqPiAqKWhpZ2hsaWdodHMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX3Jlc3RvcmVBbmRTY3JvbGxUb0Fw
cEhpZ2hsaWdodDooTlNEYXRhICopaGlnaGxpZ2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIu
MCksIGlvcygxNS4wKSk7CistICh2b2lkKV9hZGRBcHBIaWdobGlnaHQgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX2FkZEFwcEhpZ2hsaWdodEluTmV3
R3JvdXA6KEJPT0wpbmV3R3JvdXAgb3JpZ2luYXRlZEluQXBwOihCT09MKW9yaWdpbmF0ZWRJbkFw
cCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAvLyBGSVhNRTog
UmVtb3ZlIG9sZCBgLVtXS1dlYlZpZXcgX3RoZW1lQ29sb3JdYCBTUEkgPHJkYXI6Ly83NjY2MjY0
ND4KICNpZiBUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IFVJQ29sb3IgKl90aGVtZUNvbG9yIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
InRoZW1lQ29sb3IiLCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBVSUNvbG9yICpfdGhlbWVDb2xvciBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJ0aGVtZUNvbG9yIiwgaW9zKDE1LjAsIDE1LjApKTsKICNlbHNl
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQ29sb3IgKl90aGVtZUNvbG9yIFdL
X0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoInRoZW1lQ29sb3IiLCBtYWNvcyhXS19N
QUNfVEJBLCBXS19NQUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
Q29sb3IgKl90aGVtZUNvbG9yIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoInRo
ZW1lQ29sb3IiLCBtYWNvcygxMi4wLCAxMi4wKSk7CiAjZW5kaWYKIAogLy8gRklYTUU6IFJlbW92
ZSBvbGQgYC1bV0tXZWJWaWV3IF9wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3JdYCBTUEkgPHJk
YXI6Ly83Nzc4OTczMj4KICNpZiBUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIFVJQ29sb3IgKl9wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgidW5kZXJQYWdlQmFja2dyb3VuZENvbG9yIiwg
aW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgVUlDb2xvciAqX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvciBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ1bmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IiLCBpb3MoMTUu
MCwgMTUuMCkpOwogI2Vsc2UKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNDb2xv
ciAqX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKCJ1bmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3IiLCBtYWNvcygxMC4xMCwgV0tfTUFD
X1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0NvbG9yICpfcGFnZUV4
dGVuZGVkQmFja2dyb3VuZENvbG9yIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
InVuZGVyUGFnZUJhY2tncm91bmRDb2xvciIsIG1hY29zKDEwLjEwLCAxMi4wKSk7CiAjZW5kaWYK
IAogLy8gT25seSBzZXQgaWYgYC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfc2FtcGxlZFBhZ2VU
b3BDb2xvck1heERpZmZlcmVuY2VdYCBpcyBhIHBvc2l0aXZlIG51bWJlci4KICNpZiBUQVJHRVRf
T1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJQ29sb3IgKl9zYW1w
bGVkUGFnZVRvcENvbG9yIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlDb2xvciAqX3NhbXBsZWRQYWdlVG9wQ29sb3Ig
V0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkpOwogI2Vsc2UKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgTlNDb2xvciAqX3NhbXBsZWRQYWdlVG9wQ29sb3IgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
Q29sb3IgKl9zYW1wbGVkUGFnZVRvcENvbG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCkp
OwogI2VuZGlmCiAKLS0gKHZvaWQpX2dyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcygxNC4wKSk7Ci0tICh2b2lkKV9yZXZva2VB
Y2Nlc3NUb0Fzc2V0U2VydmljZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKDE0LjApKTsKKy0gKHZvaWQpX2dyYW50QWNjZXNzVG9Bc3NldFNlcnZpY2VzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNC4wKSk7CistICh2b2lkKV9yZXZva2VBY2Nlc3NU
b0Fzc2V0U2VydmljZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE0LjApKTsK
IAogLyohIEBhYnN0cmFjdCBJZiB0aGUgV0tXZWJWaWV3IHdhcyBjcmVhdGVkIHdpdGggX3Nob3Vs
ZEFsbG93VXNlckluc3RhbGxlZEZvbnRzID0gTk8sCiAgdGhlIHdlYiBwcm9jZXNzIHdpbGwgYXV0
b21hdGljYWxseSB1c2UgYW4gaW4tcHJvY2VzcyBmb250IHJlZ2lzdHJ5LCBhbmQgaXRzIHNhbmRi
b3gKQEAgLTQwNCwxNCArNDA0LDE0IEBAIGZvciB0aGlzIHByb3BlcnR5LgogIG1ldGhvZCByZXBy
ZXNlbnRzIGEgb25lLXRpbWUsIHdlYi1wcm9jZXNzLXdpZGUgc3dpdGNoIGZyb20gdXNpbmcgdGhl
IGluLXByb2Nlc3MKICBmb250IHJlZ2lzdHJ5IHRvIHVzaW5nIGZvbnRkLCBpbmNsdWRpbmcgZ3Jh
bnRpbmcgdGhlIHJlbGV2YW50IHNhbmRib3ggZXh0ZW5zaW9uLgogKi8KLS0gKHZvaWQpX3N3aXRj
aEZyb21TdGF0aWNGb250UmVnaXN0cnlUb1VzZXJGb250UmVnaXN0cnkgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSk7CistICh2b2lkKV9zd2l0Y2hGcm9tU3RhdGljRm9udFJlZ2lz
dHJ5VG9Vc2VyRm9udFJlZ2lzdHJ5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCkpOwogCi0t
ICh2b2lkKV9hcHBCb3VuZE5hdmlnYXRpb25EYXRhRm9yRG9tYWluOihOU1N0cmluZyAqKWRvbWFp
biBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiBjb250ZXh0KSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworLSAodm9pZClfYXBwQm91bmROYXZpZ2F0aW9uRGF0YUZvckRvbWFpbjooTlNTdHJp
bmcgKilkb21haW4gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICogY29udGV4
dCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1
LjApKTsKIC0gKHZvaWQpX2RpZExvYWRBcHBCb3VuZFJlcXVlc3Q6KHZvaWQgKF4pKEJPT0wgcmVz
dWx0KSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpX2RpZExvYWROb25BcHBCb3VuZFJlcXVl
c3Q6KHZvaWQgKF4pKEJPT0wgcmVzdWx0KSljb21wbGV0aW9uSGFuZGxlcjsKIAotLSAodm9pZClf
c3VzcGVuZFBhZ2U6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9yZXN1
bWVQYWdlOih2b2lkICheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc3VzcGVuZFBh
Z2U6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CistICh2b2lkKV9yZXN1bWVQYWdlOih2b2lkICheKShCT09M
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUu
MCkpOwogCiBAZW5kCiAKQEAgLTQyMCw3ICs0MjAsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIEBp
bnRlcmZhY2UgV0tXZWJWaWV3IChXS1ByaXZhdGVJT1MpCiAKICNpZiAhVEFSR0VUX09TX1RWICYm
ICFUQVJHRVRfT1NfV0FUQ0gKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3Nl
dFVJRXZlbnRBdHRyaWJ1dGlvbjopIFVJRXZlbnRBdHRyaWJ1dGlvbiAqX3VpRXZlbnRBdHRyaWJ1
dGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSwgc2V0dGVyPV9zZXRVSUV2ZW50QXR0cmlidXRpb246KSBVSUV2ZW50QXR0cmli
dXRpb24gKl91aUV2ZW50QXR0cmlidXRpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkpOwog
I2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dSZWN0IF9jb250ZW50
VmlzaWJsZVJlY3QgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmcuaAppbmRleCA1MWZjMDRhMzI2YmY4Y2YzMzEzNjE2OTQxZmE4MDU0ODVlNGIzNWUy
Li5jMzA1ZmFmNDNkNDUxNzQ0ZDIyNzE1NzNlZmU5OTg0NDE1NjRlYmE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZUZvclRlc3RpbmcuaApAQCAtNTgsNyArNTgsNyBAQCBzdHJ1Y3QgV0tBcHBCb3VuZE5hdmln
YXRpb25UZXN0aW5nRGF0YSB7CiAtICh2b2lkKV9kaXNhYmxlQmFja0ZvcndhcmRTbmFwc2hvdFZv
bGF0aWxpdHlGb3JUZXN0aW5nOwogCiAtICh2b2lkKV9kZW55TmV4dFVzZXJNZWRpYVJlcXVlc3Q7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYUNhcHR1cmVSZXBvcnRpbmdE
ZWxheUZvclRlc3Rpbmc6KSBkb3VibGUgX21lZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5Rm9yVGVz
dGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TWVkaWFDYXB0dXJlUmVwb3J0aW5n
RGVsYXlGb3JUZXN0aW5nOikgZG91YmxlIF9tZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheUZvclRl
c3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJs
ZWQ7CiAKIC0gKEJPT0wpX2JlZ2luQmFja1N3aXBlRm9yVGVzdGluZzsKQEAgLTk1LDEyICs5NSwx
MiBAQCBzdHJ1Y3QgV0tBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YSB7CiAKIC0gKHZvaWQp
X2RvQWZ0ZXJBY3Rpdml0eVN0YXRlVXBkYXRlOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFu
ZGxlcjsKIAotLSAoTlNOdW1iZXIgKilfc3VzcGVuZE1lZGlhUGxheWJhY2tDb3VudGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChOU051
bWJlciAqKV9zdXNwZW5kTWVkaWFQbGF5YmFja0NvdW50ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKIAotLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZzooQk9PTClvdmVycmlkZVRpbWVyIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc6KE5TVVJMICop
c291cmNlVVJMIGRlc3RpbmF0aW9uVVJMOihOU1VSTCAqKWRlc3RpbmF0aW9uVVJMIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5n
OihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOwotLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRva2Vu
U2lnbmF0dXJlVVJMRm9yVGVzdGluZzooTlNVUkwgKil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldFByaXZhdGVDbGlja01lYXN1
cmVtZW50T3ZlcnJpZGVUaW1lckZvclRlc3Rpbmc6KEJPT0wpb3ZlcnJpZGVUaW1lciBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBdHRyaWJ1dGlvblJlcG9ydFVSTHNGb3JUZXN0aW5nOihOU1VSTCAqKXNvdXJjZVVS
TCBkZXN0aW5hdGlvblVSTDooTlNVUkwgKilkZXN0aW5hdGlvblVSTCBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpOworLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRB
dHRyaWJ1dGlvblRva2VuUHVibGljS2V5VVJMRm9yVGVzdGluZzooTlNVUkwgKil1cmwgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX3NldFByaXZhdGVDbGlja01l
YXN1cmVtZW50QXR0cmlidXRpb25Ub2tlblNpZ25hdHVyZVVSTEZvclRlc3Rpbmc6KE5TVVJMICop
dXJsIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC0gKHZvaWQpX2xhc3RO
YXZpZ2F0aW9uV2FzQXBwQm91bmQ6KHZvaWQoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXI7CiAt
ICh2b2lkKV9hcHBCb3VuZE5hdmlnYXRpb25EYXRhOih2b2lkKF4pKHN0cnVjdCBXS0FwcEJvdW5k
TmF2aWdhdGlvblRlc3RpbmdEYXRhIGRhdGEpKWNvbXBsZXRpb25IYW5kbGVyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmRQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVJlY29yZFByaXZhdGUuaAppbmRleCA2NTMyMTVlN2MwNmM2N2U3NjM0NjRkNmE3NWVlNTBkODk0
NzA0ZTY2Li5kNjA3ZGZlMTNmNjEyYjU4MjIwZTVhMzUyNTc3NDcwNTMxZWU0OTA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29y
ZFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVJlY29yZFByaXZhdGUuaApAQCAtMzUsNyArMzUsNyBAQCBXS19FWFRFUk4gTlNTdHJp
bmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVTZWFyY2hGaWVsZFJlY2VudFNlYXJjaGVzIFdL
X0FQSV9BVgogV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUmVz
b3VyY2VMb2FkU3RhdGlzdGljcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEw
LjApKTsKIFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUNyZWRl
bnRpYWxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogV0tfRVhU
RVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQWRDbGlja0F0dHJpYnV0aW9u
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKLVdLX0VYVEVSTiBO
U1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVByaXZhdGVDbGlja01lYXN1cmVtZW50
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBX
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVBbHRlcm5hdGl2ZVNl
cnZpY2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKICNpZiAh
VEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggNmQ5ODE2N2Qy
NTEwYWJhODhhYTZjNGQ5NzVhN2I5ZTVlZTU1YjgxYi4uNTVkNTJhNDg1NDgxNjc2NzBhZWVhZTg3
ZTEzYzk5ZGEyN2ZhOGY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC02MSw4ICs2
MSw4IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3Jl
RmV0Y2hPcHRpb25zKSB7CiAKIC0gKHZvaWQpX3NldFJlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0
aW5nQ2FsbGJhY2s6KG51bGxhYmxlIHZvaWQgKF4pKFdLV2Vic2l0ZURhdGFTdG9yZSAqLCBOU1N0
cmluZyAqKSljYWxsYmFjayBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjAp
KTsKIC0gKHZvaWQpX2dldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRm9yOihXS1dlYlZpZXcgKil3
ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PE5TU3RyaW5nICo+ICpk
b21haW5zKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwg
aW9zKDEyLjApKTsKLS0gKHZvaWQpX2xvYWRlZFN1YnJlc291cmNlRG9tYWluc0ZvcjooV0tXZWJW
aWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJheTxOU1N0cmlu
ZyAqPiAqZG9tYWlucykpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX2NsZWFyTG9hZGVkU3VicmVz
b3VyY2VEb21haW5zRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9sb2FkZWRTdWJyZXNv
dXJjZURvbWFpbnNGb3I6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4gKmRvbWFpbnMpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CistICh2b2lkKV9jbGVhckxv
YWRlZFN1YnJlc291cmNlRG9tYWluc0ZvcjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogKyAodm9pZClfYWxsb3dXZWJzaXRlRGF0
YVJlY29yZHNGb3JBbGxPcmlnaW5zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7CiAtIChib29sKV9oYXNSZWdpc3RlcmVkU2VydmljZVdvcmtlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIApAQCAtNzMsMzMgKzczLDMzIEBAIHR5
cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRp
b25zKSB7CiAtICh2b2lkKV9nZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnk6KHZv
aWQgKF4pKE5TQXJyYXk8X1dLUmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHkgKj4gKikp
Y29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEz
LjQpKTsKIC0gKHZvaWQpX2NsZWFyUHJldmFsZW50RG9tYWluOihOU1VSTCAqKWRvbWFpbiBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKIC0gKHZvaWQpX2NsZWFyUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljczoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKLS0gKHZvaWQpX2lzUmVsYXRp
b25zaGlwT25seUluRGF0YWJhc2VPbmNlOihOU1VSTCAqKWZpcnN0UGFydHlVUkwgdGhpcmRQYXJ0
eTooTlNVUkwgKil0aGlyZFBhcnR5VVJMIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShCT09M
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfaXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9u
Y2U6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBhcnR5OihOU1VSTCAqKXRoaXJkUGFydHlV
UkwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9pc1JlZ2lz
dGVyZWRBc1N1YnJlc291cmNlVW5kZXJGaXJzdFBhcnR5OihOU1VSTCAqKWZpcnN0UGFydHlVUkwg
dGhpcmRQYXJ0eTooTlNVUkwgKil0aGlyZFBhcnR5VVJMIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShCT09MKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1
LjQpLCBpb3MoMTMuNCkpOwogLSAodm9pZClfc2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZTooQk9PTCllbmFibGVkIG9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbjooQk9PTClv
bmx5T25TaXRlc1dpdGhvdXRVc2VySW50ZXJhY3Rpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCks
IGlvcygxNC4wKSk7CiAtICh2b2lkKV9zdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXM6KHZv
aWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEu
MCksIGlvcygxNC4wKSk7Ci0tICh2b2lkKV9zdGF0aXN0aWNzRGF0YWJhc2VDb2x1bW5zRm9yVGFi
bGU6KE5TU3RyaW5nICopdGFibGUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8
TlNTdHJpbmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3N0YXRpc3RpY3NEYXRhYmFz
ZUNvbHVtbnNGb3JUYWJsZTooTlNTdHJpbmcgKil0YWJsZSBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZClfcHJvY2Vzc1N0YXRpc3Rp
Y3NBbmREYXRhUmVjb3Jkczoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiAtICh2b2lkKV9hcHBCb3VuZERv
bWFpbnM6KHZvaWQgKF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4gKikpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIC0gKHZvaWQpX2FwcEJv
dW5kU2NoZW1lczoodm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCi0tICh2b2lk
KV9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUNoYWluIGZv
ckhvc3Q6KE5TU3RyaW5nICopaG9zdCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfYWxsb3dUTFNDZXJ0aWZpY2F0ZUNoYWluOihO
U0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0OihOU1N0cmluZyAqKWhvc3QgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLSAodm9pZClfcmVuYW1lT3Jp
Z2luOihOU1VSTCAqKW9sZE5hbWUgdG86KE5TVVJMICopbmV3TmFtZSBmb3JEYXRhT2ZUeXBlczoo
TlNTZXQ8TlNTdHJpbmcgKj4gKilkYXRhVHlwZXMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogCi0tIChCT09MKV9uZXR3b3JrUHJvY2Vzc0hhc0Vu
dGl0bGVtZW50Rm9yVGVzdGluZzooTlNTdHJpbmcgKillbnRpdGxlbWVudCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAoQk9PTClfbmV0d29y
a1Byb2Nlc3NIYXNFbnRpdGxlbWVudEZvclRlc3Rpbmc6KE5TU3RyaW5nICopZW50aXRsZW1lbnQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogQHByb3BlcnR5IChu
dWxsYWJsZSwgbm9uYXRvbWljLCB3ZWFrKSBpZCA8X1dLV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRl
PiBfZGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIF9XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uICpfY29uZmlndXJhdGlvbjsKIAotLSAodm9pZClfdGVybWluYXRlTmV0d29y
a1Byb2Nlc3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKLS0gKHZvaWQpX3NlbmROZXR3b3JrUHJvY2Vzc1ByZXBhcmVUb1N1c3BlbmQ6KHZvaWQo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxT
dXNwZW5kSW1taW5lbnRseSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwotLSAodm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tICh2b2lk
KV9zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kOihCT09MKWJhY2tncm91bmQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHBpZF90KV9uZXR3
b3JrUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLSsgKHZvaWQpX21ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hG
YWlsRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwotLSAoQk9PTClfbmV0d29ya1Byb2Nlc3NFeGlzdHMgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLSsgKEJPT0wpX2RlZmF1bHRO
ZXR3b3JrUHJvY2Vzc0V4aXN0cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3MgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX3NlbmROZXR3b3Jr
UHJvY2Vzc1ByZXBhcmVUb1N1c3BlbmQ6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX3NlbmRO
ZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpOworLSAodm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1l
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CistICh2b2lkKV9zeW50
aGVzaXplQXBwSXNCYWNrZ3JvdW5kOihCT09MKWJhY2tncm91bmQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKysgKHZvaWQpX21h
a2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAoQk9PTClfbmV0d29ya1Byb2Nlc3NFeGlzdHMg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKysgKEJPT0wpX2RlZmF1
bHROZXR3b3JrUHJvY2Vzc0V4aXN0cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpOwogLSAodm9pZClfY291bnROb25EZWZhdWx0U2Vzc2lvblNldHM6KHZvaWQoXikoc2l6
ZV90KSljb21wbGV0aW9uSGFuZGxlcjsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FwcEhpZ2hsaWdodC5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0FwcEhpZ2hsaWdodC5oCmluZGV4IGQzZGI0NWQ3YTBhMDk3
MjZlOThjMzY3MGRiN2VlYTM4YmU0MDVmOGYuLmY2ZDc1MWVjNjU2MGJiYjAzZGE3ZjM0Y2YwZmE0
OTE3NmJjMmFhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tBcHBIaWdobGlnaHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQXBwSGlnaGxpZ2h0LmgKQEAgLTMxLDcgKzMxLDcgQEAKIEBjbGFzcyBOU0ltYWdlOwog
I2VuZGlmCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpCiBAaW50
ZXJmYWNlIF9XS0FwcEhpZ2hsaWdodCA6IE5TT2JqZWN0CiAKIC0gKGluc3RhbmNldHlwZSlpbml0
IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0FwcEhpZ2hsaWdodERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXBwSGlnaGxpZ2h0RGVsZWdhdGUuaAppbmRleCBiYTgxYTVmMzQxZWFl
NjJjYWNjYWJjN2FhZjhlODM3YzUwZTJmM2IzLi5lNTU2NTZiNWUyYzk4ZTZiNTU4Nzk4NjM3YTg1
NTA3ODk2ODczNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQXBwSGlnaGxpZ2h0RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXBwSGlnaGxpZ2h0RGVsZWdhdGUuaApAQCAtMzEsNyArMzEsNyBAQAog
CiBAb3B0aW9uYWwKIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdG9y
ZUFwcEhpZ2hsaWdodDooX1dLQXBwSGlnaGxpZ2h0ICopaGlnaGxpZ2h0IGluTmV3R3JvdXA6KEJP
T0wpaW5OZXdHcm91cCByZXF1ZXN0T3JpZ2luYXRlZEluQXBwOihCT09MKXJlcXVlc3RPcmlnaW5h
dGVkSW5BcHAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RvcmVBcHBIaWdo
bGlnaHQ6KF9XS0FwcEhpZ2hsaWdodCAqKWhpZ2hsaWdodCBpbk5ld0dyb3VwOihCT09MKWluTmV3
R3JvdXAgcmVxdWVzdE9yaWdpbmF0ZWRJbkFwcDooQk9PTClyZXF1ZXN0T3JpZ2luYXRlZEluQXBw
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIEBlbmQKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FwcGxpY2F0aW9u
TWFuaWZlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBcHBsaWNh
dGlvbk1hbmlmZXN0LmgKaW5kZXggYTEyMDM3MGUyZjU4MGU2MzQzZDM4MzNiMTc2ZDQxNDZmNGQx
OTA4NS4uYjMxZmFmNDk4YzgyZGFkMGU5NzZiYWE2OWFkZGRhMjVlN2IxYzU0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FwcGxpY2F0aW9uTWFuaWZl
c3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXBwbGljYXRp
b25NYW5pZmVzdC5oCkBAIC01Miw5ICs1Miw5IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygx
MC4xMy40KSwgaW9zKDExLjMpKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tB
cHBsaWNhdGlvbk1hbmlmZXN0RGlzcGxheU1vZGUgZGlzcGxheU1vZGU7CiAKICNpZiBUQVJHRVRf
T1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlLCBjb3B5
KSBVSUNvbG9yICp0aGVtZUNvbG9yIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUsIGNvcHkpIFVJQ29sb3Ig
KnRoZW1lQ29sb3IgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkpOwogI2Vsc2UKLUBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUsIGNvcHkpIE5TQ29sb3IgKnRoZW1lQ29s
b3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIG51bGxhYmxlLCBjb3B5KSBOU0NvbG9yICp0aGVtZUNvbG9yIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTIuMCkpOwogI2VuZGlmCiAKICsgKF9XS0FwcGxpY2F0aW9uTWFu
aWZlc3QgKilhcHBsaWNhdGlvbk1hbmlmZXN0RnJvbUpTT046KE5TU3RyaW5nICopanNvbiBtYW5p
ZmVzdFVSTDoobnVsbGFibGUgTlNVUkwgKiltYW5pZmVzdFVSTCBkb2N1bWVudFVSTDoobnVsbGFi
bGUgTlNVUkwgKilkb2N1bWVudFVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdGlvbkV4dGVu
c2lvbnNDbGllbnRJbnB1dHMuaAppbmRleCBhMWRlMmNlNzY0MWU4OGM1OWEwYmFlMjBhMDQyZGE3
YjRiNmE0MjA0Li4xNjUwOTZiZmEwNTY4NjdjZGQwNTVjN2JhODJjZDdjNzU3ZDY4YmIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRp
b25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5oCkBAIC0z
MSw3ICszMSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpCiBAaW50ZXJmYWNlIF9XS0F1dGhlbnRpY2F0aW9u
RXh0ZW5zaW9uc0NsaWVudElucHV0cyA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAobnVsbGFibGUs
IG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKmFwcGlkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVu
dE91dHB1dHMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzLmgKaW5kZXggMTgyNGI3OWU5ZDg1NjAwZGFl
YWQ0Nzg2ZjU4YmZmODA4ZGIwZGE2Zi4uNGE5MmY3ZjliYmY2MzAyNTE3MzhkMTEzZjkyODI1ZjI2
ZDRhYjFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50
T3V0cHV0cy5oCkBAIC0zMSw3ICszMSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
LVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpCiBAaW50ZXJmYWNlIF9X
S0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMgOiBOU09iamVjdAogCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgYXBwaWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlLmgKaW5kZXggY2FlZjcwOTFiNTJhMmM4Y2NiYTcyNTc3MWJj
Y2YxMTkxN2VlYjRjMi4uODBkOGFmY2IyOTYwNDNhODVlMGVjMDQyZDNhZWZiNmJhZWQ4NTAzZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaApAQCAtMjksNyArMjks
NyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKQogQGludGVyZmFjZSBfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9u
UmVzcG9uc2UgOiBfV0tBdXRoZW50aWNhdG9yUmVzcG9uc2UKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU0RhdGEgKmF1dGhlbnRpY2F0b3JEYXRhOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JBdHRhY2htZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckF0
dGFjaG1lbnQuaAppbmRleCAwNjY4MGU1OWE1ZWRlMjNmYjQyNTY3NzM5MmMzMWMwZWMwOGQyZjFm
Li5mM2RlZWMyNWM5ZDQ4ZDljZWEzYTRlNjNjNDgzYjk5OTcwMDNiOTJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckF0dGFjaG1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGlj
YXRvckF0dGFjaG1lbnQuaApAQCAtMzEsNCArMzEsNCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tBdXRoZW50aWNhdG9yQXR0YWNobWVudCkgewogICAgIF9XS0F1dGhlbnRpY2F0b3JB
dHRhY2htZW50QWxsLAogICAgIF9XS0F1dGhlbnRpY2F0b3JBdHRhY2htZW50UGxhdGZvcm0sCiAg
ICAgX1dLQXV0aGVudGljYXRvckF0dGFjaG1lbnRDcm9zc1BsYXRmb3JtLAotfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckF0
dGVzdGF0aW9uUmVzcG9uc2UuaAppbmRleCA5NTBmNzllNjU2NWVkNmM3OTg0M2U3NmVhYmI5YTg2
MzQ0YWIzYmZkLi43MmQ5NGMxMmEyMWZkNGYzODBiMTg0YTA1N2YyMDA1MWI1ZDNjMTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaApAQCAtMjksNyArMjks
NyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKQogQGludGVyZmFjZSBfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZSA6IF9XS0F1dGhlbnRpY2F0b3JSZXNwb25zZQogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqYXR0ZXN0YXRpb25PYmplY3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclJlc3BvbnNl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclJl
c3BvbnNlLmgKaW5kZXggNjVhYmU1ZTcxYzBmY2FkOTc1ZjNmYWZkMzBkM2QwYTc1NWRlMmNhMi4u
YTBjN2EyYjE0YzhmYzQ3MzQzYzI5NTg4YWQwNDk0ZmJjMDRjZTNlOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JSZXNwb25zZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9y
UmVzcG9uc2UuaApAQCAtMzQsNyArMzQsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCiBA
Y2xhc3MgX1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0czsKIAotV0tfQ0xB
U1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFT
U19BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSkKIEBpbnRlcmZhY2UgX1dLQXV0aGVu
dGljYXRvclJlc3BvbnNlIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBfV0tBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JTZWxlY3Rp
b25Dcml0ZXJpYS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhl
bnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5oCmluZGV4IGYzYjU5Y2VmMGFiOWExOWQzOTRhN2M2
YWNiMzU1ZGE1OGRhNzdkNWYuLmZkOGMyNjRiM2MxYzJhMzFlMTczZGMxYjgxMzYwNTY3NjY2MGM0
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRo
ZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLmgKQEAgLTMzLDcg
KzMzLDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTIuMCksIGlvcygxNS4wKSkKIEBpbnRlcmZhY2UgX1dLQXV0aGVudGljYXRvclNlbGVj
dGlvbkNyaXRlcmlhIDogTlNPYmplY3QKIAogLyohQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFs
dWUgaXMgX1dLQXV0aGVudGljYXRvckF0dGFjaG1lbnRBbGwuKi8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaApp
bmRleCBhMGYxYjg1ODAxODQzMTFmODEyY2MxMTA4NTk3MDA1ZWQ2ODllMzIyLi5jNzI5YzllNDRi
ZjllN2JlZGZlZjJmOWYwZWRhOWQ3MDZkZmIwMjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvbkRlbGVnYXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oCkBAIC0z
Niw1ICszNiw1IEBACiAtIChOU1N0cmluZyAqKV9wcm9jZXNzUG9vbEJyb3dzZXJOYW1lRm9yQXV0
b21hdGlvbjooV0tQcm9jZXNzUG9vbCAqKXByb2Nlc3NQb29sIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAoTlNTdHJpbmcgKilfcHJvY2Vzc1Bvb2xCcm93c2Vy
VmVyc2lvbkZvckF1dG9tYXRpb246KFdLUHJvY2Vzc1Bvb2wgKilwcm9jZXNzUG9vbCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjApKTsKIAotLSAodm9pZClfcHJvY2Vzc1Bv
b2xEaWRSZXF1ZXN0SW5zcGVjdG9yRGVidWdnYWJsZXNUb1dha2VVcDooV0tQcm9jZXNzUG9vbCAq
KXByb2Nlc3NQb29sIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistICh2b2lkKV9wcm9jZXNzUG9vbERpZFJlcXVlc3RJbnNwZWN0b3JEZWJ1Z2dh
Ymxlc1RvV2FrZVVwOihXS1Byb2Nlc3NQb29sICopcHJvY2Vzc1Bvb2wgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxl
Z2F0ZS5oCmluZGV4IDA0ZGQwZTY4YjQwODBhZDdlMjc2NGE1ZDhhNThkMTZmYmY0YzllMzIuLjcz
YzAxNmZhNmNmNzZkYjQ4ODc4YzFkYzZiMDg4YjM5OGY1OWI3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNM
b2dnaW5nRGVsZWdhdGUuaApAQCAtMzcsNyArMzcsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUpIHsKIAogdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLRGlhZ25vc3RpY0xvZ2dpbmdEb21haW4pIHsKICAgICBfV0tEaWFnbm9z
dGljTG9nZ2luZ0RvbWFpbk1lZGlhLAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBp
b3MoMTUuMCkpOwogCiBAY2xhc3MgV0tXZWJWaWV3OwogCkBAIC00OSw2ICs0OSw2IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0RpYWdub3N0aWNMb2dnaW5nRG9tYWluKSB7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0
aFZhbHVlOihOU1N0cmluZyAqKW1lc3NhZ2UgZGVzY3JpcHRpb246KE5TU3RyaW5nICopZGVzY3Jp
cHRpb24gdmFsdWU6KE5TU3RyaW5nICopIHZhbHVlOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhFbmhhbmNlZFByaXZhY3k6KE5T
U3RyaW5nICopbWVzc2FnZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2U6KE5TU3RyaW5nICopbWVz
c2FnZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNjcmlwdGlvbiB2YWx1ZURpY3Rpb25hcnk6
KE5TRGljdGlvbmFyeSAqKXZhbHVlRGljdGlvbmFyeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE1KSwgaW9zKDEzLjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRG9tYWluOihOU1N0cmluZyAqKW1lc3NhZ2UgZG9tYWlu
OihfV0tEaWFnbm9zdGljTG9nZ2luZ0RvbWFpbilkb21haW4gV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoRG9tYWluOihOU1N0cmluZyAq
KW1lc3NhZ2UgZG9tYWluOihfV0tEaWFnbm9zdGljTG9nZ2luZ0RvbWFpbilkb21haW4gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaAppbmRleCA3ZWE1MjI1MzYw
NGNiY2ZhMDVlOTgzMGI5ZWRjNDUzYWIxOGNkOGMxLi40Yzk2Njc0OWEwMTAwYTc3ZjkwNWFiZWZj
YWI3ZTFmZWMyMjIwYThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRG93bmxvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLRG93bmxvYWQuaApAQCAtMzAsMTAgKzMwLDEwIEBACiBAY2xhc3MgV0tXZWJWaWV3Owog
QGNsYXNzIFdLRG93bmxvYWQ7CiAKLVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgiV0tEb3dubG9hZCIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9T
X1RCQSkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLRG93bmxvYWQi
LCBtYWNvcygxMC4xMCwgMTIuMCksIGlvcyg4LjAsIDE1LjApKQogQGludGVyZmFjZSBfV0tEb3du
bG9hZCA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAKLSsgKGluc3RhbmNldHlwZSlkb3dubG9hZFdp
dGhEb3dubG9hZDooV0tEb3dubG9hZCAqKWRvd25sb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrIChpbnN0YW5jZXR5cGUpZG93bmxvYWRX
aXRoRG93bmxvYWQ6KFdLRG93bmxvYWQgKilkb3dubG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpOwogCiAtICh2b2lkKWNhbmNlbDsKIC0gKHZvaWQpcHVibGlzaFBy
b2dyZXNzQXRVUkw6KE5TVVJMICopVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCks
IGlvcygxMi4yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLRG93bmxvYWREZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0Rvd25sb2FkRGVsZWdhdGUuaAppbmRleCA2NWVhY2NhY2I1ZjcwZTE0YWUzYjk3Mzg3
ZjQ2OGE4M2E3YmI3YzgxLi5jYjk3MmU3YjNjZDM0ZjJiY2I5OTVjMjg5MGQ1Y2JhZDUxOGI5NDJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxv
YWREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tE
b3dubG9hZERlbGVnYXRlLmgKQEAgLTM3LDcgKzM3LDcgQEAKIC0gKHZvaWQpX2Rvd25sb2FkOihf
V0tEb3dubG9hZCAqKWRvd25sb2FkIGRpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMOihOU1VS
TCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwogLSAo
dm9pZClfZG93bmxvYWQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZVJlc3BvbnNl
OihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2U7CiAtICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxv
YWQgKilkb3dubG9hZCBkaWRSZWNlaXZlRGF0YToodWludDY0X3QpbGVuZ3RoOwotLSAodm9pZClf
ZG93bmxvYWQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQgZGlkV3JpdGVEYXRhOih1aW50NjRfdCli
eXRlc1dyaXR0ZW4gdG90YWxCeXRlc1dyaXR0ZW46KHVpbnQ2NF90KXRvdGFsQnl0ZXNXcml0dGVu
IHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGU6KHVpbnQ2NF90KXRvdGFsQnl0ZXNFeHBlY3RlZFRv
V3JpdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRpZFdyaXRlRGF0
YToodWludDY0X3QpYnl0ZXNXcml0dGVuIHRvdGFsQnl0ZXNXcml0dGVuOih1aW50NjRfdCl0b3Rh
bEJ5dGVzV3JpdHRlbiB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1dyaXRlOih1aW50NjRfdCl0b3RhbEJ5
dGVzRXhwZWN0ZWRUb1dyaXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4w
KSk7CiAtICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkZWNpZGVEZXN0
aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZTooTlNTdHJpbmcgKilmaWxlbmFtZSBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhbGxvd092ZXJ3cml0ZSwgTlNTdHJpbmcgKmRlc3Rp
bmF0aW9uKSljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQpX2Rvd25sb2FkRGlkRmluaXNoOihf
V0tEb3dubG9hZCAqKWRvd25sb2FkOwogLSAodm9pZClfZG93bmxvYWQ6KF9XS0Rvd25sb2FkICop
ZG93bmxvYWQgZGlkRmFpbFdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9yOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmgKaW5kZXgg
MmQ1MTk5ZjVmMTEyNjA1ZDY4MGY0MDkyNGRhMWI5ODY1MDVkZDMyMy4uYWFkZWU5ZjZlMjMwYmM4
YzUxYzllMzE0MzMwNWQ1NTQ3YTIzOWM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oCkBAIC01NCw4ICs1NCw4IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0VsZW1lbnRBY3Rpb25UeXBlKSB7CiAgICAgX1dL
RWxlbWVudEFjdGlvblR5cGVPcGVuSW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNSksIGlvcygxMy4wKSksCiAgICAgX1dLRWxlbWVudEFjdGlvblR5cGVEb3dubG9hZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKSwKICAgICBfV0tFbGVtZW50QWN0
aW9uVG9nZ2xlU2hvd0xpbmtQcmV2aWV3cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwg
aW9zKDEzLjApKSwKLSAgICBfV0tFbGVtZW50QWN0aW9uVHlwZUltYWdlRXh0cmFjdGlvbiBXS19B
UElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSksCi0gICAgX1dLRWxlbWVudEFjdGlvblR5cGVS
ZXZlYWxJbWFnZSBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSksCisgICAgX1dLRWxl
bWVudEFjdGlvblR5cGVJbWFnZUV4dHJhY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkp
LAorICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlUmV2ZWFsSW1hZ2UgV0tfQVBJX0FWQUlMQUJMRShp
b3MoMTUuMCkpLAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwog
CiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IuaAppbmRleCA4NmIxY2Y4
OTYyNzhmMTk3MmI5YTc5OTdjNDkyNzRkMWVlZGNjZjVmLi5lZTc2OWU5MDMwMzk2NzAxZmZjNDNj
NjY5M2UzZjA1NjAzYmVjMWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0luc3BlY3Rvci5oCkBAIC0zOSw3ICszOSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdCBOU19V
TkFWQUlMQUJMRTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkIDxfV0tJbnNwZWN0
b3JEZWxlZ2F0ZT4gZGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBpZCA8X1dLSW5z
cGVjdG9yRGVsZWdhdGU+IGRlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlv
cygxNS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV0tXZWJWaWV3ICp3
ZWJWaWV3OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlzQ29ubmVjdGVk
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3Bl
Y3RvckNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tJbnNwZWN0b3JDb25maWd1cmF0aW9uLmgKaW5kZXggYmM4YTgxNjlkNDZkMWM0MGZkNGM4Mjcz
ZTQ2M2M0ZTliMDAyMmY4Yy4uZGFlYWVkN2JkNmFmZGE1MjcxMjEwYTlhYWMzMGU1YjViMThlOWZm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3Bl
Y3RvckNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbi5oCkBAIC0zMSw3ICszMSw3IEBAIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiBAY2xhc3MgV0tQcm9jZXNzUG9vbDsKIEBwcm90b2NvbCBXS1VSTFNj
aGVtZUhhbmRsZXI7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSkKK1dL
X0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMi4wKSkKIEBpbnRlcmZhY2UgX1dLSW5zcGVjdG9yQ29u
ZmlndXJhdGlvbiA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAvKioKICAqIEBhYnN0cmFjdCBTZXRz
IHRoZSBVUkwgc2NoZW1lIGhhbmRsZXIgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gVVJMIHNjaGVtZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3JFeHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNw
ZWN0b3JFeHRlbnNpb24uaAppbmRleCA4NGE3OGI4YzY1YmMxZGZjMmUxNmI2ZDRlOWVjYjQwYWY2
YmZhYzE4Li5mMWQ3MTQwNDUyYzM3Y2Y0NTFlNmFiZDZmNjc3ZmMxNzY1MzBjYTE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5z
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
ckV4dGVuc2lvbi5oCkBAIC0zNSw3ICszNSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
IEBwcm90b2NvbCBfV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZTsKIAotV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEyLjAp
KQogQGludGVyZmFjZSBfV0tJbnNwZWN0b3JFeHRlbnNpb24gOiBOU09iamVjdAogCiAtIChpbnN0
YW5jZXR5cGUpbmV3IE5TX1VOQVZBSUxBQkxFOwpAQCAtODAsNyArODAsNyBAQCBXS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpCiAgKiBAYWJzdHJhY3QgQWxsb3dzIHRoZSBjbGll
bnQgdG8gcmVjZWl2ZSBleHRlbnNpb24gbGlmZWN5Y2xlIGV2ZW50cyB0aGF0CiAgKiBhcmlzZSBm
cm9tIHdpdGhpbiBXZWIgSW5zcGVjdG9yLgogICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgd2Vh
aykgaWQgPF9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlPiBkZWxlZ2F0ZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBp
ZCA8X1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU+IGRlbGVnYXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTIuMCkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaApp
bmRleCBkNGI2NTE3N2Y5ZmU1OTM1MTBiZWE2NDgzMmQ0MjU1NjkzYmU1NGIzLi42NTFkNDM1MTMz
Y2E0NWQ3MjQxYmI5MzNkMmI4ZmNhODRkYTc4MjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oCkBAIC00MSw3ICs0MSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCks
IGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYXR0clN0eWxlRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwogCiAvLyBEZWZhdWx0
cyB0byBZRVMuCi1AcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBzaG91bGRUaHJvd0V4Y2VwdGlv
bkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
c2hvdWxkVGhyb3dFeGNlcHRpb25Gb3JHbG9iYWxDb25zdGFudFJlZGVjbGFyYXRpb24gV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogQHByb3BlcnR5IChub25hdG9t
aWMsIGNvcHkpIE5TQXJyYXk8TlNVUkwgKj4gKmFkZGl0aW9uYWxSZWFkQWNjZXNzQWxsb3dlZFVS
THMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKQEAgLTcxLDcg
KzcxLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJv
cGVydHkgKG5vbmF0b21pYykgQk9PTCB1c2VzV2ViUHJvY2Vzc0NhY2hlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBwYWdlQ2FjaGVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIu
MCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0pJVEVuYWJsZWQpIEJPT0wgSklU
RW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwotQHBy
b3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFNUU1N0b3JhZ2VE
aXJlY3Rvcnk6KSBOU1VSTCAqaHN0c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaHN0c1N0
b3JhZ2VEaXJlY3RvcnkiLCBtYWNvcygxMC4xNSwgV0tfTUFDX1RCQSksIGlvcygxMy4wLCBXS19J
T1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1z
ZXRIU1RTU3RvcmFnZURpcmVjdG9yeTopIE5TVVJMICpoc3RzU3RvcmFnZURpcmVjdG9yeSBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi5oc3RzU3RvcmFnZURpcmVjdG9yeSIsIG1hY29zKDEwLjE1LCAxMi4wKSwgaW9zKDEz
LjAsIDE1LjApKTsKIAogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgY29uZmlndXJlSlNDRm9y
VGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAppbmRleCAzOGU1
NTdjN2MwYjNlOTczNmIxYjNhMTVhNDYyNjc3MjY4NzY1OWZiLi5mYzM3ZDdiODM3MTExOWUzODIz
MmYyNTNjMDIxZWYwOGQ1NDRmN2I3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zLmgKQEAgLTQyLDkgKzQyLDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgX1dLQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSkgewogICAgIF9XS0F0dGVz
dGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2VOb25lLAogICAgIF9XS0F0dGVzdGF0aW9uQ29udmV5
YW5jZVByZWZlcmVuY2VJbmRpcmVjdCwKICAgICBfV0tBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVm
ZXJlbmNlRGlyZWN0LAotfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkp
OwogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKQogQGludGVyZmFj
ZSBfV0tQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIDogTlNPYmplY3QKIAogKyAo
aW5zdGFuY2V0eXBlKW5ldyBOU19VTkFWQUlMQUJMRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRp
YWxEZXNjcmlwdG9yLmgKaW5kZXggMmMyOTJjMjY3ZGJiZWZjNGQwMTkzOThkMzRjYzA5NjJlMjIw
YTViNS4uOTU4Nzk4MWU3MGMxZDY0ZWEyMzYxYjgxYjNlZGM0YzY1ZjJiOTM0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRp
YWxEZXNjcmlwdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlv
cygxNS4wKSkKIEBpbnRlcmZhY2UgX1dLUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgOiBO
U09iamVjdAogCiArIChpbnN0YW5jZXR5cGUpbmV3IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRp
YWxFbnRpdHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNL
ZXlDcmVkZW50aWFsRW50aXR5LmgKaW5kZXggMTVjMDU2ZmI4YTFhNGJlY2Q2YjgwOGI3YzE2OTNj
OWQyMGRmOWRhNy4uYzEwZDgyZjA1ODg1N2Q5MjM1ZTdiODdlZTNmNDBjY2I2M2U2NDI1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNy
ZWRlbnRpYWxFbnRpdHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHVibGljS2V5Q3JlZGVudGlhbEVudGl0eS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIE5TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpCiBAaW50ZXJmYWNlIF9XS1B1YmxpY0tleUNyZWRlbnRpYWxFbnRpdHkgOiBOU09iamVj
dAogCiArIChpbnN0YW5jZXR5cGUpbmV3IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRpYWxQYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5
Q3JlZGVudGlhbFBhcmFtZXRlcnMuaAppbmRleCBiODQ3OWRjMTE3MzhmNjYyZjMyOGQ2MDYwYjUz
ZGMxYTNiM2Q3M2QyLi4yMTk3NjczOGE3MjAwMTliYTJmMGNjNjA5MGVkYjdmZGExZjM2YzNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5
Q3JlZGVudGlhbFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbFBhcmFtZXRlcnMuaApAQCAtMzEsNyArMzEsNyBA
QAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygx
Mi4wKSwgaW9zKDE1LjApKQogQGludGVyZmFjZSBfV0tQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1l
dGVycyA6IE5TT2JqZWN0CiAKICsgKGluc3RhbmNldHlwZSluZXcgTlNfVU5BVkFJTEFCTEU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5
Q3JlZGVudGlhbFJlbHlpbmdQYXJ0eUVudGl0eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRpYWxSZWx5aW5nUGFydHlFbnRpdHkuaAppbmRl
eCBiZTZlYTQ0ODUzNTk1ZDAyNjczZTA4MjQ3N2FhYzMyOTE2YTg5NTE3Li4wNmYyODQyZjQ5OTMz
NTVhODUxNzUwM2UxNTU1NzJiMTQ5M2Q3M2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbFJlbHlpbmdQYXJ0eUVudGl0
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNLZXlD
cmVkZW50aWFsUmVseWluZ1BhcnR5RW50aXR5LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSkKIEBpbnRlcmZhY2UgX1dLUHVibGljS2V5Q3JlZGVudGlhbFJlbHlpbmdQYXJ0eUVudGl0
eSA6IF9XS1B1YmxpY0tleUNyZWRlbnRpYWxFbnRpdHkKIAogKyAoaW5zdGFuY2V0eXBlKW5ldyBO
U19VTkFWQUlMQUJMRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMuaAppbmRleCBiZjg5Zjk4ZGNjNTY0ZmE1ZTNjN2RiNjFhYWMwNDY2MTA4ZWJkMDY4Li4yYzk2
ODM5N2EyMTNiZTQ5YWQxOWRkNGNiMWQyOWU3YWMxNzYyYTFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCkBAIC0zNiw3ICszNiw3IEBAIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiBAY2xhc3MgX1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50
SW5wdXRzOwogQGNsYXNzIF9XS1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yOwogCi1XS19D
TEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NM
QVNTX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKQogQGludGVyZmFjZSBfV0tQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG51
bGxhYmxlLCBub25hdG9taWMsIGNvcHkpIE5TTnVtYmVyICp0aW1lb3V0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRpYWxV
c2VyRW50aXR5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGlj
S2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkuaAppbmRleCAxMGU0ZTdiZWRiODBiMWY5ODMxZWU5YzIx
NzcyODE2Y2E3OTBlZDhmLi44MTc5MWIxY2ZhODM0NzQ1NDRlOTQ4NWRlNGVmNjk2YWVlYjJhNWQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGlj
S2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkuaApAQCAtMjksNyArMjks
NyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKQogQGludGVyZmFjZSBfV0tQdWJsaWNLZXlDcmVkZW50aWFsVXNl
ckVudGl0eSA6IF9XS1B1YmxpY0tleUNyZWRlbnRpYWxFbnRpdHkKIAogKyAoaW5zdGFuY2V0eXBl
KW5ldyBOU19VTkFWQUlMQUJMRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tSZW1vdGVXZWJJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250
cm9sbGVyLmgKaW5kZXggMWI0MDBkMDEwYzllY2I0Y2U5MzcyMDQzMThjMDc4M2ZmMmYyNmVkNS4u
YjgyY2QzMDA4ZDdjM2FiYzNlMWFlZmJmYjEwOWY5OWQ3YzU1MDQwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Jl
bW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLmgKQEAgLTQzLDEwICs0MywxMCBAQCBXS19D
TEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTIuMykpCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgcmV0YWluKSBOU1dpbmRvdyAqd2luZG93OwogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCByZXRhaW4pIFdLV2ViVmlldyAqd2ViVmlldzsKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgY29weSkgX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbiAqY29uZmlndXJh
dGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgY29weSkgX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbiAqY29uZmln
dXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApKTsKIAotLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoQ29uZmlndXJhdGlvbjooX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbiAqKWNvbmZp
Z3VyYXRpb24gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7Ci0tICh2b2lkKWxv
YWRGb3JEZWJ1Z2dhYmxlOihfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mbyAqKWRlYnVnZ2FibGVJ
bmZvIGJhY2tlbmRDb21tYW5kc1VSTDooTlNVUkwgKiliYWNrZW5kQ29tbWFuZHNVUkwgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhD
b25maWd1cmF0aW9uOihfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApKTsKKy0gKHZvaWQpbG9hZEZvckRlYnVnZ2FibGU6
KF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvICopZGVidWdnYWJsZUluZm8gYmFja2VuZENvbW1h
bmRzVVJMOihOU1VSTCAqKWJhY2tlbmRDb21tYW5kc1VSTCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApKTsKIC0gKHZvaWQpY2xvc2U7CiAtICh2b2lkKXNob3c7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4u
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9u
VG9rZW4uaAppbmRleCAxMGYyOTZiNWI2ZDIyYzgyM2Y4NjIzMjM2ODMwNzMwMjJmYmE5NjQ0Li42
YTY5MmU3NTRhZTFmNjNmZTRlZDA3OWNkZmJiODg3MjJjM2RmNTM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRp
b25Ub2tlbi5oCkBAIC0zMSw3ICszMSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW5Vc2VySW5mb0Rv
Y3VtZW50VVJMS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBX
S19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW5Vc2VySW5m
b1RhZ05hbWVLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIFdL
X0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlblVzZXJJbmZv
Um9sZUF0dHJpYnV0ZUtleSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OwotV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuVXNl
ckluZm9WaXNpYmlsaXR5S2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tUZXh0TWFuaXB1
bGF0aW9uVG9rZW5Vc2VySW5mb1Zpc2liaWxpdHlLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
Mi4wKSwgaW9zKDE1LjApKTsKIAogV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBp
b3MoMTMuNCkpCiBAaW50ZXJmYWNlIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbiA6IE5TT2JqZWN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgKaW5kZXggYTFhYzZjODU4MjBmYjNj
OGFmMTI1ZTgwNTZkOGZhNjFkY2I3MzU1YS4uYmQwYWNiMzEwMWM1N2M5MTM5ZTY3MjM2NjE0ODI2
ZDdkMzAzZDdkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaApAQCAtMzEs
NCArMzEsNCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQpIHsKICAgICBfV0tVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRSZXF1aXJl
ZCwKICAgICBfV0tVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnRQcmVmZXJyZWQsCiAgICAgX1dL
VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50RGlzY291cmFnZWQsCi19IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
QXNzZXJ0aW9uUmVzcG9uc2UuaAppbmRleCA2OWEwNDEwM2Y3ZjViNTZhNzg5ZWY0NWNjZTI5NWY2
ODNiOGM1ODUyLi41OTQwZWNiYmU3NmE5NDY2ZTY3OWJiZDExZDFhMDkzY2YyMzgzMzk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGlj
YXRpb25Bc3NlcnRpb25SZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlLmgKQEAgLTM3LDcg
KzM3LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpkaXNwbGF5TmFtZTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNEYXRhICp1c2VySGFuZGxl
OwogCi0tICh2b2lkKXNldExBQ29udGV4dDooTEFDb250ZXh0ICopY29udGV4dCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClzZXRM
QUNvbnRleHQ6KExBQ29udGV4dCAqKWNvbnRleHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4w
KSwgaW9zKDE1LjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaAppbmRleCAw
NmRhOGRkYzc5ODA1Yjc2YzIzYWU2YjkxMDY0N2U4ZTVhNDM3NTNjLi5kNmNhNjc3ZDc4ZmI3ZjNm
MGU2ODZlOWJhNDZmNmVjMDQ4MjA5MTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmgKQEAg
LTkxLDcgKzkxLDcgQEAgV0tfRVhQT1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS0xvY2Fs
QXV0aGVudGljYXRvckNyZWRlbnRpYWxSZWx5aW5nUGFydHlJREsKIC0gKHZvaWQpcGFuZWw6KF9X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCB1cGRhdGVXZWJBdXRoZW50aWNhdGlvblBh
bmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsVXBkYXRlKXVwZGF0ZSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVu
dGljYXRpb25QYW5lbCAqKXBhbmVsIHJlcXVlc3RQSU5XaXRoUmVtYWluaW5nUmV0cmllczooTlNV
SW50ZWdlcilyZXRyaWVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OwogLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHNlbGVj
dEFzc2VydGlvblJlc3BvbnNlOihOU0FycmF5IDwgX1dLV2ViQXV0aGVudGljYXRpb25Bc3NlcnRp
b25SZXNwb25zZSAqPiAqKXJlc3BvbnNlcyBzb3VyY2U6KF9XS1dlYkF1dGhlbnRpY2F0aW9uU291
cmNlKXNvdXJjZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLV2ViQXV0aGVudGljYXRp
b25Bc3NlcnRpb25SZXNwb25zZSAqIF9OdWxsYWJsZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKLS0gKHZvaWQpcGFuZWw6KF9XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCByZXF1ZXN0TEFDb250ZXh0Rm9yVXNlclZlcmlm
aWNhdGlvbldpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTEFDb250ZXh0ICpjb250ZXh0
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bCAqKXBhbmVsIHJlcXVlc3RMQUNvbnRleHRGb3JVc2VyVmVyaWZpY2F0aW9uV2l0aENvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShMQUNvbnRleHQgKmNvbnRleHQpKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8vIEZJWE1FOiA8
cmRhcjovL3Byb2JsZW0vNzE1MDk4NDg+IERlcHJlY2F0ZSB0aGUgZm9sbG93aW5nIGRlbGVnYXRl
cy4KIC0gKHZvaWQpcGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgKilwYW5lbCBkZWNp
ZGVQb2xpY3lGb3JMb2NhbEF1dGhlbnRpY2F0b3JXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKF9XS0xvY2FsQXV0aGVudGljYXRvclBvbGljeSBwb2xpY3kpKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CkBAIC0xMDMsMTcgKzEw
MywxNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSkKIAog
QHByb3BlcnR5IChudWxsYWJsZSwgbm9uYXRvbWljLCB3ZWFrKSBpZCA8X1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbERlbGVnYXRlPiBkZWxlZ2F0ZTsKIAotKyAoTlNBcnJheTxOU0RpY3Rpb25hcnkg
Kj4gKilnZXRBbGxMb2NhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotKyAodm9pZClkZWxldGVMb2Nh
bEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsV2l0aElEOihOU0RhdGEgKiljcmVkZW50aWFsSUQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLSsgKHZv
aWQpY2xlYXJBbGxMb2NhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworKyAoTlNBcnJheTxOU0RpY3Rp
b25hcnkgKj4gKilnZXRBbGxMb2NhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscyBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworKyAodm9pZClkZWxldGVMb2NhbEF1dGhl
bnRpY2F0b3JDcmVkZW50aWFsV2l0aElEOihOU0RhdGEgKiljcmVkZW50aWFsSUQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKysgKHZvaWQpY2xlYXJBbGxMb2NhbEF1
dGhlbnRpY2F0b3JDcmVkZW50aWFscyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpOwogCi0rIChCT09MKWlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2
YWlsYWJsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworKyAoQk9PTClpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFi
bGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLSAoaW5zdGFu
Y2V0eXBlKWluaXQ7CiAKIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vNzE1MDk0ODU+IEFkZHMg
ZGV0YWlsZWQgTlNFcnJvci4KLS0gKHZvaWQpbWFrZUNyZWRlbnRpYWxXaXRoQ2hhbGxlbmdlOihO
U0RhdGEgKiljaGFsbGVuZ2Ugb3JpZ2luOihOU1N0cmluZyAqKW9yaWdpbiBvcHRpb25zOihfV0tQ
dWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgKiwgTlNF
cnJvciAqKSloYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7Ci0tICh2b2lkKWdldEFzc2VydGlvbldpdGhDaGFsbGVuZ2U6KE5TRGF0YSAq
KWNoYWxsZW5nZSBvcmlnaW46KE5TU3RyaW5nICopb3JpZ2luIG9wdGlvbnM6KF9XS1B1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyAqKW9wdGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKF9XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZSAqLCBOU0Vycm9yICopKWhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKKy0gKHZvaWQpbWFrZUNyZWRlbnRpYWxXaXRoQ2hhbGxlbmdlOihOU0RhdGEgKiljaGFsbGVu
Z2Ugb3JpZ2luOihOU1N0cmluZyAqKW9yaWdpbiBvcHRpb25zOihfV0tQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
X1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UgKiwgTlNFcnJvciAqKSloYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CistICh2b2lkKWdldEFz
c2VydGlvbldpdGhDaGFsbGVuZ2U6KE5TRGF0YSAqKWNoYWxsZW5nZSBvcmlnaW46KE5TU3RyaW5n
ICopb3JpZ2luIG9wdGlvbnM6KF9XS1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyAq
KW9wdGlvbnMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS0F1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZSAqLCBOU0Vycm9yICopKWhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpY2FuY2VsOwogCiAvLyBGSVhNRTogPHJkYXI6
Ly9wcm9ibGVtLzcxNTA5ODQ4PiBEZXByZWNhdGUgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWxGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEZvclRlc3RpbmcuaAppbmRleCA3NzA2YjAx
NTQ1YmI2MzZkMzllYjg3MDkzOGQ4MWRhMDQxOGQxZmY2Li5jMWIzZGYwZTQxOGM2ODBiNDYyM2Q3
OGIzZDczOTE0MjkyZDc0YmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEZvclRlc3RpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEZv
clRlc3RpbmcuaApAQCAtMzIsMTMgKzMyLDEzIEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOwogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
czsKIH0KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSkKIEBpbnRl
cmZhY2UgX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAoV0tUZXN0aW5nKQogCi0rIChXZWJDb3Jl
OjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zKWNvbnZlcnRUb0NvcmVDcmVhdGlv
bk9wdGlvbnNXaXRoT3B0aW9uczooX1dLUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cyAqKW9wdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKLSsgKFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucylj
b252ZXJ0VG9Db3JlUmVxdWVzdE9wdGlvbnNXaXRoT3B0aW9uczooX1dLUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zICopb3B0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworKyAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucyljb252ZXJ0VG9Db3JlQ3JlYXRpb25PcHRpb25zV2l0aE9wdGlvbnM6
KF9XS1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgKilvcHRpb25zIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CisrIChXZWJDb3JlOjpQdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMpY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25zV2l0aE9w
dGlvbnM6KF9XS1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyAqKW9wdGlvbnMgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAotKyAoTlNBcnJheTxOU0Rp
Y3Rpb25hcnkgKj4gKilnZXRBbGxMb2NhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsc1dpdGhBY2Nl
c3NHcm91cDooTlNTdHJpbmcgKilhY2Nlc3NHcm91cCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworKyAoTlNBcnJheTxOU0RpY3Rpb25hcnkgKj4g
KilnZXRBbGxMb2NhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsc1dpdGhBY2Nlc3NHcm91cDooTlNT
dHJpbmcgKilhY2Nlc3NHcm91cCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUu
MCkpOwogCiAvLyBGb3IgZGV0YWlscyBvZiBjb25maWd1cmF0aW9uLCByZWZlciB0byBNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmguCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSkgTlNEaWN0aW9uYXJ5ICptb2NrQ29uZmlndXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgKaW5kZXggZjA4MzRiNjAwZjEyZjQ2YzcwNjBiNzBjMDRjZGRmOWMx
NDhmYmI0MC4uNTQxYTJjMjg5MDFlYzAxN2UyOGIzN2Q3N2ZkM2RiNmFkOTIyNWI2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3Rv
cmVDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKQEAgLTcyLDggKzcyLDggQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKQogQHByb3BlcnR5IChub25h
dG9taWMpIE5TVUludGVnZXIgdGVzdFNwZWVkTXVsdGlwbGllciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc3Vw
cHJlc3Nlc0Nvbm5lY3Rpb25UZXJtaW5hdGlvbk9uU3lzdGVtQ2hhbmdlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBhbGxvd3NTZXJ2ZXJQcmVjb25uZWN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCks
IGlvcygxMy40KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRl
cj1zZXRIU1RTU3RvcmFnZURpcmVjdG9yeTopIE5TVVJMICpoc3RzU3RvcmFnZURpcmVjdG9yeSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotQHBy
b3BlcnR5IChub25hdG9taWMpIEJPT0wgZW5hYmxlSW5BcHBCcm93c2VyUHJpdmFjeUZvclRlc3Rp
bmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVyPXNldEhTVFNTdG9y
YWdlRGlyZWN0b3J5OikgTlNVUkwgKmhzdHNTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBl
bmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNv
cHkpIE5TVVJMICphbHRlcm5hdGl2ZVNlcnZpY2VzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmgKaW5kZXggMjNhM2VhNTQwZGRkNTAyMmRiNWFi
OWI1ODk2ZTNlNjIwYjNlZTAwMS4uMDk5NGZhMWQyYTdmZmQzMDA2Mzk4MzE5MTViOTRjMmI2ZTE2
OGFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUuaApAQCAtMzcsNyArMzcsNyBAQAogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwg
V0tIaXRUZXN0T3B0aW9ucykgewogICAgIFdLSGl0VGVzdE9wdGlvbkFsbG93VXNlckFnZW50U2hh
ZG93Um9vdENvbnRlbnQgPSAxIDw8IDAsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCks
IGlvcygxNS4wKSk7CiAKIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjAp
KQogQGludGVyZmFjZSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZSA6IE5TT2JqZWN0CkBAIC01Niw3
ICs1Niw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogCiAt
IChKU0NvbnRleHQgKilqc0NvbnRleHRGb3JXb3JsZDooV0tXZWJQcm9jZXNzUGx1Z0luU2NyaXB0
V29ybGQgKil3b3JsZDsKIC0gKFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgKiloaXRU
ZXN0OihDR1BvaW50KXBvaW50OwotLSAoV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdCAq
KWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQgb3B0aW9uczooV0tIaXRUZXN0T3B0aW9ucylvcHRpb25z
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cist
IChXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0ICopaGl0VGVzdDooQ0dQb2ludClwb2lu
dCBvcHRpb25zOihXS0hpdFRlc3RPcHRpb25zKW9wdGlvbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKEpTVmFsdWUgKilqc05vZGVGb3JOb2RlSGFuZGxlOihX
S1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopbm9kZUhhbmRsZSBpbldvcmxkOihXS1dlYlBy
b2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxkOwogLSAoSlNWYWx1ZSAqKWpzUmFuZ2VGb3JS
YW5nZUhhbmRsZTooV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilyYW5nZUhhbmRsZSBp
bldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZCAqKXdvcmxkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIuMyksIGlvcygxMC4zKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luTm9kZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmgKaW5kZXggMjg4MmMzZmI1
MmRmOWE2Y2Y4YzYyMTFiZmJkM2FlOWQ4MWRmMDc2Ny4uODdhYWZiN2JhYTM2ZDk4ZmE4YjU5Mzkx
NGE0OWU0NTE3OGI4MjVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dl
YlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmgKQEAgLTU3LDcgKzU3LDcgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKkhUTUxUYWJsZUNlbGxFbGVtZW50
Q2VsbEFib3ZlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlByb2Nlc3NQ
bHVnSW5GcmFtZSAqZnJhbWU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wg
aXNTZWxlY3RFbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4y
KSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNTZWxlY3RhYmxlVGV4
dE5vZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1NlbGVjdGFibGVUZXh0
Tm9kZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAtIChCT09M
KWlzVGV4dEZpZWxkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nl
c3NQbHVnSW5QYWdlR3JvdXAuaAppbmRleCBiYzhkMmNhNTljODdiNDZlODMzNmM1MjNmZTc4OGU5
MDQ4OTNjZmU3Li5mMjMyYTJhMmVkM2MwMWMwZDlmOGRlMjFjZTk4M2RmYjVmMWI2MzRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29h
L1dLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3Vw
LmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CiAKLVdLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLl9ncm91cElkZW50aWZpZXIiLCBtYWNvcygxMC4x
MCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXIuX2dyb3VwSWRlbnRpZmllciIsIG1hY29zKDEwLjEwLCAxMi4wKSwgaW9zKDguMCwgMTUu
MCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJblBhZ2VHcm91cCA6IE5TT2JqZWN0CiAK
IEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TU3RyaW5nICppZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9j
ZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIuaAppbmRleCA3MzJmNTk4Mzk1OWIyY2IxYjdlYmFjYjljMzg1ZTZjZDNk
YTUxZTY0Li4yNmQ2NWY2OTNjZjYzNWY5ZTE0NzA3MGI4ODZlMjM2YWIzZmVmOWZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIuaApAQCAtNDIsNyArNDIsNyBAQCBXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIAogQHByb3BlcnR5IChyZWFkb25seSkgV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWUgKm1haW5GcmFtZTsKIAotQHByb3BlcnR5IChyZWFkb25seSkg
V0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwICpwYWdlR3JvdXAgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgiX2dyb3VwSWRlbnRpZmllciIsIG1hY29zKDEwLjEwLCBXS19NQUNf
VEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChyZWFkb25seSkgV0tXZWJQ
cm9jZXNzUGx1Z0luUGFnZUdyb3VwICpwYWdlR3JvdXAgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVCgiX2dyb3VwSWRlbnRpZmllciIsIG1hY29zKDEwLjEwLCAxMi4wKSwgaW9zKDgu
MCwgMTUuMCkpOwogCiBAcHJvcGVydHkgKHdlYWspIGlkIDxXS1dlYlByb2Nlc3NQbHVnSW5Mb2Fk
RGVsZWdhdGU+IGxvYWREZWxlZ2F0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9s
bGVyUHJpdmF0ZS5oCmluZGV4IDIxZTMwOTYzMDZkZmYxMDNlNGNmZjRkODhhOWNhYzdiMDZjYmM5
NWIuLmJkOTRiODI4YTIzNTM2NTU5YTI1Yzg1Zjk1NjAwMjhjZTIzYTU0MmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVn
SW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJQcml2YXRlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAKIAog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF91c2VzTm9uUGVyc2lzdGVudFdl
YnNpdGVEYXRhU3RvcmU7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJp
bmcgKl9ncm91cElkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJp
bmcgKl9ncm91cElkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1
LjApKTsKIAogKyAoaW5zdGFuY2V0eXBlKWxvb2tVcEJyb3dzaW5nQ29udGV4dEZyb21IYW5kbGU6
KFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlICopaGFuZGxlOwogCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5IGIvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vdmVyc2lvbl9uYW1lX21hcC5weQppbmRleCAxMDdiMGU1NDk3NzAz
MTM0Y2QxZTc3OTJiNjhhNWUxYTBjMjc3OWQ3Li4yMjViMWIzNDkyODA3NjEwODg1ZDQ5OGM4MzJm
OThjNzg2NTljNzkzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi92
ZXJzaW9uX25hbWVfbWFwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3Zl
cnNpb25fbmFtZV9tYXAucHkKQEAgLTYzLDEwICs2MywxMSBAQCBjbGFzcyBWZXJzaW9uTmFtZU1h
cChvYmplY3QpOgogICAgICAgICAgICAgICAgICdNb2phdmUnOiBWZXJzaW9uKDEwLCAxNCksCiAg
ICAgICAgICAgICAgICAgJ0NhdGFsaW5hJzogVmVyc2lvbigxMCwgMTUpLAogICAgICAgICAgICAg
ICAgICdCaWcgU3VyJzogVmVyc2lvbigxMSwgMCksCisgICAgICAgICAgICAgICAgJ01vbnRlcmV5
JzogVmVyc2lvbigxMiwgMCksCiAgICAgICAgICAgICB9LAotICAgICAgICAgICAgJ2lvcyc6IHNl
bGYuX2F1dG9tYXBfdG9fbWFqb3JfdmVyc2lvbignaU9TJywgbWluaW11bT1WZXJzaW9uKDEwKSwg
bWF4aW11bT1WZXJzaW9uKDE0KSksCi0gICAgICAgICAgICAndHZvcyc6IHNlbGYuX2F1dG9tYXBf
dG9fbWFqb3JfdmVyc2lvbigndHZPUycsIG1pbmltdW09VmVyc2lvbigxMCksIG1heGltdW09VmVy
c2lvbigxNCkpLAotICAgICAgICAgICAgJ3dhdGNob3MnOiBzZWxmLl9hdXRvbWFwX3RvX21ham9y
X3ZlcnNpb24oJ3dhdGNoT1MnLCBtaW5pbXVtPVZlcnNpb24oMSksIG1heGltdW09VmVyc2lvbig3
KSksCisgICAgICAgICAgICAnaW9zJzogc2VsZi5fYXV0b21hcF90b19tYWpvcl92ZXJzaW9uKCdp
T1MnLCBtaW5pbXVtPVZlcnNpb24oMTApLCBtYXhpbXVtPVZlcnNpb24oMTUpKSwKKyAgICAgICAg
ICAgICd0dm9zJzogc2VsZi5fYXV0b21hcF90b19tYWpvcl92ZXJzaW9uKCd0dk9TJywgbWluaW11
bT1WZXJzaW9uKDEwKSwgbWF4aW11bT1WZXJzaW9uKDE1KSksCisgICAgICAgICAgICAnd2F0Y2hv
cyc6IHNlbGYuX2F1dG9tYXBfdG9fbWFqb3JfdmVyc2lvbignd2F0Y2hPUycsIG1pbmltdW09VmVy
c2lvbigxKSwgbWF4aW11bT1WZXJzaW9uKDgpKSwKICAgICAgICAgICAgICd3aW4nOiB7CiAgICAg
ICAgICAgICAgICAgJ1dpbjEwJzogVmVyc2lvbigxMCksCiAgICAgICAgICAgICAgICAgJzguMSc6
IFZlcnNpb24oNiwgMyksCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431900</attachid>
            <date>2021-06-21 13:23:50 -0700</date>
            <delta_ts>2021-06-21 16:52:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227228-20210621132349.patch</filename>
            <type>text/plain</type>
            <size>131289</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBmZGM2ZmNiMzc5YjlkOTY5
MDM4M2M5NjVjNjU2NzM2N2M0YTJkMDUuLjFlZjIzOTMyNGJhOWRmNDM2NTY5NjM5Y2M4NDA4YWFk
MDBlNzUwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzUgQEAKKzIwMjEtMDYtMjEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgVEJBIG1hY3JvcyBmb3Ig
aU9TIDE1IC8gbWFjT1MgMTMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNzIyOAorICAgICAgICA8cmRhcjovLzc4NTgxMTM0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9X
ZWJLaXQueGNjb25maWc6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRs
ZS5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRG93bmxvYWQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRG93bmxvYWREZWxlZ2F0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3RvcmVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVJlY29yZFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0FwcEhpZ2hsaWdodC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
QXBwSGlnaGxpZ2h0RGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0FwcGxpY2F0aW9uTWFuaWZlc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckFzc2VydGlv
blJlc3BvbnNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNh
dG9yQXR0YWNobWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVu
dGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0F1dGhlbnRpY2F0b3JSZXNwb25zZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tEb3dubG9hZERlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tJbnNwZWN0b3IuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3Bl
Y3RvckNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
c3BlY3RvckV4dGVuc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbEVudGl0eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbFBhcmFt
ZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRl
bnRpYWxSZWx5aW5nUGFydHlFbnRpdHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L19XS1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbFVzZXJFbnRpdHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9s
bGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9u
VG9rZW4uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25Bc3NlcnRpb25SZXNwb25zZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEZvclRlc3RpbmcuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9j
ZXNzUGx1Z0luRnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3Vw
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXJQcml2YXRlLmg6CisKIDIwMjEtMDYtMjEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjc1NDk2KTog
V2ViU29ja2V0IE1lc3NhZ2UgdG9vIGxvbmcgd2hlbiBtZXNzYWdlIGlzIGxhcmdlciB0aGFuIDFt
YgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25m
aWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCBl
ZDU3YmYzODNlZTE0N2QyNzRhMzBhOWM1NzAzN2VmZjA2MDg5OGRjLi45ZjdjY2U1MTM3Y2U2ZmZm
MjRjMDViNjc2MTZjMGQ2MGYzZjFlYTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL1dlYktpdC54Y2NvbmZpZwpAQCAtMTc1LDEwICsxNzUsMTAgQEAgRVhDTFVERURfTUFDT1Nf
UExVR0lOX0ZJTEVfTkFNRVNbc2RrPWlwaG9uZSpdID0gUGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWIg
U2VjSXRlbVMKIElOU1RBTExIRFJTX1NDUklQVF9QSEFTRSA9IFlFUzsKIEFQUExZX1JVTEVTX0lO
X0NPUFlfSEVBREVSUyA9ICQoV0tfVVNFX05FV19CVUlMRF9TWVNURU0pOwogCi1XS19GUkFNRVdP
UktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEW3Nkaz1tYWNvc3gqXSA9ICQoV0tfRlJB
TUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRCQoV0tfTUFDT1NfMTIwMCkpOwot
V0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRF9NQUNPU19CRUZPUkVf
MTIwMCA9IFlFUzsKLVdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRURb
c2RrPWlwaG9uZSpdID0gJChXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FC
TEVEJChXS19JT1NfMTUpKTsKLVdLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElT
QUJMRURfSU9TX0JFRk9SRV8xNSA9IFlFUzsKK1dLX0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NF
U1NJTkdfRElTQUJMRURbc2RrPW1hY29zeCpdID0gJChXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQ
Uk9DRVNTSU5HX0RJU0FCTEVEJChXS19NQUNPU18xMzAwKSk7CitXS19GUkFNRVdPUktfSEVBREVS
X1BPU1RQUk9DRVNTSU5HX0RJU0FCTEVEX01BQ09TX0JFRk9SRV8xMzAwID0gWUVTOworV0tfRlJB
TUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRFtzZGs9aXBob25lKl0gPSAkKFdL
X0ZSQU1FV09SS19IRUFERVJfUE9TVFBST0NFU1NJTkdfRElTQUJMRUQkKFdLX0lPU18xNikpOwor
V0tfRlJBTUVXT1JLX0hFQURFUl9QT1NUUFJPQ0VTU0lOR19ESVNBQkxFRF9JT1NfQkVGT1JFXzE2
ID0gWUVTOwogCiBXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHUyA9ICQoV0tfUkVMT0NB
VEFCTEVfRlJBTUVXT1JLX0xERkxBR1NfJChXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktTKV8kKFdL
X1BMQVRGT1JNX05BTUUpKTsKIFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTX1lFU19t
YWNvc3ggPSAtV2wsLW5vdF9mb3JfZHlsZF9zaGFyZWRfY2FjaGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQ29jb2EvV0tGb3VuZGF0aW9uLmgKaW5kZXggOTk4Y2U5MTBmMWVkNzEyMWRl
NDg3OGFiYzcyODJmM2E4NTViNmIwOS4uNDJiNmM3ZjdhMGY0NDMwNGIzMTMzNjg3ZDA3NTY3NTY2
N2E1NjJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLRm91
bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0ZvdW5kYXRp
b24uaApAQCAtNDgsNyArNDgsNyBAQAogCiAjZGVmaW5lIFdLX0FQSV9BVkFJTEFCTEUoLi4uKQog
I2RlZmluZSBXS19BUElfVU5BVkFJTEFCTEUoLi4uKQotI2RlZmluZSBXS19DTEFTU19BVkFJTEFC
TEUoLi4uKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2RlZmluZSBX
S19DTEFTU19BVkFJTEFCTEUoLi4uKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0
IikpKSBXS19BUElfQVZBSUxBQkxFKF9fVkFfQVJHU19fKQogI2RlZmluZSBXS19BUElfREVQUkVD
QVRFRChfbWVzc2FnZSwgLi4uKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKF9tZXNzYWdlKSkp
CiAjZGVmaW5lIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoX3JlcGxhY2VtZW50
LCAuLi4pIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoInVzZSAiICNfcmVwbGFjZW1lbnQpKSkK
ICNkZWZpbmUgV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKF9yZXBsYWNlbWVu
dCwgLi4uKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKSBfX2F0dHJpYnV0
ZV9fKChkZXByZWNhdGVkKCJ1c2UgIiAjX3JlcGxhY2VtZW50KSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLRnJhbWVIYW5kbGUuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tGcmFtZUhhbmRsZS5oCmluZGV4IDViYjZiMDgzNTJiZDdl
OGQ4N2IzNDk0Nzc2ZTkyMmJhMjE1ZTNmYzkuLmRiMGQ5OTMyZWIwNzY4NTBhYTliZTk0MjkxMzE4
MDc2ZWE3ZTcwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9f
V0tGcmFtZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tG
cmFtZUhhbmRsZS5oCkBAIC0yOSw2ICsyOSw2IEBACiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3Mo
MTAuMTApLCBpb3MoOC4wKSkKIEBpbnRlcmZhY2UgX1dLRnJhbWVIYW5kbGUgOiBOU09iamVjdCA8
TlNDb3B5aW5nLCBOU1NlY3VyZUNvZGluZz4KIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSB1aW50NjRfdCBmcmFtZUlEIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIHVpbnQ2
NF90IGZyYW1lSUQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAog
QGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90
ZU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1Jl
bW90ZU9iamVjdEludGVyZmFjZS5oCmluZGV4IDMxNTI4ODJlZWRmNTg4YzU4MjM0NGRlZWNlODhh
NDU1YTc2OWMzZTEuLmU4YzdhNzQ0ZTVlNzI4MDI2ZjY1ODg5YTI3NjIzNDgwOTA4YTdiMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RJ
bnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3Rl
T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTM5LDcgKzM5LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEwLjEwKSwgaW9zKDguMCkpCiAtIChOU1NldCAqKWNsYXNzZXNGb3JTZWxlY3RvcjooU0VM
KXNlbGVjdG9yIGFyZ3VtZW50SW5kZXg6KE5TVUludGVnZXIpYXJndW1lbnRJbmRleCBvZlJlcGx5
OihCT09MKW9mUmVwbHk7CiAtICh2b2lkKXNldENsYXNzZXM6KE5TU2V0ICopY2xhc3NlcyBmb3JT
ZWxlY3RvcjooU0VMKXNlbGVjdG9yIGFyZ3VtZW50SW5kZXg6KE5TVUludGVnZXIpYXJndW1lbnRJ
bmRleCBvZlJlcGx5OihCT09MKW9mUmVwbHk7CiAKLS0gKE5TU2V0ICopY2xhc3Nlc0ZvclNlbGVj
dG9yOihTRUwpc2VsZWN0b3IgYXJndW1lbnRJbmRleDooTlNVSW50ZWdlcilhcmd1bWVudEluZGV4
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIi1jbGFzc2VzRm9yU2VsZWN0b3I6
YXJndW1lbnRJbmRleDpvZlJlcGx5OiIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDgu
MCwgV0tfSU9TX1RCQSkpOwotLSAodm9pZClzZXRDbGFzc2VzOihOU1NldCAqKWNsYXNzZXMgZm9y
U2VsZWN0b3I6KFNFTClzZWxlY3RvciBhcmd1bWVudEluZGV4OihOU1VJbnRlZ2VyKWFyZ3VtZW50
SW5kZXggV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLXNldENsYXNzZXM6Zm9y
U2VsZWN0b3I6YXJndW1lbnRJbmRleDpvZlJlcGx5OiIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJB
KSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOworLSAoTlNTZXQgKiljbGFzc2VzRm9yU2VsZWN0b3I6
KFNFTClzZWxlY3RvciBhcmd1bWVudEluZGV4OihOU1VJbnRlZ2VyKWFyZ3VtZW50SW5kZXggV0tf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiLWNsYXNzZXNGb3JTZWxlY3Rvcjphcmd1
bWVudEluZGV4Om9mUmVwbHk6IiwgbWFjb3MoMTAuMTAsIDEyLjApLCBpb3MoOC4wLCAxNS4wKSk7
CistICh2b2lkKXNldENsYXNzZXM6KE5TU2V0ICopY2xhc3NlcyBmb3JTZWxlY3RvcjooU0VMKXNl
bGVjdG9yIGFyZ3VtZW50SW5kZXg6KE5TVUludGVnZXIpYXJndW1lbnRJbmRleCBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCItc2V0Q2xhc3Nlczpmb3JTZWxlY3Rvcjphcmd1bWVu
dEluZGV4Om9mUmVwbHk6IiwgbWFjb3MoMTAuMTAsIDEyLjApLCBpb3MoOC4wLCAxNS4wKSk7CiAK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nv
bnRlbnRSdWxlTGlzdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0NvbnRlbnRSdWxlTGlzdFByaXZhdGUuaAppbmRleCBkY2IzMDU1MWRmZWRjN2Y4ODI1NTBm
MDM3MjE5ZTZiYWZkMTcxYTFkLi44MjY0NmFmN2NmYTY4NTFlNjljNjQ5NTlkMDQ3MmQyNTFiZTE3
ODU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250
ZW50UnVsZUxpc3RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQ29udGVudFJ1bGVMaXN0UHJpdmF0ZS5oCkBAIC0yNyw2ICsyNyw2IEBACiAKIEBpbnRl
cmZhY2UgV0tDb250ZW50UnVsZUxpc3QgKFdLUHJpdmF0ZSkKIAotKyAoQk9PTClfc3VwcG9ydHNS
ZWd1bGFyRXhwcmVzc2lvbjooTlNTdHJpbmcgKilyZWdleCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworKyAoQk9PTClfc3VwcG9ydHNSZWd1bGFy
RXhwcmVzc2lvbjooTlNTdHJpbmcgKilyZWdleCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjAp
LCBpb3MoMTUuMCkpOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tEb3dubG9hZC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRG93bmxvYWQuaAppbmRleCAyMjA0ZTNiZDgxZDNkYjNkZTNiNzgyN2MzNWZkN2E2MWYx
MDRlNjRlLi5lNjBjY2RmODE5OWJhMTUyMDRhMzgxZDk1OTI5MjJlZThiMDU5YmVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tEb3dubG9hZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Rvd25sb2FkLmgKQEAgLTMzLDcg
KzMzLDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUo
bWFjb3MoMTIuMCksIGlvcygxNS4wKSkKIEBpbnRlcmZhY2UgV0tEb3dubG9hZCA6IE5TT2JqZWN0
PE5TUHJvZ3Jlc3NSZXBvcnRpbmc+CiAKIC8qIEBhYnN0cmFjdCBUaGUgcmVxdWVzdCB1c2VkIHRv
IGluaXRpYXRlIHRoaXMgZG93bmxvYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tEb3dubG9hZERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tEb3dubG9hZERlbGVnYXRlLmgKaW5kZXggZWI5MjEzODY1ZmI2YTM4
MDg4NDZjMTdiYTI0MjkyZDNjMjhiODM0Zi4uZTgzNGIyNzIxNmUzMWNmZmI0MTFkOTYxOTEwZGM3
Nzk2YjhjN2VmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLRG93bmxvYWREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Rvd25sb2FkRGVsZWdhdGUuaApAQCAtMzYsNyArMzYsNyBAQAogdHlwZWRlZiBOU19F
TlVNKE5TSW50ZWdlciwgV0tEb3dubG9hZFJlZGlyZWN0UG9saWN5KSB7CiAgICAgV0tEb3dubG9h
ZFJlZGlyZWN0UG9saWN5Q2FuY2VsLAogICAgIFdLRG93bmxvYWRSZWRpcmVjdFBvbGljeUFsbG93
LAotfSBOU19TV0lGVF9OQU1FKFdLRG93bmxvYWQuUmVkaXJlY3RQb2xpY3kpIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IE5TX1NXSUZUX05B
TUUoV0tEb3dubG9hZC5SZWRpcmVjdFBvbGljeSkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4w
KSwgaW9zKDE1LjApKTsKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3Jl
UHJpdmF0ZS5oCmluZGV4IDdlMTk0M2VmMjhlN2IzMjRjYTU4ZDFlMTFiZWVlNDdjYTBlYWZlNmEu
LjQzYjUzZjAwNDFjZmVlNzMxYWExZGQ0MzYwOTc1YTE4MGViY2M2OTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVTdG9yZVByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29va2llU3Rv
cmVQcml2YXRlLmgKQEAgLTI3LDYgKzI3LDYgQEAKIAogQGludGVyZmFjZSBXS0hUVFBDb29raWVT
dG9yZSAoV0tQcml2YXRlKQogLSAodm9pZClfZ2V0Q29va2llc0ZvclVSTDooTlNVUkwgKil1cmwg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8TlNIVFRQQ29va2llICo+ICopKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7
Ci0tICh2b2lkKV9zZXRDb29raWVBY2NlcHRQb2xpY3k6KE5TSFRUUENvb2tpZUFjY2VwdFBvbGlj
eSlwb2xpY3kgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
Ci0tICh2b2lkKV9mbHVzaENvb2tpZXNUb0Rpc2tXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldENvb2tpZUFjY2VwdFBvbGljeToo
TlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKKy0gKHZvaWQpX2ZsdXNoQ29va2llc1RvRGlza1dpdGhDb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEyLjApLCBpb3MoMTUuMCkpOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRl
LmgKaW5kZXggZmUyZDkyNzRhNjA1NzllY2RjM2M5MzA5NDhkYjhjZmQyY2NjZGEzYi4uYjY1MzVm
OTQwYjJiYjJkYzAwNjA0NmJkNTE5YmJkMmIyZDRlOWNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tNZW51SXRlbUlkZW50aWZp
ZXJzUHJpdmF0ZS5oCkBAIC00Niw3ICs0Niw3IEBAIFdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcg
KiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJPcGVuTGlua0luTmV3V2luZG93IFdLX0FQCiBX
S19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyT3Bl
bk1lZGlhSW5OZXdXaW5kb3cgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4w
KSk7CiBXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlm
aWVyUGFzdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBXS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyUmVsb2Fk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwotV0tfRVhQT1JUIGV4
dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclJldmVhbEltYWdlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyUmV2ZWFs
SW1hZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIFdLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTZWFyY2hXZWIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CiBXS19FWFBPUlQgZXh0
ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyU2hvd0hpZGVNZWRpYUNv
bnRyb2xzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogV0tfRVhQ
T1JUIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclRvZ2dsZUVu
aGFuY2VkRnVsbFNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0KSwgaW9zKDEyLjAp
KTsKQEAgLTU1LDExICs1NSwxMSBAQCBXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3Qg
X1dLTWVudUl0ZW1JZGVudGlmaWVyVG9nZ2xlRnVsbFNjcmVlbiBXS19BUElfQQogV0tfRVhQT1JU
IGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IF9XS01lbnVJdGVtSWRlbnRpZmllclNoYXJlTWVudSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIFdLX0VYUE9SVCBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJTcGVlY2hNZW51IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOwogCi1XS19FWFBPUlQgZXh0ZXJu
IE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQWRkSGlnaGxpZ2h0VG9DdXJy
ZW50UXVpY2tOb3RlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7Ci1XS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1J
ZGVudGlmaWVyQWRkSGlnaGxpZ2h0VG9OZXdRdWlja05vdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJp
bmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJBZGRIaWdobGlnaHRUb0N1cnJlbnRRdWlj
a05vdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKK1dLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJBZGRIaWdobGln
aHRUb05ld1F1aWNrTm90ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkp
OwogCiAvLyBGSVhNRTogcmVtb3ZlIGJlbG93IGFmdGVyIHN0YWdpbmcgY29tcGxldGUuCi1XS19F
WFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQWRkSGln
aGxpZ2h0VG9DdXJyZW50R3JvdXAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKLVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tN
ZW51SXRlbUlkZW50aWZpZXJBZGRIaWdobGlnaHRUb05ld0dyb3VwIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitXS19FWFBPUlQgZXh0ZXJuIE5T
U3RyaW5nICogY29uc3QgX1dLTWVudUl0ZW1JZGVudGlmaWVyQWRkSGlnaGxpZ2h0VG9DdXJyZW50
R3JvdXAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKK1dLX0VYUE9S
VCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJBZGRIaWdobGln
aHRUb05ld0dyb3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAK
LVdLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50aWZpZXJU
cmFuc2xhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKK1dLX0VYUE9SVCBleHRlcm4gTlNTdHJpbmcgKiBjb25zdCBfV0tNZW51SXRlbUlkZW50
aWZpZXJUcmFuc2xhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25BY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRp
b25BY3Rpb24uaAppbmRleCA2ZTY4Njk5Mjc5MGZkODNlNWRkZGFmODA2YzEwNDgyMjMzZmRiMmRl
Li45ZGE0OTczMDdmMDM1OWFjY2Y1MDkwNGVlYmRlOGQ2YmI0MzZjOGUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvbi5o
CkBAIC03OCw3ICs3OCw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4
LjApKQogCiAvKiEgQGFic3RyYWN0IEEgdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB3ZWIg
Y29udGVudCB1c2VkIGEgZG93bmxvYWQgYXR0cmlidXRlIHRvIGluZGljYXRlIHRoYXQgdGhpcyBz
aG91bGQgYmUgZG93bmxvYWRlZC4KICovCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IEJPT0wgc2hvdWxkUGVyZm9ybURvd25sb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IEJPT0wgc2hvdWxkUGVyZm9ybURvd25sb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCks
IGlvcygxNS4wKSk7CiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkFjdGlvblBy
aXZhdGUuaAppbmRleCA1M2NjNWE5N2M3ZWE5MjU0YTMyNTA0YTRkZTY0ZjZjM2ZmM2U1YTZlLi40
ZGI2Njk0MzIzMjVmYzM3M2Q5MGIyOGYwNGEwMjc3ZGFkY2NkNTE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25BY3Rp
b25Qcml2YXRlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwg
V0tTeW50aGV0aWNDbGlja1R5cGUpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBfY2FuSGFuZGxlUmVxdWVzdDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBfc2hvdWxkT3BlbkV4dGVybmFsU2NoZW1lcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjExKSwgaW9zKDkuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9z
aG91bGRPcGVuQXBwTGlua3MgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMSksIGlvcyg5LjAp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkUGVyZm9ybURv
d25sb2FkIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoImRvd25sb2FkQXR0cmli
dXRlIiwgbWFjb3MoMTAuMTUsIFdLX01BQ19UQkEpLCBpb3MoMTMuMCwgV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9zaG91bGRQZXJmb3JtRG93bmxv
YWQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiZG93bmxvYWRBdHRyaWJ1dGUi
LCBtYWNvcygxMC4xNSwgMTIuMCksIGlvcygxMy4wLCAxNS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgQk9PTCBfc2hvdWxkT3BlbkV4dGVybmFsVVJMcyBXS19BUElfREVQ
UkVDQVRFRCgidXNlIF9zaG91bGRPcGVuRXh0ZXJuYWxTY2hlbWVzIGFuZCBfc2hvdWxkT3BlbkFw
cExpbmtzIiwgbWFjb3MoMTAuMTEsIDEwLjExKSwgaW9zKDkuMCwgOS4wKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVn
YXRlLmgKaW5kZXggMzc0YWE0YzZjMThkMzNjZWRhZDMwNjA2OGY5ZTAzYWNhZTFjOGY5Yi4uYTZk
NTE1NmU4ZmQwNGJmZGRkOTY4OThhMzE2ODVjNDEzOWU2Njk0NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkgewogICAgIFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeUNhbmNlbCwKICAgICBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdywK
LSAgICBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lEb3dubG9hZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpLAorICAgIFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeURvd25sb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSks
CiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKIC8qISBAZW51
bSBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeQpAQCAtNTgsNyArNTgsNyBAQCB0eXBlZGVmIE5T
X0VOVU0oTlNJbnRlZ2VyLCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kpIHsKIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KSB7CiAgICAgV0tOYXZp
Z2F0aW9uUmVzcG9uc2VQb2xpY3lDYW5jZWwsCiAgICAgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xp
Y3lBbGxvdywKLSAgICBXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeURvd25sb2FkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSksCisgICAgV0tOYXZp
Z2F0aW9uUmVzcG9uc2VQb2xpY3lEb3dubG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjAp
LCBpb3MoMTUuMCkpLAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkp
OwogCiAvKiEgQSBjbGFzcyBjb25mb3JtaW5nIHRvIHRoZSBXS05hdmlnYXRpb25EZWxlZ2F0ZSBw
cm90b2NvbCBjYW4gcHJvdmlkZQpAQCAtMTc2LDcgKzE3Niw3IEBAIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KSB7CiAgQHBhcmFtIGRvd25sb2Fk
IFRoZSBkb3dubG9hZC4KICBAZGlzY3Vzc2lvbiBUaGUgZG93bmxvYWQgbmVlZHMgaXRzIGRlbGVn
YXRlIHRvIGJlIHNldCB0byByZWNlaXZlIHVwZGF0ZXMgYWJvdXQgaXRzIHByb2dyZXNzLgogKi8K
LS0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBuYXZpZ2F0aW9uQWN0aW9uOihX
S05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRpZEJlY29tZURvd25sb2FkOihX
S0Rvd25sb2FkICopZG93bmxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBu
YXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIGRp
ZEJlY29tZURvd25sb2FkOihXS0Rvd25sb2FkICopZG93bmxvYWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLyoKICBAYWJzdHJhY3QgQ2FsbGVkIGFmdGVyIHVz
aW5nIFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5RG93bmxvYWQuCkBAIC0xODUsNyArMTg1LDcg
QEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kp
IHsKICBAcGFyYW0gZG93bmxvYWQgVGhlIGRvd25sb2FkLgogIEBkaXNjdXNzaW9uIFRoZSBkb3du
bG9hZCBuZWVkcyBpdHMgZGVsZWdhdGUgdG8gYmUgc2V0IHRvIHJlY2VpdmUgdXBkYXRlcyBhYm91
dCBpdHMgcHJvZ3Jlc3MuCiAqLwotLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IG5hdmlnYXRpb25SZXNwb25zZTooV0tOYXZpZ2F0aW9uUmVzcG9uc2UgKiluYXZpZ2F0aW9uUmVz
cG9uc2UgZGlkQmVjb21lRG93bmxvYWQ6KFdLRG93bmxvYWQgKilkb3dubG9hZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZCl3ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG5hdmlnYXRpb25SZXNwb25zZTooV0tOYXZpZ2F0aW9u
UmVzcG9uc2UgKiluYXZpZ2F0aW9uUmVzcG9uc2UgZGlkQmVjb21lRG93bmxvYWQ6KFdLRG93bmxv
YWQgKilkb3dubG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwog
CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA4ZTNiNmEwOGQ0NmY0
N2VlMjFjMWQxMTYyNjNhY2NlMzI5ZGU3M2I1Li4wYjA5M2JlZTZhMGI3MjVjNTFmNWZiOWY0OGZk
MDBhOTgzMDIyYzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZS5oCkBAIC01NywxMSAr
NTcsMTEgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLU09BdXRob3JpemF0aW9uTG9h
ZFBvbGljeSkgewogICAgIF9XS1NPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3lJZ25vcmUsCiB9IFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogCi1zdGF0aWMgY29uc3Qg
V0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5IF9XS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lEb3dubG9h
ZCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS05hdmlnYXRpb25BY3Rpb25Q
b2xpY3lEb3dubG9hZCIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9T
X1RCQSkpID0gKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSkoV0tOYXZpZ2F0aW9uQWN0aW9uUG9s
aWN5QWxsb3cgKyAxKTsKK3N0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgX1dL
TmF2aWdhdGlvbkFjdGlvblBvbGljeURvd25sb2FkIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIldLTmF2aWdhdGlvbkFjdGlvblBvbGljeURvd25sb2FkIiwgbWFjb3MoMTAuMTAs
IDEyLjApLCBpb3MoOC4wLCAxNS4wKSkgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShXS05h
dmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvdyArIDEpOwogc3RhdGljIGNvbnN0IFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjExKSwgaW9zKDkuMCkpIF9X
S05hdmlnYXRpb25BY3Rpb25Qb2xpY3lBbGxvd1dpdGhvdXRUcnlpbmdBcHBMaW5rID0gKFdLTmF2
aWdhdGlvbkFjdGlvblBvbGljeSkoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3cgKyAyKTsK
IHN0YXRpYyBjb25zdCBXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3kgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKSBfV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5QWxsb3dJ
bk5ld1Byb2Nlc3MgPSAoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5KShfV0tOYXZpZ2F0aW9uQWN0
aW9uUG9saWN5QWxsb3dXaXRob3V0VHJ5aW5nQXBwTGluayArIDEpOwogCi1zdGF0aWMgY29uc3Qg
V0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVj
b21lRG93bmxvYWQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tOYXZpZ2F0
aW9uUmVzcG9uc2VQb2xpY3lEb3dubG9hZCIsIG1hY29zKDEwLjEwLCBXS19NQUNfVEJBKSwgaW9z
KDguMCwgV0tfSU9TX1RCQSkpID0gKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KShXS05hdmln
YXRpb25SZXNwb25zZVBvbGljeUFsbG93ICsgMSk7CitzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9u
UmVzcG9uc2VQb2xpY3kgX1dLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QmVjb21lRG93bmxvYWQg
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tOYXZpZ2F0aW9uUmVzcG9uc2VQ
b2xpY3lEb3dubG9hZCIsIG1hY29zKDEwLjEwLCAxMi4wKSwgaW9zKDguMCwgMTUuMCkpID0gKFdL
TmF2aWdhdGlvblJlc3BvbnNlUG9saWN5KShXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUFsbG93
ICsgMSk7CiAKIEBwcm90b2NvbCBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUgPFdLTmF2aWdh
dGlvbkRlbGVnYXRlPgogCkBAIC04NSw5ICs4NSw5IEBAIHN0YXRpYyBjb25zdCBXS05hdmlnYXRp
b25SZXNwb25zZVBvbGljeSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9h
CiAtIChOU0RhdGEgKilfd2ViQ3J5cHRvTWFzdGVyS2V5Rm9yV2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldzsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5n
ZSBzaG91bGRBbGxvd0xlZ2FjeVRMUzoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKLS0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTmVnb3RpYXRlTW9kZXJuVExTRm9yVVJMOihO
U1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWROZWdvdGlh
dGVNb2Rlcm5UTFNGb3JVUkw6KE5TVVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIu
MCksIGlvcygxNS4wKSk7CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
Y29udGV4dE1lbnVEaWRDcmVhdGVEb3dubG9hZDooV0tEb3dubG9hZCAqKWRvd25sb2FkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRleHRNZW51RGlkQ3JlYXRlRG93bmxv
YWQ6KFdLRG93bmxvYWQgKilkb3dubG9hZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBp
b3MoMTUuMCkpOwogCiAtICh2b2lkKV93ZWJWaWV3RGlkQmVnaW5OYXZpZ2F0aW9uR2VzdHVyZToo
V0tXZWJWaWV3ICopd2ViVmlldzsKIC8vIEl0ZW0gaXMgbmlsIGlmIHRoZSBnZXN0dXJlIGVuZGVk
IHdpdGhvdXQgbmF2aWdhdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlcy5oCmluZGV4IDgzN2UyMGIzN2JkM2NlMzgxMDhhOGU1OGNlOTAz
NmYwNjdkMjgzODEuLjlmNjM3ZmNlOTlkOTFiYTgxMzcwMTFjYjY5ZDE4MWE2YTdjYjRlZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2Vz
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
aApAQCAtNjIsNyArNjIsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3Mo
OC4wKSkKIAogLyohIEBhYnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVy
IHRleHQgaW50ZXJhY3Rpb24gaXMgZGlzYWJsZWQuCiAqLwotQHByb3BlcnR5IChub25hdG9taWMs
IGdldHRlcj1pc1RleHRJbnRlcmFjdGlvbkVuYWJsZWQpIEJPT0wgdGV4dEludGVyYWN0aW9uRW5h
YmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1RleHRJbnRlcmFjdGlvbkVuYWJsZWQp
IEJPT0wgdGV4dEludGVyYWN0aW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjAp
LCBpb3MoMTUuMCkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggNzY2Njk2MDA4ZmUy
YmI0YWQzZmY2MjEzZDI1YjM3YmZmZWRjMmJkMi4uODZjODk5NWRmYTgzYjU5OTNiODRmMjQ2OWM0
ZTAwYjU4N2ZiNDE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTU1LDcgKzU1LDcgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtKSB7CiAgICAg
X1dLUGl0Y2hDb3JyZWN0aW9uQWxnb3JpdGhtQmVzdEFsbEFyb3VuZCwKICAgICBfV0tQaXRjaENv
cnJlY3Rpb25BbGdvcml0aG1CZXN0Rm9yTXVzaWMsCiAgICAgX1dLUGl0Y2hDb3JyZWN0aW9uQWxn
b3JpdGhtQmVzdEZvclNwZWVjaCwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJB
KSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9z
KDE1LjApKTsKIAogQGNsYXNzIF9XS0V4cGVyaW1lbnRhbEZlYXR1cmU7CiBAY2xhc3MgX1dLSW50
ZXJuYWxEZWJ1Z0ZlYXR1cmU7CkBAIC0xNjcsMTAgKzE2NywxMCBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNJbnRlZ2VyLCBfV0tQaXRjaENvcnJlY3Rpb25BbGdvcml0aG0pIHsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQ6KSBCT09MIF9y
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUu
NCksIGlvcygxMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2aWNl
V29ya2VyRW50aXRsZW1lbnREaXNhYmxlZEZvclRlc3Rpbmc6KSBCT09MIF9zZXJ2aWNlV29ya2Vy
RW50aXRsZW1lbnREaXNhYmxlZEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4w
KSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFjY2Vzc2li
aWxpdHlJc29sYXRlZFRyZWVFbmFibGVkOikgQk9PTCBfYWNjZXNzaWJpbGl0eUlzb2xhdGVkVHJl
ZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNikpOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0U3BlZWNoUmVjb2duaXRpb25FbmFibGVkOikgQk9PTCBfc3BlZWNo
UmVjb2duaXRpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ6KSBCT09MIF9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVu
YWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBpdGNoQ29ycmVjdGlvbkFsZ29y
aXRobTopIF9XS1BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSBfcGl0Y2hDb3JyZWN0aW9uQWxnb3Jp
dGhtIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVNlc3Npb25FbmFibGVkOikg
Qk9PTCBfbWVkaWFTZXNzaW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
U3BlZWNoUmVjb2duaXRpb25FbmFibGVkOikgQk9PTCBfc3BlZWNoUmVjb2duaXRpb25FbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQ6KSBCT09M
IF9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
Mi4wKSwgaW9zKDE1LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFBpdGNo
Q29ycmVjdGlvbkFsZ29yaXRobTopIF9XS1BpdGNoQ29ycmVjdGlvbkFsZ29yaXRobSBfcGl0Y2hD
b3JyZWN0aW9uQWxnb3JpdGhtIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4w
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYVNlc3Npb25FbmFibGVk
OikgQk9PTCBfbWVkaWFTZXNzaW9uRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjAp
LCBpb3MoMTUuMCkpOwogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFdlYkdMRW5hYmxlZDopIEJPT0wgX3dlYkdMRW5hYmxlZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKaW5kZXggMzdhMGNjZjdh
YjU1MDliZDM4NWVlMTdhODVlNDdkMGIwYzk1NmE5NS4uOTQ1NmM0NGFjMzdhYTljNWQxNjU0M2I1
OGNkNzA0M2QxOThmZDgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmgKQEAgLTQ4LDkgKzQ4LDkgQEAKIAog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gKl9jb25maWd1cmF0aW9uOwogCi0tICh2b2lkKV9zZXRBbGxvd3NTcGVjaWZpY0hUVFBTQ2Vy
dGlmaWNhdGU6KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICop
aG9zdCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYnNpdGVEYXRhU3Rv
cmUuX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjpmb3JIb3N0OiIsIG1hY29zKDEwLjEwLCBXS19N
QUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0QWxsb3dzU3BlY2lm
aWNIVFRQU0NlcnRpZmljYXRlOihOU0FycmF5ICopY2VydGlmaWNhdGVDaGFpbiBmb3JIb3N0OihO
U1N0cmluZyAqKWhvc3QgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJz
aXRlRGF0YVN0b3JlLl9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46Zm9ySG9zdDoiLCBtYWNvcygx
MC4xMCwgMTIuMCksIGlvcyg4LjAsIDE1LjApKTsKIC0gKHZvaWQpX3NldENhbkhhbmRsZUhUVFBT
U2VydmVyVHJ1c3RFdmFsdWF0aW9uOihCT09MKXZhbHVlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmZhc3RTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25FbmFibGVkIiwgbWFjb3MoMTAuMTEsIDEwLjE1LjQpLCBpb3MoOS4wLCAx
My40KSk7Ci0tICh2b2lkKV9zZXRDb29raWVBY2NlcHRQb2xpY3k6KE5TSFRUUENvb2tpZUFjY2Vw
dFBvbGljeSlwb2xpY3kgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tIVFRQ
Q29va2llU3RvcmUuX3NldENvb2tpZUFjY2VwdFBvbGljeTpjb21wbGV0aW9uSGFuZGxlcjoiLCBt
YWNvcygxMC4xMCwgV0tfTUFDX1RCQSksIGlvcyg4LjAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
X3NldENvb2tpZUFjY2VwdFBvbGljeTooTlNIVFRQQ29va2llQWNjZXB0UG9saWN5KXBvbGljeSBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS0hUVFBDb29raWVTdG9yZS5fc2V0
Q29va2llQWNjZXB0UG9saWN5OmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEwLCAxMi4w
KSwgaW9zKDguMCwgMTUuMCkpOwogCiAtIChpZClfb2JqZWN0Rm9yQnVuZGxlUGFyYW1ldGVyOihO
U1N0cmluZyAqKXBhcmFtZXRlcjsKIC0gKHZvaWQpX3NldE9iamVjdDooaWQgPE5TQ29weWluZywg
TlNTZWN1cmVDb2Rpbmc+KW9iamVjdCBmb3JCdW5kbGVQYXJhbWV0ZXI6KE5TU3RyaW5nICopcGFy
YW1ldGVyOwpAQCAtNjIsNyArNjIsNyBAQAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBjb3B5KSBOU0RpY3Rpb25hcnkgKl9wbHVnaW5Mb2FkQ2xpZW50UG9saWNpZXMgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMykpOwogI2VuZGlmCiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3
ZWFrLCBzZXR0ZXI9X3NldERvd25sb2FkRGVsZWdhdGU6KSBpZCA8X1dLRG93bmxvYWREZWxlZ2F0
ZT4gX2Rvd25sb2FkRGVsZWdhdGUgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
V0tEb3dubG9hZC5kb3dubG9hZERlbGVnYXRlIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBp
b3MoOC4wLCBXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgd2Vhaywgc2V0dGVy
PV9zZXREb3dubG9hZERlbGVnYXRlOikgaWQgPF9XS0Rvd25sb2FkRGVsZWdhdGU+IF9kb3dubG9h
ZERlbGVnYXRlIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLRG93bmxvYWQu
ZG93bmxvYWREZWxlZ2F0ZSIsIG1hY29zKDEwLjEwLCAxMi4wKSwgaW9zKDguMCwgMTUuMCkpOwog
QHByb3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0QXV0b21hdGlvbkRlbGVnYXRl
OikgaWQgPF9XS0F1dG9tYXRpb25EZWxlZ2F0ZT4gX2F1dG9tYXRpb25EZWxlZ2F0ZSBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKIAogI2lmIFRBUkdFVF9PU19JUEhP
TkUKQEAgLTgyLDEyICs4MiwxMiBAQAogLSAodm9pZClfY2xlYXJTdXBwb3J0ZWRQbHVnaW5zIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCiAtICh2b2lkKV9yZWdp
c3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3Q6KE5TU3RyaW5nICopc2No
ZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwotLSAodm9pZClf
cmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZTooTlNTdHJpbmcgKilzY2hlbWUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3JlZ2lz
dGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3k6KE5TU3RyaW5nICop
c2NoZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Ci0tICh2b2lkKV9zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lOihO
U1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZTooTlNTdHJp
bmcgKilzY2hlbWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0g
KHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3k6
KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4w
KSk7CistICh2b2lkKV9zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lOihO
U1N0cmluZyAqKXNjaGVtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkp
OwogCi0tIChfV0tEb3dubG9hZCAqKV9kb3dubG9hZFVSTFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAq
KXJlcXVlc3Qgd2Vic2l0ZURhdGFTdG9yZTooV0tXZWJzaXRlRGF0YVN0b3JlICopZGF0YVN0b3Jl
IG9yaWdpbmF0aW5nV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcgX2Rvd25sb2FkUmVxdWVzdCIsIG1hY29zKDEw
LjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpOwotLSAoX1dLRG93bmxvYWQg
KilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0YSB3ZWJzaXRlRGF0
YVN0b3JlOihXS1dlYnNpdGVEYXRhU3RvcmUgKilkYXRhU3RvcmUgIHBhdGg6KE5TU3RyaW5nICop
cGF0aCBvcmlnaW5hdGluZ1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LnJlc3VtZURvd25sb2FkRnJvbVJlc3Vt
ZURhdGE6Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3Mo
OC4wLCBXS19JT1NfVEJBKSk7CistIChfV0tEb3dubG9hZCAqKV9kb3dubG9hZFVSTFJlcXVlc3Q6
KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qgd2Vic2l0ZURhdGFTdG9yZTooV0tXZWJzaXRlRGF0YVN0
b3JlICopZGF0YVN0b3JlIG9yaWdpbmF0aW5nV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlZpZXcgX2Rvd25sb2FkUmVx
dWVzdCIsIG1hY29zKDEwLjEwLCAxMi4wKSwgaW9zKDguMCwgMTUuMCkpOworLSAoX1dLRG93bmxv
YWQgKilfcmVzdW1lRG93bmxvYWRGcm9tRGF0YTooTlNEYXRhICopcmVzdW1lRGF0YSB3ZWJzaXRl
RGF0YVN0b3JlOihXS1dlYnNpdGVEYXRhU3RvcmUgKilkYXRhU3RvcmUgIHBhdGg6KE5TU3RyaW5n
ICopcGF0aCBvcmlnaW5hdGluZ1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0RF
UFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3LnJlc3VtZURvd25sb2FkRnJvbVJl
c3VtZURhdGE6Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3MoMTAuMTAsIDEyLjApLCBpb3MoOC4w
LCAxNS4wKSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxlIG5v
IHdlYiBjb250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KIC0gKHZvaWQpX3Rlcm1pbmF0ZVNl
cnZpY2VXb3JrZXJzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwpA
QCAtMTAyLDIzICsxMDIsMjMgQEAKIC0gKHNpemVfdClfd2ViUHJvY2Vzc0NvdW50SWdub3JpbmdQ
cmV3YXJtZWRBbmRDYWNoZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKIC0gKHNpemVfdClfcGx1Z2luUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAtIChzaXplX3QpX3NlcnZpY2VXb3JrZXJQcm9jZXNz
Q291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygxMi4wKSk7Ci0tICh2b2lk
KV9zeW5jTmV0d29ya1Byb2Nlc3NDb29raWVzIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIldLSFRUUENvb2tpZVN0b3JlLl9mbHVzaENvb2tpZXNUb0Rpc2tXaXRoQ29tcGxldGlv
bkhhbmRsZXI6IiwgbWFjb3MoMTAuMTMsIFdLX01BQ19UQkEpLCBpb3MoMTEuMCwgV0tfSU9TX1RC
QSkpOworLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llcyBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJXS0hUVFBDb29raWVTdG9yZS5fZmx1c2hDb29raWVzVG9EaXNr
V2l0aENvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDEwLjEzLCAxMi4wKSwgaW9zKDExLjAsIDE1
LjApKTsKIC0gKHZvaWQpX21ha2VOZXh0V2ViUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogLSAoTlNVSW50ZWdlcilf
bWF4aW11bVN1c3BlbmRlZFBhZ2VDb3VudCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQp
LCBpb3MoMTIuMikpOwogLSAoTlNVSW50ZWdlcilfcHJvY2Vzc0NhY2hlQ2FwYWNpdHkgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIC0gKE5TVUludGVnZXIpX3By
b2Nlc3NDYWNoZVNpemUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7
CiAtICh2b2lkKV9jbGVhcldlYlByb2Nlc3NDYWNoZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjE1LjQpLCBpb3MoMTMuNCkpOwogLSAodm9pZClfc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2Vy
UHJvY2VzczooQk9PTClmb3JjZVNlcnZpY2VXb3JrZXJQcm9jZXNzIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7Ci0tIChwaWRfdClfZ3B1UHJvY2Vzc0lkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
LS0gKEJPT0wpX3JlcXVlc3RXZWJQcm9jZXNzVGVybWluYXRpb246KHBpZF90KXBpZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAocGlkX3Qp
X2dwdVByb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CistIChCT09MKV9yZXF1ZXN0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uOihwaWRfdClwaWQg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLy8gVGVzdCBvbmx5
LiBSZXR1cm5zIHdlYiBwcm9jZXNzZXMgcnVubmluZyB3ZWIgcGFnZXMgKGRvZXMgbm90IGluY2x1
ZGUgd2ViIHByb2Nlc3NlcyBydW5uaW5nIHNlcnZpY2Ugd29ya2VycykKIC0gKHNpemVfdClfd2Vi
UGFnZUNvbnRlbnRQcm9jZXNzQ291bnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwg
aW9zKDExLjMpKTsKIAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnkg
d2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBsYXVuY2hlZC4KICsgKHZvaWQpX2ZvcmNlR2FtZUNv
bnRyb2xsZXJGcmFtZXdvcmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4w
KSk7Ci0rICh2b2lkKV9zZXRMaW5rZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotKyAodm9p
ZClfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrICh2b2lkKV9zZXRMaW5r
ZWRPbk9yQWZ0ZXJFdmVyeXRoaW5nRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApLCBpb3MoMTUuMCkpOworKyAodm9pZClfc2V0TGlua2VkT25PckJlZm9yZUV2ZXJ5dGhpbmdG
b3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC0g
KHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0RFUFJF
Q0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tXZWJWaWV3Ll9wcmVjb25uZWN0VG9TZXJ2ZXIiLCBt
YWNvcygxMC4xMy40LCAxMC4xNS40KSwgaW9zKDExLjMsIDEzLjQpKTsKIApAQCAtMTMyLDcgKzEz
Miw3IEBACiAtICh2b2lkKV9zZWVkUmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZvclRlc3RpbmdXaXRo
Rmlyc3RQYXJ0eTooTlNVUkwgKilmaXJzdFBhcnR5VVJMIHRoaXJkUGFydHk6KE5TVVJMICopdGhp
cmRQYXJ0eVVSTCBzaG91bGRTY2hlZHVsZU5vdGlmaWNhdGlvbjooQk9PTClzaG91bGRTY2hlZHVs
ZU5vdGlmaWNhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9u
SGFuZGxlciAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKIC0g
KHZvaWQpX2dhcmJhZ2VDb2xsZWN0SmF2YVNjcmlwdE9iamVjdHNGb3JUZXN0aW5nIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAtIChzaXplX3QpX251bWJlck9mQ29u
bmVjdGVkR2FtZXBhZHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlv
cygxNC4wKSk7Ci0tIChzaXplX3QpX251bWJlck9mQ29ubmVjdGVkSElER2FtZXBhZHNGb3JUZXN0
aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcyhXS19JT1NfVEJBKSk7CistIChz
aXplX3QpX251bWJlck9mQ29ubmVjdGVkSElER2FtZXBhZHNGb3JUZXN0aW5nIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTEuMCksIGlvcygxNS4wKSk7CiAtIChzaXplX3QpX251bWJlck9mQ29ubmVj
dGVkR2FtZUNvbnRyb2xsZXJGcmFtZXdvcmtHYW1lcGFkc0ZvclRlc3RpbmcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIC0gKHZvaWQpX3NldFVzZXNPbmx5SElER2Ft
ZXBhZFByb3ZpZGVyRm9yVGVzdGluZzooQk9PTCl1c2VzSElEUHJvdmlkZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGUuaAppbmRleCAxOTgwNjhjZjM1ZjYzYmYw
ZjdlYTE2NTI2YWJhNjVlZjViNjFiZjIwLi44MjAwM2VhMTEwOThmYTYwZTdhYzdlMmNkZDI5ZWE4
NjE1NGM3Y2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZS5oCkBAIC00OSwxMyArNDksMTMgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgV0tQZXJtaXNzaW9uRGVjaXNpb24pIHsKICAgICBXS1Blcm1pc3Npb25EZWNpc2lvblByb21w
dCwKICAgICBXS1Blcm1pc3Npb25EZWNpc2lvbkdyYW50LAogICAgIFdLUGVybWlzc2lvbkRlY2lz
aW9uRGVueSwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAog
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgV0tNZWRpYUNhcHR1cmVUeXBlKSB7CiAgICAgV0tN
ZWRpYUNhcHR1cmVUeXBlQ2FtZXJhLAogICAgIFdLTWVkaWFDYXB0dXJlVHlwZU1pY3JvcGhvbmUs
CiAgICAgV0tNZWRpYUNhcHR1cmVUeXBlQ2FtZXJhQW5kTWljcm9waG9uZSwKLX0gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLyohIEEgY2xhc3MgY29uZm9ybWlu
ZyB0byB0aGUgV0tVSURlbGVnYXRlIHByb3RvY29sIHByb3ZpZGVzIG1ldGhvZHMgZm9yCiAgcHJl
c2VudGluZyBuYXRpdmUgVUkgb24gYmVoYWxmIG9mIGEgd2VicGFnZS4KQEAgLTE0NCwxNCArMTQ0
LDE0IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTWVkaWFDYXB0dXJlVHlwZSkgewog
IEBwYXJhbSBkZWNpc2lvbkhhbmRsZXIgVGhlIGNvbXBsZXRpb24gaGFuZGxlciB0byBjYWxsIG9u
Y2UgdGhlIGRlY2lzaW9uIGlzIG1hZGUKICBAZGlzY3Vzc2lvbiBJZiBub3QgaW1wbGVtZW50ZWQs
IHRoZSByZXN1bHQgaXMgdGhlIHNhbWUgYXMgY2FsbGluZyB0aGUgZGVjaXNpb25IYW5kbGVyIHdp
dGggV0tQZXJtaXNzaW9uRGVjaXNpb25Qcm9tcHQuCiAgKi8KLS0gKHZvaWQpd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlUGVybWlzc2lvbkZvck9yaWdpbjoo
V0tTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAq
KWZyYW1lIHR5cGU6KFdLTWVkaWFDYXB0dXJlVHlwZSl0eXBlIGRlY2lzaW9uSGFuZGxlcjoodm9p
ZCAoXikoV0tQZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlciBXS19T
V0lGVF9BU1lOQ19OQU1FKHdlYlZpZXcoXzpkZWNpZGVNZWRpYUNhcHR1cmVQZXJtaXNzaW9uc0Zv
cjppbml0aWF0ZWRCeTp0eXBlOikpIFdLX1NXSUZUX0FTWU5DKDUpIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKXdlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVyZVBlcm1pc3Npb25Gb3JPcmlnaW46
KFdLU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4gaW5pdGlhdGVkQnlGcmFtZTooV0tGcmFtZUluZm8g
KilmcmFtZSB0eXBlOihXS01lZGlhQ2FwdHVyZVR5cGUpdHlwZSBkZWNpc2lvbkhhbmRsZXI6KHZv
aWQgKF4pKFdLUGVybWlzc2lvbkRlY2lzaW9uIGRlY2lzaW9uKSlkZWNpc2lvbkhhbmRsZXIgV0tf
U1dJRlRfQVNZTkNfTkFNRSh3ZWJWaWV3KF86ZGVjaWRlTWVkaWFDYXB0dXJlUGVybWlzc2lvbnNG
b3I6aW5pdGlhdGVkQnk6dHlwZTopKSBXS19TV0lGVF9BU1lOQyg1KSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAvKiEgQGFic3RyYWN0IEFsbG93cyB5b3VyIGFw
cCB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgdGhlIGdpdmVuIHNlY3VyaXR5IG9yaWdpbiBz
aG91bGQgaGF2ZSBhY2Nlc3MgdG8gdGhlIGRldmljZSdzIG9yaWVudGF0aW9uIGFuZCBtb3Rpb24u
CiAgQHBhcmFtIHNlY3VyaXR5T3JpZ2luIFRoZSBzZWN1cml0eSBvcmlnaW4gd2hpY2ggcmVxdWVz
dGVkIGFjY2VzcyB0byB0aGUgZGV2aWNlJ3Mgb3JpZW50YXRpb24gYW5kIG1vdGlvbi4KICBAcGFy
YW0gZnJhbWUgVGhlIGZyYW1lIHRoYXQgaW5pdGlhdGVkIHRoZSByZXF1ZXN0LgogIEBwYXJhbSBk
ZWNpc2lvbkhhbmRsZXIgVGhlIGRlY2lzaW9uIGhhbmRsZXIgdG8gY2FsbCBvbmNlIHRoZSBhcHAg
aGFzIG1hZGUgaXRzIGRlY2lzaW9uLgogICovCi0tICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgcmVxdWVzdERldmljZU9yaWVudGF0aW9uQW5kTW90aW9uUGVybWlzc2lvbkZvck9y
aWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1l
SW5mbyAqKWZyYW1lIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tQZXJtaXNzaW9uRGVjaXNp
b24gZGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1Nf
VEJBKSkgV0tfQVBJX1VOQVZBSUxBQkxFKG1hY29zKTsKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyByZXF1ZXN0RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25QZXJtaXNzaW9u
Rm9yT3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2luIGluaXRpYXRlZEJ5RnJhbWU6KFdL
RnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShXS1Blcm1pc3Npb25E
ZWNpc2lvbiBkZWNpc2lvbikpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDE1
LjApKSBXS19BUElfVU5BVkFJTEFCTEUobWFjb3MpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVn
YXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaAppbmRleCAyNDY5OTI1OTAwODRhZTNjMDY1M2NlMDRkNTFlMmJmNmVkOTI5
MTU5Li4xODA1OWVkYTA1YjcyYTQyZDM3OTVjZjc4ZWYxMTkyNzg0YzRiNTkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2
YXRlLmgKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVv
dGFGb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKXNlY3VyaXR5T3JpZ2luIGN1
cnJlbnRRdW90YToodW5zaWduZWQgbG9uZyBsb25nKWN1cnJlbnRRdW90YSB0b3RhbEJ5dGVzTmVl
ZGVkOih1bnNpZ25lZCBsb25nIGxvbmcpdG90YWxCeXRlc05lZWRlZCBkZWNpc2lvbkhhbmRsZXI6
KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90YSkpZGVjaXNpb25IYW5kbGVyOwog
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByaW50RnJhbWU6KF9XS0Zy
YW1lSGFuZGxlICopZnJhbWU7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHByaW50RnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUgcGRmRmlyc3RQYWdlU2l6ZTooQ0dT
aXplKXNpemUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByaW50RnJhbWU6KF9XS0Zy
YW1lSGFuZGxlICopZnJhbWUgcGRmRmlyc3RQYWdlU2l6ZTooQ0dTaXplKXNpemUgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC0gKHZvaWQpX3dlYlZpZXdDbG9zZTooV0tX
ZWJWaWV3ICopd2ViVmlldzsKIC0gKHZvaWQpX3dlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmU6KFdLV2ViVmlldyAqKXdlYlZpZXc7CkBAIC0xMjksNyArMTI5LDcgQEAgc3RydWN0IFVJ
RWRnZUluc2V0czsKIC0gKFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRyYWdEZXN0aW5hdGlvbkFjdGlvbk1hc2tGb3JEcmFnZ2luZ0luZm86KGlk
KWRyYWdnaW5nSW5mbyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY3JlYXRlV2ViVmlld1dpdGhD
b25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBmb3JO
YXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHdp
bmRvd0ZlYXR1cmVzOihXS1dpbmRvd0ZlYXR1cmVzICopd2luZG93RmVhdHVyZXMgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKFdLV2ViVmlldyAqd2ViVmlldykpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JG
cmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wg
YWxsb3dlZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcygxMS4zKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVl
c3RHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4qKW9yaWdp
biBpbml0aWF0ZWRCeUZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGRlY2lzaW9uSGFuZGxlcjoo
dm9pZCAoXikoV0tQZXJtaXNzaW9uRGVjaXNpb24gZGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlciBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRpb25QZXJt
aXNzaW9uRm9yT3JpZ2luOihXS1NlY3VyaXR5T3JpZ2luKilvcmlnaW4gaW5pdGlhdGVkQnlGcmFt
ZTooV0tGcmFtZUluZm8gKilmcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLUGVybWlz
c2lvbkRlY2lzaW9uIGRlY2lzaW9uKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcg
KiltZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgcmVzdWx0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZWRpdG9yU3RhdGVEaWRDaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWVk
aXRvclN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CkBA
IC0xNTIsMTkgKzE1MiwxOSBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogCiAtICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxTaGFyZUFjdGl2aXR5SXRlbXM6KE5TQXJyYXkg
KilhY3Rpdml0eUl0ZW1zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7
CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAqKW9yaWdpbiBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RTcGVlY2hSZWNvZ25p
dGlvblBlcm1pc3Npb25Gb3JPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4gZGVjaXNp
b25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCi0tICh2b2lkKV93ZWJWaWV3
RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbjooV0tXZWJWaWV3ICopd2ViVmlldyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9p
ZClfd2ViVmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluOihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKV93ZWJWaWV3RGlkRW5hYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbjooV0tX
ZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkp
OworLSAodm9pZClfd2ViVmlld0RpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWluOihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7
CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3RhcnRYUlNlc3Npb25X
aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFhSU2Vzc2lvbldpdGhDb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikoaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCiAKIC0g
KEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkSW5jbHVkZUFwcExpbmtB
Y3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDkuMCkpOwogLSAoTlNBcnJheSAqKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IGFjdGlvbnNGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVs
ZW1lbnQgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWRlZmF1
bHRBY3Rpb25zOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWROb3RI
YW5kbGVUYXBBc0NsaWNrQXRQb2ludDooQ0dQb2ludClwb2ludDsKLS0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTm90SGFuZGxlVGFwQXNNZWFuaW5nZnVsQ2xpY2tBdFBv
aW50OihDR1BvaW50KXBvaW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkTm90SGFuZGxlVGFwQXNNZWFu
aW5nZnVsQ2xpY2tBdFBvaW50OihDR1BvaW50KXBvaW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDE1
LjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xv
Y2F0aW9uQXV0aG9yaXphdGlvbkZvclVSTDooTlNVUkwgKil1cmwgZnJhbWU6KFdLRnJhbWVJbmZv
ICopZnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lz
aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtIChCT09MKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZpbGVVcGxvYWRQYW5lbENvbnRlbnRJc01hbmFnZWRXaXRo
SW5pdGlhdGluZ0ZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lOwogCkBAIC0xOTEsNyArMTkxLDcg
QEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKE5TQXJyYXkgKilfYXR0YWNobWVudExpc3RGb3JX
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNvdXJjZUlzTWFuYWdlZDooQk9PTCopc291cmNl
SXNNYW5hZ2VkIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIC0gKE5TVUludGVnZXIpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgaW5kZXhJbnRvQXR0YWNobWVudExpc3RGb3JFbGVt
ZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShp
b3MoMTAuMykpOwogLSAoVUlFZGdlSW5zZXRzKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGZpbmFsT2JzY3VyZWRJbnNldHNGb3JTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxW
aWV3IHdpdGhWZWxvY2l0eTooQ0dQb2ludCl2ZWxvY2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihp
bm91dCBDR1BvaW50ICopdGFyZ2V0Q29udGVudE9mZnNldCBXS19BUElfQVZBSUxBQkxFKGlvcyg5
LjApKTsKLS0gKFVJVmlldyAqKV9jb250ZXh0TWVudUhpbnRQcmV2aWV3Q29udGFpbmVyVmlld0Zv
cldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOworLSAoVUlWaWV3ICopX2NvbnRleHRNZW51SGludFByZXZpZXdDb250YWluZXJWaWV3
Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4w
KSk7CiAtIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
cHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0aW9uczoo
TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopYWN0aW9ucyBlbGVtZW50SW5mbzooX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JF
UExBQ0VNRU5UKCJ3ZWJWaWV3OmNvbnRleHRNZW51Q29uZmlndXJhdGlvbkZvckVsZW1lbnQ6Y29t
cGxldGlvbkhhbmRsZXI6IiwgaW9zKDkuMCwgMTMuMCkpOwogLSAoVUlWaWV3Q29udHJvbGxlciAq
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckFu
aW1hdGVkSW1hZ2VBdFVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dL
RWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudEluZm8gaW1hZ2VTaXplOihDR1NpemUpaW1hZ2VTaXplIFdLX0FQSV9E
RVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYlZpZXc6Y29udGV4dE1lbnVDb25maWd1cmF0
aW9uRm9yRWxlbWVudDpjb21wbGV0aW9uSGFuZGxlcjoiLCBpb3MoOS4wLCAxMy4wKSk7CiAtIChV
SVZpZXdDb250cm9sbGVyICopX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwpAQCAtMjIwLDcg
KzIyMCw3IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRpZERpc21pc3NGb2N1c2VkRWxlbWVudFZpZXdDb250cm9sbGVyOihVSVZp
ZXdDb250cm9sbGVyICopY29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMi4wKSk7CiAt
IChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGdlc3R1cmVSZWNvZ25pemVyQ291
bGRQaW5jaDooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDEzLjApKTsKIAotLSAoQk9PTClfd2ViVmlld0NhbkJlY29tZUZvY3VzZWQ6
KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwor
LSAoQk9PTClfd2ViVmlld0NhbkJlY29tZUZvY3VzZWQ6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0FWQUlMQUJMRShpb3MoMTUuMCkpOwogCiAjZWxzZSAvLyAhVEFSR0VUX09TX0lQSE9ORQog
CkBAIC0yNTYsMTkgKzI1NiwxOSBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogICAgIHByb3ZpZGUg
YSBjdXN0b20gX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbiB0aGF0IHNob3VsZCBiZSB1c2VkIHdo
ZW4gY3JlYXRpbmcgdGhlIFdlYiBJbnNwZWN0b3IuCiAgICAgQHBhcmFtIGluc3BlY3RvciBUaGUg
V2ViIEluc3BlY3RvciBpbnN0YW5jZSB0aGF0IGlzIGFib3V0IHRvIGJlIGluaXRpYWxpemVkLgog
ICovCi0tIChfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uICopX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY29uZmlndXJhdGlvbkZvckxvY2FsSW5zcGVjdG9yOihfV0tJbnNwZWN0b3IgKilp
bnNwZWN0b3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CistIChfV0tJbnNw
ZWN0b3JDb25maWd1cmF0aW9uICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29uZmln
dXJhdGlvbkZvckxvY2FsSW5zcGVjdG9yOihfV0tJbnNwZWN0b3IgKilpbnNwZWN0b3IgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSk7CiAKIC8qISBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gYSBX
ZWIgSW5zcGVjdG9yIGluc3RhbmNlIGlzIGF0dGFjaGVkIHRvIHRoaXMgV0tXZWJWaWV3LiBUaGlz
IGlzIG5vdCBjYWxsZWQgaW4gdGhlIGNhc2Ugb2YgcmVtb3RlIGluc3BlY3Rpb24uCiAgICAgQHBh
cmFtIHdlYlZpZXcgVGhlIFdLV2ViVmlldyBpbnN0YW5jZSBiZWluZyBpbnNwZWN0ZWQuCiAgICAg
QHBhcmFtIGluc3BlY3RvciBUaGUgV2ViIEluc3BlY3RvciBpbnN0YW5jZSBhdHRhY2hlZCB0byB0
aGlzIFdLV2ViVmlldy4KICAqLwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBkaWRBdHRhY2hMb2NhbEluc3BlY3RvcjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBkaWRBdHRhY2hMb2NhbEluc3BlY3RvcjooX1dLSW5zcGVjdG9yICopaW5z
cGVjdG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCkpOwogCiAvKiEgQGFic3RyYWN0IENh
bGxlZCBiZWZvcmUgY2xvc2luZyB0aGUgV2ViIEluc3BlY3RvciBpbnN0YW5jZSBmb3IgdGhpcyBX
S1dlYlZpZXcuIFRoaXMgaXMgbm90IGNhbGxlZCBpbiB0aGUgY2FzZSBvZiByZW1vdGUgaW5zcGVj
dGlvbi4KICAgICBAcGFyYW0gd2ViVmlldyBUaGUgV0tXZWJWaWV3IGluc3RhbmNlIGJlaW5nIGlu
c3BlY3RlZC4KICAgICBAcGFyYW0gaW5zcGVjdG9yIFRoZSBXZWIgSW5zcGVjdG9yIGluc3RhbmNl
IGJlaW5nIGNsb3NlZC4KICAqLwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyB3aWxsQ2xvc2VMb2NhbEluc3BlY3RvcjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyB3aWxsQ2xvc2VMb2NhbEluc3BlY3RvcjooX1dLSW5zcGVjdG9yICopaW5z
cGVjdG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCkpOwogCiAjZW5kaWYgLy8gIVRBUkdF
VF9PU19JUEhPTkUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VSTFNjaGVtZVRhc2tQcml2YXRlLmgKaW5kZXggNmQ1YTU4MTM3OGMzNTlhYTU3
ZDRkM2M4ZmMzZWY2N2ZjNzEyYWM3Mi4uMTJhNWU5ZGE5ZWMzYTZkMGUxNzc2YzJkMDUyNzAzZGFk
MWI1MjBhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VVJMU2NoZW1lVGFza1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oCkBAIC00Myw3ICs0Myw3IEBAIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiAgQW4gZXhjZXB0aW9uIHdpbGwgYmUg
dGhyb3duIGlmIHlvdSBtYWtlIGFueSBvdGhlciBjYWxsYmFja3MgdG8gdGhlIFdLVVJMU2NoZW1l
VGFzayB3aGlsZSB0aGlzIGNvbXBsZXRpb25IYW5kbGVyIGlzIHBlbmRpbmcsIG90aGVyIHRoYW4g
ZGlkRmFpbFdpdGhFcnJvcjouCiAgQW4gZXhjZXB0aW9uIHdpbGwgYmUgdGhyb3duIGlmIHlvdXIg
YXBwIGhhcyBiZWVuIHRvbGQgdG8gc3RvcCBsb2FkaW5nIHRoaXMgdGFzayB2aWEgdGhlIHJlZ2lz
dGVyZWQgV0tVUkxTY2hlbWVIYW5kbGVyIG9iamVjdC4KICAqLwotLSAodm9pZClfd2lsbFBlcmZv
cm1SZWRpcmVjdGlvbjooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlIG5ld1JlcXVlc3Q6KE5TVVJM
UmVxdWVzdCAqKXJlcXVlc3QgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMUmVxdWVz
dCAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2lsbFBlcmZvcm1SZWRpcmVjdGlvbjooTlNV
UkxSZXNwb25zZSAqKXJlc3BvbnNlIG5ld1JlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMUmVxdWVzdCAqKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZClf
ZGlkUGVyZm9ybVJlZGlyZWN0aW9uOihOU1VSTFJlc3BvbnNlICopcmVzcG9uc2UgbmV3UmVxdWVz
dDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdDsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBCT09MIF9yZXF1ZXN0T25seUlmQ2FjaGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTUpLCBpb3MoMTMuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5oCmluZGV4IDZlNDNiOGE1NTdiMWY3MmRiYjBmNDA5YzVhYzQ4YmJlMDRhMWVjYTgu
LjhjZDMxYzM4YzYwMDk2Yzc3YzBiYTdiYTI5NmE2MDg0OWZjMWQxMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKQEAgLTY2LDEzICs2NiwxMyBA
QCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS01lZGlhUGxheWJhY2tTdGF0ZSkgewogICAg
IFdLTWVkaWFQbGF5YmFja1N0YXRlUGxheWluZywKICAgICBXS01lZGlhUGxheWJhY2tTdGF0ZVBh
dXNlZCwKICAgICBXS01lZGlhUGxheWJhY2tTdGF0ZVN1c3BlbmRlZAotfSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworfSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBXS01lZGlhQ2FwdHVyZVN0YXRlKSB7CiAgICAgV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUsCiAg
ICAgV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZSwKICAgICBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0
ZWQsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8qISBA
YWJzdHJhY3QgQSBjb3B5IG9mIHRoZSBjb25maWd1cmF0aW9uIHdpdGggd2hpY2ggdGhlIHdlYiB2
aWV3IHdhcwogIGluaXRpYWxpemVkLiAqLwpAQCAtMzQyLDI3ICszNDIsMjcgQEAgdHlwZWRlZiBO
U19FTlVNKE5TSW50ZWdlciwgV0tNZWRpYUNhcHR1cmVTdGF0ZSkgewogLyohIEBhYnN0cmFjdCBD
bG9zZXMgYWxsIG91dC1vZi13aW5kb3cgbWVkaWEgcHJlc2VudGF0aW9ucyBpbiBhIFdLV2ViVmll
dy4KICBAZGlzY3Vzc2lvbiBJbmNsdWRlcyBwaWN0dXJlLWluLXBpY3R1cmUgYW5kIGZ1bGxzY3Jl
ZW4uCiAgKi8KLS0gKHZvaWQpY2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnNXaXRoQ29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF5fTnVsbGFibGUpKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lk
KWNsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
X051bGxhYmxlKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpOwogI2lmbmRlZiBfX3N3aWZ0X18KLS0gKHZvaWQpY2xvc2VBbGxN
ZWRpYVByZXNlbnRhdGlvbnM6KHZvaWQgKF5fTnVsbGFibGUpKHZvaWQpKWNvbXBsZXRpb25IYW5k
bGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoImNsb3NlQWxsTWVkaWFQcmVz
ZW50YXRpb25zV2l0aENvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDExLjMsIFdLX01BQ19UQkEp
LCBpb3MoMTQuNSwgV0tfSU9TX1RCQSkpOworLSAodm9pZCljbG9zZUFsbE1lZGlhUHJlc2VudGF0
aW9uczoodm9pZCAoXl9OdWxsYWJsZSkodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RF
UFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiY2xvc2VBbGxNZWRpYVByZXNlbnRhdGlvbnNXaXRo
Q29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3MoMTEuMywgMTIuMCksIGlvcygxNC41LCAxNS4wKSk7
CiAjZW5kaWYKIAogLyohIEBhYnN0cmFjdCBQYXVzZXMgbWVkaWEgcGxheWJhY2sgaW4gV0tXZWJW
aWV3LgogIEBkaXNjdXNzaW9uIFBhdXNlcyBtZWRpYSBwbGF5YmFjay4gTWVkaWEgaW4gdGhlIHBh
Z2UgY2FuIGJlIHJlc3RhcnRlZCBieSBjYWxsaW5nIHBsYXkoKSBvbiBhIG1lZGlhIGVsZW1lbnQg
b3IgcmVzdW1lKCkgb24gYW4gQXVkaW9Db250ZXh0IGluIEphdmFTY3JpcHQuIEEgdXNlciBjYW4g
YWxzbyB1c2UgbWVkaWEgY29udHJvbHMgdG8gcGxheSBtZWRpYSBjb250ZW50IGFmdGVyIGl0IGhh
cyBiZWVuIHBhdXNlZC4KICAqLwotLSAodm9pZClwYXVzZUFsbE1lZGlhUGxheWJhY2tXaXRoQ29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF5fTnVsbGFibGUpKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVy
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cist
ICh2b2lkKXBhdXNlQWxsTWVkaWFQbGF5YmFja1dpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
Xl9OdWxsYWJsZSkodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKICNpZm5kZWYgX19zd2lmdF9fCi0tICh2b2lkKXBhdXNlQWxs
TWVkaWFQbGF5YmFjazoodm9pZCAoXl9OdWxsYWJsZSkodm9pZCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgicGF1c2VBbGxNZWRpYVBsYXliYWNr
V2l0aENvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDExLjMsIFdLX01BQ19UQkEpLCBpb3MoMTQu
NSwgV0tfSU9TX1RCQSkpOworLSAodm9pZClwYXVzZUFsbE1lZGlhUGxheWJhY2s6KHZvaWQgKF5f
TnVsbGFibGUpKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoInBhdXNlQWxsTWVkaWFQbGF5YmFja1dpdGhDb21wbGV0aW9uSGFuZGxlcjoi
LCBtYWNvcygxMS4zLCAxMi4wKSwgaW9zKDE0LjUsIDE1LjApKTsKICNlbmRpZgogCiAvKiEgQGFi
c3RyYWN0IFN1c3BlbmRzIG9yIHJlc3VtZXMgYWxsIG1lZGlhIHBsYXliYWNrIGluIFdLV2ViVmll
dy4KICAgQHBhcmFtIHN1c3BlbmRlZCBXaGV0aGVyIG1lZGlhIHBsYXliYWNrIHNob3VsZCBiZSBz
dXNwZW5kZWQgb3IgcmVzdW1lZC4KICAgQGRpc2N1c3Npb24gSWYgc3VzcGVuZGVkIGlzIHRydWUs
IHRoaXMgcGF1c2VzIG1lZGlhIHBsYXliYWNrIGFuZCBibG9ja3MgYWxsIGF0dGVtcHRzIGJ5IHRo
ZSBwYWdlIG9yIHRoZSB1c2VyIHRvIHJlc3VtZSB1bnRpbCBzZXRBbGxNZWRpYVBsYXliYWNrU3Vz
cGVuZGVkIGlzIGNhbGxlZCBhZ2FpbiB3aXRoIHN1c3BlbmRlZCBzZXQgdG8gZmFsc2UuIE1lZGlh
IHBsYXliYWNrIHNob3VsZCBhbHdheXMgYmUgc3VzcGVuZGVkIGFuZCByZXN1bWVkIGluIHBhaXJz
LgogKi8KLS0gKHZvaWQpc2V0QWxsTWVkaWFQbGF5YmFja1N1c3BlbmRlZDooQk9PTClzdXNwZW5k
ZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF5fTnVsbGFibGUpKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CistICh2b2lkKXNldEFsbE1lZGlhUGxheWJhY2tTdXNwZW5kZWQ6KEJPT0wpc3VzcGVuZGVk
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheX051bGxhYmxlKSh2b2lkKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogI2lmbmRlZiBf
X3N3aWZ0X18KLS0gKHZvaWQpcmVzdW1lQWxsTWVkaWFQbGF5YmFjazoodm9pZCAoXiBfTnVsbGFi
bGUpKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoInNldEFsbE1lZGlhUGxheWJhY2tTdXNwZW5kZWQ6Y29tcGxldGlvbkhhbmRsZXI6Iiwg
bWFjb3MoMTEuMywgV0tfTUFDX1RCQSksIGlvcygxNC41LCBXS19JT1NfVEJBKSk7Ci0tICh2b2lk
KXN1c3BlbmRBbGxNZWRpYVBsYXliYWNrOih2b2lkICheX051bGxhYmxlKSh2b2lkKSljb21wbGV0
aW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJzZXRBbGxNZWRp
YVBsYXliYWNrU3VzcGVuZGVkOmNvbXBsZXRpb25IYW5kbGVyOiIsIG1hY29zKDExLjMsIFdLX01B
Q19UQkEpLCBpb3MoMTQuNSwgV0tfSU9TX1RCQSkpOworLSAodm9pZClyZXN1bWVBbGxNZWRpYVBs
YXliYWNrOih2b2lkICheIF9OdWxsYWJsZSkodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgic2V0QWxsTWVkaWFQbGF5YmFja1N1c3BlbmRl
ZDpjb21wbGV0aW9uSGFuZGxlcjoiLCBtYWNvcygxMS4zLCAxMi4wKSwgaW9zKDE0LjUsIDE1LjAp
KTsKKy0gKHZvaWQpc3VzcGVuZEFsbE1lZGlhUGxheWJhY2s6KHZvaWQgKF5fTnVsbGFibGUpKHZv
aWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
InNldEFsbE1lZGlhUGxheWJhY2tTdXNwZW5kZWQ6Y29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3Mo
MTEuMywgMTIuMCksIGlvcygxNC41LCAxNS4wKSk7CiAjZW5kaWYKIAogLyohIEBhYnN0cmFjdCBH
ZXQgdGhlIGN1cnJlbnQgbWVkaWEgcGxheWJhY2sgc3RhdGUgb2YgYSBXS1dlYlZpZXcuCkBAIC0z
NzIsMjIgKzM3MiwyMiBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS01lZGlhQ2FwdHVy
ZVN0YXRlKSB7CiAgSWYgbm8gbWVkaWEgcGxheWJhY2sgZXhpc3RzIGluIHRoZSBjdXJyZW50IFdL
V2ViVmlldywgV0tNZWRpYVBsYXliYWNrU3RhdGUgd2lsbCBlcXVhbAogIFdLTWVkaWFQbGF5YmFj
a1N0YXRlTm9uZS4KICAqLwotLSAodm9pZClyZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlV2l0aENv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS01lZGlhUGxheWJhY2tTdGF0ZSkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpcmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZVdpdGhDb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoV0tNZWRpYVBsYXliYWNrU3RhdGUpKWNvbXBsZXRpb25IYW5kbGVyIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAjaWZuZGVmIF9fc3dpZnRf
XwotLSAodm9pZClyZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlOih2b2lkICheKShXS01lZGlhUGxh
eWJhY2tTdGF0ZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVCgicmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoi
LCBtYWNvcygxMS4zLCBXS19NQUNfVEJBKSwgaW9zKDE0LjUsIFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpcmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZToodm9pZCAoXikoV0tNZWRpYVBsYXliYWNrU3Rh
dGUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQo
InJlcXVlc3RNZWRpYVBsYXliYWNrU3RhdGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6IiwgbWFjb3Mo
MTEuMywgMTIuMCksIGlvcygxNC41LCAxNS4wKSk7CiAjZW5kaWYKIAogLyohIEBhYnN0cmFjdCBU
aGUgc3RhdGUgb2YgY2FtZXJhIGNhcHR1cmUgb24gYSB3ZWIgcGFnZS4KICBAZGlzY3Vzc2lvbiBA
bGluayBXS1dlYlZpZXcgQC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxp
YW50CiAgZm9yIHRoaXMgcHJvcGVydHkuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgV0tNZWRpYUNhcHR1cmVTdGF0ZSBjYW1lcmFDYXB0dXJlU3RhdGUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgV0tNZWRpYUNhcHR1cmVTdGF0ZSBjYW1lcmFDYXB0dXJlU3RhdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLyohIEBhYnN0cmFj
dCBUaGUgc3RhdGUgb2YgbWljcm9waG9uZSBjYXB0dXJlIG9uIGEgd2ViIHBhZ2UuCiAgQGRpc2N1
c3Npb24gQGxpbmsgV0tXZWJWaWV3IEAvbGluayBpcyBrZXktdmFsdWUgb2JzZXJ2aW5nIChLVk8p
IGNvbXBsaWFudAogIGZvciB0aGlzIHByb3BlcnR5LgogICovCi1AcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIFdLTWVkaWFDYXB0dXJlU3RhdGUgbWljcm9waG9uZUNhcHR1cmVTdGF0ZSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS01lZGlhQ2FwdHVyZVN0YXRlIG1pY3JvcGhv
bmVDYXB0dXJlU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsK
IAogLyohIEBhYnN0cmFjdCBTZXQgY2FtZXJhIGNhcHR1cmUgc3RhdGUgb2YgYSBXS1dlYlZpZXcu
CiAgQHBhcmFtIHN0YXRlIFN0YXRlIHRvIGFwcGx5IGZvciBjYXB0dXJlLgpAQCAtMzk3LDcgKzM5
Nyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLTWVkaWFDYXB0dXJlU3RhdGUpIHsK
ICBJZiB2YWx1ZSBpcyBXS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQsIGFueSBhY3RpdmUgY2FtZXJh
IGNhcHR1cmUgd2lsbCBiZWNvbWUgbXV0ZWQuCiAgSWYgdmFsdWUgaXMgV0tNZWRpYUNhcHR1cmVT
dGF0ZUFjdGl2ZSwgYW55IG11dGVkIGNhbWVyYSBjYXB0dXJlIHdpbGwgYmVjb21lIGFjdGl2ZS4K
ICAqLwotLSAodm9pZClzZXRDYW1lcmFDYXB0dXJlU3RhdGU6KFdLTWVkaWFDYXB0dXJlU3RhdGUp
c3RhdGUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF5fTnVsbGFibGUpKHZvaWQpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CistICh2b2lkKXNldENhbWVyYUNhcHR1cmVTdGF0ZTooV0tNZWRpYUNhcHR1cmVTdGF0
ZSlzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXl9OdWxsYWJsZSkodm9pZCkpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAog
LyohIEBhYnN0cmFjdCBTZXQgbWljcm9waG9uZSBjYXB0dXJlIHN0YXRlIG9mIGEgV0tXZWJWaWV3
LgogIEBwYXJhbSBzdGF0ZSBzdGF0ZSB0byBhcHBseSBmb3IgY2FwdHVyZS4KQEAgLTQwNyw3ICs0
MDcsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS01lZGlhQ2FwdHVyZVN0YXRlKSB7
CiAgSWYgdmFsdWUgaXMgV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkLCBhbnkgYWN0aXZlIG1pY3Jv
cGhvbmUgY2FwdHVyZSB3aWxsIGJlY29tZSBtdXRlZC4KICBJZiB2YWx1ZSBpcyBXS01lZGlhQ2Fw
dHVyZVN0YXRlQWN0aXZlLCBhbnkgbXV0ZWQgbWljcm9waG9uZSBjYXB0dXJlIHdpbGwgYmVjb21l
IGFjdGl2ZS4KICAqLwotLSAodm9pZClzZXRNaWNyb3Bob25lQ2FwdHVyZVN0YXRlOihXS01lZGlh
Q2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheX051bGxhYmxlKSh2
b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClzZXRNaWNyb3Bob25lQ2FwdHVyZVN0YXRlOihX
S01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheX051bGxh
YmxlKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjAp
LCBpb3MoMTUuMCkpOwogCiAvKiEgQGFic3RyYWN0IEdldCBhIHNuYXBzaG90IGZvciB0aGUgdmlz
aWJsZSB2aWV3cG9ydCBvZiBXS1dlYlZpZXcuCiAgQHBhcmFtIHNuYXBzaG90Q29uZmlndXJhdGlv
biBBbiBvYmplY3QgdGhhdCBzcGVjaWZpZXMgaG93IHRoZSBzbmFwc2hvdCBpcyBjb25maWd1cmVk
LgpAQCAtNTEyLDE0ICs1MTIsMTQgQEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5
cGVXZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKICBAcGFyYW0g
Y29tcGxldGlvbkhhbmRsZXIgQSBibG9jayBjYWxsZWQgd2hlbiB0aGUgZG93bmxvYWQgaGFzIHN0
YXJ0ZWQuCiAgQGRpc2N1c3Npb24gVGhlIGRvd25sb2FkIG5lZWRzIGl0cyBkZWxlZ2F0ZSB0byBi
ZSBzZXQgaW4gdGhlIGNvbXBsZXRpb25IYW5kbGVyIBN0byByZWNlaXZlIHVwZGF0ZXMgYWJvdXQg
aXRzIHByb2dyZXNzLgogICovCi0tICh2b2lkKXN0YXJ0RG93bmxvYWRVc2luZ1JlcXVlc3Q6KE5T
VVJMUmVxdWVzdCAqKXJlcXVlc3QgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoV0tEb3dubG9h
ZCAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClzdGFydERvd25sb2FkVXNpbmdSZXF1ZXN0OihO
U1VSTFJlcXVlc3QgKilyZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKFdLRG93bmxv
YWQgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9z
KDE1LjApKTsKIAogLyogQGFic3RyYWN0IFJlc3VtZXMgYSBkb3dubG9hZCB0aGF0IGZhaWxlZCBv
ciB3YXMgY2FuY2VsZWQuCiAgQHBhcmFtIHJlc3VtZURhdGEgRGF0YSBmcm9tIGEgV0tEb3dubG9h
ZERlbGVnYXRlJ3MgZGlkRmFpbFdpdGhFcnJvciBvciBhIFdLRG93bmxvYWQncyBjYW5jZWwgY29t
cGxldGlvbkhhbmRsZXIuCiAgQHBhcmFtIGNvbXBsZXRpb25IYW5kbGVyIEEgYmxvY2sgY2FsbGVk
IHdoZW4gdGhlIGRvd25sb2FkIGhhcyByZXN1bWVkLgogIEBkaXNjdXNzaW9uIFRoZSBkb3dubG9h
ZCBuZWVkcyBpdHMgZGVsZWdhdGUgdG8gYmUgc2V0IGluIHRoZSBjb21wbGV0aW9uSGFuZGxlciB0
byByZWNlaXZlIHVwZGF0ZXMgYWJvdXQgaXRzIHByb2dyZXNzLgogICovCi0tICh2b2lkKXJlc3Vt
ZURvd25sb2FkRnJvbVJlc3VtZURhdGE6KE5TRGF0YSAqKXJlc3VtZURhdGEgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQoXikoV0tEb3dubG9hZCAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClyZXN1
bWVEb3dubG9hZEZyb21SZXN1bWVEYXRhOihOU0RhdGEgKilyZXN1bWVEYXRhIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkKF4pKFdLRG93bmxvYWQgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLyogQGFic3RyYWN0IFRoZSBtZWRp
YSB0eXBlIGZvciB0aGUgV0tXZWJWaWV3CiAgQGRpc2N1c3Npb24gVGhlIHZhbHVlIG9mIG1lZGlh
VHlwZSB3aWxsIG92ZXJyaWRlIHRoZSBub3JtYWwgdmFsdWUgb2YgdGhlIENTUyBtZWRpYSBwcm9w
ZXJ0eS4KQEAgLTUzMiw3ICs1MzIsNyBAQCBUaGUgdW5pZm9ybSB0eXBlIGlkZW50aWZpZXIga1VU
VHlwZVdlYkFyY2hpdmUgY2FuIGJlIHVzZWQgZ2V0IHRoZSByZWxhdGVkIHBhc3RlYgogIEBkaXNj
dXNzaW9uIFRoZSBpbnRlcmFjdGlvbiBzdGF0ZSAoYmFjay1mb3J3YXJkIGxpc3QsIGN1cnJlbnRs
eSBsb2FkZWQgcGFnZSwgc2Nyb2xsIHBvc2l0aW9uLCBmb3JtIGRhdGEuLi4pIGZvciB0aGUgV0tX
ZWJWaWV3LCB3aGljaAogIGNhbiBiZSByZXRyaWV2ZWQgYW5kIHNldCBvbiBhbm90aGVyIFdLV2Vi
VmlldyB0byByZXN0b3JlIHN0YXRlLgogKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJs
ZSwgY29weSkgaWQgaW50ZXJhY3Rpb25TdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxl
LCBjb3B5KSBpZCBpbnRlcmFjdGlvblN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCks
IGlvcygxNS4wKSk7CiAKIC8qISBAYWJzdHJhY3QgU2V0cyB0aGUgd2VicGFnZSBjb250ZW50cyBm
cm9tIHRoZSBwYXNzZWQgZGF0YSBhcyBpZiBpdCB3YXMgdGhlCiAgcmVzcG9uc2UgdG8gdGhlIHN1
cHBsaWVkIHJlcXVlc3QuIFRoZSByZXF1ZXN0IGlzIG5ldmVyIGFjdHVhbGx5IHNlbnQgdG8gdGhl
CkBAIC01NDQsOCArNTQ0LDggQEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5cGVX
ZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKICBAcGFyYW0gZGF0
YSBUaGUgZGF0YSB0byB1c2UgYXMgdGhlIGNvbnRlbnRzIG9mIHRoZSB3ZWJwYWdlLgogIEByZXN1
bHQgQSBuZXcgbmF2aWdhdGlvbi4KICovCi0tIChXS05hdmlnYXRpb24gKilsb2FkU2ltdWxhdGVk
UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCByZXNwb25zZTooTlNVUkxSZXNwb25zZSAq
KXJlc3BvbnNlIHJlc3BvbnNlRGF0YTooTlNEYXRhICopZGF0YSBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAoV0tOYXZpZ2F0aW9uICopbG9h
ZFNpbXVsYXRlZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qgd2l0aFJlc3BvbnNlOihO
U1VSTFJlc3BvbnNlICopcmVzcG9uc2UgcmVzcG9uc2VEYXRhOihOU0RhdGEgKilkYXRhIFdLX0FQ
SV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoImxvYWRTaW11bGF0ZWRSZXF1ZXN0OnJlc3Bv
bnNlOnJlc3BvbnNlRGF0YToiLCBtYWNvcyhXS19NQUNfVEJBLCBXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEsIFdLX0lPU19UQkEpKTsKKy0gKFdLTmF2aWdhdGlvbiAqKWxvYWRTaW11bGF0ZWRS
ZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0IHJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICop
cmVzcG9uc2UgcmVzcG9uc2VEYXRhOihOU0RhdGEgKilkYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CistIChXS05hdmlnYXRpb24gKilsb2FkU2ltdWxhdGVkUmVx
dWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCB3aXRoUmVzcG9uc2U6KE5TVVJMUmVzcG9uc2Ug
KilyZXNwb25zZSByZXNwb25zZURhdGE6KE5TRGF0YSAqKWRhdGEgV0tfQVBJX0RFUFJFQ0FURURf
V0lUSF9SRVBMQUNFTUVOVCgibG9hZFNpbXVsYXRlZFJlcXVlc3Q6cmVzcG9uc2U6cmVzcG9uc2VE
YXRhOiIsIG1hY29zKDEyLjAsIDEyLjApLCBpb3MoMTUuMCwgMTUuMCkpOwogCiAvKiEgQGFic3Ry
YWN0IE5hdmlnYXRlcyB0byB0aGUgcmVxdWVzdGVkIGZpbGUgVVJMIG9uIHRoZSBmaWxlc3lzdGVt
LgogIEBwYXJhbSByZXF1ZXN0IFRoZSByZXF1ZXN0IHNwZWNpZnlpbmcgdGhlIGZpbGUgVVJMIHRv
IHdoaWNoIHRvIG5hdmlnYXRlLgpAQCAtNTU1LDcgKzU1NSw3IEBAIFRoZSB1bmlmb3JtIHR5cGUg
aWRlbnRpZmllciBrVVRUeXBlV2ViQXJjaGl2ZSBjYW4gYmUgdXNlZCBnZXQgdGhlIHJlbGF0ZWQg
cGFzdGViCiAgSWYgcmVhZEFjY2Vzc1VSTCByZWZlcmVuY2VzIGEgZGlyZWN0b3J5LCBmaWxlcyBp
bnNpZGUgdGhhdCBmaWxlIG1heSBiZSBsb2FkZWQgYnkgV2ViS2l0LgogIEByZXN1bHQgQSBuZXcg
bmF2aWdhdGlvbiBmb3IgdGhlIGdpdmVuIGZpbGUgVVJMLgogKi8KLS0gKFdLTmF2aWdhdGlvbiAq
KWxvYWRGaWxlUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBhbGxvd2luZ1JlYWRBY2Nl
c3NUb1VSTDooTlNVUkwgKilyZWFkQWNjZXNzVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChXS05hdmlnYXRpb24gKilsb2FkRmlsZVJl
cXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgYWxsb3dpbmdSZWFkQWNjZXNzVG9VUkw6KE5T
VVJMICopcmVhZEFjY2Vzc1VSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUu
MCkpOwogCiAvKiEgQGFic3RyYWN0IFNldHMgdGhlIHdlYnBhZ2UgY29udGVudHMgZnJvbSB0aGUg
cGFzc2VkIEhUTUwgc3RyaW5nIGFzIGlmIGl0IHdhcwogIHRoZSByZXNwb25zZSB0byB0aGUgc3Vw
cGxpZWQgcmVxdWVzdC4gVGhlIHJlcXVlc3QgaXMgbmV2ZXIgYWN0dWFsbHkgc2VudCB0byB0aGUK
QEAgLTU2Niw4ICs1NjYsOCBAQCBUaGUgdW5pZm9ybSB0eXBlIGlkZW50aWZpZXIga1VUVHlwZVdl
YkFyY2hpdmUgY2FuIGJlIHVzZWQgZ2V0IHRoZSByZWxhdGVkIHBhc3RlYgogIEBwYXJhbSBzdHJp
bmcgVGhlIGRhdGEgdG8gdXNlIGFzIHRoZSBjb250ZW50cyBvZiB0aGUgd2VicGFnZS4KICBAcmVz
dWx0IEEgbmV3IG5hdmlnYXRpb24uCiAqLwotLSAoV0tOYXZpZ2F0aW9uICopbG9hZFNpbXVsYXRl
ZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgcmVzcG9uc2VIVE1MU3RyaW5nOihOU1N0
cmluZyAqKXN0cmluZyBOU19TV0lGVF9OQU1FKGxvYWRTaW11bGF0ZWRSZXF1ZXN0KF86cmVzcG9u
c2VIVE1MOikpIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Ci0tIChXS05hdmlnYXRpb24gKilsb2FkU2ltdWxhdGVkUmVxdWVzdDooTlNVUkxSZXF1
ZXN0ICopcmVxdWVzdCB3aXRoUmVzcG9uc2VIVE1MU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBO
U19TV0lGVF9OQU1FKGxvYWRTaW11bGF0ZWRSZXF1ZXN0KF86d2l0aFJlc3BvbnNlSFRNTDopKSBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJsb2FkU2ltdWxhdGVkUmVxdWVzdDpy
ZXNwb25zZUhUTUxTdHJpbmc6IiwgbWFjb3MoV0tfTUFDX1RCQSwgV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBLCBXS19JT1NfVEJBKSk7CistIChXS05hdmlnYXRpb24gKilsb2FkU2ltdWxhdGVk
UmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCByZXNwb25zZUhUTUxTdHJpbmc6KE5TU3Ry
aW5nICopc3RyaW5nIE5TX1NXSUZUX05BTUUobG9hZFNpbXVsYXRlZFJlcXVlc3QoXzpyZXNwb25z
ZUhUTUw6KSkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKFdL
TmF2aWdhdGlvbiAqKWxvYWRTaW11bGF0ZWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0
IHdpdGhSZXNwb25zZUhUTUxTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIE5TX1NXSUZUX05BTUUo
bG9hZFNpbXVsYXRlZFJlcXVlc3QoXzp3aXRoUmVzcG9uc2VIVE1MOikpIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoImxvYWRTaW11bGF0ZWRSZXF1ZXN0OnJlc3BvbnNlSFRNTFN0
cmluZzoiLCBtYWNvcygxMi4wLCAxMi4wKSwgaW9zKDE1LjAsIDE1LjApKTsKIAogI2lmICFUQVJH
RVRfT1NfSVBIT05FCiAvKiBAYWJzdHJhY3QgUmV0dXJucyBhbiBOU1ByaW50T3BlcmF0aW9uIG9i
amVjdCBjb25maWd1cmVkIHRvIHByaW50IHRoZSBjb250ZW50cyBvZiB0aGlzIFdLV2ViVmlldwpA
QCAtNTg3LDkgKzU4Nyw5IEBAIFRoZSB1bmlmb3JtIHR5cGUgaWRlbnRpZmllciBrVVRUeXBlV2Vi
QXJjaGl2ZSBjYW4gYmUgdXNlZCBnZXQgdGhlIHJlbGF0ZWQgcGFzdGViCiAgcHJvcGVydHkuCiAg
Ki8KICNpZiBUQVJHRVRfT1NfSVBIT05FCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IG51bGxhYmxlKSBVSUNvbG9yICp0aGVtZUNvbG9yIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIFVJQ29s
b3IgKnRoZW1lQ29sb3IgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkpOwogI2Vsc2UKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIE5TQ29sb3IgKnRoZW1lQ29sb3Ig
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIG51bGxhYmxlKSBOU0NvbG9yICp0aGVtZUNvbG9yIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTIuMCkpOwogI2VuZGlmCiAKIC8qISBAYWJzdHJhY3QgVGhlIGNvbG9yIGRyYXdu
IGJlaGluZCB0aGUgYWN0aXZlIHBhZ2UuCkBAIC02MDEsOSArNjAxLDkgQEAgVGhlIHVuaWZvcm0g
dHlwZSBpZGVudGlmaWVyIGtVVFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVs
YXRlZCBwYXN0ZWIKICBAbGluayBXS1dlYlZpZXcgQC9saW5rIGlzIGtleS12YWx1ZSBvYnNlcnZp
bmcgKEtWTykgY29tcGxpYW50IGZvciB0aGlzIHByb3BlcnR5LgogICovCiAjaWYgVEFSR0VUX09T
X0lQSE9ORQotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxfcmVzZXR0YWJsZSwgY29weSkgVUlD
b2xvciAqdW5kZXJQYWdlQmFja2dyb3VuZENvbG9yIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsX3Jlc2V0dGFibGUsIGNvcHkpIFVJ
Q29sb3IgKnVuZGVyUGFnZUJhY2tncm91bmRDb2xvciBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4w
KSk7CiAjZWxzZQotQHByb3BlcnR5IChub25hdG9taWMsIG51bGxfcmVzZXR0YWJsZSwgY29weSkg
TlNDb2xvciAqdW5kZXJQYWdlQmFja2dyb3VuZENvbG9yIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxfcmVzZXR0YWJsZSwgY29w
eSkgTlNDb2xvciAqdW5kZXJQYWdlQmFja2dyb3VuZENvbG9yIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCkpOwogI2VuZGlmCiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCmluZGV4IDk2Zjlh
MGIxZGQxZGRkMjczYjEwNjg1MjE1ODFiOWJlOGY5YjVjM2YuLjU5MmE4MmQzZTlkMDM3MWM0ODA1
NDA2MjcyYTUyYzM4N2E1OGQwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaApAQCAtMTMxLDcgKzEz
MSw3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogLyohIEBh
YnN0cmFjdCBBIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIEhUVFAgcmVxdWVzdHMg
dG8gc2VydmVycyBrbm93biB0byBzdXBwb3J0IEhUVFBTIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5
IHVwZ3JhZGVkIHRvIEhUVFBTIHJlcXVlc3RzLgogIEBkaXNjdXNzaW9uIFRoZSBkZWZhdWx0IHZh
bHVlIGlzIFlFUy4KICAqLwotQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgdXBncmFkZUtub3du
SG9zdHNUb0hUVFBTIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCB1cGdyYWRlS25vd25Ib3N0c1Rv
SFRUUFMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogQHByb3Bl
cnR5IChub25hdG9taWMpIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVzIG1lZGlhVHlwZXNSZXF1aXJp
bmdVc2VyQWN0aW9uRm9yUGxheWJhY2sgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlv
cygxMC4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKaW5kZXggMGEyZGM4
Y2JhNjU1MzZkYTI5NGE4ZDRiYTc0YTIwZmNhN2Y1MjlhZS4uYWNmNWMwMmM3NDhlNzEwYWE4YWIw
YWE5MGJkYTM2YjMxZDQ5MzgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgK
QEAgLTc5LDggKzc5LDggQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0
RGVsYXkpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERlZmVycmFibGVVc2Vy
U2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbjopIEJPT0wgX2RlZmVycmFibGVVc2Vy
U2NyaXB0c1Nob3VsZFdhaXRVbnRpbE5vdGlmaWNhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDExLjApLCBpb3MoMTQuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Q3Jv
c3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tFbmFibGVkOikgQk9PTCBfY3Jvc3NPcmlnaW5BY2Nl
c3NDb250cm9sQ2hlY2tFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygx
NC4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExvYWRzRnJvbU5ldHdv
cms6KSBCT09MIF9sb2Fkc0Zyb21OZXR3b3JrIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFD
RU1FTlQoIl9hbGxvd2VkTmV0d29ya0hvc3RzIiwgbWFjb3MoMTEuMCwgV0tfTUFDX1RCQSksIGlv
cygxNC4wLCBXS19JT1NfVEJBKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVy
PV9zZXRBbGxvd2VkTmV0d29ya0hvc3RzOikgTlNTZXQ8TlNTdHJpbmcgKj4gKl9hbGxvd2VkTmV0
d29ya0hvc3RzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2Fkc0Zyb21OZXR3b3Jr
OikgQk9PTCBfbG9hZHNGcm9tTmV0d29yayBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJfYWxsb3dlZE5ldHdvcmtIb3N0cyIsIG1hY29zKDExLjAsIDEyLjApLCBpb3MoMTQuMCwg
MTUuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1fc2V0QWxsb3dlZE5l
dHdvcmtIb3N0czopIE5TU2V0PE5TU3RyaW5nICo+ICpfYWxsb3dlZE5ldHdvcmtIb3N0cyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0TG9hZHNTdWJyZXNvdXJjZXM6KSBCT09MIF9sb2Fkc1N1YnJlc291cmNl
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0SWdub3Jlc0FwcEJvdW5kRG9tYWluczopIEJPT0wgX2lnbm9y
ZXNBcHBCb3VuZERvbWFpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjAp
KTsKIApAQCAtOTgsNyArOTgsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dLRHJh
Z0xpZnREZWxheSkgewogI2Vsc2UKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNo
b3dzVVJMc0luVG9vbFRpcHM6KSBCT09MIF9zaG93c1VSTHNJblRvb2xUaXBzIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNl
cnZpY2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9zZXJ2aWNlQ29udHJvbHNFbmFibGVkIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEltYWdlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfaW1hZ2VDb250cm9sc0VuYWJsZWQgV0tf
QVBJX0RFUFJFQ0FURUQoIkltYWdlIGNvbnRyb2xzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIiwg
bWFjb3MoMTAuMTIsIFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEltYWdlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfaW1hZ2VDb250cm9sc0VuYWJsZWQgV0tf
QVBJX0RFUFJFQ0FURUQoIkltYWdlIGNvbnRyb2xzIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIiwg
bWFjb3MoMTAuMTIsIDEyLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHNl
dHRlcj1fc2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcjopIEJP
T0wgX3JlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRpbmdDb250cm9sc01hbmFnZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMikpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwg
c2V0dGVyPV9zZXRDUFVMaW1pdDopIGRvdWJsZSBfY3B1TGltaXQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzZXR0ZXI9
X3NldFBhZ2VHcm91cDopIFdLUGFnZUdyb3VwUmVmIF9wYWdlR3JvdXAgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMy40KSk7CkBAIC0xMTMsNyArMTEzLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5T
VUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldExlZ2FjeUVuY3J5cHRlZE1lZGlhQVBJRW5hYmxlZDopIEJPT0wgX2xlZ2FjeUVuY3J5
cHRlZE1lZGlhQVBJRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDEx
LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93TWVkaWFDb250ZW50
VHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnRBc0ZhbGxiYWNrOikgQk9PTCBfYWxsb3dNZWRp
YUNvbnRlbnRUeXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydEFzRmFsbGJhY2sgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWlj
LCBzZXR0ZXI9X3NldE1lZGlhQ2FwdHVyZUVuYWJsZWQ6KSBCT09MIF9tZWRpYUNhcHR1cmVFbmFi
bGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYUNhcHR1cmVFbmFibGVkOikg
Qk9PTCBfbWVkaWFDYXB0dXJlRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBp
b3MoMTUuMCkpOwogCiAvLyBUaGUgaW5wdXQgb2YgdGhpcyBTUEkgaXMgYW4gYXJyYXkgb2YgaW1h
Z2UgVVRJIChVbmlmb3JtIFR5cGUgSWRlbnRpZmllcikuCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSwgc2V0dGVyPV9zZXRBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlczopIE5TQXJyYXk8
TlNTdHJpbmcgKj4gKl9hZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwpAQCAtMTIyLDE1ICsxMjIsMTUgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5n
OikgQk9PTCBfc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFByb2Nlc3NEaXNwbGF5TmFtZTopIE5TU3RyaW5nICpfcHJvY2Vzc0Rpc3BsYXlOYW1l
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKLUBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldEFwcEhpZ2hsaWdodHNFbmFibGVkOikgQk9PTCBfYXBwSGln
aGxpZ2h0c0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFwcEhpZ2hsaWdo
dHNFbmFibGVkOikgQk9PTCBfYXBwSGlnaGxpZ2h0c0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLy8gVGhlIG1heGltdW0gTGFiIGNvbG9yIGRpZmZl
cmVuY2UgYWxsb3dlZCBiZXR3ZWVuIHR3byBjb25zZWN1dGl2ZSBwYWdlIHRvcCBzbmFwc2hvdHMu
CiAvLyBFeHBlY3RzIDAgKGRpc2FibGVzIHBhZ2UgdG9wIGNvbG9yIHNhbXBsaW5nIGVudGlyZWx5
KSBvciBhbnkgcG9zaXRpdmUgbnVtYmVyLgotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0U2FtcGxlZFBhZ2VUb3BDb2xvck1heERpZmZlcmVuY2U6KSBkb3VibGUgX3NhbXBsZWRQYWdl
VG9wQ29sb3JNYXhEaWZmZXJlbmNlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTYW1w
bGVkUGFnZVRvcENvbG9yTWF4RGlmZmVyZW5jZTopIGRvdWJsZSBfc2FtcGxlZFBhZ2VUb3BDb2xv
ck1heERpZmZlcmVuY2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsK
IAogLy8gSG93IGZhciBkb3duIHRoZSBwYWdlIHRoZSBzYW1wbGVkIHBhZ2UgdG9wIGNvbG9yIG5l
ZWRzIHRvIGV4dGVuZCBpbiBvcmRlciB0byBiZSBjb25zaWRlcmVkIHZhbGlkLgogLy8gRXhwZWN0
cyAwICh0aGUgY29sb3IgZG9lc24ndCBuZWVkIHRvIGNvbnRpbnVlIGludG8gdGhlIHBhZ2UgYXQg
YWxsKSBvciBhbnkgcG9zaXRpdmUgbnVtYmVyLgotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0U2FtcGxlZFBhZ2VUb3BDb2xvck1pbkhlaWdodDopIGRvdWJsZSBfc2FtcGxlZFBhZ2VU
b3BDb2xvck1pbkhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2FtcGxlZFBh
Z2VUb3BDb2xvck1pbkhlaWdodDopIGRvdWJsZSBfc2FtcGxlZFBhZ2VUb3BDb2xvck1pbkhlaWdo
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAvLyBBdHRyaWJ1
dGVzIG5ldHdvcmsgYWN0aXZpdHkgZnJvbSB0aGlzIFdLV2ViVmlldyB0byB0aGUgYXBwIHdpdGgg
dGhpcyBidW5kbGUuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcjopIE5TU3RyaW5nICpfYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7
CkBAIC0xNDEsNyArMTQxLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdM
aWZ0RGVsYXkpIHsKIAogQGludGVyZmFjZSBXS1dlYlZpZXdDb25maWd1cmF0aW9uIChXS1ByaXZh
dGVEZXByZWNhdGVkKQogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUZXh0SW50
ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQ6KSBCT09MIF90ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0Vu
YWJsZWQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tQcmVmZXJlbmNlcy50
ZXh0SW50ZXJhY3Rpb25HZXN0dXJlc0VuYWJsZWQiLCBpb3MoMTIuMCwgV0tfSU9TX1RCQSkpOwor
QHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGV4dEludGVyYWN0aW9uR2VzdHVyZXNF
bmFibGVkOikgQk9PTCBfdGV4dEludGVyYWN0aW9uR2VzdHVyZXNFbmFibGVkIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLUHJlZmVyZW5jZXMudGV4dEludGVyYWN0aW9uR2Vz
dHVyZXNFbmFibGVkIiwgaW9zKDEyLjAsIDE1LjApKTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA0
ZmRkNzhkOGM2MmRjMTVlNjdhMDI2ZmNmNjcwNjJjMTBlYmNhODQyLi4yZTNlOTQ2ZmY3MDQ2MGYy
NjYzYTY4MTUyODVkNjc5YTUxYzZiOTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTcyLDcgKzcyLDcgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkg
ewogICAgIF9XS1Nob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lOb3RBbGxvdywKICAgICBfV0tT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5QWxsb3csCiAgICAgX1dLU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeUFsbG93RXh0ZXJuYWxTY2hlbWVzQnV0Tm90QXBwTGlua3MsCi19IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKICNpZiBUQVJHRVRfT1NfSVBI
T05FCiAKQEAgLTE1Niw3ICsxNTYsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwg
X1dLUmVjdEVkZ2UpIHsKIC0gKHZvaWQpX2xvYWRBbHRlcm5hdGVIVE1MU3RyaW5nOihOU1N0cmlu
ZyAqKXN0cmluZyBiYXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgZm9yVW5yZWFjaGFibGVVUkw6KE5T
VVJMICopdW5yZWFjaGFibGVVUkw7CiAtIChXS05hdmlnYXRpb24gKilfbG9hZERhdGE6KE5TRGF0
YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGUgY2hhcmFjdGVyRW5jb2RpbmdO
YW1lOihOU1N0cmluZyAqKWNoYXJhY3RlckVuY29kaW5nTmFtZSBiYXNlVVJMOihOU1VSTCAqKWJh
c2VVUkwgdXNlckRhdGE6KGlkKXVzZXJEYXRhIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIp
LCBpb3MoMTAuMCkpOwogLSAoV0tOYXZpZ2F0aW9uICopX2xvYWRSZXF1ZXN0OihOU1VSTFJlcXVl
c3QgKilyZXF1ZXN0IHNob3VsZE9wZW5FeHRlcm5hbFVSTHM6KEJPT0wpc2hvdWxkT3BlbkV4dGVy
bmFsVVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKLS0gKFdL
TmF2aWdhdGlvbiAqKV9sb2FkUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OihfV0tTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KXNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKFdLTmF2aWdhdGlvbiAqKV9sb2FkUmVxdWVzdDoo
TlNVUkxSZXF1ZXN0ICopcmVxdWVzdCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OihfV0tT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KXNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5ICpfY2VydGlmaWNhdGVDaGFpbiBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJjZXJ0aWZpY2F0ZUNoYWluIiwgbWFjb3MoMTAuMTAs
IDEwLjExKSwgaW9zKDguMCwgOS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IE5TVVJMICpfY29tbWl0dGVkVVJMOwpAQCAtMTkyLDcgKzE5Miw3IEBAIGZvciB0aGlzIHByb3Bl
cnR5LgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd3NSZW1vdGVJbnNw
ZWN0aW9uOikgQk9PTCBfYWxsb3dzUmVtb3RlSW5zcGVjdGlvbjsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBjb3B5LCBzZXR0ZXI9X3NldFJlbW90ZUluc3BlY3Rpb25OYW1lT3ZlcnJpZGU6KSBOU1N0
cmluZyAqX3JlbW90ZUluc3BlY3Rpb25OYW1lT3ZlcnJpZGUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMiksIGlvcygxMC4wKSk7Ci1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJP
T0wgX2lzQmVpbmdJbnNwZWN0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBf
aXNCZWluZ0luc3BlY3RlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkp
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tJbnNwZWN0b3IgKl9pbnNwZWN0
b3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIAogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tGcmFtZUhhbmRsZSAqX21haW5GcmFtZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwpAQCAtMjIxLDcgKzIyMSw3
IEBAIGZvciB0aGlzIHByb3BlcnR5LgogLSAodm9pZClfZXZhbHVhdGVKYXZhU2NyaXB0OihOU1N0
cmluZyAqKWphdmFTY3JpcHRTdHJpbmcgd2l0aFNvdXJjZVVSTDooTlNVUkwgKilzb3VyY2VVUkwg
aW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250ZW50V29y
bGQgKiljb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBOU0Vycm9y
ICogZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCks
IGlvcygxNC4wKSk7CiAtICh2b2lkKV9jYWxsQXN5bmNKYXZhU2NyaXB0OihOU1N0cmluZyAqKWZ1
bmN0aW9uQm9keSBhcmd1bWVudHM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilhcmd1
bWVudHMgaW5GcmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBpbkNvbnRlbnRXb3JsZDooV0tDb250
ZW50V29ybGQgKiljb250ZW50V29ybGQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKGlkLCBO
U0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKIAotLSAoQk9PTClfYWxsTWVkaWFQcmVzZW50YXRpb25zQ2xvc2Vk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cist
IChCT09MKV9hbGxNZWRpYVByZXNlbnRhdGlvbnNDbG9zZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
TGF5b3V0TW9kZTopIF9XS0xheW91dE1vZGUgX2xheW91dE1vZGU7CiAvLyBGb3IgdXNlIHdpdGgg
X2xheW91dE1vZGUgPSBfV0tMYXlvdXRNb2RlRml4ZWRTaXplOgpAQCAtMjQ0LDcgKzI0NCw3IEBA
IGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lkKV9zaW11bGF0ZURldmljZU9yaWVudGF0aW9u
Q2hhbmdlV2l0aEFscGhhOihkb3VibGUpYWxwaGEgYmV0YTooZG91YmxlKWJldGEgZ2FtbWE6KGRv
dWJsZSlnYW1tYSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOwog
Ci0rIChCT09MKV93aWxsVXBncmFkZVRvSFRUUFM6KE5TVVJMICopdXJsIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrIChCT09MKV93aWxsVXBn
cmFkZVRvSFRUUFM6KE5TVVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlv
cygxNS4wKSk7CiAKICsgKEJPT0wpX2hhbmRsZXNTYWZlQnJvd3NpbmcgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKICsgKE5TVVJMICopX2NvbmZpcm1NYWx3YXJl
U2VudGluZWwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKQEAg
LTM1MCw3ICszNTAsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQpX2Nsb3NlQWxsTWVk
aWFQcmVzZW50YXRpb25zOwogCiAtICh2b2lkKV90YWtlUERGU25hcHNob3RXaXRoQ29uZmlndXJh
dGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENvbmZpZ3VyYXRpb24gY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqcGRmU25hcHNob3REYXRhLCBOU0Vycm9y
ICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40
KSwgaW9zKDEzLjQpKTsKLS0gKHZvaWQpX2dldFBERkZpcnN0UGFnZVNpemVJbkZyYW1lOihfV0tG
cmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKENHU2l6ZSkpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX2dldFBERkZpcnN0UGFnZVNpemVJbkZyYW1lOihfV0tGcmFt
ZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKENHU2l6ZSkpY29tcGxl
dGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAog
LSAodm9pZClfZ2V0UHJvY2Vzc0Rpc3BsYXlOYW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lk
ICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDExLjApLCBpb3MoMTQuMCkpOwogCkBAIC0zNjEsNDAgKzM2MSw0MCBAQCBmb3IgdGhpcyBwcm9w
ZXJ0eS4KIAogLSAodm9pZClfcHJlY29ubmVjdFRvU2VydmVyOihOU1VSTCAqKXNlcnZlclVSTCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCi1AcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFnZTopIEJPT0wgX2NhblVz
ZUNyZWRlbnRpYWxTdG9yYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDYW5Vc2VD
cmVkZW50aWFsU3RvcmFnZTopIEJPT0wgX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKLS0gKHZvaWQpX2RpZEVuYWJsZUJy
b3dzZXJFeHRlbnNpb25zOihOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNTdHJpbmcgKj4gKill
eHRlbnNpb25JRFRvTmFtZU1hcCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfZGlkRGlzYWJsZUJyb3dzZXJFeHRlbnNpb25zOihO
U1NldDxOU1N0cmluZyAqPiAqKWV4dGVuc2lvbklEcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfZGlkRW5hYmxlQnJvd3NlckV4
dGVuc2lvbnM6KE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBOU1N0cmluZyAqPiAqKWV4dGVuc2lv
bklEVG9OYW1lTWFwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7Cist
ICh2b2lkKV9kaWREaXNhYmxlQnJvd3NlckV4dGVuc2lvbnM6KE5TU2V0PE5TU3RyaW5nICo+ICop
ZXh0ZW5zaW9uSURzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAK
LUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrLCBzZXR0ZXI9X3NldEFwcEhpZ2hsaWdodERlbGVn
YXRlOikgaWQgPF9XS0FwcEhpZ2hsaWdodERlbGVnYXRlPiBfYXBwSGlnaGxpZ2h0RGVsZWdhdGUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0g
KHZvaWQpX3Jlc3RvcmVBcHBIaWdobGlnaHRzOihOU0FycmF5PE5TRGF0YSAqPiAqKWhpZ2hsaWdo
dHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
LS0gKHZvaWQpX3Jlc3RvcmVBbmRTY3JvbGxUb0FwcEhpZ2hsaWdodDooTlNEYXRhICopaGlnaGxp
Z2h0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
Ci0tICh2b2lkKV9hZGRBcHBIaWdobGlnaHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX2FkZEFwcEhpZ2hsaWdodEluTmV3R3Jv
dXA6KEJPT0wpbmV3R3JvdXAgb3JpZ2luYXRlZEluQXBwOihCT09MKW9yaWdpbmF0ZWRJbkFwcCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHdlYWssIHNldHRlcj1fc2V0QXBwSGlnaGxpZ2h0RGVsZWdhdGU6
KSBpZCA8X1dLQXBwSGlnaGxpZ2h0RGVsZWdhdGU+IF9hcHBIaWdobGlnaHREZWxlZ2F0ZSBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAodm9pZClfcmVzdG9yZUFw
cEhpZ2hsaWdodHM6KE5TQXJyYXk8TlNEYXRhICo+ICopaGlnaGxpZ2h0cyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAodm9pZClfcmVzdG9yZUFuZFNjcm9sbFRv
QXBwSGlnaGxpZ2h0OihOU0RhdGEgKiloaWdobGlnaHQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
Mi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX2FkZEFwcEhpZ2hsaWdodCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAodm9pZClfYWRkQXBwSGlnaGxpZ2h0SW5O
ZXdHcm91cDooQk9PTCluZXdHcm91cCBvcmlnaW5hdGVkSW5BcHA6KEJPT0wpb3JpZ2luYXRlZElu
QXBwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC8vIEZJWE1F
OiBSZW1vdmUgb2xkIGAtW1dLV2ViVmlldyBfdGhlbWVDb2xvcl1gIFNQSSA8cmRhcjovLzc2NjYy
NjQ0PgogI2lmIFRBUkdFVF9PU19JUEhPTkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgVUlDb2xvciAqX3RoZW1lQ29sb3IgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgidGhlbWVDb2xvciIsIGlvcyhXS19JT1NfVEJBLCBXS19JT1NfVEJBKSk7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIFVJQ29sb3IgKl90aGVtZUNvbG9yIFdLX0FQSV9ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoInRoZW1lQ29sb3IiLCBpb3MoMTUuMCwgMTUuMCkpOwogI2Vs
c2UKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNDb2xvciAqX3RoZW1lQ29sb3Ig
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgidGhlbWVDb2xvciIsIG1hY29zKFdL
X01BQ19UQkEsIFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNDb2xvciAqX3RoZW1lQ29sb3IgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
dGhlbWVDb2xvciIsIG1hY29zKDEyLjAsIDEyLjApKTsKICNlbmRpZgogCiAvLyBGSVhNRTogUmVt
b3ZlIG9sZCBgLVtXS1dlYlZpZXcgX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcl1gIFNQSSA8
cmRhcjovLzc3Nzg5NzMyPgogI2lmIFRBUkdFVF9PU19JUEhPTkUKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgVUlDb2xvciAqX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvciBXS19B
UElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ1bmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3Ii
LCBpb3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBVSUNvbG9yICpfcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoInVuZGVyUGFnZUJhY2tncm91bmRDb2xvciIsIGlvcygx
NS4wLCAxNS4wKSk7CiAjZWxzZQotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0Nv
bG9yICpfcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoInVuZGVyUGFnZUJhY2tncm91bmRDb2xvciIsIG1hY29zKDEwLjEwLCBXS19N
QUNfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQ29sb3IgKl9wYWdl
RXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgidW5kZXJQYWdlQmFja2dyb3VuZENvbG9yIiwgbWFjb3MoMTAuMTAsIDEyLjApKTsKICNlbmRp
ZgogCiAvLyBPbmx5IHNldCBpZiBgLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9zYW1wbGVkUGFn
ZVRvcENvbG9yTWF4RGlmZmVyZW5jZV1gIGlzIGEgcG9zaXRpdmUgbnVtYmVyLgogI2lmIFRBUkdF
VF9PU19JUEhPTkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlDb2xvciAqX3Nh
bXBsZWRQYWdlVG9wQ29sb3IgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSUNvbG9yICpfc2FtcGxlZFBhZ2VUb3BDb2xv
ciBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4wKSk7CiAjZWxzZQotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBOU0NvbG9yICpfc2FtcGxlZFBhZ2VUb3BDb2xvciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
TlNDb2xvciAqX3NhbXBsZWRQYWdlVG9wQ29sb3IgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4w
KSk7CiAjZW5kaWYKIAotLSAodm9pZClfZ3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKDE0LjApKTsKLS0gKHZvaWQpX3Jldm9r
ZUFjY2Vzc1RvQXNzZXRTZXJ2aWNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoMTQuMCkpOworLSAodm9pZClfZ3JhbnRBY2Nlc3NUb0Fzc2V0U2VydmljZXMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQpX3Jldm9rZUFjY2Vz
c1RvQXNzZXRTZXJ2aWNlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTQuMCkp
OwogCiAvKiEgQGFic3RyYWN0IElmIHRoZSBXS1dlYlZpZXcgd2FzIGNyZWF0ZWQgd2l0aCBfc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPSBOTywKICB0aGUgd2ViIHByb2Nlc3Mgd2lsbCBh
dXRvbWF0aWNhbGx5IHVzZSBhbiBpbi1wcm9jZXNzIGZvbnQgcmVnaXN0cnksIGFuZCBpdHMgc2Fu
ZGJveApAQCAtNDA0LDE0ICs0MDQsMTQgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAgbWV0aG9kIHJl
cHJlc2VudHMgYSBvbmUtdGltZSwgd2ViLXByb2Nlc3Mtd2lkZSBzd2l0Y2ggZnJvbSB1c2luZyB0
aGUgaW4tcHJvY2VzcwogIGZvbnQgcmVnaXN0cnkgdG8gdXNpbmcgZm9udGQsIGluY2x1ZGluZyBn
cmFudGluZyB0aGUgcmVsZXZhbnQgc2FuZGJveCBleHRlbnNpb24uCiAqLwotLSAodm9pZClfc3dp
dGNoRnJvbVN0YXRpY0ZvbnRSZWdpc3RyeVRvVXNlckZvbnRSZWdpc3RyeSBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpKTsKKy0gKHZvaWQpX3N3aXRjaEZyb21TdGF0aWNGb250UmVn
aXN0cnlUb1VzZXJGb250UmVnaXN0cnkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSk7CiAK
LS0gKHZvaWQpX2FwcEJvdW5kTmF2aWdhdGlvbkRhdGFGb3JEb21haW46KE5TU3RyaW5nICopZG9t
YWluIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqIGNvbnRleHQpKWNvbXBs
ZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSk7CistICh2b2lkKV9hcHBCb3VuZE5hdmlnYXRpb25EYXRhRm9yRG9tYWluOihOU1N0
cmluZyAqKWRvbWFpbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKiBjb250
ZXh0KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpOwogLSAodm9pZClfZGlkTG9hZEFwcEJvdW5kUmVxdWVzdDoodm9pZCAoXikoQk9PTCBy
ZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfZGlkTG9hZE5vbkFwcEJvdW5kUmVx
dWVzdDoodm9pZCAoXikoQk9PTCByZXN1bHQpKWNvbXBsZXRpb25IYW5kbGVyOwogCi0tICh2b2lk
KV9zdXNwZW5kUGFnZToodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3Jl
c3VtZVBhZ2U6KHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zdXNwZW5k
UGFnZToodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX3Jlc3VtZVBhZ2U6KHZvaWQgKF4pKEJP
T0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CiAKIEBlbmQKIApAQCAtNDIwLDcgKzQyMCw3IEBAIGZvciB0aGlzIHByb3BlcnR5Lgog
QGludGVyZmFjZSBXS1dlYlZpZXcgKFdLUHJpdmF0ZUlPUykKIAogI2lmICFUQVJHRVRfT1NfVFYg
JiYgIVRBUkdFVF9PU19XQVRDSAotQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHNldHRlcj1f
c2V0VUlFdmVudEF0dHJpYnV0aW9uOikgVUlFdmVudEF0dHJpYnV0aW9uICpfdWlFdmVudEF0dHJp
YnV0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFVJRXZlbnRBdHRyaWJ1dGlvbjopIFVJRXZlbnRBdHRy
aWJ1dGlvbiAqX3VpRXZlbnRBdHRyaWJ1dGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4wKSk7
CiAjZW5kaWYKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgX2NvbnRl
bnRWaXNpYmxlUmVjdCBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3Rp
bmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
Rm9yVGVzdGluZy5oCmluZGV4IDUxZmMwNGEzMjZiZjhjZjMzMTM2MTY5NDFmYTgwNTQ4NWU0YjM1
ZTIuLmMzMDVmYWY0M2Q0NTE3NDRkMjI3MTU3M2VmZTk5ODQ0MTU2NGViYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVz
dGluZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlRm9yVGVzdGluZy5oCkBAIC01OCw3ICs1OCw3IEBAIHN0cnVjdCBXS0FwcEJvdW5kTmF2
aWdhdGlvblRlc3RpbmdEYXRhIHsKIC0gKHZvaWQpX2Rpc2FibGVCYWNrRm9yd2FyZFNuYXBzaG90
Vm9sYXRpbGl0eUZvclRlc3Rpbmc7CiAKIC0gKHZvaWQpX2RlbnlOZXh0VXNlck1lZGlhUmVxdWVz
dDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1lZGlhQ2FwdHVyZVJlcG9ydGlu
Z0RlbGF5Rm9yVGVzdGluZzopIGRvdWJsZSBfbWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVsYXlGb3JU
ZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJB
KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNZWRpYUNhcHR1cmVSZXBvcnRp
bmdEZWxheUZvclRlc3Rpbmc6KSBkb3VibGUgX21lZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5Rm9y
VGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF93aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNh
YmxlZDsKIAogLSAoQk9PTClfYmVnaW5CYWNrU3dpcGVGb3JUZXN0aW5nOwpAQCAtOTUsMTIgKzk1
LDEyIEBAIHN0cnVjdCBXS0FwcEJvdW5kTmF2aWdhdGlvblRlc3RpbmdEYXRhIHsKIAogLSAodm9p
ZClfZG9BZnRlckFjdGl2aXR5U3RhdGVVcGRhdGU6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyOwogCi0tIChOU051bWJlciAqKV9zdXNwZW5kTWVkaWFQbGF5YmFja0NvdW50ZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKE5T
TnVtYmVyICopX3N1c3BlbmRNZWRpYVBsYXliYWNrQ291bnRlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEyLjApLCBpb3MoMTUuMCkpOwogCi0tICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudE92ZXJyaWRlVGltZXJGb3JUZXN0aW5nOihCT09MKW92ZXJyaWRlVGltZXIgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NldFByaXZh
dGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25SZXBvcnRVUkxzRm9yVGVzdGluZzooTlNVUkwg
Kilzb3VyY2VVUkwgZGVzdGluYXRpb25VUkw6KE5TVVJMICopZGVzdGluYXRpb25VUkwgY29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpX3NldFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25Ub2tlblB1YmxpY0tleVVSTEZvclRlc3Rp
bmc6KE5TVVJMICopdXJsIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRp
b25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7Ci0tICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9uVG9r
ZW5TaWduYXR1cmVVUkxGb3JUZXN0aW5nOihOU1VSTCAqKXVybCBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRPdmVycmlkZVRpbWVyRm9yVGVzdGluZzooQk9PTClvdmVycmlkZVRpbWVyIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CistICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEF0dHJpYnV0aW9uUmVwb3J0VVJMc0ZvclRlc3Rpbmc6KE5TVVJMICopc291cmNl
VVJMIGRlc3RpbmF0aW9uVVJMOihOU1VSTCAqKWRlc3RpbmF0aW9uVVJMIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CistICh2b2lkKV9zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uVG9rZW5QdWJsaWNLZXlVUkxGb3JUZXN0aW5nOihOU1VSTCAqKXVybCBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAodm9pZClfc2V0UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRva2VuU2lnbmF0dXJlVVJMRm9yVGVzdGluZzooTlNVUkwg
Kil1cmwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLSAodm9pZClfbGFz
dE5hdmlnYXRpb25XYXNBcHBCb3VuZDoodm9pZCheKShCT09MKSljb21wbGV0aW9uSGFuZGxlcjsK
IC0gKHZvaWQpX2FwcEJvdW5kTmF2aWdhdGlvbkRhdGE6KHZvaWQoXikoc3RydWN0IFdLQXBwQm91
bmROYXZpZ2F0aW9uVGVzdGluZ0RhdGEgZGF0YSkpY29tcGxldGlvbkhhbmRsZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29y
ZFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhUmVjb3JkUHJpdmF0ZS5oCmluZGV4IDY1MzIxNWU3YzA2YzY3ZTc2MzQ2NGQ2YTc1ZWU1MGQ4
OTQ3MDRlNjYuLmQ2MDdkZmUxM2Y2MTJiNTgyMjBlNWEzNTI1Nzc0NzA1MzFlZTQ5MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVj
b3JkUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhUmVjb3JkUHJpdmF0ZS5oCkBAIC0zNSw3ICszNSw3IEBAIFdLX0VYVEVSTiBOU1N0
cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZVNlYXJjaEZpZWxkUmVjZW50U2VhcmNoZXMg
V0tfQVBJX0FWCiBXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3Mo
MTAuMCkpOwogV0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlQ3Jl
ZGVudGlhbHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiBXS19F
WFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVBZENsaWNrQXR0cmlidXRp
b25zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwotV0tfRVhURVJO
IE5TU3RyaW5nICogY29uc3QgX1dLV2Vic2l0ZURhdGFUeXBlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CitXS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tXZWJzaXRlRGF0YVR5cGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudHMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsK
IFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1dlYnNpdGVEYXRhVHlwZUFsdGVybmF0aXZl
U2VydmljZXMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogI2lm
ICFUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA2ZDk4MTY3
ZDI1MTBhYmE4OGFhNmM0ZDk3NWE3YjllNWVlNTViODFiLi41NWQ1MmE0ODU0ODE2NzY3MGFlZWFl
ODdlMTNjOTlkYTI3ZmE4ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTYxLDgg
KzYxLDggQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3Rv
cmVGZXRjaE9wdGlvbnMpIHsKIAogLSAodm9pZClfc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rl
c3RpbmdDYWxsYmFjazoobnVsbGFibGUgdm9pZCAoXikoV0tXZWJzaXRlRGF0YVN0b3JlICosIE5T
U3RyaW5nICopKWNhbGxiYWNrIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEu
MCkpOwogLSAodm9pZClfZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TQXJyYXk8TlNTdHJpbmcgKj4g
KmRvbWFpbnMpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQp
LCBpb3MoMTIuMCkpOwotLSAodm9pZClfbG9hZGVkU3VicmVzb3VyY2VEb21haW5zRm9yOihXS1dl
YlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5PE5TU3Ry
aW5nICo+ICpkb21haW5zKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfY2xlYXJMb2FkZWRTdWJy
ZXNvdXJjZURvbWFpbnNGb3I6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2xvYWRlZFN1YnJl
c291cmNlRG9tYWluc0ZvcjooV0tXZWJWaWV3ICopd2ViVmlldyBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqZG9tYWlucykpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX2NsZWFy
TG9hZGVkU3VicmVzb3VyY2VEb21haW5zRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiArICh2b2lkKV9hbGxvd1dlYnNpdGVE
YXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwg
aW9zKDExLjMpKTsKIC0gKGJvb2wpX2hhc1JlZ2lzdGVyZWRTZXJ2aWNlV29ya2VyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCkBAIC03MywzMyArNzMsMzMgQEAg
dHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9w
dGlvbnMpIHsKIC0gKHZvaWQpX2dldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFyeToo
dm9pZCAoXikoTlNBcnJheTxfV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGhpcmRQYXJ0eSAqPiAq
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3Mo
MTMuNCkpOwogLSAodm9pZClfY2xlYXJQcmV2YWxlbnREb21haW46KE5TVVJMICopZG9tYWluIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogLSAodm9pZClfY2xlYXJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwotLSAodm9pZClfaXNSZWxh
dGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2U6KE5TVVJMICopZmlyc3RQYXJ0eVVSTCB0aGlyZFBh
cnR5OihOU1VSTCAqKXRoaXJkUGFydHlVUkwgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJP
T0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9pc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNl
T25jZTooTlNVUkwgKilmaXJzdFBhcnR5VVJMIHRoaXJkUGFydHk6KE5TVVJMICopdGhpcmRQYXJ0
eVVSTCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX2lzUmVn
aXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlckZpcnN0UGFydHk6KE5TVVJMICopZmlyc3RQYXJ0eVVS
TCB0aGlyZFBhcnR5OihOU1VSTCAqKXRoaXJkUGFydHlVUkwgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTUuNCksIGlvcygxMy40KSk7CiAtICh2b2lkKV9zZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdN
b2RlOihCT09MKWVuYWJsZWQgb25seU9uU2l0ZXNXaXRob3V0VXNlckludGVyYWN0aW9uOihCT09M
KW9ubHlPblNpdGVzV2l0aG91dFVzZXJJbnRlcmFjdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4w
KSwgaW9zKDE0LjApKTsKIC0gKHZvaWQpX3N0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlczoo
dm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MS4wKSwgaW9zKDE0LjApKTsKLS0gKHZvaWQpX3N0YXRpc3RpY3NEYXRhYmFzZUNvbHVtbnNGb3JU
YWJsZTooTlNTdHJpbmcgKil0YWJsZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNBcnJh
eTxOU1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29z
KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc3RhdGlzdGljc0RhdGFi
YXNlQ29sdW1uc0ZvclRhYmxlOihOU1N0cmluZyAqKXRhYmxlIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkICheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9wcm9jZXNzU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIC0gKHZvaWQpX2FwcEJvdW5k
RG9tYWluczoodm9pZCAoXikoTlNBcnJheTxOU1N0cmluZyAqPiAqKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogLSAodm9pZClfYXBw
Qm91bmRTY2hlbWVzOih2b2lkICheKShOU0FycmF5PE5TU3RyaW5nICo+ICopKWNvbXBsZXRpb25I
YW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKLS0gKHZv
aWQpX2FsbG93VExTQ2VydGlmaWNhdGVDaGFpbjooTlNBcnJheSAqKWNlcnRpZmljYXRlQ2hhaW4g
Zm9ySG9zdDooTlNTdHJpbmcgKilob3N0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9hbGxvd1RMU0NlcnRpZmljYXRlQ2hhaW46
KE5TQXJyYXkgKiljZXJ0aWZpY2F0ZUNoYWluIGZvckhvc3Q6KE5TU3RyaW5nICopaG9zdCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAtICh2b2lkKV9yZW5hbWVP
cmlnaW46KE5TVVJMICopb2xkTmFtZSB0bzooTlNVUkwgKiluZXdOYW1lIGZvckRhdGFPZlR5cGVz
OihOU1NldDxOU1N0cmluZyAqPiAqKWRhdGFUeXBlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXI7CiAKLS0gKEJPT0wpX25ldHdvcmtQcm9jZXNzSGFz
RW50aXRsZW1lbnRGb3JUZXN0aW5nOihOU1N0cmluZyAqKWVudGl0bGVtZW50IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChCT09MKV9uZXR3
b3JrUHJvY2Vzc0hhc0VudGl0bGVtZW50Rm9yVGVzdGluZzooTlNTdHJpbmcgKillbnRpdGxlbWVu
dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiBAcHJvcGVydHkg
KG51bGxhYmxlLCBub25hdG9taWMsIHdlYWspIGlkIDxfV0tXZWJzaXRlRGF0YVN0b3JlRGVsZWdh
dGU+IF9kZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgX1dLV2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24gKl9jb25maWd1cmF0aW9uOwogCi0tICh2b2lkKV90ZXJtaW5hdGVOZXR3
b3JrUHJvY2VzcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOwotLSAodm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzUHJlcGFyZVRvU3VzcGVuZDoodm9p
ZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAodm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzV2ls
bFN1c3BlbmRJbW1pbmVudGx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Ci0tICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKLS0gKHZv
aWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAocGlkX3QpX25l
dHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwotKyAodm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5j
aEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhX
S19JT1NfVEJBKSk7Ci0tIChCT09MKV9uZXR3b3JrUHJvY2Vzc0V4aXN0cyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotKyAoQk9PTClfZGVmYXVs
dE5ldHdvcmtQcm9jZXNzRXhpc3RzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV90ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAodm9pZClfc2VuZE5ldHdv
cmtQcm9jZXNzUHJlcGFyZVRvU3VzcGVuZDoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAodm9pZClfc2Vu
ZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CistICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1
bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpX3N5
bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZCBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRp
ZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworKyAodm9pZClf
bWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CistIChCT09MKV9uZXR3b3JrUHJvY2Vzc0V4aXN0
cyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworKyAoQk9PTClfZGVm
YXVsdE5ldHdvcmtQcm9jZXNzRXhpc3RzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlv
cygxNS4wKSk7CiAtICh2b2lkKV9jb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0czoodm9pZCheKShz
aXplX3QpKWNvbXBsZXRpb25IYW5kbGVyOwogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXBwSGlnaGxpZ2h0LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXBwSGlnaGxpZ2h0LmgKaW5kZXggZDNkYjQ1ZDdhMGEw
OTcyNmU5OGMzNjcwZGI3ZWVhMzhiZTQwNWY4Zi4uZjZkNzUxZWM2NTYwYmJiMDNkYTdmMzRjZjBm
YTQ5MTc2YmMyYWE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0FwcEhpZ2hsaWdodC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBcHBIaWdobGlnaHQuaApAQCAtMzEsNyArMzEsNyBAQAogQGNsYXNzIE5TSW1hZ2U7
CiAjZW5kaWYKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSkKIEBp
bnRlcmZhY2UgX1dLQXBwSGlnaGxpZ2h0IDogTlNPYmplY3QKIAogLSAoaW5zdGFuY2V0eXBlKWlu
aXQgTlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQXBwSGlnaGxpZ2h0RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBcHBIaWdobGlnaHREZWxlZ2F0ZS5oCmluZGV4IGJhODFhNWYzNDFl
YWU2MmNhY2NhYmM3YWFmOGU4MzdjNTBlMmYzYjMuLmU1NTY1NmI1ZTJjOThlNmI1NTg3OTg2Mzdh
ODU1MDc4OTY4NzM0YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tBcHBIaWdobGlnaHREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBcHBIaWdobGlnaHREZWxlZ2F0ZS5oCkBAIC0zMSw3ICszMSw3IEBA
CiAKIEBvcHRpb25hbAogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0
b3JlQXBwSGlnaGxpZ2h0OihfV0tBcHBIaWdobGlnaHQgKiloaWdobGlnaHQgaW5OZXdHcm91cDoo
Qk9PTClpbk5ld0dyb3VwIHJlcXVlc3RPcmlnaW5hdGVkSW5BcHA6KEJPT0wpcmVxdWVzdE9yaWdp
bmF0ZWRJbkFwcCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdG9yZUFwcEhp
Z2hsaWdodDooX1dLQXBwSGlnaGxpZ2h0ICopaGlnaGxpZ2h0IGluTmV3R3JvdXA6KEJPT0wpaW5O
ZXdHcm91cCByZXF1ZXN0T3JpZ2luYXRlZEluQXBwOihCT09MKXJlcXVlc3RPcmlnaW5hdGVkSW5B
cHAgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogQGVuZAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXBwbGljYXRp
b25NYW5pZmVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FwcGxp
Y2F0aW9uTWFuaWZlc3QuaAppbmRleCBhMTIwMzcwZTJmNTgwZTYzNDNkMzgzM2IxNzZkNDE0NmY0
ZDE5MDg1Li5iMzFmYWY0OThjODJkYWQwZTk3NmJhYTY5YWRkZGEyNWU3YjFjNTQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXBwbGljYXRpb25NYW5p
ZmVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBcHBsaWNh
dGlvbk1hbmlmZXN0LmgKQEAgLTUyLDkgKzUyLDkgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
KDEwLjEzLjQpLCBpb3MoMTEuMykpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9X
S0FwcGxpY2F0aW9uTWFuaWZlc3REaXNwbGF5TW9kZSBkaXNwbGF5TW9kZTsKIAogI2lmIFRBUkdF
VF9PU19JUEhPTkUKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUsIGNv
cHkpIFVJQ29sb3IgKnRoZW1lQ29sb3IgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSwgY29weSkgVUlDb2xv
ciAqdGhlbWVDb2xvciBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4wKSk7CiAjZWxzZQotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSwgY29weSkgTlNDb2xvciAqdGhlbWVD
b2xvciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgbnVsbGFibGUsIGNvcHkpIE5TQ29sb3IgKnRoZW1lQ29sb3IgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSk7CiAjZW5kaWYKIAogKyAoX1dLQXBwbGljYXRpb25N
YW5pZmVzdCAqKWFwcGxpY2F0aW9uTWFuaWZlc3RGcm9tSlNPTjooTlNTdHJpbmcgKilqc29uIG1h
bmlmZXN0VVJMOihudWxsYWJsZSBOU1VSTCAqKW1hbmlmZXN0VVJMIGRvY3VtZW50VVJMOihudWxs
YWJsZSBOU1VSTCAqKWRvY3VtZW50VVJMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0aW9uRXh0
ZW5zaW9uc0NsaWVudElucHV0cy5oCmluZGV4IGExZGUyY2U3NjQxZTg4YzU5YTBiYWUyMGEwNDJk
YTdiNGI2YTQyMDQuLjE2NTA5NmJmYTA1Njg2N2NkZDA1NWM3YmE4MmNkN2M3NTdkNjhiYjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNh
dGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmgKQEAg
LTMxLDcgKzMxLDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJ
TEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSkKIEBpbnRlcmZhY2UgX1dLQXV0aGVudGljYXRp
b25FeHRlbnNpb25zQ2xpZW50SW5wdXRzIDogTlNPYmplY3QKIAogQHByb3BlcnR5IChudWxsYWJs
ZSwgbm9uYXRvbWljLCBjb3B5KSBOU1N0cmluZyAqYXBwaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xp
ZW50T3V0cHV0cy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhl
bnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMuaAppbmRleCAxODI0Yjc5ZTlkODU2MDBk
YWVhZDQ3ODZmNThiZmY4MDhkYjBkYTZmLi40YTkyZjdmOWJiZjYzMDI1MTczOGQxMTNmOTI4MjVm
MjZkNGFiMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGll
bnRPdXRwdXRzLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
IAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
CitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSkKIEBpbnRlcmZhY2Ug
X1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cyA6IE5TT2JqZWN0CiAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBhcHBpZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9u
UmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50
aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaAppbmRleCBjYWVmNzA5MWI1MmEyYzhjY2JhNzI1Nzcx
YmNjZjExOTE3ZWViNGMyLi44MGQ4YWZjYjI5NjA0M2E4NWUwZWMwNDJkM2FlZmI2YmFlZDg1MDNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oCkBAIC0yOSw3ICsy
OSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEyLjApLCBpb3MoMTUuMCkpCiBAaW50ZXJmYWNlIF9XS0F1dGhlbnRpY2F0b3JBc3NlcnRp
b25SZXNwb25zZSA6IF9XS0F1dGhlbnRpY2F0b3JSZXNwb25zZQogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqYXV0aGVudGljYXRvckRhdGE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckF0dGFjaG1l
bnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9y
QXR0YWNobWVudC5oCmluZGV4IDA2NjgwZTU5YTVlZGUyM2ZiNDI1Njc3MzkyYzMxYzBlYzA4ZDJm
MWYuLmYzZGVlYzI1YzlkNDhkOWNlYTNhNGU2M2M0ODNiOTk5NzAwM2I5MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXR0YWNo
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50
aWNhdG9yQXR0YWNobWVudC5oCkBAIC0zMSw0ICszMSw0IEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS0F1dGhlbnRpY2F0b3JBdHRhY2htZW50KSB7CiAgICAgX1dLQXV0aGVudGljYXRv
ckF0dGFjaG1lbnRBbGwsCiAgICAgX1dLQXV0aGVudGljYXRvckF0dGFjaG1lbnRQbGF0Zm9ybSwK
ICAgICBfV0tBdXRoZW50aWNhdG9yQXR0YWNobWVudENyb3NzUGxhdGZvcm0sCi19IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9u
c2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZS5oCmluZGV4IDk1MGY3OWU2NTY1ZWQ2Yzc5ODQzZTc2ZWFiYjlh
ODYzNDRhYjNiZmQuLjcyZDk0YzEyYTIxZmQ0ZjM4MGIxODRhMDU3ZjIwMDUxYjVkM2MxMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5oCkBAIC0yOSw3ICsy
OSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEyLjApLCBpb3MoMTUuMCkpCiBAaW50ZXJmYWNlIF9XS0F1dGhlbnRpY2F0b3JBdHRlc3Rh
dGlvblJlc3BvbnNlIDogX1dLQXV0aGVudGljYXRvclJlc3BvbnNlCiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgTlNEYXRhICphdHRlc3RhdGlvbk9iamVjdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yUmVzcG9u
c2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9y
UmVzcG9uc2UuaAppbmRleCA2NWFiZTVlNzFjMGZjYWQ5NzVmM2ZhZmQzMGQzZDBhNzU1ZGUyY2Ey
Li5hMGM3YTJiMTRjOGZjNDczNDNjMjk1ODhhZDA0OTRmYmMwNGNlM2U4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclJlc3BvbnNl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dGhlbnRpY2F0
b3JSZXNwb25zZS5oCkBAIC0zNCw3ICszNCw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAK
IEBjbGFzcyBfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzOwogCi1XS19D
TEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NM
QVNTX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKQogQGludGVyZmFjZSBfV0tBdXRo
ZW50aWNhdG9yUmVzcG9uc2UgOiBOU09iamVjdAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIF9XS0F1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0aGVudGljYXRvclNlbGVj
dGlvbkNyaXRlcmlhLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0
aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhLmgKaW5kZXggZjNiNTljZWYwYWI5YTE5ZDM5NGE3
YzZhY2IzNTVkYTU4ZGE3N2Q1Zi4uZmQ4YzI2NGIzYzFjMmEzMWUxNzNkYzFiODEzNjA1Njc2NjYw
YzQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1
dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEuaApAQCAtMzMs
NyArMzMsNyBAQAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJM
RShtYWNvcygxMi4wKSwgaW9zKDE1LjApKQogQGludGVyZmFjZSBfV0tBdXRoZW50aWNhdG9yU2Vs
ZWN0aW9uQ3JpdGVyaWEgOiBOU09iamVjdAogCiAvKiFAZGlzY3Vzc2lvbiBUaGUgZGVmYXVsdCB2
YWx1ZSBpcyBfV0tBdXRoZW50aWNhdG9yQXR0YWNobWVudEFsbC4qLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25EZWxlZ2F0ZS5o
CmluZGV4IGEwZjFiODU4MDE4NDMxMWY4MTJjYzExMDg1OTcwMDVlZDY4OWUzMjIuLmM3MjljOWU0
NGJmOWU3YmVkZmVmMmY5ZjBlZGE5ZDcwNmRmYjAyMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uRGVsZWdhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvbkRlbGVnYXRlLmgKQEAg
LTM2LDUgKzM2LDUgQEAKIC0gKE5TU3RyaW5nICopX3Byb2Nlc3NQb29sQnJvd3Nlck5hbWVGb3JB
dXRvbWF0aW9uOihXS1Byb2Nlc3NQb29sICopcHJvY2Vzc1Bvb2wgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNCksIGlvcygxMi4wKSk7CiAtIChOU1N0cmluZyAqKV9wcm9jZXNzUG9vbEJyb3dz
ZXJWZXJzaW9uRm9yQXV0b21hdGlvbjooV0tQcm9jZXNzUG9vbCAqKXByb2Nlc3NQb29sIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3MoMTIuMCkpOwogCi0tICh2b2lkKV9wcm9jZXNz
UG9vbERpZFJlcXVlc3RJbnNwZWN0b3JEZWJ1Z2dhYmxlc1RvV2FrZVVwOihXS1Byb2Nlc3NQb29s
ICopcHJvY2Vzc1Bvb2wgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX3Byb2Nlc3NQb29sRGlkUmVxdWVzdEluc3BlY3RvckRlYnVn
Z2FibGVzVG9XYWtlVXA6KFdLUHJvY2Vzc1Bvb2wgKilwcm9jZXNzUG9vbCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEaWFnbm9zdGljTG9nZ2luZ0Rl
bGVnYXRlLmgKaW5kZXggMDRkZDBlNjhiNDA4MGFkN2UyNzY0YTVkOGE1OGQxNmZiZjRjOWUzMi4u
NzNjMDE2ZmE2Y2Y3NmRiNDg4NzhjMWRjNmIwODhiMzk4ZjU5YjcyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRGlhZ25vc3Rp
Y0xvZ2dpbmdEZWxlZ2F0ZS5oCkBAIC0zNyw3ICszNyw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZSkgewogCiB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tEaWFnbm9zdGljTG9nZ2luZ0RvbWFpbikgewogICAgIF9XS0RpYWdu
b3N0aWNMb2dnaW5nRG9tYWluTWVkaWEsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCks
IGlvcygxNS4wKSk7CiAKIEBjbGFzcyBXS1dlYlZpZXc7CiAKQEAgLTQ5LDYgKzQ5LDYgQEAgdHlw
ZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRGlhZ25vc3RpY0xvZ2dpbmdEb21haW4pIHsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbG9nRGlhZ25vc3RpY01lc3NhZ2VX
aXRoVmFsdWU6KE5TU3RyaW5nICopbWVzc2FnZSBkZXNjcmlwdGlvbjooTlNTdHJpbmcgKilkZXNj
cmlwdGlvbiB2YWx1ZTooTlNTdHJpbmcgKikgdmFsdWU7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGxvZ0RpYWdub3N0aWNNZXNzYWdlV2l0aEVuaGFuY2VkUHJpdmFjeToo
TlNTdHJpbmcgKiltZXNzYWdlIGRlc2NyaXB0aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZTooTlNTdHJpbmcgKilt
ZXNzYWdlIGRlc2NyaXB0aW9uOihOU1N0cmluZyAqKWRlc2NyaXB0aW9uIHZhbHVlRGljdGlvbmFy
eTooTlNEaWN0aW9uYXJ5ICopdmFsdWVEaWN0aW9uYXJ5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTUpLCBpb3MoMTMuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhEb21haW46KE5TU3RyaW5nICopbWVzc2FnZSBkb21h
aW46KF9XS0RpYWdub3N0aWNMb2dnaW5nRG9tYWluKWRvbWFpbiBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBsb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhEb21haW46KE5TU3RyaW5n
ICopbWVzc2FnZSBkb21haW46KF9XS0RpYWdub3N0aWNMb2dnaW5nRG9tYWluKWRvbWFpbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiBAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCmluZGV4IDdlYTUyMjUz
NjA0Y2JjZmEwNWU5ODMwYjllZGM0NTNhYjE4Y2Q4YzEuLjRjOTY2NzQ5YTAxMDBhNzdmOTA1YWJl
ZmNhYjdlMWZlYzIyMjBhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tEb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEb3dubG9hZC5oCkBAIC0zMCwxMCArMzAsMTAgQEAKIEBjbGFzcyBXS1dlYlZpZXc7
CiBAY2xhc3MgV0tEb3dubG9hZDsKIAotV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJXS0Rvd25sb2FkIiwgbWFjb3MoMTAuMTAsIFdLX01BQ19UQkEpLCBpb3MoOC4wLCBXS19J
T1NfVEJBKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiV0tEb3dubG9h
ZCIsIG1hY29zKDEwLjEwLCAxMi4wKSwgaW9zKDguMCwgMTUuMCkpCiBAaW50ZXJmYWNlIF9XS0Rv
d25sb2FkIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAotKyAoaW5zdGFuY2V0eXBlKWRvd25sb2Fk
V2l0aERvd25sb2FkOihXS0Rvd25sb2FkICopZG93bmxvYWQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKysgKGluc3RhbmNldHlwZSlkb3dubG9h
ZFdpdGhEb3dubG9hZDooV0tEb3dubG9hZCAqKWRvd25sb2FkIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC0gKHZvaWQpY2FuY2VsOwogLSAodm9pZClwdWJsaXNo
UHJvZ3Jlc3NBdFVSTDooTlNVUkwgKilVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40
KSwgaW9zKDEyLjIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEb3dubG9hZERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRG93bmxvYWREZWxlZ2F0ZS5oCmluZGV4IDY1ZWFjY2FjYjVmNzBlMTRhZTNiOTcz
ODdmNDY4YTgzYTdiYjdjODEuLmNiOTcyZTdiM2NkMzRmMmJjYjk5NWMyODkwZDVjYmFkNTE4Yjk0
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3du
bG9hZERlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0Rvd25sb2FkRGVsZWdhdGUuaApAQCAtMzcsNyArMzcsNyBAQAogLSAodm9pZClfZG93bmxvYWQ6
KF9XS0Rvd25sb2FkICopZG93bmxvYWQgZGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkw6KE5T
VVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAt
ICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkaWRSZWNlaXZlUmVzcG9u
c2U6KE5TVVJMUmVzcG9uc2UgKilyZXNwb25zZTsKIC0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3du
bG9hZCAqKWRvd25sb2FkIGRpZFJlY2VpdmVEYXRhOih1aW50NjRfdClsZW5ndGg7Ci0tICh2b2lk
KV9kb3dubG9hZDooX1dLRG93bmxvYWQgKilkb3dubG9hZCBkaWRXcml0ZURhdGE6KHVpbnQ2NF90
KWJ5dGVzV3JpdHRlbiB0b3RhbEJ5dGVzV3JpdHRlbjoodWludDY0X3QpdG90YWxCeXRlc1dyaXR0
ZW4gdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZToodWludDY0X3QpdG90YWxCeXRlc0V4cGVjdGVk
VG9Xcml0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZClfZG93bmxvYWQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQgZGlkV3JpdGVE
YXRhOih1aW50NjRfdClieXRlc1dyaXR0ZW4gdG90YWxCeXRlc1dyaXR0ZW46KHVpbnQ2NF90KXRv
dGFsQnl0ZXNXcml0dGVuIHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGU6KHVpbnQ2NF90KXRvdGFs
Qnl0ZXNFeHBlY3RlZFRvV3JpdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1
LjApKTsKIC0gKHZvaWQpX2Rvd25sb2FkOihfV0tEb3dubG9hZCAqKWRvd25sb2FkIGRlY2lkZURl
c3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOihOU1N0cmluZyAqKWZpbGVuYW1lIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShCT09MIGFsbG93T3ZlcndyaXRlLCBOU1N0cmluZyAqZGVz
dGluYXRpb24pKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfZG93bmxvYWREaWRGaW5pc2g6
KF9XS0Rvd25sb2FkICopZG93bmxvYWQ7CiAtICh2b2lkKV9kb3dubG9hZDooX1dLRG93bmxvYWQg
Kilkb3dubG9hZCBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3I7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0VsZW1lbnRBY3Rpb24uaAppbmRl
eCAyZDUxOTlmNWYxMTI2MDVkNjgwZjQwOTI0ZGExYjk4NjUwNWRkMzIzLi5hYWRlZTlmNmUyMzBi
YzhjNTFjOWUzMTQzMzA1ZDU1NDdhMjM5Yzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRWxlbWVudEFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFbGVtZW50QWN0aW9uLmgKQEAgLTU0LDggKzU0LDggQEAg
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLRWxlbWVudEFjdGlvblR5cGUpIHsKICAgICBf
V0tFbGVtZW50QWN0aW9uVHlwZU9wZW5Jbk5ld1dpbmRvdyBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjE1KSwgaW9zKDEzLjApKSwKICAgICBfV0tFbGVtZW50QWN0aW9uVHlwZURvd25sb2FkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpLAogICAgIF9XS0VsZW1lbnRB
Y3Rpb25Ub2dnbGVTaG93TGlua1ByZXZpZXdzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUp
LCBpb3MoMTMuMCkpLAotICAgIF9XS0VsZW1lbnRBY3Rpb25UeXBlSW1hZ2VFeHRyYWN0aW9uIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKSwKLSAgICBfV0tFbGVtZW50QWN0aW9uVHlw
ZVJldmVhbEltYWdlIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKSwKKyAgICBfV0tF
bGVtZW50QWN0aW9uVHlwZUltYWdlRXh0cmFjdGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcygxNS4w
KSksCisgICAgX1dLRWxlbWVudEFjdGlvblR5cGVSZXZlYWxJbWFnZSBXS19BUElfQVZBSUxBQkxF
KGlvcygxNS4wKSksCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7
CiAKIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5oCmluZGV4IDg2YjFj
Zjg5NjI3OGYxOTcyYjlhNzk5N2M0OTI3NGQxZWVkY2NmNWYuLmVlNzY5ZTkwMzAzOTY3MDFmZmM0
M2M2NjkzZTNmMDU2MDNiZWMxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW5zcGVjdG9yLmgKQEAgLTM5LDcgKzM5LDcgQEAgV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpCiAKIC0gKGluc3RhbmNldHlwZSlpbml0IE5T
X1VOQVZBSUxBQkxFOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgd2VhaykgaWQgPF9XS0luc3Bl
Y3RvckRlbGVnYXRlPiBkZWxlZ2F0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkIDxfV0tJ
bnNwZWN0b3JEZWxlZ2F0ZT4gZGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlZpZXcg
KndlYlZpZXc7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNDb25uZWN0
ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0luc3BlY3RvckNvbmZpZ3VyYXRpb24uaAppbmRleCBiYzhhODE2OWQ0NmQxYzQwZmQ0Yzgy
NzNlNDYzYzRlOWIwMDIyZjhjLi5kYWVhZWQ3YmQ2YWZkYTUyNzEyMTBhOWFhYzMwZTViNWIxOGU5
ZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yQ29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uLmgKQEAgLTMxLDcgKzMxLDcgQEAgTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KIEBjbGFzcyBXS1Byb2Nlc3NQb29sOwogQHByb3RvY29sIFdLVVJM
U2NoZW1lSGFuZGxlcjsKIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKQor
V0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEyLjApKQogQGludGVyZmFjZSBfV0tJbnNwZWN0b3JD
b25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29weWluZz4KIC8qKgogICogQGFic3RyYWN0IFNl
dHMgdGhlIFVSTCBzY2hlbWUgaGFuZGxlciBvYmplY3QgZm9yIHRoZSBnaXZlbiBVUkwgc2NoZW1l
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3Bl
Y3RvckV4dGVuc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
c3BlY3RvckV4dGVuc2lvbi5oCmluZGV4IDg0YTc4YjhjNjViYzFkZmMyZTE2YjZkNGU5ZWNiNDBh
ZjZiZmFjMTguLmYxZDcxNDA0NTJjMzdjZjQ1MWU2YWJkNmY2NzdmYzE3NjUzMGNhMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRl
bnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yRXh0ZW5zaW9uLmgKQEAgLTM1LDcgKzM1LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4K
IAogQHByb3RvY29sIF9XS0luc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlOwogCi1XS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTIu
MCkpCiBAaW50ZXJmYWNlIF9XS0luc3BlY3RvckV4dGVuc2lvbiA6IE5TT2JqZWN0CiAKIC0gKGlu
c3RhbmNldHlwZSluZXcgTlNfVU5BVkFJTEFCTEU7CkBAIC04MCw3ICs4MCw3IEBAIFdLX0NMQVNT
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSkKICAqIEBhYnN0cmFjdCBBbGxvd3MgdGhlIGNs
aWVudCB0byByZWNlaXZlIGV4dGVuc2lvbiBsaWZlY3ljbGUgZXZlbnRzIHRoYXQKICAqIGFyaXNl
IGZyb20gd2l0aGluIFdlYiBJbnNwZWN0b3IuCiAgKi8KLUBwcm9wZXJ0eSAobm9uYXRvbWljLCB3
ZWFrKSBpZCA8X1dLSW5zcGVjdG9yRXh0ZW5zaW9uRGVsZWdhdGU+IGRlbGVnYXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHdlYWsp
IGlkIDxfV0tJbnNwZWN0b3JFeHRlbnNpb25EZWxlZ2F0ZT4gZGVsZWdhdGUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMi4wKSk7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5o
CmluZGV4IGQ0YjY1MTc3ZjlmZTU5MzUxMGJlYTY0ODMyZDQyNTU2OTNiZTU0YjMuLjY1MWQ0MzUx
MzNjYTQ1ZDcyNDFiYjkzM2QyYjhmY2E4NGRhNzgyN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uLmgKQEAgLTQxLDcgKzQxLDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEw
KSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhdHRyU3R5bGVFbmFibGVk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKIC8vIERlZmF1
bHRzIHRvIFlFUy4KLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNob3VsZFRocm93RXhjZXB0
aW9uRm9yR2xvYmFsQ29uc3RhbnRSZWRlY2xhcmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBzaG91bGRUaHJvd0V4Y2VwdGlvbkZvckdsb2JhbENvbnN0YW50UmVkZWNsYXJhdGlvbiBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgTlNBcnJheTxOU1VSTCAqPiAqYWRkaXRpb25hbFJlYWRBY2Nlc3NBbGxvd2Vk
VVJMcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIApAQCAtNzEs
NyArNzEsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHVzZXNXZWJQcm9jZXNzQ2FjaGUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIHBhZ2VDYWNoZUVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNCksIGlvcygx
Mi4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzSklURW5hYmxlZCkgQk9PTCBK
SVRFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHksIHNldHRlcj1zZXRIU1RTU3RvcmFn
ZURpcmVjdG9yeTopIE5TVVJMICpoc3RzU3RvcmFnZURpcmVjdG9yeSBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oc3Rz
U3RvcmFnZURpcmVjdG9yeSIsIG1hY29zKDEwLjE1LCBXS19NQUNfVEJBKSwgaW9zKDEzLjAsIFdL
X0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0dGVy
PXNldEhTVFNTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKmhzdHNTdG9yYWdlRGlyZWN0b3J5IFdL
X0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9XS1dlYnNpdGVEYXRhU3RvcmVDb25m
aWd1cmF0aW9uLmhzdHNTdG9yYWdlRGlyZWN0b3J5IiwgbWFjb3MoMTAuMTUsIDEyLjApLCBpb3Mo
MTMuMCwgMTUuMCkpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBjb25maWd1cmVKU0NG
b3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oCmluZGV4IDM4
ZTU1N2M3YzBiM2U5NzM2YjFiM2ExNWE0NjI2NzcyNjg3NjU5ZmIuLmZjMzdkN2I4MzcxMTE5ZTM4
MjMyZjI1M2MwMjFlZjA4ZDU0NGY3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnMuaApAQCAtNDIsOSArNDIsOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBfV0tBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlKSB7CiAgICAgX1dLQXR0
ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZU5vbmUsCiAgICAgX1dLQXR0ZXN0YXRpb25Db252
ZXlhbmNlUHJlZmVyZW5jZUluZGlyZWN0LAogICAgIF9XS0F0dGVzdGF0aW9uQ29udmV5YW5jZVBy
ZWZlcmVuY2VEaXJlY3QsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7Cit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4w
KSk7CiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpCiBAaW50ZXJm
YWNlIF9XS1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgOiBOU09iamVjdAogCiAr
IChpbnN0YW5jZXR5cGUpbmV3IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9y
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3IuaAppbmRleCAyYzI5MmMyNjdkYmJlZmM0ZDAxOTM5OGQzNGNjMDk2MmUy
MjBhNWI1Li45NTg3OTgxZTcwYzFkNjRlYTIzNjFiODFiM2VkYzRjNjVmMmI5MzRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaApAQCAtMzEsNyArMzEsNyBAQAogCiBO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMi4wKSwg
aW9zKDE1LjApKQogQGludGVyZmFjZSBfV0tQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciA6
IE5TT2JqZWN0CiAKICsgKGluc3RhbmNldHlwZSluZXcgTlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVu
dGlhbEVudGl0eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1Ymxp
Y0tleUNyZWRlbnRpYWxFbnRpdHkuaAppbmRleCAxNWMwNTZmYjhhMWE0YmVjZDZiODA4YjdjMTY5
M2M5ZDIwZGY5ZGE3Li5jMTBkODJmMDU4ODU3ZDkyMzVlN2I4N2VlM2Y0MGNjYjYzZTY0MjU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5
Q3JlZGVudGlhbEVudGl0eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tQdWJsaWNLZXlDcmVkZW50aWFsRW50aXR5LmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogTlNf
QVNTVU1FX05PTk5VTExfQkVHSU4KIAotV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpCitXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlv
cygxNS4wKSkKIEBpbnRlcmZhY2UgX1dLUHVibGljS2V5Q3JlZGVudGlhbEVudGl0eSA6IE5TT2Jq
ZWN0CiAKICsgKGluc3RhbmNldHlwZSluZXcgTlNfVU5BVkFJTEFCTEU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbFBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNL
ZXlDcmVkZW50aWFsUGFyYW1ldGVycy5oCmluZGV4IGI4NDc5ZGMxMTczOGY2NjJmMzI4ZDYwNjBi
NTNkYzFhM2IzZDczZDIuLjIxOTc2NzM4YTcyMDAxOWJhMmYwY2M2MDkwZWRiN2ZkYTFmMzZjM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNL
ZXlDcmVkZW50aWFsUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50aWFsUGFyYW1ldGVycy5oCkBAIC0zMSw3ICszMSw3
IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShtYWNv
cyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpCiBAaW50ZXJmYWNlIF9XS1B1YmxpY0tleUNyZWRlbnRpYWxQYXJh
bWV0ZXJzIDogTlNPYmplY3QKIAogKyAoaW5zdGFuY2V0eXBlKW5ldyBOU19VTkFWQUlMQUJMRTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNL
ZXlDcmVkZW50aWFsUmVseWluZ1BhcnR5RW50aXR5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlhbFJlbHlpbmdQYXJ0eUVudGl0eS5oCmlu
ZGV4IGJlNmVhNDQ4NTM1OTVkMDI2NzNlMDgyNDc3YWFjMzI5MTZhODk1MTcuLjA2ZjI4NDJmNDk5
MzM1NWE4NTE3NTAzZTE1NTU3MmIxNDkzZDczYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50aWFsUmVseWluZ1BhcnR5RW50
aXR5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tl
eUNyZWRlbnRpYWxSZWx5aW5nUGFydHlFbnRpdHkuaApAQCAtMjksNyArMjksNyBAQAogCiBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9z
KDE1LjApKQogQGludGVyZmFjZSBfV0tQdWJsaWNLZXlDcmVkZW50aWFsUmVseWluZ1BhcnR5RW50
aXR5IDogX1dLUHVibGljS2V5Q3JlZGVudGlhbEVudGl0eQogCiArIChpbnN0YW5jZXR5cGUpbmV3
IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucy5oCmluZGV4IGJmODlmOThkY2M1NjRmYTVlM2M3ZGI2MWFhYzA0NjYxMDhlYmQwNjguLjJj
OTY4Mzk3YTIxM2JlNDlhZDE5ZGQ0Y2IxZDI5ZTdhYzE3NjJhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKQEAgLTM2LDcgKzM2LDcgQEAgTlNfQVNT
VU1FX05PTk5VTExfQkVHSU4KIEBjbGFzcyBfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGll
bnRJbnB1dHM7CiBAY2xhc3MgX1dLUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I7CiAKLVdL
X0NMQVNTX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpCiBAaW50ZXJmYWNlIF9XS1B1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyA6IE5TT2JqZWN0CiAKIEBwcm9wZXJ0eSAo
bnVsbGFibGUsIG5vbmF0b21pYywgY29weSkgTlNOdW1iZXIgKnRpbWVvdXQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUHVibGljS2V5Q3JlZGVudGlh
bFVzZXJFbnRpdHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJs
aWNLZXlDcmVkZW50aWFsVXNlckVudGl0eS5oCmluZGV4IDEwZTRlN2JlZGI4MGIxZjk4MzFlZTlj
MjE3NzI4MTZjYTc5MGVkOGYuLjgxNzkxYjFjZmE4MzQ3NDU0NGU5NDg1ZGU0ZWY2OTZhZWViMmE1
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tQdWJs
aWNLZXlDcmVkZW50aWFsVXNlckVudGl0eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tQdWJsaWNLZXlDcmVkZW50aWFsVXNlckVudGl0eS5oCkBAIC0yOSw3ICsy
OSw3IEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKQorV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEyLjApLCBpb3MoMTUuMCkpCiBAaW50ZXJmYWNlIF9XS1B1YmxpY0tleUNyZWRlbnRpYWxV
c2VyRW50aXR5IDogX1dLUHVibGljS2V5Q3JlZGVudGlhbEVudGl0eQogCiArIChpbnN0YW5jZXR5
cGUpbmV3IE5TX1VOQVZBSUxBQkxFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1JlbW90ZVdlYkluc3BlY3RvclZpZXdDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIuaAppbmRleCAxYjQwMGQwMTBjOWVjYjRjZTkzNzIwNDMxOGMwNzgzZmYyZjI2ZWQ1
Li5iODJjZDMwMDhkN2MzYWJjM2UxYWVmYmZiMTA5Zjk5ZDdjNTUwNDBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLUmVtb3RlV2ViSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
UmVtb3RlV2ViSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaApAQCAtNDMsMTAgKzQzLDEwIEBAIFdL
X0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMi4zKSkKIAogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCByZXRhaW4pIE5TV2luZG93ICp3aW5kb3c7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIHJldGFpbikgV0tXZWJWaWV3ICp3ZWJWaWV3OwotQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5LCBjb3B5KSBfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uICpjb25maWd1
cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uICpjb25m
aWd1cmF0aW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCkpOwogCi0tIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhDb25maWd1cmF0aW9uOihfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uICopY29u
ZmlndXJhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKLS0gKHZvaWQp
bG9hZEZvckRlYnVnZ2FibGU6KF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvICopZGVidWdnYWJs
ZUluZm8gYmFja2VuZENvbW1hbmRzVVJMOihOU1VSTCAqKWJhY2tlbmRDb21tYW5kc1VSTCBXS19B
UElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aENvbmZpZ3VyYXRpb246KF9XS0luc3BlY3RvckNvbmZpZ3VyYXRpb24gKiljb25maWd1cmF0aW9u
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCkpOworLSAodm9pZClsb2FkRm9yRGVidWdnYWJs
ZTooX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm8gKilkZWJ1Z2dhYmxlSW5mbyBiYWNrZW5kQ29t
bWFuZHNVUkw6KE5TVVJMICopYmFja2VuZENvbW1hbmRzVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCkpOwogLSAodm9pZCljbG9zZTsKIC0gKHZvaWQpc2hvdzsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRpb25Ub2tl
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RleHRNYW5pcHVsYXRp
b25Ub2tlbi5oCmluZGV4IDEwZjI5NmI1YjZkMjJjODIzZjg2MjMyMzY4MzA3MzAyMmZiYTk2NDQu
LjZhNjkyZTc1NGFlMWY2M2ZlNGVkMDc5Y2RmYmI4ODcyMmMzZGY1MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGV4dE1hbmlwdWxh
dGlvblRva2VuLmgKQEAgLTMxLDcgKzMxLDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIFdL
X0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlblVzZXJJbmZv
RG9jdW1lbnRVUkxLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsK
IFdLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlblVzZXJJ
bmZvVGFnTmFtZUtleSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwog
V0tfRVhURVJOIE5TU3RyaW5nICogY29uc3QgX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuVXNlcklu
Zm9Sb2xlQXR0cmlidXRlS2V5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4w
KSk7Ci1XS19FWFRFUk4gTlNTdHJpbmcgKiBjb25zdCBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW5V
c2VySW5mb1Zpc2liaWxpdHlLZXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKK1dLX0VYVEVSTiBOU1N0cmluZyAqIGNvbnN0IF9XS1RleHRNYW5p
cHVsYXRpb25Ub2tlblVzZXJJbmZvVmlzaWJpbGl0eUtleSBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEyLjApLCBpb3MoMTUuMCkpOwogCiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTUuNCks
IGlvcygxMy40KSkKIEBpbnRlcmZhY2UgX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuIDogTlNPYmpl
Y3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQuaAppbmRleCBhMWFjNmM4NTgyMGZi
M2M4YWYxMjVlODA1NmQ4ZmE2MWRjYjczNTVhLi5iZDBhY2IzMTAxYzU3YzkxMzllNjcyMzY2MTQ4
MjZkN2QzMDNkN2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudC5oCkBAIC0z
MSw0ICszMSw0IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS1VzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudCkgewogICAgIF9XS1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudFJlcXVp
cmVkLAogICAgIF9XS1VzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudFByZWZlcnJlZCwKICAgICBf
V0tVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnREaXNjb3VyYWdlZCwKLX0gV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvbkFzc2VydGlvblJlc3BvbnNl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRp
b25Bc3NlcnRpb25SZXNwb25zZS5oCmluZGV4IDY5YTA0MTAzZjdmNWI1NmE3ODllZjQ1Y2NlMjk1
ZjY4M2I4YzU4NTIuLjU5NDBlY2JiZTc2YTk0NjZlNjc5YmJkMTFkMWEwOTNjZjIzODMzOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50
aWNhdGlvbkFzc2VydGlvblJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uQXNzZXJ0aW9uUmVzcG9uc2UuaApAQCAtMzcs
NyArMzcsNyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSkKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmRpc3BsYXlOYW1l
OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0RhdGEgKnVzZXJIYW5k
bGU7CiAKLS0gKHZvaWQpc2V0TEFDb250ZXh0OihMQUNvbnRleHQgKiljb250ZXh0IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKXNl
dExBQ29udGV4dDooTEFDb250ZXh0ICopY29udGV4dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApLCBpb3MoMTUuMCkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oCmluZGV4
IDA2ZGE4ZGRjNzk4MDViNzZjMjNhZTZiOTEwNjQ3ZThlNWE0Mzc1M2MuLmQ2Y2E2NzdkNzhmYjdm
M2YwZTY4NmU5YmE0NmY2ZWMwNDgyMDkxNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaApA
QCAtOTEsNyArOTEsNyBAQCBXS19FWFBPUlQgZXh0ZXJuIE5TU3RyaW5nICogY29uc3QgX1dLTG9j
YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbFJlbHlpbmdQYXJ0eUlESwogLSAodm9pZClwYW5lbDoo
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHVwZGF0ZVdlYkF1dGhlbnRpY2F0aW9u
UGFuZWw6KF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxVcGRhdGUpdXBkYXRlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAtICh2b2lkKXBhbmVsOihfV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsICopcGFuZWwgcmVxdWVzdFBJTldpdGhSZW1haW5pbmdSZXRyaWVzOihO
U1VJbnRlZ2VyKXJldHJpZXMgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICop
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4w
KSk7CiAtICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsICopcGFuZWwgc2Vs
ZWN0QXNzZXJ0aW9uUmVzcG9uc2U6KE5TQXJyYXkgPCBfV0tXZWJBdXRoZW50aWNhdGlvbkFzc2Vy
dGlvblJlc3BvbnNlICo+ICopcmVzcG9uc2VzIHNvdXJjZTooX1dLV2ViQXV0aGVudGljYXRpb25T
b3VyY2Upc291cmNlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShfV0tXZWJBdXRoZW50aWNh
dGlvbkFzc2VydGlvblJlc3BvbnNlICogX051bGxhYmxlKSljb21wbGV0aW9uSGFuZGxlciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwotLSAodm9pZClwYW5lbDooX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIHJlcXVlc3RMQUNvbnRleHRGb3JVc2VyVmVy
aWZpY2F0aW9uV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShMQUNvbnRleHQgKmNvbnRl
eHQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKXBhbmVsOihfV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsICopcGFuZWwgcmVxdWVzdExBQ29udGV4dEZvclVzZXJWZXJpZmljYXRpb25XaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQgKF4pKExBQ29udGV4dCAqY29udGV4dCkpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIAogLy8gRklYTUU6
IDxyZGFyOi8vcHJvYmxlbS83MTUwOTg0OD4gRGVwcmVjYXRlIHRoZSBmb2xsb3dpbmcgZGVsZWdh
dGVzLgogLSAodm9pZClwYW5lbDooX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCAqKXBhbmVsIGRl
Y2lkZVBvbGljeUZvckxvY2FsQXV0aGVudGljYXRvcldpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikoX1dLTG9jYWxBdXRoZW50aWNhdG9yUG9saWN5IHBvbGljeSkpY29tcGxldGlvbkhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKQEAgLTEwMywxNyAr
MTAzLDE3IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKQog
CiBAcHJvcGVydHkgKG51bGxhYmxlLCBub25hdG9taWMsIHdlYWspIGlkIDxfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsRGVsZWdhdGU+IGRlbGVnYXRlOwogCi0rIChOU0FycmF5PE5TRGljdGlvbmFy
eSAqPiAqKWdldEFsbExvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0rICh2b2lkKWRlbGV0ZUxv
Y2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxXaXRoSUQ6KE5TRGF0YSAqKWNyZWRlbnRpYWxJRCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotKyAo
dm9pZCljbGVhckFsbExvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrIChOU0FycmF5PE5TRGlj
dGlvbmFyeSAqPiAqKWdldEFsbExvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CisrICh2b2lkKWRlbGV0ZUxvY2FsQXV0
aGVudGljYXRvckNyZWRlbnRpYWxXaXRoSUQ6KE5TRGF0YSAqKWNyZWRlbnRpYWxJRCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOworKyAodm9pZCljbGVhckFsbExvY2Fs
QXV0aGVudGljYXRvckNyZWRlbnRpYWxzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlv
cygxNS4wKSk7CiAKLSsgKEJPT0wpaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9y
QXZhaWxhYmxlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CisrIChCT09MKWlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWls
YWJsZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCiAtIChpbnN0
YW5jZXR5cGUpaW5pdDsKIAogLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS83MTUwOTQ4NT4gQWRk
cyBkZXRhaWxlZCBOU0Vycm9yLgotLSAodm9pZCltYWtlQ3JlZGVudGlhbFdpdGhDaGFsbGVuZ2U6
KE5TRGF0YSAqKWNoYWxsZW5nZSBvcmlnaW46KE5TU3RyaW5nICopb3JpZ2luIG9wdGlvbnM6KF9X
S1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgKilvcHRpb25zIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSAqLCBO
U0Vycm9yICopKWhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKLS0gKHZvaWQpZ2V0QXNzZXJ0aW9uV2l0aENoYWxsZW5nZTooTlNEYXRh
ICopY2hhbGxlbmdlIG9yaWdpbjooTlNTdHJpbmcgKilvcmlnaW4gb3B0aW9uczooX1dLUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zICopb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoX1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlICosIE5TRXJyb3IgKikp
aGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworLSAodm9pZCltYWtlQ3JlZGVudGlhbFdpdGhDaGFsbGVuZ2U6KE5TRGF0YSAqKWNoYWxs
ZW5nZSBvcmlnaW46KE5TU3RyaW5nICopb3JpZ2luIG9wdGlvbnM6KF9XS1B1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMgKilvcHRpb25zIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkIChe
KShfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZSAqLCBOU0Vycm9yICopKWhhbmRs
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKy0gKHZvaWQpZ2V0
QXNzZXJ0aW9uV2l0aENoYWxsZW5nZTooTlNEYXRhICopY2hhbGxlbmdlIG9yaWdpbjooTlNTdHJp
bmcgKilvcmlnaW4gb3B0aW9uczooX1dLUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
ICopb3B0aW9ucyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoX1dLQXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlICosIE5TRXJyb3IgKikpaGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZCljYW5jZWw7CiAKIC8vIEZJWE1FOiA8cmRh
cjovL3Byb2JsZW0vNzE1MDk4NDg+IERlcHJlY2F0ZSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbEZvclRlc3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRm9yVGVzdGluZy5oCmluZGV4IDc3MDZi
MDE1NDViYjYzNmQzOWViODcwOTM4ZDgxZGEwNDE4ZDFmZjYuLmMxYjNkZjBlNDE4YzY4MGI0NjIz
ZDc4YjNkNzM5MTQyOTJkNzRiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsRm9yVGVzdGluZy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Rm9yVGVzdGluZy5oCkBAIC0zMiwxMyArMzIsMTMgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRlbnRp
YWxDcmVhdGlvbk9wdGlvbnM7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zOwogfQogCi1XS19DTEFTU19BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19J
T1NfVEJBKSkKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKQogQGlu
dGVyZmFjZSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIChXS1Rlc3RpbmcpCiAKLSsgKFdlYkNv
cmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMpY29udmVydFRvQ29yZUNyZWF0
aW9uT3B0aW9uc1dpdGhPcHRpb25zOihfV0tQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zICopb3B0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOwotKyAoV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
KWNvbnZlcnRUb0NvcmVSZXF1ZXN0T3B0aW9uc1dpdGhPcHRpb25zOihfV0tQdWJsaWNLZXlDcmVk
ZW50aWFsUmVxdWVzdE9wdGlvbnMgKilvcHRpb25zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zKWNvbnZlcnRUb0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9u
czooX1dLUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyAqKW9wdGlvbnMgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKKysgKFdlYkNvcmU6OlB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyljb252ZXJ0VG9Db3JlUmVxdWVzdE9wdGlvbnNXaXRo
T3B0aW9uczooX1dLUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zICopb3B0aW9ucyBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogCi0rIChOU0FycmF5PE5T
RGljdGlvbmFyeSAqPiAqKWdldEFsbExvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzV2l0aEFj
Y2Vzc0dyb3VwOihOU1N0cmluZyAqKWFjY2Vzc0dyb3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisrIChOU0FycmF5PE5TRGljdGlvbmFyeSAq
PiAqKWdldEFsbExvY2FsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzV2l0aEFjY2Vzc0dyb3VwOihO
U1N0cmluZyAqKWFjY2Vzc0dyb3VwIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CiAKIC8vIEZvciBkZXRhaWxzIG9mIGNvbmZpZ3VyYXRpb24sIHJlZmVyIHRvIE1vY2tX
ZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaC4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5KSBOU0RpY3Rpb25hcnkgKm1vY2tDb25maWd1cmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaAppbmRleCBmMDgzNGI2MDBmMTJmNDZjNzA2MGI3MGMwNGNkZGY5
YzE0OGZiYjQwLi41NDFhMmMyODkwMWVjMDE3ZTI4YjM3ZDc3ZmQzZGI2YWQ5MjI1YjZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFT
dG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaApAQCAtNzIsOCArNzIsOCBAQCBX
S19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpCiBAcHJvcGVydHkgKG5v
bmF0b21pYykgTlNVSW50ZWdlciB0ZXN0U3BlZWRNdWx0aXBsaWVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTUuNCksIGlvcygxMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBz
dXBwcmVzc2VzQ29ubmVjdGlvblRlcm1pbmF0aW9uT25TeXN0ZW1DaGFuZ2UgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGFsbG93c1NlcnZlclByZWNvbm5lY3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNS40
KSwgaW9zKDEzLjQpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSwgc2V0
dGVyPXNldEhTVFNTdG9yYWdlRGlyZWN0b3J5OikgTlNVUkwgKmhzdHNTdG9yYWdlRGlyZWN0b3J5
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBlbmFibGVJbkFwcEJyb3dzZXJQcml2YWN5Rm9yVGVz
dGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5LCBzZXR0ZXI9c2V0SFNUU1N0
b3JhZ2VEaXJlY3Rvcnk6KSBOU1VSTCAqaHN0c1N0b3JhZ2VEaXJlY3RvcnkgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IGVuYWJsZUluQXBwQnJvd3NlclByaXZhY3lGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwg
Y29weSkgTlNVUkwgKmFsdGVybmF0aXZlU2VydmljZXNTdG9yYWdlRGlyZWN0b3J5IFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Q29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaAppbmRleCAyM2EzZWE1NDBkZGQ1MDIyZGI1
YWI5YjU4OTZlM2U2MjBiM2VlMDAxLi4wOTk0ZmExZDJhN2ZmZDMwMDYzOTgzMTkxNWI5NGMyYjZl
MTY4YWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZS5oCkBAIC0zNyw3ICszNyw3IEBACiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2Vy
LCBXS0hpdFRlc3RPcHRpb25zKSB7CiAgICAgV0tIaXRUZXN0T3B0aW9uQWxsb3dVc2VyQWdlbnRT
aGFkb3dSb290Q29udGVudCA9IDEgPDwgMCwKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4w
KSwgaW9zKDE1LjApKTsKIAogV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDgu
MCkpCiBAaW50ZXJmYWNlIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lIDogTlNPYmplY3QKQEAgLTU2
LDcgKzU2LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiAK
IC0gKEpTQ29udGV4dCAqKWpzQ29udGV4dEZvcldvcmxkOihXS1dlYlByb2Nlc3NQbHVnSW5TY3Jp
cHRXb3JsZCAqKXdvcmxkOwogLSAoV0tXZWJQcm9jZXNzUGx1Z0luSGl0VGVzdFJlc3VsdCAqKWhp
dFRlc3Q6KENHUG9pbnQpcG9pbnQ7Ci0tIChXS1dlYlByb2Nlc3NQbHVnSW5IaXRUZXN0UmVzdWx0
ICopaGl0VGVzdDooQ0dQb2ludClwb2ludCBvcHRpb25zOihXS0hpdFRlc3RPcHRpb25zKW9wdGlv
bnMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
Ky0gKFdLV2ViUHJvY2Vzc1BsdWdJbkhpdFRlc3RSZXN1bHQgKiloaXRUZXN0OihDR1BvaW50KXBv
aW50IG9wdGlvbnM6KFdLSGl0VGVzdE9wdGlvbnMpb3B0aW9ucyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAoSlNWYWx1ZSAqKWpzTm9kZUZvck5vZGVIYW5kbGU6
KFdLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUgKilub2RlSGFuZGxlIGluV29ybGQ6KFdLV2Vi
UHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQ7CiAtIChKU1ZhbHVlICopanNSYW5nZUZv
clJhbmdlSGFuZGxlOihXS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZSAqKXJhbmdlSGFuZGxl
IGluV29ybGQ6KFdLV2ViUHJvY2Vzc1BsdWdJblNjcmlwdFdvcmxkICopd29ybGQgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5Ob2RlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAppbmRleCAyODgyYzNm
YjUyZGY5YTZjZjhjNjIxMWJmYmQzYWU5ZDgxZGYwNzY3Li44N2FhZmI3YmFhMzZkOThmYThiNTkz
OTE0YTQ5ZTQ1MTc4YjgyNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dL
V2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGUuaApAQCAtNTcsNyArNTcsNyBAQCBXS19DTEFTU19B
VkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSAqSFRNTFRhYmxlQ2VsbEVsZW1l
bnRDZWxsQWJvdmU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2ViUHJvY2Vz
c1BsdWdJbkZyYW1lICpmcmFtZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9P
TCBpc1NlbGVjdEVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEy
LjIpKTsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBpc1NlbGVjdGFibGVU
ZXh0Tm9kZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RC
QSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlzU2VsZWN0YWJsZVRl
eHROb2RlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAKIC0gKEJP
T0wpaXNUZXh0RmllbGQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJv
Y2Vzc1BsdWdJblBhZ2VHcm91cC5oCmluZGV4IGJjOGQyY2E1OWM4N2I0NmU4MzM2YzUyM2ZlNzg4
ZTkwNDg5M2NmZTcuLmYyMzJhMmEyZWQzYzAxYzBkOWY4ZGUyMWNlOTgzZGZiNWYxYjYzNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29j
b2EvV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3Jv
dXAuaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24u
aD4KIAotV0tfQ0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS1dlYlByb2Nlc3NQ
bHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuX2dyb3VwSWRlbnRpZmllciIsIG1hY29zKDEw
LjEwLCBXS19NQUNfVEJBKSwgaW9zKDguMCwgV0tfSU9TX1RCQSkpCitXS19DTEFTU19ERVBSRUNB
VEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29u
dHJvbGxlci5fZ3JvdXBJZGVudGlmaWVyIiwgbWFjb3MoMTAuMTAsIDEyLjApLCBpb3MoOC4wLCAx
NS4wKSkKIEBpbnRlcmZhY2UgV0tXZWJQcm9jZXNzUGx1Z0luUGFnZUdyb3VwIDogTlNPYmplY3QK
IAogQHByb3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlBy
b2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlci5oCmluZGV4IDczMmY1OTgzOTU5YjJjYjFiN2ViYWNiOWMzODVlNmNk
M2RhNTFlNjQuLjI2ZDY1ZjY5M2NmNjM1ZjllMTQ3MDcwYjg4NmUyMzZhYjNmZWY5ZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5oCkBAIC00Miw3ICs0Miw3IEBAIFdLX0NMQVNTX0FW
QUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjApKQogCiBAcHJvcGVydHkgKHJlYWRvbmx5KSBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZSAqbWFpbkZyYW1lOwogCi1AcHJvcGVydHkgKHJlYWRvbmx5
KSBXS1dlYlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAgKnBhZ2VHcm91cCBXS19BUElfREVQUkVDQVRF
RF9XSVRIX1JFUExBQ0VNRU5UKCJfZ3JvdXBJZGVudGlmaWVyIiwgbWFjb3MoMTAuMTAsIFdLX01B
Q19UQkEpLCBpb3MoOC4wLCBXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBXS1dl
YlByb2Nlc3NQbHVnSW5QYWdlR3JvdXAgKnBhZ2VHcm91cCBXS19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJfZ3JvdXBJZGVudGlmaWVyIiwgbWFjb3MoMTAuMTAsIDEyLjApLCBpb3Mo
OC4wLCAxNS4wKSk7CiAKIEBwcm9wZXJ0eSAod2VhaykgaWQgPFdLV2ViUHJvY2Vzc1BsdWdJbkxv
YWREZWxlZ2F0ZT4gbG9hZERlbGVnYXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2Vy
Q29udGV4dENvbnRyb2xsZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRy
b2xsZXJQcml2YXRlLmgKaW5kZXggMjFlMzA5NjMwNmRmZjEwM2U0Y2ZmNGQ4OGE5Y2FjN2IwNmNi
Yzk1Yi4uYmQ5NGI4MjhhMjM1MzY1NTlhMjVjODVmOTU2MDAyOGNlMjNhNTQyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQ
cm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlclByaXZhdGUuaApAQCAtNDcsNyArNDcsNyBAQAog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgX3VzZXNOb25QZXJzaXN0ZW50
V2Vic2l0ZURhdGFTdG9yZTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0
cmluZyAqX2dyb3VwSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU1N0
cmluZyAqX2dyb3VwSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpOwogCiArIChpbnN0YW5jZXR5cGUpbG9va1VwQnJvd3NpbmdDb250ZXh0RnJvbUhhbmRs
ZTooV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgKiloYW5kbGU7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3ZlcnNpb25fbmFtZV9tYXAucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi92ZXJzaW9uX25hbWVfbWFwLnB5CmluZGV4IDEwN2IwZTU0OTc3
MDMxMzRjZDFlNzc5MmI2OGE1ZTFhMGMyNzc5ZDcuLjIyNWIxYjM0OTI4MDc2MTA4ODVkNDk4Yzgz
MmY5OGM3ODY1OWM3OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3ZlcnNpb25fbmFtZV9tYXAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
dmVyc2lvbl9uYW1lX21hcC5weQpAQCAtNjMsMTAgKzYzLDExIEBAIGNsYXNzIFZlcnNpb25OYW1l
TWFwKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgJ01vamF2ZSc6IFZlcnNpb24oMTAsIDE0KSwK
ICAgICAgICAgICAgICAgICAnQ2F0YWxpbmEnOiBWZXJzaW9uKDEwLCAxNSksCiAgICAgICAgICAg
ICAgICAgJ0JpZyBTdXInOiBWZXJzaW9uKDExLCAwKSwKKyAgICAgICAgICAgICAgICAnTW9udGVy
ZXknOiBWZXJzaW9uKDEyLCAwKSwKICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAnaW9zJzog
c2VsZi5fYXV0b21hcF90b19tYWpvcl92ZXJzaW9uKCdpT1MnLCBtaW5pbXVtPVZlcnNpb24oMTAp
LCBtYXhpbXVtPVZlcnNpb24oMTQpKSwKLSAgICAgICAgICAgICd0dm9zJzogc2VsZi5fYXV0b21h
cF90b19tYWpvcl92ZXJzaW9uKCd0dk9TJywgbWluaW11bT1WZXJzaW9uKDEwKSwgbWF4aW11bT1W
ZXJzaW9uKDE0KSksCi0gICAgICAgICAgICAnd2F0Y2hvcyc6IHNlbGYuX2F1dG9tYXBfdG9fbWFq
b3JfdmVyc2lvbignd2F0Y2hPUycsIG1pbmltdW09VmVyc2lvbigxKSwgbWF4aW11bT1WZXJzaW9u
KDcpKSwKKyAgICAgICAgICAgICdpb3MnOiBzZWxmLl9hdXRvbWFwX3RvX21ham9yX3ZlcnNpb24o
J2lPUycsIG1pbmltdW09VmVyc2lvbigxMCksIG1heGltdW09VmVyc2lvbigxNSkpLAorICAgICAg
ICAgICAgJ3R2b3MnOiBzZWxmLl9hdXRvbWFwX3RvX21ham9yX3ZlcnNpb24oJ3R2T1MnLCBtaW5p
bXVtPVZlcnNpb24oMTApLCBtYXhpbXVtPVZlcnNpb24oMTUpKSwKKyAgICAgICAgICAgICd3YXRj
aG9zJzogc2VsZi5fYXV0b21hcF90b19tYWpvcl92ZXJzaW9uKCd3YXRjaE9TJywgbWluaW11bT1W
ZXJzaW9uKDEpLCBtYXhpbXVtPVZlcnNpb24oOCkpLAogICAgICAgICAgICAgJ3dpbic6IHsKICAg
ICAgICAgICAgICAgICAnV2luMTAnOiBWZXJzaW9uKDEwKSwKICAgICAgICAgICAgICAgICAnOC4x
JzogVmVyc2lvbig2LCAzKSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>