<?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>300200</bug_id>
          
          <creation_ts>2025-10-05 15:15:26 -0700</creation_ts>
          <short_desc>REGRESSION(300960@main): JS3/SP3/RAMification regression</short_desc>
          <delta_ts>2025-10-05 15:19:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>300187</blocked>
    
    <blocked>299488</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>marcus_plutowski</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2148575</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-10-05 15:15:26 -0700</bug_when>
    <thetext>https://commits.webkit.org/300960@main introduced a regression:
JS3/SP3/RAMification regression

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2148578</commentid>
    <comment_count>1</comment_count>
      <attachid>476967</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-10-05 15:15:36 -0700</bug_when>
    <thetext>Created attachment 476967
REVERT of 300960@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2148579</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-10-05 15:18:44 -0700</bug_when>
    <thetext>Committed 301032@main (97a651d3d0e7): &lt;https://commits.webkit.org/301032@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 476967.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2148580</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-10-05 15:19:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/162000963&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476967</attachid>
            <date>2025-10-05 15:15:36 -0700</date>
            <delta_ts>2025-10-05 15:18:45 -0700</delta_ts>
            <desc>REVERT of 300960@main</desc>
            <filename>bug-300200-20251005221535.patch</filename>
            <type>text/plain</type>
            <size>132338</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSBmYTAwYjg0ODQyNzhiZDhiM2Q4NWQwZDEzZTcwZWJiMTUyNzM5NDAwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBTdW4sIDUgT2N0IDIwMjUgMjI6MTU6MzQgKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgMzAwOTYwQG1haW4gYW5kIDMwMTAxOEBtYWluLgogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMDIwMAoKSlMzL1NQMy9SQU1pZmlj
