Subject: Re: acpi functional porting
To: None <current-users@netbsd.org, avb@avb.bas-net.by>
From: Chavdar Ivanov <ci4ic4@gmail.com>
List: current-users
Date: 02/20/2007 13:03:43
------=_Part_61017_30854844.1171976623307
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On 20/02/07, Alexander V. Butenko <avb@avb.bas-net.by> wrote:
> Tue, 20 Feb 2007 you wrote:
>
> > >> What makes you think NetBSD doesn't already have support for ACPI?
>
> > >Sure, NetBSD already has some feature implemented. But the ones that i
> > >wrote in my mail it doesnt have, as i see. At least acpi poweroff,acpi
> > >hardware monitoring and dock station detection.
> > Did you not see my earlier message? I don't know about dock station
> > detection, as I have never seen one, but the rest works.
>
> Nope. I dont saw.
>

I don't know, some delay from gmail I suppose...

[4.3.2]ci@lisa:~> uname -a
NetBSD lisa 4.99.12 NetBSD 4.99.12 (LISA.MPACPI) #20: Mon Feb 19
22:39:52 GMT 2007
root@lisa:/usr/obj/sys/arch/i386/compile/LISA.MPACPI i386
[4.3.2]ci@lisa:~> envstat -r
      acpibat0 present
   acpibat0 design cap:      3.769 Ah
 acpibat0 last full cap:      3.769 Ah
   acpibat0 technology:          1
acpibat0 design voltage:     11.100 V
     acpibat0 warn cap:      0.189 Ah ( 5.01%)
      acpibat0 low cap:      0.038 Ah ( 1.01%)
      acpibat0 voltage:     12.530 V
       acpibat0 charge:      3.769 Ah (100.00%)
   acpiacad0 connected
   acpitz0 temperature:     65.000 degC
   acpitz1 temperature:     63.000 degC
   acpitz2 temperature:     48.000 degC
   acpitz3 temperature:     31.600 degC
   acpitz4 temperature:     75.000 degC

> Can you show me the options which you have enabled in your config?
> is seems GENERIC.MPACPI doesnt provide such functional. my config is
> based on it

I also start from the same, but I have my

 /usr/src/sys/dev/acpi/acpica/Osd/dsdt.hex

created following the comments in  /usr/src/sys/dev/acpi/acpica/Osd/OsdMisc.c


Look for the archives from port-i386 and port-amd64 from 05/01/2006;
there was also enlightening discussion on current-users starting from
18/06/2006 - look for Call fro testers: i386 ACPI suspend/resume.

Attaching my kernel configuration - not that it is good enough to brag
about it...


>
> Alex
>
Chavdar

------=_Part_61017_30854844.1171976623307
Content-Type: application/octet-stream; name=LISA.MPACPI
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="LISA.MPACPI"

aW5jbHVkZSAiYXJjaC9pMzg2L2NvbmYvTElTQSIKCm9wdGlvbnMgCU1VTFRJUFJPQ0VTU09SCgpv
cHRpb25zIAlBUE1fTk9fSURMRQpvcHRpb25zIAlBQ1BJVkVSQk9TRQoKaW9hcGljKgkJYXQgbWFp
bmJ1cz8gYXBpZCA/CgphY3BpMCAJCWF0IG1haW5idXMwCgojIEFDUEkgZGV2aWNlcwphcG0qIAlh
dCBhY3BpPwphY3BpYWNhZCogCWF0IGFjcGk/CQkjIEFDUEkgQUMgQWRhcHRlcgphY3BpYmF0KiAJ
YXQgYWNwaT8JCSMgQUNQSSBCYXR0ZXJ5CmFjcGlidXQqIAlhdCBhY3BpPwkJIyBBQ1BJIEJ1dHRv
bgphY3BpZWMqIAlhdCBhY3BpPwkJIyBBQ1BJIEVtYmVkZGVkIENvbnRyb2xsZXIKYWNwaWxpZCog
CWF0IGFjcGk/CQkjIEFDUEkgTGlkIFN3aXRjaAphY3BpdHoqIAlhdCBhY3BpPwkJIyBBQ1BJIFRo
ZXJtYWwgWm9uZQoKIyBNYWluYm9hcmQgZGV2aWNlcwphdHRpbWVyKglhdCBhY3BpPwkJIyBBVCBU
aW1lcgpucHgqCQlhdCBhY3BpPwkJIyBNYXRoIGNvcHJvY2Vzc29yCnBja2JjKiAgCWF0IGFjcGk/
CQkjIFBDIGtleWJvYXJkIGNvbnRyb2xsZXIKcGNwcGkqICAgICAgICAgIGF0IGFjcGk/ICAgICAg
ICAgICAgICAgICMgQVQtc3R5bGUgc3BlYWtlciBzb3VuZAoKIyBTb255IFZhaW8gam9nIGRpYWwK
I3NwaWMqIAkJYXQgYWNwaT8JCSMgU29ueSBQcm9ncmFtbWFibGUgSS9PIENvbnRyb2xsZXIKI3dz
bW91c2UqIAlhdCBzcGljPwoKIyBTb255IExDRCBicmlnaHRuZXNzIGV0Yy4KI3NvbnkqIAkJYXQg
YWNwaT8JCSMgU29ueSBNaXNjZWxsYW5lb3VzIENvbnRyb2xsZXIKCiMgUmVtb3ZlIHN1cHBvcnQg
Zm9yIG9sZCBjcHVzCm5vIG9wdGlvbnMgSTQ4Nl9DUFUsIEk1ODZfQ1BVCiNubyBvcHRpb25zIE1B
VEhfRU1VTEFURQpubyBtYWtlb3B0aW9ucyBDT1BUUwptYWtlb3B0aW9ucwlDT1BUUz0iLW1hcmNo
PXBlbnRpdW0tbSAtbXR1bmU9cGVudGl1bS1tIgoKIyBJdCBpcyBkb3VidGZ1bCB0aGF0IGFuIEVJ
U0Egc3lzdGVtIHN1cHBvcnRzIEFDUEkKbm8gb3B0aW9ucyBFSVNBVkVSQk9TRQpubyBlaXNhCm5v
IHBjZWIKCiMgYW5kIGV2ZW4gbW9yZSBkb3VidGZ1bCB0aGF0IGFuIE1DQSBzeXN0ZW0gc3VwcG9y
dHMgQUNQSQpubyBvcHRpb25zIE1DQVZFUkJPU0UKbm8gbWNhCm5vIHBjbWIKCiMgSVNBIHNsb3Rz
IGFyZSBhbHNvIHVubGlrZWx5LCBpc2FwbnAgY2FuIGJlIHJlbW92ZWQsIGJ1dCB0aGUgYnVpbGQg
ZmFpbHMKIyBiYWRseSBpZiBpc2EgaXMgZGlzYWJsZWQuCiMgbm8gaXNhcG5wCiMgbm8gaXNhCgoj
IERpc2FibGUgbm9uLWFjcGkgbWFpbmJvYXJkIGRldmljZXMKIyBYWFg6IElzIHRoaXMgbGlzdCBj
b21wbGV0ZT8KIyBEaXNhYmxlIG1pc2NlbGxhbmVvdXMgZHJpdmVycyB0aGF0IGNhbid0IGJlIG5l
ZWRlZC4Kbm8gZ2VvZGV3ZG9nCg==
------=_Part_61017_30854844.1171976623307
Content-Type: application/octet-stream; name=LISA
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="LISA"

