<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>28017</bug_id>
          
          <creation_ts>2012-11-21 14:04:54 +0400</creation_ts>
          <short_desc>Для блокирования сайтов нужно перезапускать Squid, о чём в интерфейсе не говорится.</short_desc>
          <delta_ts>2013-05-24 12:27:03 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>Distributions</classification>
          <product>Branch p6</product>
          <component>alterator-squid</component>
          <version>не указана</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Cherepanov">cas</reporter>
          <assigned_to name="manowar@altlinux.org">manowar</assigned_to>
          <cc>manowar</cc>
          
          <qa_contact name="QA p6">qa-p6</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>135097</commentid>
    <comment_count>0</comment_count>
      <attachid>5642</attachid>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2012-11-21 14:04:54 +0400</bug_when>
    <thetext>Created attachment 5642
Конфигурация Squid

При указании в alterator-squid запрещённого сайта .mail.ru у пользователя всё открывается. В логах:
1353417293.333     27 192.168.2.178 TCP_MISS/200 775 GET http://mail.ru/? l1 DIRECT/94.100.191.206 text/html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135098</commentid>
    <comment_count>1</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2012-11-21 14:10:48 +0400</bug_when>
    <thetext>После перезапуска Squid правила начинают работать.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135099</commentid>
    <comment_count>2</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2012-11-21 14:12:29 +0400</bug_when>
    <thetext>Это не в интерфейсе должно быть написано, а само происходить. ;) Будем исправлять.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140502</commentid>
    <comment_count>3</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2013-05-24 10:55:13 +0400</bug_when>
    <thetext>alterator-squid-1.4.4-alt1 -&gt; sisyphus:

* Thu May 23 2013 Paul Wolneykien &lt;manowar@altlinux&gt; 1.4.4-alt1
- Restart Squid if proxy mode was changed.
- Make Squid reload on every configuration update (closes: 28017).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140505</commentid>
    <comment_count>4</comment_count>
    <who name="Andrey Cherepanov">cas</who>
    <bug_when>2013-05-24 12:27:03 +0400</bug_when>
    <thetext>Работает. Спасибо.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>5642</attachid>
            <date>2012-11-21 14:04:54 +0400</date>
            <delta_ts>2012-11-21 14:04:54 +0400</delta_ts>
            <desc>Конфигурация Squid</desc>
            <filename>squid.conf</filename>
            <type>application/octet-stream</type>
            <size>201228</size>
            <attacher name="Andrey Cherepanov">cas</attacher>
            
              <data encoding="base64">IwlXRUxDT01FIFRPIFNRVUlEIDMuMS4xMgojCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IwojCVRoaXMgaXMgdGhlIGRlZmF1bHQgU3F1aWQgY29uZmlndXJhdGlvbiBmaWxlLiBZb3UgbWF5
IHdpc2gKIwl0byBsb29rIGF0IHRoZSBTcXVpZCBob21lIHBhZ2UgKGh0dHA6Ly93d3cuc3F1aWQt
Y2FjaGUub3JnLykKIwlmb3IgdGhlIEZBUSBhbmQgb3RoZXIgZG9jdW1lbnRhdGlvbi4KIwojCVRo
ZSBkZWZhdWx0IFNxdWlkIGNvbmZpZyBmaWxlIHNob3dzIHdoYXQgdGhlIGRlZmF1bHRzIGZvcgoj
CXZhcmlvdXMgb3B0aW9ucyBoYXBwZW4gdG8gYmUuICBJZiB5b3UgZG9uJ3QgbmVlZCB0byBjaGFu
Z2UgdGhlCiMJZGVmYXVsdCwgeW91IHNob3VsZG4ndCB1bmNvbW1lbnQgdGhlIGxpbmUuICBEb2lu
ZyBzbyBtYXkgY2F1c2UKIwlydW4tdGltZSBwcm9ibGVtcy4gIEluIHNvbWUgY2FzZXMgIm5vbmUi
IHJlZmVycyB0byBubyBkZWZhdWx0CiMJc2V0dGluZyBhdCBhbGwsIHdoaWxlIGluIG90aGVyIGNh
c2VzIGl0IHJlZmVycyB0byBhIHZhbGlkCiMJb3B0aW9uIC0gdGhlIGNvbW1lbnRzIGZvciB0aGF0
IGtleXdvcmQgaW5kaWNhdGUgaWYgdGhpcyBpcyB0aGUKIwljYXNlLgojCgojICBDb25maWd1cmF0
aW9uIG9wdGlvbnMgY2FuIGJlIGluY2x1ZGVkIHVzaW5nIHRoZSAiaW5jbHVkZSIgZGlyZWN0aXZl
LgojICBJbmNsdWRlIHRha2VzIGEgbGlzdCBvZiBmaWxlcyB0byBpbmNsdWRlLiBRdW90aW5nIGFu
ZCB3aWxkY2FyZHMgaXMKIyAgc3VwcG9ydGVkLgojCiMgIEZvciBleGFtcGxlLAojCiMgIGluY2x1
ZGUgL3BhdGgvdG8vaW5jbHVkZWQvZmlsZS9zcXVpZC5hY2wuY29uZmlnCiMKIyAgSW5jbHVkZXMg
Y2FuIGJlIG5lc3RlZCB1cCB0byBhIGhhcmQtY29kZWQgZGVwdGggb2YgMTYgbGV2ZWxzLgojICBU
aGlzIGFyYml0cmFyeSByZXN0cmljdGlvbiBpcyB0byBwcmV2ZW50IHJlY3Vyc2l2ZSBpbmNsdWRl
IHJlZmVyZW5jZXMKIyAgZnJvbSBjYXVzaW5nIFNxdWlkIGVudGVyaW5nIGFuIGluZmluaXRlIGxv
b3Agd2hpbHN0IHRyeWluZyB0byBsb2FkCiMgIGNvbmZpZ3VyYXRpb24gZmlsZXMuCgojICBUQUc6
IGRuc190ZXN0bmFtZXMKIwlSZW1vdmUgdGhpcyBsaW5lLiBETlMgaXMgbm8gbG9uZ2VyIHRlc3Rl
ZCBvbiBzdGFydHVwLgojRGVmYXVsdDoKIyBub25lCgojICBUQUc6IGV4dGVuc2lvbl9tZXRob2Rz
CiMJUmVtb3ZlIHRoaXMgbGluZS4gQWxsIHZhbGlkIG1ldGhvZHMgZm9yIEhUVFAgYXJlIGFjY2Vw
dGVkIGJ5IGRlZmF1bHQuCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogaW5jb21pbmdfcmF0ZQoj
ICBUQUc6IHNlcnZlcl9odHRwMTEKIwlSZW1vdmUgdGhpcyBsaW5lLiBIVFRQLzEuMSBpcyBzdXBw
b3J0ZWQgYnkgZGVmYXVsdC4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiB1cGdyYWRlX2h0dHAw
LjkKIwlSZW1vdmUgdGhpcyBsaW5lLiBJQ1kvMS4wIHN0cmVhbWluZyBwcm90b2NvbCBpcyBzdXBw
b3J0ZWQgYnkgZGVmYXVsdC4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiB6cGhfbG9jYWwKIwlB
bHRlciB0aGVzZSBlbnRyaWVzLiBVc2UgdGhlIHFvc19mbG93cyBkaXJlY3RpdmUgaW5zdGVhZC4K
I0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBoZWFkZXJfYWNjZXNzCiMJU2luY2Ugc3F1aWQtMy4w
IHJlcGxhY2Ugd2l0aCByZXF1ZXN0X2hlYWRlcl9hY2Nlc3Mgb3IgcmVwbHlfaGVhZGVyX2FjY2Vz
cwojCWRlcGVuZGluZyBvbiB3aGV0aGVyIHlvdSB3aXNoIHRvIG1hdGNoIGNsaWVudCByZXF1ZXN0
cyBvciBzZXJ2ZXIgcmVwbGllcy4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBodHRwZF9hY2Nl
bF9ub19wbXR1X2Rpc2MKIwlTaW5jZSBzcXVpZC0zLjAgdXNlIHRoZSAnZGlzYWJsZS1wbXR1LWRp
c2NvdmVyeScgZmxhZyBvbiBodHRwX3BvcnQgaW5zdGVhZC4KI0RlZmF1bHQ6CiMgbm9uZQoKIyBP
UFRJT05TIEZPUiBBVVRIRU5USUNBVElPTgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6
IGF1dGhfcGFyYW0KIwlUaGlzIGlzIHVzZWQgdG8gZGVmaW5lIHBhcmFtZXRlcnMgZm9yIHRoZSB2
YXJpb3VzIGF1dGhlbnRpY2F0aW9uCiMJc2NoZW1lcyBzdXBwb3J0ZWQgYnkgU3F1aWQuCiMKIwlm
b3JtYXQ6IGF1dGhfcGFyYW0gc2NoZW1lIHBhcmFtZXRlciBbc2V0dGluZ10KIwojCVRoZSBvcmRl
ciBpbiB3aGljaCBhdXRoZW50aWNhdGlvbiBzY2hlbWVzIGFyZSBwcmVzZW50ZWQgdG8gdGhlIGNs
aWVudCBpcwojCWRlcGVuZGVudCBvbiB0aGUgb3JkZXIgdGhlIHNjaGVtZSBmaXJzdCBhcHBlYXJz
IGluIGNvbmZpZyBmaWxlLiBJRQojCWhhcyBhIGJ1ZyAoaXQncyBub3QgUkZDIDI2MTcgY29tcGxp
YW50KSBpbiB0aGF0IGl0IHdpbGwgdXNlIHRoZSBiYXNpYwojCXNjaGVtZSBpZiBiYXNpYyBpcyB0
aGUgZmlyc3QgZW50cnkgcHJlc2VudGVkLCBldmVuIGlmIG1vcmUgc2VjdXJlCiMJc2NoZW1lcyBh
cmUgcHJlc2VudGVkLiBGb3Igbm93IHVzZSB0aGUgb3JkZXIgaW4gdGhlIHJlY29tbWVuZGVkCiMJ
c2V0dGluZ3Mgc2VjdGlvbiBiZWxvdy4gSWYgb3RoZXIgYnJvd3NlcnMgaGF2ZSBkaWZmaWN1bHRp
ZXMgKGRvbid0CiMJcmVjb2duaXplIHRoZSBzY2hlbWVzIG9mZmVyZWQgZXZlbiBpZiB5b3UgYXJl
IHVzaW5nIGJhc2ljKSBlaXRoZXIKIwlwdXQgYmFzaWMgZmlyc3QsIG9yIGRpc2FibGUgdGhlIG90
aGVyIHNjaGVtZXMgKGJ5IGNvbW1lbnRpbmcgb3V0IHRoZWlyCiMJcHJvZ3JhbSBlbnRyeSkuCiMK
IwlPbmNlIGFuIGF1dGhlbnRpY2F0aW9uIHNjaGVtZSBpcyBmdWxseSBjb25maWd1cmVkLCBpdCBj
YW4gb25seSBiZQojCXNodXRkb3duIGJ5IHNodXR0aW5nIHNxdWlkIGRvd24gYW5kIHJlc3RhcnRp
bmcuIENoYW5nZXMgY2FuIGJlIG1hZGUgb24KIwl0aGUgZmx5IGFuZCBhY3RpdmF0ZWQgd2l0aCBh
IHJlY29uZmlndXJlLiBJLkUuIFlvdSBjYW4gY2hhbmdlIHRvIGEKIwlkaWZmZXJlbnQgaGVscGVy
LCBidXQgbm90IHVuY29uZmlndXJlIHRoZSBoZWxwZXIgY29tcGxldGVseS4KIwojCVBsZWFzZSBu
b3RlIHRoYXQgd2hpbGUgdGhpcyBkaXJlY3RpdmUgZGVmaW5lcyBob3cgU3F1aWQgcHJvY2Vzc2Vz
CiMJYXV0aGVudGljYXRpb24gaXQgZG9lcyBub3QgYXV0b21hdGljYWxseSBhY3RpdmF0ZSBhdXRo
ZW50aWNhdGlvbi4KIwlUbyB1c2UgYXV0aGVudGljYXRpb24geW91IG11c3QgaW4gYWRkaXRpb24g
bWFrZSB1c2Ugb2YgQUNMcyBiYXNlZAojCW9uIGxvZ2luIG5hbWUgaW4gaHR0cF9hY2Nlc3MgKHBy
b3h5X2F1dGgsIHByb3h5X2F1dGhfcmVnZXggb3IKIwlleHRlcm5hbCB3aXRoICVMT0dJTiB1c2Vk
IGluIHRoZSBmb3JtYXQgdGFnKS4gVGhlIGJyb3dzZXIgd2lsbCBiZQojCWNoYWxsZW5nZWQgZm9y
IGF1dGhlbnRpY2F0aW9uIG9uIHRoZSBmaXJzdCBzdWNoIGFjbCBlbmNvdW50ZXJlZAojCWluIGh0
dHBfYWNjZXNzIHByb2Nlc3NpbmcgYW5kIHdpbGwgYWxzbyBiZSByZS1jaGFsbGVuZ2VkIGZvciBu
ZXcKIwlsb2dpbiBjcmVkZW50aWFscyBpZiB0aGUgcmVxdWVzdCBpcyBiZWluZyBkZW5pZWQgYnkg
YSBwcm94eV9hdXRoCiMJdHlwZSBhY2wuCiMKIwlXQVJOSU5HOiBhdXRoZW50aWNhdGlvbiBjYW4n
dCBiZSB1c2VkIGluIGEgdHJhbnNwYXJlbnRseSBpbnRlcmNlcHRpbmcKIwlwcm94eSBhcyB0aGUg
Y2xpZW50IHRoZW4gdGhpbmtzIGl0IGlzIHRhbGtpbmcgdG8gYW4gb3JpZ2luIHNlcnZlciBhbmQK
Iwlub3QgdGhlIHByb3h5LiBUaGlzIGlzIGEgbGltaXRhdGlvbiBvZiBiZW5kaW5nIHRoZSBUQ1Av
SVAgcHJvdG9jb2wgdG8KIwl0cmFuc3BhcmVudGx5IGludGVyY2VwdGluZyBwb3J0IDgwLCBub3Qg
YSBsaW1pdGF0aW9uIGluIFNxdWlkLgojCVBvcnRzIGZsYWdnZWQgJ3RyYW5zcGFyZW50JywgJ2lu
dGVyY2VwdCcsIG9yICd0cHJveHknIGhhdmUKIwlhdXRoZW50aWNhdGlvbiBkaXNhYmxlZC4KIwoj
CT09PSBQYXJhbWV0ZXJzIGZvciB0aGUgYmFzaWMgc2NoZW1lIGZvbGxvdy4gPT09CiMKIwkicHJv
Z3JhbSIgY21kbGluZQojCVNwZWNpZnkgdGhlIGNvbW1hbmQgZm9yIHRoZSBleHRlcm5hbCBhdXRo
ZW50aWNhdG9yLiAgU3VjaCBhIHByb2dyYW0KIwlyZWFkcyBhIGxpbmUgY29udGFpbmluZyAidXNl
cm5hbWUgcGFzc3dvcmQiIGFuZCByZXBsaWVzICJPSyIgb3IKIwkiRVJSIiBpbiBhbiBlbmRsZXNz
IGxvb3AuICJFUlIiIHJlc3BvbnNlcyBtYXkgb3B0aW9uYWxseSBiZSBmb2xsb3dlZAojCWJ5IGEg
ZXJyb3IgZGVzY3JpcHRpb24gYXZhaWxhYmxlIGFzICVtIGluIHRoZSByZXR1cm5lZCBlcnJvciBw
YWdlLgojCUlmIHlvdSB1c2UgYW4gYXV0aGVudGljYXRvciwgbWFrZSBzdXJlIHlvdSBoYXZlIDEg
YWNsIG9mIHR5cGUKIwlwcm94eV9hdXRoLgojCiMJQnkgZGVmYXVsdCwgdGhlIGJhc2ljIGF1dGhl
bnRpY2F0aW9uIHNjaGVtZSBpcyBub3QgdXNlZCB1bmxlc3MgYQojCXByb2dyYW0gaXMgc3BlY2lm
aWVkLgojCiMJSWYgeW91IHdhbnQgdG8gdXNlIHRoZSB0cmFkaXRpb25hbCBOQ1NBIHByb3h5IGF1
dGhlbnRpY2F0aW9uLCBzZXQKIwl0aGlzIGxpbmUgdG8gc29tZXRoaW5nIGxpa2UKIwojCWF1dGhf
cGFyYW0gYmFzaWMgcHJvZ3JhbSAvdXNyL2xpYmV4ZWMvbmNzYV9hdXRoIC91c3IvZXRjL3Bhc3N3
ZAojCiMJInV0ZjgiIG9ufG9mZgojCUhUVFAgdXNlcyBpc28tbGF0aW4tMSBhcyBjaGFyYWN0ZXJz
ZXQsIHdoaWxlIHNvbWUgYXV0aGVudGljYXRpb24KIwliYWNrZW5kcyBzdWNoIGFzIExEQVAgZXhw
ZWN0cyBVVEYtOC4gSWYgdGhpcyBpcyBzZXQgdG8gb24gU3F1aWQgd2lsbAojCXRyYW5zbGF0ZSB0
aGUgSFRUUCBpc28tbGF0aW4tMSBjaGFyc2V0IHRvIFVURi04IGJlZm9yZSBzZW5kaW5nIHRoZQoj
CXVzZXJuYW1lICYgcGFzc3dvcmQgdG8gdGhlIGhlbHBlci4KIwojCSJjaGlsZHJlbiIgbnVtYmVy
b2ZjaGlsZHJlbgojCVRoZSBudW1iZXIgb2YgYXV0aGVudGljYXRvciBwcm9jZXNzZXMgdG8gc3Bh
d24uIElmIHlvdSBzdGFydCB0b28gZmV3CiMJU3F1aWQgd2lsbCBoYXZlIHRvIHdhaXQgZm9yIHRo
ZW0gdG8gcHJvY2VzcyBhIGJhY2tsb2cgb2YgY3JlZGVudGlhbAojCXZlcmlmaWNhdGlvbnMsIHNs
b3dpbmcgaXQgZG93bi4gV2hlbiBwYXNzd29yZCB2ZXJpZmljYXRpb25zIGFyZQojCWRvbmUgdmlh
IGEgKHNsb3cpIG5ldHdvcmsgeW91IGFyZSBsaWtlbHkgdG8gbmVlZCBsb3RzIG9mCiMJYXV0aGVu
dGljYXRvciBwcm9jZXNzZXMuCiMJYXV0aF9wYXJhbSBiYXNpYyBjaGlsZHJlbiA1CiMKIwkiY29u
Y3VycmVuY3kiIGNvbmN1cnJlbmN5CiMJVGhlIG51bWJlciBvZiBjb25jdXJyZW50IHJlcXVlc3Rz
IHRoZSBoZWxwZXIgY2FuIHByb2Nlc3MuCiMJVGhlIGRlZmF1bHQgb2YgMCBpcyB1c2VkIGZvciBo
ZWxwZXJzIHdobyBvbmx5IHN1cHBvcnRzCiMJb25lIHJlcXVlc3QgYXQgYSB0aW1lLiBTZXR0aW5n
IHRoaXMgY2hhbmdlcyB0aGUgcHJvdG9jb2wgdXNlZCB0bwojCWluY2x1ZGUgYSBjaGFubmVsIG51
bWJlciBmaXJzdCBvbiB0aGUgcmVxdWVzdC9yZXNwb25zZSBsaW5lLCBhbGxvd2luZwojCW11bHRp
cGxlIHJlcXVlc3RzIHRvIGJlIHNlbnQgdG8gdGhlIHNhbWUgaGVscGVyIGluIHBhcmFsbGVsbCB3
aXRob3V0CiMJd2F0aW5nIGZvciB0aGUgcmVzcG9uc2UuCiMJTXVzdCBub3QgYmUgc2V0IHVubGVz
cyBpdCdzIGtub3duIHRoZSBoZWxwZXIgc3VwcG9ydHMgdGhpcy4KIwlhdXRoX3BhcmFtIGJhc2lj
IGNvbmN1cnJlbmN5IDAKIwojCSJyZWFsbSIgcmVhbG1zdHJpbmcKIwlTcGVjaWZpZXMgdGhlIHJl
YWxtIG5hbWUgd2hpY2ggaXMgdG8gYmUgcmVwb3J0ZWQgdG8gdGhlCiMJY2xpZW50IGZvciB0aGUg
YmFzaWMgcHJveHkgYXV0aGVudGljYXRpb24gc2NoZW1lIChwYXJ0IG9mCiMJdGhlIHRleHQgdGhl
IHVzZXIgd2lsbCBzZWUgd2hlbiBwcm9tcHRlZCB0aGVpciB1c2VybmFtZSBhbmQKIwlwYXNzd29y
ZCkuIFRoZXJlIGlzIG5vIGRlZmF1bHQuCiMJYXV0aF9wYXJhbSBiYXNpYyByZWFsbSBTcXVpZCBw
cm94eS1jYWNoaW5nIHdlYiBzZXJ2ZXIKIwojCSJjcmVkZW50aWFsc3R0bCIgdGltZXRvbGl2ZQoj
CVNwZWNpZmllcyBob3cgbG9uZyBzcXVpZCBhc3N1bWVzIGFuIGV4dGVybmFsbHkgdmFsaWRhdGVk
CiMJdXNlcm5hbWU6cGFzc3dvcmQgcGFpciBpcyB2YWxpZCBmb3IgLSBpbiBvdGhlciB3b3JkcyBo
b3cKIwlvZnRlbiB0aGUgaGVscGVyIHByb2dyYW0gaXMgY2FsbGVkIGZvciB0aGF0IHVzZXIuIFNl
dCB0aGlzCiMJbG93IHRvIGZvcmNlIHJldmFsaWRhdGlvbiB3aXRoIHNob3J0IGxpdmVkIHBhc3N3
b3Jkcy4gIE5vdGUKIwlzZXR0aW5nIHRoaXMgaGlnaCBkb2VzIG5vdCBpbXBhY3QgeW91ciBzdXNj
ZXB0aWJpbGl0eQojCXRvIHJlcGxheSBhdHRhY2tzIHVubGVzcyB5b3UgYXJlIHVzaW5nIGFuIG9u
ZS10aW1lIHBhc3N3b3JkCiMJc3lzdGVtIChzdWNoIGFzIFNlY3VyZUlEKS4gIElmIHlvdSBhcmUg
dXNpbmcgc3VjaCBhIHN5c3RlbSwKIwl5b3Ugd2lsbCBiZSB2dWxuZXJhYmxlIHRvIHJlcGxheSBh
dHRhY2tzIHVubGVzcyB5b3UgYWxzbwojCXVzZSB0aGUgbWF4X3VzZXJfaXAgQUNMIGluIGFuIGh0
dHBfYWNjZXNzIHJ1bGUuCiMKIwkiY2FzZXNlbnNpdGl2ZSIgb258b2ZmCiMJU3BlY2lmaWVzIGlm
IHVzZXJuYW1lcyBhcmUgY2FzZSBzZW5zaXRpdmUuIE1vc3QgdXNlciBkYXRhYmFzZXMgYXJlCiMJ
Y2FzZSBpbnNlbnNpdGl2ZSBhbGxvd2luZyB0aGUgc2FtZSB1c2VybmFtZSB0byBiZSBzcGVsbGVk
IHVzaW5nIGJvdGgKIwlsb3dlciBhbmQgdXBwZXIgY2FzZSBsZXR0ZXJzLCBidXQgc29tZSBhcmUg
Y2FzZSBzZW5zaXRpdmUuIFRoaXMKIwltYWtlcyBhIGJpZyBkaWZmZXJlbmNlIGZvciB1c2VyX21h
eF9pcCBBQ0wgcHJvY2Vzc2luZyBhbmQgc2ltaWxhci4KIwlhdXRoX3BhcmFtIGJhc2ljIGNhc2Vz
ZW5zaXRpdmUgb2ZmCiMKIwk9PT0gUGFyYW1ldGVycyBmb3IgdGhlIGRpZ2VzdCBzY2hlbWUgZm9s
bG93ID09PQojCiMJInByb2dyYW0iIGNtZGxpbmUKIwlTcGVjaWZ5IHRoZSBjb21tYW5kIGZvciB0
aGUgZXh0ZXJuYWwgYXV0aGVudGljYXRvci4gIFN1Y2gKIwlhIHByb2dyYW0gcmVhZHMgYSBsaW5l
IGNvbnRhaW5pbmcgInVzZXJuYW1lIjoicmVhbG0iIGFuZAojCXJlcGxpZXMgd2l0aCB0aGUgYXBw
cm9wcmlhdGUgSChBMSkgdmFsdWUgaGV4IGVuY29kZWQgb3IKIwlFUlIgaWYgdGhlIHVzZXIgKG9y
IGhpcyBIKEExKSBoYXNoKSBkb2VzIG5vdCBleGlzdHMuCiMJU2VlIHJmYyAyNjE2IGZvciB0aGUg
ZGVmaW5pdGlvbiBvZiBIKEExKS4KIwkiRVJSIiByZXNwb25zZXMgbWF5IG9wdGlvbmFsbHkgYmUg
Zm9sbG93ZWQgYnkgYSBlcnJvciBkZXNjcmlwdGlvbgojCWF2YWlsYWJsZSBhcyAlbSBpbiB0aGUg
cmV0dXJuZWQgZXJyb3IgcGFnZS4KIwojCUJ5IGRlZmF1bHQsIHRoZSBkaWdlc3QgYXV0aGVudGlj
YXRpb24gc2NoZW1lIGlzIG5vdCB1c2VkIHVubGVzcyBhCiMJcHJvZ3JhbSBpcyBzcGVjaWZpZWQu
CiMKIwlJZiB5b3Ugd2FudCB0byB1c2UgYSBkaWdlc3QgYXV0aGVudGljYXRvciwgc2V0IHRoaXMg
bGluZSB0bwojCXNvbWV0aGluZyBsaWtlCiMKIwlhdXRoX3BhcmFtIGRpZ2VzdCBwcm9ncmFtIC91
c3IvYmluL2RpZ2VzdF9wd19hdXRoIC91c3IvZXRjL2RpZ3Bhc3MKIwojCSJ1dGY4IiBvbnxvZmYK
IwlIVFRQIHVzZXMgaXNvLWxhdGluLTEgYXMgY2hhcmFjdGVyc2V0LCB3aGlsZSBzb21lIGF1dGhl
bnRpY2F0aW9uCiMJYmFja2VuZHMgc3VjaCBhcyBMREFQIGV4cGVjdHMgVVRGLTguIElmIHRoaXMg
aXMgc2V0IHRvIG9uIFNxdWlkIHdpbGwKIwl0cmFuc2xhdGUgdGhlIEhUVFAgaXNvLWxhdGluLTEg
Y2hhcnNldCB0byBVVEYtOCBiZWZvcmUgc2VuZGluZyB0aGUKIwl1c2VybmFtZSAmIHBhc3N3b3Jk
IHRvIHRoZSBoZWxwZXIuCiMKIwkiY2hpbGRyZW4iIG51bWJlcm9mY2hpbGRyZW4KIwlUaGUgbnVt
YmVyIG9mIGF1dGhlbnRpY2F0b3IgcHJvY2Vzc2VzIHRvIHNwYXduIChubyBkZWZhdWx0KS4KIwlJ
ZiB5b3Ugc3RhcnQgdG9vIGZldyBTcXVpZCB3aWxsIGhhdmUgdG8gd2FpdCBmb3IgdGhlbSB0bwoj
CXByb2Nlc3MgYSBiYWNrbG9nIG9mIEgoQTEpIGNhbGN1bGF0aW9ucywgc2xvd2luZyBpdCBkb3du
LgojCVdoZW4gdGhlIEgoQTEpIGNhbGN1bGF0aW9ucyBhcmUgZG9uZSB2aWEgYSAoc2xvdykgbmV0
d29yawojCXlvdSBhcmUgbGlrZWx5IHRvIG5lZWQgbG90cyBvZiBhdXRoZW50aWNhdG9yIHByb2Nl
c3Nlcy4KIwlhdXRoX3BhcmFtIGRpZ2VzdCBjaGlsZHJlbiA1CiMKIwkicmVhbG0iIHJlYWxtc3Ry
aW5nCiMJU3BlY2lmaWVzIHRoZSByZWFsbSBuYW1lIHdoaWNoIGlzIHRvIGJlIHJlcG9ydGVkIHRv
IHRoZQojCWNsaWVudCBmb3IgdGhlIGRpZ2VzdCBwcm94eSBhdXRoZW50aWNhdGlvbiBzY2hlbWUg
KHBhcnQgb2YKIwl0aGUgdGV4dCB0aGUgdXNlciB3aWxsIHNlZSB3aGVuIHByb21wdGVkIHRoZWly
IHVzZXJuYW1lIGFuZAojCXBhc3N3b3JkKS4gVGhlcmUgaXMgbm8gZGVmYXVsdC4KIwlhdXRoX3Bh
cmFtIGRpZ2VzdCByZWFsbSBTcXVpZCBwcm94eS1jYWNoaW5nIHdlYiBzZXJ2ZXIKIwojCSJub25j
ZV9nYXJiYWdlX2ludGVydmFsIiB0aW1laW50ZXJ2YWwKIwlTcGVjaWZpZXMgdGhlIGludGVydmFs
IHRoYXQgbm9uY2VzIHRoYXQgaGF2ZSBiZWVuIGlzc3VlZAojCXRvIGNsaWVudF9hZ2VudCdzIGFy
ZSBjaGVja2VkIGZvciB2YWxpZGl0eS4KIwojCSJub25jZV9tYXhfZHVyYXRpb24iIHRpbWVpbnRl
cnZhbAojCVNwZWNpZmllcyB0aGUgbWF4aW11bSBsZW5ndGggb2YgdGltZSBhIGdpdmVuIG5vbmNl
IHdpbGwgYmUKIwl2YWxpZCBmb3IuCiMKIwkibm9uY2VfbWF4X2NvdW50IiBudW1iZXIKIwlTcGVj
aWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHRpbWVzIGEgZ2l2ZW4gbm9uY2UgY2FuIGJlCiMJ
dXNlZC4KIwojCSJub25jZV9zdHJpY3RuZXNzIiBvbnxvZmYKIwlEZXRlcm1pbmVzIGlmIHNxdWlk
IHJlcXVpcmVzIHN0cmljdCBpbmNyZW1lbnQtYnktMSBiZWhhdmlvcgojCWZvciBub25jZSBjb3Vu
dHMsIG9yIGp1c3QgaW5jcmVtZW50aW5nIChvZmYgLSBmb3IgdXNlIHdoZW4KIwl1c2VyYWdlbnRz
IGdlbmVyYXRlIG5vbmNlIGNvdW50cyB0aGF0IG9jY2FzaW9uYWxseSBtaXNzIDEKIwkoaWUsIDEs
Miw0LDYpKS4gRGVmYXVsdCBvZmYuCiMKIwkiY2hlY2tfbm9uY2VfY291bnQiIG9ufG9mZgojCVRo
aXMgZGlyZWN0aXZlIGlmIHNldCB0byBvZmYgY2FuIGRpc2FibGUgdGhlIG5vbmNlIGNvdW50IGNo
ZWNrCiMJY29tcGxldGVseSB0byB3b3JrIGFyb3VuZCBidWdneSBkaWdlc3QgcW9wIGltcGxlbWVu
dGF0aW9ucyBpbgojCWNlcnRhaW4gbWFpbnN0cmVhbSBicm93c2VyIHZlcnNpb25zLiBEZWZhdWx0
IG9uIHRvIGNoZWNrIHRoZQojCW5vbmNlIGNvdW50IHRvIHByb3RlY3QgZnJvbSBhdXRoZW50aWNh
dGlvbiByZXBsYXkgYXR0YWNrcy4KIwojCSJwb3N0X3dvcmthcm91bmQiIG9ufG9mZgojCVRoaXMg
aXMgYSB3b3JrYXJvdW5kIHRvIGNlcnRhaW4gYnVnZ3kgYnJvd3NlcnMgd2hvIHNlbmRzCiMJYW4g
aW5jb3JyZWN0IHJlcXVlc3QgZGlnZXN0IGluIFBPU1QgcmVxdWVzdHMgd2hlbiByZXVzaW5nCiMJ
dGhlIHNhbWUgbm9uY2UgYXMgYWNxdWlyZWQgZWFybGllciBvbiBhIEdFVCByZXF1ZXN0LgojCiMJ
PT09IE5UTE0gc2NoZW1lIG9wdGlvbnMgZm9sbG93ID09PQojCiMJInByb2dyYW0iIGNtZGxpbmUK
IwlTcGVjaWZ5IHRoZSBjb21tYW5kIGZvciB0aGUgZXh0ZXJuYWwgTlRMTSBhdXRoZW50aWNhdG9y
LgojCVN1Y2ggYSBwcm9ncmFtIHJlYWRzIGV4Y2hhbmdlZCBOVExNU1NQIHBhY2tldHMgd2l0aAoj
CXRoZSBicm93c2VyIHZpYSBTcXVpZCB1bnRpbCBhdXRoZW50aWNhdGlvbiBpcyBjb21wbGV0ZWQu
CiMJSWYgeW91IHVzZSBhbiBOVExNIGF1dGhlbnRpY2F0b3IsIG1ha2Ugc3VyZSB5b3UgaGF2ZSAx
IGFjbAojCW9mIHR5cGUgcHJveHlfYXV0aC4gIEJ5IGRlZmF1bHQsIHRoZSBOVExNIGF1dGhlbnRp
Y2F0b3JfcHJvZ3JhbQojCWlzIG5vdCB1c2VkLgojCiMJYXV0aF9wYXJhbSBudGxtIHByb2dyYW0g
L3Vzci9iaW4vbnRsbV9hdXRoCiMKIwkiY2hpbGRyZW4iIG51bWJlcm9mY2hpbGRyZW4KIwlUaGUg
bnVtYmVyIG9mIGF1dGhlbnRpY2F0b3IgcHJvY2Vzc2VzIHRvIHNwYXduIChubyBkZWZhdWx0KS4K
IwlJZiB5b3Ugc3RhcnQgdG9vIGZldyBTcXVpZCB3aWxsIGhhdmUgdG8gd2FpdCBmb3IgdGhlbSB0
bwojCXByb2Nlc3MgYSBiYWNrbG9nIG9mIGNyZWRlbnRpYWwgdmVyaWZpY2F0aW9ucywgc2xvd2lu
ZyBpdAojCWRvd24uIFdoZW4gY3JlZGVudGlhbCB2ZXJpZmljYXRpb25zIGFyZSBkb25lIHZpYSBh
IChzbG93KQojCW5ldHdvcmsgeW91IGFyZSBsaWtlbHkgdG8gbmVlZCBsb3RzIG9mIGF1dGhlbnRp
Y2F0b3IKIwlwcm9jZXNzZXMuCiMKIwlhdXRoX3BhcmFtIG50bG0gY2hpbGRyZW4gNQojCiMJImtl
ZXBfYWxpdmUiIG9ufG9mZgojCVdoZXRoZXIgdG8ga2VlcCB0aGUgY29ubmVjdGlvbiBvcGVuIGFm
dGVyIHRoZSBpbml0aWFsIHJlc3BvbnNlIHdoZXJlCiMJU3F1aWQgdGVsbHMgdGhlIGJyb3dzZXIg
d2hpY2ggc2NoZW1lcyBhcmUgc3VwcG9ydGVkIGJ5IHRoZSBwcm94eS4KIwlTb21lIGJyb3dzZXJz
IGFyZSBrbm93biB0byBwcmVzZW50IG1hbnkgbG9naW4gcG9wdXBzIG9yIHRvIGNvcnJ1cHQKIwlQ
T1NUL1BVVCByZXF1ZXN0cyB0cmFuc2ZlciBpZiB0aGUgY29ubmVjdGlvbiBpcyBub3QgY2xvc2Vk
LgojCVRoZSBkZWZhdWx0IGlzIGN1cnJlbnRseSBPRkYgdG8gYXZvaWQgdGhpcywgYnV0IG1heSBj
aGFuZ2UuCiMJCiMJYXV0aF9wYXJhbSBudGxtIGtlZXBfYWxpdmUgb24KIwojCT09PSBPcHRpb25z
IGZvciBjb25maWd1cmluZyB0aGUgTkVHT1RJQVRFIGF1dGgtc2NoZW1lIGZvbGxvdyA9PT0KIwoj
CSJwcm9ncmFtIiBjbWRsaW5lCiMJU3BlY2lmeSB0aGUgY29tbWFuZCBmb3IgdGhlIGV4dGVybmFs
IE5lZ290aWF0ZSBhdXRoZW50aWNhdG9yLgojCVRoaXMgcHJvdG9jb2wgaXMgdXNlZCBpbiBNaWNy
b3NvZnQgQWN0aXZlLURpcmVjdG9yeSBlbmFibGVkIHNldHVwcyB3aXRoCiMJdGhlIE1pY3Jvc29m
dCBJbnRlcm5ldCBFeHBsb3JlciBvciBNb3ppbGxhIEZpcmVmb3ggYnJvd3NlcnMuCiMJSXRzIG1h
aW4gcHVycG9zZSBpcyB0byBleGNoYW5nZSBjcmVkZW50aWFscyB3aXRoIHRoZSBTcXVpZCBwcm94
eQojCXVzaW5nIHRoZSBLZXJiZXJvcyBtZWNoYW5pc21zLgojCUlmIHlvdSB1c2UgYSBOZWdvdGlh
dGUgYXV0aGVudGljYXRvciwgbWFrZSBzdXJlIHlvdSBoYXZlIGF0IGxlYXN0CiMJb25lIGFjbCBv
ZiB0eXBlIHByb3h5X2F1dGggYWN0aXZlLiBCeSBkZWZhdWx0LCB0aGUgbmVnb3RpYXRlCiMJYXV0
aGVudGljYXRvcl9wcm9ncmFtIGlzIG5vdCB1c2VkLgojCVRoZSBvbmx5IHN1cHBvcnRlZCBwcm9n
cmFtIGZvciB0aGlzIHJvbGUgaXMgdGhlIG50bG1fYXV0aAojCXByb2dyYW0gZGlzdHJpYnV0ZWQg
YXMgcGFydCBvZiBTYW1iYSwgdmVyc2lvbiA0IG9yIGxhdGVyLgojCiMJYXV0aF9wYXJhbSBuZWdv
dGlhdGUgcHJvZ3JhbSAvdXNyL2Jpbi9udGxtX2F1dGggLS1oZWxwZXItcHJvdG9jb2w9Z3NzLXNw
bmVnbwojCiMJImNoaWxkcmVuIiBudW1iZXJvZmNoaWxkcmVuCiMJVGhlIG51bWJlciBvZiBhdXRo
ZW50aWNhdG9yIHByb2Nlc3NlcyB0byBzcGF3biAobm8gZGVmYXVsdCkuCiMJSWYgeW91IHN0YXJ0
IHRvbyBmZXcgU3F1aWQgd2lsbCBoYXZlIHRvIHdhaXQgZm9yIHRoZW0gdG8KIwlwcm9jZXNzIGEg
YmFja2xvZyBvZiBjcmVkZW50aWFsIHZlcmlmaWNhdGlvbnMsIHNsb3dpbmcgaXQKIwlkb3duLiBX
aGVuIGNyZW5kZW50aWFsIHZlcmlmaWNhdGlvbnMgYXJlIGRvbmUgdmlhIGEgKHNsb3cpCiMJbmV0
d29yayB5b3UgYXJlIGxpa2VseSB0byBuZWVkIGxvdHMgb2YgYXV0aGVudGljYXRvcgojCXByb2Nl
c3Nlcy4KIwlhdXRoX3BhcmFtIG5lZ290aWF0ZSBjaGlsZHJlbiA1CiMKIwkia2VlcF9hbGl2ZSIg
b258b2ZmCiMJV2hldGhlciB0byBrZWVwIHRoZSBjb25uZWN0aW9uIG9wZW4gYWZ0ZXIgdGhlIGlu
aXRpYWwgcmVzcG9uc2Ugd2hlcmUKIwlTcXVpZCB0ZWxscyB0aGUgYnJvd3NlciB3aGljaCBzY2hl
bWVzIGFyZSBzdXBwb3J0ZWQgYnkgdGhlIHByb3h5LgojCVNvbWUgYnJvd3NlcnMgYXJlIGtub3du
IHRvIHByZXNlbnQgbWFueSBsb2dpbiBwb3B1cHMgb3IgdG8gY29ycnVwdAojCVBPU1QvUFVUIHJl
cXVlc3RzIHRyYW5zZmVyIGlmIHRoZSBjb25uZWN0aW9uIGlzIG5vdCBjbG9zZWQuCiMJVGhlIGRl
ZmF1bHQgaXMgY3VycmVudGx5IE9GRiB0byBhdm9pZCB0aGlzLCBidXQgbWF5IGNoYW5nZS4KIwkK
IwlhdXRoX3BhcmFtIG5lZ290aWF0ZSBrZWVwX2FsaXZlIG9uCiMKIwojCUV4YW1wbGVzOgojCiMj
UmVjb21tZW5kZWQgbWluaW11bSBjb25maWd1cmF0aW9uIHBlciBzY2hlbWU6CiMjYXV0aF9wYXJh
bSBuZWdvdGlhdGUgcHJvZ3JhbSA8dW5jb21tZW50IGFuZCBjb21wbGV0ZSB0aGlzIGxpbmUgdG8g
YWN0aXZhdGU+CiMjYXV0aF9wYXJhbSBuZWdvdGlhdGUgY2hpbGRyZW4gNQojI2F1dGhfcGFyYW0g
bmVnb3RpYXRlIGtlZXBfYWxpdmUgb24KIyMKIyNhdXRoX3BhcmFtIG50bG0gcHJvZ3JhbSA8dW5j
b21tZW50IGFuZCBjb21wbGV0ZSB0aGlzIGxpbmUgdG8gYWN0aXZhdGU+CiMjYXV0aF9wYXJhbSBu
dGxtIGNoaWxkcmVuIDUKIyNhdXRoX3BhcmFtIG50bG0ga2VlcF9hbGl2ZSBvbgojIwojI2F1dGhf
cGFyYW0gZGlnZXN0IHByb2dyYW0gPHVuY29tbWVudCBhbmQgY29tcGxldGUgdGhpcyBsaW5lPgoj
I2F1dGhfcGFyYW0gZGlnZXN0IGNoaWxkcmVuIDUKIyNhdXRoX3BhcmFtIGRpZ2VzdCByZWFsbSBT
cXVpZCBwcm94eS1jYWNoaW5nIHdlYiBzZXJ2ZXIKIyNhdXRoX3BhcmFtIGRpZ2VzdCBub25jZV9n
YXJiYWdlX2ludGVydmFsIDUgbWludXRlcwojI2F1dGhfcGFyYW0gZGlnZXN0IG5vbmNlX21heF9k
dXJhdGlvbiAzMCBtaW51dGVzCiMjYXV0aF9wYXJhbSBkaWdlc3Qgbm9uY2VfbWF4X2NvdW50IDUw
CiMjCiMjYXV0aF9wYXJhbSBiYXNpYyBwcm9ncmFtIDx1bmNvbW1lbnQgYW5kIGNvbXBsZXRlIHRo
aXMgbGluZT4KIyNhdXRoX3BhcmFtIGJhc2ljIGNoaWxkcmVuIDUKIyNhdXRoX3BhcmFtIGJhc2lj
IHJlYWxtIFNxdWlkIHByb3h5LWNhY2hpbmcgd2ViIHNlcnZlcgojI2F1dGhfcGFyYW0gYmFzaWMg
Y3JlZGVudGlhbHN0dGwgMiBob3VycwojRGVmYXVsdDoKIyBub25lCgphdXRoX3BhcmFtIG5lZ290
aWF0ZSBwcm9ncmFtIC91c3IvbGliL3NxdWlkL3NxdWlkX2tlcmJfYXV0aAphdXRoX3BhcmFtIG5l
Z290aWF0ZSBjaGlsZHJlbiAxMAphdXRoX3BhcmFtIG5lZ290aWF0ZSBrZWVwX2FsaXZlIG9uCmF1
dGhfcGFyYW0gYmFzaWMgcHJvZ3JhbSAvdXNyL2xpYi9zcXVpZC9wYW1fYXV0aAphY2wgQVVUSEVO
VElDQVRFRCBwcm94eV9hdXRoIFJFUVVJUkVECiMgIFRBRzogYXV0aGVudGljYXRlX2NhY2hlX2dh
cmJhZ2VfaW50ZXJ2YWwKIwlUaGUgdGltZSBwZXJpb2QgYmV0d2VlbiBnYXJiYWdlIGNvbGxlY3Rp
b24gYWNyb3NzIHRoZSB1c2VybmFtZSBjYWNoZS4KIwlUaGlzIGlzIGEgdHJhZGVvZmYgYmV0d2Vl
biBtZW1vcnkgdXRpbGl6YXRpb24gKGxvbmcgaW50ZXJ2YWxzIC0gc2F5CiMJMiBkYXlzKSBhbmQg
Q1BVIChzaG9ydCBpbnRlcnZhbHMgLSBzYXkgMSBtaW51dGUpLiBPbmx5IGNoYW5nZSBpZiB5b3UK
IwloYXZlIGdvb2QgcmVhc29uIHRvLgojRGVmYXVsdDoKIyBhdXRoZW50aWNhdGVfY2FjaGVfZ2Fy
YmFnZV9pbnRlcnZhbCAxIGhvdXIKCiMgIFRBRzogYXV0aGVudGljYXRlX3R0bAojCVRoZSB0aW1l
IGEgdXNlciAmIHRoZWlyIGNyZWRlbnRpYWxzIHN0YXkgaW4gdGhlIGxvZ2dlZCBpbgojCXVzZXIg
Y2FjaGUgc2luY2UgdGhlaXIgbGFzdCByZXF1ZXN0LiBXaGVuIHRoZSBnYXJiYWdlCiMJaW50ZXJ2
YWwgcGFzc2VzLCBhbGwgdXNlciBjcmVkZW50aWFscyB0aGF0IGhhdmUgcGFzc2VkIHRoZWlyCiMJ
VFRMIGFyZSByZW1vdmVkIGZyb20gbWVtb3J5LgojRGVmYXVsdDoKIyBhdXRoZW50aWNhdGVfdHRs
IDEgaG91cgoKIyAgVEFHOiBhdXRoZW50aWNhdGVfaXBfdHRsCiMJSWYgeW91IHVzZSBwcm94eSBh
dXRoZW50aWNhdGlvbiBhbmQgdGhlICdtYXhfdXNlcl9pcCcgQUNMLAojCXRoaXMgZGlyZWN0aXZl
IGNvbnRyb2xzIGhvdyBsb25nIFNxdWlkIHJlbWVtYmVycyB0aGUgSVAKIwlhZGRyZXNzZXMgYXNz
b2NpYXRlZCB3aXRoIGVhY2ggdXNlci4gIFVzZSBhIHNtYWxsIHZhbHVlCiMJKGUuZy4sIDYwIHNl
Y29uZHMpIGlmIHlvdXIgdXNlcnMgbWlnaHQgY2hhbmdlIGFkZHJlc3NlcwojCXF1aWNrbHksIGFz
IGlzIHRoZSBjYXNlIHdpdGggZGlhbHVwcy4gICBZb3UgbWlnaHQgYmUgc2FmZQojCXVzaW5nIGEg
bGFyZ2VyIHZhbHVlIChlLmcuLCAyIGhvdXJzKSBpbiBhIGNvcnBvcmF0ZSBMQU4KIwllbnZpcm9u
bWVudCB3aXRoIHJlbGF0aXZlbHkgc3RhdGljIGFkZHJlc3MgYXNzaWdubWVudHMuCiNEZWZhdWx0
OgojIGF1dGhlbnRpY2F0ZV9pcF90dGwgMCBzZWNvbmRzCgojIEFDQ0VTUyBDT05UUk9MUwojIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6IGV4dGVybmFsX2FjbF90eXBlCiMJVGhpcyBvcHRp
b24gZGVmaW5lcyBleHRlcm5hbCBhY2wgY2xhc3NlcyB1c2luZyBhIGhlbHBlciBwcm9ncmFtCiMJ
dG8gbG9vayB1cCB0aGUgc3RhdHVzCiMKIwkgIGV4dGVybmFsX2FjbF90eXBlIG5hbWUgW29wdGlv
bnNdIEZPUk1BVC4uIC9wYXRoL3RvL2hlbHBlciBbaGVscGVyIGFyZ3VtZW50cy4uXQojCiMJT3B0
aW9uczoKIwojCSAgdHRsPW4JCVRUTCBpbiBzZWNvbmRzIGZvciBjYWNoZWQgcmVzdWx0cyAoZGVm
YXVsdHMgdG8gMzYwMAojCSAgCQlmb3IgMSBob3VyKQojCSAgbmVnYXRpdmVfdHRsPW4KIwkgIAkJ
VFRMIGZvciBjYWNoZWQgbmVnYXRpdmUgbG9va3VwcyAoZGVmYXVsdCBzYW1lCiMJICAJCWFzIHR0
bCkKIwkgIGNoaWxkcmVuPW4JTnVtYmVyIG9mIGFjbCBoZWxwZXIgcHJvY2Vzc2VzIHNwYXduIHRv
IHNlcnZpY2UKIwkJCWV4dGVybmFsIGFjbCBsb29rdXBzIG9mIHRoaXMgdHlwZS4gKGRlZmF1bHQg
NSkKIwkgIGNvbmN1cnJlbmN5PW4JY29uY3VycmVuY3kgbGV2ZWwgcGVyIHByb2Nlc3MuIE9ubHkg
dXNlZCB3aXRoIGhlbHBlcnMKIwkJCWNhcGFibGUgb2YgcHJvY2Vzc2luZyBtb3JlIHRoYW4gb25l
IHF1ZXJ5IGF0IGEgdGltZS4KIwkgIGNhY2hlPW4JcmVzdWx0IGNhY2hlIHNpemUsIDAgaXMgdW5i
b3VuZGVkIChkZWZhdWx0KQojCSAgZ3JhY2U9bglQZXJjZW50YWdlIHJlbWFpbmluZyBvZiBUVEwg
d2hlcmUgYSByZWZyZXNoIG9mIGEKIwkJCWNhY2hlZCBlbnRyeSBzaG91bGQgYmUgaW5pdGlhdGVk
IHdpdGhvdXQgbmVlZGluZyB0bwojCQkJd2FpdCBmb3IgYSBuZXcgcmVwbHkuIChkZWZhdWx0IDAg
Zm9yIG5vIGdyYWNlIHBlcmlvZCkKIwkgIHByb3RvY29sPTIuNQlDb21wYXRpYmlsaXR5IG1vZGUg
Zm9yIFNxdWlkLTIuNSBleHRlcm5hbCBhY2wgaGVscGVycwojCSAgaXB2NCAvIGlwdjYJSVAtbW9k
ZSB1c2VkIHRvIGNvbW11bmljYXRlIHRvIHRoaXMgaGVscGVyLgojCQkJRm9yIGNvbXBhdGFiaWxp
dHkgd2l0aCBvbGRlciBjb25maWd1cmF0aW9ucyBhbmQgaGVscGVycwojCQkJdGhlIGRlZmF1bHQg
aXMgY3VycmVudGx5ICdpcHY0Jy4KIwojCUZPUk1BVCBzcGVjaWZpY2F0aW9ucwojCiMJICAlTE9H
SU4JQXV0aGVudGljYXRlZCB1c2VyIGxvZ2luIG5hbWUKIwkgICVFWFRfVVNFUglVc2VybmFtZSBm
cm9tIGV4dGVybmFsIGFjbAojCSAgJUlERU5UCUlkZW50IHVzZXIgbmFtZQojCSAgJVNSQwkJQ2xp
ZW50IElQCiMJICAlU1JDUE9SVAlDbGllbnQgc291cmNlIHBvcnQKIwkgICVVUkkJCVJlcXVlc3Rl
ZCBVUkkKIwkgICVEU1QJCVJlcXVlc3RlZCBob3N0CiMJICAlUFJPVE8JUmVxdWVzdGVkIHByb3Rv
Y29sCiMJICAlUE9SVAkJUmVxdWVzdGVkIHBvcnQKIwkgICVQQVRICQlSZXF1ZXN0ZWQgVVJMIHBh
dGgKIwkgICVNRVRIT0QJUmVxdWVzdCBtZXRob2QKIwkgICVNWUFERFIJU3F1aWQgaW50ZXJmYWNl
IGFkZHJlc3MKIwkgICVNWVBPUlQJU3F1aWQgaHR0cF9wb3J0IG51bWJlcgojCSAgJVBBVEgJCVJl
cXVlc3RlZCBVUkwtcGF0aCAoaW5jbHVkaW5nIHF1ZXJ5LXN0cmluZyBpZiBhbnkpCiMJICAlVVNF
Ul9DRVJUCVNTTCBVc2VyIGNlcnRpZmljYXRlIGluIFBFTSBmb3JtYXQKIwkgICVVU0VSX0NFUlRD
SEFJTiBTU0wgVXNlciBjZXJ0aWZpY2F0ZSBjaGFpbiBpbiBQRU0gZm9ybWF0CiMJICAlVVNFUl9D
RVJUX3h4CVNTTCBVc2VyIGNlcnRpZmljYXRlIHN1YmplY3QgYXR0cmlidXRlIHh4CiMJICAlVVNF
Ul9DQV94eAlTU0wgVXNlciBjZXJ0aWZpY2F0ZSBpc3N1ZXIgYXR0cmlidXRlIHh4CiMKIwkgICU+
e0hlYWRlcn0JSFRUUCByZXF1ZXN0IGhlYWRlciAiSGVhZGVyIgojCSAgJT57SGRyOm1lbWJlcn0K
IwkgIAkJSFRUUCByZXF1ZXN0IGhlYWRlciAiSGRyIiBsaXN0IG1lbWJlciAibWVtYmVyIgojCSAg
JT57SGRyOjttZW1iZXJ9CiMJICAJCUhUVFAgcmVxdWVzdCBoZWFkZXIgbGlzdCBtZW1iZXIgdXNp
bmcgOyBhcwojCSAgCQlsaXN0IHNlcGFyYXRvci4gOyBjYW4gYmUgYW55IG5vbi1hbHBoYW51bWVy
aWMKIwkJCWNoYXJhY3Rlci4KIwojCSAgJTx7SGVhZGVyfQlIVFRQIHJlcGx5IGhlYWRlciAiSGVh
ZGVyIgojCSAgJTx7SGRyOm1lbWJlcn0KIwkgIAkJSFRUUCByZXBseSBoZWFkZXIgIkhkciIgbGlz
dCBtZW1iZXIgIm1lbWJlciIKIwkgICU8e0hkcjo7bWVtYmVyfQojCSAgCQlIVFRQIHJlcGx5IGhl
YWRlciBsaXN0IG1lbWJlciB1c2luZyA7IGFzCiMJICAJCWxpc3Qgc2VwYXJhdG9yLiA7IGNhbiBi
ZSBhbnkgbm9uLWFscGhhbnVtZXJpYwojCQkJY2hhcmFjdGVyLgojCiMJSW4gYWRkaXRpb24gdG8g
dGhlIGFib3ZlLCBhbnkgc3RyaW5nIHNwZWNpZmllZCBpbiB0aGUgcmVmZXJlbmNpbmcKIwlhY2wg
d2lsbCBhbHNvIGJlIGluY2x1ZGVkIGluIHRoZSBoZWxwZXIgcmVxdWVzdCBsaW5lLCBhZnRlciB0
aGUKIwlzcGVjaWZpZWQgZm9ybWF0cyAoc2VlIHRoZSAiYWNsIGV4dGVybmFsIiBkaXJlY3RpdmUp
CiMKIwlUaGUgaGVscGVyIHJlY2VpdmVzIGxpbmVzIHBlciB0aGUgYWJvdmUgZm9ybWF0IHNwZWNp
ZmljYXRpb24sCiMJYW5kIHJldHVybnMgbGluZXMgc3RhcnRpbmcgd2l0aCBPSyBvciBFUlIgaW5k
aWNhdGluZyB0aGUgdmFsaWRpdHkKIwlvZiB0aGUgcmVxdWVzdCBhbmQgb3B0aW9uYWxseSBmb2xs
b3dlZCBieSBhZGRpdGlvbmFsIGtleXdvcmRzIHdpdGgKIwltb3JlIGRldGFpbHMuCiMKIwlHZW5l
cmFsIHJlc3VsdCBzeW50YXg6CiMKIwkgIE9LL0VSUiBrZXl3b3JkPXZhbHVlIC4uLgojCiMJRGVm
aW5lZCBrZXl3b3JkczoKIwojCSAgdXNlcj0JCVRoZSB1c2VycyBuYW1lIChsb2dpbikKIwkgIHBh
c3N3b3JkPQlUaGUgdXNlcnMgcGFzc3dvcmQgKGZvciBsb2dpbj0gY2FjaGVfcGVlciBvcHRpb24p
CiMJICBtZXNzYWdlPQlNZXNzYWdlIGRlc2NyaWJpbmcgdGhlIHJlYXNvbi4gQXZhaWxhYmxlIGFz
ICVvCiMJICAJCWluIGVycm9yIHBhZ2VzCiMJICB0YWc9CQlBcHBseSBhIHRhZyB0byBhIHJlcXVl
c3QgKGZvciBib3RoIEVSUiBhbmQgT0sgcmVzdWx0cykKIwkgIAkJT25seSBzZXRzIGEgdGFnLCBk
b2VzIG5vdCBhbHRlciBleGlzdGluZyB0YWdzLgojCSAgbG9nPQkJU3RyaW5nIHRvIGJlIGxvZ2dl
ZCBpbiBhY2Nlc3MubG9nLiBBdmFpbGFibGUgYXMKIwkgIAkJJWVhIGluIGxvZ2Zvcm1hdCBzcGVj
aWZpY2F0aW9ucwojCiMJSWYgcHJvdG9jb2w9My4wICh0aGUgZGVmYXVsdCkgdGhlbiBVUkwgZXNj
YXBpbmcgaXMgdXNlZCB0byBwcm90ZWN0CiMJZWFjaCB2YWx1ZSBpbiBib3RoIHJlcXVlc3RzIGFu
ZCByZXNwb25zZXMuCiMKIwlJZiB1c2luZyBwcm90b2NvbD0yLjUgdGhlbiBhbGwgdmFsdWVzIG5l
ZWQgdG8gYmUgZW5jbG9zZWQgaW4gcXVvdGVzCiMJaWYgdGhleSBtYXkgY29udGFpbiB3aGl0ZXNw
YWNlLCBvciB0aGUgd2hpdGVzcGFjZSBlc2NhcGVkIHVzaW5nIFwuCiMJQW5kIHF1b3RlcyBvciBc
IGNoYXJhY3RlcnMgd2l0aGluIHRoZSBrZXl3b3JkIHZhbHVlIG11c3QgYmUgXCBlc2NhcGVkLgoj
CiMJV2hlbiB1c2luZyB0aGUgY29uY3VycmVuY3k9IG9wdGlvbiB0aGUgcHJvdG9jb2wgaXMgY2hh
bmdlZCBieQojCWludHJvZHVjaW5nIGEgcXVlcnkgY2hhbm5lbCB0YWcgaW5mcm9udCBvZiB0aGUg
cmVxdWVzdC9yZXNwb25zZS4KIwlUaGUgcXVlcnkgY2hhbm5lbCB0YWcgaXMgYSBudW1iZXIgYmV0
d2VlbiAwIGFuZCBjb25jdXJyZW5jeS0xLgojRGVmYXVsdDoKIyBub25lCgojICBUQUc6IGFjbAoj
CURlZmluaW5nIGFuIEFjY2VzcyBMaXN0CiMKIwlFdmVyeSBhY2Nlc3MgbGlzdCBkZWZpbml0aW9u
IG11c3QgYmVnaW4gd2l0aCBhbiBhY2xuYW1lIGFuZCBhY2x0eXBlLCAKIwlmb2xsb3dlZCBieSBl
aXRoZXIgdHlwZS1zcGVjaWZpYyBhcmd1bWVudHMgb3IgYSBxdW90ZWQgZmlsZW5hbWUgdGhhdAoj
CXRoZXkgYXJlIHJlYWQgZnJvbS4KIwojCSAgIGFjbCBhY2xuYW1lIGFjbHR5cGUgYXJndW1lbnQg
Li4uCiMJICAgYWNsIGFjbG5hbWUgYWNsdHlwZSAiZmlsZSIgLi4uCiMKIwlXaGVuIHVzaW5nICJm
aWxlIiwgdGhlIGZpbGUgc2hvdWxkIGNvbnRhaW4gb25lIGl0ZW0gcGVyIGxpbmUuCiMKIwlCeSBk
ZWZhdWx0LCByZWd1bGFyIGV4cHJlc3Npb25zIGFyZSBDQVNFLVNFTlNJVElWRS4gIFRvIG1ha2UK
Iwl0aGVtIGNhc2UtaW5zZW5zaXRpdmUsIHVzZSB0aGUgLWkgb3B0aW9uLgojCiMJU29tZSBhY2wg
dHlwZXMgcmVxdWlyZSBzdXNwZW5kaW5nIHRoZSBjdXJyZW50IHJlcXVlc3QgaW4gb3JkZXIKIwl0
byBhY2Nlc3Mgc29tZSBleHRlcm5hbCBkYXRhIHNvdXJjZS4KIwlUaG9zZSB3aGljaCBkbyBhcmUg
bWFya2VkIHdpdGggdGhlIHRhZyBbc2xvd10sIHRob3NlIHdoaWNoCiMJZG9uJ3QgYXJlIG1hcmtl
ZCBhcyBbZmFzdF0uCiMJU2VlIGh0dHA6Ly93aWtpLnNxdWlkLWNhY2hlLm9yZy9TcXVpZEZhcS9T
cXVpZEFjbAojCWZvciBmdXJ0aGVyIGluZm9ybWF0aW9uCiMKIwkqKioqKiBBQ0wgVFlQRVMgQVZB
SUxBQkxFICoqKioqCiMKIwlhY2wgYWNsbmFtZSBzcmMgaXAtYWRkcmVzcy9uZXRtYXNrIC4uLgkj
IGNsaWVudHMgSVAgYWRkcmVzcyBbZmFzdF0KIwlhY2wgYWNsbmFtZSBzcmMgYWRkcjEtYWRkcjIv
bmV0bWFzayAuLi4JIyByYW5nZSBvZiBhZGRyZXNzZXMgW2Zhc3RdCiMJYWNsIGFjbG5hbWUgZHN0
IGlwLWFkZHJlc3MvbmV0bWFzayAuLi4JIyBVUkwgaG9zdCdzIElQIGFkZHJlc3MgW3Nsb3ddCiMJ
YWNsIGFjbG5hbWUgbXlpcCBpcC1hZGRyZXNzL25ldG1hc2sgLi4uCSMgbG9jYWwgc29ja2V0IElQ
IGFkZHJlc3MgW2Zhc3RdCiMKIwlhY2wgYWNsbmFtZSBhcnAgICAgICBtYWMtYWRkcmVzcyAuLi4g
KHh4Onh4Onh4Onh4Onh4Onh4IG5vdGF0aW9uKQojCSAgIyBUaGUgYXJwIEFDTCByZXF1aXJlcyB0
aGUgc3BlY2lhbCBjb25maWd1cmUgb3B0aW9uIC0tZW5hYmxlLWFycC1hY2wuCiMJICAjIEZ1cnRo
ZXJtb3JlLCB0aGUgQVJQIEFDTCBjb2RlIGlzIG5vdCBwb3J0YWJsZSB0byBhbGwgb3BlcmF0aW5n
IHN5c3RlbXMuCiMJICAjIEl0IHdvcmtzIG9uIExpbnV4LCBTb2xhcmlzLCBXaW5kb3dzLCBGcmVl
QlNELCBhbmQgc29tZQojCSAgIyBvdGhlciAqQlNEIHZhcmlhbnRzLgojCSAgIyBbZmFzdF0KIwkg
ICMKIwkgICMgTk9URTogU3F1aWQgY2FuIG9ubHkgZGV0ZXJtaW5lIHRoZSBNQUMgYWRkcmVzcyBm
b3IgY2xpZW50cyB0aGF0IGFyZSBvbgojCSAgIyB0aGUgc2FtZSBzdWJuZXQuIElmIHRoZSBjbGll
bnQgaXMgb24gYSBkaWZmZXJlbnQgc3VibmV0LAojCSAgIyB0aGVuIFNxdWlkIGNhbm5vdCBmaW5k
IG91dCBpdHMgTUFDIGFkZHJlc3MuCiMKIwlhY2wgYWNsbmFtZSBzcmNkb21haW4gICAuZm9vLmNv
bSAuLi4KIwkgICMgcmV2ZXJzZSBsb29rdXAsIGZyb20gY2xpZW50IElQIFtzbG93XQojCWFjbCBh
Y2xuYW1lIGRzdGRvbWFpbiAgIC5mb28uY29tIC4uLgojCSAgIyBEZXN0aW5hdGlvbiBzZXJ2ZXIg
ZnJvbSBVUkwgW2Zhc3RdCiMJYWNsIGFjbG5hbWUgc3JjZG9tX3JlZ2V4IFstaV0gXC5mb29cLmNv
bSAuLi4KIwkgICMgcmVnZXggbWF0Y2hpbmcgY2xpZW50IG5hbWUgW3Nsb3ddCiMJYWNsIGFjbG5h
bWUgZHN0ZG9tX3JlZ2V4IFstaV0gXC5mb29cLmNvbSAuLi4KIwkgICMgcmVnZXggbWF0Y2hpbmcg
c2VydmVyIFtmYXN0XQojCSAgIwojCSAgIyBGb3IgZHN0ZG9tYWluIGFuZCBkc3Rkb21fcmVnZXgg
YSByZXZlcnNlIGxvb2t1cCBpcyB0cmllZCBpZiBhIElQCiMJICAjIGJhc2VkIFVSTCBpcyB1c2Vk
IGFuZCBubyBtYXRjaCBpcyBmb3VuZC4gVGhlIG5hbWUgIm5vbmUiIGlzIHVzZWQKIwkgICMgaWYg
dGhlIHJldmVyc2UgbG9va3VwIGZhaWxzLgojCiMJYWNsIGFjbG5hbWUgc3JjX2FzIG51bWJlciAu
Li4KIwlhY2wgYWNsbmFtZSBkc3RfYXMgbnVtYmVyIC4uLgojCSAgIyBbZmFzdF0KIwkgICMgRXhj
ZXB0IGZvciBhY2Nlc3MgY29udHJvbCwgQVMgbnVtYmVycyBjYW4gYmUgdXNlZCBmb3IKIwkgICMg
cm91dGluZyBvZiByZXF1ZXN0cyB0byBzcGVjaWZpYyBjYWNoZXMuIEhlcmUncyBhbgojCSAgIyBl
eGFtcGxlIGZvciByb3V0aW5nIGFsbCByZXF1ZXN0cyBmb3IgQVMjMTI0MSBhbmQgb25seQojCSAg
IyB0aG9zZSB0byBteWNhY2hlLm15ZG9tYWluLm5ldDoKIwkgICMgYWNsIGFzZXhhbXBsZSBkc3Rf
YXMgMTI0MQojCSAgIyBjYWNoZV9wZWVyX2FjY2VzcyBteWNhY2hlLm15ZG9tYWluLm5ldCBhbGxv
dyBhc2V4YW1wbGUKIwkgICMgY2FjaGVfcGVlcl9hY2Nlc3MgbXljYWNoZV9teWRvbWFpbi5uZXQg
ZGVueSBhbGwKIwojCWFjbCBhY2xuYW1lIHBlZXJuYW1lIG15UGVlciAuLi4KIwkgICMgW2Zhc3Rd
CiMJICAjIG1hdGNoIGFnYWluc3QgYSBuYW1lZCBjYWNoZV9wZWVyIGVudHJ5CiMJICAjIHNldCB1
bmlxdWUgbmFtZT0gb24gY2FjaGVfcGVlciBsaW5lcyBmb3IgcmVsaWFibGUgdXNlLgojCiMJYWNs
IGFjbG5hbWUgdGltZSBbZGF5LWFiYnJldnNdIFtoMTptMS1oMjptMl0KIwkgICMgW2Zhc3RdCiMJ
ICAjICBkYXktYWJicmV2czoKIwkgICMJUyAtIFN1bmRheQojCSAgIwlNIC0gTW9uZGF5CiMJICAj
CVQgLSBUdWVzZGF5CiMJICAjCVcgLSBXZWRuZXNkYXkKIwkgICMJSCAtIFRodXJzZGF5CiMJICAj
CUYgLSBGcmlkYXkKIwkgICMJQSAtIFNhdHVyZGF5CiMJICAjICBoMTptMSBtdXN0IGJlIGxlc3Mg
dGhhbiBoMjptMgojCiMJYWNsIGFjbG5hbWUgdXJsX3JlZ2V4IFstaV0gXmh0dHA6Ly8gLi4uCiMJ
ICAjIHJlZ2V4IG1hdGNoaW5nIG9uIHdob2xlIFVSTCBbZmFzdF0KIwlhY2wgYWNsbmFtZSB1cmxw
YXRoX3JlZ2V4IFstaV0gXC5naWYkIC4uLgojCSAgIyByZWdleCBtYXRjaGluZyBvbiBVUkwgcGF0
aCBbZmFzdF0KIwojCWFjbCBhY2xuYW1lIHBvcnQgODAgNzAgMjEgMC0xMDI0Li4uICAgIyBkZXN0
aW5hdGlvbiBUQ1AgcG9ydCBbZmFzdF0KIwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMgcmFuZ2VzIGFyZSBhbGxvZWQKIwlhY2wgYWNsbmFtZSBteXBvcnQgMzEyOCAuLi4J
ICAgICAgICAgICMgbG9jYWwgc29ja2V0IFRDUCBwb3J0IFtmYXN0XQojCWFjbCBhY2xuYW1lIG15
cG9ydG5hbWUgMzEyOCAuLi4gICAgICAgIyBodHRwKHMpX3BvcnQgbmFtZSBbZmFzdF0KIwojCWFj
bCBhY2xuYW1lIHByb3RvIEhUVFAgRlRQIC4uLiAgICAgICAgIyByZXF1ZXN0IHByb3RvY29sIFtm
YXN0XQojIAojCWFjbCBhY2xuYW1lIG1ldGhvZCBHRVQgUE9TVCAuLi4gICAgICAgIyBIVFRQIHJl
cXVlc3QgbWV0aG9kIFtmYXN0XQojCiMJYWNsIGFjbG5hbWUgaHR0cF9zdGF0dXMgMjAwIDMwMSA1
MDAtIDQwMC00MDMgLi4uIAojCSAgIyBzdGF0dXMgY29kZSBpbiByZXBseSBbZmFzdF0KIwojCWFj
bCBhY2xuYW1lIGJyb3dzZXIgWy1pXSByZWdleHAgLi4uCiMJICAjIHBhdHRlcm4gbWF0Y2ggb24g
VXNlci1BZ2VudCBoZWFkZXIgKHNlZSBhbHNvIHJlcV9oZWFkZXIgYmVsb3cpIFtmYXN0XQojCiMJ
YWNsIGFjbG5hbWUgcmVmZXJlcl9yZWdleCBbLWldIHJlZ2V4cCAuLi4KIwkgICMgcGF0dGVybiBt
YXRjaCBvbiBSZWZlcmVyIGhlYWRlciBbZmFzdF0KIwkgICMgUmVmZXJlciBpcyBoaWdobHkgdW5y
ZWxpYWJsZSwgc28gdXNlIHdpdGggY2FyZQojCiMJYWNsIGFjbG5hbWUgaWRlbnQgdXNlcm5hbWUg
Li4uCiMJYWNsIGFjbG5hbWUgaWRlbnRfcmVnZXggWy1pXSBwYXR0ZXJuIC4uLgojCSAgIyBzdHJp
bmcgbWF0Y2ggb24gaWRlbnQgb3V0cHV0IFtzbG93XQojCSAgIyB1c2UgUkVRVUlSRUQgdG8gYWNj
ZXB0IGFueSBub24tbnVsbCBpZGVudC4KIwojCWFjbCBhY2xuYW1lIHByb3h5X2F1dGggWy1pXSB1
c2VybmFtZSAuLi4KIwlhY2wgYWNsbmFtZSBwcm94eV9hdXRoX3JlZ2V4IFstaV0gcGF0dGVybiAu
Li4KIwkgICMgcGVyZm9ybSBodHRwIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSB0byB0aGUgY2xp
ZW50IGFuZCBtYXRjaCBhZ2FpbnN0CiMJICAjIHN1cHBsaWVkIGNyZWRlbnRpYWxzIFtzbG93XQoj
CSAgIwojCSAgIyB0YWtlcyBhIGxpc3Qgb2YgYWxsb3dlZCB1c2VybmFtZXMuCiMJICAjIHVzZSBS
RVFVSVJFRCB0byBhY2NlcHQgYW55IHZhbGlkIHVzZXJuYW1lLgojCSAgIwojCSAgIyBXaWxsIHVz
ZSBwcm94eSBhdXRoZW50aWNhdGlvbiBpbiBmb3J3YXJkLXByb3h5IHNjZW5hcmlvcywgYW5kIHBs
YWluCiMJICAjIGh0dHAgYXV0aGVudGljYWl0b24gaW4gcmV2ZXJzZS1wcm94eSBzY2VuYXJpb3MK
IwkgICMKIwkgICMgTk9URTogd2hlbiBhIFByb3h5LUF1dGhlbnRpY2F0aW9uIGhlYWRlciBpcyBz
ZW50IGJ1dCBpdCBpcyBub3QKIwkgICMgbmVlZGVkIGR1cmluZyBBQ0wgY2hlY2tpbmcgdGhlIHVz
ZXJuYW1lIGlzIE5PVCBsb2dnZWQKIwkgICMgaW4gYWNjZXNzLmxvZy4KIwkgICMKIwkgICMgTk9U
RTogcHJveHlfYXV0aCByZXF1aXJlcyBhIEVYVEVSTkFMIGF1dGhlbnRpY2F0aW9uIHByb2dyYW0K
IwkgICMgdG8gY2hlY2sgdXNlcm5hbWUvcGFzc3dvcmQgY29tYmluYXRpb25zIChzZWUKIwkgICMg
YXV0aF9wYXJhbSBkaXJlY3RpdmUpLgojCSAgIwojCSAgIyBOT1RFOiBwcm94eV9hdXRoIGNhbid0
IGJlIHVzZWQgaW4gYSB0cmFuc3BhcmVudC9pbnRlcmNlcHRpbmcgcHJveHkKIwkgICMgYXMgdGhl
IGJyb3dzZXIgbmVlZHMgdG8gYmUgY29uZmlndXJlZCBmb3IgdXNpbmcgYSBwcm94eSBpbiBvcmRl
cgojCSAgIyB0byByZXNwb25kIHRvIHByb3h5IGF1dGhlbnRpY2F0aW9uLgojCiMJYWNsIGFjbG5h
bWUgc25tcF9jb21tdW5pdHkgc3RyaW5nIC4uLgojCSAgIyBBIGNvbW11bml0eSBzdHJpbmcgdG8g
bGltaXQgYWNjZXNzIHRvIHlvdXIgU05NUCBBZ2VudCBbZmFzdF0KIwkgICMgRXhhbXBsZToKIwkg
ICMKIwkgICMJYWNsIHNubXBwdWJsaWMgc25tcF9jb21tdW5pdHkgcHVibGljCiMKIwlhY2wgYWNs
bmFtZSBtYXhjb25uIG51bWJlcgojCSAgIyBUaGlzIHdpbGwgYmUgbWF0Y2hlZCB3aGVuIHRoZSBj
bGllbnQncyBJUCBhZGRyZXNzIGhhcwojCSAgIyBtb3JlIHRoYW4gPG51bWJlcj4gVENQIGNvbm5l
Y3Rpb25zIGVzdGFibGlzaGVkLiBbZmFzdF0KIwkgICMgTk9URTogVGhpcyBvbmx5IG1lYXN1cmVz
IGRpcmVjdCBUQ1AgbGlua3Mgc28gWC1Gb3J3YXJkZWQtRm9yCiMJICAjIGluZGlyZWN0IGNsaWVu
dHMgYXJlIG5vdCBjb3VudGVkLgojCiMJYWNsIGFjbG5hbWUgbWF4X3VzZXJfaXAgWy1zXSBudW1i
ZXIKIwkgICMgVGhpcyB3aWxsIGJlIG1hdGNoZWQgd2hlbiB0aGUgdXNlciBhdHRlbXB0cyB0byBs
b2cgaW4gZnJvbSBtb3JlCiMJICAjIHRoYW4gPG51bWJlcj4gZGlmZmVyZW50IGlwIGFkZHJlc3Nl
cy4gVGhlIGF1dGhlbnRpY2F0ZV9pcF90dGwKIwkgICMgcGFyYW1ldGVyIGNvbnRyb2xzIHRoZSB0
aW1lb3V0IG9uIHRoZSBpcCBlbnRyaWVzLiBbZmFzdF0KIwkgICMgSWYgLXMgaXMgc3BlY2lmaWVk
IHRoZSBsaW1pdCBpcyBzdHJpY3QsIGRlbnlpbmcgYnJvd3NpbmcKIwkgICMgZnJvbSBhbnkgZnVy
dGhlciBJUCBhZGRyZXNzZXMgdW50aWwgdGhlIHR0bCBoYXMgZXhwaXJlZC4gV2l0aG91dAojCSAg
IyAtcyBTcXVpZCB3aWxsIGp1c3QgYW5ub3kgdGhlIHVzZXIgYnkgInJhbmRvbWx5IiBkZW55aW5n
IHJlcXVlc3RzLgojCSAgIyAodGhlIGNvdW50ZXIgaXMgcmVzZXQgZWFjaCB0aW1lIHRoZSBsaW1p
dCBpcyByZWFjaGVkIGFuZCBhCiMJICAjIHJlcXVlc3QgaXMgZGVuaWVkKQojCSAgIyBOT1RFOiBp
biBhY2NlbGVyYXRpb24gbW9kZSBvciB3aGVyZSB0aGVyZSBpcyBtZXNoIG9mIGNoaWxkIHByb3hp
ZXMsCiMJICAjIGNsaWVudHMgbWF5IGFwcGVhciB0byBjb21lIGZyb20gbXVsdGlwbGUgYWRkcmVz
c2VzIGlmIHRoZXkgYXJlCiMJICAjIGdvaW5nIHRocm91Z2ggcHJveHkgZmFybXMsIHNvIGEgbGlt
aXQgb2YgMSBtYXkgY2F1c2UgdXNlciBwcm9ibGVtcy4KIwojCWFjbCBhY2xuYW1lIHJlcV9taW1l
X3R5cGUgWy1pXSBtaW1lLXR5cGUgLi4uCiMJICAjIHJlZ2V4IG1hdGNoIGFnYWluc3QgdGhlIG1p
bWUgdHlwZSBvZiB0aGUgcmVxdWVzdCBnZW5lcmF0ZWQKIwkgICMgYnkgdGhlIGNsaWVudC4gQ2Fu
IGJlIHVzZWQgdG8gZGV0ZWN0IGZpbGUgdXBsb2FkIG9yIHNvbWUKIwkgICMgdHlwZXMgSFRUUCB0
dW5uZWxpbmcgcmVxdWVzdHMgW2Zhc3RdCiMJICAjIE5PVEU6IFRoaXMgZG9lcyBOT1QgbWF0Y2gg
dGhlIHJlcGx5LiBZb3UgY2Fubm90IHVzZSB0aGlzCiMJICAjIHRvIG1hdGNoIHRoZSByZXR1cm5l
ZCBmaWxlIHR5cGUuCiMKIwlhY2wgYWNsbmFtZSByZXFfaGVhZGVyIGhlYWRlci1uYW1lIFstaV0g
YW55XC5yZWdleFwuaGVyZQojCSAgIyByZWdleCBtYXRjaCBhZ2FpbnN0IGFueSBvZiB0aGUga25v
d24gcmVxdWVzdCBoZWFkZXJzLiAgTWF5IGJlCiMJICAjIHRob3VnaHQgb2YgYXMgYSBzdXBlcnNl
dCBvZiAiYnJvd3NlciIsICJyZWZlcmVyIiBhbmQgIm1pbWUtdHlwZSIKIwkgICMgQUNMIFtmYXN0
XQojCiMJYWNsIGFjbG5hbWUgcmVwX21pbWVfdHlwZSBbLWldIG1pbWUtdHlwZSAuLi4KIwkgICMg
cmVnZXggbWF0Y2ggYWdhaW5zdCB0aGUgbWltZSB0eXBlIG9mIHRoZSByZXBseSByZWNlaXZlZCBi
eQojCSAgIyBzcXVpZC4gQ2FuIGJlIHVzZWQgdG8gZGV0ZWN0IGZpbGUgZG93bmxvYWQgb3Igc29t
ZQojCSAgIyB0eXBlcyBIVFRQIHR1bm5lbGluZyByZXF1ZXN0cy4gW2Zhc3RdCiMJICAjIE5PVEU6
IFRoaXMgaGFzIG5vIGVmZmVjdCBpbiBodHRwX2FjY2VzcyBydWxlcy4gSXQgb25seSBoYXMKIwkg
ICMgZWZmZWN0IGluIHJ1bGVzIHRoYXQgYWZmZWN0IHRoZSByZXBseSBkYXRhIHN0cmVhbSBzdWNo
IGFzCiMJICAjIGh0dHBfcmVwbHlfYWNjZXNzLgojCiMJYWNsIGFjbG5hbWUgcmVwX2hlYWRlciBo
ZWFkZXItbmFtZSBbLWldIGFueVwucmVnZXhcLmhlcmUKIwkgICMgcmVnZXggbWF0Y2ggYWdhaW5z
dCBhbnkgb2YgdGhlIGtub3duIHJlcGx5IGhlYWRlcnMuIE1heSBiZQojCSAgIyB0aG91Z2h0IG9m
IGFzIGEgc3VwZXJzZXQgb2YgImJyb3dzZXIiLCAicmVmZXJlciIgYW5kICJtaW1lLXR5cGUiCiMJ
ICAjIEFDTHMgW2Zhc3RdCiMKIwlhY2wgYWNsbmFtZSBleHRlcm5hbCBjbGFzc19uYW1lIFthcmd1
bWVudHMuLi5dCiMJICAjIGV4dGVybmFsIEFDTCBsb29rdXAgdmlhIGEgaGVscGVyIGNsYXNzIGRl
ZmluZWQgYnkgdGhlCiMJICAjIGV4dGVybmFsX2FjbF90eXBlIGRpcmVjdGl2ZSBbc2xvd10KIwoj
CWFjbCBhY2xuYW1lIHVzZXJfY2VydCBhdHRyaWJ1dGUgdmFsdWVzLi4uCiMJICAjIG1hdGNoIGFn
YWluc3QgYXR0cmlidXRlcyBpbiBhIHVzZXIgU1NMIGNlcnRpZmljYXRlCiMJICAjIGF0dHJpYnV0
ZSBpcyBvbmUgb2YgRE4vQy9PL0NOL0wvU1QgW2Zhc3RdCiMKIwlhY2wgYWNsbmFtZSBjYV9jZXJ0
IGF0dHJpYnV0ZSB2YWx1ZXMuLi4KIwkgICMgbWF0Y2ggYWdhaW5zdCBhdHRyaWJ1dGVzIGEgdXNl
cnMgaXNzdWluZyBDQSBTU0wgY2VydGlmaWNhdGUKIwkgICMgYXR0cmlidXRlIGlzIG9uZSBvZiBE
Ti9DL08vQ04vTC9TVCBbZmFzdF0KIwojCWFjbCBhY2xuYW1lIGV4dF91c2VyIHVzZXJuYW1lIC4u
LgojCWFjbCBhY2xuYW1lIGV4dF91c2VyX3JlZ2V4IFstaV0gcGF0dGVybiAuLi4KIwkgICMgc3Ry
aW5nIG1hdGNoIG9uIHVzZXJuYW1lIHJldHVybmVkIGJ5IGV4dGVybmFsIGFjbCBoZWxwZXIgW3Ns
b3ddCiMJICAjIHVzZSBSRVFVSVJFRCB0byBhY2NlcHQgYW55IG5vbi1udWxsIHVzZXIgbmFtZS4K
IwojCWFjbCBhY2xuYW1lIHRhZyB0YWd2YWx1ZSAuLi4KIwkgICMgc3RyaW5nIG1hdGNoIG9uIHRh
ZyByZXR1cm5lZCBieSBleHRlcm5hbCBhY2wgaGVscGVyIFtzbG93XQojCiMJRXhhbXBsZXM6CiMJ
CWFjbCBtYWNhZGRyZXNzIGFycCAwOTowMDoyYjoyMzo0NTo2NwojCQlhY2wgbXlleGFtcGxlIGRz
dF9hcyAxMjQxCiMJCWFjbCBwYXNzd29yZCBwcm94eV9hdXRoIFJFUVVJUkVECiMJCWFjbCBmaWxl
dXBsb2FkIHJlcV9taW1lX3R5cGUgLWkgXm11bHRpcGFydC9mb3JtLWRhdGEkCiMJCWFjbCBqYXZh
c2NyaXB0IHJlcF9taW1lX3R5cGUgLWkgXmFwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCQKIwojRGVm
YXVsdDoKIyBhY2wgYWxsIHNyYyBhbGwKIwojCiMgUmVjb21tZW5kZWQgbWluaW11bSBjb25maWd1
cmF0aW9uOgojCmFjbCBtYW5hZ2VyIHByb3RvIGNhY2hlX29iamVjdAphY2wgbG9jYWxob3N0IHNy
YyAxMjcuMC4wLjEvMzIgOjoxCmFjbCB0b19sb2NhbGhvc3QgZHN0IDEyNy4wLjAuMC84IDAuMC4w
LjAvMzIgOjoxCgojIEV4YW1wbGUgcnVsZSBhbGxvd2luZyBhY2Nlc3MgZnJvbSB5b3VyIGxvY2Fs
IG5ldHdvcmtzLgojIEFkYXB0IHRvIGxpc3QgeW91ciAoaW50ZXJuYWwpIElQIG5ldHdvcmtzIGZy
b20gd2hlcmUgYnJvd3NpbmcKIyBzaG91bGQgYmUgYWxsb3dlZAphY2wgbG9jYWxuZXQgc3JjIDEw
LjAuMC4wLzgJIyBSRkMxOTE4IHBvc3NpYmxlIGludGVybmFsIG5ldHdvcmsKYWNsIGxvY2FsbmV0
IHNyYyAxNzIuMTYuMC4wLzEyCSMgUkZDMTkxOCBwb3NzaWJsZSBpbnRlcm5hbCBuZXR3b3JrCmFj
bCBsb2NhbG5ldCBzcmMgMTkyLjE2OC4wLjAvMTYJIyBSRkMxOTE4IHBvc3NpYmxlIGludGVybmFs
IG5ldHdvcmsKYWNsIGxvY2FsbmV0IHNyYyBmYzAwOjovNyAgICAgICAjIFJGQyA0MTkzIGxvY2Fs
IHByaXZhdGUgbmV0d29yayByYW5nZQphY2wgbG9jYWxuZXQgc3JjIGZlODA6Oi8xMCAgICAgICMg
UkZDIDQyOTEgbGluay1sb2NhbCAoZGlyZWN0bHkgcGx1Z2dlZCkgbWFjaGluZXMKCmFjbCBTYWZl
X3BvcnRzIHBvcnQgNDg4ICAgICMgR1NTLUhUVFAKYWNsIFNTTF9wb3J0cyBwb3J0IDQ0MyAgICAj
IEhUVFBTIChDKQphY2wgU2FmZV9wb3J0cyBwb3J0IDYzMSAgICAjIENVUFMKYWNsIFNhZmVfcG9y
dHMgcG9ydCAyMSAgICAjIEZUUAphY2wgU2FmZV9wb3J0cyBwb3J0IDEwMjUtNjU1MzUgICAjIE90
aGVyIHBvcnRzCmFjbCBTYWZlX3BvcnRzIHBvcnQgOTAxICAgICMgU1dBVAphY2wgU2FmZV9wb3J0
cyBwb3J0IDcwICAgICMgR09QSEVSCmFjbCBTYWZlX3BvcnRzIHBvcnQgNzc3ICAgICMgTXVsdGls
aW5ndWFsIEhUVFAKYWNsIFNhZmVfcG9ydHMgcG9ydCAyODAgICAgIyBIVFRQLU1HTVQKYWNsIFNT
TF9wb3J0cyBwb3J0IDU2MyAgICAjIFNORVdTIChDKQphY2wgU2FmZV9wb3J0cyBwb3J0IDgwICAg
ICMgSFRUUAphY2wgU2FmZV9wb3J0cyBwb3J0IDIxMCAgICAjIFdBSVMKYWNsIFNhZmVfcG9ydHMg
cG9ydCA4NzMgICAgIyBSU1lOQwphY2wgU2FmZV9wb3J0cyBwb3J0IDU5MSAgICAjIEZpbGVtYWtl
cgoKIyAgVEFHOiBmb2xsb3dfeF9mb3J3YXJkZWRfZm9yCiMJQWxsb3dpbmcgb3IgRGVueWluZyB0
aGUgWC1Gb3J3YXJkZWQtRm9yIGhlYWRlciB0byBiZSBmb2xsb3dlZCB0bwojCWZpbmQgdGhlIG9y
aWdpbmFsIHNvdXJjZSBvZiBhIHJlcXVlc3QuCiMKIwlSZXF1ZXN0cyBtYXkgcGFzcyB0aHJvdWdo
IGEgY2hhaW4gb2Ygc2V2ZXJhbCBvdGhlciBwcm94aWVzCiMJYmVmb3JlIHJlYWNoaW5nIHVzLiAg
VGhlIFgtRm9yd2FyZGVkLUZvciBoZWFkZXIgd2lsbCBjb250YWluIGEKIwljb21tYS1zZXBhcmF0
ZWQgbGlzdCBvZiB0aGUgSVAgYWRkcmVzc2VzIGluIHRoZSBjaGFpbiwgd2l0aCB0aGUKIwlyaWdo
dG1vc3QgYWRkcmVzcyBiZWluZyB0aGUgbW9zdCByZWNlbnQuCiMKIwlJZiBhIHJlcXVlc3QgcmVh
Y2hlcyB1cyBmcm9tIGEgc291cmNlIHRoYXQgaXMgYWxsb3dlZCBieSB0aGlzCiMJY29uZmlndXJh
dGlvbiBpdGVtLCB0aGVuIHdlIGNvbnN1bHQgdGhlIFgtRm9yd2FyZGVkLUZvciBoZWFkZXIKIwl0
byBzZWUgd2hlcmUgdGhhdCBob3N0IHJlY2VpdmVkIHRoZSByZXF1ZXN0IGZyb20uICBJZiB0aGUK
IwlYLUZvcndhcmRlZC1Gb3IgaGVhZGVyIGNvbnRhaW5zIG11bHRpcGxlIGFkZHJlc3Nlcywgd2Ug
Y29udGludWUKIwliYWNrdHJhY2tpbmcgdW50aWwgd2UgcmVhY2ggYW4gYWRkcmVzcyBmb3Igd2hp
Y2ggd2UgYXJlIG5vdCBhbGxvd2VkCiMJdG8gZm9sbG93IHRoZSBYLUZvcndhcmRlZC1Gb3IgaGVh
ZGVyLCBvciB1bnRpbCB3ZSByZWFjaCB0aGUgZmlyc3QKIwlhZGRyZXNzIGluIHRoZSBsaXN0LiBG
b3IgdGhlIHB1cnBvc2Ugb2YgQUNMIHVzZWQgaW4gdGhlCiMJZm9sbG93X3hfZm9yd2FyZGVkX2Zv
ciBkaXJlY3RpdmUgdGhlIHNyYyBBQ0wgdHlwZSBhbHdheXMgbWF0Y2hlcwojCXRoZSBhZGRyZXNz
IHdlIGFyZSB0ZXN0aW5nIGFuZCBzcmNkb21haW4gbWF0Y2hlcyBpdHMgckROUy4KIwojCVRoZSBl
bmQgcmVzdWx0IG9mIHRoaXMgcHJvY2VzcyBpcyBhbiBJUCBhZGRyZXNzIHRoYXQgd2Ugd2lsbAoj
CXJlZmVyIHRvIGFzIHRoZSBpbmRpcmVjdCBjbGllbnQgYWRkcmVzcy4gIFRoaXMgYWRkcmVzcyBt
YXkKIwliZSB0cmVhdGVkIGFzIHRoZSBjbGllbnQgYWRkcmVzcyBmb3IgYWNjZXNzIGNvbnRyb2ws
IElDQVAsIGRlbGF5CiMJcG9vbHMgYW5kIGxvZ2dpbmcsIGRlcGVuZGluZyBvbiB0aGUgYWNsX3Vz
ZXNfaW5kaXJlY3RfY2xpZW50LAojCWljYXBfdXNlc19pbmRpcmVjdF9jbGllbnQsIGRlbGF5X3Bv
b2xfdXNlc19pbmRpcmVjdF9jbGllbnQgYW5kCiMJbG9nX3VzZXNfaW5kaXJlY3RfY2xpZW50IG9w
dGlvbnMuCiMKIwlUaGlzIGNsYXVzZSBvbmx5IHN1cHBvcnRzIGZhc3QgYWNsIHR5cGVzLgojCVNl
ZSBodHRwOi8vd2lraS5zcXVpZC1jYWNoZS5vcmcvU3F1aWRGYXEvU3F1aWRBY2wgZm9yIGRldGFp
bHMuCiMKIwlTRUNVUklUWSBDT05TSURFUkFUSU9OUzoKIwojCQlBbnkgaG9zdCBmb3Igd2hpY2gg
d2UgZm9sbG93IHRoZSBYLUZvcndhcmRlZC1Gb3IgaGVhZGVyCiMJCWNhbiBwbGFjZSBpbmNvcnJl
Y3QgaW5mb3JtYXRpb24gaW4gdGhlIGhlYWRlciwgYW5kIFNxdWlkCiMJCXdpbGwgdXNlIHRoZSBp
bmNvcnJlY3QgaW5mb3JtYXRpb24gYXMgaWYgaXQgd2VyZSB0aGUKIwkJc291cmNlIGFkZHJlc3Mg
b2YgdGhlIHJlcXVlc3QuICBUaGlzIG1heSBlbmFibGUgcmVtb3RlCiMJCWhvc3RzIHRvIGJ5cGFz
cyBhbnkgYWNjZXNzIGNvbnRyb2wgcmVzdHJpY3Rpb25zIHRoYXQgYXJlCiMJCWJhc2VkIG9uIHRo
ZSBjbGllbnQncyBzb3VyY2UgYWRkcmVzc2VzLgojCiMJRm9yIGV4YW1wbGU6CiMKIwkJYWNsIGxv
Y2FsaG9zdCBzcmMgMTI3LjAuMC4xCiMJCWFjbCBteV9vdGhlcl9wcm94eSBzcmNkb21haW4gLnBy
b3h5LmV4YW1wbGUuY29tCiMJCWZvbGxvd194X2ZvcndhcmRlZF9mb3IgYWxsb3cgbG9jYWxob3N0
CiMJCWZvbGxvd194X2ZvcndhcmRlZF9mb3IgYWxsb3cgbXlfb3RoZXJfcHJveHkKI0RlZmF1bHQ6
CiMgZm9sbG93X3hfZm9yd2FyZGVkX2ZvciBkZW55IGFsbAoKIyAgVEFHOiBhY2xfdXNlc19pbmRp
cmVjdF9jbGllbnQJb258b2ZmCiMJQ29udHJvbHMgd2hldGhlciB0aGUgaW5kaXJlY3QgY2xpZW50
IGFkZHJlc3MKIwkoc2VlIGZvbGxvd194X2ZvcndhcmRlZF9mb3IpIGlzIHVzZWQgaW5zdGVhZCBv
ZiB0aGUKIwlkaXJlY3QgY2xpZW50IGFkZHJlc3MgaW4gYWNsIG1hdGNoaW5nLgojCiMJTk9URTog
bWF4Y29ubiBBQ0wgY29uc2lkZXJzIGRpcmVjdCBUQ1AgbGlua3MgYW5kIGluZGlyZWN0CiMJICAg
ICAgY2xpZW50cyB3aWxsIGFsd2F5cyBoYXZlIHplcm8uIFNvIG5vIG1hdGNoLgojRGVmYXVsdDoK
IyBhY2xfdXNlc19pbmRpcmVjdF9jbGllbnQgb24KCiMgIFRBRzogZGVsYXlfcG9vbF91c2VzX2lu
ZGlyZWN0X2NsaWVudAlvbnxvZmYKIwlDb250cm9scyB3aGV0aGVyIHRoZSBpbmRpcmVjdCBjbGll
bnQgYWRkcmVzcwojCShzZWUgZm9sbG93X3hfZm9yd2FyZGVkX2ZvcikgaXMgdXNlZCBpbnN0ZWFk
IG9mIHRoZQojCWRpcmVjdCBjbGllbnQgYWRkcmVzcyBpbiBkZWxheSBwb29scy4KI0RlZmF1bHQ6
CiMgZGVsYXlfcG9vbF91c2VzX2luZGlyZWN0X2NsaWVudCBvbgoKIyAgVEFHOiBsb2dfdXNlc19p
bmRpcmVjdF9jbGllbnQJb258b2ZmCiMJQ29udHJvbHMgd2hldGhlciB0aGUgaW5kaXJlY3QgY2xp
ZW50IGFkZHJlc3MKIwkoc2VlIGZvbGxvd194X2ZvcndhcmRlZF9mb3IpIGlzIHVzZWQgaW5zdGVh
ZCBvZiB0aGUKIwlkaXJlY3QgY2xpZW50IGFkZHJlc3MgaW4gdGhlIGFjY2VzcyBsb2cuCiNEZWZh
dWx0OgojIGxvZ191c2VzX2luZGlyZWN0X2NsaWVudCBvbgoKIyAgVEFHOiBodHRwX2FjY2Vzcwoj
CUFsbG93aW5nIG9yIERlbnlpbmcgYWNjZXNzIGJhc2VkIG9uIGRlZmluZWQgYWNjZXNzIGxpc3Rz
CiMKIwlBY2Nlc3MgdG8gdGhlIEhUVFAgcG9ydDoKIwlodHRwX2FjY2VzcyBhbGxvd3xkZW55IFsh
XWFjbG5hbWUgLi4uCiMKIwlOT1RFIG9uIGRlZmF1bHQgdmFsdWVzOgojCiMJSWYgdGhlcmUgYXJl
IG5vICJhY2Nlc3MiIGxpbmVzIHByZXNlbnQsIHRoZSBkZWZhdWx0IGlzIHRvIGRlbnkKIwl0aGUg
cmVxdWVzdC4KIwojCUlmIG5vbmUgb2YgdGhlICJhY2Nlc3MiIGxpbmVzIGNhdXNlIGEgbWF0Y2gs
IHRoZSBkZWZhdWx0IGlzIHRoZQojCW9wcG9zaXRlIG9mIHRoZSBsYXN0IGxpbmUgaW4gdGhlIGxp
c3QuICBJZiB0aGUgbGFzdCBsaW5lIHdhcwojCWRlbnksIHRoZSBkZWZhdWx0IGlzIGFsbG93LiAg
Q29udmVyc2VseSwgaWYgdGhlIGxhc3QgbGluZQojCWlzIGFsbG93LCB0aGUgZGVmYXVsdCB3aWxs
IGJlIGRlbnkuICBGb3IgdGhlc2UgcmVhc29ucywgaXQgaXMgYQojCWdvb2QgaWRlYSB0byBoYXZl
IGFuICJkZW55IGFsbCIgZW50cnkgYXQgdGhlIGVuZCBvZiB5b3VyIGFjY2VzcwojCWxpc3RzIHRv
IGF2b2lkIHBvdGVudGlhbCBjb25mdXNpb24uCiMKIwlUaGlzIGNsYXVzZSBzdXBwb3J0cyBib3Ro
IGZhc3QgYW5kIHNsb3cgYWNsIHR5cGVzLgojCVNlZSBodHRwOi8vd2lraS5zcXVpZC1jYWNoZS5v
cmcvU3F1aWRGYXEvU3F1aWRBY2wgZm9yIGRldGFpbHMuCiMKI0RlZmF1bHQ6CiMgaHR0cF9hY2Nl
c3MgZGVueSBhbGwKIwoKIwojIFJlY29tbWVuZGVkIG1pbmltdW0gQWNjZXNzIFBlcm1pc3Npb24g
Y29uZmlndXJhdGlvbjoKIwojIE9ubHkgYWxsb3cgY2FjaGVtZ3IgYWNjZXNzIGZyb20gbG9jYWxo
b3N0Cmh0dHBfYWNjZXNzIGFsbG93IG1hbmFnZXIgbG9jYWxob3N0Cmh0dHBfYWNjZXNzIGFsbG93
IG1hbmFnZXIgbG9jYWxob3N0Cmh0dHBfYWNjZXNzIGRlbnkgbWFuYWdlcgojIERlbnkgcmVxdWVz
dHMgdG8gdW5rbm93biBwb3J0cwpodHRwX2FjY2VzcyBkZW55ICFTYWZlX3BvcnRzICFTU0xfcG9y
dHMKIyBEZW55IENPTk5FQ1QgdG8gb3RoZXIgdGhhbiBTU0wgcG9ydHMKYWNsIENPTk5FQ1QgbWV0
aG9kIENPTk5FQ1QKaHR0cF9hY2Nlc3MgZGVueSBDT05ORUNUICFTU0xfcG9ydHMKCiMgV2Ugc3Ry
b25nbHkgcmVjb21tZW5kIHRoZSBmb2xsb3dpbmcgYmUgdW5jb21tZW50ZWQgdG8gcHJvdGVjdCBp
bm5vY2VudAojIHdlYiBhcHBsaWNhdGlvbnMgcnVubmluZyBvbiB0aGUgcHJveHkgc2VydmVyIHdo
byB0aGluayB0aGUgb25seQojIG9uZSB3aG8gY2FuIGFjY2VzcyBzZXJ2aWNlcyBvbiAibG9jYWxo
b3N0IiBpcyBhIGxvY2FsIHVzZXIKI2h0dHBfYWNjZXNzIGRlbnkgdG9fbG9jYWxob3N0CmFjbCBv
dXJfbmV0d29ya3Mgc3JjIDE5Mi4xNjguMi4xLzI0ICAgICMgTG9jYWwKYWNsIG91cl9uZXR3b3Jr
cyBzcmMgMTI3LjAuMC4wLzggICAgIyBMT0NBTEhPU1QKIyBEZW55IGFjY2VzcyBub3QgZm9ybSBv
bmUgb2YgIm91ciIgSVAgbmV0d29ya3MKaHR0cF9hY2Nlc3MgZGVueSAhb3VyX25ldHdvcmtzCiMg
RGVmaW5lIEFDTCB0eXBlIHRvIHRlc3QgYSBzeXN0ZW0gZ3JvdXAgbWVtYmVyc2hpcApleHRlcm5h
bF9hY2xfdHlwZSB1bml4X2dyb3VwICVMT0dJTiAvdXNyL2xpYi9zcXVpZC9zcXVpZF9sZGFwX2dy
b3VwIC1QIC1CICJvdT1QZW9wbGUsZGM9dGVzdCxkYz1hbHRsaW51eCIgLUYgIigmKHVpZD0lcyko
b2JqZWN0Q2xhc3M9cG9zaXhBY2NvdW50KSkiIC1iICJvdT1Hcm91cCxkYz10ZXN0LGRjPWFsdGxp
bnV4IiAtZiAiKCYoY249JWcpKG9iamVjdENsYXNzPXBvc2l4R3JvdXApKSIgLUsKIyBBY2Nlc3Mg
cG9saWN5IGZvciB0aGUgZ3JvdXAgbDEKYWNsIGwxLWdyb3VwIGV4dGVybmFsIHVuaXhfZ3JvdXAg
bDEKYWNsIGwxLWRvbWFpbnMgZHN0ZG9tYWluIC5tYWlsLnJ1IC5hbHRsaW51eC5ydQpodHRwX2Fj
Y2VzcyBkZW55IEFVVEhFTlRJQ0FURUQgbDEtZ3JvdXAgbDEtZG9tYWlucwojIEFjY2VzcyBwb2xp
Y3kgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcnMKaHR0cF9hY2Nlc3MgYWxsb3cgQVVUSEVOVElDQVRF
RAojIEFjY2VzcyBwb2xpY3kgZm9yIGFsbCB1c2VycwpodHRwX2FjY2VzcyBhbGxvdyBhbGwKCiMg
QW5kIGZpbmFsbHkgZGVueSBhbGwgb3RoZXIgYWNjZXNzIHRvIHRoaXMgcHJveHkKaHR0cF9hY2Nl
c3MgZGVueSBhbGwKCiMgIFRBRzogYWRhcHRlZF9odHRwX2FjY2VzcwojCUFsbG93aW5nIG9yIERl
bnlpbmcgYWNjZXNzIGJhc2VkIG9uIGRlZmluZWQgYWNjZXNzIGxpc3RzCiMKIwlFc3NlbnRpYWxs
eSBpZGVudGljYWwgdG8gaHR0cF9hY2Nlc3MsIGJ1dCBydW5zIGFmdGVyIHJlZGlyZWN0b3JzCiMJ
YW5kIElDQVAvZUNBUCBhZGFwdGF0aW9uLiBBbGxvd2luZyBhY2Nlc3MgY29udHJvbCBiYXNlZCBv
biB0aGVpcgojCW91dHB1dC4KIwojCUlmIG5vdCBzZXQgdGhlbiBvbmx5IGh0dHBfYWNjZXNzIGlz
IHVzZWQuCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogaHR0cF9yZXBseV9hY2Nlc3MKIwlBbGxv
dyByZXBsaWVzIHRvIGNsaWVudCByZXF1ZXN0cy4gVGhpcyBpcyBjb21wbGVtZW50YXJ5IHRvIGh0
dHBfYWNjZXNzLgojCiMJaHR0cF9yZXBseV9hY2Nlc3MgYWxsb3d8ZGVueSBbIV0gYWNsbmFtZSAu
Li4KIwojCU5PVEU6IGlmIHRoZXJlIGFyZSBubyBhY2Nlc3MgbGluZXMgcHJlc2VudCwgdGhlIGRl
ZmF1bHQgaXMgdG8gYWxsb3cKIwlhbGwgcmVwbGllcwojCiMJSWYgbm9uZSBvZiB0aGUgYWNjZXNz
IGxpbmVzIGNhdXNlIGEgbWF0Y2ggdGhlIG9wcG9zaXRlIG9mIHRoZQojCWxhc3QgbGluZSB3aWxs
IGFwcGx5LiBUaHVzIGl0IGlzIGdvb2QgcHJhY3RpY2UgdG8gZW5kIHRoZSBydWxlcwojCXdpdGgg
YW4gImFsbG93IGFsbCIgb3IgImRlbnkgYWxsIiBlbnRyeS4KIwojCVRoaXMgY2xhdXNlIHN1cHBv
cnRzIGJvdGggZmFzdCBhbmQgc2xvdyBhY2wgdHlwZXMuCiMJU2VlIGh0dHA6Ly93aWtpLnNxdWlk
LWNhY2hlLm9yZy9TcXVpZEZhcS9TcXVpZEFjbCBmb3IgZGV0YWlscy4KI0RlZmF1bHQ6CiMgbm9u
ZQoKIyAgVEFHOiBpY3BfYWNjZXNzCiMJQWxsb3dpbmcgb3IgRGVueWluZyBhY2Nlc3MgdG8gdGhl
IElDUCBwb3J0IGJhc2VkIG9uIGRlZmluZWQKIwlhY2Nlc3MgbGlzdHMKIwojCWljcF9hY2Nlc3Mg
IGFsbG93fGRlbnkgWyFdYWNsbmFtZSAuLi4KIwojCVNlZSBodHRwX2FjY2VzcyBmb3IgZGV0YWls
cwojCiMJVGhpcyBjbGF1c2Ugb25seSBzdXBwb3J0cyBmYXN0IGFjbCB0eXBlcy4KIwlTZWUgaHR0
cDovL3dpa2kuc3F1aWQtY2FjaGUub3JnL1NxdWlkRmFxL1NxdWlkQWNsIGZvciBkZXRhaWxzLgoj
CiMjIEFsbG93IElDUCBxdWVyaWVzIGZyb20gbG9jYWwgbmV0d29ya3Mgb25seQojI2ljcF9hY2Nl
c3MgYWxsb3cgbG9jYWxuZXQKIyNpY3BfYWNjZXNzIGRlbnkgYWxsCiNEZWZhdWx0OgojIGljcF9h
Y2Nlc3MgZGVueSBhbGwKCiMgIFRBRzogaHRjcF9hY2Nlc3MKIwlBbGxvd2luZyBvciBEZW55aW5n
IGFjY2VzcyB0byB0aGUgSFRDUCBwb3J0IGJhc2VkIG9uIGRlZmluZWQKIwlhY2Nlc3MgbGlzdHMK
IwojCWh0Y3BfYWNjZXNzICBhbGxvd3xkZW55IFshXWFjbG5hbWUgLi4uCiMKIwlTZWUgaHR0cF9h
Y2Nlc3MgZm9yIGRldGFpbHMKIwojCU5PVEU6IFRoZSBkZWZhdWx0IGlmIG5vIGh0Y3BfYWNjZXNz
IGxpbmVzIGFyZSBwcmVzZW50IGlzIHRvCiMJZGVueSBhbGwgdHJhZmZpYy4gVGhpcyBkZWZhdWx0
IG1heSBjYXVzZSBwcm9ibGVtcyB3aXRoIHBlZXJzCiMJdXNpbmcgdGhlIGh0Y3Agb3IgaHRjcC1v
bGRzcXVpZCBvcHRpb25zLgojCiMJVGhpcyBjbGF1c2Ugb25seSBzdXBwb3J0cyBmYXN0IGFjbCB0
eXBlcy4KIwlTZWUgaHR0cDovL3dpa2kuc3F1aWQtY2FjaGUub3JnL1NxdWlkRmFxL1NxdWlkQWNs
IGZvciBkZXRhaWxzLgojCiMjIEFsbG93IEhUQ1AgcXVlcmllcyBmcm9tIGxvY2FsIG5ldHdvcmtz
IG9ubHkKIyNodGNwX2FjY2VzcyBhbGxvdyBsb2NhbG5ldAojI2h0Y3BfYWNjZXNzIGRlbnkgYWxs
CiNEZWZhdWx0OgojIGh0Y3BfYWNjZXNzIGRlbnkgYWxsCgojICBUQUc6IGh0Y3BfY2xyX2FjY2Vz
cwojCUFsbG93aW5nIG9yIERlbnlpbmcgYWNjZXNzIHRvIHB1cmdlIGNvbnRlbnQgdXNpbmcgSFRD
UCBiYXNlZAojCW9uIGRlZmluZWQgYWNjZXNzIGxpc3RzCiMKIwlodGNwX2Nscl9hY2Nlc3MgIGFs
bG93fGRlbnkgWyFdYWNsbmFtZSAuLi4KIwojCVNlZSBodHRwX2FjY2VzcyBmb3IgZGV0YWlscwoj
CiMJVGhpcyBjbGF1c2Ugb25seSBzdXBwb3J0cyBmYXN0IGFjbCB0eXBlcy4KIwlTZWUgaHR0cDov
L3dpa2kuc3F1aWQtY2FjaGUub3JnL1NxdWlkRmFxL1NxdWlkQWNsIGZvciBkZXRhaWxzLgojCiMj
IEFsbG93IEhUQ1AgQ0xSIHJlcXVlc3RzIGZyb20gdHJ1c3RlZCBwZWVycwojYWNsIGh0Y3BfY2xy
X3BlZXIgc3JjIDE3Mi4xNi4xLjIKI2h0Y3BfY2xyX2FjY2VzcyBhbGxvdyBodGNwX2Nscl9wZWVy
CiNEZWZhdWx0OgojIGh0Y3BfY2xyX2FjY2VzcyBkZW55IGFsbAoKIyAgVEFHOiBtaXNzX2FjY2Vz
cwojCVVzZSB0byBmb3JjZSB5b3VyIG5laWdoYm9ycyB0byB1c2UgeW91IGFzIGEgc2libGluZyBp
bnN0ZWFkIG9mCiMJYSBwYXJlbnQuICBGb3IgZXhhbXBsZToKIwojCQlhY2wgbG9jYWxjbGllbnRz
IHNyYyAxNzIuMTYuMC4wLzE2CiMJCW1pc3NfYWNjZXNzIGFsbG93IGxvY2FsY2xpZW50cwojCQlt
aXNzX2FjY2VzcyBkZW55ICAhbG9jYWxjbGllbnRzCiMKIwlUaGlzIG1lYW5zIG9ubHkgeW91ciBs
b2NhbCBjbGllbnRzIGFyZSBhbGxvd2VkIHRvIGZldGNoCiMJTUlTU0VTIGFuZCBhbGwgb3RoZXIg
Y2xpZW50cyBjYW4gb25seSBmZXRjaCBISVRTLgojCiMJQnkgZGVmYXVsdCwgYWxsb3cgYWxsIGNs
aWVudHMgd2hvIHBhc3NlZCB0aGUgaHR0cF9hY2Nlc3MgcnVsZXMKIwl0byBmZXRjaCBNSVNTRVMg
ZnJvbSB1cy4KIwojCVRoaXMgY2xhdXNlIG9ubHkgc3VwcG9ydHMgZmFzdCBhY2wgdHlwZXMuCiMJ
U2VlIGh0dHA6Ly93aWtpLnNxdWlkLWNhY2hlLm9yZy9TcXVpZEZhcS9TcXVpZEFjbCBmb3IgZGV0
YWlscy4KI0RlZmF1bHQ6CiMgbWlzc19hY2Nlc3MgYWxsb3cgYWxsCgojICBUQUc6IGlkZW50X2xv
b2t1cF9hY2Nlc3MKIwlBIGxpc3Qgb2YgQUNMIGVsZW1lbnRzIHdoaWNoLCBpZiBtYXRjaGVkLCBj
YXVzZSBhbiBpZGVudAojCShSRkMgOTMxKSBsb29rdXAgdG8gYmUgcGVyZm9ybWVkIGZvciB0aGlz
IHJlcXVlc3QuICBGb3IKIwlleGFtcGxlLCB5b3UgbWlnaHQgY2hvb3NlIHRvIGFsd2F5cyBwZXJm
b3JtIGlkZW50IGxvb2t1cHMKIwlmb3IgeW91ciBtYWluIG11bHRpLXVzZXIgVW5peCBib3hlcywg
YnV0IG5vdCBmb3IgeW91ciBNYWNzCiMJYW5kIFBDcy4gIEJ5IGRlZmF1bHQsIGlkZW50IGxvb2t1
cHMgYXJlIG5vdCBwZXJmb3JtZWQgZm9yCiMJYW55IHJlcXVlc3RzLgojCiMJVG8gZW5hYmxlIGlk
ZW50IGxvb2t1cHMgZm9yIHNwZWNpZmljIGNsaWVudCBhZGRyZXNzZXMsIHlvdQojCWNhbiBmb2xs
b3cgdGhpcyBleGFtcGxlOgojCiMJYWNsIGlkZW50X2F3YXJlX2hvc3RzIHNyYyAxOTguMTY4LjEu
MC8yNAojCWlkZW50X2xvb2t1cF9hY2Nlc3MgYWxsb3cgaWRlbnRfYXdhcmVfaG9zdHMKIwlpZGVu
dF9sb29rdXBfYWNjZXNzIGRlbnkgYWxsCiMKIwlPbmx5IHNyYyB0eXBlIEFDTCBjaGVja3MgYXJl
IGZ1bGx5IHN1cHBvcnRlZC4gIEEgc3JjZG9tYWluCiMJQUNMIG1pZ2h0IHdvcmsgYXQgdGltZXMs
IGJ1dCBpdCB3aWxsIG5vdCBhbHdheXMgcHJvdmlkZQojCXRoZSBjb3JyZWN0IHJlc3VsdC4KIwoj
CVRoaXMgY2xhdXNlIG9ubHkgc3VwcG9ydHMgZmFzdCBhY2wgdHlwZXMuCiMJU2VlIGh0dHA6Ly93
aWtpLnNxdWlkLWNhY2hlLm9yZy9TcXVpZEZhcS9TcXVpZEFjbCBmb3IgZGV0YWlscy4KI0RlZmF1
bHQ6CiMgaWRlbnRfbG9va3VwX2FjY2VzcyBkZW55IGFsbAoKIyAgVEFHOiByZXBseV9ib2R5X21h
eF9zaXplCXNpemUgW2FjbCBhY2wuLi5dCiMJVGhpcyBvcHRpb24gc3BlY2lmaWVzIHRoZSBtYXhp
bXVtIHNpemUgb2YgYSByZXBseSBib2R5LiBJdCBjYW4gYmUKIwl1c2VkIHRvIHByZXZlbnQgdXNl
cnMgZnJvbSBkb3dubG9hZGluZyB2ZXJ5IGxhcmdlIGZpbGVzLCBzdWNoIGFzCiMJTVAzJ3MgYW5k
IG1vdmllcy4gV2hlbiB0aGUgcmVwbHkgaGVhZGVycyBhcmUgcmVjZWl2ZWQsIHRoZQojCXJlcGx5
X2JvZHlfbWF4X3NpemUgbGluZXMgYXJlIHByb2Nlc3NlZCwgYW5kIHRoZSBmaXJzdCBsaW5lIHdo
ZXJlCiMJYWxsIChpZiBhbnkpIGxpc3RlZCBBQ0xzIGFyZSB0cnVlIGlzIHVzZWQgYXMgdGhlIG1h
eGltdW0gYm9keSBzaXplCiMJZm9yIHRoaXMgcmVwbHkuCiMKIwlUaGlzIHNpemUgaXMgY2hlY2tl
ZCB0d2ljZS4gRmlyc3Qgd2hlbiB3ZSBnZXQgdGhlIHJlcGx5IGhlYWRlcnMsCiMJd2UgY2hlY2sg
dGhlIGNvbnRlbnQtbGVuZ3RoIHZhbHVlLiAgSWYgdGhlIGNvbnRlbnQgbGVuZ3RoIHZhbHVlIGV4
aXN0cwojCWFuZCBpcyBsYXJnZXIgdGhhbiB0aGUgYWxsb3dlZCBzaXplLCB0aGUgcmVxdWVzdCBp
cyBkZW5pZWQgYW5kIHRoZQojCXVzZXIgcmVjZWl2ZXMgYW4gZXJyb3IgbWVzc2FnZSB0aGF0IHNh
eXMgInRoZSByZXF1ZXN0IG9yIHJlcGx5CiMJaXMgdG9vIGxhcmdlLiIgSWYgdGhlcmUgaXMgbm8g
Y29udGVudC1sZW5ndGgsIGFuZCB0aGUgcmVwbHkKIwlzaXplIGV4Y2VlZHMgdGhpcyBsaW1pdCwg
dGhlIGNsaWVudCdzIGNvbm5lY3Rpb24gaXMganVzdCBjbG9zZWQKIwlhbmQgdGhleSB3aWxsIHJl
Y2VpdmUgYSBwYXJ0aWFsIHJlcGx5LgojCiMJV0FSTklORzogZG93bnN0cmVhbSBjYWNoZXMgcHJv
YmFibHkgY2FuIG5vdCBkZXRlY3QgYSBwYXJ0aWFsIHJlcGx5CiMJaWYgdGhlcmUgaXMgbm8gY29u
dGVudC1sZW5ndGggaGVhZGVyLCBzbyB0aGV5IHdpbGwgY2FjaGUKIwlwYXJ0aWFsIHJlc3BvbnNl
cyBhbmQgZ2l2ZSB0aGVtIG91dCBhcyBoaXRzLiAgWW91IHNob3VsZCBOT1QKIwl1c2UgdGhpcyBv
cHRpb24gaWYgeW91IGhhdmUgZG93bnN0cmVhbSBjYWNoZXMuCiMKIwlXQVJOSU5HOiBBIG1heGlt
dW0gc2l6ZSBzbWFsbGVyIHRoYW4gdGhlIHNpemUgb2Ygc3F1aWQncyBlcnJvciBtZXNzYWdlcwoj
CXdpbGwgY2F1c2UgYW4gaW5maW5pdGUgbG9vcCBhbmQgY3Jhc2ggc3F1aWQuIEVuc3VyZSB0aGF0
IHRoZSBzbWFsbGVzdAojCW5vbi16ZXJvIHZhbHVlIHlvdSB1c2UgaXMgZ3JlYXRlciB0aGF0IHRo
ZSBtYXhpbXVtIGhlYWRlciBzaXplIHBsdXMKIwl0aGUgc2l6ZSBvZiB5b3VyIGxhcmdlc3QgZXJy
b3IgcGFnZS4KIwojCUlmIHlvdSBzZXQgdGhpcyBwYXJhbWV0ZXIgbm9uZSAodGhlIGRlZmF1bHQp
LCB0aGVyZSB3aWxsIGJlCiMJbm8gbGltaXQgaW1wb3NlZC4KIwojCUNvbmZpZ3VyYXRpb24gRm9y
bWF0IGlzOgojCQlyZXBseV9ib2R5X21heF9zaXplIFNJWkUgVU5JVFMgW2FjbCAuLi5dCiMJaWUu
CiMJCXJlcGx5X2JvZHlfbWF4X3NpemUgMTAgTUIKIwojRGVmYXVsdDoKIyBub25lCgojIE5FVFdP
UksgT1BUSU9OUwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6IGh0dHBfcG9ydAojCVVz
YWdlOglwb3J0IFtvcHRpb25zXQojCQlob3N0bmFtZTpwb3J0IFtvcHRpb25zXQojCQkxLjIuMy40
OnBvcnQgW29wdGlvbnNdCiMKIwlUaGUgc29ja2V0IGFkZHJlc3NlcyB3aGVyZSBTcXVpZCB3aWxs
IGxpc3RlbiBmb3IgSFRUUCBjbGllbnQKIwlyZXF1ZXN0cy4gIFlvdSBtYXkgc3BlY2lmeSBtdWx0
aXBsZSBzb2NrZXQgYWRkcmVzc2VzLgojCVRoZXJlIGFyZSB0aHJlZSBmb3JtczogcG9ydCBhbG9u
ZSwgaG9zdG5hbWUgd2l0aCBwb3J0LCBhbmQKIwlJUCBhZGRyZXNzIHdpdGggcG9ydC4gIElmIHlv
dSBzcGVjaWZ5IGEgaG9zdG5hbWUgb3IgSVAKIwlhZGRyZXNzLCBTcXVpZCBiaW5kcyB0aGUgc29j
a2V0IHRvIHRoYXQgc3BlY2lmaWMKIwlhZGRyZXNzLiAgVGhpcyByZXBsYWNlcyB0aGUgb2xkICd0
Y3BfaW5jb21pbmdfYWRkcmVzcycKIwlvcHRpb24uICBNb3N0IGxpa2VseSwgeW91IGRvIG5vdCBu
ZWVkIHRvIGJpbmQgdG8gYSBzcGVjaWZpYwojCWFkZHJlc3MsIHNvIHlvdSBjYW4gdXNlIHRoZSBw
b3J0IG51bWJlciBhbG9uZS4KIwojCUlmIHlvdSBhcmUgcnVubmluZyBTcXVpZCBpbiBhY2NlbGVy
YXRvciBtb2RlLCB5b3UKIwlwcm9iYWJseSB3YW50IHRvIGxpc3RlbiBvbiBwb3J0IDgwIGFsc28s
IG9yIGluc3RlYWQuCiMKIwlUaGUgLWEgY29tbWFuZCBsaW5lIG9wdGlvbiBtYXkgYmUgdXNlZCB0
byBzcGVjaWZ5IGFkZGl0aW9uYWwKIwlwb3J0KHMpIHdoZXJlIFNxdWlkIGxpc3RlbnMgZm9yIHBy
b3h5IHJlcXVlc3QuIFN1Y2ggcG9ydHMgd2lsbAojCWJlIHBsYWluIHByb3h5IHBvcnRzIHdpdGgg
bm8gb3B0aW9ucy4KIwojCVlvdSBtYXkgc3BlY2lmeSBtdWx0aXBsZSBzb2NrZXQgYWRkcmVzc2Vz
IG9uIG11bHRpcGxlIGxpbmVzLgojCiMJT3B0aW9uczoKIwojCSAgIGludGVyY2VwdAlTdXBwb3J0
IGZvciBJUC1MYXllciBpbnRlcmNlcHRpb24gb2YKIwkJCW91dGdvaW5nIHJlcXVlc3RzIHdpdGhv
dXQgYnJvd3NlciBzZXR0aW5ncy4KIwkJCU5QOiBkaXNhYmxlcyBhdXRoZW50aWNhdGlvbiBhbmQg
SVB2NiBvbiB0aGUgcG9ydC4KIwojCSAgIHRwcm94eQlTdXBwb3J0IExpbnV4IFRQUk9YWSBmb3Ig
c3Bvb2Zpbmcgb3V0Z29pbmcKIwkJCWNvbm5lY3Rpb25zIHVzaW5nIHRoZSBjbGllbnQgSVAgYWRk
cmVzcy4KIwkJCU5QOiBkaXNhYmxlcyBhdXRoZW50aWNhdGlvbiBhbmQgbWF5YmUgSVB2NiBvbiB0
aGUgcG9ydC4KIwojCSAgIGFjY2VsCUFjY2VsZXJhdG9yIG1vZGUuIEFsc28gbmVlZHMgYXQgbGVh
c3Qgb25lIG9mCiMJCQl2aG9zdCAvIHZwb3J0IC8gZGVmYXVsdHNpdGUuCiMKIwkgICBhbGxvdy1k
aXJlY3QJQWxsb3cgZGlyZWN0IGZvcndhcmRpbmcgaW4gYWNjZWxlcmF0b3IgbW9kZS4gTm9ybWFs
bHkKIwkJCWFjY2VsZXJhdGVkIHJlcXVlc3RzIGFyZSBkZW5pZWQgZGlyZWN0IGZvcndhcmRpbmcg
YXMgaWYKIwkJCW5ldmVyX2RpcmVjdCB3YXMgdXNlZC4KIwojCSAgIGRlZmF1bHRzaXRlPWRvbWFp
bm5hbWUKIwkJCVdoYXQgdG8gdXNlIGZvciB0aGUgSG9zdDogaGVhZGVyIGlmIGl0IGlzIG5vdCBw
cmVzZW50CiMJCQlpbiBhIHJlcXVlc3QuIERldGVybWluZXMgd2hhdCBzaXRlIChub3Qgb3JpZ2lu
IHNlcnZlcikKIwkJCWFjY2VsZXJhdG9ycyBzaG91bGQgY29uc2lkZXIgdGhlIGRlZmF1bHQuCiMJ
CQlJbXBsaWVzIGFjY2VsLgojCiMJICAgdmhvc3QJQWNjZWxlcmF0b3IgbW9kZSB1c2luZyBIb3N0
IGhlYWRlciBmb3IgdmlydHVhbAojCQkJZG9tYWluIHN1cHBvcnQuIEltcGxpZXMgYWNjZWwuCiMK
IwkgICB2cG9ydAlBY2NlbGVyYXRvciB3aXRoIElQIGJhc2VkIHZpcnR1YWwgaG9zdCBzdXBwb3J0
LgojCQkJSW1wbGllcyBhY2NlbC4KIwojCSAgIHZwb3J0PU5OCUFzIGFib3ZlLCBidXQgdXNlcyBz
cGVjaWZpZWQgcG9ydCBudW1iZXIgcmF0aGVyCiMJCQl0aGFuIHRoZSBodHRwX3BvcnQgbnVtYmVy
LiBJbXBsaWVzIGFjY2VsLgojCiMJICAgcHJvdG9jb2w9CVByb3RvY29sIHRvIHJlY29uc3RydWN0
IGFjY2VsZXJhdGVkIHJlcXVlc3RzIHdpdGguCiMJCQlEZWZhdWx0cyB0byBodHRwLgojCiMJICAg
aWdub3JlLWNjCUlnbm9yZSByZXF1ZXN0IENhY2hlLUNvbnRyb2wgaGVhZGVycy4KIwojCSAgIAkJ
V2FybmluZzogVGhpcyBvcHRpb24gdmlvbGF0ZXMgSFRUUCBzcGVjaWZpY2F0aW9ucyBpZgojCQkJ
dXNlZCBpbiBub24tYWNjZWxlcmF0b3Igc2V0dXBzLgojCiMJICAgY29ubmVjdGlvbi1hdXRoWz1v
bnxvZmZdCiMJICAgICAgICAgICAgICAgIHVzZSBjb25uZWN0aW9uLWF1dGg9b2ZmIHRvIHRlbGwg
U3F1aWQgdG8gcHJldmVudCAKIwkgICAgICAgICAgICAgICAgZm9yd2FyZGluZyBNaWNyb3NvZnQg
Y29ubmVjdGlvbiBvcmllbnRlZCBhdXRoZW50aWNhdGlvbgojCQkJKE5UTE0sIE5lZ290aWF0ZSBh
bmQgS2VyYmVyb3MpCiMKIwkgICBkaXNhYmxlLXBtdHUtZGlzY292ZXJ5PQojCQkJQ29udHJvbCBQ
YXRoLU1UVSBkaXNjb3ZlcnkgdXNhZ2U6CiMJCQkgICAgb2ZmCQlsZXRzIE9TIGRlY2lkZSBvbiB3
aGF0IHRvIGRvIChkZWZhdWx0KS4KIwkJCSAgICB0cmFuc3BhcmVudAlkaXNhYmxlIFBNVFUgZGlz
Y292ZXJ5IHdoZW4gdHJhbnNwYXJlbnQKIwkJCQkJc3VwcG9ydCBpcyBlbmFibGVkLgojCQkJICAg
IGFsd2F5cwlkaXNhYmxlIGFsd2F5cyBQTVRVIGRpc2NvdmVyeS4KIwojCQkJSW4gbWFueSBzZXR1
cHMgb2YgdHJhbnNwYXJlbnRseSBpbnRlcmNlcHRpbmcgcHJveGllcwojCQkJUGF0aC1NVFUgZGlz
Y292ZXJ5IGNhbiBub3Qgd29yayBvbiB0cmFmZmljIHRvd2FyZHMgdGhlCiMJCQljbGllbnRzLiBU
aGlzIGlzIHRoZSBjYXNlIHdoZW4gdGhlIGludGVyY2VwdGluZyBkZXZpY2UKIwkJCWRvZXMgbm90
IGZ1bGx5IHRyYWNrIGNvbm5lY3Rpb25zIGFuZCBmYWlscyB0byBmb3J3YXJkCiMJCQlJQ01QIG11
c3QgZnJhZ21lbnQgbWVzc2FnZXMgdG8gdGhlIGNhY2hlIHNlcnZlci4gSWYgeW91CiMJCQloYXZl
IHN1Y2ggc2V0dXAgYW5kIGV4cGVyaWVuY2UgdGhhdCBjZXJ0YWluIGNsaWVudHMKIwkJCXNwb3Jh
ZGljYWxseSBoYW5nIG9yIG5ldmVyIGNvbXBsZXRlIHJlcXVlc3RzIHNldAojCQkJZGlzYWJsZS1w
bXR1LWRpc2NvdmVyeSBvcHRpb24gdG8gJ3RyYW5zcGFyZW50Jy4KIwojCSAgIHNzbC1idW1wIAlJ
bnRlcmNlcHQgZWFjaCBDT05ORUNUIHJlcXVlc3QgbWF0Y2hpbmcgc3NsX2J1bXAgQUNMLAojCQkJ
ZXN0YWJsaXNoIHNlY3VyZSBjb25uZWN0aW9uIHdpdGggdGhlIGNsaWVudCBhbmQgd2l0aAojCQkJ
dGhlIHNlcnZlciwgZGVjcnlwdCBIVFRQIG1lc3NhZ2VzIGFzIHRoZXkgcGFzcyB0aHJvdWdoCiMJ
CQlTcXVpZCwgYW5kIHRyZWF0IHRoZW0gYXMgdW5lbmNyeXB0ZWQgSFRUUCBtZXNzYWdlcywKIwkJ
CWJlY29taW5nIHRoZSBtYW4taW4tdGhlLW1pZGRsZS4KIwojCQkJV2hlbiB0aGlzIG9wdGlvbiBp
cyBlbmFibGVkLCBhZGRpdGlvbmFsIG9wdGlvbnMgYmVjb21lCiMJCQlhdmFpbGFibGUgdG8gc3Bl
Y2lmeSBTU0wtcmVsYXRlZCBwcm9wZXJ0aWVzIG9mIHRoZQojCQkJY2xpZW50LXNpZGUgY29ubmVj
dGlvbjogY2VydCwga2V5LCB2ZXJzaW9uLCBjaXBoZXIsCiMJCQlvcHRpb25zLCBjbGllbnRjYSwg
Y2FmaWxlLCBjYXBhdGgsIGNybGZpbGUsIGRocGFyYW1zLAojCQkJc3NsZmxhZ3MsIGFuZCBzc2xj
b250ZXh0LiBTZWUgdGhlIGh0dHBzX3BvcnQgZGlyZWN0aXZlCiMJCQlmb3IgbW9yZSBpbmZvcm1h
dGlvbiBvbiB0aGVzZSBvcHRpb25zLgojCiMJCQlUaGUgc3NsX2J1bXAgb3B0aW9uIGlzIHJlcXVp
cmVkIHRvIGZ1bGx5IGVuYWJsZQojCQkJdGhlIFNzbEJ1bXAgZmVhdHVyZS4KIwojCSAgIG5hbWU9
CVNwZWNpZmllcyBhIGludGVybmFsIG5hbWUgZm9yIHRoZSBwb3J0LiBEZWZhdWx0cyB0bwojCQkJ
dGhlIHBvcnQgc3BlY2lmaWNhdGlvbiAocG9ydCBvciBhZGRyOnBvcnQpCiMKIwkgICB0Y3BrZWVw
YWxpdmVbPWlkbGUsaW50ZXJ2YWwsdGltZW91dF0KIwkJCUVuYWJsZSBUQ1Aga2VlcGFsaXZlIHBy
b2JlcyBvZiBpZGxlIGNvbm5lY3Rpb25zLgojCQkJSW4gc2Vjb25kczsgaWRsZSBpcyB0aGUgaW5p
dGlhbCB0aW1lIGJlZm9yZSBUQ1Agc3RhcnRzCiMJCQlwcm9iaW5nIHRoZSBjb25uZWN0aW9uLCBp
bnRlcnZhbCBob3cgb2Z0ZW4gdG8gcHJvYmUsIGFuZAojCQkJdGltZW91dCB0aGUgdGltZSBiZWZv
cmUgZ2l2aW5nIHVwLgojCiMJSWYgeW91IHJ1biBTcXVpZCBvbiBhIGR1YWwtaG9tZWQgbWFjaGlu
ZSB3aXRoIGFuIGludGVybmFsCiMJYW5kIGFuIGV4dGVybmFsIGludGVyZmFjZSB3ZSByZWNvbW1l
bmQgeW91IHRvIHNwZWNpZnkgdGhlCiMJaW50ZXJuYWwgYWRkcmVzczpwb3J0IGluIGh0dHBfcG9y
dC4gVGhpcyB3YXkgU3F1aWQgd2lsbCBvbmx5IGJlCiMJdmlzaWJsZSBvbiB0aGUgaW50ZXJuYWwg
YWRkcmVzcy4KIwojCgojIFNxdWlkIG5vcm1hbGx5IGxpc3RlbnMgdG8gcG9ydCAzMTI4CiNodHRw
X3BvcnQgMzEyOApodHRwX3BvcnQgMzEyOAoKIyAgVEFHOiBodHRwc19wb3J0CiMJVXNhZ2U6ICBb
aXA6XXBvcnQgY2VydD1jZXJ0aWZpY2F0ZS5wZW0gW2tleT1rZXkucGVtXSBbb3B0aW9ucy4uLl0K
IwojCVRoZSBzb2NrZXQgYWRkcmVzcyB3aGVyZSBTcXVpZCB3aWxsIGxpc3RlbiBmb3IgSFRUUFMg
Y2xpZW50CiMJcmVxdWVzdHMuCiMKIwlUaGlzIGlzIHJlYWxseSBvbmx5IHVzZWZ1bCBmb3Igc2l0
dWF0aW9ucyB3aGVyZSB5b3UgYXJlIHJ1bm5pbmcKIwlzcXVpZCBpbiBhY2NlbGVyYXRvciBtb2Rl
IGFuZCB5b3Ugd2FudCB0byBkbyB0aGUgU1NMIHdvcmsgYXQgdGhlCiMJYWNjZWxlcmF0b3IgbGV2
ZWwuCiMKIwlZb3UgbWF5IHNwZWNpZnkgbXVsdGlwbGUgc29ja2V0IGFkZHJlc3NlcyBvbiBtdWx0
aXBsZSBsaW5lcywKIwllYWNoIHdpdGggdGhlaXIgb3duIFNTTCBjZXJ0aWZpY2F0ZSBhbmQvb3Ig
b3B0aW9ucy4KIwojCU9wdGlvbnM6CiMKIwkgICBhY2NlbAlBY2NlbGVyYXRvciBtb2RlLiBBbHNv
IG5lZWRzIGF0IGxlYXN0IG9uZSBvZgojCQkJZGVmYXVsdHNpdGUgb3Igdmhvc3QuCiMKIwkgICBk
ZWZhdWx0c2l0ZT0JVGhlIG5hbWUgb2YgdGhlIGh0dHBzIHNpdGUgcHJlc2VudGVkIG9uCiMJICAg
CQl0aGlzIHBvcnQuIEltcGxpZXMgYWNjZWwuCiMKIwkgICB2aG9zdAlBY2NlbGVyYXRvciBtb2Rl
IHVzaW5nIEhvc3QgaGVhZGVyIGZvciB2aXJ0dWFsCiMJCQlkb21haW4gc3VwcG9ydC4gUmVxdWly
ZXMgYSB3aWxkY2FyZCBjZXJ0aWZpY2F0ZQojCQkJb3Igb3RoZXIgY2VydGlmaWNhdGUgdmFsaWQg
Zm9yIG1vcmUgdGhhbiBvbmUgZG9tYWluLgojCQkJSW1wbGllcyBhY2NlbC4KIwojCSAgIHByb3Rv
Y29sPQlQcm90b2NvbCB0byByZWNvbnN0cnVjdCBhY2NlbGVyYXRlZCByZXF1ZXN0cyB3aXRoLgoj
CQkJRGVmYXVsdHMgdG8gaHR0cHMuCiMKIwkgICBjZXJ0PQlQYXRoIHRvIFNTTCBjZXJ0aWZpY2F0
ZSAoUEVNIGZvcm1hdCkuCiMKIwkgICBrZXk9CQlQYXRoIHRvIFNTTCBwcml2YXRlIGtleSBmaWxl
IChQRU0gZm9ybWF0KQojCQkJaWYgbm90IHNwZWNpZmllZCwgdGhlIGNlcnRpZmljYXRlIGZpbGUg
aXMKIwkJCWFzc3VtZWQgdG8gYmUgYSBjb21iaW5lZCBjZXJ0aWZpY2F0ZSBhbmQKIwkJCWtleSBm
aWxlLgojCiMJICAgdmVyc2lvbj0JVGhlIHZlcnNpb24gb2YgU1NML1RMUyBzdXBwb3J0ZWQKIwkJ
CSAgICAxCWF1dG9tYXRpYyAoZGVmYXVsdCkKIwkJCSAgICAyCVNTTHYyIG9ubHkKIwkJCSAgICAz
CVNTTHYzIG9ubHkKIwkJCSAgICA0CVRMU3YxIG9ubHkKIwojCSAgIGNpcGhlcj0JQ29sb24gc2Vw
YXJhdGVkIGxpc3Qgb2Ygc3VwcG9ydGVkIGNpcGhlcnMuCiMKIwkgICBvcHRpb25zPQlWYXJpb3Vz
IFNTTCBlbmdpbmUgb3B0aW9ucy4gVGhlIG1vc3QgaW1wb3J0YW50CiMJCQliZWluZzoKIwkJCSAg
ICBOT19TU0x2MiAgRGlzYWxsb3cgdGhlIHVzZSBvZiBTU0x2MgojCQkJICAgIE5PX1NTTHYzICBE
aXNhbGxvdyB0aGUgdXNlIG9mIFNTTHYzCiMJCQkgICAgTk9fVExTdjEgIERpc2FsbG93IHRoZSB1
c2Ugb2YgVExTdjEKIwkJCSAgICBTSU5HTEVfREhfVVNFIEFsd2F5cyBjcmVhdGUgYSBuZXcga2V5
IHdoZW4gdXNpbmcKIwkJCQkgICAgICB0ZW1wb3JhcnkvZXBoZW1lcmFsIERIIGtleSBleGNoYW5n
ZXMKIwkJCVNlZSBzcmMvc3NsX3N1cHBvcnQuYyBvciBPcGVuU1NMIFNTTF9DVFhfc2V0X29wdGlv
bnMKIwkJCWRvY3VtZW50YXRpb24gZm9yIGEgY29tcGxldGUgbGlzdCBvZiBvcHRpb25zLgojCiMJ
ICAgY2xpZW50Y2E9CUZpbGUgY29udGFpbmluZyB0aGUgbGlzdCBvZiBDQXMgdG8gdXNlIHdoZW4K
IwkJCXJlcXVlc3RpbmcgYSBjbGllbnQgY2VydGlmaWNhdGUuCiMKIwkgICBjYWZpbGU9CUZpbGUg
Y29udGFpbmluZyBhZGRpdGlvbmFsIENBIGNlcnRpZmljYXRlcyB0bwojCQkJdXNlIHdoZW4gdmVy
aWZ5aW5nIGNsaWVudCBjZXJ0aWZpY2F0ZXMuIElmIHVuc2V0CiMJCQljbGllbnRjYSB3aWxsIGJl
IHVzZWQuCiMKIwkgICBjYXBhdGg9CURpcmVjdG9yeSBjb250YWluaW5nIGFkZGl0aW9uYWwgQ0Eg
Y2VydGlmaWNhdGVzCiMJCQlhbmQgQ1JMIGxpc3RzIHRvIHVzZSB3aGVuIHZlcmlmeWluZyBjbGll
bnQgY2VydGlmaWNhdGVzLgojCiMJICAgY3JsZmlsZT0JRmlsZSBvZiBhZGRpdGlvbmFsIENSTCBs
aXN0cyB0byB1c2Ugd2hlbiB2ZXJpZnlpbmcKIwkJCXRoZSBjbGllbnQgY2VydGlmaWNhdGUsIGlu
IGFkZGl0aW9uIHRvIENSTHMgc3RvcmVkIGluCiMJCQl0aGUgY2FwYXRoLiBJbXBsaWVzIFZFUklG
WV9DUkwgZmxhZyBiZWxvdy4KIwojCSAgIGRocGFyYW1zPQlGaWxlIGNvbnRhaW5pbmcgREggcGFy
YW1ldGVycyBmb3IgdGVtcG9yYXJ5L2VwaGVtZXJhbAojCQkJREgga2V5IGV4Y2hhbmdlcy4KIwoj
CSAgIHNzbGZsYWdzPQlWYXJpb3VzIGZsYWdzIG1vZGlmeWluZyB0aGUgdXNlIG9mIFNTTDoKIwkJ
CSAgICBERUxBWUVEX0FVVEgKIwkJCQlEb24ndCByZXF1ZXN0IGNsaWVudCBjZXJ0aWZpY2F0ZXMK
IwkJCQlpbW1lZGlhdGVseSwgYnV0IHdhaXQgdW50aWwgYWNsIHByb2Nlc3NpbmcKIwkJCQlyZXF1
aXJlcyBhIGNlcnRpZmljYXRlIChub3QgeWV0IGltcGxlbWVudGVkKS4KIwkJCSAgICBOT19ERUZB
VUxUX0NBCiMJCQkJRG9uJ3QgdXNlIHRoZSBkZWZhdWx0IENBIGxpc3RzIGJ1aWx0IGluCiMJCQkJ
dG8gT3BlblNTTC4KIwkJCSAgICBOT19TRVNTSU9OX1JFVVNFCiMJCQkJRG9uJ3QgYWxsb3cgZm9y
IHNlc3Npb24gcmV1c2UuIEVhY2ggY29ubmVjdGlvbgojCQkJCXdpbGwgcmVzdWx0IGluIGEgbmV3
IFNTTCBzZXNzaW9uLgojCQkJICAgIFZFUklGWV9DUkwKIwkJCQlWZXJpZnkgQ1JMIGxpc3RzIHdo
ZW4gYWNjZXB0aW5nIGNsaWVudAojCQkJCWNlcnRpZmljYXRlcy4KIwkJCSAgICBWRVJJRllfQ1JM
X0FMTAojCQkJCVZlcmlmeSBDUkwgbGlzdHMgZm9yIGFsbCBjZXJ0aWZpY2F0ZXMgaW4gdGhlCiMJ
CQkJY2xpZW50IGNlcnRpZmljYXRlIGNoYWluLgojCiMJICAgc3NsY29udGV4dD0JU1NMIHNlc3Np
b24gSUQgY29udGV4dCBpZGVudGlmaWVyLgojCiMJICAgdnBvcnQJQWNjZWxlcmF0b3Igd2l0aCBJ
UCBiYXNlZCB2aXJ0dWFsIGhvc3Qgc3VwcG9ydC4KIwojCSAgIHZwb3J0PU5OCUFzIGFib3ZlLCBi
dXQgdXNlcyBzcGVjaWZpZWQgcG9ydCBudW1iZXIgcmF0aGVyCiMJCQl0aGFuIHRoZSBodHRwc19w
b3J0IG51bWJlci4gSW1wbGllcyBhY2NlbC4KIwojCSAgIG5hbWU9CVNwZWNpZmllcyBhIGludGVy
bmFsIG5hbWUgZm9yIHRoZSBwb3J0LiBEZWZhdWx0cyB0bwojCQkJdGhlIHBvcnQgc3BlY2lmaWNh
dGlvbiAocG9ydCBvciBhZGRyOnBvcnQpCiMKI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiB0Y3Bf
b3V0Z29pbmdfdG9zCiMJQWxsb3dzIHlvdSB0byBzZWxlY3QgYSBUT1MvRGlmZnNlcnYgdmFsdWUg
dG8gbWFyayBvdXRnb2luZwojCWNvbm5lY3Rpb25zIHdpdGgsIGJhc2VkIG9uIHRoZSB1c2VybmFt
ZSBvciBzb3VyY2UgYWRkcmVzcwojCW1ha2luZyB0aGUgcmVxdWVzdC4KIwojCXRjcF9vdXRnb2lu
Z190b3MgZHMtZmllbGQgWyFdYWNsbmFtZSAuLi4KIwojCUV4YW1wbGUgd2hlcmUgbm9ybWFsX3Nl
cnZpY2VfbmV0IHVzZXMgdGhlIFRPUyB2YWx1ZSAweDAwCiMJYW5kIGdvb2Rfc2VydmljZV9uZXQg
dXNlcyAweDIwCiMKIwlhY2wgbm9ybWFsX3NlcnZpY2VfbmV0IHNyYyAxMC4wLjAuMC8yNAojCWFj
bCBnb29kX3NlcnZpY2VfbmV0IHNyYyAxMC4wLjEuMC8yNAojCXRjcF9vdXRnb2luZ190b3MgMHgw
MCBub3JtYWxfc2VydmljZV9uZXQKIwl0Y3Bfb3V0Z29pbmdfdG9zIDB4MjAgZ29vZF9zZXJ2aWNl
X25ldAojCiMJVE9TL0RTQ1AgdmFsdWVzIHJlYWxseSBvbmx5IGhhdmUgbG9jYWwgc2lnbmlmaWNh
bmNlIC0gc28geW91IHNob3VsZAojCWtub3cgd2hhdCB5b3UncmUgc3BlY2lmeWluZy4gRm9yIG1v
cmUgaW5mb3JtYXRpb24sIHNlZSBSRkMyNDc0LAojCVJGQzI0NzUsIGFuZCBSRkMzMjYwLgojCiMJ
VGhlIFRPUy9EU0NQIGJ5dGUgbXVzdCBiZSBleGFjdGx5IHRoYXQgLSBhIG9jdGV0IHZhbHVlICAw
IC0gMjU1LCBvcgojCSJkZWZhdWx0IiB0byB1c2Ugd2hhdGV2ZXIgZGVmYXVsdCB5b3VyIGhvc3Qg
aGFzLiBOb3RlIHRoYXQgaW4KIwlwcmFjdGljZSBvZnRlbiBvbmx5IG11bHRpcGxlcyBvZiA0IGlz
IHVzYWJsZSBhcyB0aGUgdHdvIHJpZ2h0bW9zdCBiaXRzCiMJaGF2ZSBiZWVuIHJlZGVmaW5lZCBm
b3IgdXNlIGJ5IEVDTiAoUkZDIDMxNjggc2VjdGlvbiAyMy4xKS4KIwojCVByb2Nlc3NpbmcgcHJv
Y2VlZHMgaW4gdGhlIG9yZGVyIHNwZWNpZmllZCwgYW5kIHN0b3BzIGF0IGZpcnN0IGZ1bGx5CiMJ
bWF0Y2hpbmcgbGluZS4KIwojCU5vdGU6IFRoZSB1c2Ugb2YgdGhpcyBkaXJlY3RpdmUgdXNpbmcg
Y2xpZW50IGRlcGVuZGVudCBBQ0xzIGlzCiMJaW5jb21wYXRpYmxlIHdpdGggdGhlIHVzZSBvZiBz
ZXJ2ZXIgc2lkZSBwZXJzaXN0ZW50IGNvbm5lY3Rpb25zLiBUbwojCWVuc3VyZSBjb3JyZWN0IHJl
c3VsdHMgaXQgaXMgYmVzdCB0byBzZXQgc2VydmVyX3BlcnNpc3Rlbl9jb25uZWN0aW9ucwojCXRv
IG9mZiB3aGVuIHVzaW5nIHRoaXMgZGlyZWN0aXZlIGluIHN1Y2ggY29uZmlndXJhdGlvbnMuCiNE
ZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogY2xpZW50c2lkZV90b3MKIwlBbGxvd3MgeW91IHRvIHNl
bGVjdCBhIFRPUy9EaWZmc2VydiB2YWx1ZSB0byBtYXJrIGNsaWVudC1zaWRlCiMJY29ubmVjdGlv
bnMgd2l0aCwgYmFzZWQgb24gdGhlIHVzZXJuYW1lIG9yIHNvdXJjZSBhZGRyZXNzCiMJbWFraW5n
IHRoZSByZXF1ZXN0LgojRGVmYXVsdDoKIyBub25lCgojICBUQUc6IHFvc19mbG93cwojIE5vdGU6
IFRoaXMgb3B0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIGlmIFNxdWlkIGlzIHJlYnVpbHQgd2l0aCB0
aGUKIyAgICAgICAtLWVuYWJsZS16cGgtcW9zIG9wdGlvbgojCiMJQWxsb3dzIHlvdSB0byBzZWxl
Y3QgYSBUT1MvRFNDUCB2YWx1ZSB0byBtYXJrIG91dGdvaW5nCiMJY29ubmVjdGlvbnMgd2l0aCwg
YmFzZWQgb24gd2hlcmUgdGhlIHJlcGx5IHdhcyBzb3VyY2VkLgojCiMJVE9TIHZhbHVlcyByZWFs
bHkgb25seSBoYXZlIGxvY2FsIHNpZ25pZmljYW5jZSAtIHNvIHlvdSBzaG91bGQKIwlrbm93IHdo
YXQgeW91J3JlIHNwZWNpZnlpbmcuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgUkZDMjQ3NCwK
IwlSRkMyNDc1LCBhbmQgUkZDMzI2MC4KIwojCVRoZSBUT1MvRFNDUCBieXRlIG11c3QgYmUgZXhh
Y3RseSB0aGF0IC0gb2N0ZXQgdmFsdWUgMHgwMC0weEZGLgojCU5vdGUgdGhhdCBpbiBwcmFjdGlj
ZSBvZnRlbiBvbmx5IHZhbHVlcyB1cCB0byAweDNGIGFyZSB1c2FibGUKIwlhcyB0aGUgdHdvIGhp
Z2hlc3QgYml0cyBoYXZlIGJlZW4gcmVkZWZpbmVkIGZvciB1c2UgYnkgRUNOCiMJKFJGQzMxNjgp
LgojCiMJVGhpcyBzZXR0aW5nIGlzIGNvbmZpZ3VyZWQgYnkgc2V0dGluZyB0aGUgc291cmNlIFRP
UyB2YWx1ZXM6CiMKIwlsb2NhbC1oaXQ9MHhGRgkJVmFsdWUgdG8gbWFyayBsb2NhbCBjYWNoZSBo
aXRzLgojCiMJc2libGluZy1oaXQ9MHhGRglWYWx1ZSB0byBtYXJrIGhpdHMgZnJvbSBzaWJsaW5n
IHBlZXJzLgojCiMJcGFyZW50LWhpdD0weEZGCQlWYWx1ZSB0byBtYXJrIGhpdHMgZnJvbSBwYXJl
bnQgcGVlcnMuCiMKIwojCU5PVEU6ICdtaXNzJyBwcmVzZXJ2ZSBmZWF0dXJlIGlzIG9ubHkgcG9z
c2libGUgb24gTGludXggYXQgdGhpcyB0aW1lLgojCiMJRm9yIHRoZSBmb2xsb3dpbmcgdG8gd29y
ayBjb3JyZWN0bHksIHlvdSB3aWxsIG5lZWQgdG8gcGF0Y2ggeW91cgojCWxpbnV4IGtlcm5lbCB3
aXRoIHRoZSBUT1MgcHJlc2VydmluZyBaUEggcGF0Y2guCiMJVGhlIGtlcm5lbCBwYXRjaCBjYW4g
YmUgZG93bmxvYWRlZCBmcm9tIGh0dHA6Ly96cGguYnJhdGNoZWRhLm9yZwojCiMJZGlzYWJsZS1w
cmVzZXJ2ZS1taXNzCiMJCUJ5IGRlZmF1bHQsIHRoZSBleGlzdGluZyBUT1MgdmFsdWUgb2YgdGhl
IHJlc3BvbnNlIGNvbWluZwojCQlmcm9tIHRoZSByZW1vdGUgc2VydmVyIHdpbGwgYmUgcmV0YWlu
ZWQgYW5kIG1hc2tlZCB3aXRoCiMJCW1pc3MtbWFyay4gVGhpcyBvcHRpb24gZGlzYWJsZXMgdGhh
dCBmZWF0dXJlLgojCiMJbWlzcy1tYXNrPTB4RkYKIwkJQWxsb3dzIHlvdSB0byBtYXNrIGNlcnRh
aW4gYml0cyBpbiB0aGUgVE9TIHJlY2VpdmVkIGZyb20gdGhlCiMJCXJlbW90ZSBzZXJ2ZXIsIGJl
Zm9yZSBjb3B5aW5nIHRoZSB2YWx1ZSB0byB0aGUgVE9TIHNlbnQKIwkJdG93YXJkcyBjbGllbnRz
LgojCQlEZWZhdWx0OiAweEZGIChUT1MgZnJvbSBzZXJ2ZXIgaXMgbm90IGNoYW5nZWQpLgojCiNE
ZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogdGNwX291dGdvaW5nX2FkZHJlc3MKIwlBbGxvd3MgeW91
IHRvIG1hcCByZXF1ZXN0cyB0byBkaWZmZXJlbnQgb3V0Z29pbmcgSVAgYWRkcmVzc2VzCiMJYmFz
ZWQgb24gdGhlIHVzZXJuYW1lIG9yIHNvdXJjZSBhZGRyZXNzIG9mIHRoZSB1c2VyIG1ha2luZwoj
CXRoZSByZXF1ZXN0LgojCiMJdGNwX291dGdvaW5nX2FkZHJlc3MgaXBhZGRyIFtbIV1hY2xuYW1l
XSAuLi4KIwojCUV4YW1wbGUgd2hlcmUgcmVxdWVzdHMgZnJvbSAxMC4wLjAuMC8yNCB3aWxsIGJl
IGZvcndhcmRlZAojCXdpdGggc291cmNlIGFkZHJlc3MgMTAuMS4wLjEsIDEwLjAuMi4wLzI0IGZv
cndhcmRlZCB3aXRoCiMJc291cmNlIGFkZHJlc3MgMTAuMS4wLjIgYW5kIHRoZSByZXN0IHdpbGwg
YmUgZm9yd2FyZGVkIHdpdGgKIwlzb3VyY2UgYWRkcmVzcyAxMC4xLjAuMy4KIwojCWFjbCBub3Jt
YWxfc2VydmljZV9uZXQgc3JjIDEwLjAuMC4wLzI0CiMJYWNsIGdvb2Rfc2VydmljZV9uZXQgc3Jj
IDEwLjAuMi4wLzI0CiMJdGNwX291dGdvaW5nX2FkZHJlc3MgMTAuMS4wLjEgbm9ybWFsX3NlcnZp
Y2VfbmV0CiMJdGNwX291dGdvaW5nX2FkZHJlc3MgMTAuMS4wLjIgZ29vZF9zZXJ2aWNlX25ldAoj
CXRjcF9vdXRnb2luZ19hZGRyZXNzIDEwLjEuMC4zCiMKIwlQcm9jZXNzaW5nIHByb2NlZWRzIGlu
IHRoZSBvcmRlciBzcGVjaWZpZWQsIGFuZCBzdG9wcyBhdCBmaXJzdCBmdWxseQojCW1hdGNoaW5n
IGxpbmUuCiMKIwlOb3RlOiBUaGUgdXNlIG9mIHRoaXMgZGlyZWN0aXZlIHVzaW5nIGNsaWVudCBk
ZXBlbmRlbnQgQUNMcyBpcwojCWluY29tcGF0aWJsZSB3aXRoIHRoZSB1c2Ugb2Ygc2VydmVyIHNp
ZGUgcGVyc2lzdGVudCBjb25uZWN0aW9ucy4gVG8KIwllbnN1cmUgY29ycmVjdCByZXN1bHRzIGl0
IGlzIGJlc3QgdG8gc2V0IHNlcnZlcl9wZXJzaXN0ZW50X2Nvbm5lY3Rpb25zCiMJdG8gb2ZmIHdo
ZW4gdXNpbmcgdGhpcyBkaXJlY3RpdmUgaW4gc3VjaCBjb25maWd1cmF0aW9ucy4KIwojCiMgICAg
ICAgIElQdjYgTWFnaWM6CiMKIwlTcXVpZCBpcyBidWlsdCB3aXRoIGEgY2FwYWJpbGl0eSBvZiBi
cmlkZ2luZyB0aGUgSVB2NCBhbmQgSVB2NiAKIwlpbnRlcm5ldHMuCiMJdGNwX291dGdvaW5nX2Fk
ZHJlc3MgYXMgZXhhbXBsZWQgYWJvdmUgYnJlYWtzIHRoaXMgYnJpZGdpbmcgYnkgZm9yY2luZwoj
CWFsbCBvdXRib3VuZCB0cmFmZmljIHRocm91Z2ggYSBjZXJ0YWluIElQdjQgd2hpY2ggbWF5IGJl
IG9uIHRoZSB3cm9uZwojCXNpZGUgb2YgdGhlIElQdjQvSVB2NiBib3VuZGFyeS4KIwojCVRvIG9w
ZXJhdGUgd2l0aCB0Y3Bfb3V0Z29pbmdfYWRkcmVzcyBhbmQga2VlcCB0aGUgYnJpZGdpbmcgYmVu
ZWZpdHMKIwlhbiBhZGRpdGlvbmFsIEFDTCBuZWVkcyB0byBiZSB1c2VkIHdoaWNoIGVuc3VyZXMg
dGhlIElQdjYtYm91bmQgdHJhZmZpYwojCWlzIG5ldmVyIGZvcmNlZCBvciBwZXJtaXR0ZWQgb3V0
IHRoZSBJUHY0IGludGVyZmFjZS4KIwojCSMgSVB2NiBkZXN0aW5hdGlvbiB0ZXN0IGFsb25nIHdp
dGggYSBkdW1teSBhY2Nlc3MgY29udHJvbCB0byBwZXJvZnJtIHRoZSByZXF1aXJlZCBETlMKIwkj
IFRoaXMgTVVTVCBiZSBwbGFjZSBiZWZvcmUgYW55IEFMTE9XIHJ1bGVzLgojCWFjbCB0b19pcHY2
IGRzdCBpcHY2CiMJaHR0cF9hY2Nlc3MgZGVueSBpcHY2ICFhbGwKIwojCXRjcF9vdXRnb2luZ19h
ZGRyZXNzIDIwMDE6ZGI4OjpjMDAxIGdvb2Rfc2VydmljZV9uZXQgdG9faXB2NgojCXRjcF9vdXRn
b2luZ19hZGRyZXNzIDEwLjEuMC4yIGdvb2Rfc2VydmljZV9uZXQgIXRvX2lwdjYKIwojCXRjcF9v
dXRnb2luZ19hZGRyZXNzIDIwMDE6ZGI4OjpiZWVmIG5vcm1hbF9zZXJ2aWNlX25ldCB0b19pcHY2
CiMJdGNwX291dGdvaW5nX2FkZHJlc3MgMTAuMS4wLjEgbm9ybWFsX3NlcnZpY2VfbmV0ICF0b19p
cHY2CiMKIwl0Y3Bfb3V0Z29pbmdfYWRkcmVzcyAyMDAxOmRiODo6MSB0b19pcHY2CiMJdGNwX291
dGdvaW5nX2FkZHJlc3MgMTAuMS4wLjMgIXRvX2lwdjYKIwojCVdBUk5JTkc6CiMJICAnZHN0IGlw
djYnIGJhc2VzIGl0cyBzZWxlY3Rpb24gYXNzdW1pbmcgRElSRUNUIGFjY2Vzcy4KIwkgIElmIHBl
ZXJzIGFyZSB1c2VkIHRoZSBwZWVybmFtZSBBQ0wgYXJlIG5lZWRlZCB0byBzZWxlY3Qgb3V0Z29p
bmcKIwkgIGFkZHJlc3Mgd2hpY2ggY2FuIGxpbmsgdG8gdGhlIHBlZXIuCiMKIwkgICdkc3QgaXB2
NicgaXMgYSBzbG93IEFDTC4gSXQgd2lsbCBvbmx5IHdvcmsgaGVyZSBpZiAnZHN0JyBpcyB1c2Vk
CiMJICBwcmV2aW91c2x5IGluIHRoZSBodHRwX2FjY2VzcyBydWxlcyB0byBsb2NhdGUgdGhlIGRl
c3RpbmF0aW9uIElQLgojCSAgU29tZSBtb3JlIG1hZ2ljIG1heSBiZSBuZWVkZWQgZm9yIHRoYXQ6
CiMJICAgIGh0dHBfYWNjZXNzIGFsbG93IHRvX2lwdjYgIWFsbAojCSAgKG1lYW5pbmcsIGFsbG93
IGlmIHRvIElQdjYgYnV0IG5vdCBmcm9tIGFueXdoZXJlIDspCiMKI0RlZmF1bHQ6CiMgbm9uZQoK
IyBTU0wgT1BUSU9OUwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6IHNzbF91bmNsZWFu
X3NodXRkb3duCiMJU29tZSBicm93c2VycyAoZXNwZWNpYWxseSBNU0lFKSBidWdzIG91dCBvbiBT
U0wgc2h1dGRvd24KIwltZXNzYWdlcy4KI0RlZmF1bHQ6CiMgc3NsX3VuY2xlYW5fc2h1dGRvd24g
b2ZmCgojICBUQUc6IHNzbF9lbmdpbmUKIwlUaGUgT3BlblNTTCBlbmdpbmUgdG8gdXNlLiBZb3Ug
d2lsbCBuZWVkIHRvIHNldCB0aGlzIGlmIHlvdQojCXdvdWxkIGxpa2UgdG8gdXNlIGhhcmR3YXJl
IFNTTCBhY2NlbGVyYXRpb24gZm9yIGV4YW1wbGUuCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzog
c3NscHJveHlfY2xpZW50X2NlcnRpZmljYXRlCiMJQ2xpZW50IFNTTCBDZXJ0aWZpY2F0ZSB0byB1
c2Ugd2hlbiBwcm94eWluZyBodHRwczovLyBVUkxzCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzog
c3NscHJveHlfY2xpZW50X2tleQojCUNsaWVudCBTU0wgS2V5IHRvIHVzZSB3aGVuIHByb3h5aW5n
IGh0dHBzOi8vIFVSTHMKI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBzc2xwcm94eV92ZXJzaW9u
CiMJU1NMIHZlcnNpb24gbGV2ZWwgdG8gdXNlIHdoZW4gcHJveHlpbmcgaHR0cHM6Ly8gVVJMcwoj
RGVmYXVsdDoKIyBzc2xwcm94eV92ZXJzaW9uIDEKCiMgIFRBRzogc3NscHJveHlfb3B0aW9ucwoj
CVNTTCBlbmdpbmUgb3B0aW9ucyB0byB1c2Ugd2hlbiBwcm94eWluZyBodHRwczovLyBVUkxzCiMJ
CiMJVGhlIG1vc3QgaW1wb3J0YW50IGJlaW5nOgojCiMJCU5PX1NTTHYyICBEaXNhbGxvdyB0aGUg
dXNlIG9mIFNTTHYyCiMJCU5PX1NTTHYzICBEaXNhbGxvdyB0aGUgdXNlIG9mIFNTTHYzCiMJCU5P
X1RMU3YxICBEaXNhbGxvdyB0aGUgdXNlIG9mIFRMU3YxCiMJCVNJTkdMRV9ESF9VU0UKIwkJCUFs
d2F5cyBjcmVhdGUgYSBuZXcga2V5IHdoZW4gdXNpbmcKIwkJCXRlbXBvcmFyeS9lcGhlbWVyYWwg
REgga2V5IGV4Y2hhbmdlcwojCQojCVRoZXNlIG9wdGlvbnMgdmFyeSBkZXBlbmRpbmcgb24geW91
ciBTU0wgZW5naW5lLgojCVNlZSB0aGUgT3BlblNTTCBTU0xfQ1RYX3NldF9vcHRpb25zIGRvY3Vt
ZW50YXRpb24gZm9yIGEKIwljb21wbGV0ZSBsaXN0IG9mIHBvc3NpYmxlIG9wdGlvbnMuCiNEZWZh
dWx0OgojIG5vbmUKCiMgIFRBRzogc3NscHJveHlfY2lwaGVyCiMJU1NMIGNpcGhlciBsaXN0IHRv
IHVzZSB3aGVuIHByb3h5aW5nIGh0dHBzOi8vIFVSTHMKIwojCUNvbG9uIHNlcGFyYXRlZCBsaXN0
IG9mIHN1cHBvcnRlZCBjaXBoZXJzLgojRGVmYXVsdDoKIyBub25lCgojICBUQUc6IHNzbHByb3h5
X2NhZmlsZQojCWZpbGUgY29udGFpbmluZyBDQSBjZXJ0aWZpY2F0ZXMgdG8gdXNlIHdoZW4gdmVy
aWZ5aW5nIHNlcnZlcgojCWNlcnRpZmljYXRlcyB3aGlsZSBwcm94eWluZyBodHRwczovLyBVUkxz
CiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogc3NscHJveHlfY2FwYXRoCiMJZGlyZWN0b3J5IGNv
bnRhaW5pbmcgQ0EgY2VydGlmaWNhdGVzIHRvIHVzZSB3aGVuIHZlcmlmeWluZwojCXNlcnZlciBj
ZXJ0aWZpY2F0ZXMgd2hpbGUgcHJveHlpbmcgaHR0cHM6Ly8gVVJMcwojRGVmYXVsdDoKIyBub25l
CgojICBUQUc6IHNzbF9idW1wCiMJVGhpcyBBQ0wgY29udHJvbHMgd2hpY2ggQ09OTkVDVCByZXF1
ZXN0cyB0byBhbiBodHRwX3BvcnQKIwltYXJrZWQgd2l0aCBhbiBzc2xCdW1wIGZsYWcgYXJlIGFj
dHVhbGx5ICJidW1wZWQiLiBQbGVhc2UgCiMJc2VlIHRoZSBzc2xCdW1wIGZsYWcgb2YgYW4gaHR0
cF9wb3J0IG9wdGlvbiBmb3IgbW9yZSBkZXRhaWxzCiMJYWJvdXQgZGVjb2RpbmcgcHJveGllZCBT
U0wgY29ubmVjdGlvbnMuCiMKIwlCeSBkZWZhdWx0LCBubyByZXF1ZXN0cyBhcmUgYnVtcGVkLgoj
CiMJU2VlIGFsc286IGh0dHBfcG9ydCBzc2xCdW1wCiMgICAKIwlUaGlzIGNsYXVzZSBvbmx5IHN1
cHBvcnRzIGZhc3QgYWNsIHR5cGVzLgojCVNlZSBodHRwOi8vd2lraS5zcXVpZC1jYWNoZS5vcmcv
U3F1aWRGYXEvU3F1aWRBY2wgZm9yIGRldGFpbHMuCiMKIwojCSMgRXhhbXBsZTogQnVtcCBhbGwg
cmVxdWVzdHMgZXhjZXB0IHRob3NlIG9yaWdpbmF0aW5nIGZyb20gbG9jYWxob3N0IGFuZCAKIwkj
IHRob3NlIGdvaW5nIHRvIHdlYmF4LmNvbSBvciBleGFtcGxlLmNvbSBzaXRlcy4KIwojCWFjbCBs
b2NhbGhvc3Qgc3JjIDEyNy4wLjAuMS8zMgojCWFjbCBicm9rZW5fc2l0ZXMgZHN0ZG9tYWluIC53
ZWJheC5jb20KIwlhY2wgYnJva2VuX3NpdGVzIGRzdGRvbWFpbiAuZXhhbXBsZS5jb20KIwlzc2xf
YnVtcCBkZW55IGxvY2FsaG9zdAojCXNzbF9idW1wIGRlbnkgYnJva2VuX3NpdGVzCiMJc3NsX2J1
bXAgYWxsb3cgYWxsCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogc3NscHJveHlfZmxhZ3MKIwlW
YXJpb3VzIGZsYWdzIG1vZGlmeWluZyB0aGUgdXNlIG9mIFNTTCB3aGlsZSBwcm94eWluZyBodHRw
czovLyBVUkxzOgojCSAgICBET05UX1ZFUklGWV9QRUVSCUFjY2VwdCBjZXJ0aWZpY2F0ZXMgdGhh
dCBmYWlsIHZlcmlmaWNhdGlvbi4KIwkJCQlGb3IgcmVmaW5lZCBjb250cm9sLCBzZWUgc3NscHJv
eHlfY2VydF9lcnJvci4KIwkgICAgTk9fREVGQVVMVF9DQQlEb24ndCB1c2UgdGhlIGRlZmF1bHQg
Q0EgbGlzdCBidWlsdCBpbgojCQkJCXRvIE9wZW5TU0wuCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRB
Rzogc3NscHJveHlfY2VydF9lcnJvcgojCVVzZSB0aGlzIEFDTCB0byBieXBhc3Mgc2VydmVyIGNl
cnRpZmljYXRlIHZhbGlkYXRpb24gZXJyb3JzLgojCiMJRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dp
bmcgbGluZXMgd2lsbCBieXBhc3MgYWxsIHZhbGlkYXRpb24gZXJyb3JzCiMJd2hlbiB0YWxraW5n
IHRvIHNlcnZlcnMgbG9jYXRlZCBhdCAxNzIuMTYuMC4wLzE2LiBBbGwgb3RoZXIKIwl2YWxpZGF0
aW9uIGVycm9ycyB3aWxsIHJlc3VsdCBpbiBFUlJfU0VDVVJFX0NPTk5FQ1RfRkFJTCBlcnJvci4K
IwojCQlhY2wgQnJva2VuU2VydmVyc0F0VHJ1c3RlZElQIGRzdCAxNzIuMTYuMC4wLzE2CiMJCXNz
bHByb3h5X2NlcnRfZXJyb3IgYWxsb3cgQnJva2VuU2VydmVyc0F0VHJ1c3RlZElQCiMJCXNzbHBy
b3h5X2NlcnRfZXJyb3IgZGVueSBhbGwKIwojCVRoaXMgY2xhdXNlIG9ubHkgc3VwcG9ydHMgZmFz
dCBhY2wgdHlwZXMuCiMJU2VlIGh0dHA6Ly93aWtpLnNxdWlkLWNhY2hlLm9yZy9TcXVpZEZhcS9T
cXVpZEFjbCBmb3IgZGV0YWlscy4KIwlVc2luZyBzbG93IGFjbCB0eXBlcyBtYXkgcmVzdWx0IGlu
IHNlcnZlciBjcmFzaGVzCiMKIwlXaXRob3V0IHRoaXMgb3B0aW9uLCBhbGwgc2VydmVyIGNlcnRp
ZmljYXRlIHZhbGlkYXRpb24gZXJyb3JzCiMJdGVybWluYXRlIHRoZSB0cmFuc2FjdGlvbi4gQnlw
YXNzaW5nIHZhbGlkYXRpb24gZXJyb3JzIGlzIGRhbmdlcm91cwojCWJlY2F1c2UgYW4gZXJyb3Ig
dXN1YWxseSBpbXBsaWVzIHRoYXQgdGhlIHNlcnZlciBjYW5ub3QgYmUgdHJ1c3RlZCBhbmQKIwl0
aGUgY29ubmVjdGlvbiBtYXkgYmUgaW5zZWN1cmUuCiMKIwlTZWUgYWxzbzogc3NscHJveHlfZmxh
Z3MgYW5kIERPTlRfVkVSSUZZX1BFRVIuCiMKIwlEZWZhdWx0IHNldHRpbmc6ICBzc2xwcm94eV9j
ZXJ0X2Vycm9yIGRlbnkgYWxsCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogc3NscGFzc3dvcmRf
cHJvZ3JhbQojCVNwZWNpZnkgYSBwcm9ncmFtIHVzZWQgZm9yIGVudGVyaW5nIFNTTCBrZXkgcGFz
c3BocmFzZXMKIwl3aGVuIHVzaW5nIGVuY3J5cHRlZCBTU0wgY2VydGlmaWNhdGUga2V5cy4gSWYg
bm90IHNwZWNpZmllZAojCWtleXMgbXVzdCBlaXRoZXIgYmUgdW5lbmNyeXB0ZWQsIG9yIFNxdWlk
IHN0YXJ0ZWQgd2l0aCB0aGUgLU4KIwlvcHRpb24gdG8gYWxsb3cgaXQgdG8gcXVlcnkgaW50ZXJh
Y3RpdmVseSBmb3IgdGhlIHBhc3NwaHJhc2UuCiMKIwlUaGUga2V5IGZpbGUgbmFtZSBpcyBnaXZl
biBhcyBhcmd1bWVudCB0byB0aGUgcHJvZ3JhbSBhbGxvd2luZwojCXNlbGVjdGlvbiBvZiB0aGUg
cmlnaHQgcGFzc3dvcmQgaWYgeW91IGhhdmUgbXVsdGlwbGUgZW5jcnlwdGVkCiMJa2V5cy4KI0Rl
ZmF1bHQ6CiMgbm9uZQoKIyBPUFRJT05TIFdISUNIIEFGRkVDVCBUSEUgTkVJR0hCT1IgU0VMRUNU
SU9OIEFMR09SSVRITQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6IGNhY2hlX3BlZXIK
IwlUbyBzcGVjaWZ5IG90aGVyIGNhY2hlcyBpbiBhIGhpZXJhcmNoeSwgdXNlIHRoZSBmb3JtYXQ6
CiMJCiMJCWNhY2hlX3BlZXIgaG9zdG5hbWUgdHlwZSBodHRwLXBvcnQgaWNwLXBvcnQgW29wdGlv
bnNdCiMJCiMJRm9yIGV4YW1wbGUsCiMJCiMJIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcm94eSAgaWNwCiMJIyAgICAgICAgICBob3N0bmFtZSAgICAgICAgICAgICB0
eXBlICAgICBwb3J0ICAgcG9ydCAgb3B0aW9ucwojCSMgICAgICAgICAgLS0tLS0tLS0tLS0tLS0t
LS0tLS0gLS0tLS0tLS0gLS0tLS0gLS0tLS0gIC0tLS0tLS0tLS0tCiMJY2FjaGVfcGVlciBwYXJl
bnQuZm9vLm5ldCAgICAgICBwYXJlbnQgICAgMzEyOCAgMzEzMCAgZGVmYXVsdAojCWNhY2hlX3Bl
ZXIgc2liMS5mb28ubmV0ICAgICAgICAgc2libGluZyAgIDMxMjggIDMxMzAgIHByb3h5LW9ubHkK
IwljYWNoZV9wZWVyIHNpYjIuZm9vLm5ldCAgICAgICAgIHNpYmxpbmcgICAzMTI4ICAzMTMwICBw
cm94eS1vbmx5CiMJY2FjaGVfcGVlciBleGFtcGxlLmNvbSAgICAgICAgICBwYXJlbnQgICAgODAg
ICAgICAgMCAgbm8tcXVlcnkgZGVmYXVsdAojCWNhY2hlX3BlZXIgY2RuLmV4YW1wbGUuY29tICAg
ICAgc2libGluZyAgIDMxMjggICAgIDAgIAojCQojCSAgICAgIHR5cGU6CWVpdGhlciAncGFyZW50
JywgJ3NpYmxpbmcnLCBvciAnbXVsdGljYXN0Jy4KIwkKIwlwcm94eS1wb3J0OglUaGUgcG9ydCBu
dW1iZXIgd2hlcmUgdGhlIHBlZXIgYWNjZXB0IEhUVFAgcmVxdWVzdHMuCiMJCQlGb3Igb3RoZXIg
U3F1aWQgcHJveGllcyB0aGlzIGlzIHVzdWFsbHkgMzEyOAojCQkJRm9yIHdlYiBzZXJ2ZXJzIHRo
aXMgaXMgdXN1YWxseSA4MAojCQojCSAgaWNwLXBvcnQ6CVVzZWQgZm9yIHF1ZXJ5aW5nIG5laWdo
Ym9yIGNhY2hlcyBhYm91dCBvYmplY3RzLgojCQkJU2V0IHRvIDAgaWYgdGhlIHBlZXIgZG9lcyBu
b3Qgc3VwcG9ydCBJQ1Agb3IgSFRDUC4KIwkJCVNlZSBJQ1AgYW5kIEhUQ1Agb3B0aW9ucyBiZWxv
dyBmb3IgYWRkaXRpb25hbCBkZXRhaWxzLgojCQojCQojCT09PT0gSUNQIE9QVElPTlMgPT09PQoj
CQojCVlvdSBNVVNUIGFsc28gc2V0IGljcF9wb3J0IGFuZCBpY3BfYWNjZXNzIGV4cGxpY2l0bHkg
d2hlbiB1c2luZyB0aGVzZSBvcHRpb25zLgojCVRoZSBkZWZhdWx0cyB3aWxsIHByZXZlbnQgcGVl
ciB0cmFmZmljIHVzaW5nIElDUC4KIwkKIwkKIwluby1xdWVyeQlEaXNhYmxlIElDUCBxdWVyaWVz
IHRvIHRoaXMgbmVpZ2hib3IuCiMJCiMJbXVsdGljYXN0LXJlc3BvbmRlcgojCQkJSW5kaWNhdGVz
IHRoZSBuYW1lZCBwZWVyIGlzIGEgbWVtYmVyIG9mIGEgbXVsdGljYXN0IGdyb3VwLgojCQkJSUNQ
IHF1ZXJpZXMgd2lsbCBub3QgYmUgc2VudCBkaXJlY3RseSB0byB0aGUgcGVlciwgYnV0IElDUAoj
CQkJcmVwbGllcyB3aWxsIGJlIGFjY2VwdGVkIGZyb20gaXQuCiMJCiMJY2xvc2VzdC1vbmx5CUlu
ZGljYXRlcyB0aGF0LCBmb3IgSUNQX09QX01JU1MgcmVwbGllcywgd2UnbGwgb25seSBmb3J3YXJk
CiMJCQlDTE9TRVNUX1BBUkVOVF9NSVNTZXMgYW5kIG5ldmVyIEZJUlNUX1BBUkVOVF9NSVNTZXMu
CiMJCiMJYmFja2dyb3VuZC1waW5nCiMJCQlUbyBvbmx5IHNlbmQgSUNQIHF1ZXJpZXMgdG8gdGhp
cyBuZWlnaGJvciBpbmZyZXF1ZW50bHkuCiMJCQlUaGlzIGlzIHVzZWQgdG8ga2VlcCB0aGUgbmVp
Z2hib3Igcm91bmQgdHJpcCB0aW1lIHVwZGF0ZWQKIwkJCWFuZCBpcyB1c3VhbGx5IHVzZWQgaW4g
Y29uanVuY3Rpb24gd2l0aCB3ZWlnaHRlZC1yb3VuZC1yb2Jpbi4KIwkKIwkKIwk9PT09IEhUQ1Ag
T1BUSU9OUyA9PT09CiMJCiMJWW91IE1VU1QgYWxzbyBzZXQgaHRjcF9wb3J0IGFuZCBodGNwX2Fj
Y2VzcyBleHBsaWNpdGx5IHdoZW4gdXNpbmcgdGhlc2Ugb3B0aW9ucy4KIwlUaGUgZGVmYXVsdHMg
d2lsbCBwcmV2ZW50IHBlZXIgdHJhZmZpYyB1c2luZyBIVENQLgojCQojCQojCWh0Y3AJCVNlbmQg
SFRDUCwgaW5zdGVhZCBvZiBJQ1AsIHF1ZXJpZXMgdG8gdGhlIG5laWdoYm9yLgojCQkJWW91IHBy
b2JhYmx5IGFsc28gd2FudCB0byBzZXQgdGhlICJpY3AtcG9ydCIgdG8gNDgyNwojCQkJaW5zdGVh
ZCBvZiAzMTMwLgojCQojCWh0Y3Atb2xkc3F1aWQJU2VuZCBIVENQIHRvIG9sZCBTcXVpZCB2ZXJz
aW9ucy4KIwkKIwlodGNwLW5vLWNscglTZW5kIEhUQ1AgdG8gdGhlIG5laWdoYm9yIGJ1dCB3aXRo
b3V0CiMJCQlzZW5kaW5nIGFueSBDTFIgcmVxdWVzdHMuICBUaGlzIGNhbm5vdCBiZSB1c2VkIHdp
dGgKIwkJCWh0Y3Atb25seS1jbHIuCiMJCiMJaHRjcC1vbmx5LWNscglTZW5kIEhUQ1AgdG8gdGhl
IG5laWdoYm9yIGJ1dCBPTkxZIENMUiByZXF1ZXN0cy4KIwkJCVRoaXMgY2Fubm90IGJlIHVzZWQg
d2l0aCBodGNwLW5vLWNsci4KIwkKIwlodGNwLW5vLXB1cmdlLWNscgojCQkJU2VuZCBIVENQIHRv
IHRoZSBuZWlnaGJvciBpbmNsdWRpbmcgQ0xScyBidXQgb25seSB3aGVuCiMJCQl0aGV5IGRvIG5v
dCByZXN1bHQgZnJvbSBQVVJHRSByZXF1ZXN0cy4KIwkKIwlodGNwLWZvcndhcmQtY2xyCiMJCQlG
b3J3YXJkIGFueSBIVENQIENMUiByZXF1ZXN0cyB0aGlzIHByb3h5IHJlY2VpdmVzIHRvIHRoZSBw
ZWVyLgojCQojCQojCT09PT0gUEVFUiBTRUxFQ1RJT04gTUVUSE9EUyA9PT09CiMJCiMJVGhlIGRl
ZmF1bHQgcGVlciBzZWxlY3Rpb24gbWV0aG9kIGlzIElDUCwgd2l0aCB0aGUgZmlyc3QgcmVzcG9u
ZGluZyBwZWVyCiMJYmVpbmcgdXNlZCBhcyBzb3VyY2UuIFRoZXNlIG9wdGlvbnMgY2FuIGJlIHVz
ZWQgZm9yIGJldHRlciBsb2FkIGJhbGFuY2luZy4KIwkKIwkKIwlkZWZhdWx0CQlUaGlzIGlzIGEg
cGFyZW50IGNhY2hlIHdoaWNoIGNhbiBiZSB1c2VkIGFzIGEgImxhc3QtcmVzb3J0IgojCQkJaWYg
YSBwZWVyIGNhbm5vdCBiZSBsb2NhdGVkIGJ5IGFueSBvZiB0aGUgcGVlci1zZWxlY3Rpb24gbWV0
aG9kcy4KIwkJCUlmIHNwZWNpZmllZCBtb3JlIHRoYW4gb25jZSwgb25seSB0aGUgZmlyc3QgaXMg
dXNlZC4KIwkKIwlyb3VuZC1yb2JpbglMb2FkLUJhbGFuY2UgcGFyZW50cyB3aGljaCBzaG91bGQg
YmUgdXNlZCBpbiBhIHJvdW5kLXJvYmluCiMJCQlmYXNoaW9uIGluIHRoZSBhYnNlbmNlIG9mIGFu
eSBJQ1AgcXVlcmllcy4KIwkJCXdlaWdodD1OIGNhbiBiZSB1c2VkIHRvIGFkZCBiaWFzLgojCQoj
CXdlaWdodGVkLXJvdW5kLXJvYmluCiMJCQlMb2FkLUJhbGFuY2UgcGFyZW50cyB3aGljaCBzaG91
bGQgYmUgdXNlZCBpbiBhIHJvdW5kLXJvYmluCiMJCQlmYXNoaW9uIHdpdGggdGhlIGZyZXF1ZW5j
eSBvZiBlYWNoIHBhcmVudCBiZWluZyBiYXNlZCBvbiB0aGUKIwkJCXJvdW5kIHRyaXAgdGltZS4g
Q2xvc2VyIHBhcmVudHMgYXJlIHVzZWQgbW9yZSBvZnRlbi4KIwkJCVVzdWFsbHkgdXNlZCBmb3Ig
YmFja2dyb3VuZC1waW5nIHBhcmVudHMuCiMJCQl3ZWlnaHQ9TiBjYW4gYmUgdXNlZCB0byBhZGQg
Ymlhcy4KIwkKIwljYXJwCQlMb2FkLUJhbGFuY2UgcGFyZW50cyB3aGljaCBzaG91bGQgYmUgdXNl
ZCBhcyBhIENBUlAgYXJyYXkuCiMJCQlUaGUgcmVxdWVzdHMgd2lsbCBiZSBkaXN0cmlidXRlZCBh
bW9uZyB0aGUgcGFyZW50cyBiYXNlZCBvbiB0aGUKIwkJCUNBUlAgbG9hZCBiYWxhbmNpbmcgaGFz
aCBmdW5jdGlvbiBiYXNlZCBvbiB0aGVpciB3ZWlnaHQuCiMJCiMJdXNlcmhhc2gJTG9hZC1iYWxh
bmNlIHBhcmVudHMgYmFzZWQgb24gdGhlIGNsaWVudCBwcm94eV9hdXRoIG9yIGlkZW50IHVzZXJu
YW1lLgojCQojCXNvdXJjZWhhc2gJTG9hZC1iYWxhbmNlIHBhcmVudHMgYmFzZWQgb24gdGhlIGNs
aWVudCBzb3VyY2UgSVAuCiMKIwltdWx0aWNhc3Qtc2libGluZ3MKIwkJCVRvIGJlIHVzZWQgb25s
eSBmb3IgY2FjaGUgcGVlcnMgb2YgdHlwZSAibXVsdGljYXN0Ii4KIwkJCUFMTCBtZW1iZXJzIG9m
IHRoaXMgbXVsdGljYXN0IGdyb3VwIGhhdmUgInNpYmxpbmciCiMJCQlyZWxhdGlvbnNoaXAgd2l0
aCBpdCwgbm90ICJwYXJlbnQiLiAgVGhpcyBpcyB0byBhIG11bGljYXN0CiMJCQlncm91cCB3aGVu
IHRoZSByZXF1ZXN0ZWQgb2JqZWN0IHdvdWxkIGJlIGZldGNoZWQgb25seSBmcm9tCiMJCQlhICJw
YXJlbnQiIGNhY2hlLCBhbnl3YXkuICBJdCdzIHVzZWZ1bCwgZS5nLiwgd2hlbgojCQkJY29uZmln
dXJpbmcgYSBwb29sIG9mIHJlZHVuZGFudCBTcXVpZCBwcm94aWVzLCBiZWluZwojCQkJbWVtYmVy
cyBvZiB0aGUgc2FtZSBtdWx0aWNhc3QgZ3JvdXAuCiMJCiMJCiMJPT09PSBQRUVSIFNFTEVDVElP
TiBPUFRJT05TID09PT0KIwkKIwl3ZWlnaHQ9Tgl1c2UgdG8gYWZmZWN0IHRoZSBzZWxlY3Rpb24g
b2YgYSBwZWVyIGR1cmluZyBhbnkgd2VpZ2h0ZWQKIwkJCXBlZXItc2VsZWN0aW9uIG1lY2hhbmlz
bXMuCiMJCQlUaGUgd2VpZ2h0IG11c3QgYmUgYW4gaW50ZWdlcjsgZGVmYXVsdCBpcyAxLAojCQkJ
bGFyZ2VyIHdlaWdodHMgYXJlIGZhdm9yZWQgbW9yZS4KIwkJCVRoaXMgb3B0aW9uIGRvZXMgbm90
IGFmZmVjdCBwYXJlbnQgc2VsZWN0aW9uIGlmIGEgcGVlcmluZwojCQkJcHJvdG9jb2wgaXMgbm90
IGluIHVzZS4KIwkKIwliYXNldGltZT1OCVNwZWNpZnkgYSBiYXNlIGFtb3VudCB0byBiZSBzdWJ0
cmFjdGVkIGZyb20gcm91bmQgdHJpcAojCQkJdGltZXMgb2YgcGFyZW50cy4KIwkJCUl0IGlzIHN1
YnRyYWN0ZWQgYmVmb3JlIGRpdmlzaW9uIGJ5IHdlaWdodCBpbiBjYWxjdWxhdGluZwojCQkJd2hp
Y2ggcGFyZW50IHRvIGZlY3RjaCBmcm9tLiBJZiB0aGUgcnR0IGlzIGxlc3MgdGhhbiB0aGUKIwkJ
CWJhc2UgdGltZSB0aGUgcnR0IGlzIHNldCB0byBhIG1pbmltYWwgdmFsdWUuCiMJCiMJdHRsPU4J
CVNwZWNpZnkgYSBUVEwgdG8gdXNlIHdoZW4gc2VuZGluZyBtdWx0aWNhc3QgSUNQIHF1ZXJpZXMK
IwkJCXRvIHRoaXMgYWRkcmVzcy4KIwkJCU9ubHkgdXNlZnVsIHdoZW4gc2VuZGluZyB0byBhIG11
bHRpY2FzdCBncm91cC4KIwkJCUJlY2F1c2Ugd2UgZG9uJ3QgYWNjZXB0IElDUCByZXBsaWVzIGZy
b20gcmFuZG9tCiMJCQlob3N0cywgeW91IG11c3QgY29uZmlndXJlIG90aGVyIGdyb3VwIG1lbWJl
cnMgYXMKIwkJCXBlZXJzIHdpdGggdGhlICdtdWx0aWNhc3QtcmVzcG9uZGVyJyBvcHRpb24uCiMJ
CiMJbm8tZGVsYXkJVG8gcHJldmVudCBhY2Nlc3MgdG8gdGhpcyBuZWlnaGJvciBmcm9tIGluZmx1
ZW5jaW5nIHRoZQojCQkJZGVsYXkgcG9vbHMuCiMJCiMJZGlnZXN0LXVybD1VUkwJVGVsbCBTcXVp
ZCB0byBmZXRjaCB0aGUgY2FjaGUgZGlnZXN0IChpZiBkaWdlc3RzIGFyZQojCQkJZW5hYmxlZCkg
Zm9yIHRoaXMgaG9zdCBmcm9tIHRoZSBzcGVjaWZpZWQgVVJMIHJhdGhlcgojCQkJdGhhbiB0aGUg
U3F1aWQgZGVmYXVsdCBsb2NhdGlvbi4KIwkKIwkKIwk9PT09IEFDQ0VMRVJBVE9SIC8gUkVWRVJT
RS1QUk9YWSBPUFRJT05TID09PT0KIwkKIwlvcmlnaW5zZXJ2ZXIJQ2F1c2VzIHRoaXMgcGFyZW50
IHRvIGJlIGNvbnRhY3RlZCBhcyBhbiBvcmlnaW4gc2VydmVyLgojCQkJTWVhbnQgdG8gYmUgdXNl
ZCBpbiBhY2NlbGVyYXRvciBzZXR1cHMgd2hlbiB0aGUgcGVlcgojCQkJaXMgYSB3ZWIgc2VydmVy
LgojCQojCWZvcmNlZGRvbWFpbj1uYW1lCiMJCQlTZXQgdGhlIEhvc3QgaGVhZGVyIG9mIHJlcXVl
c3RzIGZvcndhcmRlZCB0byB0aGlzIHBlZXIuCiMJCQlVc2VmdWwgaW4gYWNjZWxlcmF0b3Igc2V0
dXBzIHdoZXJlIHRoZSBzZXJ2ZXIgKHBlZXIpCiMJCQlleHBlY3RzIGEgY2VydGFpbiBkb21haW4g
bmFtZSBidXQgY2xpZW50cyBtYXkgcmVxdWVzdAojCQkJb3RoZXJzLiBpZSBleGFtcGxlLmNvbSBv
ciB3d3cuZXhhbXBsZS5jb20KIwkKIwluby1kaWdlc3QJRGlzYWJsZSByZXF1ZXN0IG9mIGNhY2hl
IGRpZ2VzdHMuCiMJCiMJbm8tbmV0ZGItZXhjaGFuZ2UKIwkJCURpc2FibGVzIHJlcXVlc3Rpbmcg
SUNNUCBSVFQgZGF0YWJhc2UgKE5ldERCKS4KIwkKIwkKIwk9PT09IEFVVEhFTlRJQ0FUSU9OIE9Q
VElPTlMgPT09PQojCQojCWxvZ2luPXVzZXI6cGFzc3dvcmQKIwkJCUlmIHRoaXMgaXMgYSBwZXJz
b25hbC93b3JrZ3JvdXAgcHJveHkgYW5kIHlvdXIgcGFyZW50CiMJCQlyZXF1aXJlcyBwcm94eSBh
dXRoZW50aWNhdGlvbi4KIwkJCQojCQkJTm90ZTogVGhlIHN0cmluZyBjYW4gaW5jbHVkZSBVUkwg
ZXNjYXBlcyAoaS5lLiAlMjAgZm9yCiMJCQlzcGFjZXMpLiBUaGlzIGFsc28gbWVhbnMgJSBtdXN0
IGJlIHdyaXR0ZW4gYXMgJSUuCiMJCiMJbG9naW49UFJPWFlQQVNTCiMJCQlTZW5kIGxvZ2luIGRl
dGFpbHMgcmVjZWl2ZWQgZnJvbSBjbGllbnQgdG8gdGhpcyBwZWVyLgojCQkJQXV0aGVudGljYXRp
b24gaXMgbm90IHJlcXVpcmVkLCBub3IgY2hhbmdlZC4KIwkJCQojCQkJTm90ZTogVGhpcyB3aWxs
IHBhc3MgYW55IGZvcm0gb2YgYXV0aGVudGljYXRpb24gYnV0CiMJCQlvbmx5IEJhc2ljIGF1dGgg
d2lsbCB3b3JrIHRocm91Z2ggYSBwcm94eSB1bmxlc3MgdGhlCiMJCQljb25uZWN0aW9uLWF1dGgg
b3B0aW9ucyBhcmUgYWxzbyB1c2VkLgojCQojCWxvZ2luPVBBU1MJU2VuZCBsb2dpbiBkZXRhaWxz
IHJlY2VpdmVkIGZyb20gY2xpZW50IHRvIHRoaXMgcGVlci4KIwkJCUF1dGhlbnRpY2F0aW9uIGlz
IG5vdCByZXF1aXJlZCBieSB0aGlzIG9wdGlvbi4KIwkJCUlmIHRoZXJlIGFyZSBubyBjbGllbnQt
cHJvdmlkZWQgYXV0aGVudGljYXRpb24gaGVhZGVycwojCQkJdG8gcGFzcyBvbiwgYnV0IHVzZXJu
YW1lIGFuZCBwYXNzd29yZCBhcmUgYXZhaWxhYmxlCiMJCQlmcm9tIGVpdGhlciBwcm94eSBsb2dp
biBvciBhbiBleHRlcm5hbCBBQ0wgdXNlcj0gYW5kCiMJCQlwYXNzd29yZD0gcmVzdWx0IHRhZ3Mg
dGhleSBtYXkgYmUgc2VudCBpbnN0ZWFkLgojCQkJCiMJCQlOb3RlOiBUbyBjb21iaW5lIHRoaXMg
d2l0aCBwcm94eV9hdXRoIGJvdGggcHJveGllcyBtdXN0CiMJCQlzaGFyZSB0aGUgc2FtZSB1c2Vy
IGRhdGFiYXNlIGFzIEhUVFAgb25seSBhbGxvd3MgZm9yCiMJCQlhIHNpbmdsZSBsb2dpbiAob25l
IGZvciBwcm94eSwgb25lIGZvciBvcmlnaW4gc2VydmVyKS4KIwkJCUFsc28gYmUgd2FybmVkIHRo
aXMgd2lsbCBleHBvc2UgeW91ciB1c2VycyBwcm94eQojCQkJcGFzc3dvcmQgdG8gdGhlIHBlZXIu
IFVTRSBXSVRIIENBVVRJT04KIwkKIwlsb2dpbj0qOnBhc3N3b3JkCiMJCQlTZW5kIHRoZSB1c2Vy
bmFtZSB0byB0aGUgdXBzdHJlYW0gY2FjaGUsIGJ1dCB3aXRoIGEKIwkJCWZpeGVkIHBhc3N3b3Jk
LiBUaGlzIGlzIG1lYW50IHRvIGJlIHVzZWQgd2hlbiB0aGUgcGVlcgojCQkJaXMgaW4gYW5vdGhl
ciBhZG1pbmlzdHJhdGl2ZSBkb21haW4sIGJ1dCBpdCBpcyBzdGlsbAojCQkJbmVlZGVkIHRvIGlk
ZW50aWZ5IGVhY2ggdXNlci4KIwkJCVRoZSBzdGFyIGNhbiBvcHRpb25hbGx5IGJlIGZvbGxvd2Vk
IGJ5IHNvbWUgZXh0cmEKIwkJCWluZm9ybWF0aW9uIHdoaWNoIGlzIGFkZGVkIHRvIHRoZSB1c2Vy
bmFtZS4gVGhpcyBjYW4KIwkJCWJlIHVzZWQgdG8gaWRlbnRpZnkgdGhpcyBwcm94eSB0byB0aGUg
cGVlciwgc2ltaWxhciB0bwojCQkJdGhlIGxvZ2luPXVzZXJuYW1lOnBhc3N3b3JkIG9wdGlvbiBh
Ym92ZS4KIwkKIwljb25uZWN0aW9uLWF1dGg9b258b2ZmCiMJCQlUZWxsIFNxdWlkIHRoYXQgdGhp
cyBwZWVyIGRvZXMgb3Igbm90IHN1cHBvcnQgTWljcm9zb2Z0CiMJCQljb25uZWN0aW9uIG9yaWVu
dGVkIGF1dGhlbnRpY2F0aW9uLCBhbmQgYW55IHN1Y2gKIwkJCWNoYWxsZW5nZXMgcmVjZWl2ZWQg
ZnJvbSB0aGVyZSBzaG91bGQgYmUgaWdub3JlZC4KIwkJCURlZmF1bHQgaXMgYXV0byB0byBhdXRv
bWF0aWNhbGx5IGRldGVybWluZSB0aGUgc3RhdHVzCiMJCQlvZiB0aGUgcGVlci4KIwkKIwkKIwk9
PT09IFNTTCAvIEhUVFBTIC8gVExTIE9QVElPTlMgPT09PQojCQojCXNzbAkJRW5jcnlwdCBjb25u
ZWN0aW9ucyB0byB0aGlzIHBlZXIgd2l0aCBTU0wvVExTLgojCQojCXNzbGNlcnQ9L3BhdGgvdG8v
c3NsL2NlcnRpZmljYXRlCiMJCQlBIGNsaWVudCBTU0wgY2VydGlmaWNhdGUgdG8gdXNlIHdoZW4g
Y29ubmVjdGluZyB0bwojCQkJdGhpcyBwZWVyLgojCQojCXNzbGtleT0vcGF0aC90by9zc2wva2V5
CiMJCQlUaGUgcHJpdmF0ZSBTU0wga2V5IGNvcnJlc3BvbmRpbmcgdG8gc3NsY2VydCBhYm92ZS4K
IwkJCUlmICdzc2xrZXknIGlzIG5vdCBzcGVjaWZpZWQgJ3NzbGNlcnQnIGlzIGFzc3VtZWQgdG8K
IwkJCXJlZmVyZW5jZSBhIGNvbWJpbmVkIGZpbGUgY29udGFpbmluZyBib3RoIHRoZQojCQkJY2Vy
dGlmaWNhdGUgYW5kIHRoZSBrZXkuCiMJCiMJc3NsdmVyc2lvbj0xfDJ8M3w0CiMJCQlUaGUgU1NM
IHZlcnNpb24gdG8gdXNlIHdoZW4gY29ubmVjdGluZyB0byB0aGlzIHBlZXIKIwkJCQkxID0gYXV0
b21hdGljIChkZWZhdWx0KQojCQkJCTIgPSBTU0wgdjIgb25seQojCQkJCTMgPSBTU0wgdjMgb25s
eQojCQkJCTQgPSBUTFMgdjEgb25seQojCQojCXNzbGNpcGhlcj0uLi4JVGhlIGxpc3Qgb2YgdmFs
aWQgU1NMIGNpcGhlcnMgdG8gdXNlIHdoZW4gY29ubmVjdGluZwojCQkJdG8gdGhpcyBwZWVyLgoj
CQojCXNzbG9wdGlvbnM9Li4uIAlTcGVjaWZ5IHZhcmlvdXMgU1NMIGVuZ2luZSBvcHRpb25zOgoj
CQkJCU5PX1NTTHYyICBEaXNhbGxvdyB0aGUgdXNlIG9mIFNTTHYyCiMJCQkJTk9fU1NMdjMgIERp
c2FsbG93IHRoZSB1c2Ugb2YgU1NMdjMKIwkJCQlOT19UTFN2MSAgRGlzYWxsb3cgdGhlIHVzZSBv
ZiBUTFN2MQojCQkJU2VlIHNyYy9zc2xfc3VwcG9ydC5jIG9yIHRoZSBPcGVuU1NMIGRvY3VtZW50
YXRpb24gZm9yCiMJCQlhIG1vcmUgY29tcGxldGUgbGlzdC4KIwkKIwlzc2xjYWZpbGU9Li4uIAlB
IGZpbGUgY29udGFpbmluZyBhZGRpdGlvbmFsIENBIGNlcnRpZmljYXRlcyB0byB1c2UKIwkJCXdo
ZW4gdmVyaWZ5aW5nIHRoZSBwZWVyIGNlcnRpZmljYXRlLgojCQojCXNzbGNhcGF0aD0uLi4JQSBk
aXJlY3RvcnkgY29udGFpbmluZyBhZGRpdGlvbmFsIENBIGNlcnRpZmljYXRlcyB0bwojCQkJdXNl
IHdoZW4gdmVyaWZ5aW5nIHRoZSBwZWVyIGNlcnRpZmljYXRlLgojCQojCXNzbGNybGZpbGU9Li4u
IAlBIGNlcnRpZmljYXRlIHJldm9jYXRpb24gbGlzdCBmaWxlIHRvIHVzZSB3aGVuCiMJCQl2ZXJp
ZnlpbmcgdGhlIHBlZXIgY2VydGlmaWNhdGUuCiMJCiMJc3NsZmxhZ3M9Li4uCVNwZWNpZnkgdmFy
aW91cyBmbGFncyBtb2RpZnlpbmcgdGhlIFNTTCBpbXBsZW1lbnRhdGlvbjoKIwkKIwkJCURPTlRf
VkVSSUZZX1BFRVIKIwkJCQlBY2NlcHQgY2VydGlmaWNhdGVzIGV2ZW4gaWYgdGhleSBmYWlsIHRv
CiMJCQkJdmVyaWZ5LgojCQkJTk9fREVGQVVMVF9DQQojCQkJCURvbid0IHVzZSB0aGUgZGVmYXVs
dCBDQSBsaXN0IGJ1aWx0IGluCiMJCQkJdG8gT3BlblNTTC4KIwkJCURPTlRfVkVSSUZZX0RPTUFJ
TgojCQkJCURvbid0IHZlcmlmeSB0aGUgcGVlciBjZXJ0aWZpY2F0ZQojCQkJCW1hdGNoZXMgdGhl
IHNlcnZlciBuYW1lCiMJCiMJc3NsZG9tYWluPSAJVGhlIHBlZXIgbmFtZSBhcyBhZHZlcnRpc2Vk
IGluIGl0J3MgY2VydGlmaWNhdGUuCiMJCQlVc2VkIGZvciB2ZXJpZnlpbmcgdGhlIGNvcnJlY3Ru
ZXNzIG9mIHRoZSByZWNlaXZlZCBwZWVyCiMJCQljZXJ0aWZpY2F0ZS4gSWYgbm90IHNwZWNpZmll
ZCB0aGUgcGVlciBob3N0bmFtZSB3aWxsIGJlCiMJCQl1c2VkLgojCQojCWZyb250LWVuZC1odHRw
cwojCQkJRW5hYmxlIHRoZSAiRnJvbnQtRW5kLUh0dHBzOiBPbiIgaGVhZGVyIG5lZWRlZCB3aGVu
CiMJCQl1c2luZyBTcXVpZCBhcyBhIFNTTCBmcm9udGVuZCBpbiBmcm9udCBvZiBNaWNyb3NvZnQg
T1dBLgojCQkJU2VlIE1TIEtCIGRvY3VtZW50IFEzMDczNDcgZm9yIGRldGFpbHMgb24gdGhpcyBo
ZWFkZXIuCiMJCQlJZiBzZXQgdG8gYXV0byB0aGUgaGVhZGVyIHdpbGwgb25seSBiZSBhZGRlZCBp
ZiB0aGUKIwkJCXJlcXVlc3QgaXMgZm9yd2FyZGVkIGFzIGEgaHR0cHM6Ly8gVVJMLgojCQojCQoj
CT09PT0gR0VORVJBTCBPUFRJT05TID09PT0KIwkKIwljb25uZWN0LXRpbWVvdXQ9TgojCQkJQSBw
ZWVyLXNwZWNpZmljIGNvbm5lY3QgdGltZW91dC4KIwkJCUFsc28gc2VlIHRoZSBwZWVyX2Nvbm5l
Y3RfdGltZW91dCBkaXJlY3RpdmUuCiMJCiMJY29ubmVjdC1mYWlsLWxpbWl0PU4KIwkJCUhvdyBt
YW55IHRpbWVzIGNvbm5lY3RpbmcgdG8gYSBwZWVyIG11c3QgZmFpbCBiZWZvcmUKIwkJCWl0IGlz
IG1hcmtlZCBhcyBkb3duLiBEZWZhdWx0IGlzIDEwLgojCQojCWFsbG93LW1pc3MJRGlzYWJsZSBT
cXVpZCdzIHVzZSBvZiBvbmx5LWlmLWNhY2hlZCB3aGVuIGZvcndhcmRpbmcKIwkJCXJlcXVlc3Rz
IHRvIHNpYmxpbmdzLiBUaGlzIGlzIHByaW1hcmlseSB1c2VmdWwgd2hlbgojCQkJaWNwX2hpdF9z
dGFsZSBpcyB1c2VkIGJ5IHRoZSBzaWJsaW5nLiBUbyBleHRlbnNpdmUgdXNlCiMJCQlvZiB0aGlz
IG9wdGlvbiBtYXkgcmVzdWx0IGluIGZvcndhcmRpbmcgbG9vcHMsIGFuZCB5b3UKIwkJCXNob3Vs
ZCBhdm9pZCBoYXZpbmcgdHdvLXdheSBwZWVyaW5ncyB3aXRoIHRoaXMgb3B0aW9uLgojCQkJRm9y
IGV4YW1wbGUgdG8gZGVueSBwZWVyIHVzYWdlIG9uIHJlcXVlc3RzIGZyb20gcGVlcgojCQkJYnkg
ZGVueWluZyBjYWNoZV9wZWVyX2FjY2VzcyBpZiB0aGUgc291cmNlIGlzIGEgcGVlci4KIwkKIwlt
YXgtY29ubj1OCUxpbWl0IHRoZSBhbW91bnQgb2YgY29ubmVjdGlvbnMgU3F1aWQgbWF5IG9wZW4g
dG8gdGhpcwojCQkJcGVlci4gc2VlIGFsc28gCiMJCiMJbmFtZT14eHgJVW5pcXVlIG5hbWUgZm9y
IHRoZSBwZWVyLgojCQkJUmVxdWlyZWQgaWYgeW91IGhhdmUgbXVsdGlwbGUgcGVlcnMgb24gdGhl
IHNhbWUgaG9zdAojCQkJYnV0IGRpZmZlcmVudCBwb3J0cy4KIwkJCVRoaXMgbmFtZSBjYW4gYmUg
dXNlZCBpbiBjYWNoZV9wZWVyX2FjY2VzcyBhbmQgc2ltaWxhcgojCQkJZGlyZWN0aXZlcyB0byBk
ZW50aWZ5IHRoZSBwZWVyLgojCQkJQ2FuIGJlIHVzZWQgYnkgb3V0Z29pbmcgYWNjZXNzIGNvbnRy
b2xzIHRocm91Z2ggdGhlCiMJCQlwZWVybmFtZSBBQ0wgdHlwZS4KIwkKIwluby10cHJveHkJRG8g
bm90IHVzZSB0aGUgY2xpZW50LXNwb29mIFRQUk9YWSBzdXBwb3J0IHdoZW4gZm9yd2FyZGluZwoj
CQkJcmVxdWVzdHMgdG8gdGhpcyBwZWVyLiBVc2Ugbm9ybWFsIGFkZHJlc3Mgc2VsZWN0aW9uIGlu
c3RlYWQuCiMJCiMJcHJveHktb25seQlvYmplY3RzIGZldGNoZWQgZnJvbSB0aGUgcGVlciB3aWxs
IG5vdCBiZSBzdG9yZWQgbG9jYWxseS4KIwkKI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBjYWNo
ZV9wZWVyX2RvbWFpbgojCVVzZSB0byBsaW1pdCB0aGUgZG9tYWlucyBmb3Igd2hpY2ggYSBuZWln
aGJvciBjYWNoZSB3aWxsIGJlCiMJcXVlcmllZC4gIFVzYWdlOgojCiMJY2FjaGVfcGVlcl9kb21h
aW4gY2FjaGUtaG9zdCBkb21haW4gW2RvbWFpbiAuLi5dCiMJY2FjaGVfcGVlcl9kb21haW4gY2Fj
aGUtaG9zdCAhZG9tYWluCiMKIwlGb3IgZXhhbXBsZSwgc3BlY2lmeWluZwojCiMJCWNhY2hlX3Bl
ZXJfZG9tYWluIHBhcmVudC5mb28ubmV0CS5lZHUKIwojCWhhcyB0aGUgZWZmZWN0IHN1Y2ggdGhh
dCBVRFAgcXVlcnkgcGFja2V0cyBhcmUgc2VudCB0bwojCSdiaWdzZXJ2ZXInIG9ubHkgd2hlbiB0
aGUgcmVxdWVzdGVkIG9iamVjdCBleGlzdHMgb24gYQojCXNlcnZlciBpbiB0aGUgLmVkdSBkb21h
aW4uICBQcmVmaXhpbmcgdGhlIGRvbWFpbm5hbWUKIwl3aXRoICchJyBtZWFucyB0aGUgY2FjaGUg
d2lsbCBiZSBxdWVyaWVkIGZvciBvYmplY3RzCiMJTk9UIGluIHRoYXQgZG9tYWluLgojCiMJTk9U
RToJKiBBbnkgbnVtYmVyIG9mIGRvbWFpbnMgbWF5IGJlIGdpdmVuIGZvciBhIGNhY2hlLWhvc3Qs
CiMJCSAgZWl0aGVyIG9uIHRoZSBzYW1lIG9yIHNlcGFyYXRlIGxpbmVzLgojCQkqIFdoZW4gbXVs
dGlwbGUgZG9tYWlucyBhcmUgZ2l2ZW4gZm9yIGEgcGFydGljdWxhcgojCQkgIGNhY2hlLWhvc3Qs
IHRoZSBmaXJzdCBtYXRjaGVkIGRvbWFpbiBpcyBhcHBsaWVkLgojCQkqIENhY2hlIGhvc3RzIHdp
dGggbm8gZG9tYWluIHJlc3RyaWN0aW9ucyBhcmUgcXVlcmllZAojCQkgIGZvciBhbGwgcmVxdWVz
dHMuCiMJCSogVGhlcmUgYXJlIG5vIGRlZmF1bHRzLgojCQkqIFRoZXJlIGlzIGFsc28gYSAnY2Fj
aGVfcGVlcl9hY2Nlc3MnIHRhZyBpbiB0aGUgQUNMCiMJCSAgc2VjdGlvbi4KI0RlZmF1bHQ6CiMg
bm9uZQoKIyAgVEFHOiBjYWNoZV9wZWVyX2FjY2VzcwojCVNpbWlsYXIgdG8gJ2NhY2hlX3BlZXJf
ZG9tYWluJyBidXQgcHJvdmlkZXMgbW9yZSBmbGV4aWJpbGl0eSBieQojCXVzaW5nIEFDTCBlbGVt
ZW50cy4KIwojCWNhY2hlX3BlZXJfYWNjZXNzIGNhY2hlLWhvc3QgYWxsb3d8ZGVueSBbIV1hY2xu
YW1lIC4uLgojCiMJVGhlIHN5bnRheCBpcyBpZGVudGljYWwgdG8gJ2h0dHBfYWNjZXNzJyBhbmQg
dGhlIG90aGVyIGxpc3RzIG9mCiMJQUNMIGVsZW1lbnRzLiAgU2VlIHRoZSBjb21tZW50cyBmb3Ig
J2h0dHBfYWNjZXNzJyBiZWxvdywgb3IKIwl0aGUgU3F1aWQgRkFRIChodHRwOi8vd2lraS5zcXVp
ZC1jYWNoZS5vcmcvU3F1aWRGYXEvU3F1aWRBY2wpLgojRGVmYXVsdDoKIyBub25lCgojICBUQUc6
IG5laWdoYm9yX3R5cGVfZG9tYWluCiMJdXNhZ2U6IG5laWdoYm9yX3R5cGVfZG9tYWluIG5laWdo
Ym9yIHBhcmVudHxzaWJsaW5nIGRvbWFpbiBkb21haW4gLi4uCiMKIwlNb2RpZnlpbmcgdGhlIG5l
aWdoYm9yIHR5cGUgZm9yIHNwZWNpZmljIGRvbWFpbnMgaXMgbm93CiMJcG9zc2libGUuICBZb3Ug
Y2FuIHRyZWF0IHNvbWUgZG9tYWlucyBkaWZmZXJlbnRseSB0aGFuIHRoZSB0aGUKIwlkZWZhdWx0
IG5laWdoYm9yIHR5cGUgc3BlY2lmaWVkIG9uIHRoZSAnY2FjaGVfcGVlcicgbGluZS4KIwlOb3Jt
YWxseSBpdCBzaG91bGQgb25seSBiZSBuZWNlc3NhcnkgdG8gbGlzdCBkb21haW5zIHdoaWNoCiMJ
c2hvdWxkIGJlIHRyZWF0ZWQgZGlmZmVyZW50bHkgYmVjYXVzZSB0aGUgZGVmYXVsdCBuZWlnaGJv
ciB0eXBlCiMJYXBwbGllcyBmb3IgaG9zdG5hbWVzIHdoaWNoIGRvIG5vdCBtYXRjaCBkb21haW5z
IGxpc3RlZCBoZXJlLgojCiNFWEFNUExFOgojCWNhY2hlX3BlZXIgY2FjaGUuZm9vLm9yZyBwYXJl
bnQgMzEyOCAzMTMwCiMJbmVpZ2hib3JfdHlwZV9kb21haW4gY2FjaGUuZm9vLm9yZyBzaWJsaW5n
IC5jb20gLm5ldAojCW5laWdoYm9yX3R5cGVfZG9tYWluIGNhY2hlLmZvby5vcmcgc2libGluZyAu
YXUgLmRlCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogZGVhZF9wZWVyX3RpbWVvdXQJKHNlY29u
ZHMpCiMJVGhpcyBjb250cm9scyBob3cgbG9uZyBTcXVpZCB3YWl0cyB0byBkZWNsYXJlIGEgcGVl
ciBjYWNoZQojCWFzICJkZWFkLiIgIElmIHRoZXJlIGFyZSBubyBJQ1AgcmVwbGllcyByZWNlaXZl
ZCBpbiB0aGlzCiMJYW1vdW50IG9mIHRpbWUsIFNxdWlkIHdpbGwgZGVjbGFyZSB0aGUgcGVlciBk
ZWFkIGFuZCBub3QKIwlleHBlY3QgdG8gcmVjZWl2ZSBhbnkgZnVydGhlciBJQ1AgcmVwbGllcy4g
IEhvd2V2ZXIsIGl0CiMJY29udGludWVzIHRvIHNlbmQgSUNQIHF1ZXJpZXMsIGFuZCB3aWxsIG1h
cmsgdGhlIHBlZXIgYXMKIwlhbGl2ZSB1cG9uIHJlY2VpcHQgb2YgdGhlIGZpcnN0IHN1YnNlcXVl
bnQgSUNQIHJlcGx5LgojCiMJVGhpcyB0aW1lb3V0IGFsc28gYWZmZWN0cyB3aGVuIFNxdWlkIGV4
cGVjdHMgdG8gcmVjZWl2ZSBJQ1AKIwlyZXBsaWVzIGZyb20gcGVlcnMuICBJZiBtb3JlIHRoYW4g
J2RlYWRfcGVlcicgc2Vjb25kcyBoYXZlCiMJcGFzc2VkIHNpbmNlIHRoZSBsYXN0IElDUCByZXBs
eSB3YXMgcmVjZWl2ZWQsIFNxdWlkIHdpbGwgbm90CiMJZXhwZWN0IHRvIHJlY2VpdmUgYW4gSUNQ
IHJlcGx5IG9uIHRoZSBuZXh0IHF1ZXJ5LiAgVGh1cywgaWYKIwl5b3VyIHRpbWUgYmV0d2VlbiBy
ZXF1ZXN0cyBpcyBncmVhdGVyIHRoYW4gdGhpcyB0aW1lb3V0LCB5b3UKIwl3aWxsIHNlZSBhIGxv
dCBvZiByZXF1ZXN0cyBzZW50IERJUkVDVCB0byBvcmlnaW4gc2VydmVycwojCWluc3RlYWQgb2Yg
dG8geW91ciBwYXJlbnRzLgojRGVmYXVsdDoKIyBkZWFkX3BlZXJfdGltZW91dCAxMCBzZWNvbmRz
CgojICBUQUc6IGZvcndhcmRfbWF4X3RyaWVzCiMJQ29udHJvbHMgaG93IG1hbnkgZGlmZmVyZW50
IGZvcndhcmQgcGF0aHMgU3F1aWQgd2lsbCB0cnkKIwliZWZvcmUgZ2l2aW5nIHVwLiBTZWUgYWxz
byBmb3J3YXJkX3RpbWVvdXQuCiNEZWZhdWx0OgojIGZvcndhcmRfbWF4X3RyaWVzIDEwCgojICBU
QUc6IGhpZXJhcmNoeV9zdG9wbGlzdAojCUEgbGlzdCBvZiB3b3JkcyB3aGljaCwgaWYgZm91bmQg
aW4gYSBVUkwsIGNhdXNlIHRoZSBvYmplY3QgdG8KIwliZSBoYW5kbGVkIGRpcmVjdGx5IGJ5IHRo
aXMgY2FjaGUuICBJbiBvdGhlciB3b3JkcywgdXNlIHRoaXMKIwl0byBub3QgcXVlcnkgbmVpZ2hi
b3IgY2FjaGVzIGZvciBjZXJ0YWluIG9iamVjdHMuICBZb3UgbWF5CiMJbGlzdCB0aGlzIG9wdGlv
biBtdWx0aXBsZSB0aW1lcy4KIwlOb3RlOiBuZXZlcl9kaXJlY3Qgb3ZlcnJpZGVzIHRoaXMgb3B0
aW9uLgojCgojIFdlIHJlY29tbWVuZCB5b3UgdG8gdXNlIGF0IGxlYXN0IHRoZSBmb2xsb3dpbmcg
bGluZS4KaGllcmFyY2h5X3N0b3BsaXN0IGNnaS1iaW4gPwoKIyBNRU1PUlkgQ0FDSEUgT1BUSU9O
UwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6IGNhY2hlX21lbQkoYnl0ZXMpCiMJTk9U
RTogVEhJUyBQQVJBTUVURVIgRE9FUyBOT1QgU1BFQ0lGWSBUSEUgTUFYSU1VTSBQUk9DRVNTIFNJ
WkUuCiMJSVQgT05MWSBQTEFDRVMgQSBMSU1JVCBPTiBIT1cgTVVDSCBBRERJVElPTkFMIE1FTU9S
WSBTUVVJRCBXSUxMCiMJVVNFIEFTIEEgTUVNT1JZIENBQ0hFIE9GIE9CSkVDVFMuIFNRVUlEIFVT
RVMgTUVNT1JZIEZPUiBPVEhFUgojCVRISU5HUyBBUyBXRUxMLiBTRUUgVEhFIFNRVUlEIEZBUSBT
RUNUSU9OIDggRk9SIERFVEFJTFMuCiMKIwknY2FjaGVfbWVtJyBzcGVjaWZpZXMgdGhlIGlkZWFs
IGFtb3VudCBvZiBtZW1vcnkgdG8gYmUgdXNlZAojCWZvcjoKIwkJKiBJbi1UcmFuc2l0IG9iamVj
dHMKIwkJKiBIb3QgT2JqZWN0cwojCQkqIE5lZ2F0aXZlLUNhY2hlZCBvYmplY3RzCiMKIwlEYXRh
IGZvciB0aGVzZSBvYmplY3RzIGFyZSBzdG9yZWQgaW4gNCBLQiBibG9ja3MuICBUaGlzCiMJcGFy
YW1ldGVyIHNwZWNpZmllcyB0aGUgaWRlYWwgdXBwZXIgbGltaXQgb24gdGhlIHRvdGFsIHNpemUg
b2YKIwk0IEtCIGJsb2NrcyBhbGxvY2F0ZWQuICBJbi1UcmFuc2l0IG9iamVjdHMgdGFrZSB0aGUg
aGlnaGVzdAojCXByaW9yaXR5LgojCiMJSW4tdHJhbnNpdCBvYmplY3RzIGhhdmUgcHJpb3JpdHkg
b3ZlciB0aGUgb3RoZXJzLiAgV2hlbgojCWFkZGl0aW9uYWwgc3BhY2UgaXMgbmVlZGVkIGZvciBp
bmNvbWluZyBkYXRhLCBuZWdhdGl2ZS1jYWNoZWQKIwlhbmQgaG90IG9iamVjdHMgd2lsbCBiZSBy
ZWxlYXNlZC4gIEluIG90aGVyIHdvcmRzLCB0aGUKIwluZWdhdGl2ZS1jYWNoZWQgYW5kIGhvdCBv
YmplY3RzIHdpbGwgZmlsbCB1cCBhbnkgdW51c2VkIHNwYWNlCiMJbm90IG5lZWRlZCBmb3IgaW4t
dHJhbnNpdCBvYmplY3RzLgojCiMJSWYgY2lyY3Vtc3RhbmNlcyByZXF1aXJlLCB0aGlzIGxpbWl0
IHdpbGwgYmUgZXhjZWVkZWQuCiMJU3BlY2lmaWNhbGx5LCBpZiB5b3VyIGluY29taW5nIHJlcXVl
c3QgcmF0ZSByZXF1aXJlcyBtb3JlIHRoYW4KIwknY2FjaGVfbWVtJyBvZiBtZW1vcnkgdG8gaG9s
ZCBpbi10cmFuc2l0IG9iamVjdHMsIFNxdWlkIHdpbGwKIwlleGNlZWQgdGhpcyBsaW1pdCB0byBz
YXRpc2Z5IHRoZSBuZXcgcmVxdWVzdHMuICBXaGVuIHRoZSBsb2FkCiMJZGVjcmVhc2VzLCBibG9j
a3Mgd2lsbCBiZSBmcmVlZCB1bnRpbCB0aGUgaGlnaC13YXRlciBtYXJrIGlzCiMJcmVhY2hlZC4g
IFRoZXJlYWZ0ZXIsIGJsb2NrcyB3aWxsIGJlIHVzZWQgdG8gc3RvcmUgaG90CiMJb2JqZWN0cy4K
I0RlZmF1bHQ6CiMgY2FjaGVfbWVtIDI1NiBNQgoKIyAgVEFHOiBtYXhpbXVtX29iamVjdF9zaXpl
X2luX21lbW9yeQkoYnl0ZXMpCiMJT2JqZWN0cyBncmVhdGVyIHRoYW4gdGhpcyBzaXplIHdpbGwg
bm90IGJlIGF0dGVtcHRlZCB0byBrZXB0IGluCiMJdGhlIG1lbW9yeSBjYWNoZS4gVGhpcyBzaG91
bGQgYmUgc2V0IGhpZ2ggZW5vdWdoIHRvIGtlZXAgb2JqZWN0cwojCWFjY2Vzc2VkIGZyZXF1ZW50
bHkgaW4gbWVtb3J5IHRvIGltcHJvdmUgcGVyZm9ybWFuY2Ugd2hpbHN0IGxvdwojCWVub3VnaCB0
byBrZWVwIGxhcmdlciBvYmplY3RzIGZyb20gaG9hcmRpbmcgY2FjaGVfbWVtLgojRGVmYXVsdDoK
IyBtYXhpbXVtX29iamVjdF9zaXplX2luX21lbW9yeSA1MTIgS0IKCiMgIFRBRzogbWVtb3J5X3Jl
cGxhY2VtZW50X3BvbGljeQojCVRoZSBtZW1vcnkgcmVwbGFjZW1lbnQgcG9saWN5IHBhcmFtZXRl
ciBkZXRlcm1pbmVzIHdoaWNoCiMJb2JqZWN0cyBhcmUgcHVyZ2VkIGZyb20gbWVtb3J5IHdoZW4g
bWVtb3J5IHNwYWNlIGlzIG5lZWRlZC4KIwojCVNlZSBjYWNoZV9yZXBsYWNlbWVudF9wb2xpY3kg
Zm9yIGRldGFpbHMuCiNEZWZhdWx0OgojIG1lbW9yeV9yZXBsYWNlbWVudF9wb2xpY3kgbHJ1Cgoj
IERJU0sgQ0FDSEUgT1BUSU9OUwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6IGNhY2hl
X3JlcGxhY2VtZW50X3BvbGljeQojCVRoZSBjYWNoZSByZXBsYWNlbWVudCBwb2xpY3kgcGFyYW1l
dGVyIGRldGVybWluZXMgd2hpY2gKIwlvYmplY3RzIGFyZSBldmljdGVkIChyZXBsYWNlZCkgd2hl
biBkaXNrIHNwYWNlIGlzIG5lZWRlZC4KIwojCSAgICBscnUgICAgICAgOiBTcXVpZCdzIG9yaWdp
bmFsIGxpc3QgYmFzZWQgTFJVIHBvbGljeQojCSAgICBoZWFwIEdEU0YgOiBHcmVlZHktRHVhbCBT
aXplIEZyZXF1ZW5jeQojCSAgICBoZWFwIExGVURBOiBMZWFzdCBGcmVxdWVudGx5IFVzZWQgd2l0
aCBEeW5hbWljIEFnaW5nCiMJICAgIGhlYXAgTFJVICA6IExSVSBwb2xpY3kgaW1wbGVtZW50ZWQg
dXNpbmcgYSBoZWFwCiMKIwlBcHBsaWVzIHRvIGFueSBjYWNoZV9kaXIgbGluZXMgbGlzdGVkIGJl
bG93IHRoaXMuCiMKIwlUaGUgTFJVIHBvbGljaWVzIGtlZXBzIHJlY2VudGx5IHJlZmVyZW5jZWQg
b2JqZWN0cy4KIwojCVRoZSBoZWFwIEdEU0YgcG9saWN5IG9wdGltaXplcyBvYmplY3QgaGl0IHJh
dGUgYnkga2VlcGluZyBzbWFsbGVyCiMJcG9wdWxhciBvYmplY3RzIGluIGNhY2hlIHNvIGl0IGhh
cyBhIGJldHRlciBjaGFuY2Ugb2YgZ2V0dGluZyBhCiMJaGl0LiAgSXQgYWNoaWV2ZXMgYSBsb3dl
ciBieXRlIGhpdCByYXRlIHRoYW4gTEZVREEgdGhvdWdoIHNpbmNlCiMJaXQgZXZpY3RzIGxhcmdl
ciAocG9zc2libHkgcG9wdWxhcikgb2JqZWN0cy4KIwojCVRoZSBoZWFwIExGVURBIHBvbGljeSBr
ZWVwcyBwb3B1bGFyIG9iamVjdHMgaW4gY2FjaGUgcmVnYXJkbGVzcyBvZgojCXRoZWlyIHNpemUg
YW5kIHRodXMgb3B0aW1pemVzIGJ5dGUgaGl0IHJhdGUgYXQgdGhlIGV4cGVuc2Ugb2YKIwloaXQg
cmF0ZSBzaW5jZSBvbmUgbGFyZ2UsIHBvcHVsYXIgb2JqZWN0IHdpbGwgcHJldmVudCBtYW55CiMJ
c21hbGxlciwgc2xpZ2h0bHkgbGVzcyBwb3B1bGFyIG9iamVjdHMgZnJvbSBiZWluZyBjYWNoZWQu
CiMKIwlCb3RoIHBvbGljaWVzIHV0aWxpemUgYSBkeW5hbWljIGFnaW5nIG1lY2hhbmlzbSB0aGF0
IHByZXZlbnRzCiMJY2FjaGUgcG9sbHV0aW9uIHRoYXQgY2FuIG90aGVyd2lzZSBvY2N1ciB3aXRo
IGZyZXF1ZW5jeS1iYXNlZAojCXJlcGxhY2VtZW50IHBvbGljaWVzLgojCiMJTk9URTogaWYgdXNp
bmcgdGhlIExGVURBIHJlcGxhY2VtZW50IHBvbGljeSB5b3Ugc2hvdWxkIGluY3JlYXNlCiMJdGhl
IHZhbHVlIG9mIG1heGltdW1fb2JqZWN0X3NpemUgYWJvdmUgaXRzIGRlZmF1bHQgb2YgNDA5NiBL
QiB0bwojCXRvIG1heGltaXplIHRoZSBwb3RlbnRpYWwgYnl0ZSBoaXQgcmF0ZSBpbXByb3ZlbWVu
dCBvZiBMRlVEQS4KIwojCUZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBHRFNGIGFuZCBM
RlVEQSBjYWNoZSByZXBsYWNlbWVudAojCXBvbGljaWVzIHNlZSBodHRwOi8vd3d3LmhwbC5ocC5j
b20vdGVjaHJlcG9ydHMvMTk5OS9IUEwtMTk5OS02OS5odG1sCiMJYW5kIGh0dHA6Ly9mb2cuaHBs
LmV4dGVybmFsLmhwLmNvbS90ZWNocmVwb3J0cy85OC9IUEwtOTgtMTczLmh0bWwuCiNEZWZhdWx0
OgojIGNhY2hlX3JlcGxhY2VtZW50X3BvbGljeSBscnUKCiMgIFRBRzogY2FjaGVfZGlyCiMJVXNh
Z2U6CiMKIwljYWNoZV9kaXIgVHlwZSBEaXJlY3RvcnktTmFtZSBGcy1zcGVjaWZpYy1kYXRhIFtv
cHRpb25zXQojCiMJWW91IGNhbiBzcGVjaWZ5IG11bHRpcGxlIGNhY2hlX2RpciBsaW5lcyB0byBz
cHJlYWQgdGhlCiMJY2FjaGUgYW1vbmcgZGlmZmVyZW50IGRpc2sgcGFydGl0aW9ucy4KIwojCVR5
cGUgc3BlY2lmaWVzIHRoZSBraW5kIG9mIHN0b3JhZ2Ugc3lzdGVtIHRvIHVzZS4gT25seSAidWZz
IgojCWlzIGJ1aWx0IGJ5IGRlZmF1bHQuIFRvIGVuYWJsZSBhbnkgb2YgdGhlIG90aGVyIHN0b3Jh
Z2Ugc3lzdGVtcwojCXNlZSB0aGUgLS1lbmFibGUtc3RvcmVpbyBjb25maWd1cmUgb3B0aW9uLgoj
CiMJJ0RpcmVjdG9yeScgaXMgYSB0b3AtbGV2ZWwgZGlyZWN0b3J5IHdoZXJlIGNhY2hlIHN3YXAK
IwlmaWxlcyB3aWxsIGJlIHN0b3JlZC4gIElmIHlvdSB3YW50IHRvIHVzZSBhbiBlbnRpcmUgZGlz
awojCWZvciBjYWNoaW5nLCB0aGlzIGNhbiBiZSB0aGUgbW91bnQtcG9pbnQgZGlyZWN0b3J5Lgoj
CVRoZSBkaXJlY3RvcnkgbXVzdCBleGlzdCBhbmQgYmUgd3JpdGFibGUgYnkgdGhlIFNxdWlkCiMJ
cHJvY2Vzcy4gIFNxdWlkIHdpbGwgTk9UIGNyZWF0ZSB0aGlzIGRpcmVjdG9yeSBmb3IgeW91Lgoj
CiMJVGhlIHVmcyBzdG9yZSB0eXBlOgojCiMJInVmcyIgaXMgdGhlIG9sZCB3ZWxsLWtub3duIFNx
dWlkIHN0b3JhZ2UgZm9ybWF0IHRoYXQgaGFzIGFsd2F5cwojCWJlZW4gdGhlcmUuCiMKIwljYWNo
ZV9kaXIgdWZzIERpcmVjdG9yeS1OYW1lIE1ieXRlcyBMMSBMMiBbb3B0aW9uc10KIwojCSdNYnl0
ZXMnIGlzIHRoZSBhbW91bnQgb2YgZGlzayBzcGFjZSAoTUIpIHRvIHVzZSB1bmRlciB0aGlzCiMJ
ZGlyZWN0b3J5LiAgVGhlIGRlZmF1bHQgaXMgMTAwIE1CLiAgQ2hhbmdlIHRoaXMgdG8gc3VpdCB5
b3VyCiMJY29uZmlndXJhdGlvbi4gIERvIE5PVCBwdXQgdGhlIHNpemUgb2YgeW91ciBkaXNrIGRy
aXZlIGhlcmUuCiMJSW5zdGVhZCwgaWYgeW91IHdhbnQgU3F1aWQgdG8gdXNlIHRoZSBlbnRpcmUg
ZGlzayBkcml2ZSwKIwlzdWJ0cmFjdCAyMCUgYW5kIHVzZSB0aGF0IHZhbHVlLgojCiMJJ0wxJyBp
cyB0aGUgbnVtYmVyIG9mIGZpcnN0LWxldmVsIHN1YmRpcmVjdG9yaWVzIHdoaWNoCiMJd2lsbCBi
ZSBjcmVhdGVkIHVuZGVyIHRoZSAnRGlyZWN0b3J5Jy4gIFRoZSBkZWZhdWx0IGlzIDE2LgojCiMJ
J0wyJyBpcyB0aGUgbnVtYmVyIG9mIHNlY29uZC1sZXZlbCBzdWJkaXJlY3RvcmllcyB3aGljaAoj
CXdpbGwgYmUgY3JlYXRlZCB1bmRlciBlYWNoIGZpcnN0LWxldmVsIGRpcmVjdG9yeS4gIFRoZSBk
ZWZhdWx0CiMJaXMgMjU2LgojCiMJVGhlIGF1ZnMgc3RvcmUgdHlwZToKIwojCSJhdWZzIiB1c2Vz
IHRoZSBzYW1lIHN0b3JhZ2UgZm9ybWF0IGFzICJ1ZnMiLCB1dGlsaXppbmcKIwlQT1NJWC10aHJl
YWRzIHRvIGF2b2lkIGJsb2NraW5nIHRoZSBtYWluIFNxdWlkIHByb2Nlc3Mgb24KIwlkaXNrLUkv
Ty4gVGhpcyB3YXMgZm9ybWVybHkga25vd24gaW4gU3F1aWQgYXMgYXN5bmMtaW8uCiMKIwljYWNo
ZV9kaXIgYXVmcyBEaXJlY3RvcnktTmFtZSBNYnl0ZXMgTDEgTDIgW29wdGlvbnNdCiMKIwlzZWUg
YXJndW1lbnQgZGVzY3JpcHRpb25zIHVuZGVyIHVmcyBhYm92ZQojCiMJVGhlIGRpc2tkIHN0b3Jl
IHR5cGU6CiMKIwkiZGlza2QiIHVzZXMgdGhlIHNhbWUgc3RvcmFnZSBmb3JtYXQgYXMgInVmcyIs
IHV0aWxpemluZyBhCiMJc2VwYXJhdGUgcHJvY2VzcyB0byBhdm9pZCBibG9ja2luZyB0aGUgbWFp
biBTcXVpZCBwcm9jZXNzIG9uCiMJZGlzay1JL08uCiMKIwljYWNoZV9kaXIgZGlza2QgRGlyZWN0
b3J5LU5hbWUgTWJ5dGVzIEwxIEwyIFtvcHRpb25zXSBbUTE9bl0gW1EyPW5dCiMKIwlzZWUgYXJn
dW1lbnQgZGVzY3JpcHRpb25zIHVuZGVyIHVmcyBhYm92ZQojCiMJUTEgc3BlY2lmaWVzIHRoZSBu
dW1iZXIgb2YgdW5hY2tub3dsZWRnZWQgSS9PIHJlcXVlc3RzIHdoZW4gU3F1aWQKIwlzdG9wcyBv
cGVuaW5nIG5ldyBmaWxlcy4gSWYgdGhpcyBtYW55IG1lc3NhZ2VzIGFyZSBpbiB0aGUgcXVldWVz
LAojCVNxdWlkIHdvbid0IG9wZW4gbmV3IGZpbGVzLiBEZWZhdWx0IGlzIDY0CiMKIwlRMiBzcGVj
aWZpZXMgdGhlIG51bWJlciBvZiB1bmFja25vd2xlZGdlZCBtZXNzYWdlcyB3aGVuIFNxdWlkCiMJ
c3RhcnRzIGJsb2NraW5nLiAgSWYgdGhpcyBtYW55IG1lc3NhZ2VzIGFyZSBpbiB0aGUgcXVldWVz
LAojCVNxdWlkIGJsb2NrcyB1bnRpbCBpdCByZWNlaXZlcyBzb21lIHJlcGxpZXMuIERlZmF1bHQg
aXMgNzIKIwojCVdoZW4gUTEgPCBRMiAodGhlIGRlZmF1bHQpLCB0aGUgY2FjaGUgZGlyZWN0b3J5
IGlzIG9wdGltaXplZAojCWZvciBsb3dlciByZXNwb25zZSB0aW1lIGF0IHRoZSBleHBlbnNlIG9m
IGEgZGVjcmVhc2UgaW4gaGl0CiMJcmF0aW8uICBJZiBRMSA+IFEyLCB0aGUgY2FjaGUgZGlyZWN0
b3J5IGlzIG9wdGltaXplZCBmb3IKIwloaWdoZXIgaGl0IHJhdGlvIGF0IHRoZSBleHBlbnNlIG9m
IGFuIGluY3JlYXNlIGluIHJlc3BvbnNlCiMJdGltZS4KIwojCVRoZSBjb3NzIHN0b3JlIHR5cGU6
CiMKIwlOUDogQ09TUyBmaWxlc3lzdGVtIGluIFNxdWlkLTMgaGFzIGJlZW4gZGVlbWVkIHRvbyB1
bnN0YWJsZSBmb3IKIwkgICAgcHJvZHVjdGlvbiB1c2UgYW5kIGhhcyB0aHVzIGJlZW4gcmVtb3Zl
ZCBmcm9tIHRoaXMgcmVsZWFzZS4KIwkgICAgV2UgaG9wZSB0aGF0IGl0IGNhbiBiZSBtYWRlIHVz
YWJsZSBhZ2FpbiBzb29uLgojCiMJYmxvY2stc2l6ZT1uIGRlZmluZXMgdGhlICJibG9jayBzaXpl
IiBmb3IgQ09TUyBjYWNoZV9kaXIncy4KIwlTcXVpZCB1c2VzIGZpbGUgbnVtYmVycyBhcyBibG9j
ayBudW1iZXJzLiAgU2luY2UgZmlsZSBudW1iZXJzCiMJYXJlIGxpbWl0ZWQgdG8gMjQgYml0cywg
dGhlIGJsb2NrIHNpemUgZGV0ZXJtaW5lcyB0aGUgbWF4aW11bQojCXNpemUgb2YgdGhlIENPU1Mg
cGFydGl0aW9uLiAgVGhlIGRlZmF1bHQgaXMgNTEyIGJ5dGVzLCB3aGljaAojCWxlYWRzIHRvIGEg
bWF4aW11bSBjYWNoZV9kaXIgc2l6ZSBvZiA1MTI8PDI0LCBvciA4IEdCLiAgTm90ZQojCXlvdSBz
aG91bGQgbm90IGNoYW5nZSB0aGUgY29zcyBibG9jayBzaXplIGFmdGVyIFNxdWlkCiMJaGFzIHdy
aXR0ZW4gc29tZSBvYmplY3RzIHRvIHRoZSBjYWNoZV9kaXIuCiMKIwlUaGUgY29zcyBmaWxlIHN0
b3JlIGhhcyBjaGFuZ2VkIGZyb20gMi41LiBOb3cgaXQgdXNlcyBhIGZpbGUKIwljYWxsZWQgJ3N0
cmlwZScgaW4gdGhlIGRpcmVjdG9yeSBuYW1lcyBpbiB0aGUgY29uZmlnIC0gYW5kCiMJdGhpcyB3
aWxsIGJlIGNyZWF0ZWQgYnkgc3F1aWQgLXouCiMKIwlDb21tb24gb3B0aW9uczoKIwojCW5vLXN0
b3JlLCBubyBuZXcgb2JqZWN0cyBzaG91bGQgYmUgc3RvcmVkIHRvIHRoaXMgY2FjaGVfZGlyCiMK
IwltYXgtc2l6ZT1uLCByZWZlcnMgdG8gdGhlIG1heCBvYmplY3Qgc2l6ZSBpbiBieXRlcyB0aGlz
IGNhY2hlX2RpcgojCXN1cHBvcnRzLiAgSXQgaXMgdXNlZCB0byBzZWxlY3QgdGhlIGNhY2hlX2Rp
ciB0byBzdG9yZSB0aGUgb2JqZWN0LgojCU5vdGU6IFRvIG1ha2Ugb3B0aW1hbCB1c2Ugb2YgdGhl
IG1heC1zaXplIGxpbWl0cyB5b3Ugc2hvdWxkIG9yZGVyCiMJdGhlIGNhY2hlX2RpciBsaW5lcyB3
aXRoIHRoZSBzbWFsbGVzdCBtYXgtc2l6ZSB2YWx1ZSBmaXJzdCBhbmQgdGhlCiMJb25lcyB3aXRo
IG5vIG1heC1zaXplIHNwZWNpZmljYXRpb24gbGFzdC4KIwojCU5vdGUgZm9yIGNvc3MsIG1heC1z
aXplIG11c3QgYmUgbGVzcyB0aGFuIENPU1NfTUVNQlVGX1NaLAojCXdoaWNoIGNhbiBiZSBjaGFu
Z2VkIHdpdGggdGhlIC0td2l0aC1jb3NzLW1lbWJ1Zi1zaXplPU4gY29uZmlndXJlCiMJb3B0aW9u
LgojCgojIFVuY29tbWVudCBhbmQgYWRqdXN0IHRoZSBmb2xsb3dpbmcgdG8gYWRkIGEgZGlzayBj
YWNoZSBkaXJlY3RvcnkuCiNjYWNoZV9kaXIgdWZzIC92YXIvc3Bvb2wvc3F1aWQgMTAwIDE2IDI1
NgoKIyAgVEFHOiBzdG9yZV9kaXJfc2VsZWN0X2FsZ29yaXRobQojCVNldCB0aGlzIHRvICdyb3Vu
ZC1yb2JpbicgYXMgYW4gYWx0ZXJuYXRpdmUuCiNEZWZhdWx0OgojIHN0b3JlX2Rpcl9zZWxlY3Rf
YWxnb3JpdGhtIGxlYXN0LWxvYWQKCiMgIFRBRzogbWF4X29wZW5fZGlza19mZHMKIwlUbyBhdm9p
ZCBoYXZpbmcgZGlzayBhcyB0aGUgSS9PIGJvdHRsZW5lY2sgU3F1aWQgY2FuIG9wdGlvbmFsbHkK
IwlieXBhc3MgdGhlIG9uLWRpc2sgY2FjaGUgaWYgbW9yZSB0aGFuIHRoaXMgYW1vdW50IG9mIGRp
c2sgZmlsZQojCWRlc2NyaXB0b3JzIGFyZSBvcGVuLgojCiMJQSB2YWx1ZSBvZiAwIGluZGljYXRl
cyBubyBsaW1pdC4KI0RlZmF1bHQ6CiMgbWF4X29wZW5fZGlza19mZHMgMAoKIyAgVEFHOiBtaW5p
bXVtX29iamVjdF9zaXplCShieXRlcykKIwlPYmplY3RzIHNtYWxsZXIgdGhhbiB0aGlzIHNpemUg
d2lsbCBOT1QgYmUgc2F2ZWQgb24gZGlzay4gIFRoZQojCXZhbHVlIGlzIHNwZWNpZmllZCBpbiBr
aWxvYnl0ZXMsIGFuZCB0aGUgZGVmYXVsdCBpcyAwIEtCLCB3aGljaAojCW1lYW5zIHRoZXJlIGlz
IG5vIG1pbmltdW0uCiNEZWZhdWx0OgojIG1pbmltdW1fb2JqZWN0X3NpemUgMCBLQgoKIyAgVEFH
OiBtYXhpbXVtX29iamVjdF9zaXplCShieXRlcykKIwlPYmplY3RzIGxhcmdlciB0aGFuIHRoaXMg
c2l6ZSB3aWxsIE5PVCBiZSBzYXZlZCBvbiBkaXNrLiAgVGhlCiMJdmFsdWUgaXMgc3BlY2lmaWVk
IGluIGtpbG9ieXRlcywgYW5kIHRoZSBkZWZhdWx0IGlzIDRNQi4gIElmCiMJeW91IHdpc2ggdG8g
Z2V0IGEgaGlnaCBCWVRFUyBoaXQgcmF0aW8sIHlvdSBzaG91bGQgcHJvYmFibHkKIwlpbmNyZWFz
ZSB0aGlzIChvbmUgMzIgTUIgb2JqZWN0IGhpdCBjb3VudHMgZm9yIDMyMDAgMTBLQgojCWhpdHMp
LiAgSWYgeW91IHdpc2ggdG8gaW5jcmVhc2Ugc3BlZWQgbW9yZSB0aGFuIHlvdXIgd2FudCB0bwoj
CXNhdmUgYmFuZHdpZHRoIHlvdSBzaG91bGQgbGVhdmUgdGhpcyBsb3cuCiMKIwlOT1RFOiBpZiB1
c2luZyB0aGUgTEZVREEgcmVwbGFjZW1lbnQgcG9saWN5IHlvdSBzaG91bGQgaW5jcmVhc2UKIwl0
aGlzIHZhbHVlIHRvIG1heGltaXplIHRoZSBieXRlIGhpdCByYXRlIGltcHJvdmVtZW50IG9mIExG
VURBIQojCVNlZSByZXBsYWNlbWVudF9wb2xpY3kgYmVsb3cgZm9yIGEgZGlzY3Vzc2lvbiBvZiB0
aGlzIHBvbGljeS4KI0RlZmF1bHQ6CiMgbWF4aW11bV9vYmplY3Rfc2l6ZSA0MDk2IEtCCgojICBU
QUc6IGNhY2hlX3N3YXBfbG93CShwZXJjZW50LCAwLTEwMCkKIyAgVEFHOiBjYWNoZV9zd2FwX2hp
Z2gJKHBlcmNlbnQsIDAtMTAwKQojCiMJVGhlIGxvdy0gYW5kIGhpZ2gtd2F0ZXIgbWFya3MgZm9y
IGNhY2hlIG9iamVjdCByZXBsYWNlbWVudC4KIwlSZXBsYWNlbWVudCBiZWdpbnMgd2hlbiB0aGUg
c3dhcCAoZGlzaykgdXNhZ2UgaXMgYWJvdmUgdGhlCiMJbG93LXdhdGVyIG1hcmsgYW5kIGF0dGVt
cHRzIHRvIG1haW50YWluIHV0aWxpemF0aW9uIG5lYXIgdGhlCiMJbG93LXdhdGVyIG1hcmsuICBB
cyBzd2FwIHV0aWxpemF0aW9uIGdldHMgY2xvc2UgdG8gaGlnaC13YXRlcgojCW1hcmsgb2JqZWN0
IGV2aWN0aW9uIGJlY29tZXMgbW9yZSBhZ2dyZXNzaXZlLiAgSWYgdXRpbGl6YXRpb24gaXMKIwlj
bG9zZSB0byB0aGUgbG93LXdhdGVyIG1hcmsgbGVzcyByZXBsYWNlbWVudCBpcyBkb25lIGVhY2gg
dGltZS4KIwojCURlZmF1bHRzIGFyZSA5MCUgYW5kIDk1JS4gSWYgeW91IGhhdmUgYSBsYXJnZSBj
YWNoZSwgNSUgY291bGQgYmUKIwlodW5kcmVkcyBvZiBNQi4gSWYgdGhpcyBpcyB0aGUgY2FzZSB5
b3UgbWF5IHdpc2ggdG8gc2V0IHRoZXNlCiMJbnVtYmVycyBjbG9zZXIgdG9nZXRoZXIuCiNEZWZh
dWx0OgojIGNhY2hlX3N3YXBfbG93IDkwCiMgY2FjaGVfc3dhcF9oaWdoIDk1CgojIExPR0ZJTEUg
T1BUSU9OUwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6IGxvZ2Zvcm1hdAojCVVzYWdl
OgojCiMJbG9nZm9ybWF0IDxuYW1lPiA8Zm9ybWF0IHNwZWNpZmljYXRpb24+CiMKIwlEZWZpbmVz
IGFuIGFjY2VzcyBsb2cgZm9ybWF0LgojCiMJVGhlIDxmb3JtYXQgc3BlY2lmaWNhdGlvbj4gaXMg
YSBzdHJpbmcgd2l0aCBlbWJlZGRlZCAlIGZvcm1hdCBjb2RlcwojCiMJJSBmb3JtYXQgY29kZXMg
YWxsIGZvbGxvdyB0aGUgc2FtZSBiYXNpYyBzdHJ1Y3R1cmUgd2hlcmUgYWxsIGJ1dAojCXRoZSBm
b3JtYXRjb2RlIGlzIG9wdGlvbmFsLiBPdXRwdXQgc3RyaW5ncyBhcmUgYXV0b21hdGljYWxseSBl
c2NhcGVkCiMJYXMgcmVxdWlyZWQgYWNjb3JkaW5nIHRvIHRoZWlyIGNvbnRleHQgYW5kIHRoZSBv
dXRwdXQgZm9ybWF0CiMJbW9kaWZpZXJzIGFyZSB1c3VhbGx5IG5vdCBuZWVkZWQsIGJ1dCBjYW4g
YmUgc3BlY2lmaWVkIGlmIGFuIGV4cGxpY2l0CiMJb3V0cHV0IGZvcm1hdCBpcyBkZXNpcmVkLgoj
CiMJCSUgWyJ8W3wnfCNdIFstXSBbWzBdd2lkdGhdIFt7YXJndW1lbnR9XSBmb3JtYXRjb2RlCiMK
IwkJIglvdXRwdXQgaW4gcXVvdGVkIHN0cmluZyBmb3JtYXQKIwkJWwlvdXRwdXQgaW4gc3F1aWQg
dGV4dCBsb2cgZm9ybWF0IGFzIHVzZWQgYnkgbG9nX21pbWVfaGRycwojCQkjCW91dHB1dCBpbiBV
UkwgcXVvdGVkIGZvcm1hdAojCQknCW91dHB1dCBhcy1pcwojCiMJCS0JbGVmdCBhbGlnbmVkCiMJ
CXdpZHRoCWZpZWxkIHdpZHRoLiBJZiBzdGFydGluZyB3aXRoIDAgdGhlCiMJCQlvdXRwdXQgaXMg
emVybyBwYWRkZWQKIwkJe2FyZ30JYXJndW1lbnQgc3VjaCBhcyBoZWFkZXIgbmFtZSBldGMKIwoj
CUZvcm1hdCBjb2RlczoKIwojCQklCWEgbGl0ZXJhbCAlIGNoYXJhY3RlcgojCQk+YQlDbGllbnQg
c291cmNlIElQIGFkZHJlc3MKIwkJPkEJQ2xpZW50IEZRRE4KIwkJPnAJQ2xpZW50IHNvdXJjZSBw
b3J0CiMJCTxBCVNlcnZlciBJUCBhZGRyZXNzIG9yIHBlZXIgbmFtZQojCQlsYQlMb2NhbCBJUCBh
ZGRyZXNzIChodHRwX3BvcnQpCiMJCWxwCUxvY2FsIHBvcnQgbnVtYmVyIChodHRwX3BvcnQpCiMJ
CXRzCVNlY29uZHMgc2luY2UgZXBvY2gKIwkJdHUJc3Vic2Vjb25kIHRpbWUgKG1pbGxpc2Vjb25k
cykKIwkJdGwJTG9jYWwgdGltZS4gT3B0aW9uYWwgc3RyZnRpbWUgZm9ybWF0IGFyZ3VtZW50CiMJ
CQkJZGVmYXVsdCAlZC8lYi8lWTolSDolTTolUyAlegojCQl0ZwlHTVQgdGltZS4gT3B0aW9uYWwg
c3RyZnRpbWUgZm9ybWF0IGFyZ3VtZW50CiMJCQkJZGVmYXVsdCAlZC8lYi8lWTolSDolTTolUyAl
egojCQl0cglSZXNwb25zZSB0aW1lIChtaWxsaXNlY29uZHMpCiMJCWR0CVRvdGFsIHRpbWUgc3Bl
bnQgbWFraW5nIEROUyBsb29rdXBzIChtaWxsaXNlY29uZHMpCiMKIwlIVFRQIGNhY2hlIHJlbGF0
ZWQgZm9ybWF0IGNvZGVzOgojCiMJCVtodHRwOjpdPmgJT3JpZ2luYWwgcmVxdWVzdCBoZWFkZXIu
IE9wdGlvbmFsIGhlYWRlciBuYW1lIGFyZ3VtZW50CiMJCQkJb24gdGhlIGZvcm1hdCBoZWFkZXJb
OltzZXBhcmF0b3JdZWxlbWVudF0KIwkJW2h0dHA6Ol0+aGEJVGhlIEhUVFAgcmVxdWVzdCBoZWFk
ZXJzIGFmdGVyIGFkYXB0YXRpb24gYW5kIHJlZGlyZWN0aW9uLiAKIwkJCQlPcHRpb25hbCBoZWFk
ZXIgbmFtZSBhcmd1bWVudCBhcyBmb3IgPmgKIwkJW2h0dHA6Ol08aAlSZXBseSBoZWFkZXIuIE9w
dGlvbmFsIGhlYWRlciBuYW1lIGFyZ3VtZW50CiMJCQkJYXMgZm9yID5oCiMJCVtodHRwOjpddW4J
VXNlciBuYW1lCiMJCVtodHRwOjpddWwJVXNlciBuYW1lIGZyb20gYXV0aGVudGljYXRpb24KIwkJ
W2h0dHA6Ol11aQlVc2VyIG5hbWUgZnJvbSBpZGVudAojCQlbaHR0cDo6XXVzCVVzZXIgbmFtZSBm
cm9tIFNTTAojCQlbaHR0cDo6XXVlCVVzZXIgbmFtZSBmcm9tIGV4dGVybmFsIGFjbCBoZWxwZXIK
IwkJW2h0dHA6Ol0+SHMJSFRUUCBzdGF0dXMgY29kZSBzZW50IHRvIHRoZSBjbGllbnQKIwkJW2h0
dHA6Ol08SHMJSFRUUCBzdGF0dXMgY29kZSByZWNlaXZlZCBmcm9tIHRoZSBuZXh0IGhvcAojCQlb
aHR0cDo6XVNzCVNxdWlkIHJlcXVlc3Qgc3RhdHVzIChUQ1BfTUlTUyBldGMpCiMJCVtodHRwOjpd
U2gJU3F1aWQgaGllcmFyY2h5IHN0YXR1cyAoREVGQVVMVF9QQVJFTlQgZXRjKQojCQlbaHR0cDo6
XW10CU1JTUUgY29udGVudCB0eXBlCiMJCVtodHRwOjpdcm0JUmVxdWVzdCBtZXRob2QgKEdFVC9Q
T1NUIGV0YykKIwkJW2h0dHA6Ol1ydQlSZXF1ZXN0IFVSTAojCQlbaHR0cDo6XXJwCVJlcXVlc3Qg
VVJMLVBhdGggZXhjbHVkaW5nIGhvc3RuYW1lCiMJCVtodHRwOjpdcnYJUmVxdWVzdCBwcm90b2Nv
bCB2ZXJzaW9uCiMJCVtodHRwOjpdZXQJVGFnIHJldHVybmVkIGJ5IGV4dGVybmFsIGFjbAojCQlb
aHR0cDo6XWVhCUxvZyBzdHJpbmcgcmV0dXJuZWQgYnkgZXh0ZXJuYWwgYWNsCiMJCVtodHRwOjpd
PHN0CVNlbnQgcmVwbHkgc2l6ZSBpbmNsdWRpbmcgSFRUUCBoZWFkZXJzCiMJCVtodHRwOjpdPnN0
CVJlY2VpdmVkIHJlcXVlc3Qgc2l6ZSBpbmNsdWRpbmcgSFRUUCBoZWFkZXJzLiBJbiB0aGUKIwkJ
CQljYXNlIG9mIGNodW5rZWQgcmVxdWVzdHMgdGhlIGNodW5rZWQgZW5jb2RpbmcgbWV0YWRhdGEK
IwkJCQlhcmUgbm90IGluY2x1ZGVkCiMJCVtodHRwOjpdPnNoCVJlY2VpdmVkIEhUVFAgcmVxdWVz
dCBoZWFkZXJzIHNpemUKIwkJW2h0dHA6Ol08c2gJU2VudCBIVFRQIHJlcGx5IGhlYWRlcnMgc2l6
ZQojCQlbaHR0cDo6XXN0CVJlcXVlc3QrUmVwbHkgc2l6ZSBpbmNsdWRpbmcgSFRUUCBoZWFkZXJz
CiMJCVtodHRwOjpdPHNICVJlcGx5IGhpZ2ggb2Zmc2V0IHNlbnQKIwkJW2h0dHA6Ol08c1MJVXBz
dHJlYW0gb2JqZWN0IHNpemUKIwkJW2h0dHA6Ol08cHQJUGVlciByZXNwb25zZSB0aW1lIGluIG1p
bGxpc2Vjb25kcy4gVGhlIHRpbWVyIHN0YXJ0cwojCQkJCXdoZW4gdGhlIGxhc3QgcmVxdWVzdCBi
eXRlIGlzIHNlbnQgdG8gdGhlIG5leHQgaG9wCiMJCQkJYW5kIHN0b3BzIHdoZW4gdGhlIGxhc3Qg
cmVzcG9uc2UgYnl0ZSBpcyByZWNlaXZlZC4KIwkJW2h0dHA6Ol08dHQJVG90YWwgc2VydmVyLXNp
ZGUgdGltZSBpbiBtaWxsaXNlY29uZHMuIFRoZSB0aW1lciAKIwkJCQlzdGFydHMgd2l0aCB0aGUg
Zmlyc3QgY29ubmVjdCByZXF1ZXN0IChvciB3cml0ZSBJL08pCiMJCQkJc2VudCB0byB0aGUgZmly
c3Qgc2VsZWN0ZWQgcGVlci4gVGhlIHRpbWVyIHN0b3BzCiMJCQkJd2l0aCB0aGUgbGFzdCBJL08g
d2l0aCB0aGUgbGFzdCBwZWVyLgojCiMJSWYgSUNBUCBpcyBlbmFibGVkLCB0aGUgZm9sbG93aW5n
IHR3byBjb2RlcyBiZWNvbWUgYXZhaWxhYmxlIChhcwojCXdlbGwgYXMgSUNBUCBsb2cgY29kZXMg
ZG9jdW1lbnRlZCB3aXRoIHRoZSBpY2FwX2xvZyBvcHRpb24pOgojCiMJCWljYXA6OnR0ICAgICAg
ICBUb3RhbCBJQ0FQIHByb2Nlc3NpbmcgdGltZSBmb3IgdGhlIEhUVFAKIwkJCQl0cmFuc2FjdGlv
bi4gVGhlIHRpbWVyIHRpY2tzIHdoZW4gSUNBUAojCQkJCUFDTHMgYXJlIGNoZWNrZWQgYW5kIHdo
ZW4gSUNBUAojCQkJCXRyYW5zYWN0aW9uIGlzIGluIHByb2dyZXNzLgojCiMJCWljYXA6OjxsYXN0
X2gJVGhlIGhlYWRlciBvZiB0aGUgbGFzdCBJQ0FQIHJlc3BvbnNlCiMJCQkJcmVsYXRlZCB0byB0
aGUgSFRUUCB0cmFuc2FjdGlvbi4gTGlrZQojCQkJCTxoLCBhY2NlcHRzIGFuIG9wdGlvbmFsIGhl
YWRlciBuYW1lCiMJCQkJYXJndW1lbnQuICBXaWxsIG5vdCBjaGFuZ2Ugc2VtYW50aWNzCiMJCQkJ
d2hlbiBtdWx0aXBsZSBJQ0FQIHRyYW5zYWN0aW9ucyBwZXIgSFRUUAojCQkJCXRyYW5zYWN0aW9u
IGFyZSBzdXBwb3J0ZWQuCiMKIwlJZiBhZGFwdGF0aW9uIGlzIGVuYWJsZWQgdGhlIGZvbGxvd2lu
ZyB0d28gY29kZXMgYmVjb21lIGF2YWlsYWJsZToKIwojCQlhZGFwdDo6c3VtX3RycyBTdW1tZWQg
YWRhcHRhdGlvbiB0cmFuc2FjdGlvbiByZXNwb25zZQojCQkJCXRpbWVzIHJlY29yZGVkIGFzIGEg
Y29tbWEtc2VwYXJhdGVkIGxpc3QgaW4KIwkJCQl0aGUgb3JkZXIgb2YgdHJhbnNhY3Rpb24gc3Rh
cnQgdGltZS4gRWFjaCB0aW1lCiMJCQkJdmFsdWUgaXMgcmVjb3JkZWQgYXMgYW4gaW50ZWdlciBu
dW1iZXIsCiMJCQkJcmVwcmVzZW50aW5nIHJlc3BvbnNlIHRpbWUgb2Ygb25lIG9yIG1vcmUKIwkJ
CQlhZGFwdGF0aW9uIChJQ0FQIG9yIGVDQVApIHRyYW5zYWN0aW9uIGluCiMJCQkJbWlsbGlzZWNv
bmRzLiAgV2hlbiBhIGZhaWxlZCB0cmFuc2FjdGlvbiBpcwojCQkJCWJlaW5nIHJldHJpZWQgb3Ig
cmVwZWF0ZWQsIGl0cyB0aW1lIGlzIG5vdAojCQkJCWxvZ2dlZCBpbmRpdmlkdWFsbHkgYnV0IGFk
ZGVkIHRvIHRoZQojCQkJCXJlcGxhY2VtZW50IChuZXh0KSB0cmFuc2FjdGlvbi4gU2VlIGFsc286
CiMJCQkJYWRhcHQ6OmFsbF90cnMuCiMKIwkJYWRhcHQ6OmFsbF90cnMgQWxsIGFkYXB0YXRpb24g
dHJhbnNhY3Rpb24gcmVzcG9uc2UgdGltZXMuCiMJCQkJU2FtZSBhcyBhZGFwdGF0aW9uX3N0cnMg
YnV0IHJlc3BvbnNlIHRpbWVzIG9mCiMJCQkJaW5kaXZpZHVhbCB0cmFuc2FjdGlvbnMgYXJlIG5l
dmVyIGFkZGVkCiMJCQkJdG9nZXRoZXIuIEluc3RlYWQsIGFsbCB0cmFuc2FjdGlvbiByZXNwb25z
ZQojCQkJCXRpbWVzIGFyZSByZWNvcmRlZCBpbmRpdmlkdWFsbHkuCiMKIwlZb3UgY2FuIHByZWZp
eCBhZGFwdDo6Kl90cnMgZm9ybWF0IGNvZGVzIHdpdGggYWRhcHRhdGlvbgojCXNlcnZpY2UgbmFt
ZSBpbiBjdXJseSBicmFjZXMgdG8gcmVjb3JkIHJlc3BvbnNlIHRpbWUocykgc3BlY2lmaWMKIwl0
byB0aGF0IHNlcnZpY2UuIEZvciBleGFtcGxlOiAle215X3NlcnZpY2V9YWRhcHQ6OnN1bV90cnMK
IwojCVRoZSBkZWZhdWx0IGZvcm1hdHMgYXZhaWxhYmxlICh3aGljaCBkbyBub3QgbmVlZCByZS1k
ZWZpbmluZykgYXJlOgojCiNsb2dmb3JtYXQgc3F1aWQgJXRzLiUwM3R1ICU2dHIgJT5hICVTcy8l
MDM+SHMgJTxzdCAlcm0gJXJ1ICV1biAlU2gvJTxBICVtdAojbG9nZm9ybWF0IHNxdWlkbWltZSAl
dHMuJTAzdHUgJTZ0ciAlPmEgJVNzLyUwMz5IcyAlPHN0ICVybSAlcnUgJXVuICVTaC8lPEEgJW10
IFslPmhdIFslPGhdCiNsb2dmb3JtYXQgY29tbW9uICU+YSAldWkgJXVuIFsldGxdICIlcm0gJXJ1
IEhUVFAvJXJ2IiAlPkhzICU8c3QgJVNzOiVTaAojbG9nZm9ybWF0IGNvbWJpbmVkICU+YSAldWkg
JXVuIFsldGxdICIlcm0gJXJ1IEhUVFAvJXJ2IiAlPkhzICU8c3QgIiV7UmVmZXJlcn0+aCIgIiV7
VXNlci1BZ2VudH0+aCIgJVNzOiVTaAojRGVmYXVsdDoKIyBub25lCgojICBUQUc6IGFjY2Vzc19s
b2cKIwlUaGVzZSBmaWxlcyBsb2cgY2xpZW50IHJlcXVlc3QgYWN0aXZpdGllcy4gSGFzIGEgbGlu
ZSBldmVyeSBIVFRQIG9yCiMJSUNQIHJlcXVlc3QuIFRoZSBmb3JtYXQgaXM6CiMJYWNjZXNzX2xv
ZyA8ZmlsZXBhdGg+IFs8bG9nZm9ybWF0IG5hbWU+IFthY2wgYWNsIC4uLl1dCiMJYWNjZXNzX2xv
ZyBub25lIFthY2wgYWNsIC4uLl1dCiMKIwlXaWxsIGxvZyB0byB0aGUgc3BlY2lmaWVkIGZpbGUg
dXNpbmcgdGhlIHNwZWNpZmllZCBmb3JtYXQgKHdoaWNoCiMJbXVzdCBiZSBkZWZpbmVkIGluIGEg
bG9nZm9ybWF0IGRpcmVjdGl2ZSkgdGhvc2UgZW50cmllcyB3aGljaCBtYXRjaAojCUFMTCB0aGUg
YWNsJ3Mgc3BlY2lmaWVkICh3aGljaCBtdXN0IGJlIGRlZmluZWQgaW4gYWNsIGNsYXVzZXMpLgoj
CUlmIG5vIGFjbCBpcyBzcGVjaWZpZWQsIGFsbCByZXF1ZXN0cyB3aWxsIGJlIGxvZ2dlZCB0byB0
aGlzIGZpbGUuCiMKIwlUbyBkaXNhYmxlIGxvZ2dpbmcgb2YgYSByZXF1ZXN0IHVzZSB0aGUgZmls
ZXBhdGggIm5vbmUiLCBpbiB3aGljaCBjYXNlCiMJYSBsb2dmb3JtYXQgbmFtZSBzaG91bGQgbm90
IGJlIHNwZWNpZmllZC4KIwojCVRvIGxvZyB0aGUgcmVxdWVzdCB2aWEgc3lzbG9nIHNwZWNpZnkg
YSBmaWxlcGF0aCBvZiAic3lzbG9nIjoKIwojCWFjY2Vzc19sb2cgc3lzbG9nWzpmYWNpbGl0eS5w
cmlvcml0eV0gW2Zvcm1hdCBbYWNsMSBbYWNsMiAuLi4uXV1dCiMJd2hlcmUgZmFjaWxpdHkgY291
bGQgYmUgYW55IG9mOgojCWF1dGhwcml2LCBkYWVtb24sIGxvY2FsMCAuLiBsb2NhbDcgb3IgdXNl
ci4KIwojCUFuZCBwcmlvcml0eSBjb3VsZCBiZSBhbnkgb2Y6CiMJZXJyLCB3YXJuaW5nLCBub3Rp
Y2UsIGluZm8sIGRlYnVnLgojCiMJRGVmYXVsdDoKIwkJYWNjZXNzX2xvZyAvdmFyL2xvZy9zcXVp
ZC9hY2Nlc3MubG9nIHNxdWlkCiNEZWZhdWx0OgojIGFjY2Vzc19sb2cgL3Zhci9sb2cvc3F1aWQv
YWNjZXNzLmxvZyBzcXVpZAoKIyAgVEFHOiBpY2FwX2xvZwojCUlDQVAgbG9nIGZpbGVzIHJlY29y
ZCBJQ0FQIHRyYW5zYWN0aW9uIHN1bW1hcmllcywgb25lIGxpbmUgcGVyCiMJdHJhbnNhY3Rpb24u
CiMKIwlUaGUgaWNhcF9sb2cgb3B0aW9uIGZvcm1hdCBpczoKIwlpY2FwX2xvZyA8ZmlsZXBhdGg+
IFs8bG9nZm9ybWF0IG5hbWU+IFthY2wgYWNsIC4uLl1dCiMJaWNhcF9sb2cgbm9uZSBbYWNsIGFj
bCAuLi5dXQojCQojCVBsZWFzZSBzZWUgYWNjZXNzX2xvZyBvcHRpb24gZG9jdW1lbnRhdGlvbiBm
b3IgZGV0YWlscy4gVGhlIHR3bwojCWtpbmRzIG9mIGxvZ3Mgc2hhcmUgdGhlIG92ZXJhbGwgY29u
ZmlndXJhdGlvbiBhcHByb2FjaCBhbmQgbWFueQojCWZlYXR1cmVzLgojCiMJSUNBUCBwcm9jZXNz
aW5nIG9mIGEgc2luZ2xlIEhUVFAgbWVzc2FnZSBvciB0cmFuc2FjdGlvbiBtYXkKIwlyZXF1aXJl
IG11bHRpcGxlIElDQVAgdHJhbnNhY3Rpb25zLiAgSW4gc3VjaCBjYXNlcywgbXVsdGlwbGUKIwlJ
Q0FQIHRyYW5zYWN0aW9uIGxvZyBsaW5lcyB3aWxsIGNvcnJlc3BvbmQgdG8gYSBzaW5nbGUgYWNj
ZXNzCiMJbG9nIGxpbmUuCiMKIwlJQ0FQIGxvZyB1c2VzIGxvZ2Zvcm1hdCBjb2RlcyB0aGF0IG1h
a2Ugc2Vuc2UgZm9yIGFuIElDQVAKIwl0cmFuc2FjdGlvbi4gSGVhZGVyLXJlbGF0ZWQgY29kZXMg
YXJlIGFwcGxpZWQgdG8gdGhlIEhUVFAgaGVhZGVyCiMJZW1iZWRkZWQgaW4gYW4gSUNBUCBzZXJ2
ZXIgcmVzcG9uc2UsIHdpdGggdGhlIGZvbGxvd2luZyBjYXZlYXRzOgojCUZvciBSRVFNT0QsIHRo
ZXJlIGlzIG5vIEhUVFAgcmVzcG9uc2UgaGVhZGVyIHVubGVzcyB0aGUgSUNBUAojCXNlcnZlciBw
ZXJmb3JtZWQgcmVxdWVzdCBzYXRpc2ZhY3Rpb24uIEZvciBSRVNQTU9ELCB0aGUgSFRUUAojCXJl
cXVlc3QgaGVhZGVyIGlzIHRoZSBoZWFkZXIgc2VudCB0byB0aGUgSUNBUCBzZXJ2ZXIuIEZvcgoj
CU9QVElPTlMsIHRoZXJlIGFyZSBubyBIVFRQIGhlYWRlcnMuCiMKIwlUaGUgZm9sbG93aW5nIGZv
cm1hdCBjb2RlcyBhcmUgYWxzbyBhdmFpbGFibGUgZm9yIElDQVAgbG9nczoKIwojCQlpY2FwOjo8
QQlJQ0FQIHNlcnZlciBJUCBhZGRyZXNzLiBTaW1pbGFyIHRvIDxBLgojCiMJCWljYXA6OjxzZXJ2
aWNlX25hbWUJSUNBUCBzZXJ2aWNlIG5hbWUgZnJvbSB0aGUgaWNhcF9zZXJ2aWNlCiMJCQkJb3B0
aW9uIGluIFNxdWlkIGNvbmZpZ3VyYXRpb24gZmlsZS4KIwojCQlpY2FwOjpydQlJQ0FQIFJlcXVl
c3QtVVJJLiBTaW1pbGFyIHRvIHJ1LgojCiMJCWljYXA6OnJtCUlDQVAgcmVxdWVzdCBtZXRob2Qg
KFJFUU1PRCwgUkVTUE1PRCwgb3IgCiMJCQkJT1BUSU9OUykuIFNpbWlsYXIgdG8gZXhpc3Rpbmcg
cm0uCiMKIwkJaWNhcDo6PnN0CUJ5dGVzIHNlbnQgdG8gdGhlIElDQVAgc2VydmVyIChUQ1AgcGF5
bG9hZAojCQkJCW9ubHk7IGkuZS4sIHdoYXQgU3F1aWQgd3JpdGVzIHRvIHRoZSBzb2NrZXQpLgoj
CiMJCWljYXA6OjxzdAlCeXRlcyByZWNlaXZlZCBmcm9tIHRoZSBJQ0FQIHNlcnZlciAoVENQCiMJ
CQkJcGF5bG9hZCBvbmx5OyBpLmUuLCB3aGF0IFNxdWlkIHJlYWRzIGZyb20KIwkJCQl0aGUgc29j
a2V0KS4KIwojCQlpY2FwOjp0ciAJVHJhbnNhY3Rpb24gcmVzcG9uc2UgdGltZSAoaW4KIwkJCQlt
aWxsaXNlY29uZHMpLiAgVGhlIHRpbWVyIHN0YXJ0cyB3aGVuCiMJCQkJdGhlIElDQVAgdHJhbnNh
Y3Rpb24gaXMgY3JlYXRlZCBhbmQKIwkJCQlzdG9wcyB3aGVuIHRoZSB0cmFuc2FjdGlvbiBpcyBj
b21wbGV0ZWQuCiMJCQkJU2ltaWxhciB0byB0ci4KIwojCQlpY2FwOjp0aW8JVHJhbnNhY3Rpb24g
SS9PIHRpbWUgKGluIG1pbGxpc2Vjb25kcykuIFRoZQojCQkJCXRpbWVyIHN0YXJ0cyB3aGVuIHRo
ZSBmaXJzdCBJQ0FQIHJlcXVlc3QKIwkJCQlieXRlIGlzIHNjaGVkdWxlZCBmb3Igc2VuZGluZy4g
VGhlIHRpbWVycwojCQkJCXN0b3BzIHdoZW4gdGhlIGxhc3QgYnl0ZSBvZiB0aGUgSUNBUCByZXNw
b25zZQojCQkJCWlzIHJlY2VpdmVkLgojCiMJCWljYXA6OnRvIAlUcmFuc2FjdGlvbiBvdXRjb21l
OiBJQ0FQX0VSUiogZm9yIGFsbAojCQkJCXRyYW5zYWN0aW9uIGVycm9ycywgSUNBUF9PUFQgZm9y
IE9QVElPTgojCQkJCXRyYW5zYWN0aW9ucywgSUNBUF9FQ0hPIGZvciAyMDQKIwkJCQlyZXNwb25z
ZXMsIElDQVBfTU9EIGZvciBtZXNzYWdlCiMJCQkJbW9kaWZpY2F0aW9uLCBhbmQgSUNBUF9TQVQg
Zm9yIHJlcXVlc3QKIwkJCQlzYXRpc2ZhY3Rpb24uIFNpbWlsYXIgdG8gU3MuCiMKIwkJaWNhcDo6
SHMJSUNBUCByZXNwb25zZSBzdGF0dXMgY29kZS4gU2ltaWxhciB0byBIcy4KIwojCQlpY2FwOjo+
aAlJQ0FQIHJlcXVlc3QgaGVhZGVyKHMpLiBTaW1pbGFyIHRvID5oLgojCiMJCWljYXA6OjxoCUlD
QVAgcmVzcG9uc2UgaGVhZGVyKHMpLiBTaW1pbGFyIHRvIDxoLgojCiMJVGhlIGRlZmF1bHQgSUNB
UCBsb2cgZm9ybWF0LCB3aGljaCBjYW4gYmUgdXNlZCB3aXRob3V0IGFuIGV4cGxpY2l0CiMJZGVm
aW5pdGlvbiwgaXMgY2FsbGVkIGljYXBfc3F1aWQ6CiMKI2xvZ2Zvcm1hdCBpY2FwX3NxdWlkICV0
cy4lMDN0dSAlNmljYXA6OnRyICU+YSAlaWNhcDo6dG8vJTAzaWNhcDo6SHMgJWljYXA6OjxzaXpl
ICVpY2FwOjpybSAlaWNhcDo6cnUlICV1biAtLyVpY2FwOjo8QSAtCiMKIwlTZWUgYWxzbzogbG9n
Zm9ybWF0LCBsb2dfaWNhcCwgYW5kICVpY2FwOjo8bGFzdF9oIAojRGVmYXVsdDoKIyBub25lCgoj
ICBUQUc6IGxvZ19hY2Nlc3MJYWxsb3d8ZGVueSBhY2wgYWNsLi4uCiMJVGhpcyBvcHRpb25zIGFs
bG93cyB5b3UgdG8gY29udHJvbCB3aGljaCByZXF1ZXN0cyBnZXRzIGxvZ2dlZAojCXRvIGFjY2Vz
cy5sb2cgKHNlZSBhY2Nlc3NfbG9nIGRpcmVjdGl2ZSkuIFJlcXVlc3RzIGRlbmllZCBmb3IKIwls
b2dnaW5nIHdpbGwgYWxzbyBub3QgYmUgYWNjb3VudGVkIGZvciBpbiBwZXJmb3JtYW5jZSBjb3Vu
dGVycy4KIwojCVRoaXMgY2xhdXNlIG9ubHkgc3VwcG9ydHMgZmFzdCBhY2wgdHlwZXMuCiMJU2Vl
IGh0dHA6Ly93aWtpLnNxdWlkLWNhY2hlLm9yZy9TcXVpZEZhcS9TcXVpZEFjbCBmb3IgZGV0YWls
cy4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBsb2dfaWNhcAojCVRoaXMgb3B0aW9ucyBhbGxv
d3MgeW91IHRvIGNvbnRyb2wgd2hpY2ggcmVxdWVzdHMgZ2V0IGxvZ2dlZAojCXRvIGljYXAubG9n
LiBTZWUgdGhlIGljYXBfbG9nIGRpcmVjdGl2ZSBmb3IgSUNBUCBsb2cgZGV0YWlscy4KI0RlZmF1
bHQ6CiMgbm9uZQoKIyAgVEFHOiBjYWNoZV9zdG9yZV9sb2cKIwlMb2dzIHRoZSBhY3Rpdml0aWVz
IG9mIHRoZSBzdG9yYWdlIG1hbmFnZXIuICBTaG93cyB3aGljaAojCW9iamVjdHMgYXJlIGVqZWN0
ZWQgZnJvbSB0aGUgY2FjaGUsIGFuZCB3aGljaCBvYmplY3RzIGFyZQojCXNhdmVkIGFuZCBmb3Ig
aG93IGxvbmcuICBUbyBkaXNhYmxlLCBlbnRlciAibm9uZSIgb3IgcmVtb3ZlIHRoZSBsaW5lLgoj
CVRoZXJlIGFyZSBub3QgcmVhbGx5IHV0aWxpdGllcyB0byBhbmFseXplIHRoaXMgZGF0YSwgc28g
eW91IGNhbiBzYWZlbHkKIwlkaXNhYmxlIGl0LgojCiMJRXhhbXBsZToKIwkJY2FjaGVfc3RvcmVf
bG9nIC92YXIvbG9nL3NxdWlkL3N0b3JlLmxvZwojRGVmYXVsdDoKIyBub25lCgojICBUQUc6IGNh
Y2hlX3N3YXBfc3RhdGUKIwlMb2NhdGlvbiBmb3IgdGhlIGNhY2hlICJzd2FwLnN0YXRlIiBmaWxl
LiBUaGlzIGluZGV4IGZpbGUgaG9sZHMKIwl0aGUgbWV0YWRhdGEgb2Ygb2JqZWN0cyBzYXZlZCBv
biBkaXNrLiAgSXQgaXMgdXNlZCB0byByZWJ1aWxkCiMJdGhlIGNhY2hlIGR1cmluZyBzdGFydHVw
LiAgTm9ybWFsbHkgdGhpcyBmaWxlIHJlc2lkZXMgaW4gZWFjaAojCSdjYWNoZV9kaXInIGRpcmVj
dG9yeSwgYnV0IHlvdSBtYXkgc3BlY2lmeSBhbiBhbHRlcm5hdGUKIwlwYXRobmFtZSBoZXJlLiAg
Tm90ZSB5b3UgbXVzdCBnaXZlIGEgZnVsbCBmaWxlbmFtZSwgbm90IGp1c3QKIwlhIGRpcmVjdG9y
eS4gU2luY2UgdGhpcyBpcyB0aGUgaW5kZXggZm9yIHRoZSB3aG9sZSBvYmplY3QKIwlsaXN0IHlv
dSBDQU5OT1QgcGVyaW9kaWNhbGx5IHJvdGF0ZSBpdCEKIwojCUlmICVzIGNhbiBiZSB1c2VkIGlu
IHRoZSBmaWxlIG5hbWUgaXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIGEKIwlhIHJlcHJlc2VudGF0
aW9uIG9mIHRoZSBjYWNoZV9kaXIgbmFtZSB3aGVyZSBlYWNoIC8gaXMgcmVwbGFjZWQKIwl3aXRo
ICcuJy4gVGhpcyBpcyBuZWVkZWQgdG8gYWxsb3cgYWRkaW5nL3JlbW92aW5nIGNhY2hlX2Rpcgoj
CWxpbmVzIHdoZW4gY2FjaGVfc3dhcF9sb2cgaXMgYmVpbmcgdXNlZC4KIwojCUlmIGhhdmUgbW9y
ZSB0aGFuIG9uZSAnY2FjaGVfZGlyJywgYW5kICVzIGlzIG5vdCB1c2VkIGluIHRoZSBuYW1lCiMJ
dGhlc2Ugc3dhcCBsb2dzIHdpbGwgaGF2ZSBuYW1lcyBzdWNoIGFzOgojCiMJCWNhY2hlX3N3YXBf
bG9nLjAwCiMJCWNhY2hlX3N3YXBfbG9nLjAxCiMJCWNhY2hlX3N3YXBfbG9nLjAyCiMKIwlUaGUg
bnVtYmVyZWQgZXh0ZW5zaW9uICh3aGljaCBpcyBhZGRlZCBhdXRvbWF0aWNhbGx5KQojCWNvcnJl
c3BvbmRzIHRvIHRoZSBvcmRlciBvZiB0aGUgJ2NhY2hlX2RpcicgbGluZXMgaW4gdGhpcwojCWNv
bmZpZ3VyYXRpb24gZmlsZS4gIElmIHlvdSBjaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSAnY2FjaGVf
ZGlyJwojCWxpbmVzIGluIHRoaXMgZmlsZSwgdGhlc2UgaW5kZXggZmlsZXMgd2lsbCBOT1QgY29y
cmVzcG9uZCB0bwojCXRoZSBjb3JyZWN0ICdjYWNoZV9kaXInIGVudHJ5ICh1bmxlc3MgeW91IG1h
bnVhbGx5IHJlbmFtZQojCXRoZW0pLiAgV2UgcmVjb21tZW5kIHlvdSBkbyBOT1QgdXNlIHRoaXMg
b3B0aW9uLiAgSXQgaXMKIwliZXR0ZXIgdG8ga2VlcCB0aGVzZSBpbmRleCBmaWxlcyBpbiBlYWNo
ICdjYWNoZV9kaXInIGRpcmVjdG9yeS4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBsb2dmaWxl
X3JvdGF0ZQojCUFMVCBMaW51eCBpcyB1c2luZyB0aGUgbG9ncm90YXRlIG1lY2hhbmlzbSBhbmQg
dGhlcmVmb3JlIHRoZQojCXJvdGF0aW9uIGlzIGRvbmUgZXh0ZXJuYWx5LCB3aGljaCBtZWFucyBh
IGRlZmF1bHQgb2YgMCBpcwojCXJlcXVpcmVkIGFuZCB0aGVyZWZvcmUgc2V0LiBNb2RpZnkgL2V0
Yy9sb2dyb3RhdGUuZC9zcXVpZCBpbnN0ZWFkLgojCiMJU3BlY2lmaWVzIHRoZSBudW1iZXIgb2Yg
bG9nZmlsZSByb3RhdGlvbnMgdG8gbWFrZSB3aGVuIHlvdQojCXR5cGUgJ3NxdWlkIC1rIHJvdGF0
ZScuIFRoZSBkZWZhdWx0IGlzIDEwLCB3aGljaCB3aWxsIHJvdGF0ZQojCXdpdGggZXh0ZW5zaW9u
cyAwIHRocm91Z2ggOS4gU2V0dGluZyBsb2dmaWxlX3JvdGF0ZSB0byAwIHdpbGwKIwlkaXNhYmxl
IHRoZSBmaWxlIG5hbWUgcm90YXRpb24sIGJ1dCB0aGUgbG9nZmlsZXMgYXJlIHN0aWxsIGNsb3Nl
ZAojCWFuZCByZS1vcGVuZWQuIFRoaXMgd2lsbCBlbmFibGUgeW91IHRvIHJlbmFtZSB0aGUgbG9n
ZmlsZXMKIwl5b3Vyc2VsZiBqdXN0IGJlZm9yZSBzZW5kaW5nIHRoZSByb3RhdGUgc2lnbmFsLgoj
CiMJTm90ZSwgdGhlICdzcXVpZCAtayByb3RhdGUnIGNvbW1hbmQgbm9ybWFsbHkgc2VuZHMgYSBV
U1IxCiMJc2lnbmFsIHRvIHRoZSBydW5uaW5nIHNxdWlkIHByb2Nlc3MuICBJbiBjZXJ0YWluIHNp
dHVhdGlvbnMKIwkoZS5nLiBvbiBMaW51eCB3aXRoIEFzeW5jIEkvTyksIFVTUjEgaXMgdXNlZCBm
b3Igb3RoZXIKIwlwdXJwb3Nlcywgc28gLWsgcm90YXRlIHVzZXMgYW5vdGhlciBzaWduYWwuICBJ
dCBpcyBiZXN0IHRvIGdldAojCWluIHRoZSBoYWJpdCBvZiB1c2luZyAnc3F1aWQgLWsgcm90YXRl
JyBpbnN0ZWFkIG9mICdraWxsIC1VU1IxCiMJPHBpZD4nLgojCiMJTm90ZSwgZnJvbSBTcXVpZC0z
LjEgdGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiB0aGUgY2FjaGUubG9nLAojCXRoYXQgbG9n
IGNhbiBiZSByb3RhdGVkIHNlcGFyYXRlbHkgYnkgdXNpbmcgZGVidWdfb3B0aW9ucwojRGVmYXVs
dDoKIyBsb2dmaWxlX3JvdGF0ZSAwCgojICBUQUc6IGVtdWxhdGVfaHR0cGRfbG9nCW9ufG9mZgoj
CVRoZSBDYWNoZSBjYW4gZW11bGF0ZSB0aGUgbG9nIGZpbGUgZm9ybWF0IHdoaWNoIG1hbnkgJ2h0
dHBkJwojCXByb2dyYW1zIHVzZS4gIFRvIGRpc2FibGUvZW5hYmxlIHRoaXMgZW11bGF0aW9uLCBz
ZXQKIwllbXVsYXRlX2h0dHBkX2xvZyB0byAnb2ZmJyBvciAnb24nLiAgVGhlIGRlZmF1bHQKIwlp
cyB0byB1c2UgdGhlIG5hdGl2ZSBsb2cgZm9ybWF0IHNpbmNlIGl0IGluY2x1ZGVzIHVzZWZ1bAoj
CWluZm9ybWF0aW9uIFNxdWlkLXNwZWNpZmljIGxvZyBhbmFseXplcnMgdXNlLgojRGVmYXVsdDoK
IyBlbXVsYXRlX2h0dHBkX2xvZyBvZmYKCiMgIFRBRzogbG9nX2lwX29uX2RpcmVjdAlvbnxvZmYK
IwlMb2cgdGhlIGRlc3RpbmF0aW9uIElQIGFkZHJlc3MgaW4gdGhlIGhpZXJhcmNoeSBsb2cgdGFn
IHdoZW4gZ29pbmcKIwlkaXJlY3QuIEVhcmxpZXIgU3F1aWQgdmVyc2lvbnMgbG9nZ2VkIHRoZSBo
b3N0bmFtZSBoZXJlLiBJZiB5b3UKIwlwcmVmZXIgdGhlIG9sZCB3YXkgc2V0IHRoaXMgdG8gb2Zm
LgojRGVmYXVsdDoKIyBsb2dfaXBfb25fZGlyZWN0IG9uCgojICBUQUc6IG1pbWVfdGFibGUKIwlQ
YXRobmFtZSB0byBTcXVpZCdzIE1JTUUgdGFibGUuIFlvdSBzaG91bGRuJ3QgbmVlZCB0byBjaGFu
Z2UKIwl0aGlzLCBidXQgdGhlIGRlZmF1bHQgZmlsZSBjb250YWlucyBleGFtcGxlcyBhbmQgZm9y
bWF0dGluZwojCWluZm9ybWF0aW9uIGlmIHlvdSBkby4KI0RlZmF1bHQ6CiMgbWltZV90YWJsZSAv
ZXRjL3NxdWlkL21pbWUuY29uZgoKIyAgVEFHOiBsb2dfbWltZV9oZHJzCW9ufG9mZgojCVRoZSBD
YWNoZSBjYW4gcmVjb3JkIGJvdGggdGhlIHJlcXVlc3QgYW5kIHRoZSByZXNwb25zZSBNSU1FCiMJ
aGVhZGVycyBmb3IgZWFjaCBIVFRQIHRyYW5zYWN0aW9uLiAgVGhlIGhlYWRlcnMgYXJlIGVuY29k
ZWQKIwlzYWZlbHkgYW5kIHdpbGwgYXBwZWFyIGFzIHR3byBicmFja2V0ZWQgZmllbGRzIGF0IHRo
ZSBlbmQgb2YKIwl0aGUgYWNjZXNzIGxvZyAoZm9yIGVpdGhlciB0aGUgbmF0aXZlIG9yIGh0dHBk
LWVtdWxhdGVkIGxvZwojCWZvcm1hdHMpLiAgVG8gZW5hYmxlIHRoaXMgbG9nZ2luZyBzZXQgbG9n
X21pbWVfaGRycyB0byAnb24nLgojRGVmYXVsdDoKIyBsb2dfbWltZV9oZHJzIG9mZgoKIyAgVEFH
OiB1c2VyYWdlbnRfbG9nCiMJU3F1aWQgd2lsbCB3cml0ZSB0aGUgVXNlci1BZ2VudCBmaWVsZCBm
cm9tIEhUVFAgcmVxdWVzdHMKIwl0byB0aGUgZmlsZW5hbWUgc3BlY2lmaWVkIGhlcmUuICBCeSBk
ZWZhdWx0IHVzZXJhZ2VudF9sb2cKIwlpcyBkaXNhYmxlZC4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAg
VEFHOiByZWZlcmVyX2xvZwojCVNxdWlkIHdpbGwgd3JpdGUgdGhlIFJlZmVyZXIgZmllbGQgZnJv
bSBIVFRQIHJlcXVlc3RzIHRvIHRoZQojCWZpbGVuYW1lIHNwZWNpZmllZCBoZXJlLiAgQnkgZGVm
YXVsdCByZWZlcmVyX2xvZyBpcyBkaXNhYmxlZC4KIwlOb3RlIHRoYXQgInJlZmVyZXIiIGlzIGFj
dHVhbGx5IGEgbWlzc3BlbGxpbmcgb2YgInJlZmVycmVyIgojCWhvd2V2ZXIgdGhlIG1pc3NwZWx0
IHZlcnNpb24gaGFzIGJlZW4gYWNjZXB0ZWQgaW50byB0aGUgSFRUUCBSRkNzCiMJYW5kIHdlIGFj
Y2VwdCBib3RoLgojRGVmYXVsdDoKIyBub25lCgojICBUQUc6IHBpZF9maWxlbmFtZQojCUEgZmls
ZW5hbWUgdG8gd3JpdGUgdGhlIHByb2Nlc3MtaWQgdG8uICBUbyBkaXNhYmxlLCBlbnRlciAibm9u
ZSIuCiNEZWZhdWx0OgojIHBpZF9maWxlbmFtZSAvdmFyL3J1bi9zcXVpZC5waWQKCiMgIFRBRzog
bG9nX2ZxZG4Jb258b2ZmCiMJVHVybiB0aGlzIG9uIGlmIHlvdSB3aXNoIHRvIGxvZyBmdWxseSBx
dWFsaWZpZWQgZG9tYWluIG5hbWVzCiMJaW4gdGhlIGFjY2Vzcy5sb2cuIFRvIGRvIHRoaXMgU3F1
aWQgZG9lcyBhIEROUyBsb29rdXAgb2YgYWxsCiMJSVAncyBjb25uZWN0aW5nIHRvIGl0LiBUaGlz
IGNhbiAoaW4gc29tZSBzaXR1YXRpb25zKSBpbmNyZWFzZQojCWxhdGVuY3ksIHdoaWNoIG1ha2Vz
IHlvdXIgY2FjaGUgc2VlbSBzbG93ZXIgZm9yIGludGVyYWN0aXZlCiMJYnJvd3NpbmcuCiNEZWZh
dWx0OgojIGxvZ19mcWRuIG9mZgoKIyAgVEFHOiBjbGllbnRfbmV0bWFzawojCUEgbmV0bWFzayBm
b3IgY2xpZW50IGFkZHJlc3NlcyBpbiBsb2dmaWxlcyBhbmQgY2FjaGVtZ3Igb3V0cHV0LgojCUNo
YW5nZSB0aGlzIHRvIHByb3RlY3QgdGhlIHByaXZhY3kgb2YgeW91ciBjYWNoZSBjbGllbnRzLgoj
CUEgbmV0bWFzayBvZiAyNTUuMjU1LjI1NS4wIHdpbGwgbG9nIGFsbCBJUCdzIGluIHRoYXQgcmFu
Z2Ugd2l0aAojCXRoZSBsYXN0IGRpZ2l0IHNldCB0byAnMCcuCiNEZWZhdWx0OgojIGNsaWVudF9u
ZXRtYXNrIG5vX2FkZHIKCiMgIFRBRzogZm9yd2FyZF9sb2cKIyBOb3RlOiBUaGlzIG9wdGlvbiBp
cyBvbmx5IGF2YWlsYWJsZSBpZiBTcXVpZCBpcyByZWJ1aWx0IHdpdGggdGhlCiMgICAgICAgLURX
SVBfRldEX0xPRyBkZWZpbmUKIwojCUxvZ3MgdGhlIHNlcnZlci1zaWRlIHJlcXVlc3RzLgojCiMJ
VGhpcyBpcyBjdXJyZW50bHkgd29yayBpbiBwcm9ncmVzcy4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAg
VEFHOiBzdHJpcF9xdWVyeV90ZXJtcwojCUJ5IGRlZmF1bHQsIFNxdWlkIHN0cmlwcyBxdWVyeSB0
ZXJtcyBmcm9tIHJlcXVlc3RlZCBVUkxzIGJlZm9yZQojCWxvZ2dpbmcuICBUaGlzIHByb3RlY3Rz
IHlvdXIgdXNlcidzIHByaXZhY3kuCiNEZWZhdWx0OgojIHN0cmlwX3F1ZXJ5X3Rlcm1zIG9uCgoj
ICBUQUc6IGJ1ZmZlcmVkX2xvZ3MJb258b2ZmCiMJY2FjaGUubG9nIGxvZyBmaWxlIGlzIHdyaXR0
ZW4gd2l0aCBzdGRpbyBmdW5jdGlvbnMsIGFuZCBhcyBzdWNoCiMJaXQgY2FuIGJlIGJ1ZmZlcmVk
IG9yIHVuYnVmZmVyZWQuIEJ5IGRlZmF1bHQgaXQgd2lsbCBiZSB1bmJ1ZmZlcmVkLgojCUJ1ZmZl
cmluZyBpdCBjYW4gc3BlZWQgdXAgdGhlIHdyaXRpbmcgc2xpZ2h0bHkgKHRob3VnaCB5b3UgYXJl
CiMJdW5saWtlbHkgdG8gbmVlZCB0byB3b3JyeSB1bmxlc3MgeW91IHJ1biB3aXRoIHRvbnMgb2Yg
ZGVidWdnaW5nCiMJZW5hYmxlZCBpbiB3aGljaCBjYXNlIHBlcmZvcm1hbmNlIHdpbGwgc3VmZmVy
IGJhZGx5IGFueXdheS4uKS4KI0RlZmF1bHQ6CiMgYnVmZmVyZWRfbG9ncyBvZmYKCiMgIFRBRzog
bmV0ZGJfZmlsZW5hbWUKIwlBIGZpbGVuYW1lIHdoZXJlIFNxdWlkIHN0b3JlcyBpdCdzIG5ldGRi
IHN0YXRlIGJldHdlZW4gcmVzdGFydHMuCiMJVG8gZGlzYWJsZSwgZW50ZXIgIm5vbmUiLgojRGVm
YXVsdDoKIyBuZXRkYl9maWxlbmFtZSAvdmFyL2xvZy9zcXVpZC9uZXRkYi5zdGF0ZQoKIyBPUFRJ
T05TIEZPUiBUUk9VQkxFU0hPT1RJTkcKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAgVEFHOiBj
YWNoZV9sb2cKIwlDYWNoZSBsb2dnaW5nIGZpbGUuIFRoaXMgaXMgd2hlcmUgZ2VuZXJhbCBpbmZv
cm1hdGlvbiBhYm91dAojCXlvdXIgY2FjaGUncyBiZWhhdmlvciBnb2VzLiBZb3UgY2FuIGluY3Jl
YXNlIHRoZSBhbW91bnQgb2YgZGF0YQojCWxvZ2dlZCB0byB0aGlzIGZpbGUgYW5kIGhvdyBvZnRl
biBpdHMgcm90YXRlZCB3aXRoICJkZWJ1Z19vcHRpb25zIgojRGVmYXVsdDoKIyBjYWNoZV9sb2cg
L3Zhci9sb2cvc3F1aWQvY2FjaGUubG9nCgojICBUQUc6IGRlYnVnX29wdGlvbnMKIwlMb2dnaW5n
IG9wdGlvbnMgYXJlIHNldCBhcyBzZWN0aW9uLGxldmVsIHdoZXJlIGVhY2ggc291cmNlIGZpbGUK
IwlpcyBhc3NpZ25lZCBhIHVuaXF1ZSBzZWN0aW9uLiAgTG93ZXIgbGV2ZWxzIHJlc3VsdCBpbiBs
ZXNzCiMJb3V0cHV0LCAgRnVsbCBkZWJ1Z2dpbmcgKGxldmVsIDkpIGNhbiByZXN1bHQgaW4gYSB2
ZXJ5IGxhcmdlCiMJbG9nIGZpbGUsIHNvIGJlIGNhcmVmdWwuCiMKIwlUaGUgbWFnaWMgd29yZCAi
QUxMIiBzZXRzIGRlYnVnZ2luZyBsZXZlbHMgZm9yIGFsbCBzZWN0aW9ucy4KIwlXZSByZWNvbW1l
bmQgbm9ybWFsbHkgcnVubmluZyB3aXRoICJBTEwsMSIuCiMKIwlUaGUgcm90YXRlPU4gb3B0aW9u
IGNhbiBiZSB1c2VkIHRvIGtlZXAgbW9yZSBvciBsZXNzIG9mIHRoZXNlIGxvZ3MKIwl0aGFuIHdv
dWxkIG90aGVyd2lzZSBiZSBrZXB0IGJ5IGxvZ2ZpbGVfcm90YXRlLgojCUZvciBtb3N0IHVzZXMg
YSBzaW5nbGUgbG9nIHNob3VsZCBiZSBlbm91Z2ggdG8gbW9uaXRvciBjdXJyZW50CiMJZXZlbnRz
IGFmZmVjdGluZyBTcXVpZC4KI0RlZmF1bHQ6CiMgZGVidWdfb3B0aW9ucyBBTEwsMQoKIyAgVEFH
OiBjb3JlZHVtcF9kaXIKIwlCeSBkZWZhdWx0IFNxdWlkIGxlYXZlcyBjb3JlIGZpbGVzIGluIHRo
ZSBkaXJlY3RvcnkgZnJvbSB3aGVyZQojCWl0IHdhcyBzdGFydGVkLiBJZiB5b3Ugc2V0ICdjb3Jl
ZHVtcF9kaXInIHRvIGEgZGlyZWN0b3J5CiMJdGhhdCBleGlzdHMsIFNxdWlkIHdpbGwgY2hkaXIo
KSB0byB0aGF0IGRpcmVjdG9yeSBhdCBzdGFydHVwCiMJYW5kIGNvcmVkdW1wIGZpbGVzIHdpbGwg
YmUgbGVmdCB0aGVyZS4KIwojRGVmYXVsdDoKIyBjb3JlZHVtcF9kaXIgbm9uZQojCgojIExlYXZl
IGNvcmVkdW1wcyBpbiB0aGUgZmlyc3QgY2FjaGUgZGlyCmNvcmVkdW1wX2RpciAvdmFyL3Nwb29s
L3NxdWlkCgojIE9QVElPTlMgRk9SIEZUUCBHQVRFV0FZSU5HCiMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KCiMgIFRBRzogZnRwX3VzZXIKIwlJZiB5b3Ugd2FudCB0aGUgYW5vbnltb3VzIGxvZ2luIHBh
c3N3b3JkIHRvIGJlIG1vcmUgaW5mb3JtYXRpdmUKIwkoYW5kIGVuYWJsZSB0aGUgdXNlIG9mIHBp
Y2t5IGZ0cCBzZXJ2ZXJzKSwgc2V0IHRoaXMgdG8gc29tZXRoaW5nCiMJcmVhc29uYWJsZSBmb3Ig
eW91ciBkb21haW4sIGxpa2Ugd3d3dXNlckBzb21ld2hlcmUubmV0CiMKIwlUaGUgcmVhc29uIHdo
eSB0aGlzIGlzIGRvbWFpbmxlc3MgYnkgZGVmYXVsdCBpcyB0aGUKIwlyZXF1ZXN0IGNhbiBiZSBt
YWRlIG9uIHRoZSBiZWhhbGYgb2YgYSB1c2VyIGluIGFueSBkb21haW4sCiMJZGVwZW5kaW5nIG9u
IGhvdyB0aGUgY2FjaGUgaXMgdXNlZC4KIwlTb21lIGZ0cCBzZXJ2ZXIgYWxzbyB2YWxpZGF0ZSB0
aGUgZW1haWwgYWRkcmVzcyBpcyB2YWxpZAojCShmb3IgZXhhbXBsZSBwZXJsLmNvbSkuCiNEZWZh
dWx0OgojIGZ0cF91c2VyIFNxdWlkQAoKIyAgVEFHOiBmdHBfbGlzdF93aWR0aAojCVNldHMgdGhl
IHdpZHRoIG9mIGZ0cCBsaXN0aW5ncy4gVGhpcyBzaG91bGQgYmUgc2V0IHRvIGZpdCBpbgojCXRo
ZSB3aWR0aCBvZiBhIHN0YW5kYXJkIGJyb3dzZXIuIFNldHRpbmcgdGhpcyB0b28gc21hbGwKIwlj
YW4gY3V0IG9mZiBsb25nIGZpbGVuYW1lcyB3aGVuIGJyb3dzaW5nIGZ0cCBzaXRlcy4KI0RlZmF1
bHQ6CiMgZnRwX2xpc3Rfd2lkdGggMzIKCiMgIFRBRzogZnRwX3Bhc3NpdmUKIwlJZiB5b3VyIGZp
cmV3YWxsIGRvZXMgbm90IGFsbG93IFNxdWlkIHRvIHVzZSBwYXNzaXZlCiMJY29ubmVjdGlvbnMs
IHR1cm4gb2ZmIHRoaXMgb3B0aW9uLgojCiMJVXNlIG9mIGZ0cF9lcHN2X2FsbCBvcHRpb24gcmVx
dWlyZXMgdGhpcyB0byBiZSBPTi4KI0RlZmF1bHQ6CiMgZnRwX3Bhc3NpdmUgb24KCiMgIFRBRzog
ZnRwX2Vwc3ZfYWxsCiMJRlRQIFByb3RvY29sIGV4dGVuc2lvbnMgcGVybWl0IHRoZSB1c2Ugb2Yg
YSBzcGVjaWFsICJFUFNWIEFMTCIgY29tbWFuZC4KIwojCU5BVHMgbWF5IGJlIGFibGUgdG8gcHV0
IHRoZSBjb25uZWN0aW9uIG9uIGEgImZhc3QgcGF0aCIgdGhyb3VnaCB0aGUKIwl0cmFuc2xhdG9y
LCBhcyB0aGUgRVBSVCBjb21tYW5kIHdpbGwgbmV2ZXIgYmUgdXNlZCBhbmQgdGhlcmVmb3JlLAoj
CXRyYW5zbGF0aW9uIG9mIHRoZSBkYXRhIHBvcnRpb24gb2YgdGhlIHNlZ21lbnRzIHdpbGwgbmV2
ZXIgYmUgbmVlZGVkLgojCiMJV2hlbiBhIGNsaWVudCBvbmx5IGV4cGVjdHMgdG8gZG8gdHdvLXdh
eSBGVFAgdHJhbnNmZXJzIHRoaXMgbWF5IGJlCiMJdXNlZnVsLgojCUlmIHNxdWlkIGZpbmRzIHRo
YXQgaXQgbXVzdCBkbyBhIHRocmVlLXdheSBGVFAgdHJhbnNmZXIgYWZ0ZXIgaXNzdWluZwojCWFu
IEVQU1YgQUxMIGNvbW1hbmQsIHRoZSBGVFAgc2Vzc2lvbiB3aWxsIGZhaWwuCiMKIwlJZiB5b3Ug
aGF2ZSBhbnkgZG91YnRzIGFib3V0IHRoaXMgb3B0aW9uIGRvIG5vdCB1c2UgaXQuCiMJU3F1aWQg
d2lsbCBuaWNlbHkgYXR0ZW1wdCBhbGwgb3RoZXIgY29ubmVjdGlvbiBtZXRob2RzLgojCiMJUmVx
dWlyZXMgZnRwX3Bhc3NpdmUgdG8gYmUgT04gKGRlZmF1bHQpIGZvciBhbnkgZWZmZWN0LgojRGVm
YXVsdDoKIyBmdHBfZXBzdl9hbGwgb2ZmCgojICBUQUc6IGZ0cF9lcHN2CiMJRlRQIFByb3RvY29s
IGV4dGVuc2lvbnMgcGVybWl0IHRoZSB1c2Ugb2YgYSBzcGVjaWFsICJFUFNWIiBjb21tYW5kLgoj
CiMJTkFUcyBtYXkgYmUgYWJsZSB0byBwdXQgdGhlIGNvbm5lY3Rpb24gb24gYSAiZmFzdCBwYXRo
IiB0aHJvdWdoIHRoZQojCXRyYW5zbGF0b3IgdXNpbmcgRVBTViwgYXMgdGhlIEVQUlQgY29tbWFu
ZCB3aWxsIG5ldmVyIGJlIHVzZWQKIwlhbmQgdGhlcmVmb3JlLCB0cmFuc2xhdGlvbiBvZiB0aGUg
ZGF0YSBwb3J0aW9uIG9mIHRoZSBzZWdtZW50cyAKIwl3aWxsIG5ldmVyIGJlIG5lZWRlZC4KIwoj
CVR1cm5pbmcgdGhpcyBPRkYgd2lsbCBwcmV2ZW50IEVQU1YgYmVpbmcgYXR0ZW1wdGVkLgojCVdB
Uk5JTkc6IERvaW5nIHNvIHdpbGwgY29udmVydCBTcXVpZCBiYWNrIHRvIHRoZSBvbGQgYmVoYXZp
b3Igd2l0aCBhbGwKIwl0aGUgcmVsYXRlZCBwcm9ibGVtcyB3aXRoIGV4dGVybmFsIE5BVCBkZXZp
Y2VzL2xheWVycy4KIwojCVJlcXVpcmVzIGZ0cF9wYXNzaXZlIHRvIGJlIE9OIChkZWZhdWx0KSBm
b3IgYW55IGVmZmVjdC4KI0RlZmF1bHQ6CiMgZnRwX2Vwc3Ygb24KCiMgIFRBRzogZnRwX2VwcnQK
IwlGVFAgUHJvdG9jb2wgZXh0ZW5zaW9ucyBwZXJtaXQgdGhlIHVzZSBvZiBhIHNwZWNpYWwgIkVQ
UlQiIGNvbW1hbmQuCiMKIwlUaGlzIGV4dGVuc2lvbiBwcm92aWRlcyBhIHByb3RvY29sIG5ldXRy
YWwgYWx0ZXJuYXRpdmUgdG8gdGhlCiMJSVB2NC1vbmx5IFBPUlQgY29tbWFuZC4gV2hlbiBzdXBw
b3J0ZWQgaXQgZW5hYmxlcyBhY3RpdmUgRlRQIGRhdGEKIwljaGFubmVscyBvdmVyIElQdjYgYW5k
IGVmZmljaWVudCBOQVQgaGFuZGxpbmcuCiMKIwlUdXJuaW5nIHRoaXMgT0ZGIHdpbGwgcHJldmVu
dCBFUFJUIGJlaW5nIGF0dGVtcHRlZCBhbmQgd2lsbCBza2lwCiMJc3RyYWlnaHQgdG8gdXNpbmcg
UE9SVCBmb3IgSVB2NCBzZXJ2ZXJzLgojCiMJU29tZSBkZXZpY2VzIGFyZSBrbm93biB0byBub3Qg
aGFuZGxlIHRoaXMgZXh0ZW5zaW9uIGNvcnJlY3RseSBhbmQKIwltYXkgcmVzdWx0IGluIGNyYXNo
ZXMuIERldmljZXMgd2hpY2ggc3Vwb3J0IEVQUlQgZW5vdWdoIHRvIGZhaWwKIwljbGVhbmx5IHdp
bGwgcmVzdWx0IGluIFNxdWlkIGF0dGVtcHRpbmcgUE9SVCBhbnl3YXkuIFRoaXMgZGlyZWN0aXZl
CiMJc2hvdWxkIG9ubHkgYmUgZGlzYWJsZWQgd2hlbiBFUFJUIHJlc3VsdHMgaW4gZGV2aWNlIGZh
aWx1cmVzLgojCiMJV0FSTklORzogRG9pbmcgc28gd2lsbCBjb252ZXJ0IFNxdWlkIGJhY2sgdG8g
dGhlIG9sZCBiZWhhdmlvciB3aXRoIGFsbAojCXRoZSByZWxhdGVkIHByb2JsZW1zIHdpdGggZXh0
ZXJuYWwgTkFUIGRldmljZXMvbGF5ZXJzIGFuZCBJUHY0LW9ubHkgRlRQLgojRGVmYXVsdDoKIyBm
dHBfZXBydCBvbgoKIyAgVEFHOiBmdHBfc2FuaXR5Y2hlY2sKIwlGb3Igc2VjdXJpdHkgYW5kIGRh
dGEgaW50ZWdyaXR5IHJlYXNvbnMgU3F1aWQgYnkgZGVmYXVsdCBwZXJmb3JtcwojCXNhbml0eSBj
aGVja3Mgb2YgdGhlIGFkZHJlc3NlcyBvZiBGVFAgZGF0YSBjb25uZWN0aW9ucyBlbnN1cmUgdGhl
CiMJZGF0YSBjb25uZWN0aW9uIGlzIHRvIHRoZSByZXF1ZXN0ZWQgc2VydmVyLiBJZiB5b3UgbmVl
ZCB0byBhbGxvdwojCUZUUCBjb25uZWN0aW9ucyB0byBzZXJ2ZXJzIHVzaW5nIGFub3RoZXIgSVAg
YWRkcmVzcyBmb3IgdGhlIGRhdGEKIwljb25uZWN0aW9uIHR1cm4gdGhpcyBvZmYuCiNEZWZhdWx0
OgojIGZ0cF9zYW5pdHljaGVjayBvbgoKIyAgVEFHOiBmdHBfdGVsbmV0X3Byb3RvY29sCiMJVGhl
IEZUUCBwcm90b2NvbCBpcyBvZmZpY2lhbGx5IGRlZmluZWQgdG8gdXNlIHRoZSB0ZWxuZXQgcHJv
dG9jb2wKIwlhcyB0cmFuc3BvcnQgY2hhbm5lbCBmb3IgdGhlIGNvbnRyb2wgY29ubmVjdGlvbi4g
SG93ZXZlciwgbWFueQojCWltcGxlbWVudGF0aW9ucyBhcmUgYnJva2VuIGFuZCBkb2VzIG5vdCBy
ZXNwZWN0IHRoaXMgYXNwZWN0IG9mCiMJdGhlIEZUUCBwcm90b2NvbC4KIwojCUlmIHlvdSBoYXZl
IHRyb3VibGUgYWNjZXNzaW5nIGZpbGVzIHdpdGggQVNDSUkgY29kZSAyNTUgaW4gdGhlCiMJcGF0
aCBvciBzaW1pbGFyIHByb2JsZW1zIGludm9sdmluZyB0aGlzIEFTQ0lJIGNvZGUgeW91IGNhbgoj
CXRyeSBzZXR0aW5nIHRoaXMgZGlyZWN0aXZlIHRvIG9mZi4gSWYgdGhhdCBoZWxwcywgcmVwb3J0
IHRvIHRoZQojCW9wZXJhdG9yIG9mIHRoZSBGVFAgc2VydmVyIGluIHF1ZXN0aW9uIHRoYXQgdGhl
aXIgRlRQIHNlcnZlcgojCWlzIGJyb2tlbiBhbmQgZG9lcyBub3QgZm9sbG93IHRoZSBGVFAgc3Rh
bmRhcmQuCiNEZWZhdWx0OgojIGZ0cF90ZWxuZXRfcHJvdG9jb2wgb24KCiMgT1BUSU9OUyBGT1Ig
RVhURVJOQUwgU1VQUE9SVCBQUk9HUkFNUwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6
IGRpc2tkX3Byb2dyYW0KIwlTcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiB0aGUgZGlza2QgZXhlY3V0
YWJsZS4KIwlOb3RlIHRoaXMgaXMgb25seSB1c2VmdWwgaWYgeW91IGhhdmUgY29tcGlsZWQgaW4K
IwlkaXNrZCBhcyBvbmUgb2YgdGhlIHN0b3JlIGlvIG1vZHVsZXMuCiNEZWZhdWx0OgojIGRpc2tk
X3Byb2dyYW0gL3Vzci9saWIvc3F1aWQvZGlza2QKCiMgIFRBRzogdW5saW5rZF9wcm9ncmFtCiMJ
U3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUgZm9yIGZpbGUgZGVsZXRpb24g
cHJvY2Vzcy4KI0RlZmF1bHQ6CiMgdW5saW5rZF9wcm9ncmFtIC91c3IvbGliL3NxdWlkL3VubGlu
a2QKCiMgIFRBRzogcGluZ2VyX3Byb2dyYW0KIwlTcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiB0aGUg
ZXhlY3V0YWJsZSBmb3IgdGhlIHBpbmdlciBwcm9jZXNzLgojRGVmYXVsdDoKIyBwaW5nZXJfcHJv
Z3JhbSAvdXNyL2xpYi9zcXVpZC9waW5nZXIKCiMgIFRBRzogcGluZ2VyX2VuYWJsZQojCUNvbnRy
b2wgd2hldGhlciB0aGUgcGluZ2VyIGlzIGFjdGl2ZSBhdCBydW4tdGltZS4KIwlFbmFibGVzIHR1
cm5pbmcgSUNNUCBwaW5nZXIgb24gYW5kIG9mZiB3aXRoIGEgc2ltcGxlCiMJc3F1aWQgLWsgcmVj
b25maWd1cmUuCiNEZWZhdWx0OgojIHBpbmdlcl9lbmFibGUgb2ZmCgojIE9QVElPTlMgRk9SIFVS
TCBSRVdSSVRJTkcKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAgVEFHOiB1cmxfcmV3cml0ZV9w
cm9ncmFtCiMJU3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUgZm9yIHRoZSBV
UkwgcmV3cml0ZXIuCiMJU2luY2UgdGhleSBjYW4gcGVyZm9ybSBhbG1vc3QgYW55IGZ1bmN0aW9u
IHRoZXJlIGlzbid0IG9uZSBpbmNsdWRlZC4KIwojCUZvciBlYWNoIHJlcXVlc3RlZCBVUkwgcmV3
cml0ZXIgd2lsbCByZWNlaXZlIG9uIGxpbmUgd2l0aCB0aGUgZm9ybWF0CiMKIwlVUkwgPFNQPiBj
bGllbnRfaXAgIi8iIGZxZG4gPFNQPiB1c2VyIDxTUD4gbWV0aG9kIFs8U1A+IGt2cGFpcnNdPE5M
PgojCiMJSW4gdGhlIGZ1dHVyZSwgdGhlIHJld3JpdGVyIGludGVyZmFjZSB3aWxsIGJlIGV4dGVu
ZGVkIHdpdGgKIwlrZXk9dmFsdWUgcGFpcnMgKCJrdnBhaXJzIiBzaG93biBhYm92ZSkuICBSZXdy
aXRlciBwcm9ncmFtcwojCXNob3VsZCBiZSBwcmVwYXJlZCB0byByZWNlaXZlIGFuZCBwb3NzaWJs
eSBpZ25vcmUgYWRkaXRpb25hbAojCXdoaXRlc3BhY2Utc2VwYXJhdGVkIHRva2VucyBvbiBlYWNo
IGlucHV0IGxpbmUuCiMKIwlBbmQgdGhlIHJld3JpdGVyIG1heSByZXR1cm4gYSByZXdyaXR0ZW4g
VVJMLiBUaGUgb3RoZXIgY29tcG9uZW50cyBvZgojCXRoZSByZXF1ZXN0IGxpbmUgZG9lcyBub3Qg
bmVlZCB0byBiZSByZXR1cm5lZCAoaWdub3JlZCBpZiB0aGV5IGFyZSkuCiMKIwlUaGUgcmV3cml0
ZXIgY2FuIGFsc28gaW5kaWNhdGUgdGhhdCBhIGNsaWVudC1zaWRlIHJlZGlyZWN0IHNob3VsZAoj
CWJlIHBlcmZvcm1lZCB0byB0aGUgbmV3IFVSTC4gVGhpcyBpcyBkb25lIGJ5IHByZWZpeGluZyB0
aGUgcmV0dXJuZWQKIwlVUkwgd2l0aCAiMzAxOiIgKG1vdmVkIHBlcm1hbmVudGx5KSBvciAzMDI6
IChtb3ZlZCB0ZW1wb3JhcmlseSkuCiMKIwlCeSBkZWZhdWx0LCBhIFVSTCByZXdyaXRlciBpcyBu
b3QgdXNlZC4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiB1cmxfcmV3cml0ZV9jaGlsZHJlbgoj
CVRoZSBudW1iZXIgb2YgcmVkaXJlY3RvciBwcm9jZXNzZXMgdG8gc3Bhd24uIElmIHlvdSBzdGFy
dAojCXRvbyBmZXcgU3F1aWQgd2lsbCBoYXZlIHRvIHdhaXQgZm9yIHRoZW0gdG8gcHJvY2VzcyBh
IGJhY2tsb2cgb2YKIwlVUkxzLCBzbG93aW5nIGl0IGRvd24uIElmIHlvdSBzdGFydCB0b28gbWFu
eSB0aGV5IHdpbGwgdXNlIFJBTQojCWFuZCBvdGhlciBzeXN0ZW0gcmVzb3VyY2VzLgojRGVmYXVs
dDoKIyB1cmxfcmV3cml0ZV9jaGlsZHJlbiA1CgojICBUQUc6IHVybF9yZXdyaXRlX2NvbmN1cnJl
bmN5CiMJVGhlIG51bWJlciBvZiByZXF1ZXN0cyBlYWNoIHJlZGlyZWN0b3IgaGVscGVyIGNhbiBo
YW5kbGUgaW4KIwlwYXJhbGxlbC4gRGVmYXVsdHMgdG8gMCB3aGljaCBpbmRpY2F0ZXMgdGhlIHJl
ZGlyZWN0b3IKIwlpcyBhIG9sZC1zdHlsZSBzaW5nbGUgdGhyZWFkZWQgcmVkaXJlY3Rvci4KIwoj
CVdoZW4gdGhpcyBkaXJlY3RpdmUgaXMgc2V0IHRvIGEgdmFsdWUgPj0gMSB0aGVuIHRoZSBwcm90
b2NvbAojCXVzZWQgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgaGVscGVyIGlzIG1vZGlmaWVkIHRv
IGluY2x1ZGUKIwlhIHJlcXVlc3QgSUQgaW4gZnJvbnQgb2YgdGhlIHJlcXVlc3QvcmVzcG9uc2Uu
IFRoZSByZXF1ZXN0CiMJSUQgZnJvbSB0aGUgcmVxdWVzdCBtdXN0IGJlIGVjaG9lZCBiYWNrIHdp
dGggdGhlIHJlc3BvbnNlCiMJdG8gdGhhdCByZXF1ZXN0LgojRGVmYXVsdDoKIyB1cmxfcmV3cml0
ZV9jb25jdXJyZW5jeSAwCgojICBUQUc6IHVybF9yZXdyaXRlX2hvc3RfaGVhZGVyCiMJQnkgZGVm
YXVsdCBTcXVpZCByZXdyaXRlcyBhbnkgSG9zdDogaGVhZGVyIGluIHJlZGlyZWN0ZWQKIwlyZXF1
ZXN0cy4gIElmIHlvdSBhcmUgcnVubmluZyBhbiBhY2NlbGVyYXRvciB0aGlzIG1heQojCW5vdCBi
ZSBhIHdhbnRlZCBlZmZlY3Qgb2YgYSByZWRpcmVjdG9yLgojCiMJV0FSTklORzogRW50cmllcyBh
cmUgY2FjaGVkIG9uIHRoZSByZXN1bHQgb2YgdGhlIFVSTCByZXdyaXRpbmcKIwlwcm9jZXNzLCBz
byBiZSBjYXJlZnVsIGlmIHlvdSBoYXZlIGRvbWFpbi12aXJ0dWFsIGhvc3RzLgojRGVmYXVsdDoK
IyB1cmxfcmV3cml0ZV9ob3N0X2hlYWRlciBvbgoKIyAgVEFHOiB1cmxfcmV3cml0ZV9hY2Nlc3MK
IwlJZiBkZWZpbmVkLCB0aGlzIGFjY2VzcyBsaXN0IHNwZWNpZmllcyB3aGljaCByZXF1ZXN0cyBh
cmUKIwlzZW50IHRvIHRoZSByZWRpcmVjdG9yIHByb2Nlc3Nlcy4gIEJ5IGRlZmF1bHQgYWxsIHJl
cXVlc3RzCiMJYXJlIHNlbnQuCiMKIwlUaGlzIGNsYXVzZSBzdXBwb3J0cyBib3RoIGZhc3QgYW5k
IHNsb3cgYWNsIHR5cGVzLgojCVNlZSBodHRwOi8vd2lraS5zcXVpZC1jYWNoZS5vcmcvU3F1aWRG
YXEvU3F1aWRBY2wgZm9yIGRldGFpbHMuCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogdXJsX3Jl
d3JpdGVfYnlwYXNzCiMJV2hlbiB0aGlzIGlzICdvbicsIGEgcmVxdWVzdCB3aWxsIG5vdCBnbyB0
aHJvdWdoIHRoZQojCXJlZGlyZWN0b3IgaWYgYWxsIHJlZGlyZWN0b3JzIGFyZSBidXN5LiAgSWYg
dGhpcyBpcyAnb2ZmJwojCWFuZCB0aGUgcmVkaXJlY3RvciBxdWV1ZSBncm93cyB0b28gbGFyZ2Us
IFNxdWlkIHdpbGwgZXhpdAojCXdpdGggYSBGQVRBTCBlcnJvciBhbmQgYXNrIHlvdSB0byBpbmNy
ZWFzZSB0aGUgbnVtYmVyIG9mCiMJcmVkaXJlY3RvcnMuICBZb3Ugc2hvdWxkIG9ubHkgZW5hYmxl
IHRoaXMgaWYgdGhlIHJlZGlyZWN0b3JzCiMJYXJlIG5vdCBjcml0aWNhbCB0byB5b3VyIGNhY2hp
bmcgc3lzdGVtLiAgSWYgeW91IHVzZQojCXJlZGlyZWN0b3JzIGZvciBhY2Nlc3MgY29udHJvbCwg
YW5kIHlvdSBlbmFibGUgdGhpcyBvcHRpb24sCiMJdXNlcnMgbWF5IGhhdmUgYWNjZXNzIHRvIHBh
Z2VzIHRoZXkgc2hvdWxkIG5vdAojCWJlIGFsbG93ZWQgdG8gcmVxdWVzdC4KI0RlZmF1bHQ6CiMg
dXJsX3Jld3JpdGVfYnlwYXNzIG9mZgoKIyBPUFRJT05TIEZPUiBUVU5JTkcgVEhFIENBQ0hFCiMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgIFRBRzogY2FjaGUKIwlBIGxpc3Qgb2YgQUNMIGVsZW1l
bnRzIHdoaWNoLCBpZiBtYXRjaGVkIGFuZCBkZW5pZWQsIGNhdXNlIHRoZSByZXF1ZXN0IHRvCiMJ
bm90IGJlIHNhdGlzZmllZCBmcm9tIHRoZSBjYWNoZSBhbmQgdGhlIHJlcGx5IHRvIG5vdCBiZSBj
YWNoZWQuCiMJSW4gb3RoZXIgd29yZHMsIHVzZSB0aGlzIHRvIGZvcmNlIGNlcnRhaW4gb2JqZWN0
cyB0byBuZXZlciBiZSBjYWNoZWQuCiMKIwlZb3UgbXVzdCB1c2UgdGhlIHdvcmRzICdhbGxvdycg
b3IgJ2RlbnknIHRvIGluZGljYXRlIHdoZXRoZXIgaXRlbXMKIwltYXRjaGluZyB0aGUgQUNMIHNo
b3VsZCBiZSBhbGxvd2VkIG9yIGRlbmllZCBpbnRvIHRoZSBjYWNoZS4KIwojCURlZmF1bHQgaXMg
dG8gYWxsb3cgYWxsIHRvIGJlIGNhY2hlZC4KIwojCVRoaXMgY2xhdXNlIHN1cHBvcnRzIGJvdGgg
ZmFzdCBhbmQgc2xvdyBhY2wgdHlwZXMuCiMJU2VlIGh0dHA6Ly93aWtpLnNxdWlkLWNhY2hlLm9y
Zy9TcXVpZEZhcS9TcXVpZEFjbCBmb3IgZGV0YWlscy4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFH
OiByZWZyZXNoX3BhdHRlcm4KIwl1c2FnZTogcmVmcmVzaF9wYXR0ZXJuIFstaV0gcmVnZXggbWlu
IHBlcmNlbnQgbWF4IFtvcHRpb25zXQojCiMJQnkgZGVmYXVsdCwgcmVndWxhciBleHByZXNzaW9u
cyBhcmUgQ0FTRS1TRU5TSVRJVkUuICBUbyBtYWtlCiMJdGhlbSBjYXNlLWluc2Vuc2l0aXZlLCB1
c2UgdGhlIC1pIG9wdGlvbi4KIwojCSdNaW4nIGlzIHRoZSB0aW1lIChpbiBtaW51dGVzKSBhbiBv
YmplY3Qgd2l0aG91dCBhbiBleHBsaWNpdAojCWV4cGlyeSB0aW1lIHNob3VsZCBiZSBjb25zaWRl
cmVkIGZyZXNoLiBUaGUgcmVjb21tZW5kZWQKIwl2YWx1ZSBpcyAwLCBhbnkgaGlnaGVyIHZhbHVl
cyBtYXkgY2F1c2UgZHluYW1pYyBhcHBsaWNhdGlvbnMKIwl0byBiZSBlcnJvbmVvdXNseSBjYWNo
ZWQgdW5sZXNzIHRoZSBhcHBsaWNhdGlvbiBkZXNpZ25lcgojCWhhcyB0YWtlbiB0aGUgYXBwcm9w
cmlhdGUgYWN0aW9ucy4KIwojCSdQZXJjZW50JyBpcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIG9iamVj
dHMgYWdlICh0aW1lIHNpbmNlIGxhc3QKIwltb2RpZmljYXRpb24gYWdlKSBhbiBvYmplY3Qgd2l0
aG91dCBleHBsaWNpdCBleHBpcnkgdGltZQojCXdpbGwgYmUgY29uc2lkZXJlZCBmcmVzaC4KIwoj
CSdNYXgnIGlzIGFuIHVwcGVyIGxpbWl0IG9uIGhvdyBsb25nIG9iamVjdHMgd2l0aG91dCBhbiBl
eHBsaWNpdAojCWV4cGlyeSB0aW1lIHdpbGwgYmUgY29uc2lkZXJlZCBmcmVzaC4KIwojCW9wdGlv
bnM6IG92ZXJyaWRlLWV4cGlyZQojCQkgb3ZlcnJpZGUtbGFzdG1vZAojCQkgcmVsb2FkLWludG8t
aW1zCiMJCSBpZ25vcmUtcmVsb2FkCiMJCSBpZ25vcmUtbm8tY2FjaGUKIwkJIGlnbm9yZS1uby1z
dG9yZQojCQkgaWdub3JlLW11c3QtcmV2YWxpZGF0ZQojCQkgaWdub3JlLXByaXZhdGUKIwkJIGln
bm9yZS1hdXRoCiMJCSByZWZyZXNoLWltcwojCiMJCW92ZXJyaWRlLWV4cGlyZSBlbmZvcmNlcyBt
aW4gYWdlIGV2ZW4gaWYgdGhlIHNlcnZlcgojCQlzZW50IGFuIGV4cGxpY2l0IGV4cGlyeSB0aW1l
IChlLmcuLCB3aXRoIHRoZQojCQlFeHBpcmVzOiBoZWFkZXIgb3IgQ2FjaGUtQ29udHJvbDogbWF4
LWFnZSkuIERvaW5nIHRoaXMKIwkJVklPTEFURVMgdGhlIEhUVFAgc3RhbmRhcmQuICBFbmFibGlu
ZyB0aGlzIGZlYXR1cmUKIwkJY291bGQgbWFrZSB5b3UgbGlhYmxlIGZvciBwcm9ibGVtcyB3aGlj
aCBpdCBjYXVzZXMuCiMKIwkJTm90ZTogb3ZlcnJpZGUtZXhwaXJlIGRvZXMgbm90IGVuZm9yY2Ug
c3RhbGVuZXNzIC0gaXQgb25seSBleHRlbmRzCiMJCWZyZXNobmVzcyAvIG1pbi4gSWYgdGhlIHNl
cnZlciByZXR1cm5zIGEgRXhwaXJlcyB0aW1lIHdoaWNoCiMJCWlzIGxvbmdlciB0aGFuIHlvdXIg
bWF4IHRpbWUsIFNxdWlkIHdpbGwgc3RpbGwgY29uc2lkZXIKIwkJdGhlIG9iamVjdCBmcmVzaCBm
b3IgdGhhdCBwZXJpb2Qgb2YgdGltZS4KIwojCQlvdmVycmlkZS1sYXN0bW9kIGVuZm9yY2VzIG1p
biBhZ2UgZXZlbiBvbiBvYmplY3RzCiMJCXRoYXQgd2VyZSBtb2RpZmllZCByZWNlbnRseS4KIwoj
CQlyZWxvYWQtaW50by1pbXMgY2hhbmdlcyBjbGllbnQgbm8tY2FjaGUgb3IgYGByZWxvYWQnJwoj
CQl0byBJZi1Nb2RpZmllZC1TaW5jZSByZXF1ZXN0cy4gRG9pbmcgdGhpcyBWSU9MQVRFUyB0aGUK
IwkJSFRUUCBzdGFuZGFyZC4gRW5hYmxpbmcgdGhpcyBmZWF0dXJlIGNvdWxkIG1ha2UgeW91CiMJ
CWxpYWJsZSBmb3IgcHJvYmxlbXMgd2hpY2ggaXQgY2F1c2VzLgojCiMJCWlnbm9yZS1yZWxvYWQg
aWdub3JlcyBhIGNsaWVudCBuby1jYWNoZSBvciBgYHJlbG9hZCcnCiMJCWhlYWRlci4gRG9pbmcg
dGhpcyBWSU9MQVRFUyB0aGUgSFRUUCBzdGFuZGFyZC4gRW5hYmxpbmcKIwkJdGhpcyBmZWF0dXJl
IGNvdWxkIG1ha2UgeW91IGxpYWJsZSBmb3IgcHJvYmxlbXMgd2hpY2gKIwkJaXQgY2F1c2VzLgoj
CiMJCWlnbm9yZS1uby1jYWNoZSBpZ25vcmVzIGFueSBgYFByYWdtYTogbm8tY2FjaGUnJyBhbmQK
IwkJYGBDYWNoZS1jb250cm9sOiBuby1jYWNoZScnIGhlYWRlcnMgcmVjZWl2ZWQgZnJvbSBhIHNl
cnZlci4KIwkJVGhlIEhUVFAgUkZDIG5ldmVyIGFsbG93cyB0aGUgdXNlIG9mIHRoaXMgKFByYWdt
YSkgaGVhZGVyCiMJCWZyb20gYSBzZXJ2ZXIsIG9ubHkgYSBjbGllbnQsIHRob3VnaCBwbGVudHkg
b2Ygc2VydmVycwojCQlzZW5kIGl0IGFueXdheS4KIwojCQlpZ25vcmUtbm8tc3RvcmUgaWdub3Jl
cyBhbnkgYGBDYWNoZS1jb250cm9sOiBuby1zdG9yZScnCiMJCWhlYWRlcnMgcmVjZWl2ZWQgZnJv
bSBhIHNlcnZlci4gRG9pbmcgdGhpcyBWSU9MQVRFUwojCQl0aGUgSFRUUCBzdGFuZGFyZC4gRW5h
YmxpbmcgdGhpcyBmZWF0dXJlIGNvdWxkIG1ha2UgeW91CiMJCWxpYWJsZSBmb3IgcHJvYmxlbXMg
d2hpY2ggaXQgY2F1c2VzLgojCiMJCWlnbm9yZS1tdXN0LXJldmFsaWRhdGUgaWdub3JlcyBhbnkg
YGBDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGVgYAojCQloZWFkZXJzIHJlY2VpdmVkIGZy
b20gYSBzZXJ2ZXIuIERvaW5nIHRoaXMgVklPTEFURVMKIwkJdGhlIEhUVFAgc3RhbmRhcmQuIEVu
YWJsaW5nIHRoaXMgZmVhdHVyZSBjb3VsZCBtYWtlIHlvdQojCQlsaWFibGUgZm9yIHByb2JsZW1z
IHdoaWNoIGl0IGNhdXNlcy4KIwojCQlpZ25vcmUtcHJpdmF0ZSBpZ25vcmVzIGFueSBgYENhY2hl
LWNvbnRyb2w6IHByaXZhdGUnJwojCQloZWFkZXJzIHJlY2VpdmVkIGZyb20gYSBzZXJ2ZXIuIERv
aW5nIHRoaXMgVklPTEFURVMKIwkJdGhlIEhUVFAgc3RhbmRhcmQuIEVuYWJsaW5nIHRoaXMgZmVh
dHVyZSBjb3VsZCBtYWtlIHlvdQojCQlsaWFibGUgZm9yIHByb2JsZW1zIHdoaWNoIGl0IGNhdXNl
cy4KIwojCQlpZ25vcmUtYXV0aCBjYWNoZXMgcmVzcG9uc2VzIHRvIHJlcXVlc3RzIHdpdGggYXV0
aG9yaXphdGlvbiwKIwkJYXMgaWYgdGhlIG9yaWdpbnNlcnZlciBoYWQgc2VudCBgYENhY2hlLWNv
bnRyb2w6IHB1YmxpYycnCiMJCWluIHRoZSByZXNwb25zZSBoZWFkZXIuIERvaW5nIHRoaXMgVklP
TEFURVMgdGhlIEhUVFAgc3RhbmRhcmQuCiMJCUVuYWJsaW5nIHRoaXMgZmVhdHVyZSBjb3VsZCBt
YWtlIHlvdSBsaWFibGUgZm9yIHByb2JsZW1zIHdoaWNoCiMJCWl0IGNhdXNlcy4KIwojCQlyZWZy
ZXNoLWltcyBjYXVzZXMgc3F1aWQgdG8gY29udGFjdCB0aGUgb3JpZ2luIHNlcnZlcgojCQl3aGVu
IGEgY2xpZW50IGlzc3VlcyBhbiBJZi1Nb2RpZmllZC1TaW5jZSByZXF1ZXN0LiBUaGlzCiMJCWVu
c3VyZXMgdGhhdCB0aGUgY2xpZW50IHdpbGwgcmVjZWl2ZSBhbiB1cGRhdGVkIHZlcnNpb24KIwkJ
aWYgb25lIGlzIGF2YWlsYWJsZS4KIwojCUJhc2ljYWxseSBhIGNhY2hlZCBvYmplY3QgaXM6CiMK
IwkJRlJFU0ggaWYgZXhwaXJlcyA8IG5vdywgZWxzZSBTVEFMRQojCQlTVEFMRSBpZiBhZ2UgPiBt
YXgKIwkJRlJFU0ggaWYgbG0tZmFjdG9yIDwgcGVyY2VudCwgZWxzZSBTVEFMRQojCQlGUkVTSCBp
ZiBhZ2UgPCBtaW4KIwkJZWxzZSBTVEFMRQojCiMJVGhlIHJlZnJlc2hfcGF0dGVybiBsaW5lcyBh
cmUgY2hlY2tlZCBpbiB0aGUgb3JkZXIgbGlzdGVkIGhlcmUuCiMJVGhlIGZpcnN0IGVudHJ5IHdo
aWNoIG1hdGNoZXMgaXMgdXNlZC4gIElmIG5vbmUgb2YgdGhlIGVudHJpZXMKIwltYXRjaCB0aGUg
ZGVmYXVsdCB3aWxsIGJlIHVzZWQuCiMKIwlOb3RlLCB5b3UgbXVzdCB1bmNvbW1lbnQgYWxsIHRo
ZSBkZWZhdWx0IGxpbmVzIGlmIHlvdSB3YW50CiMJdG8gY2hhbmdlIG9uZS4gVGhlIGRlZmF1bHQg
c2V0dGluZyBpcyBvbmx5IGFjdGl2ZSBpZiBub25lIGlzCiMJdXNlZC4KIwojCgojIEFkZCBhbnkg
b2YgeW91ciBvd24gcmVmcmVzaF9wYXR0ZXJuIGVudHJpZXMgYWJvdmUgdGhlc2UuCnJlZnJlc2hf
cGF0dGVybiBeZnRwOgkJMTQ0MAkyMCUJMTAwODAKcmVmcmVzaF9wYXR0ZXJuIF5nb3BoZXI6CTE0
NDAJMCUJMTQ0MApyZWZyZXNoX3BhdHRlcm4gLWkgKC9jZ2ktYmluL3xcPykgMAkwJQkwCnJlZnJl
c2hfcGF0dGVybiAuCQkwCTIwJQk0MzIwCgojICBUQUc6IHF1aWNrX2Fib3J0X21pbgkoS0IpCiMg
IFRBRzogcXVpY2tfYWJvcnRfbWF4CShLQikKIyAgVEFHOiBxdWlja19hYm9ydF9wY3QJKHBlcmNl
bnQpCiMJVGhlIGNhY2hlIGJ5IGRlZmF1bHQgY29udGludWVzIGRvd25sb2FkaW5nIGFib3J0ZWQg
cmVxdWVzdHMKIwl3aGljaCBhcmUgYWxtb3N0IGNvbXBsZXRlZCAobGVzcyB0aGFuIDE2IEtCIHJl
bWFpbmluZykuIFRoaXMKIwltYXkgYmUgdW5kZXNpcmFibGUgb24gc2xvdyAoZS5nLiBTTElQKSBs
aW5rcyBhbmQvb3IgdmVyeSBidXN5CiMJY2FjaGVzLiAgSW1wYXRpZW50IHVzZXJzIG1heSB0aWUg
dXAgZmlsZSBkZXNjcmlwdG9ycyBhbmQKIwliYW5kd2lkdGggYnkgcmVwZWF0ZWRseSByZXF1ZXN0
aW5nIGFuZCBpbW1lZGlhdGVseSBhYm9ydGluZwojCWRvd25sb2Fkcy4KIwojCVdoZW4gdGhlIHVz
ZXIgYWJvcnRzIGEgcmVxdWVzdCwgU3F1aWQgd2lsbCBjaGVjayB0aGUKIwlxdWlja19hYm9ydCB2
YWx1ZXMgdG8gdGhlIGFtb3VudCBvZiBkYXRhIHRyYW5zZmVyZWQgdW50aWwKIwl0aGVuLgojCiMJ
SWYgdGhlIHRyYW5zZmVyIGhhcyBsZXNzIHRoYW4gJ3F1aWNrX2Fib3J0X21pbicgS0IgcmVtYWlu
aW5nLAojCWl0IHdpbGwgZmluaXNoIHRoZSByZXRyaWV2YWwuCiMKIwlJZiB0aGUgdHJhbnNmZXIg
aGFzIG1vcmUgdGhhbiAncXVpY2tfYWJvcnRfbWF4JyBLQiByZW1haW5pbmcsCiMJaXQgd2lsbCBh
Ym9ydCB0aGUgcmV0cmlldmFsLgojCiMJSWYgbW9yZSB0aGFuICdxdWlja19hYm9ydF9wY3QnIG9m
IHRoZSB0cmFuc2ZlciBoYXMgY29tcGxldGVkLAojCWl0IHdpbGwgZmluaXNoIHRoZSByZXRyaWV2
YWwuCiMKIwlJZiB5b3UgZG8gbm90IHdhbnQgYW55IHJldHJpZXZhbCB0byBjb250aW51ZSBhZnRl
ciB0aGUgY2xpZW50CiMJaGFzIGFib3J0ZWQsIHNldCBib3RoICdxdWlja19hYm9ydF9taW4nIGFu
ZCAncXVpY2tfYWJvcnRfbWF4JwojCXRvICcwIEtCJy4KIwojCUlmIHlvdSB3YW50IHJldHJpZXZh
bHMgdG8gYWx3YXlzIGNvbnRpbnVlIGlmIHRoZXkgYXJlIGJlaW5nCiMJY2FjaGVkIHNldCAncXVp
Y2tfYWJvcnRfbWluJyB0byAnLTEgS0InLgojRGVmYXVsdDoKIyBxdWlja19hYm9ydF9taW4gMTYg
S0IKIyBxdWlja19hYm9ydF9tYXggMTYgS0IKIyBxdWlja19hYm9ydF9wY3QgOTUKCiMgIFRBRzog
cmVhZF9haGVhZF9nYXAJYnVmZmVyLXNpemUKIwlUaGUgYW1vdW50IG9mIGRhdGEgdGhlIGNhY2hl
IHdpbGwgYnVmZmVyIGFoZWFkIG9mIHdoYXQgaGFzIGJlZW4KIwlzZW50IHRvIHRoZSBjbGllbnQg
d2hlbiByZXRyaWV2aW5nIGFuIG9iamVjdCBmcm9tIGFub3RoZXIgc2VydmVyLgojRGVmYXVsdDoK
IyByZWFkX2FoZWFkX2dhcCAxNiBLQgoKIyAgVEFHOiBuZWdhdGl2ZV90dGwJdGltZS11bml0cwoj
CVNldCB0aGUgRGVmYXVsdCBUaW1lLXRvLUxpdmUgKFRUTCkgZm9yIGZhaWxlZCByZXF1ZXN0cy4K
IwlDZXJ0YWluIHR5cGVzIG9mIGZhaWx1cmVzIChzdWNoIGFzICJjb25uZWN0aW9uIHJlZnVzZWQi
IGFuZAojCSI0MDQgTm90IEZvdW5kIikgYXJlIGFibGUgdG8gYmUgbmVnYXRpdmVseS1jYWNoZWQg
Zm9yIGEgc2hvcnQgdGltZS4KIwlNb2Rlcm4gd2ViIHNlcnZlcnMgc2hvdWxkIHByb3ZpZGUgRXhw
aXJlczogaGVhZGVyLCBob3dldmVyIGlmIHRoZXkKIwlkbyBub3QgdGhpcyBjYW4gcHJvdmlkZSBh
IG1pbmltdW0gVFRMLgojCVRoZSBkZWZhdWx0IGlzIG5vdCB0byBjYWNoZSBlcnJvcnMgd2l0aCB1
bmtub3duIGV4cGlyeSBkZXRhaWxzLgojCiMJTm90ZSB0aGF0IHRoaXMgaXMgZGlmZmVyZW50IGZy
b20gbmVnYXRpdmUgY2FjaGluZyBvZiBETlMgbG9va3Vwcy4KIwojCVdBUk5JTkc6IERvaW5nIHRo
aXMgVklPTEFURVMgdGhlIEhUVFAgc3RhbmRhcmQuICBFbmFibGluZwojCXRoaXMgZmVhdHVyZSBj
b3VsZCBtYWtlIHlvdSBsaWFibGUgZm9yIHByb2JsZW1zIHdoaWNoIGl0CiMJY2F1c2VzLgojRGVm
YXVsdDoKIyBuZWdhdGl2ZV90dGwgMCBzZWNvbmRzCgojICBUQUc6IHBvc2l0aXZlX2Ruc190dGwJ
dGltZS11bml0cwojCVVwcGVyIGxpbWl0IG9uIGhvdyBsb25nIFNxdWlkIHdpbGwgY2FjaGUgcG9z
aXRpdmUgRE5TIHJlc3BvbnNlcy4KIwlEZWZhdWx0IGlzIDYgaG91cnMgKDM2MCBtaW51dGVzKS4g
VGhpcyBkaXJlY3RpdmUgbXVzdCBiZSBzZXQKIwlsYXJnZXIgdGhhbiBuZWdhdGl2ZV9kbnNfdHRs
LgojRGVmYXVsdDoKIyBwb3NpdGl2ZV9kbnNfdHRsIDYgaG91cnMKCiMgIFRBRzogbmVnYXRpdmVf
ZG5zX3R0bAl0aW1lLXVuaXRzCiMJVGltZS10by1MaXZlIChUVEwpIGZvciBuZWdhdGl2ZSBjYWNo
aW5nIG9mIGZhaWxlZCBETlMgbG9va3Vwcy4KIwlUaGlzIGFsc28gc2V0cyB0aGUgbG93ZXIgY2Fj
aGUgbGltaXQgb24gcG9zaXRpdmUgbG9va3Vwcy4KIwlNaW5pbXVtIHZhbHVlIGlzIDEgc2Vjb25k
LCBhbmQgaXQgaXMgbm90IHJlY29tbWVuZGFibGUgdG8gZ28KIwltdWNoIGJlbG93IDEwIHNlY29u
ZHMuCiNEZWZhdWx0OgojIG5lZ2F0aXZlX2Ruc190dGwgMSBtaW51dGVzCgojICBUQUc6IHJhbmdl
X29mZnNldF9saW1pdAkoYnl0ZXMpCiMJU2V0cyBhIHVwcGVyIGxpbWl0IG9uIGhvdyBmYXIgaW50
byB0aGUgdGhlIGZpbGUgYSBSYW5nZSByZXF1ZXN0CiMJbWF5IGJlIHRvIGNhdXNlIFNxdWlkIHRv
IHByZWZldGNoIHRoZSB3aG9sZSBmaWxlLiBJZiBiZXlvbmQgdGhpcwojCWxpbWl0IFNxdWlkIGZv
cndhcmRzIHRoZSBSYW5nZSByZXF1ZXN0IGFzIGl0IGlzIGFuZCB0aGUgcmVzdWx0CiMJaXMgTk9U
IGNhY2hlZC4KIwojCVRoaXMgaXMgdG8gc3RvcCBhIGZhciBhaGVhZCByYW5nZSByZXF1ZXN0IChs
ZXRzIHNheSBzdGFydCBhdCAxN01CKQojCWZyb20gbWFraW5nIFNxdWlkIGZldGNoIHRoZSB3aG9s
ZSBvYmplY3QgdXAgdG8gdGhhdCBwb2ludCBiZWZvcmUKIwlzZW5kaW5nIGFueXRoaW5nIHRvIHRo
ZSBjbGllbnQuCiMKIwlBIHZhbHVlIG9mIDAgY2F1c2VzIFNxdWlkIHRvIG5ldmVyIGZldGNoIG1v
cmUgdGhhbiB0aGUKIwljbGllbnQgcmVxdWVzdGVkLiAoZGVmYXVsdCkKIwojCUEgdmFsdWUgb2Yg
LTEgY2F1c2VzIFNxdWlkIHRvIGFsd2F5cyBmZXRjaCB0aGUgb2JqZWN0IGZyb20gdGhlCiMJYmVn
aW5uaW5nIHNvIGl0IG1heSBjYWNoZSB0aGUgcmVzdWx0LiAoMi4wIHN0eWxlKQojCiMJTlA6IFVz
aW5nIC0xIGhlcmUgd2lsbCBvdmVycmlkZSBhbnkgcXVpY2tfYWJvcnQgc2V0dGluZ3MgdGhhdCBt
YXkKIwkgICAgb3RoZXJ3aXNlIGFwcGx5IHRvIHRoZSByYW5nZSByZXF1ZXN0LiBUaGUgcmFuZ2Ug
cmVxdWVzdCB3aWxsCiMJICAgIGJlIGZ1bGx5IGZldGNoZWQgZnJvbSBzdGFydCB0byBmaW5pc2gg
cmVnYXJkbGVzcyBvZiB0aGUgY2xpZW50CiMJICAgIGFjdGlvbnMuIFRoaXMgYWZmZWN0cyBiYW5k
d2lkdGggdXNhZ2UuCiNEZWZhdWx0OgojIHJhbmdlX29mZnNldF9saW1pdCAwIEtCCgojICBUQUc6
IG1pbmltdW1fZXhwaXJ5X3RpbWUJKHNlY29uZHMpCiMJVGhlIG1pbmltdW0gY2FjaGluZyB0aW1l
IGFjY29yZGluZyB0byAoRXhwaXJlcyAtIERhdGUpCiMJSGVhZGVycyBTcXVpZCBob25vcnMgaWYg
dGhlIG9iamVjdCBjYW4ndCBiZSByZXZhbGlkYXRlZAojCWRlZmF1bHRzIHRvIDYwIHNlY29uZHMu
IEluIHJldmVyc2UgcHJveHkgZW52aXJvbm1lbnRzIGl0CiMJbWlnaHQgYmUgZGVzaXJhYmxlIHRv
IGhvbm9yIHNob3J0ZXIgb2JqZWN0IGxpZmV0aW1lcy4gSXQKIwlpcyBtb3N0IGxpa2VseSBiZXR0
ZXIgdG8gbWFrZSB5b3VyIHNlcnZlciByZXR1cm4gYQojCW1lYW5pbmdmdWwgTGFzdC1Nb2RpZmll
ZCBoZWFkZXIgaG93ZXZlci4gSW4gRVNJIGVudmlyb25tZW50cwojCXdoZXJlIHBhZ2UgZnJhZ21l
bnRzIG9mdGVuIGhhdmUgc2hvcnQgbGlmZXRpbWVzLCB0aGlzIHdpbGwKIwlvZnRlbiBiZSBiZXN0
IHNldCB0byAwLgojRGVmYXVsdDoKIyBtaW5pbXVtX2V4cGlyeV90aW1lIDYwIHNlY29uZHMKCiMg
IFRBRzogc3RvcmVfYXZnX29iamVjdF9zaXplCShrYnl0ZXMpCiMJQXZlcmFnZSBvYmplY3Qgc2l6
ZSwgdXNlZCB0byBlc3RpbWF0ZSBudW1iZXIgb2Ygb2JqZWN0cyB5b3VyCiMJY2FjaGUgY2FuIGhv
bGQuICBUaGUgZGVmYXVsdCBpcyAxMyBLQi4KI0RlZmF1bHQ6CiMgc3RvcmVfYXZnX29iamVjdF9z
aXplIDEzIEtCCgojICBUQUc6IHN0b3JlX29iamVjdHNfcGVyX2J1Y2tldAojCVRhcmdldCBudW1i
ZXIgb2Ygb2JqZWN0cyBwZXIgYnVja2V0IGluIHRoZSBzdG9yZSBoYXNoIHRhYmxlLgojCUxvd2Vy
aW5nIHRoaXMgdmFsdWUgaW5jcmVhc2VzIHRoZSB0b3RhbCBudW1iZXIgb2YgYnVja2V0cyBhbmQK
IwlhbHNvIHRoZSBzdG9yYWdlIG1haW50ZW5hbmNlIHJhdGUuICBUaGUgZGVmYXVsdCBpcyAyMC4K
I0RlZmF1bHQ6CiMgc3RvcmVfb2JqZWN0c19wZXJfYnVja2V0IDIwCgojIEhUVFAgT1BUSU9OUwoj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6IHJlcXVlc3RfaGVhZGVyX21heF9zaXplCShL
QikKIwlUaGlzIHNwZWNpZmllcyB0aGUgbWF4aW11bSBzaXplIGZvciBIVFRQIGhlYWRlcnMgaW4g
YSByZXF1ZXN0LgojCVJlcXVlc3QgaGVhZGVycyBhcmUgdXN1YWxseSByZWxhdGl2ZWx5IHNtYWxs
IChhYm91dCA1MTIgYnl0ZXMpLgojCVBsYWNpbmcgYSBsaW1pdCBvbiB0aGUgcmVxdWVzdCBoZWFk
ZXIgc2l6ZSB3aWxsIGNhdGNoIGNlcnRhaW4KIwlidWdzIChmb3IgZXhhbXBsZSB3aXRoIHBlcnNp
c3RlbnQgY29ubmVjdGlvbnMpIGFuZCBwb3NzaWJseQojCWJ1ZmZlci1vdmVyZmxvdyBvciBkZW5p
YWwtb2Ytc2VydmljZSBhdHRhY2tzLgojRGVmYXVsdDoKIyByZXF1ZXN0X2hlYWRlcl9tYXhfc2l6
ZSA2NCBLQgoKIyAgVEFHOiByZXBseV9oZWFkZXJfbWF4X3NpemUJKEtCKQojCVRoaXMgc3BlY2lm
aWVzIHRoZSBtYXhpbXVtIHNpemUgZm9yIEhUVFAgaGVhZGVycyBpbiBhIHJlcGx5LgojCVJlcGx5
IGhlYWRlcnMgYXJlIHVzdWFsbHkgcmVsYXRpdmVseSBzbWFsbCAoYWJvdXQgNTEyIGJ5dGVzKS4K
IwlQbGFjaW5nIGEgbGltaXQgb24gdGhlIHJlcGx5IGhlYWRlciBzaXplIHdpbGwgY2F0Y2ggY2Vy
dGFpbgojCWJ1Z3MgKGZvciBleGFtcGxlIHdpdGggcGVyc2lzdGVudCBjb25uZWN0aW9ucykgYW5k
IHBvc3NpYmx5CiMJYnVmZmVyLW92ZXJmbG93IG9yIGRlbmlhbC1vZi1zZXJ2aWNlIGF0dGFja3Mu
CiNEZWZhdWx0OgojIHJlcGx5X2hlYWRlcl9tYXhfc2l6ZSA2NCBLQgoKIyAgVEFHOiByZXF1ZXN0
X2JvZHlfbWF4X3NpemUJKGJ5dGVzKQojCVRoaXMgc3BlY2lmaWVzIHRoZSBtYXhpbXVtIHNpemUg
Zm9yIGFuIEhUVFAgcmVxdWVzdCBib2R5LgojCUluIG90aGVyIHdvcmRzLCB0aGUgbWF4aW11bSBz
aXplIG9mIGEgUFVUL1BPU1QgcmVxdWVzdC4KIwlBIHVzZXIgd2hvIGF0dGVtcHRzIHRvIHNlbmQg
YSByZXF1ZXN0IHdpdGggYSBib2R5IGxhcmdlcgojCXRoYW4gdGhpcyBsaW1pdCByZWNlaXZlcyBh
biAiSW52YWxpZCBSZXF1ZXN0IiBlcnJvciBtZXNzYWdlLgojCUlmIHlvdSBzZXQgdGhpcyBwYXJh
bWV0ZXIgdG8gYSB6ZXJvICh0aGUgZGVmYXVsdCksIHRoZXJlIHdpbGwKIwliZSBubyBsaW1pdCBp
bXBvc2VkLgojRGVmYXVsdDoKIyByZXF1ZXN0X2JvZHlfbWF4X3NpemUgMCBLQgoKIyAgVEFHOiBj
bGllbnRfcmVxdWVzdF9idWZmZXJfbWF4X3NpemUJKGJ5dGVzKQojCVRoaXMgc3BlY2lmaWVzIHRo
ZSBtYXhpbXVtIGJ1ZmZlciBzaXplIG9mIGEgY2xpZW50IHJlcXVlc3QuCiMJSXQgcHJldmVudHMg
c3F1aWQgZWF0aW5nIHRvbyBtdWNoIG1lbW9yeSB3aGVuIHNvbWVib2R5IHVwbG9hZHMKIwlhIGxh
cmdlIGZpbGUuCiNEZWZhdWx0OgojIGNsaWVudF9yZXF1ZXN0X2J1ZmZlcl9tYXhfc2l6ZSA1MTIg
S0IKCiMgIFRBRzogY2h1bmtlZF9yZXF1ZXN0X2JvZHlfbWF4X3NpemUJKGJ5dGVzKQojCUEgYnJv
a2VuIG9yIGNvbmZ1c2VkIEhUVFAvMS4xIGNsaWVudCBtYXkgc2VuZCBhIGNodW5rZWQgSFRUUAoj
CXJlcXVlc3QgdG8gU3F1aWQuIFNxdWlkIGRvZXMgbm90IGhhdmUgZnVsbCBzdXBwb3J0IGZvciB0
aGF0CiMJZmVhdHVyZSB5ZXQuIFRvIGNvcGUgd2l0aCBzdWNoIHJlcXVlc3RzLCBTcXVpZCBidWZm
ZXJzIHRoZQojCWVudGlyZSByZXF1ZXN0IGFuZCB0aGVuIGRlY2h1bmtzIHJlcXVlc3QgYm9keSB0
byBjcmVhdGUgYQojCXBsYWluIEhUVFAvMS4wIHJlcXVlc3Qgd2l0aCBhIGtub3duIGNvbnRlbnQg
bGVuZ3RoLiBUaGUgcGxhaW4KIwlyZXF1ZXN0IGlzIHRoZW4gdXNlZCBieSB0aGUgcmVzdCBvZiBT
cXVpZCBjb2RlIGFzIHVzdWFsLgojCiMJVGhlIG9wdGlvbiB2YWx1ZSBzcGVjaWZpZXMgdGhlIG1h
eGltdW0gc2l6ZSBvZiB0aGUgYnVmZmVyIHVzZWQKIwl0byBob2xkIHRoZSByZXF1ZXN0IGJlZm9y
ZSB0aGUgY29udmVyc2lvbi4gSWYgdGhlIGNodW5rZWQKIwlyZXF1ZXN0IHNpemUgZXhjZWVkcyB0
aGUgc3BlY2lmaWVkIGxpbWl0LCB0aGUgY29udmVyc2lvbgojCWZhaWxzLCBhbmQgdGhlIGNsaWVu
dCByZWNlaXZlcyBhbiAidW5zdXBwb3J0ZWQgcmVxdWVzdCIgZXJyb3IsCiMJYXMgaWYgZGVjaHVu
a2luZyB3YXMgZGlzYWJsZWQuCiMKIwlEZWNodW5raW5nIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4g
VG8gZGlzYWJsZSBjb252ZXJzaW9uIG9mCiMJY2h1bmtlZCByZXF1ZXN0cywgc2V0IHRoZSBtYXhp
bXVtIHRvIHplcm8uCiMKIwlSZXF1ZXN0IGRlY2h1bmtpbmcgZmVhdHVyZSBhbmQgdGhpcyBvcHRp
b24gaW4gcGFydGljdWxhciBhcmUgYQojCXRlbXBvcmFyeSBoYWNrLiBXaGVuIGNodW5raW5nIHJl
cXVlc3RzIGFuZCByZXNwb25zZXMgYXJlIGZ1bGx5CiMJc3VwcG9ydGVkLCB0aGVyZSB3aWxsIGJl
IG5vIG5lZWQgdG8gYnVmZmVyIGEgY2h1bmtlZCByZXF1ZXN0LgojRGVmYXVsdDoKIyBjaHVua2Vk
X3JlcXVlc3RfYm9keV9tYXhfc2l6ZSA2NCBLQgoKIyAgVEFHOiBicm9rZW5fcG9zdHMKIwlBIGxp
c3Qgb2YgQUNMIGVsZW1lbnRzIHdoaWNoLCBpZiBtYXRjaGVkLCBjYXVzZXMgU3F1aWQgdG8gc2Vu
ZAojCWFuIGV4dHJhIENSTEYgcGFpciBhZnRlciB0aGUgYm9keSBvZiBhIFBVVC9QT1NUIHJlcXVl
c3QuCiMKIwlTb21lIEhUVFAgc2VydmVycyBoYXMgYnJva2VuIGltcGxlbWVudGF0aW9ucyBvZiBQ
VVQvUE9TVCwKIwlhbmQgcmVseSBvbiBhbiBleHRyYSBDUkxGIHBhaXIgc2VudCBieSBzb21lIFdX
VyBjbGllbnRzLgojCiMJUXVvdGUgZnJvbSBSRkMyNjE2IHNlY3Rpb24gNC4xIG9uIHRoaXMgbWF0
dGVyOgojCiMJICBOb3RlOiBjZXJ0YWluIGJ1Z2d5IEhUVFAvMS4wIGNsaWVudCBpbXBsZW1lbnRh
dGlvbnMgZ2VuZXJhdGUgYW4KIwkgIGV4dHJhIENSTEYncyBhZnRlciBhIFBPU1QgcmVxdWVzdC4g
VG8gcmVzdGF0ZSB3aGF0IGlzIGV4cGxpY2l0bHkKIwkgIGZvcmJpZGRlbiBieSB0aGUgQk5GLCBh
biBIVFRQLzEuMSBjbGllbnQgbXVzdCBub3QgcHJlZmFjZSBvciBmb2xsb3cKIwkgIGEgcmVxdWVz
dCB3aXRoIGFuIGV4dHJhIENSTEYuCiMKIwlUaGlzIGNsYXVzZSBvbmx5IHN1cHBvcnRzIGZhc3Qg
YWNsIHR5cGVzLgojCVNlZSBodHRwOi8vd2lraS5zcXVpZC1jYWNoZS5vcmcvU3F1aWRGYXEvU3F1
aWRBY2wgZm9yIGRldGFpbHMuCiMKI0V4YW1wbGU6CiMgYWNsIGJ1Z2d5X3NlcnZlciB1cmxfcmVn
ZXggXmh0dHA6Ly8uLi4uCiMgYnJva2VuX3Bvc3RzIGFsbG93IGJ1Z2d5X3NlcnZlcgojRGVmYXVs
dDoKIyBub25lCgojICBUQUc6IGljYXBfdXNlc19pbmRpcmVjdF9jbGllbnQJb258b2ZmCiMgICBD
b250cm9scyB3aGV0aGVyIHRoZSBpbmRpcmVjdCBjbGllbnQgYWRkcmVzcwojICAgKHNlZSBmb2xs
b3dfeF9mb3J3YXJkZWRfZm9yKSBpbnN0ZWFkIG9mIHRoZQojICAgZGlyZWN0IGNsaWVudCBhZGRy
ZXNzIGlzIHBhc3NlZCB0byBhbiBJQ0FQCiMgICBzZXJ2ZXIgYXMgIlgtQ2xpZW50LUlQIi4KI0Rl
ZmF1bHQ6CiMgaWNhcF91c2VzX2luZGlyZWN0X2NsaWVudCBvbgoKIyAgVEFHOiB2aWEJb258b2Zm
CiMJSWYgc2V0IChkZWZhdWx0KSwgU3F1aWQgd2lsbCBpbmNsdWRlIGEgVmlhIGhlYWRlciBpbiBy
ZXF1ZXN0cyBhbmQKIwlyZXBsaWVzIGFzIHJlcXVpcmVkIGJ5IFJGQzI2MTYuCiNEZWZhdWx0Ogoj
IHZpYSBvbgoKIyAgVEFHOiBpZV9yZWZyZXNoCW9ufG9mZgojCU1pY3Jvc29mdCBJbnRlcm5ldCBF
eHBsb3JlciB1cCB1bnRpbCB2ZXJzaW9uIDUuNSBTZXJ2aWNlCiMJUGFjayAxIGhhcyBhbiBpc3N1
ZSB3aXRoIHRyYW5zcGFyZW50IHByb3hpZXMsIHdoZXJlaW4gaXQKIwlpcyBpbXBvc3NpYmxlIHRv
IGZvcmNlIGEgcmVmcmVzaC4gIFR1cm5pbmcgdGhpcyBvbiBwcm92aWRlcwojCWEgcGFydGlhbCBm
aXggdG8gdGhlIHByb2JsZW0sIGJ5IGNhdXNpbmcgYWxsIElNUy1SRUZSRVNICiMJcmVxdWVzdHMg
ZnJvbSBvbGRlciBJRSB2ZXJzaW9ucyB0byBjaGVjayB0aGUgb3JpZ2luIHNlcnZlcgojCWZvciBm
cmVzaCBjb250ZW50LiAgVGhpcyByZWR1Y2VzIGhpdCByYXRpbyBieSBzb21lIGFtb3VudAojCSh+
MTAlIGluIG15IGV4cGVyaWVuY2UpLCBidXQgYWxsb3dzIHVzZXJzIHRvIGFjdHVhbGx5IGdldAoj
CWZyZXNoIGNvbnRlbnQgd2hlbiB0aGV5IHdhbnQgaXQuICBOb3RlIGJlY2F1c2UgU3F1aWQKIwlj
YW5ub3QgdGVsbCBpZiB0aGUgdXNlciBpcyB1c2luZyA1LjUgb3IgNS41U1AxLCB0aGUgYmVoYXZp
b3IKIwlvZiA1LjUgaXMgdW5jaGFuZ2VkIGZyb20gb2xkIHZlcnNpb25zIG9mIFNxdWlkIChpLmUu
IGEKIwlmb3JjZWQgcmVmcmVzaCBpcyBpbXBvc3NpYmxlKS4gIE5ld2VyIHZlcnNpb25zIG9mIElF
IHdpbGwsCiMJaG9wZWZ1bGx5LCBjb250aW51ZSB0byBoYXZlIHRoZSBuZXcgYmVoYXZpb3IgYW5k
IHdpbGwgYmUKIwloYW5kbGVkIGJhc2VkIG9uIHRoYXQgYXNzdW1wdGlvbi4gIFRoaXMgb3B0aW9u
IGRlZmF1bHRzIHRvCiMJdGhlIG9sZCBTcXVpZCBiZWhhdmlvciwgd2hpY2ggaXMgYmV0dGVyIGZv
ciBoaXQgcmF0aW9zIGJ1dAojCXdvcnNlIGZvciBjbGllbnRzIHVzaW5nIElFLCBpZiB0aGV5IG5l
ZWQgdG8gYmUgYWJsZSB0bwojCWZvcmNlIGZyZXNoIGNvbnRlbnQuCiNEZWZhdWx0OgojIGllX3Jl
ZnJlc2ggb2ZmCgojICBUQUc6IHZhcnlfaWdub3JlX2V4cGlyZQlvbnxvZmYKIwlNYW55IEhUVFAg
c2VydmVycyBzdXBwb3J0aW5nIFZhcnkgZ2l2ZXMgc3VjaCBvYmplY3RzCiMJaW1tZWRpYXRlIGV4
cGlyeSB0aW1lIHdpdGggbm8gY2FjaGUtY29udHJvbCBoZWFkZXIKIwl3aGVuIHJlcXVlc3RlZCBi
eSBhIEhUVFAvMS4wIGNsaWVudC4gVGhpcyBvcHRpb24KIwllbmFibGVzIFNxdWlkIHRvIGlnbm9y
ZSBzdWNoIGV4cGlyeSB0aW1lcyB1bnRpbAojCUhUVFAvMS4xIGlzIGZ1bGx5IGltcGxlbWVudGVk
LgojCiMJV0FSTklORzogSWYgdHVybmVkIG9uIHRoaXMgbWF5IGV2ZW50dWFsbHkgY2F1c2Ugc29t
ZQojCXZhcnlpbmcgb2JqZWN0cyBub3QgaW50ZW5kZWQgZm9yIGNhY2hpbmcgdG8gZ2V0IGNhY2hl
ZC4KI0RlZmF1bHQ6CiMgdmFyeV9pZ25vcmVfZXhwaXJlIG9mZgoKIyAgVEFHOiByZXF1ZXN0X2Vu
dGl0aWVzCiMJU3F1aWQgZGVmYXVsdHMgdG8gZGVueSBHRVQgYW5kIEhFQUQgcmVxdWVzdHMgd2l0
aCByZXF1ZXN0IGVudGl0aWVzLAojCWFzIHRoZSBtZWFuaW5nIG9mIHN1Y2ggcmVxdWVzdHMgYXJl
IHVuZGVmaW5lZCBpbiB0aGUgSFRUUCBzdGFuZGFyZAojCWV2ZW4gaWYgbm90IGV4cGxpY2l0bHkg
Zm9yYmlkZGVuLgojCiMJU2V0IHRoaXMgZGlyZWN0aXZlIHRvIG9uIGlmIHlvdSBoYXZlIGNsaWVu
dHMgd2hpY2ggaW5zaXN0cwojCW9uIHNlbmRpbmcgcmVxdWVzdCBlbnRpdGllcyBpbiBHRVQgb3Ig
SEVBRCByZXF1ZXN0cy4gQnV0IGJlIHdhcm5lZAojCXRoYXQgdGhlcmUgaXMgc2VydmVyIHNvZnR3
YXJlIChib3RoIHByb3hpZXMgYW5kIHdlYiBzZXJ2ZXJzKSB3aGljaAojCWNhbiBmYWlsIHRvIHBy
b3Blcmx5IHByb2Nlc3MgdGhpcyBraW5kIG9mIHJlcXVlc3Qgd2hpY2ggbWF5IG1ha2UgeW91CiMJ
dnVsbmVyYWJsZSB0byBjYWNoZSBwb2xsdXRpb24gYXR0YWNrcyBpZiBlbmFibGVkLgojRGVmYXVs
dDoKIyByZXF1ZXN0X2VudGl0aWVzIG9mZgoKIyAgVEFHOiByZXF1ZXN0X2hlYWRlcl9hY2Nlc3MK
IwlVc2FnZTogcmVxdWVzdF9oZWFkZXJfYWNjZXNzIGhlYWRlcl9uYW1lIGFsbG93fGRlbnkgWyFd
YWNsbmFtZSAuLi4KIwojCVdBUk5JTkc6IERvaW5nIHRoaXMgVklPTEFURVMgdGhlIEhUVFAgc3Rh
bmRhcmQuICBFbmFibGluZwojCXRoaXMgZmVhdHVyZSBjb3VsZCBtYWtlIHlvdSBsaWFibGUgZm9y
IHByb2JsZW1zIHdoaWNoIGl0CiMJY2F1c2VzLgojCiMJVGhpcyBvcHRpb24gcmVwbGFjZXMgdGhl
IG9sZCAnYW5vbnltaXplX2hlYWRlcnMnIGFuZCB0aGUKIwlvbGRlciAnaHR0cF9hbm9ueW1pemVy
JyBvcHRpb24gd2l0aCBzb21ldGhpbmcgdGhhdCBpcyBtdWNoCiMJbW9yZSBjb25maWd1cmFibGUu
IFRoaXMgbmV3IG1ldGhvZCBjcmVhdGVzIGEgbGlzdCBvZiBBQ0xzCiMJZm9yIGVhY2ggaGVhZGVy
LCBhbGxvd2luZyB5b3UgdmVyeSBmaW5lLXR1bmVkIGhlYWRlcgojCW1hbmdsaW5nLgojCiMJVGhp
cyBvcHRpb24gb25seSBhcHBsaWVzIHRvIHJlcXVlc3QgaGVhZGVycywgaS5lLiwgZnJvbSB0aGUK
IwljbGllbnQgdG8gdGhlIHNlcnZlci4KIwojCVlvdSBjYW4gb25seSBzcGVjaWZ5IGtub3duIGhl
YWRlcnMgZm9yIHRoZSBoZWFkZXIgbmFtZS4KIwlPdGhlciBoZWFkZXJzIGFyZSByZWNsYXNzaWZp
ZWQgYXMgJ090aGVyJy4gWW91IGNhbiBhbHNvCiMJcmVmZXIgdG8gYWxsIHRoZSBoZWFkZXJzIHdp
dGggJ0FsbCcuCiMKIwlGb3IgZXhhbXBsZSwgdG8gYWNoaWV2ZSB0aGUgc2FtZSBiZWhhdmlvciBh
cyB0aGUgb2xkCiMJJ2h0dHBfYW5vbnltaXplciBzdGFuZGFyZCcgb3B0aW9uLCB5b3Ugc2hvdWxk
IHVzZToKIwojCQlyZXF1ZXN0X2hlYWRlcl9hY2Nlc3MgRnJvbSBkZW55IGFsbAojCQlyZXF1ZXN0
X2hlYWRlcl9hY2Nlc3MgUmVmZXJlciBkZW55IGFsbAojCQlyZXF1ZXN0X2hlYWRlcl9hY2Nlc3Mg
U2VydmVyIGRlbnkgYWxsCiMJCXJlcXVlc3RfaGVhZGVyX2FjY2VzcyBVc2VyLUFnZW50IGRlbnkg
YWxsCiMJCXJlcXVlc3RfaGVhZGVyX2FjY2VzcyBXV1ctQXV0aGVudGljYXRlIGRlbnkgYWxsCiMJ
CXJlcXVlc3RfaGVhZGVyX2FjY2VzcyBMaW5rIGRlbnkgYWxsCiMKIwlPciwgdG8gcmVwcm9kdWNl
IHRoZSBvbGQgJ2h0dHBfYW5vbnltaXplciBwYXJhbm9pZCcgZmVhdHVyZQojCXlvdSBzaG91bGQg
dXNlOgojCiMJCXJlcXVlc3RfaGVhZGVyX2FjY2VzcyBBbGxvdyBhbGxvdyBhbGwKIwkJcmVxdWVz
dF9oZWFkZXJfYWNjZXNzIEF1dGhvcml6YXRpb24gYWxsb3cgYWxsCiMJCXJlcXVlc3RfaGVhZGVy
X2FjY2VzcyBXV1ctQXV0aGVudGljYXRlIGFsbG93IGFsbAojCQlyZXF1ZXN0X2hlYWRlcl9hY2Nl
c3MgUHJveHktQXV0aG9yaXphdGlvbiBhbGxvdyBhbGwKIwkJcmVxdWVzdF9oZWFkZXJfYWNjZXNz
IFByb3h5LUF1dGhlbnRpY2F0ZSBhbGxvdyBhbGwKIwkJcmVxdWVzdF9oZWFkZXJfYWNjZXNzIENh
Y2hlLUNvbnRyb2wgYWxsb3cgYWxsCiMJCXJlcXVlc3RfaGVhZGVyX2FjY2VzcyBDb250ZW50LUVu
Y29kaW5nIGFsbG93IGFsbAojCQlyZXF1ZXN0X2hlYWRlcl9hY2Nlc3MgQ29udGVudC1MZW5ndGgg
YWxsb3cgYWxsCiMJCXJlcXVlc3RfaGVhZGVyX2FjY2VzcyBDb250ZW50LVR5cGUgYWxsb3cgYWxs
CiMJCXJlcXVlc3RfaGVhZGVyX2FjY2VzcyBEYXRlIGFsbG93IGFsbAojCQlyZXF1ZXN0X2hlYWRl
cl9hY2Nlc3MgRXhwaXJlcyBhbGxvdyBhbGwKIwkJcmVxdWVzdF9oZWFkZXJfYWNjZXNzIEhvc3Qg
YWxsb3cgYWxsCiMJCXJlcXVlc3RfaGVhZGVyX2FjY2VzcyBJZi1Nb2RpZmllZC1TaW5jZSBhbGxv
dyBhbGwKIwkJcmVxdWVzdF9oZWFkZXJfYWNjZXNzIExhc3QtTW9kaWZpZWQgYWxsb3cgYWxsCiMJ
CXJlcXVlc3RfaGVhZGVyX2FjY2VzcyBMb2NhdGlvbiBhbGxvdyBhbGwKIwkJcmVxdWVzdF9oZWFk
ZXJfYWNjZXNzIFByYWdtYSBhbGxvdyBhbGwKIwkJcmVxdWVzdF9oZWFkZXJfYWNjZXNzIEFjY2Vw
dCBhbGxvdyBhbGwKIwkJcmVxdWVzdF9oZWFkZXJfYWNjZXNzIEFjY2VwdC1DaGFyc2V0IGFsbG93
IGFsbAojCQlyZXF1ZXN0X2hlYWRlcl9hY2Nlc3MgQWNjZXB0LUVuY29kaW5nIGFsbG93IGFsbAoj
CQlyZXF1ZXN0X2hlYWRlcl9hY2Nlc3MgQWNjZXB0LUxhbmd1YWdlIGFsbG93IGFsbAojCQlyZXF1
ZXN0X2hlYWRlcl9hY2Nlc3MgQ29udGVudC1MYW5ndWFnZSBhbGxvdyBhbGwKIwkJcmVxdWVzdF9o
ZWFkZXJfYWNjZXNzIE1pbWUtVmVyc2lvbiBhbGxvdyBhbGwKIwkJcmVxdWVzdF9oZWFkZXJfYWNj
ZXNzIFJldHJ5LUFmdGVyIGFsbG93IGFsbAojCQlyZXF1ZXN0X2hlYWRlcl9hY2Nlc3MgVGl0bGUg
YWxsb3cgYWxsCiMJCXJlcXVlc3RfaGVhZGVyX2FjY2VzcyBDb25uZWN0aW9uIGFsbG93IGFsbAoj
CQlyZXF1ZXN0X2hlYWRlcl9hY2Nlc3MgQWxsIGRlbnkgYWxsCiMKIwlhbHRob3VnaCBtYW55IG9m
IHRob3NlIGFyZSBIVFRQIHJlcGx5IGhlYWRlcnMsIGFuZCBzbyBzaG91bGQgYmUKIwljb250cm9s
bGVkIHdpdGggdGhlIHJlcGx5X2hlYWRlcl9hY2Nlc3MgZGlyZWN0aXZlLgojCiMJQnkgZGVmYXVs
dCwgYWxsIGhlYWRlcnMgYXJlIGFsbG93ZWQgKG5vIGFub255bWl6aW5nIGlzCiMJcGVyZm9ybWVk
KS4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiByZXBseV9oZWFkZXJfYWNjZXNzCiMJVXNhZ2U6
IHJlcGx5X2hlYWRlcl9hY2Nlc3MgaGVhZGVyX25hbWUgYWxsb3d8ZGVueSBbIV1hY2xuYW1lIC4u
LgojCiMJV0FSTklORzogRG9pbmcgdGhpcyBWSU9MQVRFUyB0aGUgSFRUUCBzdGFuZGFyZC4gIEVu
YWJsaW5nCiMJdGhpcyBmZWF0dXJlIGNvdWxkIG1ha2UgeW91IGxpYWJsZSBmb3IgcHJvYmxlbXMg
d2hpY2ggaXQKIwljYXVzZXMuCiMKIwlUaGlzIG9wdGlvbiBvbmx5IGFwcGxpZXMgdG8gcmVwbHkg
aGVhZGVycywgaS5lLiwgZnJvbSB0aGUKIwlzZXJ2ZXIgdG8gdGhlIGNsaWVudC4KIwojCVRoaXMg
aXMgdGhlIHNhbWUgYXMgcmVxdWVzdF9oZWFkZXJfYWNjZXNzLCBidXQgaW4gdGhlIG90aGVyCiMJ
ZGlyZWN0aW9uLgojCiMJVGhpcyBvcHRpb24gcmVwbGFjZXMgdGhlIG9sZCAnYW5vbnltaXplX2hl
YWRlcnMnIGFuZCB0aGUKIwlvbGRlciAnaHR0cF9hbm9ueW1pemVyJyBvcHRpb24gd2l0aCBzb21l
dGhpbmcgdGhhdCBpcyBtdWNoCiMJbW9yZSBjb25maWd1cmFibGUuIFRoaXMgbmV3IG1ldGhvZCBj
cmVhdGVzIGEgbGlzdCBvZiBBQ0xzCiMJZm9yIGVhY2ggaGVhZGVyLCBhbGxvd2luZyB5b3UgdmVy
eSBmaW5lLXR1bmVkIGhlYWRlcgojCW1hbmdsaW5nLgojCiMJWW91IGNhbiBvbmx5IHNwZWNpZnkg
a25vd24gaGVhZGVycyBmb3IgdGhlIGhlYWRlciBuYW1lLgojCU90aGVyIGhlYWRlcnMgYXJlIHJl
Y2xhc3NpZmllZCBhcyAnT3RoZXInLiBZb3UgY2FuIGFsc28KIwlyZWZlciB0byBhbGwgdGhlIGhl
YWRlcnMgd2l0aCAnQWxsJy4KIwojCUZvciBleGFtcGxlLCB0byBhY2hpZXZlIHRoZSBzYW1lIGJl
aGF2aW9yIGFzIHRoZSBvbGQKIwknaHR0cF9hbm9ueW1pemVyIHN0YW5kYXJkJyBvcHRpb24sIHlv
dSBzaG91bGQgdXNlOgojCiMJCXJlcGx5X2hlYWRlcl9hY2Nlc3MgRnJvbSBkZW55IGFsbAojCQly
ZXBseV9oZWFkZXJfYWNjZXNzIFJlZmVyZXIgZGVueSBhbGwKIwkJcmVwbHlfaGVhZGVyX2FjY2Vz
cyBTZXJ2ZXIgZGVueSBhbGwKIwkJcmVwbHlfaGVhZGVyX2FjY2VzcyBVc2VyLUFnZW50IGRlbnkg
YWxsCiMJCXJlcGx5X2hlYWRlcl9hY2Nlc3MgV1dXLUF1dGhlbnRpY2F0ZSBkZW55IGFsbAojCQly
ZXBseV9oZWFkZXJfYWNjZXNzIExpbmsgZGVueSBhbGwKIwojCU9yLCB0byByZXByb2R1Y2UgdGhl
IG9sZCAnaHR0cF9hbm9ueW1pemVyIHBhcmFub2lkJyBmZWF0dXJlCiMJeW91IHNob3VsZCB1c2U6
CiMKIwkJcmVwbHlfaGVhZGVyX2FjY2VzcyBBbGxvdyBhbGxvdyBhbGwKIwkJcmVwbHlfaGVhZGVy
X2FjY2VzcyBBdXRob3JpemF0aW9uIGFsbG93IGFsbAojCQlyZXBseV9oZWFkZXJfYWNjZXNzIFdX
Vy1BdXRoZW50aWNhdGUgYWxsb3cgYWxsCiMJCXJlcGx5X2hlYWRlcl9hY2Nlc3MgUHJveHktQXV0
aG9yaXphdGlvbiBhbGxvdyBhbGwKIwkJcmVwbHlfaGVhZGVyX2FjY2VzcyBQcm94eS1BdXRoZW50
aWNhdGUgYWxsb3cgYWxsCiMJCXJlcGx5X2hlYWRlcl9hY2Nlc3MgQ2FjaGUtQ29udHJvbCBhbGxv
dyBhbGwKIwkJcmVwbHlfaGVhZGVyX2FjY2VzcyBDb250ZW50LUVuY29kaW5nIGFsbG93IGFsbAoj
CQlyZXBseV9oZWFkZXJfYWNjZXNzIENvbnRlbnQtTGVuZ3RoIGFsbG93IGFsbAojCQlyZXBseV9o
ZWFkZXJfYWNjZXNzIENvbnRlbnQtVHlwZSBhbGxvdyBhbGwKIwkJcmVwbHlfaGVhZGVyX2FjY2Vz
cyBEYXRlIGFsbG93IGFsbAojCQlyZXBseV9oZWFkZXJfYWNjZXNzIEV4cGlyZXMgYWxsb3cgYWxs
CiMJCXJlcGx5X2hlYWRlcl9hY2Nlc3MgSG9zdCBhbGxvdyBhbGwKIwkJcmVwbHlfaGVhZGVyX2Fj
Y2VzcyBJZi1Nb2RpZmllZC1TaW5jZSBhbGxvdyBhbGwKIwkJcmVwbHlfaGVhZGVyX2FjY2VzcyBM
YXN0LU1vZGlmaWVkIGFsbG93IGFsbAojCQlyZXBseV9oZWFkZXJfYWNjZXNzIExvY2F0aW9uIGFs
bG93IGFsbAojCQlyZXBseV9oZWFkZXJfYWNjZXNzIFByYWdtYSBhbGxvdyBhbGwKIwkJcmVwbHlf
aGVhZGVyX2FjY2VzcyBBY2NlcHQgYWxsb3cgYWxsCiMJCXJlcGx5X2hlYWRlcl9hY2Nlc3MgQWNj
ZXB0LUNoYXJzZXQgYWxsb3cgYWxsCiMJCXJlcGx5X2hlYWRlcl9hY2Nlc3MgQWNjZXB0LUVuY29k
aW5nIGFsbG93IGFsbAojCQlyZXBseV9oZWFkZXJfYWNjZXNzIEFjY2VwdC1MYW5ndWFnZSBhbGxv
dyBhbGwKIwkJcmVwbHlfaGVhZGVyX2FjY2VzcyBDb250ZW50LUxhbmd1YWdlIGFsbG93IGFsbAoj
CQlyZXBseV9oZWFkZXJfYWNjZXNzIE1pbWUtVmVyc2lvbiBhbGxvdyBhbGwKIwkJcmVwbHlfaGVh
ZGVyX2FjY2VzcyBSZXRyeS1BZnRlciBhbGxvdyBhbGwKIwkJcmVwbHlfaGVhZGVyX2FjY2VzcyBU
aXRsZSBhbGxvdyBhbGwKIwkJcmVwbHlfaGVhZGVyX2FjY2VzcyBDb25uZWN0aW9uIGFsbG93IGFs
bAojCQlyZXBseV9oZWFkZXJfYWNjZXNzIEFsbCBkZW55IGFsbAojCiMJYWx0aG91Z2ggdGhlIEhU
VFAgcmVxdWVzdCBoZWFkZXJzIHdvbid0IGJlIHVzZWZ1bGx5IGNvbnRyb2xsZWQKIwlieSB0aGlz
IGRpcmVjdGl2ZSAtLSBzZWUgcmVxdWVzdF9oZWFkZXJfYWNjZXNzIGZvciBkZXRhaWxzLgojCiMJ
QnkgZGVmYXVsdCwgYWxsIGhlYWRlcnMgYXJlIGFsbG93ZWQgKG5vIGFub255bWl6aW5nIGlzCiMJ
cGVyZm9ybWVkKS4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiByZXF1ZXN0X2hlYWRlcl9yZXBs
YWNlCiMJVXNhZ2U6ICAgcmVxdWVzdF9oZWFkZXJfcmVwbGFjZSBoZWFkZXJfbmFtZSBtZXNzYWdl
CiMJRXhhbXBsZTogcmVxdWVzdF9oZWFkZXJfcmVwbGFjZSBVc2VyLUFnZW50IE51dHNjcmFwZS8x
LjAgKENQL007IDgtYml0KQojCiMJVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhl
IGNvbnRlbnRzIG9mIGhlYWRlcnMKIwlkZW5pZWQgd2l0aCByZXF1ZXN0X2hlYWRlcl9hY2Nlc3Mg
YWJvdmUsIGJ5IHJlcGxhY2luZyB0aGVtCiMJd2l0aCBzb21lIGZpeGVkIHN0cmluZy4gVGhpcyBy
ZXBsYWNlcyB0aGUgb2xkIGZha2VfdXNlcl9hZ2VudAojCW9wdGlvbi4KIwojCVRoaXMgb25seSBh
cHBsaWVzIHRvIHJlcXVlc3QgaGVhZGVycywgbm90IHJlcGx5IGhlYWRlcnMuCiMKIwlCeSBkZWZh
dWx0LCBoZWFkZXJzIGFyZSByZW1vdmVkIGlmIGRlbmllZC4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAg
VEFHOiByZXBseV9oZWFkZXJfcmVwbGFjZQojICAgICAgICBVc2FnZTogICByZXBseV9oZWFkZXJf
cmVwbGFjZSBoZWFkZXJfbmFtZSBtZXNzYWdlCiMgICAgICAgIEV4YW1wbGU6IHJlcGx5X2hlYWRl
cl9yZXBsYWNlIFNlcnZlciBGb28vMS4wCiMKIyAgICAgICAgVGhpcyBvcHRpb24gYWxsb3dzIHlv
dSB0byBjaGFuZ2UgdGhlIGNvbnRlbnRzIG9mIGhlYWRlcnMKIyAgICAgICAgZGVuaWVkIHdpdGgg
cmVwbHlfaGVhZGVyX2FjY2VzcyBhYm92ZSwgYnkgcmVwbGFjaW5nIHRoZW0KIyAgICAgICAgd2l0
aCBzb21lIGZpeGVkIHN0cmluZy4KIwojICAgICAgICBUaGlzIG9ubHkgYXBwbGllcyB0byByZXBs
eSBoZWFkZXJzLCBub3QgcmVxdWVzdCBoZWFkZXJzLgojCiMgICAgICAgIEJ5IGRlZmF1bHQsIGhl
YWRlcnMgYXJlIHJlbW92ZWQgaWYgZGVuaWVkLgojRGVmYXVsdDoKIyBub25lCgojICBUQUc6IHJl
bGF4ZWRfaGVhZGVyX3BhcnNlcglvbnxvZmZ8d2FybgojCUluIHRoZSBkZWZhdWx0ICJvbiIgc2V0
dGluZyBTcXVpZCBhY2NlcHRzIGNlcnRhaW4gZm9ybXMKIwlvZiBub24tY29tcGxpYW50IEhUVFAg
bWVzc2FnZXMgd2hlcmUgaXQgaXMgdW5hbWJpZ3VvdXMKIwl3aGF0IHRoZSBzZW5kaW5nIGFwcGxp
Y2F0aW9uIGludGVuZGVkIGV2ZW4gaWYgdGhlIG1lc3NhZ2UKIwlpcyBub3QgY29ycmVjdGx5IGZv
cm1hdHRlZC4gVGhlIG1lc3NhZ2VzIGlzIHRoZW4gbm9ybWFsaXplZAojCXRvIHRoZSBjb3JyZWN0
IGZvcm0gd2hlbiBmb3J3YXJkZWQgYnkgU3F1aWQuCiMKIwlJZiBzZXQgdG8gIndhcm4iIHRoZW4g
YSB3YXJuaW5nIHdpbGwgYmUgZW1pdHRlZCBpbiBjYWNoZS5sb2cKIwllYWNoIHRpbWUgc3VjaCBI
VFRQIGVycm9yIGlzIGVuY291bnRlcmVkLgojCiMJSWYgc2V0IHRvICJvZmYiIHRoZW4gc3VjaCBI
VFRQIGVycm9ycyB3aWxsIGNhdXNlIHRoZSByZXF1ZXN0CiMJb3IgcmVzcG9uc2UgdG8gYmUgcmVq
ZWN0ZWQuCiNEZWZhdWx0OgojIHJlbGF4ZWRfaGVhZGVyX3BhcnNlciBvbgoKIyAgVEFHOiBpZ25v
cmVfZXhwZWN0XzEwMAlvbnxvZmYKIwlUaGlzIG9wdGlvbiBtYWtlcyBTcXVpZCBpZ25vcmUgYW55
IEV4cGVjdDogMTAwLWNvbnRpbnVlIGhlYWRlciBwcmVzZW50CiMJaW4gdGhlIHJlcXVlc3QuIFJG
QyAyNjE2IHJlcXVpcmVzIHRoYXQgU3F1aWQgYmVpbmcgdW5hYmxlIHRvIHNhdGlzZnkKIwl0aGUg
cmVzcG9uc2UgZXhwZWN0YXRpb24gTVVTVCByZXR1cm4gYSA0MTcgZXJyb3IuCiMKIwlOb3RlOiBF
bmFibGluZyB0aGlzIGlzIGEgSFRUUCBwcm90b2NvbCB2aW9sYXRpb24sIGJ1dCBzb21lIGNsaWVu
dHMgbWF5CiMJbm90IGhhbmRsZSBpdCB3ZWxsLi4KI0RlZmF1bHQ6CiMgaWdub3JlX2V4cGVjdF8x
MDAgb2ZmCgojIFRJTUVPVVRTCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgIFRBRzogZm9yd2Fy
ZF90aW1lb3V0CXRpbWUtdW5pdHMKIwlUaGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IGxvbmcg
U3F1aWQgc2hvdWxkIGF0IG1vc3QgYXR0ZW1wdCBpbgojCWZpbmRpbmcgYSBmb3J3YXJkaW5nIHBh
dGggZm9yIHRoZSByZXF1ZXN0IGJlZm9yZSBnaXZpbmcgdXAuCiNEZWZhdWx0OgojIGZvcndhcmRf
dGltZW91dCA0IG1pbnV0ZXMKCiMgIFRBRzogY29ubmVjdF90aW1lb3V0CXRpbWUtdW5pdHMKIwlU
aGlzIHBhcmFtZXRlciBzcGVjaWZpZXMgaG93IGxvbmcgdG8gd2FpdCBmb3IgdGhlIFRDUCBjb25u
ZWN0IHRvCiMJdGhlIHJlcXVlc3RlZCBzZXJ2ZXIgb3IgcGVlciB0byBjb21wbGV0ZSBiZWZvcmUg
U3F1aWQgc2hvdWxkCiMJYXR0ZW1wdCB0byBmaW5kIGFub3RoZXIgcGF0aCB3aGVyZSB0byBmb3J3
YXJkIHRoZSByZXF1ZXN0LgojRGVmYXVsdDoKIyBjb25uZWN0X3RpbWVvdXQgMSBtaW51dGUKCiMg
IFRBRzogcGVlcl9jb25uZWN0X3RpbWVvdXQJdGltZS11bml0cwojCVRoaXMgcGFyYW1ldGVyIHNw
ZWNpZmllcyBob3cgbG9uZyB0byB3YWl0IGZvciBhIHBlbmRpbmcgVENQCiMJY29ubmVjdGlvbiB0
byBhIHBlZXIgY2FjaGUuICBUaGUgZGVmYXVsdCBpcyAzMCBzZWNvbmRzLiAgIFlvdQojCW1heSBh
bHNvIHNldCBkaWZmZXJlbnQgdGltZW91dCB2YWx1ZXMgZm9yIGluZGl2aWR1YWwgbmVpZ2hib3Jz
CiMJd2l0aCB0aGUgJ2Nvbm5lY3QtdGltZW91dCcgb3B0aW9uIG9uIGEgJ2NhY2hlX3BlZXInIGxp
bmUuCiNEZWZhdWx0OgojIHBlZXJfY29ubmVjdF90aW1lb3V0IDMwIHNlY29uZHMKCiMgIFRBRzog
cmVhZF90aW1lb3V0CXRpbWUtdW5pdHMKIwlUaGUgcmVhZF90aW1lb3V0IGlzIGFwcGxpZWQgb24g
c2VydmVyLXNpZGUgY29ubmVjdGlvbnMuICBBZnRlcgojCWVhY2ggc3VjY2Vzc2Z1bCByZWFkKCks
IHRoZSB0aW1lb3V0IHdpbGwgYmUgZXh0ZW5kZWQgYnkgdGhpcwojCWFtb3VudC4gIElmIG5vIGRh
dGEgaXMgcmVhZCBhZ2FpbiBhZnRlciB0aGlzIGFtb3VudCBvZiB0aW1lLAojCXRoZSByZXF1ZXN0
IGlzIGFib3J0ZWQgYW5kIGxvZ2dlZCB3aXRoIEVSUl9SRUFEX1RJTUVPVVQuICBUaGUKIwlkZWZh
dWx0IGlzIDE1IG1pbnV0ZXMuCiNEZWZhdWx0OgojIHJlYWRfdGltZW91dCAxNSBtaW51dGVzCgoj
ICBUQUc6IHJlcXVlc3RfdGltZW91dAojCUhvdyBsb25nIHRvIHdhaXQgZm9yIGFuIEhUVFAgcmVx
dWVzdCBhZnRlciBpbml0aWFsCiMJY29ubmVjdGlvbiBlc3RhYmxpc2htZW50LgojRGVmYXVsdDoK
IyByZXF1ZXN0X3RpbWVvdXQgNSBtaW51dGVzCgojICBUQUc6IHBlcnNpc3RlbnRfcmVxdWVzdF90
aW1lb3V0CiMJSG93IGxvbmcgdG8gd2FpdCBmb3IgdGhlIG5leHQgSFRUUCByZXF1ZXN0IG9uIGEg
cGVyc2lzdGVudAojCWNvbm5lY3Rpb24gYWZ0ZXIgdGhlIHByZXZpb3VzIHJlcXVlc3QgY29tcGxl
dGVzLgojRGVmYXVsdDoKIyBwZXJzaXN0ZW50X3JlcXVlc3RfdGltZW91dCAyIG1pbnV0ZXMKCiMg
IFRBRzogY2xpZW50X2xpZmV0aW1lCXRpbWUtdW5pdHMKIwlUaGUgbWF4aW11bSBhbW91bnQgb2Yg
dGltZSBhIGNsaWVudCAoYnJvd3NlcikgaXMgYWxsb3dlZCB0bwojCXJlbWFpbiBjb25uZWN0ZWQg
dG8gdGhlIGNhY2hlIHByb2Nlc3MuICBUaGlzIHByb3RlY3RzIHRoZSBDYWNoZQojCWZyb20gaGF2
aW5nIGEgbG90IG9mIHNvY2tldHMgKGFuZCBoZW5jZSBmaWxlIGRlc2NyaXB0b3JzKSB0aWVkIHVw
CiMJaW4gYSBDTE9TRV9XQUlUIHN0YXRlIGZyb20gcmVtb3RlIGNsaWVudHMgdGhhdCBnbyBhd2F5
IHdpdGhvdXQKIwlwcm9wZXJseSBzaHV0dGluZyBkb3duIChlaXRoZXIgYmVjYXVzZSBvZiBhIG5l
dHdvcmsgZmFpbHVyZSBvcgojCWJlY2F1c2Ugb2YgYSBwb29yIGNsaWVudCBpbXBsZW1lbnRhdGlv
bikuICBUaGUgZGVmYXVsdCBpcyBvbmUKIwlkYXksIDE0NDAgbWludXRlcy4KIwojCU5PVEU6ICBU
aGUgZGVmYXVsdCB2YWx1ZSBpcyBpbnRlbmRlZCB0byBiZSBtdWNoIGxhcmdlciB0aGFuIGFueQoj
CWNsaWVudCB3b3VsZCBldmVyIG5lZWQgdG8gYmUgY29ubmVjdGVkIHRvIHlvdXIgY2FjaGUuICBZ
b3UKIwlzaG91bGQgcHJvYmFibHkgY2hhbmdlIGNsaWVudF9saWZldGltZSBvbmx5IGFzIGEgbGFz
dCByZXNvcnQuCiMJSWYgeW91IHNlZW0gdG8gaGF2ZSBtYW55IGNsaWVudCBjb25uZWN0aW9ucyB0
eWluZyB1cAojCWZpbGVkZXNjcmlwdG9ycywgd2UgcmVjb21tZW5kIGZpcnN0IHR1bmluZyB0aGUg
cmVhZF90aW1lb3V0LAojCXJlcXVlc3RfdGltZW91dCwgcGVyc2lzdGVudF9yZXF1ZXN0X3RpbWVv
dXQgYW5kIHF1aWNrX2Fib3J0IHZhbHVlcy4KI0RlZmF1bHQ6CiMgY2xpZW50X2xpZmV0aW1lIDEg
ZGF5CgojICBUQUc6IGhhbGZfY2xvc2VkX2NsaWVudHMKIwlTb21lIGNsaWVudHMgbWF5IHNodXRk
b3duIHRoZSBzZW5kaW5nIHNpZGUgb2YgdGhlaXIgVENQCiMJY29ubmVjdGlvbnMsIHdoaWxlIGxl
YXZpbmcgdGhlaXIgcmVjZWl2aW5nIHNpZGVzIG9wZW4uCVNvbWV0aW1lcywKIwlTcXVpZCBjYW4g
bm90IHRlbGwgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIGhhbGYtY2xvc2VkIGFuZCBhCiMJZnVs
bHktY2xvc2VkIFRDUCBjb25uZWN0aW9uLgojCiMJQnkgZGVmYXVsdCwgU3F1aWQgd2lsbCBpbW1l
ZGlhdGVseSBjbG9zZSBjbGllbnQgY29ubmVjdGlvbnMgd2hlbgojCXJlYWQoMikgcmV0dXJucyAi
bm8gbW9yZSBkYXRhIHRvIHJlYWQuIgojCiMJQ2hhbmdlIHRoaXMgb3B0aW9uIHRvICdvbicgYW5k
IFNxdWlkIHdpbGwga2VlcCBvcGVuIGNvbm5lY3Rpb25zCiMJdW50aWwgYSByZWFkKDIpIG9yIHdy
aXRlKDIpIG9uIHRoZSBzb2NrZXQgcmV0dXJucyBhbiBlcnJvci4KIwlUaGlzIG1heSBzaG93IHNv
bWUgYmVuZWZpdHMgZm9yIHJldmVyc2UgcHJveGllcy4gQnV0IGlmIG5vdAojCWl0IGlzIHJlY29t
bWVuZGVkIHRvIGxlYXZlIE9GRi4KI0RlZmF1bHQ6CiMgaGFsZl9jbG9zZWRfY2xpZW50cyBvZmYK
CiMgIFRBRzogcGNvbm5fdGltZW91dAojCVRpbWVvdXQgZm9yIGlkbGUgcGVyc2lzdGVudCBjb25u
ZWN0aW9ucyB0byBzZXJ2ZXJzIGFuZCBvdGhlcgojCXByb3hpZXMuCiNEZWZhdWx0OgojIHBjb25u
X3RpbWVvdXQgMSBtaW51dGUKCiMgIFRBRzogaWRlbnRfdGltZW91dAojCU1heGltdW0gdGltZSB0
byB3YWl0IGZvciBJREVOVCBsb29rdXBzIHRvIGNvbXBsZXRlLgojCiMJSWYgdGhpcyBpcyB0b28g
aGlnaCwgYW5kIHlvdSBlbmFibGVkIElERU5UIGxvb2t1cHMgZnJvbSB1bnRydXN0ZWQKIwl1c2Vy
cywgeW91IG1pZ2h0IGJlIHN1c2NlcHRpYmxlIHRvIGRlbmlhbC1vZi1zZXJ2aWNlIGJ5IGhhdmlu
ZwojCW1hbnkgaWRlbnQgcmVxdWVzdHMgZ29pbmcgYXQgb25jZS4KI0RlZmF1bHQ6CiMgaWRlbnRf
dGltZW91dCAxMCBzZWNvbmRzCgojICBUQUc6IHNodXRkb3duX2xpZmV0aW1lCXRpbWUtdW5pdHMK
IwlXaGVuIFNJR1RFUk0gb3IgU0lHSFVQIGlzIHJlY2VpdmVkLCB0aGUgY2FjaGUgaXMgcHV0IGlu
dG8KIwkic2h1dGRvd24gcGVuZGluZyIgbW9kZSB1bnRpbCBhbGwgYWN0aXZlIHNvY2tldHMgYXJl
IGNsb3NlZC4KIwlUaGlzIHZhbHVlIGlzIHRoZSBsaWZldGltZSB0byBzZXQgZm9yIGFsbCBvcGVu
IGRlc2NyaXB0b3JzCiMJZHVyaW5nIHNodXRkb3duIG1vZGUuICBBbnkgYWN0aXZlIGNsaWVudHMg
YWZ0ZXIgdGhpcyBtYW55CiMJc2Vjb25kcyB3aWxsIHJlY2VpdmUgYSAndGltZW91dCcgbWVzc2Fn
ZS4KI0RlZmF1bHQ6CiMgc2h1dGRvd25fbGlmZXRpbWUgMzAgc2Vjb25kcwoKIyBBRE1JTklTVFJB
VElWRSBQQVJBTUVURVJTCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgIFRBRzogY2FjaGVfbWdy
CiMJRW1haWwtYWRkcmVzcyBvZiBsb2NhbCBjYWNoZSBtYW5hZ2VyIHdobyB3aWxsIHJlY2VpdmUK
IwltYWlsIGlmIHRoZSBjYWNoZSBkaWVzLiAgVGhlIGRlZmF1bHQgaXMgIndlYm1hc3Rlci4iCiNE
ZWZhdWx0OgojIGNhY2hlX21nciB3ZWJtYXN0ZXIKCiMgIFRBRzogbWFpbF9mcm9tCiMJRnJvbTog
ZW1haWwtYWRkcmVzcyBmb3IgbWFpbCBzZW50IHdoZW4gdGhlIGNhY2hlIGRpZXMuCiMJVGhlIGRl
ZmF1bHQgaXMgdG8gdXNlICdhcHBuYW1lQHVuaXF1ZV9ob3N0bmFtZScuCiMJRGVmYXVsdCBhcHBu
YW1lIHZhbHVlIGlzICJzcXVpZCIsIGNhbiBiZSBjaGFuZ2VkIGludG8KIwlzcmMvZ2xvYmFscy5o
IGJlZm9yZSBidWlsZGluZyBzcXVpZC4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBtYWlsX3By
b2dyYW0KIwlFbWFpbCBwcm9ncmFtIHVzZWQgdG8gc2VuZCBtYWlsIGlmIHRoZSBjYWNoZSBkaWVz
LgojCVRoZSBkZWZhdWx0IGlzICJtYWlsIi4gVGhlIHNwZWNpZmllZCBwcm9ncmFtIG11c3QgY29t
cGx5CiMJd2l0aCB0aGUgc3RhbmRhcmQgVW5peCBtYWlsIHN5bnRheDoKIwkgIG1haWwtcHJvZ3Jh
bSByZWNpcGllbnQgPCBtYWlsZmlsZQojCiMJT3B0aW9uYWwgY29tbWFuZCBsaW5lIG9wdGlvbnMg
Y2FuIGJlIHNwZWNpZmllZC4KI0RlZmF1bHQ6CiMgbWFpbF9wcm9ncmFtIG1haWwKCiMgIFRBRzog
Y2FjaGVfZWZmZWN0aXZlX3VzZXIKIwlJZiB5b3Ugc3RhcnQgU3F1aWQgYXMgcm9vdCwgaXQgd2ls
bCBjaGFuZ2UgaXRzIGVmZmVjdGl2ZS9yZWFsCiMJVUlEL0dJRCB0byB0aGUgdXNlciBzcGVjaWZp
ZWQgYmVsb3cuICBUaGUgZGVmYXVsdCBpcyB0byBjaGFuZ2UKIwl0byBVSUQgb2Ygc3F1aWQuCiMJ
c2VlIGFsc287IGNhY2hlX2VmZmVjdGl2ZV9ncm91cAojRGVmYXVsdDoKIyBjYWNoZV9lZmZlY3Rp
dmVfdXNlciBzcXVpZAoKIyAgVEFHOiBjYWNoZV9lZmZlY3RpdmVfZ3JvdXAKIwlTcXVpZCBzZXRz
IHRoZSBHSUQgdG8gdGhlIGVmZmVjdGl2ZSB1c2VyJ3MgZGVmYXVsdCBncm91cCBJRAojCSh0YWtl
biBmcm9tIHRoZSBwYXNzd29yZCBmaWxlKSBhbmQgc3VwcGxlbWVudGFyeSBncm91cCBsaXN0CiMJ
ZnJvbSB0aGUgZ3JvdXBzIG1lbWJlcnNoaXAuCiMKIwlJZiB5b3Ugd2FudCBTcXVpZCB0byBydW4g
d2l0aCBhIHNwZWNpZmljIEdJRCByZWdhcmRsZXNzIG9mCiMJdGhlIGdyb3VwIG1lbWJlcnNoaXBz
IG9mIHRoZSBlZmZlY3RpdmUgdXNlciB0aGVuIHNldCB0aGlzCiMJdG8gdGhlIGdyb3VwIChvciBH
SUQpIHlvdSB3YW50IFNxdWlkIHRvIHJ1biBhcy4gV2hlbiBzZXQKIwlhbGwgb3RoZXIgZ3JvdXAg
cHJpdmlsZWdlcyBvZiB0aGUgZWZmZWN0aXZlIHVzZXIgYXJlIGlnbm9yZWQKIwlhbmQgb25seSB0
aGlzIEdJRCBpcyBlZmZlY3RpdmUuIElmIFNxdWlkIGlzIG5vdCBzdGFydGVkIGFzCiMJcm9vdCB0
aGUgdXNlciBzdGFydGluZyBTcXVpZCBNVVNUIGJlIG1lbWJlciBvZiB0aGUgc3BlY2lmaWVkCiMJ
Z3JvdXAuCiMKIwlUaGlzIG9wdGlvbiBpcyBub3QgcmVjb21tZW5kZWQgYnkgdGhlIFNxdWlkIFRl
YW0uCiMJT3VyIHByZWZlcmVuY2UgaXMgZm9yIGFkbWluaXN0cmF0b3JzIHRvIGNvbmZpZ3VyZSBh
IHNlY3VyZQojCXVzZXIgYWNjb3VudCBmb3Igc3F1aWQgd2l0aCBVSUQvR0lEIG1hdGNoaW5nIHN5
c3RlbSBwb2xpY2llcy4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBodHRwZF9zdXBwcmVzc192
ZXJzaW9uX3N0cmluZwlvbnxvZmYKIwlTdXBwcmVzcyBTcXVpZCB2ZXJzaW9uIHN0cmluZyBpbmZv
IGluIEhUVFAgaGVhZGVycyBhbmQgSFRNTCBlcnJvciBwYWdlcy4KI0RlZmF1bHQ6CiMgaHR0cGRf
c3VwcHJlc3NfdmVyc2lvbl9zdHJpbmcgb2ZmCgojICBUQUc6IHZpc2libGVfaG9zdG5hbWUKIwlJ
ZiB5b3Ugd2FudCB0byBwcmVzZW50IGEgc3BlY2lhbCBob3N0bmFtZSBpbiBlcnJvciBtZXNzYWdl
cywgZXRjLAojCWRlZmluZSB0aGlzLiAgT3RoZXJ3aXNlLCB0aGUgcmV0dXJuIHZhbHVlIG9mIGdl
dGhvc3RuYW1lKCkKIwl3aWxsIGJlIHVzZWQuIElmIHlvdSBoYXZlIG11bHRpcGxlIGNhY2hlcyBp
biBhIGNsdXN0ZXIgYW5kCiMJZ2V0IGVycm9ycyBhYm91dCBJUC1mb3J3YXJkaW5nIHlvdSBtdXN0
IHNldCB0aGVtIHRvIGhhdmUgaW5kaXZpZHVhbAojCW5hbWVzIHdpdGggdGhpcyBzZXR0aW5nLgoj
RGVmYXVsdDoKIyBub25lCgojICBUQUc6IHVuaXF1ZV9ob3N0bmFtZQojCUlmIHlvdSB3YW50IHRv
IGhhdmUgbXVsdGlwbGUgbWFjaGluZXMgd2l0aCB0aGUgc2FtZQojCSd2aXNpYmxlX2hvc3RuYW1l
JyB5b3UgbXVzdCBnaXZlIGVhY2ggbWFjaGluZSBhIGRpZmZlcmVudAojCSd1bmlxdWVfaG9zdG5h
bWUnIHNvIGZvcndhcmRpbmcgbG9vcHMgY2FuIGJlIGRldGVjdGVkLgojRGVmYXVsdDoKIyBub25l
CgojICBUQUc6IGhvc3RuYW1lX2FsaWFzZXMKIwlBIGxpc3Qgb2Ygb3RoZXIgRE5TIG5hbWVzIHlv
dXIgY2FjaGUgaGFzLgojRGVmYXVsdDoKIyBub25lCgojICBUQUc6IHVtYXNrCiMJTWluaW11bSB1
bWFzayB3aGljaCBzaG91bGQgYmUgZW5mb3JjZWQgd2hpbGUgdGhlIHByb3h5CiMJaXMgcnVubmlu
ZywgaW4gYWRkaXRpb24gdG8gdGhlIHVtYXNrIHNldCBhdCBzdGFydHVwLgojCiMJRm9yIGEgdHJh
ZGl0aW9uYWwgb2N0YWwgcmVwcmVzZW50YXRpb24gb2YgdW1hc2tzLCBzdGFydAojICAgICAgICB5
b3VyIHZhbHVlIHdpdGggMC4KI0RlZmF1bHQ6CiMgdW1hc2sgMDI3CgojIE9QVElPTlMgRk9SIFRI
RSBDQUNIRSBSRUdJU1RSQVRJT04gU0VSVklDRQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIwlU
aGlzIHNlY3Rpb24gY29udGFpbnMgcGFyYW1ldGVycyBmb3IgdGhlIChvcHRpb25hbCkgY2FjaGUK
Iwlhbm5vdW5jZW1lbnQgc2VydmljZS4gIFRoaXMgc2VydmljZSBpcyBwcm92aWRlZCB0byBoZWxw
CiMJY2FjaGUgYWRtaW5pc3RyYXRvcnMgbG9jYXRlIG9uZSBhbm90aGVyIGluIG9yZGVyIHRvIGpv
aW4gb3IKIwljcmVhdGUgY2FjaGUgaGllcmFyY2hpZXMuCiMKIwlBbiAnYW5ub3VuY2VtZW50JyBt
ZXNzYWdlIGlzIHNlbnQgKHZpYSBVRFApIHRvIHRoZSByZWdpc3RyYXRpb24KIwlzZXJ2aWNlIGJ5
IFNxdWlkLiAgQnkgZGVmYXVsdCwgdGhlIGFubm91bmNlbWVudCBtZXNzYWdlIGlzIE5PVAojCVNF
TlQgdW5sZXNzIHlvdSBlbmFibGUgaXQgd2l0aCAnYW5ub3VuY2VfcGVyaW9kJyBiZWxvdy4KIwoj
CVRoZSBhbm5vdW5jZW1lbnQgbWVzc2FnZSBpbmNsdWRlcyB5b3VyIGhvc3RuYW1lLCBwbHVzIHRo
ZQojCWZvbGxvd2luZyBpbmZvcm1hdGlvbiBmcm9tIHRoaXMgY29uZmlndXJhdGlvbiBmaWxlOgoj
CiMJCWh0dHBfcG9ydAojCQlpY3BfcG9ydAojCQljYWNoZV9tZ3IKIwojCUFsbCBjdXJyZW50IGlu
Zm9ybWF0aW9uIGlzIHByb2Nlc3NlZCByZWd1bGFybHkgYW5kIG1hZGUKIwlhdmFpbGFibGUgb24g
dGhlIFdlYiBhdCBodHRwOi8vd3d3LmlyY2FjaGUubmV0L0NhY2hlL1RyYWNrZXIvLgoKIyAgVEFH
OiBhbm5vdW5jZV9wZXJpb2QKIwlUaGlzIGlzIGhvdyBmcmVxdWVudGx5IHRvIHNlbmQgY2FjaGUg
YW5ub3VuY2VtZW50cy4gIFRoZQojCWRlZmF1bHQgaXMgYDAnIHdoaWNoIGRpc2FibGVzIHNlbmRp
bmcgdGhlIGFubm91bmNlbWVudAojCW1lc3NhZ2VzLgojCiMJVG8gZW5hYmxlIGFubm91bmNpbmcg
eW91ciBjYWNoZSwganVzdCBzZXQgYW4gYW5ub3VuY2UgcGVyaW9kLgojCiMJRXhhbXBsZToKIwkJ
YW5ub3VuY2VfcGVyaW9kIDEgZGF5CiNEZWZhdWx0OgojIGFubm91bmNlX3BlcmlvZCAwCgojICBU
QUc6IGFubm91bmNlX2hvc3QKIyAgVEFHOiBhbm5vdW5jZV9maWxlCiMgIFRBRzogYW5ub3VuY2Vf
cG9ydAojCWFubm91bmNlX2hvc3QgYW5kIGFubm91bmNlX3BvcnQgc2V0IHRoZSBob3N0bmFtZSBh
bmQgcG9ydAojCW51bWJlciB3aGVyZSB0aGUgcmVnaXN0cmF0aW9uIG1lc3NhZ2Ugd2lsbCBiZSBz
ZW50LgojCiMJSG9zdG5hbWUgd2lsbCBkZWZhdWx0IHRvICd0cmFja2VyLmlyY2FjaGUubmV0JyBh
bmQgcG9ydCB3aWxsCiMJZGVmYXVsdCBkZWZhdWx0IHRvIDMxMzEuICBJZiB0aGUgJ2ZpbGVuYW1l
JyBhcmd1bWVudCBpcyBnaXZlbiwKIwl0aGUgY29udGVudHMgb2YgdGhhdCBmaWxlIHdpbGwgYmUg
aW5jbHVkZWQgaW4gdGhlIGFubm91bmNlCiMJbWVzc2FnZS4KI0RlZmF1bHQ6CiMgYW5ub3VuY2Vf
aG9zdCB0cmFja2VyLmlyY2FjaGUubmV0CiMgYW5ub3VuY2VfcG9ydCAzMTMxCgojIEhUVFBELUFD
Q0VMRVJBVE9SIE9QVElPTlMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAgVEFHOiBodHRwZF9h
Y2NlbF9zdXJyb2dhdGVfaWQKIyBOb3RlOiBUaGlzIG9wdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBp
ZiBTcXVpZCBpcyByZWJ1aWx0IHdpdGggdGhlCiMgICAgICAgLS1lbmFibGUtZXNpIG9wdGlvbgoj
CiMJU3Vycm9nYXRlcyAoaHR0cDovL3d3dy5lc2kub3JnL2FyY2hpdGVjdHVyZV9zcGVjXzEuMC5o
dG1sKQojCW5lZWQgYW4gaWRlbnRpZmljYXRpb24gdG9rZW4gdG8gYWxsb3cgY29udHJvbCB0YXJn
ZXRpbmcuIEJlY2F1c2UKIwlhIGZhcm0gb2Ygc3Vycm9nYXRlcyBtYXkgYWxsIHBlcmZvcm0gdGhl
IHNhbWUgdGFza3MsIHRoZXkgbWF5IHNoYXJlCiMJYW4gaWRlbnRpZmljYXRpb24gdG9rZW4uCiNE
ZWZhdWx0OgojIGh0dHBkX2FjY2VsX3N1cnJvZ2F0ZV9pZCB1bnNldC1pZAoKIyAgVEFHOiBodHRw
X2FjY2VsX3N1cnJvZ2F0ZV9yZW1vdGUJb258b2ZmCiMgTm90ZTogVGhpcyBvcHRpb24gaXMgb25s
eSBhdmFpbGFibGUgaWYgU3F1aWQgaXMgcmVidWlsdCB3aXRoIHRoZQojICAgICAgIC0tZW5hYmxl
LWVzaSBvcHRpb24KIwojCVJlbW90ZSBzdXJyb2dhdGVzIChzdWNoIGFzIHRob3NlIGluIGEgQ0RO
KSBob25vdXIgU3Vycm9nYXRlLUNvbnRyb2w6IG5vLXN0b3JlLXJlbW90ZS4KIwlTZXQgdGhpcyB0
byBvbiB0byBoYXZlIHNxdWlkIGJlaGF2ZSBhcyBhIHJlbW90ZSBzdXJyb2dhdGUuCiNEZWZhdWx0
OgojIGh0dHBfYWNjZWxfc3Vycm9nYXRlX3JlbW90ZSBvZmYKCiMgIFRBRzogZXNpX3BhcnNlcgls
aWJ4bWwyfGV4cGF0fGN1c3RvbQojIE5vdGU6IFRoaXMgb3B0aW9uIGlzIG9ubHkgYXZhaWxhYmxl
IGlmIFNxdWlkIGlzIHJlYnVpbHQgd2l0aCB0aGUKIyAgICAgICAtLWVuYWJsZS1lc2kgb3B0aW9u
CiMKIwlFU0kgbWFya3VwIGlzIG5vdCBzdHJpY3RseSBYTUwgY29tcGF0aWJsZS4gVGhlIGN1c3Rv
bSBFU0kgcGFyc2VyCiMJd2lsbCBnaXZlIGhpZ2hlciBwZXJmb3JtYW5jZSwgYnV0IGNhbm5vdCBo
YW5kbGUgbm9uIEFTQ0lJIGNoYXJhY3RlcgojCWVuY29kaW5ncy4KI0RlZmF1bHQ6CiMgZXNpX3Bh
cnNlciBjdXN0b20KCiMgREVMQVkgUE9PTCBQQVJBTUVURVJTCiMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KCiMgIFRBRzogZGVsYXlfcG9vbHMKIwlUaGlzIHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBk
ZWxheSBwb29scyB0byBiZSB1c2VkLiAgRm9yIGV4YW1wbGUsCiMJaWYgeW91IGhhdmUgb25lIGNs
YXNzIDIgZGVsYXkgcG9vbCBhbmQgb25lIGNsYXNzIDMgZGVsYXlzIHBvb2wsIHlvdQojCWhhdmUg
YSB0b3RhbCBvZiAyIGRlbGF5IHBvb2xzLgojRGVmYXVsdDoKIyBkZWxheV9wb29scyAwCgojICBU
QUc6IGRlbGF5X2NsYXNzCiMJVGhpcyBkZWZpbmVzIHRoZSBjbGFzcyBvZiBlYWNoIGRlbGF5IHBv
b2wuICBUaGVyZSBtdXN0IGJlIGV4YWN0bHkgb25lCiMJZGVsYXlfY2xhc3MgbGluZSBmb3IgZWFj
aCBkZWxheSBwb29sLiAgRm9yIGV4YW1wbGUsIHRvIGRlZmluZSB0d28KIwlkZWxheSBwb29scywg
b25lIG9mIGNsYXNzIDIgYW5kIG9uZSBvZiBjbGFzcyAzLCB0aGUgc2V0dGluZ3MgYWJvdmUKIwlh
bmQgaGVyZSB3b3VsZCBiZToKIwojCUV4YW1wbGU6CiMJICAgIGRlbGF5X3Bvb2xzIDQgICAgICAj
IDQgZGVsYXkgcG9vbHMKIwkgICAgZGVsYXlfY2xhc3MgMSAyICAgICMgcG9vbCAxIGlzIGEgY2xh
c3MgMiBwb29sCiMJICAgIGRlbGF5X2NsYXNzIDIgMyAgICAjIHBvb2wgMiBpcyBhIGNsYXNzIDMg
cG9vbAojCSAgICBkZWxheV9jbGFzcyAzIDQgICAgIyBwb29sIDMgaXMgYSBjbGFzcyA0IHBvb2wK
IwkgICAgZGVsYXlfY2xhc3MgNCA1ICAgICMgcG9vbCA0IGlzIGEgY2xhc3MgNSBwb29sCiMKIwlU
aGUgZGVsYXkgcG9vbCBjbGFzc2VzIGFyZToKIwojCQljbGFzcyAxCQlFdmVyeXRoaW5nIGlzIGxp
bWl0ZWQgYnkgYSBzaW5nbGUgYWdncmVnYXRlCiMJCQkJYnVja2V0LgojCiMJCWNsYXNzIDIgCUV2
ZXJ5dGhpbmcgaXMgbGltaXRlZCBieSBhIHNpbmdsZSBhZ2dyZWdhdGUKIwkJCQlidWNrZXQgYXMg
d2VsbCBhcyBhbiAiaW5kaXZpZHVhbCIgYnVja2V0IGNob3NlbgojCQkJCWZyb20gYml0cyAyNSB0
aHJvdWdoIDMyIG9mIHRoZSBJUHY0IGFkZHJlc3MuCiMKIwkJY2xhc3MgMwkJRXZlcnl0aGluZyBp
cyBsaW1pdGVkIGJ5IGEgc2luZ2xlIGFnZ3JlZ2F0ZQojCQkJCWJ1Y2tldCBhcyB3ZWxsIGFzIGEg
Im5ldHdvcmsiIGJ1Y2tldCBjaG9zZW4KIwkJCQlmcm9tIGJpdHMgMTcgdGhyb3VnaCAyNCBvZiB0
aGUgSVAgYWRkcmVzcyBhbmQgYQojCQkJCSJpbmRpdmlkdWFsIiBidWNrZXQgY2hvc2VuIGZyb20g
Yml0cyAxNyB0aHJvdWdoCiMJCQkJMzIgb2YgdGhlIElQdjQgYWRkcmVzcy4KIwojCQljbGFzcyA0
CQlFdmVyeXRoaW5nIGluIGEgY2xhc3MgMyBkZWxheSBwb29sLCB3aXRoIGFuCiMJCQkJYWRkaXRp
b25hbCBsaW1pdCBvbiBhIHBlciB1c2VyIGJhc2lzLiBUaGlzCiMJCQkJb25seSB0YWtlcyBlZmZl
Y3QgaWYgdGhlIHVzZXJuYW1lIGlzIGVzdGFibGlzaGVkCiMJCQkJaW4gYWR2YW5jZSAtIGJ5IGZv
cmNpbmcgYXV0aGVudGljYXRpb24gaW4geW91cgojCQkJCWh0dHBfYWNjZXNzIHJ1bGVzLgojCiMJ
CWNsYXNzIDUJCVJlcXVlc3RzIGFyZSBncm91cGVkIGFjY29yZGluZyB0aGVpciB0YWcgKHNlZQoj
CQkJCWV4dGVybmFsX2FjbCdzIHRhZz0gcmVwbHkpLgojCiMJTk9URTogSWYgYW4gSVAgYWRkcmVz
cyBpcyBhLmIuYy5kCiMJCS0+IGJpdHMgMjUgdGhyb3VnaCAzMiBhcmUgImQiCiMJCS0+IGJpdHMg
MTcgdGhyb3VnaCAyNCBhcmUgImMiCiMJCS0+IGJpdHMgMTcgdGhyb3VnaCAzMiBhcmUgImMgKiAy
NTYgKyBkIgojCiMJTk9URS0yOiBEdWUgdG8gdGhlIHVzZSBvZiBiaXRtYXNrcyBpbiBjbGFzcyAy
LDMsNCBwb29scyB0aGV5IG9ubHkgYXBwbHkgdG8KIwkJSVB2NCB0cmFmZmljLiBDbGFzcyAxIGFu
ZCA1IHBvb2xzIG1heSBiZSB1c2VkIHdpdGggSVB2NiB0cmFmZmljLgojRGVmYXVsdDoKIyBub25l
CgojICBUQUc6IGRlbGF5X2FjY2VzcwojCVRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hpY2gg
ZGVsYXkgcG9vbCBhIHJlcXVlc3QgZmFsbHMgaW50by4KIwojCWRlbGF5X2FjY2VzcyBpcyBzb3J0
ZWQgcGVyIHBvb2wgYW5kIHRoZSBtYXRjaGluZyBzdGFydHMgd2l0aCBwb29sIDEsCiMJdGhlbiBw
b29sIDIsIC4uLiwgYW5kIGZpbmFsbHkgcG9vbCBOLiBUaGUgZmlyc3QgZGVsYXkgcG9vbCB3aGVy
ZSB0aGUKIwlyZXF1ZXN0IGlzIGFsbG93ZWQgaXMgc2VsZWN0ZWQgZm9yIHRoZSByZXF1ZXN0LiBJ
ZiBpdCBkb2VzIG5vdCBhbGxvdwojCXRoZSByZXF1ZXN0IHRvIGFueSBwb29sIHRoZW4gdGhlIHJl
cXVlc3QgaXMgbm90IGRlbGF5ZWQgKGRlZmF1bHQpLgojCiMJRm9yIGV4YW1wbGUsIGlmIHlvdSB3
YW50IHNvbWVfYmlnX2NsaWVudHMgaW4gZGVsYXkKIwlwb29sIDEgYW5kIGxvdHNhX2xpdHRsZV9j
bGllbnRzIGluIGRlbGF5IHBvb2wgMjoKIwojRXhhbXBsZToKIyBkZWxheV9hY2Nlc3MgMSBhbGxv
dyBzb21lX2JpZ19jbGllbnRzCiMgZGVsYXlfYWNjZXNzIDEgZGVueSBhbGwKIyBkZWxheV9hY2Nl
c3MgMiBhbGxvdyBsb3RzYV9saXR0bGVfY2xpZW50cwojIGRlbGF5X2FjY2VzcyAyIGRlbnkgYWxs
CiMgZGVsYXlfYWNjZXNzIDMgYWxsb3cgYXV0aGVudGljYXRlZF9jbGllbnRzCiNEZWZhdWx0Ogoj
IG5vbmUKCiMgIFRBRzogZGVsYXlfcGFyYW1ldGVycwojCVRoaXMgZGVmaW5lcyB0aGUgcGFyYW1l
dGVycyBmb3IgYSBkZWxheSBwb29sLiAgRWFjaCBkZWxheSBwb29sIGhhcwojCWEgbnVtYmVyIG9m
ICJidWNrZXRzIiBhc3NvY2lhdGVkIHdpdGggaXQsIGFzIGV4cGxhaW5lZCBpbiB0aGUKIwlkZXNj
cmlwdGlvbiBvZiBkZWxheV9jbGFzcy4gIEZvciBhIGNsYXNzIDEgZGVsYXkgcG9vbCwgdGhlIHN5
bnRheCBpczoKIwojZGVsYXlfcGFyYW1ldGVycyBwb29sIGFnZ3JlZ2F0ZQojCiMJRm9yIGEgY2xh
c3MgMiBkZWxheSBwb29sOgojCiNkZWxheV9wYXJhbWV0ZXJzIHBvb2wgYWdncmVnYXRlIGluZGl2
aWR1YWwKIwojCUZvciBhIGNsYXNzIDMgZGVsYXkgcG9vbDoKIwojZGVsYXlfcGFyYW1ldGVycyBw
b29sIGFnZ3JlZ2F0ZSBuZXR3b3JrIGluZGl2aWR1YWwKIwojCUZvciBhIGNsYXNzIDQgZGVsYXkg
cG9vbDoKIwojZGVsYXlfcGFyYW1ldGVycyBwb29sIGFnZ3JlZ2F0ZSBuZXR3b3JrIGluZGl2aWR1
YWwgdXNlcgojCiMJRm9yIGEgY2xhc3MgNSBkZWxheSBwb29sOgojCiNkZWxheV9wYXJhbWV0ZXJz
IHBvb2wgdGFnCiMKIwlUaGUgdmFyaWFibGVzIGhlcmUgYXJlOgojCiMJCXBvb2wJCWEgcG9vbCBu
dW1iZXIgLSBpZSwgYSBudW1iZXIgYmV0d2VlbiAxIGFuZCB0aGUKIwkJCQludW1iZXIgc3BlY2lm
aWVkIGluIGRlbGF5X3Bvb2xzIGFzIHVzZWQgaW4KIwkJCQlkZWxheV9jbGFzcyBsaW5lcy4KIwoj
CQlhZ2dyZWdhdGUJdGhlICJkZWxheSBwYXJhbWV0ZXJzIiBmb3IgdGhlIGFnZ3JlZ2F0ZSBidWNr
ZXQKIwkJCQkoY2xhc3MgMSwgMiwgMykuCiMKIwkJaW5kaXZpZHVhbAl0aGUgImRlbGF5IHBhcmFt
ZXRlcnMiIGZvciB0aGUgaW5kaXZpZHVhbAojCQkJCWJ1Y2tldHMgKGNsYXNzIDIsIDMpLgojCiMJ
CW5ldHdvcmsJCXRoZSAiZGVsYXkgcGFyYW1ldGVycyIgZm9yIHRoZSBuZXR3b3JrIGJ1Y2tldHMK
IwkJCQkoY2xhc3MgMykuCiMKIwkJdXNlcgkJdGhlIGRlbGF5IHBhcmFtZXRlcnMgZm9yIHRoZSB1
c2VyIGJ1Y2tldHMKIwkJCQkoY2xhc3MgNCkuCiMKIwkJdGFnCQl0aGUgZGVsYXkgcGFyYW1ldGVy
cyBmb3IgdGhlIHRhZyBidWNrZXRzCiMJCQkJKGNsYXNzIDUpLgojCiMJQSBwYWlyIG9mIGRlbGF5
IHBhcmFtZXRlcnMgaXMgd3JpdHRlbiByZXN0b3JlL21heGltdW0sIHdoZXJlIHJlc3RvcmUgaXMK
Iwl0aGUgbnVtYmVyIG9mIGJ5dGVzIChub3QgYml0cyAtIG1vZGVtIGFuZCBuZXR3b3JrIHNwZWVk
cyBhcmUgdXN1YWxseQojCXF1b3RlZCBpbiBiaXRzKSBwZXIgc2Vjb25kIHBsYWNlZCBpbnRvIHRo
ZSBidWNrZXQsIGFuZCBtYXhpbXVtIGlzIHRoZQojCW1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHdo
aWNoIGNhbiBiZSBpbiB0aGUgYnVja2V0IGF0IGFueSB0aW1lLgojCiMJRm9yIGV4YW1wbGUsIGlm
IGRlbGF5IHBvb2wgbnVtYmVyIDEgaXMgYSBjbGFzcyAyIGRlbGF5IHBvb2wgYXMgaW4gdGhlCiMJ
YWJvdmUgZXhhbXBsZSwgYW5kIGlzIGJlaW5nIHVzZWQgdG8gc3RyaWN0bHkgbGltaXQgZWFjaCBo
b3N0IHRvIDY0a2JwcwojCShwbHVzIG92ZXJoZWFkcyksIHdpdGggbm8gb3ZlcmFsbCBsaW1pdCwg
dGhlIGxpbmUgaXM6CiMKI2RlbGF5X3BhcmFtZXRlcnMgMSAtMS8tMSA4MDAwLzgwMDAKIwojCU5v
dGUgdGhhdCB0aGUgZmlndXJlIC0xIGlzIHVzZWQgdG8gcmVwcmVzZW50ICJ1bmxpbWl0ZWQiLgoj
CiMJQW5kLCBpZiBkZWxheSBwb29sIG51bWJlciAyIGlzIGEgY2xhc3MgMyBkZWxheSBwb29sIGFz
IGluIHRoZSBhYm92ZQojCWV4YW1wbGUsIGFuZCB5b3Ugd2FudCB0byBsaW1pdCBpdCB0byBhIHRv
dGFsIG9mIDI1NmticHMgKHN0cmljdCBsaW1pdCkKIwl3aXRoIGVhY2ggOC1iaXQgbmV0d29yayBw
ZXJtaXR0ZWQgNjRrYnBzIChzdHJpY3QgbGltaXQpIGFuZCBlYWNoCiMJaW5kaXZpZHVhbCBob3N0
IHBlcm1pdHRlZCA0ODAwYnBzIHdpdGggYSBidWNrZXQgbWF4aW11bSBzaXplIG9mIDY0a2IKIwl0
byBwZXJtaXQgYSBkZWNlbnQgd2ViIHBhZ2UgdG8gYmUgZG93bmxvYWRlZCBhdCBhIGRlY2VudCBz
cGVlZAojCShpZiB0aGUgbmV0d29yayBpcyBub3QgYmVpbmcgbGltaXRlZCBkdWUgdG8gb3ZlcnVz
ZSkgYnV0IHNsb3cgZG93bgojCWxhcmdlIGRvd25sb2FkcyBtb3JlIHNpZ25pZmljYW50bHk6CiMK
I2RlbGF5X3BhcmFtZXRlcnMgMiAzMjAwMC8zMjAwMCA4MDAwLzgwMDAgNjAwLzgwMDAKIwojCVRo
ZXJlIG11c3QgYmUgb25lIGRlbGF5X3BhcmFtZXRlcnMgbGluZSBmb3IgZWFjaCBkZWxheSBwb29s
LgojCiMJRmluYWxseSwgZm9yIGEgY2xhc3MgNCBkZWxheSBwb29sIGFzIGluIHRoZSBleGFtcGxl
IC0gZWFjaCB1c2VyIHdpbGwKIwliZSBsaW1pdGVkIHRvIDEyOEtiIG5vIG1hdHRlciBob3cgbWFu
eSB3b3Jrc3RhdGlvbnMgdGhleSBhcmUgbG9nZ2VkIGludG8uOgojCiNkZWxheV9wYXJhbWV0ZXJz
IDQgMzIwMDAvMzIwMDAgODAwMC84MDAwIDYwMC82NDAwMCAxNjAwMC8xNjAwMAojRGVmYXVsdDoK
IyBub25lCgojICBUQUc6IGRlbGF5X2luaXRpYWxfYnVja2V0X2xldmVsCShwZXJjZW50LCAwLTEw
MCkKIwlUaGUgaW5pdGlhbCBidWNrZXQgcGVyY2VudGFnZSBpcyB1c2VkIHRvIGRldGVybWluZSBo
b3cgbXVjaCBpcyBwdXQKIwlpbiBlYWNoIGJ1Y2tldCB3aGVuIHNxdWlkIHN0YXJ0cywgaXMgcmVj
b25maWd1cmVkLCBvciBmaXJzdCBub3RpY2VzCiMJYSBob3N0IGFjY2Vzc2luZyBpdCAoaW4gY2xh
c3MgMiBhbmQgY2xhc3MgMywgaW5kaXZpZHVhbCBob3N0cyBhbmQKIwluZXR3b3JrcyBvbmx5IGhh
dmUgYnVja2V0cyBhc3NvY2lhdGVkIHdpdGggdGhlbSBvbmNlIHRoZXkgaGF2ZSBiZWVuCiMJInNl
ZW4iIGJ5IHNxdWlkKS4KI0RlZmF1bHQ6CiMgZGVsYXlfaW5pdGlhbF9idWNrZXRfbGV2ZWwgNTAK
CiMgV0NDUHYxIEFORCBXQ0NQdjIgQ09ORklHVVJBVElPTiBPUFRJT05TCiMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KCiMgIFRBRzogd2NjcF9yb3V0ZXIKIwlVc2UgdGhpcyBvcHRpb24gdG8gZGVmaW5l
IHlvdXIgV0NDUCBgYGhvbWUnJyByb3V0ZXIgZm9yCiMJU3F1aWQuCiMKIwl3Y2NwX3JvdXRlciBz
dXBwb3J0cyBhIHNpbmdsZSBXQ0NQKHYxKSByb3V0ZXIKIwojCXdjY3AyX3JvdXRlciBzdXBwb3J0
cyBtdWx0aXBsZSBXQ0NQdjIgcm91dGVycwojCiMJb25seSBvbmUgb2YgdGhlIHR3byBtYXkgYmUg
dXNlZCBhdCB0aGUgc2FtZSB0aW1lIGFuZCBkZWZpbmVzCiMJd2hpY2ggdmVyc2lvbiBvZiBXQ0NQ
IHRvIHVzZS4KI0RlZmF1bHQ6CiMgd2NjcF9yb3V0ZXIgYW55X2FkZHIKCiMgIFRBRzogd2NjcDJf
cm91dGVyCiMJVXNlIHRoaXMgb3B0aW9uIHRvIGRlZmluZSB5b3VyIFdDQ1AgYGBob21lJycgcm91
dGVyIGZvcgojCVNxdWlkLgojCiMJd2NjcF9yb3V0ZXIgc3VwcG9ydHMgYSBzaW5nbGUgV0NDUCh2
MSkgcm91dGVyCiMKIwl3Y2NwMl9yb3V0ZXIgc3VwcG9ydHMgbXVsdGlwbGUgV0NDUHYyIHJvdXRl
cnMKIwojCW9ubHkgb25lIG9mIHRoZSB0d28gbWF5IGJlIHVzZWQgYXQgdGhlIHNhbWUgdGltZSBh
bmQgZGVmaW5lcwojCXdoaWNoIHZlcnNpb24gb2YgV0NDUCB0byB1c2UuCiNEZWZhdWx0OgojIG5v
bmUKCiMgIFRBRzogd2NjcF92ZXJzaW9uCiMJVGhpcyBkaXJlY3RpdmUgaXMgb25seSByZWxldmFu
dCBpZiB5b3UgbmVlZCB0byBzZXQgdXAgV0NDUCh2MSkKIwl0byBzb21lIHZlcnkgb2xkIGFuZCBl
bmQtb2YtbGlmZSBDaXNjbyByb3V0ZXJzLiBJbiBhbGwgb3RoZXIKIwlzZXR1cHMgaXQgbXVzdCBi
ZSBsZWZ0IHVuc2V0IG9yIGF0IHRoZSBkZWZhdWx0IHNldHRpbmcuCiMJSXQgZGVmaW5lcyBhbiBp
bnRlcm5hbCB2ZXJzaW9uIGluIHRoZSBXQ0NQKHYxKSBwcm90b2NvbCwKIwl3aXRoIHZlcnNpb24g
NCBiZWluZyB0aGUgb2ZmaWNpYWxseSBkb2N1bWVudGVkIHByb3RvY29sLgojCiMJQWNjb3JkaW5n
IHRvIHNvbWUgdXNlcnMsIENpc2NvIElPUyAxMS4yIGFuZCBlYXJsaWVyIG9ubHkKIwlzdXBwb3J0
IFdDQ1AgdmVyc2lvbiAzLiAgSWYgeW91J3JlIHVzaW5nIHRoYXQgb3IgYW4gZWFybGllcgojCXZl
cnNpb24gb2YgSU9TLCB5b3UgbWF5IG5lZWQgdG8gY2hhbmdlIHRoaXMgdmFsdWUgdG8gMywgb3Ro
ZXJ3aXNlCiMJZG8gbm90IHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIuCiNEZWZhdWx0OgojIHdjY3Bf
dmVyc2lvbiA0CgojICBUQUc6IHdjY3AyX3JlYnVpbGRfd2FpdAojCUlmIHRoaXMgaXMgZW5hYmxl
ZCBTcXVpZCB3aWxsIHdhaXQgZm9yIHRoZSBjYWNoZSBkaXIgcmVidWlsZCB0byBmaW5pc2gKIwli
ZWZvcmUgc2VuZGluZyB0aGUgZmlyc3Qgd2NjcDIgSGVyZUlBbSBwYWNrZXQKI0RlZmF1bHQ6CiMg
d2NjcDJfcmVidWlsZF93YWl0IG9uCgojICBUQUc6IHdjY3AyX2ZvcndhcmRpbmdfbWV0aG9kCiMJ
V0NDUDIgYWxsb3dzIHRoZSBzZXR0aW5nIG9mIGZvcndhcmRpbmcgbWV0aG9kcyBiZXR3ZWVuIHRo
ZQojCXJvdXRlci9zd2l0Y2ggYW5kIHRoZSBjYWNoZS4gIFZhbGlkIHZhbHVlcyBhcmUgYXMgZm9s
bG93czoKIwojCWdyZSAtIEdSRSBlbmNhcHN1bGF0aW9uIChmb3J3YXJkIHRoZSBwYWNrZXQgaW4g
YSBHUkUvV0NDUCB0dW5uZWwpCiMJbDIgIC0gTDIgcmVkaXJlY3QgKGZvcndhcmQgdGhlIHBhY2tl
dCB1c2luZyBMYXllciAyL01BQyByZXdyaXRpbmcpCiMKIwlDdXJyZW50bHkgKGFzIG9mIElPUyAx
Mi40KSBjaXNjbyByb3V0ZXJzIG9ubHkgc3VwcG9ydCBHUkUuCiMJQ2lzY28gc3dpdGNoZXMgb25s
eSBzdXBwb3J0IHRoZSBMMiByZWRpcmVjdCBhc3NpZ25tZW50IG1ldGhvZC4KI0RlZmF1bHQ6CiMg
d2NjcDJfZm9yd2FyZGluZ19tZXRob2QgZ3JlCgojICBUQUc6IHdjY3AyX3JldHVybl9tZXRob2QK
IwlXQ0NQMiBhbGxvd3MgdGhlIHNldHRpbmcgb2YgcmV0dXJuIG1ldGhvZHMgYmV0d2VlbiB0aGUK
Iwlyb3V0ZXIvc3dpdGNoIGFuZCB0aGUgY2FjaGUgZm9yIHBhY2tldHMgdGhhdCB0aGUgY2FjaGUK
IwlkZWNpZGVzIG5vdCB0byBoYW5kbGUuICBWYWxpZCB2YWx1ZXMgYXJlIGFzIGZvbGxvd3M6CiMK
IwlncmUgLSBHUkUgZW5jYXBzdWxhdGlvbiAoZm9yd2FyZCB0aGUgcGFja2V0IGluIGEgR1JFL1dD
Q1AgdHVubmVsKQojCWwyICAtIEwyIHJlZGlyZWN0IChmb3J3YXJkIHRoZSBwYWNrZXQgdXNpbmcg
TGF5ZXIgMi9NQUMgcmV3cml0aW5nKQojCiMJQ3VycmVudGx5IChhcyBvZiBJT1MgMTIuNCkgY2lz
Y28gcm91dGVycyBvbmx5IHN1cHBvcnQgR1JFLgojCUNpc2NvIHN3aXRjaGVzIG9ubHkgc3VwcG9y
dCB0aGUgTDIgcmVkaXJlY3QgYXNzaWdubWVudC4KIwojCUlmIHRoZSAiaXAgd2NjcCByZWRpcmVj
dCBleGNsdWRlIGluIiBjb21tYW5kIGhhcyBiZWVuCiMJZW5hYmxlZCBvbiB0aGUgY2FjaGUgaW50
ZXJmYWNlLCB0aGVuIGl0IGlzIHN0aWxsIHNhZmUgZm9yCiMJdGhlIHByb3h5IHNlcnZlciB0byB1
c2UgYSBsMiByZWRpcmVjdCBtZXRob2QgZXZlbiBpZiB0aGlzCiMJb3B0aW9uIGlzIHNldCB0byBH
UkUuCiNEZWZhdWx0OgojIHdjY3AyX3JldHVybl9tZXRob2QgZ3JlCgojICBUQUc6IHdjY3AyX2Fz
c2lnbm1lbnRfbWV0aG9kCiMJV0NDUDIgYWxsb3dzIHRoZSBzZXR0aW5nIG9mIG1ldGhvZHMgdG8g
YXNzaWduIHRoZSBXQ0NQIGhhc2gKIwlWYWxpZCB2YWx1ZXMgYXJlIGFzIGZvbGxvd3M6CiMKIwlo
YXNoIC0gSGFzaCBhc3NpZ25tZW50CiMJbWFzayAgLSBNYXNrIGFzc2lnbm1lbnQKIwojCUFzIGEg
Z2VuZXJhbCBydWxlLCBjaXNjbyByb3V0ZXJzIHN1cHBvcnQgdGhlIGhhc2ggYXNzaWdubWVudCBt
ZXRob2QKIwlhbmQgY2lzY28gc3dpdGNoZXMgc3VwcG9ydCB0aGUgbWFzayBhc3NpZ25tZW50IG1l
dGhvZC4KI0RlZmF1bHQ6CiMgd2NjcDJfYXNzaWdubWVudF9tZXRob2QgaGFzaAoKIyAgVEFHOiB3
Y2NwMl9zZXJ2aWNlCiMJV0NDUDIgYWxsb3dzIGZvciBtdWx0aXBsZSB0cmFmZmljIHNlcnZpY2Vz
LiBUaGVyZSBhcmUgdHdvCiMJdHlwZXM6ICJzdGFuZGFyZCIgYW5kICJkeW5hbWljIi4gVGhlIHN0
YW5kYXJkIHR5cGUgZGVmaW5lcwojCW9uZSBzZXJ2aWNlIGlkIC0gaHR0cCAoaWQgMCkuIFRoZSBk
eW5hbWljIHNlcnZpY2UgaWRzIGNhbiBiZSBmcm9tCiMJNTEgdG8gMjU1IGluY2x1c2l2ZS4gIElu
IG9yZGVyIHRvIHVzZSBhIGR5bmFtaWMgc2VydmljZSBpZAojCW9uZSBtdXN0IGRlZmluZSB0aGUg
dHlwZSBvZiB0cmFmZmljIHRvIGJlIHJlZGlyZWN0ZWQ7IHRoaXMgaXMgZG9uZQojCXVzaW5nIHRo
ZSB3Y2NwMl9zZXJ2aWNlX2luZm8gb3B0aW9uLgojCiMJVGhlICJzdGFuZGFyZCIgdHlwZSBkb2Vz
IG5vdCByZXF1aXJlIGEgd2NjcDJfc2VydmljZV9pbmZvIG9wdGlvbiwKIwlqdXN0IHNwZWNpZnlp
bmcgdGhlIHNlcnZpY2UgaWQgd2lsbCBzdWZmaWNlLgojCiMJTUQ1IHNlcnZpY2UgYXV0aGVudGlj
YXRpb24gY2FuIGJlIGVuYWJsZWQgYnkgYWRkaW5nCiMJInBhc3N3b3JkPTxwYXNzd29yZD4iIHRv
IHRoZSBlbmQgb2YgdGhpcyBzZXJ2aWNlIGRlY2xhcmF0aW9uLgojCiMJRXhhbXBsZXM6CiMKIwl3
Y2NwMl9zZXJ2aWNlIHN0YW5kYXJkIDAJIyBmb3IgdGhlICd3ZWItY2FjaGUnIHN0YW5kYXJkIHNl
cnZpY2UKIwl3Y2NwMl9zZXJ2aWNlIGR5bmFtaWMgODAJIyBhIGR5bmFtaWMgc2VydmljZSB0eXBl
IHdoaWNoIHdpbGwgYmUKIwkJCQkJIyBmbGVzaGVkIG91dCB3aXRoIHN1YnNlcXVlbnQgb3B0aW9u
cy4KIwl3Y2NwMl9zZXJ2aWNlIHN0YW5kYXJkIDAgcGFzc3dvcmQ9Zm9vCiNEZWZhdWx0OgojIHdj
Y3AyX3NlcnZpY2Ugc3RhbmRhcmQgMAoKIyAgVEFHOiB3Y2NwMl9zZXJ2aWNlX2luZm8KIwlEeW5h
bWljIFdDQ1B2MiBzZXJ2aWNlcyByZXF1aXJlIGZ1cnRoZXIgaW5mb3JtYXRpb24gdG8gZGVmaW5l
IHRoZQojCXRyYWZmaWMgeW91IHdpc2ggdG8gaGF2ZSBkaXZlcnRlZC4KIwojCVRoZSBmb3JtYXQg
aXM6CiMKIwl3Y2NwMl9zZXJ2aWNlX2luZm8gPGlkPiBwcm90b2NvbD08cHJvdG9jb2w+IGZsYWdz
PTxmbGFnPiw8ZmxhZz4uLgojCSAgICBwcmlvcml0eT08cHJpb3JpdHk+IHBvcnRzPTxwb3J0Piw8
cG9ydD4uLgojCiMJVGhlIHJlbGV2YW50IFdDQ1B2MiBmbGFnczoKIwkrIHNyY19pcF9oYXNoLCBk
c3RfaXBfaGFzaAojCSsgc291cmNlX3BvcnRfaGFzaCwgZHN0X3BvcnRfaGFzaAojCSsgc3JjX2lw
X2FsdF9oYXNoLCBkc3RfaXBfYWx0X2hhc2gKIwkrIHNyY19wb3J0X2FsdF9oYXNoLCBkc3RfcG9y
dF9hbHRfaGFzaAojCSsgcG9ydHNfc291cmNlCiMKIwlUaGUgcG9ydCBsaXN0IGNhbiBiZSBvbmUg
dG8gZWlnaHQgZW50cmllcy4KIwojCUV4YW1wbGU6CiMKIwl3Y2NwMl9zZXJ2aWNlX2luZm8gODAg
cHJvdG9jb2w9dGNwIGZsYWdzPXNyY19pcF9oYXNoLHBvcnRzX3NvdXJjZQojCSAgICBwcmlvcml0
eT0yNDAgcG9ydHM9ODAKIwojCU5vdGU6IHRoZSBzZXJ2aWNlIGlkIG11c3QgaGF2ZSBiZWVuIGRl
ZmluZWQgYnkgYSBwcmV2aW91cwojCSd3Y2NwMl9zZXJ2aWNlIGR5bmFtaWMgPGlkPicgZW50cnku
CiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogd2NjcDJfd2VpZ2h0CiMJRWFjaCBjYWNoZSBzZXJ2
ZXIgZ2V0cyBhc3NpZ25lZCBhIHNldCBvZiB0aGUgZGVzdGluYXRpb24KIwloYXNoIHByb3BvcnRp
b25hbCB0byB0aGVpciB3ZWlnaHQuCiNEZWZhdWx0OgojIHdjY3AyX3dlaWdodCAxMDAwMAoKIyAg
VEFHOiB3Y2NwX2FkZHJlc3MKIyAgVEFHOiB3Y2NwMl9hZGRyZXNzCiMJVXNlIHRoaXMgb3B0aW9u
IGlmIHlvdSByZXF1aXJlIFdDQ1AgdG8gdXNlIGEgc3BlY2lmaWMKIwlpbnRlcmZhY2UgYWRkcmVz
cy4KIwojCVRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIG5vdCBiaW5kIHRvIGFueSBzcGVjaWZp
YyBhZGRyZXNzLgojRGVmYXVsdDoKIyB3Y2NwX2FkZHJlc3MgMC4wLjAuMAojIHdjY3AyX2FkZHJl
c3MgMC4wLjAuMAoKIyBQRVJTSVNURU5UIENPTk5FQ1RJT04gSEFORExJTkcKIyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQojCiMgQWxzbyBzZWUgInBjb25uX3RpbWVvdXQiIGluIHRoZSBUSU1FT1VUUyBz
ZWN0aW9uCgojICBUQUc6IGNsaWVudF9wZXJzaXN0ZW50X2Nvbm5lY3Rpb25zCiMgIFRBRzogc2Vy
dmVyX3BlcnNpc3RlbnRfY29ubmVjdGlvbnMKIwlQZXJzaXN0ZW50IGNvbm5lY3Rpb24gc3VwcG9y
dCBmb3IgY2xpZW50cyBhbmQgc2VydmVycy4gIEJ5CiMJZGVmYXVsdCwgU3F1aWQgdXNlcyBwZXJz
aXN0ZW50IGNvbm5lY3Rpb25zICh3aGVuIGFsbG93ZWQpCiMJd2l0aCBpdHMgY2xpZW50cyBhbmQg
c2VydmVycy4gIFlvdSBjYW4gdXNlIHRoZXNlIG9wdGlvbnMgdG8KIwlkaXNhYmxlIHBlcnNpc3Rl
bnQgY29ubmVjdGlvbnMgd2l0aCBjbGllbnRzIGFuZC9vciBzZXJ2ZXJzLgojRGVmYXVsdDoKIyBj
bGllbnRfcGVyc2lzdGVudF9jb25uZWN0aW9ucyBvbgojIHNlcnZlcl9wZXJzaXN0ZW50X2Nvbm5l
Y3Rpb25zIG9uCgojICBUQUc6IHBlcnNpc3RlbnRfY29ubmVjdGlvbl9hZnRlcl9lcnJvcgojCVdp
dGggdGhpcyBkaXJlY3RpdmUgdGhlIHVzZSBvZiBwZXJzaXN0ZW50IGNvbm5lY3Rpb25zIGFmdGVy
CiMJSFRUUCBlcnJvcnMgY2FuIGJlIGRpc2FibGVkLiBVc2VmdWwgaWYgeW91IGhhdmUgY2xpZW50
cwojCXdobyBmYWlsIHRvIGhhbmRsZSBlcnJvcnMgb24gcGVyc2lzdGVudCBjb25uZWN0aW9ucyBw
cm9wZXIuCiNEZWZhdWx0OgojIHBlcnNpc3RlbnRfY29ubmVjdGlvbl9hZnRlcl9lcnJvciBvbgoK
IyAgVEFHOiBkZXRlY3RfYnJva2VuX3Bjb25uCiMJU29tZSBzZXJ2ZXJzIGhhdmUgYmVlbiBmb3Vu
ZCB0byBpbmNvcnJlY3RseSBzaWduYWwgdGhlIHVzZQojCW9mIEhUVFAvMS4wIHBlcnNpc3RlbnQg
Y29ubmVjdGlvbnMgZXZlbiBvbiByZXBsaWVzIG5vdAojCWNvbXBhdGlibGUsIGNhdXNpbmcgc2ln
bmlmaWNhbnQgZGVsYXlzLiBUaGlzIHNlcnZlciBwcm9ibGVtCiMJaGFzIG1vc3RseSBiZWVuIHNl
ZW4gb24gcmVkaXJlY3RzLgojCiMJQnkgZW5hYmxpbmcgdGhpcyBkaXJlY3RpdmUgU3F1aWQgYXR0
ZW1wdHMgdG8gZGV0ZWN0IHN1Y2gKIwlicm9rZW4gcmVwbGllcyBhbmQgYXV0b21hdGljYWxseSBh
c3N1bWUgdGhlIHJlcGx5IGlzIGZpbmlzaGVkCiMJYWZ0ZXIgMTAgc2Vjb25kcyB0aW1lb3V0Lgoj
RGVmYXVsdDoKIyBkZXRlY3RfYnJva2VuX3Bjb25uIG9mZgoKIyBDQUNIRSBESUdFU1QgT1BUSU9O
UwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6IGRpZ2VzdF9nZW5lcmF0aW9uCiMJVGhp
cyBjb250cm9scyB3aGV0aGVyIHRoZSBzZXJ2ZXIgd2lsbCBnZW5lcmF0ZSBhIENhY2hlIERpZ2Vz
dAojCW9mIGl0cyBjb250ZW50cy4gIEJ5IGRlZmF1bHQsIENhY2hlIERpZ2VzdCBnZW5lcmF0aW9u
IGlzCiMJZW5hYmxlZCBpZiBTcXVpZCBpcyBjb21waWxlZCB3aXRoIC0tZW5hYmxlLWNhY2hlLWRp
Z2VzdHMgZGVmaW5lZC4KI0RlZmF1bHQ6CiMgZGlnZXN0X2dlbmVyYXRpb24gb24KCiMgIFRBRzog
ZGlnZXN0X2JpdHNfcGVyX2VudHJ5CiMJVGhpcyBpcyB0aGUgbnVtYmVyIG9mIGJpdHMgb2YgdGhl
IHNlcnZlcidzIENhY2hlIERpZ2VzdCB3aGljaAojCXdpbGwgYmUgYXNzb2NpYXRlZCB3aXRoIHRo
ZSBEaWdlc3QgZW50cnkgZm9yIGEgZ2l2ZW4gSFRUUAojCU1ldGhvZCBhbmQgVVJMIChwdWJsaWMg
a2V5KSBjb21iaW5hdGlvbi4gIFRoZSBkZWZhdWx0IGlzIDUuCiNEZWZhdWx0OgojIGRpZ2VzdF9i
aXRzX3Blcl9lbnRyeSA1CgojICBUQUc6IGRpZ2VzdF9yZWJ1aWxkX3BlcmlvZAkoc2Vjb25kcykK
IwlUaGlzIGlzIHRoZSB3YWl0IHRpbWUgYmV0d2VlbiBDYWNoZSBEaWdlc3QgcmVidWlsZHMuCiNE
ZWZhdWx0OgojIGRpZ2VzdF9yZWJ1aWxkX3BlcmlvZCAxIGhvdXIKCiMgIFRBRzogZGlnZXN0X3Jl
d3JpdGVfcGVyaW9kCShzZWNvbmRzKQojCVRoaXMgaXMgdGhlIHdhaXQgdGltZSBiZXR3ZWVuIENh
Y2hlIERpZ2VzdCB3cml0ZXMgdG8KIwlkaXNrLgojRGVmYXVsdDoKIyBkaWdlc3RfcmV3cml0ZV9w
ZXJpb2QgMSBob3VyCgojICBUQUc6IGRpZ2VzdF9zd2Fwb3V0X2NodW5rX3NpemUJKGJ5dGVzKQoj
CVRoaXMgaXMgdGhlIG51bWJlciBvZiBieXRlcyBvZiB0aGUgQ2FjaGUgRGlnZXN0IHRvIHdyaXRl
IHRvCiMJZGlzayBhdCBhIHRpbWUuICBJdCBkZWZhdWx0cyB0byA0MDk2IGJ5dGVzICg0S0IpLCB0
aGUgU3F1aWQKIwlkZWZhdWx0IHN3YXAgcGFnZS4KI0RlZmF1bHQ6CiMgZGlnZXN0X3N3YXBvdXRf
Y2h1bmtfc2l6ZSA0MDk2IGJ5dGVzCgojICBUQUc6IGRpZ2VzdF9yZWJ1aWxkX2NodW5rX3BlcmNl
bnRhZ2UJKHBlcmNlbnQsIDAtMTAwKQojCVRoaXMgaXMgdGhlIHBlcmNlbnRhZ2Ugb2YgdGhlIENh
Y2hlIERpZ2VzdCB0byBiZSBzY2FubmVkIGF0IGEKIwl0aW1lLiAgQnkgZGVmYXVsdCBpdCBpcyBz
ZXQgdG8gMTAlIG9mIHRoZSBDYWNoZSBEaWdlc3QuCiNEZWZhdWx0OgojIGRpZ2VzdF9yZWJ1aWxk
X2NodW5rX3BlcmNlbnRhZ2UgMTAKCiMgU05NUCBPUFRJT05TCiMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KCiMgIFRBRzogc25tcF9wb3J0CiMJVGhlIHBvcnQgbnVtYmVyIHdoZXJlIFNxdWlkIGxpc3Rl
bnMgZm9yIFNOTVAgcmVxdWVzdHMuIFRvIGVuYWJsZQojCVNOTVAgc3VwcG9ydCBzZXQgdGhpcyB0
byBhIHN1aXRhYmxlIHBvcnQgbnVtYmVyLiBQb3J0IG51bWJlcgojCTM0MDEgaXMgb2Z0ZW4gdXNl
ZCBmb3IgdGhlIFNxdWlkIFNOTVAgYWdlbnQuIEJ5IGRlZmF1bHQgaXQncwojCXNldCB0byAiMCIg
KGRpc2FibGVkKQojCiMJRXhhbXBsZToKIwkJc25tcF9wb3J0IDM0MDEKI0RlZmF1bHQ6CiMgc25t
cF9wb3J0IDAKCiMgIFRBRzogc25tcF9hY2Nlc3MKIwlBbGxvd2luZyBvciBkZW55aW5nIGFjY2Vz
cyB0byB0aGUgU05NUCBwb3J0LgojCiMJQWxsIGFjY2VzcyB0byB0aGUgYWdlbnQgaXMgZGVuaWVk
IGJ5IGRlZmF1bHQuCiMJdXNhZ2U6CiMKIwlzbm1wX2FjY2VzcyBhbGxvd3xkZW55IFshXWFjbG5h
bWUgLi4uCiMKIwlUaGlzIGNsYXVzZSBvbmx5IHN1cHBvcnRzIGZhc3QgYWNsIHR5cGVzLgojCVNl
ZSBodHRwOi8vd2lraS5zcXVpZC1jYWNoZS5vcmcvU3F1aWRGYXEvU3F1aWRBY2wgZm9yIGRldGFp
bHMuCiNFeGFtcGxlOgojIHNubXBfYWNjZXNzIGFsbG93IHNubXBwdWJsaWMgbG9jYWxob3N0CiMg
c25tcF9hY2Nlc3MgZGVueSBhbGwKI0RlZmF1bHQ6CiMgc25tcF9hY2Nlc3MgZGVueSBhbGwKCiMg
IFRBRzogc25tcF9pbmNvbWluZ19hZGRyZXNzCiMgIFRBRzogc25tcF9vdXRnb2luZ19hZGRyZXNz
CiMJSnVzdCBsaWtlICd1ZHBfaW5jb21pbmdfYWRkcmVzcycsIGJ1dCBmb3IgdGhlIFNOTVAgcG9y
dC4KIwojCXNubXBfaW5jb21pbmdfYWRkcmVzcwlpcyB1c2VkIGZvciB0aGUgU05NUCBzb2NrZXQg
cmVjZWl2aW5nCiMJCQkJbWVzc2FnZXMgZnJvbSBTTk1QIGFnZW50cy4KIwlzbm1wX291dGdvaW5n
X2FkZHJlc3MJaXMgdXNlZCBmb3IgU05NUCBwYWNrZXRzIHJldHVybmVkIHRvIFNOTVAKIwkJCQlh
Z2VudHMuCiMKIwlUaGUgZGVmYXVsdCBzbm1wX2luY29taW5nX2FkZHJlc3MgaXMgdG8gbGlzdGVu
IG9uIGFsbAojCWF2YWlsYWJsZSBuZXR3b3JrIGludGVyZmFjZXMuCiMKIwlJZiBzbm1wX291dGdv
aW5nX2FkZHJlc3MgaXMgbm90IHNldCBpdCB3aWxsIHVzZSB0aGUgc2FtZSBzb2NrZXQKIwlhcyBz
bm1wX2luY29taW5nX2FkZHJlc3MuIE9ubHkgY2hhbmdlIHRoaXMgaWYgeW91IHdhbnQgdG8gaGF2
ZQojCVNOTVAgcmVwbGllcyBzZW50IHVzaW5nIGFub3RoZXIgYWRkcmVzcyB0aGFuIHdoZXJlIHRo
aXMgU3F1aWQKIwlsaXN0ZW5zIGZvciBTTk1QIHF1ZXJpZXMuCiMKIwlOT1RFLCBzbm1wX2luY29t
aW5nX2FkZHJlc3MgYW5kIHNubXBfb3V0Z29pbmdfYWRkcmVzcyBjYW4gbm90IGhhdmUKIwl0aGUg
c2FtZSB2YWx1ZSBzaW5jZSB0aGV5IGJvdGggdXNlIHBvcnQgMzQwMS4KI0RlZmF1bHQ6CiMgc25t
cF9pbmNvbWluZ19hZGRyZXNzIGFueV9hZGRyCiMgc25tcF9vdXRnb2luZ19hZGRyZXNzIG5vX2Fk
ZHIKCiMgSUNQIE9QVElPTlMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAgVEFHOiBpY3BfcG9y
dAojCVRoZSBwb3J0IG51bWJlciB3aGVyZSBTcXVpZCBzZW5kcyBhbmQgcmVjZWl2ZXMgSUNQIHF1
ZXJpZXMgdG8KIwlhbmQgZnJvbSBuZWlnaGJvciBjYWNoZXMuICBUaGUgc3RhbmRhcmQgVURQIHBv
cnQgZm9yIElDUCBpcyAzMTMwLgojCURlZmF1bHQgaXMgZGlzYWJsZWQgKDApLgojCiMJRXhhbXBs
ZToKIwkJaWNwX3BvcnQgMzEzMAojRGVmYXVsdDoKIyBpY3BfcG9ydCAwCgojICBUQUc6IGh0Y3Bf
cG9ydAojCVRoZSBwb3J0IG51bWJlciB3aGVyZSBTcXVpZCBzZW5kcyBhbmQgcmVjZWl2ZXMgSFRD
UCBxdWVyaWVzIHRvCiMJYW5kIGZyb20gbmVpZ2hib3IgY2FjaGVzLiAgVG8gdHVybiBpdCBvbiB5
b3Ugd2FudCB0byBzZXQgaXQgdG8KIwk0ODI3LiBCeSBkZWZhdWx0IGl0IGlzIHNldCB0byAiMCIg
KGRpc2FibGVkKS4KIwojCUV4YW1wbGU6CiMJCWh0Y3BfcG9ydCA0ODI3CiNEZWZhdWx0OgojIGh0
Y3BfcG9ydCAwCgojICBUQUc6IGxvZ19pY3BfcXVlcmllcwlvbnxvZmYKIwlJZiBzZXQsIElDUCBx
dWVyaWVzIGFyZSBsb2dnZWQgdG8gYWNjZXNzLmxvZy4gWW91IG1heSB3aXNoCiMJZG8gZGlzYWJs
ZSB0aGlzIGlmIHlvdXIgSUNQIGxvYWQgaXMgVkVSWSBoaWdoIHRvIHNwZWVkIHRoaW5ncwojCXVw
IG9yIHRvIHNpbXBsaWZ5IGxvZyBhbmFseXNpcy4KI0RlZmF1bHQ6CiMgbG9nX2ljcF9xdWVyaWVz
IG9uCgojICBUQUc6IHVkcF9pbmNvbWluZ19hZGRyZXNzCiMJdWRwX2luY29taW5nX2FkZHJlc3MJ
aXMgdXNlZCBmb3IgVURQIHBhY2tldHMgcmVjZWl2ZWQgZnJvbSBvdGhlcgojCQkJCWNhY2hlcy4K
IwojCVRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIG5vdCBiaW5kIHRvIGFueSBzcGVjaWZpYyBh
ZGRyZXNzLgojCiMJT25seSBjaGFuZ2UgdGhpcyBpZiB5b3Ugd2FudCB0byBoYXZlIGFsbCBVRFAg
cXVlcmllcyByZWNlaXZlZCBvbgojCWEgc3BlY2lmaWMgaW50ZXJmYWNlL2FkZHJlc3MuCiMKIwlO
T1RFOiB1ZHBfaW5jb21pbmdfYWRkcmVzcyBpcyB1c2VkIGJ5IHRoZSBJQ1AsIEhUQ1AsIGFuZCBE
TlMKIwltb2R1bGVzLiBBbHRlcmluZyBpdCB3aWxsIGFmZmVjdCBhbGwgb2YgdGhlbSBpbiB0aGUg
c2FtZSBtYW5uZXIuCiMKIwlzZWUgYWxzbzsgdWRwX291dGdvaW5nX2FkZHJlc3MKIwojCU5PVEUs
IHVkcF9pbmNvbWluZ19hZGRyZXNzIGFuZCB1ZHBfb3V0Z29pbmdfYWRkcmVzcyBjYW4gbm90CiMJ
aGF2ZSB0aGUgc2FtZSB2YWx1ZSBzaW5jZSB0aGV5IGJvdGggdXNlIHRoZSBzYW1lIHBvcnQuCiNE
ZWZhdWx0OgojIHVkcF9pbmNvbWluZ19hZGRyZXNzIGFueV9hZGRyCgojICBUQUc6IHVkcF9vdXRn
b2luZ19hZGRyZXNzCiMJdWRwX291dGdvaW5nX2FkZHJlc3MJaXMgdXNlZCBmb3IgVURQIHBhY2tl
dHMgc2VudCBvdXQgdG8gb3RoZXIKIwkJCQljYWNoZXMuCiMKIwlUaGUgZGVmYXVsdCBiZWhhdmlv
ciBpcyB0byBub3QgYmluZCB0byBhbnkgc3BlY2lmaWMgYWRkcmVzcy4KIwojCUluc3RlYWQgaXQg
d2lsbCB1c2UgdGhlIHNhbWUgc29ja2V0IGFzIHVkcF9pbmNvbWluZ19hZGRyZXNzLgojCU9ubHkg
Y2hhbmdlIHRoaXMgaWYgeW91IHdhbnQgdG8gaGF2ZSBVRFAgcXVlcmllcyBzZW50IHVzaW5nIGFu
b3RoZXIKIwlhZGRyZXNzIHRoYW4gd2hlcmUgdGhpcyBTcXVpZCBsaXN0ZW5zIGZvciBVRFAgcXVl
cmllcyBmcm9tIG90aGVyCiMJY2FjaGVzLgojCiMJTk9URTogdWRwX291dGdvaW5nX2FkZHJlc3Mg
aXMgdXNlZCBieSB0aGUgSUNQLCBIVENQLCBhbmQgRE5TCiMJbW9kdWxlcy4gQWx0ZXJpbmcgaXQg
d2lsbCBhZmZlY3QgYWxsIG9mIHRoZW0gaW4gdGhlIHNhbWUgbWFubmVyLgojCiMJc2VlIGFsc287
IHVkcF9pbmNvbWluZ19hZGRyZXNzCiMKIwlOT1RFLCB1ZHBfaW5jb21pbmdfYWRkcmVzcyBhbmQg
dWRwX291dGdvaW5nX2FkZHJlc3MgY2FuIG5vdAojCWhhdmUgdGhlIHNhbWUgdmFsdWUgc2luY2Ug
dGhleSBib3RoIHVzZSB0aGUgc2FtZSBwb3J0LgojRGVmYXVsdDoKIyB1ZHBfb3V0Z29pbmdfYWRk
cmVzcyBub19hZGRyCgojICBUQUc6IGljcF9oaXRfc3RhbGUJb258b2ZmCiMJSWYgeW91IHdhbnQg
dG8gcmV0dXJuIElDUF9ISVQgZm9yIHN0YWxlIGNhY2hlIG9iamVjdHMsIHNldCB0aGlzCiMJb3B0
aW9uIHRvICdvbicuICBJZiB5b3UgaGF2ZSBzaWJsaW5nIHJlbGF0aW9uc2hpcHMgd2l0aCBjYWNo
ZXMKIwlpbiBvdGhlciBhZG1pbmlzdHJhdGl2ZSBkb21haW5zLCB0aGlzIHNob3VsZCBiZSAnb2Zm
Jy4gIElmIHlvdSBvbmx5CiMJaGF2ZSBzaWJsaW5nIHJlbGF0aW9uc2hpcHMgd2l0aCBjYWNoZXMg
dW5kZXIgeW91ciBjb250cm9sLAojCWl0IGlzIHByb2JhYmx5IG9rYXkgdG8gc2V0IHRoaXMgdG8g
J29uJy4KIwlJZiBzZXQgdG8gJ29uJywgeW91ciBzaWJsaW5ncyBzaG91bGQgdXNlIHRoZSBvcHRp
b24gImFsbG93LW1pc3MiCiMJb24gdGhlaXIgY2FjaGVfcGVlciBsaW5lcyBmb3IgY29ubmVjdGlu
ZyB0byB5b3UuCiNEZWZhdWx0OgojIGljcF9oaXRfc3RhbGUgb2ZmCgojICBUQUc6IG1pbmltdW1f
ZGlyZWN0X2hvcHMKIwlJZiB1c2luZyB0aGUgSUNNUCBwaW5naW5nIHN0dWZmLCBkbyBkaXJlY3Qg
ZmV0Y2hlcyBmb3Igc2l0ZXMKIwl3aGljaCBhcmUgbm8gbW9yZSB0aGFuIHRoaXMgbWFueSBob3Bz
IGF3YXkuCiNEZWZhdWx0OgojIG1pbmltdW1fZGlyZWN0X2hvcHMgNAoKIyAgVEFHOiBtaW5pbXVt
X2RpcmVjdF9ydHQKIwlJZiB1c2luZyB0aGUgSUNNUCBwaW5naW5nIHN0dWZmLCBkbyBkaXJlY3Qg
ZmV0Y2hlcyBmb3Igc2l0ZXMKIwl3aGljaCBhcmUgbm8gbW9yZSB0aGFuIHRoaXMgbWFueSBydHQg
bWlsbGlzZWNvbmRzIGF3YXkuCiNEZWZhdWx0OgojIG1pbmltdW1fZGlyZWN0X3J0dCA0MDAKCiMg
IFRBRzogbmV0ZGJfbG93CiMgIFRBRzogbmV0ZGJfaGlnaAojCVRoZSBsb3cgYW5kIGhpZ2ggd2F0
ZXIgbWFya3MgZm9yIHRoZSBJQ01QIG1lYXN1cmVtZW50CiMJZGF0YWJhc2UuICBUaGVzZSBhcmUg
Y291bnRzLCBub3QgcGVyY2VudHMuICBUaGUgZGVmYXVsdHMgYXJlCiMJOTAwIGFuZCAxMDAwLiAg
V2hlbiB0aGUgaGlnaCB3YXRlciBtYXJrIGlzIHJlYWNoZWQsIGRhdGFiYXNlCiMJZW50cmllcyB3
aWxsIGJlIGRlbGV0ZWQgdW50aWwgdGhlIGxvdyBtYXJrIGlzIHJlYWNoZWQuCiNEZWZhdWx0Ogoj
IG5ldGRiX2xvdyA5MDAKIyBuZXRkYl9oaWdoIDEwMDAKCiMgIFRBRzogbmV0ZGJfcGluZ19wZXJp
b2QKIwlUaGUgbWluaW11bSBwZXJpb2QgZm9yIG1lYXN1cmluZyBhIHNpdGUuICBUaGVyZSB3aWxs
IGJlIGF0CiMJbGVhc3QgdGhpcyBtdWNoIGRlbGF5IGJldHdlZW4gc3VjY2Vzc2l2ZSBwaW5ncyB0
byB0aGUgc2FtZQojCW5ldHdvcmsuICBUaGUgZGVmYXVsdCBpcyBmaXZlIG1pbnV0ZXMuCiNEZWZh
dWx0OgojIG5ldGRiX3BpbmdfcGVyaW9kIDUgbWludXRlcwoKIyAgVEFHOiBxdWVyeV9pY21wCW9u
fG9mZgojCUlmIHlvdSB3YW50IHRvIGFzayB5b3VyIHBlZXJzIHRvIGluY2x1ZGUgSUNNUCBkYXRh
IGluIHRoZWlyIElDUAojCXJlcGxpZXMsIGVuYWJsZSB0aGlzIG9wdGlvbi4KIwojCUlmIHlvdXIg
cGVlciBoYXMgY29uZmlndXJlZCBTcXVpZCAoZHVyaW5nIGNvbXBpbGF0aW9uKSB3aXRoCiMJJy0t
ZW5hYmxlLWljbXAnIHRoYXQgcGVlciB3aWxsIHNlbmQgSUNNUCBwaW5ncyB0byBvcmlnaW4gc2Vy
dmVyCiMJc2l0ZXMgb2YgdGhlIFVSTHMgaXQgcmVjZWl2ZXMuICBJZiB5b3UgZW5hYmxlIHRoaXMg
b3B0aW9uIHRoZQojCUlDUCByZXBsaWVzIGZyb20gdGhhdCBwZWVyIHdpbGwgaW5jbHVkZSB0aGUg
SUNNUCBkYXRhIChpZiBhdmFpbGFibGUpLgojCVRoZW4sIHdoZW4gY2hvb3NpbmcgYSBwYXJlbnQg
Y2FjaGUsIFNxdWlkIHdpbGwgY2hvb3NlIHRoZSBwYXJlbnQgd2l0aAojCXRoZSBtaW5pbWFsIFJU
VCB0byB0aGUgb3JpZ2luIHNlcnZlci4gIFdoZW4gdGhpcyBoYXBwZW5zLCB0aGUKIwloaWVyYXJj
aHkgZmllbGQgb2YgdGhlIGFjY2Vzcy5sb2cgd2lsbCBiZQojCSJDTE9TRVNUX1BBUkVOVF9NSVNT
Ii4gIFRoaXMgb3B0aW9uIGlzIG9mZiBieSBkZWZhdWx0LgojRGVmYXVsdDoKIyBxdWVyeV9pY21w
IG9mZgoKIyAgVEFHOiB0ZXN0X3JlYWNoYWJpbGl0eQlvbnxvZmYKIwlXaGVuIHRoaXMgaXMgJ29u
JywgSUNQIE1JU1MgcmVwbGllcyB3aWxsIGJlIElDUF9NSVNTX05PRkVUQ0gKIwlpbnN0ZWFkIG9m
IElDUF9NSVNTIGlmIHRoZSB0YXJnZXQgaG9zdCBpcyBOT1QgaW4gdGhlIElDTVAKIwlkYXRhYmFz
ZSwgb3IgaGFzIGEgemVybyBSVFQuCiNEZWZhdWx0OgojIHRlc3RfcmVhY2hhYmlsaXR5IG9mZgoK
IyAgVEFHOiBpY3BfcXVlcnlfdGltZW91dAkobXNlYykKIwlOb3JtYWxseSBTcXVpZCB3aWxsIGF1
dG9tYXRpY2FsbHkgZGV0ZXJtaW5lIGFuIG9wdGltYWwgSUNQCiMJcXVlcnkgdGltZW91dCB2YWx1
ZSBiYXNlZCBvbiB0aGUgcm91bmQtdHJpcC10aW1lIG9mIHJlY2VudCBJQ1AKIwlxdWVyaWVzLiAg
SWYgeW91IHdhbnQgdG8gb3ZlcnJpZGUgdGhlIHZhbHVlIGRldGVybWluZWQgYnkKIwlTcXVpZCwg
c2V0IHRoaXMgJ2ljcF9xdWVyeV90aW1lb3V0JyB0byBhIG5vbi16ZXJvIHZhbHVlLiAgVGhpcwoj
CXZhbHVlIGlzIHNwZWNpZmllZCBpbiBNSUxMSVNFQ09ORFMsIHNvLCB0byB1c2UgYSAyLXNlY29u
ZAojCXRpbWVvdXQgKHRoZSBvbGQgZGVmYXVsdCksIHlvdSB3b3VsZCB3cml0ZToKIwojCQlpY3Bf
cXVlcnlfdGltZW91dCAyMDAwCiNEZWZhdWx0OgojIGljcF9xdWVyeV90aW1lb3V0IDAKCiMgIFRB
RzogbWF4aW11bV9pY3BfcXVlcnlfdGltZW91dAkobXNlYykKIwlOb3JtYWxseSB0aGUgSUNQIHF1
ZXJ5IHRpbWVvdXQgaXMgZGV0ZXJtaW5lZCBkeW5hbWljYWxseS4gIEJ1dAojCXNvbWV0aW1lcyBp
dCBjYW4gbGVhZCB0byB2ZXJ5IGxhcmdlIHZhbHVlcyAoc2F5IDUgc2Vjb25kcykuCiMJVXNlIHRo
aXMgb3B0aW9uIHRvIHB1dCBhbiB1cHBlciBsaW1pdCBvbiB0aGUgZHluYW1pYyB0aW1lb3V0CiMJ
dmFsdWUuICBEbyBOT1QgdXNlIHRoaXMgb3B0aW9uIHRvIGFsd2F5cyB1c2UgYSBmaXhlZCAoaW5z
dGVhZAojCW9mIGEgZHluYW1pYykgdGltZW91dCB2YWx1ZS4gVG8gc2V0IGEgZml4ZWQgdGltZW91
dCBzZWUgdGhlCiMJJ2ljcF9xdWVyeV90aW1lb3V0JyBkaXJlY3RpdmUuCiNEZWZhdWx0OgojIG1h
eGltdW1faWNwX3F1ZXJ5X3RpbWVvdXQgMjAwMAoKIyAgVEFHOiBtaW5pbXVtX2ljcF9xdWVyeV90
aW1lb3V0CShtc2VjKQojCU5vcm1hbGx5IHRoZSBJQ1AgcXVlcnkgdGltZW91dCBpcyBkZXRlcm1p
bmVkIGR5bmFtaWNhbGx5LiAgQnV0CiMJc29tZXRpbWVzIGl0IGNhbiBsZWFkIHRvIHZlcnkgc21h
bGwgdGltZW91dHMsIGV2ZW4gbG93ZXIgdGhhbgojCXRoZSBub3JtYWwgbGF0ZW5jeSB2YXJpYW5j
ZSBvbiB5b3VyIGxpbmsgZHVlIHRvIHRyYWZmaWMuCiMJVXNlIHRoaXMgb3B0aW9uIHRvIHB1dCBh
biBsb3dlciBsaW1pdCBvbiB0aGUgZHluYW1pYyB0aW1lb3V0CiMJdmFsdWUuICBEbyBOT1QgdXNl
IHRoaXMgb3B0aW9uIHRvIGFsd2F5cyB1c2UgYSBmaXhlZCAoaW5zdGVhZAojCW9mIGEgZHluYW1p
YykgdGltZW91dCB2YWx1ZS4gVG8gc2V0IGEgZml4ZWQgdGltZW91dCBzZWUgdGhlCiMJJ2ljcF9x
dWVyeV90aW1lb3V0JyBkaXJlY3RpdmUuCiNEZWZhdWx0OgojIG1pbmltdW1faWNwX3F1ZXJ5X3Rp
bWVvdXQgNQoKIyAgVEFHOiBiYWNrZ3JvdW5kX3BpbmdfcmF0ZQl0aW1lLXVuaXRzCiMJQ29udHJv
bHMgaG93IG9mdGVuIHRoZSBJQ1AgcGluZ3MgYXJlIHNlbnQgdG8gc2libGluZ3MgdGhhdAojCWhh
dmUgYmFja2dyb3VuZC1waW5nIHNldC4KI0RlZmF1bHQ6CiMgYmFja2dyb3VuZF9waW5nX3JhdGUg
MTAgc2Vjb25kcwoKIyBNVUxUSUNBU1QgSUNQIE9QVElPTlMKIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQoKIyAgVEFHOiBtY2FzdF9ncm91cHMKIwlUaGlzIHRhZyBzcGVjaWZpZXMgYSBsaXN0IG9mIG11
bHRpY2FzdCBncm91cHMgd2hpY2ggeW91ciBzZXJ2ZXIKIwlzaG91bGQgam9pbiB0byByZWNlaXZl
IG11bHRpY2FzdGVkIElDUCBxdWVyaWVzLgojCiMJTk9URSEgIEJlIHZlcnkgY2FyZWZ1bCB3aGF0
IHlvdSBwdXQgaGVyZSEgIEJlIHN1cmUgeW91CiMJdW5kZXJzdGFuZCB0aGUgZGlmZmVyZW5jZSBi
ZXR3ZWVuIGFuIElDUCBfcXVlcnlfIGFuZCBhbiBJQ1AKIwlfcmVwbHlfLiAgVGhpcyBvcHRpb24g
aXMgdG8gYmUgc2V0IG9ubHkgaWYgeW91IHdhbnQgdG8gUkVDRUlWRQojCW11bHRpY2FzdCBxdWVy
aWVzLiAgRG8gTk9UIHNldCB0aGlzIG9wdGlvbiB0byBTRU5EIG11bHRpY2FzdAojCUlDUCAodXNl
IGNhY2hlX3BlZXIgZm9yIHRoYXQpLiAgSUNQIHJlcGxpZXMgYXJlIGFsd2F5cyBzZW50IHZpYQoj
CXVuaWNhc3QsIHNvIHRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB3aGV0aGVyIG9yIG5vdCB5
b3Ugd2lsbAojCXJlY2VpdmUgcmVwbGllcyBmcm9tIG11bHRpY2FzdCBncm91cCBtZW1iZXJzLgoj
CiMJWW91IG11c3QgYmUgdmVyeSBjYXJlZnVsIHRvIE5PVCB1c2UgYSBtdWx0aWNhc3QgYWRkcmVz
cyB3aGljaAojCWlzIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgZ3JvdXAgb2YgY2FjaGVzLgoj
CiMJSWYgeW91IGFyZSB1bnN1cmUgYWJvdXQgbXVsdGljYXN0LCBwbGVhc2UgcmVhZCB0aGUgTXVs
dGljYXN0CiMJY2hhcHRlciBpbiB0aGUgU3F1aWQgRkFRIChodHRwOi8vd3d3LnNxdWlkLWNhY2hl
Lm9yZy9GQVEvKS4KIwojCVVzYWdlOiBtY2FzdF9ncm91cHMgMjM5LjEyOC4xNi4xMjggMjI0LjAu
MS4yMAojCiMJQnkgZGVmYXVsdCwgU3F1aWQgZG9lc24ndCBsaXN0ZW4gb24gYW55IG11bHRpY2Fz
dCBncm91cHMuCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogbWNhc3RfbWlzc19hZGRyCiMgTm90
ZTogVGhpcyBvcHRpb24gaXMgb25seSBhdmFpbGFibGUgaWYgU3F1aWQgaXMgcmVidWlsdCB3aXRo
IHRoZQojICAgICAgIC1ETVVMVElDQVNUX01JU1NfU1RSRUFNIGRlZmluZQojCiMJSWYgeW91IGVu
YWJsZSB0aGlzIG9wdGlvbiwgZXZlcnkgImNhY2hlIG1pc3MiIFVSTCB3aWxsCiMJYmUgc2VudCBv
dXQgb24gdGhlIHNwZWNpZmllZCBtdWx0aWNhc3QgYWRkcmVzcy4KIwojCURvIG5vdCBlbmFibGUg
dGhpcyBvcHRpb24gdW5sZXNzIHlvdSBhcmUgYXJlIGFic29sdXRlbHkKIwljZXJ0YWluIHlvdSB1
bmRlcnN0YW5kIHdoYXQgeW91IGFyZSBkb2luZy4KI0RlZmF1bHQ6CiMgbWNhc3RfbWlzc19hZGRy
IG5vX2FkZHIKCiMgIFRBRzogbWNhc3RfbWlzc190dGwKIyBOb3RlOiBUaGlzIG9wdGlvbiBpcyBv
bmx5IGF2YWlsYWJsZSBpZiBTcXVpZCBpcyByZWJ1aWx0IHdpdGggdGhlCiMgICAgICAgLURNVUxU
SUNBU1RfTUlTU19TVFJFQU0gZGVmaW5lCiMKIwlUaGlzIGlzIHRoZSB0aW1lLXRvLWxpdmUgdmFs
dWUgZm9yIHBhY2tldHMgbXVsdGljYXN0ZWQKIwl3aGVuIG11bHRpY2FzdGluZyBvZmYgY2FjaGUg
bWlzcyBVUkxzIGlzIGVuYWJsZWQuICBCeQojCWRlZmF1bHQgdGhpcyBpcyBzZXQgdG8gJ3NpdGUg
c2NvcGUnLCBpLmUuIDE2LgojRGVmYXVsdDoKIyBtY2FzdF9taXNzX3R0bCAxNgoKIyAgVEFHOiBt
Y2FzdF9taXNzX3BvcnQKIyBOb3RlOiBUaGlzIG9wdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBpZiBT
cXVpZCBpcyByZWJ1aWx0IHdpdGggdGhlCiMgICAgICAgLURNVUxUSUNBU1RfTUlTU19TVFJFQU0g
ZGVmaW5lCiMKIwlUaGlzIGlzIHRoZSBwb3J0IG51bWJlciB0byBiZSB1c2VkIGluIGNvbmp1bmN0
aW9uIHdpdGgKIwknbWNhc3RfbWlzc19hZGRyJy4KI0RlZmF1bHQ6CiMgbWNhc3RfbWlzc19wb3J0
IDMxMzUKCiMgIFRBRzogbWNhc3RfbWlzc19lbmNvZGVfa2V5CiMgTm90ZTogVGhpcyBvcHRpb24g
aXMgb25seSBhdmFpbGFibGUgaWYgU3F1aWQgaXMgcmVidWlsdCB3aXRoIHRoZQojICAgICAgIC1E
TVVMVElDQVNUX01JU1NfU1RSRUFNIGRlZmluZQojCiMJVGhlIFVSTHMgdGhhdCBhcmUgc2VudCBp
biB0aGUgbXVsdGljYXN0IG1pc3Mgc3RyZWFtIGFyZQojCWVuY3J5cHRlZC4gIFRoaXMgaXMgdGhl
IGVuY3J5cHRpb24ga2V5LgojRGVmYXVsdDoKIyBtY2FzdF9taXNzX2VuY29kZV9rZXkgWFhYWFhY
WFhYWFhYWFhYWAoKIyAgVEFHOiBtY2FzdF9pY3BfcXVlcnlfdGltZW91dAkobXNlYykKIwlGb3Ig
bXVsdGljYXN0IHBlZXJzLCBTcXVpZCByZWd1bGFybHkgc2VuZHMgb3V0IElDUCAicHJvYmVzIiB0
bwojCWNvdW50IGhvdyBtYW55IG90aGVyIHBlZXJzIGFyZSBsaXN0ZW5pbmcgb24gdGhlIGdpdmVu
IG11bHRpY2FzdAojCWFkZHJlc3MuICBUaGlzIHZhbHVlIHNwZWNpZmllcyBob3cgbG9uZyBTcXVp
ZCBzaG91bGQgd2FpdCB0bwojCWNvdW50IGFsbCB0aGUgcmVwbGllcy4gIFRoZSBkZWZhdWx0IGlz
IDIwMDAgbXNlYywgb3IgMgojCXNlY29uZHMuCiNEZWZhdWx0OgojIG1jYXN0X2ljcF9xdWVyeV90
aW1lb3V0IDIwMDAKCiMgSU5URVJOQUwgSUNPTiBPUFRJT05TCiMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KCiMgIFRBRzogaWNvbl9kaXJlY3RvcnkKIwlXaGVyZSB0aGUgaWNvbnMgYXJlIHN0b3JlZC4g
VGhlc2UgYXJlIG5vcm1hbGx5IGtlcHQgaW4KIwkvdXNyL3NoYXJlL3NxdWlkL2ljb25zCiNEZWZh
dWx0OgojIGljb25fZGlyZWN0b3J5IC91c3Ivc2hhcmUvc3F1aWQvaWNvbnMKCiMgIFRBRzogZ2xv
YmFsX2ludGVybmFsX3N0YXRpYwojCVRoaXMgZGlyZWN0aXZlIGNvbnRyb2xzIGlzIFNxdWlkIHNo
b3VsZCBpbnRlcmNlcHQgYWxsIHJlcXVlc3RzIGZvcgojCS9zcXVpZC1pbnRlcm5hbC1zdGF0aWMv
IG5vIG1hdHRlciB3aGljaCBob3N0IHRoZSBVUkwgaXMgcmVxdWVzdGluZwojCShkZWZhdWx0IG9u
IHNldHRpbmcpLCBvciBpZiBub3RoaW5nIHNwZWNpYWwgc2hvdWxkIGJlIGRvbmUgZm9yCiMJc3Vj
aCBVUkxzIChvZmYgc2V0dGluZykuIFRoZSBwdXJwb3NlIG9mIHRoaXMgZGlyZWN0aXZlIGlzIHRv
IG1ha2UKIwlpY29ucyBldGMgd29yayBiZXR0ZXIgaW4gY29tcGxleCBjYWNoZSBoaWVyYXJjaGll
cyB3aGVyZSBpdCBtYXkKIwlub3QgYWx3YXlzIGJlIHBvc3NpYmxlIGZvciBhbGwgY29ybmVycyBp
biB0aGUgY2FjaGUgbWVzaCB0byByZWFjaAojCXRoZSBzZXJ2ZXIgZ2VuZXJhdGluZyBhIGRpcmVj
dG9yeSBsaXN0aW5nLgojRGVmYXVsdDoKIyBnbG9iYWxfaW50ZXJuYWxfc3RhdGljIG9uCgojICBU
QUc6IHNob3J0X2ljb25fdXJscwojCUlmIHRoaXMgaXMgZW5hYmxlZCBTcXVpZCB3aWxsIHVzZSBz
aG9ydCBVUkxzIGZvciBpY29ucy4KIwlJZiBkaXNhYmxlZCBpdCB3aWxsIHJldmVydCB0byB0aGUg
b2xkIGJlaGF2aW9yIG9mIGluY2x1ZGluZwojCWl0J3Mgb3duIG5hbWUgYW5kIHBvcnQgaW4gdGhl
IFVSTC4KIwojCUlmIHlvdSBydW4gYSBjb21wbGV4IGNhY2hlIGhpZXJhcmNoeSB3aXRoIGEgbWl4
IG9mIFNxdWlkIGFuZAojCW90aGVyIHByb3hpZXMgeW91IG1heSBuZWVkIHRvIGRpc2FibGUgdGhp
cyBkaXJlY3RpdmUuCiNEZWZhdWx0OgojIHNob3J0X2ljb25fdXJscyBvbgoKIyBFUlJPUiBQQUdF
IE9QVElPTlMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAgVEFHOiBlcnJvcl9kaXJlY3RvcnkK
IwlJZiB5b3Ugd2lzaCB0byBjcmVhdGUgeW91ciBvd24gdmVyc2lvbnMgb2YgdGhlIGRlZmF1bHQK
IwllcnJvciBmaWxlcyB0byBjdXN0b21pemUgdGhlbSB0byBzdWl0IHlvdXIgY29tcGFueSBjb3B5
CiMJdGhlIGVycm9yL3RlbXBsYXRlIGZpbGVzIHRvIGFub3RoZXIgZGlyZWN0b3J5IGFuZCBwb2lu
dAojCXRoaXMgdGFnIGF0IHRoZW0uCiMKIwlXQVJOSU5HOiBUaGlzIG9wdGlvbiB3aWxsIGRpc2Fi
bGUgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydAojCSAgICAgICAgIG9uIGVycm9yIHBhZ2VzIGlmIHVz
ZWQuCiMKIwlUaGUgc3F1aWQgZGV2ZWxvcGVycyBhcmUgaW50ZXJlc3RlZCBpbiBtYWtpbmcgc3F1
aWQgYXZhaWxhYmxlIGluCiMJYSB3aWRlIHZhcmlldHkgb2YgbGFuZ3VhZ2VzLiBJZiB5b3UgYXJl
IG1ha2luZyB0cmFuc2xhdGlvbnMgZm9yIGEKIwlsYW5ndWFnZSB0aGF0IFNxdWlkIGRvZXMgbm90
IGN1cnJlbnRseSBwcm92aWRlIHBsZWFzZSBjb25zaWRlcgojCWNvbnRyaWJ1dGluZyB5b3VyIHRy
YW5zbGF0aW9uIGJhY2sgdG8gdGhlIHByb2plY3QuCiMJaHR0cDovL3dpa2kuc3F1aWQtY2FjaGUu
b3JnL1RyYW5zbGF0aW9ucwojCiMJVGhlIHNxdWlkIGRldmVsb3BlcnMgd29ya2luZyBvbiB0cmFu
c2xhdGlvbnMgYXJlIGhhcHB5IHRvIHN1cHBseSBkcm9wLWluCiMJdHJhbnNsYXRlZCBlcnJvciBm
aWxlcyBpbiBleGNoYW5nZSBmb3IgYW55IG5ldyBsYW5ndWFnZSBjb250cmlidXRpb25zLgojRGVm
YXVsdDoKIyBub25lCgojICBUQUc6IGVycm9yX2RlZmF1bHRfbGFuZ3VhZ2UKIwlTZXQgdGhlIGRl
ZmF1bHQgbGFuZ3VhZ2Ugd2hpY2ggc3F1aWQgd2lsbCBzZW5kIGVycm9yIHBhZ2VzIGluCiMJaWYg
bm8gZXhpc3RpbmcgdHJhbnNsYXRpb24gbWF0Y2hlcyB0aGUgY2xpZW50cyBsYW5ndWFnZQojCXBy
ZWZlcmVuY2VzLgojCiMJSWYgdW5zZXQgKGRlZmF1bHQpIGdlbmVyaWMgRW5nbGlzaCB3aWxsIGJl
IHVzZWQuCiMKIwlUaGUgc3F1aWQgZGV2ZWxvcGVycyBhcmUgaW50ZXJlc3RlZCBpbiBtYWtpbmcg
c3F1aWQgYXZhaWxhYmxlIGluCiMJYSB3aWRlIHZhcmlldHkgb2YgbGFuZ3VhZ2VzLiBJZiB5b3Ug
YXJlIGludGVyZXN0ZWQgaW4gbWFraW5nCiMJdHJhbnNsYXRpb25zIGZvciBhbnkgbGFuZ3VhZ2Ug
c2VlIHRoZSBzcXVpZCB3aWtpIGZvciBkZXRhaWxzLgojCWh0dHA6Ly93aWtpLnNxdWlkLWNhY2hl
Lm9yZy9UcmFuc2xhdGlvbnMKI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBlcnJvcl9sb2dfbGFu
Z3VhZ2VzCiMJTG9nIHRvIGNhY2hlLmxvZyB3aGF0IGxhbmd1YWdlcyB1c2VycyBhcmUgYXR0ZW1w
dGluZyB0bwojCWF1dG8tbmVnb3RpYXRlIGZvciB0cmFuc2xhdGlvbnMuCiMKIwlTdWNjZXNzZnVs
IG5lZ290aWF0aW9ucyBhcmUgbm90IGxvZ2dlZC4gT25seSBmYWlsdXJlcwojCWhhdmUgbWVhbmlu
ZyB0byBpbmRpY2F0ZSB0aGF0IFNxdWlkIG1heSBuZWVkIGFuIHVwZ3JhZGUKIwlvZiBpdHMgZXJy
b3IgcGFnZSB0cmFuc2xhdGlvbnMuCiNEZWZhdWx0OgojIGVycm9yX2xvZ19sYW5ndWFnZXMgb24K
CiMgIFRBRzogZXJyX3BhZ2Vfc3R5bGVzaGVldAojCUNTUyBTdHlsZXNoZWV0IHRvIHBhdHRlcm4g
dGhlIGRpc3BsYXkgb2YgU3F1aWQgZGVmYXVsdCBlcnJvciBwYWdlcy4KIwojCUZvciBpbmZvcm1h
dGlvbiBvbiBDU1Mgc2VlIGh0dHA6Ly93d3cudzMub3JnL1N0eWxlL0NTUy8KI0RlZmF1bHQ6CiMg
ZXJyX3BhZ2Vfc3R5bGVzaGVldCAvZXRjL3NxdWlkL2Vycm9ycGFnZS5jc3MKCiMgIFRBRzogZXJy
X2h0bWxfdGV4dAojCUhUTUwgdGV4dCB0byBpbmNsdWRlIGluIGVycm9yIG1lc3NhZ2VzLiAgTWFr
ZSB0aGlzIGEgIm1haWx0byIKIwlVUkwgdG8geW91ciBhZG1pbiBhZGRyZXNzLCBvciBtYXliZSBq
dXN0IGEgbGluayB0byB5b3VyCiMJb3JnYW5pemF0aW9ucyBXZWIgcGFnZS4KIwojCVRvIGluY2x1
ZGUgdGhpcyBpbiB5b3VyIGVycm9yIG1lc3NhZ2VzLCB5b3UgbXVzdCByZXdyaXRlCiMJdGhlIGVy
cm9yIHRlbXBsYXRlIGZpbGVzIChmb3VuZCBpbiB0aGUgImVycm9ycyIgZGlyZWN0b3J5KS4KIwlX
aGVyZXZlciB5b3Ugd2FudCB0aGUgJ2Vycl9odG1sX3RleHQnIGxpbmUgdG8gYXBwZWFyLAojCWlu
c2VydCBhICVMIHRhZyBpbiB0aGUgZXJyb3IgdGVtcGxhdGUgZmlsZS4KI0RlZmF1bHQ6CiMgbm9u
ZQoKIyAgVEFHOiBlbWFpbF9lcnJfZGF0YQlvbnxvZmYKIwlJZiBlbmFibGVkLCBpbmZvcm1hdGlv
biBhYm91dCB0aGUgb2NjdXJyZWQgZXJyb3Igd2lsbCBiZQojCWluY2x1ZGVkIGluIHRoZSBtYWls
dG8gbGlua3Mgb2YgdGhlIEVSUiBwYWdlcyAoaWYgJVcgaXMgc2V0KQojCXNvIHRoYXQgdGhlIGVt
YWlsIGJvZHkgY29udGFpbnMgdGhlIGRhdGEuCiMJU3ludGF4IGlzIDxBIEhSRUY9Im1haWx0bzol
dyVXIj4ldzwvQT4KI0RlZmF1bHQ6CiMgZW1haWxfZXJyX2RhdGEgb24KCiMgIFRBRzogZGVueV9p
bmZvCiMJVXNhZ2U6ICAgZGVueV9pbmZvIGVycl9wYWdlX25hbWUgYWNsCiMJb3IgICAgICAgZGVu
eV9pbmZvIGh0dHA6Ly8uLi4gYWNsCiMJb3IgICAgICAgZGVueV9pbmZvIFRDUF9SRVNFVCBhY2wK
IwojCVRoaXMgY2FuIGJlIHVzZWQgdG8gcmV0dXJuIGEgRVJSXyBwYWdlIGZvciByZXF1ZXN0cyB3
aGljaAojCWRvIG5vdCBwYXNzIHRoZSAnaHR0cF9hY2Nlc3MnIHJ1bGVzLiAgU3F1aWQgcmVtZW1i
ZXJzIHRoZSBsYXN0CiMJYWNsIGl0IGV2YWx1YXRlZCBpbiBodHRwX2FjY2VzcywgYW5kIGlmIGEg
J2RlbnlfaW5mbycgbGluZSBleGlzdHMKIwlmb3IgdGhhdCBBQ0wgU3F1aWQgcmV0dXJucyBhIGNv
cnJlc3BvbmRpbmcgZXJyb3IgcGFnZS4KIwojCVRoZSBhY2wgaXMgdHlwaWNhbGx5IHRoZSBsYXN0
IGFjbCBvbiB0aGUgaHR0cF9hY2Nlc3MgZGVueSBsaW5lIHdoaWNoCiMJZGVuaWVkIGFjY2Vzcy4g
VGhlIGV4Y2VwdGlvbnMgdG8gdGhpcyBydWxlIGFyZToKIwktIFdoZW4gU3F1aWQgbmVlZHMgdG8g
cmVxdWVzdCBhdXRoZW50aWNhdGlvbiBjcmVkZW50aWFscy4gSXQncyB0aGVuCiMJICB0aGUgZmly
c3QgYXV0aGVudGljYXRpb24gcmVsYXRlZCBhY2wgZW5jb3VudGVyZWQKIwktIFdoZW4gbm9uZSBv
ZiB0aGUgaHR0cF9hY2Nlc3MgbGluZXMgbWF0Y2hlcy4gSXQncyB0aGVuIHRoZSBsYXN0CiMJICBh
Y2wgcHJvY2Vzc2VkIG9uIHRoZSBsYXN0IGh0dHBfYWNjZXNzIGxpbmUuCiMKIwlOUDogSWYgcHJv
dmlkaW5nIHlvdXIgb3duIGN1c3RvbSBlcnJvciBwYWdlcyB3aXRoIGVycm9yX2RpcmVjdG9yeQoj
CSAgICB5b3UgbWF5IGFsc28gc3BlY2lmeSB0aGVtIGJ5IHlvdXIgY3VzdG9tIGZpbGUgbmFtZToK
IwkgICAgRXhhbXBsZTogZGVueV9pbmZvIEVSUl9DVVNUT01fQUNDRVNTX0RFTklFRCBiYWRfZ3V5
cwojCiMJQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHNwZWNpZnkgYW4gZXJyb3IgVVJMLiBUaGUgYnJv
d3NlcnMgd2lsbAojCWdldCByZWRpcmVjdGVkICgzMDIgb3IgMzA3KSB0byB0aGUgc3BlY2lmaWVk
IFVSTC4gJXMgaW4gdGhlIHJlZGlyZWN0aW9uCiMJVVJMIHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhl
IHJlcXVlc3RlZCBVUkwuCiMKIwlBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gdGVsbCBTcXVpZCB0byBy
ZXNldCB0aGUgVENQIGNvbm5lY3Rpb24KIwlieSBzcGVjaWZ5aW5nIFRDUF9SRVNFVC4KI0RlZmF1
bHQ6CiMgbm9uZQoKIyBPUFRJT05TIElORkxVRU5DSU5HIFJFUVVFU1QgRk9SV0FSRElORyAKIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAgVEFHOiBub25oaWVyYXJjaGljYWxfZGlyZWN0CiMJQnkg
ZGVmYXVsdCwgU3F1aWQgd2lsbCBzZW5kIGFueSBub24taGllcmFyY2hpY2FsIHJlcXVlc3RzCiMJ
KG1hdGNoaW5nIGhpZXJhcmNoeV9zdG9wbGlzdCBvciBub3QgY2FjaGVhYmxlIHJlcXVlc3QgdHlw
ZSkgZGlyZWN0CiMJdG8gb3JpZ2luIHNlcnZlcnMuCiMKIwlJZiB5b3Ugc2V0IHRoaXMgdG8gb2Zm
LCBTcXVpZCB3aWxsIHByZWZlciB0byBzZW5kIHRoZXNlCiMJcmVxdWVzdHMgdG8gcGFyZW50cy4K
IwojCU5vdGUgdGhhdCBpbiBtb3N0IGNvbmZpZ3VyYXRpb25zLCBieSB0dXJuaW5nIHRoaXMgb2Zm
IHlvdSB3aWxsIG9ubHkKIwlhZGQgbGF0ZW5jeSB0byB0aGVzZSByZXF1ZXN0IHdpdGhvdXQgYW55
IGltcHJvdmVtZW50IGluIGdsb2JhbCBoaXQKIwlyYXRpby4KIwojCUlmIHlvdSBhcmUgaW5zaWRl
IGFuIGZpcmV3YWxsIHNlZSBuZXZlcl9kaXJlY3QgaW5zdGVhZCBvZgojCXRoaXMgZGlyZWN0aXZl
LgojRGVmYXVsdDoKIyBub25oaWVyYXJjaGljYWxfZGlyZWN0IG9uCgojICBUQUc6IHByZWZlcl9k
aXJlY3QKIwlOb3JtYWxseSBTcXVpZCB0cmllcyB0byB1c2UgcGFyZW50cyBmb3IgbW9zdCByZXF1
ZXN0cy4gSWYgeW91IGZvciBzb21lCiMJcmVhc29uIGxpa2UgaXQgdG8gZmlyc3QgdHJ5IGdvaW5n
IGRpcmVjdCBhbmQgb25seSB1c2UgYSBwYXJlbnQgaWYKIwlnb2luZyBkaXJlY3QgZmFpbHMgc2V0
IHRoaXMgdG8gb24uCiMKIwlCeSBjb21iaW5pbmcgbm9uaGllcmFyY2hpY2FsX2RpcmVjdCBvZmYg
YW5kIHByZWZlcl9kaXJlY3Qgb24geW91CiMJY2FuIHNldCB1cCBTcXVpZCB0byB1c2UgYSBwYXJl
bnQgYXMgYSBiYWNrdXAgcGF0aCBpZiBnb2luZyBkaXJlY3QKIwlmYWlscy4KIwojCU5vdGU6IElm
IHlvdSB3YW50IFNxdWlkIHRvIHVzZSBwYXJlbnRzIGZvciBhbGwgcmVxdWVzdHMgc2VlCiMJdGhl
IG5ldmVyX2RpcmVjdCBkaXJlY3RpdmUuIHByZWZlcl9kaXJlY3Qgb25seSBtb2RpZmllcyBob3cg
U3F1aWQKIwlhY3RzIG9uIGNhY2hlYWJsZSByZXF1ZXN0cy4KI0RlZmF1bHQ6CiMgcHJlZmVyX2Rp
cmVjdCBvZmYKCiMgIFRBRzogYWx3YXlzX2RpcmVjdAojCVVzYWdlOiBhbHdheXNfZGlyZWN0IGFs
bG93fGRlbnkgWyFdYWNsbmFtZSAuLi4KIwojCUhlcmUgeW91IGNhbiB1c2UgQUNMIGVsZW1lbnRz
IHRvIHNwZWNpZnkgcmVxdWVzdHMgd2hpY2ggc2hvdWxkCiMJQUxXQVlTIGJlIGZvcndhcmRlZCBi
eSBTcXVpZCB0byB0aGUgb3JpZ2luIHNlcnZlcnMgd2l0aG91dCB1c2luZwojCWFueSBwZWVycy4g
IEZvciBleGFtcGxlLCB0byBhbHdheXMgZGlyZWN0bHkgZm9yd2FyZCByZXF1ZXN0cyBmb3IKIwls
b2NhbCBzZXJ2ZXJzIGlnbm9yaW5nIGFueSBwYXJlbnRzIG9yIHNpYmxpbmdzIHlvdSBtYXkgaGF2
ZSB1c2UKIwlzb21ldGhpbmcgbGlrZToKIwojCQlhY2wgbG9jYWwtc2VydmVycyBkc3Rkb21haW4g
bXkuZG9tYWluLm5ldAojCQlhbHdheXNfZGlyZWN0IGFsbG93IGxvY2FsLXNlcnZlcnMKIwojCVRv
IGFsd2F5cyBmb3J3YXJkIEZUUCByZXF1ZXN0cyBkaXJlY3RseSwgdXNlCiMKIwkJYWNsIEZUUCBw
cm90byBGVFAKIwkJYWx3YXlzX2RpcmVjdCBhbGxvdyBGVFAKIwojCU5PVEU6IFRoZXJlIGlzIGEg
c2ltaWxhciwgYnV0IG9wcG9zaXRlIG9wdGlvbiBuYW1lZAojCSduZXZlcl9kaXJlY3QnLiAgWW91
IG5lZWQgdG8gYmUgYXdhcmUgdGhhdCAiYWx3YXlzX2RpcmVjdCBkZW55CiMJZm9vIiBpcyBOT1Qg
dGhlIHNhbWUgdGhpbmcgYXMgIm5ldmVyX2RpcmVjdCBhbGxvdyBmb28iLiAgWW91CiMJbWF5IG5l
ZWQgdG8gdXNlIGEgZGVueSBydWxlIHRvIGV4Y2x1ZGUgYSBtb3JlLXNwZWNpZmljIGNhc2Ugb2YK
Iwlzb21lIG90aGVyIHJ1bGUuICBFeGFtcGxlOgojCiMJCWFjbCBsb2NhbC1leHRlcm5hbCBkc3Rk
b21haW4gZXh0ZXJuYWwuZm9vLm5ldAojCQlhY2wgbG9jYWwtc2VydmVycyBkc3Rkb21haW4gIC5m
b28ubmV0CiMJCWFsd2F5c19kaXJlY3QgZGVueSBsb2NhbC1leHRlcm5hbAojCQlhbHdheXNfZGly
ZWN0IGFsbG93IGxvY2FsLXNlcnZlcnMKIwojCU5PVEU6IElmIHlvdXIgZ29hbCBpcyB0byBtYWtl
IHRoZSBjbGllbnQgZm9yd2FyZCB0aGUgcmVxdWVzdAojCWRpcmVjdGx5IHRvIHRoZSBvcmlnaW4g
c2VydmVyIGJ5cGFzc2luZyBTcXVpZCB0aGVuIHRoaXMgbmVlZHMKIwl0byBiZSBkb25lIGluIHRo
ZSBjbGllbnQgY29uZmlndXJhdGlvbi4gU3F1aWQgY29uZmlndXJhdGlvbgojCWNhbiBvbmx5IHRl
bGwgU3F1aWQgaG93IFNxdWlkIHNob3VsZCBmZXRjaCB0aGUgb2JqZWN0LgojCiMJTk9URTogVGhp
cyBkaXJlY3RpdmUgaXMgbm90IHJlbGF0ZWQgdG8gY2FjaGluZy4gVGhlIHJlcGxpZXMKIwlpcyBj
YWNoZWQgYXMgdXN1YWwgZXZlbiBpZiB5b3UgdXNlIGFsd2F5c19kaXJlY3QuIFRvIG5vdCBjYWNo
ZQojCXRoZSByZXBsaWVzIHNlZSB0aGUgJ2NhY2hlJyBkaXJlY3RpdmUuCiMKIwlUaGlzIGNsYXVz
ZSBzdXBwb3J0cyBib3RoIGZhc3QgYW5kIHNsb3cgYWNsIHR5cGVzLgojCVNlZSBodHRwOi8vd2lr
aS5zcXVpZC1jYWNoZS5vcmcvU3F1aWRGYXEvU3F1aWRBY2wgZm9yIGRldGFpbHMuCiNEZWZhdWx0
OgojIG5vbmUKCiMgIFRBRzogbmV2ZXJfZGlyZWN0CiMJVXNhZ2U6IG5ldmVyX2RpcmVjdCBhbGxv
d3xkZW55IFshXWFjbG5hbWUgLi4uCiMKIwluZXZlcl9kaXJlY3QgaXMgdGhlIG9wcG9zaXRlIG9m
IGFsd2F5c19kaXJlY3QuICBQbGVhc2UgcmVhZAojCXRoZSBkZXNjcmlwdGlvbiBmb3IgYWx3YXlz
X2RpcmVjdCBpZiB5b3UgaGF2ZSBub3QgYWxyZWFkeS4KIwojCVdpdGggJ25ldmVyX2RpcmVjdCcg
eW91IGNhbiB1c2UgQUNMIGVsZW1lbnRzIHRvIHNwZWNpZnkKIwlyZXF1ZXN0cyB3aGljaCBzaG91
bGQgTkVWRVIgYmUgZm9yd2FyZGVkIGRpcmVjdGx5IHRvIG9yaWdpbgojCXNlcnZlcnMuICBGb3Ig
ZXhhbXBsZSwgdG8gZm9yY2UgdGhlIHVzZSBvZiBhIHByb3h5IGZvciBhbGwKIwlyZXF1ZXN0cywg
ZXhjZXB0IHRob3NlIGluIHlvdXIgbG9jYWwgZG9tYWluIHVzZSBzb21ldGhpbmcgbGlrZToKIwoj
CQlhY2wgbG9jYWwtc2VydmVycyBkc3Rkb21haW4gLmZvby5uZXQKIwkJbmV2ZXJfZGlyZWN0IGRl
bnkgbG9jYWwtc2VydmVycwojCQluZXZlcl9kaXJlY3QgYWxsb3cgYWxsCiMKIwlvciBpZiBTcXVp
ZCBpcyBpbnNpZGUgYSBmaXJld2FsbCBhbmQgdGhlcmUgYXJlIGxvY2FsIGludHJhbmV0CiMJc2Vy
dmVycyBpbnNpZGUgdGhlIGZpcmV3YWxsIHVzZSBzb21ldGhpbmcgbGlrZToKIwojCQlhY2wgbG9j
YWwtaW50cmFuZXQgZHN0ZG9tYWluIC5mb28ubmV0CiMJCWFjbCBsb2NhbC1leHRlcm5hbCBkc3Rk
b21haW4gZXh0ZXJuYWwuZm9vLm5ldAojCQlhbHdheXNfZGlyZWN0IGRlbnkgbG9jYWwtZXh0ZXJu
YWwKIwkJYWx3YXlzX2RpcmVjdCBhbGxvdyBsb2NhbC1pbnRyYW5ldAojCQluZXZlcl9kaXJlY3Qg
YWxsb3cgYWxsCiMKIwlUaGlzIGNsYXVzZSBzdXBwb3J0cyBib3RoIGZhc3QgYW5kIHNsb3cgYWNs
IHR5cGVzLgojCVNlZSBodHRwOi8vd2lraS5zcXVpZC1jYWNoZS5vcmcvU3F1aWRGYXEvU3F1aWRB
Y2wgZm9yIGRldGFpbHMuCiNEZWZhdWx0OgojIG5vbmUKCiMgQURWQU5DRUQgTkVUV09SS0lORyBP
UFRJT05TCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgIFRBRzogaW5jb21pbmdfaWNwX2F2ZXJh
Z2UKIyAgVEFHOiBpbmNvbWluZ19odHRwX2F2ZXJhZ2UKIyAgVEFHOiBpbmNvbWluZ19kbnNfYXZl
cmFnZQojICBUQUc6IG1pbl9pY3BfcG9sbF9jbnQKIyAgVEFHOiBtaW5fZG5zX3BvbGxfY250CiMg
IFRBRzogbWluX2h0dHBfcG9sbF9jbnQKIwlIZWF2eSB2b29kb28gaGVyZS4gIEkgY2FuJ3QgZXZl
biBiZWxpZXZlIHlvdSBhcmUgcmVhZGluZyB0aGlzLgojCUFyZSB5b3UgY3Jhenk/ICBEb24ndCBl
dmVuIHRoaW5rIGFib3V0IGFkanVzdGluZyB0aGVzZSB1bmxlc3MKIwl5b3UgdW5kZXJzdGFuZCB0
aGUgYWxnb3JpdGhtcyBpbiBjb21tX3NlbGVjdC5jIGZpcnN0IQojRGVmYXVsdDoKIyBpbmNvbWlu
Z19pY3BfYXZlcmFnZSA2CiMgaW5jb21pbmdfaHR0cF9hdmVyYWdlIDQKIyBpbmNvbWluZ19kbnNf
YXZlcmFnZSA0CiMgbWluX2ljcF9wb2xsX2NudCA4CiMgbWluX2Ruc19wb2xsX2NudCA4CiMgbWlu
X2h0dHBfcG9sbF9jbnQgOAoKIyAgVEFHOiBhY2NlcHRfZmlsdGVyCiMJRnJlZUJTRDoKIwojCVRo
ZSBuYW1lIG9mIGFuIGFjY2VwdCgyKSBmaWx0ZXIgdG8gaW5zdGFsbCBvbiBTcXVpZCdzCiMJbGlz
dGVuIHNvY2tldChzKS4gIFRoaXMgZmVhdHVyZSBpcyBwZXJoYXBzIHNwZWNpZmljIHRvCiMJRnJl
ZUJTRCBhbmQgcmVxdWlyZXMgc3VwcG9ydCBpbiB0aGUga2VybmVsLgojCiMJVGhlICdodHRwcmVh
ZHknIGZpbHRlciBkZWxheXMgZGVsaXZlcmluZyBuZXcgY29ubmVjdGlvbnMKIwl0byBTcXVpZCB1
bnRpbCBhIGZ1bGwgSFRUUCByZXF1ZXN0IGhhcyBiZWVuIHJlY2VpdmVkLgojCVNlZSB0aGUgYWNj
Zl9odHRwKDkpIG1hbiBwYWdlIGZvciBkZXRhaWxzLgojCiMJVGhlICdkYXRhcmVhZHknIGZpbHRl
ciBkZWxheXMgZGVsaXZlcmluZyBuZXcgY29ubmVjdGlvbnMKIwl0byBTcXVpZCB1bnRpbCB0aGVy
ZSBpcyBzb21lIGRhdGEgdG8gcHJvY2Vzcy4KIwlTZWUgdGhlIGFjY2ZfZGF0YXJlYWR5KDkpIG1h
biBwYWdlIGZvciBkZXRhaWxzLgojCiMJTGludXg6CiMJCiMJVGhlICdkYXRhJyBmaWx0ZXIgZGVs
YXlzIGRlbGl2ZXJpbmcgb2YgbmV3IGNvbm5lY3Rpb25zCiMJdG8gU3F1aWQgdW50aWwgdGhlcmUg
aXMgc29tZSBkYXRhIHRvIHByb2Nlc3MgYnkgVENQX0FDQ0VQVF9ERUZFUi4KIwlZb3UgbWF5IG9w
dGlvbmFsbHkgc3BlY2lmeSBhIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgYnkKIwknZGF0YT1O
JyB3aGVyZSBOIGlzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcy4gRGVmYXVsdHMgdG8gMzAKIwlpZiBu
b3Qgc3BlY2lmaWVkLiAgU2VlIHRoZSB0Y3AoNykgbWFuIHBhZ2UgZm9yIGRldGFpbHMuCiNFWEFN
UExFOgojIyBGcmVlQlNECiNhY2NlcHRfZmlsdGVyIGh0dHByZWFkeQojIyBMaW51eAojYWNjZXB0
X2ZpbHRlciBkYXRhCiNEZWZhdWx0OgojIG5vbmUKCiMgIFRBRzogY2xpZW50X2lwX21heF9jb25u
ZWN0aW9ucwojCVNldCBhbiBhYnNvbHV0ZSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIGNvbm5lY3Rp
b25zIGEgc2luZ2xlCiMJY2xpZW50IElQIGNhbiB1c2UuIEFueSBtb3JlIHRoYW4gdGhpcyBhbmQg
U3F1aWQgd2lsbCBiZWdpbiB0byBkcm9wCiMJbmV3IGNvbm5lY3Rpb25zIGZyb20gdGhlIGNsaWVu
dCB1bnRpbCBpdCBjbG9zZXMgc29tZSBsaW5rcy4KIwojCU5vdGUgdGhhdCB0aGlzIGlzIGEgZ2xv
YmFsIGxpbWl0LiBJdCBhZmZlY3RzIGFsbCBIVFRQLCBIVENQLCBHb3BoZXIgYW5kIEZUUAojCWNv
bm5lY3Rpb25zIGZyb20gdGhlIGNsaWVudC4gRm9yIGZpbmVyIGNvbnRyb2wgdXNlIHRoZSBBQ0wg
YWNjZXNzIGNvbnRyb2xzLgojCiMJUmVxdWlyZXMgY2xpZW50X2RiIHRvIGJlIGVuYWJsZWQgKHRo
ZSBkZWZhdWx0KS4KIwojCVdBUk5JTkc6IFRoaXMgbWF5IG5vdGljYWJseSBzbG93IGRvd24gdHJh
ZmZpYyByZWNlaXZlZCB2aWEgZXh0ZXJuYWwgcHJveGllcwojCW9yIE5BVCBkZXZpY2VzIGFuZCBj
YXVzZSB0aGVtIHRvIHJlYm91bmQgZXJyb3IgbWVzc2FnZXMgYmFjayB0byB0aGVpciBjbGllbnRz
LgojRGVmYXVsdDoKIyBjbGllbnRfaXBfbWF4X2Nvbm5lY3Rpb25zIC0xCgojICBUQUc6IHRjcF9y
ZWN2X2J1ZnNpemUJKGJ5dGVzKQojCVNpemUgb2YgcmVjZWl2ZSBidWZmZXIgdG8gc2V0IGZvciBU
Q1Agc29ja2V0cy4gIFByb2JhYmx5IGp1c3QKIwlhcyBlYXN5IHRvIGNoYW5nZSB5b3VyIGtlcm5l
bCdzIGRlZmF1bHQuICBTZXQgdG8gemVybyB0byB1c2UKIwl0aGUgZGVmYXVsdCBidWZmZXIgc2l6
ZS4KI0RlZmF1bHQ6CiMgdGNwX3JlY3ZfYnVmc2l6ZSAwIGJ5dGVzCgojIElDQVAgT1BUSU9OUwoj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojICBUQUc6IGljYXBfZW5hYmxlCW9ufG9mZgojCUlmIHlv
dSB3YW50IHRvIGVuYWJsZSB0aGUgSUNBUCBtb2R1bGUgc3VwcG9ydCwgc2V0IHRoaXMgdG8gb24u
CiNEZWZhdWx0OgojIGljYXBfZW5hYmxlIG9mZgoKIyAgVEFHOiBpY2FwX2Nvbm5lY3RfdGltZW91
dAojCVRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBob3cgbG9uZyB0byB3YWl0IGZvciB0aGUgVENQ
IGNvbm5lY3QgdG8KIwl0aGUgcmVxdWVzdGVkIElDQVAgc2VydmVyIHRvIGNvbXBsZXRlIGJlZm9y
ZSBnaXZpbmcgdXAgYW5kIGVpdGhlcgojCXRlcm1pbmF0aW5nIHRoZSBIVFRQIHRyYW5zYWN0aW9u
IG9yIGJ5cGFzc2luZyB0aGUgZmFpbHVyZS4KIwojCVRoZSBkZWZhdWx0IGZvciBvcHRpb25hbCBz
ZXJ2aWNlcyBpcyBwZWVyX2Nvbm5lY3RfdGltZW91dC4KIwlUaGUgZGVmYXVsdCBmb3IgZXNzZW50
aWFsIHNlcnZpY2VzIGlzIGNvbm5lY3RfdGltZW91dC4KIwlJZiB0aGlzIG9wdGlvbiBpcyBleHBs
aWNpdGx5IHNldCwgaXRzIHZhbHVlIGFwcGxpZXMgdG8gYWxsIHNlcnZpY2VzLgojRGVmYXVsdDoK
IyBub25lCgojICBUQUc6IGljYXBfaW9fdGltZW91dAl0aW1lLXVuaXRzCiMJVGhpcyBwYXJhbWV0
ZXIgc3BlY2lmaWVzIGhvdyBsb25nIHRvIHdhaXQgZm9yIGFuIEkvTyBhY3Rpdml0eSBvbgojCWFu
IGVzdGFibGlzaGVkLCBhY3RpdmUgSUNBUCBjb25uZWN0aW9uIGJlZm9yZSBnaXZpbmcgdXAgYW5k
CiMJZWl0aGVyIHRlcm1pbmF0aW5nIHRoZSBIVFRQIHRyYW5zYWN0aW9uIG9yIGJ5cGFzc2luZyB0
aGUKIwlmYWlsdXJlLgojCiMJVGhlIGRlZmF1bHQgaXMgcmVhZF90aW1lb3V0LgojRGVmYXVsdDoK
IyBub25lCgojICBUQUc6IGljYXBfc2VydmljZV9mYWlsdXJlX2xpbWl0CiMJVGhlIGxpbWl0IHNw
ZWNpZmllcyB0aGUgbnVtYmVyIG9mIGZhaWx1cmVzIHRoYXQgU3F1aWQgdG9sZXJhdGVzCiMJd2hl
biBlc3RhYmxpc2hpbmcgYSBuZXcgVENQIGNvbm5lY3Rpb24gd2l0aCBhbiBJQ0FQIHNlcnZpY2Uu
IElmCiMJdGhlIG51bWJlciBvZiBmYWlsdXJlcyBleGNlZWRzIHRoZSBsaW1pdCwgdGhlIElDQVAg
c2VydmljZSBpcwojCW5vdCB1c2VkIGZvciBuZXcgSUNBUCByZXF1ZXN0cyB1bnRpbCBpdCBpcyB0
aW1lIHRvIHJlZnJlc2ggaXRzCiMJT1BUSU9OUy4gVGhlIHBlci1zZXJ2aWNlIGZhaWx1cmUgY291
bnRlciBpcyByZXNldCB0byB6ZXJvIGVhY2gKIwl0aW1lIFNxdWlkIGZldGNoZXMgbmV3IHNlcnZp
Y2UgT1BUSU9OUy4KIwojCUEgbmVnYXRpdmUgdmFsdWUgZGlzYWJsZXMgdGhlIGxpbWl0LiBXaXRo
b3V0IHRoZSBsaW1pdCwgYW4gSUNBUAojCXNlcnZpY2Ugd2lsbCBub3QgYmUgY29uc2lkZXJlZCBk
b3duIGR1ZSB0byBjb25uZWN0aXZpdHkgZmFpbHVyZXMKIwliZXR3ZWVuIElDQVAgT1BUSU9OUyBy
ZXF1ZXN0cy4KI0RlZmF1bHQ6CiMgaWNhcF9zZXJ2aWNlX2ZhaWx1cmVfbGltaXQgMTAKCiMgIFRB
RzogaWNhcF9zZXJ2aWNlX3Jldml2YWxfZGVsYXkKIwlUaGUgZGVsYXkgc3BlY2lmaWVzIHRoZSBu
dW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0IGFmdGVyIGFuIElDQVAKIwlPUFRJT05TIHJlcXVlc3Qg
ZmFpbHVyZSBiZWZvcmUgcmVxdWVzdGluZyB0aGUgb3B0aW9ucyBhZ2Fpbi4gVGhlCiMJZmFpbGVk
IElDQVAgc2VydmljZSBpcyBjb25zaWRlcmVkICJkb3duIiB1bnRpbCBmcmVzaCBPUFRJT05TIGFy
ZQojCWZldGNoZWQuCiMKIwlUaGUgYWN0dWFsIGRlbGF5IGNhbm5vdCBiZSBzbWFsbGVyIHRoYW4g
dGhlIGhhcmRjb2RlZCBtaW5pbXVtCiMJZGVsYXkgb2YgMzAgc2Vjb25kcy4KI0RlZmF1bHQ6CiMg
aWNhcF9zZXJ2aWNlX3Jldml2YWxfZGVsYXkgMTgwCgojICBUQUc6IGljYXBfcHJldmlld19lbmFi
bGUJb258b2ZmCiMJVGhlIElDQVAgUHJldmlldyBmZWF0dXJlIGFsbG93cyB0aGUgSUNBUCBzZXJ2
ZXIgdG8gaGFuZGxlIHRoZQojCUhUVFAgbWVzc2FnZSBieSBsb29raW5nIG9ubHkgYXQgdGhlIGJl
Z2lubmluZyBvZiB0aGUgbWVzc2FnZSBib2R5CiMJb3IgZXZlbiB3aXRob3V0IHJlY2VpdmluZyB0
aGUgYm9keSBhdCBhbGwuIEluIHNvbWUgZW52aXJvbm1lbnRzLCAKIwlwcmV2aWV3cyBncmVhdGx5
IHNwZWVkdXAgSUNBUCBwcm9jZXNzaW5nLgojCiMJRHVyaW5nIGFuIElDQVAgT1BUSU9OUyB0cmFu
c2FjdGlvbiwgdGhlIHNlcnZlciBtYXkgdGVsbAlTcXVpZCB3aGF0CiMJSFRUUCBtZXNzYWdlcyBz
aG91bGQgYmUgcHJldmlld2VkIGFuZCBob3cgYmlnIHRoZSBwcmV2aWV3IHNob3VsZCBiZS4KIwlT
cXVpZCB3aWxsIG5vdCB1c2UgUHJldmlldyBpZiB0aGUgc2VydmVyIGRpZCBub3QgcmVxdWVzdCBv
bmUuCiMKIwlUbyBkaXNhYmxlIElDQVAgUHJldmlldyBmb3IgYWxsIElDQVAgc2VydmljZXMsIHJl
Z2FyZGxlc3Mgb2YKIwlpbmRpdmlkdWFsIElDQVAgc2VydmVyIE9QVElPTlMgcmVzcG9uc2VzLCBz
ZXQgdGhpcyBvcHRpb24gdG8gIm9mZiIuCiNFeGFtcGxlOgojaWNhcF9wcmV2aWV3X2VuYWJsZSBv
ZmYKI0RlZmF1bHQ6CiMgaWNhcF9wcmV2aWV3X2VuYWJsZSBvbgoKIyAgVEFHOiBpY2FwX3ByZXZp
ZXdfc2l6ZQojCVRoZSBkZWZhdWx0IHNpemUgb2YgcHJldmlldyBkYXRhIHRvIGJlIHNlbnQgdG8g
dGhlIElDQVAgc2VydmVyLgojCS0xIG1lYW5zIG5vIHByZXZpZXcuIFRoaXMgdmFsdWUgbWlnaHQg
YmUgb3ZlcndyaXR0ZW4gb24gYSBwZXIgc2VydmVyCiMJYmFzaXMgYnkgT1BUSU9OUyByZXF1ZXN0
cy4KI0RlZmF1bHQ6CiMgaWNhcF9wcmV2aWV3X3NpemUgLTEKCiMgIFRBRzogaWNhcF9kZWZhdWx0
X29wdGlvbnNfdHRsCiMJVGhlIGRlZmF1bHQgVFRMIHZhbHVlIGZvciBJQ0FQIE9QVElPTlMgcmVz
cG9uc2VzIHRoYXQgZG9uJ3QgaGF2ZQojCWFuIE9wdGlvbnMtVFRMIGhlYWRlci4KI0RlZmF1bHQ6
CiMgaWNhcF9kZWZhdWx0X29wdGlvbnNfdHRsIDYwCgojICBUQUc6IGljYXBfcGVyc2lzdGVudF9j
b25uZWN0aW9ucwlvbnxvZmYKIwlXaGV0aGVyIG9yIG5vdCBTcXVpZCBzaG91bGQgdXNlIHBlcnNp
c3RlbnQgY29ubmVjdGlvbnMgdG8KIwlhbiBJQ0FQIHNlcnZlci4KI0RlZmF1bHQ6CiMgaWNhcF9w
ZXJzaXN0ZW50X2Nvbm5lY3Rpb25zIG9uCgojICBUQUc6IGljYXBfc2VuZF9jbGllbnRfaXAJb258
b2ZmCiMJVGhpcyBhZGRzIHRoZSBoZWFkZXIgIlgtQ2xpZW50LUlQIiB0byBJQ0FQIHJlcXVlc3Rz
LgojRGVmYXVsdDoKIyBpY2FwX3NlbmRfY2xpZW50X2lwIG9mZgoKIyAgVEFHOiBpY2FwX3NlbmRf
Y2xpZW50X3VzZXJuYW1lCW9ufG9mZgojCVRoaXMgc2VuZHMgYXV0aGVudGljYXRlZCBIVFRQIGNs
aWVudCB1c2VybmFtZSAoaWYgYXZhaWxhYmxlKSB0bwojCXRoZSBJQ0FQIHNlcnZpY2UuIFRoZSB1
c2VybmFtZSB2YWx1ZSBpcyBlbmNvZGVkIGJhc2VkIG9uIHRoZQojCWljYXBfY2xpZW50X3VzZXJu
YW1lX2VuY29kZSBvcHRpb24gYW5kIGlzIHNlbnQgdXNpbmcgdGhlIGhlYWRlcgojCXNwZWNpZmll
ZCBieSB0aGUgaWNhcF9jbGllbnRfdXNlcm5hbWVfaGVhZGVyIG9wdGlvbi4KI0RlZmF1bHQ6CiMg
aWNhcF9zZW5kX2NsaWVudF91c2VybmFtZSBvZmYKCiMgIFRBRzogaWNhcF9jbGllbnRfdXNlcm5h
bWVfaGVhZGVyCiMJSUNBUCByZXF1ZXN0IGhlYWRlciBuYW1lIHRvIHVzZSBmb3Igc2VuZF9jbGll
bnRfdXNlcm5hbWUuCiNEZWZhdWx0OgojIGljYXBfY2xpZW50X3VzZXJuYW1lX2hlYWRlciBYLUNs
aWVudC1Vc2VybmFtZQoKIyAgVEFHOiBpY2FwX2NsaWVudF91c2VybmFtZV9lbmNvZGUJb258b2Zm
CiMJV2hldGhlciB0byBiYXNlNjQgZW5jb2RlIHRoZSBhdXRoZW50aWNhdGVkIGNsaWVudCB1c2Vy
bmFtZS4KI0RlZmF1bHQ6CiMgaWNhcF9jbGllbnRfdXNlcm5hbWVfZW5jb2RlIG9mZgoKIyAgVEFH
OiBpY2FwX3NlcnZpY2UKIwlEZWZpbmVzIGEgc2luZ2xlIElDQVAgc2VydmljZSB1c2luZyB0aGUg
Zm9sbG93aW5nIGZvcm1hdDoKIwojCWljYXBfc2VydmljZSBzZXJ2aWNlX25hbWUgdmVjdG9yaW5n
X3BvaW50IFtvcHRpb25zXSBzZXJ2aWNlX3VybAojCiMJc2VydmljZV9uYW1lOiBJRAojCQlhbiBv
cGFxdWUgaWRlbnRpZmllciB3aGljaCBtdXN0IGJlIHVuaXF1ZSBpbiBzcXVpZC5jb25mCiMKIwl2
ZWN0b3JpbmdfcG9pbnQ6IHJlcW1vZF9wcmVjYWNoZXxyZXFtb2RfcG9zdGNhY2hlfHJlc3Btb2Rf
cHJlY2FjaGV8cmVzcG1vZF9wb3N0Y2FjaGUKIwkJVGhpcyBzcGVjaWZpZXMgYXQgd2hpY2ggcG9p
bnQgb2YgdHJhbnNhY3Rpb24gcHJvY2Vzc2luZyB0aGUKIwkJSUNBUCBzZXJ2aWNlIHNob3VsZCBi
ZSBhY3RpdmF0ZWQuICpfcG9zdGNhY2hlIHZlY3RvcmluZyBwb2ludHMKIwkJYXJlIG5vdCB5ZXQg
c3VwcG9ydGVkLgojCiMJc2VydmljZV91cmw6IGljYXA6Ly9zZXJ2ZXJuYW1lOnBvcnQvc2Vydmlj
ZXBhdGgKIwkJSUNBUCBzZXJ2ZXIgYW5kIHNlcnZpY2UgbG9jYXRpb24uCiMKIwlJQ0FQIGRvZXMg
bm90IGFsbG93IGEgc2luZ2xlIHNlcnZpY2UgdG8gaGFuZGxlIGJvdGggUkVRTU9EIGFuZCBSRVNQ
TU9ECiMJdHJhbnNhY3Rpb25zLiBTcXVpZCBkb2VzIG5vdCBlbmZvcmNlIHRoYXQgcmVxdWlyZW1l
bnQuIFlvdSBjYW4gc3BlY2lmeQojCXNlcnZpY2VzIHdpdGggdGhlIHNhbWUgc2VydmljZV91cmwg
YW5kIGRpZmZlcmVudCB2ZWN0b3JpbmdfcG9pbnRzLiBZb3UKIwljYW4gZXZlbiBzcGVjaWZ5IG11
bHRpcGxlIGlkZW50aWNhbCBzZXJ2aWNlcyBhcyBsb25nIGFzIHRoZWlyCiMJc2VydmljZV9uYW1l
cyBkaWZmZXIuCiMKIwojCVNlcnZpY2Ugb3B0aW9ucyBhcmUgc2VwYXJhdGVkIGJ5IHdoaXRlIHNw
YWNlLiBJQ0FQIHNlcnZpY2VzIHN1cHBvcnQKIwl0aGUgZm9sbG93aW5nIG5hbWU9dmFsdWUgb3B0
aW9uczoKIwojCWJ5cGFzcz1vbnxvZmZ8MXwwCiMJCUlmIHNldCB0byAnb24nIG9yICcxJywgdGhl
IElDQVAgc2VydmljZSBpcyB0cmVhdGVkIGFzCiMJCW9wdGlvbmFsLiBJZiB0aGUgc2VydmljZSBj
YW5ub3QgYmUgcmVhY2hlZCBvciBtYWxmdW5jdGlvbnMsCiMJCVNxdWlkIHdpbGwgdHJ5IHRvIGln
bm9yZSBhbnkgZXJyb3JzIGFuZCBwcm9jZXNzIHRoZSBtZXNzYWdlIGFzCiMJCWlmIHRoZSBzZXJ2
aWNlIHdhcyBub3QgZW5hYmxlZC4gTm8gYWxsIElDQVAgZXJyb3JzIGNhbiBiZQojCQlieXBhc3Nl
ZC4gIElmIHNldCB0byAwLCB0aGUgSUNBUCBzZXJ2aWNlIGlzIHRyZWF0ZWQgYXMKIwkJZXNzZW50
aWFsIGFuZCBhbGwgSUNBUCBlcnJvcnMgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IgcGFnZQojCQly
ZXR1cm5lZCB0byB0aGUgSFRUUCBjbGllbnQuCiMKIwkJQnlwYXNzIGlzIG9mZiBieSBkZWZhdWx0
OiBzZXJ2aWNlcyBhcmUgdHJlYXRlZCBhcyBlc3NlbnRpYWwuCiMKIwlyb3V0aW5nPW9ufG9mZnwx
fDAKIwkJSWYgc2V0IHRvICdvbicgb3IgJzEnLCB0aGUgSUNBUCBzZXJ2aWNlIGlzIGFsbG93ZWQg
dG8KIwkJZHluYW1pY2FsbHkgY2hhbmdlIHRoZSBjdXJyZW50IG1lc3NhZ2UgYWRhcHRhdGlvbiBw
bGFuIGJ5CiMJCXJldHVybmluZyBhIGNoYWluIG9mIHNlcnZpY2VzIHRvIGJlIHVzZWQgbmV4dC4g
VGhlIHNlcnZpY2VzCiMJCWFyZSBzcGVjaWZpZWQgdXNpbmcgdGhlIFgtTmV4dC1TZXJ2aWNlcyBJ
Q0FQIHJlc3BvbnNlIGhlYWRlcgojCQl2YWx1ZSwgZm9ybWF0dGVkIGFzIGEgY29tbWEtc2VwYXJh
dGVkIGxpc3Qgb2Ygc2VydmljZSBuYW1lcy4KIwkJRWFjaCBuYW1lZCBzZXJ2aWNlIHNob3VsZCBi
ZSBjb25maWd1cmVkIGluIHNxdWlkLmNvbmYgYW5kCiMJCXNob3VsZCBoYXZlIHRoZSBzYW1lIG1l
dGhvZCBhbmQgdmVjdG9yaW5nIHBvaW50IGFzIHRoZSBjdXJyZW50CiMJCUlDQVAgdHJhbnNhY3Rp
b24uICBTZXJ2aWNlcyB2aW9sYXRpbmcgdGhlc2UgcnVsZXMgYXJlIGlnbm9yZWQuCiMJCUFuIGVt
cHR5IFgtTmV4dC1TZXJ2aWNlcyB2YWx1ZSByZXN1bHRzIGluIGFuIGVtcHR5IHBsYW4gd2hpY2gK
IwkJZW5kcyB0aGUgY3VycmVudCBhZGFwdGF0aW9uLiAKIwojCQlSb3V0aW5nIGlzIG5vdCBhbGxv
d2VkIGJ5IGRlZmF1bHQ6IHRoZSBJQ0FQIFgtTmV4dC1TZXJ2aWNlcwojCQlyZXNwb25zZSBoZWFk
ZXIgaXMgaWdub3JlZC4KIwojCWlwdjY9b258b2ZmCiMJCU9ubHkgaGFzIGVmZmVjdCBvbiBzcGxp
dC1zdGFjayBzeXN0ZW1zLiBUaGUgZGVmYXVsdCBvbiB0aG9zZSBzeXN0ZW1zCiMJCWlzIHRvIHVz
ZSBJUHY0LW9ubHkgY29ubmVjdGlvbnMuIFdoZW4gc2V0IHRvICdvbicgdGhpcyBvcHRpb24gd2ls
bAojCQltYWtlIFNxdWlkIHVzZSBJUHY2LW9ubHkgY29ubmVjdGlvbnMgdG8gY29udGFjdCB0aGlz
IElDQVAgc2VydmljZS4KIwojCU9sZGVyIGljYXBfc2VydmljZSBmb3JtYXQgd2l0aG91dCBvcHRp
b25hbCBuYW1lZCBwYXJhbWV0ZXJzIGlzCiMJZGVwcmVjYXRlZCBidXQgc3VwcG9ydGVkIGZvciBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5LgojCiNFeGFtcGxlOgojaWNhcF9zZXJ2aWNlIHN2Y0Jsb2Nr
ZXIgcmVxbW9kX3ByZWNhY2hlIGJ5cGFzcz0wIGljYXA6Ly9pY2FwMS5teWRvbWFpbi5uZXQ6MTM0
NC9yZXFtb2QKI2ljYXBfc2VydmljZSBzdmNMb2dnZXIgcmVxbW9kX3ByZWNhY2hlIHJvdXRpbmc9
b24gaWNhcDovL2ljYXAyLm15ZG9tYWluLm5ldDoxMzQ0L3Jlc3Btb2QKI0RlZmF1bHQ6CiMgbm9u
ZQoKIyAgVEFHOiBpY2FwX2NsYXNzCiMJVGhpcyBkZXByZWNhdGVkIG9wdGlvbiB3YXMgZG9jdW1l
bnRlZCB0byBkZWZpbmUgYW4gSUNBUCBzZXJ2aWNlCiMJY2hhaW4sIGV2ZW4gdGhvdWdoIGl0IGFj
dHVhbGx5IGRlZmluZWQgYSBzZXQgb2Ygc2ltaWxhciwgcmVkdW5kYW50CiMJc2VydmljZXMsIGFu
ZCB0aGUgY2hhaW5zIHdlcmUgbm90IHN1cHBvcnRlZC4gCiMKIwlUbyBkZWZpbmUgYSBzZXQgb2Yg
cmVkdW5kYW50IHNlcnZpY2VzLCBwbGVhc2UgdXNlIHRoZQojCWFkYXB0YXRpb25fc2VydmljZV9z
ZXQgZGlyZWN0aXZlLiBGb3Igc2VydmljZSBjaGFpbnMsIHVzZQojCWFkYXB0YXRpb25fc2Vydmlj
ZV9jaGFpbi4KI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBpY2FwX2FjY2VzcwojCVRoaXMgb3B0
aW9uIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgYWRhcHRhdGlvbl9hY2Nlc3MsIHdoaWNoCiMJ
aGFzIHRoZSBzYW1lIElDQVAgZnVuY3Rpb25hbGl0eSwgYnV0IGNvbWVzIHdpdGggYmV0dGVyCiMJ
ZG9jdW1lbnRhdGlvbiwgYW5kIGVDQVAgc3VwcG9ydC4KI0RlZmF1bHQ6CiMgbm9uZQoKIyBlQ0FQ
IE9QVElPTlMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAgVEFHOiBlY2FwX2VuYWJsZQlvbnxv
ZmYKIyBOb3RlOiBUaGlzIG9wdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBpZiBTcXVpZCBpcyByZWJ1
aWx0IHdpdGggdGhlCiMgICAgICAgLS1lbmFibGUtZWNhcCBvcHRpb24KIwojCUNvbnRyb2xzIHdo
ZXRoZXIgZUNBUCBzdXBwb3J0IGlzIGVuYWJsZWQuCiNEZWZhdWx0OgojIGVjYXBfZW5hYmxlIG9m
ZgoKIyAgVEFHOiBlY2FwX3NlcnZpY2UKIyBOb3RlOiBUaGlzIG9wdGlvbiBpcyBvbmx5IGF2YWls
YWJsZSBpZiBTcXVpZCBpcyByZWJ1aWx0IHdpdGggdGhlCiMgICAgICAgLS1lbmFibGUtZWNhcCBv
cHRpb24KIwojCURlZmluZXMgYSBzaW5nbGUgZUNBUCBzZXJ2aWNlCiMKIwllY2FwX3NlcnZpY2Ug
c2VydmljZW5hbWUgdmVjdG9yaW5nX3BvaW50IGJ5cGFzcyBzZXJ2aWNlX3VybAojCiMJdmVjdG9y
aW5nX3BvaW50ID0gcmVxbW9kX3ByZWNhY2hlfHJlcW1vZF9wb3N0Y2FjaGV8cmVzcG1vZF9wcmVj
YWNoZXxyZXNwbW9kX3Bvc3RjYWNoZQojCQlUaGlzIHNwZWNpZmllcyBhdCB3aGljaCBwb2ludCBv
ZiB0cmFuc2FjdGlvbiBwcm9jZXNzaW5nIHRoZQojCQllQ0FQIHNlcnZpY2Ugc2hvdWxkIGJlIGFj
dGl2YXRlZC4gKl9wb3N0Y2FjaGUgdmVjdG9yaW5nIHBvaW50cwojCQlhcmUgbm90IHlldCBzdXBw
b3J0ZWQuCiMJYnlwYXNzID0gMXwwCiMJCUlmIHNldCB0byAxLCB0aGUgZUNBUCBzZXJ2aWNlIGlz
IHRyZWF0ZWQgYXMgb3B0aW9uYWwuIElmIHRoZQojCQlzZXJ2aWNlIGNhbm5vdCBiZSByZWFjaGVk
IG9yIG1hbGZ1bmN0aW9ucywgU3F1aWQgd2lsbCB0cnkgdG8KIwkJaWdub3JlIGFueSBlcnJvcnMg
YW5kIHByb2Nlc3MgdGhlIG1lc3NhZ2UgYXMgaWYgdGhlIHNlcnZpY2UKIwkJd2FzIG5vdCBlbmFi
bGVkLiBObyBhbGwgZUNBUCBlcnJvcnMgY2FuIGJlIGJ5cGFzc2VkLgojCQlJZiBzZXQgdG8gMCwg
dGhlIGVDQVAgc2VydmljZSBpcyB0cmVhdGVkIGFzIGVzc2VudGlhbCBhbmQgYWxsCiMJCWVDQVAg
ZXJyb3JzIHdpbGwgcmVzdWx0IGluIGFuIGVycm9yIHBhZ2UgcmV0dXJuZWQgdG8gdGhlCiMJCUhU
VFAgY2xpZW50LgojCXNlcnZpY2VfdXJsID0gZWNhcDovL3ZlbmRvci9zZXJ2aWNlX25hbWU/Y3Vz
dG9tJmNnaT1zdHlsZSZwYXJhbWV0ZXJzPW9wdGlvbmFsCiMKI0V4YW1wbGU6CiNlY2FwX3NlcnZp
Y2Ugc2VydmljZV8xIHJlcW1vZF9wcmVjYWNoZSAwIGVjYXA6Ly9maWx0ZXJzLVItdXMvbGVha0Rl
dGVjdG9yP29uX2Vycm9yPWJsb2NrCiNlY2FwX3NlcnZpY2Ugc2VydmljZV8yIHJlc3Btb2RfcHJl
Y2FjaGUgMSBpY2FwOi8vZmlsdGVycy1SLXVzL3ZpcnVzRmlsdGVyP2NvbmZpZz0vZXRjL3ZmLmNm
ZwojRGVmYXVsdDoKIyBub25lCgojICBUQUc6IGxvYWRhYmxlX21vZHVsZXMKIwlJbnN0cnVjdHMg
U3F1aWQgdG8gbG9hZCB0aGUgc3BlY2lmaWVkIGR5bmFtaWMgbW9kdWxlKHMpIG9yIGFjdGl2YXRl
CiMJcHJlbG9hZGVkIG1vZHVsZShzKS4KI0V4YW1wbGU6CiNsb2FkYWJsZV9tb2R1bGVzIC91c3Iv
bGliL01pbmltYWxBZGFwdGVyLnNvCiNEZWZhdWx0OgojIG5vbmUKCiMgTUVTU0FHRSBBREFQVEFU
SU9OIE9QVElPTlMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKIyAgVEFHOiBhZGFwdGF0aW9uX3Nl
cnZpY2Vfc2V0CiMKIwlDb25maWd1cmVzIGFuIG9yZGVyZWQgc2V0IG9mIHNpbWlsYXIsIHJlZHVu
ZGFudCBzZXJ2aWNlcy4gVGhpcyBpcwojCXVzZWZ1bCB3aGVuIGhvdCBzdGFuZGJ5IG9yIGJhY2t1
cCBhZGFwdGF0aW9uIHNlcnZlcnMgYXJlIGF2YWlsYWJsZS4KIwojCSAgICBhZGFwdGF0aW9uX3Nl
cnZpY2Vfc2V0IHNldF9uYW1lIHNlcnZpY2VfbmFtZTEgc2VydmljZV9uYW1lMiAuLi4KIwojIAlU
aGUgbmFtZWQgc2VydmljZXMgYXJlIHVzZWQgaW4gdGhlIHNldCBkZWNsYXJhdGlvbiBvcmRlci4g
VGhlIGZpcnN0CiMJYXBwbGljYWJsZSBhZGFwdGF0aW9uIHNlcnZpY2UgZnJvbSB0aGUgc2V0IGlz
IHVzZWQgZmlyc3QuIFRoZSBuZXh0CiMJYXBwbGljYWJsZSBzZXJ2aWNlIGlzIHRyaWVkIGlmIGFu
ZCBvbmx5IGlmIHRoZSB0cmFuc2FjdGlvbiB3aXRoIHRoZQojCXByZXZpb3VzIHNlcnZpY2UgZmFp
bHMgYW5kIHRoZSBtZXNzYWdlIHdhaXRpbmcgdG8gYmUgYWRhcHRlZCBpcyBzdGlsbAojCWludGFj
dC4KIwojCVdoZW4gYWRhcHRhdGlvbiBzdGFydHMsIGJyb2tlbiBzZXJ2aWNlcyBhcmUgaWdub3Jl
ZCBhcyBpZiB0aGV5IHdlcmUKIwlub3QgYSBwYXJ0IG9mIHRoZSBzZXQuIEEgYnJva2VuIHNlcnZp
Y2UgaXMgYSBkb3duIG9wdGlvbmFsIHNlcnZpY2UuCiMKIwlUaGUgc2VydmljZXMgaW4gYSBzZXQg
bXVzdCBiZSBhdHRhY2hlZCB0byB0aGUgc2FtZSB2ZWN0b3JpbmcgcG9pbnQKIwkoZS5nLiwgcHJl
LWNhY2hlKSBhbmQgdXNlIHRoZSBzYW1lIGFkYXB0YXRpb24gbWV0aG9kIChlLmcuLCBSRVFNT0Qp
LgojCiMJSWYgYWxsIHNlcnZpY2VzIGluIGEgc2V0IGFyZSBvcHRpb25hbCB0aGVuIGFkYXB0YXRp
b24gZmFpbHVyZXMgYXJlCiMJYnlwYXNzYWJsZS4gSWYgYWxsIHNlcnZpY2VzIGluIHRoZSBzZXQg
YXJlIGVzc2VudGlhbCwgdGhlbiBhCiMJdHJhbnNhY3Rpb24gZmFpbHVyZSB3aXRoIG9uZSBzZXJ2
aWNlIG1heSBzdGlsbCBiZSByZXRyaWVkIHVzaW5nCiMJYW5vdGhlciBzZXJ2aWNlIGZyb20gdGhl
IHNldCwgYnV0IHdoZW4gYWxsIHNlcnZpY2VzIGZhaWwsIHRoZSBtYXN0ZXIKIwl0cmFuc2FjdGlv
biBmYWlscyBhcyB3ZWxsLgojCiMJQSBzZXQgbWF5IGNvbnRhaW4gYSBtaXggb2Ygb3B0aW9uYWwg
YW5kIGVzc2VudGlhbCBzZXJ2aWNlcywgYnV0IHRoYXQKIwlpcyBsaWtlbHkgdG8gbGVhZCB0byBz
dXJwcmlzaW5nIHJlc3VsdHMgYmVjYXVzZSBicm9rZW4gc2VydmljZXMgYmVjb21lCiMJaWdub3Jl
ZCAoc2VlIGFib3ZlKSwgbWFraW5nIHByZXZpb3VzbHkgYnlwYXNzYWJsZSBmYWlsdXJlcyBmYXRh
bC4KIwlUZWNobmljYWxseSwgaXQgaXMgdGhlIGJ5cGFzc2FiaWxpdHkgb2YgdGhlIGxhc3QgZmFp
bGVkIHNlcnZpY2UgdGhhdAojCW1hdHRlcnMuCiMKIwlTZWUgYWxzbzogYWRhcHRhdGlvbl9hY2Nl
c3MgYWRhcHRhdGlvbl9zZXJ2aWNlX2NoYWluCiMKI0V4YW1wbGU6CiNhZGFwdGF0aW9uX3NlcnZp
Y2Vfc2V0IHN2Y0Jsb2NrZXIgdXJsRmlsdGVyUHJpbWFyeSB1cmxGaWx0ZXJCYWNrdXAKI2FkYXB0
YXRpb24gc2VydmljZV9zZXQgc3ZjTG9nZ2VyIGxvZ2dlckxvY2FsIGxvZ2dlclJlbW90ZQojRGVm
YXVsdDoKIyBub25lCgojICBUQUc6IGFkYXB0YXRpb25fc2VydmljZV9jaGFpbgojCiMJQ29uZmln
dXJlcyBhIGxpc3Qgb2YgY29tcGxlbWVudGFyeSBzZXJ2aWNlcyB0aGF0IHdpbGwgYmUgYXBwbGll
ZAojCW9uZS1ieS1vbmUsIGZvcm1pbmcgYW4gYWRhcHRhdGlvbiBjaGFpbiBvciBwaXBlbGluZS4g
VGhpcyBpcyB1c2VmdWwKIwl3aGVuIFNxdWlkIG11c3QgcGVyZm9ybSBkaWZmZXJlbnQgYWRhcHRh
dGlvbnMgb24gdGhlIHNhbWUgbWVzc2FnZS4KIwojCSAgICBhZGFwdGF0aW9uX3NlcnZpY2VfY2hh
aW4gY2hhaW5fbmFtZSBzZXJ2aWNlX25hbWUxIHN2Y19uYW1lMiAuLi4KIwojIAlUaGUgbmFtZWQg
c2VydmljZXMgYXJlIHVzZWQgaW4gdGhlIGNoYWluIGRlY2xhcmF0aW9uIG9yZGVyLiBUaGUgZmly
c3QKIwlhcHBsaWNhYmxlIGFkYXB0YXRpb24gc2VydmljZSBmcm9tIHRoZSBjaGFpbiBpcyB1c2Vk
IGZpcnN0LiBUaGUgbmV4dAojCWFwcGxpY2FibGUgc2VydmljZSBpcyBhcHBsaWVkIHRvIHRoZSBz
dWNjZXNzZnVsIGFkYXB0YXRpb24gcmVzdWx0cyBvZgojCXRoZSBwcmV2aW91cyBzZXJ2aWNlIGlu
IHRoZSBjaGFpbi4KIwojCVdoZW4gYWRhcHRhdGlvbiBzdGFydHMsIGJyb2tlbiBzZXJ2aWNlcyBh
cmUgaWdub3JlZCBhcyBpZiB0aGV5IHdlcmUKIwlub3QgYSBwYXJ0IG9mIHRoZSBjaGFpbi4gQSBi
cm9rZW4gc2VydmljZSBpcyBhIGRvd24gb3B0aW9uYWwgc2VydmljZS4KIwojCVJlcXVlc3Qgc2F0
aXNmYWN0aW9uIHRlcm1pbmF0ZXMgdGhlIGFkYXB0YXRpb24gY2hhaW4gYmVjYXVzZSBTcXVpZAoj
CWRvZXMgbm90IGN1cnJlbnRseSBhbGxvdyBkZWNsYXJhdGlvbiBvZiBSRVNQTU9EIHNlcnZpY2Vz
IGF0IHRoZQojCSJyZXFtb2RfcHJlY2FjaGUiIHZlY3RvcmluZyBwb2ludCAoc2VlIGljYXBfc2Vy
dmljZSBvciBlY2FwX3NlcnZpY2UpLgojCiMJVGhlIHNlcnZpY2VzIGluIGEgY2hhaW4gbXVzdCBi
ZSBhdHRhY2hlZCB0byB0aGUgc2FtZSB2ZWN0b3JpbmcgcG9pbnQKIwkoZS5nLiwgcHJlLWNhY2hl
KSBhbmQgdXNlIHRoZSBzYW1lIGFkYXB0YXRpb24gbWV0aG9kIChlLmcuLCBSRVFNT0QpLgojCiMJ
QSBjaGFpbiBtYXkgY29udGFpbiBhIG1peCBvZiBvcHRpb25hbCBhbmQgZXNzZW50aWFsIHNlcnZp
Y2VzLiBJZiBhbgojCWVzc2VudGlhbCBhZGFwdGF0aW9uIGZhaWxzIChvciB0aGUgZmFpbHVyZSBj
YW5ub3QgYmUgYnlwYXNzZWQgZm9yCiMJb3RoZXIgcmVhc29ucyksIHRoZSBtYXN0ZXIgdHJhbnNh
Y3Rpb24gZmFpbHMuIE90aGVyd2lzZSwgdGhlIGZhaWx1cmUKIwlpcyBieXBhc3NlZCBhcyBpZiB0
aGUgZmFpbGVkIGFkYXB0YXRpb24gc2VydmljZSB3YXMgbm90IGluIHRoZSBjaGFpbi4KIwojCVNl
ZSBhbHNvOiBhZGFwdGF0aW9uX2FjY2VzcyBhZGFwdGF0aW9uX3NlcnZpY2Vfc2V0CiMKI0V4YW1w
bGU6CiNhZGFwdGF0aW9uX3NlcnZpY2VfY2hhaW4gc3ZjUmVxdWVzdCByZXF1ZXN0TG9nZ2VyIHVy
bEZpbHRlciBsZWFrRGV0ZWN0b3IKI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBhZGFwdGF0aW9u
X2FjY2VzcwojCVNlbmRzIGFuIEhUVFAgdHJhbnNhY3Rpb24gdG8gYW4gSUNBUCBvciBlQ0FQIGFk
YXB0YXRpb24Jc2VydmljZS4KIwojCWFkYXB0YXRpb25fYWNjZXNzIHNlcnZpY2VfbmFtZSBhbGxv
d3xkZW55IFshXWFjbG5hbWUuLi4KIwlhZGFwdGF0aW9uX2FjY2VzcyBzZXRfbmFtZSAgICAgYWxs
b3d8ZGVueSBbIV1hY2xuYW1lLi4uCiMKIwlBdCBlYWNoIHN1cHBvcnRlZCB2ZWN0b3JpbmcgcG9p
bnQsIHRoZSBhZGFwdGF0aW9uX2FjY2VzcwojCXN0YXRlbWVudHMgYXJlIHByb2Nlc3NlZCBpbiB0
aGUgb3JkZXIgdGhleSBhcHBlYXIgaW4gdGhpcwojCWNvbmZpZ3VyYXRpb24gZmlsZS4gU3RhdGVt
ZW50cyBwb2ludGluZyB0byB0aGUgZm9sbG93aW5nIHNlcnZpY2VzCiMJYXJlIGlnbm9yZWQgKGku
ZS4sIHNraXBwZWQgd2l0aG91dCBjaGVja2luZyB0aGVpciBBQ0wpOgojCiMJICAgIC0gc2Vydmlj
ZXMgc2VydmluZyBkaWZmZXJlbnQgdmVjdG9yaW5nIHBvaW50cwojCSAgICAtICJicm9rZW4tYnV0
LWJ5cGFzc2FibGUiIHNlcnZpY2VzCiMJICAgIC0gInVwIiBzZXJ2aWNlcyBjb25maWd1cmVkIHRv
IGlnbm9yZSBzdWNoIHRyYW5zYWN0aW9ucwojICAgICAgICAgICAgICAoZS5nLiwgYmFzZWQgb24g
dGhlIElDQVAgVHJhbnNmZXItSWdub3JlIGhlYWRlcikuCiMKIyAgICAgICAgV2hlbiBhIHNldF9u
YW1lIGlzIHVzZWQsIGFsbCBzZXJ2aWNlcyBpbiB0aGUgc2V0IGFyZSBjaGVja2VkCiMJdXNpbmcg
dGhlIHNhbWUgcnVsZXMsIHRvIGZpbmQgdGhlIGZpcnN0IGFwcGxpY2FibGUgb25lLiBTZWUKIwlh
ZGFwdGF0aW9uX3NlcnZpY2Vfc2V0IGZvciBkZXRhaWxzLgojCiMJSWYgYW4gYWNjZXNzIGxpc3Qg
aXMgY2hlY2tlZCBhbmQgdGhlcmUgaXMgYSBtYXRjaCwgdGhlCiMJcHJvY2Vzc2luZyBzdG9wczog
Rm9yIGFuICJhbGxvdyIgcnVsZSwgdGhlIGNvcnJlc3BvbmRpbmcKIwlhZGFwdGF0aW9uIHNlcnZp
Y2UgaXMgdXNlZCBmb3IgdGhlIHRyYW5zYWN0aW9uLiBGb3IgYSAiZGVueSIKIwlydWxlLCBubyBh
ZGFwdGF0aW9uIHNlcnZpY2UgaXMgYWN0aXZhdGVkLgojCiMJSXQgaXMgY3VycmVudGx5IG5vdCBw
b3NzaWJsZSB0byBhcHBseSBtb3JlIHRoYW4gb25lIGFkYXB0YXRpb24KIwlzZXJ2aWNlIGF0IHRo
ZSBzYW1lIHZlY3RvcmluZyBwb2ludCB0byB0aGUgc2FtZSBIVFRQIHRyYW5zYWN0aW9uLgojCiMg
ICAgICAgIFNlZSBhbHNvOiBpY2FwX3NlcnZpY2UgYW5kIGVjYXBfc2VydmljZQojCiNFeGFtcGxl
OgojYWRhcHRhdGlvbl9hY2Nlc3Mgc2VydmljZV8xIGFsbG93IGFsbAojRGVmYXVsdDoKIyBub25l
CgojICBUQUc6IGFkYXB0YXRpb25fc2VydmljZV9pdGVyYXRpb25fbGltaXQKIwlMaW1pdHMgdGhl
IG51bWJlciBvZiBpdGVyYXRpb25zIGFsbG93ZWQgd2hlbiBhcHBseWluZyBhZGFwdGF0aW9uCiMJ
c2VydmljZXMgdG8gYSBtZXNzYWdlLiBJZiB5b3VyIGxvbmdlc3QgYWRhcHRhdGlvbiBzZXQgb3Ig
Y2hhaW4KIwltYXkgaGF2ZSBtb3JlIHRoYW4gMTYgc2VydmljZXMsIGluY3JlYXNlIHRoZSBsaW1p
dCBiZXlvbmQgaXRzCiMJZGVmYXVsdCB2YWx1ZSBvZiAxNi4gSWYgZGV0ZWN0aW5nIGluZmluaXRl
IGl0ZXJhdGlvbiBsb29wcyBzb29uZXIKIwlpcyBjcml0aWNhbCwgbWFrZSB0aGUgaXRlcmF0aW9u
IGxpbWl0IG1hdGNoIHRoZSBhY3R1YWwgbnVtYmVyCiMJb2Ygc2VydmljZXMgaW4geW91ciBsb25n
ZXN0IGFkYXB0YXRpb24gc2V0IG9yIGNoYWluLgojCiMJSW5maW5pdGUgYWRhcHRhdGlvbiBsb29w
cyBhcmUgbW9zdCBsaWtlbHkgd2l0aCByb3V0aW5nIHNlcnZpY2VzLgojCiMJU2VlIGFsc286IGlj
YXBfc2VydmljZSByb3V0aW5nPTEKI0RlZmF1bHQ6CiMgYWRhcHRhdGlvbl9zZXJ2aWNlX2l0ZXJh
dGlvbl9saW1pdCAxNgoKIyAgVEFHOiBhZGFwdGF0aW9uX21hc3Rlcnhfc2hhcmVkX25hbWVzCiMJ
Rm9yIGVhY2ggbWFzdGVyIHRyYW5zYWN0aW9uIChpLmUuLCB0aGUgSFRUUCByZXF1ZXN0IGFuZCBy
ZXNwb25zZQojCXNlcXVlbmNlLCBpbmNsdWRpbmcgYWxsIHJlbGF0ZWQgSUNBUCBhbmQgZUNBUCBl
eGNoYW5nZXMpLCBTcXVpZAojCW1haW50YWlucyBhIHRhYmxlIG9mIG1ldGFkYXRhLiBUaGUgdGFi
bGUgZW50cmllcyBhcmUgKG5hbWUsIHZhbHVlKQojCXBhaXJzIHNoYXJlZCBhbW9uZyBlQ0FQIGFu
ZCBJQ0FQIGV4Y2hhbmdlcy4gVGhlIHRhYmxlIGlzIGRlc3Ryb3llZAojCXdpdGggdGhlIG1hc3Rl
ciB0cmFuc2FjdGlvbi4KIwojCVRoaXMgb3B0aW9uIHNwZWNpZmllcyB0aGUgdGFibGUgZW50cnkg
bmFtZXMgdGhhdCBTcXVpZCBtdXN0IGFjY2VwdAojCWZyb20gYW5kIGZvcndhcmQgdG8gdGhlIGFk
YXB0YXRpb24gdHJhbnNhY3Rpb25zLgojCiMJQW4gSUNBUCBSRVFNT0Qgb3IgUkVTUE1PRCB0cmFu
c2FjdGlvbiBtYXkgc2V0IGFuIGVudHJ5IGluIHRoZSAKIwlzaGFyZWQgdGFibGUgYnkgcmV0dXJu
aW5nIGFuIElDQVAgaGVhZGVyIGZpZWxkIHdpdGggYSBuYW1lIAojCXNwZWNpZmllZCBpbiBhZGFw
dGF0aW9uX21hc3Rlcnhfc2hhcmVkX25hbWVzLiBTcXVpZCB3aWxsIHN0b3JlIAojCWFuZCBmb3J3
YXJkIHRoYXQgSUNBUCBoZWFkZXIgZmllbGQgdG8gc3Vic2VxdWVudCBJQ0FQIAojCXRyYW5zYWN0
aW9ucyB3aXRoaW4gdGhlIHNhbWUgbWFzdGVyIHRyYW5zYWN0aW9uIHNjb3BlLgojCiMJT25seSBv
bmUgc2hhcmVkIGVudHJ5IG5hbWUgaXMgc3VwcG9ydGVkIGF0IHRoaXMgdGltZS4KIwojRXhhbXBs
ZToKIyMgc2hhcmUgYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24gYW1vbmcgSUNBUCBzZXJ2aWNl
cwojYWRhcHRhdGlvbl9tYXN0ZXJ4X3NoYXJlZF9uYW1lcyBYLVN1YnNjcmliZXItSUQKI0RlZmF1
bHQ6CiMgbm9uZQoKIyAgVEFHOiBpY2FwX3JldHJ5CiMJVGhpcyBBQ0wgZGV0ZXJtaW5lcyB3aGlj
aCByZXRyaWFibGUgSUNBUCB0cmFuc2FjdGlvbnMgYXJlCiMJcmV0cmllZC4gVHJhbnNhY3Rpb25z
IHRoYXQgcmVjZWl2ZWQgYSBjb21wbGV0ZSBJQ0FQIHJlc3BvbnNlCiMJYW5kIGRpZCBub3QgaGF2
ZSB0byBjb25zdW1lIG9yIHByb2R1Y2UgSFRUUCBib2RpZXMgdG8gcmVjZWl2ZQojCXRoYXQgcmVz
cG9uc2UgYXJlIHVzdWFsbHkgcmV0cmlhYmxlLgojCiMJaWNhcF9yZXRyeSBhbGxvd3xkZW55IFsh
XWFjbG5hbWUgLi4uCiMKIwlTcXVpZCBhdXRvbWF0aWNhbGx5IHJldHJpZXMgc29tZSBJQ0FQIEkv
TyB0aW1lb3V0cyBhbmQgZXJyb3JzCiMJZHVlIHRvIHBlcnNpc3RlbnQgY29ubmVjdGlvbiByYWNl
IGNvbmRpdGlvbnMuCiMKIwlTZWUgYWxzbzogaWNhcF9yZXRyeV9saW1pdAojRGVmYXVsdDoKIyBp
Y2FwX3JldHJ5IGRlbnkgYWxsCgojICBUQUc6IGljYXBfcmV0cnlfbGltaXQKIwlMaW1pdHMgdGhl
IG51bWJlciBvZiByZXRyaWVzIGFsbG93ZWQuIFdoZW4gc2V0IHRvIHplcm8gKGRlZmF1bHQpLAoj
CW5vIHJldHJpZXMgYXJlIGFsbG93ZWQuCiMKIwlDb21tdW5pY2F0aW9uIGVycm9ycyBkdWUgdG8g
cGVyc2lzdGVudCBjb25uZWN0aW9uIHJhY2UKIwljb25kaXRpb25zIGFyZSB1bmF2b2lkYWJsZSwg
YXV0b21hdGljYWxseSByZXRyaWVkLCBhbmQgZG8gbm90CiMJY291bnQgYWdhaW5zdCB0aGlzIGxp
bWl0LgojCiMJU2VlIGFsc286IGljYXBfcmV0cnkKI0RlZmF1bHQ6CiMgaWNhcF9yZXRyeV9saW1p
dCAwCgojIEROUyBPUFRJT05TCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgIFRBRzogY2hlY2tf
aG9zdG5hbWVzCiMJRm9yIHNlY3VyaXR5IGFuZCBzdGFiaWxpdHkgcmVhc29ucyBTcXVpZCBjYW4g
Y2hlY2sKIwlob3N0bmFtZXMgZm9yIEludGVybmV0IHN0YW5kYXJkIFJGQyBjb21wbGlhbmNlLiBJ
ZiB5b3Ugd2FudAojCVNxdWlkIHRvIHBlcmZvcm0gdGhlc2UgY2hlY2tzIHR1cm4gdGhpcyBkaXJl
Y3RpdmUgb24uCiNEZWZhdWx0OgojIGNoZWNrX2hvc3RuYW1lcyBvZmYKCiMgIFRBRzogYWxsb3df
dW5kZXJzY29yZQojCVVuZGVyc2NvcmUgY2hhcmFjdGVycyBpcyBub3Qgc3RyaWN0bHkgYWxsb3dl
ZCBpbiBJbnRlcm5ldCBob3N0bmFtZXMKIwlidXQgbmV2ZXJ0aGVsZXNzIHVzZWQgYnkgbWFueSBz
aXRlcy4gU2V0IHRoaXMgdG8gb2ZmIGlmIHlvdSB3YW50CiMJU3F1aWQgdG8gYmUgc3RyaWN0IGFi
b3V0IHRoZSBzdGFuZGFyZC4KIwlUaGlzIGNoZWNrIGlzIHBlcmZvcm1lZCBvbmx5IHdoZW4gY2hl
Y2tfaG9zdG5hbWVzIGlzIHNldCB0byBvbi4KI0RlZmF1bHQ6CiMgYWxsb3dfdW5kZXJzY29yZSBv
bgoKIyAgVEFHOiBjYWNoZV9kbnNfcHJvZ3JhbQojIE5vdGU6IFRoaXMgb3B0aW9uIGlzIG9ubHkg
YXZhaWxhYmxlIGlmIFNxdWlkIGlzIHJlYnVpbHQgd2l0aCB0aGUKIyAgICAgICAtLWRpc2FibGUt
aW50ZXJuYWwtZG5zIG9wdGlvbgojCiMJU3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgdGhlIGV4ZWN1
dGFibGUgZm9yIGRuc2xvb2t1cCBwcm9jZXNzLgojRGVmYXVsdDoKIyBjYWNoZV9kbnNfcHJvZ3Jh
bSAvdXNyL2xpYi9zcXVpZC9kbnNzZXJ2ZXIKCiMgIFRBRzogZG5zX2NoaWxkcmVuCiMgTm90ZTog
VGhpcyBvcHRpb24gaXMgb25seSBhdmFpbGFibGUgaWYgU3F1aWQgaXMgcmVidWlsdCB3aXRoIHRo
ZQojICAgICAgIC0tZGlzYWJsZS1pbnRlcm5hbC1kbnMgb3B0aW9uCiMKIwlUaGUgbnVtYmVyIG9m
IHByb2Nlc3NlcyBzcGF3biB0byBzZXJ2aWNlIEROUyBuYW1lIGxvb2t1cHMuCiMJRm9yIGhlYXZp
bHkgbG9hZGVkIGNhY2hlcyBvbiBsYXJnZSBzZXJ2ZXJzLCB5b3Ugc2hvdWxkCiMJcHJvYmFibHkg
aW5jcmVhc2UgdGhpcyB2YWx1ZSB0byBhdCBsZWFzdCAxMC4gIFRoZSBtYXhpbXVtCiMJaXMgMzIu
ICBUaGUgZGVmYXVsdCBpcyA1LgojCiMJWW91IG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgZG5zc2Vy
dmVyIHByb2Nlc3MuCiNEZWZhdWx0OgojIGRuc19jaGlsZHJlbiA1CgojICBUQUc6IGRuc19yZXRy
YW5zbWl0X2ludGVydmFsCiMJSW5pdGlhbCByZXRyYW5zbWl0IGludGVydmFsIGZvciBETlMgcXVl
cmllcy4gVGhlIGludGVydmFsIGlzCiMJZG91YmxlZCBlYWNoIHRpbWUgYWxsIGNvbmZpZ3VyZWQg
RE5TIHNlcnZlcnMgaGF2ZSBiZWVuIHRyaWVkLgojCiNEZWZhdWx0OgojIGRuc19yZXRyYW5zbWl0
X2ludGVydmFsIDUgc2Vjb25kcwoKIyAgVEFHOiBkbnNfdGltZW91dAojCUROUyBRdWVyeSB0aW1l
b3V0LiBJZiBubyByZXNwb25zZSBpcyByZWNlaXZlZCB0byBhIEROUyBxdWVyeQojCXdpdGhpbiB0
aGlzIHRpbWUgYWxsIEROUyBzZXJ2ZXJzIGZvciB0aGUgcXVlcmllZCBkb21haW4KIwlhcmUgYXNz
dW1lZCB0byBiZSB1bmF2YWlsYWJsZS4KI0RlZmF1bHQ6CiMgZG5zX3RpbWVvdXQgMiBtaW51dGVz
CgojICBUQUc6IGRuc19kZWZuYW1lcwlvbnxvZmYKIwlOb3JtYWxseSB0aGUgUkVTX0RFRk5BTUVT
IHJlc29sdmVyIG9wdGlvbiBpcyBkaXNhYmxlZAojCShzZWUgcmVzX2luaXQoMykpLiAgVGhpcyBw
cmV2ZW50cyBjYWNoZXMgaW4gYSBoaWVyYXJjaHkKIwlmcm9tIGludGVycHJldGluZyBzaW5nbGUt
Y29tcG9uZW50IGhvc3RuYW1lcyBsb2NhbGx5LiAgVG8gYWxsb3cKIwlTcXVpZCB0byBoYW5kbGUg
c2luZ2xlLWNvbXBvbmVudCBuYW1lcywgZW5hYmxlIHRoaXMgb3B0aW9uLgojRGVmYXVsdDoKIyBk
bnNfZGVmbmFtZXMgb2ZmCgojICBUQUc6IGRuc19uYW1lc2VydmVycwojCVVzZSB0aGlzIGlmIHlv
dSB3YW50IHRvIHNwZWNpZnkgYSBsaXN0IG9mIEROUyBuYW1lIHNlcnZlcnMKIwkoSVAgYWRkcmVz
c2VzKSB0byB1c2UgaW5zdGVhZCBvZiB0aG9zZSBnaXZlbiBpbiB5b3VyCiMJL2V0Yy9yZXNvbHYu
Y29uZiBmaWxlLgojCU9uIFdpbmRvd3MgcGxhdGZvcm1zLCBpZiBubyB2YWx1ZSBpcyBzcGVjaWZp
ZWQgaGVyZSBvciBpbgojCXRoZSAvZXRjL3Jlc29sdi5jb25mIGZpbGUsIHRoZSBsaXN0IG9mIERO
UyBuYW1lIHNlcnZlcnMgYXJlCiMJdGFrZW4gZnJvbSB0aGUgV2luZG93cyByZWdpc3RyeSwgYm90
aCBzdGF0aWMgYW5kIGR5bmFtaWMgREhDUAojCWNvbmZpZ3VyYXRpb25zIGFyZSBzdXBwb3J0ZWQu
CiMKIwlFeGFtcGxlOiBkbnNfbmFtZXNlcnZlcnMgMTAuMC4wLjEgMTkyLjE3Mi4wLjQKI0RlZmF1
bHQ6CiMgbm9uZQoKIyAgVEFHOiBob3N0c19maWxlCiMJTG9jYXRpb24gb2YgdGhlIGhvc3QtbG9j
YWwgSVAgbmFtZS1hZGRyZXNzIGFzc29jaWF0aW9ucwojCWRhdGFiYXNlLiBNb3N0IE9wZXJhdGlu
ZyBTeXN0ZW1zIGhhdmUgc3VjaCBhIGZpbGUgb24gZGlmZmVyZW50CiMJZGVmYXVsdCBsb2NhdGlv
bnM6CiMJLSBVbipYICYgTGludXg6ICAgIC9ldGMvaG9zdHMKIwktIFdpbmRvd3MgTlQvMjAwMDog
JVN5c3RlbVJvb3QlXHN5c3RlbTMyXGRyaXZlcnNcZXRjXGhvc3RzCiMJCQkgICAoJVN5c3RlbVJv
b3QlIHZhbHVlIGluc3RhbGwgZGVmYXVsdCBpcyBjOlx3aW5udCkKIwktIFdpbmRvd3MgWFAvMjAw
MzogJVN5c3RlbVJvb3QlXHN5c3RlbTMyXGRyaXZlcnNcZXRjXGhvc3RzCiMJCQkgICAoJVN5c3Rl
bVJvb3QlIHZhbHVlIGluc3RhbGwgZGVmYXVsdCBpcyBjOlx3aW5kb3dzKQojCS0gV2luZG93cyA5
eC9NZTogICAld2luZGlyJVxob3N0cwojCQkJICAgKCV3aW5kaXIlIHZhbHVlIGlzIHVzdWFsbHkg
Yzpcd2luZG93cykKIwktIEN5Z3dpbjoJICAgL2V0Yy9ob3N0cwojCiMJVGhlIGZpbGUgY29udGFp
bnMgbmV3bGluZS1zZXBhcmF0ZWQgZGVmaW5pdGlvbnMsIGluIHRoZQojCWZvcm0gaXBfYWRkcmVz
c19pbl9kb3R0ZWRfZm9ybSBuYW1lIFtuYW1lIC4uLl0gbmFtZXMgYXJlCiMJd2hpdGVzcGFjZS1z
ZXBhcmF0ZWQuIExpbmVzIGJlZ2lubmluZyB3aXRoIGFuIGhhc2ggKCMpCiMJY2hhcmFjdGVyIGFy
ZSBjb21tZW50cy4KIwojCVRoZSBmaWxlIGlzIGNoZWNrZWQgYXQgc3RhcnR1cCBhbmQgdXBvbiBj
b25maWd1cmF0aW9uLgojCUlmIHNldCB0byAnbm9uZScsIGl0IHdvbid0IGJlIGNoZWNrZWQuCiMJ
SWYgYXBwZW5kX2RvbWFpbiBpcyB1c2VkLCB0aGF0IGRvbWFpbiB3aWxsIGJlIGFkZGVkIHRvCiMJ
ZG9tYWluLWxvY2FsIChpLmUuIG5vdCBjb250YWluaW5nIGFueSBkb3QgY2hhcmFjdGVyKSBob3N0
CiMJZGVmaW5pdGlvbnMuCiNEZWZhdWx0OgojIGhvc3RzX2ZpbGUgL2V0Yy9ob3N0cwoKIyAgVEFH
OiBhcHBlbmRfZG9tYWluCiMJQXBwZW5kcyBsb2NhbCBkb21haW4gbmFtZSB0byBob3N0bmFtZXMg
d2l0aG91dCBhbnkgZG90cyBpbgojCXRoZW0uICBhcHBlbmRfZG9tYWluIG11c3QgYmVnaW4gd2l0
aCBhIHBlcmlvZC4KIwojCUJlIHdhcm5lZCB0aGVyZSBhcmUgbm93IEludGVybmV0IG5hbWVzIHdp
dGggbm8gZG90cyBpbgojCXRoZW0gdXNpbmcgb25seSB0b3AtZG9tYWluIG5hbWVzLCBzbyBzZXR0
aW5nIHRoaXMgbWF5CiMJY2F1c2Ugc29tZSBJbnRlcm5ldCBzaXRlcyB0byBiZWNvbWUgdW5hdmFp
bGFibGUuCiMKI0V4YW1wbGU6CiMgYXBwZW5kX2RvbWFpbiAueW91cmRvbWFpbi5jb20KI0RlZmF1
bHQ6CiMgbm9uZQoKIyAgVEFHOiBpZ25vcmVfdW5rbm93bl9uYW1lc2VydmVycwojCUJ5IGRlZmF1
bHQgU3F1aWQgY2hlY2tzIHRoYXQgRE5TIHJlc3BvbnNlcyBhcmUgcmVjZWl2ZWQKIwlmcm9tIHRo
ZSBzYW1lIElQIGFkZHJlc3NlcyB0aGV5IGFyZSBzZW50IHRvLiAgSWYgdGhleQojCWRvbid0IG1h
dGNoLCBTcXVpZCBpZ25vcmVzIHRoZSByZXNwb25zZSBhbmQgd3JpdGVzIGEgd2FybmluZwojCW1l
c3NhZ2UgdG8gY2FjaGUubG9nLiAgWW91IGNhbiBhbGxvdyByZXNwb25zZXMgZnJvbSB1bmtub3du
CiMJbmFtZXNlcnZlcnMgYnkgc2V0dGluZyB0aGlzIG9wdGlvbiB0byAnb2ZmJy4KI0RlZmF1bHQ6
CiMgaWdub3JlX3Vua25vd25fbmFtZXNlcnZlcnMgb24KCiMgIFRBRzogZG5zX3Y0X2ZhbGxiYWNr
CiMJU3RhbmRhcmQgcHJhY3RpY2Ugd2l0aCBETlMgaXMgdG8gbG9va3VwIGVpdGhlciBBIG9yIEFB
QUEgcmVjb3JkcwojCWFuZCB1c2UgdGhlIHJlc3VsdHMgaWYgaXQgc3VjY2VlZHMuIE9ubHkgbG9v
a2luZyB1cCB0aGUgb3RoZXIgaWYKIwl0aGUgZmlyc3QgYXR0ZW1wdCBmYWlscyBvciBvdGhlcndp
c2UgcHJvZHVjZXMgbm8gcmVzdWx0cy4KIwojCVRoYXQgcG9saWN5IGhvd2V2ZXIgd2lsbCBjYXVz
ZSBzcXVpZCB0byBwcm9kdWNlIGVycm9yIHBhZ2VzIGZvciBzb21lCiMJc2VydmVycyB0aGF0IGFk
dmVydGlzZSBBQUFBIGJ1dCBhcmUgdW5yZWFjaGFibGUgb3ZlciBJUHY2LgojCiMJSWYgdGhpcyBp
cyBPTiAgc3F1aWQgd2lsbCBhbHdheXMgbG9va3VwIGJvdGggQUFBQSBhbmQgQSwgdXNpbmcgYm90
aC4KIwlJZiB0aGlzIGlzIE9GRiBzcXVpZCB3aWxsIGxvb2t1cCBBQUFBIGFuZCBvbmx5IHRyeSBB
IGlmIG5vbmUgZm91bmQuCiMKIwlXQVJOSU5HOiBUaGVyZSBhcmUgc29tZSBwb3NzaWJseSB1bndh
bnRlZCBzaWRlLWVmZmVjdHMgd2l0aCB0aGlzIG9uOgojCQkqKSBEb3VibGVzIHRoZSBsb2FkIHBs
YWNlZCBieSBzcXVpZCBvbiB0aGUgRE5TIG5ldHdvcmsuCiMJCSopIE1heSBuZWdhdGl2ZWx5IGlt
cGFjdCBjb25uZWN0aW9uIGRlbGF5IHRpbWVzLgojRGVmYXVsdDoKIyBkbnNfdjRfZmFsbGJhY2sg
b24KCiMgIFRBRzogaXBjYWNoZV9zaXplCShudW1iZXIgb2YgZW50cmllcykKIyAgVEFHOiBpcGNh
Y2hlX2xvdwkocGVyY2VudCkKIyAgVEFHOiBpcGNhY2hlX2hpZ2gJKHBlcmNlbnQpCiMJVGhlIHNp
emUsIGxvdy0sIGFuZCBoaWdoLXdhdGVyIG1hcmtzIGZvciB0aGUgSVAgY2FjaGUuCiNEZWZhdWx0
OgojIGlwY2FjaGVfc2l6ZSAxMDI0CiMgaXBjYWNoZV9sb3cgOTAKIyBpcGNhY2hlX2hpZ2ggOTUK
CiMgIFRBRzogZnFkbmNhY2hlX3NpemUJKG51bWJlciBvZiBlbnRyaWVzKQojCU1heGltdW0gbnVt
YmVyIG9mIEZRRE4gY2FjaGUgZW50cmllcy4KI0RlZmF1bHQ6CiMgZnFkbmNhY2hlX3NpemUgMTAy
NAoKIyBNSVNDRUxMQU5FT1VTCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiMgIFRBRzogbWVtb3J5
X3Bvb2xzCW9ufG9mZgojCUlmIHNldCwgU3F1aWQgd2lsbCBrZWVwIHBvb2xzIG9mIGFsbG9jYXRl
ZCAoYnV0IHVudXNlZCkgbWVtb3J5CiMJYXZhaWxhYmxlIGZvciBmdXR1cmUgdXNlLiAgSWYgbWVt
b3J5IGlzIGEgcHJlbWl1bSBvbiB5b3VyCiMJc3lzdGVtIGFuZCB5b3UgYmVsaWV2ZSB5b3VyIG1h
bGxvYyBsaWJyYXJ5IG91dHBlcmZvcm1zIFNxdWlkCiMJcm91dGluZXMsIGRpc2FibGUgdGhpcy4K
I0RlZmF1bHQ6CiMgbWVtb3J5X3Bvb2xzIG9uCgojICBUQUc6IG1lbW9yeV9wb29sc19saW1pdAko
Ynl0ZXMpCiMJVXNlZCBvbmx5IHdpdGggbWVtb3J5X3Bvb2xzIG9uOgojCW1lbW9yeV9wb29sc19s
aW1pdCA1MCBNQgojCiMJSWYgc2V0IHRvIGEgbm9uLXplcm8gdmFsdWUsIFNxdWlkIHdpbGwga2Vl
cCBhdCBtb3N0IHRoZSBzcGVjaWZpZWQKIwlsaW1pdCBvZiBhbGxvY2F0ZWQgKGJ1dCB1bnVzZWQp
IG1lbW9yeSBpbiBtZW1vcnkgcG9vbHMuIEFsbCBmcmVlKCkKIwlyZXF1ZXN0cyB0aGF0IGV4Y2Vl
ZCB0aGlzIGxpbWl0IHdpbGwgYmUgaGFuZGxlZCBieSB5b3VyIG1hbGxvYwojCWxpYnJhcnkuIFNx
dWlkIGRvZXMgbm90IHByZS1hbGxvY2F0ZSBhbnkgbWVtb3J5LCBqdXN0IHNhZmUta2VlcHMKIwlv
YmplY3RzIHRoYXQgb3RoZXJ3aXNlIHdvdWxkIGJlIGZyZWUoKWQuIFRodXMsIGl0IGlzIHNhZmUg
dG8gc2V0CiMJbWVtb3J5X3Bvb2xzX2xpbWl0IHRvIGEgcmVhc29uYWJseSBoaWdoIHZhbHVlIGV2
ZW4gaWYgeW91cgojCWNvbmZpZ3VyYXRpb24gd2lsbCB1c2UgbGVzcyBtZW1vcnkuCiMKIwlJZiBz
ZXQgdG8gbm9uZSwgU3F1aWQgd2lsbCBrZWVwIGFsbCBtZW1vcnkgaXQgY2FuLiBUaGF0IGlzLCB0
aGVyZQojCXdpbGwgYmUgbm8gbGltaXQgb24gdGhlIHRvdGFsIGFtb3VudCBvZiBtZW1vcnkgdXNl
ZCBmb3Igc2FmZS1rZWVwaW5nLgojCiMJVG8gZGlzYWJsZSBtZW1vcnkgYWxsb2NhdGlvbiBvcHRp
bWl6YXRpb24sIGRvIG5vdCBzZXQKIwltZW1vcnlfcG9vbHNfbGltaXQgdG8gMCBvciBub25lLiBT
ZXQgbWVtb3J5X3Bvb2xzIHRvICJvZmYiIGluc3RlYWQuCiMKIwlBbiBvdmVyaGVhZCBmb3IgbWFp
bnRhaW5pbmcgbWVtb3J5IHBvb2xzIGlzIG5vdCB0YWtlbiBpbnRvIGFjY291bnQKIwl3aGVuIHRo
ZSBsaW1pdCBpcyBjaGVja2VkLiBUaGlzIG92ZXJoZWFkIGlzIGNsb3NlIHRvIGZvdXIgYnl0ZXMg
cGVyCiMJb2JqZWN0IGtlcHQuIEhvd2V2ZXIsIHBvb2xzIG1heSBhY3R1YWxseSBfc2F2ZV8gbWVt
b3J5IGJlY2F1c2Ugb2YKIwlyZWR1Y2VkIG1lbW9yeSB0aHJhc2hpbmcgaW4geW91ciBtYWxsb2Mg
bGlicmFyeS4KI0RlZmF1bHQ6CiMgbWVtb3J5X3Bvb2xzX2xpbWl0IDUgTUIKCiMgIFRBRzogZm9y
d2FyZGVkX2ZvcglvbnxvZmZ8dHJhbnNwYXJlbnR8dHJ1bmNhdGV8ZGVsZXRlCiMJSWYgc2V0IHRv
ICJvbiIsIFNxdWlkIHdpbGwgYXBwZW5kIHlvdXIgY2xpZW50J3MgSVAgYWRkcmVzcwojCWluIHRo
ZSBIVFRQIHJlcXVlc3RzIGl0IGZvcndhcmRzLiBCeSBkZWZhdWx0IGl0IGxvb2tzIGxpa2U6CiMK
IwkJWC1Gb3J3YXJkZWQtRm9yOiAxOTIuMS4yLjMKIwojCUlmIHNldCB0byAib2ZmIiwgaXQgd2ls
bCBhcHBlYXIgYXMKIwojCQlYLUZvcndhcmRlZC1Gb3I6IHVua25vd24KIwojCUlmIHNldCB0byAi
dHJhbnNwYXJlbnQiLCBTcXVpZCB3aWxsIG5vdCBhbHRlciB0aGUKIwlYLUZvcndhcmRlZC1Gb3Ig
aGVhZGVyIGluIGFueSB3YXkuCiMKIwlJZiBzZXQgdG8gImRlbGV0ZSIsIFNxdWlkIHdpbGwgZGVs
ZXRlIHRoZSBlbnRpcmUKIwlYLUZvcndhcmRlZC1Gb3IgaGVhZGVyLgojCiMJSWYgc2V0IHRvICJ0
cnVuY2F0ZSIsIFNxdWlkIHdpbGwgcmVtb3ZlIGFsbCBleGlzdGluZwojCVgtRm9yd2FyZGVkLUZv
ciBlbnRyaWVzLCBhbmQgcGxhY2UgaXRzZWxmIGFzIHRoZSBzb2xlIGVudHJ5LgojRGVmYXVsdDoK
IyBmb3J3YXJkZWRfZm9yIG9uCgojICBUQUc6IGNhY2hlbWdyX3Bhc3N3ZAojCVNwZWNpZnkgcGFz
c3dvcmRzIGZvciBjYWNoZW1nciBvcGVyYXRpb25zLgojCiMJVXNhZ2U6IGNhY2hlbWdyX3Bhc3N3
ZCBwYXNzd29yZCBhY3Rpb24gYWN0aW9uIC4uLgojCiMJU29tZSB2YWxpZCBhY3Rpb25zIGFyZSAo
c2VlIGNhY2hlIG1hbmFnZXIgbWVudSBmb3IgYSBmdWxsIGxpc3QpOgojCQk1bWluCiMJCTYwbWlu
CiMJCWFzbmRiCiMJCWF1dGhlbnRpY2F0b3IKIwkJY2JkYXRhCiMJCWNsaWVudF9saXN0CiMJCWNv
bW1faW5jb21pbmcKIwkJY29uZmlnICoKIwkJY291bnRlcnMKIwkJZGVsYXkKIwkJZGlnZXN0X3N0
YXRzCiMJCWRucwojCQlldmVudHMKIwkJZmlsZWRlc2NyaXB0b3JzCiMJCWZxZG5jYWNoZQojCQlo
aXN0b2dyYW1zCiMJCWh0dHBfaGVhZGVycwojCQlpbmZvCiMJCWlvCiMJCWlwY2FjaGUKIwkJbWVt
CiMJCW1lbnUKIwkJbmV0ZGIKIwkJbm9uX3BlZXJzCiMJCW9iamVjdHMKIwkJb2ZmbGluZV90b2dn
bGUgKgojCQlwY29ubgojCQlwZWVyX3NlbGVjdAojCQlyZWNvbmZpZ3VyZSAqCiMJCXJlZGlyZWN0
b3IKIwkJcmVmcmVzaAojCQlzZXJ2ZXJfbGlzdAojCQlzaHV0ZG93biAqCiMJCXN0b3JlX2RpZ2Vz
dAojCQlzdG9yZWRpcgojCQl1dGlsaXphdGlvbgojCQl2aWFfaGVhZGVycwojCQl2bV9vYmplY3Rz
CiMKIwkqIEluZGljYXRlcyBhY3Rpb25zIHdoaWNoIHdpbGwgbm90IGJlIHBlcmZvcm1lZCB3aXRo
b3V0IGEKIwkgIHZhbGlkIHBhc3N3b3JkLCBvdGhlcnMgY2FuIGJlIHBlcmZvcm1lZCBpZiBub3Qg
bGlzdGVkIGhlcmUuCiMKIwlUbyBkaXNhYmxlIGFuIGFjdGlvbiwgc2V0IHRoZSBwYXNzd29yZCB0
byAiZGlzYWJsZSIuCiMJVG8gYWxsb3cgcGVyZm9ybWluZyBhbiBhY3Rpb24gd2l0aG91dCBhIHBh
c3N3b3JkLCBzZXQgdGhlCiMJcGFzc3dvcmQgdG8gIm5vbmUiLgojCiMJVXNlIHRoZSBrZXl3b3Jk
ICJhbGwiIHRvIHNldCB0aGUgc2FtZSBwYXNzd29yZCBmb3IgYWxsIGFjdGlvbnMuCiMKI0V4YW1w
bGU6CiMgY2FjaGVtZ3JfcGFzc3dkIHNlY3JldCBzaHV0ZG93bgojIGNhY2hlbWdyX3Bhc3N3ZCBs
ZXNzc3Nzc3NlY3JldCBpbmZvIHN0YXRzL29iamVjdHMKIyBjYWNoZW1ncl9wYXNzd2QgZGlzYWJs
ZSBhbGwKI0RlZmF1bHQ6CiMgbm9uZQoKIyAgVEFHOiBjbGllbnRfZGIJb258b2ZmCiMJSWYgeW91
IHdhbnQgdG8gZGlzYWJsZSBjb2xsZWN0aW5nIHBlci1jbGllbnQgc3RhdGlzdGljcywKIwl0dXJu
IG9mZiBjbGllbnRfZGIgaGVyZS4KI0RlZmF1bHQ6CiMgY2xpZW50X2RiIG9uCgojICBUQUc6IHJl
ZnJlc2hfYWxsX2ltcwlvbnxvZmYKIwlXaGVuIHlvdSBlbmFibGUgdGhpcyBvcHRpb24sIHNxdWlk
IHdpbGwgYWx3YXlzIGNoZWNrCiMJdGhlIG9yaWdpbiBzZXJ2ZXIgZm9yIGFuIHVwZGF0ZSB3aGVu
IGEgY2xpZW50IHNlbmRzIGFuCiMJSWYtTW9kaWZpZWQtU2luY2UgcmVxdWVzdC4gIE1hbnkgYnJv
d3NlcnMgdXNlIElNUwojCXJlcXVlc3RzIHdoZW4gdGhlIHVzZXIgcmVxdWVzdHMgYSByZWxvYWQs
IGFuZCB0aGlzCiMJZW5zdXJlcyB0aG9zZSBjbGllbnRzIHJlY2VpdmUgdGhlIGxhdGVzdCB2ZXJz
aW9uLgojCiMJQnkgZGVmYXVsdCAob2ZmKSwgc3F1aWQgbWF5IHJldHVybiBhIE5vdCBNb2RpZmll
ZCByZXNwb25zZQojCWJhc2VkIG9uIHRoZSBhZ2Ugb2YgdGhlIGNhY2hlZCB2ZXJzaW9uLgojRGVm
YXVsdDoKIyByZWZyZXNoX2FsbF9pbXMgb2ZmCgojICBUQUc6IHJlbG9hZF9pbnRvX2ltcwlvbnxv
ZmYKIwlXaGVuIHlvdSBlbmFibGUgdGhpcyBvcHRpb24sIGNsaWVudCBuby1jYWNoZSBvciBgYHJl
bG9hZCcnCiMJcmVxdWVzdHMgd2lsbCBiZSBjaGFuZ2VkIHRvIElmLU1vZGlmaWVkLVNpbmNlIHJl
cXVlc3RzLgojCURvaW5nIHRoaXMgVklPTEFURVMgdGhlIEhUVFAgc3RhbmRhcmQuICBFbmFibGlu
ZyB0aGlzCiMJZmVhdHVyZSBjb3VsZCBtYWtlIHlvdSBsaWFibGUgZm9yIHByb2JsZW1zIHdoaWNo
IGl0CiMJY2F1c2VzLgojCiMJc2VlIGFsc28gcmVmcmVzaF9wYXR0ZXJuIGZvciBhIG1vcmUgc2Vs
ZWN0aXZlIGFwcHJvYWNoLgojRGVmYXVsdDoKIyByZWxvYWRfaW50b19pbXMgb2ZmCgojICBUQUc6
IG1heGltdW1fc2luZ2xlX2FkZHJfdHJpZXMKIwlUaGlzIHNldHMgdGhlIG1heGltdW0gbnVtYmVy
IG9mIGNvbm5lY3Rpb24gYXR0ZW1wdHMgZm9yIGEKIwlob3N0IHRoYXQgb25seSBoYXMgb25lIGFk
ZHJlc3MgKGZvciBtdWx0aXBsZS1hZGRyZXNzIGhvc3RzLAojCWVhY2ggYWRkcmVzcyBpcyB0cmll
ZCBvbmNlKS4KIwojCVRoZSBkZWZhdWx0IHZhbHVlIGlzIG9uZSBhdHRlbXB0LCB0aGUgKG5vdCBy
ZWNvbW1lbmRlZCkKIwltYXhpbXVtIGlzIDI1NSB0cmllcy4gIEEgd2FybmluZyBtZXNzYWdlIHdp
bGwgYmUgZ2VuZXJhdGVkCiMJaWYgaXQgaXMgc2V0IHRvIGEgdmFsdWUgZ3JlYXRlciB0aGFuIHRl
bi4KIwojCU5vdGU6IFRoaXMgaXMgaW4gYWRkaXRpb24gdG8gdGhlIHJlcXVlc3QgcmUtZm9yd2Fy
ZGluZyB3aGljaAojCXRha2VzIHBsYWNlIGlmIFNxdWlkIGZhaWxzIHRvIGdldCBhIHNhdGlzZnlp
bmcgcmVzcG9uc2UuCiNEZWZhdWx0OgojIG1heGltdW1fc2luZ2xlX2FkZHJfdHJpZXMgMQoKIyAg
VEFHOiByZXRyeV9vbl9lcnJvcgojCUlmIHNldCB0byBvbiBTcXVpZCB3aWxsIGF1dG9tYXRpY2Fs
bHkgcmV0cnkgcmVxdWVzdHMgd2hlbgojCXJlY2VpdmluZyBhbiBlcnJvciByZXNwb25zZS4gVGhp
cyBpcyBtYWlubHkgdXNlZnVsIGlmIHlvdQojCWFyZSBpbiBhIGNvbXBsZXggY2FjaGUgaGllcmFy
Y2h5IHRvIHdvcmsgYXJvdW5kIGFjY2VzcwojCWNvbnRyb2wgZXJyb3JzLgojRGVmYXVsdDoKIyBy
ZXRyeV9vbl9lcnJvciBvZmYKCiMgIFRBRzogYXNfd2hvaXNfc2VydmVyCiMJV0hPSVMgc2VydmVy
IHRvIHF1ZXJ5IGZvciBBUyBudW1iZXJzLiAgTk9URTogQVMgbnVtYmVycyBhcmUKIwlxdWVyaWVk
IG9ubHkgd2hlbiBTcXVpZCBzdGFydHMgdXAsIG5vdCBmb3IgZXZlcnkgcmVxdWVzdC4KI0RlZmF1
bHQ6CiMgYXNfd2hvaXNfc2VydmVyIHdob2lzLnJhLm5ldAoKIyAgVEFHOiBvZmZsaW5lX21vZGUK
IwlFbmFibGUgdGhpcyBvcHRpb24gYW5kIFNxdWlkIHdpbGwgbmV2ZXIgdHJ5IHRvIHZhbGlkYXRl
IGNhY2hlZAojCW9iamVjdHMuCiNEZWZhdWx0OgojIG9mZmxpbmVfbW9kZSBvZmYKCiMgIFRBRzog
dXJpX3doaXRlc3BhY2UKIwlXaGF0IHRvIGRvIHdpdGggcmVxdWVzdHMgdGhhdCBoYXZlIHdoaXRl
c3BhY2UgY2hhcmFjdGVycyBpbiB0aGUKIwlVUkkuICBPcHRpb25zOgojCiMJc3RyaXA6ICBUaGUg
d2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGFyZSBzdHJpcHBlZCBvdXQgb2YgdGhlIFVSTC4KIwkJVGhp
cyBpcyB0aGUgYmVoYXZpb3IgcmVjb21tZW5kZWQgYnkgUkZDMjM5Ni4KIwlkZW55OiAgIFRoZSBy
ZXF1ZXN0IGlzIGRlbmllZC4gIFRoZSB1c2VyIHJlY2VpdmVzIGFuICJJbnZhbGlkCiMJCVJlcXVl
c3QiIG1lc3NhZ2UuCiMJYWxsb3c6ICBUaGUgcmVxdWVzdCBpcyBhbGxvd2VkIGFuZCB0aGUgVVJJ
IGlzIG5vdCBjaGFuZ2VkLiAgVGhlCiMJCXdoaXRlc3BhY2UgY2hhcmFjdGVycyByZW1haW4gaW4g
dGhlIFVSSS4gIE5vdGUgdGhlCiMJCXdoaXRlc3BhY2UgaXMgcGFzc2VkIHRvIHJlZGlyZWN0b3Ig
cHJvY2Vzc2VzIGlmIHRoZXkKIwkJYXJlIGluIHVzZS4KIwllbmNvZGU6CVRoZSByZXF1ZXN0IGlz
IGFsbG93ZWQgYW5kIHRoZSB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgYXJlCiMJCWVuY29kZWQgYWNj
b3JkaW5nIHRvIFJGQzE3MzguICBUaGlzIGNvdWxkIGJlIGNvbnNpZGVyZWQKIwkJYSB2aW9sYXRp
b24gb2YgdGhlIEhUVFAvMS4xCiMJCVJGQyBiZWNhdXNlIHByb3hpZXMgYXJlIG5vdCBhbGxvd2Vk
IHRvIHJld3JpdGUgVVJJJ3MuCiMJY2hvcDoJVGhlIHJlcXVlc3QgaXMgYWxsb3dlZCBhbmQgdGhl
IFVSSSBpcyBjaG9wcGVkIGF0IHRoZQojCQlmaXJzdCB3aGl0ZXNwYWNlLiAgVGhpcyBtaWdodCBh
bHNvIGJlIGNvbnNpZGVyZWQgYQojCQl2aW9sYXRpb24uCiNEZWZhdWx0OgojIHVyaV93aGl0ZXNw
YWNlIHN0cmlwCgojICBUQUc6IGNocm9vdAojCVNwZWNpZmllcyBhIGRpcmVjdG9yeSB3aGVyZSBT
cXVpZCBzaG91bGQgZG8gYSBjaHJvb3QoKSB3aGlsZQojCWluaXRpYWxpemluZy4gIFRoaXMgYWxz
byBjYXVzZXMgU3F1aWQgdG8gZnVsbHkgZHJvcCByb290CiMJcHJpdmlsZWdlcyBhZnRlciBpbml0
aWFsaXppbmcuICBUaGlzIG1lYW5zLCBmb3IgZXhhbXBsZSwgaWYgeW91CiMJdXNlIGEgSFRUUCBw
b3J0IGxlc3MgdGhhbiAxMDI0IGFuZCB0cnkgdG8gcmVjb25maWd1cmUsIHlvdSBtYXkKIwlnZXQg
YW4gZXJyb3Igc2F5aW5nIHRoYXQgU3F1aWQgY2FuIG5vdCBvcGVuIHRoZSBwb3J0LgojRGVmYXVs
dDoKIyBub25lCgojICBUQUc6IGJhbGFuY2Vfb25fbXVsdGlwbGVfaXAKIwlNb2Rlcm4gSVAgcmVz
b2x2ZXJzIGluIHNxdWlkIHNvcnQgbG9va3VwIHJlc3VsdHMgYnkgcHJlZmVycmVkIGFjY2Vzcy4K
IwlCeSBkZWZhdWx0IHNxdWlkIHdpbGwgdXNlIHRoZXNlIElQIGluIG9yZGVyIGFuZCBvbmx5IHJv
dGF0ZXMgdG8KIwl0aGUgbmV4dCBsaXN0ZWQgd2hlbiB0aGUgbW9zdCBwcmVmZmVyZWQgZmFpbHMu
CiMKIwlTb21lIGxvYWQgYmFsYW5jaW5nIHNlcnZlcnMgYmFzZWQgb24gcm91bmQgcm9iaW4gRE5T
IGhhdmUgYmVlbgojCWZvdW5kIG5vdCB0byBwcmVzZXJ2ZSB1c2VyIHNlc3Npb24gc3RhdGUgYWNy
b3NzIHJlcXVlc3RzCiMJdG8gZGlmZmVyZW50IElQIGFkZHJlc3Nlcy4KIwojCUVuYWJsaW5nIHRo
aXMgZGlyZWN0aXZlIFNxdWlkIHJvdGF0ZXMgSVAncyBwZXIgcmVxdWVzdC4KI0RlZmF1bHQ6CiMg
YmFsYW5jZV9vbl9tdWx0aXBsZV9pcCBvZmYKCiMgIFRBRzogcGlwZWxpbmVfcHJlZmV0Y2gKIwlU
byBib29zdCB0aGUgcGVyZm9ybWFuY2Ugb2YgcGlwZWxpbmVkIHJlcXVlc3RzIHRvIGNsb3Nlcgoj
CW1hdGNoIHRoYXQgb2YgYSBub24tcHJveGllZCBlbnZpcm9ubWVudCBTcXVpZCBjYW4gdHJ5IHRv
IGZldGNoCiMJdXAgdG8gdHdvIHJlcXVlc3RzIGluIHBhcmFsbGVsIGZyb20gYSBwaXBlbGluZS4K
IwojCURlZmF1bHRzIHRvIG9mZiBmb3IgYmFuZHdpZHRoIG1hbmFnZW1lbnQgYW5kIGFjY2VzcyBs
b2dnaW5nCiMJcmVhc29ucy4KIwojCVdBUk5JTkc6IHBpcGVsaW5pbmcgYnJlYWtzIE5UTE0gYW5k
IE5lZ290aWF0ZS9LZXJiZXJvcyBhdXRoZW50aWNhdGlvbi4KI0RlZmF1bHQ6CiMgcGlwZWxpbmVf
cHJlZmV0Y2ggb2ZmCgojICBUQUc6IGhpZ2hfcmVzcG9uc2VfdGltZV93YXJuaW5nCShtc2VjKQoj
CUlmIHRoZSBvbmUtbWludXRlIG1lZGlhbiByZXNwb25zZSB0aW1lIGV4Y2VlZHMgdGhpcyB2YWx1
ZSwKIwlTcXVpZCBwcmludHMgYSBXQVJOSU5HIHdpdGggZGVidWcgbGV2ZWwgMCB0byBnZXQgdGhl
CiMJYWRtaW5pc3RyYXRvcnMgYXR0ZW50aW9uLiAgVGhlIHZhbHVlIGlzIGluIG1pbGxpc2Vjb25k
cy4KI0RlZmF1bHQ6CiMgaGlnaF9yZXNwb25zZV90aW1lX3dhcm5pbmcgMAoKIyAgVEFHOiBoaWdo
X3BhZ2VfZmF1bHRfd2FybmluZwojCUlmIHRoZSBvbmUtbWludXRlIGF2ZXJhZ2UgcGFnZSBmYXVs
dCByYXRlIGV4Y2VlZHMgdGhpcwojCXZhbHVlLCBTcXVpZCBwcmludHMgYSBXQVJOSU5HIHdpdGgg
ZGVidWcgbGV2ZWwgMCB0byBnZXQKIwl0aGUgYWRtaW5pc3RyYXRvcnMgYXR0ZW50aW9uLiAgVGhl
IHZhbHVlIGlzIGluIHBhZ2UgZmF1bHRzCiMJcGVyIHNlY29uZC4KI0RlZmF1bHQ6CiMgaGlnaF9w
YWdlX2ZhdWx0X3dhcm5pbmcgMAoKIyAgVEFHOiBoaWdoX21lbW9yeV93YXJuaW5nCiMJSWYgdGhl
IG1lbW9yeSB1c2FnZSAoYXMgZGV0ZXJtaW5lZCBieSBtYWxsaW5mbykgZXhjZWVkcwojCXRoaXMg
YW1vdW50LCBTcXVpZCBwcmludHMgYSBXQVJOSU5HIHdpdGggZGVidWcgbGV2ZWwgMCB0byBnZXQK
Iwl0aGUgYWRtaW5pc3RyYXRvcnMgYXR0ZW50aW9uLgojRGVmYXVsdDoKIyBoaWdoX21lbW9yeV93
YXJuaW5nIDAgS0IKCiMgIFRBRzogc2xlZXBfYWZ0ZXJfZm9yawkobWljcm9zZWNvbmRzKQojCVdo
ZW4gdGhpcyBpcyBzZXQgdG8gYSBub24temVybyB2YWx1ZSwgdGhlIG1haW4gU3F1aWQgcHJvY2Vz
cwojCXNsZWVwcyB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBtaWNyb3NlY29uZHMgYWZ0ZXIgYSBm
b3JrKCkKIwlzeXN0ZW0gY2FsbC4gVGhpcyBzbGVlcCBtYXkgaGVscCB0aGUgc2l0dWF0aW9uIHdo
ZXJlIHlvdXIKIwlzeXN0ZW0gcmVwb3J0cyBmb3JrKCkgZmFpbHVyZXMgZHVlIHRvIGxhY2sgb2Yg
KHZpcnR1YWwpCiMJbWVtb3J5LiBOb3RlLCBob3dldmVyLCBpZiB5b3UgaGF2ZSBhIGxvdCBvZiBj
aGlsZAojCXByb2Nlc3NlcywgdGhlc2Ugc2xlZXAgZGVsYXlzIHdpbGwgYWRkIHVwIGFuZCB5b3Vy
CiMJU3F1aWQgd2lsbCBub3Qgc2VydmljZSByZXF1ZXN0cyBmb3Igc29tZSBhbW91bnQgb2YgdGlt
ZQojCXVudGlsIGFsbCB0aGUgY2hpbGQgcHJvY2Vzc2VzIGhhdmUgYmVlbiBzdGFydGVkLgojCU9u
IFdpbmRvd3MgdmFsdWUgbGVzcyB0aGVuIDEwMDAgKDEgbWlsbGlzZWNvbmRzKSBhcmUKIwlyb3Vu
ZGVkIHRvIDEwMDAuCiNEZWZhdWx0OgojIHNsZWVwX2FmdGVyX2ZvcmsgMAoKIyAgVEFHOiB3aW5k
b3dzX2lwYWRkcmNoYW5nZW1vbml0b3IJb258b2ZmCiMJT24gV2luZG93cyBTcXVpZCBieSBkZWZh
dWx0IHdpbGwgbW9uaXRvciBJUCBhZGRyZXNzIGNoYW5nZXMgYW5kIHdpbGwgCiMJcmVjb25maWd1
cmUgaXRzZWxmIGFmdGVyIGFueSBkZXRlY3RlZCBldmVudC4gVGhpcyBpcyB2ZXJ5IHVzZWZ1bCBm
b3IKIwlwcm94aWVzIGNvbm5lY3RlZCB0byBpbnRlcm5ldCB3aXRoIGRpYWwtdXAgaW50ZXJmYWNl
cy4KIwlJbiBzb21lIGNhc2VzIChhIFByb3h5IHNlcnZlciBhY3RpbmcgYXMgVlBOIGdhdGV3YXkg
aXMgb25lKSBpdCBjb3VsZCBiZQojCWRlc2lkZXJhYmxlIHRvIGRpc2FibGUgdGhpcyBiZWhhdmlv
dXIgc2V0dGluZyB0aGlzIHRvICdvZmYnLgojCU5vdGU6IGFmdGVyIGNoYW5naW5nIHRoaXMsIFNx
dWlkIHNlcnZpY2UgbXVzdCBiZSByZXN0YXJ0ZWQuCiNEZWZhdWx0OgojIHdpbmRvd3NfaXBhZGRy
Y2hhbmdlbW9uaXRvciBvbgoKIyAgVEFHOiBtYXhfZmlsZWRlc2NyaXB0b3JzCiMJVGhlIG1heGlt
dW0gbnVtYmVyIG9mIGZpbGVkZXNjcmlwdG9ycyBzdXBwb3J0ZWQuCiMKIwlUaGUgZGVmYXVsdCAi
MCIgbWVhbnMgU3F1aWQgaW5oZXJpdHMgdGhlIGN1cnJlbnQgdWxpbWl0IHNldHRpbmcuCiMKIwlO
b3RlOiBDaGFuZ2luZyB0aGlzIHJlcXVpcmVzIGEgcmVzdGFydCBvZiBTcXVpZC4gQWxzbwojCW5v
dCBhbGwgY29tbSBsb29wcyBzdXBwb3J0cyBsYXJnZSB2YWx1ZXMuCiNEZWZhdWx0OgojIG1heF9m
aWxlZGVzY3JpcHRvcnMgMAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>