YXRpb24gcmVncmVzc2lvbgoKUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKCiJbbGlicGFzXSBJbXBsZW1l
bnQgcHJpbWFyeSBzdXBwb3J0IGZvciBNVEUiCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yOTk0ODgKaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvMzAwOTYwQG1haW4K
CiJbbGlicGFzXSBPbmx5IGluY2x1ZGUgcGFzIGhlYWRlcnMgd2hlbiBMSUJQQVNfRU5BQkxFRCBy
ZWR1eCIKaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMDE4NwpodHRw
czovL2NvbW1pdHMud2Via2l0Lm9yZy8zMDEwMThAbWFpbgotLS0KIFNvdXJjZS9XVEYvd3RmL1dU
RkNvbmZpZy5jcHAgICAgICAgICAgICAgICAgICB8ICAyMSArLQogU291cmNlL1dURi93dGYvV1RG
Q29uZmlnLmggICAgICAgICAgICAgICAgICAgIHwgIDE0ICstCiBTb3VyY2UvYm1hbGxvYy9DTWFr
ZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgfCAgIDQgLQogLi4uL2JtYWxsb2MvYm1hbGxvYy54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIHwgIDE2IC0KIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
QlBsYXRmb3JtLmggICAgICAgICAgICB8ICAyNSAtCiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dp
Z2FjYWdlLmNwcCAgICAgICAgICAgfCAgMTUgLQogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdh
Y2FnZUNvbmZpZy5oICAgICAgIHwgICA0ICstCiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1N5c3Rl
bUhlYXAuY3BwICAgICAgICAgfCAgIDcgLQogU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9j
YXRlLmNwcCAgICAgICAgIHwgIDM0IC0KIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvVk1BbGxvY2F0
ZS5oICAgICAgICAgICB8ICAgOCAtCiAuLi4vbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qICAgfCAgMTcgLQogLi4uL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZp
Zy5oICAgICAgIHwgICAyIC0KIC4uLi9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9y
ZXN1bHQuYyB8ICAgMyAtCiAuLi4vbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbG9jYXRpb25fcmVz
dWx0LmggfCAgIDIgLQogLi4uL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCAg
ICAgIHwgICAzIC0KIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb25maWcu
aCB8ICAxMiAtCiAuLi5pY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmMg
fCAgIDIgLQogLi4uL3NyYy9saWJwYXMvcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaCAgICAgIHwg
ICAxIC0KIC4uLi9zcmMvbGlicGFzL3Bhc19nZXRfYWxsb2NhdGlvbl9zaXplLmggICAgICB8ICAg
MiAtCiAuLi4vYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2V0X2hlYXAuaCAgfCAgIDIg
LQogLi4uL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oIHwgICA1IC0K
IC4uLi9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCAgICB8ICAgNyAtCiAu
Li4vYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9yZWYuYyAgfCAgIDEgLQogLi4u
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbW1vcnRhbF9oZWFwLmMgICAgIHwgICAxIC0KIC4uLi9z
cmMvbGlicGFzL3Bhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVycy5jICB8ICAgMSAtCiAuLi4vbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuYyAgICAgICAgfCAgIDMgLQogLi4uL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX21hcC5jIHwgICA0IC0KIC4uLi9zcmMvbGli
cGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyAgICAgICB8ICAgNSAtCiAuLi4vbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5oICAgfCAgIDIgLQogLi4uL3NyYy9saWJwYXMv
cGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggIHwgICA4IC0KIC4uLi9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfbWVnYXBhZ2VfY2FjaGUuYyAgICB8ICAgMiAtCiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbXRlLmMgICAgfCAgNDIgLQogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX210ZS5oICAgIHwgOTUzIC0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19tdGVfY29uZmlnLmMgICAgICAgIHwgMjA0IC0tLS0KIC4uLi9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbXRlX2NvbmZpZy5oICAgICAgICB8IDE2OCAtLS0KIC4uLi9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZy5oICB8ICAgMyAtCiAuLi4vc3Jj
L2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICAgfCAgIDYgLQogLi4uL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19wYWdlX2hlYWRlcl90YWJsZS5jIHwgICAxIC0KIC4uLi9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuaCB8ICAgMiAtCiAuLi4vbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmMgICAgICAgfCAgIDQgLQogLi4uL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3BsYXRmb3JtLmggIHwgIDExIC0KIC4uLnBhc19wcm9iYWJpbGlz
dGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuYyB8ICAgMyAtCiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfcm9vdC5jICAgfCAgIDEgLQogLi4uL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NjYXZlbmdlci5jIHwgICAyIC0KIC4uLi9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3BhZ2VfaW5saW5lcy5oICB8ICAgMiAtCiAuLi5tYWxsX21lZGl1bV9ib290c3RyYXBf
aGVhcF9wYWdlX3Byb3ZpZGVyLmMgfCAgIDEgLQogLi4uL3NyYy9saWJwYXMvcGFzX3RocmVhZF9s
b2NhbF9jYWNoZS5oICAgICAgIHwgICAxIC0KIC4uLi9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5
X3JlYWxsb2NhdGUuaCAgICB8ICAgMyAtCiAuLi4vc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFw
X2NvbmZpZy5oICAgICAgfCAgIDEgLQogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3V0aWxzLmggIHwgICA0IC0KIC4uLi9saWJwYXMvc3JjL2xpYnBhcy9wYXNfemVyb19tZW1v
cnkuaCAgICAgICB8ICAgMiAtCiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIu
cHkgICAgICAgfCAgIDkgKy0KIDUyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDE2
NDYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX210ZS5jCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX210ZS5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX210ZV9jb25maWcuYwogZGVsZXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGVfY29uZmlnLmgKCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XVEZDb25maWcuY3BwIGIvU291cmNlL1dURi93dGYv
V1RGQ29uZmlnLmNwcAppbmRleCBiMTFlOTUxMGM3MWQuLjU0N2UwYTAyZjcwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvV1RGQ29uZmlnLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XVEZD
b25maWcuY3BwCkBAIC0yNiw5ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSA8d3RmL1dURkNvbmZpZy5oPgogCi0jaW5jbHVkZSA8Y3N0ZGlvPgotCi0jaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3dGYvR2lnYWNhZ2UuaD4KICNpbmNsdWRlIDx3dGYv
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC00MCwxNSArMzcsOCBAQAog
I2luY2x1ZGUgPG1hY2gtby9nZXRzZWN0Lmg+CiAjaW5jbHVkZSA8bWFjaC1vL2xkc3ltcy5oPgog
I2luY2x1ZGUgPG1hY2gvdm1fcGFyYW0uaD4KLSNpbmNsdWRlICJ1bmlzdGQuaCIKICNlbmRpZgog
Ci0jaWYgZGVmaW5lZChfX2hhc19pbmNsdWRlKQotI2lmIF9faGFzX2luY2x1ZGUoPGxpYnByb2Mu
aD4pCi0jaW5jbHVkZSA8bGlicHJvYy5oPgotI2VuZGlmIC8vIF9faGFzX2luY2x1ZGUoPGxpYnBy
b2MuaD4pCi0jZW5kaWYgLy8gZGVmaW5lZChfX2hhc19pbmNsdWRlKQotCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAjaW5jbHVkZSA8d3RmL3NwaS9jb2NvYS9NYWNoVk1TUEkuaD4KICNpbmNsdWRlIDxt
YWNoL21hY2guaD4KQEAgLTU5LDkgKzQ5LDYgQEAKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQogI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9XVEZDb25maWdBZGRpdGlvbnMuaD4KICNlbmRp
ZgotI2lmICFVU0UoU1lTVEVNX01BTExPQykKLSNpbmNsdWRlICJibWFsbG9jL3Bhc19tdGVfY29u
ZmlnLmgiCi0jZW5kaWYKIAogI2luY2x1ZGUgPG11dGV4PgogCkBAIC04NSw3ICs3Miw3IEBAIGFs
aWduYXMoV1RGOjpDb25maWdBbGlnbm1lbnQpIFdURl9DT05GSUdfU0VDVElPTiBTbG90IGdfY29u
ZmlnW1dURjo6Q29uZmlnU2l6ZVRvCiB9IC8vIG5hbWVzcGFjZSBXZWJDb25maWcKIAogI2lmICFV
U0UoU1lTVEVNX01BTExPQykKLXN0YXRpY19hc3NlcnQoR2lnYWNhZ2U6OnN0YXJ0U2xvdE9mR2ln
YWNhZ2VDb25maWcgPT0gV2ViQ29uZmlnOjpOdW1iZXJPZlJlc2VydmVkQ29uZmlnQnl0ZXMpOwor
c3RhdGljX2Fzc2VydChHaWdhY2FnZTo6c3RhcnRTbG90T2ZHaWdhY2FnZUNvbmZpZyA9PSBXZWJD
b25maWc6OnJlc2VydmVkU2xvdHNGb3JFeGVjdXRhYmxlQWxsb2NhdG9yICsgV2ViQ29uZmlnOjph
ZGRpdGlvbmFsUmVzZXJ2ZWRTbG90cyk7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdURiB7CkBAIC0x
NjcsMTEgKzE1NCw4IEBAIHZvaWQgQ29uZmlnOjppbml0aWFsaXplKCkKICAgICBnX3d0ZkNvbmZp
Zy5oaWdoZXN0QWNjZXNzaWJsZUFkZHJlc3MgPSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KCgxVUxM
IDw8IE9TX0NPTlNUQU5UKEVGRkVDVElWRV9BRERSRVNTX1dJRFRIKSkgLSAxKTsKICAgICBTaWdu
YWxIYW5kbGVyczo6aW5pdGlhbGl6ZSgpOwogCi0gICAgW1ttYXliZV91bnVzZWRdXSB1aW50OF90
KiByZXNlcnZlZENvbmZpZ0J5dGVzID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8dWludDhfdCo+KFdl
YkNvbmZpZzo6Z19jb25maWcpOworICAgIHVpbnQ4X3QqIHJlc2VydmVkQ29uZmlnQnl0ZXMgPSBy
ZWludGVycHJldF9jYXN0X3B0cjx1aW50OF90Kj4oV2ViQ29uZmlnOjpnX2NvbmZpZyArIFdlYkNv
bmZpZzo6cmVzZXJ2ZWRTbG90c0ZvckV4ZWN1dGFibGVBbGxvY2F0b3IpOwogCi0jaWYgVVNFKExJ
QlBBUykKLSAgICBwYXNfbXRlX2Vuc3VyZV9pbml0aWFsaXplZCgpOwotI2VuZGlmIC8vIFVTRShM
SUJQQVMpCiAgICAgY29uc3QgY2hhciogdXNlQWxsb2NhdGlvblByb2ZpbGluZ1JhdyA9IGdldGVu
digiSlNDX3VzZUFsbG9jYXRpb25Qcm9maWxpbmciKTsKICAgICBpZiAodXNlQWxsb2NhdGlvblBy
b2ZpbGluZ1JhdykgewogICAgICAgICBhdXRvIHVzZUFsbG9jYXRpb25Qcm9maWxpbmcgPSB1bnNh
ZmVTcGFuKHVzZUFsbG9jYXRpb25Qcm9maWxpbmdSYXcpOwpAQCAtMTkzLDYgKzE3Nyw3IEBAIHZv
aWQgQ29uZmlnOjppbml0aWFsaXplKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
KwogfQogCiB2b2lkIENvbmZpZzo6ZmluYWxpemUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvV1RGQ29uZmlnLmggYi9Tb3VyY2UvV1RGL3d0Zi9XVEZDb25maWcuaAppbmRleCBkODQwMThj
NGY0NzEuLjJhMjBjNmY1YTk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV1RGQ29uZmln
LmgKKysrIGIvU291cmNlL1dURi93dGYvV1RGQ29uZmlnLmgKQEAgLTM5LDggKzM5LDggQEAgV1RG
X0FMTE9XX1VOU0FGRV9CVUZGRVJfVVNBR0VfQkVHSU4KIAogI2lmIFVTRShTWVNURU1fTUFMTE9D
KQogbmFtZXNwYWNlIEdpZ2FjYWdlIHsKLS8vIFRoZSBmaXJzdCA2IHNsb3RzIGFyZSByZXNlcnZl
ZCBmb3IgdXNlIGJ5IHN5c3RlbSBhbGxvY2F0b3JzCi1jb25zdGV4cHIgc2l6ZV90IHJlc2VydmVk
U2xvdHNGb3JHaWdhY2FnZUNvbmZpZyA9IDY7CisvLyBUaGUgZmlyc3QgNCBzbG90cyBhcmUgcmVz
ZXJ2ZWQgZm9yIHRoZSB1c2Ugb2YgdGhlIEV4ZWN1dGFibGVBbGxvY2F0b3IgYW5kIGFkZGl0aW9u
YWxSZXNlcnZlZFNsb3RzLgorY29uc3RleHByIHNpemVfdCByZXNlcnZlZFNsb3RzRm9yR2lnYWNh
Z2VDb25maWcgPSA0OwogY29uc3RleHByIHNpemVfdCByZXNlcnZlZEJ5dGVzRm9yR2lnYWNhZ2VD
b25maWcgPSByZXNlcnZlZFNsb3RzRm9yR2lnYWNhZ2VDb25maWcgKiBzaXplb2YodWludDY0X3Qp
OwogfQogI2Vsc2UKQEAgLTUzLDIxICs1MywxNSBAQCB1c2luZyBTbG90ID0gdWludDY0X3Q7CiBl
eHRlcm4gIkMiIFdURl9FWFBPUlRfUFJJVkFURSBTbG90IGdfY29uZmlnW107CiAKIGNvbnN0ZXhw
ciBzaXplX3QgcmVzZXJ2ZWRTbG90c0ZvckV4ZWN1dGFibGVBbGxvY2F0b3IgPSAyOwotY29uc3Rl
eHByIHNpemVfdCByZXNlcnZlZFNsb3RzRm9yTVRFQ29uZmlndXJhdGlvbiA9IDI7Ci1jb25zdGV4
cHIgc2l6ZV90IHJlc2VydmVkU2xvdHNGb3JBbGxvY2F0aW9uUHJvZmlsaW5nID0gMjsKK2NvbnN0
ZXhwciBzaXplX3QgYWRkaXRpb25hbFJlc2VydmVkU2xvdHMgPSAyOwogCiBlbnVtIFJlc2VydmVk
Q29uZmlnQnl0ZU9mZnNldCB7Ci0gICAgUmVzZXJ2ZWRCeXRlRm9yRXhlY3V0YWJsZUFsbG9jYXRv
cjAgPSAwLAotICAgIFJlc2VydmVkQnl0ZUZvckV4ZWN1dGFibGVBbGxvY2F0b3IxLAotICAgIC8v
IFRoZSBNVEUgb2Zmc2V0cyBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIHBhc19tdGVfY29uZmln
LmgKLSAgICBSZXNlcnZlZEJ5dGVGb3JNVEVFbmFibGVtZW50LAotICAgIFJlc2VydmVkQnl0ZUZv
ck1URUV4dGVuZGVkQ29uZmlndXJhdGlvbiwKICAgICBSZXNlcnZlZEJ5dGVGb3JBbGxvY2F0aW9u
UHJvZmlsaW5nLAogICAgIFJlc2VydmVkQnl0ZUZvckFsbG9jYXRpb25Qcm9maWxpbmdNb2RlLAog
ICAgIE51bWJlck9mUmVzZXJ2ZWRDb25maWdCeXRlcwogfTsKIAotc3RhdGljX2Fzc2VydChOdW1i
ZXJPZlJlc2VydmVkQ29uZmlnQnl0ZXMgPD0gc2l6ZW9mKFNsb3QpICogKHJlc2VydmVkU2xvdHNG
b3JFeGVjdXRhYmxlQWxsb2NhdG9yICsgcmVzZXJ2ZWRTbG90c0Zvck1URUNvbmZpZ3VyYXRpb24g
KyByZXNlcnZlZFNsb3RzRm9yQWxsb2NhdGlvblByb2ZpbGluZykpOworc3RhdGljX2Fzc2VydChO
dW1iZXJPZlJlc2VydmVkQ29uZmlnQnl0ZXMgPD0gc2l6ZW9mKFNsb3QpICogYWRkaXRpb25hbFJl
c2VydmVkU2xvdHMpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb25maWcKIApkaWZmIC0tZ2l0IGEv
U291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvYm1hbGxvYy9DTWFrZUxpc3Rz
LnR4dAppbmRleCBjNzM5ZmI0OTA4NjEuLjkzZDNiNTcwOWY5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L2JtYWxsb2MvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50
eHQKQEAgLTE1MSw4ICsxNTEsNiBAQCBzZXQoYm1hbGxvY19DX1NPVVJDRVMKICAgICBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmMKICAgICBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfbWVnYXBhZ2VfY2FjaGUuYwogICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tb25v
dG9uaWNfdGltZS5jCi0gICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX210ZS5jCi0gICAgbGlicGFz
L3NyYy9saWJwYXMvcGFzX210ZV9jb25maWcuYwogICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19w
YWdlX2Jhc2UuYwogICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnLmMK
ICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuYwpAQCAtNTUzLDgg
KzU1MSw2IEBAIHNldChibWFsbG9jX1BVQkxJQ19IRUFERVJTCiAgICAgbGlicGFzL3NyYy9saWJw
YXMvcGFzX21pbl9oZWFwLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbW1hcF9jYXBhYmls
aXR5LmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbW9ub3RvbmljX3RpbWUuaAotICAgIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19tdGUuaAotICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGVf
Y29uZmlnLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbXV0YXRpb25fY291bnQuaAogICAg
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19vYmplY3Rfa2luZC5oCiAgICAgbGlicGFzL3NyYy9saWJw
YXMvcGFzX3BhZ2VfYmFzZV9hbmRfa2luZC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9j
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTQxYzg4OTc2MGY2Li41NjkwMDRhYjBk
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTYwNiwxMCArNjA2LDYgQEAKIAkJREQ0QkVERTIyOUNCQTQ5NzAwMzk4RTM1IC8q
IG1pbmFsaWduMzJfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYxOEY4NDEyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURENEJFREUz
MjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEzM0MyNzQwNkEz
RTAwNkNBQjU1IC8qIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmMgKi87IH07CiAJCURE
NEJFREU0MjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEExQjI0NTE0OTg0MDA4
NzZEQTAgLyogcGFzX3N0YXR1c19yZXBvcnRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTAxMDAwMDBDMzdCQUJBMEEwQTk5OTk5OSAvKiBwYXNf
bXRlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMTAw
MDAwQTM3QkFCQTBBMEE5OTk5OTkgLyogcGFzX210ZS5jICovOyB9OwotCQkwMTAwMDAwRDM3QkFC
QTBBMEE5OTk5OTkgLyogcGFzX210ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDEwMDAwMEIzN0JBQkEwQTBBOTk5OTk5IC8qIHBhc19tdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9O307Ci0JCTAxMDAwMDBDMzdC
QUJBMEEwQTk5Mzk5OSAvKiBwYXNfbXRlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDEwMDAwMEEzN0JBQkEwQTBBOTkzOTk5IC8qIHBhc19t
dGVfY29uZmlnLmMgKi87IH07Ci0JCTAxMDAwMDBEMzdCQUJBMEEwQTk5Mzk5OSAvKiBwYXNfbXRl
X2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDEwMDAwMEIzN0JBQkEwQTBBOTkzOTk5IC8qIHBhc19tdGVfY29uZmlnLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTt9OwogCQkwMTAwMDAwRDM3QkFCQTBBMEE5
OTE5OTkgLyogcGFzX3plcm9fbWVtb3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwMTAwMDAwQjM3QkFCQTBBMEE5OTE5OTkgLyogcGFzX3plcm9fbWVt
b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTt9OwogCQlE
RDRCRURFNTI5Q0JBNDk3MDAzOThFMzUgLyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMThGODNGMjVDMzQ2
NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURENEJFREU2MjlDQkE0OTcwMDM5OEUz
NSAvKiBpc29faGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZDNDA5MjkyNDUxNDk0MzAwODc2REEwIC8qIGlzb19oZWFwLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEzNTUsMTAgKzEzNTEsNiBA
QAogCQkyQzQ4MTMzQjI3NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVt
b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19sYXJnZV9leHBlbmRh
YmxlX21lbW9yeS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2V4cGVuZGFi
bGVfbWVtb3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDNDgxMzNDMjc0MDZB
M0UwMDZDQUI1NSAvKiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuYzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkM0ODEzM0QyNzQwNkEzRTAwNkNBQjU1IC8q
IHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5Lmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkwMTAwMDAwQTM3QkFCQTBBMEE5OTk5OTkgLyogcGFzX210ZS5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfbXRlLmM7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbXRlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTAxMDAw
MDBCMzdCQUJBMEEwQTk5OTk5OSAvKiBwYXNfbXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IHBhc19tdGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMDEwMDAwMEEzN0JBQkEwQTBBOTkzOTk5IC8q
IHBhc19tdGVfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19t
dGVfY29uZmlnLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbXRlX2NvbmZpZy5jOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwMTAwMDAwQjM3QkFCQTBBMEE5OTM5OTkgLyog
cGFzX210ZV9jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX210
ZV9jb25maWcuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGVfY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTAxMDAwMDBCMzdCQUJBMEEwQTk5MTk5OSAvKiBw
YXNfemVyb19tZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3pl
cm9fbWVtb3J5Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfemVyb19tZW1vcnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkM0ODEzM0UyNzQwNkEzRTAwNkNBQjU1IC8q
IHBhc19leHBlbmRhYmxlX21lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19l
eHBlbmRhYmxlX21lbW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzQ4MTMz
RjI3NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5o
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODc4LDEwICsxODcwLDYgQEAKIAkJCQky
QzA5RDhCRTI3OTdDNkVBMDA1QUExNUMgLyogcGFzX21tYXBfY2FwYWJpbGl0eS5oICovLAogCQkJ
CTBGQzQwQThGMjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuYyAqLywKIAkJ
CQkwRkM0MEE3MTI0NTE0OThBMDA4NzZEQTAgLyogcGFzX21vbm90b25pY190aW1lLmggKi8sCi0J
CQkJMDEwMDAwMEEzN0JBQkEwQTBBOTk5OTk5IC8qIHBhc19tdGUuYyAqLywKLQkJCQkwMTAwMDAw
QjM3QkFCQTBBMEE5OTk5OTkgLyogcGFzX210ZS5oICovLAotCQkJCTAxMDAwMDBBMzdCQUJBMEEw
QTk5Mzk5OSAvKiBwYXNfbXRlX2NvbmZpZy5jICovLAotCQkJCTAxMDAwMDBCMzdCQUJBMEEwQTk5
Mzk5OSAvKiBwYXNfbXRlX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQUQyMjQ1MTQ5OTEwMDg3NkRB
MCAvKiBwYXNfbXV0YXRpb25fY291bnQuaCAqLywKIAkJCQkwRjg3MDA0RTI1QUY4QTE5MDAwRTFB
QkYgLyogcGFzX29iamVjdF9raW5kLmggKi8sCiAJCQkJMEY4NzAwNTIyNUFGOEExQTAwMEUxQUJG
IC8qIHBhc19wYWdlX2Jhc2UuYyAqLywKQEAgLTI2MjIsOCArMjYxMCw2IEBACiAJCQkJREQ0QkVD
RkYyOUNCQTQ5NzAwMzk4RTM1IC8qIHBhc19taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
REQ0QkVDNzMyOUNCQTQ5NzAwMzk4RTM1IC8qIHBhc19tbWFwX2NhcGFiaWxpdHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCURENEJFRDNBMjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfbW9ub3RvbmljX3Rp
bWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTAxMDAwMDBEMzdCQUJBMEEwQTk5OTk5OSAvKiBwYXNf
bXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwMTAwMDAwRDM3QkFCQTBBMEE5OTM5OTkgLyogcGFz
X210ZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCURENEJFQzVGMjlDQkE0OTcwMDM5OEUz
NSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCURENEJFRDQ3MjlD
QkE0OTcwMDM5OEUzNSAvKiBwYXNfb2JqZWN0X2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCURE
NEJFREZCMjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfcGFnZV9iYXNlLmggaW4gSGVhZGVycyAqLywK
QEAgLTMwNDQsOCArMzAzMCw2IEBACiAJCQkJREQ0QkVDMjcyOUNCQTQ5NzAwMzk4RTM1IC8qIHBh
c19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovLAogCQkJCURENEJFRDI4MjlD
QkE0OTcwMDM5OEUzNSAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovLAogCQkJ
CURENEJFQ0JDMjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfbW9ub3RvbmljX3RpbWUuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTAxMDAwMDBDMzdCQUJBMEEwQTk5OTk5OSAvKiBwYXNfbXRlLmMgaW4gU291
cmNlcyAqLywKLQkJCQkwMTAwMDAwQzM3QkFCQTBBMEE5OTM5OTkgLyogcGFzX210ZV9jb25maWcu
YyBpbiBTb3VyY2VzICovLAogCQkJCURENEJFQzREMjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfcGFn
ZV9iYXNlLmMgaW4gU291cmNlcyAqLywKIAkJCQlERDRCRUNERTI5Q0JBNDk3MDAzOThFMzUgLyog
cGFzX3BhZ2VfYmFzZV9jb25maWcuYyBpbiBTb3VyY2VzICovLAogCQkJCURENEJFREEwMjlDQkE0
OTcwMDM5OEUzNSAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYyBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CUGxhdGZvcm0uaCBiL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvQlBsYXRmb3JtLmgKaW5kZXggMThkNjM5MzUwNjZjLi5jMDY3YzdhZTQ5YjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlBsYXRmb3JtLmgKKysrIGIvU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9CUGxhdGZvcm0uaApAQCAtMzMsMTIgKzMzLDYgQEAKICNpbmNs
dWRlIDxUYXJnZXRDb25kaXRpb25hbHMuaD4KICNlbmRpZgogCi0jaWYgZGVmaW5lZChfX2hhc19p
bmNsdWRlKQotI2lmIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9wYXNfbXRlX2FkZGl0
aW9ucy5oPikKLSNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvcGFzX210ZV9hZGRpdGlvbnMuaD4K
LSNlbmRpZiAvLyBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvcGFzX210ZV9hZGRpdGlv
bnMuaD4pCi0jZW5kaWYgLy8gZGVmaW5lZChfX2hhc19pbmNsdWRlKQotCiAjaWZuZGVmIEJBU1NF
UlRfRU5BQkxFRAogI2lmZGVmIE5ERUJVRwogI2RlZmluZSBCQVNTRVJUX0VOQUJMRUQgMApAQCAt
MzUwLDE3ICszNDQsNiBAQAogI2RlZmluZSBCRU5BQkxFX01BTExPQ19IRUFQX0JSRUFLRE9XTiAw
CiAjZW5kaWYKIAotI2lmIEJQTEFURk9STShDT0NPQSkKLS8qIFNob3VsZCBiZSBhbGlnbmVkIHdp
dGggdGhlIGRlZmluaXRpb24gaW4gV1RGL3d0Zi9QbGF0Zm9ybVVzZS5oICovCi0jaWYgZGVmaW5l
ZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9uL0NGUHJpdi5o
PikKLSNkZWZpbmUgQlVTRV9BUFBMRV9JTlRFUk5BTF9TREsgMQotI2Vsc2UKLSNkZWZpbmUgQlVT
RV9BUFBMRV9JTlRFUk5BTF9TREsgMAotI2VuZGlmCi0jZWxzZSAvLyBCUExBVEZPUk0oQ09DT0Ep
Ci0jZGVmaW5lIEJVU0VfQVBQTEVfSU5URVJOQUxfU0RLIDAKLSNlbmRpZiAvLyAhQlBMQVRGT1JN
KENPQ09BKQotCiAvKiBUaGlzIGlzIHVzZWQgZm9yIGRlYnVnZ2luZyB3aGVuIGhhY2tpbmcgb24g
aG93IGJtYWxsb2MgY2FsY3VsYXRlcyBpdHMgcGh5c2ljYWwgZm9vdHByaW50LiAqLwogI2RlZmlu
ZSBFTkFCTEVfUEhZU0lDQUxfUEFHRV9NQVAgMAogCkBAIC0zODUsMTQgKzM2OCw2IEBACiAjZW5k
aWYKICNlbmRpZgogCi0jaWYgQlVTRV9MSUJQQVMKLSNpZm5kZWYgQkVOQUJMRV9NVEUKLSNkZWZp
bmUgQkVOQUJMRV9NVEUgKEJVU0UoQVBQTEVfSU5URVJOQUxfU0RLKSAmJiBCUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgQkNQVShBUk02NEUpKQotI2VuZGlmIC8vICFkZWZpbmVkKEJFTkFCTEVfTVRF
KQotI2Vsc2UgLy8gIUJVU0VfTElCUEFTCi0jZGVmaW5lIEJFTkFCTEVfTVRFIDAKLSNlbmRpZiAv
LyBCVVNFX0xJQlBBUwotCiAjaWYgIWRlZmluZWQoQlVTRV9QUkVDT01QVVRFRF9DT05TVEFOVFNf
Vk1QQUdFNEspCiAjZGVmaW5lIEJVU0VfUFJFQ09NUFVURURfQ09OU1RBTlRTX1ZNUEFHRTRLIDEK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5jcHAg
Yi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlLmNwcAppbmRleCAyZjI5MWQxNDVhMzYu
LjFlM2U2MTgyYWE3NSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2Fn
ZS5jcHAKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5jcHAKQEAgLTQwLDcg
KzQwLDYgQEAKICNlbmRpZgogCiAjaWYgQlVTRShMSUJQQVMpCi0jaW5jbHVkZSAicGFzX210ZV9j
b25maWcuaCIKICNpbmNsdWRlICJpc29faGVhcC5oIgogI2VuZGlmCiAKQEAgLTE3NywyMCArMTc2
LDYgQEAgdm9pZCBlbnN1cmVHaWdhY2FnZSgpCiAgICAgICAgICAgICBnX2dpZ2FjYWdlQ29uZmln
LnRvdGFsU2l6ZSA9IHRvdGFsU2l6ZTsKICAgICAgICAgICAgIGdfZ2lnYWNhZ2VDb25maWcuaXNF
bmFibGVkID0gdHJ1ZTsKICAgICAgICAgICAgIEJQUk9GSUxFX0FMTE9DQVRJT04oSU5JVElBTF9H
SUdBQ0FHRSwgdG90YWxTaXplKTsKLSNpZiBCRU5BQkxFKE1URSkKLSAgICAgICAgICAgIHBhc19t
dGVfZW5zdXJlX2luaXRpYWxpemVkKCk7Ci0gICAgICAgICAgICBpZiAoQk1BTExPQ19VU0VfTVRF
KSB7Ci0gICAgICAgICAgICAgICAgZm9yIChLaW5kIGtpbmQgOiBzaHVmZmxlZEtpbmRzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHZvaWQqIGJhc2UgPSBnX2dpZ2FjYWdlQ29uZmlnLmFsbG9jQmFz
ZVB0cihraW5kKTsKLSAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUgPSBnX2dpZ2FjYWdl
Q29uZmlnLmFsbG9jU2l6ZShraW5kKTsKLSAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm1faW5o
ZXJpdF90IGNoaWxkUHJvY2Vzc0luaGVyaXRhbmNlID0gVk1fSU5IRVJJVF9ERUZBVUxUOwotICAg
ICAgICAgICAgICAgICAgICBjb25zdCBib29sIGNvcHkgPSBmYWxzZTsKLSAgICAgICAgICAgICAg
ICAgICAgY29uc3Qgdm1fcHJvdF90IHByb3RlY3Rpb25zID0gVk1fUFJPVF9XUklURSB8IFZNX1BS
T1RfUkVBRDsKLSAgICAgICAgICAgICAgICAgICAgYXV0byBrZXJuUmVzdWx0ID0gbWFjaF92bV9t
YXAobWFjaF90YXNrX3NlbGYoKSwgKG1hY2hfdm1fYWRkcmVzc190KikmYmFzZSwgc2l6ZSwgdm1Q
YWdlU2l6ZSgpIC0gMSwgVk1fRkxBR1NfRklYRUQgfCBWTV9GTEFHU19PVkVSV1JJVEUgfCAoaW50
KVZNVGFnOjpKU0dpZ2FjYWdlLCBNRU1PUllfT0JKRUNUX05VTEwsIDAsIGNvcHksIHByb3RlY3Rp
b25zLCBwcm90ZWN0aW9ucywgY2hpbGRQcm9jZXNzSW5oZXJpdGFuY2UpOwotICAgICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0JBU1NFUlQoa2VyblJlc3VsdCA9PSBLRVJOX1NVQ0NFU1MpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRpZiAvLyBCRU5BQkxFKE1URSkKICAg
ICAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNh
Z2VDb25maWcuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2VDb25maWcuaAppbmRl
eCA2MWQyY2JhZmU2YTguLjc1ZmEwOWRjMjhkYyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9HaWdhY2FnZUNvbmZpZy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2ln
YWNhZ2VDb25maWcuaApAQCAtOTgsOCArOTgsOCBAQCBzdHJ1Y3QgQ29uZmlnIHsKICAgICBzaXpl
X3QgYWxsb2NTaXplc1tzdGF0aWNfY2FzdDxzaXplX3Q+KE51bWJlck9mS2luZHMpXTsKIH07CiAK
LS8vIFRoZSBmaXJzdCA2IHNsb3RzIGFyZSByZXNlcnZlZCBmb3IgdXNlIGJ5IHN5c3RlbSBhbGxv
Y2F0b3JzCi1jb25zdGV4cHIgc2l6ZV90IHN0YXJ0U2xvdE9mR2lnYWNhZ2VDb25maWcgPSA2Owor
Ly8gVGhlIGZpcnN0IDQgc2xvdHMgYXJlIHJlc2VydmVkIGZvciB0aGUgdXNlIG9mIHRoZSBFeGVj
dXRhYmxlQWxsb2NhdG9yLgorY29uc3RleHByIHNpemVfdCBzdGFydFNsb3RPZkdpZ2FjYWdlQ29u
ZmlnID0gNDsKIGNvbnN0ZXhwciBzaXplX3Qgc3RhcnRPZmZzZXRPZkdpZ2FjYWdlQ29uZmlnID0g
c3RhcnRTbG90T2ZHaWdhY2FnZUNvbmZpZyAqIHNpemVvZihXZWJDb25maWc6OlNsb3QpOwogCiBj
b25zdGV4cHIgc2l6ZV90IHJlc2VydmVkU2xvdHNGb3JHaWdhY2FnZUNvbmZpZyA9IDE2OwpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TeXN0ZW1IZWFwLmNwcCBiL1NvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvU3lzdGVtSGVhcC5jcHAKaW5kZXggYzAzOGQ0ZmM1Mjc0Li45MGUzNWZj
NjU2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU3lzdGVtSGVhcC5jcHAK
KysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9TeXN0ZW1IZWFwLmNwcApAQCAtMzMsNyArMzMs
NiBAQAogI2luY2x1ZGUgPHRocmVhZD4KIAogI2lmIEJFTkFCTEUoTElCUEFTKQotI2luY2x1ZGUg
InBhc19tdGUuaCIKICNpbmNsdWRlICJwYXNfc3lzdGVtX2hlYXAuaCIKICNlbmRpZgogCkBAIC0y
NzQsNyArMjczLDYgQEAgdm9pZCogcGFzX3N5c3RlbV9oZWFwX21hbGxvYyhzaXplX3Qgc2l6ZSkK
IHsKICAgICBhdXRvIHN5c3RlbUhlYXAgPSBTeXN0ZW1IZWFwOjpnZXRFeGlzdGluZygpOwogICAg
IFBBU19QUk9GSUxFKFNZU1RFTV9IRUFQX0FMTE9DQVRJT04sIHN5c3RlbUhlYXAsIHNpemUsIDAs
IHBhc19ub25fY29tcGFjdF9hbGxvY2F0aW9uX21vZGUpOwotICAgIFBBU19NVEVfSEFORExFKFNZ
U1RFTV9IRUFQX0FMTE9DQVRJT04sIHN5c3RlbUhlYXAsIHNpemUsIDAsIHBhc19ub25fY29tcGFj
dF9hbGxvY2F0aW9uX21vZGUpOwogICAgIHJldHVybiBzeXN0ZW1IZWFwLT5tYWxsb2Moc2l6ZSwg
RmFpbHVyZUFjdGlvbjo6UmV0dXJuTnVsbCk7CiB9CiAKQEAgLTI4Miw3ICsyODAsNiBAQCB2b2lk
KiBwYXNfc3lzdGVtX2hlYXBfbWVtYWxpZ24oc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUp
CiB7CiAgICAgYXV0byBzeXN0ZW1IZWFwID0gU3lzdGVtSGVhcDo6Z2V0RXhpc3RpbmcoKTsKICAg
ICBQQVNfUFJPRklMRShTWVNURU1fSEVBUF9BTExPQ0FUSU9OLCBzeXN0ZW1IZWFwLCBzaXplLCBh
bGlnbm1lbnQsIHBhc19ub25fY29tcGFjdF9hbGxvY2F0aW9uX21vZGUpOwotICAgIFBBU19NVEVf
SEFORExFKFNZU1RFTV9IRUFQX0FMTE9DQVRJT04sIHN5c3RlbUhlYXAsIHNpemUsIGFsaWdubWVu
dCwgcGFzX25vbl9jb21wYWN0X2FsbG9jYXRpb25fbW9kZSk7CiAgICAgcmV0dXJuIHN5c3RlbUhl
YXAtPm1lbWFsaWduKGFsaWdubWVudCwgc2l6ZSwgRmFpbHVyZUFjdGlvbjo6UmV0dXJuTnVsbCk7
CiB9CiAKQEAgLTI5MCw3ICsyODcsNiBAQCB2b2lkKiBwYXNfc3lzdGVtX2hlYXBfcmVhbGxvYyh2
b2lkKiBwdHIsIHNpemVfdCBzaXplKQogewogICAgIGF1dG8gc3lzdGVtSGVhcCA9IFN5c3RlbUhl
YXA6OmdldEV4aXN0aW5nKCk7CiAgICAgUEFTX1BST0ZJTEUoU1lTVEVNX0hFQVBfUkVBTExPQ0FU
SU9OLCBzeXN0ZW1IZWFwLCBwdHIsIHNpemUsIHBhc19ub25fY29tcGFjdF9hbGxvY2F0aW9uX21v
ZGUpOwotICAgIFBBU19NVEVfSEFORExFKFNZU1RFTV9IRUFQX1JFQUxMT0NBVElPTiwgc3lzdGVt
SGVhcCwgcHRyLCBzaXplLCBwYXNfbm9uX2NvbXBhY3RfYWxsb2NhdGlvbl9tb2RlKTsKICAgICBy
ZXR1cm4gc3lzdGVtSGVhcC0+cmVhbGxvYyhwdHIsIHNpemUsIEZhaWx1cmVBY3Rpb246OlJldHVy
bk51bGwpOwogfQogCkBAIC0yOTgsNyArMjk0LDYgQEAgdm9pZCogcGFzX3N5c3RlbV9oZWFwX21h
bGxvY19jb21wYWN0KHNpemVfdCBzaXplKQogewogICAgIGF1dG8gc3lzdGVtSGVhcCA9IFN5c3Rl
bUhlYXA6OmdldEV4aXN0aW5nKCk7CiAgICAgUEFTX1BST0ZJTEUoU1lTVEVNX0hFQVBfQUxMT0NB
VElPTiwgc3lzdGVtSGVhcCwgc2l6ZSwgMCwgcGFzX2Fsd2F5c19jb21wYWN0X2FsbG9jYXRpb25f
bW9kZSk7Ci0gICAgUEFTX01URV9IQU5ETEUoU1lTVEVNX0hFQVBfQUxMT0NBVElPTiwgc3lzdGVt
SGVhcCwgc2l6ZSwgMCwgcGFzX2Fsd2F5c19jb21wYWN0X2FsbG9jYXRpb25fbW9kZSk7CiAgICAg
cmV0dXJuIHN5c3RlbUhlYXAtPm1hbGxvYyhzaXplLCBGYWlsdXJlQWN0aW9uOjpSZXR1cm5OdWxs
KTsKIH0KIApAQCAtMzA2LDcgKzMwMSw2IEBAIHZvaWQqIHBhc19zeXN0ZW1faGVhcF9tZW1hbGln
bl9jb21wYWN0KHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKQogewogICAgIGF1dG8gc3lz
dGVtSGVhcCA9IFN5c3RlbUhlYXA6OmdldEV4aXN0aW5nKCk7CiAgICAgUEFTX1BST0ZJTEUoU1lT
VEVNX0hFQVBfQUxMT0NBVElPTiwgc3lzdGVtSGVhcCwgc2l6ZSwgYWxpZ25tZW50LCBwYXNfYWx3
YXlzX2NvbXBhY3RfYWxsb2NhdGlvbl9tb2RlKTsKLSAgICBQQVNfTVRFX0hBTkRMRShTWVNURU1f
SEVBUF9BTExPQ0FUSU9OLCBzeXN0ZW1IZWFwLCBzaXplLCBhbGlnbm1lbnQsIHBhc19hbHdheXNf
Y29tcGFjdF9hbGxvY2F0aW9uX21vZGUpOwogICAgIHJldHVybiBzeXN0ZW1IZWFwLT5tZW1hbGln
bihhbGlnbm1lbnQsIHNpemUsIEZhaWx1cmVBY3Rpb246OlJldHVybk51bGwpOwogfQogCkBAIC0z
MTQsNyArMzA4LDYgQEAgdm9pZCogcGFzX3N5c3RlbV9oZWFwX3JlYWxsb2NfY29tcGFjdCh2b2lk
KiBwdHIsIHNpemVfdCBzaXplKQogewogICAgIGF1dG8gc3lzdGVtSGVhcCA9IFN5c3RlbUhlYXA6
OmdldEV4aXN0aW5nKCk7CiAgICAgUEFTX1BST0ZJTEUoU1lTVEVNX0hFQVBfUkVBTExPQ0FUSU9O
LCBzeXN0ZW1IZWFwLCBwdHIsIHNpemUsIHBhc19hbHdheXNfY29tcGFjdF9hbGxvY2F0aW9uX21v
ZGUpOwotICAgIFBBU19NVEVfSEFORExFKFNZU1RFTV9IRUFQX1JFQUxMT0NBVElPTiwgc3lzdGVt
SGVhcCwgcHRyLCBzaXplLCBwYXNfYWx3YXlzX2NvbXBhY3RfYWxsb2NhdGlvbl9tb2RlKTsKICAg
ICByZXR1cm4gc3lzdGVtSGVhcC0+cmVhbGxvYyhwdHIsIHNpemUsIEZhaWx1cmVBY3Rpb246OlJl
dHVybk51bGwpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxs
b2NhdGUuY3BwIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmNwcAppbmRleCBk
ODM4ZWQ5ZjUwOTEuLjFiYzY0MWI3MWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9WTUFsbG9jYXRlLmNwcAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2Nh
dGUuY3BwCkBAIC0yNSwxMCArMjUsNiBAQAogCiAjaW5jbHVkZSAiVk1BbGxvY2F0ZS5oIgogCi0j
aWYgQlVTRShMSUJQQVMpCi0jaW5jbHVkZSAicGFzX210ZV9jb25maWcuaCIKLSNlbmRpZgotCiBu
YW1lc3BhY2UgYm1hbGxvYyB7CiAKICNpZiBCTUFMTE9DX1VTRV9NQURWX1pFUk8KQEAgLTYwLDM0
ICs1Niw0IEBAIGJvb2wgaXNNYWR2WmVyb1N1cHBvcnRlZCgpCiB9CiAjZW5kaWYKIAotI2lmIEJF
TkFCTEUoTVRFKSAmJiBCT1MoREFSV0lOKQotYm9vbCB0cnlWbVplcm9BbmRQdXJnZU1URUNhc2Uo
dm9pZCogcCwgc2l6ZV90IHZtU2l6ZSwgVk1UYWcgdXNhZ2UpCi17Ci0gICAgaWYgKCFCTUFMTE9D
X1VTRV9NVEUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjb25zdCB2bV9pbmhlcml0X3Qg
Y2hpbGRQcm9jZXNzSW5oZXJpdGFuY2UgPSBWTV9JTkhFUklUX0RFRkFVTFQ7Ci0gICAgY29uc3Qg
Ym9vbCBjb3B5ID0gZmFsc2U7Ci0gICAgY29uc3QgaW50IHRhZyA9IHN0YXRpY19jYXN0PGludD4o
dXNhZ2UpOwotICAgIC8qIFdlIHdvdWxkIG11Y2ggcHJlZmVyIHRvIHVzZSBtYWNoX3ZtX2JlaGF2
aW9yX3NldCBoZXJlLCBhcyBpdAotICAgICAgIGFsd2F5cyBwcmVzZXJ2ZXMgdGhlIHBhZ2UncyBj
dXJyZW50IFZNIGZsYWdzLiBIb3dldmVyLCBpdCdzCi0gICAgICAgY3VycmVudGx5IGJsb2NrZWQg
YnkgYW4gdW5rbm93biBzZWN1cml0eSBwb2xpY3ksIHNvIHVudGlsIHRoYXQKLSAgICAgICBibG9j
a2VyIGlzIHJlc29sdmVkIHdlIGNhbiB1c2UgdGhpcyBpbnN0ZWFkIHdpdGhvdXQgbXVjaCBsb3Nz
LiAqLwotICAgIGtlcm5fcmV0dXJuX3Qgdm1NYXBSZXN1bHQgPSBtYWNoX3ZtX21hcChtYWNoX3Rh
c2tfc2VsZigpLAotICAgICAgICAobWFjaF92bV9hZGRyZXNzX3QqKSZwLAotICAgICAgICB2bVNp
emUsCi0gICAgICAgIDAsCi0gICAgICAgIFZNX0ZMQUdTX0ZJWEVEIHwgVk1fRkxBR1NfT1ZFUldS
SVRFIHwgQk1BTExPQ19WTV9NVEUgfCB0YWcsCi0gICAgICAgIE1FTU9SWV9PQkpFQ1RfTlVMTCwK
LSAgICAgICAgMCwKLSAgICAgICAgY29weSwKLSAgICAgICAgVk1fUFJPVF9ERUZBVUxULAotICAg
ICAgICBWTV9QUk9UX0FMTCwKLSAgICAgICAgY2hpbGRQcm9jZXNzSW5oZXJpdGFuY2UpOwotICAg
IGlmICh2bU1hcFJlc3VsdCAhPSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIGVycm5vID0gMDsKLSAg
ICBSRUxFQVNFX0JBU1NFUlQodm1NYXBSZXN1bHQgPT0gS0VSTl9TVUNDRVNTKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLSNlbmRpZiAvLyBCRU5BQkxFKE1URSkgJiYgQk9TKERBUldJTikKLQogfSAv
LyBuYW1lc3BhY2UgYm1hbGxvYwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9W
TUFsbG9jYXRlLmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAppbmRleCBl
MGUzNmUyMWJkNmYuLjNkZDE0NTAzMTllMCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1h
bGxvYy9WTUFsbG9jYXRlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRl
LmgKQEAgLTI2NSwxMCArMjY1LDYgQEAgaW5saW5lIHZvaWQgdm1SZXZva2VQZXJtaXNzaW9ucyh2
b2lkKiBwLCBzaXplX3Qgdm1TaXplKQogICAgIG1wcm90ZWN0KHAsIHZtU2l6ZSwgUFJPVF9OT05F
KTsKIH0KIAotI2lmIEJFTkFCTEUoTVRFKSAmJiBCT1MoREFSV0lOKQotYm9vbCB0cnlWbVplcm9B
bmRQdXJnZU1URUNhc2Uodm9pZCogcCwgc2l6ZV90IHZtU2l6ZSwgVk1UYWcgdXNhZ2UpOwotI2Vu
ZGlmIC8vIEJFTkFCTEUoTVRFKSAmJiBCT1MoREFSV0lOKQotCiBpbmxpbmUgdm9pZCB2bVplcm9B
bmRQdXJnZSh2b2lkKiBwLCBzaXplX3Qgdm1TaXplLCBWTVRhZyB1c2FnZSkKIHsKICAgICB2bVZh
bGlkYXRlKHAsIHZtU2l6ZSk7CkBAIC0yODIsMTAgKzI3OCw2IEBAIGlubGluZSB2b2lkIHZtWmVy
b0FuZFB1cmdlKHZvaWQqIHAsIHNpemVfdCB2bVNpemUsIFZNVGFnIHVzYWdlKQogICAgIH0KICNl
bmRpZgogICAgIEJQUk9GSUxFX1pFUk9fRklMTF9QQUdFKHAsIHZtU2l6ZSwgZmxhZ3MsIHRhZyk7
Ci0jaWYgQkVOQUJMRShNVEUpICYmIEJPUyhEQVJXSU4pCi0gICAgaWYgKHRyeVZtWmVyb0FuZFB1
cmdlTVRFQ2FzZShwLCB2bVNpemUsIHVzYWdlKSkKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmIC8v
IEJFTkFCTEUoTVRFKSAmJiBCT1MoREFSV0lOKQogICAgIC8vIE1BUF9BTk9OIGd1YXJhbnRlZXMg
dGhlIG1lbW9yeSBpcyB6ZXJvZWQuIFRoaXMgd2lsbCBhbHNvIGNhdXNlCiAgICAgLy8gcGFnZSBm
YXVsdHMgb24gYWNjZXNzZXMgdG8gdGhpcyByYW5nZSBmb2xsb3dpbmcgdGhpcyBjYWxsLgogICAg
IHZvaWQqIHJlc3VsdCA9IG1tYXAocCwgdm1TaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBm
bGFncywgdGFnLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3YjhiM2VjMDZhMTcuLjZhOGE0YWViYjll
YSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzYwLDExICszNjAsNiBAQAogCQkwRkM0RUMzQjIzNEE5MUUz
MDBCNzEwQTMgLyogcGFzX3N0YXR1c19yZXBvcnRlci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNEVDMzIyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19z
dGF0dXNfcmVwb3J0ZXIuYyAqLzsgfTsKIAkJMEZDNEVDM0MyMzRBOTFFMzAwQjcxMEEzIC8qIHBh
c19zdHJpbmdfc3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkM0RUMzMzIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX3N0cmluZ19zdHJlYW0uaCAq
LzsgfTsKIAkJMEZDNEVDM0QyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzRFQzM0
MjM0QTkxRTIwMEI3MTBBMyAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmggKi87IH07Ci0JCTBGOTk5
OTlDMjZBQUFBMDAwMDIxMjEyMSAvKiBwYXNfbXRlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk5OTk5QTI2QUFBQTAwMDAyMTIxMjEgLyogcGFzX210
ZS5jICovOyB9OwotCQkwRjk5OTk5RDI2QUFBQTAwMDAyMTIxMjEgLyogcGFzX210ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5OTk5OUIyNkFBQUEw
MDAwMjEyMTIxIC8qIHBhc19tdGUuaCAqLzsgfTsKLQkJMEY5OTk5OUMyNkFBQUEwMDAwMjEzMTIx
IC8qIHBhc19tdGVfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjk5OTk5QTI2QUFBQTAwMDAyMTMxMjEgLyogcGFzX210ZV9jb25maWcuYyAq
LzsgfTsKLQkJMEY5OTk5OUQyNkFBQUEwMDAwMjEzMTIxIC8qIHBhc19tdGVfY29uZmlnLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjk5OTk5QjI2QUFB
QTAwMDAyMTMxMjEgLyogcGFzX210ZV9jb25maWcuaCAqLzsgfTsKLQkJMEY5OTk5OUQyNkFBQUEw
MDAwMTExMTExIC8qIHBhc19tdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOTk5OTlCMjZBQUFBMDAwMDExMTExMSAvKiBwYXNfemVyb19tZW1vcnku
aCAqLzsgfTsKIAkJMEZDNEVDM0UyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1h
cnlfb2JqZWN0X2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZDNEVDMzUyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1h
cnlfb2JqZWN0X2NhbGxiYWNrcy5jICovOyB9OwogCQkwRkM0RUMzRjIzNEE5MUUzMDBCNzEwQTMg
LyogcGFzX2ZkX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZDNEVDMzYyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19mZF9zdHJlYW0uaCAqLzsg
fTsKIAkJMEZDNEVDNzkyMzUxNzA3QjAwQjcxMEEzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfZW1w
dGluZXNzX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGQzRFQzc4MjM1MTcwN0IwMEI3MTBBMyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2VtcHRp
bmVzc19raW5kLmggKi87IH07CkBAIC0xMDc3LDEwICsxMDcyLDYgQEAKIAkJMEZDNEVDMzIyMzRB
OTFFMjAwQjcxMEEzIC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBwYXRoID0gcGFzX3N0YXR1c19yZXBvcnRlci5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkM0RUMzMzIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX3N0cmluZ19zdHJlYW0u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3N0cmluZ19zdHJlYW0uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNEVDMzQyMzRBOTFFMjAwQjcxMEEzIC8q
IHBhc19zdGF0dXNfcmVwb3J0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX3N0YXR1c19yZXBvcnRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjk5
OTk5QTI2QUFBQTAwMDAyMTIxMjEgLyogcGFzX210ZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IHBhdGggPSBwYXNfbXRlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOTk5
OTlCMjZBQUFBMDAwMDIxMjEyMSAvKiBwYXNfbXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19tdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5OTk5
OUEyNkFBQUEwMDAwMjEzMTIxIC8qIHBhc19tdGVfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuYzsgcGF0aCA9IHBhc19tdGVfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTBGOTk5OTlCMjZBQUFBMDAwMDIxMzEyMSAvKiBwYXNfbXRlX2NvbmZpZy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbXRlX2NvbmZpZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjk5OTk5QjI2QUFBQTAwMDAxMTExMTEgLyogcGFzX3plcm9f
bWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc196ZXJvX21lbW9y
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0RUMzNTIzNEE5MUUzMDBCNzEw
QTMgLyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNr
cy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0RUMzNjIzNEE5MUUzMDBCNzEw
QTMgLyogcGFzX2ZkX3N0cmVhbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfZmRfc3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzk4LDEwICsx
Nzg5LDYgQEAKIAkJCQkyQzQ3MzE0RjI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX21tYXBfY2FwYWJp
bGl0eS5oICovLAogCQkJCTBGRDQ4QjEwMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfbW9ub3Rvbmlj
X3RpbWUuYyAqLywKIAkJCQkwRkQ0OEFGRDIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX21vbm90b25p
Y190aW1lLmggKi8sCi0JCQkJMEY5OTk5OUEyNkFBQUEwMDAwMjEyMTIxIC8qIHBhc19tdGUuYyAq
LywKLQkJCQkwRjk5OTk5QjI2QUFBQTAwMDAyMTIxMjEgLyogcGFzX210ZS5oICovLAotCQkJCTBG
OTk5OTlBMjZBQUFBMDAwMDIxMzEyMSAvKiBwYXNfbXRlX2NvbmZpZy5jICovLAotCQkJCTBGOTk5
OTlCMjZBQUFBMDAwMDIxMzEyMSAvKiBwYXNfbXRlX2NvbmZpZy5oICovLAogCQkJCTBGMDkyMjY5
MjJCMDdDMjEwMDdENUQzQSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCAqLywKIAkJCQkwRjlBMUQ0
QTI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX29iamVjdF9raW5kLmggKi8sCiAJCQkJMEY5QTFDQkEy
NTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuYyAqLywKQEAgLTIzMTUsOCArMjMwMiw2
IEBACiAJCQkJMEZEMjJDRkMyMkNBRjE2NDAwQjIxODQxIC8qIHBhc19taW5faGVhcC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMkM0NzMxNTIyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19tbWFwX2NhcGFi
aWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjM4MjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfbW9ub3RvbmljX3RpbWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOTk5OTlEMjZBQUFBMDAw
MDIxMjEyMSAvKiBwYXNfbXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjk5OTk5RDI2QUFBQTAw
MDAyMTMxMjEgLyogcGFzX210ZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMDkyMjZB
MjJCMDdDMjEwMDdENUQzQSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGOUExRDRDMjU1RjJDRDcwMEM4RDExQiAvKiBwYXNfb2JqZWN0X2tpbmQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGOUExRDA1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI4NDQsOCArMjgyOSw2IEBACiAJCQkJMEYwMzdBRjMyNUFFQTkx
QTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovLAog
CQkJCTBGRTdFREM4MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuYyBpbiBT
b3VyY2VzICovLAogCQkJCTBGRDQ4QjRCMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfbW9ub3Rvbmlj
X3RpbWUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOTk5OTlDMjZBQUFBMDAwMDIxMjEyMSAvKiBw
YXNfbXRlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjk5OTk5QzI2QUFBQTAwMDAyMTMxMjEgLyog
cGFzX210ZV9jb25maWcuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGOUExRDA2MjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfcGFnZV9iYXNlLmMgaW4gU291cmNlcyAqLywKIAkJCQkyQzM0MDAwMjI3NTgx
Njg3MDA1NTY1Q0IgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTBGOUExQ0YyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYyBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
aml0X2hlYXBfY29uZmlnLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRf
aGVhcF9jb25maWcuaAppbmRleCAyNWIzMDQyM2YzNTMuLjA2N2E1ZjY0NDcyNSAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmgKKysr
IGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmgKQEAg
LTEzMSw3ICsxMzEsNiBAQCBQQVNfSEVBUF9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVDTEFSQVRJ
T05TKGppdF9oZWFwX2NvbmZpZyk7CiAgICAgICAgIC5iYXNlID0geyBcCiAgICAgICAgICAgICAu
aXNfZW5hYmxlZCA9IHRydWUsIFwKICAgICAgICAgICAgIC5hbGxvd19wcm9maWxpbmcgPSBmYWxz
ZSwgXAotICAgICAgICAgICAgLmFsbG93X210ZV90YWdnaW5nID0gZmFsc2UsIFwKICAgICAgICAg
ICAgIC5oZWFwX2NvbmZpZ19wdHIgPSAmaml0X2hlYXBfY29uZmlnLCBcCiAgICAgICAgICAgICAu
cGFnZV9jb25maWdfcHRyID0gJmppdF9oZWFwX2NvbmZpZy52YXJpYW50X2xvd2VyY2FzZSAjIyBf
Yml0Zml0X2NvbmZpZy5iYXNlLCBcCiAgICAgICAgICAgICAucGFnZV9jb25maWdfa2luZCA9IHBh
c19wYWdlX2NvbmZpZ19raW5kX2JpdGZpdCwgXApAQCAtMTY3LDcgKzE2Niw2IEBAIFBBU19IRUFQ
X0NPTkZJR19TUEVDSUFMSVpBVElPTl9ERUNMQVJBVElPTlMoaml0X2hlYXBfY29uZmlnKTsKICAg
ICAgICAgICAgIC5iYXNlID0geyBcCiAgICAgICAgICAgICAgICAgLmlzX2VuYWJsZWQgPSB0cnVl
LCBcCiAgICAgICAgICAgICAgICAgLmFsbG93X3Byb2ZpbGluZyA9IGZhbHNlLCBcCi0gICAgICAg
ICAgICAgICAgLmFsbG93X210ZV90YWdnaW5nID0gZmFsc2UsIFwKICAgICAgICAgICAgICAgICAu
aGVhcF9jb25maWdfcHRyID0gJmppdF9oZWFwX2NvbmZpZywgXAogICAgICAgICAgICAgICAgIC5w
YWdlX2NvbmZpZ19wdHIgPSAmaml0X2hlYXBfY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmln
LmJhc2UsIFwKICAgICAgICAgICAgICAgICAucGFnZV9jb25maWdfa2luZCA9IHBhc19wYWdlX2Nv
bmZpZ19raW5kX3NlZ3JlZ2F0ZWQsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5jIGIvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMKaW5kZXggNjNlZmM1ODZhMzI0
Li4zZWRlOTYyMjNmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5jCkBAIC0yOCwxNiArMjgsMTMgQEAKICNp
ZiBMSUJQQVNfRU5BQkxFRAogCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCi0j
aW5jbHVkZSAicGFzX210ZS5oIgogI2luY2x1ZGUgInBhc19wYWdlX21hbGxvYy5oIgotI2luY2x1
ZGUgInBhc196ZXJvX21lbW9yeS5oIgogCiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzX2FsbG9j
YXRpb25fcmVzdWx0X3plcm9fbGFyZ2Vfc2xvdyhwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0
LCBzaXplX3Qgc2l6ZSkKIHsKICAgICBzaXplX3QgcGFnZV9zaXplOwogCiAgICAgUEFTX1BST0ZJ
TEUoWkVST19BTExPQ0FUSU9OX1JFU1VMVCwgcmVzdWx0LmJlZ2luKTsKLSAgICBQQVNfTVRFX0hB
TkRMRShaRVJPX0FMTE9DQVRJT05fUkVTVUxULCByZXN1bHQuYmVnaW4pOwogCiAgICAgcGFnZV9z
aXplID0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpOwogICAgIGlmIChwYXNfaXNfYWxpZ25l
ZChzaXplLCBwYWdlX3NpemUpICYmIHBhc19pc19hbGlnbmVkKHJlc3VsdC5iZWdpbiwgcGFnZV9z
aXplKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19h
bGxvY2F0aW9uX3Jlc3VsdC5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2FsbG9jYXRpb25fcmVzdWx0LmgKaW5kZXggMzNmM2UwOTA0ZDJkLi43MDVmMGM3NTg1MTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9u
X3Jlc3VsdC5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxv
Y2F0aW9uX3Jlc3VsdC5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlIDxlcnJuby5oPgog
I2luY2x1ZGUgInBhc19pbnRlcm5hbF9jb25maWcuaCIKLSNpbmNsdWRlICJwYXNfbXRlLmgiCiAj
aW5jbHVkZSAicGFzX3V0aWxzLmgiCiAjaW5jbHVkZSAicGFzX3plcm9fbWVtb3J5LmgiCiAjaW5j
bHVkZSAicGFzX3plcm9fbW9kZS5oIgpAQCAtOTcsNyArOTYsNiBAQCBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHRfemVybyhwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0LAogCiAgICAgUEFTX0FMTE9X
X1VOU0FGRV9CVUZGRVJfVVNBR0VfQkVHSU4KICAgICBQQVNfUFJPRklMRShaRVJPX0FMTE9DQVRJ
T05fUkVTVUxULCByZXN1bHQuYmVnaW4pOwotICAgIFBBU19NVEVfSEFORExFKFpFUk9fQUxMT0NB
VElPTl9SRVNVTFQsIHJlc3VsdC5iZWdpbik7CiAgICAgUEFTX0FMTE9XX1VOU0FGRV9CVUZGRVJf
VVNBR0VfRU5ECiAKICAgICB2b2lkKiBtZW1vcnkgPSAodm9pZCopcmVzdWx0LmJlZ2luOwpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdl
X2lubGluZXMuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
cGFnZV9pbmxpbmVzLmgKaW5kZXggYWIwZmFlMDZhMmQ2Li4wZDJmNDM1MGQ2ZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxp
bmVzLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9w
YWdlX2lubGluZXMuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgInBhc19iaXRmaXRfdmll
dy5oIgogI2luY2x1ZGUgInBhc19jb21taXRfc3Bhbi5oIgogI2luY2x1ZGUgInBhc19oZWFwX2Nv
bmZpZy5oIgotI2luY2x1ZGUgInBhc19tdGUuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9iYXNlX2lu
bGluZXMuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKICNpbmNsdWRlICJw
YXNfdGhyZWFkLmgiCkBAIC0yNDgsNyArMjQ3LDYgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQgcGFzX2JpdGZpdF9wYWdlX2ZpbmlzaF9hbGwK
ICAgICBwYXNfYml0Zml0X3BhZ2VfdGVzdGluZ192ZXJpZnkocGFnZSk7CiAKICAgICBQQVNfUFJP
RklMRShCSVRGSVRfQUxMT0NBVElPTiwgJnBhZ2VfY29uZmlnLCBiZWdpbiwgc2l6ZSwgYWxsb2Nh
dGlvbl9tb2RlKTsKLSAgICBQQVNfTVRFX0hBTkRMRShCSVRGSVRfQUxMT0NBVElPTiwgJnBhZ2Vf
Y29uZmlnLCBiZWdpbiwgc2l6ZSwgYWxsb2NhdGlvbl9tb2RlKTsKIAogICAgIHJldHVybiBwYXNf
Yml0Zml0X2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKGJlZ2luKTsKIH0KQEAgLTkw
Miw3ICs5MDAsNiBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdWludHB0cl90IHBhc19iaXRm
aXRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZV9pbXBsKAogICAgIH0gfQogCiAgICAgUEFTX1BS
T0ZJTEUoQklURklUX1BBR0VfREVBTExPQ0FUSU9OLCBwYWdlX2NvbmZpZywgYmVnaW4sIG9yaWdp
bmFsX29iamVjdF9zaXplKTsKLSAgICBQQVNfTVRFX0hBTkRMRShCSVRGSVRfUEFHRV9ERUFMTE9D
QVRJT04sIHBhZ2VfY29uZmlnLCBiZWdpbiwgb3JpZ2luYWxfb2JqZWN0X3NpemUpOwogCiAgICAg
cmV0dXJuIG51bV9iaXRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvbmZpZy5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2NvbmZpZy5oCmluZGV4IGMxZDU3ODExNTI4Mi4uNWU5NDYwZWZhOGFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29uZmlnLmgKKysrIGIvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbmZpZy5oCkBAIC0zMCwxNCArMzAs
NiBAQAogCiAjaW5jbHVkZSAic3RkYm9vbC5oIgogCi0jaWYgZGVmaW5lZChQQVNfQk1BTExPQykg
JiYgUEFTX0JNQUxMT0MKLSNpZiBkZWZpbmVkKF9faGFzX2luY2x1ZGUpCi0jaWYgX19oYXNfaW5j
bHVkZSg8V2ViS2l0QWRkaXRpb25zL3Bhc19tdGVfYWRkaXRpb25zLmg+KQotI2luY2x1ZGUgPFdl
YktpdEFkZGl0aW9ucy9wYXNfbXRlX2FkZGl0aW9ucy5oPgotI2VuZGlmIC8vIF9faGFzX2luY2x1
ZGUoPFdlYktpdEFkZGl0aW9ucy9wYXNfbXRlX2FkZGl0aW9ucy5oPikgJiYgIVBBU19FTkFCTEVf
VEVTVElORwotI2VuZGlmIC8vIGRlZmluZWQoX19oYXNfaW5jbHVkZSkKLSNlbmRpZiAvLyBkZWZp
bmVkKFBBU19CTUFMTE9DKSAmJiBQQVNfQk1BTExPQwotCiAjZGVmaW5lIFBBU19MT0dfTk9ORSAo
MCkKICNkZWZpbmUgUEFTX0xPR19IRUFQX0lORlJBU1RSVUNUVVJFICgxIDw8IDApCiAjZGVmaW5l
IFBBU19MT0dfQk9PVFNUUkFQX0hFQVBTICgxIDw8IDEpCkBAIC03MywxMCArNjUsNiBAQAogCiAj
ZGVmaW5lIFBBU19BUk0gX19QQVNfQVJNCiAKLSNpZm5kZWYgUEFTX0VOQUJMRV9NVEUKLSNkZWZp
bmUgUEFTX0VOQUJMRV9NVEUgKFBBU19VU0VfQVBQTEVfSU5URVJOQUxfU0RLICYmIFBBU19QTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBfX1BBU19BUk02NEUpCi0jZW5kaWYKLQogI2RlZmluZSBQQVNf
UklTQ1YgX19QQVNfUklTQ1YKIAogI2RlZmluZSBQQVNfQUREUkVTU19CSVRTICAgICAgICAgICAg
ICAgICA0OApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmMgYi9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFn
ZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuYwppbmRleCBlMmEzYmE4NzIxZDYuLmQxMGM5
Y2QyODQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmMKKysr
IGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NyZWF0ZV9iYXNpY19oZWFw
X3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmMKQEAgLTM0LDcgKzM0LDYgQEAKICNp
bmNsdWRlICJwYXNfaW1tb3J0YWxfaGVhcC5oIgogI2luY2x1ZGUgInBhc19sYXJnZV9oZWFwX3Bo
eXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oIgogI2luY2x1ZGUgInBhc19tZWdhcGFnZV9jYWNo
ZS5oIgotI2luY2x1ZGUgInBhc19tdGUuaCIKICNpbmNsdWRlICJwYXNfcmVzZXJ2ZWRfbWVtb3J5
X3Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5LmgiCiAKQEAgLTgwLDcgKzc5LDYgQEAgc3RhdGljIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBh
bGxvY2F0ZV9mcm9tX21lZ2FwYWdlcygKICAgICBoZWFwX2NvbmZpZyA9IHBhc19oZWFwX2NvbmZp
Z19raW5kX2dldF9jb25maWcoaGVhcC0+Y29uZmlnX2tpbmQpOwogCiAgICAgUEFTX1BST0ZJTEUo
TUVHQVBBR0VTX0FMTE9DQVRJT04sIGhlYXAsIHNpemUsIGFsaWdubWVudC5hbGlnbm1lbnQsIGhl
YXBfY29uZmlnLCBjYWNoZV9zaXplKTsKLSAgICBQQVNfTVRFX0hBTkRMRShNRUdBUEFHRVNfQUxM
T0NBVElPTiwgaGVhcCwgc2l6ZSwgYWxpZ25tZW50LmFsaWdubWVudCwgaGVhcF9jb25maWcpOwog
CiAgICAgcmV0dXJuIHBhc19sYXJnZV9oZWFwX3RyeV9hbGxvY2F0ZV9hbmRfZm9yZ2V0KAogICAg
ICAgICAmaGVhcC0+bWVnYXBhZ2VfbGFyZ2VfaGVhcCwgc2l6ZSwgYWxpZ25tZW50LmFsaWdubWVu
dCwgcGFzX25vbl9jb21wYWN0X2FsbG9jYXRpb25fbW9kZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmggYi9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5oCmlu
ZGV4IDJhNTYyNmYzNzcwOS4uMjkyMDk2ZjZlMjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5oCisrKyBiL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmgKQEAg
LTEzMyw3ICsxMzMsNiBAQCBzdGF0aWMgaW5saW5lIHBhc19mYXN0X21lZ2FwYWdlX2tpbmQgcGFz
X2Zhc3RfbWVnYXBhZ2VfdGFibGVfZ2V0KAogICAgIHVpbnRwdHJfdCBiZWdpbikKIHsKICAgICBQ
QVNfUFJPRklMRShNRUdBUEFHRV9HRVQsIGJlZ2luKTsKLSAgICBQQVNfTVRFX0hBTkRMRShNRUdB
UEFHRV9HRVQsIGJlZ2luKTsKICAgICByZXR1cm4gcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGVfZ2V0
X2J5X2luZGV4KHRhYmxlLCBiZWdpbiA+PiBQQVNfRkFTVF9NRUdBUEFHRV9TSElGVCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19nZXRfYWxs
b2NhdGlvbl9zaXplLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2V0
X2FsbG9jYXRpb25fc2l6ZS5oCmluZGV4IDhhOTk5OGY2NzE5Ny4uNGY0MGY4MjBhMjAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2V0X2FsbG9jYXRp
b25fc2l6ZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19nZXRf
YWxsb2NhdGlvbl9zaXplLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJwYXNfaGVhcF9j
b25maWcuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9sb2NrLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdl
X21hcC5oIgotI2luY2x1ZGUgInBhc19tdGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9w
YWdlX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5o
IgogCkBAIC0xMjUsNyArMTI0LDYgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHNpemVfdCBw
YXNfZ2V0X2FsbG9jYXRpb25fc2l6ZSh2b2lkKiBwdHIsCiAgICAgICAgIAogICAgICAgICBpZiAo
IXBhc19sYXJnZV9tYXBfZW50cnlfaXNfZW1wdHkoZW50cnkpKSB7CiAgICAgICAgICAgICBQQVNf
UFJPRklMRShMQVJHRV9NQVBfRk9VTkRfRU5UUlksICZjb25maWcsIGVudHJ5LmJlZ2luLCBlbnRy
eS5lbmQpOwotICAgICAgICAgICAgUEFTX01URV9IQU5ETEUoTEFSR0VfTUFQX0ZPVU5EX0VOVFJZ
LCAmY29uZmlnLCBlbnRyeS5iZWdpbiwgZW50cnkuZW5kKTsKICAgICAgICAgICAgIFBBU19BU1NF
UlQoZW50cnkuYmVnaW4gPT0gYmVnaW4pOwogICAgICAgICAgICAgUEFTX0FTU0VSVChlbnRyeS5l
bmQgPiBiZWdpbik7CiAgICAgICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19nZXRfaGVhcC5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2dldF9oZWFwLmgKaW5kZXggZTg0ZmQzMDE4ZGFkLi4zZDg4N2M2ZDY5YzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19nZXRfaGVh
cC5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19nZXRfaGVhcC5o
CkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAicGFzX2hlYXAuaCIKICNpbmNsdWRlICJwYXNf
aGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfbWFwLmgiCi0jaW5jbHVkZSAicGFz
X210ZS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAKQEAgLTExMSw3ICsxMTAsNiBA
QCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2hlYXAqIHBhc19nZXRfaGVhcCh2b2lkKiBw
dHIsCiAgICAgICAgIAogICAgICAgICBQQVNfQVNTRVJUKCFwYXNfbGFyZ2VfbWFwX2VudHJ5X2lz
X2VtcHR5KGVudHJ5KSk7CiAgICAgICAgIFBBU19QUk9GSUxFKExBUkdFX01BUF9GT1VORF9FTlRS
WSwgJmNvbmZpZywgZW50cnkuYmVnaW4sIGVudHJ5LmVuZCk7Ci0gICAgICAgIFBBU19NVEVfSEFO
RExFKExBUkdFX01BUF9GT1VORF9FTlRSWSwgJmNvbmZpZywgZW50cnkuYmVnaW4sIGVudHJ5LmVu
ZCk7CiAgICAgICAgIFBBU19BU1NFUlQoZW50cnkuYmVnaW4gPT0gYmVnaW4pOwogICAgICAgICBQ
QVNfQVNTRVJUKGVudHJ5LmVuZCA+IGJlZ2luKTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaCBiL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oCmlu
ZGV4IGUzOWI1ODk4ZDYxZi4uOTM2MTkyODlkNGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaAorKysgYi9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaApAQCAtMTA0
LDcgKzEwNCw2IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgLmJhc2UgPSB7IFwKICAgICAg
ICAgICAgIC5pc19lbmFibGVkID0gdHJ1ZSwgXAogICAgICAgICAgICAgLmFsbG93X3Byb2ZpbGlu
ZyA9IFBBU19TSE9VTERfUFJPRklMRV9CQVNJQ19IRUFQX1BBR0UocGFzX3BhZ2VfY29uZmlnX3Np
emVfY2F0ZWdvcnlfc21hbGwpLCBcCi0gICAgICAgICAgICAuYWxsb3dfbXRlX3RhZ2dpbmcgPSBQ
QVNfU0hPVUxEX01URV9UQUdfQkFTSUNfSEVBUF9QQUdFKHBhc19wYWdlX2NvbmZpZ19zaXplX2Nh
dGVnb3J5X3NtYWxsKSwgXAogICAgICAgICAgICAgLmhlYXBfY29uZmlnX3B0ciA9ICZuYW1lICMj
IF9oZWFwX2NvbmZpZywgXAogICAgICAgICAgICAgLnBhZ2VfY29uZmlnX3B0ciA9ICZuYW1lICMj
IF9oZWFwX2NvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZy5iYXNlLCBcCiAgICAgICAgICAg
ICAucGFnZV9jb25maWdfa2luZCA9IHBhc19wYWdlX2NvbmZpZ19raW5kX3NlZ3JlZ2F0ZWQsIFwK
QEAgLTE3NSw3ICsxNzQsNiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgICAgICAuaXNfZW5h
YmxlZCA9IFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVu
dHMpe19fVkFfQVJHU19ffSkudXNlX21lZGl1bV9zZWdyZWdhdGVkLCBcCiAgICAgICAgICAgICAu
YWxsb3dfcHJvZmlsaW5nID0gUEFTX1NIT1VMRF9QUk9GSUxFX0JBU0lDX0hFQVBfUEFHRShwYXNf
cGFnZV9jb25maWdfc2l6ZV9jYXRlZ29yeV9tZWRpdW0pLCBcCi0gICAgICAgICAgICAuYWxsb3df
bXRlX3RhZ2dpbmcgPSBQQVNfU0hPVUxEX01URV9UQUdfQkFTSUNfSEVBUF9QQUdFKHBhc19wYWdl
X2NvbmZpZ19zaXplX2NhdGVnb3J5X21lZGl1bSksIFwKICAgICAgICAgICAgIC5oZWFwX2NvbmZp
Z19wdHIgPSAmbmFtZSAjIyBfaGVhcF9jb25maWcsIFwKICAgICAgICAgICAgIC5wYWdlX2NvbmZp
Z19wdHIgPSAmbmFtZSAjIyBfaGVhcF9jb25maWcubWVkaXVtX3NlZ3JlZ2F0ZWRfY29uZmlnLmJh
c2UsIFwKICAgICAgICAgICAgIC5wYWdlX2NvbmZpZ19raW5kID0gcGFzX3BhZ2VfY29uZmlnX2tp
bmRfc2VncmVnYXRlZCwgXApAQCAtMjMyLDcgKzIzMCw2IEBAIHR5cGVkZWYgc3RydWN0IHsKICAg
ICAgICAgICAgIC5pc19lbmFibGVkID0gXAogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hl
YXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS51c2Vfc21hbGxfYml0Zml0LCBcCiAg
ICAgICAgICAgICAuYWxsb3dfcHJvZmlsaW5nID0gUEFTX1NIT1VMRF9QUk9GSUxFX0JBU0lDX0hF
QVBfUEFHRShwYXNfcGFnZV9jb25maWdfc2l6ZV9jYXRlZ29yeV9zbWFsbCksIFwKLSAgICAgICAg
ICAgIC5hbGxvd19tdGVfdGFnZ2luZyA9IFBBU19TSE9VTERfTVRFX1RBR19CQVNJQ19IRUFQX1BB
R0UocGFzX3BhZ2VfY29uZmlnX3NpemVfY2F0ZWdvcnlfc21hbGwpLCBcCiAgICAgICAgICAgICAu
aGVhcF9jb25maWdfcHRyID0gJm5hbWUgIyMgX2hlYXBfY29uZmlnLCBcCiAgICAgICAgICAgICAu
cGFnZV9jb25maWdfcHRyID0gJm5hbWUgIyMgX2hlYXBfY29uZmlnLnNtYWxsX2JpdGZpdF9jb25m
aWcuYmFzZSwgXAogICAgICAgICAgICAgLnBhZ2VfY29uZmlnX2tpbmQgPSBwYXNfcGFnZV9jb25m
aWdfa2luZF9iaXRmaXQsIFwKQEAgLTI3Niw3ICsyNzMsNiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAg
ICAgICAgICAgICAuaXNfZW5hYmxlZCA9IFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19o
ZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkudXNlX21lZGl1bV9iaXRmaXQsIFwK
ICAgICAgICAgICAgIC5hbGxvd19wcm9maWxpbmcgPSBQQVNfU0hPVUxEX1BST0ZJTEVfQkFTSUNf
SEVBUF9QQUdFKHBhc19wYWdlX2NvbmZpZ19zaXplX2NhdGVnb3J5X21lZGl1bSksIFwKLSAgICAg
ICAgICAgIC5hbGxvd19tdGVfdGFnZ2luZyA9IFBBU19TSE9VTERfTVRFX1RBR19CQVNJQ19IRUFQ
X1BBR0UocGFzX3BhZ2VfY29uZmlnX3NpemVfY2F0ZWdvcnlfbWVkaXVtKSwgXAogICAgICAgICAg
ICAgLmhlYXBfY29uZmlnX3B0ciA9ICZuYW1lICMjIF9oZWFwX2NvbmZpZywgXAogICAgICAgICAg
ICAgLnBhZ2VfY29uZmlnX3B0ciA9ICZuYW1lICMjIF9oZWFwX2NvbmZpZy5tZWRpdW1fYml0Zml0
X2NvbmZpZy5iYXNlLCBcCiAgICAgICAgICAgICAucGFnZV9jb25maWdfa2luZCA9IHBhc19wYWdl
X2NvbmZpZ19raW5kX2JpdGZpdCwgXApAQCAtMzEwLDcgKzMwNiw2IEBAIHR5cGVkZWYgc3RydWN0
IHsKICAgICAgICAgICAgIC5pc19lbmFibGVkID0gXAogICAgICAgICAgICAgICAgICgocGFzX2Jh
c2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS51c2VfbWFyZ2VfYml0Zml0
LCBcCiAgICAgICAgICAgICAuYWxsb3dfcHJvZmlsaW5nID0gUEFTX1NIT1VMRF9QUk9GSUxFX0JB
U0lDX0hFQVBfUEFHRShwYXNfcGFnZV9jb25maWdfc2l6ZV9jYXRlZ29yeV9tYXJnZSksIFwKLSAg
ICAgICAgICAgIC5hbGxvd19tdGVfdGFnZ2luZyA9IFBBU19TSE9VTERfTVRFX1RBR19CQVNJQ19I
RUFQX1BBR0UocGFzX3BhZ2VfY29uZmlnX3NpemVfY2F0ZWdvcnlfbWFyZ2UpLCBcCiAgICAgICAg
ICAgICAuaGVhcF9jb25maWdfcHRyID0gJm5hbWUgIyMgX2hlYXBfY29uZmlnLCBcCiAgICAgICAg
ICAgICAucGFnZV9jb25maWdfcHRyID0gJm5hbWUgIyMgX2hlYXBfY29uZmlnLm1hcmdlX2JpdGZp
dF9jb25maWcuYmFzZSwgXAogICAgICAgICAgICAgLnBhZ2VfY29uZmlnX2tpbmQgPSBwYXNfcGFn
ZV9jb25maWdfa2luZF9iaXRmaXQsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmggYi9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oCmlu
ZGV4IDMzODM2YTA5YWUyNS4uYzJmMDdkZWYwNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oCisrKyBi
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlsc19p
bmxpbmVzLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWdfdXRp
bHMuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2Fj
aGUuaCIKICNpbmNsdWRlICJwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmgiCi0jaW5jbHVkZSAi
cGFzX210ZS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lu
bGluZXMuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwpAQCAtMTY1LDEzICsxNjQsMTEgQEAgdHlw
ZWRlZiBzdHJ1Y3QgewogICAgICAgICAgICAgbWVnYXBhZ2VfY2FjaGUgPSAmcGFnZV9jYWNoZXMt
PnNtYWxsX290aGVyX21lZ2FwYWdlX2NhY2hlOyBcCiAgICAgICAgICAgICBtZWdhcGFnZV9raW5k
ID0gcGFzX3NtYWxsX290aGVyX2Zhc3RfbWVnYXBhZ2Vfa2luZDsgXAogICAgICAgICAgICAgUEFT
X1BST0ZJTEUoU01BTExfU0hBUkVEX1NFR1JFR0FURURfUEFHRV9BTExPQ0FUSU9OLCBoZWFwLCBt
ZWdhcGFnZV9jYWNoZSk7IFwKLSAgICAgICAgICAgIFBBU19NVEVfSEFORExFKFNNQUxMX1NIQVJF
RF9TRUdSRUdBVEVEX1BBR0VfQUxMT0NBVElPTiwgaGVhcCwgbWVnYXBhZ2VfY2FjaGUpOyBcCiAg
ICAgICAgICAgICBicmVhazsgXAogICAgICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhj
bHVzaXZlX3JvbGU6IFwKICAgICAgICAgICAgIG1lZ2FwYWdlX2NhY2hlID0gJnBhZ2VfY2FjaGVz
LT5zbWFsbF9leGNsdXNpdmVfc2VncmVnYXRlZF9tZWdhcGFnZV9jYWNoZTsgXAogICAgICAgICAg
ICAgbWVnYXBhZ2Vfa2luZCA9IHBhc19zbWFsbF9leGNsdXNpdmVfc2VncmVnYXRlZF9mYXN0X21l
Z2FwYWdlX2tpbmQ7IFwKICAgICAgICAgICAgIFBBU19QUk9GSUxFKFNNQUxMX0VYQ0xVU0lWRV9T
RUdSRUdBVEVEX1BBR0VfQUxMT0NBVElPTiwgaGVhcCwgbWVnYXBhZ2VfY2FjaGUpOyBcCi0gICAg
ICAgICAgICBQQVNfTVRFX0hBTkRMRShTTUFMTF9FWENMVVNJVkVfU0VHUkVHQVRFRF9QQUdFX0FM
TE9DQVRJT04sIGhlYXAsIG1lZ2FwYWdlX2NhY2hlKTsgXAogICAgICAgICAgICAgYnJlYWs7IFwK
ICAgICAgICAgfSBcCiAgICAgICAgIFwKQEAgLTIwNSw3ICsyMDIsNiBAQCB0eXBlZGVmIHN0cnVj
dCB7CiAgICAgICAgIG1lZ2FwYWdlX2NhY2hlID0gJnBhZ2VfY2FjaGVzLT5zbWFsbF9vdGhlcl9t
ZWdhcGFnZV9jYWNoZTsgXAogICAgICAgICBcCiAgICAgICAgIFBBU19QUk9GSUxFKFNNQUxMX0JJ
VEZJVF9QQUdFX0FMTE9DQVRJT04sIGhlYXAsIG1lZ2FwYWdlX2NhY2hlKTsgXAotICAgICAgICBQ
QVNfTVRFX0hBTkRMRShTTUFMTF9CSVRGSVRfUEFHRV9BTExPQ0FUSU9OLCBoZWFwLCBtZWdhcGFn
ZV9jYWNoZSk7IFwKICAgICAgICAgYWxsb2NhdGlvbiA9IHBhc19mYXN0X21lZ2FwYWdlX2NhY2hl
X3RyeV9hbGxvY2F0ZSggXAogICAgICAgICAgICAgbWVnYXBhZ2VfY2FjaGUsIFwKICAgICAgICAg
ICAgICZuYW1lICMjIF9tZWdhcGFnZV90YWJsZSwgXApAQCAtMjM5LDcgKzIzNSw2IEBAIHR5cGVk
ZWYgc3RydWN0IHsKICAgICAgICAgbWVnYXBhZ2VfY2FjaGUgPSAmcGFnZV9jYWNoZXMtPm1lZGl1
bV9tZWdhcGFnZV9jYWNoZTsgXAogICAgICAgICBcCiAgICAgICAgIFBBU19QUk9GSUxFKE1FRElV
TV9TRUdSRUdBVEVEX1BBR0VfQUxMT0NBVElPTiwgaGVhcCwgbWVnYXBhZ2VfY2FjaGUpOyBcCi0g
ICAgICAgIFBBU19NVEVfSEFORExFKE1FRElVTV9TRUdSRUdBVEVEX1BBR0VfQUxMT0NBVElPTiwg
aGVhcCwgbWVnYXBhZ2VfY2FjaGUpOyBcCiAgICAgICAgIGFsbG9jYXRpb24gPSBwYXNfbWVkaXVt
X21lZ2FwYWdlX2NhY2hlX3RyeV9hbGxvY2F0ZSggXAogICAgICAgICAgICAgbWVnYXBhZ2VfY2Fj
aGUsIFwKICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9jb25maWdfcHRyLCBcCkBA
IC0yNjgsNyArMjYzLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICBtZWdhcGFnZV9jYWNo
ZSA9ICZwYWdlX2NhY2hlcy0+bWVkaXVtX21lZ2FwYWdlX2NhY2hlOyBcCiAgICAgICAgIFwKICAg
ICAgICAgUEFTX1BST0ZJTEUoTUVESVVNX0JJVEZJVF9QQUdFX0FMTE9DQVRJT04sIGhlYXAsIG1l
Z2FwYWdlX2NhY2hlKTsgXAotICAgICAgICBQQVNfTVRFX0hBTkRMRShNRURJVU1fQklURklUX1BB
R0VfQUxMT0NBVElPTiwgaGVhcCwgbWVnYXBhZ2VfY2FjaGUpOyBcCiAgICAgICAgIGFsbG9jYXRp
b24gPSBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlX3RyeV9hbGxvY2F0ZSggXAogICAgICAgICAg
ICAgbWVnYXBhZ2VfY2FjaGUsIFwKICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9j
b25maWdfcHRyLCBcCkBAIC0yOTcsNyArMjkxLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAg
ICBtZWdhcGFnZV9jYWNoZSA9ICZwYWdlX2NhY2hlcy0+bWVkaXVtX21lZ2FwYWdlX2NhY2hlOyBc
CiAgICAgICAgIFwKICAgICAgICAgUEFTX1BST0ZJTEUoTUFSR0VfQklURklUX1BBR0VfQUxMT0NB
VElPTiwgaGVhcCwgbWVnYXBhZ2VfY2FjaGUpOyBcCi0gICAgICAgIFBBU19NVEVfSEFORExFKE1B
UkdFX0JJVEZJVF9QQUdFX0FMTE9DQVRJT04sIGhlYXAsIG1lZ2FwYWdlX2NhY2hlKTsgXAogICAg
ICAgICBhbGxvY2F0aW9uID0gcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZV90cnlfYWxsb2NhdGUo
IFwKICAgICAgICAgICAgIG1lZ2FwYWdlX2NhY2hlLCBcCiAgICAgICAgICAgICBwYWdlX2NvbmZp
Zy5iYXNlLnBhZ2VfY29uZmlnX3B0ciwgXApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcmVmLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfaGVhcF9yZWYuYwppbmRleCA2NGRiMWNjMjU1ZjYuLjg3YjJlYTY1NWJiZSAx
MDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcmVm
LmMKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcmVmLmMK
QEAgLTQzLDcgKzQzLDYgQEAgcGFzX2hlYXAqIHBhc19lbnN1cmVfaGVhcF9zbG93KHBhc19oZWFw
X3JlZiogaGVhcF9yZWYsCiAKICAgICBQQVNfQVNTRVJUKGhlYXBfcmVmX2tpbmQgIT0gcGFzX2Zh
a2VfaGVhcF9yZWZfa2luZCk7CiAgICAgUEFTX1BST0ZJTEUoRU5TVVJFX0hFQVBfU0xPVywgaGVh
cCwgaGVhcF9yZWYsIGhlYXBfcmVmX2tpbmQsIGNvbmZpZywgcnVudGltZV9jb25maWcpOwotICAg
IFBBU19NVEVfSEFORExFKEVOU1VSRV9IRUFQX1NMT1csIGhlYXAsIGhlYXBfcmVmLCBoZWFwX3Jl
Zl9raW5kLCBjb25maWcsIHJ1bnRpbWVfY29uZmlnKTsKIAogICAgIHBhc19oZWFwX2xvY2tfbG9j
aygpOwogICAgIGhlYXAgPSBoZWFwX3JlZi0+aGVhcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbW1vcnRhbF9oZWFwLmMgYi9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW1tb3J0YWxfaGVhcC5jCmluZGV4IDU2MWQ0ZDUzMTgy
OS4uZWE0MTg2MzRlYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfaW1tb3J0YWxfaGVhcC5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19pbW1vcnRhbF9oZWFwLmMKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJw
YXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuaCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF9oZWFwX3Jl
c2VydmF0aW9uLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgotI2luY2x1ZGUgInBhc19t
dGUuaCIKIAogdWludHB0cl90IHBhc19pbW1vcnRhbF9oZWFwX2N1cnJlbnQ7CiB1aW50cHRyX3Qg
cGFzX2ltbW9ydGFsX2hlYXBfZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMgYi9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnMuYwppbmRleCBm
ZGU0YzNkZGMzMjcuLjc5N2JmNzRmZjdhOCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMKKysrIGIvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMK
QEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmgiCiAj
aW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19w
b29sLmgiCi0jaW5jbHVkZSAicGFzX3plcm9fbWVtb3J5LmgiCiAKIGJvb2wgcGFzX2xhcmdlX3V0
aWxpdHlfZnJlZV9oZWFwX3RhbGtzX3RvX2xhcmdlX3NoYXJpbmdfcG9vbCA9IHRydWU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFw
LmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcC5jCmlu
ZGV4IDBlMWE1ZTkzZDVjMi4uNDAxOTI3M2MyMDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcC5jCisrKyBiL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwLmMKQEAgLTM3LDcgKzM3LDYgQEAKICNp
bmNsdWRlICJwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2wuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfbWFwLmgiCi0jaW5jbHVkZSAi
cGFzX210ZS5oIgogI2luY2x1ZGUgInBhc19wYWdlX21hbGxvYy5oIgogI2luY2x1ZGUgInBhc19w
cm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuaCIKICNpbmNsdWRlIDxzdGRpby5o
PgpAQCAtMjEwLDcgKzIwOSw2IEBAIGJvb2wgcGFzX2xhcmdlX2hlYXBfdHJ5X2RlYWxsb2NhdGUo
dWludHB0cl90IGJlZ2luLAogICAgIH0KIAogICAgIFBBU19QUk9GSUxFKExBUkdFX01BUF9UT09L
X0VOVFJZLCBoZWFwX2NvbmZpZywgbWFwX2VudHJ5LmJlZ2luLCBtYXBfZW50cnkuZW5kKTsKLSAg
ICBQQVNfTVRFX0hBTkRMRShMQVJHRV9NQVBfVE9PS19FTlRSWSwgaGVhcF9jb25maWcsIG1hcF9l
bnRyeS5iZWdpbiwgbWFwX2VudHJ5LmVuZCk7CiAgICAgUEFTX0FTU0VSVChwYXNfaGVhcF9jb25m
aWdfa2luZF9nZXRfY29uZmlnKAogICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2Zvcl9sYXJn
ZV9oZWFwKG1hcF9lbnRyeS5oZWFwKS0+Y29uZmlnX2tpbmQpCiAgICAgICAgICAgICAgICA9PSBo
ZWFwX2NvbmZpZyk7CkBAIC0yNTQsNyArMjUyLDYgQEAgYm9vbCBwYXNfbGFyZ2VfaGVhcF90cnlf
c2hyaW5rKHVpbnRwdHJfdCBiZWdpbiwKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUEFT
X1BST0ZJTEUoTEFSR0VfTUFQX1RPT0tfRU5UUlksIGhlYXBfY29uZmlnLCBtYXBfZW50cnkuYmVn
aW4sIG1hcF9lbnRyeS5lbmQpOwotICAgIFBBU19NVEVfSEFORExFKExBUkdFX01BUF9UT09LX0VO
VFJZLCBoZWFwX2NvbmZpZywgbWFwX2VudHJ5LmJlZ2luLCBtYXBfZW50cnkuZW5kKTsKICAgICBo
ZWFwID0gbWFwX2VudHJ5LmhlYXA7CiAgICAgdHlwZSA9IHBhc19oZWFwX2Zvcl9sYXJnZV9oZWFw
KGhlYXApLT50eXBlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfbGFyZ2VfbWFwLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbGFyZ2VfbWFwLmMKaW5kZXggM2JjNWQ4NzM4MGU4Li5jMGNlNjc2ZTJlNTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9tYXAuYworKysg
Yi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfbWFwLmMKQEAgLTMx
LDcgKzMxLDYgQEAKIAogI2luY2x1ZGUgInBhc19sYXJnZV9oZWFwLmgiCiAjaW5jbHVkZSAicGFz
X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX210ZS5oIgogCiBwYXNf
bGFyZ2VfbWFwX2hhc2h0YWJsZSBwYXNfbGFyZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5jZSA9IFBB
U19IQVNIVEFCTEVfSU5JVElBTElaRVI7CiBwYXNfbGFyZ2VfbWFwX2hhc2h0YWJsZV9pbl9mbHV4
X3N0YXNoIHBhc19sYXJnZV9tYXBfaGFzaHRhYmxlX2luc3RhbmNlX2luX2ZsdXhfc3Rhc2g7CkBA
IC00NCw3ICs0Myw2IEBAIHBhc190aW55X2xhcmdlX21hcF9zZWNvbmRfbGV2ZWxfaGFzaHRhYmxl
X2luX2ZsdXhfc3Rhc2ggcGFzX3RpbnlfbGFyZ2VfbWFwX3NlY29uCiBwYXNfbGFyZ2VfbWFwX2Vu
dHJ5IHBhc19sYXJnZV9tYXBfZmluZCh1aW50cHRyX3QgYmVnaW4pCiB7CiAgICAgUEFTX1BST0ZJ
TEUoTEFSR0VfTUFQX0ZJTkQsIGJlZ2luKTsKLSAgICBQQVNfTVRFX0hBTkRMRShMQVJHRV9NQVBf
RklORCwgYmVnaW4pOwogCiAgICAgdWludHB0cl90IHRpbnlfYmFzZTsKICAgICBwYXNfZmlyc3Rf
bGV2ZWxfdGlueV9sYXJnZV9tYXBfZW50cnkqIGZpcnN0X2xldmVsX3RpbnlfZW50cnk7CkBAIC04
MSw3ICs3OSw2IEBAIHZvaWQgcGFzX2xhcmdlX21hcF9hZGQocGFzX2xhcmdlX21hcF9lbnRyeSBl
bnRyeSkKICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CiAKICAgICBQQVNfUFJPRklM
RShMQVJHRV9NQVBfQURELCBlbnRyeS5iZWdpbiwgZW50cnkuZW5kKTsKLSAgICBQQVNfTVRFX0hB
TkRMRShMQVJHRV9NQVBfQURELCBlbnRyeS5iZWdpbiwgZW50cnkuZW5kKTsKIAogICAgIGlmICh2
ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCJsYXJnZSBtYXAgYWRkaW5nICVwLi4uJXAsIGhlYXAg
PSAlcC5cbiIsICh2b2lkKillbnRyeS5iZWdpbiwgKHZvaWQqKWVudHJ5LmVuZCwgZW50cnkuaGVh
cCk7CkBAIC0xNjAsNyArMTU3LDYgQEAgcGFzX2xhcmdlX21hcF9lbnRyeSBwYXNfbGFyZ2VfbWFw
X3Rha2UodWludHB0cl90IGJlZ2luKQogICAgIHBhc19zbWFsbF9sYXJnZV9tYXBfZW50cnkgc21h
bGxfZW50cnk7CiAKICAgICBQQVNfUFJPRklMRShMQVJHRV9NQVBfVEFLRSwgYmVnaW4pOwotICAg
IFBBU19NVEVfSEFORExFKExBUkdFX01BUF9UQUtFLCBiZWdpbik7CiAKICAgICBwYXNfaGVhcF9s
b2NrX2Fzc2VydF9oZWxkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYwppbmRleCAxNmNhZTY1MGY4OTMu
LmZmYjE0YzRhZmY3YyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYwpAQCAtMzYsNyArMzYsNiBAQAogI2lu
Y2x1ZGUgInBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfZnJlZV9oZWFwX2Rl
ZmVycmVkX2NvbW1pdF9sb2cuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCi0jaW5jbHVkZSAicGFz
X210ZS5oIgogI2luY2x1ZGUgInBhc19wYWdlX21hbGxvYy5oIgogI2luY2x1ZGUgInBhc19wYWdl
X3NoYXJpbmdfcG9vbC5oIgogI2luY2x1ZGUgInBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rp
b24uaCIKQEAgLTEwMzIsNyArMTAzMSw2IEBAIHZvaWQgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9i
b290X2ZyZWUoCiAgICAgdWludDY0X3QgZXBvY2g7CiAKICAgICBQQVNfUFJPRklMRShMQVJHRV9T
SEFSSU5HX1BPT0xfQk9PVF9GUkVFLCByYW5nZS5iZWdpbiwgcmFuZ2UuZW5kKTsKLSAgICBQQVNf
TVRFX0hBTkRMRShMQVJHRV9TSEFSSU5HX1BPT0xfQk9PVF9GUkVFLCByYW5nZS5iZWdpbiwgcmFu
Z2UuZW5kKTsKIAogICAgIGlmICghcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lbmFibGVkKQogICAg
ICAgICByZXR1cm47CkBAIC0xMDQ4LDcgKzEwNDYsNiBAQCB2b2lkIHBhc19sYXJnZV9zaGFyaW5n
X3Bvb2xfZnJlZShwYXNfcmFuZ2UgcmFuZ2UsCiAgICAgdWludDY0X3QgZXBvY2g7CiAKICAgICBQ
QVNfUFJPRklMRShMQVJHRV9TSEFSSU5HX1BPT0xfRlJFRSwgcmFuZ2UuYmVnaW4sIHJhbmdlLmVu
ZCk7Ci0gICAgUEFTX01URV9IQU5ETEUoTEFSR0VfU0hBUklOR19QT09MX0ZSRUUsIHJhbmdlLmJl
Z2luLCByYW5nZS5lbmQpOwogCiAgICAgaWYgKCFwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2VuYWJs
ZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTEwNjcsNyArMTA2NCw2IEBAIGJvb2wgcGFzX2xhcmdl
X3NoYXJpbmdfcG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0KAogICAgIHN0YXRpYyBjb25zdCBib29s
IHZlcmJvc2UgPSBmYWxzZTsKIAogICAgIFBBU19QUk9GSUxFKExBUkdFX1NIQVJJTkdfUE9PTF9B
TExPQ0FURV9BTkRfQ09NTUlULCByYW5nZS5iZWdpbiwgcmFuZ2UuZW5kKTsKLSAgICBQQVNfTVRF
X0hBTkRMRShMQVJHRV9TSEFSSU5HX1BPT0xfQUxMT0NBVEVfQU5EX0NPTU1JVCwgcmFuZ2UuYmVn
aW4sIHJhbmdlLmVuZCk7CiAgICAgCiAgICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9j
b21taXRfbG9nIGNvbW1pdF9sb2c7CiAgICAgdWludDY0X3QgZXBvY2g7CkBAIC0xMjE2LDcgKzEy
MTIsNiBAQCBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2NvbXB1dGVfc3VtbWFyeSgKICAgICBwYXNf
aGVhcF9zdW1tYXJ5IHJlc3VsdDsKIAogICAgIFBBU19QUk9GSUxFKExBUkdFX1NIQVJJTkdfUE9P
TF9DT01QVVRFX1NVTU1BUlksIHJhbmdlLmJlZ2luLCByYW5nZS5lbmQpOwotICAgIFBBU19NVEVf
SEFORExFKExBUkdFX1NIQVJJTkdfUE9PTF9DT01QVVRFX1NVTU1BUlksIHJhbmdlLmJlZ2luLCBy
YW5nZS5lbmQpOwogCiAgICAgcGFzX3plcm9fbWVtb3J5KCZyZXN1bHQsIHNpemVvZihyZXN1bHQp
KTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF9hbGxvY2F0b3IuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF9hbGxvY2F0b3IuaAppbmRleCA2ZTJmNDIwMWI1ZDIuLjkwNTQ2NWVjNjFmNSAxMDA2
NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9j
YXRvci5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9h
bGxvY2F0b3IuaApAQCAtNTcsNyArNTcsNiBAQCBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvciB7
CiAgICAgYm9vbCBjdXJyZW50X3dvcmRfaXNfdmFsaWQgOiAxOyAvKiBUaGlzIGlzIGp1c3QgdXNl
ZCBieSBlbnVtZXJhdGlvbi4gKi8KICAgICBib29sIGlzX3NtYWxsIDogMTsgLyogTWFya3MgdGhh
dCB0aGlzIGxvY2FsIGFsbG9jYXRvciBpcyB1c2VkIHRvIGFsbG9jYXRlIHNtYWxsIG9iamVjdHMu
ICovCiAgICAgYm9vbCBpc19wcm9maWxlZDsgLyogTWFya3MgdGhhdCBhbGxvY2F0aW9ucyBjb21p
bmcgb3V0IG9mIHRoaXMgbG9jYWwgYWxsb2NhdG9yIHNob3VsZCBiZSBwcm9maWxlZC4gKi8KLSAg
ICBib29sIGlzX210ZV90YWdnZWQ7IC8qIE1hcmtzIHRoYXQgYWxsb2NhdGlvbnMgY29taW5nIG91
dCBvZiB0aGlzIGxvY2FsIGFsbG9jYXRvciBhcmUgTVRFLXRhZ2dlZC4gKi8KIAogICAgIC8qIFRo
aXMgaGFzIHRvIGhhdmUgYSBwb2ludGVyIHRvIG91ciBpbmRleCB3aXRoaW4gdGhlIHZpZXcuIFdl
IGNhbiBnZXQgdG8gdGhlIHZpZXcgdXNpbmcKICAgICAgICBwYWdlX2lzaC4gTWF5YmUgd29ydGgg
cmVjb25zaWRlcmluZyB0aGF0LCBidXQgdGhlbiBhZ2FpbiBtYXliZSBpdCdzIGdvb2QgZW5vdWdo
LiAKQEAgLTk3LDcgKzk2LDYgQEAgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3IgewogICAgICAg
ICAuY3VycmVudF93b3JkX2lzX3ZhbGlkID0gZmFsc2UsIFwKICAgICAgICAgLmlzX3NtYWxsID0g
MCwgXAogICAgICAgICAuaXNfcHJvZmlsZWQgPSAwLCBcCi0gICAgICAgIC5pc19tdGVfdGFnZ2Vk
ID0gMCwgXAogICAgICAgICAuY3VycmVudF93b3JkID0gMCwgXAogICAgICAgICAuY29uZmlnX2tp
bmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX251bGwgXAogICAgIH0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2Nh
dG9yX2lubGluZXMuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nh
bF9hbGxvY2F0b3JfaW5saW5lcy5oCmluZGV4IDkwMDczNjIxODA4NC4uNzU4ZjQxZDM0ZGE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxs
b2NhdG9yX2lubGluZXMuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUg
InBhc19lcG9jaC5oIgogI2luY2x1ZGUgInBhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5lcy5oIgog
I2luY2x1ZGUgInBhc19tYWxsb2Nfc3RhY2tfbG9nZ2luZy5oIgotI2luY2x1ZGUgInBhc19tdGUu
aCIKICNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2lubGluZXMuaCIKQEAgLTEyMSw3ICsxMjAsNiBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBfYnVtcChwYXNfbG9jYWxfYWxsb2NhdG9yKiBh
bGxvY2F0bwogICAgIGFsbG9jYXRvci0+ZW5kX29mZnNldCA9IDA7CiAgICAgYWxsb2NhdG9yLT5j
dXJyZW50X3dvcmQgPSAwOwogICAgIFBBU19QUk9GSUxFKFNFVF9VUF9MT0NBTF9BTExPQ0FUT1Is
IHBhZ2VfY29uZmlnLCBzZWdyZWdhdGVkX2hlYXAsIGFsbG9jYXRvcik7Ci0gICAgUEFTX01URV9I
QU5ETEUoU0VUX1VQX0xPQ0FMX0FMTE9DQVRPUiwgcGFnZV9jb25maWcsIHNlZ3JlZ2F0ZWRfaGVh
cCwgYWxsb2NhdG9yKTsKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKICAgICBhbGxvY2F0b3It
PnBhZ2VfaXNoID0gcGFnZV9ib3VuZGFyeTsKIH0KQEAgLTI0Myw3ICsyNDEsNiBAQCBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYW5fYml0c190b19z
ZXRfdXBfZnJlZV9iaXRzKAogICAgICAgICAgICAgUEFTX0JJVFZFQ1RPUl9CSVRfSU5ERVg2NChj
dXJyZW50X29mZnNldCksCiAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlKTsKICAgICBQQVNf
UFJPRklMRShTRVRfVVBfTE9DQUxfQUxMT0NBVE9SLCBwYWdlX2NvbmZpZywgZGlyZWN0b3J5LT5o
ZWFwLCBhbGxvY2F0b3IpOwotICAgIFBBU19NVEVfSEFORExFKFNFVF9VUF9MT0NBTF9BTExPQ0FU
T1IsIHBhZ2VfY29uZmlnLCBkaXJlY3RvcnktPmhlYXAsIGFsbG9jYXRvcik7CiAKICAgICBwYXNf
Y29tcGlsZXJfZmVuY2UoKTsKIApAQCAtNjAzLDcgKzYwMCw2IEBAIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2V0X3VwX3ByaW1vcmRpYWxfYnVtcCgKICAgICB9CiAKICAgICBQQVNfUFJPRklMRShQT1BV
TEFURV9QUklNT1JESUFMX1BBUlRJQUxfVklFVywgcGFnZV9jb25maWcsIHBhZ2UsIHZpZXcsIGJ1
bXBfcmVzdWx0LCBhbGxvY2F0aW9uX21vZGUpOwotICAgIFBBU19NVEVfSEFORExFKFBPUFVMQVRF
X1BSSU1PUkRJQUxfUEFSVElBTF9WSUVXLCBwYWdlX2NvbmZpZywgcGFnZSwgdmlldywgYnVtcF9y
ZXN1bHQsIGFsbG9jYXRpb25fbW9kZSk7CiAKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBjYXNl
IHBhc19sb2NhbF9hbGxvY2F0b3JfcHJpbW9yZGlhbF9idW1wX3JldHVybl9maXJzdF9hbGxvY2F0
aW9uOgpAQCAtNzExLDcgKzcwNyw2IEBAIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2Nh
dGluZ19pbl9wcmltb3JkaWFsX3BhcnRpYWxfdmlldygKICAgICAgICAgCiAgICAgICAgIGFsbG9j
YXRvci0+cGFnZV9pc2ggPSAodWludHB0cl90KXBhc19zZWdyZWdhdGVkX3BhZ2VfYm91bmRhcnko
cGFnZSwgcGFnZV9jb25maWcpOwogICAgICAgICBQQVNfUFJPRklMRShTRVRfVVBfTE9DQUxfQUxM
T0NBVE9SLCBwYWdlX2NvbmZpZywgaGVhcCwgYWxsb2NhdG9yKTsKLSAgICAgICAgUEFTX01URV9I
QU5ETEUoU0VUX1VQX0xPQ0FMX0FMTE9DQVRPUiwgcGFnZV9jb25maWcsIGhlYXAsIGFsbG9jYXRv
cik7CiAKICAgICAgICAgcGFzX3plcm9fbWVtb3J5KGFsbG9jYXRvci0+Yml0cywgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX2J5dGVzKHBhZ2VfY29uZmlnKSk7CiAKQEAgLTkx
Nyw3ICs5MTIsNiBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9pbl9wcmltb3Jk
aWFsX3BhcnRpYWxfdmlldygKIAogICAgIGlmIChyZXN1bHQuZGlkX3N1Y2NlZWQpIHsKICAgICAg
ICAgUEFTX1BST0ZJTEUoUFJJTU9SRElBTF9CVU1QX0FMTE9DQVRJT04sICZwYWdlX2NvbmZpZywg
cmVzdWx0LmJlZ2luLCBhbGxvY2F0b3ItPm9iamVjdF9zaXplLCBhbGxvY2F0aW9uX21vZGUpOwot
ICAgICAgICBQQVNfTVRFX0hBTkRMRShQUklNT1JESUFMX0JVTVBfQUxMT0NBVElPTiwgJnBhZ2Vf
Y29uZmlnLCByZXN1bHQuYmVnaW4sIGFsbG9jYXRvci0+b2JqZWN0X3NpemUsIGFsbG9jYXRpb25f
bW9kZSk7CiAgICAgfQogCiAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwpA
QCAtMTUxNyw3ICsxNTExLDYgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfd2l0
aF9mcmVlX2JpdHMoCiAgICAgfQogCiAgICAgUEFTX1BST0ZJTEUoTE9DQUxfRlJFRUJJVFNfQUxM
T0NBVElPTiwgJnBhZ2VfY29uZmlnLCByZXN1bHQsIGFsbG9jYXRvciwgYWxsb2NhdGlvbl9tb2Rl
KTsKLSAgICBQQVNfTVRFX0hBTkRMRShMT0NBTF9GUkVFQklUU19BTExPQ0FUSU9OLCAmcGFnZV9j
b25maWcsIHJlc3VsdCwgYWxsb2NhdG9yLCBhbGxvY2F0aW9uX21vZGUpOwogICAgIAogICAgIHJl
dHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MocmVzdWx0KTsKIH0KQEAg
LTE1NjMsNyArMTU1Niw2IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX2lubGlu
ZV9jYXNlcyhwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgICAgICAgICBwYXNf
bG9nKCJSZXR1cm5pbmcgYnVtcCBhbGxvY2F0aW9uICVwLlxuIiwgKHZvaWQqKXJlc3VsdCk7CiAK
ICAgICAgICAgUEFTX1BST0ZJTEUoTE9DQUxfQlVNUF9BTExPQ0FUSU9OLCBjb25maWcsIGFsbG9j
YXRvciwgcmVzdWx0LCBvYmplY3Rfc2l6ZSwgYWxsb2NhdGlvbl9tb2RlKTsKLSAgICAgICAgUEFT
X01URV9IQU5ETEUoTE9DQUxfQlVNUF9BTExPQ0FUSU9OLCBjb25maWcsIGFsbG9jYXRvciwgcmVz
dWx0LCBvYmplY3Rfc2l6ZSwgYWxsb2NhdGlvbl9tb2RlKTsKIAogICAgICAgICByZXR1cm4gcGFz
X2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHJlc3VsdCk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21lZ2FwYWdlX2NhY2hl
LmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbWVnYXBhZ2VfY2FjaGUu
YwppbmRleCAzY2QzZmVkMTEzYTcuLjA5N2FlMTE2NTYwMCAxMDA2NDQKLS0tIGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21lZ2FwYWdlX2NhY2hlLmMKKysrIGIvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21lZ2FwYWdlX2NhY2hlLmMKQEAgLTMyLDcg
KzMyLDYgQEAKICNpbmNsdWRlICJwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5oIgogI2luY2x1ZGUg
InBhc19pbnRlcm5hbF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfZnJlZV9oZWFwX2Nv
bmZpZy5oIgotI2luY2x1ZGUgInBhc19tdGUuaCIKICNpbmNsdWRlICJwYXNfcGF5bG9hZF9yZXNl
cnZhdGlvbl9wYWdlX2xpc3QuaCIKICNpbmNsdWRlICJwYXNfemVyb19tZW1vcnkuaCIKICNpbmNs
dWRlIDxzdGRpby5oPgpAQCAtMTIyLDcgKzEyMSw2IEBAIHN0YXRpYyBwYXNfYWxpZ25lZF9hbGxv
Y2F0aW9uX3Jlc3VsdCBtZWdhcGFnZV9jYWNoZV9hbGxvY2F0ZV9hbGlnbmVkKHNpemVfdCBzaXpl
CiAgICAgCiAgICAgYmVnaW4gPSAodWludHB0cl90KWJhc2VfYmVmb3JlX2V4Y2x1c2lvbjsKICAg
ICBQQVNfUFJPRklMRShNRUdBUEFHRV9TRVQsIGJlZ2luKTsKLSAgICBQQVNfTVRFX0hBTkRMRShN
RUdBUEFHRV9TRVQsIGJlZ2luKTsKIAogICAgIGVuZCA9IGJlZ2luICsgbmV3X3NpemU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGUuYyBiL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGUuYwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggY2ExMjhjMzEzNGQ0Li4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX210ZS5jCisrKyAvZGV2L251bGwKQEAgLTEsNDIg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0j
aW5jbHVkZSAicGFzX210ZS5oIgotCi0jaWYgUEFTX0VOQUJMRV9NVEUKLXZvaWQqIHBhc19tdGVf
c3lzdGVtX2hlYXBfcmVhbGxvY196ZXJvX3RhZ2dlZChtYWxsb2Nfem9uZV90KiB6b25lLCB2b2lk
KiBwdHIsIHNpemVfdCBzaXplKQotewotICAgIHNpemVfdCBvbGRfc2l6ZSA9IG1hbGxvY19zaXpl
KHB0cik7Ci0gICAgc2l6ZV90IGNvcHlfc2l6ZSA9IHNpemUgPCBvbGRfc2l6ZSA/IHNpemUgOiBv
bGRfc2l6ZTsKLQotICAgIHZvaWQqIHJlc3VsdCA9IHBhc19tdGVfc3lzdGVtX2hlYXBfbWFsbG9j
X3plcm9fdGFnZ2VkKHpvbmUsIDAsIHNpemUpOwotICAgIGlmICghcmVzdWx0KQotICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotCi0gICAgbWVtY3B5KHJlc3VsdCwgcHRyLCBjb3B5X3NpemUpOwotICAg
IG1hbGxvY196b25lX2ZyZWUoem9uZSwgcHRyKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotI2Vu
ZGlmIC8vLyBQQVNfRU5BQkxFX01URQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX210ZS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX210ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWZhOTNjNTUyOGIuLjAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbXRl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw5NTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykg
MjAyNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19NVEVfSAotI2RlZmluZSBQQVNf
TVRFX0gKLQotI2luY2x1ZGUgInBhc19tdGVfY29uZmlnLmgiCi0KLSNpZiBQQVNfT1MoREFSV0lO
KQotI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+Ci0jaWYgUEFTX1VTRV9BUFBMRV9JTlRF
Uk5BTF9TREsKLSNpbmNsdWRlIDxtYWNoL21hY2hfaW5pdC5oPgotI2luY2x1ZGUgPG1hY2gvbWFj
aF92bS5oPgotI2luY2x1ZGUgPG1hY2gvdm1fcGFnZV9zaXplLmg+Ci0jaW5jbHVkZSA8bWFjaC92
bV9zdGF0aXN0aWNzLmg+Ci0jZW5kaWYgLy8gUEFTX1VTRV9BUFBMRV9JTlRFUk5BTF9TREsKLSNl
bmRpZiAvLyBQQVNfT1MoREFSV0lOKQotI2luY2x1ZGUgInN0ZGludC5oIgotI2luY2x1ZGUgInN0
ZGlvLmgiCi0jaW5jbHVkZSAic3RkbGliLmgiCi0jaWYgIVBBU19PUyhXSU5ET1dTKQotI2luY2x1
ZGUgInVuaXN0ZC5oIgotI2VuZGlmCi0KLSNpZiBQQVNfRU5BQkxFX01URQotCi1QQVNfSUdOT1JF
X1dBUk5JTkdTX0JFR0lOKCJ1bnNhZmUtYnVmZmVyLXVzYWdlIikKLQotI2RlZmluZSBQQVNfTVRF
X1RBR19NQVNLIDB4MGYwMDAwMDAwMDAwMDAwMHVsbAotI2RlZmluZSBQQVNfTVRFX0NBTk9OSUNB
TF9NQVNLICgoMHgxdWxsIDw8IDQ4KSAtIDEpCi0KLSNpZiBfX2hhc19pbmNsdWRlKDxtYWxsb2Nf
cHJpdmF0ZS5oPikKLSNpbmNsdWRlIDxtYWxsb2NfcHJpdmF0ZS5oPgotI2VuZGlmCi0KLS8qCi0g
KiBUaGlzIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggdGhlIHZhbHVlIG9mIFBBU19TTUFMTF9Q
QUdFX0RFRkFVTFRfU0hJRlQKLSAqIGZyb20gT3BlblNvdXJjZSdzIHBhc19pbnRlcm5hbF9jb25m
aWcuaCAtLSB3ZSBjYW5ub3QgdXNlIGl0IGRpcmVjdGx5IGFzCi0gKiBwYXNfdXRpbHMuaCBpcyB0
b28gaGlnaCB1cCBpbiB0aGUgaW5jbHVkZSBoaWVyYXJjaHkuCi0gKi8KLSNkZWZpbmUgUEFTX01U
RV9TTUFMTF9QQUdFX0RFRkFVTFRfU0hJRlQgKDE0KQotI2RlZmluZSBQQVNfTVRFX1NNQUxMX1BB
R0VfTk9fTUFTSyAoMHgwMDAwZmZmZmZmZmZmZmZmdWxsICYgfigoMSA8PCBQQVNfTVRFX1NNQUxM
X1BBR0VfREVGQVVMVF9TSElGVCkgLSAxKSkKLSNkZWZpbmUgUEFTX01URV9TTUFMTF9QQUdFX05P
KHB0cikgKCgodWludHB0cl90KXB0cikgJiBQQVNfTVRFX1NNQUxMX1BBR0VfTk9fTUFTSykKLQot
I2RlZmluZSBQQVNfTVRFX0dFVF9UQUcocHRyKSBkbyB7IFwKLSAgICAgICAgYXNtIHZvbGF0aWxl
KCBcCi0gICAgICAgICAgICAiLmFyY2hfZXh0ZW5zaW9uIG1lbXRhZ1xuXHQiIFwKLSAgICAgICAg
ICAgICJsZGcgJTAsIFslMF0iIFwKLSAgICAgICAgICAgIDogIityIihwdHIpIFwKLSAgICAgICAg
ICAgIDogXAotICAgICAgICAgICAgOiBcCi0gICAgICAgICk7IFwKLSAgICB9IHdoaWxlICgwKQot
I2RlZmluZSBQQVNfTVRFX1NFVF9UQUcocHRyKSBkbyB7IFwKLSAgICAgICAgYXNtIHZvbGF0aWxl
KCBcCi0gICAgICAgICAgICAiLmFyY2hfZXh0ZW5zaW9uIG1lbXRhZ1xuXHQiIFwKLSAgICAgICAg
ICAgICJzdGcgJTAsIFslMF0iIFwKLSAgICAgICAgICAgIDogXAotICAgICAgICAgICAgOiAiciIo
cHRyKSBcCi0gICAgICAgICAgICA6IFwKLSAgICAgICAgKTsgXAotICAgIH0gd2hpbGUgKDApCi0j
ZGVmaW5lIFBBU19NVEVfU0VUX1RBR19QQUlSKHB0cikgZG8geyBcCi0gICAgICAgIGFzbSB2b2xh
dGlsZSggXAotICAgICAgICAgICAgIi5hcmNoX2V4dGVuc2lvbiBtZW10YWdcblx0IiBcCi0gICAg
ICAgICAgICAic3QyZyAlMCwgWyUwXSIgXAotICAgICAgICAgICAgOiBcCi0gICAgICAgICAgICA6
ICJyIihwdHIpIFwKLSAgICAgICAgICAgIDogXAotICAgICAgICApOyBcCi0gICAgfSB3aGlsZSAo
MCkKLSNkZWZpbmUgUEFTX01URV9TRVRfVEFHX1dJVEhfT0ZGU0VUKHB0ciwgb2Zmc2V0KSBkbyB7
IFwKLSAgICAgICAgYXNtIHZvbGF0aWxlKCBcCi0gICAgICAgICAgICAiLmFyY2hfZXh0ZW5zaW9u
IG1lbXRhZ1xuXHQiIFwKLSAgICAgICAgICAgICJzdGcgJTAsIFslMCwgIyIgI29mZnNldCAiXSIg
XAotICAgICAgICAgICAgOiBcCi0gICAgICAgICAgICA6ICJyIihwdHIpIFwKLSAgICAgICAgICAg
IDogXAotICAgICAgICApOyBcCi0gICAgfSB3aGlsZSAoMCkKLSNkZWZpbmUgUEFTX01URV9TRVRf
VEFHX1BBSVJfV0lUSF9PRkZTRVQocHRyLCBvZmZzZXQpIGRvIHsgXAotICAgICAgICBhc20gdm9s
YXRpbGUoIFwKLSAgICAgICAgICAgICIuYXJjaF9leHRlbnNpb24gbWVtdGFnXG5cdCIgXAotICAg
ICAgICAgICAgInN0MmcgJTAsIFslMCwgIyIgI29mZnNldCAiXSIgXAotICAgICAgICAgICAgOiBc
Ci0gICAgICAgICAgICA6ICJyIihwdHIpIFwKLSAgICAgICAgICAgIDogXAotICAgICAgICApOyBc
Ci0gICAgfSB3aGlsZSAoMCkKLSNkZWZpbmUgUEFTX01URV9TRVRfVEFHX1BPU1RJTkRFWChwdHIp
IGRvIHsgXAotICAgICAgICBhc20gdm9sYXRpbGUoIFwKLSAgICAgICAgICAgICIuYXJjaF9leHRl
bnNpb24gbWVtdGFnXG5cdCIgXAotICAgICAgICAgICAgInN0ZyAlMCwgWyUwXSwgIzE2IiBcCi0g
ICAgICAgICAgICA6ICIrciIocHRyKSBcCi0gICAgICAgICAgICA6IFwKLSAgICAgICAgICAgIDog
XAotICAgICAgICApOyBcCi0gICAgfSB3aGlsZSAoMCkKLSNkZWZpbmUgUEFTX01URV9TRVRfVEFH
X1BBSVJfUE9TVElOREVYKHB0cikgZG8geyBcCi0gICAgICAgIGFzbSB2b2xhdGlsZSggXAotICAg
ICAgICAgICAgIi5hcmNoX2V4dGVuc2lvbiBtZW10YWdcblx0IiBcCi0gICAgICAgICAgICAic3Qy
ZyAlMCwgWyUwXSwgIzMyIiBcCi0gICAgICAgICAgICA6ICIrciIocHRyKSBcCi0gICAgICAgICAg
ICA6IFwKLSAgICAgICAgICAgIDogXAotICAgICAgICApOyBcCi0gICAgfSB3aGlsZSAoMCkKLSNk
ZWZpbmUgUEFTX01URV9DUkVBVEVfUkFORE9NX1RBRyhwdHIsIG1hc2spIGRvIHsgXAotICAgICAg
ICBpZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01URV9GRUFUVVJFX1pFUk9fVEFHX0FM
TCkpIHsgXAotICAgICAgICAgICAgcHRyICY9ICh1aW50cHRyX3QpflBBU19NVEVfVEFHX01BU0s7
IFwKLSAgICAgICAgICAgIGJyZWFrOyBcCi0gICAgICAgIH0gXAotICAgICAgICBhc20gdm9sYXRp
bGUoIFwKLSAgICAgICAgICAgICIuYXJjaF9leHRlbnNpb24gbWVtdGFnXG5cdCIgXAotICAgICAg
ICAgICAgImlyZyAlMCwgJTAsICUxIiBcCi0gICAgICAgICAgICA6ICIrciIocHRyKSBcCi0gICAg
ICAgICAgICA6ICJyIigodWludHB0cl90KShtYXNrKSkgXAotICAgICAgICAgICAgOiBcCi0gICAg
ICAgICk7IFwKLSAgICB9IHdoaWxlICgwKQotI2RlZmluZSBQQVNfTVRFX0NIRUNLX1RBR19BTkRf
U0VUX1RDTyhwdHIpIGRvIHsgXAotICAgICAgICAvKiBXZSdyZSBvbmx5IGNoZWNraW5nIG9uZSB0
YWctZ3JhbnVsZSwgc28gaXQncyBub3QgcGVyZmVjdCwgXAotICAgICAgICAgKiBidXQgaXQgZG9l
cyBtZWFuIHRoYXQgYSBwb3RlbnRpYWwgYXR0YWNrZXIgd291bGQgYXQgbGVhc3QgXAotICAgICAg
ICAgKiBuZWVkIHRvIGtub3cgdGhlIHRhZyBmb3Igc29tZSBvZiB0aGVpciB0YXJnZXQgcmFuZ2Uu
ICovIFwKLSAgICAgICAgYXNtIHZvbGF0aWxlKCBcCi0gICAgICAgICAgICAiLmFyY2hfZXh0ZW5z
aW9uIG1lbXRhZ1xuXHQiIFwKLSAgICAgICAgICAgICJsZHIgeHpyLCBbJTBdXG5cdCIgXAotICAg
ICAgICAgICAgIm1zciB0Y28sICMxIiBcCi0gICAgICAgICAgICA6IFwKLSAgICAgICAgICAgIDog
InIiKHB0cikgXAotICAgICAgICAgICAgOiAibWVtb3J5IiBcCi0gICAgICAgICk7IFwKLSAgICB9
IHdoaWxlICgwKQotI2RlZmluZSBQQVNfTVRFX1NFVF9UQ09fVU5DSEVDS0VEIGRvIHsgXAotICAg
ICAgICBhc20gdm9sYXRpbGUoIFwKLSAgICAgICAgICAgICIuYXJjaF9leHRlbnNpb24gbWVtdGFn
XG5cdCIgXAotICAgICAgICAgICAgIm1zciB0Y28sICMxIiBcCi0gICAgICAgICAgICA6IFwKLSAg
ICAgICAgICAgIDogXAotICAgICAgICAgICAgOiAibWVtb3J5IiBcCi0gICAgICAgICk7IFwKLSAg
ICB9IHdoaWxlICgwKQotI2RlZmluZSBQQVNfTVRFX0NMRUFSX1RDTyBkbyB7IFwKLSAgICAgICAg
YXNtIHZvbGF0aWxlKCBcCi0gICAgICAgICAgICAiLmFyY2hfZXh0ZW5zaW9uIG1lbXRhZ1xuXHQi
IFwKLSAgICAgICAgICAgICJtc3IgdGNvLCAjMCIgXAotICAgICAgICAgICAgOiBcCi0gICAgICAg
ICAgICA6IFwKLSAgICAgICAgICAgIDogIm1lbW9yeSIgXAotICAgICAgICApOyBcCi0gICAgfSB3
aGlsZSAoMCkKLQotLyoKLSAqIERDIEdWQSB3cml0ZXMgdGFncyBmb3IgYSBjb250aWd1b3VzIHJh
bmdlIG9mIGFkZHJlc3NlcyBpbiBidWxrLiBUaGUgc2l6ZSBvZiB0aGlzCi0gKiByYW5nZSwgYW5k
IHdoZXRoZXIgb3Igbm90IERDIEdWQSBpcyBlbmFibGVkIGluIGhhcmR3YXJlLCBpcyBjb250cm9s
bGVkIGJ5IHRoZQotICogRENaSURfRUwwIHJlZ2lzdGVyLiBUZWNobmljYWxseSwgaWYgd2Ugd2Fu
dGVkIHRvIGJlIG1heGltYWxseSByb2J1c3QsIHdlIHdvdWxkCi0gKiBxdWVyeSB0aGlzIHJlZ2lz
dGVyIHRvIGRldGVjdCBpZiBEQyBHVkEgaXMgZW5hYmxlZCBhbmQgaWYgc28sIGhvdyBtdWNoIG1l
bW9yeSBpdAotICogY2FuIHRhZyBhdCBvbmNlLiBJbiBwcmFjdGljZSwgREMgR1ZBIHNob3VsZCBh
bHdheXMgYmUgZW5hYmxlZCBvbiBQQVNfTVRFLWNvbXBhdGlibGUKLSAqIEFwcGxlIGhhcmR3YXJl
LCB3aXRoIGEgc2l6ZSBvZiA2NCBieXRlcy4gQmVjYXVzZSB0YWdnaW5nIGNvZGUgaXMgc28gY3Jp
dGljYWwgdG8KLSAqIFBBU19NVEUgcGVyZm9ybWFuY2UsIHdlIGFzc3VtZSBib3RoIG9mIHRoZXNl
IHRoaW5ncyBhcmUgdHJ1ZSwgc2F2aW5nIHVzIHRoZSBjb3N0IG9mCi0gKiBuZWVkaW5nIHRvIHJl
bWVtYmVyIGVuYWJsZW1lbnQgYW5kIGdyYW51bGUgc2l6ZSBkeW5hbWljYWxseS4KLSAqCi0gKiBJ
biBhZGRpdGlvbiwgREMgR1ZBIHJlcXVpcmVzIGF0IGxlYXN0IDE2LWJ5dGUgYWxpZ25tZW50LCBh
bmQgcmVhbGx5IGlkZWFsbHkKLSAqIDY0LWJ5dGUgYWxpZ25tZW50IGFzIGZhciBhcyBJIGFtIGF3
YXJlLiBPdXIgdXNhZ2Ugb2YgdGhpcyBpbnN0cnVjdGlvbiBzaG91bGQgYmUKLSAqIGNhcmVmdWwg
dG8gcmVzcGVjdCA2NC1ieXRlIGFsaWdubWVudC4KLSAqLwotI2RlZmluZSBEQ19HVkFfR1JBTlVM
RV9TSVpFIDY0Ci0jZGVmaW5lIFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKHB0cikgZG8g
eyBcCi0gICAgICAgIGFzbSB2b2xhdGlsZSggXAotICAgICAgICAgICAgIi5hcmNoX2V4dGVuc2lv
biBtZW10YWdcblx0IiBcCi0gICAgICAgICAgICAiZGMgZ3ZhLCAlMCIgXAotICAgICAgICAgICAg
OiBcCi0gICAgICAgICAgICA6ICJyIihwdHIpIFwKLSAgICAgICAgICAgIDogIm1lbW9yeSIgXAot
ICAgICAgICApOyBcCi0gICAgfSB3aGlsZSAoMCkKLQotLy8gV2UgY2FsbCBhbiBhbGxvY2F0b3Ig
b2YgdGFnZ2FibGUgb2JqZWN0cyAiaG9tb2dlbmVvdXMiIGlmIGFsbCB0YWdnYWJsZQotLy8gb2Jq
ZWN0cyBhbGxvY2F0ZWQgYnkgdGhlIGFsbG9jYXRvciBhcmUgdGhlIHNhbWUgc2l6ZSwgZS5nLiBs
aWtlIGlzIHRoZQotLy8gY2FzZSB3aXRoIGFueSBzbGFiIGFsbG9jYXRvci4KLWVudW0gcGFzX210
ZV9hbGxvY2F0b3JfaG9tb2dlbmVpdHkgewotICBwYXNfbXRlX2hvbW9nZW5lb3VzX2FsbG9jYXRv
ciwKLSAgcGFzX210ZV9ub25ob21vZ2VuZW91c19hbGxvY2F0b3IsCi19OwotCi1lbnVtIHBhc19t
dGVfdGFnX2NvbnN0cmFpbnQgewotICBwYXNfbXRlX2FueV9ub256ZXJvX3RhZyA9IDB4MDAwMSwK
LSAgcGFzX210ZV9vZGRfdGFnID0gMHg1NTU1LAotICBwYXNfbXRlX25vbnplcm9fZXZlbl90YWcg
PSAweGFhYWIsCi19OwotCi1QQVNfSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJpbXBsaWNpdC1mYWxs
dGhyb3VnaCIpCi0KLWlubGluZSBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lKSkgdm9pZCBw
YXNfbXRlX3RhZ19zdDJnX2xvb3AodWludDhfdCogYmVnaW4sIHNpemVfdCBzaXplKQotewotICAg
IHVpbnQ4X3QqIGVuZCA9IGJlZ2luICsgc2l6ZTsKLSAgICBpZiAoUEFTX01URV9GRUFUVVJFX0VO
QUJMRUQoUEFTX01URV9GRUFUVVJFX0xPR19PTl9UQUcpKQotICAgICAgICBwcmludGYoIltNVEVd
XHQgICAgVGFnZ2luZyBpbml0aWFsIDE2IGJ5dGVzICVwIHRvICVwXG4iLCBiZWdpbiwgYmVnaW4g
KyAxNik7Ci0gICAgUEFTX01URV9TRVRfVEFHKGJlZ2luKTsKLQotICAgIC8vIEVuc3VyZSBiZWdp
biBpcyBhIG11bHRpcGxlIG9mIDMyIGJ5dGVzIGZyb20gdGhlIGVuZC4KLSAgICBiZWdpbiArPSBz
aXplICUgMzI7Ci0KLSAgICBpZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01URV9GRUFU
VVJFX0xPR19PTl9UQUcpICYmIGJlZ2luIDwgZW5kKQotICAgICAgICBwcmludGYoIltNVEVdXHQg
ICAgRG9pbmcgU1QyRyBsb29wIGZyb20gJXAgdG8gJXBcbiIsIGJlZ2luLCBlbmQpOwotICAgIHdo
aWxlIChiZWdpbiA8IGVuZCkKLSAgICAgICAgUEFTX01URV9TRVRfVEFHX1BBSVJfUE9TVElOREVY
KGJlZ2luKTsKLX0KLQotaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKSB2b2lk
IHBhc19tdGVfdGFnX3N0Mmdfc3dpdGNoaW5nKHVpbnQ4X3QqIGJlZ2luLCBzaXplX3Qgc2l6ZSkK
LXsKLSAgICB1aW50OF90KiBlbmQgPSBiZWdpbiArIHNpemU7Ci0gICAgaWYgKFBBU19NVEVfRkVB
VFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfT05fVEFHKSkKLSAgICAgICAgcHJpbnRm
KCJbTVRFXVx0ICAgIFRhZ2dpbmcgaW5pdGlhbCAxNiBieXRlcyAlcCB0byAlcFxuIiwgYmVnaW4s
IGJlZ2luICsgMTYpOwotICAgIFBBU19NVEVfU0VUX1RBRyhiZWdpbik7Ci0KLSAgICAvLyBFbnN1
cmUgYmVnaW4gaXMgYSBtdWx0aXBsZSBvZiAzMiBieXRlcyBmcm9tIHRoZSBlbmQuCi0gICAgYmVn
aW4gKz0gc2l6ZSAlIDMyOwotCi0gICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19N
VEVfRkVBVFVSRV9MT0dfT05fVEFHKSkKLSAgICAgICAgcHJpbnRmKCJbTVRFXVx0ICAgIERvaW5n
IFNUMkcgbG9vcCBmcm9tICVwIHRvICVwXG4iLCBiZWdpbiwgZW5kKTsKLSAgICB3aGlsZSAoYmVn
aW4gPCBlbmQpIHsKLSAgICAgICAgdWludHB0cl90IG51bV9ncmFudWxlc190b19zdDJnID0gKHVp
bnRwdHJfdCkoZW5kIC0gYmVnaW4pIC8gKHVpbnRwdHJfdCkzMiAmIDE1OwotICAgICAgICBpZiAo
IW51bV9ncmFudWxlc190b19zdDJnKQotICAgICAgICAgICAgbnVtX2dyYW51bGVzX3RvX3N0Mmcg
PSAxNjsKLSAgICAgICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVS
RV9MT0dfT05fVEFHKSkgewotICAgICAgICAgICAgc2l6ZV90IHRhZ2dlZF9zaXplID0gbnVtX2dy
YW51bGVzX3RvX3N0MmcgKiAzMjsKLSAgICAgICAgICAgIHByaW50ZigiW01URV1cdCAgICAgICAg
VGFnZ2luZyAlenUgYnl0ZXMgZnJvbSAlcCB0byAlcFxuIiwgdGFnZ2VkX3NpemUsIGJlZ2luLCBi
ZWdpbiArIHRhZ2dlZF9zaXplKTsKLSAgICAgICAgfQotICAgICAgICBzd2l0Y2ggKG51bV9ncmFu
dWxlc190b19zdDJnKSB7Ci0gICAgICAgIGNhc2UgMTY6IFBBU19NVEVfU0VUX1RBR19QQUlSX1dJ
VEhfT0ZGU0VUKGJlZ2luLCA0ODApOwotICAgICAgICBjYXNlIDE1OiBQQVNfTVRFX1NFVF9UQUdf
UEFJUl9XSVRIX09GRlNFVChiZWdpbiwgNDQ4KTsKLSAgICAgICAgY2FzZSAxNDogUEFTX01URV9T
RVRfVEFHX1BBSVJfV0lUSF9PRkZTRVQoYmVnaW4sIDQxNik7Ci0gICAgICAgIGNhc2UgMTM6IFBB
U19NVEVfU0VUX1RBR19QQUlSX1dJVEhfT0ZGU0VUKGJlZ2luLCAzODQpOwotICAgICAgICBjYXNl
IDEyOiBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChiZWdpbiwgMzUyKTsKLSAgICAg
ICAgY2FzZSAxMTogUEFTX01URV9TRVRfVEFHX1BBSVJfV0lUSF9PRkZTRVQoYmVnaW4sIDMyMCk7
Ci0gICAgICAgIGNhc2UgMTA6IFBBU19NVEVfU0VUX1RBR19QQUlSX1dJVEhfT0ZGU0VUKGJlZ2lu
LCAyODgpOwotICAgICAgICBjYXNlIDk6IFBBU19NVEVfU0VUX1RBR19QQUlSX1dJVEhfT0ZGU0VU
KGJlZ2luLCAyNTYpOwotICAgICAgICBjYXNlIDg6IFBBU19NVEVfU0VUX1RBR19QQUlSX1dJVEhf
T0ZGU0VUKGJlZ2luLCAyMjQpOwotICAgICAgICBjYXNlIDc6IFBBU19NVEVfU0VUX1RBR19QQUlS
X1dJVEhfT0ZGU0VUKGJlZ2luLCAxOTIpOwotICAgICAgICBjYXNlIDY6IFBBU19NVEVfU0VUX1RB
R19QQUlSX1dJVEhfT0ZGU0VUKGJlZ2luLCAxNjApOwotICAgICAgICBjYXNlIDU6IFBBU19NVEVf
U0VUX1RBR19QQUlSX1dJVEhfT0ZGU0VUKGJlZ2luLCAxMjgpOwotICAgICAgICBjYXNlIDQ6IFBB
U19NVEVfU0VUX1RBR19QQUlSX1dJVEhfT0ZGU0VUKGJlZ2luLCA5Nik7Ci0gICAgICAgIGNhc2Ug
MzogUEFTX01URV9TRVRfVEFHX1BBSVJfV0lUSF9PRkZTRVQoYmVnaW4sIDY0KTsKLSAgICAgICAg
Y2FzZSAyOiBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChiZWdpbiwgMzIpOwotICAg
ICAgICBjYXNlIDE6IFBBU19NVEVfU0VUX1RBR19QQUlSKGJlZ2luKTsgYnJlYWs7Ci0gICAgICAg
IGRlZmF1bHQ6IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOwotICAgICAgICB9Ci0gICAgICAgIGJl
Z2luICs9IG51bV9ncmFudWxlc190b19zdDJnICogMzI7Ci0gICAgfQotfQotCi1pbmxpbmUgX19h
dHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpIHZvaWQgcGFzX210ZV90YWdfZGNfZ3ZhX2xvb3Ao
dWludDhfdCogYmVnaW4sIHNpemVfdCBzaXplKQotewotICAgIC8qIEdldCB0aGUgc21hbGwtb2Jq
ZWN0IGNhc2Ugb3V0IG9mIHRoZSB3YXkuICovCi0gICAgaWYgKHNpemUgPD0gNDgpIHsKLSAgICAg
ICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfT05fVEFH
KSkKLSAgICAgICAgICAgIHByaW50ZigiW01URV1cdCAgICBUYWdnaW5nIHNtYWxsIG9iamVjdCB3
aXRoIHNpemUgJXp1IGZyb20gJXAgdG8gJXBcbiIsIHNpemUsIGJlZ2luLCBiZWdpbiArIHNpemUp
OwotICAgICAgICBQQVNfTVRFX1NFVF9UQUcoYmVnaW4pOwotICAgICAgICBpZiAoc2l6ZSA8PSAx
NikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgUEFTX01URV9TRVRfVEFHX1BBSVIoYmVn
aW4pOwotICAgICAgICBpZiAoc2l6ZSA+IDMyKQotICAgICAgICAgICAgUEFTX01URV9TRVRfVEFH
X1dJVEhfT0ZGU0VUKGJlZ2luLCAzMik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAv
KiBOb3cgdGhhdCB3ZSBrbm93IHRoZSBzaXplIGlzIGF0IGxlYXN0IDY0IGJ5dGVzLCB3ZSBjYW4g
dXNlIERDIEdWQS4gKi8KLSAgICAvKiBGaXJzdCwgd2UgaGFuZGxlIHRoZSBmaXJzdCA2NCBieXRl
cywgd2hpY2ggbWF5IG5vdCBiZSBhbGlnbmVkIHRvIDY0IGJ5dGVzLiAqLwotICAgIGlmIChQQVNf
TVRFX0ZFQVRVUkVfRU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfTE9HX09OX1RBRykpCi0gICAgICAg
IHByaW50ZigiW01URV1cdCAgICBUYWdnaW5nIGluaXRpYWwgNjQgYnl0ZXMgZnJvbSAlcCB0byAl
cFxuIiwgYmVnaW4sIGJlZ2luICsgNjQpOwotICAgIFBBU19NVEVfU0VUX1RBR19QQUlSKGJlZ2lu
KTsKLSAgICBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChiZWdpbiwgMzIpOwotCi0g
ICAgdWludDhfdCogZW5kID0gYmVnaW4gKyBzaXplOwotCi0gICAgaWYgKHNpemUgPiAxMjgpIHsK
LSAgICAgICAgLyogTmV4dCwgd2UgYWxpZ24gb3VyIGJlZ2luIGFuZCBlbmQsIGluIHByZXBhcmF0
aW9uIGZvciBkb2luZyBhIERDIEdWQSBsb29wLiAqLwotICAgICAgICBiZWdpbiA9ICh1aW50OF90
KikoKHVpbnRwdHJfdCliZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUgLSAxICYgKGludHB0cl90
KS1EQ19HVkFfR1JBTlVMRV9TSVpFKTsKLSAgICAgICAgdWludDhfdCogZW5kX2FsaWduZWQgPSAo
dWludDhfdCopKCh1aW50cHRyX3QpZW5kICYgKGludHB0cl90KS1EQ19HVkFfR1JBTlVMRV9TSVpF
KTsKLQotICAgICAgICBpZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01URV9GRUFUVVJF
X0xPR19PTl9UQUcpKQotICAgICAgICAgICAgcHJpbnRmKCJbTVRFXVx0ICAgIERvaW5nIGFsaWdu
ZWQgREMgR1ZBIGxvb3AgZnJvbSAlcCB0byAlcFxuIiwgYmVnaW4sIGVuZF9hbGlnbmVkKTsKLSAg
ICAgICAgd2hpbGUgKGJlZ2luIDwgZW5kX2FsaWduZWQpIHsKLSAgICAgICAgICAgIFBBU19NVEVf
U0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luKTsKLSAgICAgICAgICAgIGJlZ2luICs9IERDX0dW
QV9HUkFOVUxFX1NJWkU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiBIYW5kbGUgdGhlIGxh
c3QgNjQgYnl0ZXMsIGNvdmVyaW5nIHRoZSB1bmFsaWduZWQgcmVtYWluZGVyIHdlIG1heSBoYXZl
ICovCi0gICAgLyogbWlzc2VkIGluIG91ciBEQyBHVkEgbG9vcC4gKi8KLSAgICBpZiAoUEFTX01U
RV9GRUFUVVJFX0VOQUJMRUQoUEFTX01URV9GRUFUVVJFX0xPR19PTl9UQUcpKQotICAgICAgICBw
cmludGYoIltNVEVdXHQgICAgVGFnZ2luZyBmaW5hbCA2NCBieXRlcyBmcm9tICVwIHRvICVwXG4i
LCBlbmQgLSA2NCwgZW5kKTsKLSAgICBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChl
bmQsIC02NCk7Ci0gICAgUEFTX01URV9TRVRfVEFHX1BBSVJfV0lUSF9PRkZTRVQoZW5kLCAtMzIp
OwotfQotCi1pbmxpbmUgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpIHZvaWQgcGFzX210
ZV90YWdfZGNfZ3ZhX2tub3duX21lZGl1bSh1aW50OF90KiBiZWdpbiwgc2l6ZV90IHNpemUpCi17
Ci0gICAgdWludDhfdCogZW5kID0gYmVnaW4gKyBzaXplOwotICAgIHdoaWxlIChiZWdpbiA8IGVu
ZCkgewotICAgICAgICBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShiZWdpbik7Ci0gICAg
ICAgIFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luICsgRENfR1ZBX0dSQU5VTEVf
U0laRSk7Ci0gICAgICAgIFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luICsgRENf
R1ZBX0dSQU5VTEVfU0laRSAqIDIpOwotICAgICAgICBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RD
X0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUgKiAzKTsKLSAgICAgICAgUEFTX01URV9T
RVRfVEFHU19VU0lOR19EQ19HVkEoYmVnaW4gKyBEQ19HVkFfR1JBTlVMRV9TSVpFICogNCk7Ci0g
ICAgICAgIFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luICsgRENfR1ZBX0dSQU5V
TEVfU0laRSAqIDUpOwotICAgICAgICBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShiZWdp
biArIERDX0dWQV9HUkFOVUxFX1NJWkUgKiA2KTsKLSAgICAgICAgUEFTX01URV9TRVRfVEFHU19V
U0lOR19EQ19HVkEoYmVnaW4gKyBEQ19HVkFfR1JBTlVMRV9TSVpFICogNyk7Ci0gICAgICAgIGJl
Z2luICs9IERDX0dWQV9HUkFOVUxFX1NJWkUgKiA4OwotICAgIH0KLX0KLQotaW5saW5lIF9fYXR0
cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKSB2b2lkIHBhc19tdGVfdGFnX2RjX2d2YV9zd2l0Y2hp
bmcodWludDhfdCogYmVnaW4sIHNpemVfdCBzaXplKQotewotICAgIC8qIEdldCB0aGUgc21hbGwt
b2JqZWN0IGNhc2Ugb3V0IG9mIHRoZSB3YXkuICovCi0gICAgaWYgKHNpemUgPD0gNDgpIHsKLSAg
ICAgICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfT05f
VEFHKSkKLSAgICAgICAgICAgIHByaW50ZigiW01URV1cdCAgICBUYWdnaW5nIHNtYWxsIG9iamVj
dCB3aXRoIHNpemUgJXp1IGZyb20gJXAgdG8gJXBcbiIsIHNpemUsIGJlZ2luLCBiZWdpbiArIHNp
emUpOwotICAgICAgICBQQVNfTVRFX1NFVF9UQUcoYmVnaW4pOwotICAgICAgICBpZiAoc2l6ZSA8
PSAxNikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgUEFTX01URV9TRVRfVEFHX1BBSVIo
YmVnaW4pOwotICAgICAgICBpZiAoc2l6ZSA+IDMyKQotICAgICAgICAgICAgUEFTX01URV9TRVRf
VEFHX1dJVEhfT0ZGU0VUKGJlZ2luLCAzMik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICAvKiBOb3cgdGhhdCB3ZSBrbm93IHRoZSBzaXplIGlzIGF0IGxlYXN0IDY0IGJ5dGVzLCB3ZSBj
YW4gdXNlIERDIEdWQS4gKi8KLSAgICAvKiBGaXJzdCwgd2UgaGFuZGxlIHRoZSBmaXJzdCA2NCBi
eXRlcywgd2hpY2ggbWF5IG5vdCBiZSBhbGlnbmVkIHRvIDY0IGJ5dGVzLiAqLwotICAgIGlmIChQ
QVNfTVRFX0ZFQVRVUkVfRU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfTE9HX09OX1RBRykpCi0gICAg
ICAgIHByaW50ZigiW01URV1cdCAgICBUYWdnaW5nIGluaXRpYWwgNjQgYnl0ZXMgZnJvbSAlcCB0
byAlcFxuIiwgYmVnaW4sIGJlZ2luICsgNjQpOwotICAgIFBBU19NVEVfU0VUX1RBR19QQUlSKGJl
Z2luKTsKLSAgICBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChiZWdpbiwgMzIpOwot
Ci0gICAgdWludDhfdCogZW5kID0gYmVnaW4gKyBzaXplOwotCi0gICAgaWYgKHNpemUgPiAxMjgp
IHsKLSAgICAgICAgLyogTmV4dCwgd2UgYWxpZ24gb3VyIGJlZ2luIGFuZCBlbmQsIGluIHByZXBh
cmF0aW9uIGZvciBkb2luZyBhIERDIEdWQSBsb29wLiAqLwotICAgICAgICBiZWdpbiA9ICh1aW50
OF90KikoKHVpbnRwdHJfdCliZWdpbiArIDYzICYgKGludHB0cl90KS02NCk7Ci0gICAgICAgIHVp
bnQ4X3QqIGVuZF9hbGlnbmVkID0gKHVpbnQ4X3QqKSgodWludHB0cl90KWVuZCAmIChpbnRwdHJf
dCktNjQpOwotCi0gICAgICAgIGlmIChQQVNfTVRFX0ZFQVRVUkVfRU5BQkxFRChQQVNfTVRFX0ZF
QVRVUkVfTE9HX09OX1RBRykpCi0gICAgICAgICAgICBwcmludGYoIltNVEVdXHQgICAgRG9pbmcg
YWxpZ25lZCBEQyBHVkEgbG9vcCBmcm9tICVwIHRvICVwXG4iLCBiZWdpbiwgZW5kX2FsaWduZWQp
OwotICAgICAgICB3aGlsZSAoYmVnaW4gPCBlbmRfYWxpZ25lZCkgewotICAgICAgICAgICAgdWlu
dHB0cl90IG51bV9ncmFudWxlc190b19ndmEgPSAodWludHB0cl90KShlbmRfYWxpZ25lZCAtIGJl
Z2luKSAvICh1aW50cHRyX3QpRENfR1ZBX0dSQU5VTEVfU0laRSAlIDE2OwotICAgICAgICAgICAg
aWYgKCFudW1fZ3JhbnVsZXNfdG9fZ3ZhKQotICAgICAgICAgICAgICAgIG51bV9ncmFudWxlc190
b19ndmEgPSAxNjsKLSAgICAgICAgICAgIGlmIChQQVNfTVRFX0ZFQVRVUkVfRU5BQkxFRChQQVNf
TVRFX0ZFQVRVUkVfTE9HX09OX1RBRykpIHsKLSAgICAgICAgICAgICAgICBzaXplX3QgdGFnZ2Vk
X3NpemUgPSBudW1fZ3JhbnVsZXNfdG9fZ3ZhICogRENfR1ZBX0dSQU5VTEVfU0laRTsKLSAgICAg
ICAgICAgICAgICBwcmludGYoIltNVEVdXHQgICAgICAgIFRhZ2dpbmcgJXp1IGJ5dGVzIGZyb20g
JXAgdG8gJXBcbiIsIHRhZ2dlZF9zaXplLCBiZWdpbiwgYmVnaW4gKyB0YWdnZWRfc2l6ZSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBzd2l0Y2ggKG51bV9ncmFudWxlc190b19ndmEpIHsK
LSAgICAgICAgICAgIGNhc2UgMTY6IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2lu
ICsgRENfR1ZBX0dSQU5VTEVfU0laRSAqIDE1KTsKLSAgICAgICAgICAgIGNhc2UgMTU6IFBBU19N
VEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luICsgRENfR1ZBX0dSQU5VTEVfU0laRSAqIDE0
KTsKLSAgICAgICAgICAgIGNhc2UgMTQ6IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJl
Z2luICsgRENfR1ZBX0dSQU5VTEVfU0laRSAqIDEzKTsKLSAgICAgICAgICAgIGNhc2UgMTM6IFBB
U19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luICsgRENfR1ZBX0dSQU5VTEVfU0laRSAq
IDEyKTsKLSAgICAgICAgICAgIGNhc2UgMTI6IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZB
KGJlZ2luICsgRENfR1ZBX0dSQU5VTEVfU0laRSAqIDExKTsKLSAgICAgICAgICAgIGNhc2UgMTE6
IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luICsgRENfR1ZBX0dSQU5VTEVfU0la
RSAqIDEwKTsKLSAgICAgICAgICAgIGNhc2UgMTA6IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENf
R1ZBKGJlZ2luICsgRENfR1ZBX0dSQU5VTEVfU0laRSAqIDkpOwotICAgICAgICAgICAgY2FzZSA5
OiBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJ
WkUgKiA4KTsKLSAgICAgICAgICAgIGNhc2UgODogUEFTX01URV9TRVRfVEFHU19VU0lOR19EQ19H
VkEoYmVnaW4gKyBEQ19HVkFfR1JBTlVMRV9TSVpFICogNyk7Ci0gICAgICAgICAgICBjYXNlIDc6
IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luICsgRENfR1ZBX0dSQU5VTEVfU0la
RSAqIDYpOwotICAgICAgICAgICAgY2FzZSA2OiBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dW
QShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUgKiA1KTsKLSAgICAgICAgICAgIGNhc2UgNTog
UEFTX01URV9TRVRfVEFHU19VU0lOR19EQ19HVkEoYmVnaW4gKyBEQ19HVkFfR1JBTlVMRV9TSVpF
ICogNCk7Ci0gICAgICAgICAgICBjYXNlIDQ6IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZB
KGJlZ2luICsgRENfR1ZBX0dSQU5VTEVfU0laRSAqIDMpOwotICAgICAgICAgICAgY2FzZSAzOiBQ
QVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUg
KiAyKTsKLSAgICAgICAgICAgIGNhc2UgMjogUEFTX01URV9TRVRfVEFHU19VU0lOR19EQ19HVkEo
YmVnaW4gKyBEQ19HVkFfR1JBTlVMRV9TSVpFKTsKLSAgICAgICAgICAgIGNhc2UgMTogUEFTX01U
RV9TRVRfVEFHU19VU0lOR19EQ19HVkEoYmVnaW4pOyBicmVhazsKLSAgICAgICAgICAgIGRlZmF1
bHQ6IF9fYnVpbHRpbl91bnJlYWNoYWJsZSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
YmVnaW4gKz0gbnVtX2dyYW51bGVzX3RvX2d2YSAqIERDX0dWQV9HUkFOVUxFX1NJWkU7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICAvKiBIYW5kbGUgdGhlIGxhc3QgNjQgYnl0ZXMsIGNvdmVyaW5n
IHRoZSB1bmFsaWduZWQgcmVtYWluZGVyIHdlIG1heSBoYXZlICovCi0gICAgLyogbWlzc2VkIGlu
IG91ciBEQyBHVkEgbG9vcC4gKi8KLSAgICBpZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFT
X01URV9GRUFUVVJFX0xPR19PTl9UQUcpKQotICAgICAgICBwcmludGYoIltNVEVdXHQgICAgVGFn
Z2luZyBmaW5hbCA2NCBieXRlcyBmcm9tICVwIHRvICVwXG4iLCBlbmQgLSA2NCwgZW5kKTsKLSAg
ICBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChlbmQsIC02NCk7Ci0gICAgUEFTX01U
RV9TRVRfVEFHX1BBSVJfV0lUSF9PRkZTRVQoZW5kLCAtMzIpOwotfQotCi1QQVNfSUdOT1JFX1dB
Uk5JTkdTX0VORAotCi0jZGVmaW5lIEFTU0VSVF9QUklPUl9UQUdfSVNfRElTSk9JTlQocHRyKSBk
byB7IFwKLSAgICAgICAgdWludDhfdCogcHJldl9wdHIgPSAodWludDhfdCopKCh1aW50cHRyX3Qp
cHRyIC0gMTYpOyBcCi0gICAgICAgIHVpbnQ4X3QqIGN1cnJfcHRyID0gKHVpbnQ4X3QqKXB0cjsg
XAotICAgICAgICBpZiAoUEFTX01URV9TTUFMTF9QQUdFX05PKHByZXZfcHRyKSA9PSBQQVNfTVRF
X1NNQUxMX1BBR0VfTk8oY3Vycl9wdHIpKSB7IFwKLSAgICAgICAgICAgIFBBU19NVEVfR0VUX1RB
RyhwcmV2X3B0cik7IFwKLSAgICAgICAgICAgIFBBU19NVEVfR0VUX1RBRyhjdXJyX3B0cik7IFwK
LSAgICAgICAgICAgIHVpbnRwdHJfdCBwcmV2X3RhZyA9ICh1aW50cHRyX3QpcHJldl9wdHIgJiBQ
QVNfTVRFX1RBR19NQVNLOyBcCi0gICAgICAgICAgICB1aW50cHRyX3QgY3Vycl90YWcgPSAodWlu
dHB0cl90KWN1cnJfcHRyICYgUEFTX01URV9UQUdfTUFTSzsgXAotICAgICAgICAgICAgaWYgKHBy
ZXZfdGFnID09IGN1cnJfdGFnICYmICFjdXJyX3RhZykgXAotICAgICAgICAgICAgICAgIHByaW50
ZigiW01URV1cdEFkamFjZW50IHRhZyBjb2xsaXNpb24gYmV0d2VlbiAlcCBhbmQgJXA6IGNyYXNo
aW5nXG4iLCBwcmV2X3B0ciwgY3Vycl9wdHIpOyBcCi0gICAgICAgICAgICBQQVNfTVRFX0FTU0VS
VChwcmV2X3RhZyAhPSBjdXJyX3RhZyB8fCAhY3Vycl90YWcpOyBcCi0gICAgICAgIH0gXAotICAg
IH0gd2hpbGUgKDApCi0KLSNkZWZpbmUgVEFHX1JFR0lPTl9GUk9NX1BPSU5URVIocHRyLCBzaXpl
LCBpc19rbm93bl9tZWRpdW0pIGRvIHsgXAotICAgICAgICB1aW50OF90KiBwYXNfbXRlX2JlZ2lu
ID0gKHVpbnQ4X3QqKShwdHIpOyBcCi0gICAgICAgIHNpemVfdCBwYXNfbXRlX3NpemUgPSAoc2l6
ZV90KShzaXplKTsgXAotICAgICAgICBpZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01U
RV9GRUFUVVJFX0xPR19PTl9UQUcpKSB7IFwKLSAgICAgICAgICAgIHZvaWQqIHB1cmlmaWVkX2Jl
Z2luID0gcGFzX210ZV9iZWdpbjsgXAotICAgICAgICAgICAgUEFTX01URV9HRVRfVEFHKHB1cmlm
aWVkX2JlZ2luKTsgXAotICAgICAgICAgICAgcHJpbnRmKCJbTVRFXVx0VGFnZ2luZyAlenUgYnl0
ZXMgZnJvbSAlcCB0byAlcCAob2xkIHRhZyBpcyAlcClcbiIsIHBhc19tdGVfc2l6ZSwgcGFzX210
ZV9iZWdpbiwgcGFzX210ZV9iZWdpbiArIHBhc19tdGVfc2l6ZSwgcHVyaWZpZWRfYmVnaW4pOyBc
Ci0gICAgICAgIH0gXAotICAgICAgICBpZiAoaXNfa25vd25fbWVkaXVtKSBcCi0gICAgICAgICAg
ICBwYXNfbXRlX3RhZ19kY19ndmFfa25vd25fbWVkaXVtKHBhc19tdGVfYmVnaW4sIHBhc19tdGVf
c2l6ZSk7IFwKLSAgICAgICAgZWxzZSBcCi0gICAgICAgICAgICBwYXNfbXRlX3RhZ19zdDJnX2xv
b3AocGFzX210ZV9iZWdpbiwgcGFzX210ZV9zaXplKTsgXAotICAgIH0gd2hpbGUgKDApCi0KLS8v
IFB1cmlmeSBpcyB1c2VkIHRvIHJlbG9hZCB0aGUgY29ycmVjdCB0YWcgZm9yIGEgcG9pbnRlciBm
cm9tIHRhZwotLy8gbWVtb3J5LiBXZSBnZW5lcmFsbHkgdXNlIHRoaXMgd2hlbiB3ZSBhZGQgdG8g
b3Igcm91bmQgZG93biBhIHBvaW50ZXIsCi0vLyBhbmQgbmVlZCB0byBtb2RpZnkgbWVtb3J5IGF0
IHRoYXQgbmV3IGFkZHJlc3MsIHN1Y2ggYXMgcGFnZSBoZWFkZXJzLgotCi0jZGVmaW5lIFBBU19N
VEVfUFVSSUZZKGEpIGRvIHsgXAotICAgICAgICBpZiAoUEFTX1VTRV9NVEUpIHsgXAotICAgICAg
ICAgICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfT05f
UFVSSUZZKSkgXAotICAgICAgICAgICAgICAgIHByaW50ZigiW01URV1cdFB1cmlmaWVkICVwIiwg
KHZvaWQqKShhKSk7IFwKLSAgICAgICAgICAgIFBBU19NVEVfR0VUX1RBRyhhKTsgXAotICAgICAg
ICAgICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfT05f
UFVSSUZZKSkgXAotICAgICAgICAgICAgICAgIHByaW50ZigiIHRvICVwXG4iLCAodm9pZCopKGEp
KTsgXAotICAgICAgICB9IFwKLSAgICB9IHdoaWxlICgwKQotCi0vLyBDbGVhciBpcyB1c2VkIHRv
IGNhbm9uaWNhbGl6ZSAoemVybyBvdXQpIHRoZSB0YWcgYml0cyBvZiBhIHBvaW50ZXIuCi0vLyBX
ZSBnZW5lcmFsbHkgdXNlIHRoaXMgd2hlbiB3ZSB3YW50IHRvIHRyZWF0IHRoZSBhZGRyZXNzIGl0
c2VsZiBhcwotLy8gYW4gaW50ZWdlciBvciBrZXksIGFuZCBkb24ndCBpbnRlbmQgdG8gbG9hZCBm
cm9tIGl0IGRpcmVjdGx5LgotLy8gV2UgZG9uJ3QgY2hlY2sgZm9yIFBBU19NVEUgZW5hYmxlbWVu
dCBpbiB0aGVzZSBjYXNlcywgc2luY2Ugb24gbm9uLVBBU19NVEUKLS8vIGhhcmR3YXJlLCB0aGUg
dGFnIHNob3VsZCBiZSB6ZXJvIGFueXdheSwgYW5kIG1hc2tpbmcgb2ZmIHRoZSBiaXRzCi0vLyBz
aG91bGQgYmUgZmFzdGVyIHRoYW4gYnJhbmNoaW5nIG9uIGdfY29uZmlnLgotCi0jZGVmaW5lIFBB
U19NVEVfQ0xFQVIoYSkgZG8geyBcCi0gICAgICAgIGEgJj0gflBBU19NVEVfVEFHX01BU0s7IFwK
LSAgICB9IHdoaWxlICgwKQotCi0jZGVmaW5lIFBBU19NVEVfQ0xFQVJfUEFJUihhLCBiKSBkbyB7
IFwKLSAgICAgICAgYSAmPSB+UEFTX01URV9UQUdfTUFTSzsgXAotICAgICAgICBiICY9IH5QQVNf
TVRFX1RBR19NQVNLOyBcCi0gICAgfSB3aGlsZSAoMCkKLQotLy8gVGFnZ2luZyBpcyB3aGF0IGFj
dHVhbGx5IGFwcGxpZXMgYW4gUEFTX01URSB0YWcgdG8gYW4gYWxsb2NhdGlvbi4gSWYgdGhlCi0v
LyBwYXNfYWxsb2NhdGlvbl9tb2RlIHBhc3NlZCB0byB0aGlzIG1hY3JvIGlzIGNvbXBhY3QsIHdl
IHplcm8gdGhlIHVwcGVyCi0vLyBiaXRzIG9mIHRoZSBwb2ludGVyIGFuZCB0YWcgdGhlIG9iamVj
dCB3aXRoIGEgemVybyB0YWcuIE90aGVyd2lzZSwgd2UKLS8vIHJhbmRvbWx5IGNob29zZSBhIG5v
bnplcm8gdGFnLiBJdCdzIGFzc3VtZWQgdGhhdCB0aGlzIG1hY3JvIHdpbGwgYmUKLS8vIGludm9r
ZWQgd2l0aCBhIHNpemUgdGhhdCdzIGEgbXVsdGlwbGUgb2YgMTYsIGFuZCBpdCdzIHJlYWxseSBp
bXBvcnRhbnQKLS8vIHRoYXQgdGhlIHNpemUgcGFzc2VkIGJlIHRoZSBhbGxvY2F0aW9uIHNpemUg
b2YgdGhlIG9iamVjdCwgbm90IHRoZQotLy8gYWN0dWFsIHNpemUuCi0jZGVmaW5lIFBBU19NVEVf
VEFHX1JFR0lPTihwdHIsIHNpemUsIG1vZGUsIGlzX2FsbG9jYXRvcl9ob21vZ2VuZW91cywgaXNf
a25vd25fbWVkaXVtKSBkbyB7IFwKLSAgICAgICAgaWYgKFBBU19NVEVfU0hPVUxEX1NUT1JFX1RB
RykgeyBcCi0gICAgICAgICAgICBpZiAobW9kZSAhPSBwYXNfbm9uX2NvbXBhY3RfYWxsb2NhdGlv
bl9tb2RlKSBcCi0gICAgICAgICAgICAgICAgcHRyICY9IH5QQVNfTVRFX1RBR19NQVNLOyBcCi0g
ICAgICAgICAgICBlbHNlIHsgXAotICAgICAgICAgICAgICAgIGlmIChQQVNfTVRFX0ZFQVRVUkVf
RU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfQURKQUNFTlRfVEFHX0VYQ0xVU0lPTikgJiYgaXNfYWxs
b2NhdG9yX2hvbW9nZW5lb3VzID09IHBhc19tdGVfaG9tb2dlbmVvdXNfYWxsb2NhdG9yKSB7IFwK
LSAgICAgICAgICAgICAgICAgICAgaWYgKCgoKHVpbnRwdHJfdClwdHIgJiBQQVNfTVRFX0NBTk9O
SUNBTF9NQVNLKSAvIHNpemUpICYgMHgxKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICBQQVNf
TVRFX0NSRUFURV9SQU5ET01fVEFHKHB0ciwgcGFzX210ZV9vZGRfdGFnKTsgXAotICAgICAgICAg
ICAgICAgICAgICBlbHNlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgIFBBU19NVEVfQ1JFQVRF
X1JBTkRPTV9UQUcocHRyLCBwYXNfbXRlX25vbnplcm9fZXZlbl90YWcpOyBcCi0gICAgICAgICAg
ICAgICAgfSBlbHNlIFwKLSAgICAgICAgICAgICAgICAgICAgUEFTX01URV9DUkVBVEVfUkFORE9N
X1RBRyhwdHIsIHBhc19tdGVfYW55X25vbnplcm9fdGFnKTsgXAotICAgICAgICAgICAgfSBcCi0g
ICAgICAgICAgICBpZiAobW9kZSAhPSBwYXNfYWx3YXlzX2NvbXBhY3RfYWxsb2NhdGlvbl9tb2Rl
KSB7IFwKLSAgICAgICAgICAgICAgICBUQUdfUkVHSU9OX0ZST01fUE9JTlRFUihwdHIsIHNpemUs
IGlzX2tub3duX21lZGl1bSk7IFwKLSAgICAgICAgICAgICAgICBpZiAoUEFTX01URV9GRUFUVVJF
X0VOQUJMRUQoUEFTX01URV9GRUFUVVJFX0FESkFDRU5UX1RBR19FWENMVVNJT04pIFwKLSAgICAg
ICAgICAgICAgICAgICAgJiYgUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01URV9GRUFUVVJF
X0FTU0VSVF9BREpBQ0VOVF9UQUdTX0FSRV9ESVNKT0lOVCkgXAotICAgICAgICAgICAgICAgICAg
ICAmJiBpc19hbGxvY2F0b3JfaG9tb2dlbmVvdXMgPT0gcGFzX210ZV9ob21vZ2VuZW91c19hbGxv
Y2F0b3IpIHsgXAotICAgICAgICAgICAgICAgICAgICBBU1NFUlRfUFJJT1JfVEFHX0lTX0RJU0pP
SU5UKHB0cik7IFwKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUX1BSSU9SX1RBR19JU19ESVNK
T0lOVChwdHIgKyBzaXplKTsgXAotICAgICAgICAgICAgICAgIH0gXAotICAgICAgICAgICAgfSBc
Ci0gICAgICAgIH0gXAotICAgIH0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUEFTX01URV9UQUdfUkVH
SU9OX0ZST01fSU5JVElBTF9BTExPQ0FUSU9OKHB0ciwgc2l6ZSwgbW9kZSwgaXNfYWxsb2NhdG9y
X2hvbW9nZW5lb3VzLCBpc19rbm93bl9tZWRpdW0pIGRvIHsgXAotICAgICAgICBQQVNfTVRFX1RB
R19SRUdJT04ocHRyLCBzaXplLCBtb2RlLCBpc19hbGxvY2F0b3JfaG9tb2dlbmVvdXMsIGlzX2tu
b3duX21lZGl1bSk7IFwKLSAgICAgICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19N
VEVfRkVBVFVSRV9MT0dfT05fVEFHKSkgeyBcCi0gICAgICAgICAgICB1aW50OF90KiBwYXNfbXRl
X2JlZ2luID0gKHVpbnQ4X3QqKShwdHIpOyBcCi0gICAgICAgICAgICBzaXplX3QgcGFzX210ZV9z
aXplID0gKHNpemVfdClzaXplOyBcCi0gICAgICAgICAgICBwcmludGYoIltNVEVdXHRGaXJzdCB0
aW1lIHRhZ2dpbmcgcmVnaW9uOiBhbGxvYy10YWdnaW5nICV6dSBieXRlcyBmcm9tICVwIHRvICVw
XG4iLCBwYXNfbXRlX3NpemUsIHBhc19tdGVfYmVnaW4sIHBhc19tdGVfYmVnaW4gKyBwYXNfbXRl
X3NpemUpOyBcCi0gICAgICAgIH0gXAotICAgIH0gd2hpbGUgKDApCi0KLS8vIFdlIGxlYXZlIHRo
ZSBtYWpvcml0eSBvZiB0aGUgdmlldyB0byBiZSB0YWdnZWQgYXMgaW5kaXZpZHVhbCBzZWdyZWdh
dGVkCi0vLyBhbGxvY2F0aW9ucyBhcmUgc2xhYi1hbGxvY2F0ZWQgZnJvbSB3aXRoaW4gaXQuIEFs
bCB3ZSBuZWVkIHRvIGRvIGhlcmUgaXMKLS8vIHplcm8tdGFnIHRoZSB0cmFpbGluZy1idWZmZXIg
d2hpY2ggdGhlIHNoYXJlZCB2aWV3IHNoYXJlZC1hbGxvY2F0b3IgbGVhdmVzCi0vLyBhdCB0aGUg
ZW5kIG9mIHRoZSBuZXcgcGFydGlhbCB2aWV3LgotI2RlZmluZSBQQVNfTVRFX1RBR19CVU1QX0FM
TE9DQVRJT05fRk9SX1BBUlRJQUxfVklFVyhwYWdlX2NvbmZpZywgcGFnZSwgdmlldywgYnVtcCwg
bW9kZSkgZG8geyBcCi0gICAgICAgIGlmIChtb2RlICE9IHBhc19hbHdheXNfY29tcGFjdF9hbGxv
Y2F0aW9uX21vZGUpIHsgXAotICAgICAgICAgICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnkgPSAo
dWludHB0cl90KXBhc19wYWdlX2Jhc2VfYm91bmRhcnkoJnBhZ2UtPmJhc2UsIHBhZ2VfY29uZmln
LmJhc2UpOyBcCi0gICAgICAgICAgICB1aW50cHRyX3QgcHRyID0gcGFnZV9ib3VuZGFyeSArIChi
dW1wLm5ld19idW1wIC0gMTYpOyBcCi0gICAgICAgICAgICBUQUdfUkVHSU9OX0ZST01fUE9JTlRF
UihwdHIsIDE2LCBQQVNfTVRFX0lTX0tOT1dOX01FRElVTV9QQUdFKCZwYWdlX2NvbmZpZykpOyBc
Ci0gICAgICAgICAgICBpZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01URV9GRUFUVVJF
X0xPR19PTl9UQUcpKSB7IFwKLSAgICAgICAgICAgICAgICB1aW50cHRyX3QgYnVtcF9iYXNlID0g
cGFnZV9ib3VuZGFyeSArIGJ1bXAub2xkX2J1bXA7IFwKLSAgICAgICAgICAgICAgICBwcmludGYo
IltNVEVdXHRUYWdnaW5nIDE2IGJ5dGVzIGZyb20gJXAgZm9yIHRyYWlsaW5nLWJ1ZmZlciBvZiBw
YXJ0aWFsIHZpZXcgJXAsIGJ1bXAgc3RhcnRpbmcgYXQgJXBcbiIsICh2b2lkKilwdHIsIHZpZXcs
ICh2b2lkKilidW1wX2Jhc2UpOyBcCi0gICAgICAgICAgICB9IFwKLSAgICAgICAgfSBcCi0gICAg
fSB3aGlsZSAoMCkKLQotI2RlZmluZSBQQVNfTVRFX1RBR19SRUdJT05fRlJPTV9PVEhFUl9BTExP
Q0FUSU9OKHB0ciwgc2l6ZSwgbW9kZSwgaXNfYWxsb2NhdG9yX2hvbW9nZW5lb3VzLCBpc19rbm93
bl9tZWRpdW0pIGRvIHsgXAotICAgICAgICBpZiAoIVBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBB
U19NVEVfRkVBVFVSRV9SRVRBR19PTl9GUkVFKSkgeyBcCi0gICAgICAgICAgICBQQVNfTVRFX1RB
R19SRUdJT04ocHRyLCBzaXplLCBtb2RlLCBpc19hbGxvY2F0b3JfaG9tb2dlbmVvdXMsIGlzX2tu
b3duX21lZGl1bSk7IFwKLSAgICAgICAgICAgIGJyZWFrOyBcCi0gICAgICAgIH0gXAotICAgICAg
ICB1aW50OF90KiBwYXNfbXRlX2JlZ2luID0gKHVpbnQ4X3QqKShwdHIpOyBcCi0gICAgICAgIHNp
emVfdCBwYXNfbXRlX3NpemUgPSAoc2l6ZV90KXNpemU7IFwKLSAgICAgICAgaWYgKG1vZGUgPT0g
cGFzX25vbl9jb21wYWN0X2FsbG9jYXRpb25fbW9kZSkgeyBcCi0gICAgICAgICAgICAvKiBhc3N1
bWU6IHNpemUgPj0gMTYgJiYgcHRyICUgMTYgPT0gMCAqLyBcCi0gICAgICAgICAgICBpZiAoUEFT
X01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01URV9GRUFUVVJFX0xPR19PTl9UQUcpKSBcCi0gICAg
ICAgICAgICAgICAgcHJpbnRmKCJbTVRFXVx0U2tpcHBpbmcgYWxsb2MtdGFnZ2luZyAlenUgYnl0
ZXMgZnJvbSAlcCB0byAlcFxuIiwgcGFzX210ZV9zaXplLCBwYXNfbXRlX2JlZ2luLCBwYXNfbXRl
X2JlZ2luICsgcGFzX210ZV9zaXplKTsgXAotICAgICAgICAgICAgUEFTX01URV9QVVJJRlkocHRy
KTsgXAotICAgICAgICB9IGVsc2UgeyBcCi0gICAgICAgICAgICBQQVNfTVRFX1RBR19SRUdJT04o
cHRyLCBzaXplLCBtb2RlLCBpc19hbGxvY2F0b3JfaG9tb2dlbmVvdXMsIGlzX2tub3duX21lZGl1
bSk7IFwKLSAgICAgICAgfSBcCi0gICAgfSB3aGlsZSAoMCkKLSNkZWZpbmUgUEFTX01URV9UQUdf
UkVHSU9OX0ZST01fREVBTExPQ0FUSU9OKHBhZ2VfY29uZmlnLCBwdHIsIHNpemUsIGlzX2FsbG9j
YXRvcl9ob21vZ2VuZW91cykgZG8geyBcCi0gICAgICAgIGlmICghUEFTX01URV9GRUFUVVJFX0VO
QUJMRUQoUEFTX01URV9GRUFUVVJFX1JFVEFHX09OX0ZSRUUpKSBcCi0gICAgICAgICAgICBicmVh
azsgXAotICAgICAgICBQQVNfTVRFX1RBR19SRUdJT04ocHRyLCBzaXplLCBwYXNfbm9uX2NvbXBh
Y3RfYWxsb2NhdGlvbl9tb2RlLCBpc19hbGxvY2F0b3JfaG9tb2dlbmVvdXMsIFBBU19NVEVfSVNf
S05PV05fTUVESVVNX1BBR0UoJnBhZ2VfY29uZmlnKSk7IFwKLSAgICB9IHdoaWxlICgwKQotCi0v
LyBXaGVuIHplcm9pbmcgb3V0IG1lbW9yeSB3ZSBuZWVkIHRvIGJlIGNhcmVmdWwgdG8gbm90IGNs
ZWFyIGl0cyB0YWdnZWQgc3RhdHVzLgotLy8gTmVpdGhlciBtZW1zZXQgbm9yIG1hY2hfdm1fYmVo
YXZpb3Jfc2V0IHdpbGwgZG8gc28sIGJ1dCByZS1tYXBwaW5nIHRoZSBwYWdlCi0vLyB3aXRoIG1t
YXAgb3IgbWFjaF92bV9tYXAgd2lsbCBkbyBzbyB1bmxlc3Mgd2UgZm9yY2UgaXQgdG8gdXNlIFBB
U19WTV9NVEUuCi0vLyBUaGlzIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgbWFraW5nICpub24qLVBB
U19NVEUgcGFnZXMgaW50byB0YWdnZWQgbWVtb3J5LCBidXQKLS8vIHRoZSBvbmx5IHNpZGUgZWZm
ZWN0IG9mIHRoYXQgc2hvdWxkIGJlIGEgc21hbGwgaGl0IHRvIHBlcmZvcm1hbmNlIC0tIHdoaWNo
Ci0vLyB3aWxsIGhhdmUgdG8gc3VmZmljZSB1bnRpbCB3ZSBjYW4gc3RhcnQgdXNpbmcgbWFjaF92
bV9iZWhhdmlvcl9zZXQuCi0KLSNpZiBQQVNfT1MoREFSV0lOKQotCi0vLyBXZSBjYW4ndCBjaGVj
ayB3aGV0aGVyIFBBU19BU1NFUlQgaXMgZGVmaW5lZCBzaW5jZSB0aGlzIGhlYWRlciBpcyBpbmNs
dWRlZCBlYXJseQotLy8gb24gd2l0aGluIHBhc191dGlscy5oLCB3aGVyZSBQQVNfQVNTRVJUIGlz
IGRlZmluZWQuIFNvIGlmIFJFTEVBU0VfQkFTU0VSVAotLy8gaXNuJ3QgYXZhaWxhYmxlIHdlIGp1
c3QgdXNlIFBBU19BU1NFUlQgYW5kIGxldCB0aGUgY29tcGlsZXIgZXJyb3IgaWYgaXQncyBub3QK
LS8vIGFyb3VuZC4KLSNpZiBkZWZpbmVkKFJFTEVBU0VfQkFTU0VSVCkKLSNkZWZpbmUgUEFTX01U
RV9BU1NFUlQoeCkgUkVMRUFTRV9CQVNTRVJUKHgpCi0jZWxzZQotI2RlZmluZSBQQVNfTVRFX0FT
U0VSVCh4KSBQQVNfQVNTRVJUKHgpCi0jZW5kaWYKLQotI2RlZmluZSBQQVNfTVRFX1pFUk9fRklM
TF9QQUdFKHB0ciwgc2l6ZSwgZmxhZ3MsIHRhZykgZG8geyBcCi0gICAgICAgICh2b2lkKWZsYWdz
OyBcCi0gICAgICAgIGlmIChQQVNfVVNFX01URSkgeyBcCi0gICAgICAgICAgICBjb25zdCB2bV9p
bmhlcml0X3QgY2hpbGRQcm9jZXNzSW5oZXJpdGFuY2UgPSBWTV9JTkhFUklUX0RFRkFVTFQ7IFwK
LSAgICAgICAgICAgIGNvbnN0IGJvb2wgY29weSA9IGZhbHNlOyBcCi0gICAgICAgICAgICAvKiBG
SVhNRTogdXNlIG1hY2hfdm1fYmVoYXZpb3Jfc2V0IGluc3RlYWQgcmRhcjovLzE2MDgxMzUzMiAq
LyBcCi0gICAgICAgICAgICBrZXJuX3JldHVybl90IHZtX21hcF9yZXN1bHQgPSBtYWNoX3ZtX21h
cChtYWNoX3Rhc2tfc2VsZigpLCBcCi0gICAgICAgICAgICAgICAgKG1hY2hfdm1fYWRkcmVzc190
KikmcHRyLCBcCi0gICAgICAgICAgICAgICAgKHNpemUpLCBcCi0gICAgICAgICAgICAgICAgMCwg
XAotICAgICAgICAgICAgICAgIFZNX0ZMQUdTX0ZJWEVEIHwgVk1fRkxBR1NfT1ZFUldSSVRFIHwg
UEFTX1ZNX01URSB8ICh0YWcpLCBNRU1PUllfT0JKRUNUX05VTEwsIFwKLSAgICAgICAgICAgICAg
ICAwLCBcCi0gICAgICAgICAgICAgICAgY29weSwgXAotICAgICAgICAgICAgICAgIFZNX1BST1Rf
REVGQVVMVCwgXAotICAgICAgICAgICAgICAgIFZNX1BST1RfQUxMLCBcCi0gICAgICAgICAgICAg
ICAgY2hpbGRQcm9jZXNzSW5oZXJpdGFuY2UpOyBcCi0gICAgICAgICAgICBpZiAodm1fbWFwX3Jl
c3VsdCAhPSBLRVJOX1NVQ0NFU1MpIFwKLSAgICAgICAgICAgICAgICBlcnJubyA9IDA7IFwKLSAg
ICAgICAgICAgIFBBU19NVEVfQVNTRVJUKHZtX21hcF9yZXN1bHQgPT0gS0VSTl9TVUNDRVNTKTsg
XAotICAgICAgICAgICAgLyogRWFybHkgZXhpdCBmcm9tIGNhbGxlciBmdW5jdGlvbiBzaW5jZSB3
ZSd2ZSBkb25lIHRoZSB6ZXJvLWZpbGwgb3Vyc2VsdmVzICovIFwKLSAgICAgICAgICAgIHJldHVy
bjsgXAotICAgICAgICB9IFwKLSAgICB9IHdoaWxlIChmYWxzZSkgXAotCi0jZWxzZQotI2RlZmlu
ZSBQQVNfTVRFX1pFUk9fRklMTF9QQUdFKHB0ciwgc2l6ZSwgZmxhZ3MsIHRhZykgZG8geyBcCi0g
ICAgICAgICAgKHZvaWQpcHRyOyBcCi0gICAgICAgICAgKHZvaWQpc2l6ZTsgXAotICAgICAgICAg
ICh2b2lkKWZsYWdzOyBcCi0gICAgICAgICAgKHZvaWQpdGFnOyBcCi0gICAgICB9IHdoaWxlIChm
YWxzZSkKLSNlbmRpZiAvLyBQQVNfT1MoREFSV0lOKQotCi0vLyBUaGlzIGlzIG5vIGxvbmdlciBu
ZWVkZWQgYXMgdGhlIHBvaW50ZXIgaXMgYWxyZWFkeSB0YWdnZWQgaW4gcHJlcGFyYXRpb24gZm9y
Ci0vLyBiZWluZyByZXR1cm5lZCB0byB0aGUgY2FsbGVyIG9mIHRoZSBhbGxvY2F0aW9uIGZ1bmN0
aW9uLgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9aRVJPX0FMTE9DQVRJT05fUkVTVUxUKGEpIGRv
IHsgKHZvaWQpYTsgfSB3aGlsZSAoZmFsc2UpCi0KLS8vIFVzZWQgdG8gemVybyBhbiBleGlzdGlu
ZyBwYWdlIGFsbG9jYXRpb24gd2l0aG91dCBjbGVhcmluZyB0aGUgdGFnZ2VkLW1lbW9yeQotLy8g
Yml0IGluIGl0cyBwYWdlLXRhYmxlIGVudHJpZXMuCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX1pF
Uk9fRklMTF9QQUdFKHB0ciwgc2l6ZSwgZmxhZ3MsIHRhZykgUEFTX01URV9aRVJPX0ZJTExfUEFH
RShwdHIsIHNpemUsIGZsYWdzLCB0YWcpCi0KLS8vIFVzZWQgdG8gYWxsb3cgdXMgdG8gdG9nZ2xl
IFRDTyBiZWZvcmUgc2V0dGluZyBsYXJnZSBjaHVua3Mgb2YKLS8vIG1lbW9yeSB0byAwLgotI2Rl
ZmluZSBQQVNfTVRFX0hBTkRMRV9aRVJPX01FTU9SWShwdHIsIHNpemUpIGRvIHsgXAotICAgICAg
ICBpZiAoUEFTX1VTRV9NVEUpIHsgXAotICAgICAgICAgICAgUEFTX01URV9DSEVDS19UQUdfQU5E
X1NFVF9UQ08ocHRyKTsgXAotICAgICAgICAgICAgbWVtc2V0KCh2b2lkKilwdHIsIDAsIHNpemUp
OyBcCi0gICAgICAgICAgICBQQVNfTVRFX0NMRUFSX1RDTzsgXAotICAgICAgICAgICAgLyogRWFy
bHkgZXhpdCBmcm9tIGNhbGxlciBmdW5jdGlvbiBzaW5jZSBcCi0gICAgICAgICAgICAgKiB3ZSd2
ZSBkb25lIHRoZSB6ZXJvLWZpbGwgb3Vyc2VsdmVzICovIFwKLSAgICAgICAgICAgIHJldHVybjsg
XAotICAgICAgICB9IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQotLy8gVXNlZCB0byBjbGVhciB0
aGUgdGFnIGJlZm9yZSB3ZSBsb29rIHVwIHRoZSBhZGRyZXNzIGluIHRoZSBtZWdhcGFnZSB0YWJs
ZSB3aGVuIHJlYWxsb2NhdGluZy4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfUkVBTExPQ0FURShh
KSBQQVNfTVRFX0NMRUFSKGEpCi0KLS8vIFVzZWQgdG8gcmVzdG9yZSB0aGUgY29ycmVjdCB0YWcg
d2hlbiByZWFsbG9jYXRpbmcgc29tZXRoaW5nIHRvIGEgbmV3IGFkZHJlc3MgYmVmb3JlIGNvcHlp
bmcgaXQuCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX1RSWV9SRUFMTE9DQVRFX0FORF9DT1BZKHB0
ciwgb2xkX3B0ciwgc2l6ZSkgZG8geyBcCi0gICAgICAgIGlmIChQQVNfVVNFX01URSkgeyBcCi0g
ICAgICAgICAgICBQQVNfTVRFX0NIRUNLX1RBR19BTkRfU0VUX1RDTyhwdHIpOyBcCi0gICAgICAg
ICAgICBtZW1jcHkoKHZvaWQqKXB0ciwgb2xkX3B0ciwgc2l6ZSk7IFwKLSAgICAgICAgICAgIFBB
U19NVEVfQ0xFQVJfVENPOyBcCi0gICAgICAgICAgICBpZiAodmVyYm9zZSkgeyBcCi0gICAgICAg
ICAgICAgICAgcGFzX2xvZygiXHQuLi5kb25lIGNvcHlpbmcgc2l6ZSAlenUgZnJvbSAlcCB0byAl
cFxuIiwgc2l6ZSwgb2xkX3B0ciwgKHZvaWQqKXB0cik7IFwKLSAgICAgICAgICAgIH0gXAotICAg
ICAgICAgICAgLyogRWFybHkgZXhpdCBmcm9tIGNhbGxlciBmdW5jdGlvbiBzaW5jZSBcCi0gICAg
ICAgICAgICAgKiB3ZSd2ZSBkb25lIHRoZSBjb3B5IG91cnNlbHZlcyAqLyBcCi0gICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OyBcCi0gICAgICAgIH0gXAotICAgIH0gd2hpbGUgKGZhbHNlKQotCi0v
LyBVc2VkIHRvIGNsZWFyIHRoZSB0YWcgZnJvbSBhIHBvaW50ZXIgaW50byBhIHBhZ2UsIHNpbmNl
IHRoZSBwYWdlIGhlYWRlciBzaG91bGQKLS8vIGJlIHplcm8tdGFnZ2VkLgotI2RlZmluZSBQQVNf
TVRFX0hBTkRMRV9QQUdFX0JBU0VfRlJPTV9CT1VOREFSWShhKSBQQVNfTVRFX0NMRUFSKGEpCi0K
LS8vIFVzZWQgdG8gY2xlYXIgcG9pbnRlciB0YWcgYml0cyBiZWZvcmUgbG9va2luZyBpdCB1cCBp
biB0aGUgcGFnZSBoZWFkZXIgdGFibGUuCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX1BBR0VfSEVB
REVSX1RBQkxFX0dFVChhKSBQQVNfTVRFX0NMRUFSKGEpCi0KLS8vIFVzZWQgdG8gY2xlYXIgcG9p
bnRlciB0YWcgYml0cyBiZWZvcmUgYWRkaW5nIGl0IHRvIHRoZSBwYWdlIGhlYWRlciB0YWJsZS4K
LSNkZWZpbmUgUEFTX01URV9IQU5ETEVfUEFHRV9IRUFERVJfVEFCTEVfQUREKGEpIFBBU19NVEVf
Q0xFQVIoYSkKLQotLy8gVXNlZCB0byBjbGVhciBrZXkgdGFnIGJpdHMgYmVmb3JlIGxvb2tpbmcg
dXAgYSBwb2ludGVyIGluIHRoZSBsYXJnZSBtYXAuCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX0xB
UkdFX01BUF9GSU5EKGEpIFBBU19NVEVfQ0xFQVIoYSkKLQotLy8gVXNlZCB0byBjbGVhciBrZXkg
dGFnIGJpdHMgYmVmb3JlIGluc2VydGluZyBhIHBvaW50ZXIgcmFuZ2UgaW50byB0aGUgbGFyZ2Ug
bWFwLgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9MQVJHRV9NQVBfQUREKGEsIGIpIFBBU19NVEVf
Q0xFQVIoYSkKLQotLy8gVXNlZCB0byBjbGVhciBrZXkgdGFnIGJpdHMgYmVmb3JlIHRha2luZyBh
IHBvaW50ZXIgZnJvbSB0aGUgbGFyZ2UgbWFwLgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9MQVJH
RV9NQVBfVEFLRShhKSBQQVNfTVRFX0NMRUFSKGEpCi0KLS8vIFVzZWQgdG8gcmVzdG9yZSB0aGUg
Y29ycmVjdCB0YWcgb2YgYSBsYXJnZSBtYXAgZW50cnkga2V5IGFmdGVyIGxvb2tpbmcgaXQgdXAu
Ci0vLyBUYWtlcyBhIHBhc19oZWFwX2NvbmZpZyoKLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfTEFS
R0VfTUFQX0ZPVU5EX0VOVFJZKGNvbmZpZywgYSwgYikgUEFTX01URV9QVVJJRlkoYSkKLQotLy8g
VXNlZCB0byByZXN0b3JlIHRoZSBjb3JyZWN0IHRhZyBvZiBhIGxhcmdlIG1hcCBlbnRyeSBrZXkg
YWZ0ZXIgdGFraW5nIGl0IGZyb20gdGhlIG1hcC4KLS8vIFRha2VzIGEgcGFzX2hlYXBfY29uZmln
KgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9MQVJHRV9NQVBfVE9PS19FTlRSWShjb25maWcsIGEs
IGIpIFBBU19NVEVfUFVSSUZZKGEpCi0KLS8vIFVzZWQgdG8gY2xlYXIgcG9pbnRlciB0YWcgYml0
cyBiZWZvcmUgdGFraW5nIGEgcG9pbnRlciBmcm9tIHRoZSBsYXJnZSBtYXAuCi0vLyBUYWtlcyBh
IHBhc19oZWFwX2NvbmZpZyoKLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfUEdNX0FMTE9DQVRFKGNv
bmZpZywgYSkgUEFTX01URV9DTEVBUihhKQotCi0vLyBVc2VkIHRvIGNsZWFyIHBvaW50ZXIgdGFn
IGJpdHMgYmVmb3JlIHRha2luZyBhIHBvaW50ZXIgZnJvbSB0aGUgbGFyZ2UgbWFwLgotI2RlZmlu
ZSBQQVNfTVRFX0hBTkRMRV9QR01fREVBTExPQ0FURShhKSBQQVNfTVRFX0NMRUFSKGEpCi0KLS8v
IFVzZWQgdG8gY2xlYXIgcG9pbnRlciB0YWcgYml0cyBiZWZvcmUgcHV0dGluZyBhIHBvaW50ZXIg
dG8gdGhlIG1lZ2FwYWdlIHRhYmxlLgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9NRUdBUEFHRV9T
RVQoYSkgUEFTX01URV9DTEVBUihhKQotCi0vLyBVc2VkIHRvIGNsZWFyIHBvaW50ZXIgdGFnIGJp
dHMgYmVmb3JlIGdldHRpbmcgYSBwb2ludGVyIGZyb20gdGhlIG1lZ2FwYWdlIHRhYmxlLgotI2Rl
ZmluZSBQQVNfTVRFX0hBTkRMRV9NRUdBUEFHRV9HRVQoYSkgUEFTX01URV9DTEVBUihhKQotCi0v
LyBVc2VkIHRvIGNsZWFyIHBvaW50ZXIgdGFnIGJpdHMgZnJlZWluZyBhIHJhbmdlIGluIHRoZSBs
YXJnZSBzaGFyaW5nIHBvb2wuCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX0xBUkdFX1NIQVJJTkdf
UE9PTF9CT09UX0ZSRUUoYSwgYikgUEFTX01URV9DTEVBUl9QQUlSKGEsIGIpCi0KLS8vIFVzZWQg
dG8gY2xlYXIgcG9pbnRlciB0YWcgYml0cyBmcmVlaW5nIGEgcmFuZ2UgaW4gdGhlIGxhcmdlIHNo
YXJpbmcgcG9vbC4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfTEFSR0VfU0hBUklOR19QT09MX0ZS
RUUoYSwgYikgUEFTX01URV9DTEVBUl9QQUlSKGEsIGIpCi0KLS8vIFVzZWQgdG8gY2xlYXIgcG9p
bnRlciB0YWcgYml0cyBhbGxvY2F0aW5nIGEgcmFuZ2UgaW4gdGhlIGxhcmdlIHNoYXJpbmcgcG9v
bC4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfTEFSR0VfU0hBUklOR19QT09MX0FMTE9DQVRFX0FO
RF9DT01NSVQoYSwgYikgUEFTX01URV9DTEVBUl9QQUlSKGEsIGIpCi0KLS8vIFVzZWQgdG8gY2xl
YXIgcG9pbnRlciB0YWcgYml0cyB3aGVuIHN1bW1hcml6aW5nIGEgcmFuZ2UgaW4gdGhlIGxhcmdl
IHNoYXJpbmcgcG9vbC4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfTEFSR0VfU0hBUklOR19QT09M
X0NPTVBVVEVfU1VNTUFSWShhLCBiKSBQQVNfTVRFX0NMRUFSX1BBSVIoYSwgYikKLQotLy8gVXNl
IHRoZXNlIHRvIGNvbmZpZ3VyZSB0aGUgdGFnZ2luZyBwb2xpY3kgZm9yIGRpZmZlcmVudCBzaXpl
cy4gQ3VycmVudGx5IHdlIG9ubHkKLS8vIHRhZyBzbWFsbCBhbmQgbWVkaXVtIGFsbG9jYXRpb25z
LCBpbiBib3RoIHNlZ3JlZ2F0ZWQgYW5kIGJpdGZpdCBwYWdlcy4gTWVkaXVtCi0vLyBhbGxvY2F0
aW9ucyBzaG91bGQgYmUgYWRkaXRpb25hbGx5IGd1YXJkZWQgYXQgcnVudGltZSBieSBQQVNfTVRF
X01FRElVTV9UQUdHSU5HX0VOQUJMRUQuCi0jZGVmaW5lIFBBU19NVEVfQUxMT1dfVEFHX1NNQUxM
IDEKLSNkZWZpbmUgUEFTX01URV9BTExPV19UQUdfTUVESVVNIDEKLQotI2lmIFBBU19NVEVfQUxM
T1dfVEFHX1NNQUxMICYmIFBBU19NVEVfQUxMT1dfVEFHX01FRElVTQotI2RlZmluZSBQQVNfTVRF
X1NIT1VMRF9UQUdfQUxMT0NBVE9SKGFsbG9jYXRvcikgKGFsbG9jYXRvciktPmlzX210ZV90YWdn
ZWQKLSNkZWZpbmUgUEFTX01URV9ERUNJREVfUEFHRV9DT05GSUdfVEFHR0VETkVTUyhzaXplX2Nh
dGVnb3J5KSBcCi0gICAgKHNpemVfY2F0ZWdvcnkgPT0gcGFzX3BhZ2VfY29uZmlnX3NpemVfY2F0
ZWdvcnlfc21hbGwgfHwgc2l6ZV9jYXRlZ29yeSA9PSBwYXNfcGFnZV9jb25maWdfc2l6ZV9jYXRl
Z29yeV9tZWRpdW0pCi0vLyBUT0RPOiBvbmNlIHdlIGRyb3Agc3VwcG9ydCBmb3IgcnVudGltZS1k
aWZmZXJlbnRpYXRpbmcgbWVkaXVtIHRhZ2dpbmcsIHdlIGNhbgotLy8gZHJvcCB0aGUgc2Vjb25k
IGhhbGYgb2YgdGhpcyBzdGF0ZW1lbnQKLSNkZWZpbmUgUEFTX01URV9TSE9VTERfVEFHX1BBR0Uo
cGFnZV9jb25maWcpICgocGFnZV9jb25maWcpLT5iYXNlLmFsbG93X210ZV90YWdnaW5nICYmIFwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQQVNfTVRFX01FRElV
TV9UQUdHSU5HX0VOQUJMRUQgfHwgKHBhZ2VfY29uZmlnKS0+YmFzZS5wYWdlX2NvbmZpZ19zaXpl
X2NhdGVnb3J5ICE9IHBhc19wYWdlX2NvbmZpZ19zaXplX2NhdGVnb3J5X21lZGl1bSkpCi0jZGVm
aW5lIFBBU19NVEVfSVNfS05PV05fTUVESVVNX0JVTVAoYWxsb2NhdG9yKSAhKGFsbG9jYXRvcikt
PmlzX3NtYWxsCi0jZGVmaW5lIFBBU19NVEVfSVNfS05PV05fTUVESVVNX1BBR0UocGFnZV9jb25m
aWcpIChwYWdlX2NvbmZpZyktPmJhc2UucGFnZV9jb25maWdfc2l6ZV9jYXRlZ29yeSA9PSBwYXNf
cGFnZV9jb25maWdfc2l6ZV9jYXRlZ29yeV9tZWRpdW0KLSNkZWZpbmUgUEFTX01URV9TSE9VTERf
VEFHX1NFR1JFR0FURURfSEVBUChzZWdyZWdhdGVkX2hlYXApIChzZWdyZWdhdGVkX2hlYXAtPnBh
cmVudF9oZWFwICYmIHNlZ3JlZ2F0ZWRfaGVhcC0+cGFyZW50X2hlYXAtPmlzX25vbl9jb21wYWN0
X2hlYXApCi0jZWxpZiBQQVNfTVRFX0FMTE9XX1RBR19TTUFMTAotI2RlZmluZSBQQVNfTVRFX0RF
Q0lERV9QQUdFX0NPTkZJR19UQUdHRURORVNTKHNpemVfY2F0ZWdvcnkpIChzaXplX2NhdGVnb3J5
ID09IHBhc19wYWdlX2NvbmZpZ19zaXplX2NhdGVnb3J5X3NtYWxsKQotI2RlZmluZSBQQVNfTVRF
X1NIT1VMRF9UQUdfQUxMT0NBVE9SKGFsbG9jYXRvcikgKGFsbG9jYXRvciktPmlzX210ZV90YWdn
ZWQKLSNkZWZpbmUgUEFTX01URV9TSE9VTERfVEFHX1BBR0UocGFnZV9jb25maWcpICgocGFnZV9j
b25maWcpLT5iYXNlLmFsbG93X210ZV90YWdnaW5nKQotI2RlZmluZSBQQVNfTVRFX0lTX0tOT1dO
X01FRElVTV9CVU1QKGFsbG9jYXRvcikgMAotI2RlZmluZSBQQVNfTVRFX0lTX0tOT1dOX01FRElV
TV9QQUdFKHBhZ2VfY29uZmlnKSAwCi0jZWxzZQotI2RlZmluZSBQQVNfTVRFX0RFQ0lERV9QQUdF
X0NPTkZJR19UQUdHRURORVNTKHNpemVfY2F0ZWdvcnkpIChmYWxzZSkKLQotI2RlZmluZSBQQVNf
TVRFX1NIT1VMRF9UQUdfQUxMT0NBVE9SKGFsbG9jYXRvcikgMAotI2RlZmluZSBQQVNfTVRFX1NI
T1VMRF9UQUdfUEFHRShwYWdlX2NvbmZpZykgMAotI2RlZmluZSBQQVNfTVRFX0lTX0tOT1dOX01F
RElVTV9CVU1QKGFsbG9jYXRvcikgMAotI2RlZmluZSBQQVNfTVRFX0lTX0tOT1dOX01FRElVTV9Q
QUdFKHBhZ2VfY29uZmlnKSAwCi0jZW5kaWYKLQotI2RlZmluZSBQQVNfU0hPVUxEX01URV9UQUdf
QkFTSUNfSEVBUF9QQUdFKHNpemVfY2F0ZWdvcnkpIFBBU19NVEVfREVDSURFX1BBR0VfQ09ORklH
X1RBR0dFRE5FU1Moc2l6ZV9jYXRlZ29yeSkKLQotc3RydWN0IF9fcGFzX2hlYXA7Ci0KLSNpZmRl
ZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLWV4dGVybiBzdHJ1Y3QgX19wYXNf
aGVhcCBibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcDsKLSNpZmRlZiBfX2NwbHVzcGx1cwot
fQotI2VuZGlmCi0KLS8vIEl0J3MgcG9zc2libGUgZm9yIHVzZXJzIHRvIGFsbG9jYXRlIG1lbW9y
eSBmcm9tIGEgcGFzX2hlYXAgcHJpb3IgdG8gZXZlcgotLy8gaW5kdWNpbmcgbGlicGFzIHRvIGdv
IGRvd24gdGhlIHBhc19wYWdlX21hbGxvYyBwYXRoIC0tIGUuZy4gaWYgdGhleSBvbmx5IHVzZQot
Ly8gdGhlIHN5c3RlbSBhbGxvY2F0b3IsIG9yIGhlYXBzIHdoaWNoIHVzZSBtZW1vcnkgYWxsb2Nh
dGVkIGJ5IHRoZSB1c2VyLgotLy8gSG93ZXZlciwgYWxsIHN1Y2ggYWxsb2NhdGlvbnMgaGF2ZSB0
byBnbyBkb3duIHRoZSBwYXMtaGVhcCBpbml0aWFsaXphdGlvbgotLy8gcGF0aCAtLSBzbyB3ZSBj
YW4gaW50ZXJjZXB0IGhlcmUgdG8gY2F0Y2ggdGhvc2UgY2FzZXMuCi0vLyBUaGlzIGlzIG5vdCBz
dWZmaWNpZW50IG9uIGl0cyBvd24sIGhvd2V2ZXIsIGFzIGl0J3MgdGhlb3JldGljYWxseSBwb3Nz
aWJsZQotLy8gZm9yIGxpYnBhcyB0byBhbGxvY2F0ZSBQQVNfTVRFIG1lbW9yeSBvbiBpdHMgb3du
LCBlLmcuIHZpYSB0aGUgdXRpbGl0eSBoZWFwLgotLy8gTi5iLjogYGhlYXBgIGlzIGVtcHR5IChu
dWxscHRyKSBhdCB0aGUgdGltZSB3aGVuIHRoaXMgbWFjcm8gaXMgdXNlZCwgc28gd2UKLS8vIGNh
bm5vdCBhY3R1YWxseSBtYWtlIHVzZSBvZiBpdC4gV2UgdGFrZSBpdCBhcyBhIHBhcmFtZXRlciBh
cyBhIGJhbmRhaWQgb3ZlcgotLy8gYSBzcHVyaW91cyB1bnVzZWQtdmFyaWFibGUgd2FybmluZyB0
aGF0IGNsYW5nIHNvbWV0aW1lcyB0aHJvd3Mgb3RoZXJ3aXNlOgotLy8gc2VlIHJkYXI6Ly8xNTcx
NTgwNDUKLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfRU5TVVJFX0hFQVBfU0xPVyhoZWFwLCBoZWFw
X3JlZiwgaGVhcF9yZWZfa2luZCwgaGVhcF9jb25maWcsIHJ1bnRpbWVfY29uZmlnKSBkbyB7IFwK
LSAgICAgICAgKHZvaWQpaGVhcDsgXAotICAgICAgICAodm9pZCloZWFwX3JlZjsgXAotICAgICAg
ICAodm9pZCloZWFwX3JlZl9raW5kOyBcCi0gICAgICAgICh2b2lkKWhlYXBfY29uZmlnOyBcCi0g
ICAgICAgICh2b2lkKXJ1bnRpbWVfY29uZmlnOyBcCi0gICAgICAgIHBhc19tdGVfZW5zdXJlX2lu
aXRpYWxpemVkKCk7IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQotLy8gVXNlZCB0byBzZXQgdXAg
d2hldGhlciBhIGxvY2FsIGFsbG9jYXRvciBzaG91bGQgdGFnIGl0cyBhbGxvY2F0aW9ucy4KLSNk
ZWZpbmUgUEFTX01URV9IQU5ETEVfU0VUX1VQX0xPQ0FMX0FMTE9DQVRPUihwYWdlX2NvbmZpZywg
c2VncmVnYXRlZF9oZWFwLCBhbGxvY2F0b3IpIGRvIHsgXAotICAgICAgICBpZiAoUEFTX1VTRV9N
VEUgJiYgUEFTX01URV9TSE9VTERfVEFHX1NFR1JFR0FURURfSEVBUChzZWdyZWdhdGVkX2hlYXAp
KSB7IFwKLSAgICAgICAgICAgIGFsbG9jYXRvci0+aXNfbXRlX3RhZ2dlZCA9IFBBU19NVEVfU0hP
VUxEX1RBR19QQUdFKCZwYWdlX2NvbmZpZyk7IFwKLSAgICAgICAgICAgIGFsbG9jYXRvci0+aXNf
c21hbGwgPSAocGFnZV9jb25maWcpLmJhc2UucGFnZV9jb25maWdfc2l6ZV9jYXRlZ29yeSA9PSBw
YXNfcGFnZV9jb25maWdfc2l6ZV9jYXRlZ29yeV9zbWFsbDsgXAotICAgICAgICB9IGVsc2UgXAot
ICAgICAgICAgICAgYWxsb2NhdG9yLT5pc19tdGVfdGFnZ2VkID0gZmFsc2U7IFwKLSAgICB9IHdo
aWxlIChmYWxzZSkKLQotLy8gVXNlZCB0byB0YWcgYnVtcCBhbGxvY2F0aW9ucyBmcm9tIGEgbG9j
YWwgYWxsb2NhdG9yLgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9MT0NBTF9CVU1QX0FMTE9DQVRJ
T04oaGVhcF9jb25maWcsIGFsbG9jYXRvciwgcHRyLCBzaXplLCBtb2RlKSBkbyB7IFwKLSAgICAg
ICAgaWYgKFBBU19NVEVfU0hPVUxEX1RBR19BTExPQ0FUT1IoYWxsb2NhdG9yKSkgXAotICAgICAg
ICAgICAgUEFTX01URV9UQUdfUkVHSU9OX0ZST01fSU5JVElBTF9BTExPQ0FUSU9OKHB0ciwgc2l6
ZSwgbW9kZSwgcGFzX210ZV9ob21vZ2VuZW91c19hbGxvY2F0b3IsIFBBU19NVEVfSVNfS05PV05f
TUVESVVNX0JVTVAoYWxsb2NhdG9yKSk7IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQotLy8gVXNl
ZCB0byB0YWcgZnJlZS1iaXQgc2Nhbm5pbmcgYWxsb2NhdGlvbnMgZnJvbSBhIGxvY2FsIGFsbG9j
YXRvci4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfTE9DQUxfRlJFRUJJVFNfQUxMT0NBVElPTihw
YWdlX2NvbmZpZywgcHRyLCBhbGxvY2F0b3IsIG1vZGUpIGRvIHsgXAotICAgICAgICBpZiAoUEFT
X01URV9TSE9VTERfVEFHX0FMTE9DQVRPUihhbGxvY2F0b3IpKSBcCi0gICAgICAgICAgICBQQVNf
TVRFX1RBR19SRUdJT05fRlJPTV9PVEhFUl9BTExPQ0FUSU9OKHB0ciwgYWxsb2NhdG9yLT5vYmpl
Y3Rfc2l6ZSwgbW9kZSwgcGFzX210ZV9ob21vZ2VuZW91c19hbGxvY2F0b3IsIFBBU19NVEVfSVNf
S05PV05fTUVESVVNX1BBR0UocGFnZV9jb25maWcpKTsgXAotICAgIH0gd2hpbGUgKGZhbHNlKQot
Ci0vLyBVc2VkIHRvIHRhZyBiaXRmaXQgYWxsb2NhdGlvbnMuCi0jZGVmaW5lIFBBU19NVEVfSEFO
RExFX0JJVEZJVF9BTExPQ0FUSU9OKHBhZ2VfY29uZmlnLCBwdHIsIHNpemUsIG1vZGUpIGRvIHsg
XAotICAgICAgICBpZiAoUEFTX1VTRV9NVEUgJiYgUEFTX01URV9TSE9VTERfVEFHX1BBR0UocGFn
ZV9jb25maWcpKSBcCi0gICAgICAgICAgICBQQVNfTVRFX1RBR19SRUdJT05fRlJPTV9PVEhFUl9B
TExPQ0FUSU9OKHB0ciwgc2l6ZSwgbW9kZSwgcGFzX210ZV9ub25ob21vZ2VuZW91c19hbGxvY2F0
b3IsIFBBU19NVEVfSVNfS05PV05fTUVESVVNX1BBR0UocGFnZV9jb25maWcpKTsgXAotICAgIH0g
d2hpbGUgKGZhbHNlKQotCi0vLyBMb2dpYyBmb3IgdGFnZ2luZyBzeXN0ZW0gaGVhcCAoYWthIHN5
c3RlbSBtYWxsb2MpIGFsbG9jYXRpb25zLiBUaGVzZSBhcmUgdXNlZAotLy8gaW4gcHJvZHVjdGlv
biBpbiBzb21lIHNlcnZpY2VzL2RhZW1vbnMgdG8gYXZvaWQgdXNpbmcgdXAgbWVtb3J5IGZvciBi
b3RoCi0vLyBsaWJwYXMgYW5kIHN5c3RlbSBtYWxsb2MgbWV0YWRhdGEsIGJ1dCBzaW5jZSB0aGUg
c3lzdGVtIG1hbGxvYyBhbHNvIHN1cHBvcnRzCi0vLyBQQVNfTVRFIGFuZCBzb21lIG9mIHRoZXNl
IHNlcnZpY2VzIGhhdmUgUEFTX01URSBlbmFibGVkLCB3ZSBuZWVkIHRvIGVuc3VyZQotLy8gYWxs
b2NhdGlvbnMgd2UgZXhwZWN0IHRvIGJlIHplcm8tdGFnZ2VkIHVuZGVyIFBBU19NVEUgYXJlIHpl
cm8tdGFnZ2VkIGluIHRoaXMKLS8vIG1vZGUgdG9vLgotLy8KLS8vIEF0IHRoZSB0aW1lIG9mIHdy
aXRpbmcsIG1hbGxvY196b25lX21hbGxvY193aXRoX29wdGlvbnNfbnAgd2l0aAotLy8gTUFMTE9D
X05QX09QVElPTl9DQU5PTklDQUxfVEFHIGlzIHRoZSBwcmVmZXJyZWQgbWVhbnMgb2YgZG9pbmcg
dGhpcy4gU2luY2UKLS8vIHdlIGRvbid0IGhhdmUgYW4gZXF1aXZhbGVudCBmb3IgcmVhbGxvYyB5
ZXQsIHdlIGRvIG91ciBvd24gbWFsbG9jICsgY29weSArCi0vLyBmcmVlIHNlcXVlbmNlIGluc3Rl
YWQuCi0KLS8vIEFsbG93ZWQgYXJndW1lbnQgdmFsdWVzIChhcyBkaWN0YXRlZCBieSBtYWxsb2Nf
em9uZV9tYWxsb2Nfd2l0aF9vcHRpb25zX25wKToKLS8vICAtIGFsaWdubWVudDogMCBmb3IgdW5h
bGlnbmVkLCBvciBhIHBvd2VyIG9mIDIgPj0gc2l6ZW9mKHZvaWQqKS4KLS8vICAtIHNpemU6IGFu
eSBpZiBhbGlnbm1lbnQgPT0gMCwgYSBtdWx0aXBsZSBvZiB0aGUgYWxpZ25tZW50IG90aGVyd2lz
ZS4KLQotaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKSB2b2lkKiBwYXNfbXRl
X3N5c3RlbV9oZWFwX21hbGxvY196ZXJvX3RhZ2dlZChtYWxsb2Nfem9uZV90KiB6b25lLCBzaXpl
X3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSkKLXsKLVBBU19JR05PUkVfV0FSTklOR1NfQkVHSU4o
ImRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIikKLSAgICByZXR1cm4gbWFsbG9jX3pvbmVfbWFsbG9j
X3dpdGhfb3B0aW9uc19ucCh6b25lLCBhbGlnbm1lbnQsIHNpemUsIE1BTExPQ19OUF9PUFRJT05f
Q0FOT05JQ0FMX1RBRyk7Ci1QQVNfSUdOT1JFX1dBUk5JTkdTX0VORAotfQotCi1pbmxpbmUgX19h
dHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpIHZvaWQqIHBhc19tdGVfc3lzdGVtX2hlYXBfemVy
b2VkX21hbGxvY196ZXJvX3RhZ2dlZChtYWxsb2Nfem9uZV90KiB6b25lLCBzaXplX3QgYWxpZ25t
ZW50LCBzaXplX3Qgc2l6ZSkKLXsKLVBBU19JR05PUkVfV0FSTklOR1NfQkVHSU4oImRlcHJlY2F0
ZWQtZGVjbGFyYXRpb25zIikKLSAgICByZXR1cm4gbWFsbG9jX3pvbmVfbWFsbG9jX3dpdGhfb3B0
aW9uc19ucCh6b25lLCBhbGlnbm1lbnQsIHNpemUsIChtYWxsb2Nfb3B0aW9uc19ucF90KShNQUxM
T0NfTlBfT1BUSU9OX0NBTk9OSUNBTF9UQUcgfCBNQUxMT0NfTlBfT1BUSU9OX0NMRUFSKSk7Ci1Q
QVNfSUdOT1JFX1dBUk5JTkdTX0VORAotfQotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAi
QyIgewotI2VuZGlmCi12b2lkKiBwYXNfbXRlX3N5c3RlbV9oZWFwX3JlYWxsb2NfemVyb190YWdn
ZWQobWFsbG9jX3pvbmVfdCogem9uZSwgdm9pZCogcHRyLCBzaXplX3Qgc2l6ZSk7Ci0jaWZkZWYg
X19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX1NZU1RFTV9I
RUFQX0FMTE9DQVRJT04oc3lzdGVtSGVhcCwgc2l6ZSwgYWxpZ25tZW50LCBtb2RlKSBkbyB7IFwK
LSAgICAgICAgaWYgKChtb2RlKSAhPSBwYXNfbm9uX2NvbXBhY3RfYWxsb2NhdGlvbl9tb2RlKSBc
Ci0gICAgICAgICAgICByZXR1cm4gcGFzX210ZV9zeXN0ZW1faGVhcF9tYWxsb2NfemVyb190YWdn
ZWQoc3lzdGVtSGVhcC0+em9uZSgpLCAoYWxpZ25tZW50KSwgKHNpemUpKTsgXAotICAgIH0gd2hp
bGUgKGZhbHNlKQotCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX1NZU1RFTV9IRUFQX1JFQUxMT0NB
VElPTihzeXN0ZW1IZWFwLCBwdHIsIHNpemUsIG1vZGUpIGRvIHsgXAotICAgICAgICBpZiAobW9k
ZSAhPSBwYXNfbm9uX2NvbXBhY3RfYWxsb2NhdGlvbl9tb2RlKSBcCi0gICAgICAgICAgICByZXR1
cm4gcGFzX210ZV9zeXN0ZW1faGVhcF9yZWFsbG9jX3plcm9fdGFnZ2VkKHN5c3RlbUhlYXAtPnpv
bmUoKSwgKHB0ciksIChzaXplKSk7IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQotLy8gVXNlZCB0
byB0YWcgYnVtcCBhbGxvY2F0aW9ucyBpbiB0aGUgcHJpbW9yZGlhbCBoZWFwLgotLy8gTm9uLWhv
bW9nZW5lb3VzIGJlY2F1c2UgdGhpcyBjb21lcyBmcm9tIGEgcGFydGlhbCB2aWV3LCBtZWFuaW5n
IG90aGVyCi0vLyBhbGxvY2F0b3JzIGNhbiB1c2UgdGhlIHNhbWUgcGFnZS4KLS8vIFRha2VzIGEg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX1BSSU1P
UkRJQUxfQlVNUF9BTExPQ0FUSU9OKHBhZ2VfY29uZmlnLCBwdHIsIHNpemUsIG1vZGUpIGRvIHsg
XAotICAgICAgICAvKiBFdmVuIHRob3VnaCB0aGlzIGlzIGEgYnVtcCBhbGxvY2F0aW9uLCBiZWNh
dXNlIHdlIGhhdmUgdGhlIHBhZ2VfY29uZmlnICovIFwKLSAgICAgICAgLyogaGFuZHksIHdlIHVz
ZSB0aGUgcGFnZSBpbnN0ZWFkIG9mIHRoZSBhbGxvY2F0b3IgZm9yIHB1cnBvc2VzIG9mIGNoZWNr
aW5nICovIFwKLSAgICAgICAgLyogaWYgdGhpcyBhbGxvY2F0aW9uIHNob3VsZCBiZSB0YWdnZWQu
ICovIFwKLSAgICAgICAgaWYgKFBBU19VU0VfTVRFICYmIFBBU19NVEVfU0hPVUxEX1RBR19QQUdF
KHBhZ2VfY29uZmlnKSkgXAotICAgICAgICAgICAgUEFTX01URV9UQUdfUkVHSU9OX0ZST01fT1RI
RVJfQUxMT0NBVElPTihwdHIsIHNpemUsIG1vZGUsIHBhc19tdGVfaG9tb2dlbmVvdXNfYWxsb2Nh
dG9yLCBQQVNfTVRFX0lTX0tOT1dOX01FRElVTV9QQUdFKHBhZ2VfY29uZmlnKSk7IFwKLSAgICB9
IHdoaWxlIChmYWxzZSkKLQotLy8gVXNlZCB0byBiYWlsIGZyb20gYWxsb2NhdGluZyBtZWdhcGFn
ZXMgZnJvbSB0aGUgbWVnYXBhZ2UgbGFyZ2UgaGVhcCBpZiBQQVNfTVRFIGlzIGRpc2FibGVkLgot
Ly8gVGhlIG5vbi1NVEUgZGVmYXVsdCBpcyB0byB1c2UgdGhlIG1lZ2FwYWdlIGxhcmdlIGhlYXAg
Zm9yIGFueSBub24tY29tcGFjdCBtZWdhcGFnZQotLy8gYWxsb2NhdGlvbiwgd2hpY2ggaXMgd2hh
dCB3ZSB3YW50IGluIGFuIFBBU19NVEUgd29ybGQsIGJ1dCBzcGxpdHRpbmcgdXAgdGhlIHBhZ2Ug
c291cmNlcyBpbmN1cnMKLS8vIGEgbW9kZXN0IGJ1dCBzaWduaWZpY2FudCBwZXJmb3JtYW5jZS9t
ZW1vcnkgb3ZlcmhlYWQgd2hlbiBQQVNfTVRFIGlzIGRpc2FibGVkLiBUaGlzIGlzIHBhcnQgb2YK
LS8vIHRoZSBpbmV2aXRhYmxlIG92ZXJoZWFkIG9mIGVuYWJsaW5nIFBBU19NVEUsIGJ1dCB3ZSBk
b24ndCB3YW50IHRvIGJ1cmRlbiBub24tUEFTX01URSBoYXJkd2FyZSB3aXRoCi0vLyB0aGlzIGNv
c3QsIHNvIHdlIGluamVjdCB0aGlzIGVhcmx5IHJldHVybi4KLSNkZWZpbmUgUEFTX01URV9IQU5E
TEVfTUVHQVBBR0VTX0FMTE9DQVRJT04oaGVhcCwgc2l6ZSwgYWxpZ25tZW50LCBoZWFwX2NvbmZp
ZykgZG8geyBcCi0gICAgICAgIGlmICghUEFTX1VTRV9NVEUpIHsgXAotICAgICAgICAgICAgcmV0
dXJuIHBhc19sYXJnZV9oZWFwX3RyeV9hbGxvY2F0ZV9hbmRfZm9yZ2V0KCBcCi0gICAgICAgICAg
ICAgICAgJmhlYXAtPmxhcmdlX2hlYXAsIHNpemUsIGFsaWdubWVudCwgcGFzX25vbl9jb21wYWN0
X2FsbG9jYXRpb25fbW9kZSwgXAotICAgICAgICAgICAgICAgIGhlYXBfY29uZmlnLCB0cmFuc2Fj
dGlvbik7IFwKLSAgICAgICAgfSBcCi0gICAgfSB3aGlsZSAoZmFsc2UpCi0KLS8vIFVzZWQgdG8g
dGFnIHRoZSB0cmFpbGluZy1idWZmZXIgYnl0ZXMgb2YgYSBwYXJ0aWFsIHZpZXcgd2hlbiBpdCBp
cyBmaXJzdAotLy8gY29tbWl0dGVkIGFuZCBiZWNvbWVzIHJlYWR5IGZvciB1c2UgYXMgYW4gYWxs
b2NhdG9yLgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9QT1BVTEFURV9QUklNT1JESUFMX1BBUlRJ
QUxfVklFVyhwYWdlX2NvbmZpZywgcGFnZSwgdmlldywgYnVtcF9yZXN1bHQsIG1vZGUpIGRvIHsg
XAotICAgICAgICBpZiAoUEFTX1VTRV9NVEUpIHsgXAotICAgICAgICAgICAgaWYgKFBBU19NVEVf
U0hPVUxEX1RBR19QQUdFKCZwYWdlX2NvbmZpZykpIFwKLSAgICAgICAgICAgICAgICBQQVNfTVRF
X1RBR19CVU1QX0FMTE9DQVRJT05fRk9SX1BBUlRJQUxfVklFVyhwYWdlX2NvbmZpZywgcGFnZSwg
dmlldywgYnVtcF9yZXN1bHQsIG1vZGUpOyBcCi0gICAgICAgIH0gXAotICAgIH0gd2hpbGUgKGZh
bHNlKQotCi0vLyBVc2VkIHRvIHJlZGlyZWN0IHNtYWxsIG1lZ2FwYWdlIGFsbG9jYXRpb25zIHdo
ZW4gUEFTX01URSBpcyBub3QgZW5hYmxlZCB0byB0aGUgcmVzcGVjdGl2ZSB1bnRhZ2dlZCBtZWdh
cGFnZSBjYWNoZS4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfU01BTExfU0hBUkVEX1NFR1JFR0FU
RURfUEFHRV9BTExPQ0FUSU9OKGhlYXAsIG1lZ2FwYWdlX2NhY2hlKSBkbyB7IFwKLSAgICAgICAg
aWYgKCFQQVNfVVNFX01URSB8fCAhaGVhcC0+cGFyZW50X2hlYXAtPmlzX25vbl9jb21wYWN0X2hl
YXApIFwKLSAgICAgICAgICAgIG1lZ2FwYWdlX2NhY2hlID0gJnBhZ2VfY2FjaGVzLT5zbWFsbF9j
b21wYWN0X290aGVyX21lZ2FwYWdlX2NhY2hlOyBcCi0gICAgfSB3aGlsZSAoZmFsc2UpCi0jZGVm
aW5lIFBBU19NVEVfSEFORExFX1NNQUxMX0VYQ0xVU0lWRV9TRUdSRUdBVEVEX1BBR0VfQUxMT0NB
VElPTihoZWFwLCBtZWdhcGFnZV9jYWNoZSkgZG8geyBcCi0gICAgICAgIGlmICghUEFTX1VTRV9N
VEUgfHwgIWhlYXAtPnBhcmVudF9oZWFwLT5pc19ub25fY29tcGFjdF9oZWFwKSBcCi0gICAgICAg
ICAgICBtZWdhcGFnZV9jYWNoZSA9ICZwYWdlX2NhY2hlcy0+c21hbGxfY29tcGFjdF9leGNsdXNp
dmVfc2VncmVnYXRlZF9tZWdhcGFnZV9jYWNoZTsgXAotICAgIH0gd2hpbGUgKGZhbHNlKQotI2Rl
ZmluZSBQQVNfTVRFX0hBTkRMRV9TTUFMTF9CSVRGSVRfUEFHRV9BTExPQ0FUSU9OKGhlYXAsIG1l
Z2FwYWdlX2NhY2hlKSBkbyB7IFwKLSAgICAgICAgaWYgKCFQQVNfVVNFX01URSB8fCAhaGVhcC0+
cGFyZW50X2hlYXAtPmlzX25vbl9jb21wYWN0X2hlYXApIFwKLSAgICAgICAgICAgIG1lZ2FwYWdl
X2NhY2hlID0gJnBhZ2VfY2FjaGVzLT5zbWFsbF9jb21wYWN0X290aGVyX21lZ2FwYWdlX2NhY2hl
OyBcCi0gICAgfSB3aGlsZSAoZmFsc2UpCi0KLS8vIFVzZWQgdG8gcmVkaXJlY3QgbWVkaXVtIG1l
Z2FwYWdlIGFsbG9jYXRpb25zIHdoZW4gbWVkaXVtIG9iamVjdCB0YWdnaW5nIGlzIG5vdCBlbmFi
bGVkIHRvIHRoZSByZXNwZWN0aXZlIHVudGFnZ2VkIG1lZ2FwYWdlIGNhY2hlLgotI2RlZmluZSBQ
QVNfTVRFX0hBTkRMRV9NRURJVU1fU0VHUkVHQVRFRF9QQUdFX0FMTE9DQVRJT04oaGVhcCwgbWVn
YXBhZ2VfY2FjaGUpIGRvIHsgXAotICAgICAgICBpZiAoIVBBU19NVEVfTUVESVVNX1RBR0dJTkdf
RU5BQkxFRCB8fCAhaGVhcC0+cGFyZW50X2hlYXAtPmlzX25vbl9jb21wYWN0X2hlYXApIFwKLSAg
ICAgICAgICAgIG1lZ2FwYWdlX2NhY2hlID0gJnBhZ2VfY2FjaGVzLT5tZWRpdW1fY29tcGFjdF9t
ZWdhcGFnZV9jYWNoZTsgXAotICAgIH0gd2hpbGUgKGZhbHNlKQotI2RlZmluZSBQQVNfTVRFX0hB
TkRMRV9NRURJVU1fQklURklUX1BBR0VfQUxMT0NBVElPTihoZWFwLCBtZWdhcGFnZV9jYWNoZSkg
ZG8geyBcCi0gICAgICAgIGlmICghUEFTX01URV9NRURJVU1fVEFHR0lOR19FTkFCTEVEIHx8ICFo
ZWFwLT5wYXJlbnRfaGVhcC0+aXNfbm9uX2NvbXBhY3RfaGVhcCkgXAotICAgICAgICAgICAgbWVn
YXBhZ2VfY2FjaGUgPSAmcGFnZV9jYWNoZXMtPm1lZGl1bV9jb21wYWN0X21lZ2FwYWdlX2NhY2hl
OyBcCi0gICAgfSB3aGlsZSAoZmFsc2UpCi0KLS8vIFVzZWQgdG8gdGFjaXRseSByZWRpcmVjdCBh
bGwgbWFyZ2UgbWVnYXBhZ2UgYWxsb2NhdGlvbnMgdG8gdGhlIHVudGFnZ2VkIG1lZ2FwYWdlIGNh
Y2hlLgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9NQVJHRV9CSVRGSVRfUEFHRV9BTExPQ0FUSU9O
KGhlYXAsIG1lZ2FwYWdlX2NhY2hlKSBkbyB7IFwKLSAgICAgICAgbWVnYXBhZ2VfY2FjaGUgPSAm
cGFnZV9jYWNoZXMtPm1lZGl1bV9jb21wYWN0X21lZ2FwYWdlX2NhY2hlOyBcCi0gICAgfSB3aGls
ZSAoZmFsc2UpCi0KLS8vIFVzZWQgdG8gdGFnIHRoZSBtZW1vcnkgbGVmdCBiZWhpbmQgYnkgb2Jq
ZWN0cyBmcmVlZCBmcm9tIGJpdGZpdCBoZWFwcy4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfQklU
RklUX1BBR0VfREVBTExPQ0FUSU9OKHBhZ2VfY29uZmlnLCBwdHIsIHNpemUpIGRvIHsgXAotICAg
ICAgICAodm9pZClwYWdlX2NvbmZpZzsgXAotICAgICAgICAodm9pZClwdHI7IFwKLSAgICAgICAg
KHZvaWQpc2l6ZTsgXAotICAgICAgICBpZiAoUEFTX1VTRV9NVEUpIHsgXAotICAgICAgICAgICAg
aWYgKFBBU19NVEVfU0hPVUxEX1RBR19QQUdFKCZwYWdlX2NvbmZpZykpIFwKLSAgICAgICAgICAg
ICAgICBQQVNfTVRFX1RBR19SRUdJT05fRlJPTV9ERUFMTE9DQVRJT04ocGFnZV9jb25maWcsIHB0
ciwgc2l6ZSwgcGFzX210ZV9ub25ob21vZ2VuZW91c19hbGxvY2F0b3IpOyBcCi0gICAgICAgIH0g
XAotICAgIH0gd2hpbGUgKGZhbHNlKQotCi0vLyBVc2VkIHRvIHRhZyB0aGUgbWVtb3J5IGxlZnQg
YmVoaW5kIGJ5IG9iamVjdHMgZnJlZWQgZnJvbSBzZWdyZWdhdGVkIGhlYXBzLgotI2RlZmluZSBQ
QVNfTVRFX0hBTkRMRV9TRUdSRUdBVEVEX1BBR0VfREVBTExPQ0FUSU9OKHBhZ2VfY29uZmlnLCBw
dHIsIHNpemUpIGRvIHsgXAotICAgICAgICAodm9pZClwYWdlX2NvbmZpZzsgXAotICAgICAgICAo
dm9pZClwdHI7IFwKLSAgICAgICAgKHZvaWQpc2l6ZTsgXAotICAgICAgICBpZiAoUEFTX1VTRV9N
VEUpIHsgXAotICAgICAgICAgICAgaWYgKFBBU19NVEVfU0hPVUxEX1RBR19QQUdFKCZwYWdlX2Nv
bmZpZykpIFwKLSAgICAgICAgICAgICAgICBQQVNfTVRFX1RBR19SRUdJT05fRlJPTV9ERUFMTE9D
QVRJT04ocGFnZV9jb25maWcsIHB0ciwgc2l6ZSwgcGFzX210ZV9ob21vZ2VuZW91c19hbGxvY2F0
b3IpOyBcCi0gICAgICAgIH0gXAotICAgIH0gd2hpbGUgKGZhbHNlKQotCi0jZGVmaW5lIFBBU19N
VEVfSEFORExFX1NDQVZFTkdFUl9USFJFQURfTUFJTihkYXRhKSBkbyB7IFwKLSAgICAgICAgcGFz
X210ZV9lbnN1cmVfaW5pdGlhbGl6ZWQoKTsgXAotICAgIH0gd2hpbGUgKGZhbHNlKQotCi0jaWYg
UEFTX09TKERBUldJTikKLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfUEFHRV9BTExPQ0FUSU9OKHNp
emUsIGlzX3NtYWxsLCB0YWcpIGRvIHsgXAotICAgICAgICBwYXNfbXRlX2Vuc3VyZV9pbml0aWFs
aXplZCgpOyBcCi0gICAgICAgIGlmIChQQVNfVVNFX01URSAmJiAoaXNfc21hbGwpKSB7IFwKLSAg
ICAgICAgICAgIGNvbnN0IHZtX2luaGVyaXRfdCBjaGlsZFByb2Nlc3NJbmhlcml0YW5jZSA9IFZN
X0lOSEVSSVRfREVGQVVMVDsgXAotICAgICAgICAgICAgY29uc3QgYm9vbCBjb3B5ID0gZmFsc2U7
IFwKLSAgICAgICAgICAgIGNvbnN0IHZtX3Byb3RfdCBwcm90ZWN0aW9ucyA9IFZNX1BST1RfV1JJ
VEUgfCBWTV9QUk9UX1JFQUQ7IFwKLSAgICAgICAgICAgIGtlcm5fcmV0dXJuX3Qgdm1fbWFwX3Jl
c3VsdCA9IG1hY2hfdm1fbWFwKG1hY2hfdGFza19zZWxmKCksIChtYWNoX3ZtX2FkZHJlc3NfdCop
Jm1tYXBfcmVzdWx0LCAoc2l6ZSksIHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSAtIDEsIFZN
X0ZMQUdTX0FOWVdIRVJFIHwgUEFTX1ZNX01URSB8ICh0YWcpLCBNRU1PUllfT0JKRUNUX05VTEws
IDAsIGNvcHksIHByb3RlY3Rpb25zLCBwcm90ZWN0aW9ucywgY2hpbGRQcm9jZXNzSW5oZXJpdGFu
Y2UpOyBcCi0gICAgICAgICAgICBpZiAodm1fbWFwX3Jlc3VsdCAhPSBLRVJOX1NVQ0NFU1MpIHsg
XAotICAgICAgICAgICAgICAgIGVycm5vID0gMDsgXAotICAgICAgICAgICAgICAgIGlmIChQQVNf
TVRFX0ZFQVRVUkVfRU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfTE9HX1BBR0VfQUxMT0MpKSBcCi0g
ICAgICAgICAgICAgICAgICAgIHByaW50ZigiW01URV1cdEZhaWxlZCB0byBtYXAgJXp1IGJ5dGVz
IHdpdGggVk1fRkxBR1NfTVRFLlxuIiwgKHNpemVfdCkoc2l6ZSkpOyBcCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIE5VTEw7IFwKLSAgICAgICAgICAgIH0gXAotICAgICAgICAgICAgaWYgKFBBU19N
VEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfUEFHRV9BTExPQykpIFwKLSAg
ICAgICAgICAgICAgICBwcmludGYoIltNVEVdXHRNYXBwZWQgJXp1IGJ5dGVzIGZyb20gJXAgdG8g
JXAgd2l0aCBWTV9GTEFHU19NVEUuXG4iLCAoc2l6ZV90KShzaXplKSwgKHZvaWQqKShtbWFwX3Jl
c3VsdCksICh1aW50OF90KikobW1hcF9yZXN1bHQpICsgKHNpemUpKTsgXAotICAgICAgICAgICAg
cmV0dXJuIG1tYXBfcmVzdWx0OyBcCi0gICAgICAgIH0gXAotICAgIH0gd2hpbGUgKGZhbHNlKQot
I2Vsc2UgLy8gUEFTX09TKERBUldJTikgLT4gIVBBU19PUyhEQVJXSU4pCi0jZGVmaW5lIFBBU19N
VEVfSEFORExFX1BBR0VfQUxMT0NBVElPTihhLCBiKSBkbyB7IFwKLSAgICAgICAgKHZvaWQpKGEp
OyBcCi0gICAgICAgICh2b2lkKShiKTsgXAotICAgIH0gd2hpbGUgKGZhbHNlKQotI2VuZGlmIC8v
ICFQQVNfT1MoREFSV0lOKQotCi0jZGVmaW5lIFBBU19NVEVfSEFORExFKGtpbmQsIC4uLikgXAot
ICAgIFBBU19NVEVfSEFORExFXyAjIyBraW5kKF9fVkFfQVJHU19fKQotCi1QQVNfSUdOT1JFX1dB
Uk5JTkdTX0VORAotCi0jZWxzZSAvLyAhUEFTX0VOQUJMRV9NVEUKLSNkZWZpbmUgUEFTX01URV9I
QU5ETEUoa2luZCwgLi4uKSBQQVNfVU5VU0VEX1YoX19WQV9BUkdTX18pCi0jZGVmaW5lIFBBU19T
SE9VTERfTVRFX1RBR19CQVNJQ19IRUFQX1BBR0Uoc2l6ZV9jYXRlZ29yeSkgKGZhbHNlKQotI2Vu
ZGlmIC8vIFBBU19FTkFCTEVfTVRFCi0KLSNlbmRpZiAvLyBQQVNfTVRFX0gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGVfY29uZmlnLmMgYi9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbXRlX2NvbmZpZy5jCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3ZjdkYTNjN2M5MzYuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbXRlX2NvbmZpZy5jCisrKyAvZGV2L251
bGwKQEAgLTEsMjA0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjUgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVE
Ci0jaW5jbHVkZSAicGFzX210ZV9jb25maWcuaCIKLQotI2luY2x1ZGUgInN0ZGxpYi5oIgotI2lm
IFBBU19PUyhEQVJXSU4pCi0jaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgotI2VuZGlmCi0jaWYgIVBB
U19PUyhXSU5ET1dTKQotI2luY2x1ZGUgInVuaXN0ZC5oIgotI2VuZGlmCi0KLSNpbmNsdWRlICJw
YXNfbXRlLmgiCi0jaW5jbHVkZSAicGFzX3V0aWxzLmgiCi0jaW5jbHVkZSAicGFzX2hlYXAuaCIK
LSNpbmNsdWRlICJwYXNfemVyb19tZW1vcnkuaCIKLQotI2lmIFBBU19FTkFCTEVfTVRFCi0KLWV4
dGVybiBwYXNfaGVhcCBibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcDsKLQotc3RhdGljIGlu
dCBpc19lbnZfZmFsc2UoY29uc3QgY2hhciogdmFyKQotewotICAgIGNvbnN0IGNoYXIqIHZhbHVl
ID0gZ2V0ZW52KHZhcik7Ci0gICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAg
cmV0dXJuICFzdHJjYXNlY21wKHZhbHVlLCAiZmFsc2UiKSB8fCAhc3RyY2FzZWNtcCh2YWx1ZSwg
Im5vIikgfHwgIXN0cmNhc2VjbXAodmFsdWUsICIwIik7Ci19Ci0KLXN0YXRpYyBpbnQgaXNfZW52
X3RydWUoY29uc3QgY2hhciogdmFyKQotewotICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ2V0ZW52
KHZhcik7Ci0gICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuICFz
dHJjYXNlY21wKHZhbHVlLCAidHJ1ZSIpIHx8ICFzdHJjYXNlY21wKHZhbHVlLCAieWVzIikgfHwg
IXN0cmNhc2VjbXAodmFsdWUsICIxIik7Ci19Ci0KLXN0YXRpYyBib29sIGdldF92YWx1ZV9pZl9h
dmFpbGFibGUodW5zaWduZWQqIHZhbHVlUHRyLCBjb25zdCBjaGFyKiB2YXIpCi17Ci0gICAgY29u
c3QgY2hhciogdmFyU3RyID0gZ2V0ZW52KHZhcik7Ci0gICAgaWYgKHZhclN0cikgewotICAgICAg
ICB1bnNpZ25lZCB2YWx1ZSA9IDA7Ci0gICAgICAgIGlmIChzc2NhbmYodmFyU3RyLCAiJXUiLCAm
dmFsdWUpID09IDEpIHsKLSAgICAgICAgICAgICp2YWx1ZVB0ciA9IHZhbHVlOwotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7IC8vIEZvdW5kLgotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBm
YWxzZTsgLy8gTm90IGZvdW5kLgotfQotCi1zdGF0aWMgdm9pZCBwYXNfbXRlX2RvX2luaXRpYWxp
emF0aW9uKHZvaWQpCi17Ci0gICAgdWludDhfdCogZW5hYmxlZF9ieXRlID0gJlBBU19NVEVfQ09O
RklHX0JZVEUoUEFTX01URV9FTkFCTEVfRkxBRyk7Ci0gICAgdWludDhfdCogbW9kZV9ieXRlID0g
JlBBU19NVEVfQ09ORklHX0JZVEUoUEFTX01URV9NT0RFX0JJVFMpOwotICAgIHVpbnQ4X3QqIG1l
ZGl1bV9ieXRlID0gJlBBU19NVEVfQ09ORklHX0JZVEUoUEFTX01URV9NRURJVU1fVEFHR0lOR19F
TkFCTEVfRkxBRyk7Ci0gICAgdWludDhfdCogbG9ja2Rvd25fbW9kZV9ieXRlID0gJlBBU19NVEVf
Q09ORklHX0JZVEUoUEFTX01URV9MT0NLRE9XTl9NT0RFX0ZMQUcpOwotICAgIHVpbnQ4X3QqIGlz
X3djcF9ieXRlID0gJlBBU19NVEVfQ09ORklHX0JZVEUoUEFTX01URV9JU19XQ1BfRkxBRyk7Ci0K
LSAgICBzdHJ1Y3QgcHJvY19ic2RpbmZvIGluZm87Ci0gICAgaW50IHJjID0gcHJvY19waWRpbmZv
KGdldHBpZCgpLCBQUk9DX1BJRFRCU0RJTkZPLCAwLCAmaW5mbywgc2l6ZW9mKGluZm8pKTsKLSAg
ICBpZiAocmMgPT0gc2l6ZW9mKGluZm8pICYmIGluZm8ucGJpX2ZsYWdzICYgUEFTX01URV9QUk9D
X0ZMQUdfU0VDX0VOQUJMRUQpCi0gICAgICAgICplbmFibGVkX2J5dGUgPSAxOwotCi0gICAgaWYg
KGlzX2Vudl90cnVlKCJKU0NfdXNlQWxsb2NhdGlvblByb2ZpbGluZyIpIHx8IGlzX2Vudl90cnVl
KCJNVEVfb3ZlcnJpZGVFbmFibGVtZW50Rm9ySmF2YVNjcmlwdENvcmUiKSkgewotICAgICAgICBQ
QVNfQVNTRVJUKCEoaXNfZW52X2ZhbHNlKCJKU0NfdXNlQWxsb2NhdGlvblByb2ZpbGluZyIpIHx8
IGlzX2Vudl9mYWxzZSgiTVRFX292ZXJyaWRlRW5hYmxlbWVudEZvckphdmFTY3JpcHRDb3JlIikp
KTsKLSAgICAgICAgKmVuYWJsZWRfYnl0ZSA9IDE7Ci0gICAgfQotICAgIGlmIChpc19lbnZfZmFs
c2UoIkpTQ191c2VBbGxvY2F0aW9uUHJvZmlsaW5nIikgfHwgaXNfZW52X2ZhbHNlKCJNVEVfb3Zl
cnJpZGVFbmFibGVtZW50Rm9ySmF2YVNjcmlwdENvcmUiKSkKLSAgICAgICAgKmVuYWJsZWRfYnl0
ZSA9IDA7Ci0KLSAgICBpZiAoISplbmFibGVkX2J5dGUpCi0gICAgICAgIHJldHVybjsKLQotICAg
IHVuc2lnbmVkIG1vZGUgPSAwOwotICAgIGlmIChnZXRfdmFsdWVfaWZfYXZhaWxhYmxlKCZtb2Rl
LCAiSlNDX2FsbG9jYXRpb25Qcm9maWxpbmdNb2RlIikpCi0gICAgICAgICptb2RlX2J5dGUgPSAo
dWludDhfdCkobW9kZSAmIDB4RkYpOwotCi0gICAgY29uc3QgY2hhciogbmFtZSA9IGluZm8ucGJp
X25hbWVbMF0gPyBpbmZvLnBiaV9uYW1lIDogaW5mby5wYmlfY29tbTsKLSAgICBib29sIGlzV2Vi
Q29udGVudFByb2Nlc3MgPSAhc3RybmNtcChuYW1lLCAiY29tLmFwcGxlLldlYktpdC5XZWJDb250
ZW50IiwgMjcpIHx8ICFzdHJuY21wKG5hbWUsICJqc2MiLCAzKTsKLSAgICAqaXNfd2NwX2J5dGUg
PSBpc1dlYkNvbnRlbnRQcm9jZXNzOwotCi0gICAgdW5zaWduZWQgdGFnZ2luZ1JhdGUgPSAxMDA7
Ci0gICAgaWYgKGlzV2ViQ29udGVudFByb2Nlc3MpIHsKLSAgICAgICAgY29uc3QgdWludDhfdCBk
ZWZhdWx0V2ViQ29udGVudFRhZ2dpbmdSYXRlID0gMzM7Ci0gICAgICAgIHRhZ2dpbmdSYXRlID0g
ZGVmYXVsdFdlYkNvbnRlbnRUYWdnaW5nUmF0ZTsKLQotICAgICAgICAvLyBEZWJ1ZyBvcHRpb24g
dG8gb3ZlcnJpZGUgdGhlIFdDUCB0YWdnaW5nIHJhdGUuCi0gICAgICAgIGdldF92YWx1ZV9pZl9h
dmFpbGFibGUoJnRhZ2dpbmdSYXRlLCAiTVRFX3RhZ2dpbmdSYXRlRm9yV2ViQ29udGVudCIpOwot
ICAgIH0KLQotICAgIC8vIERlYnVnIG9wdGlvbiB0byB1bmNvbmRpdGlvbmFsbHkgb3ZlcnJpZGUg
dGhlIHRhZ2dpbmcgcmF0ZS4KLSAgICBnZXRfdmFsdWVfaWZfYXZhaWxhYmxlKCZ0YWdnaW5nUmF0
ZSwgIk1URV90YWdnaW5nUmF0ZSIpOwotCi0gICAgUEFTX01URV9DT05GSUdfQllURShQQVNfTVRF
X1RBR0dJTkdfUkFURSkgPSB0YWdnaW5nUmF0ZTsKLQotICAgIGlmIChpc1dlYkNvbnRlbnRQcm9j
ZXNzKSB7Ci0gICAgICAgICptZWRpdW1fYnl0ZSA9IDA7Ci0jaWYgIVBBU19VU0VfTVRFX0lOX1dF
QkNPTlRFTlQKLSAgICAgICAgLy8gRGlzYWJsZSB0YWdnaW5nIGluIGxpYnBhcyBieSBkZWZhdWx0
IGluIFdlYkNvbnRlbnQgcHJvY2VzcwotICAgICAgICAqZW5hYmxlZF9ieXRlID0gMDsKLSNlbmRp
ZgotICAgICAgICB1aW50NjRfdCBsZG1TdGF0ZSA9IDA7Ci0gICAgICAgIHNpemVfdCBzeXNDdGxM
ZW4gPSBzaXplb2YobGRtU3RhdGUpOwotICAgICAgICBpZiAoc3lzY3RsYnluYW1lKCJzZWN1cml0
eS5tYWMubG9ja2Rvd25fbW9kZV9zdGF0ZSIsICZsZG1TdGF0ZSwgJnN5c0N0bExlbiwgTlVMTCwg
MCkgPj0gMCAmJiBsZG1TdGF0ZSA9PSAxKSB7Ci0gICAgICAgICAgICAqZW5hYmxlZF9ieXRlID0g
MTsKLSAgICAgICAgICAgICptZWRpdW1fYnl0ZSA9IDE7Ci0gICAgICAgICAgICAqbG9ja2Rvd25f
bW9kZV9ieXRlID0gMTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICpsb2NrZG93bl9t
b2RlX2J5dGUgPSAwOwotCi0gICAgICAgICAgICAvLyBGSVhNRTogcmRhcjovLzE1OTk3NDE5NQot
ICAgICAgICAgICAgYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXAuaXNfbm9uX2NvbXBhY3Rf
aGVhcCA9IGZhbHNlOwotICAgICAgICB9Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIGlmIChp
c19lbnZfdHJ1ZSgiTVRFX2Rpc2FibGVGb3JXZWJDb250ZW50IikpIHsKLSAgICAgICAgICAgIFBB
U19BU1NFUlQoIWlzX2Vudl90cnVlKCJNVEVfb3ZlcnJpZGVFbmFibGVtZW50Rm9yV2ViQ29udGVu
dCIpKTsKLSAgICAgICAgICAgICplbmFibGVkX2J5dGUgPSAwOwotICAgICAgICAgICAgKm1lZGl1
bV9ieXRlID0gMDsKLSAgICAgICAgfQotI2VuZGlmCi0gICAgICAgIGlmIChpc19lbnZfdHJ1ZSgi
TVRFX292ZXJyaWRlRW5hYmxlbWVudEZvcldlYkNvbnRlbnQiKSkgewotICAgICAgICAgICAgKmVu
YWJsZWRfYnl0ZSA9IDE7Ci0gICAgICAgICAgICAqbWVkaXVtX2J5dGUgPSAxOwotICAgICAgICB9
IGVsc2UgaWYgKGlzX2Vudl9mYWxzZSgiTVRFX292ZXJyaWRlRW5hYmxlbWVudEZvcldlYkNvbnRl
bnQiKSkgewotICAgICAgICAgICAgKmVuYWJsZWRfYnl0ZSA9IDA7Ci0gICAgICAgICAgICAqbWVk
aXVtX2J5dGUgPSAwOwotICAgICAgICB9Ci0gICAgfSBlbHNlCi0gICAgICAgICptZWRpdW1fYnl0
ZSA9IDE7IC8vIFRhZyBsaWJwYXMgbWVkaXVtIG9iamVjdHMgaW4gcHJpdmlsZWdlZCBwcm9jZXNz
ZXMuCi19Ci0KLXN0YXRpYyBib29sIHBhc19tdGVfaXNfZW5hYmxlZCh2b2lkKQotewotICAgIGNv
bnN0IHVpbnQ4X3QqIGVuYWJsZWRCeXRlID0gKChjb25zdCB1aW50OF90KikoZ19jb25maWcgKyAy
KSk7Ci0gICAgc3RydWN0IHByb2NfYnNkaW5mbyBpbmZvOwotICAgIGludCByYyA9IHByb2NfcGlk
aW5mbyhnZXRwaWQoKSwgUFJPQ19QSURUQlNESU5GTywgMCwgJmluZm8sIHNpemVvZihpbmZvKSk7
Ci0gICAgcmV0dXJuIChyYyA9PSBzaXplb2YoaW5mbykgJiYgKGluZm8ucGJpX2ZsYWdzICYgUEFT
X01URV9QUk9DX0ZMQUdfU0VDX0VOQUJMRUQpICYmICEhKmVuYWJsZWRCeXRlKTsKLX0KLQotI2Vs
c2UgLy8gIVBBU19FTkFCTEVfTVRFCi0KLXN0YXRpYyBQQVNfVU5VU0VEIHZvaWQgcGFzX210ZV9k
b19pbml0aWFsaXphdGlvbih2b2lkKSB7IH0KLQotc3RhdGljIFBBU19VTlVTRUQgYm9vbCBwYXNf
bXRlX2lzX2VuYWJsZWQodm9pZCkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLSNlbmRpZiAv
LyBQQVNfRU5BQkxFX01URQotCi0jaWYgUEFTX09TKERBUldJTikKLXN0YXRpYyB2b2lkIHBhc19t
dGVfZG9fYW5kX2NoZWNrX2luaXRpYWxpemF0aW9uKHZvaWQqIGNvbnRleHQpCi17Ci0gICAgKHZv
aWQpY29udGV4dDsKLSAgICBwYXNfbXRlX2RvX2luaXRpYWxpemF0aW9uKCk7Ci0gICAgY29uc3Qg
Y2hhciogY3Jhc2hJZk1URU5vdEVuYWJsZWQgPSBnZXRlbnYoIk1URV9jcmFzaElmTm90RW5hYmxl
ZCIpOwotICAgIGlmIChjcmFzaElmTVRFTm90RW5hYmxlZCkgewotICAgICAgICBpZiAoIXN0cmNh
c2VjbXAoY3Jhc2hJZk1URU5vdEVuYWJsZWQsICJ0cnVlIikKLSAgICAgICAgICAgIHx8ICFzdHJj
YXNlY21wKGNyYXNoSWZNVEVOb3RFbmFibGVkLCAieWVzIikKLSAgICAgICAgICAgIHx8ICFzdHJj
YXNlY21wKGNyYXNoSWZNVEVOb3RFbmFibGVkLCAiMSIpKSB7Ci0gICAgICAgICAgICBQQVNfQVNT
RVJUKHBhc19tdGVfaXNfZW5hYmxlZCgpICYmICJNVEUgaXMgbm90IGVuYWJsZWQsIGNyYXNoaW5n
Iik7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXZvaWQgcGFzX210ZV9lbnN1cmVfaW5pdGlhbGl6
ZWQodm9pZCkKLXsKLSAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IHByZWQ7Ci0gICAgZGlzcGF0
Y2hfb25jZV9mKCZwcmVkLCBOVUxMLCBwYXNfbXRlX2RvX2FuZF9jaGVja19pbml0aWFsaXphdGlv
bik7Ci19Ci0jZWxzZSAvLyAhUEFTX09TKERBUldJTikKLSNpZiBQQVNfRU5BQkxFX01URQotI2Vy
cm9yICJwYXNfbXRlX2Vuc3VyZV9pbml0aWFsaXplZCBkb2VzIG5vdCBzdXBwb3J0IG5vbi1EYXJ3
aW4gc3lzdGVtcyIKLSNlbmRpZgotdm9pZCBwYXNfbXRlX2Vuc3VyZV9pbml0aWFsaXplZCh2b2lk
KSB7IH0KLSNlbmRpZiAvLyBQQVNfT1MoREFSV0lOKQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVE
ICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbXRl
X2NvbmZpZy5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX210ZV9jb25m
aWcuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjU4ZTA2NzM3ZWUyLi4wMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX210ZV9jb25m
aWcuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChj
KSAyMDI1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX01URV9DT05GSUdfSAotI2Rl
ZmluZSBQQVNfTVRFX0NPTkZJR19ICi0KLSNpbmNsdWRlICJwYXNfcGxhdGZvcm0uaCIKLSNpbmNs
dWRlICJwYXNfY29uZmlnLmgiCi0jaWYgZGVmaW5lZChQQVNfQk1BTExPQykKLSNpbmNsdWRlICJC
UGxhdGZvcm0uaCIKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChfX2hhc19pbmNsdWRlKQotI2lmIF9f
aGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9wYXNfbXRlX2FkZGl0aW9ucy5oPikKLSNpbmNs
dWRlIDxXZWJLaXRBZGRpdGlvbnMvcGFzX210ZV9hZGRpdGlvbnMuaD4KLSNlbmRpZiAvLyBfX2hh
c19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvcGFzX210ZV9hZGRpdGlvbnMuaD4pCi0jaWYgX19o
YXNfaW5jbHVkZSg8bGlicHJvYy5oPikKLSNpbmNsdWRlIDxsaWJwcm9jLmg+Ci0jZW5kaWYgLy8g
X19oYXNfaW5jbHVkZSg8bGlicHJvYy5oPikKLSNlbmRpZiAvLyBkZWZpbmVkKF9faGFzX2luY2x1
ZGUpCi0KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotI2lmZGVm
IF9fQVBQTEVfXwotI2luY2x1ZGUgPEF2YWlsYWJpbGl0eS5oPgotI2luY2x1ZGUgPEF2YWlsYWJp
bGl0eU1hY3Jvcy5oPgotI2luY2x1ZGUgPFRhcmdldENvbmRpdGlvbmFscy5oPgotI2VuZGlmCi0j
aWYgUEFTX09TKERBUldJTikKLSNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgotI2lmIFBB
U19VU0VfQVBQTEVfSU5URVJOQUxfU0RLCi0jaW5jbHVkZSA8bWFjaC9tYWNoX2luaXQuaD4KLSNp
bmNsdWRlIDxtYWNoL21hY2hfdm0uaD4KLSNpbmNsdWRlIDxtYWNoL3ZtX3BhZ2Vfc2l6ZS5oPgot
I2luY2x1ZGUgPG1hY2gvdm1fc3RhdGlzdGljcy5oPgotI2VuZGlmIC8vIFBBU19VU0VfQVBQTEVf
SU5URVJOQUxfU0RLCi0jZW5kaWYgLy8gUEFTX09TKERBUldJTikKLQotI2lmIFBBU19FTkFCTEVf
TVRFCi0KLXR5cGVkZWYgdWludDY0X3QgU2xvdDsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRl
cm4gIkMiIHsKLSNlbmRpZgotZXh0ZXJuIFNsb3QgZ19jb25maWdbXTsKLSNpZmRlZiBfX2NwbHVz
cGx1cwotfQotI2VuZGlmCi0KLSNkZWZpbmUgUEFTX01URV9FTkFCTEVfRkxBRyAwCi0jZGVmaW5l
IFBBU19NVEVfTU9ERV9CSVRTIDEKLSNkZWZpbmUgUEFTX01URV9UQUdHSU5HX1JBVEUgMgotI2Rl
ZmluZSBQQVNfTVRFX01FRElVTV9UQUdHSU5HX0VOQUJMRV9GTEFHIDMKLSNkZWZpbmUgUEFTX01U
RV9MT0NLRE9XTl9NT0RFX0ZMQUcgNAotI2RlZmluZSBQQVNfTVRFX0lTX1dDUF9GTEFHIDUKLQot
Ly8gTXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCB0aGUgb2Zmc2V0cyBpbiBXVEZDb25maWcuaDpS
ZXNlcnZlZENvbmZpZ0J5dGVPZmZzZXQKLSNkZWZpbmUgUEFTX01URV9DT05GSUdfUkVTRVJWRURf
QllURV9PRkZTRVQgMgotI2RlZmluZSBQQVNfTVRFX0NPTkZJR19CWVRFKGJ5dGUpICgoKHVpbnQ4
X3QqKShnX2NvbmZpZyArIFBBU19NVEVfQ09ORklHX1JFU0VSVkVEX0JZVEVfT0ZGU0VUKSlbYnl0
ZV0pCi0KLSNkZWZpbmUgUEFTX1VTRV9NVEUgKFBBU19NVEVfQ09ORklHX0JZVEUoUEFTX01URV9F
TkFCTEVfRkxBRykpCi0jaWZuZGVmIFBBU19VU0VfTVRFX0lOX1dFQkNPTlRFTlQKLSNkZWZpbmUg
UEFTX1VTRV9NVEVfSU5fV0VCQ09OVEVOVCAxCi0jZW5kaWYKLQotI2RlZmluZSBQQVNfTVRFX0NP
TkZJR19GSUVMRChieXRlLCBiaXQpICgoKFBBU19NVEVfQ09ORklHX0JZVEUoYnl0ZSkpICYgKDFV
TCA8PCAoYml0KSkpID8gMSA6IDApCi0jZGVmaW5lIFBBU19NVEVfTUVESVVNX1RBR0dJTkdfRU5B
QkxFRCAoUEFTX01URV9DT05GSUdfQllURShQQVNfTVRFX01FRElVTV9UQUdHSU5HX0VOQUJMRV9G
TEFHKSkKLSNkZWZpbmUgUEFTX01URV9JU19MT0NLRE9XTl9NT0RFIChQQVNfTVRFX0NPTkZJR19C
WVRFKFBBU19NVEVfTE9DS0RPV05fTU9ERV9GTEFHKSkKLSNkZWZpbmUgUEFTX01URV9JU19JTl9X
Q1AgKFBBU19NVEVfQ09ORklHX0JZVEUoUEFTX01URV9JU19XQ1BfRkxBRykpCi0KLSNkZWZpbmUg
UEFTX1ZNX01URSAweDIwMDAKLSNkZWZpbmUgUEFTX01URV9QUk9DX0ZMQUdfU0VDX0VOQUJMRUQg
MHg0MDAwMDAwCi0KLSNkZWZpbmUgUEFTX01URV9TSE9VTERfU1RPUkVfVEFHIDEKLQotI2lmbmRl
ZiBQQVNfVVNFX0NPTVBBQ1RfT05MWV9IRUFQCi0vKgotICogVGhlIHJlYXNvbiB3ZSBtYWtlIFRa
b25lIGNvbXBhY3Qtb25seSBoZWFwcyByZWxpYW50IG9uIHJ1bnRpbWUgUEFTX01URQotICogZW5h
YmxlbWVudCwgYW5kIG5vdCB0aGUgZ2VuZXJhbCBjb21wYWN0LW9ubHkgaGVhcCwgaXMgdGhhdCBs
dW1waW5nIGFsbAotICogbm9uLWNvbXBhY3Qgb2JqZWN0cyBpbnRvIHRoZSBzYW1lIGhlYXAgaXMg
YSBzZWN1cml0eSByZWdyZXNzaW9uIGZvciBUWm9uZSwKLSAqIGJ1dCBub3QgYSBzZWN1cml0eSBy
ZWdyZXNzaW9uIGZvciB0aGUgZ2VuZXJhbCBibWFsbG9jIGhlYXAgd2hlcmUgd2UgYWxyZWFkeQot
ICogZXhwZWN0IGFsbCBhbGxvY2F0aW9ucyB0byBjb21lIG91dCBvZiB0aGUgc2FtZSBzaW5ndWxh
ciBpbnRyaW5zaWMgaGVhcC4KLSAqIEJ5IGF2b2lkaW5nIGNoZWNraW5nIFBBU19VU0VfTVRFLCB3
ZSBzYXZlIGFuIGFkZGl0aW9uYWwgY2hlY2sgaW4gdGhlIG1hbGxvYwotICogZmFzdCBwYXRoIGZv
ciBvcmRpbmFyeSBhbGxvY2F0aW9ucywgd2hpbGUgdGhlIGNvcnJlc3BvbmRpbmcgY2hlY2sgZm9y
IFRab25lCi0gKiBoZWFwcyBvbmx5IG9jY3VycyBkdXJpbmcgaGVhcCBzZWxlY3Rpb24gLSBpdCdz
IG5vdCBhcyBzaWduaWZpY2FudC4KLSAqLwotI2RlZmluZSBQQVNfVVNFX0NPTVBBQ1RfT05MWV9I
RUFQIDEKLSNkZWZpbmUgUEFTX1VTRV9DT01QQUNUX09OTFlfVFpPTkVfSEVBUCBQQVNfVVNFX01U
RQotI2VuZGlmCi0KLSNkZWZpbmUgUEFTX01URV9GRUFUVVJFX1JFVEFHX09OX0ZSRUUgMAotI2Rl
ZmluZSBQQVNfTVRFX0ZFQVRVUkVfTE9HX09OX1RBRyAxCi0jZGVmaW5lIFBBU19NVEVfRkVBVFVS
RV9MT0dfT05fUFVSSUZZIDIKLSNkZWZpbmUgUEFTX01URV9GRUFUVVJFX0xPR19QQUdFX0FMTE9D
IDMKLSNkZWZpbmUgUEFTX01URV9GRUFUVVJFX1pFUk9fVEFHX0FMTCA0Ci0jZGVmaW5lIFBBU19N
VEVfRkVBVFVSRV9BREpBQ0VOVF9UQUdfRVhDTFVTSU9OIDUKLSNkZWZpbmUgUEFTX01URV9GRUFU
VVJFX0FTU0VSVF9BREpBQ0VOVF9UQUdTX0FSRV9ESVNKT0lOVCA2Ci0KLSNkZWZpbmUgUEFTX01U
RV9GRUFUVVJFX0ZPUkNFRChmZWF0dXJlKSAoMCkKLSNkZWZpbmUgUEFTX01URV9GRUFUVVJFX1BS
SVZJTEVHRURfRk9SQ0VEKGZlYXR1cmUpIChmZWF0dXJlID09IFBBU19NVEVfRkVBVFVSRV9BREpB
Q0VOVF9UQUdfRVhDTFVTSU9OKQotI2RlZmluZSBQQVNfTVRFX0ZFQVRVUkVfV0NQX0ZPUkNFRChm
ZWF0dXJlKSAoMCkKLSNkZWZpbmUgUEFTX01URV9GRUFUVVJFX0RFQlVHX0ZPUkNFRChmZWF0dXJl
KSAoZmVhdHVyZSA9PSBQQVNfTVRFX0ZFQVRVUkVfQVNTRVJUX0FESkFDRU5UX1RBR1NfQVJFX0RJ
U0pPSU5UKQotCi0jZGVmaW5lIFBBU19NVEVfRkVBVFVSRV9GT1JDRURfSU5fUkVMRUFTRV9CVUlM
RChmZWF0dXJlKSBcCi0gICAgKFBBU19NVEVfRkVBVFVSRV9GT1JDRUQoZmVhdHVyZSkgfHwgXAot
ICAgICAoUEFTX01URV9GRUFUVVJFX1BSSVZJTEVHRURfRk9SQ0VEKGZlYXR1cmUpICYmICFQQVNf
TVRFX0lTX0lOX1dDUCkgfHwgXAotICAgICAoUEFTX01URV9GRUFUVVJFX1dDUF9GT1JDRUQoZmVh
dHVyZSkgJiYgUEFTX01URV9JU19JTl9XQ1ApKQotCi0jZGVmaW5lIFBBU19NVEVfRkVBVFVSRV9G
T1JDRURfSU5fREVCVUdfQlVJTEQoZmVhdHVyZSkgXAotICAgIChQQVNfTVRFX0ZFQVRVUkVfRk9S
Q0VEX0lOX1JFTEVBU0VfQlVJTEQoZmVhdHVyZSkgfHwgXAotICAgICBQQVNfTVRFX0ZFQVRVUkVf
REVCVUdfRk9SQ0VEKGZlYXR1cmUpIHx8IFwKLSAgICAgUEFTX01URV9DT05GSUdfRklFTEQoUEFT
X01URV9NT0RFX0JJVFMsIGZlYXR1cmUpKQotCi0jaWZuZGVmIE5ERUJVRwotI2RlZmluZSBQQVNf
TVRFX0ZFQVRVUkVfRU5BQkxFRChmZWF0dXJlKSAoUEFTX1VTRV9NVEUgJiYgUEFTX01URV9GRUFU
VVJFX0ZPUkNFRF9JTl9ERUJVR19CVUlMRChmZWF0dXJlKSkKLSNlbHNlCi0jZGVmaW5lIFBBU19N
VEVfRkVBVFVSRV9FTkFCTEVEKGZlYXR1cmUpIChQQVNfVVNFX01URSAmJiBQQVNfTVRFX0ZFQVRV
UkVfRk9SQ0VEX0lOX1JFTEVBU0VfQlVJTEQoZmVhdHVyZSkpCi0jZW5kaWYKLQotI2Vsc2UgLy8g
IVBBU19FTkFCTEVfTVRFCi0jZGVmaW5lIFBBU19VU0VfTVRFICgwKQotI2RlZmluZSBQQVNfVVNF
X01URV9JTl9XRUJDT05URU5UICgwKQotI2RlZmluZSBQQVNfTVRFX0ZFQVRVUkVfRU5BQkxFRChm
ZWF0dXJlKSAoMCkKLSNlbmRpZiAvLyBQQVNfRU5BQkxFX01URQotCi0jaWZkZWYgX19jcGx1c3Bs
dXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi12b2lkIHBhc19tdGVfZW5zdXJlX2luaXRpYWxpemVk
KHZvaWQpOwotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoUEFT
X0JNQUxMT0MpICYmIEJFTkFCTEUoTElCUEFTKQotI2lmIEJFTkFCTEVfTVRFICE9IFBBU19FTkFC
TEVfTVRFCi0jZXJyb3IgImNhbm5vdCBlbmFibGUgTVRFIGluIGxpYnBhcyB3aXRob3V0IGVuYWJs
aW5nIGl0IGluIGJtYWxsb2MsIG9yIHZpY2UgdmVyc2EiCi0jZW5kaWYKLQotI2RlZmluZSBCTUFM
TE9DX1ZNX01URSBQQVNfVk1fTVRFCi0jZGVmaW5lIEJNQUxMT0NfVVNFX01URSBQQVNfVVNFX01U
RQotCi0jZW5kaWYgLy8gZGVmaW5lZChQQVNfQk1BTExPQykgJiYgQkVOQUJMRShMSUJQQVMpCi0K
LSNlbmRpZiAvLyBQQVNfTVRFX0NPTkZJR19ICmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZy5oIGIvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWcuaAppbmRleCA0NDFjMDJiMjY1
ZDEuLjA4NGUzMDBhOTk4ZCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWcuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZy5oCkBAIC02OCw5ICs2OCw2IEBAIHN0cnVj
dCBwYXNfcGFnZV9iYXNlX2NvbmZpZyB7CiAgICAgLyogd2hldGhlciBwcm9maWxpbmcgbWFjcm9z
IHNob3VsZCBpZ25vcmUgcGFnZXMgb2YgdGhpcyBraW5kICovCiAgICAgYm9vbCBhbGxvd19wcm9m
aWxpbmc7CiAKLSAgICAvKiBXaGV0aGVyIHRoaXMgcGFnZSBjYW4gYmUgYWxsb2NhdGVkIHdpdGgg
YmFja2luZyBNVEUgdGFnIG1lbW9yeS4gKi8KLSAgICBib29sIGFsbG93X210ZV90YWdnaW5nOwot
CiAgICAgLyogVGhpcyBwb2ludHMgdG8gdGhlIG93bmluZyBoZWFwIGNvbmZpZy4gQ3VycmVudGx5
IHRoZXJlIGlzIGFsd2F5cyBhbiBvd25pbmcgaGVhcCBjb25maWcuICovCiAgICAgY29uc3QgcGFz
X2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZ19wdHI7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oIGIv
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRp
bHMuaAppbmRleCBiY2U4N2RkZjBiYzMuLjBkNjQ0NThiZDBkNCAxMDA2NDQKLS0tIGEvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaAor
KysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZp
Z191dGlscy5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCiAj
aW5jbHVkZSAicGFzX2ludGVybmFsX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19tdGUuaCIKICNp
bmNsdWRlICJwYXNfcGFnZV9iYXNlX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19wYWdlX2hlYWRl
cl9wbGFjZW1lbnRfbW9kZS5oIgogI2luY2x1ZGUgInBhc19wYWdlX2hlYWRlcl90YWJsZS5oIgpA
QCAtNzAsMjEgKzY5LDE2IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgY2FzZSBwYXNfcGFn
ZV9oZWFkZXJfYXRfaGVhZF9vZl9wYWdlOiB7IFwKICAgICAgICAgICAgIHVpbnRwdHJfdCBwdHIg
PSAodWludHB0cl90KWJvdW5kYXJ5OyBcCiAgICAgICAgICAgICBQQVNfUFJPRklMRShQQUdFX0JB
U0VfRlJPTV9CT1VOREFSWSwgcHRyKTsgXAotICAgICAgICAgICAgUEFTX01URV9IQU5ETEUoUEFH
RV9CQVNFX0ZST01fQk9VTkRBUlksIHB0cik7IFwKICAgICAgICAgICAgIHJldHVybiAocGFzX3Bh
Z2VfYmFzZSopcHRyOyBcCiAgICAgICAgIH0gXAogICAgICAgICBcCiAgICAgICAgIGNhc2UgcGFz
X3BhZ2VfaGVhZGVyX2luX3RhYmxlOiB7IFwKICAgICAgICAgICAgIHVpbnRwdHJfdCBwYWdlX2Jh
c2UgPSAodWludHB0cl90KWJvdW5kYXJ5OyBcCiAgICAgICAgICAgICBQQVNfUFJPRklMRShQQUdF
X0JBU0VfRlJPTV9CT1VOREFSWSwgcGFnZV9iYXNlKTsgXAotICAgICAgICAgICAgUEFTX01URV9I
QU5ETEUoUEFHRV9CQVNFX0ZST01fQk9VTkRBUlksIHBhZ2VfYmFzZSk7IFwKICAgICAgICAgICAg
IHBhZ2VfYmFzZSA9ICh1aW50cHRyX3QpcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2dldF9mb3JfYm91
bmRhcnkoIFwKICAgICAgICAgICAgICAgICBhcmd1bWVudHMuaGVhZGVyX3RhYmxlLCBjb25maWcu
cGFnZV9zaXplLCAocGFzX3BhZ2VfYmFzZSopcGFnZV9iYXNlKTsgXAogICAgICAgICAgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKHBhZ2VfYmFzZSk7IFwKICAgICAgICAgICAgIFBBU19QUk9GSUxFKFBB
R0VfQkFTRV9GUk9NX1RBQkxFLCBwYWdlX2Jhc2UpOyBcCi0gICAgICAgICAgICAvKiBEb2VzIG5v
dCBuZWVkIHRvIGJlIE1URS10YWdnZWQgc2luY2UgcGFnZS1iYXNlcyBzaG91bGQgYWx3YXlzICov
IFwKLSAgICAgICAgICAgIC8qIGJlIHplcm8tdGFnZ2VkLCBhbmQgdGhlIHBhZ2UgaGVhZGVyIHRh
YmxlIHNob3VsZCBhbHJlYWR5IGhhdmUgKi8gXAotICAgICAgICAgICAgLyogY2xlYXJlZCB0aGUg
cG9pbnRlciBpdCBnYXZlIHVzLiAqLyBcCiAgICAgICAgICAgICByZXR1cm4gKHBhc19wYWdlX2Jh
c2UqKXBhZ2VfYmFzZTsgXAogICAgICAgICB9IH0gXAogICAgICAgICBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuYyBi
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2hlYWRlcl90YWJsZS5j
CmluZGV4IGU3ZGVlOTQ2NDcyMi4uMTFhNjg4MDQ4OGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuYworKysgYi9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuYwpAQCAt
NDMsNyArNDMsNiBAQCBwYXNfcGFnZV9iYXNlKiBwYXNfcGFnZV9oZWFkZXJfdGFibGVfYWRkKHBh
c19wYWdlX2hlYWRlcl90YWJsZSogdGFibGUsCiAKICAgICB1aW50cHRyX3QgYm91bmRhcnlfaW50
ID0gKHVpbnRwdHJfdClib3VuZGFyeTsKICAgICBQQVNfUFJPRklMRShQQUdFX0hFQURFUl9UQUJM
RV9BREQsIGJvdW5kYXJ5X2ludCk7Ci0gICAgUEFTX01URV9IQU5ETEUoUEFHRV9IRUFERVJfVEFC
TEVfQURELCBib3VuZGFyeV9pbnQpOwogICAgIGJvdW5kYXJ5ID0gKHZvaWQqKWJvdW5kYXJ5X2lu
dDsKIAogICAgIGlmICh2ZXJib3NlKQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuaAppbmRleCAxMGJmOWMzODkyMmQu
LjBjOGM5MjMwZWRlNSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZp
bmUgUEFTX1BBR0VfSEVBREVSX1RBQkxFX0gKIAogI2luY2x1ZGUgInBhc19sb2NrX2ZyZWVfcmVh
ZF9wdHJfcHRyX2hhc2h0YWJsZS5oIgotI2luY2x1ZGUgInBhc19tdGUuaCIKIAogUEFTX0JFR0lO
X0VYVEVSTl9DOwogCkBAIC05Nyw3ICs5Niw2IEBAIHBhc19wYWdlX2hlYWRlcl90YWJsZV9nZXRf
Zm9yX2JvdW5kYXJ5KHBhc19wYWdlX2hlYWRlcl90YWJsZSogdGFibGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgID09IGJlZ2luKTsKIAogICAgIFBBU19QUk9GSUxFKFBBR0VfSEVBREVSX1RBQkxF
X0dFVCwgYmVnaW4pOwotICAgIFBBU19NVEVfSEFORExFKFBBR0VfSEVBREVSX1RBQkxFX0dFVCwg
YmVnaW4pOwogICAgIGJvdW5kYXJ5ID0gKHZvaWQqKWJlZ2luOwogICAgIHJldHVybiAocGFzX3Bh
Z2VfYmFzZSopcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlX2ZpbmQoCiAgICAg
ICAgICZ0YWJsZS0+aGFzaHRhYmxlLCBwYXNfcGFnZV9oZWFkZXJfdGFibGVfaGFzaCwgKHZvaWQq
KXBhZ2Vfc2l6ZSwgYm91bmRhcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfcGFnZV9tYWxsb2MuYwppbmRleCBjNDMzNjAzYTMzOGUuLjhkMTJjZDhlYzMz
YiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vf
bWFsbG9jLmMKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vf
bWFsbG9jLmMKQEAgLTQ0LDcgKzQ0LDYgQEAKIAogI2luY2x1ZGUgInBhc19pbnRlcm5hbF9jb25m
aWcuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCi0jaW5jbHVkZSAicGFzX210ZS5oIgogI2luY2x1
ZGUgInBhc191dGlscy5oIgogI2luY2x1ZGUgInBhc196ZXJvX21lbW9yeS5oIgogCkBAIC0xNDcs
MTQgKzE0NiwxMiBAQCBwYXNfcGFnZV9tYWxsb2NfdHJ5X21hcF9wYWdlcyhzaXplX3Qgc2l6ZSwg
Ym9vbCBtYXlfY29udGFpbl9zbWFsbF9vcl9tZWRpdW0pCiB7CiAjaWYgUEFTX09TKFdJTkRPV1Mp
CiAgICAgUEFTX1BST0ZJTEUoUEFHRV9BTExPQ0FUSU9OLCBzaXplLCBtYXlfY29udGFpbl9zbWFs
bF9vcl9tZWRpdW0sIFBBU19WTV9UQUcpOwotICAgIFBBU19NVEVfSEFORExFKFBBR0VfQUxMT0NB
VElPTiwgc2l6ZSwgbWF5X2NvbnRhaW5fc21hbGxfb3JfbWVkaXVtLCBQQVNfVk1fVEFHKTsKIAog
ICAgIHJldHVybiB2aXJ0dWFsX2FsbG9jX3dpdGhfcmV0cnkoTlVMTCwgc2l6ZSwgTUVNX0NPTU1J
VCB8IE1FTV9SRVNFUlZFLCBQQUdFX1JFQURXUklURSk7CiAjZWxzZQogICAgIHZvaWQqIG1tYXBf
cmVzdWx0ID0gTlVMTDsKIAogICAgIFBBU19QUk9GSUxFKFBBR0VfQUxMT0NBVElPTiwgc2l6ZSwg
bWF5X2NvbnRhaW5fc21hbGxfb3JfbWVkaXVtLCBQQVNfVk1fVEFHKTsKLSAgICBQQVNfTVRFX0hB
TkRMRShQQUdFX0FMTE9DQVRJT04sIHNpemUsIG1heV9jb250YWluX3NtYWxsX29yX21lZGl1bSwg
UEFTX1ZNX1RBRyk7CiAKICAgICBtbWFwX3Jlc3VsdCA9IG1tYXAoTlVMTCwgc2l6ZSwgUFJPVF9S
RUFEIHwgUFJPVF9XUklURSwgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTiB8IFBBU19OT1JFU0VSVkUs
IFBBU19WTV9UQUcsIDApOwogICAgIGlmIChtbWFwX3Jlc3VsdCA9PSBNQVBfRkFJTEVEKSB7CkBA
IC0zMTEsNyArMzA4LDYgQEAgdm9pZCBwYXNfcGFnZV9tYWxsb2NfemVyb19maWxsKHZvaWQqIGJh
c2UsIHNpemVfdCBzaXplKQogI2VuZGlmIC8qIFBBU19VU0VfTUFEVl9aRVJPICovCiAKICAgICBQ
QVNfUFJPRklMRShaRVJPX0ZJTExfUEFHRSwgYmFzZSwgc2l6ZSwgZmxhZ3MsIHRhZyk7Ci0gICAg
UEFTX01URV9IQU5ETEUoWkVST19GSUxMX1BBR0UsIGJhc2UsIHNpemUsIGZsYWdzLCB0YWcpOwog
ICAgIHJlc3VsdF9wdHIgPSBtbWFwKGJhc2UsIHNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUs
IGZsYWdzLCB0YWcsIDApOwogICAgIFBBU19BU1NFUlQocmVzdWx0X3B0ciA9PSBiYXNlKTsKICNl
bmRpZiAvKiBQQVNfT1MoV0lORE9XUykgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19wbGF0Zm9ybS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3BsYXRmb3JtLmgKaW5kZXggNjU0NjI1MDhkYjczLi43OWU4ZjhiMmE3MDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wbGF0Zm9y
bS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wbGF0Zm9ybS5o
CkBAIC0yMDMsMTcgKzIwMyw2IEBACiAjZXJyb3IgIlVuc3VwcG9ydGVkIGNvbXBpbGVyIGZvciBs
aWJwYXMiCiAjZW5kaWYKIAotI2lmIFBBU19QTEFURk9STShDT0NPQSkKLS8qIFNob3VsZCBiZSBh
bGlnbmVkIHdpdGggdGhlIGRlZmluaXRpb24gaW4gV1RGL3d0Zi9QbGF0Zm9ybVVzZS5oICovCi0j
aWYgZGVmaW5lZCBfX2hhc19pbmNsdWRlICYmIF9faGFzX2luY2x1ZGUoPENvcmVGb3VuZGF0aW9u
L0NGUHJpdi5oPikKLSNkZWZpbmUgUEFTX1VTRV9BUFBMRV9JTlRFUk5BTF9TREsgMQotI2Vsc2UK
LSNkZWZpbmUgUEFTX1VTRV9BUFBMRV9JTlRFUk5BTF9TREsgMAotI2VuZGlmCi0jZWxzZSAvLyAh
UEFTX1BMQVRGT1JNKENPQ09BKQotI2RlZmluZSBQQVNfVVNFX0FQUExFX0lOVEVSTkFMX1NESyAw
Ci0jZW5kaWYgLy8gUEFTX1BMQVRGT1JNKENPQ09BKQotCiAvKiBQQVNfQUxMT1dfVU5TQUZFX0JV
RkZFUl9VU0FHRSAqLwogCiAjaWYgUEFTX0NPTVBJTEVSKENMQU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFs
bG9jX2FsbG9jYXRvci5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3By
b2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRvci5jCmluZGV4IGZmM2FkZWZhN2RjYy4u
NGExN2JkZDlkNTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmMKKysrIGIvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9j
X2FsbG9jYXRvci5jCkBAIC0zMiw3ICszMiw2IEBACiAKICNpbmNsdWRlICJwYXNfaGVhcC5oIgog
I2luY2x1ZGUgInBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgotI2luY2x1ZGUgInBhc19t
dGUuaCIKICNpbmNsdWRlICJwYXNfcmFuZG9tLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVh
cC5oIgogI2luY2x1ZGUgPHN0ZGJvb2wuaD4KQEAgLTIxMiw3ICsyMTEsNiBAQCBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHQgcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRlKHBhc19s
YXJnZV9oZWFwKiBsYQogI2VuZGlmCiAKICAgICBQQVNfUFJPRklMRShQR01fQUxMT0NBVEUsIGhl
YXBfY29uZmlnLCBrZXkpOwotICAgIFBBU19NVEVfSEFORExFKFBHTV9BTExPQ0FURSwgaGVhcF9j
b25maWcsIGtleSk7CiAKICAgICAvKiBjcmVhdGUgc3RydWN0IHRvIGhvbGQgaGFzaCBtYXAgdmFs
dWUgKi8KICAgICBwYXNfcGdtX3N0b3JhZ2UqIHZhbHVlID0gcGFzX3V0aWxpdHlfaGVhcF90cnlf
YWxsb2NhdGUoc2l6ZW9mKHBhc19wZ21fc3RvcmFnZSksICJwYXNfcGdtX2hhc2hfbWFwX1ZBTFVF
Iik7CkBAIC0yNjIsNyArMjYwLDYgQEAgdm9pZCBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxs
b2NfZGVhbGxvY2F0ZSh2b2lkKiBtZW0pCiAKICAgICB1aW50cHRyX3Qga2V5ID0gKHVpbnRwdHJf
dCltZW07CiAgICAgUEFTX1BST0ZJTEUoUEdNX0RFQUxMT0NBVEUsIGtleSk7Ci0gICAgUEFTX01U
RV9IQU5ETEUoUEdNX0RFQUxMT0NBVEUsIGtleSk7CiAKICAgICBwYXNfcHRyX2hhc2hfbWFwX2Vu
dHJ5KiBlbnRyeSA9IHBhc19wdHJfaGFzaF9tYXBfZmluZCgmcGFzX3BnbV9oYXNoX21hcCwgKHZv
aWQqKWtleSk7CiAgICAgaWYgKCFlbnRyeSB8fCAhZW50cnktPnZhbHVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Jvb3QuYyBiL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19yb290LmMKaW5kZXggMGI4ZGNlM2I0NDE0Li5hMjZm
YmZjMTZjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19yb290LmMKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Jvb3Qu
YwpAQCAtMjQsNyArMjQsNiBAQAogICovCiAKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KICNp
ZiBMSUJQQVNfRU5BQkxFRAogI2luY2x1ZGUgInBhc196ZXJvX21lbW9yeS5oIgogI2luY2x1ZGUg
InBhc19yb290LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2NhdmVuZ2VyLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2NhdmVuZ2VyLmMKaW5kZXggNDdhMGZkMmExYWJlLi5lNzcyYjA4NTk5MDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYworKysgYi9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmMKQEAgLTM4LDcg
KzM4LDYgQEAKICNpbmNsdWRlICJwYXNfaW1tb3J0YWxfaGVhcC5oIgogI2luY2x1ZGUgInBhc19s
YXJnZV9leHBlbmRhYmxlX21lbW9yeS5oIgogI2luY2x1ZGUgInBhc19sb2NrLmgiCi0jaW5jbHVk
ZSAicGFzX210ZS5oIgogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgogI2luY2x1
ZGUgInBhc19zdGF0dXNfcmVwb3J0ZXIuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlLmgiCkBAIC0yMTUsNyArMjE0LDYgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRf
bWFpbih2b2lkKiBhcmcpCiAjZW5kaWYKIAogICAgIFBBU19QUk9GSUxFKFNDQVZFTkdFUl9USFJF
QURfTUFJTiwgZGF0YSk7Ci0gICAgUEFTX01URV9IQU5ETEUoU0NBVkVOR0VSX1RIUkVBRF9NQUlO
LCBkYXRhKTsKIAogICAgIGZvciAoOzspIHsKICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3NjYXZlbmdlX3Jlc3VsdCBzY2F2ZW5nZV9yZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCBiL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5l
cy5oCmluZGV4IGNkZmIwZTlhOTJlOS4uYWY4ODk3OTcwMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaAor
KysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdl
X2lubGluZXMuaApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgog
I2luY2x1ZGUgInBhc19sb2cuaCIKLSNpbmNsdWRlICJwYXNfbXRlLmgiCiAjaW5jbHVkZSAicGFz
X3BhZ2VfYmFzZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0
aW9uX21vZGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxp
bmVzLmgiCkBAIC00NjYsNyArNDY1LDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRl
X3dpdGhfcGFnZShwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAgIH0KIAogICAgIFBBU19Q
Uk9GSUxFKFNFR1JFR0FURURfUEFHRV9ERUFMTE9DQVRJT04sIHBhZ2VfY29uZmlnLCBiZWdpbiwg
b2JqZWN0X3NpemUpOwotICAgIFBBU19NVEVfSEFORExFKFNFR1JFR0FURURfUEFHRV9ERUFMTE9D
QVRJT04sIHBhZ2VfY29uZmlnLCBiZWdpbiwgb2JqZWN0X3NpemUpOwogCiAgICAgaWYgKHBhZ2Vf
Y29uZmlnLmJhc2UucGFnZV9zaXplID4gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemUpIHsK
ICAgICAgICAgLyogVGhpcyBpcyB0aGUgcGFydGlhbCBkZWNvbW1pdCBjYXNlLiBJdCdzIGludGVu
ZGVkIGZvciBtZWRpdW0gcGFnZXMuIEl0IHJlcXVpcmVzIGRvaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc21hbGxfbWVkaXVtX2Jvb3RzdHJhcF9o
ZWFwX3BhZ2VfcHJvdmlkZXIuYyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zbWFsbF9tZWRpdW1fYm9vdHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5jCmluZGV4IDdlNDc1
YTE4Y2E0Ny4uN2QyMjk1ODhkZjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc21hbGxfbWVkaXVtX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIu
YworKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc21hbGxfbWVkaXVt
X2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuYwpAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgInBhc19zbWFsbF9tZWRpdW1fYm9vdHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5oIgogCiAj
aW5jbHVkZSAicGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXAuaCIKLSNpbmNsdWRlICJwYXNfbXRlLmgi
CiAjaW5jbHVkZSAicGFzX3NtYWxsX21lZGl1bV9ib290c3RyYXBfZnJlZV9oZWFwLmgiCiAKIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCBwYXNfc21hbGxfbWVkaXVtX2Jvb3RzdHJhcF9oZWFwX3BhZ2Vf
cHJvdmlkZXIoCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdGhyZWFkX2xvY2FsX2NhY2hlLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgKaW5kZXggNzdiZmE4YTQxN2IyLi40YjZmZjUyY2Fj
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGUuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJwYXNf
bWFsbG9jX3N0YWNrX2xvZ2dpbmcuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kX2FuZF9yb2xlLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCi0jaW5jbHVkZSAi
cGFzX3plcm9fbWVtb3J5LmgiCiAKICNpbmNsdWRlICJwYXNfdGhyZWFkLmgiCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5o
IGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmgK
aW5kZXggMGFjNmJlNGNjNTVkLi40MTg4Y2JmNDg4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5oCisrKyBiL1NvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5oCkBAIC0zMCw3ICsz
MCw2IEBACiAjaW5jbHVkZSAicGFzX2RlYWxsb2NhdGUuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2Vf
bWFwLmgiCiAjaW5jbHVkZSAicGFzX21hbGxvY19zdGFja19sb2dnaW5nLmgiCi0jaW5jbHVkZSAi
cGFzX210ZS5oIgogI2luY2x1ZGUgInBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZS5oIgogI2luY2x1
ZGUgInBhc19yZWFsbG9jYXRlX2hlYXBfdGVsZXBvcnRfcnVsZS5oIgogI2luY2x1ZGUgInBhc190
cnlfYWxsb2NhdGUuaCIKQEAgLTEwMyw3ICsxMDIsNiBAQCBwYXNfdHJ5X2FsbG9jYXRlX2Zvcl9y
ZWFsbG9jYXRlX2FuZF9jb3B5KAogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBh
c19sb2coImNvcHlpbmcgc2l6ZSAlenUgZnJvbSAlcCB0byAlcFxuIiwgY29weV9zaXplLCBvbGRf
cHRyLCAodm9pZCopcmVzdWx0LmJlZ2luKTsKICAgICAgICAgUEFTX1BST0ZJTEUoVFJZX1JFQUxM
T0NBVEVfQU5EX0NPUFksIHJlc3VsdC5iZWdpbiwgb2xkX3B0ciwgY29weV9zaXplKTsKLSAgICAg
ICAgUEFTX01URV9IQU5ETEUoVFJZX1JFQUxMT0NBVEVfQU5EX0NPUFksIHJlc3VsdC5iZWdpbiwg
b2xkX3B0ciwgY29weV9zaXplKTsKICAgICAgICAgbWVtY3B5KCh2b2lkKilyZXN1bHQuYmVnaW4s
IG9sZF9wdHIsIGNvcHlfc2l6ZSk7CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAg
cGFzX2xvZygiXHQuLi5kb25lIGNvcHlpbmcgc2l6ZSAlenUgZnJvbSAlcCB0byAlcFxuIiwgY29w
eV9zaXplLCBvbGRfcHRyLCAodm9pZCopcmVzdWx0LmJlZ2luKTsKQEAgLTM1NSw3ICszNTMsNiBA
QCBwYXNfdHJ5X3JlYWxsb2NhdGUodm9pZCogb2xkX3B0ciwKICAgICAgICAgfQogCiAgICAgICAg
IFBBU19QUk9GSUxFKExBUkdFX01BUF9GT1VORF9FTlRSWSwgJmNvbmZpZywgZW50cnkuYmVnaW4s
IGVudHJ5LmVuZCk7Ci0gICAgICAgIFBBU19NVEVfSEFORExFKExBUkdFX01BUF9GT1VORF9FTlRS
WSwgJmNvbmZpZywgZW50cnkuYmVnaW4sIGVudHJ5LmVuZCk7CiAgICAgICAgIFBBU19BU1NFUlQo
ZW50cnkuYmVnaW4gPT0gYmVnaW4pOwogICAgICAgICBQQVNfQVNTRVJUKGVudHJ5LmVuZCA+IGJl
Z2luKTsKICAgICAgICAgUEFTX0FTU0VSVChlbnRyeS5oZWFwKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmlnLmggYi9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5o
CmluZGV4IGQyZDA0NzBjYWQ5YS4uNWJjNzgzZGNmYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmlnLmgK
QEAgLTk0LDcgKzk0LDYgQEAgUEFTX0FQSSB2b2lkIHBhc191dGlsaXR5X2hlYXBfY29uZmlnX2R1
bXBfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2FyZygKICAgICAgICAgICAgIC5iYXNlID0geyBcCiAg
ICAgICAgICAgICAgICAgLmlzX2VuYWJsZWQgPSB0cnVlLCBcCiAgICAgICAgICAgICAgICAgLmFs
bG93X3Byb2ZpbGluZyA9IHRydWUsIFwKLSAgICAgICAgICAgICAgICAuYWxsb3dfbXRlX3RhZ2dp
bmcgPSB0cnVlLCBcCiAgICAgICAgICAgICAgICAgLmhlYXBfY29uZmlnX3B0ciA9ICZwYXNfdXRp
bGl0eV9oZWFwX2NvbmZpZywgXAogICAgICAgICAgICAgICAgIC5wYWdlX2NvbmZpZ19wdHIgPSAm
cGFzX3V0aWxpdHlfaGVhcF9jb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFzZSwgXAog
ICAgICAgICAgICAgICAgIC5wYWdlX2NvbmZpZ19raW5kID0gcGFzX3BhZ2VfY29uZmlnX2tpbmRf
c2VncmVnYXRlZCwgXApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3V0aWxzLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRp
bHMuaAppbmRleCA1OGZiYjU3NGNlNGIuLjI0NjhhMDE4YjIwYiAxMDA2NDQKLS0tIGEvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgKKysrIGIvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgKQEAgLTU3LDEwICs1Nyw2IEBAIFBBU19J
R05PUkVfQ0xBTkdfV0FSTklOR1NfQkVHSU4oInF1YWxpZmllci1yZXF1aXJlcy1oZWFkZXIiKQog
I2RlZmluZSBQQVNfQkVHSU5fRVhURVJOX0MgX19QQVNfQkVHSU5fRVhURVJOX0MKICNkZWZpbmUg
UEFTX0VORF9FWFRFUk5fQyBfX1BBU19FTkRfRVhURVJOX0MKIAotI2lmIGRlZmluZWQoUEFTX0JN
QUxMT0MpICYmIFBBU19CTUFMTE9DCi0jaW5jbHVkZSAicGFzX210ZV9jb25maWcuaCIKLSNlbmRp
ZiAvLyBkZWZpbmVkKFBBU19CTUFMTE9DKSAmJiBQQVNfQk1BTExPQwotCiAjaWYgZGVmaW5lZChQ
QVNfQk1BTExPQykgJiYgUEFTX0JNQUxMT0MKICNpZiBkZWZpbmVkKF9faGFzX2luY2x1ZGUpCiAj
aWYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL3Bhc191dGlsc19hZGRpdGlvbnMuaD4p
ICYmICFQQVNfRU5BQkxFX1RFU1RJTkcKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc196ZXJvX21lbW9yeS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3plcm9fbWVtb3J5LmgKaW5kZXggYjM2OGIxNDU5ODY3Li5kNGUwMjNhZDEx
MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc196ZXJv
X21lbW9yeS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc196ZXJv
X21lbW9yeS5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWZuZGVmIFBBU19aRVJPX01FTU9SWV9ICiAj
ZGVmaW5lIFBBU19aRVJPX01FTU9SWV9ICiAKLSNpbmNsdWRlICJwYXNfbXRlLmgiCiAjaW5jbHVk
ZSAicGFzX3V0aWxzLmgiCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAKQEAgLTM2LDcgKzM1LDYgQEAg
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3plcm9fbWVtb3J5KHZvaWQqIG1lbW9y
eSwgc2l6ZV90IHNpemUpCiB7CiAgICAgUEFTX0FMTE9XX1VOU0FGRV9CVUZGRVJfVVNBR0VfQkVH
SU4KICAgICBQQVNfUFJPRklMRShaRVJPX01FTU9SWSwgbWVtb3J5LCBzaXplKTsKLSAgICBQQVNf
TVRFX0hBTkRMRShaRVJPX01FTU9SWSwgbWVtb3J5LCBzaXplKTsKICAgICBtZW1zZXQobWVtb3J5
LCAwLCBzaXplKTsKICAgICBQQVNfQUxMT1dfVU5TQUZFX0JVRkZFUl9VU0FHRV9FTkQKIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQppbmRleCBkMmNiNDE4NjU4MzIuLmU1
Y2M1NmYxODM3NyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpAQCAt
MzczLDE3ICszNzMsMTAgQEAgX1BBVEhfUlVMRVNfU1BFQ0lGSUVSID0gWwogICAgIChbCiAgICAg
ICAjIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvIGlzIGZpcnN0LXBhcnR5IGNvZGUsIGJ1dCBs
YXJnZWx5IG9wZXJhdGVzCiAgICAgICAjIGFzIGFuIHNlcGFyYXRlIGNvZGViYXNlLCB3aXRoIGEg
ZmV3IGRpZmZlcmVudCBzdHlsZSBydWxlcy4KLSAgICAgICMgSXQgYWxzbyBkb2VzIG5vdCBoYXZl
IGFjY2VzcyB0byBhbnkgb2YgV1RGJ3Mgc2FmZS1jcHAgd3JhcHBlcnMsCi0gICAgICAjIGUuZy4g
bWVtc2V0U3Bhbi4KICAgICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ2JtYWxsb2MnLCAnbGli
cGFzJywgJ3NyYycpXSwKICAgICAgWyItcmVhZGFiaWxpdHkvbmFtaW5nL3VuZGVyc2NvcmVzIiwK
LSAgICAgICItcmVhZGFiaWxpdHkvcGFyYW1ldGVyX25hbWUiLAogICAgICAgIi13aGl0ZXNwYWNl
L2RlY2xhcmF0aW9uIiwKLSAgICAgICItd2hpdGVzcGFjZS9pbmRlbnQiLAotICAgICAgIi1zYWZl
cmNwcC9wcmludGYiLAotICAgICAgIi1zYWZlcmNwcC9tZW1zZXQiLAotICAgICAgIi1zYWZlcmNw
cC9tZW1jcHkiLAotICAgICAgIi1zYWZlcmNwcC9zdHJuY21wIixdKSwKKyAgICAgICItd2hpdGVz
cGFjZS9pbmRlbnQiXSksCiAKICAgICAoWwogICAgICAgIyBUaGVyZSBpcyBubyB3YXkgdG8gYXZv
aWQgdGhlIHN5bWJvbHMgX19qaXRfZGVidWdfcmVnaXN0ZXJfY29kZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>