<?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>299465</bug_id>
          
          <creation_ts>2025-09-24 12:29:53 -0700</creation_ts>
          <short_desc>REGRESSION(300469@main): Broke Apple internal builds</short_desc>
          <delta_ts>2025-09-24 12:46:28 -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>
          <dependson>299467</dependson>
          <blocked>298803</blocked>
    
    <blocked>299464</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>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2145638</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-09-24 12:29:53 -0700</bug_when>
    <thetext>https://commits.webkit.org/300469@main introduced a regression:
Broke Apple internal builds

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>2145641</commentid>
    <comment_count>1</comment_count>
      <attachid>476849</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-09-24 12:30:26 -0700</bug_when>
    <thetext>Created attachment 476849
REVERT of 300469@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>2145642</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-09-24 12:33:15 -0700</bug_when>
    <thetext>Committed 300475@main (ad44c1173ed4): &lt;https://commits.webkit.org/300475@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 476849.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2145644</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-09-24 12:34:56 -0700</bug_when>
    <thetext>&lt;rdar://problem/161266924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2145647</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2025-09-24 12:38:50 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 299467</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>476849</attachid>
            <date>2025-09-24 12:30:26 -0700</date>
            <delta_ts>2025-09-24 12:33:16 -0700</delta_ts>
            <desc>REVERT of 300469@main</desc>
            <filename>bug-299465-20250924193025.patch</filename>
            <type>text/plain</type>
            <size>153400</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSBiZGVhNDg3OTdhMTEzZjE4MzAxOTFlMTZjMGUzNDMxYmQyMGE3ZTI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDI0IFNlcCAyMDI1IDE5OjMwOjExICswMDAwClN1YmplY3Q6IFtQQVRDSF0g
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDMwMDQ2OUBtYWluIGFuZCAzMDA0NzRAbWFpbi4KIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTk0NjUKCkJyb2tlIEFwcGxlIGlu
dGVybmFsIGJ1aWxkcwoKUmV2ZXJ0ZWQgY2hhbmdlc2V0czoKCiJbbGlicGFzXSBJbXBsZW1lbnQg
cHJpbWFyeSBzdXBwb3J0IGZvciBNVEUiCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yOTg4MDMKaHR0cHM6Ly9jb21taXRzLndlYmtpdC5vcmcvMzAwNDY5QG1haW4KCiIz
MDA0NjlAbWFpbiBicm9rZSB0aGUgYnVpbGQuIgpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjk5NDY0Cmh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnLzMwMDQ3NEBtYWlu
Ci0tLQogU291cmNlL1dURi93dGYvV1RGQ29uZmlnLmNwcCAgICAgICAgICAgICAgICAgIHwgIDM3
ICstCiBTb3VyY2UvV1RGL3d0Zi9XVEZDb25maWcuaCAgICAgICAgICAgICAgICAgICAgfCAgMTQg
Ky0KIFNvdXJjZS9ibWFsbG9jL0NNYWtlTGlzdHMudHh0ICAgICAgICAgICAgICAgICB8ICAgNSAt
CiAuLi4vYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogfCAgMjAgLQog
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9CUGxhdGZvcm0uaCAgICAgICAgICAgIHwgIDI1IC0KIFNv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2UuY3BwICAgICAgICAgICB8ICAxNSAtCiBTb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jL0dpZ2FjYWdlQ29uZmlnLmggICAgICAgfCAgIDQgKy0KIFNvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvU3lzdGVtSGVhcC5jcHAgICAgICAgICB8ICAgNyAtCiBTb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuY3BwICAgICAgICAgfCAgMzQgLQogU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmggICAgICAgICAgIHwgIDEwIC0KIC4uLi9saWJwYXMv
bGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogICB8ICAyMCAtCiAuLi4vbGlicGFzL3Ny
Yy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMgICAgICAgfCAgIDEgLQogLi4uL2xpYnBhcy9zcmMv
bGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oICAgICAgIHwgICAyIC0KIC4uLi9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyB8ICAgMyAtCiAuLi4vbGlicGFzL3NyYy9saWJw
YXMvcGFzX2FsbG9jYXRpb25fcmVzdWx0LmggfCAgIDMgLQogLi4uL3NyYy9saWJwYXMvcGFzX2Jh
c2VsaW5lX2FsbG9jYXRvci5jICAgICAgIHwgICAxIC0KIC4uLi9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X3BhZ2UuYyAgICAgICB8ICAgMSAtCiAuLi4vc3JjL2xpYnBhcy9wYXNfYml0Zml0
X3BhZ2VfaW5saW5lcy5oICAgICAgfCAgIDMgLQogLi4uL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
aGVhcF9yZXNlcnZhdGlvbi5jIHwgICAxIC0KIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb25maWcuaCB8ICAxMiAtCiAuLi5pY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVz
ZXJ2ZWRfbWVtb3J5LmMgfCAgIDIgLQogLi4uL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJh
dG9yLmMgICAgICAgIHwgICAxIC0KIC4uLi9zcmMvbGlicGFzL3Bhc19mYXN0X2xhcmdlX2ZyZWVf
aGVhcC5jICAgICB8ICAgMSAtCiAuLi4vc3JjL2xpYnBhcy9wYXNfZmFzdF9tZWdhcGFnZV90YWJs
ZS5jICAgICAgfCAgIDEgLQogLi4uL3NyYy9saWJwYXMvcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUu
aCAgICAgIHwgICAxIC0KIC4uLi9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZnJlZV9ncmFudWxlcy5j
ICAgICB8ICAgMSAtCiAuLi4vc3JjL2xpYnBhcy9wYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oICAg
ICAgfCAgIDIgLQogLi4uL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2dldF9oZWFwLmgg
IHwgICAyIC0KIC4uLi9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oYXNodGFibGUuaCB8
ICAgMSAtCiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5jICAgfCAg
IDEgLQogLi4uL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5jIHwgICAx
IC0KIC4uLi9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaCB8ICAgNSAt
CiAuLi4vbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmggICAgfCAgIDcgLQog
Li4uL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcmVmLmMgIHwgICAxIC0KIC4u
Li9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW1tb3J0YWxfaGVhcC5jICAgICB8ICAgMSAtCiAuLi4v
bGlicGFzL3NyYy9saWJwYXMvcGFzX2ltbXV0YWJsZV92ZWN0b3IuaCAgfCAgIDEgLQogLi4uL3Ny
Yy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMgIHwgICAxIC0KIC4uLi9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcC5jICAgICAgICB8ICAgMyAtCiAuLi5zX2xhcmdl
X2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMgfCAgIDEgLQogLi4uL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX21hcC5jIHwgICA0IC0KIC4uLi9zcmMvbGlicGFz
L3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyAgICAgICB8ICAgNiAtCiAuLi4vbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jICAgfCAgIDEgLQogLi4uL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuaCAgIHwgICAyIC0KIC4uLi9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oICB8ICAgOSAtCiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jay5oICAgfCAgIDEgLQogLi4uL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19tZWdhcGFnZV9jYWNoZS5jICAgIHwgICAzIC0KIC4uLi9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19taW5faGVhcC5oICB8ICAgMSAtCiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfbXRlLmMgICAgfCAgNDIgLQogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX210ZS5oICAgIHwgOTUwIC0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19tdGVfY29uZmlnLmMgICAgICAgIHwgMTYyIC0tLQogLi4uL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19tdGVfY29uZmlnLmggICAgICAgIHwgMTY1IC0tLQogLi4uL3NyYy9saWJwYXMv
cGFzX3BhZ2VfYmFzZV9hbmRfa2luZC5oICAgICAgIHwgICAxIC0KIC4uLi9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZy5oICB8ICAgMyAtCiAuLi4vc3JjL2xpYnBhcy9wYXNf
cGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICAgfCAgIDYgLQogLi4uL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19wYWdlX2hlYWRlcl90YWJsZS5jIHwgICAxIC0KIC4uLi9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfcGFnZV9oZWFkZXJfdGFibGUuaCB8ICAgMiAtCiAuLi4vbGlicGFzL3NyYy9saWJwYXMvcGFz
X3BhZ2VfbWFsbG9jLmMgICAgICAgfCAgMTMgKy0KIC4uLi9saWJwYXMvcGFzX3BoeXNpY2FsX21l
bW9yeV90cmFuc2FjdGlvbi5jICB8ICAgMSAtCiAuLi4vYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfcGxhdGZvcm0uaCAgfCAgMTEgLQogLi4ucGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFs
bG9jX2FsbG9jYXRvci5jIHwgICAzIC0KIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19yb290LmMgICB8ICAgMSAtCiAuLi4vYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2NhdmVuZ2VyLmMgfCAgIDIgLQogLi4uL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdtZW50ZWRf
dmVjdG9yLmggIHwgICAxIC0KIC4uLi9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9o
ZWFwLmMgICB8ICAgMSAtCiAuLi4vbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZS5jICAgfCAgIDEgLQogLi4uL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVz
LmggIHwgICAzIC0KIC4uLi9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCAg
ICB8ICAgMSAtCiAuLi4vc3JjL2xpYnBhcy9wYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jICAg
fCAgIDEgLQogLi4ubWFsbF9tZWRpdW1fYm9vdHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5jIHwg
ICAxIC0KIC4uLi9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmMgICB8ICAg
MSAtCiAuLi4vbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0cmluZ19zdHJlYW0uYyAgICAgfCAgIDEg
LQogLi4uL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jICAgICAgIHwgICAxIC0K
IC4uLi9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaCAgICAgICB8ICAgMSAtCiAu
Li4vbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmggICAgfCAgIDEgLQogLi4u
L3NyYy9saWJwYXMvcGFzX3RpbnlfbGFyZ2VfbWFwX2VudHJ5LmggICAgIHwgICAxIC0KIC4uLi9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2NhdGUuaCAgICB8ICAgMyAtCiAuLi4vc3Jj
L2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oICAgICAgfCAgIDEgLQogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmggIHwgIDEyICstCiAuLi4vbGlicGFz
L3NyYy9saWJwYXMvcGFzX3plcm9fbWVtb3J5LmggICAgICAgfCAgMzkgLQogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5ICAgICAgIHwgICA5ICstCiA4MCBmaWxlcyBjaGFu
Z2VkLCAyMyBpbnNlcnRpb25zKCspLCAxNjk4IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAw
NjQ0IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGUuYwogZGVsZXRlIG1v
ZGUgMTAwNjQ0IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGUuaAogZGVs
ZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGVf
Y29uZmlnLmMKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfbXRlX2NvbmZpZy5oCiBkZWxldGUgbW9kZSAxMDA2NDQgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3plcm9fbWVtb3J5LmgKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9XVEZDb25maWcuY3BwIGIvU291cmNlL1dURi93dGYvV1RGQ29uZmlnLmNwcAppbmRl
eCBjOWVkY2Y0OGMxNzguLjU0N2UwYTAyZjcwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
V1RGQ29uZmlnLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XVEZDb25maWcuY3BwCkBAIC0yNiw4
ICsyNiw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSA8d3RmL1dURkNvbmZpZy5o
PgogCi0jaW5jbHVkZSA8Y3N0ZGlvPgotCiAjaW5jbHVkZSA8d3RmL0dpZ2FjYWdlLmg+CiAjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMzksMTUg
KzM3LDggQEAKICNpbmNsdWRlIDxtYWNoLW8vZ2V0c2VjdC5oPgogI2luY2x1ZGUgPG1hY2gtby9s
ZHN5bXMuaD4KICNpbmNsdWRlIDxtYWNoL3ZtX3BhcmFtLmg+Ci0jaW5jbHVkZSAidW5pc3RkLmgi
CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoX19oYXNfaW5jbHVkZSkKLSNpZiBfX2hhc19pbmNsdWRl
KDxsaWJwcm9jLmg+KQotI2luY2x1ZGUgPGxpYnByb2MuaD4KLSNlbmRpZiAvLyBfX2hhc19pbmNs
dWRlKDxsaWJwcm9jLmg+KQotI2VuZGlmIC8vIGRlZmluZWQoX19oYXNfaW5jbHVkZSkKLQogI2lm
IFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPHd0Zi9zcGkvY29jb2EvTWFjaFZNU1BJLmg+CiAj
aW5jbHVkZSA8bWFjaC9tYWNoLmg+CkBAIC01OCw5ICs0OSw2IEBACiAjaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKICNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV1RGQ29uZmlnQWRkaXRpb25z
Lmg+CiAjZW5kaWYKLSNpZiAhVVNFKFNZU1RFTV9NQUxMT0MpCi0jaW5jbHVkZSAiYm1hbGxvYy9w
YXNfbXRlX2NvbmZpZy5oIgotI2VuZGlmCiAKICNpbmNsdWRlIDxtdXRleD4KIApAQCAtODQsNyAr
NzIsNyBAQCBhbGlnbmFzKFdURjo6Q29uZmlnQWxpZ25tZW50KSBXVEZfQ09ORklHX1NFQ1RJT04g
U2xvdCBnX2NvbmZpZ1tXVEY6OkNvbmZpZ1NpemVUbwogfSAvLyBuYW1lc3BhY2UgV2ViQ29uZmln
CiAKICNpZiAhVVNFKFNZU1RFTV9NQUxMT0MpCi1zdGF0aWNfYXNzZXJ0KEdpZ2FjYWdlOjpzdGFy
dFNsb3RPZkdpZ2FjYWdlQ29uZmlnID09IFdlYkNvbmZpZzo6TnVtYmVyT2ZSZXNlcnZlZENvbmZp
Z0J5dGVzKTsKK3N0YXRpY19hc3NlcnQoR2lnYWNhZ2U6OnN0YXJ0U2xvdE9mR2lnYWNhZ2VDb25m
aWcgPT0gV2ViQ29uZmlnOjpyZXNlcnZlZFNsb3RzRm9yRXhlY3V0YWJsZUFsbG9jYXRvciArIFdl
YkNvbmZpZzo6YWRkaXRpb25hbFJlc2VydmVkU2xvdHMpOwogI2VuZGlmCiAKIG5hbWVzcGFjZSBX
VEYgewpAQCAtMTY2LDI2ICsxNTQsOCBAQCB2b2lkIENvbmZpZzo6aW5pdGlhbGl6ZSgpCiAgICAg
Z193dGZDb25maWcuaGlnaGVzdEFjY2Vzc2libGVBZGRyZXNzID0gc3RhdGljX2Nhc3Q8dWludHB0
cl90PigoMVVMTCA8PCBPU19DT05TVEFOVChFRkZFQ1RJVkVfQUREUkVTU19XSURUSCkpIC0gMSk7
CiAgICAgU2lnbmFsSGFuZGxlcnM6OmluaXRpYWxpemUoKTsKIAotICAgIFtbbWF5YmVfdW51c2Vk
XV0gdWludDhfdCogcmVzZXJ2ZWRDb25maWdCeXRlcyA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPHVp
bnQ4X3QqPihXZWJDb25maWc6OmdfY29uZmlnKTsKLQotI2lmICFVU0UoU1lTVEVNX01BTExPQykg
JiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKLSAgICBwYXNfbXRlX2Vuc3VyZV9pbml0aWFsaXpl
ZCgpOwotICAgIGNvbnN0IHVpbnQ4X3QqIGVuYWJsZWRCeXRlID0gKChjb25zdCB1aW50OF90Kiko
V2ViQ29uZmlnOjpnX2NvbmZpZyArIDIpKTsKLSAgICBjb25zdCBjaGFyKiBjcmFzaElmTVRFTm90
RW5hYmxlZCA9IGdldGVudigiTVRFX2NyYXNoSWZOb3RFbmFibGVkIik7Ci0gICAgaWYgKGNyYXNo
SWZNVEVOb3RFbmFibGVkKSB7Ci0gICAgICAgIGlmICghc3RyY2FzZWNtcChjcmFzaElmTVRFTm90
RW5hYmxlZCwgInRydWUiKQotICAgICAgICAgICAgfHwgIXN0cmNhc2VjbXAoY3Jhc2hJZk1URU5v
dEVuYWJsZWQsICJ5ZXMiKQotICAgICAgICAgICAgfHwgIXN0cmNhc2VjbXAoY3Jhc2hJZk1URU5v
dEVuYWJsZWQsICIxIikpIHsKLSAgICAgICAgICAgIHN0cnVjdCBwcm9jX2JzZGluZm8gaW5mbzsK
LSAgICAgICAgICAgIGludCByYyA9IHByb2NfcGlkaW5mbyhnZXRwaWQoKSwgUFJPQ19QSURUQlNE
SU5GTywgMCwgJmluZm8sIHNpemVvZihpbmZvKSk7Ci0gICAgICAgICAgICBpZiAocmMgIT0gc2l6
ZW9mKGluZm8pIHx8ICEoaW5mby5wYmlfZmxhZ3MgJiBQQVNfTVRFX1BST0NfRkxBR19TRUNfRU5B
QkxFRCkgfHwgISplbmFibGVkQnl0ZSkgewotICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygi
TVRFIG5vdCBlbmFibGVkIGZvciBwcm9jZXNzOyBjcmFzaGluZ1xuIik7Ci0gICAgICAgICAgICAg
ICAgV1RGUmVwb3J0QmFja3RyYWNlKCk7Ci0gICAgICAgICAgICAgICAgQ1JBU0goKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSNlbmRpZiAvLyAhVVNFKFNZU1RFTV9NQUxMT0Mp
ICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgdWludDhfdCogcmVzZXJ2ZWRDb25maWdC
eXRlcyA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPHVpbnQ4X3QqPihXZWJDb25maWc6OmdfY29uZmln
ICsgV2ViQ29uZmlnOjpyZXNlcnZlZFNsb3RzRm9yRXhlY3V0YWJsZUFsbG9jYXRvcik7CisKICAg
ICBjb25zdCBjaGFyKiB1c2VBbGxvY2F0aW9uUHJvZmlsaW5nUmF3ID0gZ2V0ZW52KCJKU0NfdXNl
QWxsb2NhdGlvblByb2ZpbGluZyIpOwogICAgIGlmICh1c2VBbGxvY2F0aW9uUHJvZmlsaW5nUmF3
KSB7CiAgICAgICAgIGF1dG8gdXNlQWxsb2NhdGlvblByb2ZpbGluZyA9IHVuc2FmZVNwYW4odXNl
QWxsb2NhdGlvblByb2ZpbGluZ1Jhdyk7CkBAIC0yMDcsNiArMTc3LDcgQEAgdm9pZCBDb25maWc6
OmluaXRpYWxpemUoKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorCiB9CiAKIHZv
aWQgQ29uZmlnOjpmaW5hbGl6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XVEZDb25m
aWcuaCBiL1NvdXJjZS9XVEYvd3RmL1dURkNvbmZpZy5oCmluZGV4IGQ4NDAxOGM0ZjQ3MS4uMmEy
MGM2ZjVhOTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9XVEZDb25maWcuaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9XVEZDb25maWcuaApAQCAtMzksOCArMzksOCBAQCBXVEZfQUxMT1dfVU5T
QUZFX0JVRkZFUl9VU0FHRV9CRUdJTgogCiAjaWYgVVNFKFNZU1RFTV9NQUxMT0MpCiBuYW1lc3Bh
Y2UgR2lnYWNhZ2UgewotLy8gVGhlIGZpcnN0IDYgc2xvdHMgYXJlIHJlc2VydmVkIGZvciB1c2Ug
Ynkgc3lzdGVtIGFsbG9jYXRvcnMKLWNvbnN0ZXhwciBzaXplX3QgcmVzZXJ2ZWRTbG90c0Zvckdp
Z2FjYWdlQ29uZmlnID0gNjsKKy8vIFRoZSBmaXJzdCA0IHNsb3RzIGFyZSByZXNlcnZlZCBmb3Ig
dGhlIHVzZSBvZiB0aGUgRXhlY3V0YWJsZUFsbG9jYXRvciBhbmQgYWRkaXRpb25hbFJlc2VydmVk
U2xvdHMuCitjb25zdGV4cHIgc2l6ZV90IHJlc2VydmVkU2xvdHNGb3JHaWdhY2FnZUNvbmZpZyA9
IDQ7CiBjb25zdGV4cHIgc2l6ZV90IHJlc2VydmVkQnl0ZXNGb3JHaWdhY2FnZUNvbmZpZyA9IHJl
c2VydmVkU2xvdHNGb3JHaWdhY2FnZUNvbmZpZyAqIHNpemVvZih1aW50NjRfdCk7CiB9CiAjZWxz
ZQpAQCAtNTMsMjEgKzUzLDE1IEBAIHVzaW5nIFNsb3QgPSB1aW50NjRfdDsKIGV4dGVybiAiQyIg
V1RGX0VYUE9SVF9QUklWQVRFIFNsb3QgZ19jb25maWdbXTsKIAogY29uc3RleHByIHNpemVfdCBy
ZXNlcnZlZFNsb3RzRm9yRXhlY3V0YWJsZUFsbG9jYXRvciA9IDI7Ci1jb25zdGV4cHIgc2l6ZV90
IHJlc2VydmVkU2xvdHNGb3JNVEVDb25maWd1cmF0aW9uID0gMjsKLWNvbnN0ZXhwciBzaXplX3Qg
cmVzZXJ2ZWRTbG90c0ZvckFsbG9jYXRpb25Qcm9maWxpbmcgPSAyOworY29uc3RleHByIHNpemVf
dCBhZGRpdGlvbmFsUmVzZXJ2ZWRTbG90cyA9IDI7CiAKIGVudW0gUmVzZXJ2ZWRDb25maWdCeXRl
T2Zmc2V0IHsKLSAgICBSZXNlcnZlZEJ5dGVGb3JFeGVjdXRhYmxlQWxsb2NhdG9yMCA9IDAsCi0g
ICAgUmVzZXJ2ZWRCeXRlRm9yRXhlY3V0YWJsZUFsbG9jYXRvcjEsCi0gICAgLy8gVGhlIE1URSBv
ZmZzZXRzIG11c3QgYmUga2VwdCBpbiBzeW5jIHdpdGggcGFzX210ZV9jb25maWcuaAotICAgIFJl
c2VydmVkQnl0ZUZvck1URUVuYWJsZW1lbnQsCi0gICAgUmVzZXJ2ZWRCeXRlRm9yTVRFRXh0ZW5k
ZWRDb25maWd1cmF0aW9uLAogICAgIFJlc2VydmVkQnl0ZUZvckFsbG9jYXRpb25Qcm9maWxpbmcs
CiAgICAgUmVzZXJ2ZWRCeXRlRm9yQWxsb2NhdGlvblByb2ZpbGluZ01vZGUsCiAgICAgTnVtYmVy
T2ZSZXNlcnZlZENvbmZpZ0J5dGVzCiB9OwogCi1zdGF0aWNfYXNzZXJ0KE51bWJlck9mUmVzZXJ2
ZWRDb25maWdCeXRlcyA8PSBzaXplb2YoU2xvdCkgKiAocmVzZXJ2ZWRTbG90c0ZvckV4ZWN1dGFi
bGVBbGxvY2F0b3IgKyByZXNlcnZlZFNsb3RzRm9yTVRFQ29uZmlndXJhdGlvbiArIHJlc2VydmVk
U2xvdHNGb3JBbGxvY2F0aW9uUHJvZmlsaW5nKSk7CitzdGF0aWNfYXNzZXJ0KE51bWJlck9mUmVz
ZXJ2ZWRDb25maWdCeXRlcyA8PSBzaXplb2YoU2xvdCkgKiBhZGRpdGlvbmFsUmVzZXJ2ZWRTbG90
cyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvbmZpZwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1h
bGxvYy9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9ibWFsbG9jL0NNYWtlTGlzdHMudHh0CmluZGV4
IGM3MzlmYjQ5MDg2MS4uMWU1Yjg4MGRmM2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvYm1hbGxvYy9DTWFrZUxpc3RzLnR4dApAQCAtMTUx
LDggKzE1MSw2IEBAIHNldChibWFsbG9jX0NfU09VUkNFUwogICAgIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYwogICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19t
ZWdhcGFnZV9jYWNoZS5jCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX21vbm90b25pY190aW1l
LmMKLSAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbXRlLmMKLSAgICBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfbXRlX2NvbmZpZy5jCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZS5j
CiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWcuYwogICAgIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19wYWdlX2hlYWRlcl90YWJsZS5jCkBAIC01NTMsOCArNTUxLDYgQEAg
c2V0KGJtYWxsb2NfUFVCTElDX0hFQURFUlMKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbWlu
X2hlYXAuaAogICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tbWFwX2NhcGFiaWxpdHkuaAogICAg
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tb25vdG9uaWNfdGltZS5oCi0gICAgbGlicGFzL3NyYy9s
aWJwYXMvcGFzX210ZS5oCi0gICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX210ZV9jb25maWcuaAog
ICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tdXRhdGlvbl9jb3VudC5oCiAgICAgbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX29iamVjdF9raW5kLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFn
ZV9iYXNlX2FuZF9raW5kLmgKQEAgLTY4Nyw3ICs2ODMsNiBAQCBzZXQoYm1hbGxvY19QVUJMSUNf
SEVBREVSUwogICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc192ZXJzaW9uZWRfZmllbGQuaAogICAg
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc192aXJ0dWFsX3JhbmdlLmgKICAgICBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oCi0gICAgbGlicGFzL3NyYy9saWJwYXMv
cGFzX3plcm9fbWVtb3J5LmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfemVyb19tb2RlLmgK
ICAgICBsaWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuaAogICAgIGxpYnBhcy9z
cmMvbGlicGFzL3RoaW5neV9oZWFwLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NDFjODg5NzYwZjYuLmY3MTRjZDhmMjJmNiAx
MDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjA2LDExICs2MDYsNiBAQAogCQlERDRCRURFMjI5Q0JBNDk3MDAzOThFMzUgLyogbWlu
YWxpZ24zMl9oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjE4Rjg0MTI1QzM0Njc3MDA3MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREQ0QkVERTMyOUNC
QTQ5NzAwMzk4RTM1IC8qIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMzQzI3NDA2QTNFMDA2
Q0FCNTUgLyogcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLzsgfTsKIAkJREQ0QkVE
RTQyOUNCQTQ5NzAwMzk4RTM1IC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQTFCMjQ1MTQ5ODQwMDg3NkRB
MCAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJMDEwMDAwMEMzN0JBQkEwQTBBOTk5OTk5IC8qIHBhc19tdGUu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAxMDAwMDBB
MzdCQUJBMEEwQTk5OTk5OSAvKiBwYXNfbXRlLmMgKi87IH07Ci0JCTAxMDAwMDBEMzdCQUJBMEEw
QTk5OTk5OSAvKiBwYXNfbXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwMTAwMDAwQjM3QkFCQTBBMEE5OTk5OTkgLyogcGFzX210ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07fTsKLQkJMDEwMDAwMEMzN0JBQkEw
QTBBOTkzOTk5IC8qIHBhc19tdGVfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwMTAwMDAwQTM3QkFCQTBBMEE5OTM5OTkgLyogcGFzX210ZV9j
b25maWcuYyAqLzsgfTsKLQkJMDEwMDAwMEQzN0JBQkEwQTBBOTkzOTk5IC8qIHBhc19tdGVfY29u
ZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMTAw
MDAwQjM3QkFCQTBBMEE5OTM5OTkgLyogcGFzX210ZV9jb25maWcuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9O307Ci0JCTAxMDAwMDBEMzdCQUJBMEEwQTk5MTk5
OSAvKiBwYXNfemVyb19tZW1vcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDAxMDAwMDBCMzdCQUJBMEEwQTk5MTk5OSAvKiBwYXNfemVyb19tZW1vcnku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9O307CiAJCURENEJF
REU1MjlDQkE0OTcwMDM5OEUzNSAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOEY4M0YyNUMzNDY3NzAw
NzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREQ0QkVERTYyOUNCQTQ5NzAwMzk4RTM1IC8q
IGlzb19oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkM0MDkyOTI0NTE0OTQzMDA4NzZEQTAgLyogaXNvX2hlYXAuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlERDRCRURFNzI5Q0JBNDk3MDAzOThF
MzUgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOEY4NDQyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFsaWdu
MzJfaGVhcF9jb25maWcuYyAqLzsgfTsKQEAgLTEzNTUsMTEgKzEzNTAsNiBAQAogCQkyQzQ4MTMz
QjI3NDA2QTNFMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5j
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDNDgxMzNDMjc0MDZBM0UwMDZDQUI1NSAv
KiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IG5hbWUgPSBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkM0ODEzM0QyNzQwNkEzRTAwNkNBQjU1IC8qIHBhc19jb21wYWN0
X2V4cGVuZGFibGVfbWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwMTAwMDAwQTM3QkFCQTBBMEE5OTk5OTkgLyogcGFzX210ZS5jICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfbXRlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfbXRlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTAxMDAwMDBCMzdCQUJBMEEw
QTk5OTk5OSAvKiBwYXNfbXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19tdGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMDEwMDAwMEEzN0JBQkEwQTBBOTkzOTk5IC8qIHBhc19tdGVfY29u
ZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19tdGVfY29uZmlnLmM7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbXRlX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkwMTAwMDAwQjM3QkFCQTBBMEE5OTM5OTkgLyogcGFzX210ZV9jb25m
aWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX210ZV9jb25maWcuaDsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGVfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTAxMDAwMDBCMzdCQUJBMEEwQTk5MTk5OSAvKiBwYXNfemVyb19tZW1v
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3plcm9fbWVtb3J5Lmg7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfemVyb19tZW1vcnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkM0ODEzM0UyNzQwNkEzRTAwNkNBQjU1IC8qIHBhc19leHBlbmRh
YmxlX21lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfZXhwZW5k
YWJsZV9tZW1vcnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19leHBlbmRhYmxlX21l
bW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzQ4MTMzRjI3NDA2QTNFMDA2
Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJDOTFFNTUxMjcxQ0U0N0EwMEQ2N0ZGOSAvKiBwYXNfc2l6ZV9s
b29rdXBfbW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2l6ZV9s
b29rdXBfbW9kZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NpemVfbG9va3VwX21v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NzgsMTAgKzE4NjgsNiBAQAog
CQkJCTJDMDlEOEJFMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbW1hcF9jYXBhYmlsaXR5LmggKi8s
CiAJCQkJMEZDNDBBOEYyNDUxNDk4QzAwODc2REEwIC8qIHBhc19tb25vdG9uaWNfdGltZS5jICov
LAogCQkJCTBGQzQwQTcxMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuaCAq
LywKLQkJCQkwMTAwMDAwQTM3QkFCQTBBMEE5OTk5OTkgLyogcGFzX210ZS5jICovLAotCQkJCTAx
MDAwMDBCMzdCQUJBMEEwQTk5OTk5OSAvKiBwYXNfbXRlLmggKi8sCi0JCQkJMDEwMDAwMEEzN0JB
QkEwQTBBOTkzOTk5IC8qIHBhc19tdGVfY29uZmlnLmMgKi8sCi0JCQkJMDEwMDAwMEIzN0JBQkEw
QTBBOTkzOTk5IC8qIHBhc19tdGVfY29uZmlnLmggKi8sCiAJCQkJMEZDNDBBRDIyNDUxNDk5MTAw
ODc2REEwIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oICovLAogCQkJCTBGODcwMDRFMjVBRjhBMTkw
MDBFMUFCRiAvKiBwYXNfb2JqZWN0X2tpbmQuaCAqLywKIAkJCQkwRjg3MDA1MjI1QUY4QTFBMDAw
RTFBQkYgLyogcGFzX3BhZ2VfYmFzZS5jICovLApAQCAtMjA2Niw3ICsyMDUyLDYgQEAKIAkJCQkw
RkM0MEFCRTI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuYyAqLywKIAkJCQkw
RkM0MEFFRDI0NTE0OTkzMDA4NzZEQTAgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuaCAqLywKIAkJCQkw
RkM0MEFFMDI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAq
LywKLQkJCQkwMTAwMDAwQjM3QkFCQTBBMEE5OTE5OTkgLyogcGFzX3plcm9fbWVtb3J5LmggKi8s
CiAJCQkJMEZDNDBBRUEyNDUxNDk5MzAwODc2REEwIC8qIHBhc196ZXJvX21vZGUuaCAqLywKIAkJ
CQkwRjg3MDBDRTI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuYyAqLywKIAkJCQkwRjg3
MDBDQTI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuaCAqLywKQEAgLTI2MjIsOCArMjYw
Nyw2IEBACiAJCQkJREQ0QkVDRkYyOUNCQTQ5NzAwMzk4RTM1IC8qIHBhc19taW5faGVhcC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJREQ0QkVDNzMyOUNCQTQ5NzAwMzk4RTM1IC8qIHBhc19tbWFwX2Nh
cGFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCURENEJFRDNBMjlDQkE0OTcwMDM5OEUzNSAv
KiBwYXNfbW9ub3RvbmljX3RpbWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTAxMDAwMDBEMzdCQUJB
MEEwQTk5OTk5OSAvKiBwYXNfbXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwMTAwMDAwRDM3QkFC
QTBBMEE5OTM5OTkgLyogcGFzX210ZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCURENEJF
QzVGMjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCURENEJFRDQ3MjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfb2JqZWN0X2tpbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCURENEJFREZCMjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfcGFnZV9iYXNl
LmggaW4gSGVhZGVycyAqLywKQEAgLTI3NTcsNyArMjc0MCw2IEBACiAJCQkJREQ0QkVEMzcyOUNC
QTQ5NzAwMzk4RTM1IC8qIHBhc192ZXJzaW9uZWRfZmllbGQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CURENEJFRDNCMjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfdmlydHVhbF9yYW5nZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJREQ0QkVDRkQyOUNCQTQ5NzAwMzk4RTM1IC8qIHBhc192aXJ0dWFsX3Jhbmdl
X21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwMTAwMDAwRDM3QkFCQTBBMEE5OTE5OTkg
LyogcGFzX3plcm9fbWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlERDRCRUQ2NDI5Q0JBNDk3
MDAzOThFMzUgLyogcGFzX3plcm9fbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQ0QkVFMkUy
OUNCQTRFMzAwMzk4RTM1IC8qIFByb2Nlc3NDaGVjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREQ0
QkVFMkEyOUNCQTRFMzAwMzk4RTM1IC8qIFNjb3BlRXhpdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
MDQ0LDggKzMwMjYsNiBAQAogCQkJCURENEJFQzI3MjlDQkE0OTcwMDM5OEUzNSAvKiBwYXNfbWVk
aXVtX21lZ2FwYWdlX2NhY2hlLmMgaW4gU291cmNlcyAqLywKIAkJCQlERDRCRUQyODI5Q0JBNDk3
MDAzOThFMzUgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmMgaW4gU291cmNlcyAqLywKIAkJCQlERDRC
RUNCQzI5Q0JBNDk3MDAzOThFMzUgLyogcGFzX21vbm90b25pY190aW1lLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwMTAwMDAwQzM3QkFCQTBBMEE5OTk5OTkgLyogcGFzX210ZS5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMDEwMDAwMEMzN0JBQkEwQTBBOTkzOTk5IC8qIHBhc19tdGVfY29uZmlnLmMgaW4g
U291cmNlcyAqLywKIAkJCQlERDRCRUM0RDI5Q0JBNDk3MDAzOThFMzUgLyogcGFzX3BhZ2VfYmFz
ZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJREQ0QkVDREUyOUNCQTQ5NzAwMzk4RTM1IC8qIHBhc19w
YWdlX2Jhc2VfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQlERDRCRURBMDI5Q0JBNDk3MDAz
OThFMzUgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmMgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlBsYXRmb3JtLmggYi9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0JQbGF0Zm9ybS5oCmluZGV4IGQ4NTI2MTI0Y2Q1Zi4uYzA2N2M3YWU0OWIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JQbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvQlBsYXRmb3JtLmgKQEAgLTMzLDEyICszMyw2IEBACiAjaW5jbHVkZSA8
VGFyZ2V0Q29uZGl0aW9uYWxzLmg+CiAjZW5kaWYKIAotI2lmIGRlZmluZWQoX19oYXNfaW5jbHVk
ZSkKLSNpZiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvcGFzX210ZV9hZGRpdGlvbnMu
aD4pCi0jaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL3Bhc19tdGVfYWRkaXRpb25zLmg+Ci0jZW5k
aWYgLy8gX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL3Bhc19tdGVfYWRkaXRpb25zLmg+
KQotI2VuZGlmIC8vIGRlZmluZWQoX19oYXNfaW5jbHVkZSkKLQogI2lmbmRlZiBCQVNTRVJUX0VO
QUJMRUQKICNpZmRlZiBOREVCVUcKICNkZWZpbmUgQkFTU0VSVF9FTkFCTEVEIDAKQEAgLTM1MCwx
NyArMzQ0LDYgQEAKICNkZWZpbmUgQkVOQUJMRV9NQUxMT0NfSEVBUF9CUkVBS0RPV04gMAogI2Vu
ZGlmCiAKLSNpZiBCUExBVEZPUk0oQ09DT0EpCi0vKiBTaG91bGQgYmUgYWxpZ25lZCB3aXRoIHRo
ZSBkZWZpbml0aW9uIGluIFdURi93dGYvUGxhdGZvcm1Vc2UuaCAqLwotI2lmIGRlZmluZWQgX19o
YXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCi0j
ZGVmaW5lIEJVU0VfQVBQTEVfSU5URVJOQUxfU0RLIDEKLSNlbHNlCi0jZGVmaW5lIEJVU0VfQVBQ
TEVfSU5URVJOQUxfU0RLIDAKLSNlbmRpZgotI2Vsc2UgLy8gQlBMQVRGT1JNKENPQ09BKQotI2Rl
ZmluZSBCVVNFX0FQUExFX0lOVEVSTkFMX1NESyAwCi0jZW5kaWYgLy8gIUJQTEFURk9STShDT0NP
QSkKLQogLyogVGhpcyBpcyB1c2VkIGZvciBkZWJ1Z2dpbmcgd2hlbiBoYWNraW5nIG9uIGhvdyBi
bWFsbG9jIGNhbGN1bGF0ZXMgaXRzIHBoeXNpY2FsIGZvb3RwcmludC4gKi8KICNkZWZpbmUgRU5B
QkxFX1BIWVNJQ0FMX1BBR0VfTUFQIDAKIApAQCAtMzg1LDE0ICszNjgsNiBAQAogI2VuZGlmCiAj
ZW5kaWYKIAotI2lmIEJVU0VfTElCUEFTCi0jaWZuZGVmIEJFTkFCTEVfTVRFCi0jZGVmaW5lIEJF
TkFCTEVfTVRFIChCVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgQlBMQVRGT1JNKElPU19GQU1J
TFkpKQotI2VuZGlmIC8vICFkZWZpbmVkKEJFTkFCTEVfTVRFKQotI2Vsc2UgLy8gIUJVU0VfTElC
UEFTCi0jZGVmaW5lIEJFTkFCTEVfTVRFIDAKLSNlbmRpZiAvLyBCVVNFX0xJQlBBUwotCiAjaWYg
IWRlZmluZWQoQlVTRV9QUkVDT01QVVRFRF9DT05TVEFOVFNfVk1QQUdFNEspCiAjZGVmaW5lIEJV
U0VfUFJFQ09NUFVURURfQ09OU1RBTlRTX1ZNUEFHRTRLIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5jcHAgYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0dpZ2FjYWdlLmNwcAppbmRleCAyZjI5MWQxNDVhMzYuLjFlM2U2MTgyYWE3NSAxMDA2NDQK
LS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5jcHAKKysrIGIvU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9HaWdhY2FnZS5jcHAKQEAgLTQwLDcgKzQwLDYgQEAKICNlbmRpZgogCiAj
aWYgQlVTRShMSUJQQVMpCi0jaW5jbHVkZSAicGFzX210ZV9jb25maWcuaCIKICNpbmNsdWRlICJp
c29faGVhcC5oIgogI2VuZGlmCiAKQEAgLTE3NywyMCArMTc2LDYgQEAgdm9pZCBlbnN1cmVHaWdh
Y2FnZSgpCiAgICAgICAgICAgICBnX2dpZ2FjYWdlQ29uZmlnLnRvdGFsU2l6ZSA9IHRvdGFsU2l6
ZTsKICAgICAgICAgICAgIGdfZ2lnYWNhZ2VDb25maWcuaXNFbmFibGVkID0gdHJ1ZTsKICAgICAg
ICAgICAgIEJQUk9GSUxFX0FMTE9DQVRJT04oSU5JVElBTF9HSUdBQ0FHRSwgdG90YWxTaXplKTsK
LSNpZiBCRU5BQkxFKE1URSkKLSAgICAgICAgICAgIHBhc19tdGVfZW5zdXJlX2luaXRpYWxpemVk
KCk7Ci0gICAgICAgICAgICBpZiAoQk1BTExPQ19VU0VfTVRFKSB7Ci0gICAgICAgICAgICAgICAg
Zm9yIChLaW5kIGtpbmQgOiBzaHVmZmxlZEtpbmRzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZv
aWQqIGJhc2UgPSBnX2dpZ2FjYWdlQ29uZmlnLmFsbG9jQmFzZVB0cihraW5kKTsKLSAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IHNpemUgPSBnX2dpZ2FjYWdlQ29uZmlnLmFsbG9jU2l6ZShraW5k
KTsKLSAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm1faW5oZXJpdF90IGNoaWxkUHJvY2Vzc0lu
aGVyaXRhbmNlID0gVk1fSU5IRVJJVF9ERUZBVUxUOwotICAgICAgICAgICAgICAgICAgICBjb25z
dCBib29sIGNvcHkgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm1fcHJvdF90
IHByb3RlY3Rpb25zID0gVk1fUFJPVF9XUklURSB8IFZNX1BST1RfUkVBRDsKLSAgICAgICAgICAg
ICAgICAgICAgYXV0byBrZXJuUmVzdWx0ID0gbWFjaF92bV9tYXAobWFjaF90YXNrX3NlbGYoKSwg
KG1hY2hfdm1fYWRkcmVzc190KikmYmFzZSwgc2l6ZSwgdm1QYWdlU2l6ZSgpIC0gMSwgVk1fRkxB
R1NfRklYRUQgfCBWTV9GTEFHU19PVkVSV1JJVEUgfCAoaW50KVZNVGFnOjpKU0dpZ2FjYWdlLCBN
RU1PUllfT0JKRUNUX05VTEwsIDAsIGNvcHksIHByb3RlY3Rpb25zLCBwcm90ZWN0aW9ucywgY2hp
bGRQcm9jZXNzSW5oZXJpdGFuY2UpOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0JBU1NF
UlQoa2VyblJlc3VsdCA9PSBLRVJOX1NVQ0NFU1MpOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0KLSNlbmRpZiAvLyBCRU5BQkxFKE1URSkKICAgICAgICAgfSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2VDb25maWcuaCBiL1NvdXJjZS9i
bWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2VDb25maWcuaAppbmRleCA2MWQyY2JhZmU2YTguLjc1ZmEw
OWRjMjhkYyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9HaWdhY2FnZUNvbmZp
Zy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvR2lnYWNhZ2VDb25maWcuaApAQCAtOTgs
OCArOTgsOCBAQCBzdHJ1Y3QgQ29uZmlnIHsKICAgICBzaXplX3QgYWxsb2NTaXplc1tzdGF0aWNf
Y2FzdDxzaXplX3Q+KE51bWJlck9mS2luZHMpXTsKIH07CiAKLS8vIFRoZSBmaXJzdCA2IHNsb3Rz
IGFyZSByZXNlcnZlZCBmb3IgdXNlIGJ5IHN5c3RlbSBhbGxvY2F0b3JzCi1jb25zdGV4cHIgc2l6
ZV90IHN0YXJ0U2xvdE9mR2lnYWNhZ2VDb25maWcgPSA2OworLy8gVGhlIGZpcnN0IDQgc2xvdHMg
YXJlIHJlc2VydmVkIGZvciB0aGUgdXNlIG9mIHRoZSBFeGVjdXRhYmxlQWxsb2NhdG9yLgorY29u
c3RleHByIHNpemVfdCBzdGFydFNsb3RPZkdpZ2FjYWdlQ29uZmlnID0gNDsKIGNvbnN0ZXhwciBz
aXplX3Qgc3RhcnRPZmZzZXRPZkdpZ2FjYWdlQ29uZmlnID0gc3RhcnRTbG90T2ZHaWdhY2FnZUNv
bmZpZyAqIHNpemVvZihXZWJDb25maWc6OlNsb3QpOwogCiBjb25zdGV4cHIgc2l6ZV90IHJlc2Vy
dmVkU2xvdHNGb3JHaWdhY2FnZUNvbmZpZyA9IDE2OwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9TeXN0ZW1IZWFwLmNwcCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvU3lzdGVt
SGVhcC5jcHAKaW5kZXggYzAzOGQ0ZmM1Mjc0Li45MGUzNWZjNjU2YjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvU3lzdGVtSGVhcC5jcHAKKysrIGIvU291cmNlL2JtYWxsb2Mv
Ym1hbGxvYy9TeXN0ZW1IZWFwLmNwcApAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgPHRocmVh
ZD4KIAogI2lmIEJFTkFCTEUoTElCUEFTKQotI2luY2x1ZGUgInBhc19tdGUuaCIKICNpbmNsdWRl
ICJwYXNfc3lzdGVtX2hlYXAuaCIKICNlbmRpZgogCkBAIC0yNzQsNyArMjczLDYgQEAgdm9pZCog
cGFzX3N5c3RlbV9oZWFwX21hbGxvYyhzaXplX3Qgc2l6ZSkKIHsKICAgICBhdXRvIHN5c3RlbUhl
YXAgPSBTeXN0ZW1IZWFwOjpnZXRFeGlzdGluZygpOwogICAgIFBBU19QUk9GSUxFKFNZU1RFTV9I
RUFQX0FMTE9DQVRJT04sIHN5c3RlbUhlYXAsIHNpemUsIDAsIHBhc19ub25fY29tcGFjdF9hbGxv
Y2F0aW9uX21vZGUpOwotICAgIFBBU19NVEVfSEFORExFKFNZU1RFTV9IRUFQX0FMTE9DQVRJT04s
IHN5c3RlbUhlYXAsIHNpemUsIDAsIHBhc19ub25fY29tcGFjdF9hbGxvY2F0aW9uX21vZGUpOwog
ICAgIHJldHVybiBzeXN0ZW1IZWFwLT5tYWxsb2Moc2l6ZSwgRmFpbHVyZUFjdGlvbjo6UmV0dXJu
TnVsbCk7CiB9CiAKQEAgLTI4Miw3ICsyODAsNiBAQCB2b2lkKiBwYXNfc3lzdGVtX2hlYXBfbWVt
YWxpZ24oc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpCiB7CiAgICAgYXV0byBzeXN0ZW1I
ZWFwID0gU3lzdGVtSGVhcDo6Z2V0RXhpc3RpbmcoKTsKICAgICBQQVNfUFJPRklMRShTWVNURU1f
SEVBUF9BTExPQ0FUSU9OLCBzeXN0ZW1IZWFwLCBzaXplLCBhbGlnbm1lbnQsIHBhc19ub25fY29t
cGFjdF9hbGxvY2F0aW9uX21vZGUpOwotICAgIFBBU19NVEVfSEFORExFKFNZU1RFTV9IRUFQX0FM
TE9DQVRJT04sIHN5c3RlbUhlYXAsIHNpemUsIGFsaWdubWVudCwgcGFzX25vbl9jb21wYWN0X2Fs
bG9jYXRpb25fbW9kZSk7CiAgICAgcmV0dXJuIHN5c3RlbUhlYXAtPm1lbWFsaWduKGFsaWdubWVu
dCwgc2l6ZSwgRmFpbHVyZUFjdGlvbjo6UmV0dXJuTnVsbCk7CiB9CiAKQEAgLTI5MCw3ICsyODcs
NiBAQCB2b2lkKiBwYXNfc3lzdGVtX2hlYXBfcmVhbGxvYyh2b2lkKiBwdHIsIHNpemVfdCBzaXpl
KQogewogICAgIGF1dG8gc3lzdGVtSGVhcCA9IFN5c3RlbUhlYXA6OmdldEV4aXN0aW5nKCk7CiAg
ICAgUEFTX1BST0ZJTEUoU1lTVEVNX0hFQVBfUkVBTExPQ0FUSU9OLCBzeXN0ZW1IZWFwLCBwdHIs
IHNpemUsIHBhc19ub25fY29tcGFjdF9hbGxvY2F0aW9uX21vZGUpOwotICAgIFBBU19NVEVfSEFO
RExFKFNZU1RFTV9IRUFQX1JFQUxMT0NBVElPTiwgc3lzdGVtSGVhcCwgcHRyLCBzaXplLCBwYXNf
bm9uX2NvbXBhY3RfYWxsb2NhdGlvbl9tb2RlKTsKICAgICByZXR1cm4gc3lzdGVtSGVhcC0+cmVh
bGxvYyhwdHIsIHNpemUsIEZhaWx1cmVBY3Rpb246OlJldHVybk51bGwpOwogfQogCkBAIC0yOTgs
NyArMjk0LDYgQEAgdm9pZCogcGFzX3N5c3RlbV9oZWFwX21hbGxvY19jb21wYWN0KHNpemVfdCBz
aXplKQogewogICAgIGF1dG8gc3lzdGVtSGVhcCA9IFN5c3RlbUhlYXA6OmdldEV4aXN0aW5nKCk7
CiAgICAgUEFTX1BST0ZJTEUoU1lTVEVNX0hFQVBfQUxMT0NBVElPTiwgc3lzdGVtSGVhcCwgc2l6
ZSwgMCwgcGFzX2Fsd2F5c19jb21wYWN0X2FsbG9jYXRpb25fbW9kZSk7Ci0gICAgUEFTX01URV9I
QU5ETEUoU1lTVEVNX0hFQVBfQUxMT0NBVElPTiwgc3lzdGVtSGVhcCwgc2l6ZSwgMCwgcGFzX2Fs
d2F5c19jb21wYWN0X2FsbG9jYXRpb25fbW9kZSk7CiAgICAgcmV0dXJuIHN5c3RlbUhlYXAtPm1h
bGxvYyhzaXplLCBGYWlsdXJlQWN0aW9uOjpSZXR1cm5OdWxsKTsKIH0KIApAQCAtMzA2LDcgKzMw
MSw2IEBAIHZvaWQqIHBhc19zeXN0ZW1faGVhcF9tZW1hbGlnbl9jb21wYWN0KHNpemVfdCBhbGln
bm1lbnQsIHNpemVfdCBzaXplKQogewogICAgIGF1dG8gc3lzdGVtSGVhcCA9IFN5c3RlbUhlYXA6
OmdldEV4aXN0aW5nKCk7CiAgICAgUEFTX1BST0ZJTEUoU1lTVEVNX0hFQVBfQUxMT0NBVElPTiwg
c3lzdGVtSGVhcCwgc2l6ZSwgYWxpZ25tZW50LCBwYXNfYWx3YXlzX2NvbXBhY3RfYWxsb2NhdGlv
bl9tb2RlKTsKLSAgICBQQVNfTVRFX0hBTkRMRShTWVNURU1fSEVBUF9BTExPQ0FUSU9OLCBzeXN0
ZW1IZWFwLCBzaXplLCBhbGlnbm1lbnQsIHBhc19hbHdheXNfY29tcGFjdF9hbGxvY2F0aW9uX21v
ZGUpOwogICAgIHJldHVybiBzeXN0ZW1IZWFwLT5tZW1hbGlnbihhbGlnbm1lbnQsIHNpemUsIEZh
aWx1cmVBY3Rpb246OlJldHVybk51bGwpOwogfQogCkBAIC0zMTQsNyArMzA4LDYgQEAgdm9pZCog
cGFzX3N5c3RlbV9oZWFwX3JlYWxsb2NfY29tcGFjdCh2b2lkKiBwdHIsIHNpemVfdCBzaXplKQog
ewogICAgIGF1dG8gc3lzdGVtSGVhcCA9IFN5c3RlbUhlYXA6OmdldEV4aXN0aW5nKCk7CiAgICAg
UEFTX1BST0ZJTEUoU1lTVEVNX0hFQVBfUkVBTExPQ0FUSU9OLCBzeXN0ZW1IZWFwLCBwdHIsIHNp
emUsIHBhc19hbHdheXNfY29tcGFjdF9hbGxvY2F0aW9uX21vZGUpOwotICAgIFBBU19NVEVfSEFO
RExFKFNZU1RFTV9IRUFQX1JFQUxMT0NBVElPTiwgc3lzdGVtSGVhcCwgcHRyLCBzaXplLCBwYXNf
YWx3YXlzX2NvbXBhY3RfYWxsb2NhdGlvbl9tb2RlKTsKICAgICByZXR1cm4gc3lzdGVtSGVhcC0+
cmVhbGxvYyhwdHIsIHNpemUsIEZhaWx1cmVBY3Rpb246OlJldHVybk51bGwpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuY3BwIGIvU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmNwcAppbmRleCBkODM4ZWQ5ZjUwOTEuLjFiYzY0MWI3
MWI4NiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmNwcAor
KysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuY3BwCkBAIC0yNSwxMCArMjUs
NiBAQAogCiAjaW5jbHVkZSAiVk1BbGxvY2F0ZS5oIgogCi0jaWYgQlVTRShMSUJQQVMpCi0jaW5j
bHVkZSAicGFzX210ZV9jb25maWcuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgYm1hbGxvYyB7CiAK
ICNpZiBCTUFMTE9DX1VTRV9NQURWX1pFUk8KQEAgLTYwLDM0ICs1Niw0IEBAIGJvb2wgaXNNYWR2
WmVyb1N1cHBvcnRlZCgpCiB9CiAjZW5kaWYKIAotI2lmIEJFTkFCTEUoTVRFKSAmJiBCT1MoREFS
V0lOKQotYm9vbCB0cnlWbVplcm9BbmRQdXJnZU1URUNhc2Uodm9pZCogcCwgc2l6ZV90IHZtU2l6
ZSwgVk1UYWcgdXNhZ2UpCi17Ci0gICAgaWYgKCFCTUFMTE9DX1VTRV9NVEUpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBjb25zdCB2bV9pbmhlcml0X3QgY2hpbGRQcm9jZXNzSW5oZXJpdGFu
Y2UgPSBWTV9JTkhFUklUX0RFRkFVTFQ7Ci0gICAgY29uc3QgYm9vbCBjb3B5ID0gZmFsc2U7Ci0g
ICAgY29uc3QgaW50IHRhZyA9IHN0YXRpY19jYXN0PGludD4odXNhZ2UpOwotICAgIC8qIFdlIHdv
dWxkIG11Y2ggcHJlZmVyIHRvIHVzZSBtYWNoX3ZtX2JlaGF2aW9yX3NldCBoZXJlLCBhcyBpdAot
ICAgICAgIGFsd2F5cyBwcmVzZXJ2ZXMgdGhlIHBhZ2UncyBjdXJyZW50IFZNIGZsYWdzLiBIb3dl
dmVyLCBpdCdzCi0gICAgICAgY3VycmVudGx5IGJsb2NrZWQgYnkgYW4gdW5rbm93biBzZWN1cml0
eSBwb2xpY3ksIHNvIHVudGlsIHRoYXQKLSAgICAgICBibG9ja2VyIGlzIHJlc29sdmVkIHdlIGNh
biB1c2UgdGhpcyBpbnN0ZWFkIHdpdGhvdXQgbXVjaCBsb3NzLiAqLwotICAgIGtlcm5fcmV0dXJu
X3Qgdm1NYXBSZXN1bHQgPSBtYWNoX3ZtX21hcChtYWNoX3Rhc2tfc2VsZigpLAotICAgICAgICAo
bWFjaF92bV9hZGRyZXNzX3QqKSZwLAotICAgICAgICB2bVNpemUsCi0gICAgICAgIDAsCi0gICAg
ICAgIFZNX0ZMQUdTX0ZJWEVEIHwgVk1fRkxBR1NfT1ZFUldSSVRFIHwgQk1BTExPQ19WTV9NVEUg
fCB0YWcsCi0gICAgICAgIE1FTU9SWV9PQkpFQ1RfTlVMTCwKLSAgICAgICAgMCwKLSAgICAgICAg
Y29weSwKLSAgICAgICAgVk1fUFJPVF9ERUZBVUxULAotICAgICAgICBWTV9QUk9UX0FMTCwKLSAg
ICAgICAgY2hpbGRQcm9jZXNzSW5oZXJpdGFuY2UpOwotICAgIGlmICh2bU1hcFJlc3VsdCAhPSBL
RVJOX1NVQ0NFU1MpCi0gICAgICAgIGVycm5vID0gMDsKLSAgICBSRUxFQVNFX0JBU1NFUlQodm1N
YXBSZXN1bHQgPT0gS0VSTl9TVUNDRVNTKTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLSNlbmRpZiAv
LyBCRU5BQkxFKE1URSkgJiYgQk9TKERBUldJTikKLQogfSAvLyBuYW1lc3BhY2UgYm1hbGxvYwpk
aWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmggYi9Tb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL1ZNQWxsb2NhdGUuaAppbmRleCBlMGUzNmUyMWJkNmYuLmVlZTkxMDZk
NTZiMCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgKKysr
IGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9WTUFsbG9jYXRlLmgKQEAgLTM0LDcgKzM0LDYgQEAK
ICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlNpemVzLmgiCiAjaW5jbHVkZSA8YWxnb3Jp
dGhtPgotI2luY2x1ZGUgPGNzdGRkZWY+CiAKICNpZiBCT1MoV0lORE9XUykKICNpbmNsdWRlIDx3
aW5kb3dzLmg+CkBAIC00NCw3ICs0Myw2IEBACiAjZW5kaWYKIAogI2lmIEJPUyhEQVJXSU4pCi0j
aW5jbHVkZSA8bWFjaC9tYWNoLmg+CiAjaW5jbHVkZSA8bWFjaC92bV9wYWdlX3NpemUuaD4KICNl
bmRpZgogCkBAIC0yNjUsMTAgKzI2Myw2IEBAIGlubGluZSB2b2lkIHZtUmV2b2tlUGVybWlzc2lv
bnModm9pZCogcCwgc2l6ZV90IHZtU2l6ZSkKICAgICBtcHJvdGVjdChwLCB2bVNpemUsIFBST1Rf
Tk9ORSk7CiB9CiAKLSNpZiBCRU5BQkxFKE1URSkgJiYgQk9TKERBUldJTikKLWJvb2wgdHJ5Vm1a
ZXJvQW5kUHVyZ2VNVEVDYXNlKHZvaWQqIHAsIHNpemVfdCB2bVNpemUsIFZNVGFnIHVzYWdlKTsK
LSNlbmRpZiAvLyBCRU5BQkxFKE1URSkgJiYgQk9TKERBUldJTikKLQogaW5saW5lIHZvaWQgdm1a
ZXJvQW5kUHVyZ2Uodm9pZCogcCwgc2l6ZV90IHZtU2l6ZSwgVk1UYWcgdXNhZ2UpCiB7CiAgICAg
dm1WYWxpZGF0ZShwLCB2bVNpemUpOwpAQCAtMjgyLDEwICsyNzYsNiBAQCBpbmxpbmUgdm9pZCB2
bVplcm9BbmRQdXJnZSh2b2lkKiBwLCBzaXplX3Qgdm1TaXplLCBWTVRhZyB1c2FnZSkKICAgICB9
CiAjZW5kaWYKICAgICBCUFJPRklMRV9aRVJPX0ZJTExfUEFHRShwLCB2bVNpemUsIGZsYWdzLCB0
YWcpOwotI2lmIEJFTkFCTEUoTVRFKSAmJiBCT1MoREFSV0lOKQotICAgIGlmICh0cnlWbVplcm9B
bmRQdXJnZU1URUNhc2UocCwgdm1TaXplLCB1c2FnZSkpCi0gICAgICAgIHJldHVybjsKLSNlbmRp
ZiAvLyBCRU5BQkxFKE1URSkgJiYgQk9TKERBUldJTikKICAgICAvLyBNQVBfQU5PTiBndWFyYW50
ZWVzIHRoZSBtZW1vcnkgaXMgemVyb2VkLiBUaGlzIHdpbGwgYWxzbyBjYXVzZQogICAgIC8vIHBh
Z2UgZmF1bHRzIG9uIGFjY2Vzc2VzIHRvIHRoaXMgcmFuZ2UgZm9sbG93aW5nIHRoaXMgY2FsbC4K
ICAgICB2b2lkKiByZXN1bHQgPSBtbWFwKHAsIHZtU2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklU
RSwgZmxhZ3MsIHRhZywgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvbGli
cGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvbGli
cGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2I4YjNlYzA2YTE3Li5hOTAwZDI5
ZjBlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFzLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM2MCwxMSArMzYwLDYgQEAKIAkJMEZDNEVDM0IyMzRB
OTFFMzAwQjcxMEEzIC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzRFQzMyMjM0QTkxRTIwMEI3MTBBMyAvKiBw
YXNfc3RhdHVzX3JlcG9ydGVyLmMgKi87IH07CiAJCTBGQzRFQzNDMjM0QTkxRTMwMEI3MTBBMyAv
KiBwYXNfc3RyaW5nX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZDNEVDMzMyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFt
LmggKi87IH07CiAJCTBGQzRFQzNEMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RhdHVzX3JlcG9y
dGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0
RUMzNDIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX3N0YXR1c19yZXBvcnRlci5oICovOyB9OwotCQkw
Rjk5OTk5QzI2QUFBQTAwMDAyMTIxMjEgLyogcGFzX210ZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5OTk5OUEyNkFBQUEwMDAwMjEyMTIxIC8qIHBh
c19tdGUuYyAqLzsgfTsKLQkJMEY5OTk5OUQyNkFBQUEwMDAwMjEyMTIxIC8qIHBhc19tdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTk5OTlCMjZB
QUFBMDAwMDIxMjEyMSAvKiBwYXNfbXRlLmggKi87IH07Ci0JCTBGOTk5OTlDMjZBQUFBMDAwMDIx
MzEyMSAvKiBwYXNfbXRlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5OTk5OUEyNkFBQUEwMDAwMjEzMTIxIC8qIHBhc19tdGVfY29uZmln
LmMgKi87IH07Ci0JCTBGOTk5OTlEMjZBQUFBMDAwMDIxMzEyMSAvKiBwYXNfbXRlX2NvbmZpZy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5OTk5OUIy
NkFBQUEwMDAwMjEzMTIxIC8qIHBhc19tdGVfY29uZmlnLmggKi87IH07Ci0JCTBGOTk5OTlEMjZB
QUFBMDAwMDExMTExMSAvKiBwYXNfbXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjk5OTk5QjI2QUFBQTAwMDAxMTExMTEgLyogcGFzX3plcm9fbWVt
b3J5LmggKi87IH07CiAJCTBGQzRFQzNFMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9z
dW1tYXJ5X29iamVjdF9jYWxsYmFja3MuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGQzRFQzM1MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9z
dW1tYXJ5X29iamVjdF9jYWxsYmFja3MuYyAqLzsgfTsKIAkJMEZDNEVDM0YyMzRBOTFFMzAwQjcx
MEEzIC8qIHBhc19mZF9zdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQzRFQzM2MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfZmRfc3RyZWFtLmgg
Ki87IH07CiAJCTBGQzRFQzc5MjM1MTcwN0IwMEI3MTBBMyAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2VtcHRpbmVzc19raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkM0RUM3ODIzNTE3MDdCMDBCNzEwQTMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9l
bXB0aW5lc3Nfa2luZC5oICovOyB9OwpAQCAtMTA3NywxMSArMTA3Miw2IEBACiAJCTBGQzRFQzMy
MjM0QTkxRTIwMEI3MTBBMyAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zdGF0dXNfcmVwb3J0ZXIuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEZDNEVDMzMyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3Ry
ZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zdHJpbmdfc3RyZWFt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzRFQzM0MjM0QTkxRTIwMEI3MTBB
MyAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IHBhc19zdGF0dXNfcmVwb3J0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEY5OTk5OUEyNkFBQUEwMDAwMjEyMTIxIC8qIHBhc19tdGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBwYXRoID0gcGFzX210ZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkw
Rjk5OTk5QjI2QUFBQTAwMDAyMTIxMjEgLyogcGFzX210ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBwYXNfbXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
OTk5OTlBMjZBQUFBMDAwMDIxMzEyMSAvKiBwYXNfbXRlX2NvbmZpZy5jICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfbXRlX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwRjk5OTk5QjI2QUFBQTAwMDAyMTMxMjEgLyogcGFzX210ZV9jb25maWcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX210ZV9jb25maWcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5OTk5OUIyNkFBQUEwMDAwMTExMTExIC8qIHBhc196
ZXJvX21lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfemVyb19t
ZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNEVDMzUyMzRBOTFFMzAw
QjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxs
YmFja3MuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNEVDMzYyMzRBOTFFMzAw
QjcxMEEzIC8qIHBhc19mZF9zdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX2ZkX3N0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0RUM3
ODIzNTE3MDdCMDBCNzEwQTMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9lbXB0aW5lc3Nfa2luZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Vt
cHRpbmVzc19raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzk4LDEwICsx
Nzg4LDYgQEAKIAkJCQkyQzQ3MzE0RjI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX21tYXBfY2FwYWJp
bGl0eS5oICovLAogCQkJCTBGRDQ4QjEwMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfbW9ub3Rvbmlj
X3RpbWUuYyAqLywKIAkJCQkwRkQ0OEFGRDIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX21vbm90b25p
Y190aW1lLmggKi8sCi0JCQkJMEY5OTk5OUEyNkFBQUEwMDAwMjEyMTIxIC8qIHBhc19tdGUuYyAq
LywKLQkJCQkwRjk5OTk5QjI2QUFBQTAwMDAyMTIxMjEgLyogcGFzX210ZS5oICovLAotCQkJCTBG
OTk5OTlBMjZBQUFBMDAwMDIxMzEyMSAvKiBwYXNfbXRlX2NvbmZpZy5jICovLAotCQkJCTBGOTk5
OTlCMjZBQUFBMDAwMDIxMzEyMSAvKiBwYXNfbXRlX2NvbmZpZy5oICovLAogCQkJCTBGMDkyMjY5
MjJCMDdDMjEwMDdENUQzQSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCAqLywKIAkJCQkwRjlBMUQ0
QTI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX29iamVjdF9raW5kLmggKi8sCiAJCQkJMEY5QTFDQkEy
NTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuYyAqLywKQEAgLTE5ODUsNyArMTk3MSw2
IEBACiAJCQkJMEY3ODA4ODMyMkZBMjJEMjAwRjM3NDUxIC8qIHBhc192aXJ0dWFsX3JhbmdlLmMg
Ki8sCiAJCQkJMEY3ODA4ODIyMkZBMjJEMTAwRjM3NDUxIC8qIHBhc192aXJ0dWFsX3JhbmdlLmgg
Ki8sCiAJCQkJMEY3ODA4ODgyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc192aXJ0dWFsX3JhbmdlX21p
bl9oZWFwLmggKi8sCi0JCQkJMEY5OTk5OUIyNkFBQUEwMDAwMTExMTExIC8qIHBhc196ZXJvX21l
bW9yeS5oICovLAogCQkJCTBGREVBNDZEMjI4QjY1NDMwMDg1RTM0MCAvKiBwYXNfemVyb19tb2Rl
LmggKi8sCiAJCQkJMEY4NzAwQTIyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmMgKi8s
CiAJCQkJMEY4NzAwQTMyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmggKi8sCkBAIC0y
MzE1LDggKzIzMDAsNiBAQAogCQkJCTBGRDIyQ0ZDMjJDQUYxNjQwMEIyMTg0MSAvKiBwYXNfbWlu
X2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTJDNDczMTUyMjc3QTU0MEYwMEI2MkM0OSAvKiBw
YXNfbW1hcF9jYXBhYmlsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEIzODIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX21vbm90b25pY190aW1lLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjk5
OTk5RDI2QUFBQTAwMDAyMTIxMjEgLyogcGFzX210ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5
OTk5OUQyNkFBQUEwMDAwMjEzMTIxIC8qIHBhc19tdGVfY29uZmlnLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjA5MjI2QTIyQjA3QzIxMDA3RDVEM0EgLyogcGFzX211dGF0aW9uX2NvdW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjlBMUQ0QzI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX29iamVjdF9r
aW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQwNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X3BhZ2VfYmFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQ0LDcgKzI0MjcsNiBAQAogCQkJCTBG
NjgxMjcwMjJCRDQxOUUwMDM2QTAyQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjc4MDg4NDIyRkEyMkQyMDBGMzc0NTEgLyogcGFzX3ZpcnR1YWxfcmFuZ2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzgwODhFMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfdmly
dHVhbF9yYW5nZV9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5OTk5OUQyNkFBQUEw
MDAwMTExMTExIC8qIHBhc196ZXJvX21lbW9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VF
M0IyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc196ZXJvX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGODcwMEE4MjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY4NzAwQUEyNUIwQThDMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yODQ0LDggKzI4MjYsNiBAQAogCQkJCTBGMDM3QUYzMjVBRUE5MUEw
MDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmMgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkU3RURDODIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRkQ0OEI0QjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX21vbm90b25pY190
aW1lLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjk5OTk5QzI2QUFBQTAwMDAyMTIxMjEgLyogcGFz
X210ZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5OTk5OUMyNkFBQUEwMDAwMjEzMTIxIC8qIHBh
c19tdGVfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjlBMUQwNjI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX3BhZ2VfYmFzZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMkMzNDAwMDIyNzU4MTY4
NzAwNTU2NUNCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkw
RjlBMUNGMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmMgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2pp
dF9oZWFwX2NvbmZpZy5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hl
YXBfY29uZmlnLmMKaW5kZXggNDFkNGI2NTY1NDg3Li5lNWI3YmUyZjE0OGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jCisrKyBi
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jCkBAIC0z
OSw3ICszOSw2IEBACiAjaW5jbHVkZSAicGFzX3Jvb3QuaCIKICNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3N0cmVhbS5oIgotI2lu
Y2x1ZGUgInBhc196ZXJvX21lbW9yeS5oIgogCiAjaWYgZGVmaW5lZChQQVNfQk1BTExPQykKICNp
bmNsdWRlICJCUGxhdGZvcm0uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvaml0X2hlYXBfY29uZmlnLmgKaW5kZXggMjViMzA0MjNmMzUzLi4wNjdhNWY2NDQ3MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2Nv
bmZpZy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2Nv
bmZpZy5oCkBAIC0xMzEsNyArMTMxLDYgQEAgUEFTX0hFQVBfQ09ORklHX1NQRUNJQUxJWkFUSU9O
X0RFQ0xBUkFUSU9OUyhqaXRfaGVhcF9jb25maWcpOwogICAgICAgICAuYmFzZSA9IHsgXAogICAg
ICAgICAgICAgLmlzX2VuYWJsZWQgPSB0cnVlLCBcCiAgICAgICAgICAgICAuYWxsb3dfcHJvZmls
aW5nID0gZmFsc2UsIFwKLSAgICAgICAgICAgIC5hbGxvd19tdGVfdGFnZ2luZyA9IGZhbHNlLCBc
CiAgICAgICAgICAgICAuaGVhcF9jb25maWdfcHRyID0gJmppdF9oZWFwX2NvbmZpZywgXAogICAg
ICAgICAgICAgLnBhZ2VfY29uZmlnX3B0ciA9ICZqaXRfaGVhcF9jb25maWcudmFyaWFudF9sb3dl
cmNhc2UgIyMgX2JpdGZpdF9jb25maWcuYmFzZSwgXAogICAgICAgICAgICAgLnBhZ2VfY29uZmln
X2tpbmQgPSBwYXNfcGFnZV9jb25maWdfa2luZF9iaXRmaXQsIFwKQEAgLTE2Nyw3ICsxNjYsNiBA
QCBQQVNfSEVBUF9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVDTEFSQVRJT05TKGppdF9oZWFwX2Nv
bmZpZyk7CiAgICAgICAgICAgICAuYmFzZSA9IHsgXAogICAgICAgICAgICAgICAgIC5pc19lbmFi
bGVkID0gdHJ1ZSwgXAogICAgICAgICAgICAgICAgIC5hbGxvd19wcm9maWxpbmcgPSBmYWxzZSwg
XAotICAgICAgICAgICAgICAgIC5hbGxvd19tdGVfdGFnZ2luZyA9IGZhbHNlLCBcCiAgICAgICAg
ICAgICAgICAgLmhlYXBfY29uZmlnX3B0ciA9ICZqaXRfaGVhcF9jb25maWcsIFwKICAgICAgICAg
ICAgICAgICAucGFnZV9jb25maWdfcHRyID0gJmppdF9oZWFwX2NvbmZpZy5zbWFsbF9zZWdyZWdh
dGVkX2NvbmZpZy5iYXNlLCBcCiAgICAgICAgICAgICAgICAgLnBhZ2VfY29uZmlnX2tpbmQgPSBw
YXNfcGFnZV9jb25maWdfa2luZF9zZWdyZWdhdGVkLCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyBiL1NvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5jCmluZGV4IDYz
ZWZjNTg2YTMyNC4uM2VkZTk2MjIzZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuYworKysgYi9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuYwpAQCAtMjgsMTYgKzI4
LDEzIEBACiAjaWYgTElCUEFTX0VOQUJMRUQKIAogI2luY2x1ZGUgInBhc19hbGxvY2F0aW9uX3Jl
c3VsdC5oIgotI2luY2x1ZGUgInBhc19tdGUuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9tYWxsb2Mu
aCIKLSNpbmNsdWRlICJwYXNfemVyb19tZW1vcnkuaCIKIAogcGFzX2FsbG9jYXRpb25fcmVzdWx0
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvX2xhcmdlX3Nsb3cocGFzX2FsbG9jYXRpb25fcmVz
dWx0IHJlc3VsdCwgc2l6ZV90IHNpemUpCiB7CiAgICAgc2l6ZV90IHBhZ2Vfc2l6ZTsKIAogICAg
IFBBU19QUk9GSUxFKFpFUk9fQUxMT0NBVElPTl9SRVNVTFQsIHJlc3VsdC5iZWdpbik7Ci0gICAg
UEFTX01URV9IQU5ETEUoWkVST19BTExPQ0FUSU9OX1JFU1VMVCwgcmVzdWx0LmJlZ2luKTsKIAog
ICAgIHBhZ2Vfc2l6ZSA9IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKTsKICAgICBpZiAocGFz
X2lzX2FsaWduZWQoc2l6ZSwgcGFnZV9zaXplKSAmJiBwYXNfaXNfYWxpZ25lZChyZXN1bHQuYmVn
aW4sIHBhZ2Vfc2l6ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5oCmluZGV4IDMzZjNlMDkwNGQyZC4uMzQ5ZDI2
YzhhMzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
YWxsb2NhdGlvbl9yZXN1bHQuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuaApAQCAtMjgsOSArMjgsNyBAQAogCiAjaW5jbHVkZSA8
ZXJybm8uaD4KICNpbmNsdWRlICJwYXNfaW50ZXJuYWxfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFz
X210ZS5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgotI2luY2x1ZGUgInBhc196ZXJvX21lbW9y
eS5oIgogI2luY2x1ZGUgInBhc196ZXJvX21vZGUuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwpA
QCAtOTcsNyArOTUsNiBAQCBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybyhwYXNfYWxsb2NhdGlv
bl9yZXN1bHQgcmVzdWx0LAogCiAgICAgUEFTX0FMTE9XX1VOU0FGRV9CVUZGRVJfVVNBR0VfQkVH
SU4KICAgICBQQVNfUFJPRklMRShaRVJPX0FMTE9DQVRJT05fUkVTVUxULCByZXN1bHQuYmVnaW4p
OwotICAgIFBBU19NVEVfSEFORExFKFpFUk9fQUxMT0NBVElPTl9SRVNVTFQsIHJlc3VsdC5iZWdp
bik7CiAgICAgUEFTX0FMTE9XX1VOU0FGRV9CVUZGRVJfVVNBR0VfRU5ECiAKICAgICB2b2lkKiBt
ZW1vcnkgPSAodm9pZCopcmVzdWx0LmJlZ2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jIGIvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jCmluZGV4IDlkYmM1
YTVkMGFlMC4uYzY1NDNmZGI0NzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmMKKysrIGIvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jCkBAIC0zMCw3ICszMCw2
IEBACiAjaW5jbHVkZSAicGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oIgogCiAjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfemVyb19tZW1vcnku
aCIKIAogdm9pZCBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX2F0dGFjaF9kaXJlY3RvcnkocGFzX2Jh
c2VsaW5lX2FsbG9jYXRvciogYWxsb2NhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfcGFnZS5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9w
YWdlLmMKaW5kZXggOWJmNzBlNGZkNWM2Li4zMDk5NjYwYzcyZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZS5jCisrKyBiL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZS5jCkBAIC0zMyw3ICsz
Myw2IEBACiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3LmgiCiAjaW5jbHVkZSAicGFzX2Vwb2No
LmgiCiAjaW5jbHVkZSAicGFzX2xvZy5oIgotI2luY2x1ZGUgInBhc196ZXJvX21lbW9yeS5oIgog
CiB2b2lkIHBhc19iaXRmaXRfcGFnZV9jb25zdHJ1Y3QocGFzX2JpdGZpdF9wYWdlKiBwYWdlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfdmlldyogdmlldywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFn
ZV9pbmxpbmVzLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X3BhZ2VfaW5saW5lcy5oCmluZGV4IGFiMGZhZTA2YTJkNi4uMGQyZjQzNTBkNmU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfaW5s
aW5lcy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
cGFnZV9pbmxpbmVzLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJwYXNfYml0Zml0X3Zp
ZXcuaCIKICNpbmNsdWRlICJwYXNfY29tbWl0X3NwYW4uaCIKICNpbmNsdWRlICJwYXNfaGVhcF9j
b25maWcuaCIKLSNpbmNsdWRlICJwYXNfbXRlLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfYmFzZV9p
bmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCiAjaW5jbHVkZSAi
cGFzX3RocmVhZC5oIgpAQCAtMjQ4LDcgKzI0Nyw2IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0IHBhc19iaXRmaXRfcGFnZV9maW5pc2hfYWxs
CiAgICAgcGFzX2JpdGZpdF9wYWdlX3Rlc3RpbmdfdmVyaWZ5KHBhZ2UpOwogCiAgICAgUEFTX1BS
T0ZJTEUoQklURklUX0FMTE9DQVRJT04sICZwYWdlX2NvbmZpZywgYmVnaW4sIHNpemUsIGFsbG9j
YXRpb25fbW9kZSk7Ci0gICAgUEFTX01URV9IQU5ETEUoQklURklUX0FMTE9DQVRJT04sICZwYWdl
X2NvbmZpZywgYmVnaW4sIHNpemUsIGFsbG9jYXRpb25fbW9kZSk7CiAKICAgICByZXR1cm4gcGFz
X2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcyhiZWdpbik7CiB9CkBAIC05
MDIsNyArOTAwLDYgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVpbnRwdHJfdCBwYXNfYml0
Zml0X3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2VfaW1wbCgKICAgICB9IH0KIAogICAgIFBBU19Q
Uk9GSUxFKEJJVEZJVF9QQUdFX0RFQUxMT0NBVElPTiwgcGFnZV9jb25maWcsIGJlZ2luLCBvcmln
aW5hbF9vYmplY3Rfc2l6ZSk7Ci0gICAgUEFTX01URV9IQU5ETEUoQklURklUX1BBR0VfREVBTExP
Q0FUSU9OLCBwYWdlX2NvbmZpZywgYmVnaW4sIG9yaWdpbmFsX29iamVjdF9zaXplKTsKIAogICAg
IHJldHVybiBudW1fYml0czsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19jb21wYWN0X2hlYXBfcmVzZXJ2YXRpb24uYyBiL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2hlYXBfcmVzZXJ2YXRpb24uYwppbmRleCAx
MGU5YWU4MDg2ZTMuLmVjZjBkODNkNjNiMiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5jCisrKyBiL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2hlYXBfcmVzZXJ2YXRpb24u
YwpAQCAtMzEsNyArMzEsNiBAQAogCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgogI2luY2x1
ZGUgInBhc19wYWdlX21hbGxvYy5oIgotI2luY2x1ZGUgInBhc196ZXJvX21lbW9yeS5oIgogCiAj
aWYgUEFTX1BMQVRGT1JNKFBMQVlTVEFUSU9OKQogI2luY2x1ZGUgPG1lbW9yeS1leHRyYS5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbmZpZy5o
IGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbmZpZy5oCmluZGV4IDA2
MzE4ZGYwZjA5Zi4uNWU5NDYwZWZhOGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29uZmlnLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvbmZpZy5oCkBAIC0zMCwxNCArMzAsNiBAQAogCiAjaW5jbHVkZSAic3Rk
Ym9vbC5oIgogCi0jaWYgZGVmaW5lZChQQVNfQk1BTExPQykgJiYgUEFTX0JNQUxMT0MKLSNpZiBk
ZWZpbmVkKF9faGFzX2luY2x1ZGUpCi0jaWYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25z
L3Bhc19tdGVfYWRkaXRpb25zLmg+KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9wYXNfbXRl
X2FkZGl0aW9ucy5oPgotI2VuZGlmIC8vIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9ucy9w
YXNfbXRlX2FkZGl0aW9ucy5oPikgJiYgIVBBU19FTkFCTEVfVEVTVElORwotI2VuZGlmIC8vIGRl
ZmluZWQoX19oYXNfaW5jbHVkZSkKLSNlbmRpZiAvLyBkZWZpbmVkKFBBU19CTUFMTE9DKSAmJiBQ
QVNfQk1BTExPQwotCiAjZGVmaW5lIFBBU19MT0dfTk9ORSAoMCkKICNkZWZpbmUgUEFTX0xPR19I
RUFQX0lORlJBU1RSVUNUVVJFICgxIDw8IDApCiAjZGVmaW5lIFBBU19MT0dfQk9PVFNUUkFQX0hF
QVBTICgxIDw8IDEpCkBAIC02OCwxMCArNjAsNiBAQAogI2VuZGlmCiAjZGVmaW5lIFBBU19FTkFC
TEVfVEVTVElORyBfX1BBU19FTkFCTEVfVEVTVElORwogCi0jaWZuZGVmIFBBU19FTkFCTEVfTVRF
Ci0jZGVmaW5lIFBBU19FTkFCTEVfTVRFIChQQVNfVVNFX0FQUExFX0lOVEVSTkFMX1NESyAmJiBQ
QVNfUExBVEZPUk0oSU9TX0ZBTUlMWSkpCi0jZW5kaWYKLQogI2RlZmluZSBQQVNfQVJNNjQgX19Q
QVNfQVJNNjQKICNkZWZpbmUgUEFTX0FSTTMyIF9fUEFTX0FSTTMyCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdl
X2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRf
bWVtb3J5LmMKaW5kZXggZTJhM2JhODcyMWQ2Li5kMTBjOWNkMjg0ODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdl
X2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2Vy
dmVkX21lbW9yeS5jCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAicGFzX2ltbW9ydGFsX2hl
YXAuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2Fj
aGUuaCIKICNpbmNsdWRlICJwYXNfbWVnYXBhZ2VfY2FjaGUuaCIKLSNpbmNsdWRlICJwYXNfbXRl
LmgiCiAjaW5jbHVkZSAicGFzX3Jlc2VydmVkX21lbW9yeV9wcm92aWRlci5oIgogI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5oIgogCkBAIC04MCw3ICs3OSw2
IEBAIHN0YXRpYyBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgYWxsb2NhdGVfZnJvbV9tZWdhcGFnZXMo
CiAgICAgaGVhcF9jb25maWcgPSBwYXNfaGVhcF9jb25maWdfa2luZF9nZXRfY29uZmlnKGhlYXAt
PmNvbmZpZ19raW5kKTsKIAogICAgIFBBU19QUk9GSUxFKE1FR0FQQUdFU19BTExPQ0FUSU9OLCBo
ZWFwLCBzaXplLCBhbGlnbm1lbnQuYWxpZ25tZW50LCBoZWFwX2NvbmZpZywgY2FjaGVfc2l6ZSk7
Ci0gICAgUEFTX01URV9IQU5ETEUoTUVHQVBBR0VTX0FMTE9DQVRJT04sIGhlYXAsIHNpemUsIGFs
aWdubWVudC5hbGlnbm1lbnQsIGhlYXBfY29uZmlnKTsKIAogICAgIHJldHVybiBwYXNfbGFyZ2Vf
aGVhcF90cnlfYWxsb2NhdGVfYW5kX2ZvcmdldCgKICAgICAgICAgJmhlYXAtPm1lZ2FwYWdlX2xh
cmdlX2hlYXAsIHNpemUsIGFsaWdubWVudC5hbGlnbm1lbnQsIHBhc19ub25fY29tcGFjdF9hbGxv
Y2F0aW9uX21vZGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfZW51bWVyYXRvci5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2VudW1lcmF0b3IuYwppbmRleCBjMGQxZjQ0NzAzNmYuLmExZGY3ZDcyMzk3YSAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0b3IuYworKysg
Yi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRvci5jCkBAIC0z
OCw3ICszOCw2IEBACiAjaW5jbHVkZSAicGFzX2VudW1lcmF0b3JfcmVnaW9uLmgiCiAjaW5jbHVk
ZSAicGFzX3B0cl9oYXNoX3NldC5oIgogI2luY2x1ZGUgInBhc19yb290LmgiCi0jaW5jbHVkZSAi
cGFzX3plcm9fbWVtb3J5LmgiCiAKIHN0YXRpYyB2b2lkKiBhbGxvY2F0ZShzaXplX3Qgc2l6ZSwg
Y29uc3QgY2hhciogbmFtZSwgcGFzX2FsbG9jYXRpb25fa2luZCBhbGxvY2F0aW9uX2tpbmQsIHZv
aWQqIGFyZykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19mYXN0X2xhcmdlX2ZyZWVfaGVhcC5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwLmMKaW5kZXggMmZlMGY3YjY0ZDEyLi40YzBi
ZDE1ZDNjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19mYXN0X2xhcmdlX2ZyZWVfaGVhcC5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19mYXN0X2xhcmdlX2ZyZWVfaGVhcC5jCkBAIC0zMSw3ICszMSw2IEBACiAKICNp
bmNsdWRlICJwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfdXRp
bGl0eV9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX3plcm9fbWVtb3J5LmgiCiAKIC8qIEl0IHNvIGhh
cHBlbnMgdGhhdCB3ZSBjYW4gdXNlIHRoaXMgZm9yIGJvdGggeCAoYWRkcmVzcykgYW5kIHkgKHNp
emUpLiAqLwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGludCBrZXlfY29tcGFyZV9jYWxsYmFj
ayh2b2lkKiByYXdfbGVmdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5jCmluZGV4IDY1M2U0NGY4Y2JmNC4u
YWRmZmRlMzg4NzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmMKQEAgLTI0LDcgKzI0LDYgQEAKICAq
LwogCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc196ZXJvX21lbW9yeS5o
IgogCiAjaWYgTElCUEFTX0VOQUJMRUQKIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaCBiL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmgKaW5kZXggMmE1NjI2
ZjM3NzA5Li4yOTIwOTZmNmUyMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmgKKysrIGIvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaApAQCAtMTMzLDcgKzEz
Myw2IEBAIHN0YXRpYyBpbmxpbmUgcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZCBwYXNfZmFzdF9tZWdh
cGFnZV90YWJsZV9nZXQoCiAgICAgdWludHB0cl90IGJlZ2luKQogewogICAgIFBBU19QUk9GSUxF
KE1FR0FQQUdFX0dFVCwgYmVnaW4pOwotICAgIFBBU19NVEVfSEFORExFKE1FR0FQQUdFX0dFVCwg
YmVnaW4pOwogICAgIHJldHVybiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZV9nZXRfYnlfaW5kZXgo
dGFibGUsIGJlZ2luID4+IFBBU19GQVNUX01FR0FQQUdFX1NISUZUKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ZyZWVfZ3JhbnVsZXMuYyBi
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mcmVlX2dyYW51bGVzLmMKaW5k
ZXggNzkwZmFjMDJlNjIzLi4yOTk2ZWExMzAxNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mcmVlX2dyYW51bGVzLmMKKysrIGIvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ZyZWVfZ3JhbnVsZXMuYwpAQCAtMzMsNyArMzMsNiBA
QAogI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19sb2cuaCIKICNp
bmNsdWRlICJwYXNfcGFnZV9iYXNlX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc196ZXJvX21lbW9y
eS5oIgogCiB2b2lkIHBhc19mcmVlX2dyYW51bGVzX2NvbXB1dGVfYW5kX21hcmtfZGVjb21taXR0
ZWQocGFzX2ZyZWVfZ3JhbnVsZXMqIGZyZWVfZ3JhbnVsZXMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291
bnQqIHVzZV9jb3VudHMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2dldF9hbGxvY2F0aW9uX3NpemUuaAppbmRleCA4YTk5OThmNjcxOTcuLjRm
NDBmODIwYTIwMSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2dldF9hbGxvY2F0aW9uX3NpemUuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5j
bHVkZSAicGFzX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgogI2lu
Y2x1ZGUgInBhc19sYXJnZV9tYXAuaCIKLSNpbmNsdWRlICJwYXNfbXRlLmgiCiAjaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkuaCIKIApAQCAtMTI1LDcgKzEyNCw2IEBAIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBzaXplX3QgcGFzX2dldF9hbGxvY2F0aW9uX3NpemUodm9pZCogcHRyLAogICAgICAg
ICAKICAgICAgICAgaWYgKCFwYXNfbGFyZ2VfbWFwX2VudHJ5X2lzX2VtcHR5KGVudHJ5KSkgewog
ICAgICAgICAgICAgUEFTX1BST0ZJTEUoTEFSR0VfTUFQX0ZPVU5EX0VOVFJZLCAmY29uZmlnLCBl
bnRyeS5iZWdpbiwgZW50cnkuZW5kKTsKLSAgICAgICAgICAgIFBBU19NVEVfSEFORExFKExBUkdF
X01BUF9GT1VORF9FTlRSWSwgJmNvbmZpZywgZW50cnkuYmVnaW4sIGVudHJ5LmVuZCk7CiAgICAg
ICAgICAgICBQQVNfQVNTRVJUKGVudHJ5LmJlZ2luID09IGJlZ2luKTsKICAgICAgICAgICAgIFBB
U19BU1NFUlQoZW50cnkuZW5kID4gYmVnaW4pOwogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2V0X2hlYXAuaCBiL1NvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19nZXRfaGVhcC5oCmluZGV4IGU4NGZkMzAxOGRh
ZC4uM2Q4ODdjNmQ2OWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfZ2V0X2hlYXAuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfZ2V0X2hlYXAuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgInBhc19oZWFwLmgi
CiAjaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdlX21hcC5o
IgotI2luY2x1ZGUgInBhc19tdGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lu
bGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogCkBA
IC0xMTEsNyArMTEwLDYgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19oZWFwKiBwYXNf
Z2V0X2hlYXAodm9pZCogcHRyLAogICAgICAgICAKICAgICAgICAgUEFTX0FTU0VSVCghcGFzX2xh
cmdlX21hcF9lbnRyeV9pc19lbXB0eShlbnRyeSkpOwogICAgICAgICBQQVNfUFJPRklMRShMQVJH
RV9NQVBfRk9VTkRfRU5UUlksICZjb25maWcsIGVudHJ5LmJlZ2luLCBlbnRyeS5lbmQpOwotICAg
ICAgICBQQVNfTVRFX0hBTkRMRShMQVJHRV9NQVBfRk9VTkRfRU5UUlksICZjb25maWcsIGVudHJ5
LmJlZ2luLCBlbnRyeS5lbmQpOwogICAgICAgICBQQVNfQVNTRVJUKGVudHJ5LmJlZ2luID09IGJl
Z2luKTsKICAgICAgICAgUEFTX0FTU0VSVChlbnRyeS5lbmQgPiBiZWdpbik7CiAgICAgICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hhc2h0YWJs
ZS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hhc2h0YWJsZS5oCmlu
ZGV4IGVhM2UxM2IzMDg5Mi4uNmI2NzI4YWExMmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGFzaHRhYmxlLmgKKysrIGIvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hhc2h0YWJsZS5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5j
bHVkZSAicGFzX2VudW1lcmF0b3IuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCiAjaW5jbHVkZSAi
cGFzX3V0aWxzLmgiCi0jaW5jbHVkZSAicGFzX3plcm9fbWVtb3J5LmgiCiAKIFBBU19CRUdJTl9F
WFRFUk5fQzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2hlYXAuYyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmMK
aW5kZXggMDUxZjc3ZDRiMzdlLi4xNzcxOWIyOTdlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmMKKysrIGIvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuYwpAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgInBh
c19wcmltaXRpdmVfaGVhcF9yZWYuaCIKICNpbmNsdWRlICJwYXNfcHJvYmFiaWxpc3RpY19ndWFy
ZF9tYWxsb2NfYWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfemVyb19tZW1vcnkuaCIKIAogcGFzX2hlYXAqIHBhc19o
ZWFwX2NyZWF0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9yZWZfa2luZCBoZWFwX3JlZl9raW5kLApkaWZmIC0tZ2l0IGEvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMgYi9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuYwppbmRl
eCA3OWZjZWRlOWFmMmYuLjM1MjZhODc4MTJjNiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMKKysrIGIvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMKQEAgLTM1LDcg
KzM1LDYgQEAKICNpbmNsdWRlICJwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdf
Y2FjaGUuaCIKICNpbmNsdWRlICJwYXNfcm9vdC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X3BhZ2UuaCIKLSNpbmNsdWRlICJwYXNfemVyb19tZW1vcnkuaCIKIAogdm9pZCBwYXNfaGVhcF9j
b25maWdfdXRpbHNfbnVsbF9hY3RpdmF0ZSh2b2lkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmggYi9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaAppbmRleCBl
MzliNTg5OGQ2MWYuLjkzNjE5Mjg5ZDRjNiAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmgKKysrIGIvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmgKQEAgLTEwNCw3ICsx
MDQsNiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgIC5iYXNlID0geyBcCiAgICAgICAgICAg
ICAuaXNfZW5hYmxlZCA9IHRydWUsIFwKICAgICAgICAgICAgIC5hbGxvd19wcm9maWxpbmcgPSBQ
QVNfU0hPVUxEX1BST0ZJTEVfQkFTSUNfSEVBUF9QQUdFKHBhc19wYWdlX2NvbmZpZ19zaXplX2Nh
dGVnb3J5X3NtYWxsKSwgXAotICAgICAgICAgICAgLmFsbG93X210ZV90YWdnaW5nID0gUEFTX1NI
T1VMRF9NVEVfVEFHX0JBU0lDX0hFQVBfUEFHRShwYXNfcGFnZV9jb25maWdfc2l6ZV9jYXRlZ29y
eV9zbWFsbCksIFwKICAgICAgICAgICAgIC5oZWFwX2NvbmZpZ19wdHIgPSAmbmFtZSAjIyBfaGVh
cF9jb25maWcsIFwKICAgICAgICAgICAgIC5wYWdlX2NvbmZpZ19wdHIgPSAmbmFtZSAjIyBfaGVh
cF9jb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFzZSwgXAogICAgICAgICAgICAgLnBh
Z2VfY29uZmlnX2tpbmQgPSBwYXNfcGFnZV9jb25maWdfa2luZF9zZWdyZWdhdGVkLCBcCkBAIC0x
NzUsNyArMTc0LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICAgICAgLmlzX2VuYWJsZWQg
PSBcCiAgICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtf
X1ZBX0FSR1NfX30pLnVzZV9tZWRpdW1fc2VncmVnYXRlZCwgXAogICAgICAgICAgICAgLmFsbG93
X3Byb2ZpbGluZyA9IFBBU19TSE9VTERfUFJPRklMRV9CQVNJQ19IRUFQX1BBR0UocGFzX3BhZ2Vf
Y29uZmlnX3NpemVfY2F0ZWdvcnlfbWVkaXVtKSwgXAotICAgICAgICAgICAgLmFsbG93X210ZV90
YWdnaW5nID0gUEFTX1NIT1VMRF9NVEVfVEFHX0JBU0lDX0hFQVBfUEFHRShwYXNfcGFnZV9jb25m
aWdfc2l6ZV9jYXRlZ29yeV9tZWRpdW0pLCBcCiAgICAgICAgICAgICAuaGVhcF9jb25maWdfcHRy
ID0gJm5hbWUgIyMgX2hlYXBfY29uZmlnLCBcCiAgICAgICAgICAgICAucGFnZV9jb25maWdfcHRy
ID0gJm5hbWUgIyMgX2hlYXBfY29uZmlnLm1lZGl1bV9zZWdyZWdhdGVkX2NvbmZpZy5iYXNlLCBc
CiAgICAgICAgICAgICAucGFnZV9jb25maWdfa2luZCA9IHBhc19wYWdlX2NvbmZpZ19raW5kX3Nl
Z3JlZ2F0ZWQsIFwKQEAgLTIzMiw3ICsyMzAsNiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAg
ICAgICAuaXNfZW5hYmxlZCA9IFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2Nv
bmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkudXNlX3NtYWxsX2JpdGZpdCwgXAogICAgICAg
ICAgICAgLmFsbG93X3Byb2ZpbGluZyA9IFBBU19TSE9VTERfUFJPRklMRV9CQVNJQ19IRUFQX1BB
R0UocGFzX3BhZ2VfY29uZmlnX3NpemVfY2F0ZWdvcnlfc21hbGwpLCBcCi0gICAgICAgICAgICAu
YWxsb3dfbXRlX3RhZ2dpbmcgPSBQQVNfU0hPVUxEX01URV9UQUdfQkFTSUNfSEVBUF9QQUdFKHBh
c19wYWdlX2NvbmZpZ19zaXplX2NhdGVnb3J5X3NtYWxsKSwgXAogICAgICAgICAgICAgLmhlYXBf
Y29uZmlnX3B0ciA9ICZuYW1lICMjIF9oZWFwX2NvbmZpZywgXAogICAgICAgICAgICAgLnBhZ2Vf
Y29uZmlnX3B0ciA9ICZuYW1lICMjIF9oZWFwX2NvbmZpZy5zbWFsbF9iaXRmaXRfY29uZmlnLmJh
c2UsIFwKICAgICAgICAgICAgIC5wYWdlX2NvbmZpZ19raW5kID0gcGFzX3BhZ2VfY29uZmlnX2tp
bmRfYml0Zml0LCBcCkBAIC0yNzYsNyArMjczLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAg
ICAgICAgLmlzX2VuYWJsZWQgPSBcCiAgICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9j
b25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnVzZV9tZWRpdW1fYml0Zml0LCBcCiAgICAg
ICAgICAgICAuYWxsb3dfcHJvZmlsaW5nID0gUEFTX1NIT1VMRF9QUk9GSUxFX0JBU0lDX0hFQVBf
UEFHRShwYXNfcGFnZV9jb25maWdfc2l6ZV9jYXRlZ29yeV9tZWRpdW0pLCBcCi0gICAgICAgICAg
ICAuYWxsb3dfbXRlX3RhZ2dpbmcgPSBQQVNfU0hPVUxEX01URV9UQUdfQkFTSUNfSEVBUF9QQUdF
KHBhc19wYWdlX2NvbmZpZ19zaXplX2NhdGVnb3J5X21lZGl1bSksIFwKICAgICAgICAgICAgIC5o
ZWFwX2NvbmZpZ19wdHIgPSAmbmFtZSAjIyBfaGVhcF9jb25maWcsIFwKICAgICAgICAgICAgIC5w
YWdlX2NvbmZpZ19wdHIgPSAmbmFtZSAjIyBfaGVhcF9jb25maWcubWVkaXVtX2JpdGZpdF9jb25m
aWcuYmFzZSwgXAogICAgICAgICAgICAgLnBhZ2VfY29uZmlnX2tpbmQgPSBwYXNfcGFnZV9jb25m
aWdfa2luZF9iaXRmaXQsIFwKQEAgLTMxMCw3ICszMDYsNiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAg
ICAgICAgICAgICAuaXNfZW5hYmxlZCA9IFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19o
ZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkudXNlX21hcmdlX2JpdGZpdCwgXAog
ICAgICAgICAgICAgLmFsbG93X3Byb2ZpbGluZyA9IFBBU19TSE9VTERfUFJPRklMRV9CQVNJQ19I
RUFQX1BBR0UocGFzX3BhZ2VfY29uZmlnX3NpemVfY2F0ZWdvcnlfbWFyZ2UpLCBcCi0gICAgICAg
ICAgICAuYWxsb3dfbXRlX3RhZ2dpbmcgPSBQQVNfU0hPVUxEX01URV9UQUdfQkFTSUNfSEVBUF9Q
QUdFKHBhc19wYWdlX2NvbmZpZ19zaXplX2NhdGVnb3J5X21hcmdlKSwgXAogICAgICAgICAgICAg
LmhlYXBfY29uZmlnX3B0ciA9ICZuYW1lICMjIF9oZWFwX2NvbmZpZywgXAogICAgICAgICAgICAg
LnBhZ2VfY29uZmlnX3B0ciA9ICZuYW1lICMjIF9oZWFwX2NvbmZpZy5tYXJnZV9iaXRmaXRfY29u
ZmlnLmJhc2UsIFwKICAgICAgICAgICAgIC5wYWdlX2NvbmZpZ19raW5kID0gcGFzX3BhZ2VfY29u
ZmlnX2tpbmRfYml0Zml0LCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oIGIvU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaAppbmRleCAz
MzgzNmEwOWFlMjUuLmMyZjA3ZGVmMDQzMyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaAorKysgYi9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5l
cy5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnX3V0aWxzLmgi
CiAjaW5jbHVkZSAicGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmgi
CiAjaW5jbHVkZSAicGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oIgotI2luY2x1ZGUgInBhc19t
dGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVz
LmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKQEAgLTE2NSwxMyArMTY0LDExIEBAIHR5cGVkZWYg
c3RydWN0IHsKICAgICAgICAgICAgIG1lZ2FwYWdlX2NhY2hlID0gJnBhZ2VfY2FjaGVzLT5zbWFs
bF9vdGhlcl9tZWdhcGFnZV9jYWNoZTsgXAogICAgICAgICAgICAgbWVnYXBhZ2Vfa2luZCA9IHBh
c19zbWFsbF9vdGhlcl9mYXN0X21lZ2FwYWdlX2tpbmQ7IFwKICAgICAgICAgICAgIFBBU19QUk9G
SUxFKFNNQUxMX1NIQVJFRF9TRUdSRUdBVEVEX1BBR0VfQUxMT0NBVElPTiwgaGVhcCwgbWVnYXBh
Z2VfY2FjaGUpOyBcCi0gICAgICAgICAgICBQQVNfTVRFX0hBTkRMRShTTUFMTF9TSEFSRURfU0VH
UkVHQVRFRF9QQUdFX0FMTE9DQVRJT04sIGhlYXAsIG1lZ2FwYWdlX2NhY2hlKTsgXAogICAgICAg
ICAgICAgYnJlYWs7IFwKICAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2V4Y2x1c2l2
ZV9yb2xlOiBcCiAgICAgICAgICAgICBtZWdhcGFnZV9jYWNoZSA9ICZwYWdlX2NhY2hlcy0+c21h
bGxfZXhjbHVzaXZlX3NlZ3JlZ2F0ZWRfbWVnYXBhZ2VfY2FjaGU7IFwKICAgICAgICAgICAgIG1l
Z2FwYWdlX2tpbmQgPSBwYXNfc21hbGxfZXhjbHVzaXZlX3NlZ3JlZ2F0ZWRfZmFzdF9tZWdhcGFn
ZV9raW5kOyBcCiAgICAgICAgICAgICBQQVNfUFJPRklMRShTTUFMTF9FWENMVVNJVkVfU0VHUkVH
QVRFRF9QQUdFX0FMTE9DQVRJT04sIGhlYXAsIG1lZ2FwYWdlX2NhY2hlKTsgXAotICAgICAgICAg
ICAgUEFTX01URV9IQU5ETEUoU01BTExfRVhDTFVTSVZFX1NFR1JFR0FURURfUEFHRV9BTExPQ0FU
SU9OLCBoZWFwLCBtZWdhcGFnZV9jYWNoZSk7IFwKICAgICAgICAgICAgIGJyZWFrOyBcCiAgICAg
ICAgIH0gXAogICAgICAgICBcCkBAIC0yMDUsNyArMjAyLDYgQEAgdHlwZWRlZiBzdHJ1Y3Qgewog
ICAgICAgICBtZWdhcGFnZV9jYWNoZSA9ICZwYWdlX2NhY2hlcy0+c21hbGxfb3RoZXJfbWVnYXBh
Z2VfY2FjaGU7IFwKICAgICAgICAgXAogICAgICAgICBQQVNfUFJPRklMRShTTUFMTF9CSVRGSVRf
UEFHRV9BTExPQ0FUSU9OLCBoZWFwLCBtZWdhcGFnZV9jYWNoZSk7IFwKLSAgICAgICAgUEFTX01U
RV9IQU5ETEUoU01BTExfQklURklUX1BBR0VfQUxMT0NBVElPTiwgaGVhcCwgbWVnYXBhZ2VfY2Fj
aGUpOyBcCiAgICAgICAgIGFsbG9jYXRpb24gPSBwYXNfZmFzdF9tZWdhcGFnZV9jYWNoZV90cnlf
YWxsb2NhdGUoIFwKICAgICAgICAgICAgIG1lZ2FwYWdlX2NhY2hlLCBcCiAgICAgICAgICAgICAm
bmFtZSAjIyBfbWVnYXBhZ2VfdGFibGUsIFwKQEAgLTIzOSw3ICsyMzUsNiBAQCB0eXBlZGVmIHN0
cnVjdCB7CiAgICAgICAgIG1lZ2FwYWdlX2NhY2hlID0gJnBhZ2VfY2FjaGVzLT5tZWRpdW1fbWVn
YXBhZ2VfY2FjaGU7IFwKICAgICAgICAgXAogICAgICAgICBQQVNfUFJPRklMRShNRURJVU1fU0VH
UkVHQVRFRF9QQUdFX0FMTE9DQVRJT04sIGhlYXAsIG1lZ2FwYWdlX2NhY2hlKTsgXAotICAgICAg
ICBQQVNfTVRFX0hBTkRMRShNRURJVU1fU0VHUkVHQVRFRF9QQUdFX0FMTE9DQVRJT04sIGhlYXAs
IG1lZ2FwYWdlX2NhY2hlKTsgXAogICAgICAgICBhbGxvY2F0aW9uID0gcGFzX21lZGl1bV9tZWdh
cGFnZV9jYWNoZV90cnlfYWxsb2NhdGUoIFwKICAgICAgICAgICAgIG1lZ2FwYWdlX2NhY2hlLCBc
CiAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2VfY29uZmlnX3B0ciwgXApAQCAtMjY4
LDcgKzI2Myw2IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgbWVnYXBhZ2VfY2FjaGUgPSAm
cGFnZV9jYWNoZXMtPm1lZGl1bV9tZWdhcGFnZV9jYWNoZTsgXAogICAgICAgICBcCiAgICAgICAg
IFBBU19QUk9GSUxFKE1FRElVTV9CSVRGSVRfUEFHRV9BTExPQ0FUSU9OLCBoZWFwLCBtZWdhcGFn
ZV9jYWNoZSk7IFwKLSAgICAgICAgUEFTX01URV9IQU5ETEUoTUVESVVNX0JJVEZJVF9QQUdFX0FM
TE9DQVRJT04sIGhlYXAsIG1lZ2FwYWdlX2NhY2hlKTsgXAogICAgICAgICBhbGxvY2F0aW9uID0g
cGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZV90cnlfYWxsb2NhdGUoIFwKICAgICAgICAgICAgIG1l
Z2FwYWdlX2NhY2hlLCBcCiAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2VfY29uZmln
X3B0ciwgXApAQCAtMjk3LDcgKzI5MSw2IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgbWVn
YXBhZ2VfY2FjaGUgPSAmcGFnZV9jYWNoZXMtPm1lZGl1bV9tZWdhcGFnZV9jYWNoZTsgXAogICAg
ICAgICBcCiAgICAgICAgIFBBU19QUk9GSUxFKE1BUkdFX0JJVEZJVF9QQUdFX0FMTE9DQVRJT04s
IGhlYXAsIG1lZ2FwYWdlX2NhY2hlKTsgXAotICAgICAgICBQQVNfTVRFX0hBTkRMRShNQVJHRV9C
SVRGSVRfUEFHRV9BTExPQ0FUSU9OLCBoZWFwLCBtZWdhcGFnZV9jYWNoZSk7IFwKICAgICAgICAg
YWxsb2NhdGlvbiA9IHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGVfdHJ5X2FsbG9jYXRlKCBcCiAg
ICAgICAgICAgICBtZWdhcGFnZV9jYWNoZSwgXAogICAgICAgICAgICAgcGFnZV9jb25maWcuYmFz
ZS5wYWdlX2NvbmZpZ19wdHIsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19oZWFwX3JlZi5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2hlYXBfcmVmLmMKaW5kZXggNjRkYjFjYzI1NWY2Li44N2IyZWE2NTViYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3JlZi5jCisr
KyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3JlZi5jCkBAIC00
Myw3ICs0Myw2IEBAIHBhc19oZWFwKiBwYXNfZW5zdXJlX2hlYXBfc2xvdyhwYXNfaGVhcF9yZWYq
IGhlYXBfcmVmLAogCiAgICAgUEFTX0FTU0VSVChoZWFwX3JlZl9raW5kICE9IHBhc19mYWtlX2hl
YXBfcmVmX2tpbmQpOwogICAgIFBBU19QUk9GSUxFKEVOU1VSRV9IRUFQX1NMT1csIGhlYXAsIGhl
YXBfcmVmLCBoZWFwX3JlZl9raW5kLCBjb25maWcsIHJ1bnRpbWVfY29uZmlnKTsKLSAgICBQQVNf
TVRFX0hBTkRMRShFTlNVUkVfSEVBUF9TTE9XLCBoZWFwLCBoZWFwX3JlZiwgaGVhcF9yZWZfa2lu
ZCwgY29uZmlnLCBydW50aW1lX2NvbmZpZyk7CiAKICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsK
ICAgICBoZWFwID0gaGVhcF9yZWYtPmhlYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfaW1tb3J0YWxfaGVhcC5jIGIvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2ltbW9ydGFsX2hlYXAuYwppbmRleCA1NjFkNGQ1MzE4MjkuLmVh
NDE4NjM0ZWJiZCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2ltbW9ydGFsX2hlYXAuYworKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfaW1tb3J0YWxfaGVhcC5jCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAicGFzX2Fs
bG9jYXRpb25fY2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAicGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZh
dGlvbi5oIgogI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfbXRlLmgi
CiAKIHVpbnRwdHJfdCBwYXNfaW1tb3J0YWxfaGVhcF9jdXJyZW50OwogdWludHB0cl90IHBhc19p
bW1vcnRhbF9oZWFwX2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19pbW11dGFibGVfdmVjdG9yLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfaW1tdXRhYmxlX3ZlY3Rvci5oCmluZGV4IGY2ZTZhY2M2Mjk4MS4uMDg4Nzkz
MzU3YWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
aW1tdXRhYmxlX3ZlY3Rvci5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19pbW11dGFibGVfdmVjdG9yLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJwYXNf
aW1tb3J0YWxfaGVhcC5oIgogI2luY2x1ZGUgInBhc19sb2cuaCIKICNpbmNsdWRlICJwYXNfdXRp
bHMuaCIKLSNpbmNsdWRlICJwYXNfemVyb19tZW1vcnkuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9D
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFy
Z2VfZnJlZV9oZWFwX2hlbHBlcnMuYyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVycy5jCmluZGV4IGZkZTRjM2RkYzMyNy4uNzk3YmY3
NGZmN2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnMuYworKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnMuYwpAQCAtMzUsNyArMzUsNiBAQAog
I2luY2x1ZGUgInBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9t
YWxsb2MuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKLSNpbmNsdWRlICJw
YXNfemVyb19tZW1vcnkuaCIKIAogYm9vbCBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfdGFs
a3NfdG9fbGFyZ2Vfc2hhcmluZ19wb29sID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuYyBiL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwLmMKaW5kZXggMGUxYTVlOTNkNWMyLi40
MDE5MjczYzIwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19sYXJnZV9oZWFwLmMKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xhcmdlX2hlYXAuYwpAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgInBhc19sYXJnZV9m
cmVlX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oIgog
I2luY2x1ZGUgInBhc19sYXJnZV9tYXAuaCIKLSNpbmNsdWRlICJwYXNfbXRlLmgiCiAjaW5jbHVk
ZSAicGFzX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRf
bWFsbG9jX2FsbG9jYXRvci5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC0yMTAsNyArMjA5LDYg
QEAgYm9vbCBwYXNfbGFyZ2VfaGVhcF90cnlfZGVhbGxvY2F0ZSh1aW50cHRyX3QgYmVnaW4sCiAg
ICAgfQogCiAgICAgUEFTX1BST0ZJTEUoTEFSR0VfTUFQX1RPT0tfRU5UUlksIGhlYXBfY29uZmln
LCBtYXBfZW50cnkuYmVnaW4sIG1hcF9lbnRyeS5lbmQpOwotICAgIFBBU19NVEVfSEFORExFKExB
UkdFX01BUF9UT09LX0VOVFJZLCBoZWFwX2NvbmZpZywgbWFwX2VudHJ5LmJlZ2luLCBtYXBfZW50
cnkuZW5kKTsKICAgICBQQVNfQVNTRVJUKHBhc19oZWFwX2NvbmZpZ19raW5kX2dldF9jb25maWco
CiAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfZm9yX2xhcmdlX2hlYXAobWFwX2VudHJ5Lmhl
YXApLT5jb25maWdfa2luZCkKICAgICAgICAgICAgICAgID09IGhlYXBfY29uZmlnKTsKQEAgLTI1
NCw3ICsyNTIsNiBAQCBib29sIHBhc19sYXJnZV9oZWFwX3RyeV9zaHJpbmsodWludHB0cl90IGJl
Z2luLAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBQQVNfUFJPRklMRShMQVJHRV9NQVBf
VE9PS19FTlRSWSwgaGVhcF9jb25maWcsIG1hcF9lbnRyeS5iZWdpbiwgbWFwX2VudHJ5LmVuZCk7
Ci0gICAgUEFTX01URV9IQU5ETEUoTEFSR0VfTUFQX1RPT0tfRU5UUlksIGhlYXBfY29uZmlnLCBt
YXBfZW50cnkuYmVnaW4sIG1hcF9lbnRyeS5lbmQpOwogICAgIGhlYXAgPSBtYXBfZW50cnkuaGVh
cDsKICAgICB0eXBlID0gcGFzX2hlYXBfZm9yX2xhcmdlX2hlYXAoaGVhcCktPnR5cGU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFw
X3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMKaW5k
ZXggMWY0M2VmYmJlMmQzLi5kMDQzMTZkODljZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19j
YWNoZS5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9o
ZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5jCkBAIC0zNSw3ICszNSw2IEBACiAjaW5j
bHVkZSAicGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oIgogI2luY2x1ZGUgInBhc19wYWdlX21hbGxv
Yy5oIgogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgotI2luY2x1ZGUgInBhc196
ZXJvX21lbW9yeS5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAKIHBhc19lbnVtZXJhYmxlX3Jhbmdl
X2xpc3QgcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlX3BhZ2VfbGlz
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJn
ZV9tYXAuYyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9tYXAu
YwppbmRleCAzYmM1ZDg3MzgwZTguLmMwY2U2NzZlMmU1NCAxMDA2NDQKLS0tIGEvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX21hcC5jCisrKyBiL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9tYXAuYwpAQCAtMzEsNyArMzEsNiBAQAog
CiAjaW5jbHVkZSAicGFzX2xhcmdlX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfdXRpbGl0
eV9mcmVlX2hlYXAuaCIKLSNpbmNsdWRlICJwYXNfbXRlLmgiCiAKIHBhc19sYXJnZV9tYXBfaGFz
aHRhYmxlIHBhc19sYXJnZV9tYXBfaGFzaHRhYmxlX2luc3RhbmNlID0gUEFTX0hBU0hUQUJMRV9J
TklUSUFMSVpFUjsKIHBhc19sYXJnZV9tYXBfaGFzaHRhYmxlX2luX2ZsdXhfc3Rhc2ggcGFzX2xh
cmdlX21hcF9oYXNodGFibGVfaW5zdGFuY2VfaW5fZmx1eF9zdGFzaDsKQEAgLTQ0LDcgKzQzLDYg
QEAgcGFzX3RpbnlfbGFyZ2VfbWFwX3NlY29uZF9sZXZlbF9oYXNodGFibGVfaW5fZmx1eF9zdGFz
aCBwYXNfdGlueV9sYXJnZV9tYXBfc2Vjb24KIHBhc19sYXJnZV9tYXBfZW50cnkgcGFzX2xhcmdl
X21hcF9maW5kKHVpbnRwdHJfdCBiZWdpbikKIHsKICAgICBQQVNfUFJPRklMRShMQVJHRV9NQVBf
RklORCwgYmVnaW4pOwotICAgIFBBU19NVEVfSEFORExFKExBUkdFX01BUF9GSU5ELCBiZWdpbik7
CiAKICAgICB1aW50cHRyX3QgdGlueV9iYXNlOwogICAgIHBhc19maXJzdF9sZXZlbF90aW55X2xh
cmdlX21hcF9lbnRyeSogZmlyc3RfbGV2ZWxfdGlueV9lbnRyeTsKQEAgLTgxLDcgKzc5LDYgQEAg
dm9pZCBwYXNfbGFyZ2VfbWFwX2FkZChwYXNfbGFyZ2VfbWFwX2VudHJ5IGVudHJ5KQogICAgIHBh
c19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKIAogICAgIFBBU19QUk9GSUxFKExBUkdFX01BUF9B
REQsIGVudHJ5LmJlZ2luLCBlbnRyeS5lbmQpOwotICAgIFBBU19NVEVfSEFORExFKExBUkdFX01B
UF9BREQsIGVudHJ5LmJlZ2luLCBlbnRyeS5lbmQpOwogCiAgICAgaWYgKHZlcmJvc2UpCiAgICAg
ICAgIHBhc19sb2coImxhcmdlIG1hcCBhZGRpbmcgJXAuLi4lcCwgaGVhcCA9ICVwLlxuIiwgKHZv
aWQqKWVudHJ5LmJlZ2luLCAodm9pZCopZW50cnkuZW5kLCBlbnRyeS5oZWFwKTsKQEAgLTE2MCw3
ICsxNTcsNiBAQCBwYXNfbGFyZ2VfbWFwX2VudHJ5IHBhc19sYXJnZV9tYXBfdGFrZSh1aW50cHRy
X3QgYmVnaW4pCiAgICAgcGFzX3NtYWxsX2xhcmdlX21hcF9lbnRyeSBzbWFsbF9lbnRyeTsKIAog
ICAgIFBBU19QUk9GSUxFKExBUkdFX01BUF9UQUtFLCBiZWdpbik7Ci0gICAgUEFTX01URV9IQU5E
TEUoTEFSR0VfTUFQX1RBS0UsIGJlZ2luKTsKIAogICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hl
bGQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xhcmdlX3NoYXJpbmdfcG9vbC5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5jCmluZGV4IDE2Y2FlNjUwZjg5My4uMmZmNWI1NDY1NzNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vf
c2hhcmluZ19wb29sLmMKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xhcmdlX3NoYXJpbmdfcG9vbC5jCkBAIC0zNiwxMyArMzYsMTEgQEAKICNpbmNsdWRlICJwYXNf
aGVhcF9sb2NrLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21t
aXRfbG9nLmgiCiAjaW5jbHVkZSAicGFzX2xvZy5oIgotI2luY2x1ZGUgInBhc19tdGUuaCIKICNp
bmNsdWRlICJwYXNfcGFnZV9tYWxsb2MuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bv
b2wuaCIKICNpbmNsdWRlICJwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uLmgiCiAjaW5j
bHVkZSAicGFzX3N0cmVhbS5oIgogI2luY2x1ZGUgInBhc191dGlsaXR5X2hlYXAuaCIKLSNpbmNs
dWRlICJwYXNfemVyb19tZW1vcnkuaCIKIAogYm9vbCBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vu
YWJsZWQgPSB0cnVlOwogcGFzX3JlZF9ibGFja190cmVlIHBhc19sYXJnZV9zaGFyaW5nX3RyZWUg
PSBQQVNfUkVEX0JMQUNLX1RSRUVfSU5JVElBTElaRVI7CkBAIC0xMDMyLDcgKzEwMzAsNiBAQCB2
b2lkIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYm9vdF9mcmVlKAogICAgIHVpbnQ2NF90IGVwb2No
OwogCiAgICAgUEFTX1BST0ZJTEUoTEFSR0VfU0hBUklOR19QT09MX0JPT1RfRlJFRSwgcmFuZ2Uu
YmVnaW4sIHJhbmdlLmVuZCk7Ci0gICAgUEFTX01URV9IQU5ETEUoTEFSR0VfU0hBUklOR19QT09M
X0JPT1RfRlJFRSwgcmFuZ2UuYmVnaW4sIHJhbmdlLmVuZCk7CiAKICAgICBpZiAoIXBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2xfZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA0OCw3ICsxMDQ1
LDYgQEAgdm9pZCBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2ZyZWUocGFzX3JhbmdlIHJhbmdlLAog
ICAgIHVpbnQ2NF90IGVwb2NoOwogCiAgICAgUEFTX1BST0ZJTEUoTEFSR0VfU0hBUklOR19QT09M
X0ZSRUUsIHJhbmdlLmJlZ2luLCByYW5nZS5lbmQpOwotICAgIFBBU19NVEVfSEFORExFKExBUkdF
X1NIQVJJTkdfUE9PTF9GUkVFLCByYW5nZS5iZWdpbiwgcmFuZ2UuZW5kKTsKIAogICAgIGlmICgh
cGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lbmFibGVkKQogICAgICAgICByZXR1cm47CkBAIC0xMDY3
LDcgKzEwNjMsNiBAQCBib29sIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYWxsb2NhdGVfYW5kX2Nv
bW1pdCgKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKICAgICBQQVNf
UFJPRklMRShMQVJHRV9TSEFSSU5HX1BPT0xfQUxMT0NBVEVfQU5EX0NPTU1JVCwgcmFuZ2UuYmVn
aW4sIHJhbmdlLmVuZCk7Ci0gICAgUEFTX01URV9IQU5ETEUoTEFSR0VfU0hBUklOR19QT09MX0FM
TE9DQVRFX0FORF9DT01NSVQsIHJhbmdlLmJlZ2luLCByYW5nZS5lbmQpOwogICAgIAogICAgIHBh
c19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZyBjb21taXRfbG9nOwogICAgIHVp
bnQ2NF90IGVwb2NoOwpAQCAtMTIxNiw3ICsxMjExLDYgQEAgcGFzX2xhcmdlX3NoYXJpbmdfcG9v
bF9jb21wdXRlX3N1bW1hcnkoCiAgICAgcGFzX2hlYXBfc3VtbWFyeSByZXN1bHQ7CiAKICAgICBQ
QVNfUFJPRklMRShMQVJHRV9TSEFSSU5HX1BPT0xfQ09NUFVURV9TVU1NQVJZLCByYW5nZS5iZWdp
biwgcmFuZ2UuZW5kKTsKLSAgICBQQVNfTVRFX0hBTkRMRShMQVJHRV9TSEFSSU5HX1BPT0xfQ09N
UFVURV9TVU1NQVJZLCByYW5nZS5iZWdpbiwgcmFuZ2UuZW5kKTsKIAogICAgIHBhc196ZXJvX21l
bW9yeSgmcmVzdWx0LCBzaXplb2YocmVzdWx0KSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmMgYi9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmMKaW5kZXggYTcw
Y2Y5MjQzOTg1Li5hMGUwZTQ3NDkwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYworKysgYi9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmMKQEAgLTM2LDcgKzM2LDYgQEAK
ICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3ZpZXcuaCIKICNpbmNsdWRlICJwYXNfdXRpbGl0eV9oZWFwLmgiCi0jaW5j
bHVkZSAicGFzX3plcm9fbWVtb3J5LmgiCiAKICNpZiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNV
UkVfUkVGSUxMX0VGRklDSUVOQ1kKIGRvdWJsZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9l
ZmZpY2llbmN5X3N1bSA9IDAuOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5oCmluZGV4IDZlMmY0MjAxYjVkMi4uOTA1NDY1
ZWM2MWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfYWxsb2NhdG9yLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xvY2FsX2FsbG9jYXRvci5oCkBAIC01Nyw3ICs1Nyw2IEBAIHN0cnVjdCBwYXNfbG9jYWxf
YWxsb2NhdG9yIHsKICAgICBib29sIGN1cnJlbnRfd29yZF9pc192YWxpZCA6IDE7IC8qIFRoaXMg
aXMganVzdCB1c2VkIGJ5IGVudW1lcmF0aW9uLiAqLwogICAgIGJvb2wgaXNfc21hbGwgOiAxOyAv
KiBNYXJrcyB0aGF0IHRoaXMgbG9jYWwgYWxsb2NhdG9yIGlzIHVzZWQgdG8gYWxsb2NhdGUgc21h
bGwgb2JqZWN0cy4gKi8KICAgICBib29sIGlzX3Byb2ZpbGVkOyAvKiBNYXJrcyB0aGF0IGFsbG9j
YXRpb25zIGNvbWluZyBvdXQgb2YgdGhpcyBsb2NhbCBhbGxvY2F0b3Igc2hvdWxkIGJlIHByb2Zp
bGVkLiAqLwotICAgIGJvb2wgaXNfbXRlX3RhZ2dlZDsgLyogTWFya3MgdGhhdCBhbGxvY2F0aW9u
cyBjb21pbmcgb3V0IG9mIHRoaXMgbG9jYWwgYWxsb2NhdG9yIGFyZSBNVEUtdGFnZ2VkLiAqLwog
CiAgICAgLyogVGhpcyBoYXMgdG8gaGF2ZSBhIHBvaW50ZXIgdG8gb3VyIGluZGV4IHdpdGhpbiB0
aGUgdmlldy4gV2UgY2FuIGdldCB0byB0aGUgdmlldyB1c2luZwogICAgICAgIHBhZ2VfaXNoLiBN
YXliZSB3b3J0aCByZWNvbnNpZGVyaW5nIHRoYXQsIGJ1dCB0aGVuIGFnYWluIG1heWJlIGl0J3Mg
Z29vZCBlbm91Z2guIApAQCAtOTcsNyArOTYsNiBAQCBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRv
ciB7CiAgICAgICAgIC5jdXJyZW50X3dvcmRfaXNfdmFsaWQgPSBmYWxzZSwgXAogICAgICAgICAu
aXNfc21hbGwgPSAwLCBcCiAgICAgICAgIC5pc19wcm9maWxlZCA9IDAsIFwKLSAgICAgICAgLmlz
X210ZV90YWdnZWQgPSAwLCBcCiAgICAgICAgIC5jdXJyZW50X3dvcmQgPSAwLCBcCiAgICAgICAg
IC5jb25maWdfa2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfbnVsbCBcCiAg
ICAgfSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgKaW5kZXggOTAwNzM2MjE4MDg0Li4wN2Vl
YzMzOWU2NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCkBAIC0zNCw3ICszNCw2IEBA
CiAjaW5jbHVkZSAicGFzX2Vwb2NoLmgiCiAjaW5jbHVkZSAicGFzX2Z1bGxfYWxsb2NfYml0c19p
bmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX21hbGxvY19zdGFja19sb2dnaW5nLmgiCi0jaW5jbHVk
ZSAicGFzX210ZS5oIgogI2luY2x1ZGUgInBhc19zY2F2ZW5nZXIuaCIKICNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgpAQCAtNDgsNyArNDcsNiBAQAogI2luY2x1
ZGUgInBhc19zeXN0ZW1faGVhcC5oIgogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGUu
aCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaCIKLSNpbmNsdWRlICJw
YXNfemVyb19tZW1vcnkuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC0xMjEsNyArMTE5
LDYgQEAgc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2J1bXAo
cGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG8KICAgICBhbGxvY2F0b3ItPmVuZF9vZmZzZXQg
PSAwOwogICAgIGFsbG9jYXRvci0+Y3VycmVudF93b3JkID0gMDsKICAgICBQQVNfUFJPRklMRShT
RVRfVVBfTE9DQUxfQUxMT0NBVE9SLCBwYWdlX2NvbmZpZywgc2VncmVnYXRlZF9oZWFwLCBhbGxv
Y2F0b3IpOwotICAgIFBBU19NVEVfSEFORExFKFNFVF9VUF9MT0NBTF9BTExPQ0FUT1IsIHBhZ2Vf
Y29uZmlnLCBzZWdyZWdhdGVkX2hlYXAsIGFsbG9jYXRvcik7CiAgICAgcGFzX2NvbXBpbGVyX2Zl
bmNlKCk7CiAgICAgYWxsb2NhdG9yLT5wYWdlX2lzaCA9IHBhZ2VfYm91bmRhcnk7CiB9CkBAIC0y
NDMsNyArMjQwLDYgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2FuX2JpdHNfdG9fc2V0X3VwX2ZyZWVfYml0cygKICAgICAgICAgICAgIFBBU19C
SVRWRUNUT1JfQklUX0lOREVYNjQoY3VycmVudF9vZmZzZXQpLAogICAgICAgICAgICAgcGFnZV9j
b25maWcuYmFzZSk7CiAgICAgUEFTX1BST0ZJTEUoU0VUX1VQX0xPQ0FMX0FMTE9DQVRPUiwgcGFn
ZV9jb25maWcsIGRpcmVjdG9yeS0+aGVhcCwgYWxsb2NhdG9yKTsKLSAgICBQQVNfTVRFX0hBTkRM
RShTRVRfVVBfTE9DQUxfQUxMT0NBVE9SLCBwYWdlX2NvbmZpZywgZGlyZWN0b3J5LT5oZWFwLCBh
bGxvY2F0b3IpOwogCiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAKQEAgLTYwMyw3ICs1OTks
NiBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9wcmltb3JkaWFsX2J1bXAoCiAgICAgfQog
CiAgICAgUEFTX1BST0ZJTEUoUE9QVUxBVEVfUFJJTU9SRElBTF9QQVJUSUFMX1ZJRVcsIHBhZ2Vf
Y29uZmlnLCBwYWdlLCB2aWV3LCBidW1wX3Jlc3VsdCwgYWxsb2NhdGlvbl9tb2RlKTsKLSAgICBQ
QVNfTVRFX0hBTkRMRShQT1BVTEFURV9QUklNT1JESUFMX1BBUlRJQUxfVklFVywgcGFnZV9jb25m
aWcsIHBhZ2UsIHZpZXcsIGJ1bXBfcmVzdWx0LCBhbGxvY2F0aW9uX21vZGUpOwogCiAgICAgc3dp
dGNoIChtb2RlKSB7CiAgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByaW1vcmRpYWxfYnVt
cF9yZXR1cm5fZmlyc3RfYWxsb2NhdGlvbjoKQEAgLTcxMSw3ICs3MDYsNiBAQCBwYXNfbG9jYWxf
YWxsb2NhdG9yX3N0YXJ0X2FsbG9jYXRpbmdfaW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcoCiAg
ICAgICAgIAogICAgICAgICBhbGxvY2F0b3ItPnBhZ2VfaXNoID0gKHVpbnRwdHJfdClwYXNfc2Vn
cmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIHBhZ2VfY29uZmlnKTsKICAgICAgICAgUEFTX1BS
T0ZJTEUoU0VUX1VQX0xPQ0FMX0FMTE9DQVRPUiwgcGFnZV9jb25maWcsIGhlYXAsIGFsbG9jYXRv
cik7Ci0gICAgICAgIFBBU19NVEVfSEFORExFKFNFVF9VUF9MT0NBTF9BTExPQ0FUT1IsIHBhZ2Vf
Y29uZmlnLCBoZWFwLCBhbGxvY2F0b3IpOwogCiAgICAgICAgIHBhc196ZXJvX21lbW9yeShhbGxv
Y2F0b3ItPmJpdHMsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19ieXRlcyhw
YWdlX2NvbmZpZykpOwogCkBAIC05MTcsNyArOTExLDYgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGVfaW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcoCiAKICAgICBpZiAocmVzdWx0
LmRpZF9zdWNjZWVkKSB7CiAgICAgICAgIFBBU19QUk9GSUxFKFBSSU1PUkRJQUxfQlVNUF9BTExP
Q0FUSU9OLCAmcGFnZV9jb25maWcsIHJlc3VsdC5iZWdpbiwgYWxsb2NhdG9yLT5vYmplY3Rfc2l6
ZSwgYWxsb2NhdGlvbl9tb2RlKTsKLSAgICAgICAgUEFTX01URV9IQU5ETEUoUFJJTU9SRElBTF9C
VU1QX0FMTE9DQVRJT04sICZwYWdlX2NvbmZpZywgcmVzdWx0LmJlZ2luLCBhbGxvY2F0b3ItPm9i
amVjdF9zaXplLCBhbGxvY2F0aW9uX21vZGUpOwogICAgIH0KIAogICAgIHBhc19sb2NrX3N3aXRj
aCgmaGVsZF9sb2NrLCBOVUxMKTsKQEAgLTE1MTcsNyArMTUxMCw2IEBAIHBhc19sb2NhbF9hbGxv
Y2F0b3JfdHJ5X2FsbG9jYXRlX3dpdGhfZnJlZV9iaXRzKAogICAgIH0KIAogICAgIFBBU19QUk9G
SUxFKExPQ0FMX0ZSRUVCSVRTX0FMTE9DQVRJT04sICZwYWdlX2NvbmZpZywgcmVzdWx0LCBhbGxv
Y2F0b3IsIGFsbG9jYXRpb25fbW9kZSk7Ci0gICAgUEFTX01URV9IQU5ETEUoTE9DQUxfRlJFRUJJ
VFNfQUxMT0NBVElPTiwgJnBhZ2VfY29uZmlnLCByZXN1bHQsIGFsbG9jYXRvciwgYWxsb2NhdGlv
bl9tb2RlKTsKICAgICAKICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9z
dWNjZXNzKHJlc3VsdCk7CiB9CkBAIC0xNTYzLDcgKzE1NTUsNiBAQCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfY2FzZXMocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2Nh
dG9yLAogICAgICAgICAgICAgcGFzX2xvZygiUmV0dXJuaW5nIGJ1bXAgYWxsb2NhdGlvbiAlcC5c
biIsICh2b2lkKilyZXN1bHQpOwogCiAgICAgICAgIFBBU19QUk9GSUxFKExPQ0FMX0JVTVBfQUxM
T0NBVElPTiwgY29uZmlnLCBhbGxvY2F0b3IsIHJlc3VsdCwgb2JqZWN0X3NpemUsIGFsbG9jYXRp
b25fbW9kZSk7Ci0gICAgICAgIFBBU19NVEVfSEFORExFKExPQ0FMX0JVTVBfQUxMT0NBVElPTiwg
Y29uZmlnLCBhbGxvY2F0b3IsIHJlc3VsdCwgb2JqZWN0X3NpemUsIGFsbG9jYXRpb25fbW9kZSk7
CiAKICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzcyhy
ZXN1bHQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NrLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
ay5oCmluZGV4IDFkMmFlN2MzYWZkMC4uNjY0MzNlYWU3ZjE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jay5oCisrKyBiL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRl
ICJwYXNfcmFjZV90ZXN0X2hvb2tzLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAjaW5jbHVk
ZSAicGFzX3RocmVhZC5oIgotI2luY2x1ZGUgInBhc196ZXJvX21lbW9yeS5oIgogCiBQQVNfQkVH
SU5fRVhURVJOX0M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19tZWdhcGFnZV9jYWNoZS5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX21lZ2FwYWdlX2NhY2hlLmMKaW5kZXggM2NkM2ZlZDExM2E3Li41MGQ1ZjhiMGJhNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tZWdhcGFn
ZV9jYWNoZS5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tZWdh
cGFnZV9jYWNoZS5jCkBAIC0zMiw5ICszMiw3IEBACiAjaW5jbHVkZSAicGFzX2Jvb3RzdHJhcF9m
cmVlX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfaW50ZXJuYWxfY29uZmlnLmgiCiAjaW5jbHVkZSAi
cGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCIKLSNpbmNsdWRlICJwYXNfbXRlLmgiCiAjaW5j
bHVkZSAicGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmgiCi0jaW5jbHVkZSAicGFz
X3plcm9fbWVtb3J5LmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KIAogdHlwZWRlZiBzdHJ1Y3QgewpA
QCAtMTIyLDcgKzEyMCw2IEBAIHN0YXRpYyBwYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdCBt
ZWdhcGFnZV9jYWNoZV9hbGxvY2F0ZV9hbGlnbmVkKHNpemVfdCBzaXplCiAgICAgCiAgICAgYmVn
aW4gPSAodWludHB0cl90KWJhc2VfYmVmb3JlX2V4Y2x1c2lvbjsKICAgICBQQVNfUFJPRklMRShN
RUdBUEFHRV9TRVQsIGJlZ2luKTsKLSAgICBQQVNfTVRFX0hBTkRMRShNRUdBUEFHRV9TRVQsIGJl
Z2luKTsKIAogICAgIGVuZCA9IGJlZ2luICsgbmV3X3NpemU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19taW5faGVhcC5oIGIvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21pbl9oZWFwLmgKaW5kZXggMGFiNDU5MThhYzZiLi4z
NjI2NzM5NWUxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19taW5faGVhcC5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19taW5faGVhcC5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJwYXNfYWxsb2NhdGlv
bl9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKLSNpbmNsdWRlICJwYXNfemVyb19t
ZW1vcnkuaCIKICNpbmNsdWRlIDxzdGRpby5oPgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbXRlLmMgYi9Tb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbXRlLmMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNhMTI4YzMxMzRkNC4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGUuYworKysgL2Rldi9udWxsCkBAIC0xLDQyICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lu
Y2x1ZGUgInBhc19tdGUuaCIKLQotI2lmIFBBU19FTkFCTEVfTVRFCi12b2lkKiBwYXNfbXRlX3N5
c3RlbV9oZWFwX3JlYWxsb2NfemVyb190YWdnZWQobWFsbG9jX3pvbmVfdCogem9uZSwgdm9pZCog
cHRyLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBzaXplX3Qgb2xkX3NpemUgPSBtYWxsb2Nfc2l6ZShw
dHIpOwotICAgIHNpemVfdCBjb3B5X3NpemUgPSBzaXplIDwgb2xkX3NpemUgPyBzaXplIDogb2xk
X3NpemU7Ci0KLSAgICB2b2lkKiByZXN1bHQgPSBwYXNfbXRlX3N5c3RlbV9oZWFwX21hbGxvY196
ZXJvX3RhZ2dlZCh6b25lLCAwLCBzaXplKTsKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLQotICAgIG1lbWNweShyZXN1bHQsIHB0ciwgY29weV9zaXplKTsKLSAgICBt
YWxsb2Nfem9uZV9mcmVlKHpvbmUsIHB0cik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLSNlbmRp
ZiAvLy8gUEFTX0VOQUJMRV9NVEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19tdGUuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19tdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODJjYzFiODI3NzhkLi4wMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX210ZS5o
CisrKyAvZGV2L251bGwKQEAgLTEsOTUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MjUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJwYXNfbXRl
X2NvbmZpZy5oIgotCi0jaWYgUEFTX09TKERBUldJTikKLSNpbmNsdWRlIDxkaXNwYXRjaC9kaXNw
YXRjaC5oPgotI2lmIFBBU19VU0VfQVBQTEVfSU5URVJOQUxfU0RLCi0jaW5jbHVkZSA8bWFjaC9t
YWNoX2luaXQuaD4KLSNpbmNsdWRlIDxtYWNoL21hY2hfdm0uaD4KLSNpbmNsdWRlIDxtYWNoL3Zt
X3BhZ2Vfc2l6ZS5oPgotI2luY2x1ZGUgPG1hY2gvdm1fc3RhdGlzdGljcy5oPgotI2VuZGlmIC8v
IFBBU19VU0VfQVBQTEVfSU5URVJOQUxfU0RLCi0jZW5kaWYgLy8gUEFTX09TKERBUldJTikKLSNp
bmNsdWRlICJzdGRpbnQuaCIKLSNpbmNsdWRlICJzdGRpby5oIgotI2luY2x1ZGUgInN0ZGxpYi5o
IgotI2lmICFQQVNfT1MoV0lORE9XUykKLSNpbmNsdWRlICJ1bmlzdGQuaCIKLSNlbmRpZgotCi0j
aWYgUEFTX0VOQUJMRV9NVEUKLQotUEFTX0lHTk9SRV9XQVJOSU5HU19CRUdJTigidW5zYWZlLWJ1
ZmZlci11c2FnZSIpCi0KLSNkZWZpbmUgUEFTX01URV9UQUdfTUFTSyAweDBmMDAwMDAwMDAwMDAw
MDB1bGwKLSNkZWZpbmUgUEFTX01URV9DQU5PTklDQUxfTUFTSyAoKDB4MXVsbCA8PCA0OCkgLSAx
KQotCi0jaWYgX19oYXNfaW5jbHVkZSg8bWFsbG9jX3ByaXZhdGUuaD4pCi0jaW5jbHVkZSA8bWFs
bG9jX3ByaXZhdGUuaD4KLSNlbmRpZgotCi0vKgotICogVGhpcyBtdXN0IGJlIGtlcHQgaW4gc3lu
YyB3aXRoIHRoZSB2YWx1ZSBvZiBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NISUZUCi0gKiBmcm9t
IE9wZW5Tb3VyY2UncyBwYXNfaW50ZXJuYWxfY29uZmlnLmggLS0gd2UgY2Fubm90IHVzZSBpdCBk
aXJlY3RseSBhcwotICogcGFzX3V0aWxzLmggaXMgdG9vIGhpZ2ggdXAgaW4gdGhlIGluY2x1ZGUg
aGllcmFyY2h5LgotICovCi0jZGVmaW5lIFBBU19NVEVfU01BTExfUEFHRV9ERUZBVUxUX1NISUZU
ICgxNCkKLSNkZWZpbmUgUEFTX01URV9TTUFMTF9QQUdFX05PX01BU0sgKDB4MDAwMGZmZmZmZmZm
ZmZmZnVsbCAmIH4oKDEgPDwgUEFTX01URV9TTUFMTF9QQUdFX0RFRkFVTFRfU0hJRlQpIC0gMSkp
Ci0jZGVmaW5lIFBBU19NVEVfU01BTExfUEFHRV9OTyhwdHIpICgoKHVpbnRwdHJfdClwdHIpICYg
UEFTX01URV9TTUFMTF9QQUdFX05PX01BU0spCi0KLSNkZWZpbmUgUEFTX01URV9HRVRfVEFHKHB0
cikgZG8geyBcCi0gICAgICAgIGFzbSB2b2xhdGlsZSggXAotICAgICAgICAgICAgIi5hcmNoX2V4
dGVuc2lvbiBtZW10YWdcblx0IiBcCi0gICAgICAgICAgICAibGRnICUwLCBbJTBdIiBcCi0gICAg
ICAgICAgICA6ICIrciIocHRyKSBcCi0gICAgICAgICAgICA6IFwKLSAgICAgICAgICAgIDogXAot
ICAgICAgICApOyBcCi0gICAgfSB3aGlsZSAoMCkKLSNkZWZpbmUgUEFTX01URV9TRVRfVEFHKHB0
cikgZG8geyBcCi0gICAgICAgIGFzbSB2b2xhdGlsZSggXAotICAgICAgICAgICAgIi5hcmNoX2V4
dGVuc2lvbiBtZW10YWdcblx0IiBcCi0gICAgICAgICAgICAic3RnICUwLCBbJTBdIiBcCi0gICAg
ICAgICAgICA6IFwKLSAgICAgICAgICAgIDogInIiKHB0cikgXAotICAgICAgICAgICAgOiBcCi0g
ICAgICAgICk7IFwKLSAgICB9IHdoaWxlICgwKQotI2RlZmluZSBQQVNfTVRFX1NFVF9UQUdfUEFJ
UihwdHIpIGRvIHsgXAotICAgICAgICBhc20gdm9sYXRpbGUoIFwKLSAgICAgICAgICAgICIuYXJj
aF9leHRlbnNpb24gbWVtdGFnXG5cdCIgXAotICAgICAgICAgICAgInN0MmcgJTAsIFslMF0iIFwK
LSAgICAgICAgICAgIDogXAotICAgICAgICAgICAgOiAiciIocHRyKSBcCi0gICAgICAgICAgICA6
IFwKLSAgICAgICAgKTsgXAotICAgIH0gd2hpbGUgKDApCi0jZGVmaW5lIFBBU19NVEVfU0VUX1RB
R19XSVRIX09GRlNFVChwdHIsIG9mZnNldCkgZG8geyBcCi0gICAgICAgIGFzbSB2b2xhdGlsZSgg
XAotICAgICAgICAgICAgIi5hcmNoX2V4dGVuc2lvbiBtZW10YWdcblx0IiBcCi0gICAgICAgICAg
ICAic3RnICUwLCBbJTAsICMiICNvZmZzZXQgIl0iIFwKLSAgICAgICAgICAgIDogXAotICAgICAg
ICAgICAgOiAiciIocHRyKSBcCi0gICAgICAgICAgICA6IFwKLSAgICAgICAgKTsgXAotICAgIH0g
d2hpbGUgKDApCi0jZGVmaW5lIFBBU19NVEVfU0VUX1RBR19QQUlSX1dJVEhfT0ZGU0VUKHB0ciwg
b2Zmc2V0KSBkbyB7IFwKLSAgICAgICAgYXNtIHZvbGF0aWxlKCBcCi0gICAgICAgICAgICAiLmFy
Y2hfZXh0ZW5zaW9uIG1lbXRhZ1xuXHQiIFwKLSAgICAgICAgICAgICJzdDJnICUwLCBbJTAsICMi
ICNvZmZzZXQgIl0iIFwKLSAgICAgICAgICAgIDogXAotICAgICAgICAgICAgOiAiciIocHRyKSBc
Ci0gICAgICAgICAgICA6IFwKLSAgICAgICAgKTsgXAotICAgIH0gd2hpbGUgKDApCi0jZGVmaW5l
IFBBU19NVEVfU0VUX1RBR19QT1NUSU5ERVgocHRyKSBkbyB7IFwKLSAgICAgICAgYXNtIHZvbGF0
aWxlKCBcCi0gICAgICAgICAgICAiLmFyY2hfZXh0ZW5zaW9uIG1lbXRhZ1xuXHQiIFwKLSAgICAg
ICAgICAgICJzdGcgJTAsIFslMF0sICMxNiIgXAotICAgICAgICAgICAgOiAiK3IiKHB0cikgXAot
ICAgICAgICAgICAgOiBcCi0gICAgICAgICAgICA6IFwKLSAgICAgICAgKTsgXAotICAgIH0gd2hp
bGUgKDApCi0jZGVmaW5lIFBBU19NVEVfU0VUX1RBR19QQUlSX1BPU1RJTkRFWChwdHIpIGRvIHsg
XAotICAgICAgICBhc20gdm9sYXRpbGUoIFwKLSAgICAgICAgICAgICIuYXJjaF9leHRlbnNpb24g
bWVtdGFnXG5cdCIgXAotICAgICAgICAgICAgInN0MmcgJTAsIFslMF0sICMzMiIgXAotICAgICAg
ICAgICAgOiAiK3IiKHB0cikgXAotICAgICAgICAgICAgOiBcCi0gICAgICAgICAgICA6IFwKLSAg
ICAgICAgKTsgXAotICAgIH0gd2hpbGUgKDApCi0jZGVmaW5lIFBBU19NVEVfQ1JFQVRFX1JBTkRP
TV9UQUcocHRyLCBtYXNrKSBkbyB7IFwKLSAgICAgICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFC
TEVEKFBBU19NVEVfRkVBVFVSRV9aRVJPX1RBR19BTEwpKSB7IFwKLSAgICAgICAgICAgIHB0ciAm
PSAodWludHB0cl90KX5QQVNfTVRFX1RBR19NQVNLOyBcCi0gICAgICAgICAgICBicmVhazsgXAot
ICAgICAgICB9IFwKLSAgICAgICAgYXNtIHZvbGF0aWxlKCBcCi0gICAgICAgICAgICAiLmFyY2hf
ZXh0ZW5zaW9uIG1lbXRhZ1xuXHQiIFwKLSAgICAgICAgICAgICJpcmcgJTAsICUwLCAlMSIgXAot
ICAgICAgICAgICAgOiAiK3IiKHB0cikgXAotICAgICAgICAgICAgOiAiciIoKHVpbnRwdHJfdCko
bWFzaykpIFwKLSAgICAgICAgICAgIDogXAotICAgICAgICApOyBcCi0gICAgfSB3aGlsZSAoMCkK
LSNkZWZpbmUgUEFTX01URV9DSEVDS19UQUdfQU5EX1NFVF9UQ08ocHRyKSBkbyB7IFwKLSAgICAg
ICAgLyogV2UncmUgb25seSBjaGVja2luZyBvbmUgdGFnLWdyYW51bGUsIHNvIGl0J3Mgbm90IHBl
cmZlY3QsIFwKLSAgICAgICAgICogYnV0IGl0IGRvZXMgbWVhbiB0aGF0IGEgcG90ZW50aWFsIGF0
dGFja2VyIHdvdWxkIGF0IGxlYXN0IFwKLSAgICAgICAgICogbmVlZCB0byBrbm93IHRoZSB0YWcg
Zm9yIHNvbWUgb2YgdGhlaXIgdGFyZ2V0IHJhbmdlLiAqLyBcCi0gICAgICAgIGFzbSB2b2xhdGls
ZSggXAotICAgICAgICAgICAgIi5hcmNoX2V4dGVuc2lvbiBtZW10YWdcblx0IiBcCi0gICAgICAg
ICAgICAibGRyIHh6ciwgWyUwXVxuXHQiIFwKLSAgICAgICAgICAgICJtc3IgdGNvLCAjMSIgXAot
ICAgICAgICAgICAgOiBcCi0gICAgICAgICAgICA6ICJyIihwdHIpIFwKLSAgICAgICAgICAgIDog
Im1lbW9yeSIgXAotICAgICAgICApOyBcCi0gICAgfSB3aGlsZSAoMCkKLSNkZWZpbmUgUEFTX01U
RV9TRVRfVENPX1VOQ0hFQ0tFRCBkbyB7IFwKLSAgICAgICAgYXNtIHZvbGF0aWxlKCBcCi0gICAg
ICAgICAgICAiLmFyY2hfZXh0ZW5zaW9uIG1lbXRhZ1xuXHQiIFwKLSAgICAgICAgICAgICJtc3Ig
dGNvLCAjMSIgXAotICAgICAgICAgICAgOiBcCi0gICAgICAgICAgICA6IFwKLSAgICAgICAgICAg
IDogIm1lbW9yeSIgXAotICAgICAgICApOyBcCi0gICAgfSB3aGlsZSAoMCkKLSNkZWZpbmUgUEFT
X01URV9DTEVBUl9UQ08gZG8geyBcCi0gICAgICAgIGFzbSB2b2xhdGlsZSggXAotICAgICAgICAg
ICAgIi5hcmNoX2V4dGVuc2lvbiBtZW10YWdcblx0IiBcCi0gICAgICAgICAgICAibXNyIHRjbywg
IzAiIFwKLSAgICAgICAgICAgIDogXAotICAgICAgICAgICAgOiBcCi0gICAgICAgICAgICA6ICJt
ZW1vcnkiIFwKLSAgICAgICAgKTsgXAotICAgIH0gd2hpbGUgKDApCi0KLS8qCi0gKiBEQyBHVkEg
d3JpdGVzIHRhZ3MgZm9yIGEgY29udGlndW91cyByYW5nZSBvZiBhZGRyZXNzZXMgaW4gYnVsay4g
VGhlIHNpemUgb2YgdGhpcwotICogcmFuZ2UsIGFuZCB3aGV0aGVyIG9yIG5vdCBEQyBHVkEgaXMg
ZW5hYmxlZCBpbiBoYXJkd2FyZSwgaXMgY29udHJvbGxlZCBieSB0aGUKLSAqIERDWklEX0VMMCBy
ZWdpc3Rlci4gVGVjaG5pY2FsbHksIGlmIHdlIHdhbnRlZCB0byBiZSBtYXhpbWFsbHkgcm9idXN0
LCB3ZSB3b3VsZAotICogcXVlcnkgdGhpcyByZWdpc3RlciB0byBkZXRlY3QgaWYgREMgR1ZBIGlz
IGVuYWJsZWQgYW5kIGlmIHNvLCBob3cgbXVjaCBtZW1vcnkgaXQKLSAqIGNhbiB0YWcgYXQgb25j
ZS4gSW4gcHJhY3RpY2UsIERDIEdWQSBzaG91bGQgYWx3YXlzIGJlIGVuYWJsZWQgb24gUEFTX01U
RS1jb21wYXRpYmxlCi0gKiBBcHBsZSBoYXJkd2FyZSwgd2l0aCBhIHNpemUgb2YgNjQgYnl0ZXMu
IEJlY2F1c2UgdGFnZ2luZyBjb2RlIGlzIHNvIGNyaXRpY2FsIHRvCi0gKiBQQVNfTVRFIHBlcmZv
cm1hbmNlLCB3ZSBhc3N1bWUgYm90aCBvZiB0aGVzZSB0aGluZ3MgYXJlIHRydWUsIHNhdmluZyB1
cyB0aGUgY29zdCBvZgotICogbmVlZGluZyB0byByZW1lbWJlciBlbmFibGVtZW50IGFuZCBncmFu
dWxlIHNpemUgZHluYW1pY2FsbHkuCi0gKgotICogSW4gYWRkaXRpb24sIERDIEdWQSByZXF1aXJl
cyBhdCBsZWFzdCAxNi1ieXRlIGFsaWdubWVudCwgYW5kIHJlYWxseSBpZGVhbGx5Ci0gKiA2NC1i
eXRlIGFsaWdubWVudCBhcyBmYXIgYXMgSSBhbSBhd2FyZS4gT3VyIHVzYWdlIG9mIHRoaXMgaW5z
dHJ1Y3Rpb24gc2hvdWxkIGJlCi0gKiBjYXJlZnVsIHRvIHJlc3BlY3QgNjQtYnl0ZSBhbGlnbm1l
bnQuCi0gKi8KLSNkZWZpbmUgRENfR1ZBX0dSQU5VTEVfU0laRSA2NAotI2RlZmluZSBQQVNfTVRF
X1NFVF9UQUdTX1VTSU5HX0RDX0dWQShwdHIpIGRvIHsgXAotICAgICAgICBhc20gdm9sYXRpbGUo
IFwKLSAgICAgICAgICAgICIuYXJjaF9leHRlbnNpb24gbWVtdGFnXG5cdCIgXAotICAgICAgICAg
ICAgImRjIGd2YSwgJTAiIFwKLSAgICAgICAgICAgIDogXAotICAgICAgICAgICAgOiAiciIocHRy
KSBcCi0gICAgICAgICAgICA6ICJtZW1vcnkiIFwKLSAgICAgICAgKTsgXAotICAgIH0gd2hpbGUg
KDApCi0KLS8vIFdlIGNhbGwgYW4gYWxsb2NhdG9yIG9mIHRhZ2dhYmxlIG9iamVjdHMgImhvbW9n
ZW5lb3VzIiBpZiBhbGwgdGFnZ2FibGUKLS8vIG9iamVjdHMgYWxsb2NhdGVkIGJ5IHRoZSBhbGxv
Y2F0b3IgYXJlIHRoZSBzYW1lIHNpemUsIGUuZy4gbGlrZSBpcyB0aGUKLS8vIGNhc2Ugd2l0aCBh
bnkgc2xhYiBhbGxvY2F0b3IuCi1lbnVtIHBhc19tdGVfYWxsb2NhdG9yX2hvbW9nZW5laXR5IHsK
LSAgcGFzX210ZV9ob21vZ2VuZW91c19hbGxvY2F0b3IsCi0gIHBhc19tdGVfbm9uaG9tb2dlbmVv
dXNfYWxsb2NhdG9yLAotfTsKLQotZW51bSBwYXNfbXRlX3RhZ19jb25zdHJhaW50IHsKLSAgcGFz
X210ZV9hbnlfbm9uemVyb190YWcgPSAweDAwMDEsCi0gIHBhc19tdGVfb2RkX3RhZyA9IDB4NTU1
NSwKLSAgcGFzX210ZV9ub256ZXJvX2V2ZW5fdGFnID0gMHhhYWFiLAotfTsKLQotUEFTX0lHTk9S
RV9XQVJOSU5HU19CRUdJTigiaW1wbGljaXQtZmFsbHRocm91Z2giKQotCi1pbmxpbmUgX19hdHRy
aWJ1dGVfXygoYWx3YXlzX2lubGluZSkpIHZvaWQgcGFzX210ZV90YWdfc3QyZ19sb29wKHVpbnQ4
X3QqIGJlZ2luLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICB1aW50OF90KiBlbmQgPSBiZWdpbiArIHNp
emU7Ci0gICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0df
T05fVEFHKSkKLSAgICAgICAgcHJpbnRmKCJbTVRFXVx0ICAgIFRhZ2dpbmcgaW5pdGlhbCAxNiBi
eXRlcyAlcCB0byAlcFxuIiwgYmVnaW4sIGJlZ2luICsgMTYpOwotICAgIFBBU19NVEVfU0VUX1RB
RyhiZWdpbik7Ci0KLSAgICAvLyBFbnN1cmUgYmVnaW4gaXMgYSBtdWx0aXBsZSBvZiAzMiBieXRl
cyBmcm9tIHRoZSBlbmQuCi0gICAgYmVnaW4gKz0gc2l6ZSAlIDMyOwotCi0gICAgaWYgKFBBU19N
VEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfT05fVEFHKSAmJiBiZWdpbiA8
IGVuZCkKLSAgICAgICAgcHJpbnRmKCJbTVRFXVx0ICAgIERvaW5nIFNUMkcgbG9vcCBmcm9tICVw
IHRvICVwXG4iLCBiZWdpbiwgZW5kKTsKLSAgICB3aGlsZSAoYmVnaW4gPCBlbmQpCi0gICAgICAg
IFBBU19NVEVfU0VUX1RBR19QQUlSX1BPU1RJTkRFWChiZWdpbik7Ci19Ci0KLWlubGluZSBfX2F0
dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lKSkgdm9pZCBwYXNfbXRlX3RhZ19zdDJnX3N3aXRjaGlu
Zyh1aW50OF90KiBiZWdpbiwgc2l6ZV90IHNpemUpCi17Ci0gICAgdWludDhfdCogZW5kID0gYmVn
aW4gKyBzaXplOwotICAgIGlmIChQQVNfTVRFX0ZFQVRVUkVfRU5BQkxFRChQQVNfTVRFX0ZFQVRV
UkVfTE9HX09OX1RBRykpCi0gICAgICAgIHByaW50ZigiW01URV1cdCAgICBUYWdnaW5nIGluaXRp
YWwgMTYgYnl0ZXMgJXAgdG8gJXBcbiIsIGJlZ2luLCBiZWdpbiArIDE2KTsKLSAgICBQQVNfTVRF
X1NFVF9UQUcoYmVnaW4pOwotCi0gICAgLy8gRW5zdXJlIGJlZ2luIGlzIGEgbXVsdGlwbGUgb2Yg
MzIgYnl0ZXMgZnJvbSB0aGUgZW5kLgotICAgIGJlZ2luICs9IHNpemUgJSAzMjsKLQotICAgIGlm
IChQQVNfTVRFX0ZFQVRVUkVfRU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfTE9HX09OX1RBRykpCi0g
ICAgICAgIHByaW50ZigiW01URV1cdCAgICBEb2luZyBTVDJHIGxvb3AgZnJvbSAlcCB0byAlcFxu
IiwgYmVnaW4sIGVuZCk7Ci0gICAgd2hpbGUgKGJlZ2luIDwgZW5kKSB7Ci0gICAgICAgIHVpbnRw
dHJfdCBudW1fZ3JhbnVsZXNfdG9fc3QyZyA9ICh1aW50cHRyX3QpKGVuZCAtIGJlZ2luKSAvICh1
aW50cHRyX3QpMzIgJiAxNTsKLSAgICAgICAgaWYgKCFudW1fZ3JhbnVsZXNfdG9fc3QyZykKLSAg
ICAgICAgICAgIG51bV9ncmFudWxlc190b19zdDJnID0gMTY7Ci0gICAgICAgIGlmIChQQVNfTVRF
X0ZFQVRVUkVfRU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfTE9HX09OX1RBRykpIHsKLSAgICAgICAg
ICAgIHNpemVfdCB0YWdnZWRfc2l6ZSA9IG51bV9ncmFudWxlc190b19zdDJnICogMzI7Ci0gICAg
ICAgICAgICBwcmludGYoIltNVEVdXHQgICAgICAgIFRhZ2dpbmcgJXp1IGJ5dGVzIGZyb20gJXAg
dG8gJXBcbiIsIHRhZ2dlZF9zaXplLCBiZWdpbiwgYmVnaW4gKyB0YWdnZWRfc2l6ZSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgc3dpdGNoIChudW1fZ3JhbnVsZXNfdG9fc3QyZykgewotICAgICAgICBj
YXNlIDE2OiBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChiZWdpbiwgNDgwKTsKLSAg
ICAgICAgY2FzZSAxNTogUEFTX01URV9TRVRfVEFHX1BBSVJfV0lUSF9PRkZTRVQoYmVnaW4sIDQ0
OCk7Ci0gICAgICAgIGNhc2UgMTQ6IFBBU19NVEVfU0VUX1RBR19QQUlSX1dJVEhfT0ZGU0VUKGJl
Z2luLCA0MTYpOwotICAgICAgICBjYXNlIDEzOiBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09G
RlNFVChiZWdpbiwgMzg0KTsKLSAgICAgICAgY2FzZSAxMjogUEFTX01URV9TRVRfVEFHX1BBSVJf
V0lUSF9PRkZTRVQoYmVnaW4sIDM1Mik7Ci0gICAgICAgIGNhc2UgMTE6IFBBU19NVEVfU0VUX1RB
R19QQUlSX1dJVEhfT0ZGU0VUKGJlZ2luLCAzMjApOwotICAgICAgICBjYXNlIDEwOiBQQVNfTVRF
X1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChiZWdpbiwgMjg4KTsKLSAgICAgICAgY2FzZSA5OiBQ
QVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChiZWdpbiwgMjU2KTsKLSAgICAgICAgY2Fz
ZSA4OiBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChiZWdpbiwgMjI0KTsKLSAgICAg
ICAgY2FzZSA3OiBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChiZWdpbiwgMTkyKTsK
LSAgICAgICAgY2FzZSA2OiBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChiZWdpbiwg
MTYwKTsKLSAgICAgICAgY2FzZSA1OiBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09GRlNFVChi
ZWdpbiwgMTI4KTsKLSAgICAgICAgY2FzZSA0OiBQQVNfTVRFX1NFVF9UQUdfUEFJUl9XSVRIX09G
RlNFVChiZWdpbiwgOTYpOwotICAgICAgICBjYXNlIDM6IFBBU19NVEVfU0VUX1RBR19QQUlSX1dJ
VEhfT0ZGU0VUKGJlZ2luLCA2NCk7Ci0gICAgICAgIGNhc2UgMjogUEFTX01URV9TRVRfVEFHX1BB
SVJfV0lUSF9PRkZTRVQoYmVnaW4sIDMyKTsKLSAgICAgICAgY2FzZSAxOiBQQVNfTVRFX1NFVF9U
QUdfUEFJUihiZWdpbik7IGJyZWFrOwotICAgICAgICBkZWZhdWx0OiBfX2J1aWx0aW5fdW5yZWFj
aGFibGUoKTsKLSAgICAgICAgfQotICAgICAgICBiZWdpbiArPSBudW1fZ3JhbnVsZXNfdG9fc3Qy
ZyAqIDMyOwotICAgIH0KLX0KLQotaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUp
KSB2b2lkIHBhc19tdGVfdGFnX2RjX2d2YV9sb29wKHVpbnQ4X3QqIGJlZ2luLCBzaXplX3Qgc2l6
ZSkKLXsKLSAgICAvKiBHZXQgdGhlIHNtYWxsLW9iamVjdCBjYXNlIG91dCBvZiB0aGUgd2F5LiAq
LwotICAgIGlmIChzaXplIDw9IDQ4KSB7Ci0gICAgICAgIGlmIChQQVNfTVRFX0ZFQVRVUkVfRU5B
QkxFRChQQVNfTVRFX0ZFQVRVUkVfTE9HX09OX1RBRykpCi0gICAgICAgICAgICBwcmludGYoIltN
VEVdXHQgICAgVGFnZ2luZyBzbWFsbCBvYmplY3Qgd2l0aCBzaXplICV6dSBmcm9tICVwIHRvICVw
XG4iLCBzaXplLCBiZWdpbiwgYmVnaW4gKyBzaXplKTsKLSAgICAgICAgUEFTX01URV9TRVRfVEFH
KGJlZ2luKTsKLSAgICAgICAgaWYgKHNpemUgPD0gMTYpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIFBBU19NVEVfU0VUX1RBR19QQUlSKGJlZ2luKTsKLSAgICAgICAgaWYgKHNpemUgPiAz
MikKLSAgICAgICAgICAgIFBBU19NVEVfU0VUX1RBR19XSVRIX09GRlNFVChiZWdpbiwgMzIpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLyogTm93IHRoYXQgd2Uga25vdyB0aGUgc2l6
ZSBpcyBhdCBsZWFzdCA2NCBieXRlcywgd2UgY2FuIHVzZSBEQyBHVkEuICovCi0gICAgLyogRmly
c3QsIHdlIGhhbmRsZSB0aGUgZmlyc3QgNjQgYnl0ZXMsIHdoaWNoIG1heSBub3QgYmUgYWxpZ25l
ZCB0byA2NCBieXRlcy4gKi8KLSAgICBpZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01U
RV9GRUFUVVJFX0xPR19PTl9UQUcpKQotICAgICAgICBwcmludGYoIltNVEVdXHQgICAgVGFnZ2lu
ZyBpbml0aWFsIDY0IGJ5dGVzIGZyb20gJXAgdG8gJXBcbiIsIGJlZ2luLCBiZWdpbiArIDY0KTsK
LSAgICBQQVNfTVRFX1NFVF9UQUdfUEFJUihiZWdpbik7Ci0gICAgUEFTX01URV9TRVRfVEFHX1BB
SVJfV0lUSF9PRkZTRVQoYmVnaW4sIDMyKTsKLQotICAgIHVpbnQ4X3QqIGVuZCA9IGJlZ2luICsg
c2l6ZTsKLQotICAgIGlmIChzaXplID4gMTI4KSB7Ci0gICAgICAgIC8qIE5leHQsIHdlIGFsaWdu
IG91ciBiZWdpbiBhbmQgZW5kLCBpbiBwcmVwYXJhdGlvbiBmb3IgZG9pbmcgYSBEQyBHVkEgbG9v
cC4gKi8KLSAgICAgICAgYmVnaW4gPSAodWludDhfdCopKCh1aW50cHRyX3QpYmVnaW4gKyBEQ19H
VkFfR1JBTlVMRV9TSVpFIC0gMSAmIChpbnRwdHJfdCktRENfR1ZBX0dSQU5VTEVfU0laRSk7Ci0g
ICAgICAgIHVpbnQ4X3QqIGVuZF9hbGlnbmVkID0gKHVpbnQ4X3QqKSgodWludHB0cl90KWVuZCAm
IChpbnRwdHJfdCktRENfR1ZBX0dSQU5VTEVfU0laRSk7Ci0KLSAgICAgICAgaWYgKFBBU19NVEVf
RkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfT05fVEFHKSkKLSAgICAgICAgICAg
IHByaW50ZigiW01URV1cdCAgICBEb2luZyBhbGlnbmVkIERDIEdWQSBsb29wIGZyb20gJXAgdG8g
JXBcbiIsIGJlZ2luLCBlbmRfYWxpZ25lZCk7Ci0gICAgICAgIHdoaWxlIChiZWdpbiA8IGVuZF9h
bGlnbmVkKSB7Ci0gICAgICAgICAgICBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShiZWdp
bik7Ci0gICAgICAgICAgICBiZWdpbiArPSBEQ19HVkFfR1JBTlVMRV9TSVpFOwotICAgICAgICB9
Ci0gICAgfQotCi0gICAgLyogSGFuZGxlIHRoZSBsYXN0IDY0IGJ5dGVzLCBjb3ZlcmluZyB0aGUg
dW5hbGlnbmVkIHJlbWFpbmRlciB3ZSBtYXkgaGF2ZSAqLwotICAgIC8qIG1pc3NlZCBpbiBvdXIg
REMgR1ZBIGxvb3AuICovCi0gICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVf
RkVBVFVSRV9MT0dfT05fVEFHKSkKLSAgICAgICAgcHJpbnRmKCJbTVRFXVx0ICAgIFRhZ2dpbmcg
ZmluYWwgNjQgYnl0ZXMgZnJvbSAlcCB0byAlcFxuIiwgZW5kIC0gNjQsIGVuZCk7Ci0gICAgUEFT
X01URV9TRVRfVEFHX1BBSVJfV0lUSF9PRkZTRVQoZW5kLCAtNjQpOwotICAgIFBBU19NVEVfU0VU
X1RBR19QQUlSX1dJVEhfT0ZGU0VUKGVuZCwgLTMyKTsKLX0KLQotaW5saW5lIF9fYXR0cmlidXRl
X18oKGFsd2F5c19pbmxpbmUpKSB2b2lkIHBhc19tdGVfdGFnX2RjX2d2YV9rbm93bl9tZWRpdW0o
dWludDhfdCogYmVnaW4sIHNpemVfdCBzaXplKQotewotICAgIHVpbnQ4X3QqIGVuZCA9IGJlZ2lu
ICsgc2l6ZTsKLSAgICB3aGlsZSAoYmVnaW4gPCBlbmQpIHsKLSAgICAgICAgUEFTX01URV9TRVRf
VEFHU19VU0lOR19EQ19HVkEoYmVnaW4pOwotICAgICAgICBQQVNfTVRFX1NFVF9UQUdTX1VTSU5H
X0RDX0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUpOwotICAgICAgICBQQVNfTVRFX1NF
VF9UQUdTX1VTSU5HX0RDX0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUgKiAyKTsKLSAg
ICAgICAgUEFTX01URV9TRVRfVEFHU19VU0lOR19EQ19HVkEoYmVnaW4gKyBEQ19HVkFfR1JBTlVM
RV9TSVpFICogMyk7Ci0gICAgICAgIFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2lu
ICsgRENfR1ZBX0dSQU5VTEVfU0laRSAqIDQpOwotICAgICAgICBQQVNfTVRFX1NFVF9UQUdTX1VT
SU5HX0RDX0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUgKiA1KTsKLSAgICAgICAgUEFT
X01URV9TRVRfVEFHU19VU0lOR19EQ19HVkEoYmVnaW4gKyBEQ19HVkFfR1JBTlVMRV9TSVpFICog
Nik7Ci0gICAgICAgIFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luICsgRENfR1ZB
X0dSQU5VTEVfU0laRSAqIDcpOwotICAgICAgICBiZWdpbiArPSBEQ19HVkFfR1JBTlVMRV9TSVpF
ICogODsKLSAgICB9Ci19Ci0KLWlubGluZSBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lKSkg
dm9pZCBwYXNfbXRlX3RhZ19kY19ndmFfc3dpdGNoaW5nKHVpbnQ4X3QqIGJlZ2luLCBzaXplX3Qg
c2l6ZSkKLXsKLSAgICAvKiBHZXQgdGhlIHNtYWxsLW9iamVjdCBjYXNlIG91dCBvZiB0aGUgd2F5
LiAqLwotICAgIGlmIChzaXplIDw9IDQ4KSB7Ci0gICAgICAgIGlmIChQQVNfTVRFX0ZFQVRVUkVf
RU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfTE9HX09OX1RBRykpCi0gICAgICAgICAgICBwcmludGYo
IltNVEVdXHQgICAgVGFnZ2luZyBzbWFsbCBvYmplY3Qgd2l0aCBzaXplICV6dSBmcm9tICVwIHRv
ICVwXG4iLCBzaXplLCBiZWdpbiwgYmVnaW4gKyBzaXplKTsKLSAgICAgICAgUEFTX01URV9TRVRf
VEFHKGJlZ2luKTsKLSAgICAgICAgaWYgKHNpemUgPD0gMTYpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIFBBU19NVEVfU0VUX1RBR19QQUlSKGJlZ2luKTsKLSAgICAgICAgaWYgKHNpemUg
PiAzMikKLSAgICAgICAgICAgIFBBU19NVEVfU0VUX1RBR19XSVRIX09GRlNFVChiZWdpbiwgMzIp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLyogTm93IHRoYXQgd2Uga25vdyB0aGUg
c2l6ZSBpcyBhdCBsZWFzdCA2NCBieXRlcywgd2UgY2FuIHVzZSBEQyBHVkEuICovCi0gICAgLyog
Rmlyc3QsIHdlIGhhbmRsZSB0aGUgZmlyc3QgNjQgYnl0ZXMsIHdoaWNoIG1heSBub3QgYmUgYWxp
Z25lZCB0byA2NCBieXRlcy4gKi8KLSAgICBpZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFT
X01URV9GRUFUVVJFX0xPR19PTl9UQUcpKQotICAgICAgICBwcmludGYoIltNVEVdXHQgICAgVGFn
Z2luZyBpbml0aWFsIDY0IGJ5dGVzIGZyb20gJXAgdG8gJXBcbiIsIGJlZ2luLCBiZWdpbiArIDY0
KTsKLSAgICBQQVNfTVRFX1NFVF9UQUdfUEFJUihiZWdpbik7Ci0gICAgUEFTX01URV9TRVRfVEFH
X1BBSVJfV0lUSF9PRkZTRVQoYmVnaW4sIDMyKTsKLQotICAgIHVpbnQ4X3QqIGVuZCA9IGJlZ2lu
ICsgc2l6ZTsKLQotICAgIGlmIChzaXplID4gMTI4KSB7Ci0gICAgICAgIC8qIE5leHQsIHdlIGFs
aWduIG91ciBiZWdpbiBhbmQgZW5kLCBpbiBwcmVwYXJhdGlvbiBmb3IgZG9pbmcgYSBEQyBHVkEg
bG9vcC4gKi8KLSAgICAgICAgYmVnaW4gPSAodWludDhfdCopKCh1aW50cHRyX3QpYmVnaW4gKyA2
MyAmIChpbnRwdHJfdCktNjQpOwotICAgICAgICB1aW50OF90KiBlbmRfYWxpZ25lZCA9ICh1aW50
OF90KikoKHVpbnRwdHJfdCllbmQgJiAoaW50cHRyX3QpLTY0KTsKLQotICAgICAgICBpZiAoUEFT
X01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01URV9GRUFUVVJFX0xPR19PTl9UQUcpKQotICAgICAg
ICAgICAgcHJpbnRmKCJbTVRFXVx0ICAgIERvaW5nIGFsaWduZWQgREMgR1ZBIGxvb3AgZnJvbSAl
cCB0byAlcFxuIiwgYmVnaW4sIGVuZF9hbGlnbmVkKTsKLSAgICAgICAgd2hpbGUgKGJlZ2luIDwg
ZW5kX2FsaWduZWQpIHsKLSAgICAgICAgICAgIHVpbnRwdHJfdCBudW1fZ3JhbnVsZXNfdG9fZ3Zh
ID0gKHVpbnRwdHJfdCkoZW5kX2FsaWduZWQgLSBiZWdpbikgLyAodWludHB0cl90KURDX0dWQV9H
UkFOVUxFX1NJWkUgJSAxNjsKLSAgICAgICAgICAgIGlmICghbnVtX2dyYW51bGVzX3RvX2d2YSkK
LSAgICAgICAgICAgICAgICBudW1fZ3JhbnVsZXNfdG9fZ3ZhID0gMTY7Ci0gICAgICAgICAgICBp
ZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01URV9GRUFUVVJFX0xPR19PTl9UQUcpKSB7
Ci0gICAgICAgICAgICAgICAgc2l6ZV90IHRhZ2dlZF9zaXplID0gbnVtX2dyYW51bGVzX3RvX2d2
YSAqIERDX0dWQV9HUkFOVUxFX1NJWkU7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJbTVRFXVx0
ICAgICAgICBUYWdnaW5nICV6dSBieXRlcyBmcm9tICVwIHRvICVwXG4iLCB0YWdnZWRfc2l6ZSwg
YmVnaW4sIGJlZ2luICsgdGFnZ2VkX3NpemUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
c3dpdGNoIChudW1fZ3JhbnVsZXNfdG9fZ3ZhKSB7Ci0gICAgICAgICAgICBjYXNlIDE2OiBQQVNf
TVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUgKiAx
NSk7Ci0gICAgICAgICAgICBjYXNlIDE1OiBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShi
ZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUgKiAxNCk7Ci0gICAgICAgICAgICBjYXNlIDE0OiBQ
QVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUg
KiAxMyk7Ci0gICAgICAgICAgICBjYXNlIDEzOiBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dW
QShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUgKiAxMik7Ci0gICAgICAgICAgICBjYXNlIDEy
OiBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJ
WkUgKiAxMSk7Ci0gICAgICAgICAgICBjYXNlIDExOiBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RD
X0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUgKiAxMCk7Ci0gICAgICAgICAgICBjYXNl
IDEwOiBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxF
X1NJWkUgKiA5KTsKLSAgICAgICAgICAgIGNhc2UgOTogUEFTX01URV9TRVRfVEFHU19VU0lOR19E
Q19HVkEoYmVnaW4gKyBEQ19HVkFfR1JBTlVMRV9TSVpFICogOCk7Ci0gICAgICAgICAgICBjYXNl
IDg6IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luICsgRENfR1ZBX0dSQU5VTEVf
U0laRSAqIDcpOwotICAgICAgICAgICAgY2FzZSA3OiBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RD
X0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJWkUgKiA2KTsKLSAgICAgICAgICAgIGNhc2Ug
NjogUEFTX01URV9TRVRfVEFHU19VU0lOR19EQ19HVkEoYmVnaW4gKyBEQ19HVkFfR1JBTlVMRV9T
SVpFICogNSk7Ci0gICAgICAgICAgICBjYXNlIDU6IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENf
R1ZBKGJlZ2luICsgRENfR1ZBX0dSQU5VTEVfU0laRSAqIDQpOwotICAgICAgICAgICAgY2FzZSA0
OiBQQVNfTVRFX1NFVF9UQUdTX1VTSU5HX0RDX0dWQShiZWdpbiArIERDX0dWQV9HUkFOVUxFX1NJ
WkUgKiAzKTsKLSAgICAgICAgICAgIGNhc2UgMzogUEFTX01URV9TRVRfVEFHU19VU0lOR19EQ19H
VkEoYmVnaW4gKyBEQ19HVkFfR1JBTlVMRV9TSVpFICogMik7Ci0gICAgICAgICAgICBjYXNlIDI6
IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJlZ2luICsgRENfR1ZBX0dSQU5VTEVfU0la
RSk7Ci0gICAgICAgICAgICBjYXNlIDE6IFBBU19NVEVfU0VUX1RBR1NfVVNJTkdfRENfR1ZBKGJl
Z2luKTsgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OiBfX2J1aWx0aW5fdW5yZWFjaGFibGUo
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJlZ2luICs9IG51bV9ncmFudWxlc190b19n
dmEgKiBEQ19HVkFfR1JBTlVMRV9TSVpFOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgLyogSGFu
ZGxlIHRoZSBsYXN0IDY0IGJ5dGVzLCBjb3ZlcmluZyB0aGUgdW5hbGlnbmVkIHJlbWFpbmRlciB3
ZSBtYXkgaGF2ZSAqLwotICAgIC8qIG1pc3NlZCBpbiBvdXIgREMgR1ZBIGxvb3AuICovCi0gICAg
aWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfT05fVEFHKSkK
LSAgICAgICAgcHJpbnRmKCJbTVRFXVx0ICAgIFRhZ2dpbmcgZmluYWwgNjQgYnl0ZXMgZnJvbSAl
cCB0byAlcFxuIiwgZW5kIC0gNjQsIGVuZCk7Ci0gICAgUEFTX01URV9TRVRfVEFHX1BBSVJfV0lU
SF9PRkZTRVQoZW5kLCAtNjQpOwotICAgIFBBU19NVEVfU0VUX1RBR19QQUlSX1dJVEhfT0ZGU0VU
KGVuZCwgLTMyKTsKLX0KLQotUEFTX0lHTk9SRV9XQVJOSU5HU19FTkQKLQotI2RlZmluZSBBU1NF
UlRfUFJJT1JfVEFHX0lTX0RJU0pPSU5UKHB0cikgZG8geyBcCi0gICAgICAgIHVpbnQ4X3QqIHBy
ZXZfcHRyID0gKHVpbnQ4X3QqKSgodWludHB0cl90KXB0ciAtIDE2KTsgXAotICAgICAgICB1aW50
OF90KiBjdXJyX3B0ciA9ICh1aW50OF90KilwdHI7IFwKLSAgICAgICAgaWYgKFBBU19NVEVfU01B
TExfUEFHRV9OTyhwcmV2X3B0cikgPT0gUEFTX01URV9TTUFMTF9QQUdFX05PKGN1cnJfcHRyKSkg
eyBcCi0gICAgICAgICAgICBQQVNfTVRFX0dFVF9UQUcocHJldl9wdHIpOyBcCi0gICAgICAgICAg
ICBQQVNfTVRFX0dFVF9UQUcoY3Vycl9wdHIpOyBcCi0gICAgICAgICAgICB1aW50cHRyX3QgcHJl
dl90YWcgPSAodWludHB0cl90KXByZXZfcHRyICYgUEFTX01URV9UQUdfTUFTSzsgXAotICAgICAg
ICAgICAgdWludHB0cl90IGN1cnJfdGFnID0gKHVpbnRwdHJfdCljdXJyX3B0ciAmIFBBU19NVEVf
VEFHX01BU0s7IFwKLSAgICAgICAgICAgIGlmIChwcmV2X3RhZyA9PSBjdXJyX3RhZyAmJiAhY3Vy
cl90YWcpIFwKLSAgICAgICAgICAgICAgICBwcmludGYoIltNVEVdXHRBZGphY2VudCB0YWcgY29s
bGlzaW9uIGJldHdlZW4gJXAgYW5kICVwOiBjcmFzaGluZ1xuIiwgcHJldl9wdHIsIGN1cnJfcHRy
KTsgXAotICAgICAgICAgICAgUEFTX01URV9BU1NFUlQocHJldl90YWcgIT0gY3Vycl90YWcgfHwg
IWN1cnJfdGFnKTsgXAotICAgICAgICB9IFwKLSAgICB9IHdoaWxlICgwKQotCi0jZGVmaW5lIFRB
R19SRUdJT05fRlJPTV9QT0lOVEVSKHB0ciwgc2l6ZSwgaXNfa25vd25fbWVkaXVtKSBkbyB7IFwK
LSAgICAgICAgdWludDhfdCogcGFzX210ZV9iZWdpbiA9ICh1aW50OF90KikocHRyKTsgXAotICAg
ICAgICBzaXplX3QgcGFzX210ZV9zaXplID0gKHNpemVfdCkoc2l6ZSk7IFwKLSAgICAgICAgaWYg
KFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfT05fVEFHKSkgeyBc
Ci0gICAgICAgICAgICB2b2lkKiBwdXJpZmllZF9iZWdpbiA9IHBhc19tdGVfYmVnaW47IFwKLSAg
ICAgICAgICAgIFBBU19NVEVfR0VUX1RBRyhwdXJpZmllZF9iZWdpbik7IFwKLSAgICAgICAgICAg
IHByaW50ZigiW01URV1cdFRhZ2dpbmcgJXp1IGJ5dGVzIGZyb20gJXAgdG8gJXAgKG9sZCB0YWcg
aXMgJXApXG4iLCBwYXNfbXRlX3NpemUsIHBhc19tdGVfYmVnaW4sIHBhc19tdGVfYmVnaW4gKyBw
YXNfbXRlX3NpemUsIHB1cmlmaWVkX2JlZ2luKTsgXAotICAgICAgICB9IFwKLSAgICAgICAgaWYg
KGlzX2tub3duX21lZGl1bSkgXAotICAgICAgICAgICAgcGFzX210ZV90YWdfZGNfZ3ZhX2tub3du
X21lZGl1bShwYXNfbXRlX2JlZ2luLCBwYXNfbXRlX3NpemUpOyBcCi0gICAgICAgIGVsc2UgXAot
ICAgICAgICAgICAgcGFzX210ZV90YWdfc3QyZ19sb29wKHBhc19tdGVfYmVnaW4sIHBhc19tdGVf
c2l6ZSk7IFwKLSAgICB9IHdoaWxlICgwKQotCi0vLyBQdXJpZnkgaXMgdXNlZCB0byByZWxvYWQg
dGhlIGNvcnJlY3QgdGFnIGZvciBhIHBvaW50ZXIgZnJvbSB0YWcKLS8vIG1lbW9yeS4gV2UgZ2Vu
ZXJhbGx5IHVzZSB0aGlzIHdoZW4gd2UgYWRkIHRvIG9yIHJvdW5kIGRvd24gYSBwb2ludGVyLAot
Ly8gYW5kIG5lZWQgdG8gbW9kaWZ5IG1lbW9yeSBhdCB0aGF0IG5ldyBhZGRyZXNzLCBzdWNoIGFz
IHBhZ2UgaGVhZGVycy4KLQotI2RlZmluZSBQQVNfTVRFX1BVUklGWShhKSBkbyB7IFwKLSAgICAg
ICAgaWYgKFBBU19VU0VfTVRFKSB7IFwKLSAgICAgICAgICAgIGlmIChQQVNfTVRFX0ZFQVRVUkVf
RU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfTE9HX09OX1BVUklGWSkpIFwKLSAgICAgICAgICAgICAg
ICBwcmludGYoIltNVEVdXHRQdXJpZmllZCAlcCIsICh2b2lkKikoYSkpOyBcCi0gICAgICAgICAg
ICBQQVNfTVRFX0dFVF9UQUcoYSk7IFwKLSAgICAgICAgICAgIGlmIChQQVNfTVRFX0ZFQVRVUkVf
RU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfTE9HX09OX1BVUklGWSkpIFwKLSAgICAgICAgICAgICAg
ICBwcmludGYoIiB0byAlcFxuIiwgKHZvaWQqKShhKSk7IFwKLSAgICAgICAgfSBcCi0gICAgfSB3
aGlsZSAoMCkKLQotLy8gQ2xlYXIgaXMgdXNlZCB0byBjYW5vbmljYWxpemUgKHplcm8gb3V0KSB0
aGUgdGFnIGJpdHMgb2YgYSBwb2ludGVyLgotLy8gV2UgZ2VuZXJhbGx5IHVzZSB0aGlzIHdoZW4g
d2Ugd2FudCB0byB0cmVhdCB0aGUgYWRkcmVzcyBpdHNlbGYgYXMKLS8vIGFuIGludGVnZXIgb3Ig
a2V5LCBhbmQgZG9uJ3QgaW50ZW5kIHRvIGxvYWQgZnJvbSBpdCBkaXJlY3RseS4KLS8vIFdlIGRv
bid0IGNoZWNrIGZvciBQQVNfTVRFIGVuYWJsZW1lbnQgaW4gdGhlc2UgY2FzZXMsIHNpbmNlIG9u
IG5vbi1QQVNfTVRFCi0vLyBoYXJkd2FyZSwgdGhlIHRhZyBzaG91bGQgYmUgemVybyBhbnl3YXks
IGFuZCBtYXNraW5nIG9mZiB0aGUgYml0cwotLy8gc2hvdWxkIGJlIGZhc3RlciB0aGFuIGJyYW5j
aGluZyBvbiBnX2NvbmZpZy4KLQotI2RlZmluZSBQQVNfTVRFX0NMRUFSKGEpIGRvIHsgXAotICAg
ICAgICBhICY9IH5QQVNfTVRFX1RBR19NQVNLOyBcCi0gICAgfSB3aGlsZSAoMCkKLQotI2RlZmlu
ZSBQQVNfTVRFX0NMRUFSX1BBSVIoYSwgYikgZG8geyBcCi0gICAgICAgIGEgJj0gflBBU19NVEVf
VEFHX01BU0s7IFwKLSAgICAgICAgYiAmPSB+UEFTX01URV9UQUdfTUFTSzsgXAotICAgIH0gd2hp
bGUgKDApCi0KLS8vIFRhZ2dpbmcgaXMgd2hhdCBhY3R1YWxseSBhcHBsaWVzIGFuIFBBU19NVEUg
dGFnIHRvIGFuIGFsbG9jYXRpb24uIElmIHRoZQotLy8gcGFzX2FsbG9jYXRpb25fbW9kZSBwYXNz
ZWQgdG8gdGhpcyBtYWNybyBpcyBjb21wYWN0LCB3ZSB6ZXJvIHRoZSB1cHBlcgotLy8gYml0cyBv
ZiB0aGUgcG9pbnRlciBhbmQgdGFnIHRoZSBvYmplY3Qgd2l0aCBhIHplcm8gdGFnLiBPdGhlcndp
c2UsIHdlCi0vLyByYW5kb21seSBjaG9vc2UgYSBub256ZXJvIHRhZy4gSXQncyBhc3N1bWVkIHRo
YXQgdGhpcyBtYWNybyB3aWxsIGJlCi0vLyBpbnZva2VkIHdpdGggYSBzaXplIHRoYXQncyBhIG11
bHRpcGxlIG9mIDE2LCBhbmQgaXQncyByZWFsbHkgaW1wb3J0YW50Ci0vLyB0aGF0IHRoZSBzaXpl
IHBhc3NlZCBiZSB0aGUgYWxsb2NhdGlvbiBzaXplIG9mIHRoZSBvYmplY3QsIG5vdCB0aGUKLS8v
IGFjdHVhbCBzaXplLgotI2RlZmluZSBQQVNfTVRFX1RBR19SRUdJT04ocHRyLCBzaXplLCBtb2Rl
LCBpc19hbGxvY2F0b3JfaG9tb2dlbmVvdXMsIGlzX2tub3duX21lZGl1bSkgZG8geyBcCi0gICAg
ICAgIGlmIChQQVNfTVRFX1NIT1VMRF9TVE9SRV9UQUcpIHsgXAotICAgICAgICAgICAgaWYgKG1v
ZGUgIT0gcGFzX25vbl9jb21wYWN0X2FsbG9jYXRpb25fbW9kZSkgXAotICAgICAgICAgICAgICAg
IHB0ciAmPSB+UEFTX01URV9UQUdfTUFTSzsgXAotICAgICAgICAgICAgZWxzZSB7IFwKLSAgICAg
ICAgICAgICAgICBpZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01URV9GRUFUVVJFX0FE
SkFDRU5UX1RBR19FWENMVVNJT04pICYmIGlzX2FsbG9jYXRvcl9ob21vZ2VuZW91cyA9PSBwYXNf
bXRlX2hvbW9nZW5lb3VzX2FsbG9jYXRvcikgeyBcCi0gICAgICAgICAgICAgICAgICAgIGlmICgo
KCh1aW50cHRyX3QpcHRyICYgUEFTX01URV9DQU5PTklDQUxfTUFTSykgLyBzaXplKSAmIDB4MSkg
XAotICAgICAgICAgICAgICAgICAgICAgICAgUEFTX01URV9DUkVBVEVfUkFORE9NX1RBRyhwdHIs
IHBhc19tdGVfb2RkX3RhZyk7IFwKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBcCi0gICAgICAg
ICAgICAgICAgICAgICAgICBQQVNfTVRFX0NSRUFURV9SQU5ET01fVEFHKHB0ciwgcGFzX210ZV9u
b256ZXJvX2V2ZW5fdGFnKTsgXAotICAgICAgICAgICAgICAgIH0gZWxzZSBcCi0gICAgICAgICAg
ICAgICAgICAgIFBBU19NVEVfQ1JFQVRFX1JBTkRPTV9UQUcocHRyLCBwYXNfbXRlX2FueV9ub256
ZXJvX3RhZyk7IFwKLSAgICAgICAgICAgIH0gXAotICAgICAgICAgICAgaWYgKG1vZGUgIT0gcGFz
X2Fsd2F5c19jb21wYWN0X2FsbG9jYXRpb25fbW9kZSkgeyBcCi0gICAgICAgICAgICAgICAgVEFH
X1JFR0lPTl9GUk9NX1BPSU5URVIocHRyLCBzaXplLCBpc19rbm93bl9tZWRpdW0pOyBcCi0gICAg
ICAgICAgICAgICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9B
REpBQ0VOVF9UQUdfRVhDTFVTSU9OKSBcCi0gICAgICAgICAgICAgICAgICAgICYmIFBBU19NVEVf
RkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9BU1NFUlRfQURKQUNFTlRfVEFHU19BUkVf
RElTSk9JTlQpIFwKLSAgICAgICAgICAgICAgICAgICAgJiYgaXNfYWxsb2NhdG9yX2hvbW9nZW5l
b3VzID09IHBhc19tdGVfaG9tb2dlbmVvdXNfYWxsb2NhdG9yKSB7IFwKLSAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUX1BSSU9SX1RBR19JU19ESVNKT0lOVChwdHIpOyBcCi0gICAgICAgICAgICAg
ICAgICAgIEFTU0VSVF9QUklPUl9UQUdfSVNfRElTSk9JTlQocHRyICsgc2l6ZSk7IFwKLSAgICAg
ICAgICAgICAgICB9IFwKLSAgICAgICAgICAgIH0gXAotICAgICAgICB9IFwKLSAgICB9IHdoaWxl
ICgwKQotCi0jZGVmaW5lIFBBU19NVEVfVEFHX1JFR0lPTl9GUk9NX0lOSVRJQUxfQUxMT0NBVElP
TihwdHIsIHNpemUsIG1vZGUsIGlzX2FsbG9jYXRvcl9ob21vZ2VuZW91cywgaXNfa25vd25fbWVk
aXVtKSBkbyB7IFwKLSAgICAgICAgUEFTX01URV9UQUdfUkVHSU9OKHB0ciwgc2l6ZSwgbW9kZSwg
aXNfYWxsb2NhdG9yX2hvbW9nZW5lb3VzLCBpc19rbm93bl9tZWRpdW0pOyBcCi0gICAgICAgIGlm
IChQQVNfTVRFX0ZFQVRVUkVfRU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfTE9HX09OX1RBRykpIHsg
XAotICAgICAgICAgICAgdWludDhfdCogcGFzX210ZV9iZWdpbiA9ICh1aW50OF90KikocHRyKTsg
XAotICAgICAgICAgICAgc2l6ZV90IHBhc19tdGVfc2l6ZSA9IChzaXplX3Qpc2l6ZTsgXAotICAg
ICAgICAgICAgcHJpbnRmKCJbTVRFXVx0Rmlyc3QgdGltZSB0YWdnaW5nIHJlZ2lvbjogYWxsb2Mt
dGFnZ2luZyAlenUgYnl0ZXMgZnJvbSAlcCB0byAlcFxuIiwgcGFzX210ZV9zaXplLCBwYXNfbXRl
X2JlZ2luLCBwYXNfbXRlX2JlZ2luICsgcGFzX210ZV9zaXplKTsgXAotICAgICAgICB9IFwKLSAg
ICB9IHdoaWxlICgwKQotCi0vLyBXZSBsZWF2ZSB0aGUgbWFqb3JpdHkgb2YgdGhlIHZpZXcgdG8g
YmUgdGFnZ2VkIGFzIGluZGl2aWR1YWwgc2VncmVnYXRlZAotLy8gYWxsb2NhdGlvbnMgYXJlIHNs
YWItYWxsb2NhdGVkIGZyb20gd2l0aGluIGl0LiBBbGwgd2UgbmVlZCB0byBkbyBoZXJlIGlzCi0v
LyB6ZXJvLXRhZyB0aGUgdHJhaWxpbmctYnVmZmVyIHdoaWNoIHRoZSBzaGFyZWQgdmlldyBzaGFy
ZWQtYWxsb2NhdG9yIGxlYXZlcwotLy8gYXQgdGhlIGVuZCBvZiB0aGUgbmV3IHBhcnRpYWwgdmll
dy4KLSNkZWZpbmUgUEFTX01URV9UQUdfQlVNUF9BTExPQ0FUSU9OX0ZPUl9QQVJUSUFMX1ZJRVco
cGFnZV9jb25maWcsIHBhZ2UsIHZpZXcsIGJ1bXAsIG1vZGUpIGRvIHsgXAotICAgICAgICBpZiAo
bW9kZSAhPSBwYXNfYWx3YXlzX2NvbXBhY3RfYWxsb2NhdGlvbl9tb2RlKSB7IFwKLSAgICAgICAg
ICAgIHVpbnRwdHJfdCBwYWdlX2JvdW5kYXJ5ID0gKHVpbnRwdHJfdClwYXNfcGFnZV9iYXNlX2Jv
dW5kYXJ5KCZwYWdlLT5iYXNlLCBwYWdlX2NvbmZpZy5iYXNlKTsgXAotICAgICAgICAgICAgdWlu
dHB0cl90IHB0ciA9IHBhZ2VfYm91bmRhcnkgKyAoYnVtcC5uZXdfYnVtcCAtIDE2KTsgXAotICAg
ICAgICAgICAgVEFHX1JFR0lPTl9GUk9NX1BPSU5URVIocHRyLCAxNiwgUEFTX01URV9JU19LTk9X
Tl9NRURJVU1fUEFHRSgmcGFnZV9jb25maWcpKTsgXAotICAgICAgICAgICAgaWYgKFBBU19NVEVf
RkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9MT0dfT05fVEFHKSkgeyBcCi0gICAgICAg
ICAgICAgICAgdWludHB0cl90IGJ1bXBfYmFzZSA9IHBhZ2VfYm91bmRhcnkgKyBidW1wLm9sZF9i
dW1wOyBcCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJbTVRFXVx0VGFnZ2luZyAxNiBieXRlcyBm
cm9tICVwIGZvciB0cmFpbGluZy1idWZmZXIgb2YgcGFydGlhbCB2aWV3ICVwLCBidW1wIHN0YXJ0
aW5nIGF0ICVwXG4iLCAodm9pZCopcHRyLCB2aWV3LCAodm9pZCopYnVtcF9iYXNlKTsgXAotICAg
ICAgICAgICAgfSBcCi0gICAgICAgIH0gXAotICAgIH0gd2hpbGUgKDApCi0KLSNkZWZpbmUgUEFT
X01URV9UQUdfUkVHSU9OX0ZST01fT1RIRVJfQUxMT0NBVElPTihwdHIsIHNpemUsIG1vZGUsIGlz
X2FsbG9jYXRvcl9ob21vZ2VuZW91cywgaXNfa25vd25fbWVkaXVtKSBkbyB7IFwKLSAgICAgICAg
aWYgKCFQQVNfTVRFX0ZFQVRVUkVfRU5BQkxFRChQQVNfTVRFX0ZFQVRVUkVfUkVUQUdfT05fRlJF
RSkpIHsgXAotICAgICAgICAgICAgUEFTX01URV9UQUdfUkVHSU9OKHB0ciwgc2l6ZSwgbW9kZSwg
aXNfYWxsb2NhdG9yX2hvbW9nZW5lb3VzLCBpc19rbm93bl9tZWRpdW0pOyBcCi0gICAgICAgICAg
ICBicmVhazsgXAotICAgICAgICB9IFwKLSAgICAgICAgdWludDhfdCogcGFzX210ZV9iZWdpbiA9
ICh1aW50OF90KikocHRyKTsgXAotICAgICAgICBzaXplX3QgcGFzX210ZV9zaXplID0gKHNpemVf
dClzaXplOyBcCi0gICAgICAgIGlmIChtb2RlID09IHBhc19ub25fY29tcGFjdF9hbGxvY2F0aW9u
X21vZGUpIHsgXAotICAgICAgICAgICAgLyogYXNzdW1lOiBzaXplID49IDE2ICYmIHB0ciAlIDE2
ID09IDAgKi8gXAotICAgICAgICAgICAgaWYgKFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19N
VEVfRkVBVFVSRV9MT0dfT05fVEFHKSkgXAotICAgICAgICAgICAgICAgIHByaW50ZigiW01URV1c
dFNraXBwaW5nIGFsbG9jLXRhZ2dpbmcgJXp1IGJ5dGVzIGZyb20gJXAgdG8gJXBcbiIsIHBhc19t
dGVfc2l6ZSwgcGFzX210ZV9iZWdpbiwgcGFzX210ZV9iZWdpbiArIHBhc19tdGVfc2l6ZSk7IFwK
LSAgICAgICAgICAgIFBBU19NVEVfUFVSSUZZKHB0cik7IFwKLSAgICAgICAgfSBlbHNlIHsgXAot
ICAgICAgICAgICAgUEFTX01URV9UQUdfUkVHSU9OKHB0ciwgc2l6ZSwgbW9kZSwgaXNfYWxsb2Nh
dG9yX2hvbW9nZW5lb3VzLCBpc19rbm93bl9tZWRpdW0pOyBcCi0gICAgICAgIH0gXAotICAgIH0g
d2hpbGUgKDApCi0jZGVmaW5lIFBBU19NVEVfVEFHX1JFR0lPTl9GUk9NX0RFQUxMT0NBVElPTihw
YWdlX2NvbmZpZywgcHRyLCBzaXplLCBpc19hbGxvY2F0b3JfaG9tb2dlbmVvdXMpIGRvIHsgXAot
ICAgICAgICBpZiAoIVBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKFBBU19NVEVfRkVBVFVSRV9SRVRB
R19PTl9GUkVFKSkgXAotICAgICAgICAgICAgYnJlYWs7IFwKLSAgICAgICAgUEFTX01URV9UQUdf
UkVHSU9OKHB0ciwgc2l6ZSwgcGFzX25vbl9jb21wYWN0X2FsbG9jYXRpb25fbW9kZSwgaXNfYWxs
b2NhdG9yX2hvbW9nZW5lb3VzLCBQQVNfTVRFX0lTX0tOT1dOX01FRElVTV9QQUdFKCZwYWdlX2Nv
bmZpZykpOyBcCi0gICAgfSB3aGlsZSAoMCkKLQotLy8gV2hlbiB6ZXJvaW5nIG91dCBtZW1vcnkg
d2UgbmVlZCB0byBiZSBjYXJlZnVsIHRvIG5vdCBjbGVhciBpdHMgdGFnZ2VkIHN0YXR1cy4KLS8v
IE5laXRoZXIgbWVtc2V0IG5vciBtYWNoX3ZtX2JlaGF2aW9yX3NldCB3aWxsIGRvIHNvLCBidXQg
cmUtbWFwcGluZyB0aGUgcGFnZQotLy8gd2l0aCBtbWFwIG9yIG1hY2hfdm1fbWFwIHdpbGwgZG8g
c28gdW5sZXNzIHdlIGZvcmNlIGl0IHRvIHVzZSBQQVNfVk1fTVRFLgotLy8gVGhpcyBoYXMgdGhl
IHNpZGUgZWZmZWN0IG9mIG1ha2luZyAqbm9uKi1QQVNfTVRFIHBhZ2VzIGludG8gdGFnZ2VkIG1l
bW9yeSwgYnV0Ci0vLyB0aGUgb25seSBzaWRlIGVmZmVjdCBvZiB0aGF0IHNob3VsZCBiZSBhIHNt
YWxsIGhpdCB0byBwZXJmb3JtYW5jZSAtLSB3aGljaAotLy8gd2lsbCBoYXZlIHRvIHN1ZmZpY2Ug
dW50aWwgd2UgY2FuIHN0YXJ0IHVzaW5nIG1hY2hfdm1fYmVoYXZpb3Jfc2V0LgotCi0jaWYgUEFT
X09TKERBUldJTikKLQotLy8gV2UgY2FuJ3QgY2hlY2sgd2hldGhlciBQQVNfQVNTRVJUIGlzIGRl
ZmluZWQgc2luY2UgdGhpcyBoZWFkZXIgaXMgaW5jbHVkZWQgZWFybHkKLS8vIG9uIHdpdGhpbiBw
YXNfdXRpbHMuaCwgd2hlcmUgUEFTX0FTU0VSVCBpcyBkZWZpbmVkLiBTbyBpZiBSRUxFQVNFX0JB
U1NFUlQKLS8vIGlzbid0IGF2YWlsYWJsZSB3ZSBqdXN0IHVzZSBQQVNfQVNTRVJUIGFuZCBsZXQg
dGhlIGNvbXBpbGVyIGVycm9yIGlmIGl0J3Mgbm90Ci0vLyBhcm91bmQuCi0jaWYgZGVmaW5lZChS
RUxFQVNFX0JBU1NFUlQpCi0jZGVmaW5lIFBBU19NVEVfQVNTRVJUKHgpIFJFTEVBU0VfQkFTU0VS
VCh4KQotI2Vsc2UKLSNkZWZpbmUgUEFTX01URV9BU1NFUlQoeCkgUEFTX0FTU0VSVCh4KQotI2Vu
ZGlmCi0KLSNkZWZpbmUgUEFTX01URV9aRVJPX0ZJTExfUEFHRShwdHIsIHNpemUsIGZsYWdzLCB0
YWcpIGRvIHsgXAotICAgICAgICAodm9pZClmbGFnczsgXAotICAgICAgICBpZiAoUEFTX1VTRV9N
VEUpIHsgXAotICAgICAgICAgICAgY29uc3Qgdm1faW5oZXJpdF90IGNoaWxkUHJvY2Vzc0luaGVy
aXRhbmNlID0gVk1fSU5IRVJJVF9ERUZBVUxUOyBcCi0gICAgICAgICAgICBjb25zdCBib29sIGNv
cHkgPSBmYWxzZTsgXAotICAgICAgICAgICAgLyogRklYTUU6IHVzZSBtYWNoX3ZtX2JlaGF2aW9y
X3NldCBpbnN0ZWFkIHJkYXI6Ly8xNjA4MTM1MzIgKi8gXAotICAgICAgICAgICAga2Vybl9yZXR1
cm5fdCB2bV9tYXBfcmVzdWx0ID0gbWFjaF92bV9tYXAobWFjaF90YXNrX3NlbGYoKSwgXAotICAg
ICAgICAgICAgICAgIChtYWNoX3ZtX2FkZHJlc3NfdCopJnB0ciwgXAotICAgICAgICAgICAgICAg
IChzaXplKSwgXAotICAgICAgICAgICAgICAgIDAsIFwKLSAgICAgICAgICAgICAgICBWTV9GTEFH
U19GSVhFRCB8IFZNX0ZMQUdTX09WRVJXUklURSB8IFBBU19WTV9NVEUgfCAodGFnKSwgTUVNT1JZ
X09CSkVDVF9OVUxMLCBcCi0gICAgICAgICAgICAgICAgMCwgXAotICAgICAgICAgICAgICAgIGNv
cHksIFwKLSAgICAgICAgICAgICAgICBWTV9QUk9UX0RFRkFVTFQsIFwKLSAgICAgICAgICAgICAg
ICBWTV9QUk9UX0FMTCwgXAotICAgICAgICAgICAgICAgIGNoaWxkUHJvY2Vzc0luaGVyaXRhbmNl
KTsgXAotICAgICAgICAgICAgaWYgKHZtX21hcF9yZXN1bHQgIT0gS0VSTl9TVUNDRVNTKSBcCi0g
ICAgICAgICAgICAgICAgZXJybm8gPSAwOyBcCi0gICAgICAgICAgICBQQVNfTVRFX0FTU0VSVCh2
bV9tYXBfcmVzdWx0ID09IEtFUk5fU1VDQ0VTUyk7IFwKLSAgICAgICAgICAgIC8qIEVhcmx5IGV4
aXQgZnJvbSBjYWxsZXIgZnVuY3Rpb24gc2luY2Ugd2UndmUgZG9uZSB0aGUgemVyby1maWxsIG91
cnNlbHZlcyAqLyBcCi0gICAgICAgICAgICByZXR1cm47IFwKLSAgICAgICAgfSBcCi0gICAgfSB3
aGlsZSAoZmFsc2UpIFwKLQotI2Vsc2UKLSNkZWZpbmUgUEFTX01URV9aRVJPX0ZJTExfUEFHRShw
dHIsIHNpemUsIGZsYWdzLCB0YWcpIGRvIHsgXAotICAgICAgICAgICh2b2lkKXB0cjsgXAotICAg
ICAgICAgICh2b2lkKXNpemU7IFwKLSAgICAgICAgICAodm9pZClmbGFnczsgXAotICAgICAgICAg
ICh2b2lkKXRhZzsgXAotICAgICAgfSB3aGlsZSAoZmFsc2UpCi0jZW5kaWYgLy8gUEFTX09TKERB
UldJTikKLQotLy8gVGhpcyBpcyBubyBsb25nZXIgbmVlZGVkIGFzIHRoZSBwb2ludGVyIGlzIGFs
cmVhZHkgdGFnZ2VkIGluIHByZXBhcmF0aW9uIGZvcgotLy8gYmVpbmcgcmV0dXJuZWQgdG8gdGhl
IGNhbGxlciBvZiB0aGUgYWxsb2NhdGlvbiBmdW5jdGlvbi4KLSNkZWZpbmUgUEFTX01URV9IQU5E
TEVfWkVST19BTExPQ0FUSU9OX1JFU1VMVChhKSBkbyB7ICh2b2lkKWE7IH0gd2hpbGUgKGZhbHNl
KQotCi0vLyBVc2VkIHRvIHplcm8gYW4gZXhpc3RpbmcgcGFnZSBhbGxvY2F0aW9uIHdpdGhvdXQg
Y2xlYXJpbmcgdGhlIHRhZ2dlZC1tZW1vcnkKLS8vIGJpdCBpbiBpdHMgcGFnZS10YWJsZSBlbnRy
aWVzLgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9aRVJPX0ZJTExfUEFHRShwdHIsIHNpemUsIGZs
YWdzLCB0YWcpIFBBU19NVEVfWkVST19GSUxMX1BBR0UocHRyLCBzaXplLCBmbGFncywgdGFnKQot
Ci0vLyBVc2VkIHRvIGFsbG93IHVzIHRvIHRvZ2dsZSBUQ08gYmVmb3JlIHNldHRpbmcgbGFyZ2Ug
Y2h1bmtzIG9mCi0vLyBtZW1vcnkgdG8gMC4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfWkVST19N
RU1PUlkocHRyLCBzaXplKSBkbyB7IFwKLSAgICAgICAgaWYgKFBBU19VU0VfTVRFKSB7IFwKLSAg
ICAgICAgICAgIFBBU19NVEVfQ0hFQ0tfVEFHX0FORF9TRVRfVENPKHB0cik7IFwKLSAgICAgICAg
ICAgIG1lbXNldCgodm9pZCopcHRyLCAwLCBzaXplKTsgXAotICAgICAgICAgICAgUEFTX01URV9D
TEVBUl9UQ087IFwKLSAgICAgICAgICAgIC8qIEVhcmx5IGV4aXQgZnJvbSBjYWxsZXIgZnVuY3Rp
b24gc2luY2UgXAotICAgICAgICAgICAgICogd2UndmUgZG9uZSB0aGUgemVyby1maWxsIG91cnNl
bHZlcyAqLyBcCi0gICAgICAgICAgICByZXR1cm47IFwKLSAgICAgICAgfSBcCi0gICAgfSB3aGls
ZSAoZmFsc2UpCi0KLS8vIFVzZWQgdG8gY2xlYXIgdGhlIHRhZyBiZWZvcmUgd2UgbG9vayB1cCB0
aGUgYWRkcmVzcyBpbiB0aGUgbWVnYXBhZ2UgdGFibGUgd2hlbiByZWFsbG9jYXRpbmcuCi0jZGVm
aW5lIFBBU19NVEVfSEFORExFX1JFQUxMT0NBVEUoYSkgUEFTX01URV9DTEVBUihhKQotCi0vLyBV
c2VkIHRvIHJlc3RvcmUgdGhlIGNvcnJlY3QgdGFnIHdoZW4gcmVhbGxvY2F0aW5nIHNvbWV0aGlu
ZyB0byBhIG5ldyBhZGRyZXNzIGJlZm9yZSBjb3B5aW5nIGl0LgotI2RlZmluZSBQQVNfTVRFX0hB
TkRMRV9UUllfUkVBTExPQ0FURV9BTkRfQ09QWShwdHIsIG9sZF9wdHIsIHNpemUpIGRvIHsgXAot
ICAgICAgICBpZiAoUEFTX1VTRV9NVEUpIHsgXAotICAgICAgICAgICAgUEFTX01URV9DSEVDS19U
QUdfQU5EX1NFVF9UQ08ocHRyKTsgXAotICAgICAgICAgICAgbWVtY3B5KCh2b2lkKilwdHIsIG9s
ZF9wdHIsIHNpemUpOyBcCi0gICAgICAgICAgICBQQVNfTVRFX0NMRUFSX1RDTzsgXAotICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpIHsgXAotICAgICAgICAgICAgICAgIHBhc19sb2coIlx0Li4uZG9u
ZSBjb3B5aW5nIHNpemUgJXp1IGZyb20gJXAgdG8gJXBcbiIsIHNpemUsIG9sZF9wdHIsICh2b2lk
KilwdHIpOyBcCi0gICAgICAgICAgICB9IFwKLSAgICAgICAgICAgIC8qIEVhcmx5IGV4aXQgZnJv
bSBjYWxsZXIgZnVuY3Rpb24gc2luY2UgXAotICAgICAgICAgICAgICogd2UndmUgZG9uZSB0aGUg
Y29weSBvdXJzZWx2ZXMgKi8gXAotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsgXAotICAgICAg
ICB9IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQotLy8gVXNlZCB0byBjbGVhciB0aGUgdGFnIGZy
b20gYSBwb2ludGVyIGludG8gYSBwYWdlLCBzaW5jZSB0aGUgcGFnZSBoZWFkZXIgc2hvdWxkCi0v
LyBiZSB6ZXJvLXRhZ2dlZC4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfUEFHRV9CQVNFX0ZST01f
Qk9VTkRBUlkoYSkgUEFTX01URV9DTEVBUihhKQotCi0vLyBVc2VkIHRvIGNsZWFyIHBvaW50ZXIg
dGFnIGJpdHMgYmVmb3JlIGxvb2tpbmcgaXQgdXAgaW4gdGhlIHBhZ2UgaGVhZGVyIHRhYmxlLgot
I2RlZmluZSBQQVNfTVRFX0hBTkRMRV9QQUdFX0hFQURFUl9UQUJMRV9HRVQoYSkgUEFTX01URV9D
TEVBUihhKQotCi0vLyBVc2VkIHRvIGNsZWFyIHBvaW50ZXIgdGFnIGJpdHMgYmVmb3JlIGFkZGlu
ZyBpdCB0byB0aGUgcGFnZSBoZWFkZXIgdGFibGUuCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX1BB
R0VfSEVBREVSX1RBQkxFX0FERChhKSBQQVNfTVRFX0NMRUFSKGEpCi0KLS8vIFVzZWQgdG8gY2xl
YXIga2V5IHRhZyBiaXRzIGJlZm9yZSBsb29raW5nIHVwIGEgcG9pbnRlciBpbiB0aGUgbGFyZ2Ug
bWFwLgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9MQVJHRV9NQVBfRklORChhKSBQQVNfTVRFX0NM
RUFSKGEpCi0KLS8vIFVzZWQgdG8gY2xlYXIga2V5IHRhZyBiaXRzIGJlZm9yZSBpbnNlcnRpbmcg
YSBwb2ludGVyIHJhbmdlIGludG8gdGhlIGxhcmdlIG1hcC4KLSNkZWZpbmUgUEFTX01URV9IQU5E
TEVfTEFSR0VfTUFQX0FERChhLCBiKSBQQVNfTVRFX0NMRUFSKGEpCi0KLS8vIFVzZWQgdG8gY2xl
YXIga2V5IHRhZyBiaXRzIGJlZm9yZSB0YWtpbmcgYSBwb2ludGVyIGZyb20gdGhlIGxhcmdlIG1h
cC4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfTEFSR0VfTUFQX1RBS0UoYSkgUEFTX01URV9DTEVB
UihhKQotCi0vLyBVc2VkIHRvIHJlc3RvcmUgdGhlIGNvcnJlY3QgdGFnIG9mIGEgbGFyZ2UgbWFw
IGVudHJ5IGtleSBhZnRlciBsb29raW5nIGl0IHVwLgotLy8gVGFrZXMgYSBwYXNfaGVhcF9jb25m
aWcqCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX0xBUkdFX01BUF9GT1VORF9FTlRSWShjb25maWcs
IGEsIGIpIFBBU19NVEVfUFVSSUZZKGEpCi0KLS8vIFVzZWQgdG8gcmVzdG9yZSB0aGUgY29ycmVj
dCB0YWcgb2YgYSBsYXJnZSBtYXAgZW50cnkga2V5IGFmdGVyIHRha2luZyBpdCBmcm9tIHRoZSBt
YXAuCi0vLyBUYWtlcyBhIHBhc19oZWFwX2NvbmZpZyoKLSNkZWZpbmUgUEFTX01URV9IQU5ETEVf
TEFSR0VfTUFQX1RPT0tfRU5UUlkoY29uZmlnLCBhLCBiKSBQQVNfTVRFX1BVUklGWShhKQotCi0v
LyBVc2VkIHRvIGNsZWFyIHBvaW50ZXIgdGFnIGJpdHMgYmVmb3JlIHRha2luZyBhIHBvaW50ZXIg
ZnJvbSB0aGUgbGFyZ2UgbWFwLgotLy8gVGFrZXMgYSBwYXNfaGVhcF9jb25maWcqCi0jZGVmaW5l
IFBBU19NVEVfSEFORExFX1BHTV9BTExPQ0FURShjb25maWcsIGEpIFBBU19NVEVfQ0xFQVIoYSkK
LQotLy8gVXNlZCB0byBjbGVhciBwb2ludGVyIHRhZyBiaXRzIGJlZm9yZSB0YWtpbmcgYSBwb2lu
dGVyIGZyb20gdGhlIGxhcmdlIG1hcC4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfUEdNX0RFQUxM
T0NBVEUoYSkgUEFTX01URV9DTEVBUihhKQotCi0vLyBVc2VkIHRvIGNsZWFyIHBvaW50ZXIgdGFn
IGJpdHMgYmVmb3JlIHB1dHRpbmcgYSBwb2ludGVyIHRvIHRoZSBtZWdhcGFnZSB0YWJsZS4KLSNk
ZWZpbmUgUEFTX01URV9IQU5ETEVfTUVHQVBBR0VfU0VUKGEpIFBBU19NVEVfQ0xFQVIoYSkKLQot
Ly8gVXNlZCB0byBjbGVhciBwb2ludGVyIHRhZyBiaXRzIGJlZm9yZSBnZXR0aW5nIGEgcG9pbnRl
ciBmcm9tIHRoZSBtZWdhcGFnZSB0YWJsZS4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfTUVHQVBB
R0VfR0VUKGEpIFBBU19NVEVfQ0xFQVIoYSkKLQotLy8gVXNlZCB0byBjbGVhciBwb2ludGVyIHRh
ZyBiaXRzIGZyZWVpbmcgYSByYW5nZSBpbiB0aGUgbGFyZ2Ugc2hhcmluZyBwb29sLgotI2RlZmlu
ZSBQQVNfTVRFX0hBTkRMRV9MQVJHRV9TSEFSSU5HX1BPT0xfQk9PVF9GUkVFKGEsIGIpIFBBU19N
VEVfQ0xFQVJfUEFJUihhLCBiKQotCi0vLyBVc2VkIHRvIGNsZWFyIHBvaW50ZXIgdGFnIGJpdHMg
ZnJlZWluZyBhIHJhbmdlIGluIHRoZSBsYXJnZSBzaGFyaW5nIHBvb2wuCi0jZGVmaW5lIFBBU19N
VEVfSEFORExFX0xBUkdFX1NIQVJJTkdfUE9PTF9GUkVFKGEsIGIpIFBBU19NVEVfQ0xFQVJfUEFJ
UihhLCBiKQotCi0vLyBVc2VkIHRvIGNsZWFyIHBvaW50ZXIgdGFnIGJpdHMgYWxsb2NhdGluZyBh
IHJhbmdlIGluIHRoZSBsYXJnZSBzaGFyaW5nIHBvb2wuCi0jZGVmaW5lIFBBU19NVEVfSEFORExF
X0xBUkdFX1NIQVJJTkdfUE9PTF9BTExPQ0FURV9BTkRfQ09NTUlUKGEsIGIpIFBBU19NVEVfQ0xF
QVJfUEFJUihhLCBiKQotCi0vLyBVc2VkIHRvIGNsZWFyIHBvaW50ZXIgdGFnIGJpdHMgd2hlbiBz
dW1tYXJpemluZyBhIHJhbmdlIGluIHRoZSBsYXJnZSBzaGFyaW5nIHBvb2wuCi0jZGVmaW5lIFBB
U19NVEVfSEFORExFX0xBUkdFX1NIQVJJTkdfUE9PTF9DT01QVVRFX1NVTU1BUlkoYSwgYikgUEFT
X01URV9DTEVBUl9QQUlSKGEsIGIpCi0KLS8vIFVzZSB0aGVzZSB0byBjb25maWd1cmUgdGhlIHRh
Z2dpbmcgcG9saWN5IGZvciBkaWZmZXJlbnQgc2l6ZXMuIEN1cnJlbnRseSB3ZSBvbmx5Ci0vLyB0
YWcgc21hbGwgYW5kIG1lZGl1bSBhbGxvY2F0aW9ucywgaW4gYm90aCBzZWdyZWdhdGVkIGFuZCBi
aXRmaXQgcGFnZXMuIE1lZGl1bQotLy8gYWxsb2NhdGlvbnMgc2hvdWxkIGJlIGFkZGl0aW9uYWxs
eSBndWFyZGVkIGF0IHJ1bnRpbWUgYnkgUEFTX01URV9NRURJVU1fVEFHR0lOR19FTkFCTEVELgot
I2RlZmluZSBQQVNfTVRFX0FMTE9XX1RBR19TTUFMTCAxCi0jZGVmaW5lIFBBU19NVEVfQUxMT1df
VEFHX01FRElVTSAxCi0KLSNpZiBQQVNfTVRFX0FMTE9XX1RBR19TTUFMTCAmJiBQQVNfTVRFX0FM
TE9XX1RBR19NRURJVU0KLSNkZWZpbmUgUEFTX01URV9TSE9VTERfVEFHX0FMTE9DQVRPUihhbGxv
Y2F0b3IpIChhbGxvY2F0b3IpLT5pc19tdGVfdGFnZ2VkCi0jZGVmaW5lIFBBU19NVEVfREVDSURF
X1BBR0VfQ09ORklHX1RBR0dFRE5FU1Moc2l6ZV9jYXRlZ29yeSkgXAotICAgIChzaXplX2NhdGVn
b3J5ID09IHBhc19wYWdlX2NvbmZpZ19zaXplX2NhdGVnb3J5X3NtYWxsIHx8IHNpemVfY2F0ZWdv
cnkgPT0gcGFzX3BhZ2VfY29uZmlnX3NpemVfY2F0ZWdvcnlfbWVkaXVtKQotLy8gVE9ETzogb25j
ZSB3ZSBkcm9wIHN1cHBvcnQgZm9yIHJ1bnRpbWUtZGlmZmVyZW50aWF0aW5nIG1lZGl1bSB0YWdn
aW5nLCB3ZSBjYW4KLS8vIGRyb3AgdGhlIHNlY29uZCBoYWxmIG9mIHRoaXMgc3RhdGVtZW50Ci0j
ZGVmaW5lIFBBU19NVEVfU0hPVUxEX1RBR19QQUdFKHBhZ2VfY29uZmlnKSAoKHBhZ2VfY29uZmln
KS0+YmFzZS5hbGxvd19tdGVfdGFnZ2luZyAmJiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoUEFTX01URV9NRURJVU1fVEFHR0lOR19FTkFCTEVEIHx8IChwYWdl
X2NvbmZpZyktPmJhc2UucGFnZV9jb25maWdfc2l6ZV9jYXRlZ29yeSAhPSBwYXNfcGFnZV9jb25m
aWdfc2l6ZV9jYXRlZ29yeV9tZWRpdW0pKQotI2RlZmluZSBQQVNfTVRFX0lTX0tOT1dOX01FRElV
TV9CVU1QKGFsbG9jYXRvcikgIShhbGxvY2F0b3IpLT5pc19zbWFsbAotI2RlZmluZSBQQVNfTVRF
X0lTX0tOT1dOX01FRElVTV9QQUdFKHBhZ2VfY29uZmlnKSAocGFnZV9jb25maWcpLT5iYXNlLnBh
Z2VfY29uZmlnX3NpemVfY2F0ZWdvcnkgPT0gcGFzX3BhZ2VfY29uZmlnX3NpemVfY2F0ZWdvcnlf
bWVkaXVtCi0jZGVmaW5lIFBBU19NVEVfU0hPVUxEX1RBR19TRUdSRUdBVEVEX0hFQVAoc2VncmVn
YXRlZF9oZWFwKSAoc2VncmVnYXRlZF9oZWFwLT5wYXJlbnRfaGVhcCAmJiBzZWdyZWdhdGVkX2hl
YXAtPnBhcmVudF9oZWFwLT5pc19ub25fY29tcGFjdF9oZWFwKQotI2VsaWYgUEFTX01URV9BTExP
V19UQUdfU01BTEwKLSNkZWZpbmUgUEFTX01URV9ERUNJREVfUEFHRV9DT05GSUdfVEFHR0VETkVT
UyhzaXplX2NhdGVnb3J5KSAoc2l6ZV9jYXRlZ29yeSA9PSBwYXNfcGFnZV9jb25maWdfc2l6ZV9j
YXRlZ29yeV9zbWFsbCkKLSNkZWZpbmUgUEFTX01URV9TSE9VTERfVEFHX0FMTE9DQVRPUihhbGxv
Y2F0b3IpIChhbGxvY2F0b3IpLT5pc19tdGVfdGFnZ2VkCi0jZGVmaW5lIFBBU19NVEVfU0hPVUxE
X1RBR19QQUdFKHBhZ2VfY29uZmlnKSAoKHBhZ2VfY29uZmlnKS0+YmFzZS5hbGxvd19tdGVfdGFn
Z2luZykKLSNkZWZpbmUgUEFTX01URV9JU19LTk9XTl9NRURJVU1fQlVNUChhbGxvY2F0b3IpIDAK
LSNkZWZpbmUgUEFTX01URV9JU19LTk9XTl9NRURJVU1fUEFHRShwYWdlX2NvbmZpZykgMAotI2Vs
c2UKLSNkZWZpbmUgUEFTX01URV9ERUNJREVfUEFHRV9DT05GSUdfVEFHR0VETkVTUyhzaXplX2Nh
dGVnb3J5KSAoZmFsc2UpCi0KLSNkZWZpbmUgUEFTX01URV9TSE9VTERfVEFHX0FMTE9DQVRPUihh
bGxvY2F0b3IpIDAKLSNkZWZpbmUgUEFTX01URV9TSE9VTERfVEFHX1BBR0UocGFnZV9jb25maWcp
IDAKLSNkZWZpbmUgUEFTX01URV9JU19LTk9XTl9NRURJVU1fQlVNUChhbGxvY2F0b3IpIDAKLSNk
ZWZpbmUgUEFTX01URV9JU19LTk9XTl9NRURJVU1fUEFHRShwYWdlX2NvbmZpZykgMAotI2VuZGlm
Ci0KLSNkZWZpbmUgUEFTX1NIT1VMRF9NVEVfVEFHX0JBU0lDX0hFQVBfUEFHRShzaXplX2NhdGVn
b3J5KSBQQVNfTVRFX0RFQ0lERV9QQUdFX0NPTkZJR19UQUdHRURORVNTKHNpemVfY2F0ZWdvcnkp
Ci0KLXN0cnVjdCBfX3Bhc19oZWFwOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIg
ewotI2VuZGlmCi1leHRlcm4gc3RydWN0IF9fcGFzX2hlYXAgYm1hbGxvY19jb21tb25fcHJpbWl0
aXZlX2hlYXA7Ci0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0vLyBJdCdzIHBvc3Np
YmxlIGZvciB1c2VycyB0byBhbGxvY2F0ZSBtZW1vcnkgZnJvbSBhIHBhc19oZWFwIHByaW9yIHRv
IGV2ZXIKLS8vIGluZHVjaW5nIGxpYnBhcyB0byBnbyBkb3duIHRoZSBwYXNfcGFnZV9tYWxsb2Mg
cGF0aCAtLSBlLmcuIGlmIHRoZXkgb25seSB1c2UKLS8vIHRoZSBzeXN0ZW0gYWxsb2NhdG9yLCBv
ciBoZWFwcyB3aGljaCB1c2UgbWVtb3J5IGFsbG9jYXRlZCBieSB0aGUgdXNlci4KLS8vIEhvd2V2
ZXIsIGFsbCBzdWNoIGFsbG9jYXRpb25zIGhhdmUgdG8gZ28gZG93biB0aGUgcGFzLWhlYXAgaW5p
dGlhbGl6YXRpb24KLS8vIHBhdGggLS0gc28gd2UgY2FuIGludGVyY2VwdCBoZXJlIHRvIGNhdGNo
IHRob3NlIGNhc2VzLgotLy8gVGhpcyBpcyBub3Qgc3VmZmljaWVudCBvbiBpdHMgb3duLCBob3dl
dmVyLCBhcyBpdCdzIHRoZW9yZXRpY2FsbHkgcG9zc2libGUKLS8vIGZvciBsaWJwYXMgdG8gYWxs
b2NhdGUgUEFTX01URSBtZW1vcnkgb24gaXRzIG93biwgZS5nLiB2aWEgdGhlIHV0aWxpdHkgaGVh
cC4KLS8vIE4uYi46IGBoZWFwYCBpcyBlbXB0eSAobnVsbHB0cikgYXQgdGhlIHRpbWUgd2hlbiB0
aGlzIG1hY3JvIGlzIHVzZWQsIHNvIHdlCi0vLyBjYW5ub3QgYWN0dWFsbHkgbWFrZSB1c2Ugb2Yg
aXQuIFdlIHRha2UgaXQgYXMgYSBwYXJhbWV0ZXIgYXMgYSBiYW5kYWlkIG92ZXIKLS8vIGEgc3B1
cmlvdXMgdW51c2VkLXZhcmlhYmxlIHdhcm5pbmcgdGhhdCBjbGFuZyBzb21ldGltZXMgdGhyb3dz
IG90aGVyd2lzZToKLS8vIHNlZSByZGFyOi8vMTU3MTU4MDQ1Ci0jZGVmaW5lIFBBU19NVEVfSEFO
RExFX0VOU1VSRV9IRUFQX1NMT1coaGVhcCwgaGVhcF9yZWYsIGhlYXBfcmVmX2tpbmQsIGhlYXBf
Y29uZmlnLCBydW50aW1lX2NvbmZpZykgZG8geyBcCi0gICAgICAgICh2b2lkKWhlYXA7IFwKLSAg
ICAgICAgKHZvaWQpaGVhcF9yZWY7IFwKLSAgICAgICAgKHZvaWQpaGVhcF9yZWZfa2luZDsgXAot
ICAgICAgICAodm9pZCloZWFwX2NvbmZpZzsgXAotICAgICAgICAodm9pZClydW50aW1lX2NvbmZp
ZzsgXAotICAgICAgICBwYXNfbXRlX2Vuc3VyZV9pbml0aWFsaXplZCgpOyBcCi0gICAgfSB3aGls
ZSAoZmFsc2UpCi0KLS8vIFVzZWQgdG8gc2V0IHVwIHdoZXRoZXIgYSBsb2NhbCBhbGxvY2F0b3Ig
c2hvdWxkIHRhZyBpdHMgYWxsb2NhdGlvbnMuCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX1NFVF9V
UF9MT0NBTF9BTExPQ0FUT1IocGFnZV9jb25maWcsIHNlZ3JlZ2F0ZWRfaGVhcCwgYWxsb2NhdG9y
KSBkbyB7IFwKLSAgICAgICAgaWYgKFBBU19VU0VfTVRFICYmIFBBU19NVEVfU0hPVUxEX1RBR19T
RUdSRUdBVEVEX0hFQVAoc2VncmVnYXRlZF9oZWFwKSkgeyBcCi0gICAgICAgICAgICBhbGxvY2F0
b3ItPmlzX210ZV90YWdnZWQgPSBQQVNfTVRFX1NIT1VMRF9UQUdfUEFHRSgmcGFnZV9jb25maWcp
OyBcCi0gICAgICAgICAgICBhbGxvY2F0b3ItPmlzX3NtYWxsID0gKHBhZ2VfY29uZmlnKS5iYXNl
LnBhZ2VfY29uZmlnX3NpemVfY2F0ZWdvcnkgPT0gcGFzX3BhZ2VfY29uZmlnX3NpemVfY2F0ZWdv
cnlfc21hbGw7IFwKLSAgICAgICAgfSBlbHNlIFwKLSAgICAgICAgICAgIGFsbG9jYXRvci0+aXNf
bXRlX3RhZ2dlZCA9IGZhbHNlOyBcCi0gICAgfSB3aGlsZSAoZmFsc2UpCi0KLS8vIFVzZWQgdG8g
dGFnIGJ1bXAgYWxsb2NhdGlvbnMgZnJvbSBhIGxvY2FsIGFsbG9jYXRvci4KLSNkZWZpbmUgUEFT
X01URV9IQU5ETEVfTE9DQUxfQlVNUF9BTExPQ0FUSU9OKGhlYXBfY29uZmlnLCBhbGxvY2F0b3Is
IHB0ciwgc2l6ZSwgbW9kZSkgZG8geyBcCi0gICAgICAgIGlmIChQQVNfTVRFX1NIT1VMRF9UQUdf
QUxMT0NBVE9SKGFsbG9jYXRvcikpIFwKLSAgICAgICAgICAgIFBBU19NVEVfVEFHX1JFR0lPTl9G
Uk9NX0lOSVRJQUxfQUxMT0NBVElPTihwdHIsIHNpemUsIG1vZGUsIHBhc19tdGVfaG9tb2dlbmVv
dXNfYWxsb2NhdG9yLCBQQVNfTVRFX0lTX0tOT1dOX01FRElVTV9CVU1QKGFsbG9jYXRvcikpOyBc
Ci0gICAgfSB3aGlsZSAoZmFsc2UpCi0KLS8vIFVzZWQgdG8gdGFnIGZyZWUtYml0IHNjYW5uaW5n
IGFsbG9jYXRpb25zIGZyb20gYSBsb2NhbCBhbGxvY2F0b3IuCi0jZGVmaW5lIFBBU19NVEVfSEFO
RExFX0xPQ0FMX0ZSRUVCSVRTX0FMTE9DQVRJT04ocGFnZV9jb25maWcsIHB0ciwgYWxsb2NhdG9y
LCBtb2RlKSBkbyB7IFwKLSAgICAgICAgaWYgKFBBU19NVEVfU0hPVUxEX1RBR19BTExPQ0FUT1Io
YWxsb2NhdG9yKSkgXAotICAgICAgICAgICAgUEFTX01URV9UQUdfUkVHSU9OX0ZST01fT1RIRVJf
QUxMT0NBVElPTihwdHIsIGFsbG9jYXRvci0+b2JqZWN0X3NpemUsIG1vZGUsIHBhc19tdGVfaG9t
b2dlbmVvdXNfYWxsb2NhdG9yLCBQQVNfTVRFX0lTX0tOT1dOX01FRElVTV9QQUdFKHBhZ2VfY29u
ZmlnKSk7IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQotLy8gVXNlZCB0byB0YWcgYml0Zml0IGFs
bG9jYXRpb25zLgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9CSVRGSVRfQUxMT0NBVElPTihwYWdl
X2NvbmZpZywgcHRyLCBzaXplLCBtb2RlKSBkbyB7IFwKLSAgICAgICAgaWYgKFBBU19VU0VfTVRF
ICYmIFBBU19NVEVfU0hPVUxEX1RBR19QQUdFKHBhZ2VfY29uZmlnKSkgXAotICAgICAgICAgICAg
UEFTX01URV9UQUdfUkVHSU9OX0ZST01fT1RIRVJfQUxMT0NBVElPTihwdHIsIHNpemUsIG1vZGUs
IHBhc19tdGVfbm9uaG9tb2dlbmVvdXNfYWxsb2NhdG9yLCBQQVNfTVRFX0lTX0tOT1dOX01FRElV
TV9QQUdFKHBhZ2VfY29uZmlnKSk7IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQotLy8gTG9naWMg
Zm9yIHRhZ2dpbmcgc3lzdGVtIGhlYXAgKGFrYSBzeXN0ZW0gbWFsbG9jKSBhbGxvY2F0aW9ucy4g
VGhlc2UgYXJlIHVzZWQKLS8vIGluIHByb2R1Y3Rpb24gaW4gc29tZSBzZXJ2aWNlcy9kYWVtb25z
IHRvIGF2b2lkIHVzaW5nIHVwIG1lbW9yeSBmb3IgYm90aAotLy8gbGlicGFzIGFuZCBzeXN0ZW0g
bWFsbG9jIG1ldGFkYXRhLCBidXQgc2luY2UgdGhlIHN5c3RlbSBtYWxsb2MgYWxzbyBzdXBwb3J0
cwotLy8gUEFTX01URSBhbmQgc29tZSBvZiB0aGVzZSBzZXJ2aWNlcyBoYXZlIFBBU19NVEUgZW5h
YmxlZCwgd2UgbmVlZCB0byBlbnN1cmUKLS8vIGFsbG9jYXRpb25zIHdlIGV4cGVjdCB0byBiZSB6
ZXJvLXRhZ2dlZCB1bmRlciBQQVNfTVRFIGFyZSB6ZXJvLXRhZ2dlZCBpbiB0aGlzCi0vLyBtb2Rl
IHRvby4KLS8vCi0vLyBBdCB0aGUgdGltZSBvZiB3cml0aW5nLCBtYWxsb2Nfem9uZV9tYWxsb2Nf
d2l0aF9vcHRpb25zX25wIHdpdGgKLS8vIE1BTExPQ19OUF9PUFRJT05fQ0FOT05JQ0FMX1RBRyBp
cyB0aGUgcHJlZmVycmVkIG1lYW5zIG9mIGRvaW5nIHRoaXMuIFNpbmNlCi0vLyB3ZSBkb24ndCBo
YXZlIGFuIGVxdWl2YWxlbnQgZm9yIHJlYWxsb2MgeWV0LCB3ZSBkbyBvdXIgb3duIG1hbGxvYyAr
IGNvcHkgKwotLy8gZnJlZSBzZXF1ZW5jZSBpbnN0ZWFkLgotCi0vLyBBbGxvd2VkIGFyZ3VtZW50
IHZhbHVlcyAoYXMgZGljdGF0ZWQgYnkgbWFsbG9jX3pvbmVfbWFsbG9jX3dpdGhfb3B0aW9uc19u
cCk6Ci0vLyAgLSBhbGlnbm1lbnQ6IDAgZm9yIHVuYWxpZ25lZCwgb3IgYSBwb3dlciBvZiAyID49
IHNpemVvZih2b2lkKikuCi0vLyAgLSBzaXplOiBhbnkgaWYgYWxpZ25tZW50ID09IDAsIGEgbXVs
dGlwbGUgb2YgdGhlIGFsaWdubWVudCBvdGhlcndpc2UuCi0KLWlubGluZSBfX2F0dHJpYnV0ZV9f
KChhbHdheXNfaW5saW5lKSkgdm9pZCogcGFzX210ZV9zeXN0ZW1faGVhcF9tYWxsb2NfemVyb190
YWdnZWQobWFsbG9jX3pvbmVfdCogem9uZSwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUp
Ci17Ci1QQVNfSUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIp
Ci0gICAgcmV0dXJuIG1hbGxvY196b25lX21hbGxvY193aXRoX29wdGlvbnNfbnAoem9uZSwgYWxp
Z25tZW50LCBzaXplLCBNQUxMT0NfTlBfT1BUSU9OX0NBTk9OSUNBTF9UQUcpOwotUEFTX0lHTk9S
RV9XQVJOSU5HU19FTkQKLX0KLQotaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUp
KSB2b2lkKiBwYXNfbXRlX3N5c3RlbV9oZWFwX3plcm9lZF9tYWxsb2NfemVyb190YWdnZWQobWFs
bG9jX3pvbmVfdCogem9uZSwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpCi17Ci1QQVNf
SUdOT1JFX1dBUk5JTkdTX0JFR0lOKCJkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIpCi0gICAgcmV0
dXJuIG1hbGxvY196b25lX21hbGxvY193aXRoX29wdGlvbnNfbnAoem9uZSwgYWxpZ25tZW50LCBz
aXplLCAobWFsbG9jX29wdGlvbnNfbnBfdCkoTUFMTE9DX05QX09QVElPTl9DQU5PTklDQUxfVEFH
IHwgTUFMTE9DX05QX09QVElPTl9DTEVBUikpOwotUEFTX0lHTk9SRV9XQVJOSU5HU19FTkQKLX0K
LQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotdm9pZCogcGFzX210
ZV9zeXN0ZW1faGVhcF9yZWFsbG9jX3plcm9fdGFnZ2VkKG1hbGxvY196b25lX3QqIHpvbmUsIHZv
aWQqIHB0ciwgc2l6ZV90IHNpemUpOwotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQot
I2RlZmluZSBQQVNfTVRFX0hBTkRMRV9TWVNURU1fSEVBUF9BTExPQ0FUSU9OKHN5c3RlbUhlYXAs
IHNpemUsIGFsaWdubWVudCwgbW9kZSkgZG8geyBcCi0gICAgICAgIGlmICgobW9kZSkgIT0gcGFz
X25vbl9jb21wYWN0X2FsbG9jYXRpb25fbW9kZSkgXAotICAgICAgICAgICAgcmV0dXJuIHBhc19t
dGVfc3lzdGVtX2hlYXBfbWFsbG9jX3plcm9fdGFnZ2VkKHN5c3RlbUhlYXAtPnpvbmUoKSwgKGFs
aWdubWVudCksIChzaXplKSk7IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQotI2RlZmluZSBQQVNf
TVRFX0hBTkRMRV9TWVNURU1fSEVBUF9SRUFMTE9DQVRJT04oc3lzdGVtSGVhcCwgcHRyLCBzaXpl
LCBtb2RlKSBkbyB7IFwKLSAgICAgICAgaWYgKG1vZGUgIT0gcGFzX25vbl9jb21wYWN0X2FsbG9j
YXRpb25fbW9kZSkgXAotICAgICAgICAgICAgcmV0dXJuIHBhc19tdGVfc3lzdGVtX2hlYXBfcmVh
bGxvY196ZXJvX3RhZ2dlZChzeXN0ZW1IZWFwLT56b25lKCksIChwdHIpLCAoc2l6ZSkpOyBcCi0g
ICAgfSB3aGlsZSAoZmFsc2UpCi0KLS8vIFVzZWQgdG8gdGFnIGJ1bXAgYWxsb2NhdGlvbnMgaW4g
dGhlIHByaW1vcmRpYWwgaGVhcC4KLS8vIE5vbi1ob21vZ2VuZW91cyBiZWNhdXNlIHRoaXMgY29t
ZXMgZnJvbSBhIHBhcnRpYWwgdmlldywgbWVhbmluZyBvdGhlcgotLy8gYWxsb2NhdG9ycyBjYW4g
dXNlIHRoZSBzYW1lIHBhZ2UuCi0vLyBUYWtlcyBhIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
KgotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9QUklNT1JESUFMX0JVTVBfQUxMT0NBVElPTihwYWdl
X2NvbmZpZywgcHRyLCBzaXplLCBtb2RlKSBkbyB7IFwKLSAgICAgICAgLyogRXZlbiB0aG91Z2gg
dGhpcyBpcyBhIGJ1bXAgYWxsb2NhdGlvbiwgYmVjYXVzZSB3ZSBoYXZlIHRoZSBwYWdlX2NvbmZp
ZyAqLyBcCi0gICAgICAgIC8qIGhhbmR5LCB3ZSB1c2UgdGhlIHBhZ2UgaW5zdGVhZCBvZiB0aGUg
YWxsb2NhdG9yIGZvciBwdXJwb3NlcyBvZiBjaGVja2luZyAqLyBcCi0gICAgICAgIC8qIGlmIHRo
aXMgYWxsb2NhdGlvbiBzaG91bGQgYmUgdGFnZ2VkLiAqLyBcCi0gICAgICAgIGlmIChQQVNfVVNF
X01URSAmJiBQQVNfTVRFX1NIT1VMRF9UQUdfUEFHRShwYWdlX2NvbmZpZykpIFwKLSAgICAgICAg
ICAgIFBBU19NVEVfVEFHX1JFR0lPTl9GUk9NX09USEVSX0FMTE9DQVRJT04ocHRyLCBzaXplLCBt
b2RlLCBwYXNfbXRlX2hvbW9nZW5lb3VzX2FsbG9jYXRvciwgUEFTX01URV9JU19LTk9XTl9NRURJ
VU1fUEFHRShwYWdlX2NvbmZpZykpOyBcCi0gICAgfSB3aGlsZSAoZmFsc2UpCi0KLS8vIFVzZWQg
dG8gYmFpbCBmcm9tIGFsbG9jYXRpbmcgbWVnYXBhZ2VzIGZyb20gdGhlIG1lZ2FwYWdlIGxhcmdl
IGhlYXAgaWYgUEFTX01URSBpcyBkaXNhYmxlZC4KLS8vIFRoZSBub24tTVRFIGRlZmF1bHQgaXMg
dG8gdXNlIHRoZSBtZWdhcGFnZSBsYXJnZSBoZWFwIGZvciBhbnkgbm9uLWNvbXBhY3QgbWVnYXBh
Z2UKLS8vIGFsbG9jYXRpb24sIHdoaWNoIGlzIHdoYXQgd2Ugd2FudCBpbiBhbiBQQVNfTVRFIHdv
cmxkLCBidXQgc3BsaXR0aW5nIHVwIHRoZSBwYWdlIHNvdXJjZXMgaW5jdXJzCi0vLyBhIG1vZGVz
dCBidXQgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UvbWVtb3J5IG92ZXJoZWFkIHdoZW4gUEFTX01U
RSBpcyBkaXNhYmxlZC4gVGhpcyBpcyBwYXJ0IG9mCi0vLyB0aGUgaW5ldml0YWJsZSBvdmVyaGVh
ZCBvZiBlbmFibGluZyBQQVNfTVRFLCBidXQgd2UgZG9uJ3Qgd2FudCB0byBidXJkZW4gbm9uLVBB
U19NVEUgaGFyZHdhcmUgd2l0aAotLy8gdGhpcyBjb3N0LCBzbyB3ZSBpbmplY3QgdGhpcyBlYXJs
eSByZXR1cm4uCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX01FR0FQQUdFU19BTExPQ0FUSU9OKGhl
YXAsIHNpemUsIGFsaWdubWVudCwgaGVhcF9jb25maWcpIGRvIHsgXAotICAgICAgICBpZiAoIVBB
U19VU0VfTVRFKSB7IFwKLSAgICAgICAgICAgIHJldHVybiBwYXNfbGFyZ2VfaGVhcF90cnlfYWxs
b2NhdGVfYW5kX2ZvcmdldCggXAotICAgICAgICAgICAgICAgICZoZWFwLT5sYXJnZV9oZWFwLCBz
aXplLCBhbGlnbm1lbnQsIHBhc19ub25fY29tcGFjdF9hbGxvY2F0aW9uX21vZGUsIFwKLSAgICAg
ICAgICAgICAgICBoZWFwX2NvbmZpZywgdHJhbnNhY3Rpb24pOyBcCi0gICAgICAgIH0gXAotICAg
IH0gd2hpbGUgKGZhbHNlKQotCi0vLyBVc2VkIHRvIHRhZyB0aGUgdHJhaWxpbmctYnVmZmVyIGJ5
dGVzIG9mIGEgcGFydGlhbCB2aWV3IHdoZW4gaXQgaXMgZmlyc3QKLS8vIGNvbW1pdHRlZCBhbmQg
YmVjb21lcyByZWFkeSBmb3IgdXNlIGFzIGFuIGFsbG9jYXRvci4KLSNkZWZpbmUgUEFTX01URV9I
QU5ETEVfUE9QVUxBVEVfUFJJTU9SRElBTF9QQVJUSUFMX1ZJRVcocGFnZV9jb25maWcsIHBhZ2Us
IHZpZXcsIGJ1bXBfcmVzdWx0LCBtb2RlKSBkbyB7IFwKLSAgICAgICAgaWYgKFBBU19VU0VfTVRF
KSB7IFwKLSAgICAgICAgICAgIGlmIChQQVNfTVRFX1NIT1VMRF9UQUdfUEFHRSgmcGFnZV9jb25m
aWcpKSBcCi0gICAgICAgICAgICAgICAgUEFTX01URV9UQUdfQlVNUF9BTExPQ0FUSU9OX0ZPUl9Q
QVJUSUFMX1ZJRVcocGFnZV9jb25maWcsIHBhZ2UsIHZpZXcsIGJ1bXBfcmVzdWx0LCBtb2RlKTsg
XAotICAgICAgICB9IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQotLy8gVXNlZCB0byByZWRpcmVj
dCBzbWFsbCBtZWdhcGFnZSBhbGxvY2F0aW9ucyB3aGVuIFBBU19NVEUgaXMgbm90IGVuYWJsZWQg
dG8gdGhlIHJlc3BlY3RpdmUgdW50YWdnZWQgbWVnYXBhZ2UgY2FjaGUuCi0jZGVmaW5lIFBBU19N
VEVfSEFORExFX1NNQUxMX1NIQVJFRF9TRUdSRUdBVEVEX1BBR0VfQUxMT0NBVElPTihoZWFwLCBt
ZWdhcGFnZV9jYWNoZSkgZG8geyBcCi0gICAgICAgIGlmICghUEFTX1VTRV9NVEUgfHwgIWhlYXAt
PnBhcmVudF9oZWFwLT5pc19ub25fY29tcGFjdF9oZWFwKSBcCi0gICAgICAgICAgICBtZWdhcGFn
ZV9jYWNoZSA9ICZwYWdlX2NhY2hlcy0+c21hbGxfY29tcGFjdF9vdGhlcl9tZWdhcGFnZV9jYWNo
ZTsgXAotICAgIH0gd2hpbGUgKGZhbHNlKQotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9TTUFMTF9F
WENMVVNJVkVfU0VHUkVHQVRFRF9QQUdFX0FMTE9DQVRJT04oaGVhcCwgbWVnYXBhZ2VfY2FjaGUp
IGRvIHsgXAotICAgICAgICBpZiAoIVBBU19VU0VfTVRFIHx8ICFoZWFwLT5wYXJlbnRfaGVhcC0+
aXNfbm9uX2NvbXBhY3RfaGVhcCkgXAotICAgICAgICAgICAgbWVnYXBhZ2VfY2FjaGUgPSAmcGFn
ZV9jYWNoZXMtPnNtYWxsX2NvbXBhY3RfZXhjbHVzaXZlX3NlZ3JlZ2F0ZWRfbWVnYXBhZ2VfY2Fj
aGU7IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfU01BTExf
QklURklUX1BBR0VfQUxMT0NBVElPTihoZWFwLCBtZWdhcGFnZV9jYWNoZSkgZG8geyBcCi0gICAg
ICAgIGlmICghUEFTX1VTRV9NVEUgfHwgIWhlYXAtPnBhcmVudF9oZWFwLT5pc19ub25fY29tcGFj
dF9oZWFwKSBcCi0gICAgICAgICAgICBtZWdhcGFnZV9jYWNoZSA9ICZwYWdlX2NhY2hlcy0+c21h
bGxfY29tcGFjdF9vdGhlcl9tZWdhcGFnZV9jYWNoZTsgXAotICAgIH0gd2hpbGUgKGZhbHNlKQot
Ci0vLyBVc2VkIHRvIHJlZGlyZWN0IG1lZGl1bSBtZWdhcGFnZSBhbGxvY2F0aW9ucyB3aGVuIG1l
ZGl1bSBvYmplY3QgdGFnZ2luZyBpcyBub3QgZW5hYmxlZCB0byB0aGUgcmVzcGVjdGl2ZSB1bnRh
Z2dlZCBtZWdhcGFnZSBjYWNoZS4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfTUVESVVNX1NFR1JF
R0FURURfUEFHRV9BTExPQ0FUSU9OKGhlYXAsIG1lZ2FwYWdlX2NhY2hlKSBkbyB7IFwKLSAgICAg
ICAgaWYgKCFQQVNfTVRFX01FRElVTV9UQUdHSU5HX0VOQUJMRUQgfHwgIWhlYXAtPnBhcmVudF9o
ZWFwLT5pc19ub25fY29tcGFjdF9oZWFwKSBcCi0gICAgICAgICAgICBtZWdhcGFnZV9jYWNoZSA9
ICZwYWdlX2NhY2hlcy0+bWVkaXVtX2NvbXBhY3RfbWVnYXBhZ2VfY2FjaGU7IFwKLSAgICB9IHdo
aWxlIChmYWxzZSkKLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfTUVESVVNX0JJVEZJVF9QQUdFX0FM
TE9DQVRJT04oaGVhcCwgbWVnYXBhZ2VfY2FjaGUpIGRvIHsgXAotICAgICAgICBpZiAoIVBBU19N
VEVfTUVESVVNX1RBR0dJTkdfRU5BQkxFRCB8fCAhaGVhcC0+cGFyZW50X2hlYXAtPmlzX25vbl9j
b21wYWN0X2hlYXApIFwKLSAgICAgICAgICAgIG1lZ2FwYWdlX2NhY2hlID0gJnBhZ2VfY2FjaGVz
LT5tZWRpdW1fY29tcGFjdF9tZWdhcGFnZV9jYWNoZTsgXAotICAgIH0gd2hpbGUgKGZhbHNlKQot
Ci0vLyBVc2VkIHRvIHRhY2l0bHkgcmVkaXJlY3QgYWxsIG1hcmdlIG1lZ2FwYWdlIGFsbG9jYXRp
b25zIHRvIHRoZSB1bnRhZ2dlZCBtZWdhcGFnZSBjYWNoZS4KLSNkZWZpbmUgUEFTX01URV9IQU5E
TEVfTUFSR0VfQklURklUX1BBR0VfQUxMT0NBVElPTihoZWFwLCBtZWdhcGFnZV9jYWNoZSkgZG8g
eyBcCi0gICAgICAgIG1lZ2FwYWdlX2NhY2hlID0gJnBhZ2VfY2FjaGVzLT5tZWRpdW1fY29tcGFj
dF9tZWdhcGFnZV9jYWNoZTsgXAotICAgIH0gd2hpbGUgKGZhbHNlKQotCi0vLyBVc2VkIHRvIHRh
ZyB0aGUgbWVtb3J5IGxlZnQgYmVoaW5kIGJ5IG9iamVjdHMgZnJlZWQgZnJvbSBiaXRmaXQgaGVh
cHMuCi0jZGVmaW5lIFBBU19NVEVfSEFORExFX0JJVEZJVF9QQUdFX0RFQUxMT0NBVElPTihwYWdl
X2NvbmZpZywgcHRyLCBzaXplKSBkbyB7IFwKLSAgICAgICAgKHZvaWQpcGFnZV9jb25maWc7IFwK
LSAgICAgICAgKHZvaWQpcHRyOyBcCi0gICAgICAgICh2b2lkKXNpemU7IFwKLSAgICAgICAgaWYg
KFBBU19VU0VfTVRFKSB7IFwKLSAgICAgICAgICAgIGlmIChQQVNfTVRFX1NIT1VMRF9UQUdfUEFH
RSgmcGFnZV9jb25maWcpKSBcCi0gICAgICAgICAgICAgICAgUEFTX01URV9UQUdfUkVHSU9OX0ZS
T01fREVBTExPQ0FUSU9OKHBhZ2VfY29uZmlnLCBwdHIsIHNpemUsIHBhc19tdGVfbm9uaG9tb2dl
bmVvdXNfYWxsb2NhdG9yKTsgXAotICAgICAgICB9IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQot
Ly8gVXNlZCB0byB0YWcgdGhlIG1lbW9yeSBsZWZ0IGJlaGluZCBieSBvYmplY3RzIGZyZWVkIGZy
b20gc2VncmVnYXRlZCBoZWFwcy4KLSNkZWZpbmUgUEFTX01URV9IQU5ETEVfU0VHUkVHQVRFRF9Q
QUdFX0RFQUxMT0NBVElPTihwYWdlX2NvbmZpZywgcHRyLCBzaXplKSBkbyB7IFwKLSAgICAgICAg
KHZvaWQpcGFnZV9jb25maWc7IFwKLSAgICAgICAgKHZvaWQpcHRyOyBcCi0gICAgICAgICh2b2lk
KXNpemU7IFwKLSAgICAgICAgaWYgKFBBU19VU0VfTVRFKSB7IFwKLSAgICAgICAgICAgIGlmIChQ
QVNfTVRFX1NIT1VMRF9UQUdfUEFHRSgmcGFnZV9jb25maWcpKSBcCi0gICAgICAgICAgICAgICAg
UEFTX01URV9UQUdfUkVHSU9OX0ZST01fREVBTExPQ0FUSU9OKHBhZ2VfY29uZmlnLCBwdHIsIHNp
emUsIHBhc19tdGVfaG9tb2dlbmVvdXNfYWxsb2NhdG9yKTsgXAotICAgICAgICB9IFwKLSAgICB9
IHdoaWxlIChmYWxzZSkKLQotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9TQ0FWRU5HRVJfVEhSRUFE
X01BSU4oZGF0YSkgZG8geyBcCi0gICAgICAgIHBhc19tdGVfZW5zdXJlX2luaXRpYWxpemVkKCk7
IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLQotI2lmIFBBU19PUyhEQVJXSU4pCi0jZGVmaW5lIFBB
U19NVEVfSEFORExFX1BBR0VfQUxMT0NBVElPTihzaXplLCBpc19zbWFsbCwgdGFnKSBkbyB7IFwK
LSAgICAgICAgcGFzX210ZV9lbnN1cmVfaW5pdGlhbGl6ZWQoKTsgXAotICAgICAgICBpZiAoUEFT
X1VTRV9NVEUgJiYgKGlzX3NtYWxsKSkgeyBcCi0gICAgICAgICAgICBjb25zdCB2bV9pbmhlcml0
X3QgY2hpbGRQcm9jZXNzSW5oZXJpdGFuY2UgPSBWTV9JTkhFUklUX0RFRkFVTFQ7IFwKLSAgICAg
ICAgICAgIGNvbnN0IGJvb2wgY29weSA9IGZhbHNlOyBcCi0gICAgICAgICAgICBjb25zdCB2bV9w
cm90X3QgcHJvdGVjdGlvbnMgPSBWTV9QUk9UX1dSSVRFIHwgVk1fUFJPVF9SRUFEOyBcCi0gICAg
ICAgICAgICBrZXJuX3JldHVybl90IHZtX21hcF9yZXN1bHQgPSBtYWNoX3ZtX21hcChtYWNoX3Rh
c2tfc2VsZigpLCAobWFjaF92bV9hZGRyZXNzX3QqKSZtbWFwX3Jlc3VsdCwgKHNpemUpLCBwYXNf
cGFnZV9tYWxsb2NfYWxpZ25tZW50KCkgLSAxLCBWTV9GTEFHU19BTllXSEVSRSB8IFBBU19WTV9N
VEUgfCAodGFnKSwgTUVNT1JZX09CSkVDVF9OVUxMLCAwLCBjb3B5LCBwcm90ZWN0aW9ucywgcHJv
dGVjdGlvbnMsIGNoaWxkUHJvY2Vzc0luaGVyaXRhbmNlKTsgXAotICAgICAgICAgICAgaWYgKHZt
X21hcF9yZXN1bHQgIT0gS0VSTl9TVUNDRVNTKSB7IFwKLSAgICAgICAgICAgICAgICBlcnJubyA9
IDA7IFwKLSAgICAgICAgICAgICAgICBpZiAoUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoUEFTX01U
RV9GRUFUVVJFX0xPR19QQUdFX0FMTE9DKSkgXAotICAgICAgICAgICAgICAgICAgICBwcmludGYo
IltNVEVdXHRGYWlsZWQgdG8gbWFwICV6dSBieXRlcyB3aXRoIFZNX0ZMQUdTX01URS5cbiIsIChz
aXplX3QpKHNpemUpKTsgXAotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOyBcCi0gICAgICAg
ICAgICB9IFwKLSAgICAgICAgICAgIGlmIChQQVNfTVRFX0ZFQVRVUkVfRU5BQkxFRChQQVNfTVRF
X0ZFQVRVUkVfTE9HX1BBR0VfQUxMT0MpKSBcCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJbTVRF
XVx0TWFwcGVkICV6dSBieXRlcyBmcm9tICVwIHRvICVwIHdpdGggVk1fRkxBR1NfTVRFLlxuIiwg
KHNpemVfdCkoc2l6ZSksICh2b2lkKikobW1hcF9yZXN1bHQpLCAodWludDhfdCopKG1tYXBfcmVz
dWx0KSArIChzaXplKSk7IFwKLSAgICAgICAgICAgIHJldHVybiBtbWFwX3Jlc3VsdDsgXAotICAg
ICAgICB9IFwKLSAgICB9IHdoaWxlIChmYWxzZSkKLSNlbHNlIC8vIFBBU19PUyhEQVJXSU4pIC0+
ICFQQVNfT1MoREFSV0lOKQotI2RlZmluZSBQQVNfTVRFX0hBTkRMRV9QQUdFX0FMTE9DQVRJT04o
YSwgYikgZG8geyBcCi0gICAgICAgICh2b2lkKShhKTsgXAotICAgICAgICAodm9pZCkoYik7IFwK
LSAgICB9IHdoaWxlIChmYWxzZSkKLSNlbmRpZiAvLyAhUEFTX09TKERBUldJTikKLQotI2RlZmlu
ZSBQQVNfTVRFX0hBTkRMRShraW5kLCAuLi4pIFwKLSAgICBQQVNfTVRFX0hBTkRMRV8gIyMga2lu
ZChfX1ZBX0FSR1NfXykKLQotUEFTX0lHTk9SRV9XQVJOSU5HU19FTkQKLQotI2Vsc2UgLy8gIVBB
U19FTkFCTEVfTVRFCi0jZGVmaW5lIFBBU19NVEVfSEFORExFKGtpbmQsIC4uLikgUEFTX1VOVVNF
RF9WKF9fVkFfQVJHU19fKQotI2RlZmluZSBQQVNfU0hPVUxEX01URV9UQUdfQkFTSUNfSEVBUF9Q
QUdFKHNpemVfY2F0ZWdvcnkpIChmYWxzZSkKLSNlbmRpZiAvLyBQQVNfRU5BQkxFX01URQpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX210ZV9jb25maWcu
YyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGVfY29uZmlnLmMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmMjE3MDhkYWYzZC4uMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tdGVfY29uZmlnLmMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX210ZS5oIgotCi0jaW5jbHVkZSAic3Rk
bGliLmgiCi0jaWYgUEFTX09TKERBUldJTikKLSNpbmNsdWRlIDxzeXMvc3lzY3RsLmg+Ci0jZW5k
aWYKLSNpZiAhUEFTX09TKFdJTkRPV1MpCi0jaW5jbHVkZSAidW5pc3RkLmgiCi0jZW5kaWYKLQot
I2luY2x1ZGUgInBhc191dGlscy5oIgotI2luY2x1ZGUgInBhc19oZWFwLmgiCi0jaW5jbHVkZSAi
cGFzX3plcm9fbWVtb3J5LmgiCi0KLSNpZiBQQVNfRU5BQkxFX01URQotCi1leHRlcm4gcGFzX2hl
YXAgYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXA7Ci0KLXN0YXRpYyBpbnQgaXNfZW52X2Zh
bHNlKGNvbnN0IGNoYXIqIHZhcikKLXsKLSAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdldGVudih2
YXIpOwotICAgIGlmICghdmFsdWUpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiAhc3Ry
Y2FzZWNtcCh2YWx1ZSwgImZhbHNlIikgfHwgIXN0cmNhc2VjbXAodmFsdWUsICJubyIpIHx8ICFz
dHJjYXNlY21wKHZhbHVlLCAiMCIpOwotfQotCi1zdGF0aWMgaW50IGlzX2Vudl90cnVlKGNvbnN0
IGNoYXIqIHZhcikKLXsKLSAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdldGVudih2YXIpOwotICAg
IGlmICghdmFsdWUpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiAhc3RyY2FzZWNtcCh2
YWx1ZSwgInRydWUiKSB8fCAhc3RyY2FzZWNtcCh2YWx1ZSwgInllcyIpIHx8ICFzdHJjYXNlY21w
KHZhbHVlLCAiMSIpOwotfQotCi1zdGF0aWMgYm9vbCBnZXRfdmFsdWVfaWZfYXZhaWxhYmxlKHVu
c2lnbmVkKiB2YWx1ZVB0ciwgY29uc3QgY2hhciogdmFyKQotewotICAgIGNvbnN0IGNoYXIqIHZh
clN0ciA9IGdldGVudih2YXIpOwotICAgIGlmICh2YXJTdHIpIHsKLSAgICAgICAgdW5zaWduZWQg
dmFsdWUgPSAwOwotICAgICAgICBpZiAoc3NjYW5mKHZhclN0ciwgIiV1IiwgJnZhbHVlKSA9PSAx
KSB7Ci0gICAgICAgICAgICAqdmFsdWVQdHIgPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOyAvLyBGb3VuZC4KLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7IC8vIE5v
dCBmb3VuZC4KLX0KLQotc3RhdGljIHZvaWQgcGFzX210ZV9kb19pbml0aWFsaXphdGlvbih2b2lk
KiBjdHgpCi17Ci0gICAgKHZvaWQpY3R4OwotICAgIHVpbnQ4X3QqIGVuYWJsZWRfYnl0ZSA9ICZQ
QVNfTVRFX0NPTkZJR19CWVRFKFBBU19NVEVfRU5BQkxFX0ZMQUcpOwotICAgIHVpbnQ4X3QqIG1v
ZGVfYnl0ZSA9ICZQQVNfTVRFX0NPTkZJR19CWVRFKFBBU19NVEVfTU9ERV9CSVRTKTsKLSAgICB1
aW50OF90KiBtZWRpdW1fYnl0ZSA9ICZQQVNfTVRFX0NPTkZJR19CWVRFKFBBU19NVEVfTUVESVVN
X1RBR0dJTkdfRU5BQkxFX0ZMQUcpOwotICAgIHVpbnQ4X3QqIGxvY2tkb3duX21vZGVfYnl0ZSA9
ICZQQVNfTVRFX0NPTkZJR19CWVRFKFBBU19NVEVfTE9DS0RPV05fTU9ERV9GTEFHKTsKLSAgICB1
aW50OF90KiBpc193Y3BfYnl0ZSA9ICZQQVNfTVRFX0NPTkZJR19CWVRFKFBBU19NVEVfSVNfV0NQ
X0ZMQUcpOwotCi0gICAgc3RydWN0IHByb2NfYnNkaW5mbyBpbmZvOwotICAgIGludCByYyA9IHBy
b2NfcGlkaW5mbyhnZXRwaWQoKSwgUFJPQ19QSURUQlNESU5GTywgMCwgJmluZm8sIHNpemVvZihp
bmZvKSk7Ci0gICAgaWYgKHJjID09IHNpemVvZihpbmZvKSAmJiBpbmZvLnBiaV9mbGFncyAmIFBB
U19NVEVfUFJPQ19GTEFHX1NFQ19FTkFCTEVEKQotICAgICAgICAqZW5hYmxlZF9ieXRlID0gMTsK
LQotICAgIGlmIChpc19lbnZfdHJ1ZSgiSlNDX3VzZUFsbG9jYXRpb25Qcm9maWxpbmciKSB8fCBp
c19lbnZfdHJ1ZSgiTVRFX292ZXJyaWRlRW5hYmxlbWVudEZvckphdmFTY3JpcHRDb3JlIikpIHsK
LSAgICAgICAgUEFTX0FTU0VSVCghKGlzX2Vudl9mYWxzZSgiSlNDX3VzZUFsbG9jYXRpb25Qcm9m
aWxpbmciKSB8fCBpc19lbnZfZmFsc2UoIk1URV9vdmVycmlkZUVuYWJsZW1lbnRGb3JKYXZhU2Ny
aXB0Q29yZSIpKSk7Ci0gICAgICAgICplbmFibGVkX2J5dGUgPSAxOwotICAgIH0KLSAgICBpZiAo
aXNfZW52X2ZhbHNlKCJKU0NfdXNlQWxsb2NhdGlvblByb2ZpbGluZyIpIHx8IGlzX2Vudl9mYWxz
ZSgiTVRFX292ZXJyaWRlRW5hYmxlbWVudEZvckphdmFTY3JpcHRDb3JlIikpCi0gICAgICAgICpl
bmFibGVkX2J5dGUgPSAwOwotCi0gICAgaWYgKCEqZW5hYmxlZF9ieXRlKQotICAgICAgICByZXR1
cm47Ci0KLSAgICB1bnNpZ25lZCBtb2RlID0gMDsKLSAgICBpZiAoZ2V0X3ZhbHVlX2lmX2F2YWls
YWJsZSgmbW9kZSwgIkpTQ19hbGxvY2F0aW9uUHJvZmlsaW5nTW9kZSIpKQotICAgICAgICAqbW9k
ZV9ieXRlID0gKHVpbnQ4X3QpKG1vZGUgJiAweEZGKTsKLQotICAgIGNvbnN0IGNoYXIqIG5hbWUg
PSBpbmZvLnBiaV9uYW1lWzBdID8gaW5mby5wYmlfbmFtZSA6IGluZm8ucGJpX2NvbW07Ci0gICAg
Ym9vbCBpc1dlYkNvbnRlbnRQcm9jZXNzID0gIXN0cm5jbXAobmFtZSwgImNvbS5hcHBsZS5XZWJL
aXQuV2ViQ29udGVudCIsIDI3KSB8fCAhc3RybmNtcChuYW1lLCAianNjIiwgMyk7Ci0gICAgKmlz
X3djcF9ieXRlID0gaXNXZWJDb250ZW50UHJvY2VzczsKLQotICAgIHVuc2lnbmVkIHRhZ2dpbmdS
YXRlID0gMTAwOwotICAgIGlmIChpc1dlYkNvbnRlbnRQcm9jZXNzKSB7Ci0gICAgICAgIGNvbnN0
IHVpbnQ4X3QgZGVmYXVsdFdlYkNvbnRlbnRUYWdnaW5nUmF0ZSA9IDMzOwotICAgICAgICB0YWdn
aW5nUmF0ZSA9IGRlZmF1bHRXZWJDb250ZW50VGFnZ2luZ1JhdGU7Ci0KLSAgICAgICAgLy8gRGVi
dWcgb3B0aW9uIHRvIG92ZXJyaWRlIHRoZSBXQ1AgdGFnZ2luZyByYXRlLgotICAgICAgICBnZXRf
dmFsdWVfaWZfYXZhaWxhYmxlKCZ0YWdnaW5nUmF0ZSwgIk1URV90YWdnaW5nUmF0ZUZvcldlYkNv
bnRlbnQiKTsKLSAgICB9Ci0KLSAgICAvLyBEZWJ1ZyBvcHRpb24gdG8gdW5jb25kaXRpb25hbGx5
IG92ZXJyaWRlIHRoZSB0YWdnaW5nIHJhdGUuCi0gICAgZ2V0X3ZhbHVlX2lmX2F2YWlsYWJsZSgm
dGFnZ2luZ1JhdGUsICJNVEVfdGFnZ2luZ1JhdGUiKTsKLQotICAgIFBBU19NVEVfQ09ORklHX0JZ
VEUoUEFTX01URV9UQUdHSU5HX1JBVEUpID0gdGFnZ2luZ1JhdGU7Ci0KLSAgICBpZiAoaXNXZWJD
b250ZW50UHJvY2VzcykgewotICAgICAgICAqbWVkaXVtX2J5dGUgPSAwOwotI2lmICFQQVNfVVNF
X01URV9JTl9XRUJDT05URU5UCi0gICAgICAgIC8vIERpc2FibGUgdGFnZ2luZyBpbiBsaWJwYXMg
YnkgZGVmYXVsdCBpbiBXZWJDb250ZW50IHByb2Nlc3MKLSAgICAgICAgKmVuYWJsZWRfYnl0ZSA9
IDA7Ci0jZW5kaWYKLSAgICAgICAgdWludDY0X3QgbGRtU3RhdGUgPSAwOwotICAgICAgICBzaXpl
X3Qgc3lzQ3RsTGVuID0gc2l6ZW9mKGxkbVN0YXRlKTsKLSAgICAgICAgaWYgKHN5c2N0bGJ5bmFt
ZSgic2VjdXJpdHkubWFjLmxvY2tkb3duX21vZGVfc3RhdGUiLCAmbGRtU3RhdGUsICZzeXNDdGxM
ZW4sIE5VTEwsIDApID49IDAgJiYgbGRtU3RhdGUgPT0gMSkgewotICAgICAgICAgICAgKmVuYWJs
ZWRfYnl0ZSA9IDE7Ci0gICAgICAgICAgICAqbWVkaXVtX2J5dGUgPSAxOwotICAgICAgICAgICAg
KmxvY2tkb3duX21vZGVfYnl0ZSA9IDE7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAq
bG9ja2Rvd25fbW9kZV9ieXRlID0gMDsKLQotICAgICAgICAgICAgLy8gRklYTUU6IHJkYXI6Ly8x
NTk5NzQxOTUKLSAgICAgICAgICAgIGJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLmlzX25v
bl9jb21wYWN0X2hlYXAgPSBmYWxzZTsKLSAgICAgICAgfQotCi0jaWZuZGVmIE5ERUJVRwotICAg
ICAgICBpZiAoaXNfZW52X3RydWUoIk1URV9kaXNhYmxlRm9yV2ViQ29udGVudCIpKSB7Ci0gICAg
ICAgICAgICBQQVNfQVNTRVJUKCFpc19lbnZfdHJ1ZSgiTVRFX292ZXJyaWRlRW5hYmxlbWVudEZv
cldlYkNvbnRlbnQiKSk7Ci0gICAgICAgICAgICAqZW5hYmxlZF9ieXRlID0gMDsKLSAgICAgICAg
ICAgICptZWRpdW1fYnl0ZSA9IDA7Ci0gICAgICAgIH0KLSNlbmRpZgotICAgICAgICBpZiAoaXNf
ZW52X3RydWUoIk1URV9vdmVycmlkZUVuYWJsZW1lbnRGb3JXZWJDb250ZW50IikpIHsKLSAgICAg
ICAgICAgICplbmFibGVkX2J5dGUgPSAxOwotICAgICAgICAgICAgKm1lZGl1bV9ieXRlID0gMTsK
LSAgICAgICAgfSBlbHNlIGlmIChpc19lbnZfZmFsc2UoIk1URV9vdmVycmlkZUVuYWJsZW1lbnRG
b3JXZWJDb250ZW50IikpIHsKLSAgICAgICAgICAgICplbmFibGVkX2J5dGUgPSAwOwotICAgICAg
ICAgICAgKm1lZGl1bV9ieXRlID0gMDsKLSAgICAgICAgfQotICAgIH0gZWxzZQotICAgICAgICAq
bWVkaXVtX2J5dGUgPSAxOyAvLyBUYWcgbGlicGFzIG1lZGl1bSBvYmplY3RzIGluIHByaXZpbGVn
ZWQgcHJvY2Vzc2VzLgotfQotCi12b2lkIHBhc19tdGVfZW5zdXJlX2luaXRpYWxpemVkKHZvaWQp
Ci17Ci0gICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBwcmVkOwotICAgIGRpc3BhdGNoX29uY2Vf
ZigmcHJlZCwgTlVMTCwgcGFzX210ZV9kb19pbml0aWFsaXphdGlvbik7Ci19Ci0KLSNlbmRpZiAv
LyBQQVNfRU5BQkxFX01URQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX210ZV9jb25maWcuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19tdGVfY29uZmlnLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3YWQ2NmY1
NTIxNS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19tdGVfY29uZmlnLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoYykgMjAyNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2luY2x1ZGUgInBhc19wbGF0Zm9ybS5oIgotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLSNpZiBk
ZWZpbmVkKFBBU19CTUFMTE9DKQotI2luY2x1ZGUgIkJQbGF0Zm9ybS5oIgotI2VuZGlmCi0KLSNp
ZiBkZWZpbmVkKF9faGFzX2luY2x1ZGUpCi0jaWYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRp
b25zL3Bhc19tdGVfYWRkaXRpb25zLmg+KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9wYXNf
bXRlX2FkZGl0aW9ucy5oPgotI2VuZGlmIC8vIF9faGFzX2luY2x1ZGUoPFdlYktpdEFkZGl0aW9u
cy9wYXNfbXRlX2FkZGl0aW9ucy5oPikKLSNpZiBfX2hhc19pbmNsdWRlKDxsaWJwcm9jLmg+KQot
I2luY2x1ZGUgPGxpYnByb2MuaD4KLSNlbmRpZiAvLyBfX2hhc19pbmNsdWRlKDxsaWJwcm9jLmg+
KQotI2VuZGlmIC8vIGRlZmluZWQoX19oYXNfaW5jbHVkZSkKLQotI2luY2x1ZGUgPHN0ZGRlZi5o
PgotI2luY2x1ZGUgPHN0ZGludC5oPgotCi0jaWZkZWYgX19BUFBMRV9fCi0jaW5jbHVkZSA8QXZh
aWxhYmlsaXR5Lmg+Ci0jaW5jbHVkZSA8QXZhaWxhYmlsaXR5TWFjcm9zLmg+Ci0jaW5jbHVkZSA8
VGFyZ2V0Q29uZGl0aW9uYWxzLmg+Ci0jZW5kaWYKLSNpZiBQQVNfT1MoREFSV0lOKQotI2luY2x1
ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+Ci0jaWYgUEFTX1VTRV9BUFBMRV9JTlRFUk5BTF9TREsK
LSNpbmNsdWRlIDxtYWNoL21hY2hfaW5pdC5oPgotI2luY2x1ZGUgPG1hY2gvbWFjaF92bS5oPgot
I2luY2x1ZGUgPG1hY2gvdm1fcGFnZV9zaXplLmg+Ci0jaW5jbHVkZSA8bWFjaC92bV9zdGF0aXN0
aWNzLmg+Ci0jZW5kaWYgLy8gUEFTX1VTRV9BUFBMRV9JTlRFUk5BTF9TREsKLSNlbmRpZiAvLyBQ
QVNfT1MoREFSV0lOKQotCi0jaWYgUEFTX0VOQUJMRV9NVEUKLQotdHlwZWRlZiB1aW50NjRfdCBT
bG90OwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi1leHRlcm4g
U2xvdCBnX2NvbmZpZ1tdOwotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2RlZmlu
ZSBQQVNfTVRFX0VOQUJMRV9GTEFHIDAKLSNkZWZpbmUgUEFTX01URV9NT0RFX0JJVFMgMQotI2Rl
ZmluZSBQQVNfTVRFX1RBR0dJTkdfUkFURSAyCi0jZGVmaW5lIFBBU19NVEVfTUVESVVNX1RBR0dJ
TkdfRU5BQkxFX0ZMQUcgMwotI2RlZmluZSBQQVNfTVRFX0xPQ0tET1dOX01PREVfRkxBRyA0Ci0j
ZGVmaW5lIFBBU19NVEVfSVNfV0NQX0ZMQUcgNQotCi0vLyBNdXN0IGJlIGtlcHQgaW4gc3luYyB3
aXRoIHRoZSBvZmZzZXRzIGluIFdURkNvbmZpZy5oOlJlc2VydmVkQ29uZmlnQnl0ZU9mZnNldAot
I2RlZmluZSBQQVNfTVRFX0NPTkZJR19SRVNFUlZFRF9CWVRFX09GRlNFVCAyCi0jZGVmaW5lIFBB
U19NVEVfQ09ORklHX0JZVEUoYnl0ZSkgKCgodWludDhfdCopKGdfY29uZmlnICsgUEFTX01URV9D
T05GSUdfUkVTRVJWRURfQllURV9PRkZTRVQpKVtieXRlXSkKLQotI2RlZmluZSBQQVNfVVNFX01U
RSAoUEFTX01URV9DT05GSUdfQllURShQQVNfTVRFX0VOQUJMRV9GTEFHKSkKLSNpZm5kZWYgUEFT
X1VTRV9NVEVfSU5fV0VCQ09OVEVOVAotI2RlZmluZSBQQVNfVVNFX01URV9JTl9XRUJDT05URU5U
IDEKLSNlbmRpZgotCi0jZGVmaW5lIFBBU19NVEVfQ09ORklHX0ZJRUxEKGJ5dGUsIGJpdCkgKCgo
UEFTX01URV9DT05GSUdfQllURShieXRlKSkgJiAoMVVMIDw8IChiaXQpKSkgPyAxIDogMCkKLSNk
ZWZpbmUgUEFTX01URV9NRURJVU1fVEFHR0lOR19FTkFCTEVEIChQQVNfTVRFX0NPTkZJR19CWVRF
KFBBU19NVEVfTUVESVVNX1RBR0dJTkdfRU5BQkxFX0ZMQUcpKQotI2RlZmluZSBQQVNfTVRFX0lT
X0xPQ0tET1dOX01PREUgKFBBU19NVEVfQ09ORklHX0JZVEUoUEFTX01URV9MT0NLRE9XTl9NT0RF
X0ZMQUcpKQotI2RlZmluZSBQQVNfTVRFX0lTX0lOX1dDUCAoUEFTX01URV9DT05GSUdfQllURShQ
QVNfTVRFX0lTX1dDUF9GTEFHKSkKLQotI2RlZmluZSBQQVNfVk1fTVRFIDB4MjAwMAotI2RlZmlu
ZSBQQVNfTVRFX1BST0NfRkxBR19TRUNfRU5BQkxFRCAweDQwMDAwMDAKLQotI2RlZmluZSBQQVNf
TVRFX1NIT1VMRF9TVE9SRV9UQUcgMQotCi0jaWZuZGVmIFBBU19VU0VfQ09NUEFDVF9PTkxZX0hF
QVAKLS8qCi0gKiBUaGUgcmVhc29uIHdlIG1ha2UgVFpvbmUgY29tcGFjdC1vbmx5IGhlYXBzIHJl
bGlhbnQgb24gcnVudGltZSBQQVNfTVRFCi0gKiBlbmFibGVtZW50LCBhbmQgbm90IHRoZSBnZW5l
cmFsIGNvbXBhY3Qtb25seSBoZWFwLCBpcyB0aGF0IGx1bXBpbmcgYWxsCi0gKiBub24tY29tcGFj
dCBvYmplY3RzIGludG8gdGhlIHNhbWUgaGVhcCBpcyBhIHNlY3VyaXR5IHJlZ3Jlc3Npb24gZm9y
IFRab25lLAotICogYnV0IG5vdCBhIHNlY3VyaXR5IHJlZ3Jlc3Npb24gZm9yIHRoZSBnZW5lcmFs
IGJtYWxsb2MgaGVhcCB3aGVyZSB3ZSBhbHJlYWR5Ci0gKiBleHBlY3QgYWxsIGFsbG9jYXRpb25z
IHRvIGNvbWUgb3V0IG9mIHRoZSBzYW1lIHNpbmd1bGFyIGludHJpbnNpYyBoZWFwLgotICogQnkg
YXZvaWRpbmcgY2hlY2tpbmcgUEFTX1VTRV9NVEUsIHdlIHNhdmUgYW4gYWRkaXRpb25hbCBjaGVj
ayBpbiB0aGUgbWFsbG9jCi0gKiBmYXN0IHBhdGggZm9yIG9yZGluYXJ5IGFsbG9jYXRpb25zLCB3
aGlsZSB0aGUgY29ycmVzcG9uZGluZyBjaGVjayBmb3IgVFpvbmUKLSAqIGhlYXBzIG9ubHkgb2Nj
dXJzIGR1cmluZyBoZWFwIHNlbGVjdGlvbiAtIGl0J3Mgbm90IGFzIHNpZ25pZmljYW50LgotICov
Ci0jZGVmaW5lIFBBU19VU0VfQ09NUEFDVF9PTkxZX0hFQVAgMQotI2RlZmluZSBQQVNfVVNFX0NP
TVBBQ1RfT05MWV9UWk9ORV9IRUFQIFBBU19VU0VfTVRFCi0jZW5kaWYKLQotI2RlZmluZSBQQVNf
TVRFX0ZFQVRVUkVfUkVUQUdfT05fRlJFRSAwCi0jZGVmaW5lIFBBU19NVEVfRkVBVFVSRV9MT0df
T05fVEFHIDEKLSNkZWZpbmUgUEFTX01URV9GRUFUVVJFX0xPR19PTl9QVVJJRlkgMgotI2RlZmlu
ZSBQQVNfTVRFX0ZFQVRVUkVfTE9HX1BBR0VfQUxMT0MgMwotI2RlZmluZSBQQVNfTVRFX0ZFQVRV
UkVfWkVST19UQUdfQUxMIDQKLSNkZWZpbmUgUEFTX01URV9GRUFUVVJFX0FESkFDRU5UX1RBR19F
WENMVVNJT04gNQotI2RlZmluZSBQQVNfTVRFX0ZFQVRVUkVfQVNTRVJUX0FESkFDRU5UX1RBR1Nf
QVJFX0RJU0pPSU5UIDYKLQotI2RlZmluZSBQQVNfTVRFX0ZFQVRVUkVfRk9SQ0VEKGZlYXR1cmUp
ICgwKQotI2RlZmluZSBQQVNfTVRFX0ZFQVRVUkVfUFJJVklMRUdFRF9GT1JDRUQoZmVhdHVyZSkg
KGZlYXR1cmUgPT0gUEFTX01URV9GRUFUVVJFX0FESkFDRU5UX1RBR19FWENMVVNJT04pCi0jZGVm
aW5lIFBBU19NVEVfRkVBVFVSRV9XQ1BfRk9SQ0VEKGZlYXR1cmUpICgwKQotI2RlZmluZSBQQVNf
TVRFX0ZFQVRVUkVfREVCVUdfRk9SQ0VEKGZlYXR1cmUpIChmZWF0dXJlID09IFBBU19NVEVfRkVB
VFVSRV9BU1NFUlRfQURKQUNFTlRfVEFHU19BUkVfRElTSk9JTlQpCi0KLSNkZWZpbmUgUEFTX01U
RV9GRUFUVVJFX0ZPUkNFRF9JTl9SRUxFQVNFX0JVSUxEKGZlYXR1cmUpIFwKLSAgICAoUEFTX01U
RV9GRUFUVVJFX0ZPUkNFRChmZWF0dXJlKSB8fCBcCi0gICAgIChQQVNfTVRFX0ZFQVRVUkVfUFJJ
VklMRUdFRF9GT1JDRUQoZmVhdHVyZSkgJiYgIVBBU19NVEVfSVNfSU5fV0NQKSB8fCBcCi0gICAg
IChQQVNfTVRFX0ZFQVRVUkVfV0NQX0ZPUkNFRChmZWF0dXJlKSAmJiBQQVNfTVRFX0lTX0lOX1dD
UCkpCi0KLSNkZWZpbmUgUEFTX01URV9GRUFUVVJFX0ZPUkNFRF9JTl9ERUJVR19CVUlMRChmZWF0
dXJlKSBcCi0gICAgKFBBU19NVEVfRkVBVFVSRV9GT1JDRURfSU5fUkVMRUFTRV9CVUlMRChmZWF0
dXJlKSB8fCBcCi0gICAgIFBBU19NVEVfRkVBVFVSRV9ERUJVR19GT1JDRUQoZmVhdHVyZSkgfHwg
XAotICAgICBQQVNfTVRFX0NPTkZJR19GSUVMRChQQVNfTVRFX01PREVfQklUUywgZmVhdHVyZSkp
Ci0KLSNpZm5kZWYgTkRFQlVHCi0jZGVmaW5lIFBBU19NVEVfRkVBVFVSRV9FTkFCTEVEKGZlYXR1
cmUpIChQQVNfVVNFX01URSAmJiBQQVNfTVRFX0ZFQVRVUkVfRk9SQ0VEX0lOX0RFQlVHX0JVSUxE
KGZlYXR1cmUpKQotI2Vsc2UKLSNkZWZpbmUgUEFTX01URV9GRUFUVVJFX0VOQUJMRUQoZmVhdHVy
ZSkgKFBBU19VU0VfTVRFICYmIFBBU19NVEVfRkVBVFVSRV9GT1JDRURfSU5fUkVMRUFTRV9CVUlM
RChmZWF0dXJlKSkKLSNlbmRpZgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewot
I2VuZGlmCi12b2lkIHBhc19tdGVfZW5zdXJlX2luaXRpYWxpemVkKHZvaWQpOwotI2lmZGVmIF9f
Y3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2Vsc2UgLy8gIVBBU19FTkFCTEVfTVRFCi0jZGVmaW5l
IFBBU19VU0VfTVRFICgwKQotI2RlZmluZSBQQVNfVVNFX01URV9JTl9XRUJDT05URU5UICgwKQot
I2RlZmluZSBQQVNfTVRFX0ZFQVRVUkVfRU5BQkxFRChmZWF0dXJlKSAoMCkKLSNlbmRpZiAvLyBQ
QVNfRU5BQkxFX01URQotCi0jaWYgZGVmaW5lZChQQVNfQk1BTExPQykgJiYgQkVOQUJMRShMSUJQ
QVMpCi0jaWYgQkVOQUJMRV9NVEUgIT0gUEFTX0VOQUJMRV9NVEUKLSNlcnJvciAiY2Fubm90IGVu
YWJsZSBNVEUgaW4gbGlicGFzIHdpdGhvdXQgZW5hYmxpbmcgaXQgaW4gYm1hbGxvYywgb3Igdmlj
ZSB2ZXJzYSIKLSNlbmRpZgotCi0jZGVmaW5lIEJNQUxMT0NfVk1fTVRFIFBBU19WTV9NVEUKLSNk
ZWZpbmUgQk1BTExPQ19VU0VfTVRFIFBBU19VU0VfTVRFCi0KLSNlbmRpZiAvLyBkZWZpbmVkKFBB
U19CTUFMTE9DKSAmJiBCRU5BQkxFKExJQlBBUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfYW5kX2tpbmQuaCBiL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfYW5kX2tpbmQuaAppbmRleCBjMmZi
NDBkYTQwZTcuLjdlOTdlZDkzZDYzOSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9hbmRfa2luZC5oCisrKyBiL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfYW5kX2tpbmQuaApAQCAtMjcsNyArMjcs
NiBAQAogI2RlZmluZSBQQVNfUEFHRV9CQVNFX0FORF9LSU5EX0gKIAogI2luY2x1ZGUgInBhc19w
YWdlX2Jhc2UuaCIKLSNpbmNsdWRlICJwYXNfemVyb19tZW1vcnkuaCIKIAogUEFTX0JFR0lOX0VY
VEVSTl9DOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfcGFnZV9iYXNlX2NvbmZpZy5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3BhZ2VfYmFzZV9jb25maWcuaAppbmRleCA0NDFjMDJiMjY1ZDEuLjA4NGUzMDBhOTk4ZCAx
MDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFz
ZV9jb25maWcuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFn
ZV9iYXNlX2NvbmZpZy5oCkBAIC02OCw5ICs2OCw2IEBAIHN0cnVjdCBwYXNfcGFnZV9iYXNlX2Nv
bmZpZyB7CiAgICAgLyogd2hldGhlciBwcm9maWxpbmcgbWFjcm9zIHNob3VsZCBpZ25vcmUgcGFn
ZXMgb2YgdGhpcyBraW5kICovCiAgICAgYm9vbCBhbGxvd19wcm9maWxpbmc7CiAKLSAgICAvKiBX
aGV0aGVyIHRoaXMgcGFnZSBjYW4gYmUgYWxsb2NhdGVkIHdpdGggYmFja2luZyBNVEUgdGFnIG1l
bW9yeS4gKi8KLSAgICBib29sIGFsbG93X210ZV90YWdnaW5nOwotCiAgICAgLyogVGhpcyBwb2lu
dHMgdG8gdGhlIG93bmluZyBoZWFwIGNvbmZpZy4gQ3VycmVudGx5IHRoZXJlIGlzIGFsd2F5cyBh
biBvd25pbmcgaGVhcCBjb25maWcuICovCiAgICAgY29uc3QgcGFzX2hlYXBfY29uZmlnKiBoZWFw
X2NvbmZpZ19wdHI7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oIGIvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaAppbmRleCBiY2U4N2Rk
ZjBiYzMuLjBkNjQ0NThiZDBkNCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaAorKysgYi9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oCkBAIC0yOCw3
ICsyOCw2IEBACiAKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2ludGVy
bmFsX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19tdGUuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9i
YXNlX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5o
IgogI2luY2x1ZGUgInBhc19wYWdlX2hlYWRlcl90YWJsZS5oIgpAQCAtNzAsMjEgKzY5LDE2IEBA
IHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgY2FzZSBwYXNfcGFnZV9oZWFkZXJfYXRfaGVhZF9v
Zl9wYWdlOiB7IFwKICAgICAgICAgICAgIHVpbnRwdHJfdCBwdHIgPSAodWludHB0cl90KWJvdW5k
YXJ5OyBcCiAgICAgICAgICAgICBQQVNfUFJPRklMRShQQUdFX0JBU0VfRlJPTV9CT1VOREFSWSwg
cHRyKTsgXAotICAgICAgICAgICAgUEFTX01URV9IQU5ETEUoUEFHRV9CQVNFX0ZST01fQk9VTkRB
UlksIHB0cik7IFwKICAgICAgICAgICAgIHJldHVybiAocGFzX3BhZ2VfYmFzZSopcHRyOyBcCiAg
ICAgICAgIH0gXAogICAgICAgICBcCiAgICAgICAgIGNhc2UgcGFzX3BhZ2VfaGVhZGVyX2luX3Rh
YmxlOiB7IFwKICAgICAgICAgICAgIHVpbnRwdHJfdCBwYWdlX2Jhc2UgPSAodWludHB0cl90KWJv
dW5kYXJ5OyBcCiAgICAgICAgICAgICBQQVNfUFJPRklMRShQQUdFX0JBU0VfRlJPTV9CT1VOREFS
WSwgcGFnZV9iYXNlKTsgXAotICAgICAgICAgICAgUEFTX01URV9IQU5ETEUoUEFHRV9CQVNFX0ZS
T01fQk9VTkRBUlksIHBhZ2VfYmFzZSk7IFwKICAgICAgICAgICAgIHBhZ2VfYmFzZSA9ICh1aW50
cHRyX3QpcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2dldF9mb3JfYm91bmRhcnkoIFwKICAgICAgICAg
ICAgICAgICBhcmd1bWVudHMuaGVhZGVyX3RhYmxlLCBjb25maWcucGFnZV9zaXplLCAocGFzX3Bh
Z2VfYmFzZSopcGFnZV9iYXNlKTsgXAogICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBh
Z2VfYmFzZSk7IFwKICAgICAgICAgICAgIFBBU19QUk9GSUxFKFBBR0VfQkFTRV9GUk9NX1RBQkxF
LCBwYWdlX2Jhc2UpOyBcCi0gICAgICAgICAgICAvKiBEb2VzIG5vdCBuZWVkIHRvIGJlIE1URS10
YWdnZWQgc2luY2UgcGFnZS1iYXNlcyBzaG91bGQgYWx3YXlzICovIFwKLSAgICAgICAgICAgIC8q
IGJlIHplcm8tdGFnZ2VkLCBhbmQgdGhlIHBhZ2UgaGVhZGVyIHRhYmxlIHNob3VsZCBhbHJlYWR5
IGhhdmUgKi8gXAotICAgICAgICAgICAgLyogY2xlYXJlZCB0aGUgcG9pbnRlciBpdCBnYXZlIHVz
LiAqLyBcCiAgICAgICAgICAgICByZXR1cm4gKHBhc19wYWdlX2Jhc2UqKXBhZ2VfYmFzZTsgXAog
ICAgICAgICB9IH0gXAogICAgICAgICBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuYyBiL1NvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2hlYWRlcl90YWJsZS5jCmluZGV4IGU3ZGVlOTQ2NDcy
Mi4uMTFhNjg4MDQ4OGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuYworKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuYwpAQCAtNDMsNyArNDMsNiBAQCBwYXNf
cGFnZV9iYXNlKiBwYXNfcGFnZV9oZWFkZXJfdGFibGVfYWRkKHBhc19wYWdlX2hlYWRlcl90YWJs
ZSogdGFibGUsCiAKICAgICB1aW50cHRyX3QgYm91bmRhcnlfaW50ID0gKHVpbnRwdHJfdClib3Vu
ZGFyeTsKICAgICBQQVNfUFJPRklMRShQQUdFX0hFQURFUl9UQUJMRV9BREQsIGJvdW5kYXJ5X2lu
dCk7Ci0gICAgUEFTX01URV9IQU5ETEUoUEFHRV9IRUFERVJfVEFCTEVfQURELCBib3VuZGFyeV9p
bnQpOwogICAgIGJvdW5kYXJ5ID0gKHZvaWQqKWJvdW5kYXJ5X2ludDsKIAogICAgIGlmICh2ZXJi
b3NlKQpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Bh
Z2VfaGVhZGVyX3RhYmxlLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
cGFnZV9oZWFkZXJfdGFibGUuaAppbmRleCAxMGJmOWMzODkyMmQuLjBjOGM5MjMwZWRlNSAxMDA2
NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfaGVhZGVy
X3RhYmxlLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vf
aGVhZGVyX3RhYmxlLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgUEFTX1BBR0VfSEVBREVS
X1RBQkxFX0gKIAogI2luY2x1ZGUgInBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJs
ZS5oIgotI2luY2x1ZGUgInBhc19tdGUuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC05
Nyw3ICs5Niw2IEBAIHBhc19wYWdlX2hlYWRlcl90YWJsZV9nZXRfZm9yX2JvdW5kYXJ5KHBhc19w
YWdlX2hlYWRlcl90YWJsZSogdGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgID09IGJlZ2lu
KTsKIAogICAgIFBBU19QUk9GSUxFKFBBR0VfSEVBREVSX1RBQkxFX0dFVCwgYmVnaW4pOwotICAg
IFBBU19NVEVfSEFORExFKFBBR0VfSEVBREVSX1RBQkxFX0dFVCwgYmVnaW4pOwogICAgIGJvdW5k
YXJ5ID0gKHZvaWQqKWJlZ2luOwogICAgIHJldHVybiAocGFzX3BhZ2VfYmFzZSopcGFzX2xvY2tf
ZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlX2ZpbmQoCiAgICAgICAgICZ0YWJsZS0+aGFzaHRh
YmxlLCBwYXNfcGFnZV9oZWFkZXJfdGFibGVfaGFzaCwgKHZvaWQqKXBhZ2Vfc2l6ZSwgYm91bmRh
cnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Bh
Z2VfbWFsbG9jLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9t
YWxsb2MuYwppbmRleCBjNDMzNjAzYTMzOGUuLjFlOTMyZmNkOGZhMSAxMDA2NDQKLS0tIGEvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmMKKysrIGIvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmMKQEAgLTMxLDYg
KzMxLDEwIEBACiAKICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNs
dWRlICJwYXNfY29uZmlnLmgiCisjaW5jbHVkZSAicGFzX2ludGVybmFsX2NvbmZpZy5oIgorI2lu
Y2x1ZGUgInBhc19sb2cuaCIKKyNpbmNsdWRlICJwYXNfdXRpbHMuaCIKICNpbmNsdWRlIDxzdGRp
by5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2lmICFQQVNfT1MoV0lORE9XUykKQEAgLTQyLDEy
ICs0Niw2IEBACiAjaW5jbHVkZSA8bWFjaC92bV9zdGF0aXN0aWNzLmg+CiAjZW5kaWYKIAotI2lu
Y2x1ZGUgInBhc19pbnRlcm5hbF9jb25maWcuaCIKLSNpbmNsdWRlICJwYXNfbG9nLmgiCi0jaW5j
bHVkZSAicGFzX210ZS5oIgotI2luY2x1ZGUgInBhc191dGlscy5oIgotI2luY2x1ZGUgInBhc196
ZXJvX21lbW9yeS5oIgotCiBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX251bV9hbGxvY2F0ZWRfYnl0
ZXM7CiBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2NhY2hlZF9hbGlnbm1lbnQ7CiBzaXplX3QgcGFz
X3BhZ2VfbWFsbG9jX2NhY2hlZF9hbGlnbm1lbnRfc2hpZnQ7CkBAIC0xNDcsMTQgKzE0NSwxMiBA
QCBwYXNfcGFnZV9tYWxsb2NfdHJ5X21hcF9wYWdlcyhzaXplX3Qgc2l6ZSwgYm9vbCBtYXlfY29u
dGFpbl9zbWFsbF9vcl9tZWRpdW0pCiB7CiAjaWYgUEFTX09TKFdJTkRPV1MpCiAgICAgUEFTX1BS
T0ZJTEUoUEFHRV9BTExPQ0FUSU9OLCBzaXplLCBtYXlfY29udGFpbl9zbWFsbF9vcl9tZWRpdW0s
IFBBU19WTV9UQUcpOwotICAgIFBBU19NVEVfSEFORExFKFBBR0VfQUxMT0NBVElPTiwgc2l6ZSwg
bWF5X2NvbnRhaW5fc21hbGxfb3JfbWVkaXVtLCBQQVNfVk1fVEFHKTsKIAogICAgIHJldHVybiB2
aXJ0dWFsX2FsbG9jX3dpdGhfcmV0cnkoTlVMTCwgc2l6ZSwgTUVNX0NPTU1JVCB8IE1FTV9SRVNF
UlZFLCBQQUdFX1JFQURXUklURSk7CiAjZWxzZQogICAgIHZvaWQqIG1tYXBfcmVzdWx0ID0gTlVM
TDsKIAogICAgIFBBU19QUk9GSUxFKFBBR0VfQUxMT0NBVElPTiwgc2l6ZSwgbWF5X2NvbnRhaW5f
c21hbGxfb3JfbWVkaXVtLCBQQVNfVk1fVEFHKTsKLSAgICBQQVNfTVRFX0hBTkRMRShQQUdFX0FM
TE9DQVRJT04sIHNpemUsIG1heV9jb250YWluX3NtYWxsX29yX21lZGl1bSwgUEFTX1ZNX1RBRyk7
CiAKICAgICBtbWFwX3Jlc3VsdCA9IG1tYXAoTlVMTCwgc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9X
UklURSwgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTiB8IFBBU19OT1JFU0VSVkUsIFBBU19WTV9UQUcs
IDApOwogICAgIGlmIChtbWFwX3Jlc3VsdCA9PSBNQVBfRkFJTEVEKSB7CkBAIC0zMTEsNyArMzA3
LDYgQEAgdm9pZCBwYXNfcGFnZV9tYWxsb2NfemVyb19maWxsKHZvaWQqIGJhc2UsIHNpemVfdCBz
aXplKQogI2VuZGlmIC8qIFBBU19VU0VfTUFEVl9aRVJPICovCiAKICAgICBQQVNfUFJPRklMRSha
RVJPX0ZJTExfUEFHRSwgYmFzZSwgc2l6ZSwgZmxhZ3MsIHRhZyk7Ci0gICAgUEFTX01URV9IQU5E
TEUoWkVST19GSUxMX1BBR0UsIGJhc2UsIHNpemUsIGZsYWdzLCB0YWcpOwogICAgIHJlc3VsdF9w
dHIgPSBtbWFwKGJhc2UsIHNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIGZsYWdzLCB0YWcs
IDApOwogICAgIFBBU19BU1NFUlQocmVzdWx0X3B0ciA9PSBiYXNlKTsKICNlbmRpZiAvKiBQQVNf
T1MoV0lORE9XUykgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uYyBiL1NvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uYwppbmRleCBh
NmVjNzk1ZTIxNWUuLmY4NDIxOTAzYTk4YSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbi5jCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNh
Y3Rpb24uYwpAQCAtMjgsNyArMjgsNiBAQAogI2lmIExJQlBBU19FTkFCTEVECiAKICNpbmNsdWRl
ICJwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAicGFzX3plcm9f
bWVtb3J5LmgiCiAKIHZvaWQgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbl9jb25zdHJ1
Y3QocGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGxhdGZvcm0uaCBi
L1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wbGF0Zm9ybS5oCmluZGV4IDY1
NDYyNTA4ZGI3My4uNzllOGY4YjJhNzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfcGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfcGxhdGZvcm0uaApAQCAtMjAzLDE3ICsyMDMsNiBAQAogI2Vycm9yICJV
bnN1cHBvcnRlZCBjb21waWxlciBmb3IgbGlicGFzIgogI2VuZGlmCiAKLSNpZiBQQVNfUExBVEZP
Uk0oQ09DT0EpCi0vKiBTaG91bGQgYmUgYWxpZ25lZCB3aXRoIHRoZSBkZWZpbml0aW9uIGluIFdU
Ri93dGYvUGxhdGZvcm1Vc2UuaCAqLwotI2lmIGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hh
c19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCi0jZGVmaW5lIFBBU19VU0VfQVBQ
TEVfSU5URVJOQUxfU0RLIDEKLSNlbHNlCi0jZGVmaW5lIFBBU19VU0VfQVBQTEVfSU5URVJOQUxf
U0RLIDAKLSNlbmRpZgotI2Vsc2UgLy8gIVBBU19QTEFURk9STShDT0NPQSkKLSNkZWZpbmUgUEFT
X1VTRV9BUFBMRV9JTlRFUk5BTF9TREsgMAotI2VuZGlmIC8vIFBBU19QTEFURk9STShDT0NPQSkK
LQogLyogUEFTX0FMTE9XX1VOU0FGRV9CVUZGRVJfVVNBR0UgKi8KIAogI2lmIFBBU19DT01QSUxF
UihDTEFORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuYyBiL1NvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0
b3IuYwppbmRleCAzZjBjZmIwNzUyNDUuLjUyZjEyY2I2MTFjMiAxMDA2NDQKLS0tIGEvU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9j
X2FsbG9jYXRvci5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19w
cm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19hbGxvY2F0b3IuYwpAQCAtMzMsNyArMzMsNiBAQAog
I2luY2x1ZGUgImlzb19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19oZWFwLmgiCiAjaW5j
bHVkZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX210ZS5o
IgogI2luY2x1ZGUgInBhc19yYW5kb20uaCIKICNpbmNsdWRlICJwYXNfdXRpbGl0eV9oZWFwLmgi
CiAjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0LmgiCkBAIC0yMTQsNyArMjEzLDYg
QEAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHBhc19wcm9iYWJpbGlzdGljX2d1YXJkX21hbGxvY19h
bGxvY2F0ZShwYXNfbGFyZ2VfaGVhcCogbGEKICNlbmRpZgogCiAgICAgUEFTX1BST0ZJTEUoUEdN
X0FMTE9DQVRFLCBoZWFwX2NvbmZpZywga2V5KTsKLSAgICBQQVNfTVRFX0hBTkRMRShQR01fQUxM
T0NBVEUsIGhlYXBfY29uZmlnLCBrZXkpOwogCiAgICAgLyogY3JlYXRlIHN0cnVjdCB0byBob2xk
IGhhc2ggbWFwIHZhbHVlICovCiAgICAgcGFzX3BnbV9zdG9yYWdlKiB2YWx1ZSA9IHBhc191dGls
aXR5X2hlYXBfdHJ5X2FsbG9jYXRlKHNpemVvZihwYXNfcGdtX3N0b3JhZ2UpLCAicGFzX3BnbV9o
YXNoX21hcF9WQUxVRSIpOwpAQCAtMjY0LDcgKzI2Miw2IEBAIHZvaWQgcGFzX3Byb2JhYmlsaXN0
aWNfZ3VhcmRfbWFsbG9jX2RlYWxsb2NhdGUodm9pZCogbWVtKQogCiAgICAgdWludHB0cl90IGtl
eSA9ICh1aW50cHRyX3QpbWVtOwogICAgIFBBU19QUk9GSUxFKFBHTV9ERUFMTE9DQVRFLCBrZXkp
OwotICAgIFBBU19NVEVfSEFORExFKFBHTV9ERUFMTE9DQVRFLCBrZXkpOwogCiAgICAgcGFzX3B0
cl9oYXNoX21hcF9lbnRyeSogZW50cnkgPSBwYXNfcHRyX2hhc2hfbWFwX2ZpbmQoJnBhc19wZ21f
aGFzaF9tYXAsICh2b2lkKilrZXkpOwogICAgIGlmICghZW50cnkgfHwgIWVudHJ5LT52YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19yb290LmMg
Yi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcm9vdC5jCmluZGV4IDZhM2Rj
MDA1NmI2MS4uMzdjYzE4MWE1MDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfcm9vdC5jCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19yb290LmMKQEAgLTI0LDcgKzI0LDYgQEAKICAqLwogCiAjaW5jbHVkZSAicGFzX2Nv
bmZpZy5oIgotI2luY2x1ZGUgInBhc196ZXJvX21lbW9yeS5oIgogCiAjaWYgTElCUEFTX0VOQUJM
RUQKIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nj
YXZlbmdlci5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdl
ci5jCmluZGV4IDNkNzQ0NTliYjIyMS4uNTQxNzc2MWM5YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmMKKysrIGIvU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5jCkBAIC00MCw3ICs0MCw2IEBA
CiAjaW5jbHVkZSAicGFzX2ltbW9ydGFsX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfZXhw
ZW5kYWJsZV9tZW1vcnkuaCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgotI2luY2x1ZGUgInBhc19t
dGUuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKICNpbmNsdWRlICJwYXNf
c3RhdHVzX3JlcG9ydGVyLmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgpA
QCAtMjE3LDcgKzIxNiw2IEBAIHN0YXRpYyB2b2lkKiBzY2F2ZW5nZXJfdGhyZWFkX21haW4odm9p
ZCogYXJnKQogI2VuZGlmCiAKICAgICBQQVNfUFJPRklMRShTQ0FWRU5HRVJfVEhSRUFEX01BSU4s
IGRhdGEpOwotICAgIFBBU19NVEVfSEFORExFKFNDQVZFTkdFUl9USFJFQURfTUFJTiwgZGF0YSk7
CiAKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5n
ZV9yZXN1bHQgc2NhdmVuZ2VfcmVzdWx0OwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ21lbnRlZF92ZWN0b3IuaCBiL1NvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdtZW50ZWRfdmVjdG9yLmgKaW5kZXggNzY2NDMyZjg5NjI5
Li4wNmY1YWRlODIxZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdtZW50ZWRfdmVjdG9yLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ21lbnRlZF92ZWN0b3IuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgInBhc19mb3VuZF9pbmRleC5oIgogI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFwLmgiCiAj
aW5jbHVkZSAicGFzX3V0aWxzLmgiCi0jaW5jbHVkZSAicGFzX3plcm9fbWVtb3J5LmgiCiAjaW5j
bHVkZSA8c3RkYWxpZ24uaD4KIAogUEFTX0JFR0lOX0VYVEVSTl9DOwpkaWZmIC0tZ2l0IGEvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jIGIvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jCmluZGV4
IGM0ODkwYWY3Y2E5Ni4uZDA2NzRkMzJkMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMKKysrIGIvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jCkBAIC00NCw3ICs0NCw2
IEBACiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogI2luY2x1ZGUgInBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgiCiAjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcF9j
b25maWcuaCIKLSNpbmNsdWRlICJwYXNfemVyb19tZW1vcnkuaCIKIAogdW5zaWduZWQgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9udW1fc2l6ZV9sb29rdXBfcmVtYXRlcmlhbGl6YXRpb25zOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlLmMKaW5kZXggNzAxZGRhNjE3OGE1Li5kNDllMGU0MjkyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYworKysgYi9T
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMKQEAg
LTQ1LDcgKzQ1LDYgQEAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIK
ICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBh
c191dGlsaXR5X2hlYXBfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX3plcm9fbWVtb3J5LmgiCiAK
IGRvdWJsZSBwYXNfc2VncmVnYXRlZF9wYWdlX2V4dHJhX3dhc3RlYWdlX2hhbmRpY2FwX2Zvcl9j
b25maWdfdmFyaWFudFsKICAgICBQQVNfTlVNX1NFR1JFR0FURURfUEFHRV9DT05GSUdfVkFSSUFO
VFNdID0gewpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaAppbmRleCBjZGZiMGU5YTkyZTkuLjA5
M2EyYTZhY2IzNSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgKQEAgLTI4LDcgKzI4LDYg
QEAKIAogI2luY2x1ZGUgInBhc19jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCi0jaW5j
bHVkZSAicGFzX210ZS5oIgogI2luY2x1ZGUgInBhc19wYWdlX2Jhc2VfaW5saW5lcy5oIgogI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgiCiAjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oIgpAQCAtMzgsNyArMzcsNiBAQAog
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaCIKICNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX25vZGUuaCIKLSNpbmNsdWRlICJwYXNfemVyb19tZW1vcnkuaCIKIAogUEFT
X0JFR0lOX0VYVEVSTl9DOwogCkBAIC00NjYsNyArNDY0LDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9kZWFsbG9jYXRlX3dpdGhfcGFnZShwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAgIH0K
IAogICAgIFBBU19QUk9GSUxFKFNFR1JFR0FURURfUEFHRV9ERUFMTE9DQVRJT04sIHBhZ2VfY29u
ZmlnLCBiZWdpbiwgb2JqZWN0X3NpemUpOwotICAgIFBBU19NVEVfSEFORExFKFNFR1JFR0FURURf
UEFHRV9ERUFMTE9DQVRJT04sIHBhZ2VfY29uZmlnLCBiZWdpbiwgb2JqZWN0X3NpemUpOwogCiAg
ICAgaWYgKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplID4gcGFnZV9jb25maWcuYmFzZS5ncmFu
dWxlX3NpemUpIHsKICAgICAgICAgLyogVGhpcyBpcyB0aGUgcGFydGlhbCBkZWNvbW1pdCBjYXNl
LiBJdCdzIGludGVuZGVkIGZvciBtZWRpdW0gcGFnZXMuIEl0IHJlcXVpcmVzIGRvaW5nCmRpZmYg
LS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaAppbmRleCA4MDY2ZjVjMTI1NGMuLmZiNmFiN2VkYmQz
MSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oCkBAIC0zOCw3ICszOCw2IEBACiAj
aW5jbHVkZSAicGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCIKICNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9jcmVhdGlvbl9tb2RlLmgiCi0jaW5jbHVkZSAicGFzX3plcm9fbWVtb3J5LmgiCiAKIFBB
U19CRUdJTl9FWFRFUk5fQzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuYyBiL1NvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmMKaW5kZXggMzczZTBi
MzBiYzZmLi5lNDFjZWE5NDJmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmMKKysrIGIvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuYwpAQCAtMzUs
NyArMzUsNiBAQAogI2luY2x1ZGUgInBhc19sYXJnZV9mcmVlLmgiCiAjaW5jbHVkZSAicGFzX2xh
cmdlX2ZyZWVfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCi0jaW5jbHVkZSAi
cGFzX3plcm9fbWVtb3J5LmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KIAogc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IFBBU19TSE9VTERfTE9HKFBBU19MT0dfTEFSR0VfSEVBUFMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NtYWxsX21lZGl1bV9i
b290c3RyYXBfaGVhcF9wYWdlX3Byb3ZpZGVyLmMgYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc21hbGxfbWVkaXVtX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuYwpp
bmRleCA3ZTQ3NWExOGNhNDcuLjdkMjI5NTg4ZGY2OSAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NtYWxsX21lZGl1bV9ib290c3RyYXBfaGVhcF9wYWdl
X3Byb3ZpZGVyLmMKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nt
YWxsX21lZGl1bV9ib290c3RyYXBfaGVhcF9wYWdlX3Byb3ZpZGVyLmMKQEAgLTMwLDcgKzMwLDYg
QEAKICNpbmNsdWRlICJwYXNfc21hbGxfbWVkaXVtX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlk
ZXIuaCIKIAogI2luY2x1ZGUgInBhc19ib290c3RyYXBfZnJlZV9oZWFwLmgiCi0jaW5jbHVkZSAi
cGFzX210ZS5oIgogI2luY2x1ZGUgInBhc19zbWFsbF9tZWRpdW1fYm9vdHN0cmFwX2ZyZWVfaGVh
cC5oIgogCiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzX3NtYWxsX21lZGl1bV9ib290c3RyYXBf
aGVhcF9wYWdlX3Byb3ZpZGVyKApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5jIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5jCmluZGV4IGYzYjhjNzE4ZTA2Yy4uNGMyYWU3
NzkzYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c3RhdHVzX3JlcG9ydGVyLmMKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3N0YXR1c19yZXBvcnRlci5jCkBAIC02Miw3ICs2Miw2IEBACiAjaW5jbHVkZSAicGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcC5oIgog
I2luY2x1ZGUgInBhc190aHJlYWQuaCIKLSNpbmNsdWRlICJwYXNfemVyb19tZW1vcnkuaCIKICNp
ZiAhUEFTX09TKFdJTkRPV1MpCiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdHJpbmdfc3RyZWFtLmMg
Yi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RyaW5nX3N0cmVhbS5jCmlu
ZGV4IDNkZGM3NDFmNDQzMS4uNDEyZjU1NDQ3OWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RyaW5nX3N0cmVhbS5jCisrKyBiL1NvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdHJpbmdfc3RyZWFtLmMKQEAgLTMxLDcgKzMxLDYg
QEAKIAogI2luY2x1ZGUgInBhc19ib290c3RyYXBfZnJlZV9oZWFwLmgiCiAjaW5jbHVkZSAicGFz
X3NucHJpbnRmLmgiCi0jaW5jbHVkZSAicGFzX3plcm9fbWVtb3J5LmgiCiAKIHN0YXRpYyBQQVNf
Rk9STUFUX1BSSU5URigyLCAwKSB2b2lkIHN0cmluZ19zdHJlYW1fdnByaW50ZihwYXNfc3RyZWFt
KiBzdHJlYW0sIGNvbnN0IGNoYXIqIGZvcm1hdCwgdmFfbGlzdCBhcmdfbGlzdCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxf
Y2FjaGUuYyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9j
YWxfY2FjaGUuYwppbmRleCBmYTEyYjY3NTQzZjUuLmE0MGVmMmFjMzg2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5j
CisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxf
Y2FjaGUuYwpAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0LmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgiCiAj
aW5jbHVkZSAicGFzX3RocmVhZF9zdXNwZW5kX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfemVyb19t
ZW1vcnkuaCIKICNpZiAhUEFTX09TKFdJTkRPV1MpCiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGUuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190
aHJlYWRfbG9jYWxfY2FjaGUuaAppbmRleCA3N2JmYThhNDE3YjIuLjRiNmZmNTJjYWM5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGUuaApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgInBhc19tYWxsb2Nf
c3RhY2tfbG9nZ2luZy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tp
bmRfYW5kX3JvbGUuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKLSNpbmNsdWRlICJwYXNfemVy
b19tZW1vcnkuaCIKIAogI2luY2x1ZGUgInBhc190aHJlYWQuaCIKIApkaWZmIC0tZ2l0IGEvU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXQuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0LmgKaW5kZXggNGY0NWY5NzI3NDAyLi5kZWI2ZmFhMWUxMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0LmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgInBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LmgiCiAjaW5jbHVkZSAicGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgotI2lu
Y2x1ZGUgInBhc196ZXJvX21lbW9yeS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aW55X2xhcmdlX21h
cF9lbnRyeS5oIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RpbnlfbGFy
Z2VfbWFwX2VudHJ5LmgKaW5kZXggYzA4YjFmYzc3NmJkLi5hODU0ZGYwYjQ1NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aW55X2xhcmdlX21hcF9l
bnRyeS5oCisrKyBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aW55X2xh
cmdlX21hcF9lbnRyeS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAicGFzX2hlYXBfdGFi
bGUuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfbWFwX2VudHJ5LmgiCiAjaW5jbHVkZSAicGFzX3V0
aWxzLmgiCi0jaW5jbHVkZSAicGFzX3plcm9fbWVtb3J5LmgiCiAKIFBBU19CRUdJTl9FWFRFUk5f
QzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ry
eV9yZWFsbG9jYXRlLmggYi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5
X3JlYWxsb2NhdGUuaAppbmRleCAwYWM2YmU0Y2M1NWQuLjQxODhjYmY0ODg2MyAxMDA2NDQKLS0t
IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmgK
KysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRl
LmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJwYXNfZGVhbGxvY2F0ZS5oIgogI2luY2x1
ZGUgInBhc19sYXJnZV9tYXAuaCIKICNpbmNsdWRlICJwYXNfbWFsbG9jX3N0YWNrX2xvZ2dpbmcu
aCIKLSNpbmNsdWRlICJwYXNfbXRlLmgiCiAjaW5jbHVkZSAicGFzX3JlYWxsb2NhdGVfZnJlZV9t
b2RlLmgiCiAjaW5jbHVkZSAicGFzX3JlYWxsb2NhdGVfaGVhcF90ZWxlcG9ydF9ydWxlLmgiCiAj
aW5jbHVkZSAicGFzX3RyeV9hbGxvY2F0ZS5oIgpAQCAtMTAzLDcgKzEwMiw2IEBAIHBhc190cnlf
YWxsb2NhdGVfZm9yX3JlYWxsb2NhdGVfYW5kX2NvcHkoCiAgICAgICAgIGlmICh2ZXJib3NlKQog
ICAgICAgICAgICAgcGFzX2xvZygiY29weWluZyBzaXplICV6dSBmcm9tICVwIHRvICVwXG4iLCBj
b3B5X3NpemUsIG9sZF9wdHIsICh2b2lkKilyZXN1bHQuYmVnaW4pOwogICAgICAgICBQQVNfUFJP
RklMRShUUllfUkVBTExPQ0FURV9BTkRfQ09QWSwgcmVzdWx0LmJlZ2luLCBvbGRfcHRyLCBjb3B5
X3NpemUpOwotICAgICAgICBQQVNfTVRFX0hBTkRMRShUUllfUkVBTExPQ0FURV9BTkRfQ09QWSwg
cmVzdWx0LmJlZ2luLCBvbGRfcHRyLCBjb3B5X3NpemUpOwogICAgICAgICBtZW1jcHkoKHZvaWQq
KXJlc3VsdC5iZWdpbiwgb2xkX3B0ciwgY29weV9zaXplKTsKICAgICAgICAgaWYgKHZlcmJvc2Up
CiAgICAgICAgICAgICBwYXNfbG9nKCJcdC4uLmRvbmUgY29weWluZyBzaXplICV6dSBmcm9tICVw
IHRvICVwXG4iLCBjb3B5X3NpemUsIG9sZF9wdHIsICh2b2lkKilyZXN1bHQuYmVnaW4pOwpAQCAt
MzU1LDcgKzM1Myw2IEBAIHBhc190cnlfcmVhbGxvY2F0ZSh2b2lkKiBvbGRfcHRyLAogICAgICAg
ICB9CiAKICAgICAgICAgUEFTX1BST0ZJTEUoTEFSR0VfTUFQX0ZPVU5EX0VOVFJZLCAmY29uZmln
LCBlbnRyeS5iZWdpbiwgZW50cnkuZW5kKTsKLSAgICAgICAgUEFTX01URV9IQU5ETEUoTEFSR0Vf
TUFQX0ZPVU5EX0VOVFJZLCAmY29uZmlnLCBlbnRyeS5iZWdpbiwgZW50cnkuZW5kKTsKICAgICAg
ICAgUEFTX0FTU0VSVChlbnRyeS5iZWdpbiA9PSBiZWdpbik7CiAgICAgICAgIFBBU19BU1NFUlQo
ZW50cnkuZW5kID4gYmVnaW4pOwogICAgICAgICBQQVNfQVNTRVJUKGVudHJ5LmhlYXApOwpkaWZm
IC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVh
cF9jb25maWcuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5
X2hlYXBfY29uZmlnLmgKaW5kZXggZDJkMDQ3MGNhZDlhLi41YmM3ODNkY2ZhZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29u
ZmlnLmgKKysrIGIvU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlf
aGVhcF9jb25maWcuaApAQCAtOTQsNyArOTQsNiBAQCBQQVNfQVBJIHZvaWQgcGFzX3V0aWxpdHlf
aGVhcF9jb25maWdfZHVtcF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYXJnKAogICAgICAgICAgICAg
LmJhc2UgPSB7IFwKICAgICAgICAgICAgICAgICAuaXNfZW5hYmxlZCA9IHRydWUsIFwKICAgICAg
ICAgICAgICAgICAuYWxsb3dfcHJvZmlsaW5nID0gdHJ1ZSwgXAotICAgICAgICAgICAgICAgIC5h
bGxvd19tdGVfdGFnZ2luZyA9IHRydWUsIFwKICAgICAgICAgICAgICAgICAuaGVhcF9jb25maWdf
cHRyID0gJnBhc191dGlsaXR5X2hlYXBfY29uZmlnLCBcCiAgICAgICAgICAgICAgICAgLnBhZ2Vf
Y29uZmlnX3B0ciA9ICZwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2Nv
bmZpZy5iYXNlLCBcCiAgICAgICAgICAgICAgICAgLnBhZ2VfY29uZmlnX2tpbmQgPSBwYXNfcGFn
ZV9jb25maWdfa2luZF9zZWdyZWdhdGVkLCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc191dGlscy5oCmluZGV4IGJkN2YzYzFhMDQ5NC4uNGYyMWFlNjI4YzhhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaAorKysg
Yi9Tb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaApAQCAtNTcsMTAg
KzU3LDYgQEAgUEFTX0lHTk9SRV9DTEFOR19XQVJOSU5HU19CRUdJTigicXVhbGlmaWVyLXJlcXVp
cmVzLWhlYWRlciIpCiAjZGVmaW5lIFBBU19CRUdJTl9FWFRFUk5fQyBfX1BBU19CRUdJTl9FWFRF
Uk5fQwogI2RlZmluZSBQQVNfRU5EX0VYVEVSTl9DIF9fUEFTX0VORF9FWFRFUk5fQwogCi0jaWYg
ZGVmaW5lZChQQVNfQk1BTExPQykgJiYgUEFTX0JNQUxMT0MKLSNpbmNsdWRlICJwYXNfbXRlX2Nv
bmZpZy5oIgotI2VuZGlmIC8vIGRlZmluZWQoUEFTX0JNQUxMT0MpICYmIFBBU19CTUFMTE9DCi0K
ICNpZiBkZWZpbmVkKFBBU19CTUFMTE9DKSAmJiBQQVNfQk1BTExPQwogI2lmIGRlZmluZWQoX19o
YXNfaW5jbHVkZSkKICNpZiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvcGFzX3V0aWxz
X2FkZGl0aW9ucy5oPikgJiYgIVBBU19FTkFCTEVfVEVTVElORwpAQCAtMjEwLDYgKzIwNiwxNCBA
QCBQQVNfQkVHSU5fRVhURVJOX0M7CiAjZGVmaW5lIFBBU19TSE9VTERfUFJPRklMRV9CQVNJQ19I
RUFQX1BBR0Uoc2l6ZV9jYXRlZ29yeSkgKGZhbHNlKQogI2VuZGlmCiAKK3N0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkIHBhc196ZXJvX21lbW9yeSh2b2lkKiBtZW1vcnksIHNpemVfdCBzaXpl
KQoreworICAgIFBBU19BTExPV19VTlNBRkVfQlVGRkVSX1VTQUdFX0JFR0lOCisgICAgUEFTX1BS
T0ZJTEUoWkVST19NRU1PUlksIG1lbW9yeSwgc2l6ZSk7CisgICAgbWVtc2V0KG1lbW9yeSwgMCwg
c2l6ZSk7CisgICAgUEFTX0FMTE9XX1VOU0FGRV9CVUZGRVJfVVNBR0VfRU5ECit9CisKIC8qIE5P
VEU6IHBhbmljIGZvcm1hdCBzdHJpbmcgbXVzdCBoYXZlIFxuIGF0IHRoZSBlbmQuICovCiBQQVNf
QVBJIFBBU19OT19SRVRVUk4gdm9pZCBwYXNfcGFuaWMoY29uc3QgY2hhciogZm9ybWF0LCAuLi4p
IFBBU19GT1JNQVRfUFJJTlRGKDEsIDIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfemVyb19tZW1vcnkuaCBiL1NvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc196ZXJvX21lbW9yeS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlMGFlZGJlZjM0YzAuLjAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfemVyb19tZW1vcnkuaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAicGFzX210ZS5oIgotI2luY2x1ZGUgInBhc191dGls
cy5oIgotI2luY2x1ZGUgPHN0ZGludC5oPgotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCBwYXNfemVyb19tZW1vcnkodm9pZCogbWVtb3J5LCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBQQVNf
QUxMT1dfVU5TQUZFX0JVRkZFUl9VU0FHRV9CRUdJTgotICAgIFBBU19QUk9GSUxFKFpFUk9fTUVN
T1JZLCBtZW1vcnksIHNpemUpOwotICAgIFBBU19NVEVfSEFORExFKFpFUk9fTUVNT1JZLCBtZW1v
cnksIHNpemUpOwotICAgIG1lbXNldChtZW1vcnksIDAsIHNpemUpOwotICAgIFBBU19BTExPV19V
TlNBRkVfQlVGRkVSX1VTQUdFX0VORAotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2VyLnB5CmluZGV4IDY0MGJkMjJkZmZhYS4uYTQ0NmM5MDhkNDIxIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC0zNzMsMTcgKzM3MywxMCBAQCBfUEFUSF9SVUxF
U19TUEVDSUZJRVIgPSBbCiAgICAgKFsKICAgICAgICMgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy8gaXMgZmlyc3QtcGFydHkgY29kZSwgYnV0IGxhcmdlbHkgb3BlcmF0ZXMKICAgICAgICMgYXMg
YW4gc2VwYXJhdGUgY29kZWJhc2UsIHdpdGggYSBmZXcgZGlmZmVyZW50IHN0eWxlIHJ1bGVzLgot
ICAgICAgIyBJdCBhbHNvIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIGFueSBvZiBXVEYncyBzYWZl
LWNwcCB3cmFwcGVycywKLSAgICAgICMgZS5nLiBtZW1zZXRTcGFuLgogICAgICAgb3MucGF0aC5q
b2luKCdTb3VyY2UnLCAnYm1hbGxvYycsICdsaWJwYXMnLCAnc3JjJyldLAogICAgICBbIi1yZWFk
YWJpbGl0eS9uYW1pbmcvdW5kZXJzY29yZXMiLAotICAgICAgIi1yZWFkYWJpbGl0eS9wYXJhbWV0
ZXJfbmFtZSIsCiAgICAgICAiLXdoaXRlc3BhY2UvZGVjbGFyYXRpb24iLAotICAgICAgIi13aGl0
ZXNwYWNlL2luZGVudCIsCi0gICAgICAiLXNhZmVyY3BwL3ByaW50ZiIsCi0gICAgICAiLXNhZmVy
Y3BwL21lbXNldCIsCi0gICAgICAiLXNhZmVyY3BwL21lbWNweSIsCi0gICAgICAiLXNhZmVyY3Bw
L3N0cm5jbXAiLF0pLAorICAgICAgIi13aGl0ZXNwYWNlL2luZGVudCJdKSwKIAogICAgIChbCiAg
ICAgICAjIFRoZXJlIGlzIG5vIHdheSB0byBhdm9pZCB0aGUgc3ltYm9scyBfX2ppdF9kZWJ1Z19y
ZWdpc3Rlcl9jb2RlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>