<?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>206272</bug_id>
          
          <creation_ts>2020-01-14 19:04:49 -0800</creation_ts>
          <short_desc>Platform.h is out of control Part 4: Split PLATFORM_* macro definitions out of Platform.h and into a new PlatformLegacy.h</short_desc>
          <delta_ts>2020-01-17 08:54:18 -0800</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>andersca</cc>
    
    <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1606758</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-14 19:04:49 -0800</bug_when>
    <thetext>Platform.h is out of control Part 4: Split PLATFORM_* macro definitions out of Platform.h and into a new PlatformLegacy.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606760</commentid>
    <comment_count>1</comment_count>
      <attachid>387745</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-14 19:05:50 -0800</bug_when>
    <thetext>Created attachment 387745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606961</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-15 09:48:52 -0800</bug_when>
    <thetext>Committed r254572: &lt;https://trac.webkit.org/changeset/254572&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1606962</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-15 09:49:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/58608497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607375</commentid>
    <comment_count>4</comment_count>
      <attachid>387745</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-01-16 00:34:31 -0800</bug_when>
    <thetext>Comment on attachment 387745
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=387745&amp;action=review

&gt; Source/WTF/ChangeLog:8
&gt; +        As a another step towards cleaning up Platform.h, split out all the legacy platform

What makes these legacy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608015</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-17 08:54:18 -0800</bug_when>
    <thetext>(In reply to Saam Barati from comment #4)
&gt; Comment on attachment 387745 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=387745&amp;action=review
&gt; 
&gt; &gt; Source/WTF/ChangeLog:8
&gt; &gt; +        As a another step towards cleaning up Platform.h, split out all the legacy platform
&gt; 
&gt; What makes these legacy?

There has been a long stated though poorly communicated goal of phasing out the use of PLATFORM() macros in favor of the more targeted ones. The comment above the definition has read for quite a while:

/* ==== PLATFORM handles OS, operating environment, graphics API, and
   CPU. This macro will be phased out in favor of platform adaptation
   macros, policy decision macros, and top-level port definitions. ==== */</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387745</attachid>
            <date>2020-01-14 19:05:50 -0800</date>
            <delta_ts>2020-01-15 07:52:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206272-20200114190549.patch</filename>
            <type>text/plain</type>
            <size>70862</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNTQ1NTUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDIwLTAxLTE0ICBTYW0gV2VpbmlnICA8d2Vpbmln
QGFwcGxlLmNvbT4KKworICAgICAgICBQbGF0Zm9ybS5oIGlzIG91dCBvZiBjb250cm9sIFBhcnQg
NDogU3BsaXQgUExBVEZPUk1fKiBtYWNybyBkZWZpbml0aW9ucyBvdXQgb2YgUGxhdGZvcm0uaCBh
bmQgaW50byBhIG5ldyBQbGF0Zm9ybUxlZ2FjeS5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYyNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBcyBhIGFub3RoZXIgc3RlcCB0b3dhcmRzIGNsZWFuaW5n
IHVwIFBsYXRmb3JtLmgsIHNwbGl0IG91dCBhbGwgdGhlIGxlZ2FjeSBwbGF0Zm9ybQorICAgICAg
ICBtYWNyb3MgaW50byB0aGVpciBvd24gZmlsZS4KKworICAgICAgICAqIFdURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1MZWdhY3kuaDogQ29waWVk
IGZyb20gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaC4KKwogMjAyMC0wMS0xNCAgU2FtIFdlaW5p
ZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUGxhZm9ybS5oIGhlbHBlciBmaWxlcyBz
aG91bGQgaGF2ZSBhIGNvbnNpc3RlbnQgbmFtaW5nIHNjaGVtZQpJbmRleDogU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL1dU
Ri54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTQ1NTApCisrKyBTb3VyY2Uv
V1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NDcs
NiArNDQ3LDcgQEAKIAkJN0M0MjMwNzEyM0NFMkQ4QTAwNkU1NEQwIC8qIFBsYXRmb3JtRW5hYmxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtRW5hYmxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDNDIzMDcyMjNDRTJEOEEwMDZFNTREMCAvKiBQ
bGF0Zm9ybUNQVS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNQ
VS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzQyMzA3MzIzQ0UyRDhCMDA2RTU0
RDAgLyogUGxhdGZvcm1PUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0
Zm9ybU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDNDIzMDc0MjNDRUIxODcw
MDZFNTREMCAvKiBQbGF0Zm9ybUxlZ2FjeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQbGF0Zm9ybUxlZ2FjeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Qzk2
OTI5NDFGNjYzMDZFMDAyNjdBOUUgLyogS2V5VmFsdWVQYWlyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEtleVZhbHVlUGFpci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3Q0JCQTA3MzE5QkI3RkRDMDBCQkYwMjUgLyogT1NPYmplY3RQdHIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT1NPYmplY3RQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0NEMEQ1QTcxRDU1MzIyQTAwMENDOUUxIC8qIFZhcmlhbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFyaWFudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTEyNyw2ICsxMTI4LDcgQEAKIAkJCQlBODc2REJENzE1MTgxNkU1MDBEQURC
OTUgLyogUGxhdGZvcm0uaCAqLywKIAkJCQk3QzQyMzA3MjIzQ0UyRDhBMDA2RTU0RDAgLyogUGxh
dGZvcm1DUFUuaCAqLywKIAkJCQk3QzQyMzA3MTIzQ0UyRDhBMDA2RTU0RDAgLyogUGxhdGZvcm1F
bmFibGUuaCAqLywKKwkJCQk3QzQyMzA3NDIzQ0VCMTg3MDA2RTU0RDAgLyogUGxhdGZvcm1MZWdh
Y3kuaCAqLywKIAkJCQk3QzQyMzA3MzIzQ0UyRDhCMDA2RTU0RDAgLyogUGxhdGZvcm1PUy5oICov
LAogCQkJCUZFMUUyQzQxMjI0MTg3QzYwMEY2QjcyOSAvKiBQbGF0Zm9ybVJlZ2lzdGVycy5jcHAg
Ki8sCiAJCQkJRTMyMDBBQjQxRTlBNTM2RDAwM0I1OUQyIC8qIFBsYXRmb3JtUmVnaXN0ZXJzLmgg
Ki8sCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjU0NTUwKQorKysgU291cmNl
L1dURi93dGYvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsNyBA
QCBzZXQoV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgUGxhdGZvcm0uaAogICAgIFBsYXRmb3JtQ1BV
LmgKICAgICBQbGF0Zm9ybUVuYWJsZS5oCisgICAgUGxhdGZvcm1MZWdhY3kuaAogICAgIFBsYXRm
b3JtT1MuaAogICAgIFBsYXRmb3JtUmVnaXN0ZXJzLmgKICAgICBQb2ludGVyQ29tcGFyaXNvbi5o
CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDI1NDU1MCkKKysrIFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE5ICszMCwxOSBAQAogLyogSW5jbHVkZSBj
b21waWxlciBzcGVjaWZpYyBtYWNyb3MgKi8KICNpbmNsdWRlIDx3dGYvQ29tcGlsZXIuaD4KIAot
LyogSW5jbHVkZSBDUFUgc3BlY2lmaWMgbWFjcm9zICovCisvKiA9PT09IFBsYXRmb3JtIGFkYXB0
YXRpb24gbWFjcm9zOiB0aGVzZSBkZXNjcmliZSBwcm9wZXJ0aWVzIG9mIHRoZSB0YXJnZXQgZW52
aXJvbm1lbnQuID09PT0gKi8KKworLyogQ1BVKCkgLSB0aGUgdGFyZ2V0IENQVSBhcmNoaXRlY3R1
cmUgKi8KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm1DUFUuaD4KIAotLyogSW5jbHVkZSB1bmRlcmx5
aW5nIG9wZXJhdGluZyBzeXN0ZW0gc3BlY2lmaWMgbWFjcm9zICovCisvKiBPUygpIC0gdW5kZXJs
eWluZyBvcGVyYXRpbmcgc3lzdGVtOyBvbmx5IHRvIGJlIHVzZWQgZm9yIG1hbmRhdGVkIGxvdy1s
ZXZlbCBzZXJ2aWNlcyBsaWtlCisgICB2aXJ0dWFsIG1lbW9yeSwgbm90IHRvIGNob29zZSBhIEdV
SSB0b29sa2l0ICovCiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtT1MuaD4KIAotLyogPT09PSBQTEFU
Rk9STSBoYW5kbGVzIE9TLCBvcGVyYXRpbmcgZW52aXJvbm1lbnQsIGdyYXBoaWNzIEFQSSwgYW5k
CisvKiBQTEFURk9STSgpIC0gaGFuZGxlcyBPUywgb3BlcmF0aW5nIGVudmlyb25tZW50LCBncmFw
aGljcyBBUEksIGFuZAogICAgQ1BVLiBUaGlzIG1hY3JvIHdpbGwgYmUgcGhhc2VkIG91dCBpbiBm
YXZvciBvZiBwbGF0Zm9ybSBhZGFwdGF0aW9uCi0gICBtYWNyb3MsIHBvbGljeSBkZWNpc2lvbiBt
YWNyb3MsIGFuZCB0b3AtbGV2ZWwgcG9ydCBkZWZpbml0aW9ucy4gPT09PSAqLwotI2RlZmluZSBQ
TEFURk9STShXVEZfRkVBVFVSRSkgKGRlZmluZWQgV1RGX1BMQVRGT1JNXyMjV1RGX0ZFQVRVUkUg
ICYmIFdURl9QTEFURk9STV8jI1dURl9GRUFUVVJFKQotCi0KLS8qID09PT0gUGxhdGZvcm0gYWRh
cHRhdGlvbiBtYWNyb3M6IHRoZXNlIGRlc2NyaWJlIHByb3BlcnRpZXMgb2YgdGhlIHRhcmdldCBl
bnZpcm9ubWVudC4gPT09PSAqLworICAgbWFjcm9zLCBwb2xpY3kgZGVjaXNpb24gbWFjcm9zLCBh
bmQgdG9wLWxldmVsIHBvcnQgZGVmaW5pdGlvbnMuICovCisjaW5jbHVkZSA8d3RmL1BsYXRmb3Jt
TGVnYWN5Lmg+CiAKIC8qIEhBVkUoKSAtIHNwZWNpZmljIHN5c3RlbSBmZWF0dXJlcyAoaGVhZGVy
cywgZnVuY3Rpb25zIG9yIHNpbWlsYXIpIHRoYXQgYXJlIHByZXNlbnQgb3Igbm90ICovCiAjZGVm
aW5lIEhBVkUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEhBVkVfIyNXVEZfRkVBVFVSRSAgJiYgSEFW
RV8jI1dURl9GRUFUVVJFKQpAQCAtNTYsNiArNTYsMTIgQEAKICNkZWZpbmUgRU5BQkxFKFdURl9G
RUFUVVJFKSAoZGVmaW5lZCBFTkFCTEVfIyNXVEZfRkVBVFVSRSAgJiYgRU5BQkxFXyMjV1RGX0ZF
QVRVUkUpCiAKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2lmIGRlZmluZWQgX19oYXNfaW5jbHVk
ZSAmJiBfX2hhc19pbmNsdWRlKDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCisjZGVmaW5lIFVT
RV9BUFBMRV9JTlRFUk5BTF9TREsgMQorI2VuZGlmCisjZW5kaWYKKwogLyogTUlQUyByZXF1aXJl
cyBhbGxvY2F0b3JzIHRvIHVzZSBhbGlnbmVkIG1lbW9yeSAqLwogI2lmIENQVShNSVBTKSB8fCBD
UFUoTUlQUzY0KQogI2RlZmluZSBVU0VfQVJFTkFfQUxMT0NfQUxJR05NRU5UX0lOVEVHRVIgMQpA
QCAtMTE3LDYxICsxMjMsNiBAQAogI2luY2x1ZGUgPGZlYXR1cmVzLmg+CiAjZW5kaWYKIAotLyog
RklYTUU6IHRoZXNlIGFyZSBhbGwgbWl4ZXMgb2YgT1MsIG9wZXJhdGluZyBlbnZpcm9ubWVudCBh
bmQgcG9saWN5IGNob2ljZXMuICovCi0vKiBQTEFURk9STShHVEspICovCi0vKiBQTEFURk9STShN
QUMpICovCi0vKiBQTEFURk9STShJT1MpICovCi0vKiBQTEFURk9STShJT1NfRkFNSUxZKSAqLwot
LyogUExBVEZPUk0oSU9TX1NJTVVMQVRPUikgKi8KLS8qIFBMQVRGT1JNKElPU19GQU1JTFlfU0lN
VUxBVE9SKSAqLwotLyogUExBVEZPUk0oV0lOKSAqLwotI2lmIGRlZmluZWQoQlVJTERJTkdfR1RL
X18pCi0jZGVmaW5lIFdURl9QTEFURk9STV9HVEsgMQotI2VsaWYgZGVmaW5lZChCVUlMRElOR19X
UEVfXykKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQRSAxCi0jZWxpZiBkZWZpbmVkKEJVSUxESU5H
X0pTQ09OTFlfXykKLS8qIEpTQ09ubHkgZG9lcyBub3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3Jv
ICovCi0jZWxpZiBPUyhNQUNfT1NfWCkKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX01BQyAxCi0jZWxp
ZiBPUyhJT1NfRkFNSUxZKQotI2lmIE9TKElPUykKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX0lPUyAx
Ci0jZW5kaWYKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX0lPU19GQU1JTFkgMQotI2lmIFRBUkdFVF9P
U19TSU1VTEFUT1IKLSNpZiBPUyhJT1MpCi0jZGVmaW5lIFdURl9QTEFURk9STV9JT1NfU0lNVUxB
VE9SIDEKLSNlbmRpZgotI2RlZmluZSBXVEZfUExBVEZPUk1fSU9TX0ZBTUlMWV9TSU1VTEFUT1Ig
MQotI2VuZGlmCi0jaWYgZGVmaW5lZChUQVJHRVRfT1NfTUFDQ0FUQUxZU1QpICYmIFRBUkdFVF9P
U19NQUNDQVRBTFlTVAotI2RlZmluZSBXVEZfUExBVEZPUk1fTUFDQ0FUQUxZU1QgMQotI2VuZGlm
Ci0jZWxpZiBPUyhXSU5ET1dTKQotI2RlZmluZSBXVEZfUExBVEZPUk1fV0lOIDEKLSNlbmRpZgot
Ci0vKiBQTEFURk9STShDT0NPQSkgKi8KLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElP
U19GQU1JTFkpCi0jZGVmaW5lIFdURl9QTEFURk9STV9DT0NPQSAxCi0jZW5kaWYKLQotI2lmIFBM
QVRGT1JNKENPQ09BKQotI2lmIGRlZmluZWQgX19oYXNfaW5jbHVkZSAmJiBfX2hhc19pbmNsdWRl
KDxDb3JlRm91bmRhdGlvbi9DRlByaXYuaD4pCi0jZGVmaW5lIFVTRV9BUFBMRV9JTlRFUk5BTF9T
REsgMQotI2VuZGlmCi0jZW5kaWYKLQotLyogUExBVEZPUk0oQVBQTEVUVikgKi8KLSNpZiBkZWZp
bmVkKFRBUkdFVF9PU19UVikgJiYgVEFSR0VUX09TX1RWCi0jZGVmaW5lIFdURl9QTEFURk9STV9B
UFBMRVRWIDEKLSNlbmRpZgotCi0vKiBQTEFURk9STShXQVRDSE9TKSAqLwotI2lmIGRlZmluZWQo
VEFSR0VUX09TX1dBVENIKSAmJiBUQVJHRVRfT1NfV0FUQ0gKLSNkZWZpbmUgV1RGX1BMQVRGT1JN
X1dBVENIT1MgMQotI2VuZGlmCi0KIC8qIEZJWE1FOiBBU1NFUlRfRU5BQkxFRCBzaG91bGQgZGVm
aW5lZCBpbiBkaWZmZXJlbnQsIHBlcmhhcHMgaXRzIG93biwgZmlsZS4gKi8KIC8qIEFTU0VSVF9F
TkFCTEVEIHNob3VsZCBiZSB0cnVlIGlmIHdlIHdhbnQgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24g
dW5pdCB0bwogICAgZG8gZGVidWcgYXNzZXJ0aW9uIGNoZWNrcyB1bmNvbmRpdGlvbmFsbHkgKGUu
Zy4gdHJlYXQgYSBkZWJ1ZyBBU1NFUlQKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTGVn
YWN5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1MZWdhY3kuaAkocmV2
aXNpb24gMjU0NTUwKQkoZnJvbSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oOjI1NDU1MCkKKysr
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTGVnYWN5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMTcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMDkgVG9yY2ggTW9iaWxl
LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEgUmVzZWFyY2ggSW4gTW90aW9uIExp
bWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisvKiBJbmNsdWRlIGNvbXBpbGVyIHNwZWNp
ZmljIG1hY3JvcyAqLworI2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgorCisvKiBJbmNsdWRlIENQ
VSBzcGVjaWZpYyBtYWNyb3MgKi8KKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm1DUFUuaD4KKworLyog
SW5jbHVkZSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW0gc3BlY2lmaWMgbWFjcm9zICovCisj
aW5jbHVkZSA8d3RmL1BsYXRmb3JtT1MuaD4KKworLyogPT09PSBQTEFURk9STSBoYW5kbGVzIE9T
LCBvcGVyYXRpbmcgZW52aXJvbm1lbnQsIGdyYXBoaWNzIEFQSSwgYW5kCisgICBDUFUuIFRoaXMg
bWFjcm8gd2lsbCBiZSBwaGFzZWQgb3V0IGluIGZhdm9yIG9mIHBsYXRmb3JtIGFkYXB0YXRpb24K
KyAgIG1hY3JvcywgcG9saWN5IGRlY2lzaW9uIG1hY3JvcywgYW5kIHRvcC1sZXZlbCBwb3J0IGRl
ZmluaXRpb25zLiA9PT09ICovCisjZGVmaW5lIFBMQVRGT1JNKFdURl9GRUFUVVJFKSAoZGVmaW5l
ZCBXVEZfUExBVEZPUk1fIyNXVEZfRkVBVFVSRSAgJiYgV1RGX1BMQVRGT1JNXyMjV1RGX0ZFQVRV
UkUpCisKKworLyogPT09PSBQbGF0Zm9ybSBhZGFwdGF0aW9uIG1hY3JvczogdGhlc2UgZGVzY3Jp
YmUgcHJvcGVydGllcyBvZiB0aGUgdGFyZ2V0IGVudmlyb25tZW50LiA9PT09ICovCisKKy8qIEhB
VkUoKSAtIHNwZWNpZmljIHN5c3RlbSBmZWF0dXJlcyAoaGVhZGVycywgZnVuY3Rpb25zIG9yIHNp
bWlsYXIpIHRoYXQgYXJlIHByZXNlbnQgb3Igbm90ICovCisjZGVmaW5lIEhBVkUoV1RGX0ZFQVRV
UkUpIChkZWZpbmVkIEhBVkVfIyNXVEZfRkVBVFVSRSAgJiYgSEFWRV8jI1dURl9GRUFUVVJFKQor
CisKKy8qID09PT0gUG9saWN5IGRlY2lzaW9uIG1hY3JvczogdGhlc2UgZGVmaW5lIHBvbGljeSBj
aG9pY2VzIGZvciBhIHBhcnRpY3VsYXIgcG9ydC4gPT09PSAqLworCisvKiBVU0UoKSAtIHVzZSBh
IHBhcnRpY3VsYXIgdGhpcmQtcGFydHkgbGlicmFyeSBvciBvcHRpb25hbCBPUyBzZXJ2aWNlICov
CisjZGVmaW5lIFVTRShXVEZfRkVBVFVSRSkgKGRlZmluZWQgVVNFXyMjV1RGX0ZFQVRVUkUgICYm
IFVTRV8jI1dURl9GRUFUVVJFKQorLyogRU5BQkxFKCkgLSB0dXJuIG9uIGEgc3BlY2lmaWMgZmVh
dHVyZSBvZiBXZWJLaXQgKi8KKyNkZWZpbmUgRU5BQkxFKFdURl9GRUFUVVJFKSAoZGVmaW5lZCBF
TkFCTEVfIyNXVEZfRkVBVFVSRSAgJiYgRU5BQkxFXyMjV1RGX0ZFQVRVUkUpCisKKworLyogTUlQ
UyByZXF1aXJlcyBhbGxvY2F0b3JzIHRvIHVzZSBhbGlnbmVkIG1lbW9yeSAqLworI2lmIENQVShN
SVBTKSB8fCBDUFUoTUlQUzY0KQorI2RlZmluZSBVU0VfQVJFTkFfQUxMT0NfQUxJR05NRU5UX0lO
VEVHRVIgMQorI2VuZGlmCisKKy8qQVJNdjVURSByZXF1aXJlcyBhbGxvY2F0b3JzIHRvIHVzZSBh
bGlnbmVkIG1lbW9yeSovCisjaWYgZGVmaW5lZChfX0FSTV9BUkNIXzVFX18pIHx8IGRlZmluZWQo
X19BUk1fQVJDSF81VEVfXykgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzVURUpfXykKKyNkZWZpbmUg
VVNFX0FSRU5BX0FMTE9DX0FMSUdOTUVOVF9JTlRFR0VSIDEKKyNlbmRpZgorCisvKkFSTXY1VEUg
cmVxdWlyZXMgYWxsb2NhdG9ycyB0byB1c2UgYWxpZ25lZCBtZW1vcnkqLworI2lmIGRlZmluZWQo
X19UQVJHRVRfQVJDSF81RSkgfHwgZGVmaW5lZChfX1RBUkdFVF9BUkNIXzVURSkgfHwgZGVmaW5l
ZChfX1RBUkdFVF9BUkNIXzVURUopCisjZGVmaW5lIFVTRV9BUkVOQV9BTExPQ19BTElHTk1FTlRf
SU5URUdFUiAxCisjZW5kaWYKKworI2lmIENQVShBUk1fTkVPTikKKy8qIEFsbCBORU9OIGludHJp
bnNpY3MgdXNhZ2UgY2FuIGJlIGRpc2FibGVkIGJ5IHRoaXMgbWFjcm8uICovCisjZGVmaW5lIEhB
VkVfQVJNX05FT05fSU5UUklOU0lDUyAxCisjZW5kaWYKKworLyogRklYTUU6IFRoaXMgc2hvdWxk
IGJlIHJlbmFtZWQgdG8gV1RGX0NQVV9BUk1fSURJVl9JTlNUUlVDVElPTlMgYW5kIG1vdmVkIHRv
IENQVS5oICovCisjaWYgZGVmaW5lZChfX0FSTV9BUkNIX0VYVF9JRElWX18pIHx8IENQVShBUFBM
RV9BUk1WN1MpCisjZGVmaW5lIEhBVkVfQVJNX0lESVZfSU5TVFJVQ1RJT05TIDEKKyNlbmRpZgor
CisKKworLyogT3BlcmF0aW5nIGVudmlyb25tZW50cyAqLworCisKKy8qIEZJWE1FOiBSZW5hbWUg
V1RGX0NQVV9FRkZFQ1RJVkVfQUREUkVTU19XSURUSCB0byBXVEZfT1NfRUZGRUNUSVZFX0FERFJF
U1NfV0lEVEgsIGFzIGl0IGlzIGFuIE9TIGZlYXR1cmUsIG5vdCBhIENQVSBmZWF0dXJlLiAqLwor
I2lmIENQVShBRERSRVNTNjQpCisjaWYgT1MoREFSV0lOKSAmJiBDUFUoQVJNNjQpCisjZGVmaW5l
IFdURl9DUFVfRUZGRUNUSVZFX0FERFJFU1NfV0lEVEggMzYKKyNlbHNlCisvKiBXZSBzdHJvbmds
eSBhc3N1bWUgdGhhdCBlZmZlY3RpdmUgYWRkcmVzcyB3aWR0aCBpcyA8PSA0OCBpbiA2NGJpdCBh
cmNoaXRlY3R1cmVzIChlLmcuIE5hTiBib3hpbmcpLiAqLworI2RlZmluZSBXVEZfQ1BVX0VGRkVD
VElWRV9BRERSRVNTX1dJRFRIIDQ4CisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIFdURl9DUFVfRUZG
RUNUSVZFX0FERFJFU1NfV0lEVEggMzIKKyNlbmRpZgorCisvKiBFeHBvcnQgbWFjcm8gc3VwcG9y
dC4gRGV0ZWN0cyB0aGUgYXR0cmlidXRlcyBhdmFpbGFibGUgZm9yIHNoYXJlZCBsaWJyYXJ5IHN5
bWJvbCBleHBvcnQKKyAgIGRlY29yYXRpb25zLiAqLworI2lmIE9TKFdJTkRPV1MpIHx8IChDT01Q
SUxFUl9IQVNfQ0xBTkdfREVDTFNQRUMoZGxsaW1wb3J0KSAmJiBDT01QSUxFUl9IQVNfQ0xBTkdf
REVDTFNQRUMoZGxsZXhwb3J0KSkKKyNkZWZpbmUgVVNFX0RFQ0xTUEVDX0FUVFJJQlVURSAxCisj
ZGVmaW5lIFVTRV9WSVNJQklMSVRZX0FUVFJJQlVURSAwCisjZWxpZiBkZWZpbmVkKF9fR05VQ19f
KQorI2RlZmluZSBVU0VfREVDTFNQRUNfQVRUUklCVVRFIDAKKyNkZWZpbmUgVVNFX1ZJU0lCSUxJ
VFlfQVRUUklCVVRFIDEKKyNlbHNlCisjZGVmaW5lIFVTRV9ERUNMU1BFQ19BVFRSSUJVVEUgMAor
I2RlZmluZSBVU0VfVklTSUJJTElUWV9BVFRSSUJVVEUgMAorI2VuZGlmCisKKy8qIFN0YW5kYXJk
IGxpYnJhcmllcyAqLworI2lmIGRlZmluZWQoSEFWRV9GRUFUVVJFU19IKSAmJiBIQVZFX0ZFQVRV
UkVTX0gKKy8qIElmIHRoZSBpbmNsdWRlZCBmZWF0dXJlcy5oIGlzIGdsaWJjJ3Mgb25lLCBfX0dM
SUJDX18gaXMgZGVmaW5lZC4gKi8KKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorI2VuZGlmCisKKy8q
IEZJWE1FOiB0aGVzZSBhcmUgYWxsIG1peGVzIG9mIE9TLCBvcGVyYXRpbmcgZW52aXJvbm1lbnQg
YW5kIHBvbGljeSBjaG9pY2VzLiAqLworLyogUExBVEZPUk0oR1RLKSAqLworLyogUExBVEZPUk0o
TUFDKSAqLworLyogUExBVEZPUk0oSU9TKSAqLworLyogUExBVEZPUk0oSU9TX0ZBTUlMWSkgKi8K
Ky8qIFBMQVRGT1JNKElPU19TSU1VTEFUT1IpICovCisvKiBQTEFURk9STShJT1NfRkFNSUxZX1NJ
TVVMQVRPUikgKi8KKy8qIFBMQVRGT1JNKFdJTikgKi8KKyNpZiBkZWZpbmVkKEJVSUxESU5HX0dU
S19fKQorI2RlZmluZSBXVEZfUExBVEZPUk1fR1RLIDEKKyNlbGlmIGRlZmluZWQoQlVJTERJTkdf
V1BFX18pCisjZGVmaW5lIFdURl9QTEFURk9STV9XUEUgMQorI2VsaWYgZGVmaW5lZChCVUlMRElO
R19KU0NPTkxZX18pCisvKiBKU0NPbmx5IGRvZXMgbm90IHByb3ZpZGUgUExBVEZPUk0oKSBtYWNy
byAqLworI2VsaWYgT1MoTUFDX09TX1gpCisjZGVmaW5lIFdURl9QTEFURk9STV9NQUMgMQorI2Vs
aWYgT1MoSU9TX0ZBTUlMWSkKKyNpZiBPUyhJT1MpCisjZGVmaW5lIFdURl9QTEFURk9STV9JT1Mg
MQorI2VuZGlmCisjZGVmaW5lIFdURl9QTEFURk9STV9JT1NfRkFNSUxZIDEKKyNpZiBUQVJHRVRf
T1NfU0lNVUxBVE9SCisjaWYgT1MoSU9TKQorI2RlZmluZSBXVEZfUExBVEZPUk1fSU9TX1NJTVVM
QVRPUiAxCisjZW5kaWYKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX0lPU19GQU1JTFlfU0lNVUxBVE9S
IDEKKyNlbmRpZgorI2lmIGRlZmluZWQoVEFSR0VUX09TX01BQ0NBVEFMWVNUKSAmJiBUQVJHRVRf
T1NfTUFDQ0FUQUxZU1QKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX01BQ0NBVEFMWVNUIDEKKyNlbmRp
ZgorI2VsaWYgT1MoV0lORE9XUykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dJTiAxCisjZW5kaWYK
KworLyogUExBVEZPUk0oQ09DT0EpICovCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJ
T1NfRkFNSUxZKQorI2RlZmluZSBXVEZfUExBVEZPUk1fQ09DT0EgMQorI2VuZGlmCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyNpZiBkZWZpbmVkIF9faGFzX2luY2x1ZGUgJiYgX19oYXNfaW5jbHVk
ZSg8Q29yZUZvdW5kYXRpb24vQ0ZQcml2Lmg+KQorI2RlZmluZSBVU0VfQVBQTEVfSU5URVJOQUxf
U0RLIDEKKyNlbmRpZgorI2VuZGlmCisKKy8qIFBMQVRGT1JNKEFQUExFVFYpICovCisjaWYgZGVm
aW5lZChUQVJHRVRfT1NfVFYpICYmIFRBUkdFVF9PU19UVgorI2RlZmluZSBXVEZfUExBVEZPUk1f
QVBQTEVUViAxCisjZW5kaWYKKworLyogUExBVEZPUk0oV0FUQ0hPUykgKi8KKyNpZiBkZWZpbmVk
KFRBUkdFVF9PU19XQVRDSCkgJiYgVEFSR0VUX09TX1dBVENICisjZGVmaW5lIFdURl9QTEFURk9S
TV9XQVRDSE9TIDEKKyNlbmRpZgorCisvKiBGSVhNRTogQVNTRVJUX0VOQUJMRUQgc2hvdWxkIGRl
ZmluZWQgaW4gZGlmZmVyZW50LCBwZXJoYXBzIGl0cyBvd24sIGZpbGUuICovCisvKiBBU1NFUlRf
RU5BQkxFRCBzaG91bGQgYmUgdHJ1ZSBpZiB3ZSB3YW50IHRoZSBjdXJyZW50IGNvbXBpbGF0aW9u
IHVuaXQgdG8KKyAgIGRvIGRlYnVnIGFzc2VydGlvbiBjaGVja3MgdW5jb25kaXRpb25hbGx5IChl
LmcuIHRyZWF0IGEgZGVidWcgQVNTRVJUCisgICBsaWtlIGEgUkVMRUFTRV9BU1NFUlQuCisqLwor
I2lmbmRlZiBBU1NFUlRfRU5BQkxFRAorI2lmZGVmIE5ERUJVRworI2RlZmluZSBBU1NFUlRfRU5B
QkxFRCAwCisjZWxzZQorI2RlZmluZSBBU1NFUlRfRU5BQkxFRCAxCisjZW5kaWYKKyNlbmRpZgor
CisKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfQ0cgMQorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUgVVNFX0NBIDEKKyNlbmRpZgorCisjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisjZGVmaW5lIFVTRV9HTElCIDEKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisjZGVmaW5lIFVTRV9GUkVFVFlQRSAx
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQorI2RlZmluZSBV
U0VfSEFSRkJVWlogMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkKKyNkZWZpbmUgVVNFX1NPVVAgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEspIHx8IFBM
QVRGT1JNKFdQRSkKKyNkZWZpbmUgVVNFX1dFQlAgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShH
VEspCisjZGVmaW5lIEdMSUJfVkVSU0lPTl9NSU5fUkVRVUlSRUQgR0xJQl9WRVJTSU9OXzJfMzYK
KyNkZWZpbmUgR0RLX1ZFUlNJT05fTUlOX1JFUVVJUkVEIEdES19WRVJTSU9OXzNfNgorI2VuZGlm
CisKKyNpZiBQTEFURk9STShXUEUpCisjZGVmaW5lIEdMSUJfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
R0xJQl9WRVJTSU9OXzJfNDAKKyNlbmRpZgorCisjaWYgVVNFKFNPVVApCisjZGVmaW5lIFNPVVBf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgU09VUF9WRVJTSU9OXzJfNDIKKyNlbmRpZgorCisvKiBPbiBX
aW5kb3dzLCB1c2UgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIgYnkgZGVmYXVsdCAqLworI2lmIE9T
KFdJTkRPV1MpCisjZGVmaW5lIFVTRV9RVUVSWV9QRVJGT1JNQU5DRV9DT1VOVEVSICAxCisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX09VVF9PRl9QUk9DRVNTX0xB
WUVSX0hPU1RJTkcgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUgVVNF
X0NGIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IChQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkpCisjZGVmaW5lIFVTRV9GSUxFX0xPQ0sgMQorI2VuZGlmCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyNkZWZpbmUgVVNFX0ZPVU5EQVRJT04gMQorI2VuZGlmCisKKyNpZiBQ
TEFURk9STShDT0NPQSkKKyNkZWZpbmUgVVNFX05FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNL
IDEKKyNlbmRpZgorCisKKyNpZiBQTEFURk9STShDT0NPQSkKKy8qIENvY29hIGRlZmluZXMgYSBz
ZXJpZXMgb2YgcGxhdGZvcm0gbWFjcm9zIGZvciBkZWJ1Z2dpbmcuICovCisvKiBTb21lIG9mIHRo
ZW0gYXJlIHJlYWxseSBhbm5veWluZyBiZWNhdXNlIHRoZXkgdXNlIGNvbW1vbiBuYW1lcyAoZS5n
LiBjaGVjaygpKS4gKi8KKy8qIERpc2FibGUgdGhvc2UgbWFjcm9zIHNvIHRoYXQgd2UgYXJlIG5v
dCBsaW1pdGVkIGluIGhvdyB3ZSBuYW1lIG1ldGhvZHMgYW5kIGZ1bmN0aW9ucy4gKi8KKyN1bmRl
ZiBfX0FTU0VSVF9NQUNST1NfREVGSU5FX1ZFUlNJT05TX1dJVEhPVVRfVU5ERVJTQ09SRVMKKyNk
ZWZpbmUgX19BU1NFUlRfTUFDUk9TX0RFRklORV9WRVJTSU9OU19XSVRIT1VUX1VOREVSU0NPUkVT
IDAKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX1JVTkxPT1BfVElN
RVIgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIEhBVkVfU0VDX0tFWUNI
QUlOIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX0hJU0VSVklD
RVMgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIFVTRV9BUFBLSVQgMQor
I2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisjZGVmaW5lIFVTRV9QQVNTS0lUIDEKKyNlbmRp
ZgorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX05FVFdPUktfRVhURU5TSU9OIDEK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBVU0VfUExVR0lOX0hPU1RfUFJP
Q0VTUyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEhBVkVf
TkVUV09SS19FWFRFTlNJT04gMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
I2RlZmluZSBIQVZFX1JFQURMSU5FIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKyNkZWZpbmUgVVNFX1VJS0lUX0VESVRJTkcgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorI2RlZmluZSBVU0VfV0VCX1RIUkVBRCAxCisjZW5kaWYKKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIENQVShBUk1fTkVPTikKKyN1bmRlZiBIQVZFX0FSTV9ORU9OX0lO
VFJJTlNJQ1MKKyNkZWZpbmUgSEFWRV9BUk1fTkVPTl9JTlRSSU5TSUNTIDAKKyNlbmRpZgorCisj
aWYgIWRlZmluZWQoSEFWRV9QREZIT1NUVklFV0NPTlRST0xMRVJfU05BUFNIT1RUSU5HKSAmJiBQ
TEFURk9STShJT1MpCisjZGVmaW5lIEhBVkVfUERGSE9TVFZJRVdDT05UUk9MTEVSX1NOQVBTSE9U
VElORyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEhBVkVfVklTSUJJTElUWV9QUk9QQUdBVElP
Tl9WSUVXKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmluZSBIQVZFX1ZJU0lCSUxJVFlf
UFJPUEFHQVRJT05fVklFVyAxCisjZW5kaWYKKworI2lmICFkZWZpbmVkKEhBVkVfVUlTQ0VORSkg
JiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9VSVNDRU5FIDEKKyNlbmRpZgor
CisjaWYgIWRlZmluZWQoSEFWRV9BVlNUUkVBTVNFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKKyNk
ZWZpbmUgSEFWRV9BVlNUUkVBTVNFU1NJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChIQVZF
X1BBU1NLSVRfQVBJX1RZUEUpICYmIChQTEFURk9STShJT1NfRkFNSUxZKSB8fCBQTEFURk9STShN
QUMpKQorI2RlZmluZSBIQVZFX1BBU1NLSVRfQVBJX1RZUEUgMQorI2VuZGlmCisKKyNpZiAhZGVm
aW5lZChIQVZFX1BBU1NLSVRfQk9VTkRfSU5URVJGQUNFX0lERU5USUZJRVIpICYmIChQTEFURk9S
TShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxNDAwKSkKKyNkZWZpbmUgSEFWRV9QQVNTS0lUX0JPVU5EX0lOVEVSRkFDRV9JREVO
VElGSUVSIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoVVNFX1VJS0lUX0tFWUJPQVJEX0FERElU
SU9OUykgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpKQorI2RlZmlu
ZSBVU0VfVUlLSVRfS0VZQk9BUkRfQURESVRJT05TIDEKKyNlbmRpZgorCisKKyNpZiAhZGVmaW5l
ZChIQVZFX0FDQ0VTU0lCSUxJVFkpICYmIChQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oV0lO
KSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCisjZGVmaW5lIEhBVkVfQUNDRVNT
SUJJTElUWSAxCisjZW5kaWYKKworLyogRklYTUU6IFJlbW92ZSBhZnRlciBDTWFrZSBidWlsZCBl
bmFibGVkIG9uIERhcndpbiAqLworI2lmIE9TKERBUldJTikKKyNkZWZpbmUgSEFWRV9FUlJOT19I
IDEKKyNlbmRpZgorCisjaWYgT1MoREFSV0lOKQorI2RlZmluZSBIQVZFX0xBTkdJTkZPX0ggMQor
I2VuZGlmCisKKyNpZiBPUyhEQVJXSU4pCisjZGVmaW5lIEhBVkVfTE9DQUxUSU1FX1IgMQorI2Vu
ZGlmCisKKyNpZiBPUyhEQVJXSU4pCisjZGVmaW5lIEhBVkVfTU1BUCAxCisjZW5kaWYKKworI2lm
IE9TKERBUldJTikKKyNkZWZpbmUgSEFWRV9SRUdFWF9IIDEKKyNlbmRpZgorCisjaWYgT1MoREFS
V0lOKQorI2RlZmluZSBIQVZFX1NJR05BTF9IIDEKKyNlbmRpZgorCisjaWYgT1MoREFSV0lOKQor
I2RlZmluZSBIQVZFX1NUQVRfQklSVEhUSU1FIDEKKyNlbmRpZgorCisjaWYgT1MoREFSV0lOKQor
I2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCisjZW5kaWYKKworI2lmIE9TKERBUldJTikKKyNkZWZp
bmUgSEFWRV9TVFJOU1RSIDEKKyNlbmRpZgorCisjaWYgT1MoREFSV0lOKQorI2RlZmluZSBIQVZF
X1NZU19QQVJBTV9IIDEKKyNlbmRpZgorCisjaWYgT1MoREFSV0lOKQorI2RlZmluZSBIQVZFX1NZ
U19USU1FX0ggMQorI2VuZGlmCisKKyNpZiBPUyhEQVJXSU4pCisjZGVmaW5lIEhBVkVfVE1fR01U
T0ZGIDEKKyNlbmRpZgorCisjaWYgT1MoREFSV0lOKQorI2RlZmluZSBIQVZFX1RNX1pPTkUgMQor
I2VuZGlmCisKKyNpZiBPUyhEQVJXSU4pCisjZGVmaW5lIEhBVkVfVElNRUdNIDEKKyNlbmRpZgor
CisjaWYgT1MoREFSV0lOKQorI2RlZmluZSBIQVZFX1BUSFJFQURfTUFJTl9OUCAxCisjZW5kaWYK
KworI2lmIE9TKERBUldJTikgJiYgKENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCisjZGVmaW5l
IEhBVkVfSU5UMTI4X1QgMQorI2VuZGlmCisKKyNpZiBPUyhVTklYKQorI2RlZmluZSBVU0VfUFRI
UkVBRFMgMQorI2VuZGlmCisKKyNpZiBPUyhVTklYKSAmJiAhT1MoRlVDSFNJQSkKKyNkZWZpbmUg
SEFWRV9SRVNPVVJDRV9IIDEKKyNlbmRpZgorCisjaWYgT1MoVU5JWCkgJiYgIU9TKEZVQ0hTSUEp
CisjZGVmaW5lIEhBVkVfUFRIUkVBRF9TRVRTQ0hFRFBBUkFNIDEKKyNlbmRpZgorCisjaWYgT1Mo
REFSV0lOKQorI2RlZmluZSBIQVZFX0RJU1BBVENIX0ggMQorI2VuZGlmCisKKyNpZiBPUyhEQVJX
SU4pCisjZGVmaW5lIEhBVkVfTUFEVl9GUkVFIDEKKyNlbmRpZgorCisjaWYgT1MoREFSV0lOKQor
I2RlZmluZSBIQVZFX01BRFZfRlJFRV9SRVVTRSAxCisjZW5kaWYKKworI2lmIE9TKERBUldJTikK
KyNkZWZpbmUgSEFWRV9NQURWX0RPTlRORUVEIDEKKyNlbmRpZgorCisjaWYgT1MoREFSV0lOKQor
I2RlZmluZSBIQVZFX01FUkdFU09SVCAxCisjZW5kaWYKKworI2lmIE9TKERBUldJTikKKyNkZWZp
bmUgSEFWRV9QVEhSRUFEX1NFVE5BTUVfTlAgMQorI2VuZGlmCisKKyNpZiBPUyhEQVJXSU4pCisj
ZGVmaW5lIEhBVkVfUkVBRExJTkUgMQorI2VuZGlmCisKKyNpZiBPUyhEQVJXSU4pCisjZGVmaW5l
IEhBVkVfU1lTX1RJTUVCX0ggMQorI2VuZGlmCisKKyNpZiBPUyhEQVJXSU4pCisjZGVmaW5lIEhB
VkVfQVVESVRfVE9LRU4gMQorI2VuZGlmCisKKyNpZiBPUyhEQVJXSU4pICYmIF9faGFzX2luY2x1
ZGUoPG1hY2gvbWFjaF9leGMuZGVmcz4pICYmICFQTEFURk9STShHVEspCisjZGVmaW5lIEhBVkVf
TUFDSF9FWENFUFRJT05TIDEKKyNlbmRpZgorCisjaWYgT1MoREFSV0lOKSAmJiAhUExBVEZPUk0o
R1RLKQorI2RlZmluZSBVU0VfQUNDRUxFUkFURSAxCisjZW5kaWYKKworI2lmIE9TKERBUldJTikg
JiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEhBVkVfSE9TVEVEX0NPUkVfQU5JTUFU
SU9OIDEKKyNlbmRpZgorCisKKyNpZiBPUyhEQVJXSU4pIHx8IE9TKEZVQ0hTSUEpIHx8ICgoT1Mo
RlJFRUJTRCkgfHwgZGVmaW5lZChfX0dMSUJDX18pIHx8IGRlZmluZWQoX19CSU9OSUNfXykpICYm
IChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNKSB8fCBDUFUoQVJNNjQpIHx8IENQ
VShNSVBTKSkpCisjZGVmaW5lIEhBVkVfTUFDSElORV9DT05URVhUIDEKKyNlbmRpZgorCisjaWYg
T1MoREFSV0lOKSB8fCAoT1MoTElOVVgpICYmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5l
ZChfX1VDTElCQ19fKSAmJiAhQ1BVKE1JUFMpKQorI2RlZmluZSBIQVZFX0JBQ0tUUkFDRSAxCisj
ZW5kaWYKKworI2lmIE9TKERBUldJTikgfHwgT1MoTElOVVgpCisjaWYgUExBVEZPUk0oR1RLKQor
I2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKSAmJiAhQ1BVKE1J
UFMpCisjZGVmaW5lIEhBVkVfQkFDS1RSQUNFX1NZTUJPTFMgMQorI2VuZGlmCisjZW5kaWYgLyog
UExBVEZPUk0oR1RLKSAqLworI2RlZmluZSBIQVZFX0RMQUREUiAxCisjZW5kaWYgLyogT1MoREFS
V0lOKSB8fCBPUyhMSU5VWCkgKi8KKworCisjaWYgT1MoV0lORE9XUykKKyNkZWZpbmUgVVNFX1NZ
U1RFTV9NQUxMT0MgMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChVU0VfSlNWQUxVRTY0KSAmJiAh
ZGVmaW5lZChVU0VfSlNWQUxVRTMyXzY0KQorI2lmIENQVShBRERSRVNTNjQpIHx8IENQVShBUk02
NCkKKyNkZWZpbmUgVVNFX0pTVkFMVUU2NCAxCisjZWxzZQorI2RlZmluZSBVU0VfSlNWQUxVRTMy
XzY0IDEKKyNlbmRpZgorI2VuZGlmIC8qICFkZWZpbmVkKFVTRV9KU1ZBTFVFNjQpICYmICFkZWZp
bmVkKFVTRV9KU1ZBTFVFMzJfNjQpICovCisKKyNpZiBfX2hhc19pbmNsdWRlKDxTeXN0ZW0vcHRo
cmVhZF9tYWNoZGVwLmg+KQorI2RlZmluZSBIQVZFX0ZBU1RfVExTIDEKKyNlbmRpZgorCisjaWYg
Q09NUElMRVIoR0NDX0NPTVBBVElCTEUpCisjZGVmaW5lIEhBVkVfQ09NUFVURURfR09UTyAxCisj
ZW5kaWYKKworLyogRklYTUU6IFRoaXMgbmFtZSBzaG91bGQgYmUgbW9yZSBzcGVjaWZpYyBpZiBp
dCBpcyBvbmx5IGZvciB1c2Ugd2l0aCBDYWxsRnJhbWUqICovCisvKiBVc2UgX19idWlsdGluX2Zy
YW1lX2FkZHJlc3MoMSkgdG8gZ2V0IENhbGxGcmFtZSogKi8KKyNpZiBDT01QSUxFUihHQ0NfQ09N
UEFUSUJMRSkgJiYgKENQVShBUk02NCkgfHwgQ1BVKFg4Nl82NCkpCisjZGVmaW5lIFVTRV9CVUlM
VElOX0ZSQU1FX0FERFJFU1MgMQorI2VuZGlmCisKKyNpZiBDUFUoQVJNNjRFKSAmJiBPUyhEQVJX
SU4pCisjZGVmaW5lIEhBVkVfRkpDVlRaU19JTlNUUlVDVElPTiAxCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKElPUykKKyNkZWZpbmUgSEFWRV9BUFBfTElOS1MgMQorI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShJT1MpCisjZGVmaW5lIFVTRV9QQVNTS0lUIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
SU9TKQorI2RlZmluZSBVU0VfUVVJQ0tfTE9PSyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElP
UykKKyNkZWZpbmUgVVNFX1NZU1RFTV9QUkVWSUVXIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBIQVZFX0NFTEVT
VElBTCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShN
QUNDQVRBTFlTVCkKKyNkZWZpbmUgSEFWRV9DT1JFX0FOSU1BVElPTl9SRU5ERVJfU0VSVkVSIDEK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFM
WVNUKSAmJiAhUExBVEZPUk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9QQVJFTlRBTF9DT05UUk9M
U19XSVRIX1VOQkxPQ0tfSEFORExFUiAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQor
I2RlZmluZSBVU0VfQVZGT1VOREFUSU9OIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0Ep
CisjZGVmaW5lIFVTRV9QUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0sgMQorI2VuZGlmCisK
Ky8qIEZJWE1FOiBFbmFibGUgSEFWRV9QQVJFTlRBTF9DT05UUk9MUyBmb3Igd2F0Y2hPUyBTaW11
bGF0b3Igb25jZSByZGFyOi8vcHJvYmxlbS81NDYwODM4NiBpcyByZXNvbHZlZCAqLworI2lmIFBM
QVRGT1JNKENPQ09BKSAmJiAoIVBMQVRGT1JNKEFQUExFVFYpICYmICghUExBVEZPUk0oV0FUQ0hP
UykgfHwgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSkpCisjZGVmaW5lIEhBVkVfUEFS
RU5UQUxfQ09OVFJPTFMgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRG
T1JNKEFQUExFVFYpCisjZGVmaW5lIEhBVkVfQVZLSVQgMQorI2VuZGlmCisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyNkZWZpbmUgVVNFX01FVEFMIDEKKyNlbmRpZgorCisKKyNpZiBVU0UoR0xJQikK
KyNpbmNsdWRlIDx3dGYvZ2xpYi9HVHlwZWRlZnMuaD4KKyNlbmRpZgorCisjaWYgIWRlZmluZWQo
VVNFX0VYUE9SVF9NQUNST1MpICYmIChQTEFURk9STShDT0NPQSkgfHwgT1MoV0lORE9XUykpCisj
ZGVmaW5lIFVTRV9FWFBPUlRfTUFDUk9TIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCisjZGVmaW5lIFVTRV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKKyNlbmRp
ZgorCisjaWYgIWRlZmluZWQoVVNFX0lNTEFOR19GT05UX0xJTksyKQorI2RlZmluZSBVU0VfSU1M
QU5HX0ZPTlRfTElOSzIgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUg
VVNFX0NPUkVNRURJQSAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBV
U0VfVklERU9UT09MQk9YIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5l
IEhBVkVfQVZGT1VOREFUSU9OX1ZJREVPX09VVFBVVCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JN
KENPQ09BKQorI2RlZmluZSBIQVZFX0NPUkVfVklERU8gMQorI2VuZGlmCisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKyNkZWZpbmUgSEFWRV9NRURJQV9QTEFZRVIgMQorI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dS
T1VQIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfQVZGT1VO
REFUSU9OX0xFR0lCTEVfT1VUUFVUX1NVUFBPUlQgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShD
T0NPQSkKKyNkZWZpbmUgSEFWRV9NRURJQV9BQ0NFU1NJQklMSVRZX0ZSQU1FV09SSyAxCisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0FWRk9VTkRBVElPTl9MT0FE
RVJfREVMRUdBVEUgMQorI2VuZGlmCisKKyNpZiAhUExBVEZPUk0oV0lOKQorI2RlZmluZSBVU0Vf
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SIDEKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgSEFWRV9BUFBM
RV9HUkFQSElDU19DT05UUk9MIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgSEFWRV9OU0NVUlNPUiAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgVVNFX0NPUkVBVURJTyAxCisjZW5kaWYKKworI2lmICFk
ZWZpbmVkKFVTRV9aTElCKQorI2RlZmluZSBVU0VfWkxJQiAxCisjZW5kaWYKKworI2lmICFkZWZp
bmVkKEhBVkVfUU9TX0NMQVNTRVMpICYmIFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX1FP
U19DTEFTU0VTIDEKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoSEFWRV9WT1VDSEVSUykgJiYgUExB
VEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfVk9VQ0hFUlMgMQorI2VuZGlmCisKKyNkZWZpbmUg
VVNFX0dSQU1NQVJfQ0hFQ0tJTkcgMQorCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykKKyNkZWZpbmUgVVNFX1VOSUZJRURfVEVYVF9DSEVDS0lORyAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKE1BQykKKyNkZWZpbmUgVVNFX0FVVE9NQVRJQ19URVhUX1JFUExBQ0VNRU5UIDEK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorLyogU29tZSBwbGF0Zm9ybXMgcHJvdmlkZSBV
SSBmb3Igc3VnZ2VzdGluZyBhdXRvY29ycmVjdGlvbi4gKi8KKyNkZWZpbmUgVVNFX0FVVE9DT1JS
RUNUSU9OX1BBTkVMIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisvKiBTb21lIHBs
YXRmb3JtcyB1c2Ugc3BlbGxpbmcgYW5kIGF1dG9jb3JyZWN0aW9uIG1hcmtlcnMgdG8gcHJvdmlk
ZSB2aXN1YWwgY3VlLiBPbiBzdWNoIHBsYXRmb3JtLCBpZiB3b3JkIHdpdGggbWFya2VyIGlzIGVk
aXRlZCwgd2UgbmVlZCB0byByZW1vdmUgdGhlIG1hcmtlci4gKi8KKyNkZWZpbmUgVVNFX01BUktF
Ul9SRU1PVkFMX1VQT05fRURJVElORyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKyNk
ZWZpbmUgVVNFX0lOU0VSVElPTl9VTkRPX0dST1VQSU5HIDEKKyNlbmRpZgorCisjaWYgUExBVEZP
Uk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfQVZBU1NFVFJFQURFUiAxCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfQVVESU9fU0VTU0lPTiAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBIQVZFX0lPU1VSRkFDRSAxCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikK
KyNkZWZpbmUgSEFWRV9JT1NVUkZBQ0VfQ09SRUlNQUdFX1NVUFBPUlQgMQorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1Ip
ICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgSEFWRV9JT1NVUkZBQ0VfQUNDRUxF
UkFUT1IgMQorI2VuZGlmCisKKyNpZiBDT01QSUxFUihNU1ZDKQorI3VuZGVmIF9fU1REQ19GT1JN
QVRfTUFDUk9TCisjZGVmaW5lIF9fU1REQ19GT1JNQVRfTUFDUk9TCisjdW5kZWYgX19TVERDX0xJ
TUlUX01BQ1JPUworI2RlZmluZSBfX1NURENfTElNSVRfTUFDUk9TCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKE1BQykKKyNkZWZpbmUgSEFWRV9OU19BQ1RJVklUWSAxCisjZW5kaWYKKworCisvKiBT
ZXQgVEFSR0VUX09TX0lQSE9ORSB0byAwIGJ5IGRlZmF1bHQgdG8gYWxsb3cgdXNpbmcgaXQgYXMg
YSBndWFyZCAKKyAqIGluIGNyb3NzLXBsYXRmb3JtIHRoZSBzYW1lIHdheSBhcyBpdCBpcyB1c2Vk
IGluIE9TKERBUldJTikgY29kZS4gKi8gCisjaWYgIWRlZmluZWQoVEFSR0VUX09TX0lQSE9ORSkg
JiYgIU9TKERBUldJTikKKyNkZWZpbmUgVEFSR0VUX09TX0lQSE9ORSAwCisjZW5kaWYKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorI2RlZmluZSBVU0VfTUVESUFUT09MQk9YIDEKKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIFVTRV9PU19MT0cgMQorI2VuZGlmCisKKyNpZiBQ
TEFURk9STShDT0NPQSkgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNkZWZpbmUgVVNFX09T
X1NUQVRFIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjZGVmaW5lIEhBVkVfU0VD
X1RSVVNUX1NFUklBTElaQVRJT04gMQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChXVEZfREVGQVVM
VF9FVkVOVF9MT09QKQorI2RlZmluZSBXVEZfREVGQVVMVF9FVkVOVF9MT09QIDEKKyNlbmRpZgor
CisjaWYgV1RGX0RFRkFVTFRfRVZFTlRfTE9PUAorI2lmIFVTRShHTElCKQorLyogVXNlIEdMaWIn
cyBldmVudCBsb29wIGFic3RyYWN0aW9uLiBQcmltYXJpbHkgR1RLIHBvcnQgdXNlcyBpdC4gKi8K
KyNkZWZpbmUgVVNFX0dMSUJfRVZFTlRfTE9PUCAxCisjZWxpZiBPUyhXSU5ET1dTKQorLyogVXNl
IFdpbmRvd3MgbWVzc2FnZSBwdW1wIGFic3RyYWN0aW9uLgorICogRXZlbiBpZiB0aGUgcG9ydCBp
cyBBcHBsZVdpbiwgd2UgdXNlIHRoZSBXaW5kb3dzIG1lc3NhZ2UgcHVtcCBzeXN0ZW0gZm9yIHRo
ZSBldmVudCBsb29wLAorICogc28gdGhhdCBVU0UoV0lORE9XU19FVkVOVF9MT09QKSAmJiBVU0Uo
Q0YpIGNhbiBiZSB0cnVlLgorICogQW5kIFBMQVRGT1JNKFdJTikgYW5kIFBMQVRGT1JNKEdUSykg
YXJlIGV4Y2x1c2l2ZS4gSWYgdGhlIHBvcnQgaXMgR1RLLAorICogUExBVEZPUk0oV0lOKSBzaG91
bGQgYmUgZmFsc2UuIEFuZCBpbiB0aGF0IGNhc2UsIEdMaWIncyBldmVudCBsb29wIGlzIHVzZWQu
CisgKi8KKyNkZWZpbmUgVVNFX1dJTkRPV1NfRVZFTlRfTE9PUCAxCisjZWxpZiBQTEFURk9STShD
T0NPQSkKKy8qIE9TIFggYW5kIElPUy4gVXNlIENvcmVGb3VuZGF0aW9uICYgR0NEIGFic3RyYWN0
aW9uLiAqLworI2RlZmluZSBVU0VfQ09DT0FfRVZFTlRfTE9PUCAxCisjZWxzZQorI2RlZmluZSBV
U0VfR0VORVJJQ19FVkVOVF9MT09QIDEKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBQTEFURk9STShD
T0NPQSkKKyNkZWZpbmUgVVNFX01FRElBUkVNT1RFIDEKKyNlbmRpZgorCisjaWYgQ09NUElMRVIo
TVNWQykKKy8qIEVuYWJsZSBzdHJpY3QgcnVudGltZSBzdGFjayBidWZmZXIgY2hlY2tzLiAqLwor
I3ByYWdtYSBzdHJpY3RfZ3NfY2hlY2sob24pCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykK
KyNkZWZpbmUgSEFWRV9UT1VDSF9CQVIgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisj
ZGVmaW5lIFVTRV9ESUNUQVRJT05fQUxURVJOQVRJVkVTIDEKKyNlbmRpZgorCisKKyNpZiBQTEFU
Rk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpIHx8IFVT
RShHQ1JZUFQpCisjZGVmaW5lIEhBVkVfUlNBX1BTUyAxCisjZW5kaWYKKworI2lmIChQTEFURk9S
TShNQUMpICYmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQorI2RlZmluZSBV
U0VfU09VUkNFX0FQUExJQ0FUSU9OX0FVRElUX0RBVEEgMQorI2VuZGlmCisKKyNpZiAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwg
KFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEzMDAwMCkKKyNkZWZpbmUgSEFWRV9IU1RTX1NUT1JBR0VfUEFUSCAxCisjZW5kaWYKKwor
I2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxNDAwKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmlu
ZSBIQVZFX1VSTF9GT1JNQVRUSU5HIDEKKyNlbmRpZgorCisjaWYgIU9TKFdJTkRPV1MpCisjZGVm
aW5lIEhBVkVfU1RBQ0tfQk9VTkRTX0ZPUl9ORVdfVEhSRUFEIDEKKyNlbmRpZgorCisjaWYgUExB
VEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2Rl
ZmluZSBIQVZFX0FWQ09OVEVOVEtFWVNFU1NJT04gMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0o
TUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExB
VEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgSEFWRV9TRUNfS0VZ
X1BST1hZIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShDQSkKKyNkZWZp
bmUgVVNFX0lPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSAxCisjZW5kaWYKKworLyogRklY
TUU6IFNob3VsZCB0aGlzIGJlIGVuYWJsZWQgb3IgSU9TX0ZBTUlMWSwgbm90IGp1c3QgSU9TPyAq
LworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1MpCisjZGVmaW5lIEhBVkVfRk9VTkRBVElPTl9XSVRI
X1NBVkVfQ09PS0lFU19XSVRIX0NPTVBMRVRJT05fSEFORExFUiAxCisjZW5kaWYKKworLyogRklY
TUU6IFNob3VsZCB0aGlzIGJlIGVuYWJsZWQgZm9yIElPU19GQU1JTFksIG5vdCBqdXN0IElPUz8g
Ki8KKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TKQorI2RlZmluZSBIQVZFX0ZPVU5EQVRJT05fV0lU
SF9TQU1FX1NJVEVfQ09PS0lFX1NVUFBPUlQgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMTQwMAorI2RlZmluZSBIQVZF
X05TSFRUUENPT0tJRVNUT1JBR0VfX0lOSVRXSVRISURFTlRJRklFUl9XSVRIX0lOQUNDVVJBVEVf
TlVMTEFCSUxJVFkgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUgSEFW
RV9DRk5FVFdPUktfV0lUSF9DT05URU5UX0VOQ09ESU5HX1NOSUZGSU5HX09WRVJSSURFIDEKKy8q
IFRoZSBvdmVycmlkZSBpc24ndCBuZWVkZWQgb24gaU9TIGZhbWlseSwgYXMgdGhlIGRlZmF1bHQg
YmVoYXZpb3IgaXMgdG8gbm90IHNuaWZmLiAqLworLyogRklYTUU6IFRoaXMgc2hvdWxkIHByb2Jh
Ymx5IGJlIGVuYWJsZWQgb24gMTAuMTMuMiBhbmQgbmV3ZXIsIG5vdCBqdXN0IDEwLjE0IGFuZCBu
ZXdlci4gKi8KKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxNDAwCisjZGVmaW5lIFVTRV9DRk5FVFdPUktfQ09OVEVOVF9FTkNPRElOR19T
TklGRklOR19PVkVSUklERSAxCisjZW5kaWYKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IChQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAw
MDApIHx8IFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgSEFWRV9PU19EQVJLX01PREVfU1VQUE9SVCAx
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE0MDAKKyNkZWZpbmUgSEFWRV9DR19GT05UX1JFTkRFUklOR19HRVRfRk9O
VF9TTU9PVEhJTkdfRElTQUJMRUQgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9DQV9XSEVSRV9BRERJVElWRV9UUkFOU0ZPUk1TX0FSRV9S
RVZFUlNFRCAxCisjZW5kaWYKKworI2lmZGVmIF9fQVBQTEVfXworI2RlZmluZSBIQVZFX0ZVTkNf
VVNMRUVQIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShXUEUpCisv
KiBGSVhNRTogVGhpcyByZWFsbHkgbmVlZHMgYSBkZXNjcmlwdGl2ZSBuYW1lLCB0aGlzICJuZXcg
dGhlbWUiIHdhcyBhZGRlZCBpbiAyMDA4LiAqLworI2RlZmluZSBVU0VfTkVXX1RIRU1FIDEKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBIQVZFX1dJTkRPV19TRVJWRVJfT0ND
TFVTSU9OX05PVElGSUNBVElPTlMgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNk
ZWZpbmUgSEFWRV9TRUNfQUNDRVNTX0NPTlRST0wgMQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJ
T1MpCisvKiBGSVhNRTogU2FmYXJpU2VydmljZXMuZnJhbWV3b3JrIGV4aXN0cyBvbiBtYWNPUy4g
SXQgaXMgb25seSB1c2VkIGJ5IFdlYktpdCBvbiBpT1MsIHNvIHRoZSBiZWhhdmlvciBpcyBjb3Jy
ZWN0LCBidXQgdGhlIG5hbWUgaXMgbWlzbGVhZGluZy4gKi8KKyNkZWZpbmUgSEFWRV9TQUZBUklf
U0VSVklDRVNfRlJBTUVXT1JLIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKFdBVENIT1MpCisjZGVmaW5lIEhBVkVfU0FGRV9CUk9XU0lO
RyAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKKyNkZWZpbmUgSEFWRV9MSU5LX1BSRVZJ
RVcgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDApKQorI2RlZmlu
ZSBIQVZFX0FDQ0VTU0lCSUxJVFlfU1VQUE9SVCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCAm
JiBfX0lQSE9ORV9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDEzMDEwMAorI2RlZmluZSBIQVZF
X0FDQ0VTU0lCSUxJVFlfQlVORExFU19QQVRIIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE0MDApCisjZGVmaW5lIEhBVkVfQVVUSE9SSVpBVElPTl9TVEFUVVNfRk9SX01F
RElBX1RZUEUgMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiAoX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEID49IDEwMTQwNCkpIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01BWF9BTExP
V0VEID49IDEyMDIwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikK
KyNkZWZpbmUgSEFWRV9DRk5FVFdPUktfT1ZFUlJJREVfU0VTU0lPTl9DT09LSUVfQUNDRVBUX1BP
TElDWSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQorI2RlZmluZSBIQVZFX0NG
TkVUV09SS19OU1VSTFNFU1NJT05fU1RSSUNUUlVTVEVWQUxVQVRFIDEKKyNlbmRpZgorCisjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1
MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX05FR09U
SUFURURfU1NMX1BST1RPQ09MX0NJUEhFUiAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNjAwKSB8fCAoUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTQw
MDAwKQorI2RlZmluZSBIQVZFX0NGTkVUV09SS19NRVRSSUNTX0FQSVNfVjQgMQorI2VuZGlmCisK
KyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxNTAwCisjZGVmaW5lIEhBVkVfQ1NDSEVDS0ZJWERJU0FCTEUgMQorI2VuZGlmCisKKyNpZiAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQw
MCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9TQU5EQk9YX0lTU1VFX01B
Q0hfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfQVVESVRfVE9LRU4gMQorI2VuZGlmCisKKyNpZiAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQw
MCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgSEFWRV9TQU5EQk9YX0lTU1VFX1JF
QURfRVhURU5TSU9OX1RPX1BST0NFU1NfQllfQVVESVRfVE9LRU4gMQorI2VuZGlmCisKKyNpZiAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUw
MCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEzMDAwMCkKKyNkZWZpbmUgSEFWRV9NRE5TX0ZBU1RfUkVHSVNUUkFUSU9OIDEK
KyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEhBVkVf
RElTQUxMT1dBQkxFX1VTRVJfSU5TVEFMTEVEX0ZPTlRTIDEKKyNlbmRpZgorCisjaWYgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8
IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMzAwMDApCisjZGVmaW5lIEhBVkVfQ1RGT05UQ1JFQVRFRk9SQ0hBUkFDVEVSU1dJVEhM
QU5HVUFHRUFORE9QVElPTiAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQorI2Rl
ZmluZSBIQVZFX0NURk9OVFRSQU5TRk9STUdMWVBIU1dJVEhMQU5HVUFHRSAxCisjZW5kaWYKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEzMDAwMAorI2RlZmluZSBIQVZFX0FSS0lUX1FVSUNLX0xPT0tfUFJFVklFV19JVEVN
IDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwCisjZGVmaW5lIEhBVkVfVUlfV0tfRE9DVU1FTlRf
Q09OVEVYVCAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBI
QVZFX0hPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUiAxCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1B
Q0NBVEFMWVNUKQorI2RlZmluZSBIQVZFX1VJX1BBUkFMTEFYX1RSQU5TSVRJT05fR0VTVFVSRV9S
RUNPR05JWkVSIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisj
ZGVmaW5lIEhBVkVfQUxMT1dTX1NFTlNJVElWRV9MT0dHSU5HIDEKKyNlbmRpZgorCisjaWYgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDAp
IHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIEhBVkVfRkFJUlBMQVlTVFJFQU1JTkdf
Q0VOQ19JTklUREFUQSAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05F
X09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykg
fHwgUExBVEZPUk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9VSV9TQ1JPTExfVklFV19JTkRJQ0FU
T1JfRkxBU0hJTkdfU1BJIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhP
TkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9STShXQVRDSE9T
KSB8fCBQTEFURk9STShBUFBMRVRWKQorI2RlZmluZSBIQVZFX0FQUF9MSU5LU19XSVRIX0lTRU5B
QkxFRCAxCisjZW5kaWYKKworI2lmIChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkKKyNkZWZpbmUgSEFWRV9ST1VURV9TSEFSSU5HX1BP
TElDWV9MT05HX0ZPUk1fVklERU8gMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oSU9TKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMjAwMDAgJiYgIVBMQVRGT1JNKElP
U19TSU1VTEFUT1IpKQorI2RlZmluZSBIQVZFX0RFVklDRV9NQU5BR0VNRU5UIDEKKyNlbmRpZgor
CisjaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPCAx
MDE1MDAKKyNkZWZpbmUgVVNFX1JFQUxQQVRIX0ZPUl9ETE9QRU5fUFJFRkxJR0hUIDEKKyNlbmRp
ZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRG
T1JNKEFQUExFVFYpCisjZGVmaW5lIEhBVkVfTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCAxCisjZW5k
aWYKKworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMzAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQ
UExFVFYpCisjZGVmaW5lIEhBVkVfQVZQTEFZRVJfUkVTT1VSQ0VfQ09OU0VSVkFUSU9OX0xFVkVM
IDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExB
VEZPUk0oQVBQTEVUVikKKyNkZWZpbmUgSEFWRV9DT1JFVEVYVF9BVVRPX09QVElDQUxfU0laSU5H
IDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA8IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPCAxMzAwMDApCisjZGVmaW5lIEhBVkVfTlNGT05UX1dJVEhfT1BU
SUNBTF9TSVpJTkdfQlVHIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRG
T1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApKQor
I2RlZmluZSBIQVZFX0FQUF9TU08gMQorI2VuZGlmCisKKyNpZiAoUExBVEZPUk0oSU9TKSAmJiBf
X0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDAgfHwgUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZP
Uk0oV0FUQ0hPUykgfHwgUExBVEZPUk0oQVBQTEVUVikgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1Qp
CisjZGVmaW5lIEhBVkVfVExTX1BST1RPQ09MX1ZFUlNJT05fVCAxCisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExF
VFYpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2RlZmluZSBIQVZFX1NFQ19UUlVTVF9FVkFM
VUFURV9XSVRIX0VSUk9SIDEKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9S
TShNQUNDQVRBTFlTVCkKKyNkZWZpbmUgVVNFX1VJQ09OVEVYVE1FTlUgMQorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
NTAwCisjZGVmaW5lIEhBVkVfU1VCVklFV1NfSVZBUl9TUEkgMQorI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA8IDEwMTUwMAorI2Rl
ZmluZSBIQVZFX1NVQlZJRVdTX0lWQVJfREVDTEFSRURfQllfU0RLIDEKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oTUFDKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFU
Rk9STShBUFBMRVRWKQorI2RlZmluZSBVU0VfUExBVEZPUk1fU1lTVEVNX0ZBTExCQUNLX0xJU1Qg
MQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhf
QUxMT1dFRCA+PSAxMDE1MDAKKyNkZWZpbmUgSEFWRV9BWF9DTElFTlRfVFlQRSAxCisjZW5kaWYK
KworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMzAwMDApIHx8IFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExF
VFYpCisjZGVmaW5lIEhBVkVfREVTSUdOX1NZU1RFTV9VSV9GT05UUyAxCisjZW5kaWYKKworI2lm
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
NDAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiAhUExBVEZPUk0oSU9TX1NJTVVMQVRPUikpCisjZGVm
aW5lIEhBVkVfREVWSUNFX0lERU5USVRZIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IFBMQVRGT1JN
KElPU19GQU1JTFkpCisjZGVmaW5lIEhBVkVfREFUQV9QUk9URUNUSU9OX0tFWUNIQUlOIDEKKyNl
bmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWV9TSU1VTEFUT1IpKQorI2RlZmluZSBIQVZFX05FQVJfRklFTEQgMQorI2VuZGlmCisK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoIShkZWZpbmVkKFVTRV9TWVNURU1fTUFMTE9D
KSAmJiBVU0VfU1lTVEVNX01BTExPQykgJiYgKE9TKExJTlVYKSAmJiAoUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpKSkpCisjZGVmaW5lIFVTRV9CTUFMTE9DX01FTU9SWV9GT09UUFJJTlRf
QVBJIDEKKyNlbmRpZgorCisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5l
IEhBVkVfT1NfU0lHTlBPU1QgMQorI2VuZGlmCisKKworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxQbGF0Zm9y
bS5oPikKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbFBsYXRmb3JtLmg+Cisj
ZW5kaWYKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspICYmIF9faGFzX2luY2x1ZGUoPFdl
YktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsRmVhdHVyZURlZmluZXMuaD4pCisjaW5jbHVkZSA8V2Vi
S2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPgorI2VuZGlmCisKKy8qIF9f
UExBVEZPUk1fSU5ESVJFQ1RfXyBlbnN1cmVzIHRoYXQgdXNlcnMgI2luY2x1ZGUgPHd0Zi9QbGF0
Zm9ybS5oPiByYXRoZXIgdGhhbiB3dGYvRmVhdHVyZURlZmluZXMuaCBkaXJlY3RseS4gKi8KKyNk
ZWZpbmUgX19QTEFURk9STV9JTkRJUkVDVF9fCisKKy8qIEluY2x1ZGUgZmVhdHVyZSBtYWNyb3Mg
Ki8KKyNpbmNsdWRlIDx3dGYvUGxhdGZvcm1FbmFibGUuaD4KKworI3VuZGVmIF9fUExBVEZPUk1f
SU5ESVJFQ1RfXworCisKKworLyogRklYTUU6IFRoZSBmb2xsb3dpbmcgYXJlIGN1cnJlbmx5IHBv
c2l0aW9uZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGlzIGZpbGUgYXMgdGhleSBhcmUgY3VycmVudGx5
IGRlcGVuZGVudCBvbiBFTkFCTEUgbWFjcm9zLiAqLworCisvKiBGSVhNRTogUmVtb3ZlIGRlcGVu
ZGVuY2Ugb24gRU5BQkxFKFdFQl9SVEMpLiAqLworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFC
TEUoV0VCX1JUQykKKyNkZWZpbmUgVVNFX0xJQldFQlJUQyAxCisjZW5kaWYKKworLyogRklYTUU6
IFRoaXMgaXMgdXNlZCB0byAidHVybiBvbiBhIHNwZWNpZmljIGZlYXR1cmUgb2YgV2ViS2l0Iiwg
c28gc2hvdWxkIGJlIGNvbnZlcnRlZCB0byBhbiBFTkFCTEUgbWFjcm8uICovCisvKiBUaGlzIGZl
YXR1cmUgd29ya3MgYnkgZW1iZWRkaW5nIHRoZSBPcGNvZGVJRCBpbiB0aGUgMzIgYml0IGp1c3Qg
YmVmb3JlIHRoZSBnZW5lcmF0ZWQgTExpbnQgY29kZQorICAgdGhhdCBleGVjdXRlcyBlYWNoIG9w
Y29kZS4gSXQgY2Fubm90IGJlIHN1cHBvcnRlZCBieSB0aGUgQ0xvb3Agc2luY2UgdGhlcmUncyBu
byB3YXkgdG8gZW1iZWQgdGhlCisgICBPcGNvZGVJRCB3b3JkIGluIHRoZSBDTG9vcCdzIHN3aXRj
aCBzdGF0ZW1lbnQgY2FzZXMuIEl0IGlzIGFsc28gY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCBm
b3IgTVNWQy4KKyovCisjaWYgIWRlZmluZWQoVVNFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCkg
JiYgIUVOQUJMRShDX0xPT1ApICYmICFDT01QSUxFUihNU1ZDKSAmJiBcCisgICAgKENQVShYODYp
IHx8IENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIyKSAmJiBPUyhE
QVJXSU4pKSkKKyNkZWZpbmUgVVNFX0xMSU5UX0VNQkVEREVEX09QQ09ERV9JRCAxCisjZW5kaWYK
KworCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaWYgRU5BQkxFKFdFQkdMKQorCisvKiBVU0VfQU5H
TEU9MSB1c2VzIEFOR0xFIGZvciB0aGUgV2ViR0wgYmFja2VuZC4KKyAgIEl0IHJlcGxhY2VzIFVT
RV9PUEVOR0wsIFVTRV9PUEVOR0xfRVMgYW5kIFVTRV9FR0wuICovCisjaWYgUExBVEZPUk0oTUFD
KSB8fCAoUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmIF9faGFzX2luY2x1ZGUoPE9wZW5HTC9PcGVu
R0wuaD4pKQorI2RlZmluZSBVU0VfT1BFTkdMIDEKKyNkZWZpbmUgVVNFX09QRU5HTF9FUyAwCisj
ZGVmaW5lIFVTRV9BTkdMRSAwCisjZWxzZQorI2RlZmluZSBVU0VfT1BFTkdMIDAKKyNkZWZpbmUg
VVNFX09QRU5HTF9FUyAxCisjZGVmaW5lIFVTRV9BTkdMRSAwCisjZW5kaWYKKworI2lmbmRlZiBH
TF9TSUxFTkNFX0RFUFJFQ0FUSU9OCisjZGVmaW5lIEdMX1NJTEVOQ0VfREVQUkVDQVRJT04gMQor
I2VuZGlmCisKKyNpZiBVU0UoT1BFTkdMKSAmJiAhZGVmaW5lZChIQVZFX09QRU5HTF80KQorI2Rl
ZmluZSBIQVZFX09QRU5HTF80IDEKKyNlbmRpZgorCisjaWYgVVNFKE9QRU5HTF9FUykgJiYgIWRl
ZmluZWQoSEFWRV9PUEVOR0xfRVNfMykKKyNkZWZpbmUgSEFWRV9PUEVOR0xfRVNfMyAxCisjZW5k
aWYKKworI2lmIFVTRV9BTkdMRSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTKQorI2Vy
cm9yIFVTRV9BTkdMRSBpcyBpbmNvbXBhdGlibGUgd2l0aCBVU0VfT1BFTkdMIGFuZCBVU0VfT1BF
TkdMX0VTCisjZW5kaWYKKworI2VuZGlmIC8qIEVOQUJMRShXRUJHTCkgKi8KKyNlbmRpZiAvKiBQ
TEFURk9STShDT0NPQSkgKi8KKworI2lmIEVOQUJMRShXRUJHTCkKKyNpZiAhZGVmaW5lZChVU0Vf
QU5HTEUpCisjZGVmaW5lIFVTRV9BTkdMRSAwCisjZW5kaWYKKworI2lmIChVU0VfQU5HTEUgJiYg
KFVTRV9PUEVOR0wgfHwgVVNFX09QRU5HTF9FUyB8fCAoZGVmaW5lZChVU0VfRUdMKSAmJiBVU0Vf
RUdMKSkpICYmICFVU0UoVEVYVFVSRV9NQVBQRVIpCisjZXJyb3IgVVNFX0FOR0xFIGlzIGluY29t
cGF0aWJsZSB3aXRoIFVTRV9PUEVOR0wsIFVTRV9PUEVOR0xfRVMgYW5kIFVTRV9FR0wKKyNlbmRp
ZgorI2VuZGlmCisKKyNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpICYmIEVOQUJMRShHUkFQSElDU19D
T05URVhUX0dMKSAmJiAhZGVmaW5lZChVU0VfVEVYVFVSRV9NQVBQRVJfR0wpCisjZGVmaW5lIFVT
RV9URVhUVVJFX01BUFBFUl9HTCAxCisjZW5kaWYKKworLyogRklYTUU6IFRoaXMgaXMgdXNlZCB0
byAidHVybiBvbiBhIHNwZWNpZmljIGZlYXR1cmUgb2YgV2ViS2l0Iiwgc28gc2hvdWxkIGJlIGNv
bnZlcnRlZCB0byBhbiBFTkFCTEUgbWFjcm8uICovCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVO
QUJMRShBQ0NFU1NJQklMSVRZKQorI2RlZmluZSBVU0VfQUNDRVNTSUJJTElUWV9DT05URVhUX01F
TlVTIDEKKyNlbmRpZgorCisKKy8qIEZJWE1FOiBUaGVzZSBjYWxsaW5nIGNvbnZlbnRpb24gbWFj
cm9zIHNob3VsZCBtb3ZlIHRvIHRoZWlyIG93biBmaWxlLiBUaGV5IGFyZSBhdCB0aGUgYm90dG9t
IGN1cnJlbnRseSBiZWNhdXNlIHRoZXkgZGVwZW5kIG9uIEZlYXR1cmVEZWZpbmVzLmggKi8KKwor
I2lmIENQVShYODYpICYmIENPTVBJTEVSKE1TVkMpCisjZGVmaW5lIEpTQ19IT1NUX0NBTEwgX19m
YXN0Y2FsbAorI2VsaWYgQ1BVKFg4NikgJiYgQ09NUElMRVIoR0NDX0NPTVBBVElCTEUpCisjZGVm
aW5lIEpTQ19IT1NUX0NBTEwgX19hdHRyaWJ1dGVfXyAoKGZhc3RjYWxsKSkKKyNlbHNlCisjZGVm
aW5lIEpTQ19IT1NUX0NBTEwKKyNlbmRpZgorCisjaWYgQ1BVKFg4NikgJiYgT1MoV0lORE9XUykK
KyNkZWZpbmUgQ0FMTElOR19DT05WRU5USU9OX0lTX1NURENBTEwgMQorI2lmbmRlZiBDREVDTAor
I2lmIENPTVBJTEVSKE1TVkMpCisjZGVmaW5lIENERUNMIF9fY2RlY2wKKyNlbHNlCisjZGVmaW5l
IENERUNMIF9fYXR0cmlidXRlX18gKChfX2NkZWNsKSkKKyNlbmRpZgorI2VuZGlmCisjZWxzZQor
I2RlZmluZSBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTCAwCisjZW5kaWYKKworI2lmIENQ
VShYODYpCisjZGVmaW5lIFdURl9DT01QSUxFUl9TVVBQT1JUU19GQVNUQ0FMTF9DQUxMSU5HX0NP
TlZFTlRJT04gMQorI2lmbmRlZiBGQVNUQ0FMTAorI2lmIENPTVBJTEVSKE1TVkMpCisjZGVmaW5l
IEZBU1RDQUxMIF9fZmFzdGNhbGwKKyNlbHNlCisjZGVmaW5lIEZBU1RDQUxMICBfX2F0dHJpYnV0
ZV9fICgoZmFzdGNhbGwpKQorI2VuZGlmCisjZW5kaWYKKyNlbHNlCisjZGVmaW5lIFdURl9DT01Q
SUxFUl9TVVBQT1JUU19GQVNUQ0FMTF9DQUxMSU5HX0NPTlZFTlRJT04gMAorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoSklUKSAmJiBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTAorI2RlZmluZSBK
SVRfT1BFUkFUSU9OIENERUNMCisjZWxzZQorI2RlZmluZSBKSVRfT1BFUkFUSU9OCisjZW5kaWYK
ClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTGVnYWN5LmgKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCwwICsxICMjCituYXRpdmUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1M
ZWdhY3kuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUxlZ2FjeS5oCShy
ZXZpc2lvbiAyNTQ1NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUxlZ2FjeS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNyw5NSArMjcsMTEgQEAKIAogI3ByYWdtYSBvbmNlCiAKLS8qIEluY2x1
ZGUgY29tcGlsZXIgc3BlY2lmaWMgbWFjcm9zICovCi0jaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+
Ci0KLS8qIEluY2x1ZGUgQ1BVIHNwZWNpZmljIG1hY3JvcyAqLwotI2luY2x1ZGUgPHd0Zi9QbGF0
Zm9ybUNQVS5oPgotCi0vKiBJbmNsdWRlIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbSBzcGVj
aWZpYyBtYWNyb3MgKi8KLSNpbmNsdWRlIDx3dGYvUGxhdGZvcm1PUy5oPgotCi0vKiA9PT09IFBM
QVRGT1JNIGhhbmRsZXMgT1MsIG9wZXJhdGluZyBlbnZpcm9ubWVudCwgZ3JhcGhpY3MgQVBJLCBh
bmQKKy8qIFBMQVRGT1JNKCkgLSBoYW5kbGVzIE9TLCBvcGVyYXRpbmcgZW52aXJvbm1lbnQsIGdy
YXBoaWNzIEFQSSwgYW5kCiAgICBDUFUuIFRoaXMgbWFjcm8gd2lsbCBiZSBwaGFzZWQgb3V0IGlu
IGZhdm9yIG9mIHBsYXRmb3JtIGFkYXB0YXRpb24KLSAgIG1hY3JvcywgcG9saWN5IGRlY2lzaW9u
IG1hY3JvcywgYW5kIHRvcC1sZXZlbCBwb3J0IGRlZmluaXRpb25zLiA9PT09ICovCi0jZGVmaW5l
IFBMQVRGT1JNKFdURl9GRUFUVVJFKSAoZGVmaW5lZCBXVEZfUExBVEZPUk1fIyNXVEZfRkVBVFVS
RSAgJiYgV1RGX1BMQVRGT1JNXyMjV1RGX0ZFQVRVUkUpCi0KLQotLyogPT09PSBQbGF0Zm9ybSBh
ZGFwdGF0aW9uIG1hY3JvczogdGhlc2UgZGVzY3JpYmUgcHJvcGVydGllcyBvZiB0aGUgdGFyZ2V0
IGVudmlyb25tZW50LiA9PT09ICovCi0KLS8qIEhBVkUoKSAtIHNwZWNpZmljIHN5c3RlbSBmZWF0
dXJlcyAoaGVhZGVycywgZnVuY3Rpb25zIG9yIHNpbWlsYXIpIHRoYXQgYXJlIHByZXNlbnQgb3Ig
bm90ICovCi0jZGVmaW5lIEhBVkUoV1RGX0ZFQVRVUkUpIChkZWZpbmVkIEhBVkVfIyNXVEZfRkVB
VFVSRSAgJiYgSEFWRV8jI1dURl9GRUFUVVJFKQotCi0KLS8qID09PT0gUG9saWN5IGRlY2lzaW9u
IG1hY3JvczogdGhlc2UgZGVmaW5lIHBvbGljeSBjaG9pY2VzIGZvciBhIHBhcnRpY3VsYXIgcG9y
dC4gPT09PSAqLworICAgbWFjcm9zLCBwb2xpY3kgZGVjaXNpb24gbWFjcm9zLCBhbmQgdG9wLWxl
dmVsIHBvcnQgZGVmaW5pdGlvbnMuICovCisjZGVmaW5lIFBMQVRGT1JNKFdURl9GRUFUVVJFKSAo
ZGVmaW5lZCBXVEZfUExBVEZPUk1fIyNXVEZfRkVBVFVSRSAmJiBXVEZfUExBVEZPUk1fIyNXVEZf
RkVBVFVSRSkKIAotLyogVVNFKCkgLSB1c2UgYSBwYXJ0aWN1bGFyIHRoaXJkLXBhcnR5IGxpYnJh
cnkgb3Igb3B0aW9uYWwgT1Mgc2VydmljZSAqLwotI2RlZmluZSBVU0UoV1RGX0ZFQVRVUkUpIChk
ZWZpbmVkIFVTRV8jI1dURl9GRUFUVVJFICAmJiBVU0VfIyNXVEZfRkVBVFVSRSkKLS8qIEVOQUJM
RSgpIC0gdHVybiBvbiBhIHNwZWNpZmljIGZlYXR1cmUgb2YgV2ViS2l0ICovCi0jZGVmaW5lIEVO
QUJMRShXVEZfRkVBVFVSRSkgKGRlZmluZWQgRU5BQkxFXyMjV1RGX0ZFQVRVUkUgICYmIEVOQUJM
RV8jI1dURl9GRUFUVVJFKQotCi0KLS8qIE1JUFMgcmVxdWlyZXMgYWxsb2NhdG9ycyB0byB1c2Ug
YWxpZ25lZCBtZW1vcnkgKi8KLSNpZiBDUFUoTUlQUykgfHwgQ1BVKE1JUFM2NCkKLSNkZWZpbmUg
VVNFX0FSRU5BX0FMTE9DX0FMSUdOTUVOVF9JTlRFR0VSIDEKLSNlbmRpZgotCi0vKkFSTXY1VEUg
cmVxdWlyZXMgYWxsb2NhdG9ycyB0byB1c2UgYWxpZ25lZCBtZW1vcnkqLwotI2lmIGRlZmluZWQo
X19BUk1fQVJDSF81RV9fKSB8fCBkZWZpbmVkKF9fQVJNX0FSQ0hfNVRFX18pIHx8IGRlZmluZWQo
X19BUk1fQVJDSF81VEVKX18pCi0jZGVmaW5lIFVTRV9BUkVOQV9BTExPQ19BTElHTk1FTlRfSU5U
RUdFUiAxCi0jZW5kaWYKLQotLypBUk12NVRFIHJlcXVpcmVzIGFsbG9jYXRvcnMgdG8gdXNlIGFs
aWduZWQgbWVtb3J5Ki8KLSNpZiBkZWZpbmVkKF9fVEFSR0VUX0FSQ0hfNUUpIHx8IGRlZmluZWQo
X19UQVJHRVRfQVJDSF81VEUpIHx8IGRlZmluZWQoX19UQVJHRVRfQVJDSF81VEVKKQotI2RlZmlu
ZSBVU0VfQVJFTkFfQUxMT0NfQUxJR05NRU5UX0lOVEVHRVIgMQotI2VuZGlmCi0KLSNpZiBDUFUo
QVJNX05FT04pCi0vKiBBbGwgTkVPTiBpbnRyaW5zaWNzIHVzYWdlIGNhbiBiZSBkaXNhYmxlZCBi
eSB0aGlzIG1hY3JvLiAqLwotI2RlZmluZSBIQVZFX0FSTV9ORU9OX0lOVFJJTlNJQ1MgMQotI2Vu
ZGlmCi0KLS8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVkIHRvIFdURl9DUFVfQVJNX0lE
SVZfSU5TVFJVQ1RJT05TIGFuZCBtb3ZlZCB0byBDUFUuaCAqLwotI2lmIGRlZmluZWQoX19BUk1f
QVJDSF9FWFRfSURJVl9fKSB8fCBDUFUoQVBQTEVfQVJNVjdTKQotI2RlZmluZSBIQVZFX0FSTV9J
RElWX0lOU1RSVUNUSU9OUyAxCi0jZW5kaWYKLQotCi0KLS8qIE9wZXJhdGluZyBlbnZpcm9ubWVu
dHMgKi8KLQotCi0vKiBGSVhNRTogUmVuYW1lIFdURl9DUFVfRUZGRUNUSVZFX0FERFJFU1NfV0lE
VEggdG8gV1RGX09TX0VGRkVDVElWRV9BRERSRVNTX1dJRFRILCBhcyBpdCBpcyBhbiBPUyBmZWF0
dXJlLCBub3QgYSBDUFUgZmVhdHVyZS4gKi8KLSNpZiBDUFUoQUREUkVTUzY0KQotI2lmIE9TKERB
UldJTikgJiYgQ1BVKEFSTTY0KQotI2RlZmluZSBXVEZfQ1BVX0VGRkVDVElWRV9BRERSRVNTX1dJ
RFRIIDM2Ci0jZWxzZQotLyogV2Ugc3Ryb25nbHkgYXNzdW1lIHRoYXQgZWZmZWN0aXZlIGFkZHJl
c3Mgd2lkdGggaXMgPD0gNDggaW4gNjRiaXQgYXJjaGl0ZWN0dXJlcyAoZS5nLiBOYU4gYm94aW5n
KS4gKi8KLSNkZWZpbmUgV1RGX0NQVV9FRkZFQ1RJVkVfQUREUkVTU19XSURUSCA0OAotI2VuZGlm
Ci0jZWxzZQotI2RlZmluZSBXVEZfQ1BVX0VGRkVDVElWRV9BRERSRVNTX1dJRFRIIDMyCi0jZW5k
aWYKLQotLyogRXhwb3J0IG1hY3JvIHN1cHBvcnQuIERldGVjdHMgdGhlIGF0dHJpYnV0ZXMgYXZh
aWxhYmxlIGZvciBzaGFyZWQgbGlicmFyeSBzeW1ib2wgZXhwb3J0Ci0gICBkZWNvcmF0aW9ucy4g
Ki8KLSNpZiBPUyhXSU5ET1dTKSB8fCAoQ09NUElMRVJfSEFTX0NMQU5HX0RFQ0xTUEVDKGRsbGlt
cG9ydCkgJiYgQ09NUElMRVJfSEFTX0NMQU5HX0RFQ0xTUEVDKGRsbGV4cG9ydCkpCi0jZGVmaW5l
IFVTRV9ERUNMU1BFQ19BVFRSSUJVVEUgMQotI2RlZmluZSBVU0VfVklTSUJJTElUWV9BVFRSSUJV
VEUgMAotI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKLSNkZWZpbmUgVVNFX0RFQ0xTUEVDX0FUVFJJ
QlVURSAwCi0jZGVmaW5lIFVTRV9WSVNJQklMSVRZX0FUVFJJQlVURSAxCi0jZWxzZQotI2RlZmlu
ZSBVU0VfREVDTFNQRUNfQVRUUklCVVRFIDAKLSNkZWZpbmUgVVNFX1ZJU0lCSUxJVFlfQVRUUklC
VVRFIDAKLSNlbmRpZgotCi0vKiBTdGFuZGFyZCBsaWJyYXJpZXMgKi8KLSNpZiBkZWZpbmVkKEhB
VkVfRkVBVFVSRVNfSCkgJiYgSEFWRV9GRUFUVVJFU19ICi0vKiBJZiB0aGUgaW5jbHVkZWQgZmVh
dHVyZXMuaCBpcyBnbGliYydzIG9uZSwgX19HTElCQ19fIGlzIGRlZmluZWQuICovCi0jaW5jbHVk
ZSA8ZmVhdHVyZXMuaD4KLSNlbmRpZgogCiAvKiBGSVhNRTogdGhlc2UgYXJlIGFsbCBtaXhlcyBv
ZiBPUywgb3BlcmF0aW5nIGVudmlyb25tZW50IGFuZCBwb2xpY3kgY2hvaWNlcy4gKi8KIC8qIFBM
QVRGT1JNKEdUSykgKi8KQEAgLTE1NiwxMiArNzIsNiBAQAogI2RlZmluZSBXVEZfUExBVEZPUk1f
Q09DT0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSNpZiBkZWZpbmVkIF9faGFz
X2luY2x1ZGUgJiYgX19oYXNfaW5jbHVkZSg8Q29yZUZvdW5kYXRpb24vQ0ZQcml2Lmg+KQotI2Rl
ZmluZSBVU0VfQVBQTEVfSU5URVJOQUxfU0RLIDEKLSNlbmRpZgotI2VuZGlmCi0KIC8qIFBMQVRG
T1JNKEFQUExFVFYpICovCiAjaWYgZGVmaW5lZChUQVJHRVRfT1NfVFYpICYmIFRBUkdFVF9PU19U
VgogI2RlZmluZSBXVEZfUExBVEZPUk1fQVBQTEVUViAxCkBAIC0xNzEsMTAwMiArODEsMyBAQAog
I2lmIGRlZmluZWQoVEFSR0VUX09TX1dBVENIKSAmJiBUQVJHRVRfT1NfV0FUQ0gKICNkZWZpbmUg
V1RGX1BMQVRGT1JNX1dBVENIT1MgMQogI2VuZGlmCi0KLS8qIEZJWE1FOiBBU1NFUlRfRU5BQkxF
RCBzaG91bGQgZGVmaW5lZCBpbiBkaWZmZXJlbnQsIHBlcmhhcHMgaXRzIG93biwgZmlsZS4gKi8K
LS8qIEFTU0VSVF9FTkFCTEVEIHNob3VsZCBiZSB0cnVlIGlmIHdlIHdhbnQgdGhlIGN1cnJlbnQg
Y29tcGlsYXRpb24gdW5pdCB0bwotICAgZG8gZGVidWcgYXNzZXJ0aW9uIGNoZWNrcyB1bmNvbmRp
dGlvbmFsbHkgKGUuZy4gdHJlYXQgYSBkZWJ1ZyBBU1NFUlQKLSAgIGxpa2UgYSBSRUxFQVNFX0FT
U0VSVC4KLSovCi0jaWZuZGVmIEFTU0VSVF9FTkFCTEVECi0jaWZkZWYgTkRFQlVHCi0jZGVmaW5l
IEFTU0VSVF9FTkFCTEVEIDAKLSNlbHNlCi0jZGVmaW5lIEFTU0VSVF9FTkFCTEVEIDEKLSNlbmRp
ZgotI2VuZGlmCi0KLQotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9DRyAxCi0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBVU0VfQ0EgMQotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKLSNkZWZpbmUgVVNFX0dMSUIgMQot
I2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKLSNkZWZpbmUgVVNF
X0ZSRUVUWVBFIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
Ci0jZGVmaW5lIFVTRV9IQVJGQlVaWiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQotI2RlZmluZSBVU0VfU09VUCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQotI2RlZmluZSBVU0VfV0VCUCAxCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKEdUSykKLSNkZWZpbmUgR0xJQl9WRVJTSU9OX01JTl9SRVFVSVJFRCBHTElCX1ZF
UlNJT05fMl8zNgotI2RlZmluZSBHREtfVkVSU0lPTl9NSU5fUkVRVUlSRUQgR0RLX1ZFUlNJT05f
M182Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKFdQRSkKLSNkZWZpbmUgR0xJQl9WRVJTSU9OX01J
Tl9SRVFVSVJFRCBHTElCX1ZFUlNJT05fMl80MAotI2VuZGlmCi0KLSNpZiBVU0UoU09VUCkKLSNk
ZWZpbmUgU09VUF9WRVJTSU9OX01JTl9SRVFVSVJFRCBTT1VQX1ZFUlNJT05fMl80MgotI2VuZGlm
Ci0KLS8qIE9uIFdpbmRvd3MsIHVzZSBRdWVyeVBlcmZvcm1hbmNlQ291bnRlciBieSBkZWZhdWx0
ICovCi0jaWYgT1MoV0lORE9XUykKLSNkZWZpbmUgVVNFX1FVRVJZX1BFUkZPUk1BTkNFX0NPVU5U
RVIgIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfT1VUX09G
X1BST0NFU1NfTEFZRVJfSE9TVElORyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQot
I2RlZmluZSBVU0VfQ0YgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkgfHwgKFBMQVRG
T1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKLSNkZWZpbmUgVVNFX0ZJTEVfTE9DSyAxCi0jZW5k
aWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBVU0VfRk9VTkRBVElPTiAxCi0jZW5k
aWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBVU0VfTkVUV09SS19DRkRBVEFfQVJS
QVlfQ0FMTEJBQ0sgMQotI2VuZGlmCi0KLQotI2lmIFBMQVRGT1JNKENPQ09BKQotLyogQ29jb2Eg
ZGVmaW5lcyBhIHNlcmllcyBvZiBwbGF0Zm9ybSBtYWNyb3MgZm9yIGRlYnVnZ2luZy4gKi8KLS8q
IFNvbWUgb2YgdGhlbSBhcmUgcmVhbGx5IGFubm95aW5nIGJlY2F1c2UgdGhleSB1c2UgY29tbW9u
IG5hbWVzIChlLmcuIGNoZWNrKCkpLiAqLwotLyogRGlzYWJsZSB0aG9zZSBtYWNyb3Mgc28gdGhh
dCB3ZSBhcmUgbm90IGxpbWl0ZWQgaW4gaG93IHdlIG5hbWUgbWV0aG9kcyBhbmQgZnVuY3Rpb25z
LiAqLwotI3VuZGVmIF9fQVNTRVJUX01BQ1JPU19ERUZJTkVfVkVSU0lPTlNfV0lUSE9VVF9VTkRF
UlNDT1JFUwotI2RlZmluZSBfX0FTU0VSVF9NQUNST1NfREVGSU5FX1ZFUlNJT05TX1dJVEhPVVRf
VU5ERVJTQ09SRVMgMAotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0jZGVmaW5lIEhBVkVf
UlVOTE9PUF9USU1FUiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgSEFW
RV9TRUNfS0VZQ0hBSU4gMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0jZGVmaW5lIEhB
VkVfSElTRVJWSUNFUyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgVVNF
X0FQUEtJVCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykKLSNkZWZpbmUgVVNFX1BBU1NL
SVQgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0jZGVmaW5lIEhBVkVfTkVUV09SS19F
WFRFTlNJT04gMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0jZGVmaW5lIFVTRV9QTFVH
SU5fSE9TVF9QUk9DRVNTIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNk
ZWZpbmUgSEFWRV9ORVRXT1JLX0VYVEVOU0lPTiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0jZGVmaW5lIEhBVkVfUkVBRExJTkUgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQotI2RlZmluZSBVU0VfVUlLSVRfRURJVElORyAxCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5lIFVTRV9XRUJfVEhSRUFEIDEKLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgQ1BVKEFSTV9ORU9OKQotI3VuZGVmIEhBVkVf
QVJNX05FT05fSU5UUklOU0lDUwotI2RlZmluZSBIQVZFX0FSTV9ORU9OX0lOVFJJTlNJQ1MgMAot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChIQVZFX1BERkhPU1RWSUVXQ09OVFJPTExFUl9TTkFQU0hP
VFRJTkcpICYmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgSEFWRV9QREZIT1NUVklFV0NPTlRST0xM
RVJfU05BUFNIT1RUSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoSEFWRV9WSVNJQklMSVRZ
X1BST1BBR0FUSU9OX1ZJRVcpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0jZGVmaW5lIEhBVkVf
VklTSUJJTElUWV9QUk9QQUdBVElPTl9WSUVXIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoSEFW
RV9VSVNDRU5FKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX1VJU0NFTkUg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChIQVZFX0FWU1RSRUFNU0VTU0lPTikgJiYgUExBVEZP
Uk0oTUFDKQotI2RlZmluZSBIQVZFX0FWU1RSRUFNU0VTU0lPTiAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEhBVkVfUEFTU0tJVF9BUElfVFlQRSkgJiYgKFBMQVRGT1JNKElPU19GQU1JTFkpIHx8
IFBMQVRGT1JNKE1BQykpCi0jZGVmaW5lIEhBVkVfUEFTU0tJVF9BUElfVFlQRSAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEhBVkVfUEFTU0tJVF9CT1VORF9JTlRFUkZBQ0VfSURFTlRJRklFUikg
JiYgKFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDE0MDApKQotI2RlZmluZSBIQVZFX1BBU1NLSVRfQk9VTkRfSU5U
RVJGQUNFX0lERU5USUZJRVIgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChVU0VfVUlLSVRfS0VZ
Qk9BUkRfQURESVRJT05TKSAmJiAoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlT
VCkpCi0jZGVmaW5lIFVTRV9VSUtJVF9LRVlCT0FSRF9BRERJVElPTlMgMQotI2VuZGlmCi0KLQot
I2lmICFkZWZpbmVkKEhBVkVfQUNDRVNTSUJJTElUWSkgJiYgKFBMQVRGT1JNKENPQ09BKSB8fCBQ
TEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKLSNkZWZpbmUg
SEFWRV9BQ0NFU1NJQklMSVRZIDEKLSNlbmRpZgotCi0vKiBGSVhNRTogUmVtb3ZlIGFmdGVyIENN
YWtlIGJ1aWxkIGVuYWJsZWQgb24gRGFyd2luICovCi0jaWYgT1MoREFSV0lOKQotI2RlZmluZSBI
QVZFX0VSUk5PX0ggMQotI2VuZGlmCi0KLSNpZiBPUyhEQVJXSU4pCi0jZGVmaW5lIEhBVkVfTEFO
R0lORk9fSCAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJTikKLSNkZWZpbmUgSEFWRV9MT0NBTFRJ
TUVfUiAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJTikKLSNkZWZpbmUgSEFWRV9NTUFQIDEKLSNl
bmRpZgotCi0jaWYgT1MoREFSV0lOKQotI2RlZmluZSBIQVZFX1JFR0VYX0ggMQotI2VuZGlmCi0K
LSNpZiBPUyhEQVJXSU4pCi0jZGVmaW5lIEhBVkVfU0lHTkFMX0ggMQotI2VuZGlmCi0KLSNpZiBP
UyhEQVJXSU4pCi0jZGVmaW5lIEhBVkVfU1RBVF9CSVJUSFRJTUUgMQotI2VuZGlmCi0KLSNpZiBP
UyhEQVJXSU4pCi0jZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKLSNlbmRpZgotCi0jaWYgT1MoREFS
V0lOKQotI2RlZmluZSBIQVZFX1NUUk5TVFIgMQotI2VuZGlmCi0KLSNpZiBPUyhEQVJXSU4pCi0j
ZGVmaW5lIEhBVkVfU1lTX1BBUkFNX0ggMQotI2VuZGlmCi0KLSNpZiBPUyhEQVJXSU4pCi0jZGVm
aW5lIEhBVkVfU1lTX1RJTUVfSCAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJTikKLSNkZWZpbmUg
SEFWRV9UTV9HTVRPRkYgMQotI2VuZGlmCi0KLSNpZiBPUyhEQVJXSU4pCi0jZGVmaW5lIEhBVkVf
VE1fWk9ORSAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJTikKLSNkZWZpbmUgSEFWRV9USU1FR00g
MQotI2VuZGlmCi0KLSNpZiBPUyhEQVJXSU4pCi0jZGVmaW5lIEhBVkVfUFRIUkVBRF9NQUlOX05Q
IDEKLSNlbmRpZgotCi0jaWYgT1MoREFSV0lOKSAmJiAoQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0
KSkKLSNkZWZpbmUgSEFWRV9JTlQxMjhfVCAxCi0jZW5kaWYKLQotI2lmIE9TKFVOSVgpCi0jZGVm
aW5lIFVTRV9QVEhSRUFEUyAxCi0jZW5kaWYKLQotI2lmIE9TKFVOSVgpICYmICFPUyhGVUNIU0lB
KQotI2RlZmluZSBIQVZFX1JFU09VUkNFX0ggMQotI2VuZGlmCi0KLSNpZiBPUyhVTklYKSAmJiAh
T1MoRlVDSFNJQSkKLSNkZWZpbmUgSEFWRV9QVEhSRUFEX1NFVFNDSEVEUEFSQU0gMQotI2VuZGlm
Ci0KLSNpZiBPUyhEQVJXSU4pCi0jZGVmaW5lIEhBVkVfRElTUEFUQ0hfSCAxCi0jZW5kaWYKLQot
I2lmIE9TKERBUldJTikKLSNkZWZpbmUgSEFWRV9NQURWX0ZSRUUgMQotI2VuZGlmCi0KLSNpZiBP
UyhEQVJXSU4pCi0jZGVmaW5lIEhBVkVfTUFEVl9GUkVFX1JFVVNFIDEKLSNlbmRpZgotCi0jaWYg
T1MoREFSV0lOKQotI2RlZmluZSBIQVZFX01BRFZfRE9OVE5FRUQgMQotI2VuZGlmCi0KLSNpZiBP
UyhEQVJXSU4pCi0jZGVmaW5lIEhBVkVfTUVSR0VTT1JUIDEKLSNlbmRpZgotCi0jaWYgT1MoREFS
V0lOKQotI2RlZmluZSBIQVZFX1BUSFJFQURfU0VUTkFNRV9OUCAxCi0jZW5kaWYKLQotI2lmIE9T
KERBUldJTikKLSNkZWZpbmUgSEFWRV9SRUFETElORSAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJ
TikKLSNkZWZpbmUgSEFWRV9TWVNfVElNRUJfSCAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJTikK
LSNkZWZpbmUgSEFWRV9BVURJVF9UT0tFTiAxCi0jZW5kaWYKLQotI2lmIE9TKERBUldJTikgJiYg
X19oYXNfaW5jbHVkZSg8bWFjaC9tYWNoX2V4Yy5kZWZzPikgJiYgIVBMQVRGT1JNKEdUSykKLSNk
ZWZpbmUgSEFWRV9NQUNIX0VYQ0VQVElPTlMgMQotI2VuZGlmCi0KLSNpZiBPUyhEQVJXSU4pICYm
ICFQTEFURk9STShHVEspCi0jZGVmaW5lIFVTRV9BQ0NFTEVSQVRFIDEKLSNlbmRpZgotCi0jaWYg
T1MoREFSV0lOKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9IT1NURURf
Q09SRV9BTklNQVRJT04gMQotI2VuZGlmCi0KLQotI2lmIE9TKERBUldJTikgfHwgT1MoRlVDSFNJ
QSkgfHwgKChPUyhGUkVFQlNEKSB8fCBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVmaW5lZChfX0JJ
T05JQ19fKSkgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk0pIHx8IENQVShB
Uk02NCkgfHwgQ1BVKE1JUFMpKSkKLSNkZWZpbmUgSEFWRV9NQUNISU5FX0NPTlRFWFQgMQotI2Vu
ZGlmCi0KLSNpZiBPUyhEQVJXSU4pIHx8IChPUyhMSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18p
ICYmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFDUFUoTUlQUykpCi0jZGVmaW5lIEhBVkVfQkFD
S1RSQUNFIDEKLSNlbmRpZgotCi0jaWYgT1MoREFSV0lOKSB8fCBPUyhMSU5VWCkKLSNpZiBQTEFU
Rk9STShHVEspCi0jaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18p
ICYmICFDUFUoTUlQUykKLSNkZWZpbmUgSEFWRV9CQUNLVFJBQ0VfU1lNQk9MUyAxCi0jZW5kaWYK
LSNlbmRpZiAvKiBQTEFURk9STShHVEspICovCi0jZGVmaW5lIEhBVkVfRExBRERSIDEKLSNlbmRp
ZiAvKiBPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSAqLwotCi0KLSNpZiBPUyhXSU5ET1dTKQotI2Rl
ZmluZSBVU0VfU1lTVEVNX01BTExPQyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKFVTRV9KU1ZB
TFVFNjQpICYmICFkZWZpbmVkKFVTRV9KU1ZBTFVFMzJfNjQpCi0jaWYgQ1BVKEFERFJFU1M2NCkg
fHwgQ1BVKEFSTTY0KQotI2RlZmluZSBVU0VfSlNWQUxVRTY0IDEKLSNlbHNlCi0jZGVmaW5lIFVT
RV9KU1ZBTFVFMzJfNjQgMQotI2VuZGlmCi0jZW5kaWYgLyogIWRlZmluZWQoVVNFX0pTVkFMVUU2
NCkgJiYgIWRlZmluZWQoVVNFX0pTVkFMVUUzMl82NCkgKi8KLQotI2lmIF9faGFzX2luY2x1ZGUo
PFN5c3RlbS9wdGhyZWFkX21hY2hkZXAuaD4pCi0jZGVmaW5lIEhBVkVfRkFTVF9UTFMgMQotI2Vu
ZGlmCi0KLSNpZiBDT01QSUxFUihHQ0NfQ09NUEFUSUJMRSkKLSNkZWZpbmUgSEFWRV9DT01QVVRF
RF9HT1RPIDEKLSNlbmRpZgotCi0vKiBGSVhNRTogVGhpcyBuYW1lIHNob3VsZCBiZSBtb3JlIHNw
ZWNpZmljIGlmIGl0IGlzIG9ubHkgZm9yIHVzZSB3aXRoIENhbGxGcmFtZSogKi8KLS8qIFVzZSBf
X2J1aWx0aW5fZnJhbWVfYWRkcmVzcygxKSB0byBnZXQgQ2FsbEZyYW1lKiAqLwotI2lmIENPTVBJ
TEVSKEdDQ19DT01QQVRJQkxFKSAmJiAoQ1BVKEFSTTY0KSB8fCBDUFUoWDg2XzY0KSkKLSNkZWZp
bmUgVVNFX0JVSUxUSU5fRlJBTUVfQUREUkVTUyAxCi0jZW5kaWYKLQotI2lmIENQVShBUk02NEUp
ICYmIE9TKERBUldJTikKLSNkZWZpbmUgSEFWRV9GSkNWVFpTX0lOU1RSVUNUSU9OIDEKLSNlbmRp
ZgotCi0jaWYgUExBVEZPUk0oSU9TKQotI2RlZmluZSBIQVZFX0FQUF9MSU5LUyAxCi0jZW5kaWYK
LQotI2lmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgVVNFX1BBU1NLSVQgMQotI2VuZGlmCi0KLSNp
ZiBQTEFURk9STShJT1MpCi0jZGVmaW5lIFVTRV9RVUlDS19MT09LIDEKLSNlbmRpZgotCi0jaWYg
UExBVEZPUk0oSU9TKQotI2RlZmluZSBVU0VfU1lTVEVNX1BSRVZJRVcgMQotI2VuZGlmCi0KLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5l
IEhBVkVfQ0VMRVNUSUFMIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
IVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBIQVZFX0NPUkVfQU5JTUFUSU9OX1JFTkRF
Ul9TRVJWRVIgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShBUFBMRVRWKQotI2RlZmluZSBIQVZFX1BBUkVO
VEFMX0NPTlRST0xTX1dJVEhfVU5CTE9DS19IQU5ETEVSIDEKLSNlbmRpZgotCi0jaWYgUExBVEZP
Uk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9BVkZPVU5EQVRJT04gMQotI2VuZGlmCi0KLSNpZiBQTEFU
Rk9STShDT0NPQSkKLSNkZWZpbmUgVVNFX1BST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSyAx
Ci0jZW5kaWYKLQotLyogRklYTUU6IEVuYWJsZSBIQVZFX1BBUkVOVEFMX0NPTlRST0xTIGZvciB3
YXRjaE9TIFNpbXVsYXRvciBvbmNlIHJkYXI6Ly9wcm9ibGVtLzU0NjA4Mzg2IGlzIHJlc29sdmVk
ICovCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmICghUExBVEZPUk0oQVBQTEVUVikgJiYgKCFQTEFU
Rk9STShXQVRDSE9TKSB8fCAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpKSkKLSNkZWZp
bmUgSEFWRV9QQVJFTlRBTF9DT05UUk9MUyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09B
KSAmJiAhUExBVEZPUk0oQVBQTEVUVikKLSNkZWZpbmUgSEFWRV9BVktJVCAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBVU0VfTUVUQUwgMQotI2VuZGlmCi0KLQotI2lm
IFVTRShHTElCKQotI2luY2x1ZGUgPHd0Zi9nbGliL0dUeXBlZGVmcy5oPgotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChVU0VfRVhQT1JUX01BQ1JPUykgJiYgKFBMQVRGT1JNKENPQ09BKSB8fCBPUyhX
SU5ET1dTKSkKLSNkZWZpbmUgVVNFX0VYUE9SVF9NQUNST1MgMQotI2VuZGlmCi0KLSNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKLSNkZWZpbmUgVVNFX1VOSVhfRE9NQUlOX1NPQ0tF
VFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChVU0VfSU1MQU5HX0ZPTlRfTElOSzIpCi0jZGVm
aW5lIFVTRV9JTUxBTkdfRk9OVF9MSU5LMiAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09B
KQotI2RlZmluZSBVU0VfQ09SRU1FRElBIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0Ep
Ci0jZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NP
QSkKLSNkZWZpbmUgSEFWRV9BVkZPVU5EQVRJT05fVklERU9fT1VUUFVUIDEKLSNlbmRpZgotCi0j
aWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfQ09SRV9WSURFTyAxCi0jZW5kaWYKLQot
I2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBIQVZFX01FRElBX1BMQVlFUiAxCi0jZW5kaWYK
LQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBIQVZFX0FWRk9VTkRBVElPTl9NRURJQV9T
RUxFQ1RJT05fR1JPVVAgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUg
SEFWRV9BVkZPVU5EQVRJT05fTEVHSUJMRV9PVVRQVVRfU1VQUE9SVCAxCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBIQVZFX01FRElBX0FDQ0VTU0lCSUxJVFlfRlJBTUVX
T1JLIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfQVZGT1VO
REFUSU9OX0xPQURFUl9ERUxFR0FURSAxCi0jZW5kaWYKLQotI2lmICFQTEFURk9STShXSU4pCi0j
ZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IgMQotI2Vu
ZGlmCi0KLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmlu
ZSBIQVZFX0FQUExFX0dSQVBISUNTX0NPTlRST0wgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShN
QUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBIQVZFX05TQ1VSU09SIDEKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBVU0VfQ09SRUFVRElPIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoVVNFX1pMSUIpCi0jZGVmaW5lIFVTRV9aTElCIDEKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoSEFWRV9RT1NfQ0xBU1NFUykgJiYgUExBVEZPUk0oQ09DT0EpCi0jZGVm
aW5lIEhBVkVfUU9TX0NMQVNTRVMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChIQVZFX1ZPVUNI
RVJTKSAmJiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgSEFWRV9WT1VDSEVSUyAxCi0jZW5kaWYK
LQotI2RlZmluZSBVU0VfR1JBTU1BUl9DSEVDS0lORyAxCi0KLSNpZiBQTEFURk9STShDT0NPQSkg
fHwgUExBVEZPUk0oR1RLKQotI2RlZmluZSBVU0VfVU5JRklFRF9URVhUX0NIRUNLSU5HIDEKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBVU0VfQVVUT01BVElDX1RFWFRfUkVQ
TEFDRU1FTlQgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0vKiBTb21lIHBsYXRmb3Jt
cyBwcm92aWRlIFVJIGZvciBzdWdnZXN0aW5nIGF1dG9jb3JyZWN0aW9uLiAqLwotI2RlZmluZSBV
U0VfQVVUT0NPUlJFQ1RJT05fUEFORUwgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkK
LS8qIFNvbWUgcGxhdGZvcm1zIHVzZSBzcGVsbGluZyBhbmQgYXV0b2NvcnJlY3Rpb24gbWFya2Vy
cyB0byBwcm92aWRlIHZpc3VhbCBjdWUuIE9uIHN1Y2ggcGxhdGZvcm0sIGlmIHdvcmQgd2l0aCBt
YXJrZXIgaXMgZWRpdGVkLCB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbWFya2VyLiAqLwotI2RlZmlu
ZSBVU0VfTUFSS0VSX1JFTU9WQUxfVVBPTl9FRElUSU5HIDEKLSNlbmRpZgotCi0jaWYgUExBVEZP
Uk0oTUFDKQotI2RlZmluZSBVU0VfSU5TRVJUSU9OX1VORE9fR1JPVVBJTkcgMQotI2VuZGlmCi0K
LSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgSEFWRV9BVkFTU0VUUkVBREVSIDEKLSNlbmRp
ZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9BVURJT19TRVNTSU9OIDEKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIEhBVkVfSU9TVVJGQUNFIDEKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlf
U0lNVUxBVE9SKQotI2RlZmluZSBIQVZFX0lPU1VSRkFDRV9DT1JFSU1BR0VfU1VQUE9SVCAxCi0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZ
X1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBIQVZFX0lPU1VS
RkFDRV9BQ0NFTEVSQVRPUiAxCi0jZW5kaWYKLQotI2lmIENPTVBJTEVSKE1TVkMpCi0jdW5kZWYg
X19TVERDX0ZPUk1BVF9NQUNST1MKLSNkZWZpbmUgX19TVERDX0ZPUk1BVF9NQUNST1MKLSN1bmRl
ZiBfX1NURENfTElNSVRfTUFDUk9TCi0jZGVmaW5lIF9fU1REQ19MSU1JVF9NQUNST1MKLSNlbmRp
ZgotCi0jaWYgUExBVEZPUk0oTUFDKQotI2RlZmluZSBIQVZFX05TX0FDVElWSVRZIDEKLSNlbmRp
ZgotCi0KLS8qIFNldCBUQVJHRVRfT1NfSVBIT05FIHRvIDAgYnkgZGVmYXVsdCB0byBhbGxvdyB1
c2luZyBpdCBhcyBhIGd1YXJkIAotICogaW4gY3Jvc3MtcGxhdGZvcm0gdGhlIHNhbWUgd2F5IGFz
IGl0IGlzIHVzZWQgaW4gT1MoREFSV0lOKSBjb2RlLiAqLyAKLSNpZiAhZGVmaW5lZChUQVJHRVRf
T1NfSVBIT05FKSAmJiAhT1MoREFSV0lOKQotI2RlZmluZSBUQVJHRVRfT1NfSVBIT05FIDAKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0jZGVmaW5lIFVTRV9NRURJQVRPT0xCT1ggMQot
I2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZpbmUgVVNFX09TX0xPRyAxCi0jZW5k
aWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2Rl
ZmluZSBVU0VfT1NfU1RBVEUgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNkZWZp
bmUgSEFWRV9TRUNfVFJVU1RfU0VSSUFMSVpBVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KFdURl9ERUZBVUxUX0VWRU5UX0xPT1ApCi0jZGVmaW5lIFdURl9ERUZBVUxUX0VWRU5UX0xPT1Ag
MQotI2VuZGlmCi0KLSNpZiBXVEZfREVGQVVMVF9FVkVOVF9MT09QCi0jaWYgVVNFKEdMSUIpCi0v
KiBVc2UgR0xpYidzIGV2ZW50IGxvb3AgYWJzdHJhY3Rpb24uIFByaW1hcmlseSBHVEsgcG9ydCB1
c2VzIGl0LiAqLwotI2RlZmluZSBVU0VfR0xJQl9FVkVOVF9MT09QIDEKLSNlbGlmIE9TKFdJTkRP
V1MpCi0vKiBVc2UgV2luZG93cyBtZXNzYWdlIHB1bXAgYWJzdHJhY3Rpb24uCi0gKiBFdmVuIGlm
IHRoZSBwb3J0IGlzIEFwcGxlV2luLCB3ZSB1c2UgdGhlIFdpbmRvd3MgbWVzc2FnZSBwdW1wIHN5
c3RlbSBmb3IgdGhlIGV2ZW50IGxvb3AsCi0gKiBzbyB0aGF0IFVTRShXSU5ET1dTX0VWRU5UX0xP
T1ApICYmIFVTRShDRikgY2FuIGJlIHRydWUuCi0gKiBBbmQgUExBVEZPUk0oV0lOKSBhbmQgUExB
VEZPUk0oR1RLKSBhcmUgZXhjbHVzaXZlLiBJZiB0aGUgcG9ydCBpcyBHVEssCi0gKiBQTEFURk9S
TShXSU4pIHNob3VsZCBiZSBmYWxzZS4gQW5kIGluIHRoYXQgY2FzZSwgR0xpYidzIGV2ZW50IGxv
b3AgaXMgdXNlZC4KLSAqLwotI2RlZmluZSBVU0VfV0lORE9XU19FVkVOVF9MT09QIDEKLSNlbGlm
IFBMQVRGT1JNKENPQ09BKQotLyogT1MgWCBhbmQgSU9TLiBVc2UgQ29yZUZvdW5kYXRpb24gJiBH
Q0QgYWJzdHJhY3Rpb24uICovCi0jZGVmaW5lIFVTRV9DT0NPQV9FVkVOVF9MT09QIDEKLSNlbHNl
Ci0jZGVmaW5lIFVTRV9HRU5FUklDX0VWRU5UX0xPT1AgMQotI2VuZGlmCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBVU0VfTUVESUFSRU1PVEUgMQotI2VuZGlmCi0KLSNp
ZiBDT01QSUxFUihNU1ZDKQotLyogRW5hYmxlIHN0cmljdCBydW50aW1lIHN0YWNrIGJ1ZmZlciBj
aGVja3MuICovCi0jcHJhZ21hIHN0cmljdF9nc19jaGVjayhvbikKLSNlbmRpZgotCi0jaWYgUExB
VEZPUk0oTUFDKQotI2RlZmluZSBIQVZFX1RPVUNIX0JBUiAxCi0jZW5kaWYKLQotI2lmIFBMQVRG
T1JNKE1BQykKLSNkZWZpbmUgVVNFX0RJQ1RBVElPTl9BTFRFUk5BVElWRVMgMQotI2VuZGlmCi0K
LQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRB
TFlTVCkgfHwgVVNFKEdDUllQVCkKLSNkZWZpbmUgSEFWRV9SU0FfUFNTIDEKLSNlbmRpZgotCi0j
aWYgKFBMQVRGT1JNKE1BQykgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0jZGVmaW5lIFVTRV9TT1VSQ0VfQVBQTElDQVRJT05fQVVESVRfREFUQSAxCi0jZW5kaWYKLQot
I2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTMwMDAwKQotI2RlZmluZSBIQVZFX0hTVFNfU1RPUkFHRV9QQVRIIDEK
LSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCi0jZGVmaW5lIEhBVkVfVVJMX0ZPUk1BVFRJTkcgMQotI2VuZGlmCi0KLSNpZiAhT1MoV0lO
RE9XUykKLSNkZWZpbmUgSEFWRV9TVEFDS19CT1VORFNfRk9SX05FV19USFJFQUQgMQotI2VuZGlm
Ci0KLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDQ0FU
QUxZU1QpCi0jZGVmaW5lIEhBVkVfQVZDT05URU5US0VZU0VTU0lPTiAxCi0jZW5kaWYKLQotI2lm
IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
NDAwKSB8fCBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBI
QVZFX1NFQ19LRVlfUFJPWFkgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNF
KENBKQotI2RlZmluZSBVU0VfSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFIDEKLSNlbmRp
ZgotCi0vKiBGSVhNRTogU2hvdWxkIHRoaXMgYmUgZW5hYmxlZCBvciBJT1NfRkFNSUxZLCBub3Qg
anVzdCBJT1M/ICovCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDE0MDApIHx8IFBMQVRGT1JNKElPUykKLSNkZWZpbmUgSEFWRV9GT1VO
REFUSU9OX1dJVEhfU0FWRV9DT09LSUVTX1dJVEhfQ09NUExFVElPTl9IQU5ETEVSIDEKLSNlbmRp
ZgotCi0vKiBGSVhNRTogU2hvdWxkIHRoaXMgYmUgZW5hYmxlZCBmb3IgSU9TX0ZBTUlMWSwgbm90
IGp1c3QgSU9TPyAqLwotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1MpCi0jZGVmaW5lIEhBVkVfRk9V
TkRBVElPTl9XSVRIX1NBTUVfU0lURV9DT09LSUVfU1VQUE9SVCAxCi0jZW5kaWYKLQotI2lmIFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwgMTAxNDAwCi0j
ZGVmaW5lIEhBVkVfTlNIVFRQQ09PS0lFU1RPUkFHRV9fSU5JVFdJVEhJREVOVElGSUVSX1dJVEhf
SU5BQ0NVUkFURV9OVUxMQUJJTElUWSAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQot
I2RlZmluZSBIQVZFX0NGTkVUV09SS19XSVRIX0NPTlRFTlRfRU5DT0RJTkdfU05JRkZJTkdfT1ZF
UlJJREUgMQotLyogVGhlIG92ZXJyaWRlIGlzbid0IG5lZWRlZCBvbiBpT1MgZmFtaWx5LCBhcyB0
aGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBub3Qgc25pZmYuICovCi0vKiBGSVhNRTogVGhpcyBz
aG91bGQgcHJvYmFibHkgYmUgZW5hYmxlZCBvbiAxMC4xMy4yIGFuZCBuZXdlciwgbm90IGp1c3Qg
MTAuMTQgYW5kIG5ld2VyLiAqLwotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKLSNkZWZpbmUgVVNFX0NGTkVUV09SS19DT05URU5U
X0VOQ09ESU5HX1NOSUZGSU5HX09WRVJSSURFIDEKLSNlbmRpZgotI2VuZGlmCi0KLSNpZiAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkg
fHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oR1RLKQotI2RlZmluZSBIQVZFX09TX0RBUktfTU9E
RV9TVVBQT1JUIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMAotI2RlZmluZSBIQVZFX0NHX0ZPTlRfUkVOREVS
SU5HX0dFVF9GT05UX1NNT09USElOR19ESVNBQkxFRCAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9S
TShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAwKSB8fCBQ
TEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX0NBX1dIRVJFX0FERElUSVZFX1RSQU5T
Rk9STVNfQVJFX1JFVkVSU0VEIDEKLSNlbmRpZgotCi0jaWZkZWYgX19BUFBMRV9fCi0jZGVmaW5l
IEhBVkVfRlVOQ19VU0xFRVAgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRG
T1JNKFdQRSkKLS8qIEZJWE1FOiBUaGlzIHJlYWxseSBuZWVkcyBhIGRlc2NyaXB0aXZlIG5hbWUs
IHRoaXMgIm5ldyB0aGVtZSIgd2FzIGFkZGVkIGluIDIwMDguICovCi0jZGVmaW5lIFVTRV9ORVdf
VEhFTUUgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0jZGVmaW5lIEhBVkVfV0lORE9X
X1NFUlZFUl9PQ0NMVVNJT05fTk9USUZJQ0FUSU9OUyAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JN
KENPQ09BKQotI2RlZmluZSBIQVZFX1NFQ19BQ0NFU1NfQ09OVFJPTCAxCi0jZW5kaWYKLQotI2lm
IFBMQVRGT1JNKElPUykKLS8qIEZJWE1FOiBTYWZhcmlTZXJ2aWNlcy5mcmFtZXdvcmsgZXhpc3Rz
IG9uIG1hY09TLiBJdCBpcyBvbmx5IHVzZWQgYnkgV2ViS2l0IG9uIGlPUywgc28gdGhlIGJlaGF2
aW9yIGlzIGNvcnJlY3QsIGJ1dCB0aGUgbmFtZSBpcyBtaXNsZWFkaW5nLiAqLwotI2RlZmluZSBI
QVZFX1NBRkFSSV9TRVJWSUNFU19GUkFNRVdPUksgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShN
QUMpIHx8IFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oV0FUQ0hPUykKLSNkZWZpbmUgSEFWRV9T
QUZFX0JST1dTSU5HIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TKQotI2RlZmluZSBIQVZF
X0xJTktfUFJFVklFVyAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShJT1NfRkFNSUxZKSB8fCAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQw
MCkpCi0jZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWV9TVVBQT1JUIDEKLSNlbmRpZgotCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTMwMDAwICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTMwMTAwCi0j
ZGVmaW5lIEhBVkVfQUNDRVNTSUJJTElUWV9CVU5ETEVTX1BBVEggMQotI2VuZGlmCi0KLSNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkKLSNkZWZpbmUgSEFWRV9BVVRIT1JJWkFUSU9OX1NU
QVRVU19GT1JfTUVESUFfVFlQRSAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIChf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxNDA0KSkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhP
TkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUFYX0FMTE9XRUQgPj0gMTIwMjAwKSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9S
TShBUFBMRVRWKQotI2RlZmluZSBIQVZFX0NGTkVUV09SS19PVkVSUklERV9TRVNTSU9OX0NPT0tJ
RV9BQ0NFUFRfUE9MSUNZIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApCi0jZGVm
aW5lIEhBVkVfQ0ZORVRXT1JLX05TVVJMU0VTU0lPTl9TVFJJQ1RSVVNURVZBTFVBVEUgMQotI2Vu
ZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9DRk5F
VFdPUktfTkVHT1RJQVRFRF9TU0xfUFJPVE9DT0xfQ0lQSEVSIDEKLSNlbmRpZgotCi0jaWYgKFBM
QVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE2MDAp
IHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxNDAwMDApCi0jZGVmaW5lIEhBVkVfQ0ZORVRXT1JLX01FVFJJQ1NfQVBJU19WNCAx
Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDE1MDAKLSNkZWZpbmUgSEFWRV9DU0NIRUNLRklYRElTQUJMRSAxCi0jZW5k
aWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX1NBTkRC
T1hfSVNTVUVfTUFDSF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTiAxCi0jZW5k
aWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxNDAwKSB8fCBQTEFURk9STShJT1NfRkFNSUxZKQotI2RlZmluZSBIQVZFX1NBTkRC
T1hfSVNTVUVfUkVBRF9FWFRFTlNJT05fVE9fUFJPQ0VTU19CWV9BVURJVF9UT0tFTiAxCi0jZW5k
aWYKLQotI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQotI2RlZmluZSBIQVZFX01ETlNfRkFTVF9SRUdJ
U1RSQVRJT04gMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNk
ZWZpbmUgSEFWRV9ESVNBTExPV0FCTEVfVVNFUl9JTlNUQUxMRURfRk9OVFMgMQotI2VuZGlmCi0K
LSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEzMDAwMCkKLSNkZWZpbmUgSEFWRV9DVEZPTlRDUkVBVEVGT1JDSEFS
QUNURVJTV0lUSExBTkdVQUdFQU5ET1BUSU9OIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1B
QykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MzAwMDApCi0jZGVmaW5lIEhBVkVfQ1RGT05UVFJBTlNGT1JNR0xZUEhTV0lUSExBTkdVQUdFIDEK
LSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgX19JUEhPTkVfT1NfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwCi0jZGVmaW5lIEhBVkVfQVJLSVRfUVVJQ0tfTE9PS19Q
UkVWSUVXX0lURU0gMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDAKLSNkZWZpbmUgSEFWRV9VSV9X
S19ET0NVTUVOVF9DT05URVhUIDEKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1Qp
Ci0jZGVmaW5lIEhBVkVfSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSIDEKLSNlbmRpZgotCi0jaWYg
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEhBVkVfVUlfUEFSQUxMQVhfVFJBTlNJVElP
Tl9HRVNUVVJFX1JFQ09HTklaRVIgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9BTExPV1NfU0VOU0lUSVZFX0xPR0dJTkcgMQotI2VuZGlm
Ci0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTUwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9GQUlSUExB
WVNUUkVBTUlOR19DRU5DX0lOSVREQVRBIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKElPUykg
JiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKSB8fCBQTEFURk9S
TShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKQotI2RlZmluZSBIQVZFX1VJX1NDUk9MTF9W
SUVXX0lORElDQVRPUl9GTEFTSElOR19TUEkgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oSU9T
KSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApIHx8IFBMQVRG
T1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCi0jZGVmaW5lIEhBVkVfQVBQX0xJTktT
X1dJVEhfSVNFTkFCTEVEIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKElPUykgJiYgX19JUEhP
TkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAwKQotI2RlZmluZSBIQVZFX1JPVVRF
X1NIQVJJTkdfUE9MSUNZX0xPTkdfRk9STV9WSURFTyAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9S
TShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEyMDAwMCAmJiAh
UExBVEZPUk0oSU9TX1NJTVVMQVRPUikpCi0jZGVmaW5lIEhBVkVfREVWSUNFX01BTkFHRU1FTlQg
MQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhf
QUxMT1dFRCA8IDEwMTUwMAotI2RlZmluZSBVU0VfUkVBTFBBVEhfRk9SX0RMT1BFTl9QUkVGTElH
SFQgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBI
T05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hP
UykgfHwgUExBVEZPUk0oQVBQTEVUVikKLSNkZWZpbmUgSEFWRV9OU1VSTFNFU1NJT05fV0VCU09D
S0VUIDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09T
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwg
UExBVEZPUk0oQVBQTEVUVikKLSNkZWZpbmUgSEFWRV9BVlBMQVlFUl9SRVNPVVJDRV9DT05TRVJW
QVRJT05fTEVWRUwgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19J
UEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwKSB8fCBQTEFURk9STShXQVRD
SE9TKSB8fCBQTEFURk9STShBUFBMRVRWKQotI2RlZmluZSBIQVZFX0NPUkVURVhUX0FVVE9fT1BU
SUNBTF9TSVpJTkcgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEIDwgMTAxNTAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEzMDAwMCkKLSNkZWZpbmUgSEFWRV9OU0ZP
TlRfV0lUSF9PUFRJQ0FMX1NJWklOR19CVUcgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oSU9T
KSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTUwMCkpCi0jZGVmaW5lIEhBVkVfQVBQX1NTTyAxCi0jZW5kaWYKLQotI2lmIChQTEFURk9S
TShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCB8fCBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxNTAw
KSB8fCBQTEFURk9STShXQVRDSE9TKSB8fCBQTEFURk9STShBUFBMRVRWKSB8fCBQTEFURk9STShN
QUNDQVRBTFlTVCkKLSNkZWZpbmUgSEFWRV9UTFNfUFJPVE9DT0xfVkVSU0lPTl9UIDEKLSNlbmRp
ZgotCi0jaWYgUExBVEZPUk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExB
VEZPUk0oQVBQTEVUVikgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0jZGVmaW5lIEhBVkVfU0VD
X1RSVVNUX0VWQUxVQVRFX1dJVEhfRVJST1IgMQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotI2RlZmluZSBVU0VfVUlDT05URVhUTUVOVSAxCi0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE1MDAKLSNkZWZpbmUgSEFWRV9TVUJWSUVXU19JVkFSX1NQSSAxCi0jZW5kaWYK
LQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEIDwg
MTAxNTAwCi0jZGVmaW5lIEhBVkVfU1VCVklFV1NfSVZBUl9ERUNMQVJFRF9CWV9TREsgMQotI2Vu
ZGlmCi0KLSNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShJT1NfRkFNSUxZKSAmJiBfX0lQ
SE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApIHx8IFBMQVRGT1JNKFdBVENI
T1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpCi0jZGVmaW5lIFVTRV9QTEFURk9STV9TWVNURU1fRkFM
TEJBQ0tfTElTVCAxCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9W
RVJTSU9OX01BWF9BTExPV0VEID49IDEwMTUwMAotI2RlZmluZSBIQVZFX0FYX0NMSUVOVF9UWVBF
IDEKLSNlbmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDE1MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgfHwgUExBVEZPUk0oV0FUQ0hPUykgfHwgUExB
VEZPUk0oQVBQTEVUVikKLSNkZWZpbmUgSEFWRV9ERVNJR05fU1lTVEVNX1VJX0ZPTlRTIDEKLSNl
bmRpZgotCi0jaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDE0MDApIHx8IChQTEFURk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxB
VE9SKSkKLSNkZWZpbmUgSEFWRV9ERVZJQ0VfSURFTlRJVFkgMQotI2VuZGlmCi0KLSNpZiAoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkg
fHwgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSNkZWZpbmUgSEFWRV9EQVRBX1BST1RFQ1RJT05fS0VZ
Q0hBSU4gMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTUwMCkgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQ
TEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikpCi0jZGVmaW5lIEhBVkVfTkVBUl9GSUVMRCAx
Ci0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8ICghKGRlZmluZWQoVVNFX1NZ
U1RFTV9NQUxMT0MpICYmIFVTRV9TWVNURU1fTUFMTE9DKSAmJiAoT1MoTElOVVgpICYmIChQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpKSkKLSNkZWZpbmUgVVNFX0JNQUxMT0NfTUVNT1JZ
X0ZPT1RQUklOVF9BUEkgMQotI2VuZGlmCi0KLSNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTQwMCkgfHwgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKLSNkZWZpbmUgSEFWRV9PU19TSUdOUE9TVCAxCi0jZW5kaWYKLQotCi0KLSNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKSAmJiBfX2hhc19pbmNsdWRlKDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRp
b25hbFBsYXRmb3JtLmg+KQotI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BZGRpdGlvbmFsUGxh
dGZvcm0uaD4KLSNlbmRpZgotCi0jaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNf
aW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL0FkZGl0aW9uYWxGZWF0dXJlRGVmaW5lcy5oPikKLSNp
bmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQWRkaXRpb25hbEZlYXR1cmVEZWZpbmVzLmg+Ci0jZW5k
aWYKLQotLyogX19QTEFURk9STV9JTkRJUkVDVF9fIGVuc3VyZXMgdGhhdCB1c2VycyAjaW5jbHVk
ZSA8d3RmL1BsYXRmb3JtLmg+IHJhdGhlciB0aGFuIHd0Zi9GZWF0dXJlRGVmaW5lcy5oIGRpcmVj
dGx5LiAqLwotI2RlZmluZSBfX1BMQVRGT1JNX0lORElSRUNUX18KLQotLyogSW5jbHVkZSBmZWF0
dXJlIG1hY3JvcyAqLwotI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybUVuYWJsZS5oPgotCi0jdW5kZWYg
X19QTEFURk9STV9JTkRJUkVDVF9fCi0KLQotCi0vKiBGSVhNRTogVGhlIGZvbGxvd2luZyBhcmUg
Y3VycmVubHkgcG9zaXRpb25lZCBhdCB0aGUgYm90dG9tIG9mIHRoaXMgZmlsZSBhcyB0aGV5IGFy
ZSBjdXJyZW50bHkgZGVwZW5kZW50IG9uIEVOQUJMRSBtYWNyb3MuICovCi0KLS8qIEZJWE1FOiBS
ZW1vdmUgZGVwZW5kZW5jZSBvbiBFTkFCTEUoV0VCX1JUQykuICovCi0jaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShXRUJfUlRDKQotI2RlZmluZSBVU0VfTElCV0VCUlRDIDEKLSNlbmRpZgot
Ci0vKiBGSVhNRTogVGhpcyBpcyB1c2VkIHRvICJ0dXJuIG9uIGEgc3BlY2lmaWMgZmVhdHVyZSBv
ZiBXZWJLaXQiLCBzbyBzaG91bGQgYmUgY29udmVydGVkIHRvIGFuIEVOQUJMRSBtYWNyby4gKi8K
LS8qIFRoaXMgZmVhdHVyZSB3b3JrcyBieSBlbWJlZGRpbmcgdGhlIE9wY29kZUlEIGluIHRoZSAz
MiBiaXQganVzdCBiZWZvcmUgdGhlIGdlbmVyYXRlZCBMTGludCBjb2RlCi0gICB0aGF0IGV4ZWN1
dGVzIGVhY2ggb3Bjb2RlLiBJdCBjYW5ub3QgYmUgc3VwcG9ydGVkIGJ5IHRoZSBDTG9vcCBzaW5j
ZSB0aGVyZSdzIG5vIHdheSB0byBlbWJlZCB0aGUKLSAgIE9wY29kZUlEIHdvcmQgaW4gdGhlIENM
b29wJ3Mgc3dpdGNoIHN0YXRlbWVudCBjYXNlcy4gSXQgaXMgYWxzbyBjdXJyZW50bHkgbm90IGlt
cGxlbWVudGVkIGZvciBNU1ZDLgotKi8KLSNpZiAhZGVmaW5lZChVU0VfTExJTlRfRU1CRURERURf
T1BDT0RFX0lEKSAmJiAhRU5BQkxFKENfTE9PUCkgJiYgIUNPTVBJTEVSKE1TVkMpICYmIFwKLSAg
ICAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVN
QjIpICYmIE9TKERBUldJTikpKQotI2RlZmluZSBVU0VfTExJTlRfRU1CRURERURfT1BDT0RFX0lE
IDEKLSNlbmRpZgotCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLSNpZiBFTkFCTEUoV0VCR0wpCi0K
LS8qIFVTRV9BTkdMRT0xIHVzZXMgQU5HTEUgZm9yIHRoZSBXZWJHTCBiYWNrZW5kLgotICAgSXQg
cmVwbGFjZXMgVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBhbmQgVVNFX0VHTC4gKi8KLSNpZiBQ
TEFURk9STShNQUMpIHx8IChQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgX19oYXNfaW5jbHVkZSg8
T3BlbkdML09wZW5HTC5oPikpCi0jZGVmaW5lIFVTRV9PUEVOR0wgMQotI2RlZmluZSBVU0VfT1BF
TkdMX0VTIDAKLSNkZWZpbmUgVVNFX0FOR0xFIDAKLSNlbHNlCi0jZGVmaW5lIFVTRV9PUEVOR0wg
MAotI2RlZmluZSBVU0VfT1BFTkdMX0VTIDEKLSNkZWZpbmUgVVNFX0FOR0xFIDAKLSNlbmRpZgot
Ci0jaWZuZGVmIEdMX1NJTEVOQ0VfREVQUkVDQVRJT04KLSNkZWZpbmUgR0xfU0lMRU5DRV9ERVBS
RUNBVElPTiAxCi0jZW5kaWYKLQotI2lmIFVTRShPUEVOR0wpICYmICFkZWZpbmVkKEhBVkVfT1BF
TkdMXzQpCi0jZGVmaW5lIEhBVkVfT1BFTkdMXzQgMQotI2VuZGlmCi0KLSNpZiBVU0UoT1BFTkdM
X0VTKSAmJiAhZGVmaW5lZChIQVZFX09QRU5HTF9FU18zKQotI2RlZmluZSBIQVZFX09QRU5HTF9F
U18zIDEKLSNlbmRpZgotCi0jaWYgVVNFX0FOR0xFICYmIChVU0VfT1BFTkdMIHx8IFVTRV9PUEVO
R0xfRVMpCi0jZXJyb3IgVVNFX0FOR0xFIGlzIGluY29tcGF0aWJsZSB3aXRoIFVTRV9PUEVOR0wg
YW5kIFVTRV9PUEVOR0xfRVMKLSNlbmRpZgotCi0jZW5kaWYgLyogRU5BQkxFKFdFQkdMKSAqLwot
I2VuZGlmIC8qIFBMQVRGT1JNKENPQ09BKSAqLwotCi0jaWYgRU5BQkxFKFdFQkdMKQotI2lmICFk
ZWZpbmVkKFVTRV9BTkdMRSkKLSNkZWZpbmUgVVNFX0FOR0xFIDAKLSNlbmRpZgotCi0jaWYgKFVT
RV9BTkdMRSAmJiAoVVNFX09QRU5HTCB8fCBVU0VfT1BFTkdMX0VTIHx8IChkZWZpbmVkKFVTRV9F
R0wpICYmIFVTRV9FR0wpKSkgJiYgIVVTRShURVhUVVJFX01BUFBFUikKLSNlcnJvciBVU0VfQU5H
TEUgaXMgaW5jb21wYXRpYmxlIHdpdGggVVNFX09QRU5HTCwgVVNFX09QRU5HTF9FUyBhbmQgVVNF
X0VHTAotI2VuZGlmCi0jZW5kaWYKLQotI2lmIFVTRShURVhUVVJFX01BUFBFUikgJiYgRU5BQkxF
KEdSQVBISUNTX0NPTlRFWFRfR0wpICYmICFkZWZpbmVkKFVTRV9URVhUVVJFX01BUFBFUl9HTCkK
LSNkZWZpbmUgVVNFX1RFWFRVUkVfTUFQUEVSX0dMIDEKLSNlbmRpZgotCi0vKiBGSVhNRTogVGhp
cyBpcyB1c2VkIHRvICJ0dXJuIG9uIGEgc3BlY2lmaWMgZmVhdHVyZSBvZiBXZWJLaXQiLCBzbyBz
aG91bGQgYmUgY29udmVydGVkIHRvIGFuIEVOQUJMRSBtYWNyby4gKi8KLSNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKEFDQ0VTU0lCSUxJVFkpCi0jZGVmaW5lIFVTRV9BQ0NFU1NJQklMSVRZ
X0NPTlRFWFRfTUVOVVMgMQotI2VuZGlmCi0KLQotLyogRklYTUU6IFRoZXNlIGNhbGxpbmcgY29u
dmVudGlvbiBtYWNyb3Mgc2hvdWxkIG1vdmUgdG8gdGhlaXIgb3duIGZpbGUuIFRoZXkgYXJlIGF0
IHRoZSBib3R0b20gY3VycmVudGx5IGJlY2F1c2UgdGhleSBkZXBlbmQgb24gRmVhdHVyZURlZmlu
ZXMuaCAqLwotCi0jaWYgQ1BVKFg4NikgJiYgQ09NUElMRVIoTVNWQykKLSNkZWZpbmUgSlNDX0hP
U1RfQ0FMTCBfX2Zhc3RjYWxsCi0jZWxpZiBDUFUoWDg2KSAmJiBDT01QSUxFUihHQ0NfQ09NUEFU
SUJMRSkKLSNkZWZpbmUgSlNDX0hPU1RfQ0FMTCBfX2F0dHJpYnV0ZV9fICgoZmFzdGNhbGwpKQot
I2Vsc2UKLSNkZWZpbmUgSlNDX0hPU1RfQ0FMTAotI2VuZGlmCi0KLSNpZiBDUFUoWDg2KSAmJiBP
UyhXSU5ET1dTKQotI2RlZmluZSBDQUxMSU5HX0NPTlZFTlRJT05fSVNfU1REQ0FMTCAxCi0jaWZu
ZGVmIENERUNMCi0jaWYgQ09NUElMRVIoTVNWQykKLSNkZWZpbmUgQ0RFQ0wgX19jZGVjbAotI2Vs
c2UKLSNkZWZpbmUgQ0RFQ0wgX19hdHRyaWJ1dGVfXyAoKF9fY2RlY2wpKQotI2VuZGlmCi0jZW5k
aWYKLSNlbHNlCi0jZGVmaW5lIENBTExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxMIDAKLSNlbmRp
ZgotCi0jaWYgQ1BVKFg4NikKLSNkZWZpbmUgV1RGX0NPTVBJTEVSX1NVUFBPUlRTX0ZBU1RDQUxM
X0NBTExJTkdfQ09OVkVOVElPTiAxCi0jaWZuZGVmIEZBU1RDQUxMCi0jaWYgQ09NUElMRVIoTVNW
QykKLSNkZWZpbmUgRkFTVENBTEwgX19mYXN0Y2FsbAotI2Vsc2UKLSNkZWZpbmUgRkFTVENBTEwg
IF9fYXR0cmlidXRlX18gKChmYXN0Y2FsbCkpCi0jZW5kaWYKLSNlbmRpZgotI2Vsc2UKLSNkZWZp
bmUgV1RGX0NPTVBJTEVSX1NVUFBPUlRTX0ZBU1RDQUxMX0NBTExJTkdfQ09OVkVOVElPTiAwCi0j
ZW5kaWYKLQotI2lmIEVOQUJMRShKSVQpICYmIENBTExJTkdfQ09OVkVOVElPTl9JU19TVERDQUxM
Ci0jZGVmaW5lIEpJVF9PUEVSQVRJT04gQ0RFQ0wKLSNlbHNlCi0jZGVmaW5lIEpJVF9PUEVSQVRJ
T04KLSNlbmRpZgo=
</data>
<flag name="review"
          id="403511"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>