aW5jbHVkZSAJImFyY2gvaTM4Ni9jb25mL3N0ZC5pMzg2IgoKb3B0aW9ucyAJSU5DTFVERV9DT05G
SUdfRklMRQkjIGVtYmVkIGNvbmZpZyBmaWxlIGluIGtlcm5lbCBiaW5hcnkKCiNpZGVudCAJCSJH
RU5FUklDLSRSZXZpc2lvbjogMS43OTYgJCIKCm1heHVzZXJzCTMyCQkjIGVzdGltYXRlZCBudW1i
ZXIgb2YgdXNlcnMKCiMgQ1BVIHN1cHBvcnQuICBBdCBsZWFzdCBvbmUgaXMgUkVRVUlSRUQuCiNv
cHRpb25zIAlJMzg2X0NQVQpvcHRpb25zIAlJNDg2X0NQVQpvcHRpb25zIAlJNTg2X0NQVQpvcHRp
b25zIAlJNjg2X0NQVQoKbWFrZW9wdGlvbnMJQ09QVFM9Ii1tYXJjaD1wZW50aXVtLW0gLW10dW5l
PXBlbnRpdW0tbSIJIyBBc3N1bWUgYXQgbGVhc3QgNDg2LAoJCQkJCQkJIyB0dW5lIGZvciBtb3Jl
IG1vZGVybgoKIyBDUFUtcmVsYXRlZCBvcHRpb25zLgojb3B0aW9ucyAJTUFUSF9FTVVMQVRFCSMg
ZmxvYXRpbmcgcG9pbnQgZW11bGF0aW9uCm9wdGlvbnMgCVZNODYJCSMgdmlydHVhbCA4MDg2IGVt
dWxhdGlvbgpvcHRpb25zIAlVU0VSX0xEVAkjIHVzZXItc2V0dGFibGUgTERUOyB1c2VkIGJ5IFdJ
TkUKIyBpbnNlcnQgZGVsYXkgbm8tb3BzIGluIGludGVycnVwdHM7IHJlY29tbWVuZGVkIG9uIHZl
cnkgb2xkIG1hY2hpbmVzCiNvcHRpb25zIAlQSUNfREVMQVkKCiMgRW5oYW5jZWQgU3BlZWRTdGVw
IFRlY2hub2xvZ3kgaW4gdGhlIFBlbnRpdW0gTQpvcHRpb25zIAlFTkhBTkNFRF9TUEVFRFNURVAK
b3B0aW9ucyAJRVNUX0ZSRVFfVVNFUldSSVRFCSMgYW55IHVzZXIgY2FuIHNldCBmcmVxdWVuY3kK
CiMgQU1EIFBvd2VyTm93ISBLNwpvcHRpb25zIAlQT1dFUk5PV19LNwoKIyBBTUQgUG93ZXJOb3ch
IGFuZCBDb29sYG4nUXVpZXQgdGVjaG5vbG9neQpvcHRpb25zIAlQT1dFUk5PV19LOAoKb3B0aW9u
cyAJTVRSUgkJIyBtZW1vcnktdHlwZSByYW5nZSByZWdpc3RlciBzeXNjYWxsIHN1cHBvcnQKIyBk
b2Vzbid0IHdvcmsgd2l0aCBNUCBqdXN0IHlldC4uCiNvcHRpb25zIAlQRVJGQ1RSUwkjIHBlcmZv
cm1hbmNlLW1vbml0b3JpbmcgY291bnRlcnMgc3VwcG9ydAoKb3B0aW9ucyAJTVVMVElCT09UCSMg
TXVsdGlib290IHN1cHBvcnQgKHNlZSBtdWx0aWJvb3QoOCkpCgojIGRlbGF5IGJldHdlZW4gInJl
Ym9vdGluZyAuLi4iIG1lc3NhZ2UgYW5kIGhhcmR3YXJlIHJlc2V0LCBpbiBtaWxsaXNlY29uZHMK
b3B0aW9ucyAJQ1BVUkVTRVRfREVMQVk9MjAwMAoKIyBTdGFuZGFyZCBzeXN0ZW0gb3B0aW9ucwoK
b3B0aW9ucyAJSU5TRUNVUkUJIyBkaXNhYmxlIGtlcm5lbCBzZWN1cml0eSBsZXZlbHMgLSBYIG5l
ZWRzIHRoaXMKCm9wdGlvbnMgCVJUQ19PRkZTRVQ9MAkjIGhhcmR3YXJlIGNsb2NrIGlzIHRoaXMg
bWFueSBtaW5zLiB3ZXN0IG9mIEdNVApvcHRpb25zIAlOVFAJCSMgTlRQIHBoYXNlL2ZyZXF1ZW5j
eSBsb2NrZWQgbG9vcAoKb3B0aW9ucyAJS1RSQUNFCQkjIHN5c3RlbSBjYWxsIHRyYWNpbmcgdmlh
IGt0cmFjZSgxKQojb3B0aW9ucyAJU1lTVFJBQ0UJIyBzeXN0ZW0gY2FsbCB2ZXR0aW5nIHZpYSBz
eXN0cmFjZSgxKQoKb3B0aW9ucyAJU1lTVk1TRwkJIyBTeXN0ZW0gVi1saWtlIG1lc3NhZ2UgcXVl
dWVzCm9wdGlvbnMgCVNZU1ZTRU0JCSMgU3lzdGVtIFYtbGlrZSBzZW1hcGhvcmVzCiNvcHRpb25z
IAlTRU1NTkk9MTAJIyBudW1iZXIgb2Ygc2VtYXBob3JlIGlkZW50aWZpZXJzCiNvcHRpb25zIAlT
RU1NTlM9NjAJIyBudW1iZXIgb2Ygc2VtYXBob3JlcyBpbiBzeXN0ZW0KI29wdGlvbnMgCVNFTVVN
RT0xMAkjIG1heCBudW1iZXIgb2YgdW5kbyBlbnRyaWVzIHBlciBwcm9jZXNzCiNvcHRpb25zIAlT
RU1NTlU9MzAJIyBudW1iZXIgb2YgdW5kbyBzdHJ1Y3R1cmVzIGluIHN5c3RlbQpvcHRpb25zIAlT
WVNWU0hNCQkjIFN5c3RlbSBWLWxpa2UgbWVtb3J5IHNoYXJpbmcKI29wdGlvbnMgCVNITU1BWFBH
Uz0yMDQ4CSMgMjA0OCBwYWdlcyBpcyB0aGUgZGVmYXVsdApvcHRpb25zIAlQMTAwM18xQl9TRU1B
UEhPUkUJIyBwMTAwMy4xYiBzZW1hcGhvcmUgc3VwcG9ydAoKb3B0aW9ucyAJTEtNCQkjIGxvYWRh
YmxlIGtlcm5lbCBtb2R1bGVzCgpvcHRpb25zIAlVU0VSQ09ORgkjIHVzZXJjb25mKDQpIHN1cHBv
cnQKI29wdGlvbnMgCVBJUEVfU09DS0VUUEFJUgkjIHNtYWxsZXIsIGJ1dCBzbG93ZXIgcGlwZSgy
KQojb3B0aW9ucyAJU1lTQ1RMX0lOQ0xVREVfREVTQ1IJIyBJbmNsdWRlIHN5c2N0bCBkZXNjcmlw
dGlvbnMgaW4ga2VybmVsCgojIEJlZXAgd2hlbiBpdCBpcyBzYWZlIHRvIHBvd2VyIGRvd24gdGhl
IHN5c3RlbSAocmVxdWlyZXMgc3lzYmVlcCkKI29wdGlvbnMgCUJFRVBfT05IQUxUCiMgU29tZSB0
dW5hYmxlIGRldGFpbHMgb2YgdGhlIGFib3ZlIGZlYXR1cmUgKGRlZmF1bHQgdmFsdWVzIHVzZWQg
YmVsb3cpCiNvcHRpb25zIAlCRUVQX09OSEFMVF9DT1VOVD0zCSMgVGltZXMgdG8gYmVlcAojb3B0
aW9ucyAJQkVFUF9PTkhBTFRfUElUQ0g9MTUwMAkjIERlZmF1bHQgZnJlcXVlbmN5IChpbiBIeikK
I29wdGlvbnMgCUJFRVBfT05IQUxUX1BFUklPRD0yNTAJIyBEZWZhdWx0IGR1cmF0aW9uIChpbiBt
c2VjcykKCiMgRW5hYmxlIGV4cGVyaW1lbnRhbCBidWZmZXIgcXVldWUgc3RyYXRlZ3kgZm9yIGJl
dHRlciByZXNwb25zaXZlbmVzcyB1bmRlcgojIGhpZ2ggZGlzayBJL08gbG9hZC4gTGlrZWx5IHN0
YWJsZSBidXQgbm90IHlldCB0aGUgZGVmYXVsdC4KI29wdGlvbnMgCUJVRlFfUkVBRFBSSU8Kb3B0
aW9ucyAJQlVGUV9QUklPQ1NDQU4KCiMgRGlhZ25vc3RpYy9kZWJ1Z2dpbmcgc3VwcG9ydCBvcHRp
b25zCiNvcHRpb25zIAlESUFHTk9TVElDCSMgZXhwZW5zaXZlIGtlcm5lbCBjb25zaXN0ZW5jeSBj
aGVja3MKI29wdGlvbnMgCURFQlVHCQkjIGV4cGVuc2l2ZSBkZWJ1Z2dpbmcgY2hlY2tzL3N1cHBv
cnQKI29wdGlvbnMgCUtNRU1TVEFUUwkjIGtlcm5lbCBtZW1vcnkgc3RhdGlzdGljcyAodm1zdGF0
IC1tKQpvcHRpb25zIAlEREIJCSMgaW4ta2VybmVsIGRlYnVnZ2VyCm9wdGlvbnMgCUREQl9PTlBB
TklDPTEJIyBzZWUgYWxzbyBzeXNjdGwoOCk6IGBkZGIub25wYW5pYycKb3B0aW9ucyAJRERCX0hJ
U1RPUllfU0laRT01MTIJIyBlbmFibGUgaGlzdG9yeSBlZGl0aW5nIGluIEREQgojb3B0aW9ucyAJ
S0dEQgkJIyByZW1vdGUgZGVidWdnZXIKI29wdGlvbnMgCUtHREJfREVWTkFNRT0iXCJjb21cIiIs
S0dEQl9ERVZBRERSPTB4M2Y4LEtHREJfREVWUkFURT05NjAwCiNtYWtlb3B0aW9ucwlERUJVRz0i
LWciCSMgY29tcGlsZSBmdWxsIHN5bWJvbCB0YWJsZQoKIyBDb21wYXRpYmlsaXR5IG9wdGlvbnMK
b3B0aW9ucyAJQ09NUEFUX05PTUlECSMgTmV0QlNEIDAuOCwgMzg2QlNELCBhbmQgQlNESQpvcHRp
b25zIAlDT01QQVRfMDkJIyBOZXRCU0QgMC45Cm9wdGlvbnMgCUNPTVBBVF8xMAkjIE5ldEJTRCAx
LjAKb3B0aW9ucyAJQ09NUEFUXzExCSMgTmV0QlNEIDEuMQpvcHRpb25zIAlDT01QQVRfMTIJIyBO
ZXRCU0QgMS4yLCAzODZCU0QsIGFuZCBCU0RJCm9wdGlvbnMgCUNPTVBBVF8xMwkjIE5ldEJTRCAx
LjMsIDM4NkJTRCwgYW5kIEJTREkKb3B0aW9ucyAJQ09NUEFUXzE0CSMgTmV0QlNEIDEuNApvcHRp
b25zIAlDT01QQVRfMTUJIyBOZXRCU0QgMS41Cm9wdGlvbnMgCUNPTVBBVF8xNgkjIE5ldEJTRCAx
LjYKb3B0aW9ucyAJQ09NUEFUXzIwCSMgTmV0QlNEIDIuMApvcHRpb25zIAlDT01QQVRfMzAJIyBO
ZXRCU0QgMy4wCm9wdGlvbnMgCUNPTVBBVF80MwkjIDQuM0JTRCwgMzg2QlNELCBhbmQgQlNESQpv
cHRpb25zIAlDT01QQVRfMzg2QlNEX01CUlBBUlQgIyByZWNvZ25pemUgb2xkIHBhcnRpdGlvbiBJ
RAojb3B0aW9ucyAJVENQX0NPTVBBVF80MgkjIDQuMkJTRCBUQ1AvSVAgYnVnIGNvbXBhdC4gTm90
IHJlY29tbWVuZGVkLgoKb3B0aW9ucyAJQ09NUEFUX09TU0FVRElPCSMgT1NTIChWb3h3YXJlKSBh
dWRpbyBkcml2ZXIgY29tcGF0aWJpbGl0eQpvcHRpb25zIAlDT01QQVRfU1ZSNAkjIGJpbmFyeSBj
b21wYXRpYmlsaXR5IHdpdGggU1ZSNApvcHRpb25zIAlDT01QQVRfSUJDUzIJIyBiaW5hcnkgY29t
cGF0aWJpbGl0eSB3aXRoIFNDTyBhbmQgSVNDCm9wdGlvbnMgCUNPTVBBVF9MSU5VWAkjIGJpbmFy
eSBjb21wYXRpYmlsaXR5IHdpdGggTGludXgKb3B0aW9ucyAJQ09NUEFUX0ZSRUVCU0QJIyBiaW5h
cnkgY29tcGF0aWJpbGl0eSB3aXRoIEZyZWVCU0QKI29wdGlvbnMgCUNPTVBBVF9NQUNICSMgYmlu
YXJ5IGNvbXBhdGliaWxpdHkgd2l0aCBNYWNoIGJpbmFyaWVzCiNvcHRpb25zIAlDT01QQVRfREFS
V0lOCSMgYmluYXJ5IGNvbXBhdGliaWxpdHkgd2l0aCBEYXJ3aW4gYmluYXJpZXMKI29wdGlvbnMg
CUVYRUNfTUFDSE8JIyBleGVjIE1BQ0gtTyBiaW5hcmllcwojb3B0aW9ucyAJQ09NUEFUX05ESVMJ
IyBORElTIG5ldHdvcmsgZHJpdmVyCiNvcHRpb25zIAlDT01QQVRfUEVDT0ZGCSMga2VybmVsIHN1
cHBvcnQgdG8gcnVuIFdpbjMyIGFwcHMKb3B0aW9ucyAJQ09NUEFUX0JTRFBUWQkjIC9kZXYvW3B0
XXR5Pz8gcHR5cy4KCiMgRmlsZSBzeXN0ZW1zCmZpbGUtc3lzdGVtIAlGRlMJCSMgVUZTCmZpbGUt
c3lzdGVtIAlFWFQyRlMJCSMgc2Vjb25kIGV4dGVuZGVkIGZpbGUgc3lzdGVtIChsaW51eCkKZmls
ZS1zeXN0ZW0gCUxGUwkJIyBsb2ctc3RydWN0dXJlZCBmaWxlIHN5c3RlbQpmaWxlLXN5c3RlbSAJ
TUZTCQkjIG1lbW9yeSBmaWxlIHN5c3RlbQpmaWxlLXN5c3RlbSAJTkZTCQkjIE5ldHdvcmsgRmls
ZSBTeXN0ZW0gY2xpZW50CmZpbGUtc3lzdGVtIAlOVEZTCQkjIFdpbmRvd3MvTlQgZmlsZSBzeXN0
ZW0gKGV4cGVyaW1lbnRhbCkKZmlsZS1zeXN0ZW0gCUNEOTY2MAkJIyBJU08gOTY2MCArIFJvY2sg
UmlkZ2UgZmlsZSBzeXN0ZW0KZmlsZS1zeXN0ZW0gCU1TRE9TRlMJCSMgTVMtRE9TIGZpbGUgc3lz
dGVtCmZpbGUtc3lzdGVtIAlGREVTQwkJIyAvZGV2L2ZkCmZpbGUtc3lzdGVtIAlLRVJORlMJCSMg
L2tlcm4KZmlsZS1zeXN0ZW0gCU5VTExGUwkJIyBsb29wYmFjayBmaWxlIHN5c3RlbQpmaWxlLXN5
c3RlbSAJT1ZFUkxBWQkJIyBvdmVybGF5IGZpbGUgc3lzdGVtCmZpbGUtc3lzdGVtIAlQT1JUQUwJ
CSMgcG9ydGFsIGZpbGVzeXN0ZW0gKHN0aWxsIGV4cGVyaW1lbnRhbCkKZmlsZS1zeXN0ZW0gCVBS
T0NGUwkJIyAvcHJvYwpmaWxlLXN5c3RlbSAJVU1BUEZTCQkjIE5VTExGUyArIHVpZCBhbmQgZ2lk
IHJlbWFwcGluZwpmaWxlLXN5c3RlbSAJVU5JT04JCSMgdW5pb24gZmlsZSBzeXN0ZW0KZmlsZS1z
eXN0ZW0JQ09EQQkJIyBDb2RhIEZpbGUgU3lzdGVtOyBhbHNvIG5lZWRzIHZjb2RhIChiZWxvdykK
ZmlsZS1zeXN0ZW0JU01CRlMJCSMgZXhwZXJpbWVudGFsIC0gQ0lGUzsgYWxzbyBuZWVkcyBuc21i
IChiZWxvdykKZmlsZS1zeXN0ZW0JUFRZRlMJCSMgL2Rldi9wdG0gc3VwcG9ydApmaWxlLXN5c3Rl
bQlUTVBGUwkJIyBFZmZpY2llbnQgbWVtb3J5IGZpbGUtc3lzdGVtCiNmaWxlLXN5c3RlbQlVREYJ
CSMgZXhwZXJpbWVudGFsIC0gT1NUQSBVREYgQ0QvRFZEIGZpbGUtc3lzdGVtCgojIEZpbGUgc3lz
dGVtIG9wdGlvbnMKb3B0aW9ucyAJUVVPVEEJCSMgVUZTIHF1b3Rhcwojb3B0aW9ucyAJRkZTX0VJ
CQkjIEZGUyBFbmRpYW4gSW5kZXBlbmRlbnQgc3VwcG9ydApvcHRpb25zIAlTT0ZUREVQCQkjIEZG
UyBzb2Z0IHVwZGF0ZXMgc3VwcG9ydC4KIyBOb3RlIHRoYXQgVUZTX0RJUkhBU0ggaXMgc3VzcGVj
dGVkIG9mIGNhdXNpbmcga2VybmVsIG1lbW9yeSBjb3JydXB0aW9uLgojIEl0IGlzIG5vdCByZWNv
bW1lbmRlZCBmb3IgZ2VuZXJhbCB1c2UuCiNvcHRpb25zIAlVRlNfRElSSEFTSAkjIFVGUyBMYXJn
ZSBEaXJlY3RvcnkgSGFzaGluZyAtIEV4cGVyaW1lbnRhbApvcHRpb25zIAlORlNTRVJWRVIJIyBO
ZXR3b3JrIEZpbGUgU3lzdGVtIHNlcnZlcgojb3B0aW9ucyAJRkZTX05PX1NOQVBTSE9UCSMgTm8g
RkZTIHNuYXBzaG90IHN1cHBvcnQKI29wdGlvbnMgCUVYVDJGU19TWVNURU1fRkxBR1MgIyBtYWtl
cyBleHQyZnMgZmlsZSBmbGFncyAoYXBwZW5kIGFuZAoJCQkJIyBpbW11dGFibGUpIGJlaGF2ZSBh
cyBzeXN0ZW0gZmxhZ3MuCgojIE5ldHdvcmtpbmcgb3B0aW9ucwojb3B0aW9ucyAJR0FURVdBWQkJ
IyBwYWNrZXQgZm9yd2FyZGluZwpvcHRpb25zIAlJTkVUCQkjIElQICsgSUNNUCArIFRDUCArIFVE
UApvcHRpb25zIAlJTkVUNgkJIyBJUFY2CiNvcHRpb25zIAlJUFNFQwkJIyBJUCBzZWN1cml0eQoj
b3B0aW9ucyAJSVBTRUNfRVNQCSMgSVAgc2VjdXJpdHkgKGVuY3J5cHRpb24gcGFydDsgZGVmaW5l
IHcvSVBTRUMpCiNvcHRpb25zIAlJUFNFQ19OQVRfVAkjIElQc2VjIE5BVCB0cmF2ZXJzYWwgKE5B
VC1UKQojb3B0aW9ucyAJSVBTRUNfREVCVUcJIyBkZWJ1ZyBmb3IgSVAgc2VjdXJpdHkKI29wdGlv
bnMgCU1ST1VUSU5HCSMgSVAgbXVsdGljYXN0IHJvdXRpbmcKI29wdGlvbnMgCVBJTQkJIyBQcm90
b2NvbCBJbmRlcGVuZGVudCBNdWx0aWNhc3QKb3B0aW9ucyAJSVNPLFRQSVAJIyBPU0kKI29wdGlv
bnMgCUVPTgkJIyBPU0kgdHVubmVsaW5nIG92ZXIgSVAKb3B0aW9ucyAJTkVUQVRBTEsJIyBBcHBs
ZVRhbGsgbmV0d29ya2luZyBwcm90b2NvbHMKb3B0aW9ucyAJUFBQX0JTRENPTVAJIyBCU0QtQ29t
cHJlc3MgY29tcHJlc3Npb24gc3VwcG9ydCBmb3IgUFBQCm9wdGlvbnMgCVBQUF9ERUZMQVRFCSMg
RGVmbGF0ZSBjb21wcmVzc2lvbiBzdXBwb3J0IGZvciBQUFAKb3B0aW9ucyAJUFBQX0ZJTFRFUgkj
IEFjdGl2ZSBmaWx0ZXIgc3VwcG9ydCBmb3IgUFBQIChyZXF1aXJlcyBicGYpCm9wdGlvbnMgCVBG
SUxfSE9PS1MJIyBwZmlsKDkpIHBhY2tldCBmaWx0ZXIgaG9va3MKb3B0aW9ucyAJSVBGSUxURVJf
TE9HCSMgaXBtb24oOCkgbG9nIHN1cHBvcnQKb3B0aW9ucyAJSVBGSUxURVJfTE9PS1VQCSMgaXBw
b29sKDgpIHN1cHBvcnQKI29wdGlvbnMgCUlQRklMVEVSX0RFRkFVTFRfQkxPQ0sJIyBibG9jayBh
bGwgcGFja2V0cyBieSBkZWZhdWx0CiNvcHRpb25zIAlUQ1BfREVCVUcJIyBSZWNvcmQgbGFzdCBU
Q1BfTkRFQlVHIHBhY2tldHMgd2l0aCBTT19ERUJVRwoKI29wdGlvbnMgCUFMVFEJCSMgTWFuaXB1
bGF0ZSBuZXR3b3JrIGludGVyZmFjZXMnIG91dHB1dCBxdWV1ZXMKI29wdGlvbnMgCUFMVFFfQkxV
RQkjIFN0b2NoYXN0aWMgRmFpciBCbHVlCiNvcHRpb25zIAlBTFRRX0NCUQkjIENsYXNzLUJhc2Vk
IFF1ZXVlaW5nCiNvcHRpb25zIAlBTFRRX0NETlIJIyBEaWZmc2VydiBUcmFmZmljIENvbmRpdGlv
bmVyCiNvcHRpb25zIAlBTFRRX0ZJRk9RCSMgRmlyc3QtSW4gRmlyc3QtT3V0IFF1ZXVlCiNvcHRp
b25zIAlBTFRRX0ZMT1dWQUxWRQkjIFJFRC9mbG93LXZhbHZlIChyZWQtcGVuYWx0eS1ib3gpCiNv
cHRpb25zIAlBTFRRX0hGU0MJIyBIaWVyYXJjaGljYWwgRmFpciBTZXJ2aWNlIEN1cnZlCiNvcHRp
b25zIAlBTFRRX0xPQ0FMUQkjIExvY2FsIHF1ZXVlaW5nIGRpc2NpcGxpbmUKI29wdGlvbnMgCUFM
VFFfUFJJUQkjIFByaW9yaXR5IFF1ZXVlaW5nCiNvcHRpb25zIAlBTFRRX1JFRAkjIFJhbmRvbSBF
YXJseSBEZXRlY3Rpb24KI29wdGlvbnMgCUFMVFFfUklPCSMgUkVEIHdpdGggSU4vT1VUCiNvcHRp
b25zIAlBTFRRX1dGUQkjIFdlaWdodGVkIEZhaXIgUXVldWVpbmcKCiMgVGhlc2Ugb3B0aW9ucyBl
bmFibGUgdmVyYm9zZSBtZXNzYWdlcyBmb3Igc2V2ZXJhbCBzdWJzeXN0ZW1zLgojIFdhcm5pbmcs
IHRoZXNlIG1heSBjb21waWxlIGxhcmdlIHN0cmluZyB0YWJsZXMgaW50byB0aGUga2VybmVsIQoj
b3B0aW9ucyAJQUNQSVZFUkJPU0UJIyB2ZXJib3NlIEFDUEkgZGV2aWNlIGF1dG9jb25maWcgbWVz
c2FnZXMKb3B0aW9ucyAJRUlTQVZFUkJPU0UJIyB2ZXJib3NlIEVJU0EgZGV2aWNlIGF1dG9jb25m
aWcgbWVzc2FnZXMKb3B0aW9ucyAJTUlJVkVSQk9TRQkjIHZlcmJvc2UgUEhZIGF1dG9jb25maWcg
bWVzc2FnZXMKb3B0aW9ucyAJUENJVkVSQk9TRQkjIHZlcmJvc2UgUENJIGRldmljZSBhdXRvY29u
ZmlnIG1lc3NhZ2VzCiNvcHRpb25zIAlQQ0lfQ09ORklHX0RVTVAJIyB2ZXJib3NlbHkgZHVtcCBQ
Q0kgY29uZmlnIHNwYWNlCiNvcHRpb25zIAlQQ01DSUFWRVJCT1NFCSMgdmVyYm9zZSBQQ01DSUEg
Y29uZmlndXJhdGlvbiBtZXNzYWdlcwpvcHRpb25zIAlTQ1NJVkVSQk9TRQkjIGh1bWFuIHJlYWRh
YmxlIFNDU0kgZXJyb3IgbWVzc2FnZXMKb3B0aW9ucyAJVVNCVkVSQk9TRQkjIHZlcmJvc2UgVVNC
IGRldmljZSBhdXRvY29uZmlnIG1lc3NhZ2VzCiNvcHRpb25zIAlQTlBCSU9TVkVSQk9TRQkjIHZl
cmJvc2UgUG5QIEJJT1MgbWVzc2FnZXMKI29wdGlvbnMgCVBOUEJJT1NERUJVRwkjIG1vcmUgZnVs
c29tZSBQblAgQklPUyBkZWJ1Z2dpbmcgbWVzc2FnZXMKb3B0aW9ucyAJSTJPVkVSQk9TRQkjIHZl
cmJvc2UgSTJPIGRyaXZlciBtZXNzYWdlcwpvcHRpb25zIAlNQ0FWRVJCT1NFCSMgdmVyYm9zZSBN
Q0EgZGV2aWNlIGF1dG9jb25maWcgbWVzc2FnZXMKCm9wdGlvbnMgCU5GU19CT09UX0RIQ1AsTkZT
X0JPT1RfQk9PVFBBUkFNCgojCiMgd3Njb25zIG9wdGlvbnMKIwojIGJ1aWx0aW4gdGVybWluYWwg
ZW11bGF0aW9ucwojb3B0aW9ucyAJV1NFTVVMX1NVTgkJIyBzdW4gdGVybWluYWwgZW11bGF0aW9u
Cm9wdGlvbnMgCVdTRU1VTF9WVDEwMAkJIyBWVDEwMCAvIFZUMjIwIGVtdWxhdGlvbgojIGN1c3Rv
bWl6YXRpb24gb2YgY29uc29sZSBhbmQga2VybmVsIG91dHB1dCAtIHNlZSBkZXYvd3Njb25zL3dz
ZGlzcGxheXZhci5oCm9wdGlvbnMgCVdTRElTUExBWV9DVVNUT01fT1VUUFVUCSMgY29sb3IgY3Vz
dG9taXphdGlvbiBmcm9tIHdzY29uc2N0bCg4KQpvcHRpb25zIAlXU19ERUZBVUxUX0ZHPVdTQ09M
X0dSRUVOCm9wdGlvbnMgCVdTX0RFRkFVTFRfQkc9V1NDT0xfTElHSFRfR1JFWQojb3B0aW9ucyAJ
V1NfREVGQVVMVF9DT0xBVFRSPSIoMCkiCiNvcHRpb25zIAlXU19ERUZBVUxUX01PTk9BVFRSPSIo
MCkiCm9wdGlvbnMgCVdTX0tFUk5FTF9GRz1XU0NPTF9MSUdIVF9SRUQKb3B0aW9ucyAJV1NfS0VS
TkVMX0JHPVdTQ09MX0JMQUNLCiNvcHRpb25zIAlXU19LRVJORUxfQ09MQVRUUj0iIgojb3B0aW9u
cyAJV1NfS0VSTkVMX01PTk9BVFRSPSIiCiMgY3VzdG9taXphdGlvbiBvZiBjb25zb2xlIGJvcmRl
ciBjb2xvcgojb3B0aW9ucyAJV1NESVNQTEFZX0NVU1RPTV9CT1JERVIJIyBjdXN0b20gYm9yZGVy
IGNvbG9ycyB2aWEgd3Njb25zY3RsKDgpCiNvcHRpb25zIAlXU0RJU1BMQVlfQk9SREVSX0NPTE9S
PVdTQ09MX0xJR0hUX0NZQU4KIyBjb21wYXRpYmlsaXR5IHRvIG90aGVyIGNvbnNvbGUgZHJpdmVy
cwpvcHRpb25zIAlXU0RJU1BMQVlfQ09NUEFUX1BDVlQJCSMgZW11bGF0ZSBzb21lIGlvY3Rscwpv
cHRpb25zIAlXU0RJU1BMQVlfQ09NUEFUX1NZU0NPTlMJIyBlbXVsYXRlIHNvbWUgaW9jdGxzCm9w
dGlvbnMgCVdTRElTUExBWV9DT01QQVRfVVNMCQkjIFZUIGhhbmRsaW5nCm9wdGlvbnMgCVdTRElT
UExBWV9DT01QQVRfUkFXS0JECQkjIGNhbiBnZXQgcmF3IHNjYW5jb2Rlcwojb3B0aW9ucyAJV1NL
QkRfRVZFTlRfQVVUT1JFUEVBVAkJIyBhdXRvIHJlcGVhdCBpbiBldmVudCBtb2RlCiNvcHRpb25z
IAlXU0tCRF9VU09OTFkJCQkjIHN0cmlwIG9mZiBub24tVVMga2V5bWFwcwojIGRvbid0IGF0dGFj
aCBwY2tiZCBhcyB0aGUgY29uc29sZSBpZiBubyBQUy8yIGtleWJvYXJkIGlzIGZvdW5kCm9wdGlv
bnMgCVBDS0JEX0NOQVRUQUNIX01BWV9GQUlMCiMgc2VlIGRldi9wY2ticG9ydC93c2tiZG1hcF9t
ZmlpLmMgZm9yIGltcGxlbWVudGVkIGxheW91dHMKI29wdGlvbnMgCVBDS0JEX0xBWU9VVD0iKEtC
X0RFIHwgS0JfTk9ERUFEKSIgIyBmb3IgcGNrYmQgZHJpdmVyCiNvcHRpb25zIAlVS0JEX0xBWU9V
VD0iKEtCX0RFIHwgS0JfTk9ERUFEKSIgICMgZm9yIHVrYmQgZHJpdmVyCiMgYWxsb2NhdGUgYSBu
dW1iZXIgb2YgdmlydHVhbCBzY3JlZW5zIGF0IGF1dG9jb25maWd1cmF0aW9uIHRpbWUKb3B0aW9u
cyAJV1NESVNQTEFZX0RFRkFVTFRTQ1JFRU5TPTQKIyB1c2UgYSBsYXJnZSBzb2Z0d2FyZSBjdXJz
b3IgdGhhdCBkb2Vzbid0IGJsaW5rCm9wdGlvbnMgCVBDRElTUExBWV9TT0ZUQ1VSU09SCiMgbW9k
aWZ5IHRoZSBzY3JlZW4gdHlwZSBvZiB0aGUgY29uc29sZTsgZGVmYXVsdHMgdG8gIjgweDI1Igoj
b3B0aW9ucyAJVkdBX0NPTlNPTEVfU0NSRUVOVFlQRT0iXCI4MHgyNFwiIgojIHdvcmsgYXJvdW5k
IGEgaGFyZHdhcmUgYnVnIHRoYXQgbG9hZGVkIGZvbnRzIGRvbid0IHdvcms7IGZvdW5kIG9uIEFU
SSBjYXJkcwojb3B0aW9ucyAJVkdBX0NPTlNPTEVfQVRJX0JST0tFTl9GT05UU0VMCiMgY29uc29s
ZSBzY3JvbGxpbmcgc3VwcG9ydC4Kb3B0aW9ucyAJV1NESVNQTEFZX1NDUk9MTFNVUFBPUlQKIyBl
bmFibGUgVkdBIHJhc3RlciBtb2RlIGNhcGFibGUgb2YgZGlzcGxheWluZyBtdWx0aWxpbmd1YWwg
dGV4dCBvbiBjb25zb2xlCiNvcHRpb25zIAlWR0FfUkFTVEVSQ09OU09MRQojIGVuYWJsZSBzcGxh
c2ggc2NyZWVuIHN1cHBvcnQ7IHJlcXVpcmVzIGh3IGRyaXZlciBzdXBwb3J0CiNvcHRpb25zIAlT
UExBU0hTQ1JFRU4KI29wdGlvbnMgCVNQTEFTSFNDUkVFTl9QUk9HUkVTUwoKIyBLZXJuZWwgcm9v
dCBmaWxlIHN5c3RlbSBhbmQgZHVtcCBjb25maWd1cmF0aW9uLgpjb25maWcJCW5ldGJzZAlyb290
IG9uID8gdHlwZSA/CiNjb25maWcJCW5ldGJzZAlyb290IG9uIHNkMGEgdHlwZSBmZnMKI2NvbmZp
ZwkJbmV0YnNkCXJvb3Qgb24gPyB0eXBlIG5mcwoKIwojIERldmljZSBjb25maWd1cmF0aW9uCiMK
Cm1haW5idXMwIGF0IHJvb3QKCmNwdSogYXQgbWFpbmJ1cz8KI2lvYXBpYyogYXQgbWFpbmJ1cz8K
CiMgRG9lc24ndCBkbyBhbnl0aGluZyB5ZXQuCiNwNjRoMmFwaWMqIGF0IHBjaT8gZGV2PyBmdW5j
dGlvbj8JIyBQNjRIMiBJT3hBUElDCgojYXBtMAlhdCBtYWluYnVzMAkJCSMgQWR2YW5jZWQgcG93
ZXIgbWFuYWdlbWVudAoKIyBUdW5pbmcgZm9yIHBvd2VyIG1hbmFnZW1lbnQsIHNlZSBhcG0oNCkg
Zm9yIG1vcmUgZGV0YWlscy4KI29wdGlvbnMgCUFQTV9OT19JRExFCQkjIERvbid0IGNhbGwgQklP
UyBDUFUgaWRsZSBmdW5jdGlvbgojb3B0aW9ucyAJQVBNX1YxMF9PTkxZCQkjIFVzZSBvbmx5IHRo
ZSBBUE0gMS4wIGNhbGxzCiNvcHRpb25zIAlBUE1fTk9fUE9XRVJPRkYJCSMgRG9uJ3QgcG93ZXIg
b2ZmIG9uIGhhbHQoOCkKI29wdGlvbnMgCUFQTV9QT1dFUl9QUklOVAkJIyBQcmludCBzdGF0cyBv
biB0aGUgY29uc29sZQojb3B0aW9ucyAJQVBNX0RJU0FCTEVfSU5URVJSVVBUUz0wICMgRG9uJ3Qg
ZGlzYWJsZSBpbnRlcnJ1cHRzCgoKIyBCYXNpYyBCdXMgU3VwcG9ydAoKI0lQTUkgc3VwcG9ydAoj
aXBtaTAJCWF0IG1haW5idXM/CgojIEFkdmFuY2VkIENvbmZpZ3VyYXRpb24gYW5kIFBvd2VyIElu
dGVyZmFjZQoKIyBUaGlzIG9wdGlvbiBjYW4gYmUgdXNlZCB0byByZXRyaWV2ZSBDUFUgYW5kIEFQ
SUMgaW5mb3JtYXRpb24uCiMgdGhhdCBJL08gQVBJQ3MgY2FuIGJlIHVzZWQgaWYgQUNQSSBpcyBl
bmFibGVkIGJlbG93LgojIFRvIHVzZSB0aGUgSS9PIEFQSUMocyksIGVuYWJsZSB0aGUgaW9hcGlj
IGxpbmUgYWJvdmUuCiNvcHRpb25zIAlNUEJJT1MJCSMgY29uZmlndXJlIENQVXMgYW5kIEFQSUNz
IHVzaW5nIE1QQklPUwojb3B0aW9ucyAJTVBCSU9TX1NDQU5QQ0kJIyBmaW5kIFBDSSByb290cyB1
c2luZyBNUEJJT1MKI29wdGlvbnMgCUFDUElfU0NBTlBDSQkjIGZpbmQgUENJIHJvb3RzIHVzaW5n
IEFDUEkKCiNhY3BpMCAJCWF0IG1haW5idXMwCgojb3B0aW9ucyAJQUNQSV9BQ1RJVkFURV9ERVYJ
IyBJZiBzZXQsIGFjdGl2YXRlIGluYWN0aXZlIGRldmljZXMKI29wdGlvbnMgCUFDUElDQV9QRURB
TlRJQwkJIyBmb3JjZSBzdHJpY3QgY29uZm9ybWFuY2UgdG8gdGhlIFNwZWMuCgojIEFDUEkgZGV2
aWNlcwojYWNwaWFjYWQqIAlhdCBhY3BpPwkJIyBBQ1BJIEFDIEFkYXB0ZXIKI2FjcGliYXQqIAlh
dCBhY3BpPwkJIyBBQ1BJIEJhdHRlcnkKI2FjcGlidXQqIAlhdCBhY3BpPwkJIyBBQ1BJIEJ1dHRv
bgojYWNwaWVjKiAJYXQgYWNwaT8JCSMgQUNQSSBFbWJlZGRlZCBDb250cm9sbGVyCiNhY3BpbGlk
KiAJYXQgYWNwaT8JCSMgQUNQSSBMaWQgU3dpdGNoCiNhY3BpdHoqIAlhdCBhY3BpPwkJIyBBQ1BJ
IFRoZXJtYWwgWm9uZQoKIyBNYWluYm9hcmQgZGV2aWNlcwojYXR0aW1lcioJYXQgYWNwaT8JCSMg
QVQgVGltZXIKI2NvbSogCQlhdCBhY3BpPwkJIyBTZXJpYWwgY29tbXVuaWNhdGlvbnMgaW50ZXJm
YWNlCiNmZGMqIAkJYXQgYWNwaT8JCSMgRmxvcHB5IGRpc2sgY29udHJvbGxlcgojam95KgkJYXQg
YWNwaT8JCSMgSm95c3RpY2svR2FtZSBwb3J0CiNscHQqIAkJYXQgYWNwaT8JCSMgUGFyYWxsZWwg
cG9ydAojbXB1KgkJYXQgYWNwaT8JCSMgUm9sYW5kIE1QVS00MDEgTUlESSBVQVJUCiNucHgqCQlh
dCBhY3BpPwkJIyBNYXRoIGNvcHJvY2Vzc29yCiNwY2tiYyogIAlhdCBhY3BpPwkJIyBQQyBrZXli
b2FyZCBjb250cm9sbGVyCiNwY3BwaSoJCWF0IGFjcGk/ICAgICAgICAgICAgICAgICMgQVQtc3R5
bGUgc3BlYWtlciBzb3VuZAojd3NzKiAJCWF0IGFjcGk/CQkjIE5lb01hZ2ljIDI1NkFWIGluIHdz
cyBtb2RlCiN5bSogCQlhdCBhY3BpPwkJIyBZYW1haGEgT1BMMy1TQVsyM10gYXVkaW8KCiMgU29u
eSBWYWlvIGpvZyBkaWFsCiNzcGljKiAJCWF0IGFjcGk/CQkjIFNvbnkgUHJvZ3JhbW1hYmxlIEkv
TyBDb250cm9sbGVyCiN3c21vdXNlKiAJYXQgc3BpYz8KCiMgU29ueSBMQ0QgYnJpZ2h0bmVzcyBl
dGMuCiNzb255KiAJCWF0IGFjcGk/CQkjIFNvbnkgTWlzY2VsbGFuZW91cyBDb250cm9sbGVyCgoj
IFRvc2hpYmEgTGlicmV0dG8gZGV2aWNlcwojdmFsZCogYXQgYWNwaT8KCiMgUGx1Zy1hbmQtUGxh
eSBCSU9TIGFuZCBhdHRhY2hlZCBkZXZpY2VzCgojcG5wYmlvcyoJYXQgbWFpbmJ1cz8KCiMgbWFp
bmJvYXJkIGF1ZGlvIGNoaXBzCiNlc3MqCQlhdCBwbnBiaW9zPyBpbmRleCA/CSMgRVNTIEF1ZGlv
RHJpdmUKI3NiKgkJYXQgcG5wYmlvcz8gaW5kZXggPwkjIE5lb01hZ2ljIDI1NkFWIGluIHNiIG1v
ZGUKI3dzcyoJCWF0IHBucGJpb3M/IGluZGV4ID8JIyBOZW9NYWdpYyAyNTZBViBpbiB3c3MgbW9k
ZQojeW0qCQlhdCBwbnBiaW9zPyBpbmRleCA/CSMgWWFtYWhhIE9QTDMtU0FbMjNdIGF1ZGlvCgoj
IGNvbSBwb3J0CiMgSWYgZW5hYmxlZCwgY29uc2lkZXIgY2hhbmdpbmcgImNvbTAiLCAiY29tMSIs
IGFuZCAiY29tMiIgdW5kZXIgIklTQSBTZXJpYWwKIyBJbnRlcmZhY2VzIiB0byAiY29tKiIsIG90
aGVyd2lzZSBjb20yIHdpbGwgYXR0YWNoIGF0IHBucGJpb3M/IGFuZCB0aGVyZQojIHdpbGwgYmUg
bm8gY29tMC4gIEEgc2lkZSBlZmZlY3QgaXMgcGNtY2lhIChhbmQgb3RoZXIpIGNvbT8gcHJldmlv
dXNseQojIHN0YXJ0aW5nIGF0IGNvbTMgbWF5IGF0dGFjaCBhcyBjb20xIG9yIGNvbTIuCiNjb20q
CQlhdCBwbnBiaW9zPyBpbmRleCA/CSMgc2VyaWFsIHBvcnRzCgojIHBhcmFsbGVsIHBvcnQKIyBU
aGUgYWJvdmUgImNvbSoiIGNvbW1lbnRzIGFwcGx5LCBjZi4gImxwdDAiIHVuZGVyICJJU0EgcGFy
YWxsZWwKIyAicHJpbnRlciBpbnRlcmZhY2VzIi4KI2xwdCoJCWF0IHBucGJpb3M/IGluZGV4ID8J
IyBwYXJhbGxlbCBwb3J0cwoKI3Bja2JjKgkJYXQgcG5wYmlvcz8gaW5kZXggPwkjIFBDIGtleWJv
YXJkL21vdXNlIGNvbnRyb2xsZXIKI2ZkYyoJCWF0IHBucGJpb3M/IGluZGV4ID8JIyBmbG9wcHkg
Y29udHJvbGxlcgojbnB4KgkJYXQgcG5wYmlvcz8gaW5kZXggPwkjIE1hdGggY29wcm9jZXNzb3IK
CiMgSURFIGNvbnRyb2xsZXIgb24gVG9zaGliYSBQb3J0ZWdlIDMwMDAgc2VyaWVzIChjcmlwcGxl
ZCBQQ0kgZGV2aWNlKQojcGNpaWRlKiAJYXQgcG5wYmlvcz8gaW5kZXggPwoKIyBQQ0kgYnVzIHN1
cHBvcnQKcGNpKglhdCBtYWluYnVzPyBidXMgPwpwY2kqCWF0IHBjaGI/IGJ1cyA/CnBjaSoJYXQg
cHBiPyBidXMgPwoKIyBDb25maWd1cmUgUENJIHVzaW5nIEJJT1MgaW5mb3JtYXRpb24KI29wdGlv
bnMgCVBDSUJJT1MJCQkjIFBDSSBCSU9TIHN1cHBvcnQKI29wdGlvbnMgCVBDSUJJT1NWRVJCT1NF
CQkjIFBDSSBCSU9TIHZlcmJvc2UgaW5mbwojb3B0aW9ucyAJUENJQklPU19JUlFTX0hJTlQ9MHgw
YTAwICMgUENJIGludGVycnVwdHMgaGludC4gSVJRIDkgb3IgMTEKI29wdGlvbnMgCVBDSUJJT1Nf
SU5UUl9HVUVTUwkjIHNlZSBwY2liaW9zKDQpCiNvcHRpb25zIAlQQ0lCSU9TX0xJQlJFVFRPX0ZJ
WFVQCSMgdGhpcyBjb2RlIG1ha2VzIHRoZSBUb3NoaWJhIExpYnJldHRvCgkJCQkJIyBMMi9MMyB3
b3JrLCBidXQgc2hvdWxkIG5vdCBiZSBlbmFibGVkCgkJCQkJIyBvbiBhbnl0aGluZyBlbHNlLgoj
b3B0aW9ucyAJUENJQklPU19TSEFSUF9NTTIwX0ZJWFVQICMgdGhpcyBjb2RlIG1ha2VzIHRoZSBT
aGFycCBNTSAyMAoJCQkJCSMgd29yaywgYnV0IHNob3VsZCBub3QgYmUgZW5hYmxlZAoJCQkJCSMg
b24gYW55dGhpbmcgZWxzZS4KI29wdGlvbnMgCVBDSUlOVFJfREVCVUcJCSMgc3VwZXItdmVyYm9z
ZSBQQ0kgaW50ZXJydXB0IGZpeHVwCgojIFBDSSBmaXh1cHMsIGZvciBib3RoIFBDSUJJT1MgYW5k
IEFDUEkKb3B0aW9ucyAJUENJX0FERFJfRklYVVAJCSMgZml4dXAgUENJIEkvTyBhZGRyZXNzZXMK
b3B0aW9ucyAJUENJX0JVU19GSVhVUAkJIyBmaXh1cCBQQ0kgYnVzIG51bWJlcmluZwpvcHRpb25z
IAlQQ0lfSU5UUl9GSVhVUAkJIyBmaXh1cCBQQ0kgaW50ZXJydXB0IHJvdXRpbmcKCiMgUENJIGJy
aWRnZXMKIygjIGljaGxwY2liKiBhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBJbnRlbCBJQ0gg
UENJLUlTQSB3LyB3YXRjaGRvZyBhbmQKCQkJCQkjIFNwZWVkU3RlcCBzdXBwb3J0CiNwaWl4cGNp
YiogYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgSW50ZWwgUElJWDQgUENJLUlTQSB3LyBTcGVl
ZFN0ZXAKI2dzY3BjaWIqIGF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIE5TIEdlb2RlIFBDSS1J
U0Egdy8gR1BJTyBzdXBwb3J0CiN2aWFwY2liKiBhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBW
SUEgVlQ4MjM1IFBDSS1JU0Egdy8gU01CdXMgc3VwcG9ydAojaWljKglhdCB2aWFwY2liPwpwY2hi
KglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBQQ0ktSG9zdCBicmlkZ2VzCiMoIyBwY2ViKglh
dCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBQQ0ktRUlTQSBicmlkZ2VzCnBjaWIqCWF0IHBjaT8g
ZGV2ID8gZnVuY3Rpb24gPwkjIFBDSS1JU0EgYnJpZGdlcwojKCMgcGNtYioJYXQgcGNpPyBkZXYg
PyBmdW5jdGlvbiA/CSMgUENJLU1DQSBicmlkZ2VzCnBwYioJYXQgcGNpPyBkZXYgPyBmdW5jdGlv
biA/CSMgUENJLVBDSSBicmlkZ2VzCiMgWFhYICdwdWMncyBhcmVuJ3QgcmVhbGx5IGJyaWRnZXMs
IGJ1dCB0aGVyZSdzIG5vIGJldHRlciBwbGFjZSBmb3IgdGhlbSBoZXJlCiMoIyBwdWMqCWF0IHBj
aT8gZGV2ID8gZnVuY3Rpb24gPwkjIFBDSSAidW5pdmVyc2FsIiBjb21tLiBjYXJkcwoKYWdwKiAJ
YXQgcGNoYj8KCgojIEVJU0EgYnVzIHN1cHBvcnQKIygjIGVpc2EwCWF0IG1haW5idXM/CiMoIyBl
aXNhMAlhdCBwY2ViPwoKIyBJU0EgYnVzIHN1cHBvcnQKIygjIGlzYTAJYXQgaWNobHBjaWI/CiNp
c2EwCWF0IHBpaXhwY2liPwojaXNhMAlhdCBnc2NwY2liPwojaXNhMAlhdCB2aWFwY2liPwojKCMg
aXNhMAlhdCBtYWluYnVzPwojKCMgaXNhMAlhdCBwY2ViPwppc2EwCWF0IHBjaWI/CgojIFBDTUNJ
QSBidXMgc3VwcG9ydAojKCMgcGNtY2lhKiBhdCBwY2ljPyBjb250cm9sbGVyID8gc29ja2V0ID8K
IygjIHBjbWNpYSogYXQgdGNpYz8gY29udHJvbGxlciA/IHNvY2tldCA/CgojIE1DQSBidXMgc3Vw
cG9ydAojKCMgbWNhMAlhdCBtYWluYnVzPwoKIyBJU0EgUENNQ0lBIGNvbnRyb2xsZXJzCiMoIyBw
Y2ljMAlhdCBpc2E/IHBvcnQgMHgzZTAgaW9tZW0gMHhkMDAwMCBpb3NpeiAweDEwMDAwCiMoIyBw
Y2ljMQlhdCBpc2E/IHBvcnQgMHgzZTIgaW9tZW0gMHhlMDAwMCBpb3NpeiAweDQwMDAKIygjIHBj
aWMyCWF0IGlzYT8gcG9ydCAweDNlNCBpb21lbSAweGUwMDAwIGlvc2l6IDB4NDAwMAojKCMgdGNp
YzAJYXQgaXNhPyBwb3J0IDB4MjQwIGlvbWVtIDB4ZDAwMDAgaW9zaXogMHgxMDAwMAoKIyBQQ0kg
UENNQ0lBIGNvbnRyb2xsZXJzCiMoIyBwY2ljMAlhdCBwY2k/IGRldj8gZnVuY3Rpb24gPwoKIyBJ
U0EgUGx1Zy1hbmQtUGxheSBidXMgc3VwcG9ydAppc2FwbnAwIGF0IGlzYT8KCiMgSVNBIFBsdWct
YW5kLVBsYXkgUENNQ0lBIGNvbnRyb2xsZXJzCiMoIyBwY2ljKglhdCBpc2FwbnA/CgojIENhcmRC
dXMgYnJpZGdlIHN1cHBvcnQKY2JiKgkJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CmNhcmRzbG90
KglhdCBjYmI/CgojIENhcmRCdXMgYnVzIHN1cHBvcnQKY2FyZGJ1cyoJYXQgY2FyZHNsb3Q/CnBj
bWNpYSogCWF0IGNhcmRzbG90PwoKIyBDb3Byb2Nlc3NvciBTdXBwb3J0CgojIE1hdGggQ29wcm9j
ZXNzb3Igc3VwcG9ydAojKCMgbnB4MAlhdCBpc2E/IHBvcnQgMHhmMCBpcnEgMTMJIyB4ODYgbWF0
aCBjb3Byb2Nlc3NvcgoKCiMgQ29uc29sZSBEZXZpY2VzCgojIElTQSBjb25zb2xlCiNwYzAJYXQg
aXNhPyBwb3J0IDB4NjAgaXJxIDEJCSMgcGNjb25zIGdlbmVyaWMgUEMgY29uc29sZSBkcml2ZXIK
IyBLZXlib2FyZCBsYXlvdXQgY29uZmlndXJhdGlvbiBmb3IgcGNjb25zCiNvcHRpb25zIAlGUkVO
Q0hfS0JECiNvcHRpb25zIAlGSU5OSVNIX0tCRAojb3B0aW9ucyAJR0VSTUFOX0tCRAojb3B0aW9u
cyAJTk9SV0VHSUFOX0tCRAoKCiMgd3Njb25zCiMoIyBwY2tiYzAJCWF0IGlzYT8JCQkjIHBjIGtl
eWJvYXJkIGNvbnRyb2xsZXIKcGNrYmQqCQlhdCBwY2tiYz8JCSMgUEMga2V5Ym9hcmQKcG1zKgkJ
YXQgcGNrYmM/CQkjIFBTLzIgbW91c2UgZm9yIHdzbW91c2UKb3B0aW9ucyAJUE1TX0RJU0FCTEVf
UE9XRVJIT09LCSMgRGlzYWJsZSBQUy8yIHJlc2V0IG9uIHJlc3VtZQpvcHRpb25zIAlQTVNfU1lO
QVBUSUNTX1RPVUNIUEFECSMgRW5hYmxlIHN1cHBvcnQgZm9yIFN5bmFwdGljcyBUb3VjaHBhZHMK
IygjIHZnYTAJCWF0IGlzYT8KdmdhKgkJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CiMoIyBwY2Rp
c3BsYXkwCWF0IGlzYT8JCQkjIENHQSwgTURBLCBFR0EsIEhHQQojbWFjaGZiKiAJYXQgcGNpPyBk
ZXYgPyBmdW5jdGlvbiA/ICMgQVRJIE1hY2g2NCBmcmFtZWJ1ZmZlciBkcml2ZXIKd3NkaXNwbGF5
KglhdCB2Z2E/IGNvbnNvbGUgPwojKCMgd3NkaXNwbGF5KglhdCBwY2Rpc3BsYXk/IGNvbnNvbGUg
Pwojd3NkaXNwbGF5KiAJYXQgbWFjaGZiPyBjb25zb2xlID8Kd3NrYmQqCQlhdCBwY2tiZD8gY29u
c29sZSA/CndzbW91c2UqCWF0IHBtcz8gbXV4IDAKCiMgVkVTQSBmcmFtZWJ1ZmZlciBjb25zb2xl
CiNvcHRpb25zIAlLVk04NgkJCSMgcmVxdWlyZWQgZm9yIHZlc2FiaW9zCiN2ZXNhYmlvcyoJYXQg
dmVzYWJpb3NidXM/CiN2ZXNhZmIqIAlhdCB2ZXNhYmlvcz8KI29wdGlvbnMgCVZFU0FGQl9XSURU
SD02NDAKI29wdGlvbnMgCVZFU0FGQl9IRUlHSFQ9NDgwCiNvcHRpb25zIAlWRVNBRkJfREVQVEg9
OAojb3B0aW9ucyAJVkVTQUZCX1BNCQkjIHBvd2VyIG1hbmFnZW1lbnQgc3VwcG9ydAojd3NkaXNw
bGF5KglhdCB2ZXNhZmI/IGNvbnNvbGUgPwoKIygjIGF0dGltZXIwCWF0IGlzYT8KIygjIHBjcHBp
MAkJYXQgaXNhPwpzeXNiZWVwMAlhdCBwY3BwaT8KCiMgU2VyaWFsIERldmljZXMKCiMgUENJIHNl
cmlhbCBpbnRlcmZhY2VzCiMoIyBjb20qCWF0IHB1Yz8gcG9ydCA/CQkJIyAxNng1MHMgb24gInVu
aXZlcnNhbCIgY29tbSBib2FyZHMKIygjIGN5KglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBD
eWNsYWRlcyBDeWNsb20tWSBzZXJpYWwgYm9hcmRzCiMoIyBjeioJYXQgcGNpPyBkZXYgPyBmdW5j
dGlvbiA/CSMgQ3ljbGFkZXMtWiBtdWx0aS1wb3J0IHNlcmlhbCBib2FyZHMKCiMgSVNBIFBsdWct
YW5kLVBsYXkgc2VyaWFsIGludGVyZmFjZXMKIygjIGNvbSoJYXQgaXNhcG5wPwkJCSMgTW9kZW1z
IGFuZCBzZXJpYWwgYm9hcmRzCgojIFBDTUNJQSBzZXJpYWwgaW50ZXJmYWNlcwojIyNjb20qCWF0
IHBjbWNpYT8gZnVuY3Rpb24gPwkJIyBNb2RlbXMgYW5kIHNlcmlhbCBjYXJkcwoKIyMjcGNtY29t
KiBhdCBwY21jaWE/IGZ1bmN0aW9uID8JCSMgUENNQ0lBIG11bHRpLXBvcnQgc2VyaWFsIGNhcmRz
CiMjI2NvbSoJYXQgcGNtY29tPyBzbGF2ZSA/CQkjIC4uLmFuZCB0aGUgc2xhdmUgZGV2aWNlcwoK
IyBDYXJkQnVzIHNlcmlhbCBpbnRlcmZhY2VzCmNvbSoJYXQgY2FyZGJ1cz8gZnVuY3Rpb24gPwkj
IE1vZGVtcyBhbmQgc2VyaWFsIGNhcmRzCgojIElTQSBzZXJpYWwgaW50ZXJmYWNlcwojb3B0aW9u
cyAJQ09NX0hBWUVTUAkJIyBhZGRzIEhheWVzIEVTUCBzZXJpYWwgYm9hcmQgc3VwcG9ydAojKCMg
Y29tMAlhdCBpc2E/IHBvcnQgMHgzZjggaXJxIDQJIyBTdGFuZGFyZCBQQyBzZXJpYWwgcG9ydHMK
IygjIGNvbTEJYXQgaXNhPyBwb3J0IDB4MmY4IGlycSAzCiMoIyBjb20yCWF0IGlzYT8gcG9ydCAw
eDNlOCBpcnEgNQojY29tMwlhdCBpc2E/IHBvcnQgMHgyZTggaXJxIDkKI2FzdDAJYXQgaXNhPyBw
b3J0IDB4MWEwIGlycSA1CSMgQVNUIDQtcG9ydCBzZXJpYWwgY2FyZHMKI2NvbSoJYXQgYXN0PyBz
bGF2ZSA/CiNib2NhMAlhdCBpc2E/IHBvcnQgMHgxMDAgaXJxIDUJIyBCT0NBIDgtcG9ydCBzZXJp
YWwgY2FyZHMKI2JvY2EwCWF0IGlzYT8gcG9ydCAweDEwMCBpcnEgNQkjIEJPQ0EgMTYtcG9ydCBz
ZXJpYWwgY2FyZHMgKEJCMjAxNikKI2JvY2ExCWF0IGlzYT8gcG9ydCAweDE0MCBpcnEgNQkjIHRo
aXMgbGluZSBpcyBhbHNvIG5lZWRlZCBmb3IgQkIyMDE2CiNjb20qCWF0IGJvY2E/IHNsYXZlID8K
I3Rjb20wCWF0IGlzYT8gcG9ydCAweDEwMCBpcnEgNwkjIFRDLTgwMCA4LXBvcnQgc2VyaWFsIGNh
cmRzCiNjb20qCWF0IHRjb20/IHNsYXZlID8KI3J0ZnBzMAlhdCBpc2E/IHBvcnQgMHgxMjMwIGly
cSAxMAkjIFJUIDQtcG9ydCBzZXJpYWwgY2FyZHMKI2NvbSoJYXQgcnRmcHM/IHNsYXZlID8KI2N5
MAlhdCBpc2E/IGlvbWVtIDB4ZDQwMDAgaXJxIDEyCSMgQ3ljbGFkZXMgc2VyaWFsIGNhcmRzCiNh
ZGRjb20wIGF0IGlzYT8gcG9ydCAweDEwOCBpcnEgNQkjIEFkZG9uaWNzIEZsZXhQb3J0IDhTCiNj
b20qCWF0IGFkZGNvbT8gc2xhdmUgPwojbW94YTAJYXQgaXNhPwlwb3J0IDB4MTAwIGlycSA1CSMg
TU9YQSBDMTY4SCBzZXJpYWwgY2FyZCAoZXhwZXJpbWVudGFsKQojY29tKglhdCBtb3hhPyBzbGF2
ZSA/CiNpb2F0KglhdCBpc2E/IHBvcnQgMHgyMjAgaXJxIDUJIyBCT0NBIElPQVQ2NiA2LXBvcnQg
c2VyaWFsIGNhcmQKI2NvbSoJYXQgaW9hdD8gc2xhdmUgPwoKIyBNQ0Egc2VyaWFsIGludGVyZmFj
ZXMKIygjIGNvbSoJYXQgbWNhPyBzbG90ID8JCQkjIDE2eDUwcyBvbiBjb21tIGJvYXJkcwoKIyBQ
YXJhbGxlbCBQcmludGVyIEludGVyZmFjZXMKCiMgUENJIHBhcmFsbGVsIHByaW50ZXIgaW50ZXJm
YWNlcwojKCMgbHB0KglhdCBwdWM/IHBvcnQgPwkJCSMgfHwgcG9ydHMgb24gInVuaXZlcnNhbCIg
Y29tbSBib2FyZHMKCiMgSVNBIHBhcmFsbGVsIHByaW50ZXIgaW50ZXJmYWNlcwojKCMgbHB0MAlh
dCBpc2E/IHBvcnQgMHgzNzggaXJxIDcJIyBzdGFuZGFyZCBQQyBwYXJhbGxlbCBwb3J0cwojKCMg
bHB0MQlhdCBpc2E/IHBvcnQgMHgyNzgKIygjIGxwdDIJYXQgaXNhPyBwb3J0IDB4M2JjCgojIEhh
cmR3YXJlIG1vbml0b3JzCgojIEFNRCA3NjggYW5kIDgxMTEgcG93ZXIvQUNQSSBjb250cm9sbGVy
cwojKCMgYW1kcG0qCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIFJORyBhbmQgU01CdXMgMS4w
IGludGVyZmFjZQojaWljKglhdCBhbWRwbT8JCQkjIHNlbnNvcnMgYmVsb3cgYXJlIG9uIHRoaXMg
YnVzCiNhZHQ3NDYzYyogYXQgaWljPyBhZGRyIDB4MkMJCSMgVW5rbm93biBvdGhlciBtb3RoZXJi
b2FyZChzKQojYWR0NzQ2M2MqIGF0IGlpYz8gYWRkciAweDJECQkjIFR5YW4gUzI4ODEKI2FkdDc0
NjNjKiBhdCBpaWM/IGFkZHIgMHgyRQkJIyBUeWFuIFMyODgyLUQKCiMgSW50ZWwgUElJWDQgcG93
ZXIgbWFuYWdlbWVudCBjb250cm9sbGVycwojKCMgcGlpeHBtKiBhdCBwY2k/IGRldiA/IGZ1bmN0
aW9uID8JIyBQSUlYNCBjb21wYXRpYmxlIFBNIGNvbnRyb2xsZXIKIygjIGlpYyoJYXQgcGlpeHBt
PwkJCSMgU01CdXMgb24gUElJWDQKCiMgaVRFIElUODd4eEYgYW5kIGNvbXBhdGlibGUgaGFyZHdh
cmUgbW9uaXRvcnMKI2l0MAlhdCBpc2E/IHBvcnQgMHgyOTAJCSMgb3RoZXIgcG9ydHM6IDB4YzAw
LCAweGQwMAoKIyBMTTdbODldIGFuZCBjb21wYXRpYmxlIGhhcmR3YXJlIG1vbml0b3JzCiNsbTAJ
YXQgaXNhPwlwb3J0IDB4MjkwCQkjIG90aGVyIGNvbW1vbjogMHgyODAsIDB4MzEwCgojIFBDODcz
NjYgaGFyZHdhcmUgbW9uaXRvcgojbnNjbHBjc2lvKglhdCBpc2E/CiNncGlvKgkJYXQgbnNjbHBj
c2lvPwoKIyBWSUEgVlQ4MkM2ODZBIGhhcmR3YXJlIG1vbml0b3IKI3ZpYWVudiogYXQgdmlhcG0/
CgoKIyBJMk8gZGV2aWNlcwojKCMgaW9wKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBJL08g
cHJvY2Vzc29yCiMoIyBpb3BzcCoJYXQgaW9wPyB0aWQgPwkJCSMgU0NTSS9GQy1BTCBwb3J0cwoj
KCMgbGQqCWF0IGlvcD8gdGlkID8JCQkjIGJsb2NrIGRldmljZXMKIygjIGRwdGkqCWF0IGlvcD8g
dGlkIDAJCQkjIERQVC9BZGFwdGVjIGNvbnRyb2wgaW50ZXJmYWNlCgojIEdQSU8gZGV2aWNlcwoj
Z3BpbyoJYXQgZ3NjcGNpYj8KCiMgMS1XaXJlIHN1cHBvcnQKI2dwaW9vdyogCWF0IGdwaW8/IG9m
ZnNldCA2IG1hc2sgMHgxCSMgMS13aXJlIGJpdGJhbmdpbmcgdmlhIGdwaW8KI29uZXdpcmUqCWF0
IGdwaW9vdz8KCiMgMS1XaXJlIGRldmljZXMKI293dGVtcCogCWF0IG9uZXdpcmU/CQkJIyBUZW1w
ZXJhdHVyZSBzZW5zb3JzCgojIFNDU0kgQ29udHJvbGxlcnMgYW5kIERldmljZXMKCiMgUENJIFND
U0kgY29udHJvbGxlcnMKIygjIGFkdioJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgQWR2YW5T
eXMgMTIwMFtBLEJdLCA5eHhbVSxVQV0gU0NTSQojKCMgYWR3KglhdCBwY2k/IGRldiA/IGZ1bmN0
aW9uID8JIyBBZHZhblN5cyA5eDBVV1tEXSwgMzk0MFVbMiwzXVcgU0NTSQojKCMgYWhjKglhdCBw
Y2k/IGRldiA/IGZ1bmN0aW9uID8JIyBBZGFwdGVjIFsyM105NHgsIGFpYzc4eDAgU0NTSQojKCMg
YWhkKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBBZGFwdGVjIDI5MzIwLCAzOTMyMCAoYWlj
NzkweCkgU0NTSQojKCMgYmhhKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBCdXNMb2dpYyA5
eHggU0NTSQojKCMgZHB0KglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBEUFQgU21hcnRDYWNo
ZS9TbWFydFJBSUQKIygjIGloYSoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgSW5pdGlvIElO
SUMtOTQwLzk1MCBTQ1NJCiMoIyBpc3AqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIFFsb2dp
YyBJU1AgWzEyXTB4MCBTQ1NJL0ZpYnJlQ2hhbm5lbAojKCMgbWx5KglhdCBwY2k/IGRldiA/IGZ1
bmN0aW9uID8JIyBNeWxleCBBY2NlbGVSQUlEIGFuZCBlWHRyZW1lUkFJRAojKCMgbXB0KglhdCBw
Y2k/IGRldiA/IGZ1bmN0aW9uID8JIyBMU0kgRnVzaW9uIFNDU0kvRkMKIygjIG5qcyoJYXQgcGNp
PyBkZXYgPyBmdW5jdGlvbiA/CSMgV29ya2JpdCBOaW5qYVNDU0ktMzIKIygjIHBjc2NwKglhdCBw
Y2k/IGRldiA/IGZ1bmN0aW9uID8JIyBBTUQgNTNjOTc0IFBDc2NzaS1QQ0kgU0NTSQojKCMgc2lv
cCoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgU3ltYmlvcyA1M2M4eHggU0NTSQojKCMgZXNp
b3AqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIFN5bWJpb3MgNTNjODc1IFNDU0kgYW5kIG5l
d2VyCiNvcHRpb25zIAlTSU9QX1NZTUxFRAkJIyBkcml2ZSB0aGUgYWN0LiBMRUQgaW4gc29mdHdh
cmUKIygjIHRybSoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgVGVrcmFtIERDLTM5NVUvVVcv
RiwgREMtMzE1L1UgU0NTSQoKIyBFSVNBIFNDU0kgY29udHJvbGxlcnMKIygjIGFoYioJYXQgZWlz
YT8gc2xvdCA/CQkJIyBBZGFwdGVjIDE3NFswMl0gU0NTSQojKCMgYWhjKglhdCBlaXNhPyBzbG90
ID8JCQkjIEFkYXB0ZWMgMjc0eCwgYWljNzc3MCBTQ1NJCiMoIyBiaGEqCWF0IGVpc2E/IHNsb3Qg
PwkJCSMgQnVzTG9naWMgN3h4IFNDU0kKIygjIGRwdCoJYXQgZWlzYT8gc2xvdCA/CQkJIyBEUFQg
RUFUQSBTQ1NJCiMoIyB1aGEqCWF0IGVpc2E/IHNsb3QgPwkJCSMgVWx0cmFTdG9yIDI0ZiBTQ1NJ
CgojIFBDTUNJQSBTQ1NJIGNvbnRyb2xsZXJzCiMoIyBhaWMqCWF0IHBjbWNpYT8gZnVuY3Rpb24g
PwkJIyBBZGFwdGVjIEFQQS0xNDYwIFNDU0kKIygjIGVzcCoJYXQgcGNtY2lhPyBmdW5jdGlvbiA/
CQkjIFFsb2dpYyBFU1A0MDYvRkFTNDA4IFNDU0kKIygjIHNwYyogCWF0IHBjbWNpYT8gZnVuY3Rp
b24gPwkJIyBGdWppdHN1IE1CODcwMzAvTUI4OTM1MiBTQ1NJCgojIElTQSBQbHVnLWFuZC1QbGF5
IFNDU0kgY29udHJvbGxlcnMKIygjIGFoYSoJYXQgaXNhcG5wPyAJCQkjIEFkYXB0ZWMgQUhBLTE1
NFswMgojKCMgYWljKglhdCBpc2FwbnA/CQkJIyBBZGFwdGVjIEFIQS0xNTIwQgoKIyBJU0EgU0NT
SSBjb250cm9sbGVycwojKCMgYWR2MAlhdCBpc2E/IHBvcnQgPyBpcnEgPyBkcnEgPwkjIEFkdmFu
U3lzIEFQQi01MTRbMDJdIFNDU0kKIygjIGFoYTAJYXQgaXNhPyBwb3J0IDB4MzMwIGlycSA/IGRy
cSA/CSMgQWRhcHRlYyAxNTRbMDJdIFNDU0kKIygjIGFoYTEJYXQgaXNhPyBwb3J0IDB4MzM0IGly
cSA/IGRycSA/CiMoIyBhaGMwCWF0IGlzYT8gcG9ydCA/IGlycSA/CQkjIEFkYXB0ZWMgMjg0eCBT
Q1NJCiMoIyBhaWMwCWF0IGlzYT8gcG9ydCAweDM0MCBpcnEgMTEJIyBBZGFwdGVjIDE1MlswMl0g
U0NTSQojKCMgYmhhMAlhdCBpc2E/IHBvcnQgMHgzMzAgaXJxID8gZHJxID8JIyBCdXNMb2dpYyBb
NDU3XTRYIFNDU0kKIygjIGJoYTEJYXQgaXNhPyBwb3J0IDB4MzM0IGlycSA/IGRycSA/CiMgVGhl
ICJuY2EiIGFuZCAiZHB0IiBwcm9iZXMgbWlnaHQgZ2l2ZSBmYWxzZSBoaXRzIG9yIGhhbmcgeW91
ciBtYWNoaW5lLgojZHB0MAlhdCBpc2E/IHBvcnQgMHgxNzAgaXJxID8gZHJxID8JIyBEUFQgU21h
cnRDYWNoZS9TbWFydFJBSUQKI25jYTAJYXQgaXNhPyBwb3J0IDB4MzYwIGlycSAxNQkjIFBvcnQt
bWFwcGVkIE5DUiA1M0M4MCBjb250cm9sbGVyCiNuY2ExCWF0IGlzYT8gaW9tZW0gMHhkODAwMCBp
cnEgNQkjIE1lbW9yeS1tYXBwZWQgY29udHJvbGxlciAoVDEyOCwgZXRjLikKIygjIHNlYTAJYXQg
aXNhPyBpb21lbSAweGM4MDAwIGlycSA1CSMgU2VhZ2F0ZS9GdXR1cmUgRG9tYWluIFNDU0kKIygj
IHVoYTAJYXQgaXNhPyBwb3J0IDB4MzMwIGlycSA/IGRycSA/CSMgVWx0cmFTdG9yIFsxM100ZiBT
Q1NJCiMoIyB1aGExCWF0IGlzYT8gcG9ydCAweDM0MCBpcnEgPyBkcnEgPwojKCMgd2RzMAlhdCBp
c2E/IHBvcnQgMHgzNTAgaXJxIDE1IGRycSA2CSMgV0Q3MDAwIGFuZCBUTUMtNzAwMCBjb250cm9s
bGVycwojKCMgd2RzMQlhdCBpc2E/IHBvcnQgMHgzNTggaXJxIDExIGRycSA1CgojIENhcmRCdXMg
U0NTSSBjYXJkcwojYWR2KglhdCBjYXJkYnVzPyBmdW5jdGlvbiA/CSMgQWR2YW5TeXMgMTIwMFtB
LEJdLCA5eHhbVSxVQV0gU0NTSQojYWhjKglhdCBjYXJkYnVzPyBmdW5jdGlvbiA/CSMgQWRhcHRl
YyBBRFAtMTQ4MAojbmpzKglhdCBjYXJkYnVzPyBmdW5jdGlvbiA/CSMgV29ya2JpdCBOaW5qYVND
U0ktMzIKCiMgTUNBIFNDU0kgY2FyZHMKIygjIGFoYSoJYXQgbWNhPyBzbG90ID8JCQkjIEFkYXB0
ZWMgQUhBLTE2NDAKCiMgU0NTSSBidXMgc3VwcG9ydApzY3NpYnVzKiBhdCBzY3NpPwoKIyBTQ1NJ
IGRldmljZXMKc2QqCWF0IHNjc2lidXM/IHRhcmdldCA/IGx1biA/CSMgU0NTSSBkaXNrIGRyaXZl
cwojKCMgc3QqCWF0IHNjc2lidXM/IHRhcmdldCA/IGx1biA/CSMgU0NTSSB0YXBlIGRyaXZlcwoj
KCMgY2QqCWF0IHNjc2lidXM/IHRhcmdldCA/IGx1biA/CSMgU0NTSSBDRC1ST00gZHJpdmVzCiMo
IyBjaCoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JIyBTQ1NJIGF1dG9jaGFuZ2VycwojKCMg
c2VzKglhdCBzY3NpYnVzPyB0YXJnZXQgPyBsdW4gPwkjIFNDU0kgRW5jbG9zdXJlIFNlcnZpY2Vz
IGRldmljZXMKIygjIHNzKglhdCBzY3NpYnVzPyB0YXJnZXQgPyBsdW4gPwkjIFNDU0kgc2Nhbm5l
cnMKIygjIHVrKglhdCBzY3NpYnVzPyB0YXJnZXQgPyBsdW4gPwkjIFNDU0kgdW5rbm93bgoKCiMg
UkFJRCBjb250cm9sbGVycyBhbmQgZGV2aWNlcwojKCMgYWFjKglhdCBwY2k/IGRldiA/IGZ1bmN0
aW9uID8JIyBBZGFwdGVjIEFBQyBmYW1pbHkKIygjIGFtcioJYXQgcGNpPyBkZXYgPyBmdW5jdGlv
biA/CSMgQU1JL0xTSSBMb2dpYyBNZWdhUkFJRAojKCMgY2FjKglhdCBlaXNhPyBzbG90ID8JCQkj
IENvbXBhcSBFSVNBIGFycmF5IGNvbnRyb2xsZXJzCiMoIyBjYWMqCWF0IHBjaT8gZGV2ID8gZnVu
Y3Rpb24gPwkjIENvbXBhcSBQQ0kgYXJyYXkgY29udHJvbGxlcnMKIygjIGNpc3MqCWF0IHBjaT8g
ZGV2ID8gZnVuY3Rpb24gPwkjIEhQIFNtYXJ0IEFycmF5IGNvbnRyb2xsZXJzCiMoIyBpY3AqCWF0
IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIElDUC1Wb3J0ZXggR0RUICYgSW50ZWwgUkFJRAojKCMg
bWx4KglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBNeWxleCBEQUM5NjAgJiBERUMgU1dYQ1Ig
ZmFtaWx5CiMoIyBtbHgqCWF0IGVpc2E/IHNsb3QgPwkJCSMgTXlsZXggREFDOTYwICYgREVDIFNX
WENSIGZhbWlseQojKCMgdHdhKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyAzd2FyZSBFc2Nh
bGFkZSA5NXh4IFJBSUQgY29udHJvbGxlcnMKIygjIHR3ZSoJYXQgcGNpPyBkZXYgPyBmdW5jdGlv
biA/CSMgM3dhcmUgRXNjYWxhZGUgUkFJRCBjb250cm9sbGVycwoKIygjIGxkKglhdCBhYWM/IHVu
aXQgPwkJCSMgbG9naWNhbCBkaXNrIGRldmljZXMKIygjIGxkKglhdCBhbXI/IHVuaXQgPwojKCMg
bGQqCWF0IGNhYz8gdW5pdCA/CiMoIyBsZCoJYXQgaWNwPyB1bml0ID8KIygjIGxkKglhdCB0d2E/
IHVuaXQgPwojKCMgbGQqCWF0IHR3ZT8gdW5pdCA/CiMoIyBsZCoJYXQgbWx4PyB1bml0ID8KCiMo
IyBpY3BzcCoJYXQgaWNwPyB1bml0ID8JCQkjIFNDU0kgcGFzcy10aHJvdWdoCgojIElERSBhbmQg
cmVsYXRlZCBkZXZpY2VzCiMgUENJIElERSBjb250cm9sbGVycyAtIHNlZSBwY2lpZGUoNCkgZm9y
IHN1cHBvcnRlZCBoYXJkd2FyZS4KIyBUaGUgMHgwMDAxIGZsYWcgZm9yY2UgdGhlIGRyaXZlciB0
byB1c2UgRE1BLCBldmVuIGlmIHRoZSBkcml2ZXIgZG9lc24ndCBrbm93CiMgaG93IHRvIHNldCB1
cCBETUEgbW9kZXMgZm9yIHRoaXMgY2hpcC4gVGhpcyBtYXkgd29yaywgb3IgbWF5IGNhdXNlCiMg
YSBtYWNoaW5lIGhhbmcgd2l0aCBzb21lIGNvbnRyb2xsZXJzLgojKCMgcGNpaWRlKiAJYXQgcGNp
PyBkZXYgPyBmdW5jdGlvbiA/IGZsYWdzIDB4MDAwMAkjIEdFTkVSSUMgcGNpaWRlIGRyaXZlcgoj
KCMgYWNhcmRpZGUqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEFjYXJkIElERSBjb250cm9s
bGVycwojKCMgYWNlcmlkZSogCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEFjZXIgTGFiIElE
RSBjb250cm9sbGVycwphaGNpc2F0YSogCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEFIQ0kg
U0FUQSBjb250cm9sbGVycwojKCMgYXJ0c2F0YSogCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkj
IEludGVsIGkzMTI0NCBTQVRBIGNvbnRyb2xsZXIKIygjIGNtZGlkZSogCWF0IHBjaT8gZGV2ID8g
ZnVuY3Rpb24gPwkjIENNRCB0ZWNoIElERSBjb250cm9sbGVycwojKCMgY3lwaWRlKiAJYXQgcGNp
PyBkZXYgPyBmdW5jdGlvbiA/CSMgQ3lwcmVzcyBJREUgY29udHJvbGxlcnMKIygjIGdlb2RlaWRl
KiAJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgQU1EIEdlb2RlIElERSBjb250cm9sbGVycwoj
KCMgaHB0aWRlKiAJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgVHJpb25lcy9IaWdoUG9pbnQg
SURFIGNvbnRyb2xsZXJzCiMoIyBpdGVpZGUqIAlhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBJ
VCBFeHByZXNzIElERSBjb250cm9sbGVycwojKCMgaXhwaWRlKiAJYXQgcGNpPyBkZXYgPyBmdW5j
dGlvbiA/CSMgQVRJIElYUCBJREUgY29udHJvbGxlcnMKIygjIG9wdGlpZGUqIAlhdCBwY2k/IGRl
diA/IGZ1bmN0aW9uID8JIyBPcHRpIElERSBjb250cm9sbGVycwpwaWl4aWRlKiAJYXQgcGNpPyBk
ZXYgPyBmdW5jdGlvbiA/CSMgSW50ZWwgSURFIGNvbnRyb2xsZXJzCiMoIyBwZGNpZGUqIAlhdCBw
Y2k/IGRldiA/IGZ1bmN0aW9uID8JIyBQcm9taXNlIElERSBjb250cm9sbGVycwojKCMgcGRjc2F0
YSoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgUHJvbWlzZSBTQVRBMTUwIGNvbnRyb2xsZXJz
CiMoIyByY2NpZGUqIAlhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBTZXJ2ZXJXb3JrcyBJREUg
Y29udHJvbGxlcnMKIygjIHNhdGFsaW5rKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBTaUkg
U0FUQUxpbmsgY29udHJvbGxlcnMKIygjIHNpc2lkZSogCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24g
PwkjIFNpUyBJREUgY29udHJvbGxlcnMKIygjIHNsaWRlKiAgCWF0IHBjaT8gZGV2ID8gZnVuY3Rp
b24gPwkjIFN5bXBob255IExhYnMgSURFIGNvbnRyb2xsZXJzCiMoIyBzdndzYXRhKiAJYXQgcGNp
PyBkZXYgPyBmdW5jdGlvbiA/CSMgU2VydmVyV29ya3MgU0FUQSBjb250cm9sbGVycwojKCMgc3Rw
Y2lkZSoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgU1RNaWNybyBTVFBDIElERSBjb250cm9s
bGVycwojKCMgdmlhaWRlKiAJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgVklBL0FNRC9Odmlk
aWEgSURFIGNvbnRyb2xsZXJzCgojIElTQSBQbHVnLWFuZC1QbGF5IElERSBjb250cm9sbGVycwoj
KCMgd2RjKglhdCBpc2FwbnA/CgojIFBDTUNJQSBJREUgY29udHJvbGxlcnMKIygjIHdkYyoJYXQg
cGNtY2lhPyBmdW5jdGlvbiA/CgojIENhcmRCdXMgSURFIGNvbnRyb2xsZXJzCiNuamF0YSoJYXQg
Y2FyZGJ1cz8gZnVuY3Rpb24gPyBmbGFncyAweDAxCSMgV29ya2JpdCBOaW5qYUFUQS0zMgoKIyBJ
U0EgU1Q1MDYsIEVTREksIGFuZCBJREUgY29udHJvbGxlcnMKIyBVc2UgZmxhZ3MgMHgwMSBpZiB5
b3Ugd2FudCB0byB0cnkgdG8gdXNlIDMyYml0cyBkYXRhIEkvTyAodGhlIGRyaXZlciB3aWxsCiMg
ZmFsbCBiYWNrIHRvIDE2Yml0cyBJL08gaWYgMzJiaXRzIEkvTyBhcmUgbm90IGZ1bmN0aW9uYWwp
LgojIFNvbWUgY29udHJvbGxlcnMgcGFzcyB0aGUgaW5pdGlhbCAzMmJpdCB0ZXN0LCBidXQgd2ls
bCBmYWlsIGxhdGVyLgojKCMgd2RjMAlhdCBpc2E/IHBvcnQgMHgxZjAgaXJxIDE0IGZsYWdzIDB4
MDAKIygjIHdkYzEJYXQgaXNhPyBwb3J0IDB4MTcwIGlycSAxNSBmbGFncyAweDAwCgojIEFUQSAo
SURFKSBidXMgc3VwcG9ydAphdGFidXMqIGF0IGF0YT8KCiMgSURFIGRyaXZlcwojIEZsYWdzIGFy
ZSB1c2VkIG9ubHkgd2l0aCBjb250cm9sbGVycyB0aGF0IHN1cHBvcnQgRE1BIG9wZXJhdGlvbnMK
IyBhbmQgbW9kZSBzZXR0aW5ncyAoZS5nLiBzb21lIHBjaWlkZSBjb250cm9sbGVycykKIyBUaGUg
bG93ZXN0IG9yZGVyIGZvdXIgYml0cyAocmlnaHRtb3N0IGRpZ2l0KSBvZiB0aGUgZmxhZ3MgZGVm
aW5lIHRoZSBQSU8KIyBtb2RlIHRvIHVzZSwgdGhlIG5leHQgc2V0IG9mIGZvdXIgYml0cyB0aGUg
RE1BIG1vZGUgYW5kIHRoZSB0aGlyZCBzZXQgdGhlCiMgVWx0cmFETUEgbW9kZS4gRm9yIGVhY2gg
c2V0IG9mIGZvdXIgYml0cywgdGhlIDMgbG93ZXIgYml0cyBkZWZpbmUgdGhlIG1vZGUKIyB0byB1
c2UsIGFuZCB0aGUgbGFzdCBiaXQgbXVzdCBiZSAxIGZvciB0aGlzIHNldHRpbmcgdG8gYmUgdXNl
ZC4KIyBGb3IgRE1BIGFuZCBVRE1BLCAweGYgKDExMTEpIG1lYW5zICdkaXNhYmxlJy4KIyAweDBm
YWMgbWVhbnMgJ3VzZSBQSU8gbW9kZSA0LCBETUEgbW9kZSAyLCBkaXNhYmxlIFVsdHJhRE1BJy4K
IyAoMHhjPTExMDAsIDB4YT0xMDEwLCAweGY9MTExMSkKIyAweDAwMDAgbWVhbnMgInVzZSB3aGF0
ZXZlciB0aGUgZHJpdmUgY2xhaW1zIHRvIHN1cHBvcnQiLgp3ZCoJYXQgYXRhYnVzPyBkcml2ZSA/
IGZsYWdzIDB4MDAwMAoKIyBBVEEgUkFJRCBjb25maWd1cmF0aW9uIHN1cHBvcnQsIGFzIGZvdW5k
IG9uIHNvbWUgUHJvbWlzZSBjb250cm9sbGVycy4KcHNldWRvLWRldmljZQlhdGFyYWlkCiMoIyBs
ZCoJYXQgYXRhcmFpZD8gdmVuZHR5cGUgPyB1bml0ID8KCiMgQVRBUEkgYnVzIHN1cHBvcnQKYXRh
cGlidXMqIGF0IGF0YXBpPwoKIyBBVEFQSSBkZXZpY2VzCiMgZmxhZ3MgaGF2ZSB0aGUgc2FtZSBt
ZWFuaW5nIGFzIGZvciBJREUgZHJpdmVzLgpjZCoJYXQgYXRhcGlidXM/IGRyaXZlID8gZmxhZ3Mg
MHgwMDAwCSMgQVRBUEkgQ0QtUk9NIGRyaXZlcwpzZCoJYXQgYXRhcGlidXM/IGRyaXZlID8gZmxh
Z3MgMHgwMDAwCSMgQVRBUEkgZGlzayBkcml2ZXMKIygjIHN0KglhdCBhdGFwaWJ1cz8gZHJpdmUg
PyBmbGFncyAweDAwMDAJIyBBVEFQSSB0YXBlIGRyaXZlcwojKCMgdWsqCWF0IGF0YXBpYnVzPyBk
cml2ZSA/IGZsYWdzIDB4MDAwMAkjIEFUQVBJIHVua25vd24KCgojIE1pc2NlbGxhbmVvdXMgbWFz
cyBzdG9yYWdlIGRldmljZXMKCiMgSVNBIGZsb3BweQojKCMgZmRjMAlhdCBpc2E/IHBvcnQgMHgz
ZjAgaXJxIDYgZHJxIDIJIyBzdGFuZGFyZCBQQyBmbG9wcHkgY29udHJvbGxlcnMKI2ZkYzEJYXQg
aXNhPyBwb3J0IDB4MzcwIGlycSA/IGRycSA/CiMoIyBmZCoJYXQgZmRjPyBkcml2ZSA/CQkJIyB0
aGUgZHJpdmVzIHRoZW1zZWx2ZXMKIyBzb21lIG1hY2hpbmVzIG5lZWQgeW91IHRvIGRvIHRoaXMg
aW5zdGVhZCBvZiBmZCoKI2ZkMAlhdCBmZGMwIGRyaXZlIDAKCiMgSVNBIENELVJPTSBkZXZpY2Vz
CiNtY2QwCWF0IGlzYT8gcG9ydCAweDMwMCBpcnEgMTAJIyBNaXRzdW1pIENELVJPTSBkcml2ZXMK
CiMgSVNBIHRhcGUgZGV2aWNlcwojIG5vdGU6IHRoZSB3dCBkcml2ZXIgY29uZmxpY3RzIHVucGxl
YXNhbnRseSB3aXRoIFNNQyBib2FyZHMgYXQgdGhlCiMgc2FtZSBJL08gYWRkcmVzcy4gVGhlIHBy
b2JlIHJlcHJvZ3JhbXMgdGhlaXIgRUVQUk9Ncy4gRG9uJ3QKIyB1bmNvbW1lbnQgaXQgdW5sZXNz
IHlvdSBhcmUgYWN0dWFsbHkgdXNpbmcgaXQuCiN3dDAJYXQgaXNhPyBwb3J0IDB4MzA4IGlycSA1
IGRycSAxCSMgQXJjaGl2ZSBhbmQgV2FuZ3RlayBRSUMgdGFwZSBkcml2ZXMKCiMgTUNBIEVTREkg
ZGV2aWNlcwojKCMgZWRjKglhdCBtY2E/IHNsb3QgPwkJCSMgSUJNIEVTREkgRGlzayBDb250cm9s
bGVycwojKCMgZWQqCWF0IGVkYz8KCgojIE5ldHdvcmsgSW50ZXJmYWNlcwoKIyBQQ0kgbmV0d29y
ayBpbnRlcmZhY2VzCiMoIyBhbioJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgQWlyb25ldCBQ
QzQ1MDAvUEM0ODAwICg4MDIuMTEpCiMoIyBhdGgqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkj
IEF0aGVyb3MgNTIxMC81MjExLzUyMTIgODAyLjExCiMoIyBhdHcqCWF0IHBjaT8gZGV2ID8gZnVu
Y3Rpb24gPwkjIEFETXRlayBBRE04MjExICg4MDIuMTEpCmJjZSogCWF0IHBjaT8gZGV2ID8gZnVu
Y3Rpb24gPwkjIEJyb2FkY29tIDQ0MDEgMTAvMTAwIEV0aGVybmV0CiMoIyBiZ2UqIAlhdCBwY2k/
IGRldiA/IGZ1bmN0aW9uID8JIyBCcm9hZGNvbSA1NzB4IGdpZ2FiaXQgRXRoZXJuZXQKIygjIGRn
ZSoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgSW50ZWwgODI1OTcgMTBHYkUgTFIKIygjIGVu
KglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBFTkkvQWRhcHRlYyBBVE0KIygjIGVwKglhdCBw
Y2k/IGRldiA/IGZ1bmN0aW9uID8JIyAzQ29tIDNjNTl4CiMoIyBlcGljKglhdCBwY2k/IGRldiA/
IGZ1bmN0aW9uID8JIyBTTUMgRVBJQy8xMDAgRXRoZXJuZXQKIygjIGVzaCoJYXQgcGNpPyBkZXYg
PyBmdW5jdGlvbiA/CSMgRXNzZW50aWFsIEhJUFBJIGNhcmQKIygjIGV4KglhdCBwY2k/IGRldiA/
IGZ1bmN0aW9uID8JIyAzQ29tIDkweFtCQ10KIygjIGZwYSoJYXQgcGNpPyBkZXYgPyBmdW5jdGlv
biA/CSMgREVDIERFRlBBIEZEREkKIygjIGZ4cCoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMg
SW50ZWwgRXRoZXJFeHByZXNzIFBSTyAxMCsvMTAwQgojKCMgZ3NpcCoJYXQgcGNpPyBkZXYgPyBm
dW5jdGlvbiA/CSMgTlM4MzgyMCBHaWdhYml0IEV0aGVybmV0CiMoIyBobWUqCWF0IHBjaT8gZGV2
ID8gZnVuY3Rpb24gPwkjIFN1biBNaWNyb2VsZWN0cm9uaWNzIFNUUDIwMDItU1RRCiMoIyBpcHcq
CWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEludGVsIFBSTy9XaXJlbGVzcyAyMTAwCiMoIyBp
d2kqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEludGVsIFBSTy9XaXJlbGVzcyAyMjAwQkcK
IygjIGxlKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBQQ25ldC1QQ0kgRXRoZXJuZXQKIygj
IGxtYyoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgTGFuIE1lZGlhIENvcnAgU1NJL0hTU0kv
RFMzCiMoIyBtc2tjKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBNYXJ2ZWxsIFl1a29uIDIg
R2lnYWJpdCBFdGhlcm5ldAojKCMgbXNrKglhdCBtc2tjPwkJCSMgTWFydmVsbCBZdWtvbiAyIEdp
Z2FiaXQgRXRoZXJuZXQKIygjIG10ZCoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgTXlzb24g
TVREODAzIDMtaW4tMSBFdGhlcm5ldAojbmRpcyogCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkj
IEV4cGVyaW1lbnRhbCAtIE5ESVMgTmV0d29yayBEcml2ZXIKIygjIG5lKglhdCBwY2k/IGRldiA/
IGZ1bmN0aW9uID8JIyBORTIwMDAtY29tcGF0aWJsZSBFdGhlcm5ldAojKCMgbmZlKglhdCBwY2k/
CWRldiA/IGZ1bmN0aW9uID8JIyBOVklESUEgbkZvcmNlIEV0aGVybmV0CiMoIyBudHdvYyoJYXQg
cGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgUmlzY29tL04yIFBDSSBTeW5jIFNlcmlhbAojKCMgcGNu
KglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBBTUQgUENuZXQtUENJIEV0aGVybmV0CiMoIyBy
YWwqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIFJhbGluayBUZWNobm9sb2d5IFJUMjV4MCA4
MDIuMTFhL2IvZwojKCMgcmUqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIFJlYWx0ZWsgODEz
OUMrLzgxNjkvODE2OVMvODExMFMKIygjIHJ0ayoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMg
UmVhbHRlayA4MTI5LzgxMzkKIygjIHNmKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBBZGFw
dGVjIEFJQy02OTE1IEV0aGVybmV0CiMoIyBzaXAqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkj
IFNpUyA5MDAvRFA4MzgxNSBFdGhlcm5ldAojKCMgc2tjKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9u
ID8JIyBTeXNLb25uZWN0IFNLOTgyMSBHaWdhYml0IEV0aGVybmV0CiMoIyBzayoJYXQgc2tjPwkJ
CQkjIFN5c0tvbm5lY3QgU0s5ODIxIEdpZ2FiaXQgRXRoZXJuZXQKIygjIHN0ZSoJYXQgcGNpPyBk
ZXYgPyBmdW5jdGlvbiA/CSMgU3VuZGFuY2UgU1QtMjAxIEV0aGVybmV0CiMoIyBzdGdlKglhdCBw
Y2k/IGRldiA/IGZ1bmN0aW9uID8JIyBTdW5kYW5jZS9UYW1hcmFjayBUQzkwMjEgR2lnYWJpdAoj
KCMgdGkqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEFsdGVvbiBBQ0VuaWMgZ2lnYWJpdCBF
dGhlcm5ldAojKCMgdGwqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIFRodW5kZXJMQU4tYmFz
ZWQgRXRoZXJuZXQKIygjIHRscCoJYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CSMgREVDY2hpcCAy
MXg0eCBhbmQgY2xvbmVzCiMoIyB0eHAqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIDNjb20g
M2NyOTkwCiMoIyB2Z2UqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIFZJQVRlY2ggVlQ2MTJY
IEdpZ2FiaXQgRXRoZXJuZXQKIygjIHZyKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBWSUEg
UmhpbmUgRmFzdCBFdGhlcm5ldAojKCMgd2kqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIElu
dGVyc2lsIFByaXNtIE1pbmktUENJICg4MDIuMTFiKQojKCMgd20qCWF0IHBjaT8gZGV2ID8gZnVu
Y3Rpb24gPwkjIEludGVsIDgyNTR4IGdpZ2FiaXQKd3BpKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9u
ID8JIyBJbnRlbCBQUk8vV2lyZWxlc3MgMzk0NUFCRwojKCMgeGdlKglhdCBwY2k/IGRldiA/IGZ1
bmN0aW9uID8JIyBOZXRlcmlvbiAoUzJpbykgWGZyYW1lLUkgMTBHYkUKCiMgRUlTQSBuZXR3b3Jr
IGludGVyZmFjZXMKIygjIGVwKglhdCBlaXNhPyBzbG90ID8JCQkjIDNDb20gM2M1NzkgRXRoZXJu
ZXQKIygjIGZlYSoJYXQgZWlzYT8gc2xvdCA/CQkJIyBERUMgREVGRUEgRkRESQojKCMgdGxwKglh
dCBlaXNhPyBzbG90ID8JCQkjIERFQyBERS00MjUgRXRoZXJuZXQKCiMgSVNBIFBsdWctYW5kLVBs
YXkgbmV0d29yayBpbnRlcmZhY2VzCiMoIyBhbioJYXQgaXNhcG5wPwkJCSMgQWlyb25ldCA4MDIu
MTEKIygjIGVwKglhdCBpc2FwbnA/CQkJIyAzQ29tIDNjNTA5IEV0aGVybmV0CiMoIyBmbXYqCWF0
IGlzYXBucD8JCQkjIEZ1aml0c3UgRk1WLTE4MwojKCMgbGUqCWF0IGlzYXBucD8JCQkjIEFNRCBQ
Q25ldC1JU0EgRXRoZXJuZXQKIygjIG5lKglhdCBpc2FwbnA/CQkJIyBORTIwMDAtY29tcGF0aWJs
ZSBFdGhlcm5ldAojKCMgdHIqCWF0IGlzYXBucD8JCQkjIElCTS8zQ09NIFRST1BJQyBUb2tlbi1S
aW5nCgojIFBDTUNJQSBuZXR3b3JrIGludGVyZmFjZXMKIygjIGFuKglhdCBwY21jaWE/IGZ1bmN0
aW9uID8JCSMgQWlyb25ldCBQQzQ1MDAvUEM0ODAwICg4MDIuMTEpCiMoIyBhd2kqCWF0IHBjbWNp
YT8gZnVuY3Rpb24gPwkJIyBCYXlTdGFjayA2NTAvNjYwICg4MDIuMTFGSC9EUykKIygjIGNudyoJ
YXQgcGNtY2lhPyBmdW5jdGlvbiA/CQkjIFhpcmNvbS9OZXR3YXZlIEFpclN1cmZlcgojKCMgY3Mq
CWF0IHBjbWNpYT8gZnVuY3Rpb24gPwkJIyBDUzg5eHggRXRoZXJuZXQKIygjIGVwKglhdCBwY21j
aWE/IGZ1bmN0aW9uID8JCSMgM0NvbSAzYzU4OSBhbmQgM2M1NjIgRXRoZXJuZXQKIygjIG1iZSoJ
YXQgcGNtY2lhPyBmdW5jdGlvbiA/CQkjIE1CODY5NnggYmFzZWQgRXRoZXJuZXQKIygjIG5lKglh
dCBwY21jaWE/IGZ1bmN0aW9uID8JCSMgTkUyMDAwLWNvbXBhdGlibGUgRXRoZXJuZXQKIygjIHJh
eSoJYXQgcGNtY2lhPyBmdW5jdGlvbiA/CQkjIFJheXRoZW9uIFJheWxpbmsgKDgwMi4xMSkKIygj
IHNtKglhdCBwY21jaWE/IGZ1bmN0aW9uID8JCSMgTWVnYWhlcnR6IEV0aGVybmV0CiMgdHIgYXQg
cGNtY2lhIGhhcyBwcm9ibGVtcyB3aXRoIENhcmRidXMgYnJpZGdlcwojdHIqCWF0IHBjbWNpYT8g
ZnVuY3Rpb24gPwkJIyBUUk9QSUMgYmFzZWQgVG9rZW4tUmluZwojKCMgd2kqCWF0IHBjbWNpYT8g
ZnVuY3Rpb24gPwkJIyBMdWNlbnQvSW50ZXJzaWwgV2F2ZUxhbiBJRUVFICg4MDIuMTEpCiMoIyB4
aXJjKglhdCBwY21jaWE/IGZ1bmN0aW9uID8JCSMgWGlyY29tIENyZWRpdENhcmQgRXRoZXJuZXQK
IygjIGNvbSoJYXQgeGlyYz8KIygjIHhpKglhdCB4aXJjPwojKCMgbWh6YyoJYXQgcGNtY2lhPyBm
dW5jdGlvbiA/CQkjIE1lZ2FoZXJ0eiBFdGhlcm5ldC9Nb2RlbSBjb21ibyBjYXJkcwojKCMgY29t
KglhdCBtaHpjPwojKCMgc20qCWF0IG1oemM/CgojIElTQSBuZXR3b3JrIGludGVyZmFjZXMKIyMj
IyNhdGUwCWF0IGlzYT8gcG9ydCAweDJhMCBpcnEgPwkJIyBBVDE3MDAKIyMjIyNjczAJYXQgaXNh
PyBwb3J0IDB4MzAwIGlvbWVtID8gaXJxID8gZHJxID8JIyBDUzg5MDAgRXRoZXJuZXQKIyMjIyNl
YzAJYXQgaXNhPyBwb3J0IDB4MjUwIGlvbWVtIDB4ZDgwMDAgaXJxIDkJIyAzQ29tIDNjNTAzIEV0
aGVybmV0CiMjIyMjZWcwCWF0IGlzYT8gcG9ydCAweDI4MCBpcnEgOQkJIyAzQzUwNSBldGhlcm5l
dCBjYXJkcwojIyMjI2VsMAlhdCBpc2E/IHBvcnQgMHgzMDAgaXJxIDkJCSMgM0M1MDEgZXRoZXJu
ZXQgY2FyZHMKIyMjIyNlcCoJYXQgaXNhPyBwb3J0ID8gaXJxID8JCQkjIDNDNTA5IGV0aGVybmV0
IGNhcmRzCiMjIyMjZWYwCWF0IGlzYT8gcG9ydCAweDM2MCBpb21lbSAweGQwMDAwIGlycSA3CSMg
M0M1MDcKIyMjIyNhaTAJYXQgaXNhPyBwb3J0IDB4MzYwIGlvbWVtIDB4ZDAwMDAgaXJxIDcJIyBT
dGFyTEFOCiMjIyMjZm12MAlhdCBpc2E/IHBvcnQgMHgyYTAgaXJxID8JCSMgRk1WLTE4MS8xODIK
IyMjIyNpeDAJYXQgaXNhPyBwb3J0IDB4MzAwIGlycSAxMAkJIyBFdGhlckV4cHJlc3MvMTYKIyMj
IyNpeTAJYXQgaXNhPyBwb3J0IDB4MzYwIGlycSA/CQkjIEV0aGVyRXhwcmVzcyBQUk8gMTAgSVNB
CiMjIyMjbGMwCWF0IGlzYT8gcG9ydCAweDMyMCBpb21lbSA/IGlycSA/CSMgREVDIEV0aGVyV09S
S1MgSUlJIChMRU1BQykKIyMjIyMjZGVwY2EwCWF0IGlzYT8gcG9ydCAweDMwMCBpb21lbSAweGM4
MDAwIGlvc2l6IDB4ODAwMCBpcnEgNQkjIERFUENBCiMjIyMjI2xlKglhdCBkZXBjYT8KIyMjIyNu
ZWxlMAlhdCBpc2E/IHBvcnQgMHgzMjAgaXJxIDkgZHJxIDcJCSMgTkUyMTAwCiMjIyMjbGUqCWF0
IG5lbGU/CiMjIyMjI250d29jMAlhdCBpc2E/IHBvcnQgMHgzMDAgaXJxIDUgaW9tZW0gMHhjODAw
MCBmbGFncyAxCSMgUmlzY29tL04yIHN5bmMgc2VyaWFsCiMjIyMjYmljYzAJYXQgaXNhPyBwb3J0
IDB4MzIwIGlycSAxMCBkcnEgNwkJIyBCSUNDIElzb0xhbgojIyMjI2xlKglhdCBiaWNjPwojIyMj
I25lMAlhdCBpc2E/IHBvcnQgMHgyODAgaXJxIDkJCSMgTkVbMTJdMDAwIGV0aGVybmV0IGNhcmRz
CiMjIyMjbmUxCWF0IGlzYT8gcG9ydCAweDMwMCBpcnEgMTAKIyMjIyNzbTAJYXQgaXNhPyBwb3J0
IDB4MzAwIGlycSAxMAkJIyBTTUM5MUM5eCBFdGhlcm5ldAojIyMjI3RyMAlhdCBpc2E/IHBvcnQg
MHhhMjAgaW9tZW0gMHhkODAwMCBpcnEgPwkjIElCTSBUUk9QSUMgYmFzZWQgVG9rZW4tUmluZwoj
IyMjI3RyMQlhdCBpc2E/IHBvcnQgMHhhMjQgaW9tZW0gMHhkMDAwMCBpcnEgPwkjIElCTSBUUk9Q
SUMgYmFzZWQgVG9rZW4tUmluZwojIyMjI3RyKglhdCBpc2E/IHBvcnQgPyBpcnEgPwkJCSMgM0NP
TSBUUk9QSUMgYmFzZWQgVG9rZW4tUmluZwojIyMjI3dlMAlhdCBpc2E/IHBvcnQgMHgyODAgaW9t
ZW0gMHhkMDAwMCBpcnEgOQkjIFdEL1NNQyBFdGhlcm5ldAojIyMjI3dlMQlhdCBpc2E/IHBvcnQg
MHgzMDAgaW9tZW0gMHhjYzAwMCBpcnEgMTAKCiMgQ2FyZEJ1cyBuZXR3b3JrIGNhcmRzCmF0aCoJ
YXQgY2FyZGJ1cz8gZnVuY3Rpb24gPwkjIEF0aGVyb3MgNTIxMC81MjExLzUyMTIgODAyLjExCiMo
IyBhdHcqCWF0IGNhcmRidXM/IGZ1bmN0aW9uID8JIyBBRE10ZWsgQURNODIxMSAoODAyLjExKQoj
KCMgZXgqCWF0IGNhcmRidXM/IGZ1bmN0aW9uID8JIyAzQ29tIDNDNTc1VFgKIygjIGZ4cCoJYXQg
Y2FyZGJ1cz8gZnVuY3Rpb24gPwkjIEludGVsIGk4MjU1eAojKCMgcnRrKglhdCBjYXJkYnVzPyBm
dW5jdGlvbiA/CSMgUmVhbHRlayA4MTI5LzgxMzkKcmFsKglhdCBjYXJkYnVzPyBmdW5jdGlvbiA/
CSMgUmFsaW5rIFRlY2hub2xvZ3kKIygjIHJ0dyoJYXQgY2FyZGJ1cz8gZnVuY3Rpb24gPwkjIFJl
YWx0ZWsgODE4MEwgKDgwMi4xMSkKIygjIHRscCoJYXQgY2FyZGJ1cz8gZnVuY3Rpb24gPwkjIERF
Q2NoaXAgMjExNDMKCiMgTUNBIG5ldHdvcmsgY2FyZHMKIyMjIyNlbG1jKglhdCBtY2E/IHNsb3Qg
PwkJCSMgM0NvbSBFdGhlckxpbmsvTUMgKDNjNTIzKQojIyMjI2VwKglhdCBtY2E/IHNsb3QgPwkJ
CSMgM0NvbSBFdGhlckxpbmsgSUlJICgzYzUyOSkKIyMjIyN3ZSoJYXQgbWNhPyBzbG90ID8JCQkj
IFdEL1NNQyBFdGhlcm5ldAojIyMjI2F0ZSoJYXQgbWNhPyBzbG90ID8JCQkjIEFsbGllZCBUZWxl
c2lzIEFUMTcyMAojIyMjI25lKglhdCBtY2E/IHNsb3QgPwkJCSMgTm92ZWxsIE5FLzIgYW5kIGNs
b25lcwojIyMjI3RyKglhdCBtY2E/IHNsb3QgPwkJCSMgSUJNIFRva2VuIFJpbmcgYWRhcHRlcgoj
IyMjI3RyYSoJYXQgbWNhPyBzbG90ID8JCQkjIFRpYXJhIExBTkNhcmQvRSBhbmQgY2xvbmVzCiMj
IyMjbGUqCWF0IG1jYT8gc2xvdCA/CQkJIyBTS05FVCBQZXJzb25hbC9NQzIrCgojIE1JSS9QSFkg
c3VwcG9ydAojKCMgYWNwaHkqCWF0IG1paT8gcGh5ID8JCQkjIEFsdGltYSBBQzEwMSBhbmQgQU1E
IEFtNzljODc0IFBIWXMKIygjIGFtaHBoeSogYXQgbWlpPyBwaHkgPwkJCSMgQU1EIDc5YzkwMSBF
dGhlcm5ldCBQSFlzCmJtdHBoeSogYXQgbWlpPyBwaHkgPwkJCSMgQnJvYWRjb20gQkNNNTIwMSBh
bmQgQkNNNTIwMiBQSFlzCiMoIyBicmdwaHkqIGF0IG1paT8gcGh5ID8JCQkjIEJyb2FkY29tIEJD
TTU0MDAtZmFtaWx5IFBIWXMKIygjIGNpcGh5KglhdCBtaWk/IHBoeSA/CQkJIyBDaWNhZGEgQ1M4
MjAxIEdpZy1FIFBIWXMKIygjIGRtcGh5KglhdCBtaWk/IHBoeSA/CQkJIyBEYXZpY29tIERNOTEw
MSBQSFlzCiMoIyBleHBoeSoJYXQgbWlpPyBwaHkgPwkJCSMgM0NvbSBpbnRlcm5hbCBQSFlzCiMo
IyBnZW50YmkqIGF0IG1paT8gcGh5ID8JCQkjIEdlbmVyaWMgVGVuLUJpdCAxMDAwQkFTRS1bQ0xT
XVggUEhZcwojKCMgZ2x4dHBoeSogYXQgbWlpPyBwaHkgPwkJCSMgTGV2ZWwgT25lIExYVC0xMDAw
IFBIWXMKIygjIGdwaHl0ZXIqIGF0IG1paT8gcGh5ID8JCQkjIE5TODM4NjEgR2lnLUUgUEhZCiMo
IyBpY3NwaHkqIGF0IG1paT8gcGh5ID8JCQkjIEludGVncmF0ZWQgQ2lyY3VpdCBTeXN0ZW1zIElD
UzE4OXgKIygjIGlncGh5KglhdCBtaWk/IHBoeSA/CQkJIyBJbnRlbCBJR1AwMUUxMDAwCiMoIyBp
a3BoeSoJYXQgbWlpPyBwaHkgPwkJCSMgSW50ZWwgODI1NjMgUEhZcwojKCMgaW5waHkqCWF0IG1p
aT8gcGh5ID8JCQkjIEludGVsIDgyNTU1IFBIWXMKIygjIGlvcGh5KglhdCBtaWk/IHBoeSA/CQkJ
IyBJbnRlbCA4MjU1MyBQSFlzCiMoIyBseHRwaHkqIGF0IG1paT8gcGh5ID8JCQkjIExldmVsIE9u
ZSBMWFQtOTcwIFBIWXMKIygjIG1ha3BoeSogYXQgbWlpPyBwaHkgPwkJCSMgTWFydmVsbCBTZW1p
Y29uZHVjdG9yIDg4RTEwMDAgUEhZcwojKCMgbnNwaHkqCWF0IG1paT8gcGh5ID8JCQkjIE5TODM4
NDAgUEhZcwojKCMgbnNwaHl0ZXIqIGF0IG1paT8gcGh5ID8gCQkjIE5TODM4NDMgUEhZcwojKCMg
cG5hcGh5KiBhdCBtaWk/IHBoeSA/CQkJIyBnZW5lcmljIEhvbWVQTkEgUEhZcwojKCMgcXNwaHkq
CWF0IG1paT8gcGh5ID8JCQkjIFF1YWxpdHkgU2VtaWNvbmR1Y3RvciBRUzY2MTIgUEhZcwojKCMg
cmdlcGh5KiBhdCBtaWk/IHBoeSA/CQkJIyBSZWFsdGVrIDgxNjlTLzgxMTBTIGludGVybmFsIFBI
WXMKIygjIHJscGh5KglhdCBtaWk/IHBoeSA/CQkJIyBSZWFsdGVrIDgxMzkvODIwMUwgUEhZcwoj
KCMgc3FwaHkqCWF0IG1paT8gcGh5ID8JCQkjIFNlZXEgODAyMjAvODAyMjEvODAyMjMgUEhZcwoj
KCMgdGxwaHkqCWF0IG1paT8gcGh5ID8JCQkjIFRodW5kZXJMQU4gUEhZcwojKCMgdHFwaHkqCWF0
IG1paT8gcGh5ID8JCQkjIFRESyBTZW1pY29uZHVjdG9yIFBIWXMKIygjIHVrcGh5KglhdCBtaWk/
IHBoeSA/CQkJIyBnZW5lcmljIHVua25vd24gUEhZcwojKCMgdXJscGh5KiBhdCBtaWk/IHBoeSA/
CQkJIyBSZWFsdGVrIFJUTDgxNTBMIGludGVybmFsIFBIWXMKCgojIFVTQiBDb250cm9sbGVyIGFu
ZCBEZXZpY2VzCgojIFBDSSBVU0IgY29udHJvbGxlcnMKZWhjaSoJYXQgcGNpPwlkZXYgPyBmdW5j
dGlvbiA/CSMgRW5oYW5jZWQgSG9zdCBDb250cm9sbGVyCiMoIyBvaGNpKglhdCBwY2k/CWRldiA/
IGZ1bmN0aW9uID8JIyBPcGVuIEhvc3QgQ29udHJvbGxlcgp1aGNpKglhdCBwY2k/CWRldiA/IGZ1
bmN0aW9uID8JIyBVbml2ZXJzYWwgSG9zdCBDb250cm9sbGVyIChJbnRlbCkKCiMgQ2FyZEJ1cyBV
U0IgY29udHJvbGxlcnMKZWhjaSoJYXQgY2FyZGJ1cz8gZnVuY3Rpb24gPwkjIEVuaGFuY2VkIEhv
c3QgQ29udHJvbGxlcgpvaGNpKglhdCBjYXJkYnVzPyBmdW5jdGlvbiA/CSMgT3BlbiBIb3N0IENv
bnRyb2xsZXIKIygjIHVoY2kqCWF0IGNhcmRidXM/IGZ1bmN0aW9uID8JIyBVbml2ZXJzYWwgSG9z
dCBDb250cm9sbGVyIChJbnRlbCkKCiMgSVNBIFVTQiBjb250cm9sbGVycwojc2xoY2kwCWF0IGlz
YT8gcG9ydCAweDMwMCBpcnEgNQkjIFNjYW5Mb2dpYyBTTDgxMUhTCgojIFVTQiBidXMgc3VwcG9y
dAp1c2IqCWF0IGVoY2k/CnVzYioJYXQgb2hjaT8KdXNiKglhdCB1aGNpPwojdXNiKglhdCBzbGhj
aT8KCiMgVVNCIEh1YnMKdWh1YioJYXQgdXNiPwojKCMgdWh1YioJYXQgdWh1Yj8gcG9ydCA/IGNv
bmZpZ3VyYXRpb24gPyBpbnRlcmZhY2UgPwoKIyBVU0IgSElEIGRldmljZQp1aGlkZXYqCWF0IHVo
dWI/IHBvcnQgPyBjb25maWd1cmF0aW9uID8gaW50ZXJmYWNlID8KCiMgVVNCIE1pY2UKdW1zKglh
dCB1aGlkZXY/IHJlcG9ydGlkID8Kd3Ntb3VzZSogYXQgdW1zPyBtdXggMAoKIyBVU0IgZUdhbGF4
IHRvdWNoLXBhbmVsCiMoIyB1ZXAqCWF0IHVodWI/IHBvcnQgPwojKCMgd3Ntb3VzZSogYXQgdWVw
PyBtdXggMAoKIyBVU0IgS2V5Ym9hcmRzCiMoIyB1a2JkKglhdCB1aGlkZXY/IHJlcG9ydGlkID8K
IygjIHdza2JkKglhdCB1a2JkPyBjb25zb2xlID8gbXV4IDEKCiMgVVNCIHNlcmlhbCBhZGFwdGVy
CiMoIyB1Y3ljb20qCWF0IHVoaWRldj8gcmVwb3J0aWQgPwoKIyBVU0IgR2VuZXJpYyBISUQgZGV2
aWNlcwp1aGlkKglhdCB1aGlkZXY/IHJlcG9ydGlkID8KCiMgVVNCIFByaW50ZXIKdWxwdCoJYXQg
dWh1Yj8gcG9ydCA/IGNvbmZpZ3VyYXRpb24gPyBpbnRlcmZhY2UgPwoKIyBVU0IgTW9kZW0KIygj
IHVtb2RlbSoJYXQgdWh1Yj8gcG9ydCA/IGNvbmZpZ3VyYXRpb24gPwojKCMgdWNvbSoJYXQgdW1v
ZGVtPwoKIyBVU0IgTWFzcyBTdG9yYWdlCnVtYXNzKglhdCB1aHViPyBwb3J0ID8gY29uZmlndXJh
dGlvbiA/IGludGVyZmFjZSA/CndkKglhdCB1bWFzcz8KCiMgVVNCIGF1ZGlvCiMoIyB1YXVkaW8q
CWF0IHVodWI/IHBvcnQgPyBjb25maWd1cmF0aW9uID8KCiMgVVNCIE1JREkKIygjIHVtaWRpKiBh
dCB1aHViPyBwb3J0ID8gY29uZmlndXJhdGlvbiA/CgojIFVTQiBJckRBCiMgVVNCLUlyREEgYnJp
ZGdlIHNwZWMKIygjIHVpcmRhKiBhdCB1aHViPyBwb3J0ID8gY29uZmlndXJhdGlvbiA/IGludGVy
ZmFjZSA/CiMoIyBpcmZyYW1lKiBhdCB1aXJkYT8KCiMgU2lnbWFUZWwgU1RJcjQyMDAgVVNCL0ly
REEgQnJpZGdlCiMoIyB1c3RpciogYXQgdWh1Yj8gcG9ydCA/CiMoIyBpcmZyYW1lKiBhdCB1c3Rp
cj8KCiMgVVNCIEV0aGVybmV0IGFkYXB0ZXJzCiMoIyBhdWUqCWF0IHVodWI/IHBvcnQgPwkJIyBB
RE10ZWsgQU45ODYgUGVnYXN1cyBiYXNlZCBhZGFwdGVycwojKCMgYXhlKglhdCB1aHViPyBwb3J0
ID8JCSMgQVNJWCBBWDg4MTcyIGJhc2VkIGFkYXB0ZXJzCiMoIyBjZGNlKglhdCB1aHViPyBwb3J0
ID8JCSMgQ0RDLCBFdGhlcm5ldCBOZXR3b3JraW5nIENvbnRyb2wgTW9kZWwKIygjIGN1ZSoJYXQg
dWh1Yj8gcG9ydCA/CQkjIENBVEMgVVNCLUVMMTIwMUEgYmFzZWQgYWRhcHRlcnMKIygjIGt1ZSoJ
YXQgdWh1Yj8gcG9ydCA/CQkjIEthd2FzYWtpIExTSSBLTDVLVVNCMTAxQiBiYXNlZCBhZGFwdGVy
cwojKCMgdWRhdioJYXQgdWh1Yj8gcG9ydCA/CQkjIERhdmljb20gRE05NjAxIGJhc2VkIGFkYXB0
ZXJzCiMoIyB1cmwqCWF0IHVodWI/IHBvcnQgPwkJIyBSZWFsdGVrIFJUTDgxNTBMIGJhc2VkIGFk
YXB0ZXJzCgojIFVTQiA4MDIuMTEgYWRhcHRlcnMKIygjIGF0dSoJYXQgdWh1Yj8gcG9ydCA/CQkj
IEF0bWVsIEFUNzZDNTBYWCBiYXNlZCBhZGFwdGVycwojKCMgcmFsKglhdCB1aHViPyBwb3J0ID8J
CSMgUmFsaW5rIFRlY2hub2xvZ3kgUlQyNXgwIDgwMi4xMWEvYi9nCiMoIyBydW0qCWF0IHVodWI/
IHBvcnQgPwkJIyBSYWxpbmsgVGVjaG5vbG9neSBSVDI1MDEvUlQyNjAxIDgwMi4xMWEvYi9nCgoj
IFByb2xpZmljIFBMMjMwMS9QTDIzMDIgaG9zdC10by1ob3N0IGFkYXB0ZXIKIygjIHVwbCoJYXQg
dWh1Yj8gcG9ydCA/CgojIFNlcmlhbCBhZGFwdGVycwojKCMgdWJzYSoJYXQgdWh1Yj8gcG9ydCA/
CQkjIEJlbGtpbiBzZXJpYWwgYWRhcHRlcgojKCMgdWNvbSoJYXQgdWJzYT8gcG9ydG5vID8KCiMo
IyB1ZnRkaSoJYXQgdWh1Yj8gcG9ydCA/CQkjIEZUREkgRlQ4VTEwMEFYIHNlcmlhbCBhZGFwdGVy
CiMoIyB1Y29tKglhdCB1ZnRkaT8gcG9ydG5vID8KCiMoIyB1aXBhcSoJYXQgdWh1Yj8gcG9ydCA/
CQkjIGlQQVEgUERBcwojKCMgdWNvbSoJYXQgdWlwYXE/IHBvcnRubyA/CgojKCMgdW1jdCoJYXQg
dWh1Yj8gcG9ydCA/CQkjIE1DVCBVU0ItUlMyMzIgc2VyaWFsIGFkYXB0ZXIKIygjIHVjb20qCWF0
IHVtY3Q/IHBvcnRubyA/CgojKCMgdXBsY29tKiBhdCB1aHViPyBwb3J0ID8gCSMgSS9PIERBVEEg
VVNCLVJTQVEyIHNlcmlhbCBhZGFwdGVyCiMoIyB1Y29tKglhdCB1cGxjb20/IHBvcnRubyA/Cgoj
KCMgdXZzY29tKiBhdCB1aHViPyBwb3J0ID8gCSMgU1VOVEFDIFNsaXBwZXIgVSBWUy0xMFUgc2Vy
aWFsIGFkYXB0ZXIKIygjIHVjb20qCWF0IHV2c2NvbT8gcG9ydG5vID8KCiMgRGlhbW9uZCBNdWx0
aW1lZGlhIFJpbyA1MDAKIygjIHVyaW8qCWF0IHVodWI/IHBvcnQgPwoKIyBVU0IgSGFuZHNwcmlu
ZyBWaXNvcgojKCMgdXZpc29yKglhdCB1aHViPyBwb3J0ID8KIygjIHVjb20qCWF0IHV2aXNvcj8K
CiMgS3lvY2VyYSBBSVItRURHRSBQSE9ORQojKCMgdWt5b3BvbiogYXQgdWh1Yj8gcG9ydCA/CiMo
IyB1Y29tKglhdCB1a3lvcG9uPyBwb3J0bm8gPwoKIyBVU0Igc2Nhbm5lcnMKIygjIHVzY2FubmVy
KiBhdCB1aHViPyBwb3J0ID8KCiMgVVNCIHNjYW5uZXJzIHRoYXQgdXNlIFNDU0kgZW11bGF0aW9u
LCBlLmcuLCBIUDUzMDAKIygjIHVzc2Nhbm5lciogYXQgdWh1Yj8gcG9ydCA/CgojIFRvcGZpZWxk
IFRGNTAwMFBWUiByYW5nZSBvZiBEVkIgcmVjb3JkZXJzCiMoIyB1dG9wcHkqCWF0IHVodWI/IHBv
cnQgPwoKIyBZQFAgZmlybXdhcmUgbG9hZGVyCiMoIyB1eWFwKiBhdCB1aHViPyBwb3J0ID8KCiMg
RC1MaW5rIERTQi1SMTAwIFVTQiByYWRpbwojKCMgdWRzYnIqCWF0IHVodWI/IHBvcnQgPwojKCMg
cmFkaW8qCWF0IHVkc2JyPwoKIyBVU0IgR2VuZXJpYyBkcml2ZXIKdWdlbioJYXQgdWh1Yj8gcG9y
dCA/CiMgT24gdWdlbiBidWxrIGVuZHBvaW50cywgcGVyZm9ybSByZWFkLWFoZWFkIGFuZCB3cml0
ZS1iZWhpbmQuCm9wdGlvbnMgVUdFTl9CVUxLX1JBX1dCCgoKIyBJckRBIGFuZCBDb25zdW1lciBJ
ciBkZXZpY2VzCgojIFRvc2hpYmEgT2JvZQojKCMgb2JvZSogCWF0IHBjaT8gZGV2ID8gZnVuY3Rp
b24gPwojKCMgaXJmcmFtZSogYXQgb2JvZT8KCgojIFBDSSBJRUVFMTM5NCBjb250cm9sbGVycwpm
d29oY2kqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIElFRUUxMzk0IE9wZW4gSG9zdCBDb250
cm9sbGVyCgojIENhcmRCdXMgSUVFRTEzOTQgY29udHJvbGxlcnMKZndvaGNpKglhdCBjYXJkYnVz
PyBmdW5jdGlvbiA/CSMgSUVFRTEzOTQgT3BlbiBIb3N0IENvbnRyb2xsZXIKCmllZWUxMzk0aWYq
IGF0IGZ3b2hjaT8KZndpcCoJYXQgaWVlZTEzOTRpZj8JCQkjIElQIG92ZXIgSUVFRTEzOTQKc2Jw
KglhdCBpZWVlMTM5NGlmPyBldWloaSA/IGV1aWxvID8JIyBTQ1NJIG92ZXIgSUVFRTEzOTQKCgoj
IEF1ZGlvIERldmljZXMKCiMgUENJIGF1ZGlvIGRldmljZXMKIygjIGF1YWNlciogYXQgcGNpPyBk
ZXYgPyBmdW5jdGlvbiA/CSMgQUxpIE01NDU1IGludGVncmF0ZWQgQUMnOTcgQXVkaW8KIygjIGF1
aWNoKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBJbnRlbCBJQ0ggaW50ZWdyYXRlZCBBQyc5
NyBBdWRpbwojKCMgYXVpeHAqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEFUSSBJWFAgQUMn
OTcgQXVkaW8KIygjIGF1dHJpKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBUcmlkZW50IDRE
V0FWRSBiYXNlZCBBQyc5NyBBdWRpbwojKCMgYXV2aWEqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24g
PwkjIFZJQSBWVDgyQzY4NkEgaW50ZWdyYXRlZCBBQyc5NyBBdWRpbwphemFsaWEqCWF0IHBjaT8g
ZGV2ID8gZnVuY3Rpb24gPwkjIEhpZ2ggRGVmaW5pdGlvbiBBdWRpbwojKCMgY2xjcyoJYXQgcGNp
PyBkZXYgPyBmdW5jdGlvbiA/CSMgQ2lycnVzIExvZ2ljIENTNDI4MAojKCMgY2xjdCoJYXQgcGNp
PyBkZXYgPyBmdW5jdGlvbiA/CSMgQ2lycnVzIExvZ2ljIENTNDI4MQojKCMgY21wY2kqCWF0IHBj
aT8gZGV2ID8gZnVuY3Rpb24gPwkjIEMtTWVkaWEgQ01JODMzOC84NzM4CiMoIyBlYXAqCWF0IHBj
aT8gZGV2ID8gZnVuY3Rpb24gPwkjIEVuc29uaXEgQXVkaW9QQ0kKIygjIGVtdXhraSogYXQgcGNp
PyBkZXYgPyBmdW5jdGlvbiA/CSMgQ3JlYXRpdmUgU0JMaXZlISBhbmQgUENJNTEyCiMoIyBlc2Eq
CWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEVTUyBBbGxlZ3JvLTEgLyBNYWVzdHJvLTMgUENJ
IEF1ZGlvCiMoIyBlc20qCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEVTUyBNYWVzdHJvLTEv
Mi8yZSBQQ0kgQXVkaW8gQWNjZWxlcmF0b3IKIygjIGVzbyoJYXQgcGNpPyBkZXYgPyBmdW5jdGlv
biA/CSMgRVNTIFNvbG8tMSBQQ0kgQXVkaW9Ecml2ZQojKCMgZm1zKglhdCBwY2k/IGRldiA/IGZ1
bmN0aW9uID8JIyBGb3J0ZSBNZWRpYSBGTTgwMQojKCMgbmVvKglhdCBwY2k/IGRldiA/IGZ1bmN0
aW9uID8JIyBOZW9NYWdpYyAyNTYgQUMnOTcgQXVkaW8KIygjIHN2KglhdCBwY2k/IGRldiA/IGZ1
bmN0aW9uID8JIyBTMyBTb25pY1ZpYmVzCiMoIyB5ZHMqCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24g
PwkjIFlhbWFoYSBEUy0xIFBDSSBBdWRpbwoKIyBJU0EgUGx1Zy1hbmQtUGxheSBhdWRpbyBkZXZp
Y2VzCiMjIyMjZXNzKglhdCBpc2FwbnA/CQkJIyBFU1MgVGVjaCBFUzE4ODcsIEVTMTg4OCwgRVM4
ODggYXVkaW8KIyMjIyNndXNwbnAqIGF0IGlzYXBucD8JCQkjIEdyYXZpcyBVbHRyYSBTb3VuZCBQ
blAgYXVkaW8KIyMjIyNzYioJYXQgaXNhcG5wPwkJCSMgU291bmRCbGFzdGVyLWNvbXBhdGlibGUg
YXVkaW8KIyMjIyN3c3MqCWF0IGlzYXBucD8JCQkjIFdpbmRvd3MgU291bmQgU3lzdGVtCiMjIyMj
eW0qCWF0IGlzYXBucD8JCQkjIFlhbWFoYSBPUEwzLVNBWzIzXSBhdWRpbwoKIyBJU0EgYXVkaW8g
ZGV2aWNlcwojIHRoZSAiYXJpYSIgcHJvYmUgbWlnaHQgZ2l2ZSBmYWxzZSBoaXRzCiNhcmlhMAlh
dCBpc2E/IHBvcnQgMHgyOTAgaXJxIDEwIAkJIyBBcmlhCiNlc3MwCWF0IGlzYT8gcG9ydCAweDIy
MCBpcnEgNSBkcnEgMSBkcnEyIDUJIyBFU1MgMThYWAojIyMjI2d1czAJYXQgaXNhPyBwb3J0IDB4
MjIwIGlycSA3IGRycSAxIGRycTIgNgkjIEdyYXZpcyBVbHRyYSBTb3VuZAojIyMjI3BhczAJYXQg
aXNhPyBwb3J0IDB4MjIwIGlycSA3IGRycSAxCQkjIFByb0F1ZGlvIFNwZWN0cnVtCiMjIyMjc2Iw
CWF0IGlzYT8gcG9ydCAweDIyMCBpcnEgNSBkcnEgMSBkcnEyIDUJIyBTb3VuZEJsYXN0ZXIKIyMj
IyN3c3MwCWF0IGlzYT8gcG9ydCAweDUzMCBpcnEgMTAgZHJxIDAJZHJxMiAxCSMgV2luZG93cyBT
b3VuZCBTeXN0ZW0KCiMgUENNQ0lBIGF1ZGlvIGRldmljZXMKI2VzbCoJYXQgcGNtY2lhPyBmdW5j
dGlvbiA/CQkJIyBFU1MgMTY4OCBBdWRpb0RyaXZlCgojY21zMAlhdCBpc2E/IHBvcnQgMHgyMjAJ
CQkjIENyZWF0aXZlIE11c2ljIFN5c3RlbQoKIyBPUExbMjNdIEZNIHN5bnRoZXNpemVycwojb3Bs
MAlhdCBpc2E/IHBvcnQgMHgzODgJIyB1c2Ugb25seSBpZiBub3QgYXR0YWNoZWQgdG8gc291bmQg
Y2FyZAojKCMgb3BsKglhdCBjbXBjaT8gZmxhZ3MgMQojb3BsKglhdCBlc2w/CiMoIyBvcGwqCWF0
IGVzbz8KIyMjIyNvcGwqCWF0IGVzcz8KIygjIG9wbCoJYXQgZm1zPwojIyMjI29wbCoJYXQgc2I/
CiMoIyBvcGwqCWF0IHN2PwojKCMgb3BsKglhdCB3c3M/CiMoIyBvcGwqCWF0IHlkcz8KIyMjIyNv
cGwqCWF0IHltPwoKIyBBdWRpbyBzdXBwb3J0CmF1ZGlvKglhdCBhdWRpb2J1cz8KCiMgTVBVIDQw
MSBVQVJUcwojbXB1KglhdCBpc2E/IHBvcnQgMHgzMzAgaXJxIDkJIyBNUFU0MDEgb3IgY29tcGF0
aWJsZSBjYXJkCiMoIyBtcHUqCWF0IGlzYXBucD8KIygjIG1wdSoJYXQgY21wY2k/CiMoIyBtcHUq
CWF0IGVzbz8KIygjIG1wdSoJYXQgZm1zPwojIyMjI21wdSoJYXQgc2I/CiMoIyBtcHUqCWF0IHlk
cz8KIyMjIyNtcHUqCWF0IHltPwoKIyBNSURJIHN1cHBvcnQKIyMjI21pZGkqCWF0IG1pZGlidXM/
Cm1pZGkqCWF0IHBjcHBpPwkJIyBNSURJIGludGVyZmFjZSB0byB0aGUgUEMgc3BlYWtlcgoKIyBU
aGUgc3BrciBkcml2ZXIgcHJvdmlkZXMgYSBzaW1wbGUgdG9uZSBpbnRlcmZhY2UgdG8gdGhlIGJ1
aWx0IGluIHNwZWFrZXIuCiNzcGtyMAlhdCBwY3BwaT8JCSMgUEMgc3BlYWtlcgoKCiMgRk0tUmFk
aW8gZGV2aWNlcwojIElTQSByYWRpbyBkZXZpY2VzCiNhejAJYXQgaXNhPyBwb3J0IDB4MzUwICAg
ICAgIyBBenRlY2gvUGFja2FyZEJlbGwgRk0gUmFkaW8gQ2FyZAojYXoxCWF0IGlzYT8gcG9ydCAw
eDM1OAojcnQwCWF0IGlzYT8gcG9ydCAweDIwYyAgICAgICMgQUlNUyBMYWIgUmFkaW90cmFjayAm
IGNvbXBhdGlibGUKI3J0MQlhdCBpc2E/IHBvcnQgMHgyODQKI3J0MglhdCBpc2E/IHBvcnQgMHgz
MGMKI3J0MwlhdCBpc2E/IHBvcnQgMHgzODQKI3J0aWkwCWF0IGlzYT8gcG9ydCAweDIwYyAgICAg
ICMgQUlNUyBMYWIgUmFkaW90cmFjayBJSSBGTSBSYWRpbyBDYXJkCiNydGlpMQlhdCBpc2E/IHBv
cnQgMHgzMGMKI3NmMnIwCWF0IGlzYT8gcG9ydCAweDM4NCAgICAgICMgU291bmRGb3J0ZSBSYWRp
b0xpbmsgU0YxNi1GTVIyIEZNIFJhZGlvIENhcmQKCiMgUENJIHJhZGlvIGRldmljZXMKI2d0cCoJ
YXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/ICMgR3VpbGxlbW90IE1heGkgUmFkaW8gRk0gMjAwMCBS
YWRpbyBDYXJkCgojIFJhZGlvIHN1cHBvcnQKI3JhZGlvKglhdCBhej8KI3JhZGlvKglhdCBndHA/
CiNyYWRpbyoJYXQgcnQ/CiNyYWRpbyoJYXQgcnRpaT8KI3JhZGlvKglhdCBzZjJyPwoKCiMgVFYg
Y2FyZHMKCiMgQnJvb2t0cmVlIDg0OC84NDkvODc4Lzg3OSBiYXNlZCBUViBjYXJkcwojKCMgYmt0
ciogYXQgcGNpPyBkZXYgPyBmdW5jdGlvbiA/CiMoIyByYWRpbyogYXQgYmt0cj8KCgojIEJsdWV0
b290aCBDb250cm9sbGVyIGFuZCBEZXZpY2Ugc3VwcG9ydAoKIyBCbHVldG9vdGggUENNQ0lBIENv
bnRyb2xsZXJzCiMoIyBidDNjKiBhdCBwY21jaWE/IGZ1bmN0aW9uID8JCSMgM0NvbSAzQ1JXQjYw
OTYtQQoKIyBCbHVldG9vdGggVVNCIENvbnRyb2xsZXJzCnVidCogYXQgdWh1Yj8gcG9ydCA/IGNv
bmZpZ3VyYXRpb24gPyBpbnRlcmZhY2UgPwoKIyBCbHVldG9vdGggRGV2aWNlIEh1YgojKCMgYnRo
dWIqIGF0IGJ0M2M/CmJ0aHViKiBhdCB1YnQ/CgojIEJsdWV0b290aCBISUQgc3VwcG9ydApidGhp
ZGV2KiBhdCBidGh1Yj8KCiMgQmx1ZXRvb3RoIE1vdXNlCmJ0bXMqIGF0IGJ0aGlkZXY/IHJlcG9y
dGlkID8Kd3Ntb3VzZSogYXQgYnRtcz8gbXV4IDAKCiMgQmx1ZXRvb3RoIEtleWJvYXJkCmJ0a2Jk
KiBhdCBidGhpZGV2PyByZXBvcnRpZCA/Cndza2JkKiBhdCBidGtiZD8gY29uc29sZSA/IG11eCAx
CgojIEJsdWV0b290aCBBdWRpbyBzdXBwb3J0CmJ0c2NvKiBhdCBidGh1Yj8KCgojIE1pY2UKCiMg
SVNBIGJ1c21pY2UKIygjIGxtczAJYXQgaXNhPyBwb3J0IDB4MjNjIGlycSA1CSMgTG9naXRlY2gg
YnVzIG1vdXNlCiMoIyBsbXMxCWF0IGlzYT8gcG9ydCAweDIzOCBpcnEgNQojKCMgbW1zMAlhdCBp
c2E/IHBvcnQgMHgyM2MgaXJxIDUJIyBNaWNyb3NvZnQgSW5Qb3J0IG1vdXNlCiMoIyBtbXMxCWF0
IGlzYT8gcG9ydCAweDIzOCBpcnEgNQojKCMgd3Ntb3VzZSoJYXQgbG1zPyBtdXggMAojKCMgd3Nt
b3VzZSoJYXQgbW1zPyBtdXggMAoKCiMgQ3J5cHRvZ3JhcGhpYyBEZXZpY2VzCgojIFBDSSBjcnlw
dG9ncmFwaGljIGRldmljZXMKIygjIGhpZm4qCWF0IHBjaT8gZGV2ID8gZnVuY3Rpb24gPwkjIEhp
Zm4gNzc1NS83ODExLzc5NXgKIygjIHVic2VjKglhdCBwY2k/IGRldiA/IGZ1bmN0aW9uID8JIyBC
cm9hZGNvbSA1NTAxLzU2MDEvNTgweC81ODJ4CgoKIyBKb3lzdGlja3MKCiNqb3kqCWF0IHBucGJp
b3M/IGluZGV4ID8JCSMgR2FtZSBwb3J0CgojIElTQSBQbHVnLWFuZC1QbGF5IGpveXN0aWNrcwoj
KCMgam95KglhdCBpc2FwbnA/CQkJIyBHYW1lIHBvcnRzICh1c3VhbGx5IG9uIGF1ZGlvIGNhcmRz
KQoKIyBQQ0kgam95c3RpY2tzCiMoIyBqb3kqCWF0IHBjaT8JCQkJIyBHYW1lIHBvcnRzICh1c3Vh
bGx5IG9uIGF1ZGlvIGNhcmRzKQojam95KglhdCBlYXA/CQkJCSMgU2VlIENBVkVBVFMgaW4gZWFw
KDQpIGJlZm9yZSBlbmFibGluZwojKCMgam95KglhdCBlc28/CQkJCSMgRVNTIFNvbG8tMSBvbi1i
b2FyZCBqb3lzdGljawoKIyBJU0Egam95c3RpY2tzLiBQcm9iZSBpcyBhIGxpdHRsZSBzdHJhbmdl
OyBhZGQgb25seSBpZiB5b3UgaGF2ZSBvbmUuCiNqb3kwCWF0IGlzYT8gcG9ydCAweDIwMQoKCiMg
TWlzY2VsbGFuZW91cyBEZXZpY2VzCiMoIyBnZW9kZWdjYiogIGF0IHBjaT8gZGV2ID8gZnVuY3Rp
b24gPwkjIEdlb2RlIEdDQiBhcmVhCiMoIyBnZW9kZXdkb2cqIGF0IGdlb2RlZ2NiPyAJCSMgQU1E
IEdlb2RlIFNDMTEwMCB3YXRjaGRvZyB0aW1lcgojKCMgZ2VvZGVjbnRyKiBhdCBnZW9kZWdjYj8g
CQkjIEFNRCBHZW9kZSBTQzExMDAgaGlnaCByZXMuIGNvdW50ZXIKCiMgUGxhbmV0Y29ubmVjdCBT
YXRlbGxpdGUgcmVjZWl2ZXIgZHJpdmVyLgojc2F0bGluazAgYXQgaXNhPyBwb3J0IDB4MzAwIGRy
cSAxCgojIE1pZGRsZSBEaWdpdGFsLCBJbmMuIFBDSS1XZWFzZWwgc2VyaWFsIGNvbnNvbGUgYm9h
cmQgY29udHJvbAojIGRldmljZXMgKHdhdGNoZG9nIHRpbWVyLCBldGMuKQojKCMgd2Vhc2VsKiBh
dCBwY2k/CgojIFB1bGwgaW4gb3B0aW9uYWwgbG9jYWwgY29uZmlndXJhdGlvbgppbmNsdWRlCSJh
cmNoL2kzODYvY29uZi9HRU5FUklDLmxvY2FsIgoKCiMgUHNldWRvLURldmljZXMKCnBzZXVkby1k
ZXZpY2UgCWNyeXB0bwkJIyAvZGV2L2NyeXB0byBkZXZpY2UKcHNldWRvLWRldmljZQlzd2NyeXB0
bwkjIHNvZnR3YXJlIGNyeXB0byBpbXBsZW1lbnRhdGlvbgoKIyBkaXNrL21hc3Mgc3RvcmFnZSBw
c2V1ZG8tZGV2aWNlcwpwc2V1ZG8tZGV2aWNlCWNjZAkJNAkjIGNvbmNhdGVuYXRlZC9zdHJpcGVk
IGRpc2sgZGV2aWNlcwpwc2V1ZG8tZGV2aWNlCWNnZAkJNAkjIGNyeXB0b2dyYXBoaWMgZGlzayBk
ZXZpY2VzCnBzZXVkby1kZXZpY2UJcmFpZAkJOAkjIFJBSURmcmFtZSBkaXNrIGRyaXZlcgpvcHRp
b25zIAlSQUlEX0FVVE9DT05GSUcJCSMgYXV0by1jb25maWd1cmF0aW9uIG9mIFJBSUQgY29tcG9u
ZW50cwojIE9wdGlvbnMgdG8gZW5hYmxlIHZhcmlvdXMgb3RoZXIgUkFJRGZyYW1lIFJBSUQgdHlw
ZXMuCiNvcHRpb25zIAlSRl9JTkNMVURFX0VWRU5PREQ9MQojb3B0aW9ucyAJUkZfSU5DTFVERV9S
QUlENV9SUz0xCiNvcHRpb25zIAlSRl9JTkNMVURFX1BBUklUWUxPR0dJTkc9MQojb3B0aW9ucyAJ
UkZfSU5DTFVERV9DSEFJTkRFQ0xVU1RFUj0xCiNvcHRpb25zIAlSRl9JTkNMVURFX0lOVEVSREVD
TFVTVEVSPTEKI29wdGlvbnMgCVJGX0lOQ0xVREVfUEFSSVRZX0RFQ0xVU1RFUklORz0xCiNvcHRp
b25zIAlSRl9JTkNMVURFX1BBUklUWV9ERUNMVVNURVJJTkdfRFM9MQpwc2V1ZG8tZGV2aWNlCWZz
cwkJNAkjIGZpbGUgc3lzdGVtIHNuYXBzaG90IGRldmljZQoKcHNldWRvLWRldmljZQltZAkJMQkj
IG1lbW9yeSBkaXNrIGRldmljZSAocmFtZGlzaykKcHNldWRvLWRldmljZQl2bmQJCQkjIGRpc2st
bGlrZSBpbnRlcmZhY2UgdG8gZmlsZXMKb3B0aW9ucyAJVk5EX0NPTVBSRVNTSU9OCQkjIGNvbXBy
ZXNzZWQgdm5kKDQpCgojIG5ldHdvcmsgcHNldWRvLWRldmljZXMKcHNldWRvLWRldmljZQlicGZp
bHRlcgkJIyBCZXJrZWxleSBwYWNrZXQgZmlsdGVyCiNwc2V1ZG8tZGV2aWNlCWNhcnAJCQkjIENv
bW1vbiBBZGRyZXNzIFJlZHVuZGFuY3kgUHJvdG9jb2wKcHNldWRvLWRldmljZQlpcGZpbHRlcgkJ
IyBJUCBmaWx0ZXIgKGZpcmV3YWxsKSBhbmQgTkFUCnBzZXVkby1kZXZpY2UJbG9vcAkJCSMgbmV0
d29yayBsb29wYmFjawpwc2V1ZG8tZGV2aWNlCXBwcAkJCSMgUG9pbnQtdG8tUG9pbnQgUHJvdG9j
b2wKcHNldWRvLWRldmljZQlwcHBvZQkJCSMgUFBQIG92ZXIgRXRoZXJuZXQgKFJGQyAyNTE2KQpw
c2V1ZG8tZGV2aWNlCXNsCQkJIyBTZXJpYWwgTGluZSBJUApwc2V1ZG8tZGV2aWNlCXN0cmlwCQkJ
IyBTdGFybW9kZSBSYWRpbyBJUCAoTWV0cmljb20pCnBzZXVkby1kZXZpY2UJaXJmcmFtZXR0eQkJ
IyBJckRBIGZyYW1lIGxpbmUgZGlzY2lwbGluZQpwc2V1ZG8tZGV2aWNlCXRhcAkJCSMgdmlydHVh
bCBFdGhlcm5ldApwc2V1ZG8tZGV2aWNlCXR1bgkJCSMgbmV0d29yayB0dW5uZWxpbmcgb3ZlciB0
dHkKcHNldWRvLWRldmljZQlncmUJCQkjIGdlbmVyaWMgTDMgb3ZlciBJUCB0dW5uZWwKcHNldWRv
LWRldmljZQlnaWYJCQkjIElQdls0Nl0gb3ZlciBJUHZbNDZdIHR1bm5lbCAoUkZDMTkzMykKI3Bz
ZXVkby1kZXZpY2UJZmFpdGgJCQkjIElQdls0Nl0gdGNwIHJlbGF5IHRyYW5zbGF0aW9uIGkvZgpw
c2V1ZG8tZGV2aWNlCXN0ZgkJCSMgNnRvNCBJUHY2IG92ZXIgSVB2NCBlbmNhcHN1bGF0aW9uCnBz
ZXVkby1kZXZpY2UJdmxhbgkJCSMgSUVFRSA4MDIuMXEgZW5jYXBzdWxhdGlvbgpwc2V1ZG8tZGV2
aWNlCWJyaWRnZQkJCSMgc2ltcGxlIGludGVyLW5ldHdvcmsgYnJpZGdpbmcKI29wdGlvbnMgCUJS
SURHRV9JUEYJCSMgYnJpZGdlIHVzZXMgSVAvSVB2NiBwZmlsIGhvb2tzIHRvbwojcHNldWRvLWRl
dmljZQlwZgkJCSMgUEYgcGFja2V0IGZpbHRlcgojcHNldWRvLWRldmljZQlwZmxvZwkJCSMgUEYg
bG9nIGlmCgojIG1pc2NlbGxhbmVvdXMgcHNldWRvLWRldmljZXMKcHNldWRvLWRldmljZQlwdHkJ
CQkjIHBzZXVkby10ZXJtaW5hbHMKcHNldWRvLWRldmljZQlzZXF1ZW5jZXIJMQkjIE1JREkgc2Vx
dWVuY2VyCiMgcm5kIHdvcmtzOyBSTkRfQ09NIGRvZXMgbm90IG9uIHBvcnQgaTM4NiB5ZXQuCnBz
ZXVkby1kZXZpY2UJcm5kCQkJIyAvZGV2L3JhbmRvbSBhbmQgaW4ta2VybmVsIGdlbmVyYXRvcgoj
b3B0aW9ucyAJUk5EX0NPTQkJCSMgdXNlICJjb20iIHJhbmRvbW5lc3MgYXMgd2VsbCAoQlJPS0VO
KQpwc2V1ZG8tZGV2aWNlCWNsb2NrY3RsCQkjIHVzZXIgY29udHJvbCBvZiBjbG9jayBzdWJzeXN0
ZW0KcHNldWRvLWRldmljZQlrc3ltcwkJCSMgL2Rldi9rc3ltcwoKcHNldWRvLWRldmljZQlsb2Nr
c3RhdAkJIyBsb2NrIHByb2ZpbGluZwoKIyBhIHBzZXVkbyBkZXZpY2UgbmVlZGVkIGZvciBDb2Rh
CSMgYWxzbyBuZWVkcyBDT0RBIChhYm92ZSkKcHNldWRvLWRldmljZQl2Y29kYQkJNAkjIGNvZGEg
bWluaWNhY2hlIDwtPiB2ZW51cyBjb21tLgoKIyBhIHBzZXVkbyBkZXZpY2UgbmVlZGVkIGZvciBT
TUJGUwpwc2V1ZG8tZGV2aWNlCW5zbWIJCQkjIGV4cGVyaW1lbnRhbCAtIFNNQiByZXF1ZXN0ZXIK
CiMgd3Njb25zIHBzZXVkby1kZXZpY2VzCnBzZXVkby1kZXZpY2UJd3NtdXgJCQkjIG1vdXNlICYg
a2V5Ym9hcmQgbXVsdGlwbGV4b3IKcHNldWRvLWRldmljZQl3c2ZvbnQKCm9wdGlvbnMgCUZJTEVB
U1NPQwkJIyBmaWxlYXNzb2MoOSkgLSByZXF1aXJlZCBmb3IgVmVyaWV4ZWMKI29wdGlvbnMgCUZJ
TEVBU1NPQ19OSE9PS1M9NAkjIERlZmF1bHQgbnVtYmVyIG9mIHN0b3JhZ2Ugc2xvdHMKCiMgVmVy
aWV4ZWMKcHNldWRvLWRldmljZQl2ZXJpZXhlYwojCiMgVW5jb21tZW50IHRoZSBmaW5nZXJwcmlu
dCBtZXRob2RzIGJlbG93IHRoYXQgYXJlIGRlc2lyZWQuIE5vdGUgdGhhdAojIHJlbW92aW5nIGZp
bmdlcnByaW50IG1ldGhvZHMgd2lsbCBoYXZlIGFsbW9zdCBubyBpbXBhY3Qgb24gdGhlIGtlcm5l
bAojIGNvZGUgc2l6ZS4KIwpvcHRpb25zIFZFUklGSUVEX0VYRUNfRlBfUk1EMTYwCm9wdGlvbnMg
VkVSSUZJRURfRVhFQ19GUF9TSEEyNTYKb3B0aW9ucyBWRVJJRklFRF9FWEVDX0ZQX1NIQTM4NApv
cHRpb25zIFZFUklGSUVEX0VYRUNfRlBfU0hBNTEyCm9wdGlvbnMgVkVSSUZJRURfRVhFQ19GUF9T
SEExCm9wdGlvbnMgVkVSSUZJRURfRVhFQ19GUF9NRDUKCm9wdGlvbnMgUEFYX01QUk9URUNUPTAJ
CQkjIFBhWCBtcHJvdGVjdCgyKSByZXN0cmljdGlvbnMKIyBOT1RFOiBOb01hdGNoOiBpb2FwaWMw
IGF0IG1haW5idXMwIGFwaWQgMSAoSS9PIEFQSUMpCiMgTk9URTogTm9NYXRjaDogYWNwaTAgYXQg
bWFpbmJ1czA6IEFkdmFuY2VkIENvbmZpZ3VyYXRpb24gYW5kIFBvd2VyIEludGVyZmFjZQojIE5P
VEU6IE5vTWF0Y2g6IGFjcGllYzAgYXQgYWNwaTAgKFBOUDBDMDkpOiBBQ1BJIEVtYmVkZGVkIENv
bnRyb2xsZXIKIyBOT1RFOiBOb01hdGNoOiBucHgwIGF0IGFjcGkwIChQTlAwQzA0KQojIE5PVEU6
IE5vTWF0Y2g6IGF0dGltZXIxIGF0IGFjcGkwIChQTlAwMTAwKTogQVQgVGltZXIKIyBOT1RFOiBO
b01hdGNoOiBwY3BwaTEgYXQgYWNwaTAgKFBOUDA4MDApCiMgTk9URTogTm9NYXRjaDogcGNrYmMw
IGF0IGFjcGkwIChQTlAwMzAzKToga2JkIHBvcnQKIyBOT1RFOiBOb01hdGNoOiBwY2tiYzEgYXQg
YWNwaTAgKFNZTjAxMTIpOiBhdXggcG9ydAojIE5PVEU6IE5vTWF0Y2g6IEhQUTAwMDYgYXQgYWNw
aTAgbm90IGNvbmZpZ3VyZWQKIyBOT1RFOiBOb01hdGNoOiBhY3BpYmF0MCBhdCBhY3BpMCAoUE5Q
MEMwQS0xKTogQUNQSSBCYXR0ZXJ5IChDb250cm9sIE1ldGhvZCkKIyBOT1RFOiBOb01hdGNoOiBh
Y3BpYmF0MSBhdCBhY3BpMCAoUE5QMEMwQS0yKTogQUNQSSBCYXR0ZXJ5IChDb250cm9sIE1ldGhv
ZCkKIyBOT1RFOiBOb01hdGNoOiBhY3BpYWNhZDAgYXQgYWNwaTAgKEFDUEkwMDAzKTogQUNQSSBB
QyBBZGFwdGVyCiMgTk9URTogTm9NYXRjaDogYWNwaWJ1dDAgYXQgYWNwaTAgKFBOUDBDMEUpOiBB
Q1BJIFNsZWVwIEJ1dHRvbgojIE5PVEU6IE5vTWF0Y2g6IGFjcGlsaWQwIGF0IGFjcGkwIChQTlAw
QzBEKTogQUNQSSBMaWQgU3dpdGNoCiMgTk9URTogTm9NYXRjaDogUE5QMEMxNCBhdCBhY3BpMCBu
b3QgY29uZmlndXJlZAojIE5PVEU6IE5vTWF0Y2g6IGFjcGl0ejAgYXQgYWNwaTA6IEFDUEkgVGhl
cm1hbCBab25lCiMgTk9URTogTm9NYXRjaDogYWNwaXR6MSBhdCBhY3BpMDogQUNQSSBUaGVybWFs
IFpvbmUKIyBOT1RFOiBOb01hdGNoOiBhY3BpdHoyIGF0IGFjcGkwOiBBQ1BJIFRoZXJtYWwgWm9u
ZQojIE5PVEU6IE5vTWF0Y2g6IGFjcGl0ejMgYXQgYWNwaTA6IEFDUEkgVGhlcm1hbCBab25lCiMg
Tk9URTogTm9NYXRjaDogYWNwaXR6NCBhdCBhY3BpMDogQUNQSSBUaGVybWFsIFpvbmUKIyBOT1RF
OiBOb01hdGNoOiBhdGFidXMwIGF0IHBpaXhpZGUwIGNoYW5uZWwgMAojIE5PVEU6IE5vTWF0Y2g6
IGF0YWJ1czEgYXQgcGlpeGlkZTAgY2hhbm5lbCAxCiMgTk9URTogTm9NYXRjaDogYXVkaW8wIGF0
IGF6YWxpYTA6IGZ1bGwgZHVwbGV4LCBpbmRlcGVuZGVudAojIE5PVEU6IE5vTWF0Y2g6IGF0YXBp
YnVzMCBhdCBhdGFidXMxOiAyIHRhcmdldHMK
------=_Part_61017_30854844.1171976623307--