public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/3783: gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c
@ 2001-09-07 12:29 wilson
  0 siblings, 0 replies; 4+ messages in thread
From: wilson @ 2001-09-07 12:29 UTC (permalink / raw)
  To: davidm, linux-ia64, davidm, gcc-bugs, gcc-prs, wilson, wilson

Synopsis: gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c

State-Changed-From-To: analyzed->feedback
State-Changed-By: wilson
State-Changed-When: Fri Sep  7 12:29:53 2001
State-Changed-Why:
    See proposed patch.
    < http://gcc.gnu.org/ml/gcc-patches/2001-09/msg00252.html >

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3783&database=gcc


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: optimization/3783: gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c
@ 2001-09-13 14:57 wilson
  0 siblings, 0 replies; 4+ messages in thread
From: wilson @ 2001-09-13 14:57 UTC (permalink / raw)
  To: davidm, linux-ia64, davidm, gcc-bugs, gcc-prs, wilson, wilson

Synopsis: gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c

State-Changed-From-To: feedback->closed
State-Changed-By: wilson
State-Changed-When: Thu Sep 13 14:57:18 2001
State-Changed-Why:
    Patches to fix problem have been checked in.
    The original patch had 3 flaws, which were corrected by
    later patches.  The last patch went in 2001-09-11.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3783&database=gcc


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: optimization/3783: gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c
@ 2001-09-06 22:11 wilson
  0 siblings, 0 replies; 4+ messages in thread
From: wilson @ 2001-09-06 22:11 UTC (permalink / raw)
  To: davidm, linux-ia64, davidm, gcc-bugs, gcc-prs, nobody, wilson, wilson

Synopsis: gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c

Responsible-Changed-From-To: unassigned->wilson
Responsible-Changed-By: wilson
Responsible-Changed-When: Thu Sep  6 22:11:49 2001
Responsible-Changed-Why:
    IA-64 maintainer
State-Changed-From-To: open->analyzed
State-Changed-By: wilson
State-Changed-When: Thu Sep  6 22:11:49 2001
State-Changed-Why:
    See last mail message.

http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=3783&database=gcc


^ permalink raw reply	[flat|nested] 4+ messages in thread

* optimization/3783: gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c
@ 2001-07-23 17:06 davidm
  0 siblings, 0 replies; 4+ messages in thread
From: davidm @ 2001-07-23 17:06 UTC (permalink / raw)
  To: gcc-gnats; +Cc: wilson, davidm, linux-ia64

>Number:         3783
>Category:       optimization
>Synopsis:       gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Mon Jul 23 17:06:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     davidm@hpl.hp.com
>Release:        gcc-3.0
>Organization:
>Environment:
- IA-64 Linux
- gcc -v:
Reading specs from /opt/gcc3/lib/gcc-lib/ia64-hp-linux/3.0/specs
Configured with: ../gcc-3.0/configure --host=ia64-hp-linux --enable-threads=posix --prefix=/opt/gcc3
Thread model: posix
gcc version 3.0
>Description:
gcc3.0 crashes with an internal compiler error on the attached file if -O2 is turned on.  With -O, the file compiles fine.
>How-To-Repeat:
$ gcc -O2 -c super.i
gcc: Internal error: Segmentation fault (program cc1)
Please submit a full bug report.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="super.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="super.i"

IyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX1ZFUlNJT05fXyAiMy4wIgojIDEgImZzL3Vk
Zi9zdXBlci5jIgojZGVmaW5lIF9fVVNFUl9MQUJFTF9QUkVGSVhfXwojIDEgImZzL3VkZi9zdXBl
ci5jIgojZGVmaW5lIF9fUkVHSVNURVJfUFJFRklYX18KIyAxICJmcy91ZGYvc3VwZXIuYyIKI2Rl
ZmluZSBfX0hBVkVfQlVJTFRJTl9TRVRKTVBfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZp
bmUgX19TSVpFX1RZUEVfXyBsb25nIHVuc2lnbmVkIGludAojIDEgImZzL3VkZi9zdXBlci5jIgoj
ZGVmaW5lIF9fUFRSRElGRl9UWVBFX18gbG9uZyBpbnQKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2Rl
ZmluZSBfX1dDSEFSX1RZUEVfXyBpbnQKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX1dJ
TlRfVFlQRV9fIHVuc2lnbmVkIGludAojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fU1RE
Q19fIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX0dOVUNfXyAzCiMgMSAiZnMvdWRm
L3N1cGVyLmMiCiNkZWZpbmUgX19HTlVDX01JTk9SX18gMAojIDEgImZzL3VkZi9zdXBlci5jIgoj
ZGVmaW5lIF9fR05VQ19QQVRDSExFVkVMX18gMAojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5l
IF9faWE2NCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19pYTY0X18gMQojIDEgImZz
L3VkZi9zdXBlci5jIgojZGVmaW5lIF9fbGludXggMQojIDEgImZzL3VkZi9zdXBlci5jIgojZGVm
aW5lIF9fbGludXhfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX0xPTkdMT05HIDEK
IyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBsaW51eCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMi
CiNkZWZpbmUgdW5peCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19MUDY0X18gMQoj
IDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fRUxGX18gMQojIDEgImZzL3VkZi9zdXBlci5j
IgojZGVmaW5lIF9faWE2NCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19pYTY0X18g
MQojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fbGludXggMQojIDEgImZzL3VkZi9zdXBl
ci5jIgojZGVmaW5lIF9fbGludXhfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX0xP
TkdMT05HIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX2xpbnV4X18gMQojIDEgImZz
L3VkZi9zdXBlci5jIgojZGVmaW5lIF9fdW5peF9fIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2Rl
ZmluZSBfX0xQNjRfXyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19FTEZfXyAxCiMg
MSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19saW51eCAxCiMgMSAiZnMvdWRmL3N1cGVyLmMi
CiNkZWZpbmUgX191bml4IDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBfX09QVElNSVpF
X18gMQojIDEgImZzL3VkZi9zdXBlci5jIgojZGVmaW5lIF9fU1REQ19IT1NURURfXyAxCiMgMSAi
ZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19MT05HX01BWF9fIDkyMjMzNzIwMzY4NTQ3NzU4MDdM
CiMgMSAiZnMvdWRmL3N1cGVyLmMiCiNkZWZpbmUgX19LRVJORUxfXyAxCiMgMSAiZnMvdWRmL3N1
cGVyLmMiCiNkZWZpbmUgTU9EVUxFIDEKIyAxICJmcy91ZGYvc3VwZXIuYyIKI2RlZmluZSBNT0RW
RVJTSU9OUyAxCiMgMSAiZnMvdWRmL3N1cGVyLmMiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAxCgojZGVmaW5lIF9MSU5VWF9NT0RWRVJTSU9O
U19ICiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2RzZXR2ZXIuaCIg
MQoKCiNkZWZpbmUgX19TWU1CT0xfVkVSU0lPTih4KSBfX3Zlcl8gIyMgeAojZGVmaW5lIF9fVkVS
U0lPTkVEX1NZTUJPTDIoeCwgdikgeCAjIyBfUiAjIyB2CiNkZWZpbmUgX19WRVJTSU9ORURfU1lN
Qk9MMSh4LCB2KSBfX1ZFUlNJT05FRF9TWU1CT0wyKHgsdikKI2RlZmluZSBfX1ZFUlNJT05FRF9T
WU1CT0woeCkgX19WRVJTSU9ORURfU1lNQk9MMSh4LF9fU1lNQk9MX1ZFUlNJT04oeCkpCgoKI2Rl
ZmluZSBfc2V0X3Zlcih4KSBfX1ZFUlNJT05FRF9TWU1CT0woeCkKIyA0ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvODM5MC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9l
aV9vcGVuIHNtcF9jNjMxYjU1ZAojZGVmaW5lIGVpX29wZW4gX3NldF92ZXIoZWlfb3BlbikKI2Rl
ZmluZSBfX3Zlcl9laV9jbG9zZSBzbXBfM2M0Y2VhMTYKI2RlZmluZSBlaV9jbG9zZSBfc2V0X3Zl
cihlaV9jbG9zZSkKI2RlZmluZSBfX3Zlcl9laV9pbnRlcnJ1cHQgc21wXzMyNjUxOTcxCiNkZWZp
bmUgZWlfaW50ZXJydXB0IF9zZXRfdmVyKGVpX2ludGVycnVwdCkKI2RlZmluZSBfX3Zlcl9laV90
eF90aW1lb3V0IHNtcF85N2ZmMGE5OAojZGVmaW5lIGVpX3R4X3RpbWVvdXQgX3NldF92ZXIoZWlf
dHhfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9ldGhkZXZfaW5pdCBzbXBfMjViOWQ0YTYKI2RlZmlu
ZSBldGhkZXZfaW5pdCBfc2V0X3ZlcihldGhkZXZfaW5pdCkKI2RlZmluZSBfX3Zlcl9OUzgzOTBf
aW5pdCBzbXBfNjMxYzZiZTMKI2RlZmluZSBOUzgzOTBfaW5pdCBfc2V0X3ZlcihOUzgzOTBfaW5p
dCkKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgi
IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYWM5N19j
b2RlYy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hYzk3X3JlYWRfcHJvYyBzbXBfYmFlNGRhNzIKI2Rl
ZmluZSBhYzk3X3JlYWRfcHJvYyBfc2V0X3ZlcihhYzk3X3JlYWRfcHJvYykKI2RlZmluZSBfX3Zl
cl9hYzk3X3Byb2JlX2NvZGVjIHNtcF84MjIzZmU1NgojZGVmaW5lIGFjOTdfcHJvYmVfY29kZWMg
X3NldF92ZXIoYWM5N19wcm9iZV9jb2RlYykKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHVsZXMvYWM5Ny52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hYzk3X2luaXQgc21w
XzI2Y2Y3YzMyCiNkZWZpbmUgYWM5N19pbml0IF9zZXRfdmVyKGFjOTdfaW5pdCkKI2RlZmluZSBf
X3Zlcl9hYzk3X3NldF92YWx1ZXMgc21wXzhmODA1OGYxCiNkZWZpbmUgYWM5N19zZXRfdmFsdWVz
IF9zZXRfdmVyKGFjOTdfc2V0X3ZhbHVlcykKI2RlZmluZSBfX3Zlcl9hYzk3X3NldF9taXhlciBz
bXBfYjA4NzZhZDgKI2RlZmluZSBhYzk3X3NldF9taXhlciBfc2V0X3ZlcihhYzk3X3NldF9taXhl
cikKI2RlZmluZSBfX3Zlcl9hYzk3X2dldF9yZWdpc3RlciBzbXBfNDc1ZWRlOWMKI2RlZmluZSBh
Yzk3X2dldF9yZWdpc3RlciBfc2V0X3ZlcihhYzk3X2dldF9yZWdpc3RlcikKI2RlZmluZSBfX3Zl
cl9hYzk3X3B1dF9yZWdpc3RlciBzbXBfYzViN2MwMjcKI2RlZmluZSBhYzk3X3B1dF9yZWdpc3Rl
ciBfc2V0X3ZlcihhYzk3X3B1dF9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9hYzk3X2dldF9taXhl
cl9zY2FsZWQgc21wXzIwYmE0MmZiCiNkZWZpbmUgYWM5N19nZXRfbWl4ZXJfc2NhbGVkIF9zZXRf
dmVyKGFjOTdfZ2V0X21peGVyX3NjYWxlZCkKI2RlZmluZSBfX3Zlcl9hYzk3X21peGVyX2lvY3Rs
IHNtcF80ODFmOTJlOAojZGVmaW5lIGFjOTdfbWl4ZXJfaW9jdGwgX3NldF92ZXIoYWM5N19taXhl
cl9pb2N0bCkKI2RlZmluZSBfX3Zlcl9hYzk3X3Jlc2V0IHNtcF84NThlMzVkYQojZGVmaW5lIGFj
OTdfcmVzZXQgX3NldF92ZXIoYWM5N19yZXNldCkKIyA3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvYWNpLnZlciIgMQojZGVmaW5lIF9fdmVyX2FjaV9wb3J0IHNt
cF8wZDgyYWRiNgojZGVmaW5lIGFjaV9wb3J0IF9zZXRfdmVyKGFjaV9wb3J0KQojZGVmaW5lIF9f
dmVyX2FjaV9pZGNvZGUgc21wXzJmNGRjZGNlCiNkZWZpbmUgYWNpX2lkY29kZSBfc2V0X3Zlcihh
Y2lfaWRjb2RlKQojZGVmaW5lIF9fdmVyX2FjaV92ZXJzaW9uIHNtcF85MzM1MGM4NwojZGVmaW5l
IGFjaV92ZXJzaW9uIF9zZXRfdmVyKGFjaV92ZXJzaW9uKQojZGVmaW5lIF9fdmVyX2FjaV9yd19j
bWQgc21wX2NjN2M0Y2Q4CiNkZWZpbmUgYWNpX3J3X2NtZCBfc2V0X3ZlcihhY2lfcndfY21kKQoj
IDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hY3BpX2tzeW1z
LnZlciIgMQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfZnJlZSBzbXBfNDNiOWJiYjQKI2RlZmluZSBh
Y3BpX29zX2ZyZWUgX3NldF92ZXIoYWNwaV9vc19mcmVlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nf
YnJlYWtwb2ludCBzbXBfNDQ4NDJkOWQKI2RlZmluZSBhY3BpX29zX2JyZWFrcG9pbnQgX3NldF92
ZXIoYWNwaV9vc19icmVha3BvaW50KQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfcHJpbnRmIHNtcF82
ZjU2MTVhZgojZGVmaW5lIGFjcGlfb3NfcHJpbnRmIF9zZXRfdmVyKGFjcGlfb3NfcHJpbnRmKQoj
ZGVmaW5lIF9fdmVyX2FjcGlfb3NfY2FsbG9jYXRlIHNtcF8wYjNhMWUyMQojZGVmaW5lIGFjcGlf
b3NfY2FsbG9jYXRlIF9zZXRfdmVyKGFjcGlfb3NfY2FsbG9jYXRlKQojZGVmaW5lIF9fdmVyX2Fj
cGlfb3Nfc2xlZXAgc21wXzA4MDgwM2M4CiNkZWZpbmUgYWNwaV9vc19zbGVlcCBfc2V0X3Zlcihh
Y3BpX29zX3NsZWVwKQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nfc2xlZXBfdXNlYyBzbXBfZTQwODU2
NjQKI2RlZmluZSBhY3BpX29zX3NsZWVwX3VzZWMgX3NldF92ZXIoYWNwaV9vc19zbGVlcF91c2Vj
KQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfaW44IHNtcF8wYWJjYzU0ZQojZGVmaW5lIGFjcGlfb3Nf
aW44IF9zZXRfdmVyKGFjcGlfb3NfaW44KQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nfb3V0OCBzbXBf
ZDc4MWIyNDIKI2RlZmluZSBhY3BpX29zX291dDggX3NldF92ZXIoYWNwaV9vc19vdXQ4KQojZGVm
aW5lIF9fdmVyX2FjcGlfb3NfcXVldWVfZm9yX2V4ZWN1dGlvbiBzbXBfOGQ1ZmY3MTYKI2RlZmlu
ZSBhY3BpX29zX3F1ZXVlX2Zvcl9leGVjdXRpb24gX3NldF92ZXIoYWNwaV9vc19xdWV1ZV9mb3Jf
ZXhlY3V0aW9uKQojZGVmaW5lIF9fdmVyX2FjcGlfZGJnX2xheWVyIHNtcF9hNDBmZjAxYgojZGVm
aW5lIGFjcGlfZGJnX2xheWVyIF9zZXRfdmVyKGFjcGlfZGJnX2xheWVyKQojZGVmaW5lIF9fdmVy
X2FjcGlfZGJnX2xldmVsIHNtcF9kZGFkNzk1MgojZGVmaW5lIGFjcGlfZGJnX2xldmVsIF9zZXRf
dmVyKGFjcGlfZGJnX2xldmVsKQojZGVmaW5lIF9fdmVyX2Z1bmN0aW9uX2V4aXQgc21wXzQxNThk
MDNjCiNkZWZpbmUgZnVuY3Rpb25fZXhpdCBfc2V0X3ZlcihmdW5jdGlvbl9leGl0KQojZGVmaW5l
IF9fdmVyX2Z1bmN0aW9uX3RyYWNlIHNtcF8xMzE2ZDhhNwojZGVmaW5lIGZ1bmN0aW9uX3RyYWNl
IF9zZXRfdmVyKGZ1bmN0aW9uX3RyYWNlKQojZGVmaW5lIF9fdmVyX2Z1bmN0aW9uX3N0YXR1c19l
eGl0IHNtcF84YmVjYjVlZQojZGVmaW5lIGZ1bmN0aW9uX3N0YXR1c19leGl0IF9zZXRfdmVyKGZ1
bmN0aW9uX3N0YXR1c19leGl0KQojZGVmaW5lIF9fdmVyX2Z1bmN0aW9uX3ZhbHVlX2V4aXQgc21w
XzVmNWQ2OWU1CiNkZWZpbmUgZnVuY3Rpb25fdmFsdWVfZXhpdCBfc2V0X3ZlcihmdW5jdGlvbl92
YWx1ZV9leGl0KQojZGVmaW5lIF9fdmVyX2RlYnVnX3ByaW50X3JhdyBzbXBfNDQ3MzMyYjIKI2Rl
ZmluZSBkZWJ1Z19wcmludF9yYXcgX3NldF92ZXIoZGVidWdfcHJpbnRfcmF3KQojZGVmaW5lIF9f
dmVyX2RlYnVnX3ByaW50X3ByZWZpeCBzbXBfNzlmNjQ4MjIKI2RlZmluZSBkZWJ1Z19wcmludF9w
cmVmaXggX3NldF92ZXIoZGVidWdfcHJpbnRfcHJlZml4KQojZGVmaW5lIF9fdmVyX2FjcGlfdXRf
Zm9ybWF0X2V4Y2VwdGlvbiBzbXBfODAwNzlmZjUKI2RlZmluZSBhY3BpX3V0X2Zvcm1hdF9leGNl
cHRpb24gX3NldF92ZXIoYWNwaV91dF9mb3JtYXRfZXhjZXB0aW9uKQojZGVmaW5lIF9fdmVyX2Fj
cGlfZ2V0X2hhbmRsZSBzbXBfNjc2ZjM5Y2MKI2RlZmluZSBhY3BpX2dldF9oYW5kbGUgX3NldF92
ZXIoYWNwaV9nZXRfaGFuZGxlKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3BhcmVudCBzbXBfNWMz
MDg2ODAKI2RlZmluZSBhY3BpX2dldF9wYXJlbnQgX3NldF92ZXIoYWNwaV9nZXRfcGFyZW50KQoj
ZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3R5cGUgc21wX2JmY2NmMzM0CiNkZWZpbmUgYWNwaV9nZXRf
dHlwZSBfc2V0X3ZlcihhY3BpX2dldF90eXBlKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X25hbWUg
c21wX2Q5MTNkY2M4CiNkZWZpbmUgYWNwaV9nZXRfbmFtZSBfc2V0X3ZlcihhY3BpX2dldF9uYW1l
KQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X29iamVjdF9pbmZvIHNtcF9jZGEwYjg3ZQojZGVmaW5l
IGFjcGlfZ2V0X29iamVjdF9pbmZvIF9zZXRfdmVyKGFjcGlfZ2V0X29iamVjdF9pbmZvKQojZGVm
aW5lIF9fdmVyX2FjcGlfZ2V0X25leHRfb2JqZWN0IHNtcF8xZGMzYjBmNgojZGVmaW5lIGFjcGlf
Z2V0X25leHRfb2JqZWN0IF9zZXRfdmVyKGFjcGlfZ2V0X25leHRfb2JqZWN0KQojZGVmaW5lIF9f
dmVyX2FjcGlfZXZhbHVhdGVfb2JqZWN0IHNtcF8zZjMwMGYwNAojZGVmaW5lIGFjcGlfZXZhbHVh
dGVfb2JqZWN0IF9zZXRfdmVyKGFjcGlfZXZhbHVhdGVfb2JqZWN0KQojZGVmaW5lIF9fdmVyX2Fj
cGlfZ2V0X3RhYmxlIHNtcF8wYjU5NTEyMwojZGVmaW5lIGFjcGlfZ2V0X3RhYmxlIF9zZXRfdmVy
KGFjcGlfZ2V0X3RhYmxlKQojZGVmaW5lIF9fdmVyX2FjcGlfaW5zdGFsbF9ub3RpZnlfaGFuZGxl
ciBzbXBfY2RhZWMwNWYKI2RlZmluZSBhY3BpX2luc3RhbGxfbm90aWZ5X2hhbmRsZXIgX3NldF92
ZXIoYWNwaV9pbnN0YWxsX25vdGlmeV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfcmVtb3Zl
X25vdGlmeV9oYW5kbGVyIHNtcF9lMWE3Y2U4YwojZGVmaW5lIGFjcGlfcmVtb3ZlX25vdGlmeV9o
YW5kbGVyIF9zZXRfdmVyKGFjcGlfcmVtb3ZlX25vdGlmeV9oYW5kbGVyKQojZGVmaW5lIF9fdmVy
X2FjcGlfaW5zdGFsbF9ncGVfaGFuZGxlciBzbXBfMDU3ZjkyNGYKI2RlZmluZSBhY3BpX2luc3Rh
bGxfZ3BlX2hhbmRsZXIgX3NldF92ZXIoYWNwaV9pbnN0YWxsX2dwZV9oYW5kbGVyKQojZGVmaW5l
IF9fdmVyX2FjcGlfcmVtb3ZlX2dwZV9oYW5kbGVyIHNtcF81YTc1MGEwNAojZGVmaW5lIGFjcGlf
cmVtb3ZlX2dwZV9oYW5kbGVyIF9zZXRfdmVyKGFjcGlfcmVtb3ZlX2dwZV9oYW5kbGVyKQojZGVm
aW5lIF9fdmVyX2FjcGlfaW5zdGFsbF9hZGRyZXNzX3NwYWNlX2hhbmRsZXIgc21wX2ZjMzdlNjRl
CiNkZWZpbmUgYWNwaV9pbnN0YWxsX2FkZHJlc3Nfc3BhY2VfaGFuZGxlciBfc2V0X3ZlcihhY3Bp
X2luc3RhbGxfYWRkcmVzc19zcGFjZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfcmVtb3Zl
X2FkZHJlc3Nfc3BhY2VfaGFuZGxlciBzbXBfN2Y0OTVlM2YKI2RlZmluZSBhY3BpX3JlbW92ZV9h
ZGRyZXNzX3NwYWNlX2hhbmRsZXIgX3NldF92ZXIoYWNwaV9yZW1vdmVfYWRkcmVzc19zcGFjZV9o
YW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyIHNt
cF81ODVjMzlhMAojZGVmaW5lIGFjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyIF9zZXRf
dmVyKGFjcGlfaW5zdGFsbF9maXhlZF9ldmVudF9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlf
cmVtb3ZlX2ZpeGVkX2V2ZW50X2hhbmRsZXIgc21wXzUzZTg4OTA0CiNkZWZpbmUgYWNwaV9yZW1v
dmVfZml4ZWRfZXZlbnRfaGFuZGxlciBfc2V0X3ZlcihhY3BpX3JlbW92ZV9maXhlZF9ldmVudF9o
YW5kbGVyKQojZGVmaW5lIF9fdmVyX2FjcGlfYWNxdWlyZV9nbG9iYWxfbG9jayBzbXBfZWQxOTA2
NGIKI2RlZmluZSBhY3BpX2FjcXVpcmVfZ2xvYmFsX2xvY2sgX3NldF92ZXIoYWNwaV9hY3F1aXJl
X2dsb2JhbF9sb2NrKQojZGVmaW5lIF9fdmVyX2FjcGlfcmVsZWFzZV9nbG9iYWxfbG9jayBzbXBf
NWYyMjRlNWYKI2RlZmluZSBhY3BpX3JlbGVhc2VfZ2xvYmFsX2xvY2sgX3NldF92ZXIoYWNwaV9y
ZWxlYXNlX2dsb2JhbF9sb2NrKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X2N1cnJlbnRfcmVzb3Vy
Y2VzIHNtcF8wYWIxYTBjZgojZGVmaW5lIGFjcGlfZ2V0X2N1cnJlbnRfcmVzb3VyY2VzIF9zZXRf
dmVyKGFjcGlfZ2V0X2N1cnJlbnRfcmVzb3VyY2VzKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3Bv
c3NpYmxlX3Jlc291cmNlcyBzbXBfNDA0OWUwNTAKI2RlZmluZSBhY3BpX2dldF9wb3NzaWJsZV9y
ZXNvdXJjZXMgX3NldF92ZXIoYWNwaV9nZXRfcG9zc2libGVfcmVzb3VyY2VzKQojZGVmaW5lIF9f
dmVyX2FjcGlfc2V0X2N1cnJlbnRfcmVzb3VyY2VzIHNtcF81MmUyOWQxOQojZGVmaW5lIGFjcGlf
c2V0X2N1cnJlbnRfcmVzb3VyY2VzIF9zZXRfdmVyKGFjcGlfc2V0X2N1cnJlbnRfcmVzb3VyY2Vz
KQojZGVmaW5lIF9fdmVyX2FjcGlfZW5hYmxlX2V2ZW50IHNtcF9jMzY3MWQ1ZAojZGVmaW5lIGFj
cGlfZW5hYmxlX2V2ZW50IF9zZXRfdmVyKGFjcGlfZW5hYmxlX2V2ZW50KQojZGVmaW5lIF9fdmVy
X2FjcGlfZGlzYWJsZV9ldmVudCBzbXBfMTkyODg4ODQKI2RlZmluZSBhY3BpX2Rpc2FibGVfZXZl
bnQgX3NldF92ZXIoYWNwaV9kaXNhYmxlX2V2ZW50KQojZGVmaW5lIF9fdmVyX2FjcGlfY2xlYXJf
ZXZlbnQgc21wXzViNmNjNTk5CiNkZWZpbmUgYWNwaV9jbGVhcl9ldmVudCBfc2V0X3ZlcihhY3Bp
X2NsZWFyX2V2ZW50KQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3RpbWVyX2R1cmF0aW9uIHNtcF84
OWNjMjliYQojZGVmaW5lIGFjcGlfZ2V0X3RpbWVyX2R1cmF0aW9uIF9zZXRfdmVyKGFjcGlfZ2V0
X3RpbWVyX2R1cmF0aW9uKQojZGVmaW5lIF9fdmVyX2FjcGlfZ2V0X3RpbWVyIHNtcF81NzFmNjcw
OAojZGVmaW5lIGFjcGlfZ2V0X3RpbWVyIF9zZXRfdmVyKGFjcGlfZ2V0X3RpbWVyKQojZGVmaW5l
IF9fdmVyX2FjcGlfb3Nfc2lnbmFsX3NlbWFwaG9yZSBzbXBfNjgxMTMwMjYKI2RlZmluZSBhY3Bp
X29zX3NpZ25hbF9zZW1hcGhvcmUgX3NldF92ZXIoYWNwaV9vc19zaWduYWxfc2VtYXBob3JlKQoj
ZGVmaW5lIF9fdmVyX2FjcGlfb3NfY3JlYXRlX3NlbWFwaG9yZSBzbXBfMzM2ZmE2NzEKI2RlZmlu
ZSBhY3BpX29zX2NyZWF0ZV9zZW1hcGhvcmUgX3NldF92ZXIoYWNwaV9vc19jcmVhdGVfc2VtYXBo
b3JlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfZGVsZXRlX3NlbWFwaG9yZSBzbXBfYjBjOWY5OTAK
I2RlZmluZSBhY3BpX29zX2RlbGV0ZV9zZW1hcGhvcmUgX3NldF92ZXIoYWNwaV9vc19kZWxldGVf
c2VtYXBob3JlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3Nfd2FpdF9zZW1hcGhvcmUgc21wXzcwODdk
NTY4CiNkZWZpbmUgYWNwaV9vc193YWl0X3NlbWFwaG9yZSBfc2V0X3ZlcihhY3BpX29zX3dhaXRf
c2VtYXBob3JlKQojZGVmaW5lIF9fdmVyX2FjcGlfb3NfaW4zMiBzbXBfNWVhOGYxZDgKI2RlZmlu
ZSBhY3BpX29zX2luMzIgX3NldF92ZXIoYWNwaV9vc19pbjMyKQojZGVmaW5lIF9fdmVyX2FjcGlf
b3Nfb3V0MzIgc21wX2I2MzExZjMzCiNkZWZpbmUgYWNwaV9vc19vdXQzMiBfc2V0X3ZlcihhY3Bp
X29zX291dDMyKQojZGVmaW5lIF9fdmVyX2FjcGlfZmFkdCBzbXBfNDEyYzFlMzMKI2RlZmluZSBh
Y3BpX2ZhZHQgX3NldF92ZXIoYWNwaV9mYWR0KQojZGVmaW5lIF9fdmVyX2FjcGlfaHdfcmVnaXN0
ZXJfYml0X2FjY2VzcyBzbXBfNDAxMzAyMGIKI2RlZmluZSBhY3BpX2h3X3JlZ2lzdGVyX2JpdF9h
Y2Nlc3MgX3NldF92ZXIoYWNwaV9od19yZWdpc3Rlcl9iaXRfYWNjZXNzKQojZGVmaW5lIF9fdmVy
X2FjcGlfaHdfb2J0YWluX3NsZWVwX3R5cGVfcmVnaXN0ZXJfZGF0YSBzbXBfYTM2NjA5NTcKI2Rl
ZmluZSBhY3BpX2h3X29idGFpbl9zbGVlcF90eXBlX3JlZ2lzdGVyX2RhdGEgX3NldF92ZXIoYWNw
aV9od19vYnRhaW5fc2xlZXBfdHlwZV9yZWdpc3Rlcl9kYXRhKQojZGVmaW5lIF9fdmVyX2FjcGlf
ZW50ZXJfc2xlZXBfc3RhdGUgc21wX2EzZTliNThkCiNkZWZpbmUgYWNwaV9lbnRlcl9zbGVlcF9z
dGF0ZSBfc2V0X3ZlcihhY3BpX2VudGVyX3NsZWVwX3N0YXRlKQojZGVmaW5lIF9fdmVyX2FjcGlf
Z2V0X3N5c3RlbV9pbmZvIHNtcF9hZWFhNWMyNwojZGVmaW5lIGFjcGlfZ2V0X3N5c3RlbV9pbmZv
IF9zZXRfdmVyKGFjcGlfZ2V0X3N5c3RlbV9pbmZvKQojIDkgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbW9kdWxlcy9hZDE4NDgudmVyIiAxCiNkZWZpbmUgX192ZXJfYWQxODQ4
X2RldGVjdCBzbXBfM2UwMzU2YWIKI2RlZmluZSBhZDE4NDhfZGV0ZWN0IF9zZXRfdmVyKGFkMTg0
OF9kZXRlY3QpCiNkZWZpbmUgX192ZXJfYWQxODQ4X2luaXQgc21wXzcxYTllMTg4CiNkZWZpbmUg
YWQxODQ4X2luaXQgX3NldF92ZXIoYWQxODQ4X2luaXQpCiNkZWZpbmUgX192ZXJfYWQxODQ4X3Vu
bG9hZCBzbXBfOWJmMWNjNjIKI2RlZmluZSBhZDE4NDhfdW5sb2FkIF9zZXRfdmVyKGFkMTg0OF91
bmxvYWQpCiNkZWZpbmUgX192ZXJfYWQxODQ4X2NvbnRyb2wgc21wX2MwNGY2ZjY3CiNkZWZpbmUg
YWQxODQ4X2NvbnRyb2wgX3NldF92ZXIoYWQxODQ4X2NvbnRyb2wpCiNkZWZpbmUgX192ZXJfYWRp
bnRyIHNtcF9jY2YzMTY0MAojZGVmaW5lIGFkaW50ciBfc2V0X3ZlcihhZGludHIpCiNkZWZpbmUg
X192ZXJfcHJvYmVfbXNfc291bmQgc21wXzM3NzczYmIwCiNkZWZpbmUgcHJvYmVfbXNfc291bmQg
X3NldF92ZXIocHJvYmVfbXNfc291bmQpCiNkZWZpbmUgX192ZXJfYXR0YWNoX21zX3NvdW5kIHNt
cF9mMmIxNDJlNwojZGVmaW5lIGF0dGFjaF9tc19zb3VuZCBfc2V0X3ZlcihhdHRhY2hfbXNfc291
bmQpCiNkZWZpbmUgX192ZXJfdW5sb2FkX21zX3NvdW5kIHNtcF9iMjlhOTE0OAojZGVmaW5lIHVu
bG9hZF9tc19zb3VuZCBfc2V0X3Zlcih1bmxvYWRfbXNfc291bmQpCiMgMTAgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hZGIudmVyIiAxCiNkZWZpbmUgX192ZXJf
YWRiX2NvbnRyb2xsZXIgc21wX2IyMWJkNmVmCiNkZWZpbmUgYWRiX2NvbnRyb2xsZXIgX3NldF92
ZXIoYWRiX2NvbnRyb2xsZXIpCiNkZWZpbmUgX192ZXJfYWRiX2NsaWVudF9saXN0IHNtcF83ZmJi
M2ZmOAojZGVmaW5lIGFkYl9jbGllbnRfbGlzdCBfc2V0X3ZlcihhZGJfY2xpZW50X2xpc3QpCiMg
MTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hZl9heDI1LnZl
ciIgMQojZGVmaW5lIF9fdmVyX2F4MjVfZW5jYXBzdWxhdGUgc21wXzcxYTA1Y2I0CiNkZWZpbmUg
YXgyNV9lbmNhcHN1bGF0ZSBfc2V0X3ZlcihheDI1X2VuY2Fwc3VsYXRlKQojZGVmaW5lIF9fdmVy
X2F4MjVfcmVidWlsZF9oZWFkZXIgc21wXzA5YzRlM2U2CiNkZWZpbmUgYXgyNV9yZWJ1aWxkX2hl
YWRlciBfc2V0X3ZlcihheDI1X3JlYnVpbGRfaGVhZGVyKQojZGVmaW5lIF9fdmVyX2F4MjVfZmlu
ZGJ5dWlkIHNtcF9iNGMyN2U4NgojZGVmaW5lIGF4MjVfZmluZGJ5dWlkIF9zZXRfdmVyKGF4MjVf
ZmluZGJ5dWlkKQojZGVmaW5lIF9fdmVyX2F4MjVfZmluZF9jYiBzbXBfYzhlN2U1ODUKI2RlZmlu
ZSBheDI1X2ZpbmRfY2IgX3NldF92ZXIoYXgyNV9maW5kX2NiKQojZGVmaW5lIF9fdmVyX2F4MjVf
bGlua2ZhaWxfcmVnaXN0ZXIgc21wXzRhMGQ3YzA1CiNkZWZpbmUgYXgyNV9saW5rZmFpbF9yZWdp
c3RlciBfc2V0X3ZlcihheDI1X2xpbmtmYWlsX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2F4MjVf
bGlua2ZhaWxfcmVsZWFzZSBzbXBfZDA5MzYyYjUKI2RlZmluZSBheDI1X2xpbmtmYWlsX3JlbGVh
c2UgX3NldF92ZXIoYXgyNV9saW5rZmFpbF9yZWxlYXNlKQojZGVmaW5lIF9fdmVyX2F4MjVfbGlz
dGVuX3JlZ2lzdGVyIHNtcF9mZmU5Njc4ZQojZGVmaW5lIGF4MjVfbGlzdGVuX3JlZ2lzdGVyIF9z
ZXRfdmVyKGF4MjVfbGlzdGVuX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2F4MjVfbGlzdGVuX3Jl
bGVhc2Ugc21wXzRkMTIyZTU4CiNkZWZpbmUgYXgyNV9saXN0ZW5fcmVsZWFzZSBfc2V0X3Zlcihh
eDI1X2xpc3Rlbl9yZWxlYXNlKQojZGVmaW5lIF9fdmVyX2F4MjVfcHJvdG9jb2xfcmVnaXN0ZXIg
c21wX2QxMWM2YTQ3CiNkZWZpbmUgYXgyNV9wcm90b2NvbF9yZWdpc3RlciBfc2V0X3ZlcihheDI1
X3Byb3RvY29sX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2F4MjVfcHJvdG9jb2xfcmVsZWFzZSBz
bXBfOGVkZTllMjYKI2RlZmluZSBheDI1X3Byb3RvY29sX3JlbGVhc2UgX3NldF92ZXIoYXgyNV9w
cm90b2NvbF9yZWxlYXNlKQojZGVmaW5lIF9fdmVyX2F4MjVfc2VuZF9mcmFtZSBzbXBfOTI0OWQx
Y2IKI2RlZmluZSBheDI1X3NlbmRfZnJhbWUgX3NldF92ZXIoYXgyNV9zZW5kX2ZyYW1lKQojZGVm
aW5lIF9fdmVyX2F4MjVfdWlkX3BvbGljeSBzbXBfMjQyODUyYjkKI2RlZmluZSBheDI1X3VpZF9w
b2xpY3kgX3NldF92ZXIoYXgyNV91aWRfcG9saWN5KQojZGVmaW5lIF9fdmVyX2F4MjVjbXAgc21w
XzViNWZlZjQxCiNkZWZpbmUgYXgyNWNtcCBfc2V0X3ZlcihheDI1Y21wKQojZGVmaW5lIF9fdmVy
X2F4MmFzYyBzbXBfOTcxMjM2MDgKI2RlZmluZSBheDJhc2MgX3NldF92ZXIoYXgyYXNjKQojZGVm
aW5lIF9fdmVyX2FzYzJheCBzbXBfNzllNzliMTYKI2RlZmluZSBhc2MyYXggX3NldF92ZXIoYXNj
MmF4KQojZGVmaW5lIF9fdmVyX251bGxfYXgyNV9hZGRyZXNzIHNtcF80MzYyMWUxOAojZGVmaW5l
IG51bGxfYXgyNV9hZGRyZXNzIF9zZXRfdmVyKG51bGxfYXgyNV9hZGRyZXNzKQojZGVmaW5lIF9f
dmVyX2F4MjVfZGlzcGxheV90aW1lciBzbXBfZTE5NjVlMzEKI2RlZmluZSBheDI1X2Rpc3BsYXlf
dGltZXIgX3NldF92ZXIoYXgyNV9kaXNwbGF5X3RpbWVyKQojIDEyICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYWZfaXB4LnZlciIgMQojZGVmaW5lIF9fdmVyX2lw
eHJ0cl9yb3V0ZV9za2Igc21wXzNmODY4MDUxCiNkZWZpbmUgaXB4cnRyX3JvdXRlX3NrYiBfc2V0
X3ZlcihpcHhydHJfcm91dGVfc2tiKQojZGVmaW5lIF9fdmVyX2lweF9pZl9vZmZzZXQgc21wXzA4
ZGU0ZjJjCiNkZWZpbmUgaXB4X2lmX29mZnNldCBfc2V0X3ZlcihpcHhfaWZfb2Zmc2V0KQojZGVm
aW5lIF9fdmVyX2lweF9yZW1vdmVfc29ja2V0IHNtcF9iYzMxYmU2MwojZGVmaW5lIGlweF9yZW1v
dmVfc29ja2V0IF9zZXRfdmVyKGlweF9yZW1vdmVfc29ja2V0KQojZGVmaW5lIF9fdmVyX2lweF9y
ZWdpc3Rlcl9zcHggc21wX2EzZjc1ZjFjCiNkZWZpbmUgaXB4X3JlZ2lzdGVyX3NweCBfc2V0X3Zl
cihpcHhfcmVnaXN0ZXJfc3B4KQojZGVmaW5lIF9fdmVyX2lweF91bnJlZ2lzdGVyX3NweCBzbXBf
YjVlMzllNjQKI2RlZmluZSBpcHhfdW5yZWdpc3Rlcl9zcHggX3NldF92ZXIoaXB4X3VucmVnaXN0
ZXJfc3B4KQojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNp
b25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMv
YWZfbmV0bGluay52ZXIiIDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R1bGVzL2FmX3NweC52ZXIiIDEKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGVzL2FncGdhcnRfYmUudmVyIiAxCiNkZWZpbmUgX192ZXJfYWdwX2ZyZWVf
bWVtb3J5IHNtcF8zMDFlYjJmNgojZGVmaW5lIGFncF9mcmVlX21lbW9yeSBfc2V0X3ZlcihhZ3Bf
ZnJlZV9tZW1vcnkpCiNkZWZpbmUgX192ZXJfYWdwX2FsbG9jYXRlX21lbW9yeSBzbXBfOTMzZWEx
ODMKI2RlZmluZSBhZ3BfYWxsb2NhdGVfbWVtb3J5IF9zZXRfdmVyKGFncF9hbGxvY2F0ZV9tZW1v
cnkpCiNkZWZpbmUgX192ZXJfYWdwX2NvcHlfaW5mbyBzbXBfYTcxZWU3YTkKI2RlZmluZSBhZ3Bf
Y29weV9pbmZvIF9zZXRfdmVyKGFncF9jb3B5X2luZm8pCiNkZWZpbmUgX192ZXJfYWdwX2JpbmRf
bWVtb3J5IHNtcF9mZjFhNmJlNwojZGVmaW5lIGFncF9iaW5kX21lbW9yeSBfc2V0X3ZlcihhZ3Bf
YmluZF9tZW1vcnkpCiNkZWZpbmUgX192ZXJfYWdwX3VuYmluZF9tZW1vcnkgc21wX2VhZDU2M2Mx
CiNkZWZpbmUgYWdwX3VuYmluZF9tZW1vcnkgX3NldF92ZXIoYWdwX3VuYmluZF9tZW1vcnkpCiNk
ZWZpbmUgX192ZXJfYWdwX2VuYWJsZSBzbXBfMGQwMjA4NWYKI2RlZmluZSBhZ3BfZW5hYmxlIF9z
ZXRfdmVyKGFncF9lbmFibGUpCiNkZWZpbmUgX192ZXJfYWdwX2JhY2tlbmRfYWNxdWlyZSBzbXBf
ZmRhNzE5MDQKI2RlZmluZSBhZ3BfYmFja2VuZF9hY3F1aXJlIF9zZXRfdmVyKGFncF9iYWNrZW5k
X2FjcXVpcmUpCiNkZWZpbmUgX192ZXJfYWdwX2JhY2tlbmRfcmVsZWFzZSBzbXBfMGQ0M2ZkZTEK
I2RlZmluZSBhZ3BfYmFja2VuZF9yZWxlYXNlIF9zZXRfdmVyKGFncF9iYWNrZW5kX3JlbGVhc2Up
CiNkZWZpbmUgX192ZXJfYWdwX3JlZ2lzdGVyX21hcCBzbXBfZmIyZDdiZjMKI2RlZmluZSBhZ3Bf
cmVnaXN0ZXJfbWFwIF9zZXRfdmVyKGFncF9yZWdpc3Rlcl9tYXApCiNkZWZpbmUgX192ZXJfYWdw
X3VucmVnaXN0ZXJfbWFwIHNtcF9kNmU1ODcxMwojZGVmaW5lIGFncF91bnJlZ2lzdGVyX21hcCBf
c2V0X3ZlcihhZ3BfdW5yZWdpc3Rlcl9tYXApCiNkZWZpbmUgX192ZXJfYWdwX2lvcmVtYXAgc21w
XzFhYWEwMDdmCiNkZWZpbmUgYWdwX2lvcmVtYXAgX3NldF92ZXIoYWdwX2lvcmVtYXApCiNkZWZp
bmUgX192ZXJfYWdwX2lvdW5tYXAgc21wXzFiYjAxOWZkCiNkZWZpbmUgYWdwX2lvdW5tYXAgX3Nl
dF92ZXIoYWdwX2lvdW5tYXApCiMgMTYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdWxlcy9haXJvbmV0NDUwMF9jYXJkLnZlciIgMQojIDE3ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYWlyb25ldDQ1MDBfY29yZS52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl9iYXBfc2xlZXAgc21wX2M2ZjMxMTlmCiNkZWZpbmUgYmFwX3NsZWVwIF9zZXRfdmVy
KGJhcF9zbGVlcCkKI2RlZmluZSBfX3Zlcl9iYXBfc2xlZXBfYWZ0ZXJfc2V0dXAgc21wXzAwYmVm
NTVhCiNkZWZpbmUgYmFwX3NsZWVwX2FmdGVyX3NldHVwIF9zZXRfdmVyKGJhcF9zbGVlcF9hZnRl
cl9zZXR1cCkKI2RlZmluZSBfX3Zlcl9zbGVlcF9iZWZvcmVfY29tbWFuZCBzbXBfYTMzYTdkMmMK
I2RlZmluZSBzbGVlcF9iZWZvcmVfY29tbWFuZCBfc2V0X3ZlcihzbGVlcF9iZWZvcmVfY29tbWFu
ZCkKI2RlZmluZSBfX3Zlcl9iYXBfc2xlZXBfYmVmb3JlX3dyaXRlIHNtcF8wNGI4MmI3MQojZGVm
aW5lIGJhcF9zbGVlcF9iZWZvcmVfd3JpdGUgX3NldF92ZXIoYmFwX3NsZWVwX2JlZm9yZV93cml0
ZSkKI2RlZmluZSBfX3Zlcl9zbGVlcF9pbl9jb21tYW5kIHNtcF8wMmFhM2U2YgojZGVmaW5lIHNs
ZWVwX2luX2NvbW1hbmQgX3NldF92ZXIoc2xlZXBfaW5fY29tbWFuZCkKI2RlZmluZSBfX3Zlcl9i
b3RoX2JhcF9sb2NrIHNtcF9iZmUxZGM3ZQojZGVmaW5lIGJvdGhfYmFwX2xvY2sgX3NldF92ZXIo
Ym90aF9iYXBfbG9jaykKI2RlZmluZSBfX3Zlcl9iYXBfc2V0dXBfc3BpbmxvY2sgc21wXzljNTE1
NWI3CiNkZWZpbmUgYmFwX3NldHVwX3NwaW5sb2NrIF9zZXRfdmVyKGJhcF9zZXR1cF9zcGlubG9j
aykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0dlbmVyYWxfQ29uZmlnIHNt
cF9hN2IzYTdhMAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfR2VuZXJhbF9Db25maWcg
X3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9HZW5lcmFsX0NvbmZpZykKI2RlZmluZSBf
X3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1NTSURfbGlzdCBzbXBfZWFiMTJmYWQKI2RlZmlu
ZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1NTSURfbGlzdCBfc2V0X3ZlcihhaXJvbmV0NDUwMF9S
SURfU2VsZWN0X1NTSURfbGlzdCkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0
X0FQX2xpc3Qgc21wXzgyYTM4MGU4CiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9BUF9s
aXN0IF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfQVBfbGlzdCkKI2RlZmluZSBfX3Zl
cl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0RyaXZlcl9uYW1lIHNtcF9kNDc3YTFlMgojZGVmaW5l
IGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfRHJpdmVyX25hbWUgX3NldF92ZXIoYWlyb25ldDQ1MDBf
UklEX1NlbGVjdF9Ecml2ZXJfbmFtZSkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2Vs
ZWN0X0VuY2Fwc3VsYXRpb24gc21wX2U3MmRkNGU5CiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1Nl
bGVjdF9FbmNhcHN1bGF0aW9uIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfRW5jYXBz
dWxhdGlvbikKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF92b2xhdGls
ZSBzbXBfOTEzYzJiOTIKI2RlZmluZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF92b2xhdGls
ZSBfc2V0X3ZlcihhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF92b2xhdGlsZSkKI2RlZmluZSBf
X3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF9ub252b2xhdGlsZSBzbXBfODg0YjY1OWIK
I2RlZmluZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF9ub252b2xhdGlsZSBfc2V0X3Zlcihh
aXJvbmV0NDUwMF9SSURfU2VsZWN0X1dFUF9ub252b2xhdGlsZSkKI2RlZmluZSBfX3Zlcl9haXJv
bmV0NDUwMF9SSURfU2VsZWN0X01vZHVsYXRpb24gc21wXzA5M2Y3YzkwCiNkZWZpbmUgYWlyb25l
dDQ1MDBfUklEX1NlbGVjdF9Nb2R1bGF0aW9uIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxl
Y3RfTW9kdWxhdGlvbikKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0FjdGl2
ZV9Db25maWcgc21wXzY1MWY5YjEzCiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9BY3Rp
dmVfQ29uZmlnIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfQWN0aXZlX0NvbmZpZykK
I2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X0NhcGFiaWxpdGllcyBzbXBfYzY0
YTJjY2EKI2RlZmluZSBhaXJvbmV0NDUwMF9SSURfU2VsZWN0X0NhcGFiaWxpdGllcyBfc2V0X3Zl
cihhaXJvbmV0NDUwMF9SSURfU2VsZWN0X0NhcGFiaWxpdGllcykKI2RlZmluZSBfX3Zlcl9haXJv
bmV0NDUwMF9SSURfU2VsZWN0X0FQX0luZm8gc21wX2E1OGViMjI0CiNkZWZpbmUgYWlyb25ldDQ1
MDBfUklEX1NlbGVjdF9BUF9JbmZvIF9zZXRfdmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfQVBf
SW5mbykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0X1JhZGlvX0luZm8gc21w
X2RjZDg2YTRhCiNkZWZpbmUgYWlyb25ldDQ1MDBfUklEX1NlbGVjdF9SYWRpb19JbmZvIF9zZXRf
dmVyKGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfUmFkaW9fSW5mbykKI2RlZmluZSBfX3Zlcl9haXJv
bmV0NDUwMF9SSURfU2VsZWN0X1N0YXR1cyBzbXBfM2FlNDI1ZjkKI2RlZmluZSBhaXJvbmV0NDUw
MF9SSURfU2VsZWN0X1N0YXR1cyBfc2V0X3ZlcihhaXJvbmV0NDUwMF9SSURfU2VsZWN0X1N0YXR1
cykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0XzE2X3N0YXRzIHNtcF9hMDZl
MWU5OAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfMTZfc3RhdHMgX3NldF92ZXIoYWly
b25ldDQ1MDBfUklEX1NlbGVjdF8xNl9zdGF0cykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9S
SURfU2VsZWN0XzE2X3N0YXRzX2RlbHRhIHNtcF8yMGIxMjY5NAojZGVmaW5lIGFpcm9uZXQ0NTAw
X1JJRF9TZWxlY3RfMTZfc3RhdHNfZGVsdGEgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVj
dF8xNl9zdGF0c19kZWx0YSkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0XzE2
X3N0YXRzX2NsZWFyIHNtcF8zNmFlMWJkZQojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3Rf
MTZfc3RhdHNfY2xlYXIgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVjdF8xNl9zdGF0c19j
bGVhcikKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0XzMyX3N0YXRzIHNtcF8w
YWQyMzhlNAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxlY3RfMzJfc3RhdHMgX3NldF92ZXIo
YWlyb25ldDQ1MDBfUklEX1NlbGVjdF8zMl9zdGF0cykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUw
MF9SSURfU2VsZWN0XzMyX3N0YXRzX2RlbHRhIHNtcF85MTliMTgxZQojZGVmaW5lIGFpcm9uZXQ0
NTAwX1JJRF9TZWxlY3RfMzJfc3RhdHNfZGVsdGEgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1Nl
bGVjdF8zMl9zdGF0c19kZWx0YSkKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9SSURfU2VsZWN0
XzMyX3N0YXRzX2NsZWFyIHNtcF84Nzg0MjU1NAojZGVmaW5lIGFpcm9uZXQ0NTAwX1JJRF9TZWxl
Y3RfMzJfc3RhdHNfY2xlYXIgX3NldF92ZXIoYWlyb25ldDQ1MDBfUklEX1NlbGVjdF8zMl9zdGF0
c19jbGVhcikKI2RlZmluZSBfX3Zlcl9hd2NfcmVhZHJpZCBzbXBfOTVhN2Y2YTAKI2RlZmluZSBh
d2NfcmVhZHJpZCBfc2V0X3Zlcihhd2NfcmVhZHJpZCkKI2RlZmluZSBfX3Zlcl9hd2Nfd3JpdGVy
aWQgc21wXzA1YjJlMzViCiNkZWZpbmUgYXdjX3dyaXRlcmlkIF9zZXRfdmVyKGF3Y193cml0ZXJp
ZCkKI2RlZmluZSBfX3Zlcl9hd2NfcmVhZHJpZF9kaXIgc21wXzQ2NDQ5MGMyCiNkZWZpbmUgYXdj
X3JlYWRyaWRfZGlyIF9zZXRfdmVyKGF3Y19yZWFkcmlkX2RpcikKI2RlZmluZSBfX3Zlcl9hd2Nf
d3JpdGVyaWRfZGlyIHNtcF9iNzQ4NTU2YwojZGVmaW5lIGF3Y193cml0ZXJpZF9kaXIgX3NldF92
ZXIoYXdjX3dyaXRlcmlkX2RpcikKI2RlZmluZSBfX3Zlcl9hd2NfZW5hYmxlX01BQyBzbXBfZWVi
NjIyMWUKI2RlZmluZSBhd2NfZW5hYmxlX01BQyBfc2V0X3Zlcihhd2NfZW5hYmxlX01BQykKI2Rl
ZmluZSBfX3Zlcl9hd2NfZGlzYWJsZV9NQUMgc21wX2JhYWNmNThmCiNkZWZpbmUgYXdjX2Rpc2Fi
bGVfTUFDIF9zZXRfdmVyKGF3Y19kaXNhYmxlX01BQykKI2RlZmluZSBfX3Zlcl9hd2NfaW5pdCBz
bXBfZjMzY2RhMjkKI2RlZmluZSBhd2NfaW5pdCBfc2V0X3Zlcihhd2NfaW5pdCkKI2RlZmluZSBf
X3Zlcl9hd2Nfb3BlbiBzbXBfYjAxZDBjODEKI2RlZmluZSBhd2Nfb3BlbiBfc2V0X3Zlcihhd2Nf
b3BlbikKI2RlZmluZSBfX3Zlcl9hd2NfY2xvc2Ugc21wX2YwOTZlYmY2CiNkZWZpbmUgYXdjX2Ns
b3NlIF9zZXRfdmVyKGF3Y19jbG9zZSkKI2RlZmluZSBfX3Zlcl9hd2NfcmVzZXQgc21wXzQzODU3
MGVkCiNkZWZpbmUgYXdjX3Jlc2V0IF9zZXRfdmVyKGF3Y19yZXNldCkKI2RlZmluZSBfX3Zlcl9h
d2NfY29uZmlnIHNtcF81Zjc4YWM2NwojZGVmaW5lIGF3Y19jb25maWcgX3NldF92ZXIoYXdjX2Nv
bmZpZykKI2RlZmluZSBfX3Zlcl9haXJvbmV0NDUwMF9kZXZpY2VzIHNtcF85ZTIwMjQ1ZgojZGVm
aW5lIGFpcm9uZXQ0NTAwX2RldmljZXMgX3NldF92ZXIoYWlyb25ldDQ1MDBfZGV2aWNlcykKI2Rl
ZmluZSBfX3Zlcl9hd2NfZGVidWcgc21wXzk3OWJlOGEyCiNkZWZpbmUgYXdjX2RlYnVnIF9zZXRf
dmVyKGF3Y19kZWJ1ZykKI2RlZmluZSBfX3Zlcl9hd2NfcHJpdmF0ZV9pbml0IHNtcF9lZGI3NmVi
YQojZGVmaW5lIGF3Y19wcml2YXRlX2luaXQgX3NldF92ZXIoYXdjX3ByaXZhdGVfaW5pdCkKI2Rl
ZmluZSBfX3Zlcl9hd2NfdHhfdGltZW91dCBzbXBfMTU4N2FmYjkKI2RlZmluZSBhd2NfdHhfdGlt
ZW91dCBfc2V0X3Zlcihhd2NfdHhfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9hd2Nfc3RhcnRfeG1p
dCBzbXBfZWQwMDQ0YzIKI2RlZmluZSBhd2Nfc3RhcnRfeG1pdCBfc2V0X3Zlcihhd2Nfc3RhcnRf
eG1pdCkKI2RlZmluZSBfX3Zlcl9hd2NfaW50ZXJydXB0IHNtcF9hNDNjMTc3ZgojZGVmaW5lIGF3
Y19pbnRlcnJ1cHQgX3NldF92ZXIoYXdjX2ludGVycnVwdCkKI2RlZmluZSBfX3Zlcl9hd2NfZ2V0
X3N0YXRzIHNtcF85M2MxM2Q3MAojZGVmaW5lIGF3Y19nZXRfc3RhdHMgX3NldF92ZXIoYXdjX2dl
dF9zdGF0cykKI2RlZmluZSBfX3Zlcl9hd2NfY2hhbmdlX210dSBzbXBfZDhmNzQ2MWEKI2RlZmlu
ZSBhd2NfY2hhbmdlX210dSBfc2V0X3Zlcihhd2NfY2hhbmdlX210dSkKI2RlZmluZSBfX3Zlcl9h
d2Nfc2V0X211bHRpY2FzdF9saXN0IHNtcF84ZGFmZjMyYgojZGVmaW5lIGF3Y19zZXRfbXVsdGlj
YXN0X2xpc3QgX3NldF92ZXIoYXdjX3NldF9tdWx0aWNhc3RfbGlzdCkKI2RlZmluZSBfX3Zlcl9h
d2NfcHJvY19zZXRfZnVuIHNtcF8zNTFkZDI5OQojZGVmaW5lIGF3Y19wcm9jX3NldF9mdW4gX3Nl
dF92ZXIoYXdjX3Byb2Nfc2V0X2Z1bikKI2RlZmluZSBfX3Zlcl9hd2NfcHJvY191bnNldF9mdW4g
c21wX2EwZWM3OTBjCiNkZWZpbmUgYXdjX3Byb2NfdW5zZXRfZnVuIF9zZXRfdmVyKGF3Y19wcm9j
X3Vuc2V0X2Z1bikKI2RlZmluZSBfX3Zlcl9hd2NfcmVnaXN0ZXJfcHJvYyBzbXBfODkyNzJjZWQK
I2RlZmluZSBhd2NfcmVnaXN0ZXJfcHJvYyBfc2V0X3Zlcihhd2NfcmVnaXN0ZXJfcHJvYykKI2Rl
ZmluZSBfX3Zlcl9hd2NfdW5yZWdpc3Rlcl9wcm9jIHNtcF8yMDBhYWRjYQojZGVmaW5lIGF3Y191
bnJlZ2lzdGVyX3Byb2MgX3NldF92ZXIoYXdjX3VucmVnaXN0ZXJfcHJvYykKIyAxOCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2Fpcm8udmVyIiAxCiMgMTkgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hbWQ3OTMwLnZlciIgMQoj
IDIwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYXJjbmV0LnZl
ciIgMQojZGVmaW5lIF9fdmVyX2FyY19wcm90b19tYXAgc21wXzVjMDQzZmVmCiNkZWZpbmUgYXJj
X3Byb3RvX21hcCBfc2V0X3ZlcihhcmNfcHJvdG9fbWFwKQojZGVmaW5lIF9fdmVyX2FyY19wcm90
b19kZWZhdWx0IHNtcF9iMGJmNTY2NAojZGVmaW5lIGFyY19wcm90b19kZWZhdWx0IF9zZXRfdmVy
KGFyY19wcm90b19kZWZhdWx0KQojZGVmaW5lIF9fdmVyX2FyY19iY2FzdF9wcm90byBzbXBfMmRk
NTEzY2MKI2RlZmluZSBhcmNfYmNhc3RfcHJvdG8gX3NldF92ZXIoYXJjX2JjYXN0X3Byb3RvKQoj
ZGVmaW5lIF9fdmVyX2FyY19wcm90b19udWxsIHNtcF9jN2JjMWE1OQojZGVmaW5lIGFyY19wcm90
b19udWxsIF9zZXRfdmVyKGFyY19wcm90b19udWxsKQojZGVmaW5lIF9fdmVyX2FyY25ldF91bnJl
Z2lzdGVyX3Byb3RvIHNtcF8xZmJhYjUzYgojZGVmaW5lIGFyY25ldF91bnJlZ2lzdGVyX3Byb3Rv
IF9zZXRfdmVyKGFyY25ldF91bnJlZ2lzdGVyX3Byb3RvKQojZGVmaW5lIF9fdmVyX2FyY25ldF9k
ZWJ1ZyBzbXBfNjUzNDc5MmEKI2RlZmluZSBhcmNuZXRfZGVidWcgX3NldF92ZXIoYXJjbmV0X2Rl
YnVnKQojZGVmaW5lIF9fdmVyX2FyY2Rldl9zZXR1cCBzbXBfMDEwYmQyNDQKI2RlZmluZSBhcmNk
ZXZfc2V0dXAgX3NldF92ZXIoYXJjZGV2X3NldHVwKQojZGVmaW5lIF9fdmVyX2FyY25ldF9pbnRl
cnJ1cHQgc21wXzA0NWIxZmFjCiNkZWZpbmUgYXJjbmV0X2ludGVycnVwdCBfc2V0X3ZlcihhcmNu
ZXRfaW50ZXJydXB0KQojIDIxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHVsZXMvYXJsYW4udmVyIiAxCiNkZWZpbmUgX192ZXJfYXJsYW5fZGV2aWNlIHNtcF9jN2I5MTJm
MAojZGVmaW5lIGFybGFuX2RldmljZSBfc2V0X3Zlcihhcmxhbl9kZXZpY2UpCiNkZWZpbmUgX192
ZXJfYXJsYW5fY29uZiBzbXBfNjQ5ODBlMDMKI2RlZmluZSBhcmxhbl9jb25mIF9zZXRfdmVyKGFy
bGFuX2NvbmYpCiNkZWZpbmUgX192ZXJfbGFzdF9hcmxhbiBzbXBfMmVhODM0YTAKI2RlZmluZSBs
YXN0X2FybGFuIF9zZXRfdmVyKGxhc3RfYXJsYW4pCiNkZWZpbmUgX192ZXJfYXJsYW5fY29tbWFu
ZCBzbXBfMzNiZWM3NGMKI2RlZmluZSBhcmxhbl9jb21tYW5kIF9zZXRfdmVyKGFybGFuX2NvbW1h
bmQpCiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9hdG1f
bWlzYy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1fY2hhcmdlIHNtcF84NmRjZTM1OQojZGVmaW5l
IGF0bV9jaGFyZ2UgX3NldF92ZXIoYXRtX2NoYXJnZSkKI2RlZmluZSBfX3Zlcl9hdG1fYWxsb2Nf
Y2hhcmdlIHNtcF9jMTg2NmY3NQojZGVmaW5lIGF0bV9hbGxvY19jaGFyZ2UgX3NldF92ZXIoYXRt
X2FsbG9jX2NoYXJnZSkKI2RlZmluZSBfX3Zlcl9hdG1fZmluZF9jaSBzbXBfODYyMjM0YTUKI2Rl
ZmluZSBhdG1fZmluZF9jaSBfc2V0X3ZlcihhdG1fZmluZF9jaSkKI2RlZmluZSBfX3Zlcl9hdG1f
cGNyX2dvYWwgc21wXzM3MmZkMTA0CiNkZWZpbmUgYXRtX3Bjcl9nb2FsIF9zZXRfdmVyKGF0bV9w
Y3JfZ29hbCkKI2RlZmluZSBfX3Zlcl9zb25ldF9jb3B5X3N0YXRzIHNtcF85OTM1OWM0NgojZGVm
aW5lIHNvbmV0X2NvcHlfc3RhdHMgX3NldF92ZXIoc29uZXRfY29weV9zdGF0cykKI2RlZmluZSBf
X3Zlcl9zb25ldF9zdWJ0cmFjdF9zdGF0cyBzbXBfZDVmYTJlN2MKI2RlZmluZSBzb25ldF9zdWJ0
cmFjdF9zdGF0cyBfc2V0X3Zlcihzb25ldF9zdWJ0cmFjdF9zdGF0cykKIyAyMyAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2F1ZGlvX3N5bXMudmVyIiAxCiNkZWZp
bmUgX192ZXJfRE1BYnVmX3N0YXJ0X2RtYSBzbXBfZTA1NmI3MWMKI2RlZmluZSBETUFidWZfc3Rh
cnRfZG1hIF9zZXRfdmVyKERNQWJ1Zl9zdGFydF9kbWEpCiNkZWZpbmUgX192ZXJfRE1BYnVmX29w
ZW5fZG1hIHNtcF8wNmIzMDEzZAojZGVmaW5lIERNQWJ1Zl9vcGVuX2RtYSBfc2V0X3ZlcihETUFi
dWZfb3Blbl9kbWEpCiNkZWZpbmUgX192ZXJfRE1BYnVmX2Nsb3NlX2RtYSBzbXBfYzg4YjQyYWIK
I2RlZmluZSBETUFidWZfY2xvc2VfZG1hIF9zZXRfdmVyKERNQWJ1Zl9jbG9zZV9kbWEpCiNkZWZp
bmUgX192ZXJfRE1BYnVmX2lucHV0aW50ciBzbXBfZWIzMTVkOTkKI2RlZmluZSBETUFidWZfaW5w
dXRpbnRyIF9zZXRfdmVyKERNQWJ1Zl9pbnB1dGludHIpCiNkZWZpbmUgX192ZXJfRE1BYnVmX291
dHB1dGludHIgc21wXzk4N2JjZjEyCiNkZWZpbmUgRE1BYnVmX291dHB1dGludHIgX3NldF92ZXIo
RE1BYnVmX291dHB1dGludHIpCiNkZWZpbmUgX192ZXJfZG1hX2lvY3RsIHNtcF9mYTIxZDY2Mgoj
ZGVmaW5lIGRtYV9pb2N0bCBfc2V0X3ZlcihkbWFfaW9jdGwpCiNkZWZpbmUgX192ZXJfYXVkaW9f
b3BlbiBzbXBfYWRmZjI4NWMKI2RlZmluZSBhdWRpb19vcGVuIF9zZXRfdmVyKGF1ZGlvX29wZW4p
CiNkZWZpbmUgX192ZXJfYXVkaW9fcmVsZWFzZSBzbXBfMDdmNzZlZTgKI2RlZmluZSBhdWRpb19y
ZWxlYXNlIF9zZXRfdmVyKGF1ZGlvX3JlbGVhc2UpCiMgMjQgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbW9kdWxlcy9hdWRpby52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rl
cl9zcGFyY2F1ZGlvX2RyaXZlciBzbXBfZTI2MjFjNTUKI2RlZmluZSByZWdpc3Rlcl9zcGFyY2F1
ZGlvX2RyaXZlciBfc2V0X3ZlcihyZWdpc3Rlcl9zcGFyY2F1ZGlvX2RyaXZlcikKI2RlZmluZSBf
X3Zlcl91bnJlZ2lzdGVyX3NwYXJjYXVkaW9fZHJpdmVyIHNtcF9lNjM4OGU2MgojZGVmaW5lIHVu
cmVnaXN0ZXJfc3BhcmNhdWRpb19kcml2ZXIgX3NldF92ZXIodW5yZWdpc3Rlcl9zcGFyY2F1ZGlv
X2RyaXZlcikKI2RlZmluZSBfX3Zlcl9zcGFyY2F1ZGlvX291dHB1dF9kb25lIHNtcF9kZGMwM2Vi
MwojZGVmaW5lIHNwYXJjYXVkaW9fb3V0cHV0X2RvbmUgX3NldF92ZXIoc3BhcmNhdWRpb19vdXRw
dXRfZG9uZSkKI2RlZmluZSBfX3Zlcl9zcGFyY2F1ZGlvX2lucHV0X2RvbmUgc21wXzQ0MGMwNzBj
CiNkZWZpbmUgc3BhcmNhdWRpb19pbnB1dF9kb25lIF9zZXRfdmVyKHNwYXJjYXVkaW9faW5wdXRf
ZG9uZSkKIyAyNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9u
cy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2F1
dG9faXJxLnZlciIgMQojZGVmaW5lIF9fdmVyX2F1dG9pcnFfc2V0dXAgc21wXzVhNWEyMjgwCiNk
ZWZpbmUgYXV0b2lycV9zZXR1cCBfc2V0X3ZlcihhdXRvaXJxX3NldHVwKQojZGVmaW5lIF9fdmVy
X2F1dG9pcnFfcmVwb3J0IHNtcF84NDUzMGM1MwojZGVmaW5lIGF1dG9pcnFfcmVwb3J0IF9zZXRf
dmVyKGF1dG9pcnFfcmVwb3J0KQojIDI2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvYjFkbWEudmVyIiAxCiNkZWZpbmUgX192ZXJfYjFkbWFfcmVzZXQgc21wXzg1
ZjI2ZTg3CiNkZWZpbmUgYjFkbWFfcmVzZXQgX3NldF92ZXIoYjFkbWFfcmVzZXQpCiNkZWZpbmUg
X192ZXJfdDFwY2lfZGV0ZWN0IHNtcF85ZTJjZjY4OQojZGVmaW5lIHQxcGNpX2RldGVjdCBfc2V0
X3Zlcih0MXBjaV9kZXRlY3QpCiNkZWZpbmUgX192ZXJfYjFwY2l2NF9kZXRlY3Qgc21wXzRmMDkw
MjlhCiNkZWZpbmUgYjFwY2l2NF9kZXRlY3QgX3NldF92ZXIoYjFwY2l2NF9kZXRlY3QpCiNkZWZp
bmUgX192ZXJfYjFkbWFfaW50ZXJydXB0IHNtcF9lMzU5MDNhZAojZGVmaW5lIGIxZG1hX2ludGVy
cnVwdCBfc2V0X3ZlcihiMWRtYV9pbnRlcnJ1cHQpCiNkZWZpbmUgX192ZXJfYjFkbWFfbG9hZF9m
aXJtd2FyZSBzbXBfZDcwYjQ4NjIKI2RlZmluZSBiMWRtYV9sb2FkX2Zpcm13YXJlIF9zZXRfdmVy
KGIxZG1hX2xvYWRfZmlybXdhcmUpCiNkZWZpbmUgX192ZXJfYjFkbWFfcmVzZXRfY3RyIHNtcF9h
ZDAxYzU3NAojZGVmaW5lIGIxZG1hX3Jlc2V0X2N0ciBfc2V0X3ZlcihiMWRtYV9yZXNldF9jdHIp
CiNkZWZpbmUgX192ZXJfYjFkbWFfcmVnaXN0ZXJfYXBwbCBzbXBfNDI2MTFhZjcKI2RlZmluZSBi
MWRtYV9yZWdpc3Rlcl9hcHBsIF9zZXRfdmVyKGIxZG1hX3JlZ2lzdGVyX2FwcGwpCiNkZWZpbmUg
X192ZXJfYjFkbWFfcmVsZWFzZV9hcHBsIHNtcF81ZTkyZWFhZgojZGVmaW5lIGIxZG1hX3JlbGVh
c2VfYXBwbCBfc2V0X3ZlcihiMWRtYV9yZWxlYXNlX2FwcGwpCiNkZWZpbmUgX192ZXJfYjFkbWFf
c2VuZF9tZXNzYWdlIHNtcF8xYjZjMWMxZAojZGVmaW5lIGIxZG1hX3NlbmRfbWVzc2FnZSBfc2V0
X3ZlcihiMWRtYV9zZW5kX21lc3NhZ2UpCiNkZWZpbmUgX192ZXJfYjFkbWFjdGxfcmVhZF9wcm9j
IHNtcF9iNTk3ZTc1MQojZGVmaW5lIGIxZG1hY3RsX3JlYWRfcHJvYyBfc2V0X3ZlcihiMWRtYWN0
bF9yZWFkX3Byb2MpCiMgMjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dWxlcy9iMXBjbWNpYS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9iMXBjbWNpYV9hZGRjYXJkX2IxIHNt
cF9mMTRiZjhiMQojZGVmaW5lIGIxcGNtY2lhX2FkZGNhcmRfYjEgX3NldF92ZXIoYjFwY21jaWFf
YWRkY2FyZF9iMSkKI2RlZmluZSBfX3Zlcl9iMXBjbWNpYV9hZGRjYXJkX20xIHNtcF9hZWMzMjQw
ZQojZGVmaW5lIGIxcGNtY2lhX2FkZGNhcmRfbTEgX3NldF92ZXIoYjFwY21jaWFfYWRkY2FyZF9t
MSkKI2RlZmluZSBfX3Zlcl9iMXBjbWNpYV9hZGRjYXJkX20yIHNtcF9lYTYyMDExNgojZGVmaW5l
IGIxcGNtY2lhX2FkZGNhcmRfbTIgX3NldF92ZXIoYjFwY21jaWFfYWRkY2FyZF9tMikKI2RlZmlu
ZSBfX3Zlcl9iMXBjbWNpYV9kZWxjYXJkIHNtcF8yOTU2Mjk5MwojZGVmaW5lIGIxcGNtY2lhX2Rl
bGNhcmQgX3NldF92ZXIoYjFwY21jaWFfZGVsY2FyZCkKIyAyOCAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2IxLnZlciIgMQojZGVmaW5lIF9fdmVyX2IxX2lycV90
YWJsZSBzbXBfODVmMDk2OTAKI2RlZmluZSBiMV9pcnFfdGFibGUgX3NldF92ZXIoYjFfaXJxX3Rh
YmxlKQojZGVmaW5lIF9fdmVyX2IxX2RldGVjdCBzbXBfZGZkMjgzNzYKI2RlZmluZSBiMV9kZXRl
Y3QgX3NldF92ZXIoYjFfZGV0ZWN0KQojZGVmaW5lIF9fdmVyX2IxX2dldHJldmlzaW9uIHNtcF9k
N2UxY2NmNQojZGVmaW5lIGIxX2dldHJldmlzaW9uIF9zZXRfdmVyKGIxX2dldHJldmlzaW9uKQoj
ZGVmaW5lIF9fdmVyX2IxX2xvYWRfdDRmaWxlIHNtcF9iZGZmNWFkNAojZGVmaW5lIGIxX2xvYWRf
dDRmaWxlIF9zZXRfdmVyKGIxX2xvYWRfdDRmaWxlKQojZGVmaW5lIF9fdmVyX2IxX2xvYWRfY29u
ZmlnIHNtcF9lZjUwNjIwZAojZGVmaW5lIGIxX2xvYWRfY29uZmlnIF9zZXRfdmVyKGIxX2xvYWRf
Y29uZmlnKQojZGVmaW5lIF9fdmVyX2IxX2xvYWRlZCBzbXBfOTIwMzEzMGUKI2RlZmluZSBiMV9s
b2FkZWQgX3NldF92ZXIoYjFfbG9hZGVkKQojZGVmaW5lIF9fdmVyX2IxX2xvYWRfZmlybXdhcmUg
c21wXzYxMDk3NjZmCiNkZWZpbmUgYjFfbG9hZF9maXJtd2FyZSBfc2V0X3ZlcihiMV9sb2FkX2Zp
cm13YXJlKQojZGVmaW5lIF9fdmVyX2IxX3Jlc2V0X2N0ciBzbXBfNWJlZWMwOGIKI2RlZmluZSBi
MV9yZXNldF9jdHIgX3NldF92ZXIoYjFfcmVzZXRfY3RyKQojZGVmaW5lIF9fdmVyX2IxX3JlZ2lz
dGVyX2FwcGwgc21wXzIwZmUzMDE2CiNkZWZpbmUgYjFfcmVnaXN0ZXJfYXBwbCBfc2V0X3Zlcihi
MV9yZWdpc3Rlcl9hcHBsKQojZGVmaW5lIF9fdmVyX2IxX3JlbGVhc2VfYXBwbCBzbXBfN2UwYmUx
YjYKI2RlZmluZSBiMV9yZWxlYXNlX2FwcGwgX3NldF92ZXIoYjFfcmVsZWFzZV9hcHBsKQojZGVm
aW5lIF9fdmVyX2IxX3NlbmRfbWVzc2FnZSBzbXBfYTk3NzhiOTcKI2RlZmluZSBiMV9zZW5kX21l
c3NhZ2UgX3NldF92ZXIoYjFfc2VuZF9tZXNzYWdlKQojZGVmaW5lIF9fdmVyX2IxX3BhcnNlX3Zl
cnNpb24gc21wXzY2MjU4MmE0CiNkZWZpbmUgYjFfcGFyc2VfdmVyc2lvbiBfc2V0X3ZlcihiMV9w
YXJzZV92ZXJzaW9uKQojZGVmaW5lIF9fdmVyX2IxX2hhbmRsZV9pbnRlcnJ1cHQgc21wXzVkMDZk
YTdjCiNkZWZpbmUgYjFfaGFuZGxlX2ludGVycnVwdCBfc2V0X3ZlcihiMV9oYW5kbGVfaW50ZXJy
dXB0KQojZGVmaW5lIF9fdmVyX2IxY3RsX3JlYWRfcHJvYyBzbXBfNTdhZmZkY2UKI2RlZmluZSBi
MWN0bF9yZWFkX3Byb2MgX3NldF92ZXIoYjFjdGxfcmVhZF9wcm9jKQojIDI5ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYmFzZS52ZXIiIDEKI2RlZmluZSBfX3Zl
cl9kZXZmc19yZWdpc3RlciBzbXBfNjYwZWJjMDcKI2RlZmluZSBkZXZmc19yZWdpc3RlciBfc2V0
X3ZlcihkZXZmc19yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9kZXZmc191bnJlZ2lzdGVyIHNtcF81
YjBjODVlYwojZGVmaW5lIGRldmZzX3VucmVnaXN0ZXIgX3NldF92ZXIoZGV2ZnNfdW5yZWdpc3Rl
cikKI2RlZmluZSBfX3Zlcl9kZXZmc19ta19zeW1saW5rIHNtcF8zZjZiYjUxMgojZGVmaW5lIGRl
dmZzX21rX3N5bWxpbmsgX3NldF92ZXIoZGV2ZnNfbWtfc3ltbGluaykKI2RlZmluZSBfX3Zlcl9k
ZXZmc19ta19kaXIgc21wX2M3NGVmMzc0CiNkZWZpbmUgZGV2ZnNfbWtfZGlyIF9zZXRfdmVyKGRl
dmZzX21rX2RpcikKI2RlZmluZSBfX3Zlcl9kZXZmc19maW5kX2hhbmRsZSBzbXBfNmE0YWRkNDEK
I2RlZmluZSBkZXZmc19maW5kX2hhbmRsZSBfc2V0X3ZlcihkZXZmc19maW5kX2hhbmRsZSkKI2Rl
ZmluZSBfX3Zlcl9kZXZmc19nZXRfZmxhZ3Mgc21wXzhhNzEzYjVlCiNkZWZpbmUgZGV2ZnNfZ2V0
X2ZsYWdzIF9zZXRfdmVyKGRldmZzX2dldF9mbGFncykKI2RlZmluZSBfX3Zlcl9kZXZmc19zZXRf
ZmxhZ3Mgc21wXzdjZWM4NTE1CiNkZWZpbmUgZGV2ZnNfc2V0X2ZsYWdzIF9zZXRfdmVyKGRldmZz
X3NldF9mbGFncykKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfbWFqX21pbiBzbXBfNjRiMjJiNWQK
I2RlZmluZSBkZXZmc19nZXRfbWFqX21pbiBfc2V0X3ZlcihkZXZmc19nZXRfbWFqX21pbikKI2Rl
ZmluZSBfX3Zlcl9kZXZmc19nZXRfaGFuZGxlX2Zyb21faW5vZGUgc21wXzI1YWM4ZjdkCiNkZWZp
bmUgZGV2ZnNfZ2V0X2hhbmRsZV9mcm9tX2lub2RlIF9zZXRfdmVyKGRldmZzX2dldF9oYW5kbGVf
ZnJvbV9pbm9kZSkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZW5lcmF0ZV9wYXRoIHNtcF9mYTg3MDdi
MQojZGVmaW5lIGRldmZzX2dlbmVyYXRlX3BhdGggX3NldF92ZXIoZGV2ZnNfZ2VuZXJhdGVfcGF0
aCkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfb3BzIHNtcF8zNzhkMDdmZAojZGVmaW5lIGRldmZz
X2dldF9vcHMgX3NldF92ZXIoZGV2ZnNfZ2V0X29wcykKI2RlZmluZSBfX3Zlcl9kZXZmc19zZXRf
ZmlsZV9zaXplIHNtcF85NjYzMGM5OAojZGVmaW5lIGRldmZzX3NldF9maWxlX3NpemUgX3NldF92
ZXIoZGV2ZnNfc2V0X2ZpbGVfc2l6ZSkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfaW5mbyBzbXBf
ZTc2NTNmNjAKI2RlZmluZSBkZXZmc19nZXRfaW5mbyBfc2V0X3ZlcihkZXZmc19nZXRfaW5mbykK
I2RlZmluZSBfX3Zlcl9kZXZmc19zZXRfaW5mbyBzbXBfOTY4OTEzY2QKI2RlZmluZSBkZXZmc19z
ZXRfaW5mbyBfc2V0X3ZlcihkZXZmc19zZXRfaW5mbykKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRf
cGFyZW50IHNtcF9hYTRiODUzNwojZGVmaW5lIGRldmZzX2dldF9wYXJlbnQgX3NldF92ZXIoZGV2
ZnNfZ2V0X3BhcmVudCkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfZmlyc3RfY2hpbGQgc21wX2Zj
YjkyMmI2CiNkZWZpbmUgZGV2ZnNfZ2V0X2ZpcnN0X2NoaWxkIF9zZXRfdmVyKGRldmZzX2dldF9m
aXJzdF9jaGlsZCkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfbmV4dF9zaWJsaW5nIHNtcF8yNzhk
ZGU2NwojZGVmaW5lIGRldmZzX2dldF9uZXh0X3NpYmxpbmcgX3NldF92ZXIoZGV2ZnNfZ2V0X25l
eHRfc2libGluZykKI2RlZmluZSBfX3Zlcl9kZXZmc19hdXRvX3VucmVnaXN0ZXIgc21wXzU4ZDI0
ZWMzCiNkZWZpbmUgZGV2ZnNfYXV0b191bnJlZ2lzdGVyIF9zZXRfdmVyKGRldmZzX2F1dG9fdW5y
ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfdW5yZWdpc3Rlcl9zbGF2ZSBzbXBfYjkx
YThmZjAKI2RlZmluZSBkZXZmc19nZXRfdW5yZWdpc3Rlcl9zbGF2ZSBfc2V0X3ZlcihkZXZmc19n
ZXRfdW5yZWdpc3Rlcl9zbGF2ZSkKI2RlZmluZSBfX3Zlcl9kZXZmc19nZXRfbmFtZSBzbXBfM2Jh
NGExYzUKI2RlZmluZSBkZXZmc19nZXRfbmFtZSBfc2V0X3ZlcihkZXZmc19nZXRfbmFtZSkKI2Rl
ZmluZSBfX3Zlcl9kZXZmc19yZWdpc3Rlcl9jaHJkZXYgc21wX2VlZmEwZjM2CiNkZWZpbmUgZGV2
ZnNfcmVnaXN0ZXJfY2hyZGV2IF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX2NocmRldikKI2RlZmlu
ZSBfX3Zlcl9kZXZmc19yZWdpc3Rlcl9ibGtkZXYgc21wX2U5M2QzMzkwCiNkZWZpbmUgZGV2ZnNf
cmVnaXN0ZXJfYmxrZGV2IF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX2Jsa2RldikKI2RlZmluZSBf
X3Zlcl9kZXZmc191bnJlZ2lzdGVyX2NocmRldiBzbXBfNzdmM2UwY2UKI2RlZmluZSBkZXZmc191
bnJlZ2lzdGVyX2NocmRldiBfc2V0X3ZlcihkZXZmc191bnJlZ2lzdGVyX2NocmRldikKI2RlZmlu
ZSBfX3Zlcl9kZXZmc191bnJlZ2lzdGVyX2Jsa2RldiBzbXBfNWNhMGYwZjAKI2RlZmluZSBkZXZm
c191bnJlZ2lzdGVyX2Jsa2RldiBfc2V0X3ZlcihkZXZmc191bnJlZ2lzdGVyX2Jsa2RldikKIyAz
MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2JiY19pMmMudmVy
IiAxCiNkZWZpbmUgX192ZXJfYmJjX2kyY19nZXRkZXYgc21wXzQ5NDg0ZjdmCiNkZWZpbmUgYmJj
X2kyY19nZXRkZXYgX3NldF92ZXIoYmJjX2kyY19nZXRkZXYpCiNkZWZpbmUgX192ZXJfYmJjX2ky
Y19hdHRhY2ggc21wXzZmMWI1YWE5CiNkZWZpbmUgYmJjX2kyY19hdHRhY2ggX3NldF92ZXIoYmJj
X2kyY19hdHRhY2gpCiNkZWZpbmUgX192ZXJfYmJjX2kyY19kZXRhY2ggc21wX2E3YjY1NzU2CiNk
ZWZpbmUgYmJjX2kyY19kZXRhY2ggX3NldF92ZXIoYmJjX2kyY19kZXRhY2gpCiNkZWZpbmUgX192
ZXJfYmJjX2kyY193cml0ZWIgc21wX2RkYmIyMmE2CiNkZWZpbmUgYmJjX2kyY193cml0ZWIgX3Nl
dF92ZXIoYmJjX2kyY193cml0ZWIpCiNkZWZpbmUgX192ZXJfYmJjX2kyY19yZWFkYiBzbXBfNjBj
YTYxMzYKI2RlZmluZSBiYmNfaTJjX3JlYWRiIF9zZXRfdmVyKGJiY19pMmNfcmVhZGIpCiNkZWZp
bmUgX192ZXJfYmJjX2kyY193cml0ZV9idWYgc21wX2VmMjZjY2ZkCiNkZWZpbmUgYmJjX2kyY193
cml0ZV9idWYgX3NldF92ZXIoYmJjX2kyY193cml0ZV9idWYpCiNkZWZpbmUgX192ZXJfYmJjX2ky
Y19yZWFkX2J1ZiBzbXBfODU5YjE1ZGYKI2RlZmluZSBiYmNfaTJjX3JlYWRfYnVmIF9zZXRfdmVy
KGJiY19pMmNfcmVhZF9idWYpCiMgMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdWxlcy9ibGtwZy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9ibGtfaW9jdGwgc21wX2U3ODAw
NDI4CiNkZWZpbmUgYmxrX2lvY3RsIF9zZXRfdmVyKGJsa19pb2N0bCkKIyAzMiAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2Jvb3RsZHIudmVyIiAxCiNkZWZpbmUg
X192ZXJfcGFyc2VfYm9vdGxkcl9wYXJ0aXRpb25zIHNtcF85YjcyNTAzZAojZGVmaW5lIHBhcnNl
X2Jvb3RsZHJfcGFydGl0aW9ucyBfc2V0X3ZlcihwYXJzZV9ib290bGRyX3BhcnRpdGlvbnMpCiMg
MzMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9idHR2LWlmLnZl
ciIgMQojZGVmaW5lIF9fdmVyX2J0dHZfZ2V0X2NhcmRpbmZvIHNtcF80ODMyMDE1OAojZGVmaW5l
IGJ0dHZfZ2V0X2NhcmRpbmZvIF9zZXRfdmVyKGJ0dHZfZ2V0X2NhcmRpbmZvKQojZGVmaW5lIF9f
dmVyX2J0dHZfZ2V0X2lkIHNtcF8yOTRiNTU1MAojZGVmaW5lIGJ0dHZfZ2V0X2lkIF9zZXRfdmVy
KGJ0dHZfZ2V0X2lkKQojZGVmaW5lIF9fdmVyX2J0dHZfZ3Bpb19lbmFibGUgc21wXzExZGM0YjZk
CiNkZWZpbmUgYnR0dl9ncGlvX2VuYWJsZSBfc2V0X3ZlcihidHR2X2dwaW9fZW5hYmxlKQojZGVm
aW5lIF9fdmVyX2J0dHZfcmVhZF9ncGlvIHNtcF9iY2YyZDJmYgojZGVmaW5lIGJ0dHZfcmVhZF9n
cGlvIF9zZXRfdmVyKGJ0dHZfcmVhZF9ncGlvKQojZGVmaW5lIF9fdmVyX2J0dHZfd3JpdGVfZ3Bp
byBzbXBfOGVjZjRhY2MKI2RlZmluZSBidHR2X3dyaXRlX2dwaW8gX3NldF92ZXIoYnR0dl93cml0
ZV9ncGlvKQojZGVmaW5lIF9fdmVyX2J0dHZfZ2V0X2dwaW9fcXVldWUgc21wX2E2Nzg4OTY4CiNk
ZWZpbmUgYnR0dl9nZXRfZ3Bpb19xdWV1ZSBfc2V0X3ZlcihidHR2X2dldF9ncGlvX3F1ZXVlKQoj
IDM0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvYnVzbW91c2Uu
dmVyIiAxCiNkZWZpbmUgX192ZXJfYnVzbW91c2VfYWRkX21vdmVtZW50YnV0dG9ucyBzbXBfNmM4
ZTE3NTkKI2RlZmluZSBidXNtb3VzZV9hZGRfbW92ZW1lbnRidXR0b25zIF9zZXRfdmVyKGJ1c21v
dXNlX2FkZF9tb3ZlbWVudGJ1dHRvbnMpCiNkZWZpbmUgX192ZXJfYnVzbW91c2VfYWRkX21vdmVt
ZW50IHNtcF9hOTM0NmE5OAojZGVmaW5lIGJ1c21vdXNlX2FkZF9tb3ZlbWVudCBfc2V0X3Zlcihi
dXNtb3VzZV9hZGRfbW92ZW1lbnQpCiNkZWZpbmUgX192ZXJfYnVzbW91c2VfYWRkX2J1dHRvbnMg
c21wXzQzN2FjMGI4CiNkZWZpbmUgYnVzbW91c2VfYWRkX2J1dHRvbnMgX3NldF92ZXIoYnVzbW91
c2VfYWRkX2J1dHRvbnMpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfYnVzbW91c2Ugc21wXzM0NGMy
MGY5CiNkZWZpbmUgcmVnaXN0ZXJfYnVzbW91c2UgX3NldF92ZXIocmVnaXN0ZXJfYnVzbW91c2Up
CiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9idXNtb3VzZSBzbXBfZTQ5MjY1M2MKI2RlZmluZSB1
bnJlZ2lzdGVyX2J1c21vdXNlIF9zZXRfdmVyKHVucmVnaXN0ZXJfYnVzbW91c2UpCiMgMzUgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9jYXBpZnMudmVyIiAxCiNk
ZWZpbmUgX192ZXJfY2FwaWZzX25ld19uY2NpIHNtcF81OThmMjcxZAojZGVmaW5lIGNhcGlmc19u
ZXdfbmNjaSBfc2V0X3ZlcihjYXBpZnNfbmV3X25jY2kpCiNkZWZpbmUgX192ZXJfY2FwaWZzX2Zy
ZWVfbmNjaSBzbXBfOThlN2Y0YjcKI2RlZmluZSBjYXBpZnNfZnJlZV9uY2NpIF9zZXRfdmVyKGNh
cGlmc19mcmVlX25jY2kpCiMgMzYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdWxlcy9jYXBpdXRpbC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9jYXBpX2Ntc2cybWVzc2FnZSBz
bXBfNTBiMzNjYTQKI2RlZmluZSBjYXBpX2Ntc2cybWVzc2FnZSBfc2V0X3ZlcihjYXBpX2Ntc2cy
bWVzc2FnZSkKI2RlZmluZSBfX3Zlcl9jYXBpX21lc3NhZ2UyY21zZyBzbXBfNjA1N2M2ZjMKI2Rl
ZmluZSBjYXBpX21lc3NhZ2UyY21zZyBfc2V0X3ZlcihjYXBpX21lc3NhZ2UyY21zZykKI2RlZmlu
ZSBfX3Zlcl9jYXBpX2Ntc2dfaGVhZGVyIHNtcF9iNjBlNWU1ZgojZGVmaW5lIGNhcGlfY21zZ19o
ZWFkZXIgX3NldF92ZXIoY2FwaV9jbXNnX2hlYWRlcikKI2RlZmluZSBfX3Zlcl9jYXBpX2NtZDJz
dHIgc21wX2IxOWZkYThkCiNkZWZpbmUgY2FwaV9jbWQyc3RyIF9zZXRfdmVyKGNhcGlfY21kMnN0
cikKI2RlZmluZSBfX3Zlcl9jYXBpX2Ntc2cyc3RyIHNtcF9kNDViNWViNQojZGVmaW5lIGNhcGlf
Y21zZzJzdHIgX3NldF92ZXIoY2FwaV9jbXNnMnN0cikKI2RlZmluZSBfX3Zlcl9jYXBpX21lc3Nh
Z2Uyc3RyIHNtcF9hN2FiYzVlMwojZGVmaW5lIGNhcGlfbWVzc2FnZTJzdHIgX3NldF92ZXIoY2Fw
aV9tZXNzYWdlMnN0cikKI2RlZmluZSBfX3Zlcl9jYXBpX2luZm8yc3RyIHNtcF80N2QzZmM1MQoj
ZGVmaW5lIGNhcGlfaW5mbzJzdHIgX3NldF92ZXIoY2FwaV9pbmZvMnN0cikKIyAzNyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2NiX2VuYWJsZXIudmVyIiAxCiNk
ZWZpbmUgX192ZXJfcmVnaXN0ZXJfZHJpdmVyIHNtcF9hODY2NGMyMgojZGVmaW5lIHJlZ2lzdGVy
X2RyaXZlciBfc2V0X3ZlcihyZWdpc3Rlcl9kcml2ZXIpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rl
cl9kcml2ZXIgc21wXzllNTRhNWQ4CiNkZWZpbmUgdW5yZWdpc3Rlcl9kcml2ZXIgX3NldF92ZXIo
dW5yZWdpc3Rlcl9kcml2ZXIpCiMgMzggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdWxlcy9jZHJvbS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfZGlzY19pbmZv
IHNtcF82YmMzZGJkNgojZGVmaW5lIGNkcm9tX2dldF9kaXNjX2luZm8gX3NldF92ZXIoY2Ryb21f
Z2V0X2Rpc2NfaW5mbykKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfdHJhY2tfaW5mbyBzbXBfNmQ2
MDA4NjgKI2RlZmluZSBjZHJvbV9nZXRfdHJhY2tfaW5mbyBfc2V0X3ZlcihjZHJvbV9nZXRfdHJh
Y2tfaW5mbykKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfbmV4dF93cml0YWJsZSBzbXBfMzY5MTRi
YWUKI2RlZmluZSBjZHJvbV9nZXRfbmV4dF93cml0YWJsZSBfc2V0X3ZlcihjZHJvbV9nZXRfbmV4
dF93cml0YWJsZSkKI2RlZmluZSBfX3Zlcl9jZHJvbV9nZXRfbGFzdF93cml0dGVuIHNtcF83ODI2
MzQ2NwojZGVmaW5lIGNkcm9tX2dldF9sYXN0X3dyaXR0ZW4gX3NldF92ZXIoY2Ryb21fZ2V0X2xh
c3Rfd3JpdHRlbikKI2RlZmluZSBfX3Zlcl9jZHJvbV9jb3VudF90cmFja3Mgc21wX2U3NDZhNTNi
CiNkZWZpbmUgY2Ryb21fY291bnRfdHJhY2tzIF9zZXRfdmVyKGNkcm9tX2NvdW50X3RyYWNrcykK
I2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9jZHJvbSBzbXBfNWE2MTc0NGYKI2RlZmluZSByZWdpc3Rl
cl9jZHJvbSBfc2V0X3ZlcihyZWdpc3Rlcl9jZHJvbSkKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVy
X2Nkcm9tIHNtcF83MDNkMzU3NQojZGVmaW5lIHVucmVnaXN0ZXJfY2Ryb20gX3NldF92ZXIodW5y
ZWdpc3Rlcl9jZHJvbSkKI2RlZmluZSBfX3Zlcl9jZHJvbV9mb3BzIHNtcF81Y2ZjY2UwNQojZGVm
aW5lIGNkcm9tX2ZvcHMgX3NldF92ZXIoY2Ryb21fZm9wcykKI2RlZmluZSBfX3Zlcl9jZHJvbV9u
dW1iZXJfb2Zfc2xvdHMgc21wXzVkOGYzNjcyCiNkZWZpbmUgY2Ryb21fbnVtYmVyX29mX3Nsb3Rz
IF9zZXRfdmVyKGNkcm9tX251bWJlcl9vZl9zbG90cykKI2RlZmluZSBfX3Zlcl9jZHJvbV9zZWxl
Y3RfZGlzYyBzbXBfOGRjYmYyZmQKI2RlZmluZSBjZHJvbV9zZWxlY3RfZGlzYyBfc2V0X3Zlcihj
ZHJvbV9zZWxlY3RfZGlzYykKI2RlZmluZSBfX3Zlcl9jZHJvbV9tb2RlX3NlbGVjdCBzbXBfY2Yx
MDIwMTgKI2RlZmluZSBjZHJvbV9tb2RlX3NlbGVjdCBfc2V0X3ZlcihjZHJvbV9tb2RlX3NlbGVj
dCkKI2RlZmluZSBfX3Zlcl9jZHJvbV9tb2RlX3NlbnNlIHNtcF80NDFjOTI1MwojZGVmaW5lIGNk
cm9tX21vZGVfc2Vuc2UgX3NldF92ZXIoY2Ryb21fbW9kZV9zZW5zZSkKI2RlZmluZSBfX3Zlcl9p
bml0X2Nkcm9tX2NvbW1hbmQgc21wX2ZhY2RlMWI1CiNkZWZpbmUgaW5pdF9jZHJvbV9jb21tYW5k
IF9zZXRfdmVyKGluaXRfY2Ryb21fY29tbWFuZCkKI2RlZmluZSBfX3Zlcl9jZHJvbV9maW5kX2Rl
dmljZSBzbXBfNTdiYWY3ODgKI2RlZmluZSBjZHJvbV9maW5kX2RldmljZSBfc2V0X3ZlcihjZHJv
bV9maW5kX2RldmljZSkKIyAzOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R1bGVzL2NoZWNrLnZlciIgMQojIDQwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvY2hpcHJlZy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9tdGRfY2hp
cF9kcml2ZXIgc21wXzRjMmRmMTYwCiNkZWZpbmUgcmVnaXN0ZXJfbXRkX2NoaXBfZHJpdmVyIF9z
ZXRfdmVyKHJlZ2lzdGVyX210ZF9jaGlwX2RyaXZlcikKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVy
X210ZF9jaGlwX2RyaXZlciBzbXBfYzU1M2FlOGYKI2RlZmluZSB1bnJlZ2lzdGVyX210ZF9jaGlw
X2RyaXZlciBfc2V0X3Zlcih1bnJlZ2lzdGVyX210ZF9jaGlwX2RyaXZlcikKI2RlZmluZSBfX3Zl
cl9kb19tYXBfcHJvYmUgc21wX2Y0ZmY0YzMzCiNkZWZpbmUgZG9fbWFwX3Byb2JlIF9zZXRfdmVy
KGRvX21hcF9wcm9iZSkKIyA0MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R1bGVzL2NtZGxpbmUudmVyIiAxCiNkZWZpbmUgX192ZXJfbWVtcGFyc2Ugc21wXzIzZjJkMzZm
CiNkZWZpbmUgbWVtcGFyc2UgX3NldF92ZXIobWVtcGFyc2UpCiNkZWZpbmUgX192ZXJfZ2V0X29w
dGlvbiBzbXBfYjBlMTA3ODEKI2RlZmluZSBnZXRfb3B0aW9uIF9zZXRfdmVyKGdldF9vcHRpb24p
CiNkZWZpbmUgX192ZXJfZ2V0X29wdGlvbnMgc21wXzBmYmZmOWI5CiNkZWZpbmUgZ2V0X29wdGlv
bnMgX3NldF92ZXIoZ2V0X29wdGlvbnMpCiMgNDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9jb20yMDAyMC52ZXIiIDEKIyA0MyAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2NvbW1vbi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1f
YXN5bmNfcmVsZWFzZV92Y2Mgc21wXzNmNGVjYmJjCiNkZWZpbmUgYXRtX2FzeW5jX3JlbGVhc2Vf
dmNjIF9zZXRfdmVyKGF0bV9hc3luY19yZWxlYXNlX3ZjYykKIyA0NCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2NvbXgudmVyIiAxCiNkZWZpbmUgX192ZXJfY29t
eF9yZWdpc3Rlcl9oYXJkd2FyZSBzbXBfZGIzYjEzNmYKI2RlZmluZSBjb214X3JlZ2lzdGVyX2hh
cmR3YXJlIF9zZXRfdmVyKGNvbXhfcmVnaXN0ZXJfaGFyZHdhcmUpCiNkZWZpbmUgX192ZXJfY29t
eF91bnJlZ2lzdGVyX2hhcmR3YXJlIHNtcF9lZDE2NmMyNQojZGVmaW5lIGNvbXhfdW5yZWdpc3Rl
cl9oYXJkd2FyZSBfc2V0X3Zlcihjb214X3VucmVnaXN0ZXJfaGFyZHdhcmUpCiNkZWZpbmUgX192
ZXJfY29teF9yZWdpc3Rlcl9wcm90b2NvbCBzbXBfMjNiYzA3OTMKI2RlZmluZSBjb214X3JlZ2lz
dGVyX3Byb3RvY29sIF9zZXRfdmVyKGNvbXhfcmVnaXN0ZXJfcHJvdG9jb2wpCiNkZWZpbmUgX192
ZXJfY29teF91bnJlZ2lzdGVyX3Byb3RvY29sIHNtcF84MTI5ZjAwMAojZGVmaW5lIGNvbXhfdW5y
ZWdpc3Rlcl9wcm90b2NvbCBfc2V0X3Zlcihjb214X3VucmVnaXN0ZXJfcHJvdG9jb2wpCiNkZWZp
bmUgX192ZXJfY29teF9kZWJ1Z19za2Igc21wXzJjMDQ0ZjhhCiNkZWZpbmUgY29teF9kZWJ1Z19z
a2IgX3NldF92ZXIoY29teF9kZWJ1Z19za2IpCiNkZWZpbmUgX192ZXJfY29teF9kZWJ1Z19ieXRl
cyBzbXBfZTg4YzNkNDMKI2RlZmluZSBjb214X2RlYnVnX2J5dGVzIF9zZXRfdmVyKGNvbXhfZGVi
dWdfYnl0ZXMpCiNkZWZpbmUgX192ZXJfY29teF9kZWJ1ZyBzbXBfYWE5MzJkZjUKI2RlZmluZSBj
b214X2RlYnVnIF9zZXRfdmVyKGNvbXhfZGVidWcpCiNkZWZpbmUgX192ZXJfY29teF9saW5ldXBf
ZnVuYyBzbXBfNDI4ZGI0N2MKI2RlZmluZSBjb214X2xpbmV1cF9mdW5jIF9zZXRfdmVyKGNvbXhf
bGluZXVwX2Z1bmMpCiNkZWZpbmUgX192ZXJfY29teF9zdGF0dXMgc21wX2UzNTZmMDIzCiNkZWZp
bmUgY29teF9zdGF0dXMgX3NldF92ZXIoY29teF9zdGF0dXMpCiNkZWZpbmUgX192ZXJfY29teF9y
eCBzbXBfNjYyZjVhNjMKI2RlZmluZSBjb214X3J4IF9zZXRfdmVyKGNvbXhfcngpCiNkZWZpbmUg
X192ZXJfY29teF9zdHJjYXNlY21wIHNtcF84NjE4YzAwNwojZGVmaW5lIGNvbXhfc3RyY2FzZWNt
cCBfc2V0X3Zlcihjb214X3N0cmNhc2VjbXApCiNkZWZpbmUgX192ZXJfY29teF9yb290X2RpciBz
bXBfMmUxOWI2Y2MKI2RlZmluZSBjb214X3Jvb3RfZGlyIF9zZXRfdmVyKGNvbXhfcm9vdF9kaXIp
CiMgNDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9jb25maWcu
dmVyIiAxCiNkZWZpbmUgX192ZXJfaGlzYXhfaW5pdF9wY21jaWEgc21wXzRhODVmMzE3CiNkZWZp
bmUgaGlzYXhfaW5pdF9wY21jaWEgX3NldF92ZXIoaGlzYXhfaW5pdF9wY21jaWEpCiNkZWZpbmUg
X192ZXJfSGlTYXhfY2xvc2VjYXJkIHNtcF9mYzI3MzAzYgojZGVmaW5lIEhpU2F4X2Nsb3NlY2Fy
ZCBfc2V0X3ZlcihIaVNheF9jbG9zZWNhcmQpCiMgNDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdWxlcy9jb25zb2xlLnZlciIgMQojZGVmaW5lIF9fdmVyX2NvbG9yX3Rh
YmxlIHNtcF9mNmJiNDcyOQojZGVmaW5lIGNvbG9yX3RhYmxlIF9zZXRfdmVyKGNvbG9yX3RhYmxl
KQojZGVmaW5lIF9fdmVyX2RlZmF1bHRfcmVkIHNtcF8zMTQ3ODU3ZAojZGVmaW5lIGRlZmF1bHRf
cmVkIF9zZXRfdmVyKGRlZmF1bHRfcmVkKQojZGVmaW5lIF9fdmVyX2RlZmF1bHRfZ3JuIHNtcF8w
NmZlM2IxNAojZGVmaW5lIGRlZmF1bHRfZ3JuIF9zZXRfdmVyKGRlZmF1bHRfZ3JuKQojZGVmaW5l
IF9fdmVyX2RlZmF1bHRfYmx1IHNtcF8xMGVlMjBiYgojZGVmaW5lIGRlZmF1bHRfYmx1IF9zZXRf
dmVyKGRlZmF1bHRfYmx1KQojZGVmaW5lIF9fdmVyX3ZpZGVvX2ZvbnRfaGVpZ2h0IHNtcF82NWUy
NDE5OAojZGVmaW5lIHZpZGVvX2ZvbnRfaGVpZ2h0IF9zZXRfdmVyKHZpZGVvX2ZvbnRfaGVpZ2h0
KQojZGVmaW5lIF9fdmVyX3ZpZGVvX3NjYW5fbGluZXMgc21wX2FmYWY1OWRjCiNkZWZpbmUgdmlk
ZW9fc2Nhbl9saW5lcyBfc2V0X3Zlcih2aWRlb19zY2FuX2xpbmVzKQojZGVmaW5lIF9fdmVyX3Zj
X3Jlc2l6ZSBzbXBfMTJlN2VkZmUKI2RlZmluZSB2Y19yZXNpemUgX3NldF92ZXIodmNfcmVzaXpl
KQojZGVmaW5lIF9fdmVyX2ZnX2NvbnNvbGUgc21wXzRlNmU4ZWE3CiNkZWZpbmUgZmdfY29uc29s
ZSBfc2V0X3ZlcihmZ19jb25zb2xlKQojZGVmaW5lIF9fdmVyX2NvbnNvbGVfYmxhbmtfaG9vayBz
bXBfZDI1ZDRmNzQKI2RlZmluZSBjb25zb2xlX2JsYW5rX2hvb2sgX3NldF92ZXIoY29uc29sZV9i
bGFua19ob29rKQojZGVmaW5lIF9fdmVyX3Z0X2NvbnMgc21wXzkwZjE2NTRiCiNkZWZpbmUgdnRf
Y29ucyBfc2V0X3Zlcih2dF9jb25zKQojZGVmaW5lIF9fdmVyX3Rha2Vfb3Zlcl9jb25zb2xlIHNt
cF9mMjk4MzliOQojZGVmaW5lIHRha2Vfb3Zlcl9jb25zb2xlIF9zZXRfdmVyKHRha2Vfb3Zlcl9j
b25zb2xlKQojZGVmaW5lIF9fdmVyX2dpdmVfdXBfY29uc29sZSBzbXBfZDdlMTI1ZTkKI2RlZmlu
ZSBnaXZlX3VwX2NvbnNvbGUgX3NldF92ZXIoZ2l2ZV91cF9jb25zb2xlKQojIDQ3ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvY29udGV4dC52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl9zY2hlZHVsZV90YXNrIHNtcF8yZDZjM2QwNAojZGVmaW5lIHNjaGVkdWxlX3Rhc2sg
X3NldF92ZXIoc2NoZWR1bGVfdGFzaykKI2RlZmluZSBfX3Zlcl9mbHVzaF9zY2hlZHVsZWRfdGFz
a3Mgc21wXzdjMzI0MmI0CiNkZWZpbmUgZmx1c2hfc2NoZWR1bGVkX3Rhc2tzIF9zZXRfdmVyKGZs
dXNoX3NjaGVkdWxlZF90YXNrcykKIyA0OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9tb2R1bGVzL2NwaWEudmVyIiAxCiNkZWZpbmUgX192ZXJfY3BpYV9yZWdpc3Rlcl9jYW1l
cmEgc21wXzFlZjMzNzg4CiNkZWZpbmUgY3BpYV9yZWdpc3Rlcl9jYW1lcmEgX3NldF92ZXIoY3Bp
YV9yZWdpc3Rlcl9jYW1lcmEpCiNkZWZpbmUgX192ZXJfY3BpYV91bnJlZ2lzdGVyX2NhbWVyYSBz
bXBfNGI5NzUwZGQKI2RlZmluZSBjcGlhX3VucmVnaXN0ZXJfY2FtZXJhIF9zZXRfdmVyKGNwaWFf
dW5yZWdpc3Rlcl9jYW1lcmEpCiMgNDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdWxlcy9jcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wY21jaWFfbG9va3VwX2J1cyBzbXBf
NzRkZDVjMGMKI2RlZmluZSBwY21jaWFfbG9va3VwX2J1cyBfc2V0X3ZlcihwY21jaWFfbG9va3Vw
X2J1cykKI2RlZmluZSBfX3Zlcl9wY21jaWFfYWNjZXNzX2NvbmZpZ3VyYXRpb25fcmVnaXN0ZXIg
c21wXzlkZjhmYjkzCiNkZWZpbmUgcGNtY2lhX2FjY2Vzc19jb25maWd1cmF0aW9uX3JlZ2lzdGVy
IF9zZXRfdmVyKHBjbWNpYV9hY2Nlc3NfY29uZmlndXJhdGlvbl9yZWdpc3RlcikKI2RlZmluZSBf
X3Zlcl9wY21jaWFfYWRqdXN0X3Jlc291cmNlX2luZm8gc21wX2E0NGRkNGQxCiNkZWZpbmUgcGNt
Y2lhX2FkanVzdF9yZXNvdXJjZV9pbmZvIF9zZXRfdmVyKHBjbWNpYV9hZGp1c3RfcmVzb3VyY2Vf
aW5mbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfYmluZF9kZXZpY2Ugc21wXzk4MGFjMTFjCiNkZWZp
bmUgcGNtY2lhX2JpbmRfZGV2aWNlIF9zZXRfdmVyKHBjbWNpYV9iaW5kX2RldmljZSkKI2RlZmlu
ZSBfX3Zlcl9wY21jaWFfYmluZF9tdGQgc21wXzQ4MzczZGE3CiNkZWZpbmUgcGNtY2lhX2JpbmRf
bXRkIF9zZXRfdmVyKHBjbWNpYV9iaW5kX210ZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfY2hlY2tf
ZXJhc2VfcXVldWUgc21wX2U5ODZiMjY3CiNkZWZpbmUgcGNtY2lhX2NoZWNrX2VyYXNlX3F1ZXVl
IF9zZXRfdmVyKHBjbWNpYV9jaGVja19lcmFzZV9xdWV1ZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFf
Y2xvc2VfbWVtb3J5IHNtcF81NmU4MTVlNgojZGVmaW5lIHBjbWNpYV9jbG9zZV9tZW1vcnkgX3Nl
dF92ZXIocGNtY2lhX2Nsb3NlX21lbW9yeSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfY29weV9tZW1v
cnkgc21wXzc4Zjk1YWJiCiNkZWZpbmUgcGNtY2lhX2NvcHlfbWVtb3J5IF9zZXRfdmVyKHBjbWNp
YV9jb3B5X21lbW9yeSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZGVyZWdpc3Rlcl9jbGllbnQgc21w
X2Y4N2I2OTVhCiNkZWZpbmUgcGNtY2lhX2RlcmVnaXN0ZXJfY2xpZW50IF9zZXRfdmVyKHBjbWNp
YV9kZXJlZ2lzdGVyX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZGVyZWdpc3Rlcl9lcmFz
ZV9xdWV1ZSBzbXBfNGMzYjA4YWIKI2RlZmluZSBwY21jaWFfZGVyZWdpc3Rlcl9lcmFzZV9xdWV1
ZSBfc2V0X3ZlcihwY21jaWFfZGVyZWdpc3Rlcl9lcmFzZV9xdWV1ZSkKI2RlZmluZSBfX3Zlcl9w
Y21jaWFfZWplY3RfY2FyZCBzbXBfZDJkMTVmYTMKI2RlZmluZSBwY21jaWFfZWplY3RfY2FyZCBf
c2V0X3ZlcihwY21jaWFfZWplY3RfY2FyZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0
X2NsaWVudCBzbXBfYTFjYzY4ZmEKI2RlZmluZSBwY21jaWFfZ2V0X2ZpcnN0X2NsaWVudCBfc2V0
X3ZlcihwY21jaWFfZ2V0X2ZpcnN0X2NsaWVudCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2Nh
cmRfc2VydmljZXNfaW5mbyBzbXBfM2MzOWM4NzEKI2RlZmluZSBwY21jaWFfZ2V0X2NhcmRfc2Vy
dmljZXNfaW5mbyBfc2V0X3ZlcihwY21jaWFfZ2V0X2NhcmRfc2VydmljZXNfaW5mbykKI2RlZmlu
ZSBfX3Zlcl9wY21jaWFfZ2V0X2NvbmZpZ3VyYXRpb25faW5mbyBzbXBfOWQ2YTFkZmEKI2RlZmlu
ZSBwY21jaWFfZ2V0X2NvbmZpZ3VyYXRpb25faW5mbyBfc2V0X3ZlcihwY21jaWFfZ2V0X2NvbmZp
Z3VyYXRpb25faW5mbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X21lbV9wYWdlIHNtcF80OWJh
NmUyOAojZGVmaW5lIHBjbWNpYV9nZXRfbWVtX3BhZ2UgX3NldF92ZXIocGNtY2lhX2dldF9tZW1f
cGFnZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfY2xpZW50IHNtcF85ODg3MDcwYgoj
ZGVmaW5lIHBjbWNpYV9nZXRfbmV4dF9jbGllbnQgX3NldF92ZXIocGNtY2lhX2dldF9uZXh0X2Ns
aWVudCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0X3JlZ2lvbiBzbXBfMThkMjU5YTAK
I2RlZmluZSBwY21jaWFfZ2V0X2ZpcnN0X3JlZ2lvbiBfc2V0X3ZlcihwY21jaWFfZ2V0X2ZpcnN0
X3JlZ2lvbikKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0X3R1cGxlIHNtcF85OWMzY2E0
NQojZGVmaW5lIHBjbWNpYV9nZXRfZmlyc3RfdHVwbGUgX3NldF92ZXIocGNtY2lhX2dldF9maXJz
dF90dXBsZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X2ZpcnN0X3dpbmRvdyBzbXBfNDk5NzUy
MzIKI2RlZmluZSBwY21jaWFfZ2V0X2ZpcnN0X3dpbmRvdyBfc2V0X3ZlcihwY21jaWFfZ2V0X2Zp
cnN0X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfcmVnaW9uIHNtcF9hZDZm
M2VmMQojZGVmaW5lIHBjbWNpYV9nZXRfbmV4dF9yZWdpb24gX3NldF92ZXIocGNtY2lhX2dldF9u
ZXh0X3JlZ2lvbikKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfdHVwbGUgc21wXzhlOGZm
MWFmCiNkZWZpbmUgcGNtY2lhX2dldF9uZXh0X3R1cGxlIF9zZXRfdmVyKHBjbWNpYV9nZXRfbmV4
dF90dXBsZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X25leHRfd2luZG93IHNtcF81ZmVhMTUx
NQojZGVmaW5lIHBjbWNpYV9nZXRfbmV4dF93aW5kb3cgX3NldF92ZXIocGNtY2lhX2dldF9uZXh0
X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFfZ2V0X3N0YXR1cyBzbXBfMzczMzQzNDIKI2Rl
ZmluZSBwY21jaWFfZ2V0X3N0YXR1cyBfc2V0X3ZlcihwY21jaWFfZ2V0X3N0YXR1cykKI2RlZmlu
ZSBfX3Zlcl9wY21jaWFfZ2V0X3R1cGxlX2RhdGEgc21wX2U2YTA1OWNkCiNkZWZpbmUgcGNtY2lh
X2dldF90dXBsZV9kYXRhIF9zZXRfdmVyKHBjbWNpYV9nZXRfdHVwbGVfZGF0YSkKI2RlZmluZSBf
X3Zlcl9wY21jaWFfaW5zZXJ0X2NhcmQgc21wXzQzMTE0YmViCiNkZWZpbmUgcGNtY2lhX2luc2Vy
dF9jYXJkIF9zZXRfdmVyKHBjbWNpYV9pbnNlcnRfY2FyZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFf
bWFwX21lbV9wYWdlIHNtcF9jNDhkODZkMwojZGVmaW5lIHBjbWNpYV9tYXBfbWVtX3BhZ2UgX3Nl
dF92ZXIocGNtY2lhX21hcF9tZW1fcGFnZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfbW9kaWZ5X2Nv
bmZpZ3VyYXRpb24gc21wXzhjMGRmZTMzCiNkZWZpbmUgcGNtY2lhX21vZGlmeV9jb25maWd1cmF0
aW9uIF9zZXRfdmVyKHBjbWNpYV9tb2RpZnlfY29uZmlndXJhdGlvbikKI2RlZmluZSBfX3Zlcl9w
Y21jaWFfbW9kaWZ5X3dpbmRvdyBzbXBfOGFlOWUxYzQKI2RlZmluZSBwY21jaWFfbW9kaWZ5X3dp
bmRvdyBfc2V0X3ZlcihwY21jaWFfbW9kaWZ5X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFf
b3Blbl9tZW1vcnkgc21wX2I3Yjk1NzY3CiNkZWZpbmUgcGNtY2lhX29wZW5fbWVtb3J5IF9zZXRf
dmVyKHBjbWNpYV9vcGVuX21lbW9yeSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcGFyc2VfdHVwbGUg
c21wXzc1YzgxNjQzCiNkZWZpbmUgcGNtY2lhX3BhcnNlX3R1cGxlIF9zZXRfdmVyKHBjbWNpYV9w
YXJzZV90dXBsZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVhZF9tZW1vcnkgc21wXzMyYzljZmY0
CiNkZWZpbmUgcGNtY2lhX3JlYWRfbWVtb3J5IF9zZXRfdmVyKHBjbWNpYV9yZWFkX21lbW9yeSkK
I2RlZmluZSBfX3Zlcl9wY21jaWFfcmVnaXN0ZXJfY2xpZW50IHNtcF9kNDYzOTkzYwojZGVmaW5l
IHBjbWNpYV9yZWdpc3Rlcl9jbGllbnQgX3NldF92ZXIocGNtY2lhX3JlZ2lzdGVyX2NsaWVudCkK
I2RlZmluZSBfX3Zlcl9wY21jaWFfcmVnaXN0ZXJfZXJhc2VfcXVldWUgc21wXzM3MDcyZmQzCiNk
ZWZpbmUgcGNtY2lhX3JlZ2lzdGVyX2VyYXNlX3F1ZXVlIF9zZXRfdmVyKHBjbWNpYV9yZWdpc3Rl
cl9lcmFzZV9xdWV1ZSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVnaXN0ZXJfbXRkIHNtcF9iYzE2
OTJmMgojZGVmaW5lIHBjbWNpYV9yZWdpc3Rlcl9tdGQgX3NldF92ZXIocGNtY2lhX3JlZ2lzdGVy
X210ZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV9jb25maWd1cmF0aW9uIHNtcF81NzM4
NTRmOQojZGVmaW5lIHBjbWNpYV9yZWxlYXNlX2NvbmZpZ3VyYXRpb24gX3NldF92ZXIocGNtY2lh
X3JlbGVhc2VfY29uZmlndXJhdGlvbikKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV9pbyBz
bXBfOTY4ZWI2YzAKI2RlZmluZSBwY21jaWFfcmVsZWFzZV9pbyBfc2V0X3ZlcihwY21jaWFfcmVs
ZWFzZV9pbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV9pcnEgc21wXzU4YTEzYjc0CiNk
ZWZpbmUgcGNtY2lhX3JlbGVhc2VfaXJxIF9zZXRfdmVyKHBjbWNpYV9yZWxlYXNlX2lycSkKI2Rl
ZmluZSBfX3Zlcl9wY21jaWFfcmVsZWFzZV93aW5kb3cgc21wXzY4NjU1NTI3CiNkZWZpbmUgcGNt
Y2lhX3JlbGVhc2Vfd2luZG93IF9zZXRfdmVyKHBjbWNpYV9yZWxlYXNlX3dpbmRvdykKI2RlZmlu
ZSBfX3Zlcl9wY21jaWFfcmVwbGFjZV9jaXMgc21wX2QzMjMzMzZjCiNkZWZpbmUgcGNtY2lhX3Jl
cGxhY2VfY2lzIF9zZXRfdmVyKHBjbWNpYV9yZXBsYWNlX2NpcykKI2RlZmluZSBfX3Zlcl9wY21j
aWFfcmVwb3J0X2Vycm9yIHNtcF8xOTdmYzA0MgojZGVmaW5lIHBjbWNpYV9yZXBvcnRfZXJyb3Ig
X3NldF92ZXIocGNtY2lhX3JlcG9ydF9lcnJvcikKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVxdWVz
dF9jb25maWd1cmF0aW9uIHNtcF82ZTg2NDZhNwojZGVmaW5lIHBjbWNpYV9yZXF1ZXN0X2NvbmZp
Z3VyYXRpb24gX3NldF92ZXIocGNtY2lhX3JlcXVlc3RfY29uZmlndXJhdGlvbikKI2RlZmluZSBf
X3Zlcl9wY21jaWFfcmVxdWVzdF9pbyBzbXBfYTc2M2Y1Y2MKI2RlZmluZSBwY21jaWFfcmVxdWVz
dF9pbyBfc2V0X3ZlcihwY21jaWFfcmVxdWVzdF9pbykKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVx
dWVzdF9pcnEgc21wXzlkM2RlMGM2CiNkZWZpbmUgcGNtY2lhX3JlcXVlc3RfaXJxIF9zZXRfdmVy
KHBjbWNpYV9yZXF1ZXN0X2lycSkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVxdWVzdF93aW5kb3cg
c21wXzcyMjcxNWRmCiNkZWZpbmUgcGNtY2lhX3JlcXVlc3Rfd2luZG93IF9zZXRfdmVyKHBjbWNp
YV9yZXF1ZXN0X3dpbmRvdykKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVzZXRfY2FyZCBzbXBfNGJj
OGRlZjUKI2RlZmluZSBwY21jaWFfcmVzZXRfY2FyZCBfc2V0X3ZlcihwY21jaWFfcmVzZXRfY2Fy
ZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFfcmVzdW1lX2NhcmQgc21wX2M1MTI1NGFkCiNkZWZpbmUg
cGNtY2lhX3Jlc3VtZV9jYXJkIF9zZXRfdmVyKHBjbWNpYV9yZXN1bWVfY2FyZCkKI2RlZmluZSBf
X3Zlcl9wY21jaWFfc2V0X2V2ZW50X21hc2sgc21wX2I4OWE1MDMxCiNkZWZpbmUgcGNtY2lhX3Nl
dF9ldmVudF9tYXNrIF9zZXRfdmVyKHBjbWNpYV9zZXRfZXZlbnRfbWFzaykKI2RlZmluZSBfX3Zl
cl9wY21jaWFfc3VzcGVuZF9jYXJkIHNtcF8xZTc5NDZkYgojZGVmaW5lIHBjbWNpYV9zdXNwZW5k
X2NhcmQgX3NldF92ZXIocGNtY2lhX3N1c3BlbmRfY2FyZCkKI2RlZmluZSBfX3Zlcl9wY21jaWFf
dmFsaWRhdGVfY2lzIHNtcF9lZjUxMTgxNwojZGVmaW5lIHBjbWNpYV92YWxpZGF0ZV9jaXMgX3Nl
dF92ZXIocGNtY2lhX3ZhbGlkYXRlX2NpcykKI2RlZmluZSBfX3Zlcl9wY21jaWFfd3JpdGVfbWVt
b3J5IHNtcF9kZDZmNmZhNgojZGVmaW5lIHBjbWNpYV93cml0ZV9tZW1vcnkgX3NldF92ZXIocGNt
Y2lhX3dyaXRlX21lbW9yeSkKI2RlZmluZSBfX3Zlcl9kZWFkX3NvY2tldCBzbXBfY2Y5N2YzYmQK
I2RlZmluZSBkZWFkX3NvY2tldCBfc2V0X3ZlcihkZWFkX3NvY2tldCkKI2RlZmluZSBfX3Zlcl9y
ZWdpc3Rlcl9zc19lbnRyeSBzbXBfYTk4MjkyZGUKI2RlZmluZSByZWdpc3Rlcl9zc19lbnRyeSBf
c2V0X3ZlcihyZWdpc3Rlcl9zc19lbnRyeSkKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX3NzX2Vu
dHJ5IHNtcF8zZDRmYzEzNQojZGVmaW5lIHVucmVnaXN0ZXJfc3NfZW50cnkgX3NldF92ZXIodW5y
ZWdpc3Rlcl9zc19lbnRyeSkKI2RlZmluZSBfX3Zlcl9DYXJkU2VydmljZXMgc21wX2U0ZWVmMGE0
CiNkZWZpbmUgQ2FyZFNlcnZpY2VzIF9zZXRfdmVyKENhcmRTZXJ2aWNlcykKI2RlZmluZSBfX3Zl
cl9NVERIZWxwZXJFbnRyeSBzbXBfOTIxNTU1ODAKI2RlZmluZSBNVERIZWxwZXJFbnRyeSBfc2V0
X3ZlcihNVERIZWxwZXJFbnRyeSkKI2RlZmluZSBfX3Zlcl9wcm9jX3BjY2FyZCBzbXBfNmI4ZDMx
ZTcKI2RlZmluZSBwcm9jX3BjY2FyZCBfc2V0X3Zlcihwcm9jX3BjY2FyZCkKI2RlZmluZSBfX3Zl
cl9wY21jaWFfcmVnaXN0ZXJfc29ja2V0IHNtcF9mMTJjMjI3YwojZGVmaW5lIHBjbWNpYV9yZWdp
c3Rlcl9zb2NrZXQgX3NldF92ZXIocGNtY2lhX3JlZ2lzdGVyX3NvY2tldCkKI2RlZmluZSBfX3Zl
cl9wY21jaWFfdW5yZWdpc3Rlcl9zb2NrZXQgc21wXzZmNzA5ZDU2CiNkZWZpbmUgcGNtY2lhX3Vu
cmVnaXN0ZXJfc29ja2V0IF9zZXRfdmVyKHBjbWNpYV91bnJlZ2lzdGVyX3NvY2tldCkKI2RlZmlu
ZSBfX3Zlcl9wY21jaWFfc3VzcGVuZF9zb2NrZXQgc21wXzkzYTEyMjMxCiNkZWZpbmUgcGNtY2lh
X3N1c3BlbmRfc29ja2V0IF9zZXRfdmVyKHBjbWNpYV9zdXNwZW5kX3NvY2tldCkKI2RlZmluZSBf
X3Zlcl9wY21jaWFfcmVzdW1lX3NvY2tldCBzbXBfZGU5Yjc2MTMKI2RlZmluZSBwY21jaWFfcmVz
dW1lX3NvY2tldCBfc2V0X3ZlcihwY21jaWFfcmVzdW1lX3NvY2tldCkKIyA1MCAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2N5YmVyMjAwMGZiLnZlciIgMQojZGVm
aW5lIF9fdmVyX2N5YmVyMjAwMGZiX2F0dGFjaCBzbXBfYjdmOGNhZmQKI2RlZmluZSBjeWJlcjIw
MDBmYl9hdHRhY2ggX3NldF92ZXIoY3liZXIyMDAwZmJfYXR0YWNoKQojZGVmaW5lIF9fdmVyX2N5
YmVyMjAwMGZiX2RldGFjaCBzbXBfMGNjM2VkZTUKI2RlZmluZSBjeWJlcjIwMDBmYl9kZXRhY2gg
X3NldF92ZXIoY3liZXIyMDAwZmJfZGV0YWNoKQojIDUxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvY3ljeF9kcnYudmVyIiAxCiNkZWZpbmUgX192ZXJfY3ljeF9z
ZXR1cCBzbXBfMWJiZjMzNTkKI2RlZmluZSBjeWN4X3NldHVwIF9zZXRfdmVyKGN5Y3hfc2V0dXAp
CiNkZWZpbmUgX192ZXJfY3ljeF9kb3duIHNtcF9lOTA2MzI3ZQojZGVmaW5lIGN5Y3hfZG93biBf
c2V0X3ZlcihjeWN4X2Rvd24pCiNkZWZpbmUgX192ZXJfY3ljeF9pbnRlbiBzbXBfNDFjYWU3YjQK
I2RlZmluZSBjeWN4X2ludGVuIF9zZXRfdmVyKGN5Y3hfaW50ZW4pCiNkZWZpbmUgX192ZXJfY3lj
eF9pbnRyIHNtcF9lOWQ2MjcwMAojZGVmaW5lIGN5Y3hfaW50ciBfc2V0X3ZlcihjeWN4X2ludHIp
CiNkZWZpbmUgX192ZXJfY3ljeF9leGVjIHNtcF9hODZjMThiZAojZGVmaW5lIGN5Y3hfZXhlYyBf
c2V0X3ZlcihjeWN4X2V4ZWMpCiNkZWZpbmUgX192ZXJfY3ljeF9wZWVrIHNtcF8wZDU5NWIzZgoj
ZGVmaW5lIGN5Y3hfcGVlayBfc2V0X3ZlcihjeWN4X3BlZWspCiNkZWZpbmUgX192ZXJfY3ljeF9w
b2tlIHNtcF83NzQ0MWZkZQojZGVmaW5lIGN5Y3hfcG9rZSBfc2V0X3ZlcihjeWN4X3Bva2UpCiMg
NTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9EQUM5NjAudmVy
IiAxCiNkZWZpbmUgX192ZXJfREFDOTYwX0tlcm5lbElPQ1RMIHNtcF81MzAxMTQ0OQojZGVmaW5l
IERBQzk2MF9LZXJuZWxJT0NUTCBfc2V0X3ZlcihEQUM5NjBfS2VybmVsSU9DVEwpCiMgNTMgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9kYnJpLnZlciIgMQojIDU0
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZGNhY2hlLnZlciIg
MQojZGVmaW5lIF9fdmVyX2JoX2NhY2hlcCBzbXBfZGNjMGJiMzcKI2RlZmluZSBiaF9jYWNoZXAg
X3NldF92ZXIoYmhfY2FjaGVwKQojIDU1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvZGRwLnZlciIgMQojIDU2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHVsZXMvRGl2YXNfbW9kLnZlciIgMQojIDU3ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZG1hc291bmRfY29yZS52ZXIiIDEKI2RlZmluZSBfX3Zl
cl9kbWFzb3VuZCBzbXBfZGFhZTBkYWUKI2RlZmluZSBkbWFzb3VuZCBfc2V0X3ZlcihkbWFzb3Vu
ZCkKI2RlZmluZSBfX3Zlcl9kbWFzb3VuZF9pbml0IHNtcF80N2VkZGUyNQojZGVmaW5lIGRtYXNv
dW5kX2luaXQgX3NldF92ZXIoZG1hc291bmRfaW5pdCkKI2RlZmluZSBfX3Zlcl9kbWFzb3VuZF93
cml0ZV9zcSBzbXBfMWZkOTg2MmEKI2RlZmluZSBkbWFzb3VuZF93cml0ZV9zcSBfc2V0X3Zlcihk
bWFzb3VuZF93cml0ZV9zcSkKI2RlZmluZSBfX3Zlcl9kbWFzb3VuZF9jYXRjaFJhZGl1cyBzbXBf
NGI5ZjU3NzAKI2RlZmluZSBkbWFzb3VuZF9jYXRjaFJhZGl1cyBfc2V0X3ZlcihkbWFzb3VuZF9j
YXRjaFJhZGl1cykKIyA1OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL2RzLnZlciIgMQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX3BjY2FyZF9kcml2ZXIgc21wXzcw
MmI4OTUzCiNkZWZpbmUgcmVnaXN0ZXJfcGNjYXJkX2RyaXZlciBfc2V0X3ZlcihyZWdpc3Rlcl9w
Y2NhcmRfZHJpdmVyKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfcGNjYXJkX2RyaXZlciBzbXBf
ZGIzNDhjZDIKI2RlZmluZSB1bnJlZ2lzdGVyX3BjY2FyZF9kcml2ZXIgX3NldF92ZXIodW5yZWdp
c3Rlcl9wY2NhcmRfZHJpdmVyKQojIDU5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvZWljb25fbW9kLnZlciIgMQojIDYwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvZmF0ZnNfc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYXRf
bmV3X2RpciBzbXBfODlhNThiYWUKI2RlZmluZSBmYXRfbmV3X2RpciBfc2V0X3ZlcihmYXRfbmV3
X2RpcikKI2RlZmluZSBfX3Zlcl9mYXRfZ2V0X2Jsb2NrIHNtcF81ZDM5MTAxMAojZGVmaW5lIGZh
dF9nZXRfYmxvY2sgX3NldF92ZXIoZmF0X2dldF9ibG9jaykKI2RlZmluZSBfX3Zlcl9mYXRfY2xl
YXJfaW5vZGUgc21wXzNhOTg3MmE3CiNkZWZpbmUgZmF0X2NsZWFyX2lub2RlIF9zZXRfdmVyKGZh
dF9jbGVhcl9pbm9kZSkKI2RlZmluZSBfX3Zlcl9mYXRfZGF0ZV91bml4MmRvcyBzbXBfODNmYjM2
YTEKI2RlZmluZSBmYXRfZGF0ZV91bml4MmRvcyBfc2V0X3ZlcihmYXRfZGF0ZV91bml4MmRvcykK
I2RlZmluZSBfX3Zlcl9mYXRfZGVsZXRlX2lub2RlIHNtcF9mM2UzMmFlNwojZGVmaW5lIGZhdF9k
ZWxldGVfaW5vZGUgX3NldF92ZXIoZmF0X2RlbGV0ZV9pbm9kZSkKI2RlZmluZSBfX3Zlcl9mYXRf
X2dldF9lbnRyeSBzbXBfMTc1OTY5MGMKI2RlZmluZSBmYXRfX2dldF9lbnRyeSBfc2V0X3Zlcihm
YXRfX2dldF9lbnRyeSkKI2RlZmluZSBfX3Zlcl9mYXRfbWFya19idWZmZXJfZGlydHkgc21wXzIw
YjQ1YjAxCiNkZWZpbmUgZmF0X21hcmtfYnVmZmVyX2RpcnR5IF9zZXRfdmVyKGZhdF9tYXJrX2J1
ZmZlcl9kaXJ0eSkKI2RlZmluZSBfX3Zlcl9mYXRfbm90aWZ5X2NoYW5nZSBzbXBfYjJkYTdkYzIK
I2RlZmluZSBmYXRfbm90aWZ5X2NoYW5nZSBfc2V0X3ZlcihmYXRfbm90aWZ5X2NoYW5nZSkKI2Rl
ZmluZSBfX3Zlcl9mYXRfcGFyZW50X2lubyBzbXBfM2IzY2MzOGIKI2RlZmluZSBmYXRfcGFyZW50
X2lubyBfc2V0X3ZlcihmYXRfcGFyZW50X2lubykKI2RlZmluZSBfX3Zlcl9mYXRfcHV0X3N1cGVy
IHNtcF82MTZkM2Q2NgojZGVmaW5lIGZhdF9wdXRfc3VwZXIgX3NldF92ZXIoZmF0X3B1dF9zdXBl
cikKI2RlZmluZSBfX3Zlcl9mYXRfYXR0YWNoIHNtcF8zNDllMTgyOQojZGVmaW5lIGZhdF9hdHRh
Y2ggX3NldF92ZXIoZmF0X2F0dGFjaCkKI2RlZmluZSBfX3Zlcl9mYXRfZGV0YWNoIHNtcF9kZWE3
Nzg2MQojZGVmaW5lIGZhdF9kZXRhY2ggX3NldF92ZXIoZmF0X2RldGFjaCkKI2RlZmluZSBfX3Zl
cl9mYXRfYnVpbGRfaW5vZGUgc21wX2MyYjg1YzRjCiNkZWZpbmUgZmF0X2J1aWxkX2lub2RlIF9z
ZXRfdmVyKGZhdF9idWlsZF9pbm9kZSkKI2RlZmluZSBfX3Zlcl9mYXRfcmVhZF9zdXBlciBzbXBf
YTBmMWMxYzYKI2RlZmluZSBmYXRfcmVhZF9zdXBlciBfc2V0X3ZlcihmYXRfcmVhZF9zdXBlcikK
I2RlZmluZSBfX3Zlcl9mYXRfc2VhcmNoX2xvbmcgc21wX2RiNjlhMzlhCiNkZWZpbmUgZmF0X3Nl
YXJjaF9sb25nIF9zZXRfdmVyKGZhdF9zZWFyY2hfbG9uZykKI2RlZmluZSBfX3Zlcl9mYXRfcmVh
ZGRpciBzbXBfYmZmNWMyNGYKI2RlZmluZSBmYXRfcmVhZGRpciBfc2V0X3ZlcihmYXRfcmVhZGRp
cikKI2RlZmluZSBfX3Zlcl9mYXRfc2NhbiBzbXBfNmY2MDNjOTQKI2RlZmluZSBmYXRfc2NhbiBf
c2V0X3ZlcihmYXRfc2NhbikKI2RlZmluZSBfX3Zlcl9mYXRfc3RhdGZzIHNtcF83MTQ0NWFjNAoj
ZGVmaW5lIGZhdF9zdGF0ZnMgX3NldF92ZXIoZmF0X3N0YXRmcykKI2RlZmluZSBfX3Zlcl9mYXRf
d3JpdGVfaW5vZGUgc21wXzA4ZTRkMjFjCiNkZWZpbmUgZmF0X3dyaXRlX2lub2RlIF9zZXRfdmVy
KGZhdF93cml0ZV9pbm9kZSkKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9jdmZfZm9ybWF0IHNtcF85
YmM5ZTAxZQojZGVmaW5lIHJlZ2lzdGVyX2N2Zl9mb3JtYXQgX3NldF92ZXIocmVnaXN0ZXJfY3Zm
X2Zvcm1hdCkKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX2N2Zl9mb3JtYXQgc21wXzEwYzBiNjI1
CiNkZWZpbmUgdW5yZWdpc3Rlcl9jdmZfZm9ybWF0IF9zZXRfdmVyKHVucmVnaXN0ZXJfY3ZmX2Zv
cm1hdCkKI2RlZmluZSBfX3Zlcl9mYXRfZ2V0X2NsdXN0ZXIgc21wX2FjMGZkNDlhCiNkZWZpbmUg
ZmF0X2dldF9jbHVzdGVyIF9zZXRfdmVyKGZhdF9nZXRfY2x1c3RlcikKI2RlZmluZSBfX3Zlcl9m
YXRfZGlyX2lvY3RsIHNtcF8xMGM4MDlhYgojZGVmaW5lIGZhdF9kaXJfaW9jdGwgX3NldF92ZXIo
ZmF0X2Rpcl9pb2N0bCkKI2RlZmluZSBfX3Zlcl9mYXRfYWRkX2VudHJpZXMgc21wXzUxM2IxOTc0
CiNkZWZpbmUgZmF0X2FkZF9lbnRyaWVzIF9zZXRfdmVyKGZhdF9hZGRfZW50cmllcykKI2RlZmlu
ZSBfX3Zlcl9mYXRfZGlyX2VtcHR5IHNtcF9hMzEyMWIwOQojZGVmaW5lIGZhdF9kaXJfZW1wdHkg
X3NldF92ZXIoZmF0X2Rpcl9lbXB0eSkKI2RlZmluZSBfX3Zlcl9mYXRfdHJ1bmNhdGUgc21wXzhk
MzQxY2Q5CiNkZWZpbmUgZmF0X3RydW5jYXRlIF9zZXRfdmVyKGZhdF90cnVuY2F0ZSkKI2RlZmlu
ZSBfX3Zlcl9mYXRfYnJlbHNlIHNtcF9hNmQyYTBjMAojZGVmaW5lIGZhdF9icmVsc2UgX3NldF92
ZXIoZmF0X2JyZWxzZSkKIyA2MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R1bGVzL2ZiY21hcC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYl9hbGxvY19jbWFwIHNtcF8wN2E4
OTBjOAojZGVmaW5lIGZiX2FsbG9jX2NtYXAgX3NldF92ZXIoZmJfYWxsb2NfY21hcCkKI2RlZmlu
ZSBfX3Zlcl9mYl9jb3B5X2NtYXAgc21wXzNkNjgyNjZjCiNkZWZpbmUgZmJfY29weV9jbWFwIF9z
ZXRfdmVyKGZiX2NvcHlfY21hcCkKI2RlZmluZSBfX3Zlcl9mYl9nZXRfY21hcCBzbXBfM2U2OWRl
OGYKI2RlZmluZSBmYl9nZXRfY21hcCBfc2V0X3ZlcihmYl9nZXRfY21hcCkKI2RlZmluZSBfX3Zl
cl9mYl9zZXRfY21hcCBzbXBfODlmZjZkNjYKI2RlZmluZSBmYl9zZXRfY21hcCBfc2V0X3Zlcihm
Yl9zZXRfY21hcCkKI2RlZmluZSBfX3Zlcl9mYl9kZWZhdWx0X2NtYXAgc21wX2E1NjU1N2VhCiNk
ZWZpbmUgZmJfZGVmYXVsdF9jbWFwIF9zZXRfdmVyKGZiX2RlZmF1bHRfY21hcCkKI2RlZmluZSBf
X3Zlcl9mYl9pbnZlcnRfY21hcHMgc21wX2YxOTVjNjgyCiNkZWZpbmUgZmJfaW52ZXJ0X2NtYXBz
IF9zZXRfdmVyKGZiX2ludmVydF9jbWFwcykKIyA2MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWFmYi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYmNvbl9h
ZmIgc21wXzRkYzU0Y2U0CiNkZWZpbmUgZmJjb25fYWZiIF9zZXRfdmVyKGZiY29uX2FmYikKI2Rl
ZmluZSBfX3Zlcl9mYmNvbl9hZmJfc2V0dXAgc21wX2VkMjk2MzI5CiNkZWZpbmUgZmJjb25fYWZi
X3NldHVwIF9zZXRfdmVyKGZiY29uX2FmYl9zZXR1cCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJf
Ym1vdmUgc21wXzY2ZDViY2JhCiNkZWZpbmUgZmJjb25fYWZiX2Jtb3ZlIF9zZXRfdmVyKGZiY29u
X2FmYl9ibW92ZSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJfY2xlYXIgc21wXzZkZTdmOGQwCiNk
ZWZpbmUgZmJjb25fYWZiX2NsZWFyIF9zZXRfdmVyKGZiY29uX2FmYl9jbGVhcikKI2RlZmluZSBf
X3Zlcl9mYmNvbl9hZmJfcHV0YyBzbXBfNTBkMzk1NjMKI2RlZmluZSBmYmNvbl9hZmJfcHV0YyBf
c2V0X3ZlcihmYmNvbl9hZmJfcHV0YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJfcHV0Y3Mgc21w
Xzc3ZWY0ZjU1CiNkZWZpbmUgZmJjb25fYWZiX3B1dGNzIF9zZXRfdmVyKGZiY29uX2FmYl9wdXRj
cykKI2RlZmluZSBfX3Zlcl9mYmNvbl9hZmJfcmV2YyBzbXBfNGJhNmZmMDMKI2RlZmluZSBmYmNv
bl9hZmJfcmV2YyBfc2V0X3ZlcihmYmNvbl9hZmJfcmV2YykKIyA2MyAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWNmYjE2LnZlciIgMQojZGVmaW5lIF9f
dmVyX2ZiY29uX2NmYjE2IHNtcF9lNmZmYmQ5OAojZGVmaW5lIGZiY29uX2NmYjE2IF9zZXRfdmVy
KGZiY29uX2NmYjE2KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X3NldHVwIHNtcF85ZmFkZTZl
MwojZGVmaW5lIGZiY29uX2NmYjE2X3NldHVwIF9zZXRfdmVyKGZiY29uX2NmYjE2X3NldHVwKQoj
ZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X2Jtb3ZlIHNtcF84ZjQ3ZWVhMgojZGVmaW5lIGZiY29u
X2NmYjE2X2Jtb3ZlIF9zZXRfdmVyKGZiY29uX2NmYjE2X2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2Zi
Y29uX2NmYjE2X2NsZWFyIHNtcF83ODIxZjk0NwojZGVmaW5lIGZiY29uX2NmYjE2X2NsZWFyIF9z
ZXRfdmVyKGZiY29uX2NmYjE2X2NsZWFyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X3B1dGMg
c21wX2I5NDFjNzdiCiNkZWZpbmUgZmJjb25fY2ZiMTZfcHV0YyBfc2V0X3ZlcihmYmNvbl9jZmIx
Nl9wdXRjKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2X3B1dGNzIHNtcF84NzUwNmIzOQojZGVm
aW5lIGZiY29uX2NmYjE2X3B1dGNzIF9zZXRfdmVyKGZiY29uX2NmYjE2X3B1dGNzKQojZGVmaW5l
IF9fdmVyX2ZiY29uX2NmYjE2X3JldmMgc21wX2RkNDA4ZTFjCiNkZWZpbmUgZmJjb25fY2ZiMTZf
cmV2YyBfc2V0X3ZlcihmYmNvbl9jZmIxNl9yZXZjKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjE2
X2NsZWFyX21hcmdpbnMgc21wXzA2NWI1NWZlCiNkZWZpbmUgZmJjb25fY2ZiMTZfY2xlYXJfbWFy
Z2lucyBfc2V0X3ZlcihmYmNvbl9jZmIxNl9jbGVhcl9tYXJnaW5zKQojIDY0ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZmJjb24tY2ZiMjQudmVyIiAxCiNkZWZp
bmUgX192ZXJfZmJjb25fY2ZiMjQgc21wX2Q2OGY2MTQzCiNkZWZpbmUgZmJjb25fY2ZiMjQgX3Nl
dF92ZXIoZmJjb25fY2ZiMjQpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfc2V0dXAgc21wX2Qz
MDQzNTk2CiNkZWZpbmUgZmJjb25fY2ZiMjRfc2V0dXAgX3NldF92ZXIoZmJjb25fY2ZiMjRfc2V0
dXApCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfYm1vdmUgc21wX2RiNmZlNGQ0CiNkZWZpbmUg
ZmJjb25fY2ZiMjRfYm1vdmUgX3NldF92ZXIoZmJjb25fY2ZiMjRfYm1vdmUpCiNkZWZpbmUgX192
ZXJfZmJjb25fY2ZiMjRfY2xlYXIgc21wX2UzZGNjMzAwCiNkZWZpbmUgZmJjb25fY2ZiMjRfY2xl
YXIgX3NldF92ZXIoZmJjb25fY2ZiMjRfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRf
cHV0YyBzbXBfZWQ2OWNkMGQKI2RlZmluZSBmYmNvbl9jZmIyNF9wdXRjIF9zZXRfdmVyKGZiY29u
X2NmYjI0X3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfcHV0Y3Mgc21wX2NkODE3M2Ez
CiNkZWZpbmUgZmJjb25fY2ZiMjRfcHV0Y3MgX3NldF92ZXIoZmJjb25fY2ZiMjRfcHV0Y3MpCiNk
ZWZpbmUgX192ZXJfZmJjb25fY2ZiMjRfcmV2YyBzbXBfZDAyNmE3ZjIKI2RlZmluZSBmYmNvbl9j
ZmIyNF9yZXZjIF9zZXRfdmVyKGZiY29uX2NmYjI0X3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25f
Y2ZiMjRfY2xlYXJfbWFyZ2lucyBzbXBfNzEzOThiNzIKI2RlZmluZSBmYmNvbl9jZmIyNF9jbGVh
cl9tYXJnaW5zIF9zZXRfdmVyKGZiY29uX2NmYjI0X2NsZWFyX21hcmdpbnMpCiMgNjUgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1jZmIyLnZlciIgMQoj
ZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjIgc21wXzRjNzIwZmRiCiNkZWZpbmUgZmJjb25fY2ZiMiBf
c2V0X3ZlcihmYmNvbl9jZmIyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfc2V0dXAgc21wXzk2
MWZjNDk4CiNkZWZpbmUgZmJjb25fY2ZiMl9zZXR1cCBfc2V0X3ZlcihmYmNvbl9jZmIyX3NldHVw
KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfYm1vdmUgc21wXzAwZTNmMjk4CiNkZWZpbmUgZmJj
b25fY2ZiMl9ibW92ZSBfc2V0X3ZlcihmYmNvbl9jZmIyX2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2Zi
Y29uX2NmYjJfY2xlYXIgc21wXzMwYmI1ZTgwCiNkZWZpbmUgZmJjb25fY2ZiMl9jbGVhciBfc2V0
X3ZlcihmYmNvbl9jZmIyX2NsZWFyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfcHV0YyBzbXBf
MzZlNWRiNDEKI2RlZmluZSBmYmNvbl9jZmIyX3B1dGMgX3NldF92ZXIoZmJjb25fY2ZiMl9wdXRj
KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjJfcHV0Y3Mgc21wX2NhZTg2NGE2CiNkZWZpbmUgZmJj
b25fY2ZiMl9wdXRjcyBfc2V0X3ZlcihmYmNvbl9jZmIyX3B1dGNzKQojZGVmaW5lIF9fdmVyX2Zi
Y29uX2NmYjJfcmV2YyBzbXBfMzIzNjdiNzYKI2RlZmluZSBmYmNvbl9jZmIyX3JldmMgX3NldF92
ZXIoZmJjb25fY2ZiMl9yZXZjKQojIDY2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvZmJjb24tY2ZiMzIudmVyIiAxCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzIg
c21wXzgxMTdhY2YyCiNkZWZpbmUgZmJjb25fY2ZiMzIgX3NldF92ZXIoZmJjb25fY2ZiMzIpCiNk
ZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfc2V0dXAgc21wXzJkMDBmMDU2CiNkZWZpbmUgZmJjb25f
Y2ZiMzJfc2V0dXAgX3NldF92ZXIoZmJjb25fY2ZiMzJfc2V0dXApCiNkZWZpbmUgX192ZXJfZmJj
b25fY2ZiMzJfYm1vdmUgc21wXzZlNTZiNDdkCiNkZWZpbmUgZmJjb25fY2ZiMzJfYm1vdmUgX3Nl
dF92ZXIoZmJjb25fY2ZiMzJfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfY2xlYXIg
c21wX2JiZmMzOTE1CiNkZWZpbmUgZmJjb25fY2ZiMzJfY2xlYXIgX3NldF92ZXIoZmJjb25fY2Zi
MzJfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfcHV0YyBzbXBfNTg1MDlkYTQKI2Rl
ZmluZSBmYmNvbl9jZmIzMl9wdXRjIF9zZXRfdmVyKGZiY29uX2NmYjMyX3B1dGMpCiNkZWZpbmUg
X192ZXJfZmJjb25fY2ZiMzJfcHV0Y3Mgc21wXzAwMjYxNzg0CiNkZWZpbmUgZmJjb25fY2ZiMzJf
cHV0Y3MgX3NldF92ZXIoZmJjb25fY2ZiMzJfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fY2Zi
MzJfcmV2YyBzbXBfNTgxNDE5MTMKI2RlZmluZSBmYmNvbl9jZmIzMl9yZXZjIF9zZXRfdmVyKGZi
Y29uX2NmYjMyX3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25fY2ZiMzJfY2xlYXJfbWFyZ2lucyBz
bXBfZjUzOWYxMjkKI2RlZmluZSBmYmNvbl9jZmIzMl9jbGVhcl9tYXJnaW5zIF9zZXRfdmVyKGZi
Y29uX2NmYjMyX2NsZWFyX21hcmdpbnMpCiMgNjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1jZmI0LnZlciIgMQojZGVmaW5lIF9fdmVyX2ZiY29uX2Nm
YjQgc21wXzFhMjhhODVkCiNkZWZpbmUgZmJjb25fY2ZiNCBfc2V0X3ZlcihmYmNvbl9jZmI0KQoj
ZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfc2V0dXAgc21wX2Y5ODA2ZmZmCiNkZWZpbmUgZmJjb25f
Y2ZiNF9zZXR1cCBfc2V0X3ZlcihmYmNvbl9jZmI0X3NldHVwKQojZGVmaW5lIF9fdmVyX2ZiY29u
X2NmYjRfYm1vdmUgc21wXzNjZWUzMzBkCiNkZWZpbmUgZmJjb25fY2ZiNF9ibW92ZSBfc2V0X3Zl
cihmYmNvbl9jZmI0X2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfY2xlYXIgc21wXzE1
OTI0OWEyCiNkZWZpbmUgZmJjb25fY2ZiNF9jbGVhciBfc2V0X3ZlcihmYmNvbl9jZmI0X2NsZWFy
KQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfcHV0YyBzbXBfMGFlODFhZDQKI2RlZmluZSBmYmNv
bl9jZmI0X3B1dGMgX3NldF92ZXIoZmJjb25fY2ZiNF9wdXRjKQojZGVmaW5lIF9fdmVyX2ZiY29u
X2NmYjRfcHV0Y3Mgc21wXzc1MjY1MjczCiNkZWZpbmUgZmJjb25fY2ZiNF9wdXRjcyBfc2V0X3Zl
cihmYmNvbl9jZmI0X3B1dGNzKQojZGVmaW5lIF9fdmVyX2ZiY29uX2NmYjRfcmV2YyBzbXBfMDY4
NjM2MTMKI2RlZmluZSBmYmNvbl9jZmI0X3JldmMgX3NldF92ZXIoZmJjb25fY2ZiNF9yZXZjKQoj
IDY4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZmJjb24tY2Zi
OC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4IHNtcF9iNjlkZTc1MQojZGVmaW5lIGZi
Y29uX2NmYjggX3NldF92ZXIoZmJjb25fY2ZiOCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X3Nl
dHVwIHNtcF8yNmJmMzkzMQojZGVmaW5lIGZiY29uX2NmYjhfc2V0dXAgX3NldF92ZXIoZmJjb25f
Y2ZiOF9zZXR1cCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X2Jtb3ZlIHNtcF80NGY1YjAyNwoj
ZGVmaW5lIGZiY29uX2NmYjhfYm1vdmUgX3NldF92ZXIoZmJjb25fY2ZiOF9ibW92ZSkKI2RlZmlu
ZSBfX3Zlcl9mYmNvbl9jZmI4X2NsZWFyIHNtcF81ZmMwNjdlNgojZGVmaW5lIGZiY29uX2NmYjhf
Y2xlYXIgX3NldF92ZXIoZmJjb25fY2ZiOF9jbGVhcikKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4
X3B1dGMgc21wXzcyZjM5OWZlCiNkZWZpbmUgZmJjb25fY2ZiOF9wdXRjIF9zZXRfdmVyKGZiY29u
X2NmYjhfcHV0YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X3B1dGNzIHNtcF9kMWNiMzk5OAoj
ZGVmaW5lIGZiY29uX2NmYjhfcHV0Y3MgX3NldF92ZXIoZmJjb25fY2ZiOF9wdXRjcykKI2RlZmlu
ZSBfX3Zlcl9mYmNvbl9jZmI4X3JldmMgc21wXzZmZTZhY2Q5CiNkZWZpbmUgZmJjb25fY2ZiOF9y
ZXZjIF9zZXRfdmVyKGZiY29uX2NmYjhfcmV2YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9jZmI4X2Ns
ZWFyX21hcmdpbnMgc21wXzk1MzBmYWRlCiNkZWZpbmUgZmJjb25fY2ZiOF9jbGVhcl9tYXJnaW5z
IF9zZXRfdmVyKGZiY29uX2NmYjhfY2xlYXJfbWFyZ2lucykKIyA2OSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWhnYS52ZXIiIDEKI2RlZmluZSBfX3Zl
cl9mYmNvbl9oZ2Egc21wXzFhMjIzYTlhCiNkZWZpbmUgZmJjb25faGdhIF9zZXRfdmVyKGZiY29u
X2hnYSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2Ffc2V0dXAgc21wX2MyNjg5NWQzCiNkZWZpbmUg
ZmJjb25faGdhX3NldHVwIF9zZXRfdmVyKGZiY29uX2hnYV9zZXR1cCkKI2RlZmluZSBfX3Zlcl9m
YmNvbl9oZ2FfYm1vdmUgc21wXzk3ZmE0MDhiCiNkZWZpbmUgZmJjb25faGdhX2Jtb3ZlIF9zZXRf
dmVyKGZiY29uX2hnYV9ibW92ZSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2FfY2xlYXIgc21wXzdj
ZTg0NjQzCiNkZWZpbmUgZmJjb25faGdhX2NsZWFyIF9zZXRfdmVyKGZiY29uX2hnYV9jbGVhcikK
I2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2FfcHV0YyBzbXBfYTFmYzY5NTIKI2RlZmluZSBmYmNvbl9o
Z2FfcHV0YyBfc2V0X3ZlcihmYmNvbl9oZ2FfcHV0YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2Ff
cHV0Y3Mgc21wXzE3ODRhNjVjCiNkZWZpbmUgZmJjb25faGdhX3B1dGNzIF9zZXRfdmVyKGZiY29u
X2hnYV9wdXRjcykKI2RlZmluZSBfX3Zlcl9mYmNvbl9oZ2FfcmV2YyBzbXBfZDQyNzViOGIKI2Rl
ZmluZSBmYmNvbl9oZ2FfcmV2YyBfc2V0X3ZlcihmYmNvbl9oZ2FfcmV2YykKI2RlZmluZSBfX3Zl
cl9mYmNvbl9oZ2FfY2xlYXJfbWFyZ2lucyBzbXBfOTUwZWVlZjgKI2RlZmluZSBmYmNvbl9oZ2Ff
Y2xlYXJfbWFyZ2lucyBfc2V0X3ZlcihmYmNvbl9oZ2FfY2xlYXJfbWFyZ2lucykKIyA3MCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWlsYm0udmVyIiAx
CiNkZWZpbmUgX192ZXJfZmJjb25faWxibSBzbXBfNTQ1Y2I2ODUKI2RlZmluZSBmYmNvbl9pbGJt
IF9zZXRfdmVyKGZiY29uX2lsYm0pCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9zZXR1cCBzbXBf
MGJhMzU5YWMKI2RlZmluZSBmYmNvbl9pbGJtX3NldHVwIF9zZXRfdmVyKGZiY29uX2lsYm1fc2V0
dXApCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9ibW92ZSBzbXBfYzU3MWZhMDEKI2RlZmluZSBm
YmNvbl9pbGJtX2Jtb3ZlIF9zZXRfdmVyKGZiY29uX2lsYm1fYm1vdmUpCiNkZWZpbmUgX192ZXJf
ZmJjb25faWxibV9jbGVhciBzbXBfNGNlZDg1NDYKI2RlZmluZSBmYmNvbl9pbGJtX2NsZWFyIF9z
ZXRfdmVyKGZiY29uX2lsYm1fY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9wdXRjIHNt
cF9mMzc3ZDNkOAojZGVmaW5lIGZiY29uX2lsYm1fcHV0YyBfc2V0X3ZlcihmYmNvbl9pbGJtX3B1
dGMpCiNkZWZpbmUgX192ZXJfZmJjb25faWxibV9wdXRjcyBzbXBfZDJkOGM5MGEKI2RlZmluZSBm
YmNvbl9pbGJtX3B1dGNzIF9zZXRfdmVyKGZiY29uX2lsYm1fcHV0Y3MpCiNkZWZpbmUgX192ZXJf
ZmJjb25faWxibV9yZXZjIHNtcF84NDA1ZDIxOAojZGVmaW5lIGZiY29uX2lsYm1fcmV2YyBfc2V0
X3ZlcihmYmNvbl9pbGJtX3JldmMpCiMgNzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdWxlcy9mYmNvbi1pcGxhbjJwMi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9mYmNvbl9p
cGxhbjJwMiBzbXBfNzNmZmM5YWIKI2RlZmluZSBmYmNvbl9pcGxhbjJwMiBfc2V0X3ZlcihmYmNv
bl9pcGxhbjJwMikKI2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9zZXR1cCBzbXBfZDMzNjg3
NTAKI2RlZmluZSBmYmNvbl9pcGxhbjJwMl9zZXR1cCBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9z
ZXR1cCkKI2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9ibW92ZSBzbXBfZTc1YmQ4MjAKI2Rl
ZmluZSBmYmNvbl9pcGxhbjJwMl9ibW92ZSBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9ibW92ZSkK
I2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9jbGVhciBzbXBfZWUwOTQzNDMKI2RlZmluZSBm
YmNvbl9pcGxhbjJwMl9jbGVhciBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9jbGVhcikKI2RlZmlu
ZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9wdXRjIHNtcF9kMTVkZjFmOQojZGVmaW5lIGZiY29uX2lw
bGFuMnAyX3B1dGMgX3NldF92ZXIoZmJjb25faXBsYW4ycDJfcHV0YykKI2RlZmluZSBfX3Zlcl9m
YmNvbl9pcGxhbjJwMl9wdXRjcyBzbXBfODBjYjY2MTcKI2RlZmluZSBmYmNvbl9pcGxhbjJwMl9w
dXRjcyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwMl9wdXRjcykKI2RlZmluZSBfX3Zlcl9mYmNvbl9p
cGxhbjJwMl9yZXZjIHNtcF8xM2ZlZjI5MQojZGVmaW5lIGZiY29uX2lwbGFuMnAyX3JldmMgX3Nl
dF92ZXIoZmJjb25faXBsYW4ycDJfcmV2YykKI2RlZmluZSBfX3Zlcl9mYmNvbl9pcGxhbjJwMl9j
bGVhcl9tYXJnaW5zIHNtcF82ZmVkNjA3MgojZGVmaW5lIGZiY29uX2lwbGFuMnAyX2NsZWFyX21h
cmdpbnMgX3NldF92ZXIoZmJjb25faXBsYW4ycDJfY2xlYXJfbWFyZ2lucykKIyA3MiAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLWlwbGFuMnA0LnZlciIg
MQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0IHNtcF8yNWE1NmUyZAojZGVmaW5lIGZiY29u
X2lwbGFuMnA0IF9zZXRfdmVyKGZiY29uX2lwbGFuMnA0KQojZGVmaW5lIF9fdmVyX2ZiY29uX2lw
bGFuMnA0X3NldHVwIHNtcF9iY2E5MmMzNwojZGVmaW5lIGZiY29uX2lwbGFuMnA0X3NldHVwIF9z
ZXRfdmVyKGZiY29uX2lwbGFuMnA0X3NldHVwKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0
X2Jtb3ZlIHNtcF9kYjU2MTliNQojZGVmaW5lIGZiY29uX2lwbGFuMnA0X2Jtb3ZlIF9zZXRfdmVy
KGZiY29uX2lwbGFuMnA0X2Jtb3ZlKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X2NsZWFy
IHNtcF9jYjIwNTQ2MQojZGVmaW5lIGZiY29uX2lwbGFuMnA0X2NsZWFyIF9zZXRfdmVyKGZiY29u
X2lwbGFuMnA0X2NsZWFyKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X3B1dGMgc21wX2Vk
NTAzMDZjCiNkZWZpbmUgZmJjb25faXBsYW4ycDRfcHV0YyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJw
NF9wdXRjKQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X3B1dGNzIHNtcF8zZjA1NTBjMgoj
ZGVmaW5lIGZiY29uX2lwbGFuMnA0X3B1dGNzIF9zZXRfdmVyKGZiY29uX2lwbGFuMnA0X3B1dGNz
KQojZGVmaW5lIF9fdmVyX2ZiY29uX2lwbGFuMnA0X3JldmMgc21wXzI3NGViZmY0CiNkZWZpbmUg
ZmJjb25faXBsYW4ycDRfcmV2YyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwNF9yZXZjKQojZGVmaW5l
IF9fdmVyX2ZiY29uX2lwbGFuMnA0X2NsZWFyX21hcmdpbnMgc21wXzc3ZTAxZWVhCiNkZWZpbmUg
ZmJjb25faXBsYW4ycDRfY2xlYXJfbWFyZ2lucyBfc2V0X3ZlcihmYmNvbl9pcGxhbjJwNF9jbGVh
cl9tYXJnaW5zKQojIDczICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZl
cnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVs
ZXMvZmJjb24taXBsYW4ycDgudmVyIiAxCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDggc21w
Xzg5MTAyMTIxCiNkZWZpbmUgZmJjb25faXBsYW4ycDggX3NldF92ZXIoZmJjb25faXBsYW4ycDgp
CiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDhfc2V0dXAgc21wXzYzOTY3YWY5CiNkZWZpbmUg
ZmJjb25faXBsYW4ycDhfc2V0dXAgX3NldF92ZXIoZmJjb25faXBsYW4ycDhfc2V0dXApCiNkZWZp
bmUgX192ZXJfZmJjb25faXBsYW4ycDhfYm1vdmUgc21wX2EzNGQ5YTlmCiNkZWZpbmUgZmJjb25f
aXBsYW4ycDhfYm1vdmUgX3NldF92ZXIoZmJjb25faXBsYW4ycDhfYm1vdmUpCiNkZWZpbmUgX192
ZXJfZmJjb25faXBsYW4ycDhfY2xlYXIgc21wXzgxNzI3YTI1CiNkZWZpbmUgZmJjb25faXBsYW4y
cDhfY2xlYXIgX3NldF92ZXIoZmJjb25faXBsYW4ycDhfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJj
b25faXBsYW4ycDhfcHV0YyBzbXBfOTU0YmIzNDYKI2RlZmluZSBmYmNvbl9pcGxhbjJwOF9wdXRj
IF9zZXRfdmVyKGZiY29uX2lwbGFuMnA4X3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4y
cDhfcHV0Y3Mgc21wXzliZTgzYjI5CiNkZWZpbmUgZmJjb25faXBsYW4ycDhfcHV0Y3MgX3NldF92
ZXIoZmJjb25faXBsYW4ycDhfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDhfcmV2
YyBzbXBfNGUyZTI1M2UKI2RlZmluZSBmYmNvbl9pcGxhbjJwOF9yZXZjIF9zZXRfdmVyKGZiY29u
X2lwbGFuMnA4X3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25faXBsYW4ycDhfY2xlYXJfbWFyZ2lu
cyBzbXBfNDdmYWUzZGEKI2RlZmluZSBmYmNvbl9pcGxhbjJwOF9jbGVhcl9tYXJnaW5zIF9zZXRf
dmVyKGZiY29uX2lwbGFuMnA4X2NsZWFyX21hcmdpbnMpCiMgNzQgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1tYWMudmVyIiAxCiNkZWZpbmUgX192ZXJf
ZmJjb25fbWFjIHNtcF8xYjQ3ZDQ5OAojZGVmaW5lIGZiY29uX21hYyBfc2V0X3ZlcihmYmNvbl9t
YWMpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX3NldHVwIHNtcF84Nzc4ODdhZQojZGVmaW5lIGZi
Y29uX21hY19zZXR1cCBfc2V0X3ZlcihmYmNvbl9tYWNfc2V0dXApCiNkZWZpbmUgX192ZXJfZmJj
b25fbWFjX2Jtb3ZlIHNtcF85M2Q4ZmRiYwojZGVmaW5lIGZiY29uX21hY19ibW92ZSBfc2V0X3Zl
cihmYmNvbl9tYWNfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX2NsZWFyIHNtcF84MzFi
MzYwNwojZGVmaW5lIGZiY29uX21hY19jbGVhciBfc2V0X3ZlcihmYmNvbl9tYWNfY2xlYXIpCiNk
ZWZpbmUgX192ZXJfZmJjb25fbWFjX3B1dGMgc21wX2E1ZGVkNDY1CiNkZWZpbmUgZmJjb25fbWFj
X3B1dGMgX3NldF92ZXIoZmJjb25fbWFjX3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX3B1
dGNzIHNtcF9mYTVmYjQxNgojZGVmaW5lIGZiY29uX21hY19wdXRjcyBfc2V0X3ZlcihmYmNvbl9t
YWNfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fbWFjX3JldmMgc21wXzBmNzc5YjUyCiNkZWZp
bmUgZmJjb25fbWFjX3JldmMgX3NldF92ZXIoZmJjb25fbWFjX3JldmMpCiMgNzUgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi1tZmIudmVyIiAxCiNkZWZp
bmUgX192ZXJfZmJjb25fbWZiIHNtcF8wNzEzZjM1YwojZGVmaW5lIGZiY29uX21mYiBfc2V0X3Zl
cihmYmNvbl9tZmIpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX3NldHVwIHNtcF8zYTU4YjIxNwoj
ZGVmaW5lIGZiY29uX21mYl9zZXR1cCBfc2V0X3ZlcihmYmNvbl9tZmJfc2V0dXApCiNkZWZpbmUg
X192ZXJfZmJjb25fbWZiX2Jtb3ZlIHNtcF83ZDBmZGExMwojZGVmaW5lIGZiY29uX21mYl9ibW92
ZSBfc2V0X3ZlcihmYmNvbl9tZmJfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX2NsZWFy
IHNtcF8yNTI0MzU0YwojZGVmaW5lIGZiY29uX21mYl9jbGVhciBfc2V0X3ZlcihmYmNvbl9tZmJf
Y2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX3B1dGMgc21wXzRiMDlmM2NhCiNkZWZpbmUg
ZmJjb25fbWZiX3B1dGMgX3NldF92ZXIoZmJjb25fbWZiX3B1dGMpCiNkZWZpbmUgX192ZXJfZmJj
b25fbWZiX3B1dGNzIHNtcF8xMDA1Nzk0ZgojZGVmaW5lIGZiY29uX21mYl9wdXRjcyBfc2V0X3Zl
cihmYmNvbl9tZmJfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fbWZiX3JldmMgc21wXzZhNjlk
M2ZkCiNkZWZpbmUgZmJjb25fbWZiX3JldmMgX3NldF92ZXIoZmJjb25fbWZiX3JldmMpCiNkZWZp
bmUgX192ZXJfZmJjb25fbWZiX2NsZWFyX21hcmdpbnMgc21wXzBjMzJiMzQxCiNkZWZpbmUgZmJj
b25fbWZiX2NsZWFyX21hcmdpbnMgX3NldF92ZXIoZmJjb25fbWZiX2NsZWFyX21hcmdpbnMpCiMg
NzYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNvbi52ZXIi
IDEKI2RlZmluZSBfX3Zlcl9mYl9kaXNwbGF5IHNtcF83Yjc5ODk3YgojZGVmaW5lIGZiX2Rpc3Bs
YXkgX3NldF92ZXIoZmJfZGlzcGxheSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9yZWRyYXdfYm1vdmUg
c21wXzNmMjg4NDc5CiNkZWZpbmUgZmJjb25fcmVkcmF3X2Jtb3ZlIF9zZXRfdmVyKGZiY29uX3Jl
ZHJhd19ibW92ZSkKI2RlZmluZSBfX3Zlcl9mYmNvbl9yZWRyYXdfY2xlYXIgc21wXzAxNjAxYzBm
CiNkZWZpbmUgZmJjb25fcmVkcmF3X2NsZWFyIF9zZXRfdmVyKGZiY29uX3JlZHJhd19jbGVhcikK
I2RlZmluZSBfX3Zlcl9mYmNvbl9kdW1teSBzbXBfMmYzMmE3ZWYKI2RlZmluZSBmYmNvbl9kdW1t
eSBfc2V0X3ZlcihmYmNvbl9kdW1teSkKI2RlZmluZSBfX3Zlcl9mYl9jb24gc21wX2E4MGE0MjIz
CiNkZWZpbmUgZmJfY29uIF9zZXRfdmVyKGZiX2NvbikKIyA3NyAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZiY29uLXZnYS1wbGFuZXMudmVyIiAxCiNkZWZpbmUg
X192ZXJfZmJjb25fdmdhX3BsYW5lcyBzbXBfZTNmNWI3NTgKI2RlZmluZSBmYmNvbl92Z2FfcGxh
bmVzIF9zZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXMpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs
YW5lc19zZXR1cCBzbXBfMDlkNjFiNTQKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX3NldHVwIF9z
ZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXNfc2V0dXApCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs
YW5lc19ibW92ZSBzbXBfOWFmMjIzNDEKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX2Jtb3ZlIF9z
ZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXNfYm1vdmUpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs
YW5lc19jbGVhciBzbXBfNThmZjY4NmUKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX2NsZWFyIF9z
ZXRfdmVyKGZiY29uX3ZnYV9wbGFuZXNfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Bs
YW5lc19wdXRjIHNtcF9hY2Y0MGE5OAojZGVmaW5lIGZiY29uX3ZnYV9wbGFuZXNfcHV0YyBfc2V0
X3ZlcihmYmNvbl92Z2FfcGxhbmVzX3B1dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3BsYW5l
c19wdXRjcyBzbXBfYjY4ZDM4MDIKI2RlZmluZSBmYmNvbl92Z2FfcGxhbmVzX3B1dGNzIF9zZXRf
dmVyKGZiY29uX3ZnYV9wbGFuZXNfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3BsYW5l
c19yZXZjIHNtcF9kNTViMDI0YgojZGVmaW5lIGZiY29uX3ZnYV9wbGFuZXNfcmV2YyBfc2V0X3Zl
cihmYmNvbl92Z2FfcGxhbmVzX3JldmMpCiNkZWZpbmUgX192ZXJfZmJjb25fZWdhX3BsYW5lcyBz
bXBfZDRlMTE1OTIKI2RlZmluZSBmYmNvbl9lZ2FfcGxhbmVzIF9zZXRfdmVyKGZiY29uX2VnYV9w
bGFuZXMpCiNkZWZpbmUgX192ZXJfZmJjb25fZWdhX3BsYW5lc19wdXRjIHNtcF9lOTExMTYxMAoj
ZGVmaW5lIGZiY29uX2VnYV9wbGFuZXNfcHV0YyBfc2V0X3ZlcihmYmNvbl9lZ2FfcGxhbmVzX3B1
dGMpCiNkZWZpbmUgX192ZXJfZmJjb25fZWdhX3BsYW5lc19wdXRjcyBzbXBfZGRiNTdiMzEKI2Rl
ZmluZSBmYmNvbl9lZ2FfcGxhbmVzX3B1dGNzIF9zZXRfdmVyKGZiY29uX2VnYV9wbGFuZXNfcHV0
Y3MpCiMgNzggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9mYmNv
bi12Z2EudmVyIiAxCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhIHNtcF9hYWU0MWEzNgojZGVmaW5l
IGZiY29uX3ZnYSBfc2V0X3ZlcihmYmNvbl92Z2EpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3Nl
dHVwIHNtcF9kYzQyZDk3MQojZGVmaW5lIGZiY29uX3ZnYV9zZXR1cCBfc2V0X3ZlcihmYmNvbl92
Z2Ffc2V0dXApCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX2Jtb3ZlIHNtcF80MDFiM2RhZAojZGVm
aW5lIGZiY29uX3ZnYV9ibW92ZSBfc2V0X3ZlcihmYmNvbl92Z2FfYm1vdmUpCiNkZWZpbmUgX192
ZXJfZmJjb25fdmdhX2NsZWFyIHNtcF9jOTBlM2JiNQojZGVmaW5lIGZiY29uX3ZnYV9jbGVhciBf
c2V0X3ZlcihmYmNvbl92Z2FfY2xlYXIpCiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3B1dGMgc21w
Xzc2MWQxNDc0CiNkZWZpbmUgZmJjb25fdmdhX3B1dGMgX3NldF92ZXIoZmJjb25fdmdhX3B1dGMp
CiNkZWZpbmUgX192ZXJfZmJjb25fdmdhX3B1dGNzIHNtcF9lYmE1ZDE2NQojZGVmaW5lIGZiY29u
X3ZnYV9wdXRjcyBfc2V0X3ZlcihmYmNvbl92Z2FfcHV0Y3MpCiNkZWZpbmUgX192ZXJfZmJjb25f
dmdhX3JldmMgc21wXzg3NWU5NDA4CiNkZWZpbmUgZmJjb25fdmdhX3JldmMgX3NldF92ZXIoZmJj
b25fdmdhX3JldmMpCiMgNzkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dWxlcy9mYm1lbS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9mcmFtZWJ1ZmZlciBzbXBf
Y2IxZDYxODUKI2RlZmluZSByZWdpc3Rlcl9mcmFtZWJ1ZmZlciBfc2V0X3ZlcihyZWdpc3Rlcl9m
cmFtZWJ1ZmZlcikKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX2ZyYW1lYnVmZmVyIHNtcF9jZjc4
YmY4ZgojZGVmaW5lIHVucmVnaXN0ZXJfZnJhbWVidWZmZXIgX3NldF92ZXIodW5yZWdpc3Rlcl9m
cmFtZWJ1ZmZlcikKI2RlZmluZSBfX3Zlcl9yZWdpc3RlcmVkX2ZiIHNtcF82YzM5NGM1ZAojZGVm
aW5lIHJlZ2lzdGVyZWRfZmIgX3NldF92ZXIocmVnaXN0ZXJlZF9mYikKI2RlZmluZSBfX3Zlcl9u
dW1fcmVnaXN0ZXJlZF9mYiBzbXBfNmM2MWNlNzAKI2RlZmluZSBudW1fcmVnaXN0ZXJlZF9mYiBf
c2V0X3ZlcihudW1fcmVnaXN0ZXJlZF9mYikKI2RlZmluZSBfX3Zlcl9HRVRfRkJfSURYIHNtcF81
MjgwYzYzMAojZGVmaW5lIEdFVF9GQl9JRFggX3NldF92ZXIoR0VUX0ZCX0lEWCkKIyA4MCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2ZibW9uLnZlciIgMQojZGVm
aW5lIF9fdmVyX2ZibW9uX3ZhbGlkX3RpbWluZ3Mgc21wXzcxYTc1ZjY5CiNkZWZpbmUgZmJtb25f
dmFsaWRfdGltaW5ncyBfc2V0X3ZlcihmYm1vbl92YWxpZF90aW1pbmdzKQojIDgxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvZmNfc3ltcy52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl9mY3BfaW5pdCBzbXBfMDEyNGMwZWUKI2RlZmluZSBmY3BfaW5pdCBfc2V0X3Zlcihm
Y3BfaW5pdCkKI2RlZmluZSBfX3Zlcl9mY3BfcmVsZWFzZSBzbXBfZGE3M2RjNzAKI2RlZmluZSBm
Y3BfcmVsZWFzZSBfc2V0X3ZlcihmY3BfcmVsZWFzZSkKI2RlZmluZSBfX3Zlcl9mY3BfcXVldWVf
ZW1wdHkgc21wX2JkNjRjZmIwCiNkZWZpbmUgZmNwX3F1ZXVlX2VtcHR5IF9zZXRfdmVyKGZjcF9x
dWV1ZV9lbXB0eSkKI2RlZmluZSBfX3Zlcl9mY3BfcmVjZWl2ZV9zb2xpY2l0ZWQgc21wX2Y0OTk3
M2YzCiNkZWZpbmUgZmNwX3JlY2VpdmVfc29saWNpdGVkIF9zZXRfdmVyKGZjcF9yZWNlaXZlX3Nv
bGljaXRlZCkKI2RlZmluZSBfX3Zlcl9mY19jaGFubmVscyBzbXBfZWU0N2RkNDAKI2RlZmluZSBm
Y19jaGFubmVscyBfc2V0X3ZlcihmY19jaGFubmVscykKI2RlZmluZSBfX3Zlcl9mY3Bfc3RhdGVf
Y2hhbmdlIHNtcF85MTZhNWFjYQojZGVmaW5lIGZjcF9zdGF0ZV9jaGFuZ2UgX3NldF92ZXIoZmNw
X3N0YXRlX2NoYW5nZSkKI2RlZmluZSBfX3Zlcl9mY19kb19wbG9naSBzbXBfZjVhNzYxODAKI2Rl
ZmluZSBmY19kb19wbG9naSBfc2V0X3ZlcihmY19kb19wbG9naSkKI2RlZmluZSBfX3Zlcl9mY19k
b19wcmxpIHNtcF9mYWM5OWQ5NwojZGVmaW5lIGZjX2RvX3BybGkgX3NldF92ZXIoZmNfZG9fcHJs
aSkKI2RlZmluZSBfX3Zlcl9mY3Bfc2NzaV9xdWV1ZWNvbW1hbmQgc21wXzZlOWU1Y2Y4CiNkZWZp
bmUgZmNwX3Njc2lfcXVldWVjb21tYW5kIF9zZXRfdmVyKGZjcF9zY3NpX3F1ZXVlY29tbWFuZCkK
I2RlZmluZSBfX3Zlcl9mY3Bfb2xkX2Fib3J0IHNtcF8zMjVjMmNmNwojZGVmaW5lIGZjcF9vbGRf
YWJvcnQgX3NldF92ZXIoZmNwX29sZF9hYm9ydCkKI2RlZmluZSBfX3Zlcl9mY3Bfc2NzaV9hYm9y
dCBzbXBfOWRjMjAyN2UKI2RlZmluZSBmY3Bfc2NzaV9hYm9ydCBfc2V0X3ZlcihmY3Bfc2NzaV9h
Ym9ydCkKI2RlZmluZSBfX3Zlcl9mY3Bfc2NzaV9kZXZfcmVzZXQgc21wXzQ0NzY5MWMxCiNkZWZp
bmUgZmNwX3Njc2lfZGV2X3Jlc2V0IF9zZXRfdmVyKGZjcF9zY3NpX2Rldl9yZXNldCkKI2RlZmlu
ZSBfX3Zlcl9mY3Bfc2NzaV9idXNfcmVzZXQgc21wXzMzMWJkMDYwCiNkZWZpbmUgZmNwX3Njc2lf
YnVzX3Jlc2V0IF9zZXRfdmVyKGZjcF9zY3NpX2J1c19yZXNldCkKI2RlZmluZSBfX3Zlcl9mY3Bf
c2NzaV9ob3N0X3Jlc2V0IHNtcF8xYTQxMmU1NAojZGVmaW5lIGZjcF9zY3NpX2hvc3RfcmVzZXQg
X3NldF92ZXIoZmNwX3Njc2lfaG9zdF9yZXNldCkKIyA4MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R1bGVzL2ZmYl9kcnYudmVyIiAxCiMgODMgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9maWxlc3lzdGVtcy52ZXIiIDEKIyA4NCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2Z0YXBlX3N5bXMudmVyIiAx
CiNkZWZpbmUgX192ZXJfZnRhcGVfZ2V0X2JhZF9zZWN0b3JfZW50cnkgc21wX2ZlZDVhNTNkCiNk
ZWZpbmUgZnRhcGVfZ2V0X2JhZF9zZWN0b3JfZW50cnkgX3NldF92ZXIoZnRhcGVfZ2V0X2JhZF9z
ZWN0b3JfZW50cnkpCiNkZWZpbmUgX192ZXJfZnRhcGVfZmluZF9lbmRfb2ZfYnNtX2xpc3Qgc21w
XzQ2NzM4Njg3CiNkZWZpbmUgZnRhcGVfZmluZF9lbmRfb2ZfYnNtX2xpc3QgX3NldF92ZXIoZnRh
cGVfZmluZF9lbmRfb2ZfYnNtX2xpc3QpCiNkZWZpbmUgX192ZXJfZnRhcGVfc2V0X3N0YXRlIHNt
cF81YjUyZDRiOAojZGVmaW5lIGZ0YXBlX3NldF9zdGF0ZSBfc2V0X3ZlcihmdGFwZV9zZXRfc3Rh
dGUpCiNkZWZpbmUgX192ZXJfZnRhcGVfc2Vla190b19ib3Qgc21wXzQ4MTVhYzNjCiNkZWZpbmUg
ZnRhcGVfc2Vla190b19ib3QgX3NldF92ZXIoZnRhcGVfc2Vla190b19ib3QpCiNkZWZpbmUgX192
ZXJfZnRhcGVfc2Vla190b19lb3Qgc21wXzM1NjZhYTY0CiNkZWZpbmUgZnRhcGVfc2Vla190b19l
b3QgX3NldF92ZXIoZnRhcGVfc2Vla190b19lb3QpCiNkZWZpbmUgX192ZXJfZnRhcGVfYWJvcnRf
b3BlcmF0aW9uIHNtcF9kOTBkZjUxOQojZGVmaW5lIGZ0YXBlX2Fib3J0X29wZXJhdGlvbiBfc2V0
X3ZlcihmdGFwZV9hYm9ydF9vcGVyYXRpb24pCiNkZWZpbmUgX192ZXJfZnRhcGVfZ2V0X3N0YXR1
cyBzbXBfNDZmNDcwNzAKI2RlZmluZSBmdGFwZV9nZXRfc3RhdHVzIF9zZXRfdmVyKGZ0YXBlX2dl
dF9zdGF0dXMpCiNkZWZpbmUgX192ZXJfZnRhcGVfZW5hYmxlIHNtcF83ZWMwZDVkNAojZGVmaW5l
IGZ0YXBlX2VuYWJsZSBfc2V0X3ZlcihmdGFwZV9lbmFibGUpCiNkZWZpbmUgX192ZXJfZnRhcGVf
ZGlzYWJsZSBzbXBfN2I1MmYwNGIKI2RlZmluZSBmdGFwZV9kaXNhYmxlIF9zZXRfdmVyKGZ0YXBl
X2Rpc2FibGUpCiNkZWZpbmUgX192ZXJfZnRhcGVfbW1hcCBzbXBfMzlhZjUwMTkKI2RlZmluZSBm
dGFwZV9tbWFwIF9zZXRfdmVyKGZ0YXBlX21tYXApCiNkZWZpbmUgX192ZXJfZnRhcGVfY2FsaWJy
YXRlX2RhdGFfcmF0ZSBzbXBfODJiY2Y1MmEKI2RlZmluZSBmdGFwZV9jYWxpYnJhdGVfZGF0YV9y
YXRlIF9zZXRfdmVyKGZ0YXBlX2NhbGlicmF0ZV9kYXRhX3JhdGUpCiNkZWZpbmUgX192ZXJfZnRh
cGVfcmVzZXRfZHJpdmUgc21wXzJiZGJhNmFhCiNkZWZpbmUgZnRhcGVfcmVzZXRfZHJpdmUgX3Nl
dF92ZXIoZnRhcGVfcmVzZXRfZHJpdmUpCiNkZWZpbmUgX192ZXJfZnRhcGVfY29tbWFuZCBzbXBf
Nzk5MzA1ZTQKI2RlZmluZSBmdGFwZV9jb21tYW5kIF9zZXRfdmVyKGZ0YXBlX2NvbW1hbmQpCiNk
ZWZpbmUgX192ZXJfZnRhcGVfcGFyYW1ldGVyIHNtcF9jMTdiNjBlMwojZGVmaW5lIGZ0YXBlX3Bh
cmFtZXRlciBfc2V0X3ZlcihmdGFwZV9wYXJhbWV0ZXIpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVh
ZHlfd2FpdCBzbXBfYzc4MGVkMDgKI2RlZmluZSBmdGFwZV9yZWFkeV93YWl0IF9zZXRfdmVyKGZ0
YXBlX3JlYWR5X3dhaXQpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVwb3J0X29wZXJhdGlvbiBzbXBf
ZjVhYzQ1OTEKI2RlZmluZSBmdGFwZV9yZXBvcnRfb3BlcmF0aW9uIF9zZXRfdmVyKGZ0YXBlX3Jl
cG9ydF9vcGVyYXRpb24pCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVwb3J0X2Vycm9yIHNtcF85OTll
ZGZmZAojZGVmaW5lIGZ0YXBlX3JlcG9ydF9lcnJvciBfc2V0X3ZlcihmdGFwZV9yZXBvcnRfZXJy
b3IpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVhZF9zZWdtZW50X2ZyYWN0aW9uIHNtcF9jODdmNGVk
NwojZGVmaW5lIGZ0YXBlX3JlYWRfc2VnbWVudF9mcmFjdGlvbiBfc2V0X3ZlcihmdGFwZV9yZWFk
X3NlZ21lbnRfZnJhY3Rpb24pCiNkZWZpbmUgX192ZXJfZnRhcGVfemFwX3JlYWRfYnVmZmVycyBz
bXBfZGQ5ZjBhZTAKI2RlZmluZSBmdGFwZV96YXBfcmVhZF9idWZmZXJzIF9zZXRfdmVyKGZ0YXBl
X3phcF9yZWFkX2J1ZmZlcnMpCiNkZWZpbmUgX192ZXJfZnRhcGVfcmVhZF9oZWFkZXJfc2VnbWVu
dCBzbXBfYTJiMTRiM2MKI2RlZmluZSBmdGFwZV9yZWFkX2hlYWRlcl9zZWdtZW50IF9zZXRfdmVy
KGZ0YXBlX3JlYWRfaGVhZGVyX3NlZ21lbnQpCiNkZWZpbmUgX192ZXJfZnRhcGVfZGVjb2RlX2hl
YWRlcl9zZWdtZW50IHNtcF8wOGI2NjVlZgojZGVmaW5lIGZ0YXBlX2RlY29kZV9oZWFkZXJfc2Vn
bWVudCBfc2V0X3ZlcihmdGFwZV9kZWNvZGVfaGVhZGVyX3NlZ21lbnQpCiNkZWZpbmUgX192ZXJf
ZnRhcGVfd3JpdGVfc2VnbWVudCBzbXBfOGEwOWM4NDYKI2RlZmluZSBmdGFwZV93cml0ZV9zZWdt
ZW50IF9zZXRfdmVyKGZ0YXBlX3dyaXRlX3NlZ21lbnQpCiNkZWZpbmUgX192ZXJfZnRhcGVfc3Rh
cnRfd3JpdGluZyBzbXBfYTk5ZDgxZTMKI2RlZmluZSBmdGFwZV9zdGFydF93cml0aW5nIF9zZXRf
dmVyKGZ0YXBlX3N0YXJ0X3dyaXRpbmcpCiNkZWZpbmUgX192ZXJfZnRhcGVfbG9vcF91bnRpbF93
cml0ZXNfZG9uZSBzbXBfMDAzZWQyZWEKI2RlZmluZSBmdGFwZV9sb29wX3VudGlsX3dyaXRlc19k
b25lIF9zZXRfdmVyKGZ0YXBlX2xvb3BfdW50aWxfd3JpdGVzX2RvbmUpCiNkZWZpbmUgX192ZXJf
ZnRhcGVfc2V0X25yX2J1ZmZlcnMgc21wXzhiNTZjYWFhCiNkZWZpbmUgZnRhcGVfc2V0X25yX2J1
ZmZlcnMgX3NldF92ZXIoZnRhcGVfc2V0X25yX2J1ZmZlcnMpCiNkZWZpbmUgX192ZXJfZnRhcGVf
Zm9ybWF0X3RyYWNrIHNtcF80MGZlYmI0MAojZGVmaW5lIGZ0YXBlX2Zvcm1hdF90cmFjayBfc2V0
X3ZlcihmdGFwZV9mb3JtYXRfdHJhY2spCiNkZWZpbmUgX192ZXJfZnRhcGVfZm9ybWF0X3N0YXR1
cyBzbXBfZTk4NDllZWUKI2RlZmluZSBmdGFwZV9mb3JtYXRfc3RhdHVzIF9zZXRfdmVyKGZ0YXBl
X2Zvcm1hdF9zdGF0dXMpCiNkZWZpbmUgX192ZXJfZnRhcGVfdmVyaWZ5X3NlZ21lbnQgc21wXzgy
Njc1YmU3CiNkZWZpbmUgZnRhcGVfdmVyaWZ5X3NlZ21lbnQgX3NldF92ZXIoZnRhcGVfdmVyaWZ5
X3NlZ21lbnQpCiNkZWZpbmUgX192ZXJfZnRhcGVfdHJhY2luZyBzbXBfNmI2MjUzZDMKI2RlZmlu
ZSBmdGFwZV90cmFjaW5nIF9zZXRfdmVyKGZ0YXBlX3RyYWNpbmcpCiNkZWZpbmUgX192ZXJfZnRh
cGVfZnVuY3Rpb25fbmVzdF9sZXZlbCBzbXBfNTAxOTY3NDMKI2RlZmluZSBmdGFwZV9mdW5jdGlv
bl9uZXN0X2xldmVsIF9zZXRfdmVyKGZ0YXBlX2Z1bmN0aW9uX25lc3RfbGV2ZWwpCiNkZWZpbmUg
X192ZXJfZnRhcGVfdHJhY2VfY2FsbCBzbXBfNjNmN2Y2ZDAKI2RlZmluZSBmdGFwZV90cmFjZV9j
YWxsIF9zZXRfdmVyKGZ0YXBlX3RyYWNlX2NhbGwpCiNkZWZpbmUgX192ZXJfZnRhcGVfdHJhY2Vf
ZXhpdCBzbXBfNGU3NTVkY2YKI2RlZmluZSBmdGFwZV90cmFjZV9leGl0IF9zZXRfdmVyKGZ0YXBl
X3RyYWNlX2V4aXQpCiNkZWZpbmUgX192ZXJfZnRhcGVfdHJhY2VfbG9nIHNtcF85MmNlN2ViMQoj
ZGVmaW5lIGZ0YXBlX3RyYWNlX2xvZyBfc2V0X3ZlcihmdGFwZV90cmFjZV9sb2cpCiMgODUgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9nYW1lcG9ydC52ZXIiIDEK
I2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9yZWdpc3Rlcl9wb3J0IHNtcF85NWMwNzhjZQojZGVmaW5l
IGdhbWVwb3J0X3JlZ2lzdGVyX3BvcnQgX3NldF92ZXIoZ2FtZXBvcnRfcmVnaXN0ZXJfcG9ydCkK
I2RlZmluZSBfX3Zlcl9nYW1lcG9ydF91bnJlZ2lzdGVyX3BvcnQgc21wXzU2YzhiOTYzCiNkZWZp
bmUgZ2FtZXBvcnRfdW5yZWdpc3Rlcl9wb3J0IF9zZXRfdmVyKGdhbWVwb3J0X3VucmVnaXN0ZXJf
cG9ydCkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9yZWdpc3Rlcl9kZXZpY2Ugc21wX2MzMTgxZjRm
CiNkZWZpbmUgZ2FtZXBvcnRfcmVnaXN0ZXJfZGV2aWNlIF9zZXRfdmVyKGdhbWVwb3J0X3JlZ2lz
dGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF91bnJlZ2lzdGVyX2RldmljZSBzbXBf
ZTRiMmRjZTIKI2RlZmluZSBnYW1lcG9ydF91bnJlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihnYW1l
cG9ydF91bnJlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9vcGVuIHNtcF83
ZWFlNWYxNgojZGVmaW5lIGdhbWVwb3J0X29wZW4gX3NldF92ZXIoZ2FtZXBvcnRfb3BlbikKI2Rl
ZmluZSBfX3Zlcl9nYW1lcG9ydF9jbG9zZSBzbXBfNmQ5ZWFlZDgKI2RlZmluZSBnYW1lcG9ydF9j
bG9zZSBfc2V0X3ZlcihnYW1lcG9ydF9jbG9zZSkKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9yZXNj
YW4gc21wX2Q5OTQ5NTg5CiNkZWZpbmUgZ2FtZXBvcnRfcmVzY2FuIF9zZXRfdmVyKGdhbWVwb3J0
X3Jlc2NhbikKI2RlZmluZSBfX3Zlcl9nYW1lcG9ydF9jb29rZWRfcmVhZCBzbXBfZDQ5ZTZkZTUK
I2RlZmluZSBnYW1lcG9ydF9jb29rZWRfcmVhZCBfc2V0X3ZlcihnYW1lcG9ydF9jb29rZWRfcmVh
ZCkKIyA4NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2dhbW1h
X2Rydi52ZXIiIDEKIyA4NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL2hkbGNkcnYudmVyIiAxCiNkZWZpbmUgX192ZXJfaGRsY2Rydl9yZWNlaXZlciBzbXBfMTU1
OWUwZDUKI2RlZmluZSBoZGxjZHJ2X3JlY2VpdmVyIF9zZXRfdmVyKGhkbGNkcnZfcmVjZWl2ZXIp
CiNkZWZpbmUgX192ZXJfaGRsY2Rydl90cmFuc21pdHRlciBzbXBfOThiZGZkNDMKI2RlZmluZSBo
ZGxjZHJ2X3RyYW5zbWl0dGVyIF9zZXRfdmVyKGhkbGNkcnZfdHJhbnNtaXR0ZXIpCiNkZWZpbmUg
X192ZXJfaGRsY2Rydl9hcmJpdHJhdGUgc21wXzI0ZmE1OTI3CiNkZWZpbmUgaGRsY2Rydl9hcmJp
dHJhdGUgX3NldF92ZXIoaGRsY2Rydl9hcmJpdHJhdGUpCiNkZWZpbmUgX192ZXJfaGRsY2Rydl9y
ZWdpc3Rlcl9oZGxjZHJ2IHNtcF8yYTExZmZlZAojZGVmaW5lIGhkbGNkcnZfcmVnaXN0ZXJfaGRs
Y2RydiBfc2V0X3ZlcihoZGxjZHJ2X3JlZ2lzdGVyX2hkbGNkcnYpCiNkZWZpbmUgX192ZXJfaGRs
Y2Rydl91bnJlZ2lzdGVyX2hkbGNkcnYgc21wXzBmMDAzNzAyCiNkZWZpbmUgaGRsY2Rydl91bnJl
Z2lzdGVyX2hkbGNkcnYgX3NldF92ZXIoaGRsY2Rydl91bnJlZ2lzdGVyX2hkbGNkcnYpCiMgODgg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9oZGxjLnZlciIgMQoj
ZGVmaW5lIF9fdmVyX2hkbGNfbmV0aWZfcnggc21wXzNjYzc4MDJmCiNkZWZpbmUgaGRsY19uZXRp
Zl9yeCBfc2V0X3ZlcihoZGxjX25ldGlmX3J4KQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX2hkbGNf
ZGV2aWNlIHNtcF8wZTViYjlhZAojZGVmaW5lIHJlZ2lzdGVyX2hkbGNfZGV2aWNlIF9zZXRfdmVy
KHJlZ2lzdGVyX2hkbGNfZGV2aWNlKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfaGRsY19kZXZp
Y2Ugc21wXzA3NTUwMzQ5CiNkZWZpbmUgdW5yZWdpc3Rlcl9oZGxjX2RldmljZSBfc2V0X3Zlcih1
bnJlZ2lzdGVyX2hkbGNfZGV2aWNlKQojIDg5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHVsZXMvaGVybWVzLnZlciIgMQojZGVmaW5lIF9fdmVyX2hlcm1lc19zdHJ1Y3Rf
aW5pdCBzbXBfOGEyNDZjNzUKI2RlZmluZSBoZXJtZXNfc3RydWN0X2luaXQgX3NldF92ZXIoaGVy
bWVzX3N0cnVjdF9pbml0KQojZGVmaW5lIF9fdmVyX2hlcm1lc19yZXNldCBzbXBfNDEyYTM3ZjAK
I2RlZmluZSBoZXJtZXNfcmVzZXQgX3NldF92ZXIoaGVybWVzX3Jlc2V0KQojZGVmaW5lIF9fdmVy
X2hlcm1lc19kb2NtZF93YWl0IHNtcF83N2FlZjllNQojZGVmaW5lIGhlcm1lc19kb2NtZF93YWl0
IF9zZXRfdmVyKGhlcm1lc19kb2NtZF93YWl0KQojZGVmaW5lIF9fdmVyX2hlcm1lc19hbGxvY2F0
ZSBzbXBfYTM2MWQ3MmYKI2RlZmluZSBoZXJtZXNfYWxsb2NhdGUgX3NldF92ZXIoaGVybWVzX2Fs
bG9jYXRlKQojZGVmaW5lIF9fdmVyX2hlcm1lc19iYXBfcHJlYWQgc21wXzAwOTU5NWI3CiNkZWZp
bmUgaGVybWVzX2JhcF9wcmVhZCBfc2V0X3ZlcihoZXJtZXNfYmFwX3ByZWFkKQojZGVmaW5lIF9f
dmVyX2hlcm1lc19iYXBfcHdyaXRlIHNtcF85MGI2ZDAwYwojZGVmaW5lIGhlcm1lc19iYXBfcHdy
aXRlIF9zZXRfdmVyKGhlcm1lc19iYXBfcHdyaXRlKQojZGVmaW5lIF9fdmVyX2hlcm1lc19yZWFk
X2x0diBzbXBfNGE1OTkyMDcKI2RlZmluZSBoZXJtZXNfcmVhZF9sdHYgX3NldF92ZXIoaGVybWVz
X3JlYWRfbHR2KQojZGVmaW5lIF9fdmVyX2hlcm1lc193cml0ZV9sdHYgc21wX2U0Nzg2YzhhCiNk
ZWZpbmUgaGVybWVzX3dyaXRlX2x0diBfc2V0X3ZlcihoZXJtZXNfd3JpdGVfbHR2KQojIDkwICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaTJjLWFsZ28tYml0LnZl
ciIgMQojZGVmaW5lIF9fdmVyX2kyY19iaXRfYWRkX2J1cyBzbXBfM2U4ZTU4NGMKI2RlZmluZSBp
MmNfYml0X2FkZF9idXMgX3NldF92ZXIoaTJjX2JpdF9hZGRfYnVzKQojZGVmaW5lIF9fdmVyX2ky
Y19iaXRfZGVsX2J1cyBzbXBfOTMwYmNjY2IKI2RlZmluZSBpMmNfYml0X2RlbF9idXMgX3NldF92
ZXIoaTJjX2JpdF9kZWxfYnVzKQojIDkxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvaTJjLWFsZ28tcGNmLnZlciIgMQojZGVmaW5lIF9fdmVyX2kyY19wY2ZfYWRk
X2J1cyBzbXBfMTcyNjVlOTQKI2RlZmluZSBpMmNfcGNmX2FkZF9idXMgX3NldF92ZXIoaTJjX3Bj
Zl9hZGRfYnVzKQojZGVmaW5lIF9fdmVyX2kyY19wY2ZfZGVsX2J1cyBzbXBfYmFhM2NhMTMKI2Rl
ZmluZSBpMmNfcGNmX2RlbF9idXMgX3NldF92ZXIoaTJjX3BjZl9kZWxfYnVzKQojIDkyICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaTJjLWNvcmUudmVyIiAxCiNk
ZWZpbmUgX192ZXJfaTJjX2FkZF9hZGFwdGVyIHNtcF8xYmZkMTUxNwojZGVmaW5lIGkyY19hZGRf
YWRhcHRlciBfc2V0X3ZlcihpMmNfYWRkX2FkYXB0ZXIpCiNkZWZpbmUgX192ZXJfaTJjX2RlbF9h
ZGFwdGVyIHNtcF83ZmZhMzhlMgojZGVmaW5lIGkyY19kZWxfYWRhcHRlciBfc2V0X3ZlcihpMmNf
ZGVsX2FkYXB0ZXIpCiNkZWZpbmUgX192ZXJfaTJjX2FkZF9kcml2ZXIgc21wXzMxOTdhYjFkCiNk
ZWZpbmUgaTJjX2FkZF9kcml2ZXIgX3NldF92ZXIoaTJjX2FkZF9kcml2ZXIpCiNkZWZpbmUgX192
ZXJfaTJjX2RlbF9kcml2ZXIgc21wX2IyMzc1ZjQ5CiNkZWZpbmUgaTJjX2RlbF9kcml2ZXIgX3Nl
dF92ZXIoaTJjX2RlbF9kcml2ZXIpCiNkZWZpbmUgX192ZXJfaTJjX2F0dGFjaF9jbGllbnQgc21w
XzIxNTE3YWY2CiNkZWZpbmUgaTJjX2F0dGFjaF9jbGllbnQgX3NldF92ZXIoaTJjX2F0dGFjaF9j
bGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2RldGFjaF9jbGllbnQgc21wXzgxYmI0MzRkCiNkZWZp
bmUgaTJjX2RldGFjaF9jbGllbnQgX3NldF92ZXIoaTJjX2RldGFjaF9jbGllbnQpCiNkZWZpbmUg
X192ZXJfaTJjX2luY191c2VfY2xpZW50IHNtcF9iZTVhOGU2OAojZGVmaW5lIGkyY19pbmNfdXNl
X2NsaWVudCBfc2V0X3ZlcihpMmNfaW5jX3VzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2Rl
Y191c2VfY2xpZW50IHNtcF82ZmMzN2ViOQojZGVmaW5lIGkyY19kZWNfdXNlX2NsaWVudCBfc2V0
X3ZlcihpMmNfZGVjX3VzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2dldF9jbGllbnQgc21w
XzE4YzhmZmE5CiNkZWZpbmUgaTJjX2dldF9jbGllbnQgX3NldF92ZXIoaTJjX2dldF9jbGllbnQp
CiNkZWZpbmUgX192ZXJfaTJjX3VzZV9jbGllbnQgc21wX2Y2MTVjYTgyCiNkZWZpbmUgaTJjX3Vz
ZV9jbGllbnQgX3NldF92ZXIoaTJjX3VzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX3JlbGVh
c2VfY2xpZW50IHNtcF8yNzY1M2JhNgojZGVmaW5lIGkyY19yZWxlYXNlX2NsaWVudCBfc2V0X3Zl
cihpMmNfcmVsZWFzZV9jbGllbnQpCiNkZWZpbmUgX192ZXJfaTJjX2NoZWNrX2FkZHIgc21wXzA4
YzkxNDQwCiNkZWZpbmUgaTJjX2NoZWNrX2FkZHIgX3NldF92ZXIoaTJjX2NoZWNrX2FkZHIpCiNk
ZWZpbmUgX192ZXJfaTJjX21hc3Rlcl9zZW5kIHNtcF80ZjA0MDQ2NAojZGVmaW5lIGkyY19tYXN0
ZXJfc2VuZCBfc2V0X3ZlcihpMmNfbWFzdGVyX3NlbmQpCiNkZWZpbmUgX192ZXJfaTJjX21hc3Rl
cl9yZWN2IHNtcF80OWUwYTU5ZAojZGVmaW5lIGkyY19tYXN0ZXJfcmVjdiBfc2V0X3ZlcihpMmNf
bWFzdGVyX3JlY3YpCiNkZWZpbmUgX192ZXJfaTJjX2NvbnRyb2wgc21wXzM4NTg2NGU3CiNkZWZp
bmUgaTJjX2NvbnRyb2wgX3NldF92ZXIoaTJjX2NvbnRyb2wpCiNkZWZpbmUgX192ZXJfaTJjX3Ry
YW5zZmVyIHNtcF81YzI3NGNmZgojZGVmaW5lIGkyY190cmFuc2ZlciBfc2V0X3ZlcihpMmNfdHJh
bnNmZXIpCiNkZWZpbmUgX192ZXJfaTJjX2FkYXB0ZXJfaWQgc21wXzI3YTBkYjJkCiNkZWZpbmUg
aTJjX2FkYXB0ZXJfaWQgX3NldF92ZXIoaTJjX2FkYXB0ZXJfaWQpCiNkZWZpbmUgX192ZXJfaTJj
X3Byb2JlIHNtcF9iZTcyNjU3MQojZGVmaW5lIGkyY19wcm9iZSBfc2V0X3ZlcihpMmNfcHJvYmUp
CiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3hmZXIgc21wX2E2YjI5YjA2CiNkZWZpbmUgaTJjX3Nt
YnVzX3hmZXIgX3NldF92ZXIoaTJjX3NtYnVzX3hmZXIpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVz
X3dyaXRlX3F1aWNrIHNtcF81N2FiZDQ1NgojZGVmaW5lIGkyY19zbWJ1c193cml0ZV9xdWljayBf
c2V0X3ZlcihpMmNfc21idXNfd3JpdGVfcXVpY2spCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3Jl
YWRfYnl0ZSBzbXBfYzg1YTJiMjEKI2RlZmluZSBpMmNfc21idXNfcmVhZF9ieXRlIF9zZXRfdmVy
KGkyY19zbWJ1c19yZWFkX2J5dGUpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3dyaXRlX2J5dGUg
c21wXzQ0OGJmMjUxCiNkZWZpbmUgaTJjX3NtYnVzX3dyaXRlX2J5dGUgX3NldF92ZXIoaTJjX3Nt
YnVzX3dyaXRlX2J5dGUpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3JlYWRfYnl0ZV9kYXRhIHNt
cF9kNGRlMzMyMwojZGVmaW5lIGkyY19zbWJ1c19yZWFkX2J5dGVfZGF0YSBfc2V0X3ZlcihpMmNf
c21idXNfcmVhZF9ieXRlX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3dyaXRlX2J5dGVf
ZGF0YSBzbXBfOGE2YjhmYjcKI2RlZmluZSBpMmNfc21idXNfd3JpdGVfYnl0ZV9kYXRhIF9zZXRf
dmVyKGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX3NtYnVzX3Jl
YWRfd29yZF9kYXRhIHNtcF9hZmJhZGMwNgojZGVmaW5lIGkyY19zbWJ1c19yZWFkX3dvcmRfZGF0
YSBfc2V0X3ZlcihpMmNfc21idXNfcmVhZF93b3JkX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX3Nt
YnVzX3dyaXRlX3dvcmRfZGF0YSBzbXBfMGI5NzRiN2YKI2RlZmluZSBpMmNfc21idXNfd3JpdGVf
d29yZF9kYXRhIF9zZXRfdmVyKGkyY19zbWJ1c193cml0ZV93b3JkX2RhdGEpCiNkZWZpbmUgX192
ZXJfaTJjX3NtYnVzX3Byb2Nlc3NfY2FsbCBzbXBfYzMyZGU0MzEKI2RlZmluZSBpMmNfc21idXNf
cHJvY2Vzc19jYWxsIF9zZXRfdmVyKGkyY19zbWJ1c19wcm9jZXNzX2NhbGwpCiNkZWZpbmUgX192
ZXJfaTJjX3NtYnVzX3JlYWRfYmxvY2tfZGF0YSBzbXBfYWZmMTJiMzcKI2RlZmluZSBpMmNfc21i
dXNfcmVhZF9ibG9ja19kYXRhIF9zZXRfdmVyKGkyY19zbWJ1c19yZWFkX2Jsb2NrX2RhdGEpCiNk
ZWZpbmUgX192ZXJfaTJjX3NtYnVzX3dyaXRlX2Jsb2NrX2RhdGEgc21wXzA4OWE1MTdhCiNkZWZp
bmUgaTJjX3NtYnVzX3dyaXRlX2Jsb2NrX2RhdGEgX3NldF92ZXIoaTJjX3NtYnVzX3dyaXRlX2Js
b2NrX2RhdGEpCiNkZWZpbmUgX192ZXJfaTJjX2dldF9mdW5jdGlvbmFsaXR5IHNtcF9mMTM1Yzdm
MQojZGVmaW5lIGkyY19nZXRfZnVuY3Rpb25hbGl0eSBfc2V0X3ZlcihpMmNfZ2V0X2Z1bmN0aW9u
YWxpdHkpCiNkZWZpbmUgX192ZXJfaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkgc21wX2Q1YWE4MjUz
CiNkZWZpbmUgaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkgX3NldF92ZXIoaTJjX2NoZWNrX2Z1bmN0
aW9uYWxpdHkpCiMgOTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVy
c2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxl
cy9pMmMtb2xkLnZlciIgMQojIDk0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L21vZHVsZXMvaTJvX2Jsb2NrLnZlciIgMQojIDk1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHVsZXMvaTJvX2NvbmZpZy52ZXIiIDEKIyA5NiAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2kyb19jb3JlLnZlciIgMQojZGVmaW5lIF9fdmVy
X2kyb19jb250cm9sbGVyX2NoYWluIHNtcF9mYjY1NmUzZAojZGVmaW5lIGkyb19jb250cm9sbGVy
X2NoYWluIF9zZXRfdmVyKGkyb19jb250cm9sbGVyX2NoYWluKQojZGVmaW5lIF9fdmVyX2kyb19u
dW1fY29udHJvbGxlcnMgc21wX2ZhZDEzZDIyCiNkZWZpbmUgaTJvX251bV9jb250cm9sbGVycyBf
c2V0X3ZlcihpMm9fbnVtX2NvbnRyb2xsZXJzKQojZGVmaW5lIF9fdmVyX2kyb19maW5kX2NvbnRy
b2xsZXIgc21wXzUyZjEyM2IxCiNkZWZpbmUgaTJvX2ZpbmRfY29udHJvbGxlciBfc2V0X3Zlcihp
Mm9fZmluZF9jb250cm9sbGVyKQojZGVmaW5lIF9fdmVyX2kyb191bmxvY2tfY29udHJvbGxlciBz
bXBfMzNjMGYzNjEKI2RlZmluZSBpMm9fdW5sb2NrX2NvbnRyb2xsZXIgX3NldF92ZXIoaTJvX3Vu
bG9ja19jb250cm9sbGVyKQojZGVmaW5lIF9fdmVyX2kyb19zdGF0dXNfZ2V0IHNtcF9hNjJkZmE3
MQojZGVmaW5lIGkyb19zdGF0dXNfZ2V0IF9zZXRfdmVyKGkyb19zdGF0dXNfZ2V0KQojZGVmaW5l
IF9fdmVyX2kyb19pbnN0YWxsX2hhbmRsZXIgc21wXzQ5ZjA4NDU4CiNkZWZpbmUgaTJvX2luc3Rh
bGxfaGFuZGxlciBfc2V0X3ZlcihpMm9faW5zdGFsbF9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2ky
b19yZW1vdmVfaGFuZGxlciBzbXBfNzZmYTJjMjAKI2RlZmluZSBpMm9fcmVtb3ZlX2hhbmRsZXIg
X3NldF92ZXIoaTJvX3JlbW92ZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX2kyb19jbGFpbV9kZXZp
Y2Ugc21wXzRkZmI5MDdkCiNkZWZpbmUgaTJvX2NsYWltX2RldmljZSBfc2V0X3ZlcihpMm9fY2xh
aW1fZGV2aWNlKQojZGVmaW5lIF9fdmVyX2kyb19yZWxlYXNlX2RldmljZSBzbXBfYjdkOWY2MDkK
I2RlZmluZSBpMm9fcmVsZWFzZV9kZXZpY2UgX3NldF92ZXIoaTJvX3JlbGVhc2VfZGV2aWNlKQoj
ZGVmaW5lIF9fdmVyX2kyb19kZXZpY2Vfbm90aWZ5X29uIHNtcF82Y2IxZGQxZQojZGVmaW5lIGky
b19kZXZpY2Vfbm90aWZ5X29uIF9zZXRfdmVyKGkyb19kZXZpY2Vfbm90aWZ5X29uKQojZGVmaW5l
IF9fdmVyX2kyb19kZXZpY2Vfbm90aWZ5X29mZiBzbXBfZjY1OGQ1ODcKI2RlZmluZSBpMm9fZGV2
aWNlX25vdGlmeV9vZmYgX3NldF92ZXIoaTJvX2RldmljZV9ub3RpZnlfb2ZmKQojZGVmaW5lIF9f
dmVyX2kyb19wb3N0X3RoaXMgc21wX2UyZWI0YjYwCiNkZWZpbmUgaTJvX3Bvc3RfdGhpcyBfc2V0
X3ZlcihpMm9fcG9zdF90aGlzKQojZGVmaW5lIF9fdmVyX2kyb19wb3N0X3dhaXQgc21wX2FiMmFj
MmM1CiNkZWZpbmUgaTJvX3Bvc3Rfd2FpdCBfc2V0X3ZlcihpMm9fcG9zdF93YWl0KQojZGVmaW5l
IF9fdmVyX2kyb19wb3N0X3dhaXRfbWVtIHNtcF9iOGM4ZDNhNgojZGVmaW5lIGkyb19wb3N0X3dh
aXRfbWVtIF9zZXRfdmVyKGkyb19wb3N0X3dhaXRfbWVtKQojZGVmaW5lIF9fdmVyX2kyb19xdWVy
eV9zY2FsYXIgc21wXzM0ODQyMTMzCiNkZWZpbmUgaTJvX3F1ZXJ5X3NjYWxhciBfc2V0X3Zlcihp
Mm9fcXVlcnlfc2NhbGFyKQojZGVmaW5lIF9fdmVyX2kyb19zZXRfc2NhbGFyIHNtcF9iOWZhZWQ4
MAojZGVmaW5lIGkyb19zZXRfc2NhbGFyIF9zZXRfdmVyKGkyb19zZXRfc2NhbGFyKQojZGVmaW5l
IF9fdmVyX2kyb19xdWVyeV90YWJsZSBzbXBfZWNmYjlmYzQKI2RlZmluZSBpMm9fcXVlcnlfdGFi
bGUgX3NldF92ZXIoaTJvX3F1ZXJ5X3RhYmxlKQojZGVmaW5lIF9fdmVyX2kyb19jbGVhcl90YWJs
ZSBzbXBfOGFiZDEyYzcKI2RlZmluZSBpMm9fY2xlYXJfdGFibGUgX3NldF92ZXIoaTJvX2NsZWFy
X3RhYmxlKQojZGVmaW5lIF9fdmVyX2kyb19yb3dfYWRkX3RhYmxlIHNtcF9jYTJkNGU5OAojZGVm
aW5lIGkyb19yb3dfYWRkX3RhYmxlIF9zZXRfdmVyKGkyb19yb3dfYWRkX3RhYmxlKQojZGVmaW5l
IF9fdmVyX2kyb19pc3N1ZV9wYXJhbXMgc21wXzExYWQ5YzZkCiNkZWZpbmUgaTJvX2lzc3VlX3Bh
cmFtcyBfc2V0X3ZlcihpMm9faXNzdWVfcGFyYW1zKQojZGVmaW5lIF9fdmVyX2kyb19ldmVudF9y
ZWdpc3RlciBzbXBfZGViYzIyMzMKI2RlZmluZSBpMm9fZXZlbnRfcmVnaXN0ZXIgX3NldF92ZXIo
aTJvX2V2ZW50X3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2kyb19ldmVudF9hY2sgc21wXzE4OGJi
YjI4CiNkZWZpbmUgaTJvX2V2ZW50X2FjayBfc2V0X3ZlcihpMm9fZXZlbnRfYWNrKQojZGVmaW5l
IF9fdmVyX2kyb19yZXBvcnRfc3RhdHVzIHNtcF9lM2IyYzA3NwojZGVmaW5lIGkyb19yZXBvcnRf
c3RhdHVzIF9zZXRfdmVyKGkyb19yZXBvcnRfc3RhdHVzKQojZGVmaW5lIF9fdmVyX2kyb19kdW1w
X21lc3NhZ2Ugc21wX2VmOGZiYTI3CiNkZWZpbmUgaTJvX2R1bXBfbWVzc2FnZSBfc2V0X3Zlcihp
Mm9fZHVtcF9tZXNzYWdlKQojZGVmaW5lIF9fdmVyX2kyb19nZXRfY2xhc3NfbmFtZSBzbXBfZjBm
OWVkMzkKI2RlZmluZSBpMm9fZ2V0X2NsYXNzX25hbWUgX3NldF92ZXIoaTJvX2dldF9jbGFzc19u
YW1lKQojIDk3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaTJv
X2xhbi52ZXIiIDEKIyA5OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL2kyb19wY2kudmVyIiAxCiMgOTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvbW9kdWxlcy9pMm9fcHJvYy52ZXIiIDEKIyAxMDAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdWxlcy9pMm9fc2NzaS52ZXIiIDEKIyAxMDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pODEwX2Rydi52ZXIiIDEKIyAxMDIgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pYTY0X2tzeW1zLnZlciIgMQoj
ZGVmaW5lIF9fdmVyX21lbWNociBzbXBfYzc0MGM2NGEKI2RlZmluZSBtZW1jaHIgX3NldF92ZXIo
bWVtY2hyKQojZGVmaW5lIF9fdmVyX21lbWNtcCBzbXBfYzdlYzI4YjAKI2RlZmluZSBtZW1jbXAg
X3NldF92ZXIobWVtY21wKQojZGVmaW5lIF9fdmVyX21lbW1vdmUgc21wXzVkYmJlOThlCiNkZWZp
bmUgbWVtbW92ZSBfc2V0X3ZlcihtZW1tb3ZlKQojZGVmaW5lIF9fdmVyX21lbXNjYW4gc21wXzlj
MGVhM2NkCiNkZWZpbmUgbWVtc2NhbiBfc2V0X3ZlcihtZW1zY2FuKQojZGVmaW5lIF9fdmVyX3N0
cmNhdCBzbXBfMDYxNjUxYmUKI2RlZmluZSBzdHJjYXQgX3NldF92ZXIoc3RyY2F0KQojZGVmaW5l
IF9fdmVyX3N0cmNociBzbXBfMzQ5Y2JhODUKI2RlZmluZSBzdHJjaHIgX3NldF92ZXIoc3RyY2hy
KQojZGVmaW5lIF9fdmVyX3N0cmNtcCBzbXBfZTJkNTI1NWEKI2RlZmluZSBzdHJjbXAgX3NldF92
ZXIoc3RyY21wKQojZGVmaW5lIF9fdmVyX3N0cmNweSBzbXBfZTkxNGU0MWUKI2RlZmluZSBzdHJj
cHkgX3NldF92ZXIoc3RyY3B5KQojZGVmaW5lIF9fdmVyX3N0cmxlbiBzbXBfZGNiNTY3MWQKI2Rl
ZmluZSBzdHJsZW4gX3NldF92ZXIoc3RybGVuKQojZGVmaW5lIF9fdmVyX3N0cm5jYXQgc21wXzIz
NDUwOWYzCiNkZWZpbmUgc3RybmNhdCBfc2V0X3ZlcihzdHJuY2F0KQojZGVmaW5lIF9fdmVyX3N0
cm5jbXAgc21wXzg1YWJjODVmCiNkZWZpbmUgc3RybmNtcCBfc2V0X3ZlcihzdHJuY21wKQojZGVm
aW5lIF9fdmVyX3N0cm5jcHkgc21wXzdlYzliZmJjCiNkZWZpbmUgc3RybmNweSBfc2V0X3Zlcihz
dHJuY3B5KQojZGVmaW5lIF9fdmVyX3N0cm5sZW4gc21wX2NjMDdhZjc1CiNkZWZpbmUgc3Rybmxl
biBfc2V0X3ZlcihzdHJubGVuKQojZGVmaW5lIF9fdmVyX3N0cnJjaHIgc21wXzlmOTg0NTEzCiNk
ZWZpbmUgc3RycmNociBfc2V0X3ZlcihzdHJyY2hyKQojZGVmaW5lIF9fdmVyX3N0cnN0ciBzbXBf
MWU2ZDI2YTgKI2RlZmluZSBzdHJzdHIgX3NldF92ZXIoc3Ryc3RyKQojZGVmaW5lIF9fdmVyX3N0
cnRvayBzbXBfZWU5YzFiZDQKI2RlZmluZSBzdHJ0b2sgX3NldF92ZXIoc3RydG9rKQojZGVmaW5l
IF9fdmVyX2lzYV9pcnFfdG9fdmVjdG9yX21hcCBzbXBfM2FlZDc1MjcKI2RlZmluZSBpc2FfaXJx
X3RvX3ZlY3Rvcl9tYXAgX3NldF92ZXIoaXNhX2lycV90b192ZWN0b3JfbWFwKQojZGVmaW5lIF9f
dmVyX2VuYWJsZV9pcnEgc21wX2ZjZWMwOTg3CiNkZWZpbmUgZW5hYmxlX2lycSBfc2V0X3Zlcihl
bmFibGVfaXJxKQojZGVmaW5lIF9fdmVyX2Rpc2FibGVfaXJxIHNtcF8zY2U0Y2E2ZgojZGVmaW5l
IGRpc2FibGVfaXJxIF9zZXRfdmVyKGRpc2FibGVfaXJxKQojZGVmaW5lIF9fdmVyX2Rpc2FibGVf
aXJxX25vc3luYyBzbXBfMjdiYmYyMjEKI2RlZmluZSBkaXNhYmxlX2lycV9ub3N5bmMgX3NldF92
ZXIoZGlzYWJsZV9pcnFfbm9zeW5jKQojZGVmaW5lIF9fdmVyX3Byb2JlX2lycV9tYXNrIHNtcF8z
NjBiMWFmZQojZGVmaW5lIHByb2JlX2lycV9tYXNrIF9zZXRfdmVyKHByb2JlX2lycV9tYXNrKQoj
ZGVmaW5lIF9fdmVyX2NzdW1fcGFydGlhbF9jb3B5X25vY2hlY2sgc21wXzMwYWQzN2Y4CiNkZWZp
bmUgY3N1bV9wYXJ0aWFsX2NvcHlfbm9jaGVjayBfc2V0X3Zlcihjc3VtX3BhcnRpYWxfY29weV9u
b2NoZWNrKQojZGVmaW5lIF9fdmVyX2NzdW1fdGNwdWRwX21hZ2ljIHNtcF80MGQ3Zjc2NgojZGVm
aW5lIGNzdW1fdGNwdWRwX21hZ2ljIF9zZXRfdmVyKGNzdW1fdGNwdWRwX21hZ2ljKQojZGVmaW5l
IF9fdmVyX2lwX2NvbXB1dGVfY3N1bSBzbXBfZTVlMjk4ZWEKI2RlZmluZSBpcF9jb21wdXRlX2Nz
dW0gX3NldF92ZXIoaXBfY29tcHV0ZV9jc3VtKQojZGVmaW5lIF9fdmVyX2lwX2Zhc3RfY3N1bSBz
bXBfZTQ2MjdkMTYKI2RlZmluZSBpcF9mYXN0X2NzdW0gX3NldF92ZXIoaXBfZmFzdF9jc3VtKQoj
ZGVmaW5lIF9fdmVyX19faWE2NF9tZW1jcHlfZnJvbWlvIHNtcF9hYzRmNWEzYwojZGVmaW5lIF9f
aWE2NF9tZW1jcHlfZnJvbWlvIF9zZXRfdmVyKF9faWE2NF9tZW1jcHlfZnJvbWlvKQojZGVmaW5l
IF9fdmVyX19faWE2NF9tZW1jcHlfdG9pbyBzbXBfNjRlMDgwZGMKI2RlZmluZSBfX2lhNjRfbWVt
Y3B5X3RvaW8gX3NldF92ZXIoX19pYTY0X21lbWNweV90b2lvKQojZGVmaW5lIF9fdmVyX19faWE2
NF9tZW1zZXRfY19pbyBzbXBfYmZmNzBjODgKI2RlZmluZSBfX2lhNjRfbWVtc2V0X2NfaW8gX3Nl
dF92ZXIoX19pYTY0X21lbXNldF9jX2lvKQojZGVmaW5lIF9fdmVyX2NsZWFyX3BhZ2Ugc21wXzNk
OWVlOWYwCiNkZWZpbmUgY2xlYXJfcGFnZSBfc2V0X3ZlcihjbGVhcl9wYWdlKQojZGVmaW5lIF9f
dmVyX19jcHVfZGF0YSBzbXBfZDJmZjUwZjUKI2RlZmluZSBfY3B1X2RhdGEgX3NldF92ZXIoX2Nw
dV9kYXRhKQojZGVmaW5lIF9fdmVyX2tlcm5lbF90aHJlYWQgc21wXzdlOWViYjA1CiNkZWZpbmUg
a2VybmVsX3RocmVhZCBfc2V0X3ZlcihrZXJuZWxfdGhyZWFkKQojZGVmaW5lIF9fdmVyX3NtcF9m
bHVzaF90bGJfYWxsIHNtcF8wMGQ0ZTdkZQojZGVmaW5lIHNtcF9mbHVzaF90bGJfYWxsIF9zZXRf
dmVyKHNtcF9mbHVzaF90bGJfYWxsKQojZGVmaW5lIF9fdmVyX3N5bmNocm9uaXplX2lycSBzbXBf
MTQzYmIyMTcKI2RlZmluZSBzeW5jaHJvbml6ZV9pcnEgX3NldF92ZXIoc3luY2hyb25pemVfaXJx
KQojZGVmaW5lIF9fdmVyX3NtcF9jYWxsX2Z1bmN0aW9uIHNtcF8wMDE0YmZkMQojZGVmaW5lIHNt
cF9jYWxsX2Z1bmN0aW9uIF9zZXRfdmVyKHNtcF9jYWxsX2Z1bmN0aW9uKQojZGVmaW5lIF9fdmVy
X3NtcF9jYWxsX2Z1bmN0aW9uX3NpbmdsZSBzbXBfYWY3ZTY4MDEKI2RlZmluZSBzbXBfY2FsbF9m
dW5jdGlvbl9zaW5nbGUgX3NldF92ZXIoc21wX2NhbGxfZnVuY3Rpb25fc2luZ2xlKQojZGVmaW5l
IF9fdmVyX2NwdV9vbmxpbmVfbWFwIHNtcF81NzFiNmE4OQojZGVmaW5lIGNwdV9vbmxpbmVfbWFw
IF9zZXRfdmVyKGNwdV9vbmxpbmVfbWFwKQojZGVmaW5lIF9fdmVyX2lhNjRfY3B1X3RvX3NhcGlj
aWQgc21wX2U1MmQ3NTVmCiNkZWZpbmUgaWE2NF9jcHVfdG9fc2FwaWNpZCBfc2V0X3ZlcihpYTY0
X2NwdV90b19zYXBpY2lkKQojZGVmaW5lIF9fdmVyX3NtcF9udW1fY3B1cyBzbXBfM2I4NjMzNGQK
I2RlZmluZSBzbXBfbnVtX2NwdXMgX3NldF92ZXIoc21wX251bV9jcHVzKQojZGVmaW5lIF9fdmVy
X2tlcm5lbF9mbGFnIHNtcF9hOTlkZDgwMAojZGVmaW5lIGtlcm5lbF9mbGFnIF9zZXRfdmVyKGtl
cm5lbF9mbGFnKQojZGVmaW5lIF9fdmVyX19fZ2xvYmFsX3N0aSBzbXBfZGE0NDU2ZGQKI2RlZmlu
ZSBfX2dsb2JhbF9zdGkgX3NldF92ZXIoX19nbG9iYWxfc3RpKQojZGVmaW5lIF9fdmVyX19fZ2xv
YmFsX2NsaSBzbXBfNjQ1NzZiMDUKI2RlZmluZSBfX2dsb2JhbF9jbGkgX3NldF92ZXIoX19nbG9i
YWxfY2xpKQojZGVmaW5lIF9fdmVyX19fZ2xvYmFsX3NhdmVfZmxhZ3Mgc21wXzVkOTAyZTk2CiNk
ZWZpbmUgX19nbG9iYWxfc2F2ZV9mbGFncyBfc2V0X3ZlcihfX2dsb2JhbF9zYXZlX2ZsYWdzKQoj
ZGVmaW5lIF9fdmVyX19fZ2xvYmFsX3Jlc3RvcmVfZmxhZ3Mgc21wXzU0ZGQxZGNiCiNkZWZpbmUg
X19nbG9iYWxfcmVzdG9yZV9mbGFncyBfc2V0X3ZlcihfX2dsb2JhbF9yZXN0b3JlX2ZsYWdzKQoj
ZGVmaW5lIF9fdmVyX19fY29weV91c2VyIHNtcF9lNTI2ZjEzNgojZGVmaW5lIF9fY29weV91c2Vy
IF9zZXRfdmVyKF9fY29weV91c2VyKQojZGVmaW5lIF9fdmVyX19fZG9fY2xlYXJfdXNlciBzbXBf
M2Y2YmM2MzMKI2RlZmluZSBfX2RvX2NsZWFyX3VzZXIgX3NldF92ZXIoX19kb19jbGVhcl91c2Vy
KQojZGVmaW5lIF9fdmVyX19fc3RybGVuX3VzZXIgc21wX2YxMzk0YTJhCiNkZWZpbmUgX19zdHJs
ZW5fdXNlciBfc2V0X3ZlcihfX3N0cmxlbl91c2VyKQojZGVmaW5lIF9fdmVyX19fc3RybmNweV9m
cm9tX3VzZXIgc21wX2MwMDNjNjM3CiNkZWZpbmUgX19zdHJuY3B5X2Zyb21fdXNlciBfc2V0X3Zl
cihfX3N0cm5jcHlfZnJvbV91c2VyKQojZGVmaW5lIF9fdmVyX19fc3Rybmxlbl91c2VyIHNtcF8w
MGVlZjQ5ZQojZGVmaW5lIF9fc3Rybmxlbl91c2VyIF9zZXRfdmVyKF9fc3Rybmxlbl91c2VyKQoj
ZGVmaW5lIF9fdmVyX19faWE2NF9zeXNjYWxsIHNtcF9lYmIzOTU2ZQojZGVmaW5lIF9faWE2NF9z
eXNjYWxsIF9zZXRfdmVyKF9faWE2NF9zeXNjYWxsKQojZGVmaW5lIF9fdmVyX2lhNjRfaW9iYXNl
IHNtcF8wOGU2YjAwNwojZGVmaW5lIGlhNjRfaW9iYXNlIF9zZXRfdmVyKGlhNjRfaW9iYXNlKQoj
ZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfcGh5c19zdGFja2VkIHNtcF9mYmJjYTdkYwojZGVm
aW5lIGlhNjRfcGFsX2NhbGxfcGh5c19zdGFja2VkIF9zZXRfdmVyKGlhNjRfcGFsX2NhbGxfcGh5
c19zdGFja2VkKQojZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfcGh5c19zdGF0aWMgc21wXzBl
NDAyMzcwCiNkZWZpbmUgaWE2NF9wYWxfY2FsbF9waHlzX3N0YXRpYyBfc2V0X3ZlcihpYTY0X3Bh
bF9jYWxsX3BoeXNfc3RhdGljKQojZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfc3RhY2tlZCBz
bXBfYWZjMTNlNjQKI2RlZmluZSBpYTY0X3BhbF9jYWxsX3N0YWNrZWQgX3NldF92ZXIoaWE2NF9w
YWxfY2FsbF9zdGFja2VkKQojZGVmaW5lIF9fdmVyX2lhNjRfcGFsX2NhbGxfc3RhdGljIHNtcF9j
YTQ4NGIyYwojZGVmaW5lIGlhNjRfcGFsX2NhbGxfc3RhdGljIF9zZXRfdmVyKGlhNjRfcGFsX2Nh
bGxfc3RhdGljKQojZGVmaW5lIF9fdmVyX2VmaSBzbXBfMjNjYjAyZDkKI2RlZmluZSBlZmkgX3Nl
dF92ZXIoZWZpKQojZGVmaW5lIF9fdmVyX2VmaV9kaXIgc21wXzBlNDg2NDFkCiNkZWZpbmUgZWZp
X2RpciBfc2V0X3ZlcihlZmlfZGlyKQojIDEwMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGVzL2libS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9nZW5oZF9kYXNkX2ZpbGxn
ZW8gc21wXzc5NzE4NDFiCiNkZWZpbmUgZ2VuaGRfZGFzZF9maWxsZ2VvIF9zZXRfdmVyKGdlbmhk
X2Rhc2RfZmlsbGdlbykKI2RlZmluZSBfX3Zlcl9nZW5oZF9kYXNkX25hbWUgc21wXzg0NWI3Mzk0
CiNkZWZpbmUgZ2VuaGRfZGFzZF9uYW1lIF9zZXRfdmVyKGdlbmhkX2Rhc2RfbmFtZSkKIyAxMDQg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pZGUtZmVhdHVyZXMu
dmVyIiAxCiNkZWZpbmUgX192ZXJfaWRlX2F1dG9fcmVkdWNlX3hmZXIgc21wXzA3Y2E1MjNlCiNk
ZWZpbmUgaWRlX2F1dG9fcmVkdWNlX3hmZXIgX3NldF92ZXIoaWRlX2F1dG9fcmVkdWNlX3hmZXIp
CiNkZWZpbmUgX192ZXJfaWRlX2RyaXZlaWRfdXBkYXRlIHNtcF85NTc0NTU1NwojZGVmaW5lIGlk
ZV9kcml2ZWlkX3VwZGF0ZSBfc2V0X3ZlcihpZGVfZHJpdmVpZF91cGRhdGUpCiNkZWZpbmUgX192
ZXJfaWRlX2F0YTY2X2NoZWNrIHNtcF9kMWFhZGVkOAojZGVmaW5lIGlkZV9hdGE2Nl9jaGVjayBf
c2V0X3ZlcihpZGVfYXRhNjZfY2hlY2spCiNkZWZpbmUgX192ZXJfc2V0X3RyYW5zZmVyIHNtcF83
MjEwMzE2NQojZGVmaW5lIHNldF90cmFuc2ZlciBfc2V0X3ZlcihzZXRfdHJhbnNmZXIpCiNkZWZp
bmUgX192ZXJfZWlnaHR5X25pbnR5X3RocmVlIHNtcF9lYzhhN2EzOAojZGVmaW5lIGVpZ2h0eV9u
aW50eV90aHJlZSBfc2V0X3ZlcihlaWdodHlfbmludHlfdGhyZWUpCiNkZWZpbmUgX192ZXJfaWRl
X2NvbmZpZ19kcml2ZV9zcGVlZCBzbXBfNzA1ZTVjYmUKI2RlZmluZSBpZGVfY29uZmlnX2RyaXZl
X3NwZWVkIF9zZXRfdmVyKGlkZV9jb25maWdfZHJpdmVfc3BlZWQpCiMgMTA1ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaWRlLnZlciIgMQojZGVmaW5lIF9fdmVy
X2lkZV9od2lmcyBzbXBfM2EwODJlZDgKI2RlZmluZSBpZGVfaHdpZnMgX3NldF92ZXIoaWRlX2h3
aWZzKQojZGVmaW5lIF9fdmVyX2lkZV9yZWdpc3Rlcl9tb2R1bGUgc21wXzg1MjY3MDRmCiNkZWZp
bmUgaWRlX3JlZ2lzdGVyX21vZHVsZSBfc2V0X3ZlcihpZGVfcmVnaXN0ZXJfbW9kdWxlKQojZGVm
aW5lIF9fdmVyX2lkZV91bnJlZ2lzdGVyX21vZHVsZSBzbXBfYWQzODFiMTgKI2RlZmluZSBpZGVf
dW5yZWdpc3Rlcl9tb2R1bGUgX3NldF92ZXIoaWRlX3VucmVnaXN0ZXJfbW9kdWxlKQojZGVmaW5l
IF9fdmVyX2lkZV9zcGluX3dhaXRfaHdncm91cCBzbXBfN2EyN2Y1NjQKI2RlZmluZSBpZGVfc3Bp
bl93YWl0X2h3Z3JvdXAgX3NldF92ZXIoaWRlX3NwaW5fd2FpdF9od2dyb3VwKQojZGVmaW5lIF9f
dmVyX2lkZV9wcm9iZSBzbXBfMDg5N2ZhNjkKI2RlZmluZSBpZGVfcHJvYmUgX3NldF92ZXIoaWRl
X3Byb2JlKQojZGVmaW5lIF9fdmVyX2RyaXZlX2lzX2ZsYXNoY2FyZCBzbXBfOTdmMmNmZWMKI2Rl
ZmluZSBkcml2ZV9pc19mbGFzaGNhcmQgX3NldF92ZXIoZHJpdmVfaXNfZmxhc2hjYXJkKQojZGVm
aW5lIF9fdmVyX2lkZV90aW1lcl9leHBpcnkgc21wX2E3YWM5ZjViCiNkZWZpbmUgaWRlX3RpbWVy
X2V4cGlyeSBfc2V0X3ZlcihpZGVfdGltZXJfZXhwaXJ5KQojZGVmaW5lIF9fdmVyX2lkZV9pbnRy
IHNtcF83NzU1ZDA3ZgojZGVmaW5lIGlkZV9pbnRyIF9zZXRfdmVyKGlkZV9pbnRyKQojZGVmaW5l
IF9fdmVyX2lkZV9mb3BzIHNtcF8wMGZlYTQ0MQojZGVmaW5lIGlkZV9mb3BzIF9zZXRfdmVyKGlk
ZV9mb3BzKQojZGVmaW5lIF9fdmVyX2lkZV9nZXRfcXVldWUgc21wXzlkNDhhYTM0CiNkZWZpbmUg
aWRlX2dldF9xdWV1ZSBfc2V0X3ZlcihpZGVfZ2V0X3F1ZXVlKQojZGVmaW5lIF9fdmVyX2lkZV9h
ZGRfZ2VuZXJpY19zZXR0aW5ncyBzbXBfMmNjM2VkYjcKI2RlZmluZSBpZGVfYWRkX2dlbmVyaWNf
c2V0dGluZ3MgX3NldF92ZXIoaWRlX2FkZF9nZW5lcmljX3NldHRpbmdzKQojZGVmaW5lIF9fdmVy
X2lkZV9kZXZmc19oYW5kbGUgc21wX2ViNTNjMGEyCiNkZWZpbmUgaWRlX2RldmZzX2hhbmRsZSBf
c2V0X3ZlcihpZGVfZGV2ZnNfaGFuZGxlKQojZGVmaW5lIF9fdmVyX2RvX2lkZV9yZXF1ZXN0IHNt
cF84YTQzYTE4NwojZGVmaW5lIGRvX2lkZV9yZXF1ZXN0IF9zZXRfdmVyKGRvX2lkZV9yZXF1ZXN0
KQojZGVmaW5lIF9fdmVyX2lkZV9zY2FuX2RldmljZXMgc21wXzBlYzM5ZTg4CiNkZWZpbmUgaWRl
X3NjYW5fZGV2aWNlcyBfc2V0X3ZlcihpZGVfc2Nhbl9kZXZpY2VzKQojZGVmaW5lIF9fdmVyX2lk
ZV9yZWdpc3Rlcl9zdWJkcml2ZXIgc21wXzE5NmRmZTY0CiNkZWZpbmUgaWRlX3JlZ2lzdGVyX3N1
YmRyaXZlciBfc2V0X3ZlcihpZGVfcmVnaXN0ZXJfc3ViZHJpdmVyKQojZGVmaW5lIF9fdmVyX2lk
ZV91bnJlZ2lzdGVyX3N1YmRyaXZlciBzbXBfNzA4MTgxNzgKI2RlZmluZSBpZGVfdW5yZWdpc3Rl
cl9zdWJkcml2ZXIgX3NldF92ZXIoaWRlX3VucmVnaXN0ZXJfc3ViZHJpdmVyKQojZGVmaW5lIF9f
dmVyX2lkZV9yZXBsYWNlX3N1YmRyaXZlciBzbXBfOWU0YzJlNjIKI2RlZmluZSBpZGVfcmVwbGFj
ZV9zdWJkcml2ZXIgX3NldF92ZXIoaWRlX3JlcGxhY2Vfc3ViZHJpdmVyKQojZGVmaW5lIF9fdmVy
X2lkZV9pbnB1dF9kYXRhIHNtcF8zNmZmZmYzNQojZGVmaW5lIGlkZV9pbnB1dF9kYXRhIF9zZXRf
dmVyKGlkZV9pbnB1dF9kYXRhKQojZGVmaW5lIF9fdmVyX2lkZV9vdXRwdXRfZGF0YSBzbXBfZjRl
NTkxZTMKI2RlZmluZSBpZGVfb3V0cHV0X2RhdGEgX3NldF92ZXIoaWRlX291dHB1dF9kYXRhKQoj
ZGVmaW5lIF9fdmVyX2F0YXBpX2lucHV0X2J5dGVzIHNtcF8xMWQ0NmY5OQojZGVmaW5lIGF0YXBp
X2lucHV0X2J5dGVzIF9zZXRfdmVyKGF0YXBpX2lucHV0X2J5dGVzKQojZGVmaW5lIF9fdmVyX2F0
YXBpX291dHB1dF9ieXRlcyBzbXBfZjk2MDM0NjQKI2RlZmluZSBhdGFwaV9vdXRwdXRfYnl0ZXMg
X3NldF92ZXIoYXRhcGlfb3V0cHV0X2J5dGVzKQojZGVmaW5lIF9fdmVyX2lkZV9zZXRfaGFuZGxl
ciBzbXBfZDdhZDU4NzMKI2RlZmluZSBpZGVfc2V0X2hhbmRsZXIgX3NldF92ZXIoaWRlX3NldF9o
YW5kbGVyKQojZGVmaW5lIF9fdmVyX2lkZV9kdW1wX3N0YXR1cyBzbXBfZDZjN2M4NWUKI2RlZmlu
ZSBpZGVfZHVtcF9zdGF0dXMgX3NldF92ZXIoaWRlX2R1bXBfc3RhdHVzKQojZGVmaW5lIF9fdmVy
X2lkZV9lcnJvciBzbXBfMWEyZjBiZDgKI2RlZmluZSBpZGVfZXJyb3IgX3NldF92ZXIoaWRlX2Vy
cm9yKQojZGVmaW5lIF9fdmVyX2lkZV9maXhzdHJpbmcgc21wXzJlYWU0YTE5CiNkZWZpbmUgaWRl
X2ZpeHN0cmluZyBfc2V0X3ZlcihpZGVfZml4c3RyaW5nKQojZGVmaW5lIF9fdmVyX2lkZV93YWl0
X3N0YXQgc21wX2RkODNlOGJmCiNkZWZpbmUgaWRlX3dhaXRfc3RhdCBfc2V0X3ZlcihpZGVfd2Fp
dF9zdGF0KQojZGVmaW5lIF9fdmVyX2lkZV9kb19yZXNldCBzbXBfMjE2MmUxZWUKI2RlZmluZSBp
ZGVfZG9fcmVzZXQgX3NldF92ZXIoaWRlX2RvX3Jlc2V0KQojZGVmaW5lIF9fdmVyX2lkZV9pbml0
X2RyaXZlX2NtZCBzbXBfNGI3YTE4NzkKI2RlZmluZSBpZGVfaW5pdF9kcml2ZV9jbWQgX3NldF92
ZXIoaWRlX2luaXRfZHJpdmVfY21kKQojZGVmaW5lIF9fdmVyX2lkZV9kb19kcml2ZV9jbWQgc21w
Xzc5OTRjMjczCiNkZWZpbmUgaWRlX2RvX2RyaXZlX2NtZCBfc2V0X3ZlcihpZGVfZG9fZHJpdmVf
Y21kKQojZGVmaW5lIF9fdmVyX2lkZV9lbmRfZHJpdmVfY21kIHNtcF9hY2ZiMzc0ZAojZGVmaW5l
IGlkZV9lbmRfZHJpdmVfY21kIF9zZXRfdmVyKGlkZV9lbmRfZHJpdmVfY21kKQojZGVmaW5lIF9f
dmVyX2lkZV9lbmRfcmVxdWVzdCBzbXBfMmU1NmQzNjAKI2RlZmluZSBpZGVfZW5kX3JlcXVlc3Qg
X3NldF92ZXIoaWRlX2VuZF9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX2lkZV9yZXZhbGlkYXRlX2Rp
c2sgc21wXzBlNjA0NDQyCiNkZWZpbmUgaWRlX3JldmFsaWRhdGVfZGlzayBfc2V0X3ZlcihpZGVf
cmV2YWxpZGF0ZV9kaXNrKQojZGVmaW5lIF9fdmVyX2lkZV9jbWQgc21wXzc0MjM1ZDgxCiNkZWZp
bmUgaWRlX2NtZCBfc2V0X3ZlcihpZGVfY21kKQojZGVmaW5lIF9fdmVyX2lkZV93YWl0X2NtZCBz
bXBfNTFhNjc0ZTYKI2RlZmluZSBpZGVfd2FpdF9jbWQgX3NldF92ZXIoaWRlX3dhaXRfY21kKQoj
ZGVmaW5lIF9fdmVyX2lkZV93YWl0X2NtZF90YXNrIHNtcF8wZTNmYWFiOQojZGVmaW5lIGlkZV93
YWl0X2NtZF90YXNrIF9zZXRfdmVyKGlkZV93YWl0X2NtZF90YXNrKQojZGVmaW5lIF9fdmVyX2lk
ZV9kZWxheV81MG1zIHNtcF83ZjlhYjU1NAojZGVmaW5lIGlkZV9kZWxheV81MG1zIF9zZXRfdmVy
KGlkZV9kZWxheV81MG1zKQojZGVmaW5lIF9fdmVyX2lkZV9zdGFsbF9xdWV1ZSBzbXBfNmUwY2Ux
YWYKI2RlZmluZSBpZGVfc3RhbGxfcXVldWUgX3NldF92ZXIoaWRlX3N0YWxsX3F1ZXVlKQojZGVm
aW5lIF9fdmVyX2lkZV9hZGRfcHJvY19lbnRyaWVzIHNtcF81NTEwYjQ5YgojZGVmaW5lIGlkZV9h
ZGRfcHJvY19lbnRyaWVzIF9zZXRfdmVyKGlkZV9hZGRfcHJvY19lbnRyaWVzKQojZGVmaW5lIF9f
dmVyX2lkZV9yZW1vdmVfcHJvY19lbnRyaWVzIHNtcF9jYzQ5YmRiNQojZGVmaW5lIGlkZV9yZW1v
dmVfcHJvY19lbnRyaWVzIF9zZXRfdmVyKGlkZV9yZW1vdmVfcHJvY19lbnRyaWVzKQojZGVmaW5l
IF9fdmVyX3Byb2NfaWRlX3JlYWRfZ2VvbWV0cnkgc21wXzUwZmVkNmY3CiNkZWZpbmUgcHJvY19p
ZGVfcmVhZF9nZW9tZXRyeSBfc2V0X3Zlcihwcm9jX2lkZV9yZWFkX2dlb21ldHJ5KQojZGVmaW5l
IF9fdmVyX2NyZWF0ZV9wcm9jX2lkZV9pbnRlcmZhY2VzIHNtcF9hYjJjNjAwZQojZGVmaW5lIGNy
ZWF0ZV9wcm9jX2lkZV9pbnRlcmZhY2VzIF9zZXRfdmVyKGNyZWF0ZV9wcm9jX2lkZV9pbnRlcmZh
Y2VzKQojZGVmaW5lIF9fdmVyX2lkZV9hZGRfc2V0dGluZyBzbXBfYWFhOTVmMzkKI2RlZmluZSBp
ZGVfYWRkX3NldHRpbmcgX3NldF92ZXIoaWRlX2FkZF9zZXR0aW5nKQojZGVmaW5lIF9fdmVyX2lk
ZV9yZW1vdmVfc2V0dGluZyBzbXBfZTA0NGI4ZDMKI2RlZmluZSBpZGVfcmVtb3ZlX3NldHRpbmcg
X3NldF92ZXIoaWRlX3JlbW92ZV9zZXR0aW5nKQojZGVmaW5lIF9fdmVyX2lkZV9yZWdpc3Rlcl9o
dyBzbXBfNTBmYzY3YjMKI2RlZmluZSBpZGVfcmVnaXN0ZXJfaHcgX3NldF92ZXIoaWRlX3JlZ2lz
dGVyX2h3KQojZGVmaW5lIF9fdmVyX2lkZV9yZWdpc3RlciBzbXBfM2I1NTg2ZDgKI2RlZmluZSBp
ZGVfcmVnaXN0ZXIgX3NldF92ZXIoaWRlX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2lkZV91bnJl
Z2lzdGVyIHNtcF8wYzQ4NmI3MgojZGVmaW5lIGlkZV91bnJlZ2lzdGVyIF9zZXRfdmVyKGlkZV91
bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2lkZV9zZXR1cF9wb3J0cyBzbXBfOTQwMGRiNWIKI2Rl
ZmluZSBpZGVfc2V0dXBfcG9ydHMgX3NldF92ZXIoaWRlX3NldHVwX3BvcnRzKQojZGVmaW5lIF9f
dmVyX2h3aWZfdW5yZWdpc3RlciBzbXBfYzQxYmM1OTQKI2RlZmluZSBod2lmX3VucmVnaXN0ZXIg
X3NldF92ZXIoaHdpZl91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2dldF9pbmZvX3B0ciBzbXBf
MGRmYzM5NzYKI2RlZmluZSBnZXRfaW5mb19wdHIgX3NldF92ZXIoZ2V0X2luZm9fcHRyKQojZGVm
aW5lIF9fdmVyX2N1cnJlbnRfY2FwYWNpdHkgc21wXzU5NGFhMWZiCiNkZWZpbmUgY3VycmVudF9j
YXBhY2l0eSBfc2V0X3ZlcihjdXJyZW50X2NhcGFjaXR5KQojZGVmaW5lIF9fdmVyX3N5c3RlbV9i
dXNfY2xvY2sgc21wX2VlNWExMWViCiNkZWZpbmUgc3lzdGVtX2J1c19jbG9jayBfc2V0X3Zlcihz
eXN0ZW1fYnVzX2Nsb2NrKQojIDEwNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R1bGVzL2lkdDc3MTA1LnZlciIgMQojZGVmaW5lIF9fdmVyX2lkdDc3MTA1X2luaXQgc21w
XzljOGVjYWMzCiNkZWZpbmUgaWR0NzcxMDVfaW5pdCBfc2V0X3ZlcihpZHQ3NzEwNV9pbml0KQoj
ZGVmaW5lIF9fdmVyX2lkdDc3MTA1X3N0b3Agc21wXzMxZjgwYWI4CiNkZWZpbmUgaWR0NzcxMDVf
c3RvcCBfc2V0X3ZlcihpZHQ3NzEwNV9zdG9wKQojIDEwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R1bGVzL2llZWUxMzk0X3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJf
aHBzYl9yZWdpc3Rlcl9sb3dsZXZlbCBzbXBfMDY0ODExZjAKI2RlZmluZSBocHNiX3JlZ2lzdGVy
X2xvd2xldmVsIF9zZXRfdmVyKGhwc2JfcmVnaXN0ZXJfbG93bGV2ZWwpCiNkZWZpbmUgX192ZXJf
aHBzYl91bnJlZ2lzdGVyX2xvd2xldmVsIHNtcF84YzcwMTI0YQojZGVmaW5lIGhwc2JfdW5yZWdp
c3Rlcl9sb3dsZXZlbCBfc2V0X3ZlcihocHNiX3VucmVnaXN0ZXJfbG93bGV2ZWwpCiNkZWZpbmUg
X192ZXJfaHBzYl9nZXRfaG9zdCBzbXBfMmRhMjM3MTkKI2RlZmluZSBocHNiX2dldF9ob3N0IF9z
ZXRfdmVyKGhwc2JfZ2V0X2hvc3QpCiNkZWZpbmUgX192ZXJfaHBzYl9pbmNfaG9zdF91c2FnZSBz
bXBfYTMxMzQ0NjIKI2RlZmluZSBocHNiX2luY19ob3N0X3VzYWdlIF9zZXRfdmVyKGhwc2JfaW5j
X2hvc3RfdXNhZ2UpCiNkZWZpbmUgX192ZXJfaHBzYl9kZWNfaG9zdF91c2FnZSBzbXBfMTE5YTFm
OWIKI2RlZmluZSBocHNiX2RlY19ob3N0X3VzYWdlIF9zZXRfdmVyKGhwc2JfZGVjX2hvc3RfdXNh
Z2UpCiNkZWZpbmUgX192ZXJfYWxsb2NfaHBzYl9wYWNrZXQgc21wXzQ3YzU2ZmM2CiNkZWZpbmUg
YWxsb2NfaHBzYl9wYWNrZXQgX3NldF92ZXIoYWxsb2NfaHBzYl9wYWNrZXQpCiNkZWZpbmUgX192
ZXJfZnJlZV9ocHNiX3BhY2tldCBzbXBfMjAxODIxMzEKI2RlZmluZSBmcmVlX2hwc2JfcGFja2V0
IF9zZXRfdmVyKGZyZWVfaHBzYl9wYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9zZW5kX3BhY2tl
dCBzbXBfYjVhNjgxNDQKI2RlZmluZSBocHNiX3NlbmRfcGFja2V0IF9zZXRfdmVyKGhwc2Jfc2Vu
ZF9wYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9yZXNldF9idXMgc21wXzIyNWE0MTAxCiNkZWZp
bmUgaHBzYl9yZXNldF9idXMgX3NldF92ZXIoaHBzYl9yZXNldF9idXMpCiNkZWZpbmUgX192ZXJf
aHBzYl9idXNfcmVzZXQgc21wX2RjNTk2YjBiCiNkZWZpbmUgaHBzYl9idXNfcmVzZXQgX3NldF92
ZXIoaHBzYl9idXNfcmVzZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9zZWxmaWRfcmVjZWl2ZWQgc21w
XzBkYjg2OGI3CiNkZWZpbmUgaHBzYl9zZWxmaWRfcmVjZWl2ZWQgX3NldF92ZXIoaHBzYl9zZWxm
aWRfcmVjZWl2ZWQpCiNkZWZpbmUgX192ZXJfaHBzYl9zZWxmaWRfY29tcGxldGUgc21wXzY0OTlj
NTkzCiNkZWZpbmUgaHBzYl9zZWxmaWRfY29tcGxldGUgX3NldF92ZXIoaHBzYl9zZWxmaWRfY29t
cGxldGUpCiNkZWZpbmUgX192ZXJfaHBzYl9wYWNrZXRfc2VudCBzbXBfNGZmNWMzODYKI2RlZmlu
ZSBocHNiX3BhY2tldF9zZW50IF9zZXRfdmVyKGhwc2JfcGFja2V0X3NlbnQpCiNkZWZpbmUgX192
ZXJfaHBzYl9wYWNrZXRfcmVjZWl2ZWQgc21wX2U2NmFlYzcyCiNkZWZpbmUgaHBzYl9wYWNrZXRf
cmVjZWl2ZWQgX3NldF92ZXIoaHBzYl9wYWNrZXRfcmVjZWl2ZWQpCiNkZWZpbmUgX192ZXJfaHBz
Yl9nZW5lcmF0aW9uIHNtcF81MGVkMmQ5YwojZGVmaW5lIGhwc2JfZ2VuZXJhdGlvbiBfc2V0X3Zl
cihocHNiX2dlbmVyYXRpb24pCiNkZWZpbmUgX192ZXJfZ2V0X3RsYWJlbCBzbXBfMmJlM2I0YTYK
I2RlZmluZSBnZXRfdGxhYmVsIF9zZXRfdmVyKGdldF90bGFiZWwpCiNkZWZpbmUgX192ZXJfZnJl
ZV90bGFiZWwgc21wXzg4NjNiZGJhCiNkZWZpbmUgZnJlZV90bGFiZWwgX3NldF92ZXIoZnJlZV90
bGFiZWwpCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkcXVhZCBzbXBfMzU4Njc3NDkKI2Rl
ZmluZSBmaWxsX2FzeW5jX3JlYWRxdWFkIF9zZXRfdmVyKGZpbGxfYXN5bmNfcmVhZHF1YWQpCiNk
ZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkcXVhZF9yZXNwIHNtcF85ODYzZDQ0MAojZGVmaW5l
IGZpbGxfYXN5bmNfcmVhZHF1YWRfcmVzcCBfc2V0X3ZlcihmaWxsX2FzeW5jX3JlYWRxdWFkX3Jl
c3ApCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkYmxvY2sgc21wXzQxNWEzYzRiCiNkZWZp
bmUgZmlsbF9hc3luY19yZWFkYmxvY2sgX3NldF92ZXIoZmlsbF9hc3luY19yZWFkYmxvY2spCiNk
ZWZpbmUgX192ZXJfZmlsbF9hc3luY19yZWFkYmxvY2tfcmVzcCBzbXBfNmIzMDlhNTkKI2RlZmlu
ZSBmaWxsX2FzeW5jX3JlYWRibG9ja19yZXNwIF9zZXRfdmVyKGZpbGxfYXN5bmNfcmVhZGJsb2Nr
X3Jlc3ApCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY193cml0ZXF1YWQgc21wX2IyNTU3MmUyCiNk
ZWZpbmUgZmlsbF9hc3luY193cml0ZXF1YWQgX3NldF92ZXIoZmlsbF9hc3luY193cml0ZXF1YWQp
CiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY193cml0ZWJsb2NrIHNtcF82OWQyNzBjYwojZGVmaW5l
IGZpbGxfYXN5bmNfd3JpdGVibG9jayBfc2V0X3ZlcihmaWxsX2FzeW5jX3dyaXRlYmxvY2spCiNk
ZWZpbmUgX192ZXJfZmlsbF9hc3luY193cml0ZV9yZXNwIHNtcF9hNWI0MzMzMwojZGVmaW5lIGZp
bGxfYXN5bmNfd3JpdGVfcmVzcCBfc2V0X3ZlcihmaWxsX2FzeW5jX3dyaXRlX3Jlc3ApCiNkZWZp
bmUgX192ZXJfZmlsbF9hc3luY19sb2NrIHNtcF9lN2U1M2ZmYgojZGVmaW5lIGZpbGxfYXN5bmNf
bG9jayBfc2V0X3ZlcihmaWxsX2FzeW5jX2xvY2spCiNkZWZpbmUgX192ZXJfZmlsbF9hc3luY19s
b2NrX3Jlc3Agc21wX2VkNmY4MzM0CiNkZWZpbmUgZmlsbF9hc3luY19sb2NrX3Jlc3AgX3NldF92
ZXIoZmlsbF9hc3luY19sb2NrX3Jlc3ApCiNkZWZpbmUgX192ZXJfZmlsbF9pc29fcGFja2V0IHNt
cF9hNDdhOTBmNQojZGVmaW5lIGZpbGxfaXNvX3BhY2tldCBfc2V0X3ZlcihmaWxsX2lzb19wYWNr
ZXQpCiNkZWZpbmUgX192ZXJfZmlsbF9waHlfcGFja2V0IHNtcF81NjkwYmNkNwojZGVmaW5lIGZp
bGxfcGh5X3BhY2tldCBfc2V0X3ZlcihmaWxsX3BoeV9wYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBz
Yl9tYWtlX3JlYWRxcGFja2V0IHNtcF9jNzFkOWU5NAojZGVmaW5lIGhwc2JfbWFrZV9yZWFkcXBh
Y2tldCBfc2V0X3ZlcihocHNiX21ha2VfcmVhZHFwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9t
YWtlX3JlYWRicGFja2V0IHNtcF9kMWZkODE3ZAojZGVmaW5lIGhwc2JfbWFrZV9yZWFkYnBhY2tl
dCBfc2V0X3ZlcihocHNiX21ha2VfcmVhZGJwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtl
X3dyaXRlcXBhY2tldCBzbXBfNTI0ZTJhYzIKI2RlZmluZSBocHNiX21ha2Vfd3JpdGVxcGFja2V0
IF9zZXRfdmVyKGhwc2JfbWFrZV93cml0ZXFwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtl
X3dyaXRlYnBhY2tldCBzbXBfYWM5NDI4ZDcKI2RlZmluZSBocHNiX21ha2Vfd3JpdGVicGFja2V0
IF9zZXRfdmVyKGhwc2JfbWFrZV93cml0ZWJwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtl
X2xvY2twYWNrZXQgc21wXzZiYzM1MDYzCiNkZWZpbmUgaHBzYl9tYWtlX2xvY2twYWNrZXQgX3Nl
dF92ZXIoaHBzYl9tYWtlX2xvY2twYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtlX3BoeXBh
Y2tldCBzbXBfMDhiMDZkMjYKI2RlZmluZSBocHNiX21ha2VfcGh5cGFja2V0IF9zZXRfdmVyKGhw
c2JfbWFrZV9waHlwYWNrZXQpCiNkZWZpbmUgX192ZXJfaHBzYl9wYWNrZXRfc3VjY2VzcyBzbXBf
YWJjNzVjYzAKI2RlZmluZSBocHNiX3BhY2tldF9zdWNjZXNzIF9zZXRfdmVyKGhwc2JfcGFja2V0
X3N1Y2Nlc3MpCiNkZWZpbmUgX192ZXJfaHBzYl9tYWtlX3BhY2tldCBzbXBfMzUzY2FiYWYKI2Rl
ZmluZSBocHNiX21ha2VfcGFja2V0IF9zZXRfdmVyKGhwc2JfbWFrZV9wYWNrZXQpCiNkZWZpbmUg
X192ZXJfaHBzYl9yZWFkIHNtcF8wNWE4NTY3MAojZGVmaW5lIGhwc2JfcmVhZCBfc2V0X3Zlciho
cHNiX3JlYWQpCiNkZWZpbmUgX192ZXJfaHBzYl93cml0ZSBzbXBfOTNhYjQxMTAKI2RlZmluZSBo
cHNiX3dyaXRlIF9zZXRfdmVyKGhwc2Jfd3JpdGUpCiNkZWZpbmUgX192ZXJfaHBzYl9sb2NrIHNt
cF80ZTQ2Y2FlMgojZGVmaW5lIGhwc2JfbG9jayBfc2V0X3ZlcihocHNiX2xvY2spCiNkZWZpbmUg
X192ZXJfaHBzYl9yZWdpc3Rlcl9oaWdobGV2ZWwgc21wXzY5YzAwNDU5CiNkZWZpbmUgaHBzYl9y
ZWdpc3Rlcl9oaWdobGV2ZWwgX3NldF92ZXIoaHBzYl9yZWdpc3Rlcl9oaWdobGV2ZWwpCiNkZWZp
bmUgX192ZXJfaHBzYl91bnJlZ2lzdGVyX2hpZ2hsZXZlbCBzbXBfNzAzMjAwNTkKI2RlZmluZSBo
cHNiX3VucmVnaXN0ZXJfaGlnaGxldmVsIF9zZXRfdmVyKGhwc2JfdW5yZWdpc3Rlcl9oaWdobGV2
ZWwpCiNkZWZpbmUgX192ZXJfaHBzYl9yZWdpc3Rlcl9hZGRyc3BhY2Ugc21wXzkxNzdlYTZlCiNk
ZWZpbmUgaHBzYl9yZWdpc3Rlcl9hZGRyc3BhY2UgX3NldF92ZXIoaHBzYl9yZWdpc3Rlcl9hZGRy
c3BhY2UpCiNkZWZpbmUgX192ZXJfaHBzYl9saXN0ZW5fY2hhbm5lbCBzbXBfNzg0NDYzNmIKI2Rl
ZmluZSBocHNiX2xpc3Rlbl9jaGFubmVsIF9zZXRfdmVyKGhwc2JfbGlzdGVuX2NoYW5uZWwpCiNk
ZWZpbmUgX192ZXJfaHBzYl91bmxpc3Rlbl9jaGFubmVsIHNtcF8wZWQ2OTBlMAojZGVmaW5lIGhw
c2JfdW5saXN0ZW5fY2hhbm5lbCBfc2V0X3ZlcihocHNiX3VubGlzdGVuX2NoYW5uZWwpCiNkZWZp
bmUgX192ZXJfaGlnaGxldmVsX3JlYWQgc21wXzYyZjIzMzU4CiNkZWZpbmUgaGlnaGxldmVsX3Jl
YWQgX3NldF92ZXIoaGlnaGxldmVsX3JlYWQpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX3dyaXRl
IHNtcF83ZTVhYjUxNwojZGVmaW5lIGhpZ2hsZXZlbF93cml0ZSBfc2V0X3ZlcihoaWdobGV2ZWxf
d3JpdGUpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2xvY2sgc21wXzc5NmZjOTk3CiNkZWZpbmUg
aGlnaGxldmVsX2xvY2sgX3NldF92ZXIoaGlnaGxldmVsX2xvY2spCiNkZWZpbmUgX192ZXJfaGln
aGxldmVsX2xvY2s2NCBzbXBfMDY0OTY0YmMKI2RlZmluZSBoaWdobGV2ZWxfbG9jazY0IF9zZXRf
dmVyKGhpZ2hsZXZlbF9sb2NrNjQpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2FkZF9ob3N0IHNt
cF80ZTQ1YTk0MwojZGVmaW5lIGhpZ2hsZXZlbF9hZGRfaG9zdCBfc2V0X3ZlcihoaWdobGV2ZWxf
YWRkX2hvc3QpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX3JlbW92ZV9ob3N0IHNtcF9hZmQ2OTYz
NgojZGVmaW5lIGhpZ2hsZXZlbF9yZW1vdmVfaG9zdCBfc2V0X3ZlcihoaWdobGV2ZWxfcmVtb3Zl
X2hvc3QpCiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2hvc3RfcmVzZXQgc21wXzdiYzUyYjJkCiNk
ZWZpbmUgaGlnaGxldmVsX2hvc3RfcmVzZXQgX3NldF92ZXIoaGlnaGxldmVsX2hvc3RfcmVzZXQp
CiNkZWZpbmUgX192ZXJfaGlnaGxldmVsX2FkZF9vbmVfaG9zdCBzbXBfMmI0OTY0YTIKI2RlZmlu
ZSBoaWdobGV2ZWxfYWRkX29uZV9ob3N0IF9zZXRfdmVyKGhpZ2hsZXZlbF9hZGRfb25lX2hvc3Qp
CiNkZWZpbmUgX192ZXJfaHBzYl9ndWlkX2dldF9oYW5kbGUgc21wX2Y4NmNhN2Q5CiNkZWZpbmUg
aHBzYl9ndWlkX2dldF9oYW5kbGUgX3NldF92ZXIoaHBzYl9ndWlkX2dldF9oYW5kbGUpCiNkZWZp
bmUgX192ZXJfaHBzYl9nZXRfaG9zdF9ieV9nZSBzbXBfNTdiMTg1MzUKI2RlZmluZSBocHNiX2dl
dF9ob3N0X2J5X2dlIF9zZXRfdmVyKGhwc2JfZ2V0X2hvc3RfYnlfZ2UpCiNkZWZpbmUgX192ZXJf
aHBzYl9ndWlkX2ZpbGxfcGFja2V0IHNtcF84MjFiZDE2MQojZGVmaW5lIGhwc2JfZ3VpZF9maWxs
X3BhY2tldCBfc2V0X3ZlcihocHNiX2d1aWRfZmlsbF9wYWNrZXQpCiMgMTA4ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaW5pdC52ZXIiIDEKI2RlZmluZSBfX3Zl
cl9wYXJwb3J0X2NsYWltIHNtcF9hMjVkMDQ5MQojZGVmaW5lIHBhcnBvcnRfY2xhaW0gX3NldF92
ZXIocGFycG9ydF9jbGFpbSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2NsYWltX29yX2Jsb2NrIHNt
cF84MjQyZDMyZQojZGVmaW5lIHBhcnBvcnRfY2xhaW1fb3JfYmxvY2sgX3NldF92ZXIocGFycG9y
dF9jbGFpbV9vcl9ibG9jaykKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3JlbGVhc2Ugc21wXzkzZjU0
YzZjCiNkZWZpbmUgcGFycG9ydF9yZWxlYXNlIF9zZXRfdmVyKHBhcnBvcnRfcmVsZWFzZSkKI2Rl
ZmluZSBfX3Zlcl9wYXJwb3J0X3JlZ2lzdGVyX3BvcnQgc21wXzNmMTYyMjMwCiNkZWZpbmUgcGFy
cG9ydF9yZWdpc3Rlcl9wb3J0IF9zZXRfdmVyKHBhcnBvcnRfcmVnaXN0ZXJfcG9ydCkKI2RlZmlu
ZSBfX3Zlcl9wYXJwb3J0X2Fubm91bmNlX3BvcnQgc21wX2QzNmU2OTM2CiNkZWZpbmUgcGFycG9y
dF9hbm5vdW5jZV9wb3J0IF9zZXRfdmVyKHBhcnBvcnRfYW5ub3VuY2VfcG9ydCkKI2RlZmluZSBf
X3Zlcl9wYXJwb3J0X3VucmVnaXN0ZXJfcG9ydCBzbXBfYTM0MzQ4NjIKI2RlZmluZSBwYXJwb3J0
X3VucmVnaXN0ZXJfcG9ydCBfc2V0X3ZlcihwYXJwb3J0X3VucmVnaXN0ZXJfcG9ydCkKI2RlZmlu
ZSBfX3Zlcl9wYXJwb3J0X3JlZ2lzdGVyX2RyaXZlciBzbXBfN2M0NzEyNzkKI2RlZmluZSBwYXJw
b3J0X3JlZ2lzdGVyX2RyaXZlciBfc2V0X3ZlcihwYXJwb3J0X3JlZ2lzdGVyX2RyaXZlcikKI2Rl
ZmluZSBfX3Zlcl9wYXJwb3J0X3VucmVnaXN0ZXJfZHJpdmVyIHNtcF82OTQ0ZTBmNAojZGVmaW5l
IHBhcnBvcnRfdW5yZWdpc3Rlcl9kcml2ZXIgX3NldF92ZXIocGFycG9ydF91bnJlZ2lzdGVyX2Ry
aXZlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3JlZ2lzdGVyX2RldmljZSBzbXBfZDUxN2NjYTgK
I2RlZmluZSBwYXJwb3J0X3JlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihwYXJwb3J0X3JlZ2lzdGVy
X2RldmljZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3VucmVnaXN0ZXJfZGV2aWNlIHNtcF84NjY1
MzIxYQojZGVmaW5lIHBhcnBvcnRfdW5yZWdpc3Rlcl9kZXZpY2UgX3NldF92ZXIocGFycG9ydF91
bnJlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2VudW1lcmF0ZSBzbXBfNjQw
MGUzNmEKI2RlZmluZSBwYXJwb3J0X2VudW1lcmF0ZSBfc2V0X3ZlcihwYXJwb3J0X2VudW1lcmF0
ZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2dldF9wb3J0IHNtcF9kNTRjNmQ4OAojZGVmaW5lIHBh
cnBvcnRfZ2V0X3BvcnQgX3NldF92ZXIocGFycG9ydF9nZXRfcG9ydCkKI2RlZmluZSBfX3Zlcl9w
YXJwb3J0X3B1dF9wb3J0IHNtcF8xMjg1M2MwOQojZGVmaW5lIHBhcnBvcnRfcHV0X3BvcnQgX3Nl
dF92ZXIocGFycG9ydF9wdXRfcG9ydCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2ZpbmRfbnVtYmVy
IHNtcF8wNDE4NTJiZQojZGVmaW5lIHBhcnBvcnRfZmluZF9udW1iZXIgX3NldF92ZXIocGFycG9y
dF9maW5kX251bWJlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2ZpbmRfYmFzZSBzbXBfMmQ5ZDc5
NGQKI2RlZmluZSBwYXJwb3J0X2ZpbmRfYmFzZSBfc2V0X3ZlcihwYXJwb3J0X2ZpbmRfYmFzZSkK
I2RlZmluZSBfX3Zlcl9wYXJwb3J0X25lZ290aWF0ZSBzbXBfYWVmMDkyMWEKI2RlZmluZSBwYXJw
b3J0X25lZ290aWF0ZSBfc2V0X3ZlcihwYXJwb3J0X25lZ290aWF0ZSkKI2RlZmluZSBfX3Zlcl9w
YXJwb3J0X3dyaXRlIHNtcF81MmVhZmM0NQojZGVmaW5lIHBhcnBvcnRfd3JpdGUgX3NldF92ZXIo
cGFycG9ydF93cml0ZSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3JlYWQgc21wXzBkM2QxYmRlCiNk
ZWZpbmUgcGFycG9ydF9yZWFkIF9zZXRfdmVyKHBhcnBvcnRfcmVhZCkKI2RlZmluZSBfX3Zlcl9w
YXJwb3J0X2llZWUxMjg0X3dha2V1cCBzbXBfNDM3YWM4MzIKI2RlZmluZSBwYXJwb3J0X2llZWUx
Mjg0X3dha2V1cCBfc2V0X3ZlcihwYXJwb3J0X2llZWUxMjg0X3dha2V1cCkKI2RlZmluZSBfX3Zl
cl9wYXJwb3J0X3dhaXRfcGVyaXBoZXJhbCBzbXBfNmM4NWJmOGMKI2RlZmluZSBwYXJwb3J0X3dh
aXRfcGVyaXBoZXJhbCBfc2V0X3ZlcihwYXJwb3J0X3dhaXRfcGVyaXBoZXJhbCkKI2RlZmluZSBf
X3Zlcl9wYXJwb3J0X3BvbGxfcGVyaXBoZXJhbCBzbXBfZjNlYTUxNDgKI2RlZmluZSBwYXJwb3J0
X3BvbGxfcGVyaXBoZXJhbCBfc2V0X3ZlcihwYXJwb3J0X3BvbGxfcGVyaXBoZXJhbCkKI2RlZmlu
ZSBfX3Zlcl9wYXJwb3J0X3dhaXRfZXZlbnQgc21wXzRmY2JjMzliCiNkZWZpbmUgcGFycG9ydF93
YWl0X2V2ZW50IF9zZXRfdmVyKHBhcnBvcnRfd2FpdF9ldmVudCkKI2RlZmluZSBfX3Zlcl9wYXJw
b3J0X3NldF90aW1lb3V0IHNtcF82ZjMxYTQ3OAojZGVmaW5lIHBhcnBvcnRfc2V0X3RpbWVvdXQg
X3NldF92ZXIocGFycG9ydF9zZXRfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUx
Mjg0X2ludGVycnVwdCBzbXBfYmYyYjBkYzAKI2RlZmluZSBwYXJwb3J0X2llZWUxMjg0X2ludGVy
cnVwdCBfc2V0X3ZlcihwYXJwb3J0X2llZWUxMjg0X2ludGVycnVwdCkKI2RlZmluZSBfX3Zlcl9w
YXJwb3J0X2llZWUxMjg0X2VjcF93cml0ZV9kYXRhIHNtcF8wMzViZmI1MwojZGVmaW5lIHBhcnBv
cnRfaWVlZTEyODRfZWNwX3dyaXRlX2RhdGEgX3NldF92ZXIocGFycG9ydF9pZWVlMTI4NF9lY3Bf
d3JpdGVfZGF0YSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VjcF9yZWFkX2RhdGEg
c21wX2RmNDg4YWFlCiNkZWZpbmUgcGFycG9ydF9pZWVlMTI4NF9lY3BfcmVhZF9kYXRhIF9zZXRf
dmVyKHBhcnBvcnRfaWVlZTEyODRfZWNwX3JlYWRfZGF0YSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0
X2llZWUxMjg0X2VjcF93cml0ZV9hZGRyIHNtcF8wZDQ5YzhjYgojZGVmaW5lIHBhcnBvcnRfaWVl
ZTEyODRfZWNwX3dyaXRlX2FkZHIgX3NldF92ZXIocGFycG9ydF9pZWVlMTI4NF9lY3Bfd3JpdGVf
YWRkcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X3dyaXRlX2NvbXBhdCBzbXBfMGY1
NDU3YWUKI2RlZmluZSBwYXJwb3J0X2llZWUxMjg0X3dyaXRlX2NvbXBhdCBfc2V0X3ZlcihwYXJw
b3J0X2llZWUxMjg0X3dyaXRlX2NvbXBhdCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0
X3JlYWRfbmliYmxlIHNtcF8xMmNhNzZhYQojZGVmaW5lIHBhcnBvcnRfaWVlZTEyODRfcmVhZF9u
aWJibGUgX3NldF92ZXIocGFycG9ydF9pZWVlMTI4NF9yZWFkX25pYmJsZSkKI2RlZmluZSBfX3Zl
cl9wYXJwb3J0X2llZWUxMjg0X3JlYWRfYnl0ZSBzbXBfZjYyMWY1YmYKI2RlZmluZSBwYXJwb3J0
X2llZWUxMjg0X3JlYWRfYnl0ZSBfc2V0X3ZlcihwYXJwb3J0X2llZWUxMjg0X3JlYWRfYnl0ZSkK
I2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VwcF93cml0ZV9kYXRhIHNtcF82ZjU1NmVj
YQojZGVmaW5lIHBhcnBvcnRfaWVlZTEyODRfZXBwX3dyaXRlX2RhdGEgX3NldF92ZXIocGFycG9y
dF9pZWVlMTI4NF9lcHBfd3JpdGVfZGF0YSkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0
X2VwcF9yZWFkX2RhdGEgc21wXzk1NGYxYWIwCiNkZWZpbmUgcGFycG9ydF9pZWVlMTI4NF9lcHBf
cmVhZF9kYXRhIF9zZXRfdmVyKHBhcnBvcnRfaWVlZTEyODRfZXBwX3JlYWRfZGF0YSkKI2RlZmlu
ZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VwcF93cml0ZV9hZGRyIHNtcF82MTQ3NWQ1MgojZGVm
aW5lIHBhcnBvcnRfaWVlZTEyODRfZXBwX3dyaXRlX2FkZHIgX3NldF92ZXIocGFycG9ydF9pZWVl
MTI4NF9lcHBfd3JpdGVfYWRkcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2llZWUxMjg0X2VwcF9y
ZWFkX2FkZHIgc21wXzY5OTUxNzM3CiNkZWZpbmUgcGFycG9ydF9pZWVlMTI4NF9lcHBfcmVhZF9h
ZGRyIF9zZXRfdmVyKHBhcnBvcnRfaWVlZTEyODRfZXBwX3JlYWRfYWRkcikKI2RlZmluZSBfX3Zl
cl9wYXJwb3J0X3Byb2NfcmVnaXN0ZXIgc21wX2U5MzdlMmU5CiNkZWZpbmUgcGFycG9ydF9wcm9j
X3JlZ2lzdGVyIF9zZXRfdmVyKHBhcnBvcnRfcHJvY19yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9w
YXJwb3J0X3Byb2NfdW5yZWdpc3RlciBzbXBfNTMxOTg5OTkKI2RlZmluZSBwYXJwb3J0X3Byb2Nf
dW5yZWdpc3RlciBfc2V0X3ZlcihwYXJwb3J0X3Byb2NfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zl
cl9wYXJwb3J0X2RldmljZV9wcm9jX3JlZ2lzdGVyIHNtcF83ZWQ1YzdjYgojZGVmaW5lIHBhcnBv
cnRfZGV2aWNlX3Byb2NfcmVnaXN0ZXIgX3NldF92ZXIocGFycG9ydF9kZXZpY2VfcHJvY19yZWdp
c3RlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2RldmljZV9wcm9jX3VucmVnaXN0ZXIgc21wX2Ri
NGZmMjAxCiNkZWZpbmUgcGFycG9ydF9kZXZpY2VfcHJvY191bnJlZ2lzdGVyIF9zZXRfdmVyKHBh
cnBvcnRfZGV2aWNlX3Byb2NfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X2RlZmF1
bHRfcHJvY19yZWdpc3RlciBzbXBfMTA5YzhmOWEKI2RlZmluZSBwYXJwb3J0X2RlZmF1bHRfcHJv
Y19yZWdpc3RlciBfc2V0X3ZlcihwYXJwb3J0X2RlZmF1bHRfcHJvY19yZWdpc3RlcikKI2RlZmlu
ZSBfX3Zlcl9wYXJwb3J0X2RlZmF1bHRfcHJvY191bnJlZ2lzdGVyIHNtcF9kNzc1YjdmNAojZGVm
aW5lIHBhcnBvcnRfZGVmYXVsdF9wcm9jX3VucmVnaXN0ZXIgX3NldF92ZXIocGFycG9ydF9kZWZh
dWx0X3Byb2NfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BhcnNlX2lycXMgc21w
X2ZlM2EyODY3CiNkZWZpbmUgcGFycG9ydF9wYXJzZV9pcnFzIF9zZXRfdmVyKHBhcnBvcnRfcGFy
c2VfaXJxcykKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BhcnNlX2RtYXMgc21wX2M5NzZkZjBiCiNk
ZWZpbmUgcGFycG9ydF9wYXJzZV9kbWFzIF9zZXRfdmVyKHBhcnBvcnRfcGFyc2VfZG1hcykKIyAx
MDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pbnB1dC52ZXIi
IDEKI2RlZmluZSBfX3Zlcl9pbnB1dF9yZWdpc3Rlcl9kZXZpY2Ugc21wXzYwZjc0NTNmCiNkZWZp
bmUgaW5wdXRfcmVnaXN0ZXJfZGV2aWNlIF9zZXRfdmVyKGlucHV0X3JlZ2lzdGVyX2RldmljZSkK
I2RlZmluZSBfX3Zlcl9pbnB1dF91bnJlZ2lzdGVyX2RldmljZSBzbXBfYWQzM2VhOTkKI2RlZmlu
ZSBpbnB1dF91bnJlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihpbnB1dF91bnJlZ2lzdGVyX2Rldmlj
ZSkKI2RlZmluZSBfX3Zlcl9pbnB1dF9yZWdpc3Rlcl9oYW5kbGVyIHNtcF83NmE3MjM4NQojZGVm
aW5lIGlucHV0X3JlZ2lzdGVyX2hhbmRsZXIgX3NldF92ZXIoaW5wdXRfcmVnaXN0ZXJfaGFuZGxl
cikKI2RlZmluZSBfX3Zlcl9pbnB1dF91bnJlZ2lzdGVyX2hhbmRsZXIgc21wXzc0M2FkNzdmCiNk
ZWZpbmUgaW5wdXRfdW5yZWdpc3Rlcl9oYW5kbGVyIF9zZXRfdmVyKGlucHV0X3VucmVnaXN0ZXJf
aGFuZGxlcikKI2RlZmluZSBfX3Zlcl9pbnB1dF9yZWdpc3Rlcl9taW5vciBzbXBfZTk4NmFkMDkK
I2RlZmluZSBpbnB1dF9yZWdpc3Rlcl9taW5vciBfc2V0X3ZlcihpbnB1dF9yZWdpc3Rlcl9taW5v
cikKI2RlZmluZSBfX3Zlcl9pbnB1dF91bnJlZ2lzdGVyX21pbm9yIHNtcF8zODI3YTMyZQojZGVm
aW5lIGlucHV0X3VucmVnaXN0ZXJfbWlub3IgX3NldF92ZXIoaW5wdXRfdW5yZWdpc3Rlcl9taW5v
cikKI2RlZmluZSBfX3Zlcl9pbnB1dF9vcGVuX2RldmljZSBzbXBfOWU3NWNiMDIKI2RlZmluZSBp
bnB1dF9vcGVuX2RldmljZSBfc2V0X3ZlcihpbnB1dF9vcGVuX2RldmljZSkKI2RlZmluZSBfX3Zl
cl9pbnB1dF9jbG9zZV9kZXZpY2Ugc21wX2Y0OTdiMmE5CiNkZWZpbmUgaW5wdXRfY2xvc2VfZGV2
aWNlIF9zZXRfdmVyKGlucHV0X2Nsb3NlX2RldmljZSkKI2RlZmluZSBfX3Zlcl9pbnB1dF9ldmVu
dCBzbXBfNjM0ZTUyMTgKI2RlZmluZSBpbnB1dF9ldmVudCBfc2V0X3ZlcihpbnB1dF9ldmVudCkK
IyAxMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pby52ZXIi
IDEKIyAxMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcGNv
bW1vbi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9za2JfbWlncmF0ZSBzbXBfZjYwNzc5OWEKI2RlZmlu
ZSBza2JfbWlncmF0ZSBfc2V0X3Zlcihza2JfbWlncmF0ZSkKIyAxMTIgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcF9jb25udHJhY2tfZnRwLnZlciIgMQojZGVm
aW5lIF9fdmVyX2lwX2Z0cF9sb2NrIHNtcF83YzI3ZWY0YwojZGVmaW5lIGlwX2Z0cF9sb2NrIF9z
ZXRfdmVyKGlwX2Z0cF9sb2NrKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19mdHAgc21wXzQz
N2NkNzM1CiNkZWZpbmUgaXBfY29ubnRyYWNrX2Z0cCBfc2V0X3ZlcihpcF9jb25udHJhY2tfZnRw
KQojIDExMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2lwX2Nv
bm50cmFja19zdGFuZGFsb25lLnZlciIgMQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19wcm90
b2NvbF9yZWdpc3RlciBzbXBfMTJkYWQxM2EKI2RlZmluZSBpcF9jb25udHJhY2tfcHJvdG9jb2xf
cmVnaXN0ZXIgX3NldF92ZXIoaXBfY29ubnRyYWNrX3Byb3RvY29sX3JlZ2lzdGVyKQojZGVmaW5l
IF9fdmVyX2ludmVydF90dXBsZXByIHNtcF81ZTY4ZDhhOQojZGVmaW5lIGludmVydF90dXBsZXBy
IF9zZXRfdmVyKGludmVydF90dXBsZXByKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19hbHRl
cl9yZXBseSBzbXBfMjFkNzJlNjQKI2RlZmluZSBpcF9jb25udHJhY2tfYWx0ZXJfcmVwbHkgX3Nl
dF92ZXIoaXBfY29ubnRyYWNrX2FsdGVyX3JlcGx5KQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFj
a19kZXN0cm95ZWQgc21wXzFhZDM3NDcxCiNkZWZpbmUgaXBfY29ubnRyYWNrX2Rlc3Ryb3llZCBf
c2V0X3ZlcihpcF9jb25udHJhY2tfZGVzdHJveWVkKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFj
a19nZXQgc21wXzI4MDljNTRmCiNkZWZpbmUgaXBfY29ubnRyYWNrX2dldCBfc2V0X3ZlcihpcF9j
b25udHJhY2tfZ2V0KQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19tb2R1bGUgc21wXzJhYTc3
NWZiCiNkZWZpbmUgaXBfY29ubnRyYWNrX21vZHVsZSBfc2V0X3ZlcihpcF9jb25udHJhY2tfbW9k
dWxlKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19oZWxwZXJfcmVnaXN0ZXIgc21wX2NiOTY1
M2ViCiNkZWZpbmUgaXBfY29ubnRyYWNrX2hlbHBlcl9yZWdpc3RlciBfc2V0X3ZlcihpcF9jb25u
dHJhY2tfaGVscGVyX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19oZWxwZXJf
dW5yZWdpc3RlciBzbXBfZmQxNzU4ZmUKI2RlZmluZSBpcF9jb25udHJhY2tfaGVscGVyX3VucmVn
aXN0ZXIgX3NldF92ZXIoaXBfY29ubnRyYWNrX2hlbHBlcl91bnJlZ2lzdGVyKQojZGVmaW5lIF9f
dmVyX2lwX2N0X3NlbGVjdGl2ZV9jbGVhbnVwIHNtcF9kZmZlMGQ2MwojZGVmaW5lIGlwX2N0X3Nl
bGVjdGl2ZV9jbGVhbnVwIF9zZXRfdmVyKGlwX2N0X3NlbGVjdGl2ZV9jbGVhbnVwKQojZGVmaW5l
IF9fdmVyX2lwX2N0X3JlZnJlc2ggc21wXzljZGNjMzAwCiNkZWZpbmUgaXBfY3RfcmVmcmVzaCBf
c2V0X3ZlcihpcF9jdF9yZWZyZXNoKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFja19leHBlY3Rf
cmVsYXRlZCBzbXBfMDA3YjYyYTMKI2RlZmluZSBpcF9jb25udHJhY2tfZXhwZWN0X3JlbGF0ZWQg
X3NldF92ZXIoaXBfY29ubnRyYWNrX2V4cGVjdF9yZWxhdGVkKQojZGVmaW5lIF9fdmVyX2lwX2Nv
bm50cmFja190dXBsZV90YWtlbiBzbXBfZjNjYjU3ODUKI2RlZmluZSBpcF9jb25udHJhY2tfdHVw
bGVfdGFrZW4gX3NldF92ZXIoaXBfY29ubnRyYWNrX3R1cGxlX3Rha2VuKQojZGVmaW5lIF9fdmVy
X2lwX2N0X2dhdGhlcl9mcmFncyBzbXBfMDg4NTgzYWQKI2RlZmluZSBpcF9jdF9nYXRoZXJfZnJh
Z3MgX3NldF92ZXIoaXBfY3RfZ2F0aGVyX2ZyYWdzKQojZGVmaW5lIF9fdmVyX2lwX2Nvbm50cmFj
a19odGFibGVfc2l6ZSBzbXBfOGVmOGFmNGMKI2RlZmluZSBpcF9jb25udHJhY2tfaHRhYmxlX3Np
emUgX3NldF92ZXIoaXBfY29ubnRyYWNrX2h0YWJsZV9zaXplKQojIDExNCAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2lwX2Z3X2NvbXBhdC52ZXIiIDEKIyAxMTUg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcF9ncmUudmVyIiAx
CiMgMTE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgi
IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaXBpcC52
ZXIiIDEKIyAxMTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9p
cF9uYXRfc3RhbmRhbG9uZS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9pcF9uYXRfc2V0dXBfaW5mbyBz
bXBfMjcxYTAxNDMKI2RlZmluZSBpcF9uYXRfc2V0dXBfaW5mbyBfc2V0X3ZlcihpcF9uYXRfc2V0
dXBfaW5mbykKI2RlZmluZSBfX3Zlcl9pcF9uYXRfaGVscGVyX3JlZ2lzdGVyIHNtcF8xNzA4MjZj
MAojZGVmaW5lIGlwX25hdF9oZWxwZXJfcmVnaXN0ZXIgX3NldF92ZXIoaXBfbmF0X2hlbHBlcl9y
ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfaGVscGVyX3VucmVnaXN0ZXIgc21wX2JmZGQw
MDdjCiNkZWZpbmUgaXBfbmF0X2hlbHBlcl91bnJlZ2lzdGVyIF9zZXRfdmVyKGlwX25hdF9oZWxw
ZXJfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfZXhwZWN0X3JlZ2lzdGVyIHNtcF9h
NmNmNDYzYgojZGVmaW5lIGlwX25hdF9leHBlY3RfcmVnaXN0ZXIgX3NldF92ZXIoaXBfbmF0X2V4
cGVjdF9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfZXhwZWN0X3VucmVnaXN0ZXIgc21w
XzkzOGNmNGNkCiNkZWZpbmUgaXBfbmF0X2V4cGVjdF91bnJlZ2lzdGVyIF9zZXRfdmVyKGlwX25h
dF9leHBlY3RfdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9pcF9uYXRfY2hlYXRfY2hlY2sgc21w
XzFlNGU3M2E4CiNkZWZpbmUgaXBfbmF0X2NoZWF0X2NoZWNrIF9zZXRfdmVyKGlwX25hdF9jaGVh
dF9jaGVjaykKI2RlZmluZSBfX3Zlcl9pcF9uYXRfbWFuZ2xlX3RjcF9wYWNrZXQgc21wXzUzZTI4
OGE4CiNkZWZpbmUgaXBfbmF0X21hbmdsZV90Y3BfcGFja2V0IF9zZXRfdmVyKGlwX25hdF9tYW5n
bGVfdGNwX3BhY2tldCkKI2RlZmluZSBfX3Zlcl9pcF9uYXRfc2VxX2FkanVzdCBzbXBfMzU3NjM1
NWMKI2RlZmluZSBpcF9uYXRfc2VxX2FkanVzdCBfc2V0X3ZlcihpcF9uYXRfc2VxX2FkanVzdCkK
I2RlZmluZSBfX3Zlcl9pcF9uYXRfZGVsZXRlX3NhY2sgc21wXzc4NDk5Y2RhCiNkZWZpbmUgaXBf
bmF0X2RlbGV0ZV9zYWNrIF9zZXRfdmVyKGlwX25hdF9kZWxldGVfc2FjaykKIyAxMTggIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9pcF90YWJsZXMudmVyIiAxCiNk
ZWZpbmUgX192ZXJfaXB0X3JlZ2lzdGVyX3RhYmxlIHNtcF9mNGZjYzU2MAojZGVmaW5lIGlwdF9y
ZWdpc3Rlcl90YWJsZSBfc2V0X3ZlcihpcHRfcmVnaXN0ZXJfdGFibGUpCiNkZWZpbmUgX192ZXJf
aXB0X3VucmVnaXN0ZXJfdGFibGUgc21wX2RiMWQ5YjA0CiNkZWZpbmUgaXB0X3VucmVnaXN0ZXJf
dGFibGUgX3NldF92ZXIoaXB0X3VucmVnaXN0ZXJfdGFibGUpCiNkZWZpbmUgX192ZXJfaXB0X3Jl
Z2lzdGVyX21hdGNoIHNtcF9jYjcxM2FmOAojZGVmaW5lIGlwdF9yZWdpc3Rlcl9tYXRjaCBfc2V0
X3ZlcihpcHRfcmVnaXN0ZXJfbWF0Y2gpCiNkZWZpbmUgX192ZXJfaXB0X3VucmVnaXN0ZXJfbWF0
Y2ggc21wXzgwYTQ1YjQzCiNkZWZpbmUgaXB0X3VucmVnaXN0ZXJfbWF0Y2ggX3NldF92ZXIoaXB0
X3VucmVnaXN0ZXJfbWF0Y2gpCiNkZWZpbmUgX192ZXJfaXB0X2RvX3RhYmxlIHNtcF85MjZmMWE5
ZAojZGVmaW5lIGlwdF9kb190YWJsZSBfc2V0X3ZlcihpcHRfZG9fdGFibGUpCiNkZWZpbmUgX192
ZXJfaXB0X3JlZ2lzdGVyX3RhcmdldCBzbXBfMjE5NjE4ZTAKI2RlZmluZSBpcHRfcmVnaXN0ZXJf
dGFyZ2V0IF9zZXRfdmVyKGlwdF9yZWdpc3Rlcl90YXJnZXQpCiNkZWZpbmUgX192ZXJfaXB0X3Vu
cmVnaXN0ZXJfdGFyZ2V0IHNtcF9iNjRkY2I3OQojZGVmaW5lIGlwdF91bnJlZ2lzdGVyX3Rhcmdl
dCBfc2V0X3ZlcihpcHRfdW5yZWdpc3Rlcl90YXJnZXQpCiMgMTE5ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaXJwb3J0LnZlciIgMQojZGVmaW5lIF9fdmVyX2ly
cG9ydF9vcGVuIHNtcF83NTM5ZWVkYgojZGVmaW5lIGlycG9ydF9vcGVuIF9zZXRfdmVyKGlycG9y
dF9vcGVuKQojZGVmaW5lIF9fdmVyX2lycG9ydF9jbG9zZSBzbXBfNjllYmFiYzAKI2RlZmluZSBp
cnBvcnRfY2xvc2UgX3NldF92ZXIoaXJwb3J0X2Nsb3NlKQojZGVmaW5lIF9fdmVyX2lycG9ydF9z
dGFydCBzbXBfNWJjYmE5YzMKI2RlZmluZSBpcnBvcnRfc3RhcnQgX3NldF92ZXIoaXJwb3J0X3N0
YXJ0KQojZGVmaW5lIF9fdmVyX2lycG9ydF9zdG9wIHNtcF82MDJkY2U5YQojZGVmaW5lIGlycG9y
dF9zdG9wIF9zZXRfdmVyKGlycG9ydF9zdG9wKQojZGVmaW5lIF9fdmVyX2lycG9ydF9pbnRlcnJ1
cHQgc21wXzAxZDRmNmMwCiNkZWZpbmUgaXJwb3J0X2ludGVycnVwdCBfc2V0X3ZlcihpcnBvcnRf
aW50ZXJydXB0KQojZGVmaW5lIF9fdmVyX2lycG9ydF9oYXJkX3htaXQgc21wX2M3MDllMWE0CiNk
ZWZpbmUgaXJwb3J0X2hhcmRfeG1pdCBfc2V0X3ZlcihpcnBvcnRfaGFyZF94bWl0KQojZGVmaW5l
IF9fdmVyX2lycG9ydF90aW1lb3V0IHNtcF9kZDNjZjZkMAojZGVmaW5lIGlycG9ydF90aW1lb3V0
IF9zZXRfdmVyKGlycG9ydF90aW1lb3V0KQojZGVmaW5lIF9fdmVyX2lycG9ydF9jaGFuZ2Vfc3Bl
ZWQgc21wXzA3MDI3YTBiCiNkZWZpbmUgaXJwb3J0X2NoYW5nZV9zcGVlZCBfc2V0X3ZlcihpcnBv
cnRfY2hhbmdlX3NwZWVkKQojZGVmaW5lIF9fdmVyX2lycG9ydF9uZXRfb3BlbiBzbXBfY2M4MjE5
YmIKI2RlZmluZSBpcnBvcnRfbmV0X29wZW4gX3NldF92ZXIoaXJwb3J0X25ldF9vcGVuKQojZGVm
aW5lIF9fdmVyX2lycG9ydF9uZXRfY2xvc2Ugc21wXzUyNWUyYmI4CiNkZWZpbmUgaXJwb3J0X25l
dF9jbG9zZSBfc2V0X3ZlcihpcnBvcnRfbmV0X2Nsb3NlKQojIDEyMCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2lyc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9p
cnR0cF9vcGVuX3RzYXAgc21wXzE0ODBiMzEzCiNkZWZpbmUgaXJ0dHBfb3Blbl90c2FwIF9zZXRf
dmVyKGlydHRwX29wZW5fdHNhcCkKI2RlZmluZSBfX3Zlcl9pcnR0cF9jbG9zZV90c2FwIHNtcF8z
NzliNGI4YgojZGVmaW5lIGlydHRwX2Nsb3NlX3RzYXAgX3NldF92ZXIoaXJ0dHBfY2xvc2VfdHNh
cCkKI2RlZmluZSBfX3Zlcl9pcnR0cF9jb25uZWN0X3Jlc3BvbnNlIHNtcF81NjdmNWQ4OAojZGVm
aW5lIGlydHRwX2Nvbm5lY3RfcmVzcG9uc2UgX3NldF92ZXIoaXJ0dHBfY29ubmVjdF9yZXNwb25z
ZSkKI2RlZmluZSBfX3Zlcl9pcnR0cF9kYXRhX3JlcXVlc3Qgc21wX2NmNWU0MjlkCiNkZWZpbmUg
aXJ0dHBfZGF0YV9yZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2RhdGFfcmVxdWVzdCkKI2RlZmluZSBf
X3Zlcl9pcnR0cF9kaXNjb25uZWN0X3JlcXVlc3Qgc21wXzlhMzU1NjA5CiNkZWZpbmUgaXJ0dHBf
ZGlzY29ubmVjdF9yZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2Rpc2Nvbm5lY3RfcmVxdWVzdCkKI2Rl
ZmluZSBfX3Zlcl9pcnR0cF9mbG93X3JlcXVlc3Qgc21wXzUxYTE3NzgwCiNkZWZpbmUgaXJ0dHBf
Zmxvd19yZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2Zsb3dfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9p
cnR0cF9jb25uZWN0X3JlcXVlc3Qgc21wXzQwM2YyMjUzCiNkZWZpbmUgaXJ0dHBfY29ubmVjdF9y
ZXF1ZXN0IF9zZXRfdmVyKGlydHRwX2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcnR0
cF91ZGF0YV9yZXF1ZXN0IHNtcF9jMGI4MzQ1MwojZGVmaW5lIGlydHRwX3VkYXRhX3JlcXVlc3Qg
X3NldF92ZXIoaXJ0dHBfdWRhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcnR0cF9kdXAgc21w
Xzg0MTA3MTQ4CiNkZWZpbmUgaXJ0dHBfZHVwIF9zZXRfdmVyKGlydHRwX2R1cCkKI2RlZmluZSBf
X3Zlcl9pcmRhX25vdGlmeV9pbml0IHNtcF8zNTQ3ZjBhNQojZGVmaW5lIGlyZGFfbm90aWZ5X2lu
aXQgX3NldF92ZXIoaXJkYV9ub3RpZnlfaW5pdCkKI2RlZmluZSBfX3Zlcl9pcmRhX2xvY2sgc21w
X2M1ODhkNTA4CiNkZWZpbmUgaXJkYV9sb2NrIF9zZXRfdmVyKGlyZGFfbG9jaykKI2RlZmluZSBf
X3Zlcl9wcm9jX2lyZGEgc21wX2UwY2NiODM5CiNkZWZpbmUgcHJvY19pcmRhIF9zZXRfdmVyKHBy
b2NfaXJkYSkKI2RlZmluZSBfX3Zlcl9pcmRhX3BhcmFtX2luc2VydCBzbXBfMGRhYjAyYTAKI2Rl
ZmluZSBpcmRhX3BhcmFtX2luc2VydCBfc2V0X3ZlcihpcmRhX3BhcmFtX2luc2VydCkKI2RlZmlu
ZSBfX3Zlcl9pcmRhX3BhcmFtX2V4dHJhY3Qgc21wX2RlNTFlMzNlCiNkZWZpbmUgaXJkYV9wYXJh
bV9leHRyYWN0IF9zZXRfdmVyKGlyZGFfcGFyYW1fZXh0cmFjdCkKI2RlZmluZSBfX3Zlcl9pcmRh
X3BhcmFtX2V4dHJhY3RfYWxsIHNtcF9mMzZiNTBiMQojZGVmaW5lIGlyZGFfcGFyYW1fZXh0cmFj
dF9hbGwgX3NldF92ZXIoaXJkYV9wYXJhbV9leHRyYWN0X2FsbCkKI2RlZmluZSBfX3Zlcl9pcmRh
X3BhcmFtX3BhY2sgc21wXzkxODE1NTg2CiNkZWZpbmUgaXJkYV9wYXJhbV9wYWNrIF9zZXRfdmVy
KGlyZGFfcGFyYW1fcGFjaykKI2RlZmluZSBfX3Zlcl9pcmRhX3BhcmFtX3VucGFjayBzbXBfNzMw
YzM1Y2UKI2RlZmluZSBpcmRhX3BhcmFtX3VucGFjayBfc2V0X3ZlcihpcmRhX3BhcmFtX3VucGFj
aykKI2RlZmluZSBfX3Zlcl9pcmlhcF9vcGVuIHNtcF9hMTliOWFlYQojZGVmaW5lIGlyaWFwX29w
ZW4gX3NldF92ZXIoaXJpYXBfb3BlbikKI2RlZmluZSBfX3Zlcl9pcmlhcF9jbG9zZSBzbXBfMjZk
ZGU0MDkKI2RlZmluZSBpcmlhcF9jbG9zZSBfc2V0X3ZlcihpcmlhcF9jbG9zZSkKI2RlZmluZSBf
X3Zlcl9pcmlhcF9nZXR2YWx1ZWJ5Y2xhc3NfcmVxdWVzdCBzbXBfNjMxNzY5NWYKI2RlZmluZSBp
cmlhcF9nZXR2YWx1ZWJ5Y2xhc3NfcmVxdWVzdCBfc2V0X3ZlcihpcmlhcF9nZXR2YWx1ZWJ5Y2xh
c3NfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19vYmplY3RfY2hhbmdlX2F0dHJpYnV0ZSBz
bXBfYmNkM2VmMTMKI2RlZmluZSBpcmlhc19vYmplY3RfY2hhbmdlX2F0dHJpYnV0ZSBfc2V0X3Zl
cihpcmlhc19vYmplY3RfY2hhbmdlX2F0dHJpYnV0ZSkKI2RlZmluZSBfX3Zlcl9pcmlhc19hZGRf
aW50ZWdlcl9hdHRyaWIgc21wX2Q0NjZkY2JlCiNkZWZpbmUgaXJpYXNfYWRkX2ludGVnZXJfYXR0
cmliIF9zZXRfdmVyKGlyaWFzX2FkZF9pbnRlZ2VyX2F0dHJpYikKI2RlZmluZSBfX3Zlcl9pcmlh
c19hZGRfb2N0c2VxX2F0dHJpYiBzbXBfNzRlNzBhZDYKI2RlZmluZSBpcmlhc19hZGRfb2N0c2Vx
X2F0dHJpYiBfc2V0X3Zlcihpcmlhc19hZGRfb2N0c2VxX2F0dHJpYikKI2RlZmluZSBfX3Zlcl9p
cmlhc19hZGRfc3RyaW5nX2F0dHJpYiBzbXBfYjgzMmM1NzAKI2RlZmluZSBpcmlhc19hZGRfc3Ry
aW5nX2F0dHJpYiBfc2V0X3Zlcihpcmlhc19hZGRfc3RyaW5nX2F0dHJpYikKI2RlZmluZSBfX3Zl
cl9pcmlhc19pbnNlcnRfb2JqZWN0IHNtcF85MWNiNGQxNAojZGVmaW5lIGlyaWFzX2luc2VydF9v
YmplY3QgX3NldF92ZXIoaXJpYXNfaW5zZXJ0X29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19u
ZXdfb2JqZWN0IHNtcF9iYTA2ZTI1MQojZGVmaW5lIGlyaWFzX25ld19vYmplY3QgX3NldF92ZXIo
aXJpYXNfbmV3X29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19kZWxldGVfb2JqZWN0IHNtcF80
MTUzNTZjYwojZGVmaW5lIGlyaWFzX2RlbGV0ZV9vYmplY3QgX3NldF92ZXIoaXJpYXNfZGVsZXRl
X29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlhc19kZWxldGVfdmFsdWUgc21wX2I5Mzk0MTczCiNk
ZWZpbmUgaXJpYXNfZGVsZXRlX3ZhbHVlIF9zZXRfdmVyKGlyaWFzX2RlbGV0ZV92YWx1ZSkKI2Rl
ZmluZSBfX3Zlcl9pcmlhc19maW5kX29iamVjdCBzbXBfY2FhOGQwYzYKI2RlZmluZSBpcmlhc19m
aW5kX29iamVjdCBfc2V0X3Zlcihpcmlhc19maW5kX29iamVjdCkKI2RlZmluZSBfX3Zlcl9pcmlh
c19maW5kX2F0dHJpYiBzbXBfZWY5MGY5YWYKI2RlZmluZSBpcmlhc19maW5kX2F0dHJpYiBfc2V0
X3Zlcihpcmlhc19maW5kX2F0dHJpYikKI2RlZmluZSBfX3Zlcl9pcmlhc19uZXdfaW50ZWdlcl92
YWx1ZSBzbXBfMDZhM2VlNTgKI2RlZmluZSBpcmlhc19uZXdfaW50ZWdlcl92YWx1ZSBfc2V0X3Zl
cihpcmlhc19uZXdfaW50ZWdlcl92YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmlhc19uZXdfc3RyaW5n
X3ZhbHVlIHNtcF8zOGRkZTRlMQojZGVmaW5lIGlyaWFzX25ld19zdHJpbmdfdmFsdWUgX3NldF92
ZXIoaXJpYXNfbmV3X3N0cmluZ192YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmlhc19uZXdfb2N0c2Vx
X3ZhbHVlIHNtcF81OTFkMWJiZAojZGVmaW5lIGlyaWFzX25ld19vY3RzZXFfdmFsdWUgX3NldF92
ZXIoaXJpYXNfbmV3X29jdHNlcV92YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF9kaXNjb3Zlcnlf
cmVxdWVzdCBzbXBfYmU0MGFjZTkKI2RlZmluZSBpcmxtcF9kaXNjb3ZlcnlfcmVxdWVzdCBfc2V0
X3ZlcihpcmxtcF9kaXNjb3ZlcnlfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9nZXRfZGlz
Y292ZXJpZXMgc21wXzUxM2ZiYzdmCiNkZWZpbmUgaXJsbXBfZ2V0X2Rpc2NvdmVyaWVzIF9zZXRf
dmVyKGlybG1wX2dldF9kaXNjb3ZlcmllcykKI2RlZmluZSBfX3Zlcl9zeXNjdGxfZGlzY292ZXJ5
X3RpbWVvdXQgc21wXzYxOTY1OTcyCiNkZWZpbmUgc3lzY3RsX2Rpc2NvdmVyeV90aW1lb3V0IF9z
ZXRfdmVyKHN5c2N0bF9kaXNjb3ZlcnlfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9yZWdp
c3Rlcl9jbGllbnQgc21wXzE3ZjE4YmZiCiNkZWZpbmUgaXJsbXBfcmVnaXN0ZXJfY2xpZW50IF9z
ZXRfdmVyKGlybG1wX3JlZ2lzdGVyX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9pcmxtcF91bnJlZ2lz
dGVyX2NsaWVudCBzbXBfY2VkNjQ2N2IKI2RlZmluZSBpcmxtcF91bnJlZ2lzdGVyX2NsaWVudCBf
c2V0X3ZlcihpcmxtcF91bnJlZ2lzdGVyX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9pcmxtcF91cGRh
dGVfY2xpZW50IHNtcF9jNmE0MmJmZgojZGVmaW5lIGlybG1wX3VwZGF0ZV9jbGllbnQgX3NldF92
ZXIoaXJsbXBfdXBkYXRlX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9yZWdpc3Rlcl9zZXJ2
aWNlIHNtcF9lNmZlNmMzMQojZGVmaW5lIGlybG1wX3JlZ2lzdGVyX3NlcnZpY2UgX3NldF92ZXIo
aXJsbXBfcmVnaXN0ZXJfc2VydmljZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF91bnJlZ2lzdGVyX3Nl
cnZpY2Ugc21wXzZiMjg0NWQyCiNkZWZpbmUgaXJsbXBfdW5yZWdpc3Rlcl9zZXJ2aWNlIF9zZXRf
dmVyKGlybG1wX3VucmVnaXN0ZXJfc2VydmljZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF9zZXJ2aWNl
X3RvX2hpbnQgc21wX2RlNGM2YjNjCiNkZWZpbmUgaXJsbXBfc2VydmljZV90b19oaW50IF9zZXRf
dmVyKGlybG1wX3NlcnZpY2VfdG9faGludCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9kYXRhX3JlcXVl
c3Qgc21wXzM1ODA0MTRkCiNkZWZpbmUgaXJsbXBfZGF0YV9yZXF1ZXN0IF9zZXRfdmVyKGlybG1w
X2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9vcGVuX2xzYXAgc21wXzYxMDA2ZDhl
CiNkZWZpbmUgaXJsbXBfb3Blbl9sc2FwIF9zZXRfdmVyKGlybG1wX29wZW5fbHNhcCkKI2RlZmlu
ZSBfX3Zlcl9pcmxtcF9jbG9zZV9sc2FwIHNtcF9jMTlmNDFiNwojZGVmaW5lIGlybG1wX2Nsb3Nl
X2xzYXAgX3NldF92ZXIoaXJsbXBfY2xvc2VfbHNhcCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9jb25u
ZWN0X3JlcXVlc3Qgc21wXzFiZDkyMjE5CiNkZWZpbmUgaXJsbXBfY29ubmVjdF9yZXF1ZXN0IF9z
ZXRfdmVyKGlybG1wX2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9jb25uZWN0
X3Jlc3BvbnNlIHNtcF81N2YxMmRjNgojZGVmaW5lIGlybG1wX2Nvbm5lY3RfcmVzcG9uc2UgX3Nl
dF92ZXIoaXJsbXBfY29ubmVjdF9yZXNwb25zZSkKI2RlZmluZSBfX3Zlcl9pcmxtcF9kaXNjb25u
ZWN0X3JlcXVlc3Qgc21wX2FkYmJmN2EzCiNkZWZpbmUgaXJsbXBfZGlzY29ubmVjdF9yZXF1ZXN0
IF9zZXRfdmVyKGlybG1wX2Rpc2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9pcmxtcF9n
ZXRfZGFkZHIgc21wX2I5NzMwNzY4CiNkZWZpbmUgaXJsbXBfZ2V0X2RhZGRyIF9zZXRfdmVyKGly
bG1wX2dldF9kYWRkcikKI2RlZmluZSBfX3Zlcl9pcmxtcF9nZXRfc2FkZHIgc21wX2QyOTExMTNl
CiNkZWZpbmUgaXJsbXBfZ2V0X3NhZGRyIF9zZXRfdmVyKGlybG1wX2dldF9zYWRkcikKI2RlZmlu
ZSBfX3Zlcl9pcmxtcF9kdXAgc21wX2I2ODEwMjc0CiNkZWZpbmUgaXJsbXBfZHVwIF9zZXRfdmVy
KGlybG1wX2R1cCkKI2RlZmluZSBfX3Zlcl9sbXBfcmVhc29ucyBzbXBfMzJkM2Y1M2YKI2RlZmlu
ZSBsbXBfcmVhc29ucyBfc2V0X3ZlcihsbXBfcmVhc29ucykKI2RlZmluZSBfX3Zlcl9oYXNoYmlu
X2ZpbmQgc21wX2YwZDZlMTU0CiNkZWZpbmUgaGFzaGJpbl9maW5kIF9zZXRfdmVyKGhhc2hiaW5f
ZmluZCkKI2RlZmluZSBfX3Zlcl9oYXNoYmluX25ldyBzbXBfZDVmYzNjNjgKI2RlZmluZSBoYXNo
YmluX25ldyBfc2V0X3ZlcihoYXNoYmluX25ldykKI2RlZmluZSBfX3Zlcl9oYXNoYmluX2luc2Vy
dCBzbXBfNDQyYmFjNDcKI2RlZmluZSBoYXNoYmluX2luc2VydCBfc2V0X3ZlcihoYXNoYmluX2lu
c2VydCkKI2RlZmluZSBfX3Zlcl9oYXNoYmluX2RlbGV0ZSBzbXBfYjQ1YjUwMzcKI2RlZmluZSBo
YXNoYmluX2RlbGV0ZSBfc2V0X3ZlcihoYXNoYmluX2RlbGV0ZSkKI2RlZmluZSBfX3Zlcl9oYXNo
YmluX3JlbW92ZSBzbXBfNDg0YmQ3YWIKI2RlZmluZSBoYXNoYmluX3JlbW92ZSBfc2V0X3Zlciho
YXNoYmluX3JlbW92ZSkKI2RlZmluZSBfX3Zlcl9oYXNoYmluX3JlbW92ZV90aGlzIHNtcF9iZmNi
YWE3MAojZGVmaW5lIGhhc2hiaW5fcmVtb3ZlX3RoaXMgX3NldF92ZXIoaGFzaGJpbl9yZW1vdmVf
dGhpcykKI2RlZmluZSBfX3Zlcl9oYXNoYmluX2dldF9uZXh0IHNtcF8wNzk5MGYwNAojZGVmaW5l
IGhhc2hiaW5fZ2V0X25leHQgX3NldF92ZXIoaGFzaGJpbl9nZXRfbmV4dCkKI2RlZmluZSBfX3Zl
cl9oYXNoYmluX2dldF9maXJzdCBzbXBfNzlkOTI3YTAKI2RlZmluZSBoYXNoYmluX2dldF9maXJz
dCBfc2V0X3ZlcihoYXNoYmluX2dldF9maXJzdCkKI2RlZmluZSBfX3Zlcl9pcmxhcF9vcGVuIHNt
cF8wODBhNGExNAojZGVmaW5lIGlybGFwX29wZW4gX3NldF92ZXIoaXJsYXBfb3BlbikKI2RlZmlu
ZSBfX3Zlcl9pcmxhcF9jbG9zZSBzbXBfNmJkNTJmMjkKI2RlZmluZSBpcmxhcF9jbG9zZSBfc2V0
X3ZlcihpcmxhcF9jbG9zZSkKI2RlZmluZSBfX3Zlcl9pcmRhX2luaXRfbWF4X3Fvc19jYXBhYmls
aWVzIHNtcF82YjA0M2ViYQojZGVmaW5lIGlyZGFfaW5pdF9tYXhfcW9zX2NhcGFiaWxpZXMgX3Nl
dF92ZXIoaXJkYV9pbml0X21heF9xb3NfY2FwYWJpbGllcykKI2RlZmluZSBfX3Zlcl9pcmRhX3Fv
c19iaXRzX3RvX3ZhbHVlIHNtcF80NDhiOGFhYQojZGVmaW5lIGlyZGFfcW9zX2JpdHNfdG9fdmFs
dWUgX3NldF92ZXIoaXJkYV9xb3NfYml0c190b192YWx1ZSkKI2RlZmluZSBfX3Zlcl9pcmRhX2Rl
dmljZV9zZXR1cCBzbXBfNjZkNTAwYzAKI2RlZmluZSBpcmRhX2RldmljZV9zZXR1cCBfc2V0X3Zl
cihpcmRhX2RldmljZV9zZXR1cCkKI2RlZmluZSBfX3Zlcl9pcmRhX2RldmljZV9zZXRfbWVkaWFf
YnVzeSBzbXBfYjkxYTczNDQKI2RlZmluZSBpcmRhX2RldmljZV9zZXRfbWVkaWFfYnVzeSBfc2V0
X3ZlcihpcmRhX2RldmljZV9zZXRfbWVkaWFfYnVzeSkKI2RlZmluZSBfX3Zlcl9pcmRhX2Rldmlj
ZV90eHF1ZXVlX2VtcHR5IHNtcF9mYzgzNTRjYQojZGVmaW5lIGlyZGFfZGV2aWNlX3R4cXVldWVf
ZW1wdHkgX3NldF92ZXIoaXJkYV9kZXZpY2VfdHhxdWV1ZV9lbXB0eSkKI2RlZmluZSBfX3Zlcl9p
cmRhX2RldmljZV9kb25nbGVfaW5pdCBzbXBfMmNiNGM3MzgKI2RlZmluZSBpcmRhX2RldmljZV9k
b25nbGVfaW5pdCBfc2V0X3ZlcihpcmRhX2RldmljZV9kb25nbGVfaW5pdCkKI2RlZmluZSBfX3Zl
cl9pcmRhX2RldmljZV9kb25nbGVfY2xlYW51cCBzbXBfNGUwMzgxYzMKI2RlZmluZSBpcmRhX2Rl
dmljZV9kb25nbGVfY2xlYW51cCBfc2V0X3ZlcihpcmRhX2RldmljZV9kb25nbGVfY2xlYW51cCkK
I2RlZmluZSBfX3Zlcl9pcmRhX2RldmljZV9yZWdpc3Rlcl9kb25nbGUgc21wX2RjODMxMDY5CiNk
ZWZpbmUgaXJkYV9kZXZpY2VfcmVnaXN0ZXJfZG9uZ2xlIF9zZXRfdmVyKGlyZGFfZGV2aWNlX3Jl
Z2lzdGVyX2RvbmdsZSkKI2RlZmluZSBfX3Zlcl9pcmRhX2RldmljZV91bnJlZ2lzdGVyX2Rvbmds
ZSBzbXBfZTYwNTM3MmMKI2RlZmluZSBpcmRhX2RldmljZV91bnJlZ2lzdGVyX2RvbmdsZSBfc2V0
X3ZlcihpcmRhX2RldmljZV91bnJlZ2lzdGVyX2RvbmdsZSkKI2RlZmluZSBfX3Zlcl9pcmRhX3Rh
c2tfZXhlY3V0ZSBzbXBfZmZhYTgyZmUKI2RlZmluZSBpcmRhX3Rhc2tfZXhlY3V0ZSBfc2V0X3Zl
cihpcmRhX3Rhc2tfZXhlY3V0ZSkKI2RlZmluZSBfX3Zlcl9pcmRhX3Rhc2tfa2ljayBzbXBfNmI5
ODgxMTQKI2RlZmluZSBpcmRhX3Rhc2tfa2ljayBfc2V0X3ZlcihpcmRhX3Rhc2tfa2ljaykKI2Rl
ZmluZSBfX3Zlcl9pcmRhX3Rhc2tfbmV4dF9zdGF0ZSBzbXBfZmI2ZjBiOTMKI2RlZmluZSBpcmRh
X3Rhc2tfbmV4dF9zdGF0ZSBfc2V0X3ZlcihpcmRhX3Rhc2tfbmV4dF9zdGF0ZSkKI2RlZmluZSBf
X3Zlcl9pcmRhX3Rhc2tfZGVsZXRlIHNtcF80MmUyMWM2NAojZGVmaW5lIGlyZGFfdGFza19kZWxl
dGUgX3NldF92ZXIoaXJkYV90YXNrX2RlbGV0ZSkKI2RlZmluZSBfX3Zlcl9hc3luY193cmFwX3Nr
YiBzbXBfMmI5MTM0NWIKI2RlZmluZSBhc3luY193cmFwX3NrYiBfc2V0X3Zlcihhc3luY193cmFw
X3NrYikKI2RlZmluZSBfX3Zlcl9hc3luY191bndyYXBfY2hhciBzbXBfMmFmMmFhZWYKI2RlZmlu
ZSBhc3luY191bndyYXBfY2hhciBfc2V0X3Zlcihhc3luY191bndyYXBfY2hhcikKI2RlZmluZSBf
X3Zlcl9pcmRhX3N0YXJ0X3RpbWVyIHNtcF84ZDdmMDM5YwojZGVmaW5lIGlyZGFfc3RhcnRfdGlt
ZXIgX3NldF92ZXIoaXJkYV9zdGFydF90aW1lcikKI2RlZmluZSBfX3Zlcl9zZXR1cF9kbWEgc21w
XzAxNDg1OTUzCiNkZWZpbmUgc2V0dXBfZG1hIF9zZXRfdmVyKHNldHVwX2RtYSkKI2RlZmluZSBf
X3Zlcl9pbmZyYXJlZF9tb2RlIHNtcF84Y2RmODExYwojZGVmaW5lIGluZnJhcmVkX21vZGUgX3Nl
dF92ZXIoaW5mcmFyZWRfbW9kZSkKIyAxMjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdWxlcy9pc2FwbnAudmVyIiAxCiNkZWZpbmUgX192ZXJfaXNhcG5wX2NhcmRzIHNt
cF81OTNkYmZkMgojZGVmaW5lIGlzYXBucF9jYXJkcyBfc2V0X3Zlcihpc2FwbnBfY2FyZHMpCiNk
ZWZpbmUgX192ZXJfaXNhcG5wX2RldmljZXMgc21wXzJkYjZmYmE2CiNkZWZpbmUgaXNhcG5wX2Rl
dmljZXMgX3NldF92ZXIoaXNhcG5wX2RldmljZXMpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3ByZXNl
bnQgc21wX2JmOGIzOWU5CiNkZWZpbmUgaXNhcG5wX3ByZXNlbnQgX3NldF92ZXIoaXNhcG5wX3By
ZXNlbnQpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2NmZ19iZWdpbiBzbXBfNzcwYTAwMzYKI2RlZmlu
ZSBpc2FwbnBfY2ZnX2JlZ2luIF9zZXRfdmVyKGlzYXBucF9jZmdfYmVnaW4pCiNkZWZpbmUgX192
ZXJfaXNhcG5wX2NmZ19lbmQgc21wXzI4YjcxNWE2CiNkZWZpbmUgaXNhcG5wX2NmZ19lbmQgX3Nl
dF92ZXIoaXNhcG5wX2NmZ19lbmQpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3JlYWRfYnl0ZSBzbXBf
ZTNiZTgyYjQKI2RlZmluZSBpc2FwbnBfcmVhZF9ieXRlIF9zZXRfdmVyKGlzYXBucF9yZWFkX2J5
dGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3JlYWRfd29yZCBzbXBfYmYzZDc2NzAKI2RlZmluZSBp
c2FwbnBfcmVhZF93b3JkIF9zZXRfdmVyKGlzYXBucF9yZWFkX3dvcmQpCiNkZWZpbmUgX192ZXJf
aXNhcG5wX3JlYWRfZHdvcmQgc21wX2NmYmY3MjQ3CiNkZWZpbmUgaXNhcG5wX3JlYWRfZHdvcmQg
X3NldF92ZXIoaXNhcG5wX3JlYWRfZHdvcmQpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3dyaXRlX2J5
dGUgc21wX2RhOGZkNDk1CiNkZWZpbmUgaXNhcG5wX3dyaXRlX2J5dGUgX3NldF92ZXIoaXNhcG5w
X3dyaXRlX2J5dGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3dyaXRlX3dvcmQgc21wXzZhZWQzYTI0
CiNkZWZpbmUgaXNhcG5wX3dyaXRlX3dvcmQgX3NldF92ZXIoaXNhcG5wX3dyaXRlX3dvcmQpCiNk
ZWZpbmUgX192ZXJfaXNhcG5wX3dyaXRlX2R3b3JkIHNtcF9kN2RjNTk5YQojZGVmaW5lIGlzYXBu
cF93cml0ZV9kd29yZCBfc2V0X3Zlcihpc2FwbnBfd3JpdGVfZHdvcmQpCiNkZWZpbmUgX192ZXJf
aXNhcG5wX3dha2Ugc21wX2ZjNGUyMTQwCiNkZWZpbmUgaXNhcG5wX3dha2UgX3NldF92ZXIoaXNh
cG5wX3dha2UpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2RldmljZSBzbXBfZTAwNDg5ZWYKI2RlZmlu
ZSBpc2FwbnBfZGV2aWNlIF9zZXRfdmVyKGlzYXBucF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfaXNh
cG5wX2FjdGl2YXRlIHNtcF8yZWU2NmI0MQojZGVmaW5lIGlzYXBucF9hY3RpdmF0ZSBfc2V0X3Zl
cihpc2FwbnBfYWN0aXZhdGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2RlYWN0aXZhdGUgc21wX2U1
YmMzMDQwCiNkZWZpbmUgaXNhcG5wX2RlYWN0aXZhdGUgX3NldF92ZXIoaXNhcG5wX2RlYWN0aXZh
dGUpCiNkZWZpbmUgX192ZXJfaXNhcG5wX2ZpbmRfY2FyZCBzbXBfYmFlOGI3OTAKI2RlZmluZSBp
c2FwbnBfZmluZF9jYXJkIF9zZXRfdmVyKGlzYXBucF9maW5kX2NhcmQpCiNkZWZpbmUgX192ZXJf
aXNhcG5wX2ZpbmRfZGV2IHNtcF8yMmRkZWU3NgojZGVmaW5lIGlzYXBucF9maW5kX2RldiBfc2V0
X3Zlcihpc2FwbnBfZmluZF9kZXYpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3Byb2JlX2NhcmRzIHNt
cF8xNTc4MTczMgojZGVmaW5lIGlzYXBucF9wcm9iZV9jYXJkcyBfc2V0X3Zlcihpc2FwbnBfcHJv
YmVfY2FyZHMpCiNkZWZpbmUgX192ZXJfaXNhcG5wX3Byb2JlX2RldnMgc21wXzU0NDQyZGViCiNk
ZWZpbmUgaXNhcG5wX3Byb2JlX2RldnMgX3NldF92ZXIoaXNhcG5wX3Byb2JlX2RldnMpCiNkZWZp
bmUgX192ZXJfaXNhcG5wX2FjdGl2YXRlX2RldiBzbXBfNWJiZTBlZTMKI2RlZmluZSBpc2FwbnBf
YWN0aXZhdGVfZGV2IF9zZXRfdmVyKGlzYXBucF9hY3RpdmF0ZV9kZXYpCiNkZWZpbmUgX192ZXJf
aXNhcG5wX3Jlc291cmNlX2NoYW5nZSBzbXBfMDliOTY1YWYKI2RlZmluZSBpc2FwbnBfcmVzb3Vy
Y2VfY2hhbmdlIF9zZXRfdmVyKGlzYXBucF9yZXNvdXJjZV9jaGFuZ2UpCiMgMTIyICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvaXNkbl9jb21tb24udmVyIiAxCiNk
ZWZpbmUgX192ZXJfcmVnaXN0ZXJfaXNkbiBzbXBfZTk2MTJjYjEKI2RlZmluZSByZWdpc3Rlcl9p
c2RuIF9zZXRfdmVyKHJlZ2lzdGVyX2lzZG4pCiMgMTIzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvaXNlbnNlLnZlciIgMQojIDEyNCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL2tjYXBpLnZlciIgMQojZGVmaW5lIF9fdmVyX2F0
dGFjaF9jYXBpX2ludGVyZmFjZSBzbXBfNTU0OTA2ODcKI2RlZmluZSBhdHRhY2hfY2FwaV9pbnRl
cmZhY2UgX3NldF92ZXIoYXR0YWNoX2NhcGlfaW50ZXJmYWNlKQojZGVmaW5lIF9fdmVyX2RldGFj
aF9jYXBpX2ludGVyZmFjZSBzbXBfODNjNzEyMzIKI2RlZmluZSBkZXRhY2hfY2FwaV9pbnRlcmZh
Y2UgX3NldF92ZXIoZGV0YWNoX2NhcGlfaW50ZXJmYWNlKQojZGVmaW5lIF9fdmVyX2F0dGFjaF9j
YXBpX2RyaXZlciBzbXBfMzQyNjdjYjcKI2RlZmluZSBhdHRhY2hfY2FwaV9kcml2ZXIgX3NldF92
ZXIoYXR0YWNoX2NhcGlfZHJpdmVyKQojZGVmaW5lIF9fdmVyX2RldGFjaF9jYXBpX2RyaXZlciBz
bXBfOTM2NDNlMDAKI2RlZmluZSBkZXRhY2hfY2FwaV9kcml2ZXIgX3NldF92ZXIoZGV0YWNoX2Nh
cGlfZHJpdmVyKQojIDEyNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL2tkYl9pby52ZXIiIDEKI2RlZmluZSBfX3Zlcl9rZGJfcmVhZCBzbXBfNGE0ODJiM2IKI2Rl
ZmluZSBrZGJfcmVhZCBfc2V0X3ZlcihrZGJfcmVhZCkKIyAxMjYgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9rZGJtYWluLnZlciIgMQojZGVmaW5lIF9fdmVyX2tk
Yl9yZWdpc3RlciBzbXBfY2QwYzJjYjMKI2RlZmluZSBrZGJfcmVnaXN0ZXIgX3NldF92ZXIoa2Ri
X3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX2tkYl91bnJlZ2lzdGVyIHNtcF8yNDdlZjgzMQojZGVm
aW5lIGtkYl91bnJlZ2lzdGVyIF9zZXRfdmVyKGtkYl91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVy
X2tkYmFfZ2V0d29yZCBzbXBfODc4YmU2ZDAKI2RlZmluZSBrZGJhX2dldHdvcmQgX3NldF92ZXIo
a2RiYV9nZXR3b3JkKQojZGVmaW5lIF9fdmVyX2tkYmFfcHV0d29yZCBzbXBfNmQ3NjFhYzkKI2Rl
ZmluZSBrZGJhX3B1dHdvcmQgX3NldF92ZXIoa2RiYV9wdXR3b3JkKQojZGVmaW5lIF9fdmVyX2tk
YmdldHVsYXJnIHNtcF9hOGRlYzNmYQojZGVmaW5lIGtkYmdldHVsYXJnIF9zZXRfdmVyKGtkYmdl
dHVsYXJnKQojZGVmaW5lIF9fdmVyX2tkYmdldGVudiBzbXBfOGI2N2Q1MDkKI2RlZmluZSBrZGJn
ZXRlbnYgX3NldF92ZXIoa2RiZ2V0ZW52KQojZGVmaW5lIF9fdmVyX2tkYmdldGludGVudiBzbXBf
NjI1ZDZkM2YKI2RlZmluZSBrZGJnZXRpbnRlbnYgX3NldF92ZXIoa2RiZ2V0aW50ZW52KQojZGVm
aW5lIF9fdmVyX2tkYmdldGFkZHJhcmcgc21wXzY5MWYxMzFlCiNkZWZpbmUga2RiZ2V0YWRkcmFy
ZyBfc2V0X3ZlcihrZGJnZXRhZGRyYXJnKQojZGVmaW5lIF9fdmVyX2tkYiBzbXBfMmIzMDE0OWYK
I2RlZmluZSBrZGIgX3NldF92ZXIoa2RiKQojZGVmaW5lIF9fdmVyX2tkYl9vbiBzbXBfMzJkYTU5
NmIKI2RlZmluZSBrZGJfb24gX3NldF92ZXIoa2RiX29uKQojZGVmaW5lIF9fdmVyX2tkYmdldHN5
bXZhbCBzbXBfNjg3YjZhMTYKI2RlZmluZSBrZGJnZXRzeW12YWwgX3NldF92ZXIoa2RiZ2V0c3lt
dmFsKQojZGVmaW5lIF9fdmVyX2tkYm5lYXJzeW0gc21wX2FjYzliZGRhCiNkZWZpbmUga2RibmVh
cnN5bSBfc2V0X3ZlcihrZGJuZWFyc3ltKQojZGVmaW5lIF9fdmVyX2tkYl9wcmludGYgc21wX2Q0
OGM2MzIxCiNkZWZpbmUga2RiX3ByaW50ZiBfc2V0X3ZlcihrZGJfcHJpbnRmKQojZGVmaW5lIF9f
dmVyX2tkYl9zeW1ib2xfcHJpbnQgc21wXzM0OGVmNzUzCiNkZWZpbmUga2RiX3N5bWJvbF9wcmlu
dCBfc2V0X3ZlcihrZGJfc3ltYm9sX3ByaW50KQojIDEyNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tb2R1bGVzL2tleWJvYXJkLnZlciIgMQojZGVmaW5lIF9fdmVyX2hhbmRs
ZV9zY2FuY29kZSBzbXBfZDNkNmEyZjEKI2RlZmluZSBoYW5kbGVfc2NhbmNvZGUgX3NldF92ZXIo
aGFuZGxlX3NjYW5jb2RlKQojZGVmaW5lIF9fdmVyX2tiZF9sZWRmdW5jIHNtcF9mYTY3Y2M1Zgoj
ZGVmaW5lIGtiZF9sZWRmdW5jIF9zZXRfdmVyKGtiZF9sZWRmdW5jKQojZGVmaW5lIF9fdmVyX2tl
eWJvYXJkX3Rhc2tsZXQgc21wX2RjNGQ1NWE2CiNkZWZpbmUga2V5Ym9hcmRfdGFza2xldCBfc2V0
X3ZlcihrZXlib2FyZF90YXNrbGV0KQojIDEyOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGVzL2ttb2QudmVyIiAxCiNkZWZpbmUgX192ZXJfaG90cGx1Z19wYXRoIHNt
cF8xMmRjZDVhNgojZGVmaW5lIGhvdHBsdWdfcGF0aCBfc2V0X3Zlcihob3RwbHVnX3BhdGgpCiNk
ZWZpbmUgX192ZXJfZXhlY191c2VybW9kZWhlbHBlciBzbXBfYzQ3YmY2YWQKI2RlZmluZSBleGVj
X3VzZXJtb2RlaGVscGVyIF9zZXRfdmVyKGV4ZWNfdXNlcm1vZGVoZWxwZXIpCiNkZWZpbmUgX192
ZXJfY2FsbF91c2VybW9kZWhlbHBlciBzbXBfODRhMjkxYzgKI2RlZmluZSBjYWxsX3VzZXJtb2Rl
aGVscGVyIF9zZXRfdmVyKGNhbGxfdXNlcm1vZGVoZWxwZXIpCiNkZWZpbmUgX192ZXJfcmVxdWVz
dF9tb2R1bGUgc21wXzI3ZTRkYzA0CiNkZWZpbmUgcmVxdWVzdF9tb2R1bGUgX3NldF92ZXIocmVx
dWVzdF9tb2R1bGUpCiMgMTI5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHVsZXMva3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX3JlZ2lzdGVyIHNt
cF9kYmQzYWMwMQojZGVmaW5lIGludGVyX21vZHVsZV9yZWdpc3RlciBfc2V0X3ZlcihpbnRlcl9t
b2R1bGVfcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX3VucmVnaXN0ZXIgc21w
XzdhOWU4NDVlCiNkZWZpbmUgaW50ZXJfbW9kdWxlX3VucmVnaXN0ZXIgX3NldF92ZXIoaW50ZXJf
bW9kdWxlX3VucmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX2dldCBzbXBfZjZh
MGNlMjQKI2RlZmluZSBpbnRlcl9tb2R1bGVfZ2V0IF9zZXRfdmVyKGludGVyX21vZHVsZV9nZXQp
CiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX2dldF9yZXF1ZXN0IHNtcF9iNjlmODI2YgojZGVm
aW5lIGludGVyX21vZHVsZV9nZXRfcmVxdWVzdCBfc2V0X3ZlcihpbnRlcl9tb2R1bGVfZ2V0X3Jl
cXVlc3QpCiNkZWZpbmUgX192ZXJfaW50ZXJfbW9kdWxlX3B1dCBzbXBfNmI5OWY3ZDgKI2RlZmlu
ZSBpbnRlcl9tb2R1bGVfcHV0IF9zZXRfdmVyKGludGVyX21vZHVsZV9wdXQpCiNkZWZpbmUgX192
ZXJfdHJ5X2luY19tb2RfY291bnQgc21wX2VhZDIwMmYzCiNkZWZpbmUgdHJ5X2luY19tb2RfY291
bnQgX3NldF92ZXIodHJ5X2luY19tb2RfY291bnQpCiNkZWZpbmUgX192ZXJfX19zdGFydF9fX2th
bGxzeW1zIHNtcF85YzFiMzhhNwojZGVmaW5lIF9fc3RhcnRfX19rYWxsc3ltcyBfc2V0X3Zlcihf
X3N0YXJ0X19fa2FsbHN5bXMpCiNkZWZpbmUgX192ZXJfX19zdG9wX19fa2FsbHN5bXMgc21wXzFj
M2FkYmMwCiNkZWZpbmUgX19zdG9wX19fa2FsbHN5bXMgX3NldF92ZXIoX19zdG9wX19fa2FsbHN5
bXMpCiNkZWZpbmUgX192ZXJfa2FsbHN5bXNfc3ltYm9sX3RvX2FkZHJlc3Mgc21wXzEzYmVkMDQ0
CiNkZWZpbmUga2FsbHN5bXNfc3ltYm9sX3RvX2FkZHJlc3MgX3NldF92ZXIoa2FsbHN5bXNfc3lt
Ym9sX3RvX2FkZHJlc3MpCiNkZWZpbmUgX192ZXJfa2FsbHN5bXNfYWRkcmVzc190b19zeW1ib2wg
c21wXzQwODRmN2QzCiNkZWZpbmUga2FsbHN5bXNfYWRkcmVzc190b19zeW1ib2wgX3NldF92ZXIo
a2FsbHN5bXNfYWRkcmVzc190b19zeW1ib2wpCiNkZWZpbmUgX192ZXJfZG9fbW1hcF9wZ29mZiBz
bXBfZTNhOTAzNDAKI2RlZmluZSBkb19tbWFwX3Bnb2ZmIF9zZXRfdmVyKGRvX21tYXBfcGdvZmYp
CiNkZWZpbmUgX192ZXJfZG9fbXVubWFwIHNtcF9iMGE1MjAwNwojZGVmaW5lIGRvX211bm1hcCBf
c2V0X3Zlcihkb19tdW5tYXApCiNkZWZpbmUgX192ZXJfZG9fYnJrIHNtcF85ZWVjZGUxNgojZGVm
aW5lIGRvX2JyayBfc2V0X3Zlcihkb19icmspCiNkZWZpbmUgX192ZXJfZXhpdF9tbSBzbXBfODZk
MjQ3MTgKI2RlZmluZSBleGl0X21tIF9zZXRfdmVyKGV4aXRfbW0pCiNkZWZpbmUgX192ZXJfZXhp
dF9maWxlcyBzbXBfODBhYTUzMzgKI2RlZmluZSBleGl0X2ZpbGVzIF9zZXRfdmVyKGV4aXRfZmls
ZXMpCiNkZWZpbmUgX192ZXJfZXhpdF9mcyBzbXBfZGM1MzZmNTIKI2RlZmluZSBleGl0X2ZzIF9z
ZXRfdmVyKGV4aXRfZnMpCiNkZWZpbmUgX192ZXJfZXhpdF9zaWdoYW5kIHNtcF81ZDE3OWE0OAoj
ZGVmaW5lIGV4aXRfc2lnaGFuZCBfc2V0X3ZlcihleGl0X3NpZ2hhbmQpCiNkZWZpbmUgX192ZXJf
X2FsbG9jX3BhZ2VzIHNtcF82OWVjNTMyMgojZGVmaW5lIF9hbGxvY19wYWdlcyBfc2V0X3Zlcihf
YWxsb2NfcGFnZXMpCiNkZWZpbmUgX192ZXJfX19hbGxvY19wYWdlcyBzbXBfNDg1NWFhNDAKI2Rl
ZmluZSBfX2FsbG9jX3BhZ2VzIF9zZXRfdmVyKF9fYWxsb2NfcGFnZXMpCiNkZWZpbmUgX192ZXJf
YWxsb2NfcGFnZXNfbm9kZSBzbXBfOWI2ZWEzY2EKI2RlZmluZSBhbGxvY19wYWdlc19ub2RlIF9z
ZXRfdmVyKGFsbG9jX3BhZ2VzX25vZGUpCiNkZWZpbmUgX192ZXJfX19nZXRfZnJlZV9wYWdlcyBz
bXBfMTlkOWFjNDAKI2RlZmluZSBfX2dldF9mcmVlX3BhZ2VzIF9zZXRfdmVyKF9fZ2V0X2ZyZWVf
cGFnZXMpCiNkZWZpbmUgX192ZXJfZ2V0X3plcm9lZF9wYWdlIHNtcF8zZmFkNmE1NwojZGVmaW5l
IGdldF96ZXJvZWRfcGFnZSBfc2V0X3ZlcihnZXRfemVyb2VkX3BhZ2UpCiNkZWZpbmUgX192ZXJf
X19mcmVlX3BhZ2VzIHNtcF85NjdjNDQ2NQojZGVmaW5lIF9fZnJlZV9wYWdlcyBfc2V0X3Zlcihf
X2ZyZWVfcGFnZXMpCiNkZWZpbmUgX192ZXJfZnJlZV9wYWdlcyBzbXBfYjUxMzY1MDYKI2RlZmlu
ZSBmcmVlX3BhZ2VzIF9zZXRfdmVyKGZyZWVfcGFnZXMpCiNkZWZpbmUgX192ZXJfbnVtX3BoeXNw
YWdlcyBzbXBfMDk0OGNkZTkKI2RlZmluZSBudW1fcGh5c3BhZ2VzIF9zZXRfdmVyKG51bV9waHlz
cGFnZXMpCiNkZWZpbmUgX192ZXJfa21lbV9maW5kX2dlbmVyYWxfY2FjaGVwIHNtcF9hMWNjOTdj
ZgojZGVmaW5lIGttZW1fZmluZF9nZW5lcmFsX2NhY2hlcCBfc2V0X3ZlcihrbWVtX2ZpbmRfZ2Vu
ZXJhbF9jYWNoZXApCiNkZWZpbmUgX192ZXJfa21lbV9jYWNoZV9jcmVhdGUgc21wX2FiNTJjNzMx
CiNkZWZpbmUga21lbV9jYWNoZV9jcmVhdGUgX3NldF92ZXIoa21lbV9jYWNoZV9jcmVhdGUpCiNk
ZWZpbmUgX192ZXJfa21lbV9jYWNoZV9kZXN0cm95IHNtcF9kZjgzYzY5MgojZGVmaW5lIGttZW1f
Y2FjaGVfZGVzdHJveSBfc2V0X3ZlcihrbWVtX2NhY2hlX2Rlc3Ryb3kpCiNkZWZpbmUgX192ZXJf
a21lbV9jYWNoZV9zaHJpbmsgc21wXzEyZjdjZjA0CiNkZWZpbmUga21lbV9jYWNoZV9zaHJpbmsg
X3NldF92ZXIoa21lbV9jYWNoZV9zaHJpbmspCiNkZWZpbmUgX192ZXJfa21lbV9jYWNoZV9hbGxv
YyBzbXBfNzU4MTA5NTYKI2RlZmluZSBrbWVtX2NhY2hlX2FsbG9jIF9zZXRfdmVyKGttZW1fY2Fj
aGVfYWxsb2MpCiNkZWZpbmUgX192ZXJfa21lbV9jYWNoZV9mcmVlIHNtcF84OTFmMjY4NgojZGVm
aW5lIGttZW1fY2FjaGVfZnJlZSBfc2V0X3ZlcihrbWVtX2NhY2hlX2ZyZWUpCiNkZWZpbmUgX192
ZXJfa21hbGxvYyBzbXBfNmY2YzFjZjcKI2RlZmluZSBrbWFsbG9jIF9zZXRfdmVyKGttYWxsb2Mp
CiNkZWZpbmUgX192ZXJfa2ZyZWUgc21wXzAzN2EwY2JhCiNkZWZpbmUga2ZyZWUgX3NldF92ZXIo
a2ZyZWUpCiNkZWZpbmUgX192ZXJfdmZyZWUgc21wXzJmZDFkODFjCiNkZWZpbmUgdmZyZWUgX3Nl
dF92ZXIodmZyZWUpCiNkZWZpbmUgX192ZXJfX192bWFsbG9jIHNtcF83OTk5NWM1YgojZGVmaW5l
IF9fdm1hbGxvYyBfc2V0X3ZlcihfX3ZtYWxsb2MpCiNkZWZpbmUgX192ZXJfbWVtX21hcCBzbXBf
OGZhOWNhMTEKI2RlZmluZSBtZW1fbWFwIF9zZXRfdmVyKG1lbV9tYXApCiNkZWZpbmUgX192ZXJf
cmVtYXBfcGFnZV9yYW5nZSBzbXBfNjlkMDFlNzMKI2RlZmluZSByZW1hcF9wYWdlX3JhbmdlIF9z
ZXRfdmVyKHJlbWFwX3BhZ2VfcmFuZ2UpCiNkZWZpbmUgX192ZXJfbWF4X21hcG5yIHNtcF8wMTEz
OWZmYwojZGVmaW5lIG1heF9tYXBuciBfc2V0X3ZlcihtYXhfbWFwbnIpCiNkZWZpbmUgX192ZXJf
aGlnaF9tZW1vcnkgc21wXzhhN2QxYzMxCiNkZWZpbmUgaGlnaF9tZW1vcnkgX3NldF92ZXIoaGln
aF9tZW1vcnkpCiNkZWZpbmUgX192ZXJfdm10cnVuY2F0ZSBzbXBfYTY1MWExMTcKI2RlZmluZSB2
bXRydW5jYXRlIF9zZXRfdmVyKHZtdHJ1bmNhdGUpCiNkZWZpbmUgX192ZXJfZmluZF92bWEgc21w
XzlhZTI1ZWQyCiNkZWZpbmUgZmluZF92bWEgX3NldF92ZXIoZmluZF92bWEpCiNkZWZpbmUgX192
ZXJfZ2V0X3VubWFwcGVkX2FyZWEgc21wXzhiM2I3OTBkCiNkZWZpbmUgZ2V0X3VubWFwcGVkX2Fy
ZWEgX3NldF92ZXIoZ2V0X3VubWFwcGVkX2FyZWEpCiNkZWZpbmUgX192ZXJfaW5pdF9tbSBzbXBf
MzlkNTZlZDkKI2RlZmluZSBpbml0X21tIF9zZXRfdmVyKGluaXRfbW0pCiNkZWZpbmUgX192ZXJf
ZGVhY3RpdmF0ZV9wYWdlIHNtcF9mMjY0ODI0OAojZGVmaW5lIGRlYWN0aXZhdGVfcGFnZSBfc2V0
X3ZlcihkZWFjdGl2YXRlX3BhZ2UpCiNkZWZpbmUgX192ZXJfZGVmX2Jsa19mb3BzIHNtcF83NGVi
NGE2YQojZGVmaW5lIGRlZl9ibGtfZm9wcyBfc2V0X3ZlcihkZWZfYmxrX2ZvcHMpCiNkZWZpbmUg
X192ZXJfdXBkYXRlX2F0aW1lIHNtcF85MWNhMWE3MAojZGVmaW5lIHVwZGF0ZV9hdGltZSBfc2V0
X3Zlcih1cGRhdGVfYXRpbWUpCiNkZWZpbmUgX192ZXJfZ2V0X2ZzX3R5cGUgc21wX2EzN2Q0NWYy
CiNkZWZpbmUgZ2V0X2ZzX3R5cGUgX3NldF92ZXIoZ2V0X2ZzX3R5cGUpCiNkZWZpbmUgX192ZXJf
Z2V0X3N1cGVyIHNtcF84NTEzMmYzYgojZGVmaW5lIGdldF9zdXBlciBfc2V0X3ZlcihnZXRfc3Vw
ZXIpCiNkZWZpbmUgX192ZXJfZ2V0bmFtZSBzbXBfN2M2MGQ2NmUKI2RlZmluZSBnZXRuYW1lIF9z
ZXRfdmVyKGdldG5hbWUpCiNkZWZpbmUgX192ZXJfbmFtZXNfY2FjaGVwIHNtcF9kMjU0NjliNAoj
ZGVmaW5lIG5hbWVzX2NhY2hlcCBfc2V0X3ZlcihuYW1lc19jYWNoZXApCiNkZWZpbmUgX192ZXJf
ZnB1dCBzbXBfNDZlYzdkMzAKI2RlZmluZSBmcHV0IF9zZXRfdmVyKGZwdXQpCiNkZWZpbmUgX192
ZXJfZmdldCBzbXBfMWY2YTFjNzMKI2RlZmluZSBmZ2V0IF9zZXRfdmVyKGZnZXQpCiNkZWZpbmUg
X192ZXJfaWdyYWIgc21wXzJkNDNlNGEzCiNkZWZpbmUgaWdyYWIgX3NldF92ZXIoaWdyYWIpCiNk
ZWZpbmUgX192ZXJfaXVuaXF1ZSBzbXBfMmRmN2UyMWIKI2RlZmluZSBpdW5pcXVlIF9zZXRfdmVy
KGl1bmlxdWUpCiNkZWZpbmUgX192ZXJfaWdldDQgc21wXzExMWNjOGExCiNkZWZpbmUgaWdldDQg
X3NldF92ZXIoaWdldDQpCiNkZWZpbmUgX192ZXJfaXB1dCBzbXBfNWVkYmE2MmQKI2RlZmluZSBp
cHV0IF9zZXRfdmVyKGlwdXQpCiNkZWZpbmUgX192ZXJfZm9yY2VfZGVsZXRlIHNtcF9jNWUxYTE1
NAojZGVmaW5lIGZvcmNlX2RlbGV0ZSBfc2V0X3Zlcihmb3JjZV9kZWxldGUpCiNkZWZpbmUgX192
ZXJfZm9sbG93X3VwIHNtcF9hZGUzYTdhMgojZGVmaW5lIGZvbGxvd191cCBfc2V0X3Zlcihmb2xs
b3dfdXApCiNkZWZpbmUgX192ZXJfZm9sbG93X2Rvd24gc21wXzVhZTAzZTQ2CiNkZWZpbmUgZm9s
bG93X2Rvd24gX3NldF92ZXIoZm9sbG93X2Rvd24pCiNkZWZpbmUgX192ZXJfbG9va3VwX21udCBz
bXBfZWZlNzE1M2QKI2RlZmluZSBsb29rdXBfbW50IF9zZXRfdmVyKGxvb2t1cF9tbnQpCiNkZWZp
bmUgX192ZXJfcGF0aF9pbml0IHNtcF8wNTQ5YzQ2YgojZGVmaW5lIHBhdGhfaW5pdCBfc2V0X3Zl
cihwYXRoX2luaXQpCiNkZWZpbmUgX192ZXJfcGF0aF93YWxrIHNtcF9kMGFhOTViZQojZGVmaW5l
IHBhdGhfd2FsayBfc2V0X3ZlcihwYXRoX3dhbGspCiNkZWZpbmUgX192ZXJfcGF0aF9yZWxlYXNl
IHNtcF8yYzE0ODNhYwojZGVmaW5lIHBhdGhfcmVsZWFzZSBfc2V0X3ZlcihwYXRoX3JlbGVhc2Up
CiNkZWZpbmUgX192ZXJfX191c2VyX3dhbGsgc21wX2IzZDQxNzE0CiNkZWZpbmUgX191c2VyX3dh
bGsgX3NldF92ZXIoX191c2VyX3dhbGspCiNkZWZpbmUgX192ZXJfbG9va3VwX29uZV9sZW4gc21w
X2EwMDVkMmRkCiNkZWZpbmUgbG9va3VwX29uZV9sZW4gX3NldF92ZXIobG9va3VwX29uZV9sZW4p
CiNkZWZpbmUgX192ZXJfbG9va3VwX2hhc2ggc21wX2U0MGM4NWFmCiNkZWZpbmUgbG9va3VwX2hh
c2ggX3NldF92ZXIobG9va3VwX2hhc2gpCiNkZWZpbmUgX192ZXJfc3lzX2Nsb3NlIHNtcF9kZTc2
ZTdiYwojZGVmaW5lIHN5c19jbG9zZSBfc2V0X3ZlcihzeXNfY2xvc2UpCiNkZWZpbmUgX192ZXJf
ZGNhY2hlX2xvY2sgc21wX2Y3YzMyY2ExCiNkZWZpbmUgZGNhY2hlX2xvY2sgX3NldF92ZXIoZGNh
Y2hlX2xvY2spCiNkZWZpbmUgX192ZXJfZF9hbGxvY19yb290IHNtcF9lMjI0YzRjNQojZGVmaW5l
IGRfYWxsb2Nfcm9vdCBfc2V0X3ZlcihkX2FsbG9jX3Jvb3QpCiNkZWZpbmUgX192ZXJfZF9kZWxl
dGUgc21wX2M3MThiNTU3CiNkZWZpbmUgZF9kZWxldGUgX3NldF92ZXIoZF9kZWxldGUpCiNkZWZp
bmUgX192ZXJfZGdldF9sb2NrZWQgc21wX2QyODJiODA3CiNkZWZpbmUgZGdldF9sb2NrZWQgX3Nl
dF92ZXIoZGdldF9sb2NrZWQpCiNkZWZpbmUgX192ZXJfZF92YWxpZGF0ZSBzbXBfYzQ3MTNkMTkK
I2RlZmluZSBkX3ZhbGlkYXRlIF9zZXRfdmVyKGRfdmFsaWRhdGUpCiNkZWZpbmUgX192ZXJfZF9y
ZWhhc2ggc21wX2Q5MDFjMTRiCiNkZWZpbmUgZF9yZWhhc2ggX3NldF92ZXIoZF9yZWhhc2gpCiNk
ZWZpbmUgX192ZXJfZF9pbnZhbGlkYXRlIHNtcF81YTA0ZDhlZAojZGVmaW5lIGRfaW52YWxpZGF0
ZSBfc2V0X3ZlcihkX2ludmFsaWRhdGUpCiNkZWZpbmUgX192ZXJfZF9tb3ZlIHNtcF82YTZjYzY3
YwojZGVmaW5lIGRfbW92ZSBfc2V0X3ZlcihkX21vdmUpCiNkZWZpbmUgX192ZXJfZF9pbnN0YW50
aWF0ZSBzbXBfMDIxZTI1OTIKI2RlZmluZSBkX2luc3RhbnRpYXRlIF9zZXRfdmVyKGRfaW5zdGFu
dGlhdGUpCiNkZWZpbmUgX192ZXJfZF9hbGxvYyBzbXBfMjA0ZWNkNjIKI2RlZmluZSBkX2FsbG9j
IF9zZXRfdmVyKGRfYWxsb2MpCiNkZWZpbmUgX192ZXJfZF9sb29rdXAgc21wX2U5YzU2M2UxCiNk
ZWZpbmUgZF9sb29rdXAgX3NldF92ZXIoZF9sb29rdXApCiNkZWZpbmUgX192ZXJfX19kX3BhdGgg
c21wX2FmMWQ3YmZmCiNkZWZpbmUgX19kX3BhdGggX3NldF92ZXIoX19kX3BhdGgpCiNkZWZpbmUg
X192ZXJfbWFya19idWZmZXJfZGlydHkgc21wXzMzNTdiZWJjCiNkZWZpbmUgbWFya19idWZmZXJf
ZGlydHkgX3NldF92ZXIobWFya19idWZmZXJfZGlydHkpCiNkZWZpbmUgX192ZXJfc2V0X2J1ZmZl
cl9hc3luY19pbyBzbXBfMTA0N2U4ODUKI2RlZmluZSBzZXRfYnVmZmVyX2FzeW5jX2lvIF9zZXRf
dmVyKHNldF9idWZmZXJfYXN5bmNfaW8pCiNkZWZpbmUgX192ZXJfX19tYXJrX2J1ZmZlcl9kaXJ0
eSBzbXBfYzFhM2Y0YWIKI2RlZmluZSBfX21hcmtfYnVmZmVyX2RpcnR5IF9zZXRfdmVyKF9fbWFy
a19idWZmZXJfZGlydHkpCiNkZWZpbmUgX192ZXJfX19tYXJrX2lub2RlX2RpcnR5IHNtcF9lYjBm
MTU1YwojZGVmaW5lIF9fbWFya19pbm9kZV9kaXJ0eSBfc2V0X3ZlcihfX21hcmtfaW5vZGVfZGly
dHkpCiNkZWZpbmUgX192ZXJfZ2V0X2VtcHR5X2ZpbHAgc21wXzE5MzI1ZDgyCiNkZWZpbmUgZ2V0
X2VtcHR5X2ZpbHAgX3NldF92ZXIoZ2V0X2VtcHR5X2ZpbHApCiNkZWZpbmUgX192ZXJfaW5pdF9w
cml2YXRlX2ZpbGUgc21wXzFjZWU0YTkwCiNkZWZpbmUgaW5pdF9wcml2YXRlX2ZpbGUgX3NldF92
ZXIoaW5pdF9wcml2YXRlX2ZpbGUpCiNkZWZpbmUgX192ZXJfZmlscF9vcGVuIHNtcF9kNzkwZGNh
NAojZGVmaW5lIGZpbHBfb3BlbiBfc2V0X3ZlcihmaWxwX29wZW4pCiNkZWZpbmUgX192ZXJfZmls
cF9jbG9zZSBzbXBfMTE5ZWJiY2IKI2RlZmluZSBmaWxwX2Nsb3NlIF9zZXRfdmVyKGZpbHBfY2xv
c2UpCiNkZWZpbmUgX192ZXJfcHV0X2ZpbHAgc21wXzQ2NDgwNTZlCiNkZWZpbmUgcHV0X2ZpbHAg
X3NldF92ZXIocHV0X2ZpbHApCiNkZWZpbmUgX192ZXJfZmlsZXNfbG9jayBzbXBfYzJiZTIxNzkK
I2RlZmluZSBmaWxlc19sb2NrIF9zZXRfdmVyKGZpbGVzX2xvY2spCiNkZWZpbmUgX192ZXJfY2hl
Y2tfZGlza19jaGFuZ2Ugc21wXzExZDQwNzZkCiNkZWZpbmUgY2hlY2tfZGlza19jaGFuZ2UgX3Nl
dF92ZXIoY2hlY2tfZGlza19jaGFuZ2UpCiNkZWZpbmUgX192ZXJfX19pbnZhbGlkYXRlX2J1ZmZl
cnMgc21wXzk4ZjUxNTM4CiNkZWZpbmUgX19pbnZhbGlkYXRlX2J1ZmZlcnMgX3NldF92ZXIoX19p
bnZhbGlkYXRlX2J1ZmZlcnMpCiNkZWZpbmUgX192ZXJfaW52YWxpZGF0ZV9pbm9kZXMgc21wX2Qx
ZjY2ZTkyCiNkZWZpbmUgaW52YWxpZGF0ZV9pbm9kZXMgX3NldF92ZXIoaW52YWxpZGF0ZV9pbm9k
ZXMpCiNkZWZpbmUgX192ZXJfaW52YWxpZGF0ZV9kZXZpY2Ugc21wXzI1YTRiMGIyCiNkZWZpbmUg
aW52YWxpZGF0ZV9kZXZpY2UgX3NldF92ZXIoaW52YWxpZGF0ZV9kZXZpY2UpCiNkZWZpbmUgX192
ZXJfaW52YWxpZGF0ZV9pbm9kZV9wYWdlcyBzbXBfNGNmNTFjMDMKI2RlZmluZSBpbnZhbGlkYXRl
X2lub2RlX3BhZ2VzIF9zZXRfdmVyKGludmFsaWRhdGVfaW5vZGVfcGFnZXMpCiNkZWZpbmUgX192
ZXJfdHJ1bmNhdGVfaW5vZGVfcGFnZXMgc21wX2FlMjg2NDZkCiNkZWZpbmUgdHJ1bmNhdGVfaW5v
ZGVfcGFnZXMgX3NldF92ZXIodHJ1bmNhdGVfaW5vZGVfcGFnZXMpCiNkZWZpbmUgX192ZXJfZnN5
bmNfZGV2IHNtcF84ZWExMjhlMgojZGVmaW5lIGZzeW5jX2RldiBfc2V0X3Zlcihmc3luY19kZXYp
CiNkZWZpbmUgX192ZXJfcGVybWlzc2lvbiBzbXBfOWIzNTQ0NTcKI2RlZmluZSBwZXJtaXNzaW9u
IF9zZXRfdmVyKHBlcm1pc3Npb24pCiNkZWZpbmUgX192ZXJfdmZzX3Blcm1pc3Npb24gc21wXzU3
MDM5OWRmCiNkZWZpbmUgdmZzX3Blcm1pc3Npb24gX3NldF92ZXIodmZzX3Blcm1pc3Npb24pCiNk
ZWZpbmUgX192ZXJfaW5vZGVfc2V0YXR0ciBzbXBfODBhMmNlYjgKI2RlZmluZSBpbm9kZV9zZXRh
dHRyIF9zZXRfdmVyKGlub2RlX3NldGF0dHIpCiNkZWZpbmUgX192ZXJfaW5vZGVfY2hhbmdlX29r
IHNtcF80MDRkMGM1NwojZGVmaW5lIGlub2RlX2NoYW5nZV9vayBfc2V0X3Zlcihpbm9kZV9jaGFu
Z2Vfb2spCiNkZWZpbmUgX192ZXJfd3JpdGVfaW5vZGVfbm93IHNtcF9lZjRjZGJjYwojZGVmaW5l
IHdyaXRlX2lub2RlX25vdyBfc2V0X3Zlcih3cml0ZV9pbm9kZV9ub3cpCiNkZWZpbmUgX192ZXJf
bm90aWZ5X2NoYW5nZSBzbXBfYmI5Nzg2NjgKI2RlZmluZSBub3RpZnlfY2hhbmdlIF9zZXRfdmVy
KG5vdGlmeV9jaGFuZ2UpCiNkZWZpbmUgX192ZXJfc2V0X2Jsb2Nrc2l6ZSBzbXBfYTg0MjcyMmEK
I2RlZmluZSBzZXRfYmxvY2tzaXplIF9zZXRfdmVyKHNldF9ibG9ja3NpemUpCiNkZWZpbmUgX192
ZXJfZ2V0YmxrIHNtcF80OWExYTM1MgojZGVmaW5lIGdldGJsayBfc2V0X3ZlcihnZXRibGspCiNk
ZWZpbmUgX192ZXJfY2RnZXQgc21wX2Q2NzM5NTAzCiNkZWZpbmUgY2RnZXQgX3NldF92ZXIoY2Rn
ZXQpCiNkZWZpbmUgX192ZXJfY2RwdXQgc21wX2VjNWQ1OGJkCiNkZWZpbmUgY2RwdXQgX3NldF92
ZXIoY2RwdXQpCiNkZWZpbmUgX192ZXJfYmRnZXQgc21wXzlmMTEwODVhCiNkZWZpbmUgYmRnZXQg
X3NldF92ZXIoYmRnZXQpCiNkZWZpbmUgX192ZXJfYmRwdXQgc21wXzY5YTA3YmNkCiNkZWZpbmUg
YmRwdXQgX3NldF92ZXIoYmRwdXQpCiNkZWZpbmUgX192ZXJfYnJlYWQgc21wXzA5OWE5OTgzCiNk
ZWZpbmUgYnJlYWQgX3NldF92ZXIoYnJlYWQpCiNkZWZpbmUgX192ZXJfX19icmVsc2Ugc21wXzg2
NThlN2ZmCiNkZWZpbmUgX19icmVsc2UgX3NldF92ZXIoX19icmVsc2UpCiNkZWZpbmUgX192ZXJf
X19iZm9yZ2V0IHNtcF82ZTA1MmI4NwojZGVmaW5lIF9fYmZvcmdldCBfc2V0X3ZlcihfX2Jmb3Jn
ZXQpCiNkZWZpbmUgX192ZXJfbGxfcndfYmxvY2sgc21wXzRjMjVlOTViCiNkZWZpbmUgbGxfcndf
YmxvY2sgX3NldF92ZXIobGxfcndfYmxvY2spCiNkZWZpbmUgX192ZXJfc3VibWl0X2JoIHNtcF9l
ZmExNzQ4MQojZGVmaW5lIHN1Ym1pdF9iaCBfc2V0X3ZlcihzdWJtaXRfYmgpCiNkZWZpbmUgX192
ZXJfdW5sb2NrX2J1ZmZlciBzbXBfNDEwODBiMTcKI2RlZmluZSB1bmxvY2tfYnVmZmVyIF9zZXRf
dmVyKHVubG9ja19idWZmZXIpCiNkZWZpbmUgX192ZXJfX193YWl0X29uX2J1ZmZlciBzbXBfNDZj
OGYzZWQKI2RlZmluZSBfX3dhaXRfb25fYnVmZmVyIF9zZXRfdmVyKF9fd2FpdF9vbl9idWZmZXIp
CiNkZWZpbmUgX192ZXJfX19fd2FpdF9vbl9wYWdlIHNtcF8wNGQ0YmQwMgojZGVmaW5lIF9fX3dh
aXRfb25fcGFnZSBfc2V0X3ZlcihfX193YWl0X29uX3BhZ2UpCiNkZWZpbmUgX192ZXJfYmxvY2tf
d3JpdGVfZnVsbF9wYWdlIHNtcF83M2RjNTU2ZgojZGVmaW5lIGJsb2NrX3dyaXRlX2Z1bGxfcGFn
ZSBfc2V0X3ZlcihibG9ja193cml0ZV9mdWxsX3BhZ2UpCiNkZWZpbmUgX192ZXJfYmxvY2tfcmVh
ZF9mdWxsX3BhZ2Ugc21wX2QwYjRkMmQxCiNkZWZpbmUgYmxvY2tfcmVhZF9mdWxsX3BhZ2UgX3Nl
dF92ZXIoYmxvY2tfcmVhZF9mdWxsX3BhZ2UpCiNkZWZpbmUgX192ZXJfYmxvY2tfcHJlcGFyZV93
cml0ZSBzbXBfZGQ1N2JmNmQKI2RlZmluZSBibG9ja19wcmVwYXJlX3dyaXRlIF9zZXRfdmVyKGJs
b2NrX3ByZXBhcmVfd3JpdGUpCiNkZWZpbmUgX192ZXJfYmxvY2tfc3luY19wYWdlIHNtcF84YTI1
ZjI5NgojZGVmaW5lIGJsb2NrX3N5bmNfcGFnZSBfc2V0X3ZlcihibG9ja19zeW5jX3BhZ2UpCiNk
ZWZpbmUgX192ZXJfY29udF9wcmVwYXJlX3dyaXRlIHNtcF8zM2RiYmIwYQojZGVmaW5lIGNvbnRf
cHJlcGFyZV93cml0ZSBfc2V0X3Zlcihjb250X3ByZXBhcmVfd3JpdGUpCiNkZWZpbmUgX192ZXJf
Z2VuZXJpY19jb21taXRfd3JpdGUgc21wXzM3NzM2YzkxCiNkZWZpbmUgZ2VuZXJpY19jb21taXRf
d3JpdGUgX3NldF92ZXIoZ2VuZXJpY19jb21taXRfd3JpdGUpCiNkZWZpbmUgX192ZXJfYmxvY2tf
dHJ1bmNhdGVfcGFnZSBzbXBfOWZjNWNjNDQKI2RlZmluZSBibG9ja190cnVuY2F0ZV9wYWdlIF9z
ZXRfdmVyKGJsb2NrX3RydW5jYXRlX3BhZ2UpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19ibG9ja19i
bWFwIHNtcF8wMTlhZGQ5YwojZGVmaW5lIGdlbmVyaWNfYmxvY2tfYm1hcCBfc2V0X3ZlcihnZW5l
cmljX2Jsb2NrX2JtYXApCiNkZWZpbmUgX192ZXJfd2FpdGZvcl9vbmVfcGFnZSBzbXBfOGVmNmMz
NTkKI2RlZmluZSB3YWl0Zm9yX29uZV9wYWdlIF9zZXRfdmVyKHdhaXRmb3Jfb25lX3BhZ2UpCiNk
ZWZpbmUgX192ZXJfZ2VuZXJpY19maWxlX3JlYWQgc21wXzExYzg3ZWZmCiNkZWZpbmUgZ2VuZXJp
Y19maWxlX3JlYWQgX3NldF92ZXIoZ2VuZXJpY19maWxlX3JlYWQpCiNkZWZpbmUgX192ZXJfZG9f
Z2VuZXJpY19maWxlX3JlYWQgc21wX2ZhNzkwYTZlCiNkZWZpbmUgZG9fZ2VuZXJpY19maWxlX3Jl
YWQgX3NldF92ZXIoZG9fZ2VuZXJpY19maWxlX3JlYWQpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19m
aWxlX3dyaXRlIHNtcF9mYjE3ODYzNgojZGVmaW5lIGdlbmVyaWNfZmlsZV93cml0ZSBfc2V0X3Zl
cihnZW5lcmljX2ZpbGVfd3JpdGUpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19maWxlX21tYXAgc21w
X2I2NzkxMWM5CiNkZWZpbmUgZ2VuZXJpY19maWxlX21tYXAgX3NldF92ZXIoZ2VuZXJpY19maWxl
X21tYXApCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19yb19mb3BzIHNtcF9jMDkxOTE2ZQojZGVmaW5l
IGdlbmVyaWNfcm9fZm9wcyBfc2V0X3ZlcihnZW5lcmljX3JvX2ZvcHMpCiNkZWZpbmUgX192ZXJf
Z2VuZXJpY19idWZmZXJfZmRhdGFzeW5jIHNtcF8zYmE0NjJjNAojZGVmaW5lIGdlbmVyaWNfYnVm
ZmVyX2ZkYXRhc3luYyBfc2V0X3ZlcihnZW5lcmljX2J1ZmZlcl9mZGF0YXN5bmMpCiNkZWZpbmUg
X192ZXJfcGFnZV9oYXNoX2JpdHMgc21wXzA0OTI1YjRlCiNkZWZpbmUgcGFnZV9oYXNoX2JpdHMg
X3NldF92ZXIocGFnZV9oYXNoX2JpdHMpCiNkZWZpbmUgX192ZXJfcGFnZV9oYXNoX3RhYmxlIHNt
cF8wNzRiYWE3YwojZGVmaW5lIHBhZ2VfaGFzaF90YWJsZSBfc2V0X3ZlcihwYWdlX2hhc2hfdGFi
bGUpCiNkZWZpbmUgX192ZXJfZmlsZV9sb2NrX2xpc3Qgc21wXzZlODUxMTlkCiNkZWZpbmUgZmls
ZV9sb2NrX2xpc3QgX3NldF92ZXIoZmlsZV9sb2NrX2xpc3QpCiNkZWZpbmUgX192ZXJfbG9ja3Nf
aW5pdF9sb2NrIHNtcF9mMDAzZWQxOQojZGVmaW5lIGxvY2tzX2luaXRfbG9jayBfc2V0X3Zlcihs
b2Nrc19pbml0X2xvY2spCiNkZWZpbmUgX192ZXJfbG9ja3NfY29weV9sb2NrIHNtcF85OThiOGRk
MwojZGVmaW5lIGxvY2tzX2NvcHlfbG9jayBfc2V0X3Zlcihsb2Nrc19jb3B5X2xvY2spCiNkZWZp
bmUgX192ZXJfcG9zaXhfbG9ja19maWxlIHNtcF8yNDRmNzUyZQojZGVmaW5lIHBvc2l4X2xvY2tf
ZmlsZSBfc2V0X3Zlcihwb3NpeF9sb2NrX2ZpbGUpCiNkZWZpbmUgX192ZXJfcG9zaXhfdGVzdF9s
b2NrIHNtcF9kZThlMDA3MgojZGVmaW5lIHBvc2l4X3Rlc3RfbG9jayBfc2V0X3Zlcihwb3NpeF90
ZXN0X2xvY2spCiNkZWZpbmUgX192ZXJfcG9zaXhfYmxvY2tfbG9jayBzbXBfYzIwNDI4MGQKI2Rl
ZmluZSBwb3NpeF9ibG9ja19sb2NrIF9zZXRfdmVyKHBvc2l4X2Jsb2NrX2xvY2spCiNkZWZpbmUg
X192ZXJfcG9zaXhfdW5ibG9ja19sb2NrIHNtcF85NTBlOGFkNgojZGVmaW5lIHBvc2l4X3VuYmxv
Y2tfbG9jayBfc2V0X3Zlcihwb3NpeF91bmJsb2NrX2xvY2spCiNkZWZpbmUgX192ZXJfbG9ja3Nf
bWFuZGF0b3J5X2FyZWEgc21wXzc5YWJiNzMwCiNkZWZpbmUgbG9ja3NfbWFuZGF0b3J5X2FyZWEg
X3NldF92ZXIobG9ja3NfbWFuZGF0b3J5X2FyZWEpCiNkZWZpbmUgX192ZXJfZHB1dCBzbXBfNTc0
ZTZiYTMKI2RlZmluZSBkcHV0IF9zZXRfdmVyKGRwdXQpCiNkZWZpbmUgX192ZXJfaGF2ZV9zdWJt
b3VudHMgc21wX2IzYjI5YzBlCiNkZWZpbmUgaGF2ZV9zdWJtb3VudHMgX3NldF92ZXIoaGF2ZV9z
dWJtb3VudHMpCiNkZWZpbmUgX192ZXJfZF9maW5kX2FsaWFzIHNtcF9iNjA1ODgwMgojZGVmaW5l
IGRfZmluZF9hbGlhcyBfc2V0X3ZlcihkX2ZpbmRfYWxpYXMpCiNkZWZpbmUgX192ZXJfZF9wcnVu
ZV9hbGlhc2VzIHNtcF9jOWJhZDQ3YgojZGVmaW5lIGRfcHJ1bmVfYWxpYXNlcyBfc2V0X3Zlcihk
X3BydW5lX2FsaWFzZXMpCiNkZWZpbmUgX192ZXJfcHJ1bmVfZGNhY2hlIHNtcF82Y2YyOGY3Nwoj
ZGVmaW5lIHBydW5lX2RjYWNoZSBfc2V0X3ZlcihwcnVuZV9kY2FjaGUpCiNkZWZpbmUgX192ZXJf
c2hyaW5rX2RjYWNoZV9zYiBzbXBfNjg1OGYzZGUKI2RlZmluZSBzaHJpbmtfZGNhY2hlX3NiIF9z
ZXRfdmVyKHNocmlua19kY2FjaGVfc2IpCiNkZWZpbmUgX192ZXJfc2hyaW5rX2RjYWNoZV9wYXJl
bnQgc21wXzE0M2MyYmI4CiNkZWZpbmUgc2hyaW5rX2RjYWNoZV9wYXJlbnQgX3NldF92ZXIoc2hy
aW5rX2RjYWNoZV9wYXJlbnQpCiNkZWZpbmUgX192ZXJfZmluZF9pbm9kZV9udW1iZXIgc21wX2Y1
ZTRlZDQwCiNkZWZpbmUgZmluZF9pbm9kZV9udW1iZXIgX3NldF92ZXIoZmluZF9pbm9kZV9udW1i
ZXIpCiNkZWZpbmUgX192ZXJfaXNfc3ViZGlyIHNtcF8wYThjZDkwNAojZGVmaW5lIGlzX3N1YmRp
ciBfc2V0X3Zlcihpc19zdWJkaXIpCiNkZWZpbmUgX192ZXJfZ2V0X3VudXNlZF9mZCBzbXBfOTli
ZmJlMzkKI2RlZmluZSBnZXRfdW51c2VkX2ZkIF9zZXRfdmVyKGdldF91bnVzZWRfZmQpCiNkZWZp
bmUgX192ZXJfdmZzX2NyZWF0ZSBzbXBfMDRlMjdkNDAKI2RlZmluZSB2ZnNfY3JlYXRlIF9zZXRf
dmVyKHZmc19jcmVhdGUpCiNkZWZpbmUgX192ZXJfdmZzX21rZGlyIHNtcF83YmE1YjFiYQojZGVm
aW5lIHZmc19ta2RpciBfc2V0X3Zlcih2ZnNfbWtkaXIpCiNkZWZpbmUgX192ZXJfdmZzX21rbm9k
IHNtcF9iNzUyZDQ0NgojZGVmaW5lIHZmc19ta25vZCBfc2V0X3Zlcih2ZnNfbWtub2QpCiNkZWZp
bmUgX192ZXJfdmZzX3N5bWxpbmsgc21wX2Q3NjY1ZjdkCiNkZWZpbmUgdmZzX3N5bWxpbmsgX3Nl
dF92ZXIodmZzX3N5bWxpbmspCiNkZWZpbmUgX192ZXJfdmZzX2xpbmsgc21wX2VkMzgzNTE0CiNk
ZWZpbmUgdmZzX2xpbmsgX3NldF92ZXIodmZzX2xpbmspCiNkZWZpbmUgX192ZXJfdmZzX3JtZGly
IHNtcF83OTYzNmE5MAojZGVmaW5lIHZmc19ybWRpciBfc2V0X3Zlcih2ZnNfcm1kaXIpCiNkZWZp
bmUgX192ZXJfdmZzX3VubGluayBzbXBfZmVmYTQ0NDcKI2RlZmluZSB2ZnNfdW5saW5rIF9zZXRf
dmVyKHZmc191bmxpbmspCiNkZWZpbmUgX192ZXJfdmZzX3JlbmFtZSBzbXBfNDZmYzU3YjEKI2Rl
ZmluZSB2ZnNfcmVuYW1lIF9zZXRfdmVyKHZmc19yZW5hbWUpCiNkZWZpbmUgX192ZXJfdmZzX3N0
YXRmcyBzbXBfN2EzMTBlMmUKI2RlZmluZSB2ZnNfc3RhdGZzIF9zZXRfdmVyKHZmc19zdGF0ZnMp
CiNkZWZpbmUgX192ZXJfZ2VuZXJpY19yZWFkX2RpciBzbXBfNGY2ZThkMzAKI2RlZmluZSBnZW5l
cmljX3JlYWRfZGlyIF9zZXRfdmVyKGdlbmVyaWNfcmVhZF9kaXIpCiNkZWZpbmUgX192ZXJfX19w
b2xsd2FpdCBzbXBfZjZkMjEwMmUKI2RlZmluZSBfX3BvbGx3YWl0IF9zZXRfdmVyKF9fcG9sbHdh
aXQpCiNkZWZpbmUgX192ZXJfcG9sbF9mcmVld2FpdCBzbXBfM2ZkMDJlNTgKI2RlZmluZSBwb2xs
X2ZyZWV3YWl0IF9zZXRfdmVyKHBvbGxfZnJlZXdhaXQpCiNkZWZpbmUgX192ZXJfUk9PVF9ERVYg
c21wX2IzMjQ5NmU4CiNkZWZpbmUgUk9PVF9ERVYgX3NldF92ZXIoUk9PVF9ERVYpCiNkZWZpbmUg
X192ZXJfX19maW5kX2xvY2tfcGFnZSBzbXBfYWZiOWNhODQKI2RlZmluZSBfX2ZpbmRfbG9ja19w
YWdlIF9zZXRfdmVyKF9fZmluZF9sb2NrX3BhZ2UpCiNkZWZpbmUgX192ZXJfZ3JhYl9jYWNoZV9w
YWdlIHNtcF8zOTgwOWFlMQojZGVmaW5lIGdyYWJfY2FjaGVfcGFnZSBfc2V0X3ZlcihncmFiX2Nh
Y2hlX3BhZ2UpCiNkZWZpbmUgX192ZXJfcmVhZF9jYWNoZV9wYWdlIHNtcF82ODBhMGU4OAojZGVm
aW5lIHJlYWRfY2FjaGVfcGFnZSBfc2V0X3ZlcihyZWFkX2NhY2hlX3BhZ2UpCiNkZWZpbmUgX192
ZXJfdmZzX3JlYWRsaW5rIHNtcF83MTVjMzE0MQojZGVmaW5lIHZmc19yZWFkbGluayBfc2V0X3Zl
cih2ZnNfcmVhZGxpbmspCiNkZWZpbmUgX192ZXJfdmZzX2ZvbGxvd19saW5rIHNtcF9hNGZjZGRm
NgojZGVmaW5lIHZmc19mb2xsb3dfbGluayBfc2V0X3Zlcih2ZnNfZm9sbG93X2xpbmspCiNkZWZp
bmUgX192ZXJfcGFnZV9yZWFkbGluayBzbXBfOWQ0OTUyZTcKI2RlZmluZSBwYWdlX3JlYWRsaW5r
IF9zZXRfdmVyKHBhZ2VfcmVhZGxpbmspCiNkZWZpbmUgX192ZXJfcGFnZV9mb2xsb3dfbGluayBz
bXBfZjliYmMwYjkKI2RlZmluZSBwYWdlX2ZvbGxvd19saW5rIF9zZXRfdmVyKHBhZ2VfZm9sbG93
X2xpbmspCiNkZWZpbmUgX192ZXJfcGFnZV9zeW1saW5rX2lub2RlX29wZXJhdGlvbnMgc21wX2Jj
MDk2Mjg0CiNkZWZpbmUgcGFnZV9zeW1saW5rX2lub2RlX29wZXJhdGlvbnMgX3NldF92ZXIocGFn
ZV9zeW1saW5rX2lub2RlX29wZXJhdGlvbnMpCiNkZWZpbmUgX192ZXJfYmxvY2tfc3ltbGluayBz
bXBfNDY1MzY5OTIKI2RlZmluZSBibG9ja19zeW1saW5rIF9zZXRfdmVyKGJsb2NrX3N5bWxpbmsp
CiNkZWZpbmUgX192ZXJfdmZzX3JlYWRkaXIgc21wXzdlODRhNjUyCiNkZWZpbmUgdmZzX3JlYWRk
aXIgX3NldF92ZXIodmZzX3JlYWRkaXIpCiNkZWZpbmUgX192ZXJfX19nZXRfbGVhc2Ugc21wXzgx
MWM1YTg5CiNkZWZpbmUgX19nZXRfbGVhc2UgX3NldF92ZXIoX19nZXRfbGVhc2UpCiNkZWZpbmUg
X192ZXJfbGVhc2VfZ2V0X210aW1lIHNtcF9jOGQ2YmQ3ZgojZGVmaW5lIGxlYXNlX2dldF9tdGlt
ZSBfc2V0X3ZlcihsZWFzZV9nZXRfbXRpbWUpCiNkZWZpbmUgX192ZXJfbG9ja19tYXlfcmVhZCBz
bXBfMzE2ZTUwN2YKI2RlZmluZSBsb2NrX21heV9yZWFkIF9zZXRfdmVyKGxvY2tfbWF5X3JlYWQp
CiNkZWZpbmUgX192ZXJfbG9ja19tYXlfd3JpdGUgc21wXzhiZGE4MWVhCiNkZWZpbmUgbG9ja19t
YXlfd3JpdGUgX3NldF92ZXIobG9ja19tYXlfd3JpdGUpCiNkZWZpbmUgX192ZXJfZGNhY2hlX3Jl
YWRkaXIgc21wX2I0MzcwMTY2CiNkZWZpbmUgZGNhY2hlX3JlYWRkaXIgX3NldF92ZXIoZGNhY2hl
X3JlYWRkaXIpCiNkZWZpbmUgX192ZXJfZGVmYXVsdF9sbHNlZWsgc21wX2QyYmEyMDRiCiNkZWZp
bmUgZGVmYXVsdF9sbHNlZWsgX3NldF92ZXIoZGVmYXVsdF9sbHNlZWspCiNkZWZpbmUgX192ZXJf
ZGVudHJ5X29wZW4gc21wXzk2OWViODQ3CiNkZWZpbmUgZGVudHJ5X29wZW4gX3NldF92ZXIoZGVu
dHJ5X29wZW4pCiNkZWZpbmUgX192ZXJfZmlsZW1hcF9ub3BhZ2Ugc21wXzFlNWFhNzVkCiNkZWZp
bmUgZmlsZW1hcF9ub3BhZ2UgX3NldF92ZXIoZmlsZW1hcF9ub3BhZ2UpCiNkZWZpbmUgX192ZXJf
ZmlsZW1hcF9zeW5jIHNtcF83YzNhZmUzMgojZGVmaW5lIGZpbGVtYXBfc3luYyBfc2V0X3Zlcihm
aWxlbWFwX3N5bmMpCiNkZWZpbmUgX192ZXJfZmlsZW1hcF9mZGF0YXN5bmMgc21wXzM1YWI4ZTA0
CiNkZWZpbmUgZmlsZW1hcF9mZGF0YXN5bmMgX3NldF92ZXIoZmlsZW1hcF9mZGF0YXN5bmMpCiNk
ZWZpbmUgX192ZXJfZmlsZW1hcF9mZGF0YXdhaXQgc21wX2Q2NGRkZjMzCiNkZWZpbmUgZmlsZW1h
cF9mZGF0YXdhaXQgX3NldF92ZXIoZmlsZW1hcF9mZGF0YXdhaXQpCiNkZWZpbmUgX192ZXJfbG9j
a19wYWdlIHNtcF83YzVmMTNhYgojZGVmaW5lIGxvY2tfcGFnZSBfc2V0X3Zlcihsb2NrX3BhZ2Up
CiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfY2hyZGV2IHNtcF84ZTcwOWUzMwojZGVmaW5lIHJlZ2lz
dGVyX2NocmRldiBfc2V0X3ZlcihyZWdpc3Rlcl9jaHJkZXYpCiNkZWZpbmUgX192ZXJfdW5yZWdp
c3Rlcl9jaHJkZXYgc21wX2MxOTJkNDkxCiNkZWZpbmUgdW5yZWdpc3Rlcl9jaHJkZXYgX3NldF92
ZXIodW5yZWdpc3Rlcl9jaHJkZXYpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfYmxrZGV2IHNtcF81
ZjlmYjllOQojZGVmaW5lIHJlZ2lzdGVyX2Jsa2RldiBfc2V0X3ZlcihyZWdpc3Rlcl9ibGtkZXYp
CiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9ibGtkZXYgc21wX2VhYzFjNGFmCiNkZWZpbmUgdW5y
ZWdpc3Rlcl9ibGtkZXYgX3NldF92ZXIodW5yZWdpc3Rlcl9ibGtkZXYpCiNkZWZpbmUgX192ZXJf
dHR5X3JlZ2lzdGVyX2RyaXZlciBzbXBfNGEwNmVkM2YKI2RlZmluZSB0dHlfcmVnaXN0ZXJfZHJp
dmVyIF9zZXRfdmVyKHR0eV9yZWdpc3Rlcl9kcml2ZXIpCiNkZWZpbmUgX192ZXJfdHR5X3VucmVn
aXN0ZXJfZHJpdmVyIHNtcF8yZmFlNGFiNQojZGVmaW5lIHR0eV91bnJlZ2lzdGVyX2RyaXZlciBf
c2V0X3Zlcih0dHlfdW5yZWdpc3Rlcl9kcml2ZXIpCiNkZWZpbmUgX192ZXJfdHR5X3N0ZF90ZXJt
aW9zIHNtcF84OWFjNTI1NAojZGVmaW5lIHR0eV9zdGRfdGVybWlvcyBfc2V0X3Zlcih0dHlfc3Rk
X3Rlcm1pb3MpCiNkZWZpbmUgX192ZXJfYmxvY2tfcmVhZCBzbXBfMTNkMDY1MGEKI2RlZmluZSBi
bG9ja19yZWFkIF9zZXRfdmVyKGJsb2NrX3JlYWQpCiNkZWZpbmUgX192ZXJfYmxvY2tfd3JpdGUg
c21wXzVlZDk3NWQ4CiNkZWZpbmUgYmxvY2tfd3JpdGUgX3NldF92ZXIoYmxvY2tfd3JpdGUpCiNk
ZWZpbmUgX192ZXJfYmxrc2l6ZV9zaXplIHNtcF8yZjMwYjRiNgojZGVmaW5lIGJsa3NpemVfc2l6
ZSBfc2V0X3ZlcihibGtzaXplX3NpemUpCiNkZWZpbmUgX192ZXJfaGFyZHNlY3Rfc2l6ZSBzbXBf
YzVmNTYwZDgKI2RlZmluZSBoYXJkc2VjdF9zaXplIF9zZXRfdmVyKGhhcmRzZWN0X3NpemUpCiNk
ZWZpbmUgX192ZXJfYmxrX3NpemUgc21wX2EyZTBhMDgyCiNkZWZpbmUgYmxrX3NpemUgX3NldF92
ZXIoYmxrX3NpemUpCiNkZWZpbmUgX192ZXJfYmxrX2RldiBzbXBfZjE0YzRlMmIKI2RlZmluZSBi
bGtfZGV2IF9zZXRfdmVyKGJsa19kZXYpCiNkZWZpbmUgX192ZXJfaXNfcmVhZF9vbmx5IHNtcF83
NDAyNzRjYQojZGVmaW5lIGlzX3JlYWRfb25seSBfc2V0X3Zlcihpc19yZWFkX29ubHkpCiNkZWZp
bmUgX192ZXJfc2V0X2RldmljZV9ybyBzbXBfZGMwMzZlYmIKI2RlZmluZSBzZXRfZGV2aWNlX3Jv
IF9zZXRfdmVyKHNldF9kZXZpY2Vfcm8pCiNkZWZpbmUgX192ZXJfYm1hcCBzbXBfMTRlZDZiZGYK
I2RlZmluZSBibWFwIF9zZXRfdmVyKGJtYXApCiNkZWZpbmUgX192ZXJfc3luY19kZXYgc21wX2Zj
MGIwZjQ5CiNkZWZpbmUgc3luY19kZXYgX3NldF92ZXIoc3luY19kZXYpCiNkZWZpbmUgX192ZXJf
ZGV2ZnNfcmVnaXN0ZXJfcGFydGl0aW9ucyBzbXBfNDgyOWY0NTIKI2RlZmluZSBkZXZmc19yZWdp
c3Rlcl9wYXJ0aXRpb25zIF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX3BhcnRpdGlvbnMpCiNkZWZp
bmUgX192ZXJfYmxrZGV2X29wZW4gc21wXzdhZmMxMDlmCiNkZWZpbmUgYmxrZGV2X29wZW4gX3Nl
dF92ZXIoYmxrZGV2X29wZW4pCiNkZWZpbmUgX192ZXJfYmxrZGV2X2dldCBzbXBfMmQ4MmYzM2QK
I2RlZmluZSBibGtkZXZfZ2V0IF9zZXRfdmVyKGJsa2Rldl9nZXQpCiNkZWZpbmUgX192ZXJfYmxr
ZGV2X3B1dCBzbXBfNGQ5ZmY1NTEKI2RlZmluZSBibGtkZXZfcHV0IF9zZXRfdmVyKGJsa2Rldl9w
dXQpCiNkZWZpbmUgX192ZXJfaW9jdGxfYnlfYmRldiBzbXBfMDM2YzA5OTgKI2RlZmluZSBpb2N0
bF9ieV9iZGV2IF9zZXRfdmVyKGlvY3RsX2J5X2JkZXYpCiNkZWZpbmUgX192ZXJfZ2VuZGlza19o
ZWFkIHNtcF9kNWQ3YzAzMQojZGVmaW5lIGdlbmRpc2tfaGVhZCBfc2V0X3ZlcihnZW5kaXNrX2hl
YWQpCiNkZWZpbmUgX192ZXJfZ3Jva19wYXJ0aXRpb25zIHNtcF9jNWI1ZDhiYwojZGVmaW5lIGdy
b2tfcGFydGl0aW9ucyBfc2V0X3Zlcihncm9rX3BhcnRpdGlvbnMpCiNkZWZpbmUgX192ZXJfcmVn
aXN0ZXJfZGlzayBzbXBfOWYwMThjNDIKI2RlZmluZSByZWdpc3Rlcl9kaXNrIF9zZXRfdmVyKHJl
Z2lzdGVyX2Rpc2spCiNkZWZpbmUgX192ZXJfdHFfZGlzayBzbXBfNTM3M2RiYjYKI2RlZmluZSB0
cV9kaXNrIF9zZXRfdmVyKHRxX2Rpc2spCiNkZWZpbmUgX192ZXJfaW5pdF9idWZmZXIgc21wXzcz
MjM5OGUyCiNkZWZpbmUgaW5pdF9idWZmZXIgX3NldF92ZXIoaW5pdF9idWZmZXIpCiNkZWZpbmUg
X192ZXJfcmVmaWxlX2J1ZmZlciBzbXBfOWNhYTQ4YmYKI2RlZmluZSByZWZpbGVfYnVmZmVyIF9z
ZXRfdmVyKHJlZmlsZV9idWZmZXIpCiNkZWZpbmUgX192ZXJfbWF4X3NlY3RvcnMgc21wXzZiZjU4
ZTMzCiNkZWZpbmUgbWF4X3NlY3RvcnMgX3NldF92ZXIobWF4X3NlY3RvcnMpCiNkZWZpbmUgX192
ZXJfbWF4X3JlYWRhaGVhZCBzbXBfM2U1NDgwYTQKI2RlZmluZSBtYXhfcmVhZGFoZWFkIF9zZXRf
dmVyKG1heF9yZWFkYWhlYWQpCiNkZWZpbmUgX192ZXJfZmlsZV9tb3ZldG8gc21wX2M4M2E0ZGFj
CiNkZWZpbmUgZmlsZV9tb3ZldG8gX3NldF92ZXIoZmlsZV9tb3ZldG8pCiNkZWZpbmUgX192ZXJf
dHR5X2hhbmd1cCBzbXBfZmVhZTQ2NWYKI2RlZmluZSB0dHlfaGFuZ3VwIF9zZXRfdmVyKHR0eV9o
YW5ndXApCiNkZWZpbmUgX192ZXJfdHR5X3dhaXRfdW50aWxfc2VudCBzbXBfZmRjYjI0NWYKI2Rl
ZmluZSB0dHlfd2FpdF91bnRpbF9zZW50IF9zZXRfdmVyKHR0eV93YWl0X3VudGlsX3NlbnQpCiNk
ZWZpbmUgX192ZXJfdHR5X2NoZWNrX2NoYW5nZSBzbXBfODQ4YTdiZjAKI2RlZmluZSB0dHlfY2hl
Y2tfY2hhbmdlIF9zZXRfdmVyKHR0eV9jaGVja19jaGFuZ2UpCiNkZWZpbmUgX192ZXJfdHR5X2h1
bmdfdXBfcCBzbXBfMTc3ZDRiNzgKI2RlZmluZSB0dHlfaHVuZ191cF9wIF9zZXRfdmVyKHR0eV9o
dW5nX3VwX3ApCiNkZWZpbmUgX192ZXJfdHR5X2ZsaXBfYnVmZmVyX3B1c2ggc21wXzA0Njk3NDcy
CiNkZWZpbmUgdHR5X2ZsaXBfYnVmZmVyX3B1c2ggX3NldF92ZXIodHR5X2ZsaXBfYnVmZmVyX3B1
c2gpCiNkZWZpbmUgX192ZXJfdHR5X2dldF9iYXVkX3JhdGUgc21wXzUwZGU4N2NhCiNkZWZpbmUg
dHR5X2dldF9iYXVkX3JhdGUgX3NldF92ZXIodHR5X2dldF9iYXVkX3JhdGUpCiNkZWZpbmUgX192
ZXJfZG9fU0FLIHNtcF9lMmJhYzdjYwojZGVmaW5lIGRvX1NBSyBfc2V0X3Zlcihkb19TQUspCiNk
ZWZpbmUgX192ZXJfY29uc29sZV9wcmludCBzbXBfYjcxNGE5ODEKI2RlZmluZSBjb25zb2xlX3By
aW50IF9zZXRfdmVyKGNvbnNvbGVfcHJpbnQpCiNkZWZpbmUgX192ZXJfY29uc29sZV9sb2dsZXZl
bCBzbXBfODBjZTFiOGUKI2RlZmluZSBjb25zb2xlX2xvZ2xldmVsIF9zZXRfdmVyKGNvbnNvbGVf
bG9nbGV2ZWwpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfZmlsZXN5c3RlbSBzbXBfNTZiNjY3ZjQK
I2RlZmluZSByZWdpc3Rlcl9maWxlc3lzdGVtIF9zZXRfdmVyKHJlZ2lzdGVyX2ZpbGVzeXN0ZW0p
CiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9maWxlc3lzdGVtIHNtcF8wYWIyMGEyNAojZGVmaW5l
IHVucmVnaXN0ZXJfZmlsZXN5c3RlbSBfc2V0X3Zlcih1bnJlZ2lzdGVyX2ZpbGVzeXN0ZW0pCiNk
ZWZpbmUgX192ZXJfa2Vybl9tb3VudCBzbXBfYzQ5MGEwNjQKI2RlZmluZSBrZXJuX21vdW50IF9z
ZXRfdmVyKGtlcm5fbW91bnQpCiNkZWZpbmUgX192ZXJfX19tbnRwdXQgc21wX2NkODE4OTAyCiNk
ZWZpbmUgX19tbnRwdXQgX3NldF92ZXIoX19tbnRwdXQpCiNkZWZpbmUgX192ZXJfbWF5X3Vtb3Vu
dCBzbXBfYjM3NzNmMWUKI2RlZmluZSBtYXlfdW1vdW50IF9zZXRfdmVyKG1heV91bW91bnQpCiNk
ZWZpbmUgX192ZXJfcmVnaXN0ZXJfYmluZm10IHNtcF84YTMyOTM3OAojZGVmaW5lIHJlZ2lzdGVy
X2JpbmZtdCBfc2V0X3ZlcihyZWdpc3Rlcl9iaW5mbXQpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rl
cl9iaW5mbXQgc21wXzI4MzIyY2YwCiNkZWZpbmUgdW5yZWdpc3Rlcl9iaW5mbXQgX3NldF92ZXIo
dW5yZWdpc3Rlcl9iaW5mbXQpCiNkZWZpbmUgX192ZXJfc2VhcmNoX2JpbmFyeV9oYW5kbGVyIHNt
cF8yNDViZmY4NgojZGVmaW5lIHNlYXJjaF9iaW5hcnlfaGFuZGxlciBfc2V0X3ZlcihzZWFyY2hf
YmluYXJ5X2hhbmRsZXIpCiNkZWZpbmUgX192ZXJfcHJlcGFyZV9iaW5wcm0gc21wXzZiZWQ3OWI5
CiNkZWZpbmUgcHJlcGFyZV9iaW5wcm0gX3NldF92ZXIocHJlcGFyZV9iaW5wcm0pCiNkZWZpbmUg
X192ZXJfY29tcHV0ZV9jcmVkcyBzbXBfZGIzZGU4N2UKI2RlZmluZSBjb21wdXRlX2NyZWRzIF9z
ZXRfdmVyKGNvbXB1dGVfY3JlZHMpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX2FyZ196ZXJvIHNtcF8z
MjBhYjRlYQojZGVmaW5lIHJlbW92ZV9hcmdfemVybyBfc2V0X3ZlcihyZW1vdmVfYXJnX3plcm8p
CiNkZWZpbmUgX192ZXJfc2V0X2JpbmZtdCBzbXBfNWIzODYyNWMKI2RlZmluZSBzZXRfYmluZm10
IF9zZXRfdmVyKHNldF9iaW5mbXQpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfZXhlY19kb21haW4g
c21wXzcwMWYwMjRiCiNkZWZpbmUgcmVnaXN0ZXJfZXhlY19kb21haW4gX3NldF92ZXIocmVnaXN0
ZXJfZXhlY19kb21haW4pCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9leGVjX2RvbWFpbiBzbXBf
NWY0MDZhNGEKI2RlZmluZSB1bnJlZ2lzdGVyX2V4ZWNfZG9tYWluIF9zZXRfdmVyKHVucmVnaXN0
ZXJfZXhlY19kb21haW4pCiNkZWZpbmUgX192ZXJfX19zZXRfcGVyc29uYWxpdHkgc21wXzdkNjc4
YjY5CiNkZWZpbmUgX19zZXRfcGVyc29uYWxpdHkgX3NldF92ZXIoX19zZXRfcGVyc29uYWxpdHkp
CiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfc3lzY3RsX3RhYmxlIHNtcF9iMzNlNDUxNQojZGVmaW5l
IHJlZ2lzdGVyX3N5c2N0bF90YWJsZSBfc2V0X3ZlcihyZWdpc3Rlcl9zeXNjdGxfdGFibGUpCiNk
ZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUgc21wXzQ2ZWJiNDM5CiNkZWZpbmUg
dW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUgX3NldF92ZXIodW5yZWdpc3Rlcl9zeXNjdGxfdGFibGUp
CiNkZWZpbmUgX192ZXJfc3lzY3RsX3N0cmluZyBzbXBfOGZiZDAwODQKI2RlZmluZSBzeXNjdGxf
c3RyaW5nIF9zZXRfdmVyKHN5c2N0bF9zdHJpbmcpCiNkZWZpbmUgX192ZXJfc3lzY3RsX2ludHZl
YyBzbXBfMDE1ZDdhNzUKI2RlZmluZSBzeXNjdGxfaW50dmVjIF9zZXRfdmVyKHN5c2N0bF9pbnR2
ZWMpCiNkZWZpbmUgX192ZXJfc3lzY3RsX2ppZmZpZXMgc21wXzczMTlkNzZlCiNkZWZpbmUgc3lz
Y3RsX2ppZmZpZXMgX3NldF92ZXIoc3lzY3RsX2ppZmZpZXMpCiNkZWZpbmUgX192ZXJfcHJvY19k
b3N0cmluZyBzbXBfNzE1NjM2ZDgKI2RlZmluZSBwcm9jX2Rvc3RyaW5nIF9zZXRfdmVyKHByb2Nf
ZG9zdHJpbmcpCiNkZWZpbmUgX192ZXJfcHJvY19kb2ludHZlYyBzbXBfYWVjOTA3ODYKI2RlZmlu
ZSBwcm9jX2RvaW50dmVjIF9zZXRfdmVyKHByb2NfZG9pbnR2ZWMpCiNkZWZpbmUgX192ZXJfcHJv
Y19kb2ludHZlY19qaWZmaWVzIHNtcF80YzhjZjgwZgojZGVmaW5lIHByb2NfZG9pbnR2ZWNfamlm
ZmllcyBfc2V0X3Zlcihwcm9jX2RvaW50dmVjX2ppZmZpZXMpCiNkZWZpbmUgX192ZXJfcHJvY19k
b2ludHZlY19taW5tYXggc21wXzU5YmVmYzU2CiNkZWZpbmUgcHJvY19kb2ludHZlY19taW5tYXgg
X3NldF92ZXIocHJvY19kb2ludHZlY19taW5tYXgpCiNkZWZpbmUgX192ZXJfcHJvY19kb3Vsb25n
dmVjX21zX2ppZmZpZXNfbWlubWF4IHNtcF9kMTNjYmUxYwojZGVmaW5lIHByb2NfZG91bG9uZ3Zl
Y19tc19qaWZmaWVzX21pbm1heCBfc2V0X3Zlcihwcm9jX2RvdWxvbmd2ZWNfbXNfamlmZmllc19t
aW5tYXgpCiNkZWZpbmUgX192ZXJfcHJvY19kb3Vsb25ndmVjX21pbm1heCBzbXBfMTFlMzZmMzEK
I2RlZmluZSBwcm9jX2RvdWxvbmd2ZWNfbWlubWF4IF9zZXRfdmVyKHByb2NfZG91bG9uZ3ZlY19t
aW5tYXgpCiNkZWZpbmUgX192ZXJfYWRkX3RpbWVyIHNtcF9hMTllYWNmOAojZGVmaW5lIGFkZF90
aW1lciBfc2V0X3ZlcihhZGRfdGltZXIpCiNkZWZpbmUgX192ZXJfZGVsX3RpbWVyIHNtcF9mYzYy
ZjE2ZAojZGVmaW5lIGRlbF90aW1lciBfc2V0X3ZlcihkZWxfdGltZXIpCiNkZWZpbmUgX192ZXJf
cmVxdWVzdF9pcnEgc21wX2FiYjc2YTI3CiNkZWZpbmUgcmVxdWVzdF9pcnEgX3NldF92ZXIocmVx
dWVzdF9pcnEpCiNkZWZpbmUgX192ZXJfZnJlZV9pcnEgc21wX2YyMGRhYmQ4CiNkZWZpbmUgZnJl
ZV9pcnEgX3NldF92ZXIoZnJlZV9pcnEpCiNkZWZpbmUgX192ZXJfYWRkX3dhaXRfcXVldWUgc21w
Xzc2ODg0MmU3CiNkZWZpbmUgYWRkX3dhaXRfcXVldWUgX3NldF92ZXIoYWRkX3dhaXRfcXVldWUp
CiNkZWZpbmUgX192ZXJfYWRkX3dhaXRfcXVldWVfZXhjbHVzaXZlIHNtcF8wMDI4N2M5OQojZGVm
aW5lIGFkZF93YWl0X3F1ZXVlX2V4Y2x1c2l2ZSBfc2V0X3ZlcihhZGRfd2FpdF9xdWV1ZV9leGNs
dXNpdmUpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX3dhaXRfcXVldWUgc21wXzEzM2FhZWQ4CiNkZWZp
bmUgcmVtb3ZlX3dhaXRfcXVldWUgX3NldF92ZXIocmVtb3ZlX3dhaXRfcXVldWUpCiNkZWZpbmUg
X192ZXJfd2FpdF9mb3JfY29tcGxldGlvbiBzbXBfNjc5YjExYzcKI2RlZmluZSB3YWl0X2Zvcl9j
b21wbGV0aW9uIF9zZXRfdmVyKHdhaXRfZm9yX2NvbXBsZXRpb24pCiNkZWZpbmUgX192ZXJfY29t
cGxldGUgc21wXzlmN2ZiMWU3CiNkZWZpbmUgY29tcGxldGUgX3NldF92ZXIoY29tcGxldGUpCiNk
ZWZpbmUgX192ZXJfcHJvYmVfaXJxX29uIHNtcF9iMTIxMzkwYQojZGVmaW5lIHByb2JlX2lycV9v
biBfc2V0X3Zlcihwcm9iZV9pcnFfb24pCiNkZWZpbmUgX192ZXJfcHJvYmVfaXJxX29mZiBzbXBf
YWI2MDA0MjEKI2RlZmluZSBwcm9iZV9pcnFfb2ZmIF9zZXRfdmVyKHByb2JlX2lycV9vZmYpCiNk
ZWZpbmUgX192ZXJfZGVsX3RpbWVyX3N5bmMgc21wX2RhZmYyNjZhCiNkZWZpbmUgZGVsX3RpbWVy
X3N5bmMgX3NldF92ZXIoZGVsX3RpbWVyX3N5bmMpCiNkZWZpbmUgX192ZXJfbW9kX3RpbWVyIHNt
cF8xZjEzZDMwOQojZGVmaW5lIG1vZF90aW1lciBfc2V0X3Zlcihtb2RfdGltZXIpCiNkZWZpbmUg
X192ZXJfdHFfdGltZXIgc21wX2ZhM2U5YWNjCiNkZWZpbmUgdHFfdGltZXIgX3NldF92ZXIodHFf
dGltZXIpCiNkZWZpbmUgX192ZXJfdHFfaW1tZWRpYXRlIHNtcF8wZGEwZGNkMQojZGVmaW5lIHRx
X2ltbWVkaWF0ZSBfc2V0X3Zlcih0cV9pbW1lZGlhdGUpCiNkZWZpbmUgX192ZXJfdHF1ZXVlX2xv
Y2sgc21wX2I3YTBjMGI1CiNkZWZpbmUgdHF1ZXVlX2xvY2sgX3NldF92ZXIodHF1ZXVlX2xvY2sp
CiNkZWZpbmUgX192ZXJfX19icmxvY2tfYXJyYXkgc21wXzk3NDU5OTFhCiNkZWZpbmUgX19icmxv
Y2tfYXJyYXkgX3NldF92ZXIoX19icmxvY2tfYXJyYXkpCiNkZWZpbmUgX192ZXJfX19icl93cml0
ZV9sb2NrIHNtcF9lNGU1MTc2YwojZGVmaW5lIF9fYnJfd3JpdGVfbG9jayBfc2V0X3ZlcihfX2Jy
X3dyaXRlX2xvY2spCiNkZWZpbmUgX192ZXJfX19icl93cml0ZV91bmxvY2sgc21wXzU4NmM1NjNh
CiNkZWZpbmUgX19icl93cml0ZV91bmxvY2sgX3NldF92ZXIoX19icl93cml0ZV91bmxvY2spCiNk
ZWZpbmUgX192ZXJfYWxsb2Nfa2lvdmVjIHNtcF9jZTllNDA5NAojZGVmaW5lIGFsbG9jX2tpb3Zl
YyBfc2V0X3ZlcihhbGxvY19raW92ZWMpCiNkZWZpbmUgX192ZXJfZnJlZV9raW92ZWMgc21wXzFl
MTA5MTIzCiNkZWZpbmUgZnJlZV9raW92ZWMgX3NldF92ZXIoZnJlZV9raW92ZWMpCiNkZWZpbmUg
X192ZXJfZXhwYW5kX2tpb2J1ZiBzbXBfYzU1MzJkZTAKI2RlZmluZSBleHBhbmRfa2lvYnVmIF9z
ZXRfdmVyKGV4cGFuZF9raW9idWYpCiNkZWZpbmUgX192ZXJfbWFwX3VzZXJfa2lvYnVmIHNtcF9l
OTQyYmI2ZgojZGVmaW5lIG1hcF91c2VyX2tpb2J1ZiBfc2V0X3ZlcihtYXBfdXNlcl9raW9idWYp
CiNkZWZpbmUgX192ZXJfdW5tYXBfa2lvYnVmIHNtcF9lMjQzMzA2YwojZGVmaW5lIHVubWFwX2tp
b2J1ZiBfc2V0X3Zlcih1bm1hcF9raW9idWYpCiNkZWZpbmUgX192ZXJfbG9ja19raW92ZWMgc21w
XzEwMjRlODI1CiNkZWZpbmUgbG9ja19raW92ZWMgX3NldF92ZXIobG9ja19raW92ZWMpCiNkZWZp
bmUgX192ZXJfdW5sb2NrX2tpb3ZlYyBzbXBfYTVkNjJlNDEKI2RlZmluZSB1bmxvY2tfa2lvdmVj
IF9zZXRfdmVyKHVubG9ja19raW92ZWMpCiNkZWZpbmUgX192ZXJfYnJ3X2tpb3ZlYyBzbXBfMzQ0
ZjQ5NDIKI2RlZmluZSBicndfa2lvdmVjIF9zZXRfdmVyKGJyd19raW92ZWMpCiNkZWZpbmUgX192
ZXJfa2lvYnVmX3dhaXRfZm9yX2lvIHNtcF85Y2ZhZDlhZQojZGVmaW5lIGtpb2J1Zl93YWl0X2Zv
cl9pbyBfc2V0X3ZlcihraW9idWZfd2FpdF9mb3JfaW8pCiNkZWZpbmUgX192ZXJfcmVxdWVzdF9k
bWEgc21wXzQzNDM1NDgwCiNkZWZpbmUgcmVxdWVzdF9kbWEgX3NldF92ZXIocmVxdWVzdF9kbWEp
CiNkZWZpbmUgX192ZXJfZnJlZV9kbWEgc21wXzcyYjI0M2Q0CiNkZWZpbmUgZnJlZV9kbWEgX3Nl
dF92ZXIoZnJlZV9kbWEpCiNkZWZpbmUgX192ZXJfZG1hX3NwaW5fbG9jayBzbXBfMzc1YzQxZjgK
I2RlZmluZSBkbWFfc3Bpbl9sb2NrIF9zZXRfdmVyKGRtYV9zcGluX2xvY2spCiNkZWZpbmUgX192
ZXJfcmVxdWVzdF9yZXNvdXJjZSBzbXBfNDE2ODVjZmIKI2RlZmluZSByZXF1ZXN0X3Jlc291cmNl
IF9zZXRfdmVyKHJlcXVlc3RfcmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfcmVsZWFzZV9yZXNvdXJj
ZSBzbXBfODE0ZTg0MDcKI2RlZmluZSByZWxlYXNlX3Jlc291cmNlIF9zZXRfdmVyKHJlbGVhc2Vf
cmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfYWxsb2NhdGVfcmVzb3VyY2Ugc21wX2E3MTU4MTJiCiNk
ZWZpbmUgYWxsb2NhdGVfcmVzb3VyY2UgX3NldF92ZXIoYWxsb2NhdGVfcmVzb3VyY2UpCiNkZWZp
bmUgX192ZXJfY2hlY2tfcmVzb3VyY2Ugc21wX2Q4ZDc4YWFhCiNkZWZpbmUgY2hlY2tfcmVzb3Vy
Y2UgX3NldF92ZXIoY2hlY2tfcmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfX19yZXF1ZXN0X3JlZ2lv
biBzbXBfMWExYTRmMDkKI2RlZmluZSBfX3JlcXVlc3RfcmVnaW9uIF9zZXRfdmVyKF9fcmVxdWVz
dF9yZWdpb24pCiNkZWZpbmUgX192ZXJfX19jaGVja19yZWdpb24gc21wX2YxZDBjZGFiCiNkZWZp
bmUgX19jaGVja19yZWdpb24gX3NldF92ZXIoX19jaGVja19yZWdpb24pCiNkZWZpbmUgX192ZXJf
X19yZWxlYXNlX3JlZ2lvbiBzbXBfZDQ5NTAxZDQKI2RlZmluZSBfX3JlbGVhc2VfcmVnaW9uIF9z
ZXRfdmVyKF9fcmVsZWFzZV9yZWdpb24pCiNkZWZpbmUgX192ZXJfaW9wb3J0X3Jlc291cmNlIHNt
cF84NjVlYmNjZAojZGVmaW5lIGlvcG9ydF9yZXNvdXJjZSBfc2V0X3Zlcihpb3BvcnRfcmVzb3Vy
Y2UpCiNkZWZpbmUgX192ZXJfaW9tZW1fcmVzb3VyY2Ugc21wXzllZmVkNWFmCiNkZWZpbmUgaW9t
ZW1fcmVzb3VyY2UgX3NldF92ZXIoaW9tZW1fcmVzb3VyY2UpCiNkZWZpbmUgX192ZXJfdXBfYW5k
X2V4aXQgc21wXzllYjkyNmNhCiNkZWZpbmUgdXBfYW5kX2V4aXQgX3NldF92ZXIodXBfYW5kX2V4
aXQpCiNkZWZpbmUgX192ZXJfX193YWtlX3VwIHNtcF82OWRkYmYxNQojZGVmaW5lIF9fd2FrZV91
cCBfc2V0X3ZlcihfX3dha2VfdXApCiNkZWZpbmUgX192ZXJfd2FrZV91cF9wcm9jZXNzIHNtcF81
NTBkODRhNQojZGVmaW5lIHdha2VfdXBfcHJvY2VzcyBfc2V0X3Zlcih3YWtlX3VwX3Byb2Nlc3Mp
CiNkZWZpbmUgX192ZXJfc2xlZXBfb24gc21wXzhlYTIzMWZiCiNkZWZpbmUgc2xlZXBfb24gX3Nl
dF92ZXIoc2xlZXBfb24pCiNkZWZpbmUgX192ZXJfc2xlZXBfb25fdGltZW91dCBzbXBfNTY0NTBi
M2UKI2RlZmluZSBzbGVlcF9vbl90aW1lb3V0IF9zZXRfdmVyKHNsZWVwX29uX3RpbWVvdXQpCiNk
ZWZpbmUgX192ZXJfaW50ZXJydXB0aWJsZV9zbGVlcF9vbiBzbXBfNDg0YzVkYjYKI2RlZmluZSBp
bnRlcnJ1cHRpYmxlX3NsZWVwX29uIF9zZXRfdmVyKGludGVycnVwdGlibGVfc2xlZXBfb24pCiNk
ZWZpbmUgX192ZXJfaW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0IHNtcF8zMmEwOGNkMwoj
ZGVmaW5lIGludGVycnVwdGlibGVfc2xlZXBfb25fdGltZW91dCBfc2V0X3ZlcihpbnRlcnJ1cHRp
YmxlX3NsZWVwX29uX3RpbWVvdXQpCiNkZWZpbmUgX192ZXJfc2NoZWR1bGUgc21wX2E0NGZmZmMx
CiNkZWZpbmUgc2NoZWR1bGUgX3NldF92ZXIoc2NoZWR1bGUpCiNkZWZpbmUgX192ZXJfc2NoZWR1
bGVfdGltZW91dCBzbXBfZDYyYzgzM2YKI2RlZmluZSBzY2hlZHVsZV90aW1lb3V0IF9zZXRfdmVy
KHNjaGVkdWxlX3RpbWVvdXQpCiNkZWZpbmUgX192ZXJfamlmZmllcyBzbXBfMGRhMDJkNjcKI2Rl
ZmluZSBqaWZmaWVzIF9zZXRfdmVyKGppZmZpZXMpCiNkZWZpbmUgX192ZXJfeHRpbWUgc21wX2Yz
MWRkZjgzCiNkZWZpbmUgeHRpbWUgX3NldF92ZXIoeHRpbWUpCiNkZWZpbmUgX192ZXJfZG9fZ2V0
dGltZW9mZGF5IHNtcF83MjI3MGUzNQojZGVmaW5lIGRvX2dldHRpbWVvZmRheSBfc2V0X3Zlcihk
b19nZXR0aW1lb2ZkYXkpCiNkZWZpbmUgX192ZXJfZG9fc2V0dGltZW9mZGF5IHNtcF8xOWQ3YjFm
ZgojZGVmaW5lIGRvX3NldHRpbWVvZmRheSBfc2V0X3Zlcihkb19zZXR0aW1lb2ZkYXkpCiNkZWZp
bmUgX192ZXJfa3N0YXQgc21wX2NmNWZhOTZjCiNkZWZpbmUga3N0YXQgX3NldF92ZXIoa3N0YXQp
CiNkZWZpbmUgX192ZXJfbnJfcnVubmluZyBzbXBfY2EzYzZkNzgKI2RlZmluZSBucl9ydW5uaW5n
IF9zZXRfdmVyKG5yX3J1bm5pbmcpCiNkZWZpbmUgX192ZXJfcGFuaWMgc21wXzAxMDc1YmYwCiNk
ZWZpbmUgcGFuaWMgX3NldF92ZXIocGFuaWMpCiNkZWZpbmUgX192ZXJfcHJpbnRrIHNtcF84Mjdk
NTgwNwojZGVmaW5lIHByaW50ayBfc2V0X3ZlcihwcmludGspCiNkZWZpbmUgX192ZXJfc3ByaW50
ZiBzbXBfM2MyYzVhZjUKI2RlZmluZSBzcHJpbnRmIF9zZXRfdmVyKHNwcmludGYpCiNkZWZpbmUg
X192ZXJfdnNwcmludGYgc21wXzk1NGNiYjI2CiNkZWZpbmUgdnNwcmludGYgX3NldF92ZXIodnNw
cmludGYpCiNkZWZpbmUgX192ZXJfa2Rldm5hbWUgc21wX2MyNThjOTA2CiNkZWZpbmUga2Rldm5h
bWUgX3NldF92ZXIoa2Rldm5hbWUpCiNkZWZpbmUgX192ZXJfYmRldm5hbWUgc21wX2QwNDc4MmU2
CiNkZWZpbmUgYmRldm5hbWUgX3NldF92ZXIoYmRldm5hbWUpCiNkZWZpbmUgX192ZXJfY2Rldm5h
bWUgc21wXzk3NTQ3NDFkCiNkZWZpbmUgY2Rldm5hbWUgX3NldF92ZXIoY2Rldm5hbWUpCiNkZWZp
bmUgX192ZXJfc2ltcGxlX3N0cnRvdWwgc21wXzIwMDAwMzI5CiNkZWZpbmUgc2ltcGxlX3N0cnRv
dWwgX3NldF92ZXIoc2ltcGxlX3N0cnRvdWwpCiNkZWZpbmUgX192ZXJfc3lzdGVtX3V0c25hbWUg
c21wX2IxMmNkZmU3CiNkZWZpbmUgc3lzdGVtX3V0c25hbWUgX3NldF92ZXIoc3lzdGVtX3V0c25h
bWUpCiNkZWZpbmUgX192ZXJfdXRzX3NlbSBzbXBfMzhhZWQyMDcKI2RlZmluZSB1dHNfc2VtIF9z
ZXRfdmVyKHV0c19zZW0pCiNkZWZpbmUgX192ZXJfc3lzX2NhbGxfdGFibGUgc21wX2RmZGIxOGJk
CiNkZWZpbmUgc3lzX2NhbGxfdGFibGUgX3NldF92ZXIoc3lzX2NhbGxfdGFibGUpCiNkZWZpbmUg
X192ZXJfbWFjaGluZV9yZXN0YXJ0IHNtcF9lNmUzZWY3MAojZGVmaW5lIG1hY2hpbmVfcmVzdGFy
dCBfc2V0X3ZlcihtYWNoaW5lX3Jlc3RhcnQpCiNkZWZpbmUgX192ZXJfbWFjaGluZV9oYWx0IHNt
cF85YWEzMjYzMAojZGVmaW5lIG1hY2hpbmVfaGFsdCBfc2V0X3ZlcihtYWNoaW5lX2hhbHQpCiNk
ZWZpbmUgX192ZXJfbWFjaGluZV9wb3dlcl9vZmYgc21wXzA5MWM4MjRhCiNkZWZpbmUgbWFjaGlu
ZV9wb3dlcl9vZmYgX3NldF92ZXIobWFjaGluZV9wb3dlcl9vZmYpCiNkZWZpbmUgX192ZXJfX2N0
eXBlIHNtcF84ZDM4OTRmMgojZGVmaW5lIF9jdHlwZSBfc2V0X3ZlcihfY3R5cGUpCiNkZWZpbmUg
X192ZXJfc2VjdXJlX3RjcF9zZXF1ZW5jZV9udW1iZXIgc21wXzFlNjg4NDFmCiNkZWZpbmUgc2Vj
dXJlX3RjcF9zZXF1ZW5jZV9udW1iZXIgX3NldF92ZXIoc2VjdXJlX3RjcF9zZXF1ZW5jZV9udW1i
ZXIpCiNkZWZpbmUgX192ZXJfZ2V0X3JhbmRvbV9ieXRlcyBzbXBfNzlhYTA0YTIKI2RlZmluZSBn
ZXRfcmFuZG9tX2J5dGVzIF9zZXRfdmVyKGdldF9yYW5kb21fYnl0ZXMpCiNkZWZpbmUgX192ZXJf
c2VjdXJlYml0cyBzbXBfYWJlNzc0ODQKI2RlZmluZSBzZWN1cmViaXRzIF9zZXRfdmVyKHNlY3Vy
ZWJpdHMpCiNkZWZpbmUgX192ZXJfY2FwX2JzZXQgc21wXzU5YWI0MDgwCiNkZWZpbmUgY2FwX2Jz
ZXQgX3NldF92ZXIoY2FwX2JzZXQpCiNkZWZpbmUgX192ZXJfZGFlbW9uaXplIHNtcF9kNjZhMzU0
YQojZGVmaW5lIGRhZW1vbml6ZSBfc2V0X3ZlcihkYWVtb25pemUpCiNkZWZpbmUgX192ZXJfY3N1
bV9wYXJ0aWFsIHNtcF85NDA5NWMxNgojZGVmaW5lIGNzdW1fcGFydGlhbCBfc2V0X3Zlcihjc3Vt
X3BhcnRpYWwpCiNkZWZpbmUgX192ZXJfc2V0dXBfYXJnX3BhZ2VzIHNtcF9kYWJiYmY2ZgojZGVm
aW5lIHNldHVwX2FyZ19wYWdlcyBfc2V0X3ZlcihzZXR1cF9hcmdfcGFnZXMpCiNkZWZpbmUgX192
ZXJfY29weV9zdHJpbmdzX2tlcm5lbCBzbXBfMTc5Mzg0M2UKI2RlZmluZSBjb3B5X3N0cmluZ3Nf
a2VybmVsIF9zZXRfdmVyKGNvcHlfc3RyaW5nc19rZXJuZWwpCiNkZWZpbmUgX192ZXJfZG9fZXhl
Y3ZlIHNtcF9kZTE5ZjAzYgojZGVmaW5lIGRvX2V4ZWN2ZSBfc2V0X3Zlcihkb19leGVjdmUpCiNk
ZWZpbmUgX192ZXJfZmx1c2hfb2xkX2V4ZWMgc21wXzRlNjQwNWE4CiNkZWZpbmUgZmx1c2hfb2xk
X2V4ZWMgX3NldF92ZXIoZmx1c2hfb2xkX2V4ZWMpCiNkZWZpbmUgX192ZXJfa2VybmVsX3JlYWQg
c21wX2Q5ZjM2NWVmCiNkZWZpbmUga2VybmVsX3JlYWQgX3NldF92ZXIoa2VybmVsX3JlYWQpCiNk
ZWZpbmUgX192ZXJfb3Blbl9leGVjIHNtcF9jNTg5MjQ2MQojZGVmaW5lIG9wZW5fZXhlYyBfc2V0
X3ZlcihvcGVuX2V4ZWMpCiNkZWZpbmUgX192ZXJfc2lfbWVtaW5mbyBzbXBfYjNhMzA3YzYKI2Rl
ZmluZSBzaV9tZW1pbmZvIF9zZXRfdmVyKHNpX21lbWluZm8pCiNkZWZpbmUgX192ZXJfc3lzX3R6
IHNtcF9iYWZlYmY3MQojZGVmaW5lIHN5c190eiBfc2V0X3ZlcihzeXNfdHopCiNkZWZpbmUgX192
ZXJfZmlsZV9mc3luYyBzbXBfMTcwZWMzMTcKI2RlZmluZSBmaWxlX2ZzeW5jIF9zZXRfdmVyKGZp
bGVfZnN5bmMpCiNkZWZpbmUgX192ZXJfZnN5bmNfaW5vZGVfYnVmZmVycyBzbXBfM2YxZGVjM2IK
I2RlZmluZSBmc3luY19pbm9kZV9idWZmZXJzIF9zZXRfdmVyKGZzeW5jX2lub2RlX2J1ZmZlcnMp
CiNkZWZpbmUgX192ZXJfY2xlYXJfaW5vZGUgc21wXzE1YjEyYTM3CiNkZWZpbmUgY2xlYXJfaW5v
ZGUgX3NldF92ZXIoY2xlYXJfaW5vZGUpCiNkZWZpbmUgX192ZXJfbnJfYXN5bmNfcGFnZXMgc21w
X2FiMzdhYzU4CiNkZWZpbmUgbnJfYXN5bmNfcGFnZXMgX3NldF92ZXIobnJfYXN5bmNfcGFnZXMp
CiNkZWZpbmUgX192ZXJfX19fc3RydG9rIHNtcF8yOTgwNWMxMwojZGVmaW5lIF9fX3N0cnRvayBf
c2V0X3ZlcihfX19zdHJ0b2spCiNkZWZpbmUgX192ZXJfaW5pdF9zcGVjaWFsX2lub2RlIHNtcF9i
MGRlN2U0NwojZGVmaW5lIGluaXRfc3BlY2lhbF9pbm9kZSBfc2V0X3Zlcihpbml0X3NwZWNpYWxf
aW5vZGUpCiNkZWZpbmUgX192ZXJfcmVhZF9haGVhZCBzbXBfMGFiYjdiMDcKI2RlZmluZSByZWFk
X2FoZWFkIF9zZXRfdmVyKHJlYWRfYWhlYWQpCiNkZWZpbmUgX192ZXJfZ2V0X2hhc2hfdGFibGUg
c21wXzNhZTM2ZmVhCiNkZWZpbmUgZ2V0X2hhc2hfdGFibGUgX3NldF92ZXIoZ2V0X2hhc2hfdGFi
bGUpCiNkZWZpbmUgX192ZXJfZ2V0X2VtcHR5X2lub2RlIHNtcF8yYjlhN2RlZAojZGVmaW5lIGdl
dF9lbXB0eV9pbm9kZSBfc2V0X3ZlcihnZXRfZW1wdHlfaW5vZGUpCiNkZWZpbmUgX192ZXJfaW5z
ZXJ0X2lub2RlX2hhc2ggc21wXzVjNjRiMWY4CiNkZWZpbmUgaW5zZXJ0X2lub2RlX2hhc2ggX3Nl
dF92ZXIoaW5zZXJ0X2lub2RlX2hhc2gpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX2lub2RlX2hhc2gg
c21wX2ZiODI0ZTExCiNkZWZpbmUgcmVtb3ZlX2lub2RlX2hhc2ggX3NldF92ZXIocmVtb3ZlX2lu
b2RlX2hhc2gpCiNkZWZpbmUgX192ZXJfYnVmZmVyX2luc2VydF9pbm9kZV9xdWV1ZSBzbXBfODlj
MmE1NzcKI2RlZmluZSBidWZmZXJfaW5zZXJ0X2lub2RlX3F1ZXVlIF9zZXRfdmVyKGJ1ZmZlcl9p
bnNlcnRfaW5vZGVfcXVldWUpCiNkZWZpbmUgX192ZXJfbWFrZV9iYWRfaW5vZGUgc21wX2Q2OWRk
NTgyCiNkZWZpbmUgbWFrZV9iYWRfaW5vZGUgX3NldF92ZXIobWFrZV9iYWRfaW5vZGUpCiNkZWZp
bmUgX192ZXJfaXNfYmFkX2lub2RlIHNtcF9mNDg4YzRlMQojZGVmaW5lIGlzX2JhZF9pbm9kZSBf
c2V0X3Zlcihpc19iYWRfaW5vZGUpCiNkZWZpbmUgX192ZXJfZXZlbnQgc21wXzdiMTZjMzQ0CiNk
ZWZpbmUgZXZlbnQgX3NldF92ZXIoZXZlbnQpCiNkZWZpbmUgX192ZXJfYnJ3X3BhZ2Ugc21wXzIw
ZGM2MzVjCiNkZWZpbmUgYnJ3X3BhZ2UgX3NldF92ZXIoYnJ3X3BhZ2UpCiNkZWZpbmUgX192ZXJf
ZnNfb3ZlcmZsb3d1aWQgc21wXzI1ODIwYzY0CiNkZWZpbmUgZnNfb3ZlcmZsb3d1aWQgX3NldF92
ZXIoZnNfb3ZlcmZsb3d1aWQpCiNkZWZpbmUgX192ZXJfZnNfb3ZlcmZsb3dnaWQgc21wX2RmOTI5
MzcwCiNkZWZpbmUgZnNfb3ZlcmZsb3dnaWQgX3NldF92ZXIoZnNfb3ZlcmZsb3dnaWQpCiNkZWZp
bmUgX192ZXJfZmFzeW5jX2hlbHBlciBzbXBfYjI2ZWVmMzAKI2RlZmluZSBmYXN5bmNfaGVscGVy
IF9zZXRfdmVyKGZhc3luY19oZWxwZXIpCiNkZWZpbmUgX192ZXJfa2lsbF9mYXN5bmMgc21wXzQ2
ODIwMzRjCiNkZWZpbmUga2lsbF9mYXN5bmMgX3NldF92ZXIoa2lsbF9mYXN5bmMpCiNkZWZpbmUg
X192ZXJfZGlza19uYW1lIHNtcF9mNDg0NzEwMwojZGVmaW5lIGRpc2tfbmFtZSBfc2V0X3Zlcihk
aXNrX25hbWUpCiNkZWZpbmUgX192ZXJfZ2V0X3dyaXRlX2FjY2VzcyBzbXBfNzc3YmNmNzkKI2Rl
ZmluZSBnZXRfd3JpdGVfYWNjZXNzIF9zZXRfdmVyKGdldF93cml0ZV9hY2Nlc3MpCiNkZWZpbmUg
X192ZXJfcmVnaXN0ZXJfY29uc29sZSBzbXBfMjBhMzk0NzIKI2RlZmluZSByZWdpc3Rlcl9jb25z
b2xlIF9zZXRfdmVyKHJlZ2lzdGVyX2NvbnNvbGUpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9j
b25zb2xlIHNtcF8zMjI0YTVjNAojZGVmaW5lIHVucmVnaXN0ZXJfY29uc29sZSBfc2V0X3Zlcih1
bnJlZ2lzdGVyX2NvbnNvbGUpCiNkZWZpbmUgX192ZXJfZ2V0X2Zhc3RfdGltZSBzbXBfNjA3NDMw
MjIKI2RlZmluZSBnZXRfZmFzdF90aW1lIF9zZXRfdmVyKGdldF9mYXN0X3RpbWUpCiNkZWZpbmUg
X192ZXJfc3RybmljbXAgc21wXzc1NmU2OTkyCiNkZWZpbmUgc3RybmljbXAgX3NldF92ZXIoc3Ry
bmljbXApCiNkZWZpbmUgX192ZXJfc3Ryc3BuIHNtcF8zZmE5MTNkYQojZGVmaW5lIHN0cnNwbiBf
c2V0X3ZlcihzdHJzcG4pCiNkZWZpbmUgX192ZXJfc3Ryc2VwIHNtcF84NWRmOWI2YwojZGVmaW5l
IHN0cnNlcCBfc2V0X3ZlcihzdHJzZXApCiNkZWZpbmUgX192ZXJfdGFza2xldF9oaV92ZWMgc21w
X2E0YWY4NDlmCiNkZWZpbmUgdGFza2xldF9oaV92ZWMgX3NldF92ZXIodGFza2xldF9oaV92ZWMp
CiNkZWZpbmUgX192ZXJfdGFza2xldF92ZWMgc21wX2EzMDFjOTNjCiNkZWZpbmUgdGFza2xldF92
ZWMgX3NldF92ZXIodGFza2xldF92ZWMpCiNkZWZpbmUgX192ZXJfYmhfdGFza192ZWMgc21wXzFi
YWUyYWFlCiNkZWZpbmUgYmhfdGFza192ZWMgX3NldF92ZXIoYmhfdGFza192ZWMpCiNkZWZpbmUg
X192ZXJfaW5pdF9iaCBzbXBfZjZjZjI3Y2MKI2RlZmluZSBpbml0X2JoIF9zZXRfdmVyKGluaXRf
YmgpCiNkZWZpbmUgX192ZXJfcmVtb3ZlX2JoIHNtcF9iYzUyNGEzMgojZGVmaW5lIHJlbW92ZV9i
aCBfc2V0X3ZlcihyZW1vdmVfYmgpCiNkZWZpbmUgX192ZXJfdGFza2xldF9pbml0IHNtcF82OTU3
NWJjYwojZGVmaW5lIHRhc2tsZXRfaW5pdCBfc2V0X3Zlcih0YXNrbGV0X2luaXQpCiNkZWZpbmUg
X192ZXJfdGFza2xldF9raWxsIHNtcF83NGUwNWQ4YwojZGVmaW5lIHRhc2tsZXRfa2lsbCBfc2V0
X3Zlcih0YXNrbGV0X2tpbGwpCiNkZWZpbmUgX192ZXJfX19ydW5fdGFza19xdWV1ZSBzbXBfMzg4
OWIxMWMKI2RlZmluZSBfX3J1bl90YXNrX3F1ZXVlIF9zZXRfdmVyKF9fcnVuX3Rhc2tfcXVldWUp
CiNkZWZpbmUgX192ZXJfZG9fc29mdGlycSBzbXBfOWMzMDUzNzgKI2RlZmluZSBkb19zb2Z0aXJx
IF9zZXRfdmVyKGRvX3NvZnRpcnEpCiNkZWZpbmUgX192ZXJfcmFpc2Vfc29mdGlycSBzbXBfYzdl
YThhN2EKI2RlZmluZSByYWlzZV9zb2Z0aXJxIF9zZXRfdmVyKHJhaXNlX3NvZnRpcnEpCiNkZWZp
bmUgX192ZXJfY3B1X3JhaXNlX3NvZnRpcnEgc21wXzRkMDkxNjZjCiNkZWZpbmUgY3B1X3JhaXNl
X3NvZnRpcnEgX3NldF92ZXIoY3B1X3JhaXNlX3NvZnRpcnEpCiNkZWZpbmUgX192ZXJfdGFza2xl
dF9zY2hlZHVsZSBzbXBfOWU0NjViYjcKI2RlZmluZSB0YXNrbGV0X3NjaGVkdWxlIF9zZXRfdmVy
KHRhc2tsZXRfc2NoZWR1bGUpCiNkZWZpbmUgX192ZXJfdGFza2xldF9oaV9zY2hlZHVsZSBzbXBf
ODk3NjJmYTIKI2RlZmluZSB0YXNrbGV0X2hpX3NjaGVkdWxlIF9zZXRfdmVyKHRhc2tsZXRfaGlf
c2NoZWR1bGUpCiNkZWZpbmUgX192ZXJfaW5pdF90YXNrX3VuaW9uIHNtcF9jZTQ4MTkwNAojZGVm
aW5lIGluaXRfdGFza191bmlvbiBfc2V0X3Zlcihpbml0X3Rhc2tfdW5pb24pCiNkZWZpbmUgX192
ZXJfdGFza2xpc3RfbG9jayBzbXBfZWJjOTM1NzQKI2RlZmluZSB0YXNrbGlzdF9sb2NrIF9zZXRf
dmVyKHRhc2tsaXN0X2xvY2spCiNkZWZpbmUgX192ZXJfcGlkaGFzaCBzbXBfYjQ4ZTA5NmMKI2Rl
ZmluZSBwaWRoYXNoIF9zZXRfdmVyKHBpZGhhc2gpCiMgMTMwICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbGFwYl9pZmFjZS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9s
YXBiX3JlZ2lzdGVyIHNtcF81YThiOTdhYgojZGVmaW5lIGxhcGJfcmVnaXN0ZXIgX3NldF92ZXIo
bGFwYl9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9sYXBiX3VucmVnaXN0ZXIgc21wX2ZmYWE2ZGE3
CiNkZWZpbmUgbGFwYl91bnJlZ2lzdGVyIF9zZXRfdmVyKGxhcGJfdW5yZWdpc3RlcikKI2RlZmlu
ZSBfX3Zlcl9sYXBiX2dldHBhcm1zIHNtcF8wMTI3YmM5ZAojZGVmaW5lIGxhcGJfZ2V0cGFybXMg
X3NldF92ZXIobGFwYl9nZXRwYXJtcykKI2RlZmluZSBfX3Zlcl9sYXBiX3NldHBhcm1zIHNtcF8x
NzUyNDdkOAojZGVmaW5lIGxhcGJfc2V0cGFybXMgX3NldF92ZXIobGFwYl9zZXRwYXJtcykKI2Rl
ZmluZSBfX3Zlcl9sYXBiX2Nvbm5lY3RfcmVxdWVzdCBzbXBfODkyNGRkYWUKI2RlZmluZSBsYXBi
X2Nvbm5lY3RfcmVxdWVzdCBfc2V0X3ZlcihsYXBiX2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmluZSBf
X3Zlcl9sYXBiX2Rpc2Nvbm5lY3RfcmVxdWVzdCBzbXBfOGQxN2RjZmQKI2RlZmluZSBsYXBiX2Rp
c2Nvbm5lY3RfcmVxdWVzdCBfc2V0X3ZlcihsYXBiX2Rpc2Nvbm5lY3RfcmVxdWVzdCkKI2RlZmlu
ZSBfX3Zlcl9sYXBiX2RhdGFfcmVxdWVzdCBzbXBfZjg3ZWZkODUKI2RlZmluZSBsYXBiX2RhdGFf
cmVxdWVzdCBfc2V0X3ZlcihsYXBiX2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sYXBiX2Rh
dGFfcmVjZWl2ZWQgc21wXzQ2NjU0ZDNjCiNkZWZpbmUgbGFwYl9kYXRhX3JlY2VpdmVkIF9zZXRf
dmVyKGxhcGJfZGF0YV9yZWNlaXZlZCkKIyAxMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9sbGNfbWFjaW5pdC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rl
cl9jbDJsbGNfY2xpZW50IHNtcF9iMTE5ZmMzYwojZGVmaW5lIHJlZ2lzdGVyX2NsMmxsY19jbGll
bnQgX3NldF92ZXIocmVnaXN0ZXJfY2wybGxjX2NsaWVudCkKI2RlZmluZSBfX3Zlcl91bnJlZ2lz
dGVyX2NsMmxsY19jbGllbnQgc21wXzQ5MDkyMjg4CiNkZWZpbmUgdW5yZWdpc3Rlcl9jbDJsbGNf
Y2xpZW50IF9zZXRfdmVyKHVucmVnaXN0ZXJfY2wybGxjX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9s
bGNfZGF0YV9yZXF1ZXN0IHNtcF80MWIyMmM0YQojZGVmaW5lIGxsY19kYXRhX3JlcXVlc3QgX3Nl
dF92ZXIobGxjX2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sbGNfdW5pdF9kYXRhX3JlcXVl
c3Qgc21wX2U3MWIyNzU4CiNkZWZpbmUgbGxjX3VuaXRfZGF0YV9yZXF1ZXN0IF9zZXRfdmVyKGxs
Y191bml0X2RhdGFfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sbGNfdGVzdF9yZXF1ZXN0IHNtcF8z
ZWU2NjU2ZQojZGVmaW5lIGxsY190ZXN0X3JlcXVlc3QgX3NldF92ZXIobGxjX3Rlc3RfcmVxdWVz
dCkKI2RlZmluZSBfX3Zlcl9sbGNfeGlkX3JlcXVlc3Qgc21wX2E2YzA1N2FiCiNkZWZpbmUgbGxj
X3hpZF9yZXF1ZXN0IF9zZXRfdmVyKGxsY194aWRfcmVxdWVzdCkKI2RlZmluZSBfX3Zlcl9sbGNf
bWFjX2RhdGFfaW5kaWNhdGUgc21wXzI4MjM3YTQ5CiNkZWZpbmUgbGxjX21hY19kYXRhX2luZGlj
YXRlIF9zZXRfdmVyKGxsY19tYWNfZGF0YV9pbmRpY2F0ZSkKI2RlZmluZSBfX3Zlcl9sbGNfY2Fu
Y2VsX3RpbWVycyBzbXBfMzZlZjAxYTAKI2RlZmluZSBsbGNfY2FuY2VsX3RpbWVycyBfc2V0X3Zl
cihsbGNfY2FuY2VsX3RpbWVycykKIyAxMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdWxlcy9sbF9yd19ibGsudmVyIiAxCiNkZWZpbmUgX192ZXJfaW9fcmVxdWVzdF9s
b2NrIHNtcF8wOGMzOWRhNgojZGVmaW5lIGlvX3JlcXVlc3RfbG9jayBfc2V0X3Zlcihpb19yZXF1
ZXN0X2xvY2spCiNkZWZpbmUgX192ZXJfZW5kX3RoYXRfcmVxdWVzdF9maXJzdCBzbXBfNDA3YzQ2
MzUKI2RlZmluZSBlbmRfdGhhdF9yZXF1ZXN0X2ZpcnN0IF9zZXRfdmVyKGVuZF90aGF0X3JlcXVl
c3RfZmlyc3QpCiNkZWZpbmUgX192ZXJfZW5kX3RoYXRfcmVxdWVzdF9sYXN0IHNtcF9mN2ZkN2Jm
YQojZGVmaW5lIGVuZF90aGF0X3JlcXVlc3RfbGFzdCBfc2V0X3ZlcihlbmRfdGhhdF9yZXF1ZXN0
X2xhc3QpCiNkZWZpbmUgX192ZXJfYmxrX2luaXRfcXVldWUgc21wXzFkZjQ3NDM4CiNkZWZpbmUg
YmxrX2luaXRfcXVldWUgX3NldF92ZXIoYmxrX2luaXRfcXVldWUpCiNkZWZpbmUgX192ZXJfYmxr
X2dldF9xdWV1ZSBzbXBfNjJmZDIzODMKI2RlZmluZSBibGtfZ2V0X3F1ZXVlIF9zZXRfdmVyKGJs
a19nZXRfcXVldWUpCiNkZWZpbmUgX192ZXJfX19ibGtfZ2V0X3F1ZXVlIHNtcF82ZWQyYzlmMQoj
ZGVmaW5lIF9fYmxrX2dldF9xdWV1ZSBfc2V0X3ZlcihfX2Jsa19nZXRfcXVldWUpCiNkZWZpbmUg
X192ZXJfYmxrX2NsZWFudXBfcXVldWUgc21wXzhkMjBhNzE2CiNkZWZpbmUgYmxrX2NsZWFudXBf
cXVldWUgX3NldF92ZXIoYmxrX2NsZWFudXBfcXVldWUpCiNkZWZpbmUgX192ZXJfYmxrX3F1ZXVl
X2hlYWRhY3RpdmUgc21wXzM5ZDE3MmEyCiNkZWZpbmUgYmxrX3F1ZXVlX2hlYWRhY3RpdmUgX3Nl
dF92ZXIoYmxrX3F1ZXVlX2hlYWRhY3RpdmUpCiNkZWZpbmUgX192ZXJfYmxrX3F1ZXVlX21ha2Vf
cmVxdWVzdCBzbXBfNGUyYjBiNTUKI2RlZmluZSBibGtfcXVldWVfbWFrZV9yZXF1ZXN0IF9zZXRf
dmVyKGJsa19xdWV1ZV9tYWtlX3JlcXVlc3QpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY19tYWtlX3Jl
cXVlc3Qgc21wXzI0YjNmM2FhCiNkZWZpbmUgZ2VuZXJpY19tYWtlX3JlcXVlc3QgX3NldF92ZXIo
Z2VuZXJpY19tYWtlX3JlcXVlc3QpCiNkZWZpbmUgX192ZXJfYmxrZGV2X3JlbGVhc2VfcmVxdWVz
dCBzbXBfYTVkZDE1Y2MKI2RlZmluZSBibGtkZXZfcmVsZWFzZV9yZXF1ZXN0IF9zZXRfdmVyKGJs
a2Rldl9yZWxlYXNlX3JlcXVlc3QpCiNkZWZpbmUgX192ZXJfZ2VuZXJpY191bnBsdWdfZGV2aWNl
IHNtcF9hMmI4MDc1ZQojZGVmaW5lIGdlbmVyaWNfdW5wbHVnX2RldmljZSBfc2V0X3ZlcihnZW5l
cmljX3VucGx1Z19kZXZpY2UpCiNkZWZpbmUgX192ZXJfcXVldWVkX3NlY3RvcnMgc21wX2MwNDZl
OTZiCiNkZWZpbmUgcXVldWVkX3NlY3RvcnMgX3NldF92ZXIocXVldWVkX3NlY3RvcnMpCiMgMTMz
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbG9ja2Rfc3ltcy52
ZXIiIDEKI2RlZmluZSBfX3Zlcl9sb2NrZF91cCBzbXBfZjY5MzNjNDgKI2RlZmluZSBsb2NrZF91
cCBfc2V0X3Zlcihsb2NrZF91cCkKI2RlZmluZSBfX3Zlcl9sb2NrZF9kb3duIHNtcF9hN2I5MWE3
YgojZGVmaW5lIGxvY2tkX2Rvd24gX3NldF92ZXIobG9ja2RfZG93bikKI2RlZmluZSBfX3Zlcl9u
bG1jbG50X3Byb2Mgc21wXzhhZDI1Yjg5CiNkZWZpbmUgbmxtY2xudF9wcm9jIF9zZXRfdmVyKG5s
bWNsbnRfcHJvYykKI2RlZmluZSBfX3Zlcl9ubG1zdmNfaW52YWxpZGF0ZV9jbGllbnQgc21wX2Ix
YzNmODI1CiNkZWZpbmUgbmxtc3ZjX2ludmFsaWRhdGVfY2xpZW50IF9zZXRfdmVyKG5sbXN2Y19p
bnZhbGlkYXRlX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9ubG1zdmNfb3BzIHNtcF9mYmJmMDY2Ngoj
ZGVmaW5lIG5sbXN2Y19vcHMgX3NldF92ZXIobmxtc3ZjX29wcykKI2RlZmluZSBfX3Zlcl9ubG1z
dmNfZ3JhY2VfcGVyaW9kIHNtcF9mNjE3Nzc2OAojZGVmaW5lIG5sbXN2Y19ncmFjZV9wZXJpb2Qg
X3NldF92ZXIobmxtc3ZjX2dyYWNlX3BlcmlvZCkKI2RlZmluZSBfX3Zlcl9ubG1zdmNfdGltZW91
dCBzbXBfNDRiNDA1MDUKI2RlZmluZSBubG1zdmNfdGltZW91dCBfc2V0X3ZlcihubG1zdmNfdGlt
ZW91dCkKIyAxMzQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9s
b29wLnZlciIgMQojZGVmaW5lIF9fdmVyX2xvb3BfcmVnaXN0ZXJfdHJhbnNmZXIgc21wXzZmYzc3
NjBmCiNkZWZpbmUgbG9vcF9yZWdpc3Rlcl90cmFuc2ZlciBfc2V0X3Zlcihsb29wX3JlZ2lzdGVy
X3RyYW5zZmVyKQojZGVmaW5lIF9fdmVyX2xvb3BfdW5yZWdpc3Rlcl90cmFuc2ZlciBzbXBfYmZl
ZTNhZDUKI2RlZmluZSBsb29wX3VucmVnaXN0ZXJfdHJhbnNmZXIgX3NldF92ZXIobG9vcF91bnJl
Z2lzdGVyX3RyYW5zZmVyKQojIDEzNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R1bGVzL21hY19oaWQudmVyIiAxCiMgMTM2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21vZHVsZXMvbWF0cm94ZmJfYWNjZWwudmVyIiAxCiMgMTM3ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbWF0cm94ZmJfYmFzZS52ZXIiIDEKI2Rl
ZmluZSBfX3Zlcl9tYXRyb3hmYl9yZWdpc3Rlcl9kcml2ZXIgc21wXzAwOTI2NmJmCiNkZWZpbmUg
bWF0cm94ZmJfcmVnaXN0ZXJfZHJpdmVyIF9zZXRfdmVyKG1hdHJveGZiX3JlZ2lzdGVyX2RyaXZl
cikKI2RlZmluZSBfX3Zlcl9tYXRyb3hmYl91bnJlZ2lzdGVyX2RyaXZlciBzbXBfM2ZkYzE2N2YK
I2RlZmluZSBtYXRyb3hmYl91bnJlZ2lzdGVyX2RyaXZlciBfc2V0X3ZlcihtYXRyb3hmYl91bnJl
Z2lzdGVyX2RyaXZlcikKIyAxMzggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdWxlcy9tYXRyb3hmYl9EQUMxMDY0LnZlciIgMQojIDEzOSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21hdHJveGZiX21pc2MudmVyIiAxCiNkZWZpbmUgX192
ZXJfbWF0cm94ZmJfREFDX2luIHNtcF8xODMzOWMzNgojZGVmaW5lIG1hdHJveGZiX0RBQ19pbiBf
c2V0X3ZlcihtYXRyb3hmYl9EQUNfaW4pCiNkZWZpbmUgX192ZXJfbWF0cm94ZmJfREFDX291dCBz
bXBfYTQ1NmIxM2QKI2RlZmluZSBtYXRyb3hmYl9EQUNfb3V0IF9zZXRfdmVyKG1hdHJveGZiX0RB
Q19vdXQpCiNkZWZpbmUgX192ZXJfbWF0cm94ZmJfdmFyMm15IHNtcF8yMjgwMGI0NwojZGVmaW5l
IG1hdHJveGZiX3ZhcjJteSBfc2V0X3ZlcihtYXRyb3hmYl92YXIybXkpCiNkZWZpbmUgX192ZXJf
bWF0cm94ZmJfUExMX2NhbGNjbG9jayBzbXBfMjVjZjgwNDkKI2RlZmluZSBtYXRyb3hmYl9QTExf
Y2FsY2Nsb2NrIF9zZXRfdmVyKG1hdHJveGZiX1BMTF9jYWxjY2xvY2spCiNkZWZpbmUgX192ZXJf
bWF0cm94ZmJfZ2xvYmFsX214aW5mbyBzbXBfODYyMDdlNDUKI2RlZmluZSBtYXRyb3hmYl9nbG9i
YWxfbXhpbmZvIF9zZXRfdmVyKG1hdHJveGZiX2dsb2JhbF9teGluZm8pCiNkZWZpbmUgX192ZXJf
bWF0cm94X3RleHRfbG9hZGZvbnQgc21wXzEzYmFmOTQyCiNkZWZpbmUgbWF0cm94X3RleHRfbG9h
ZGZvbnQgX3NldF92ZXIobWF0cm94X3RleHRfbG9hZGZvbnQpCiNkZWZpbmUgX192ZXJfbWF0cm94
ZmJfY3JlYXRlY3Vyc29yc2hhcGUgc21wX2U4NjA5MTU5CiNkZWZpbmUgbWF0cm94ZmJfY3JlYXRl
Y3Vyc29yc2hhcGUgX3NldF92ZXIobWF0cm94ZmJfY3JlYXRlY3Vyc29yc2hhcGUpCiNkZWZpbmUg
X192ZXJfbWF0cm94ZmJfZmFzdGZvbnRfdHJ5c2V0IHNtcF81MjU2OTVmNgojZGVmaW5lIG1hdHJv
eGZiX2Zhc3Rmb250X3RyeXNldCBfc2V0X3ZlcihtYXRyb3hmYl9mYXN0Zm9udF90cnlzZXQpCiNk
ZWZpbmUgX192ZXJfbWF0cm94ZmJfZmFzdGZvbnRfaW5pdCBzbXBfNTViMTZjYjMKI2RlZmluZSBt
YXRyb3hmYl9mYXN0Zm9udF9pbml0IF9zZXRfdmVyKG1hdHJveGZiX2Zhc3Rmb250X2luaXQpCiNk
ZWZpbmUgX192ZXJfbWF0cm94ZmJfdmdhSFdpbml0IHNtcF9mNjkwNTU0MgojZGVmaW5lIG1hdHJv
eGZiX3ZnYUhXaW5pdCBfc2V0X3ZlcihtYXRyb3hmYl92Z2FIV2luaXQpCiNkZWZpbmUgX192ZXJf
bWF0cm94ZmJfdmdhSFdyZXN0b3JlIHNtcF8wNmMyYmYzZQojZGVmaW5lIG1hdHJveGZiX3ZnYUhX
cmVzdG9yZSBfc2V0X3ZlcihtYXRyb3hmYl92Z2FIV3Jlc3RvcmUpCiMgMTQwICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbWF0cm94ZmJfVGkzMDI2LnZlciIgMQoj
IDE0MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21kLnZlciIg
MQojZGVmaW5lIF9fdmVyX21kX3NpemUgc21wX2Q3OWZjMTE2CiNkZWZpbmUgbWRfc2l6ZSBfc2V0
X3ZlcihtZF9zaXplKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX21kX3BlcnNvbmFsaXR5IHNtcF83
N2ViZjlhYgojZGVmaW5lIHJlZ2lzdGVyX21kX3BlcnNvbmFsaXR5IF9zZXRfdmVyKHJlZ2lzdGVy
X21kX3BlcnNvbmFsaXR5KQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfbWRfcGVyc29uYWxpdHkg
c21wXzRjOTUxOThkCiNkZWZpbmUgdW5yZWdpc3Rlcl9tZF9wZXJzb25hbGl0eSBfc2V0X3Zlcih1
bnJlZ2lzdGVyX21kX3BlcnNvbmFsaXR5KQojZGVmaW5lIF9fdmVyX3BhcnRpdGlvbl9uYW1lIHNt
cF9lNGIyOThiNQojZGVmaW5lIHBhcnRpdGlvbl9uYW1lIF9zZXRfdmVyKHBhcnRpdGlvbl9uYW1l
KQojZGVmaW5lIF9fdmVyX21kX2Vycm9yIHNtcF8wMmU0OWM2YgojZGVmaW5lIG1kX2Vycm9yIF9z
ZXRfdmVyKG1kX2Vycm9yKQojZGVmaW5lIF9fdmVyX21kX2RvX3N5bmMgc21wXzZlOTI2N2NhCiNk
ZWZpbmUgbWRfZG9fc3luYyBfc2V0X3ZlcihtZF9kb19zeW5jKQojZGVmaW5lIF9fdmVyX21kX3N5
bmNfYWNjdCBzbXBfNTIyODc0MjkKI2RlZmluZSBtZF9zeW5jX2FjY3QgX3NldF92ZXIobWRfc3lu
Y19hY2N0KQojZGVmaW5lIF9fdmVyX21kX2RvbmVfc3luYyBzbXBfYWI5YWM3ZjcKI2RlZmluZSBt
ZF9kb25lX3N5bmMgX3NldF92ZXIobWRfZG9uZV9zeW5jKQojZGVmaW5lIF9fdmVyX21kX3JlY292
ZXJfYXJyYXlzIHNtcF85MzA5MDE2NwojZGVmaW5lIG1kX3JlY292ZXJfYXJyYXlzIF9zZXRfdmVy
KG1kX3JlY292ZXJfYXJyYXlzKQojZGVmaW5lIF9fdmVyX21kX3JlZ2lzdGVyX3RocmVhZCBzbXBf
ZGRiMzdmNDAKI2RlZmluZSBtZF9yZWdpc3Rlcl90aHJlYWQgX3NldF92ZXIobWRfcmVnaXN0ZXJf
dGhyZWFkKQojZGVmaW5lIF9fdmVyX21kX3VucmVnaXN0ZXJfdGhyZWFkIHNtcF85ZjQ3MjAwMAoj
ZGVmaW5lIG1kX3VucmVnaXN0ZXJfdGhyZWFkIF9zZXRfdmVyKG1kX3VucmVnaXN0ZXJfdGhyZWFk
KQojZGVmaW5lIF9fdmVyX21kX3VwZGF0ZV9zYiBzbXBfMTI0YTAxOTYKI2RlZmluZSBtZF91cGRh
dGVfc2IgX3NldF92ZXIobWRfdXBkYXRlX3NiKQojZGVmaW5lIF9fdmVyX21kX3dha2V1cF90aHJl
YWQgc21wXzYyZDAxMDg2CiNkZWZpbmUgbWRfd2FrZXVwX3RocmVhZCBfc2V0X3ZlcihtZF93YWtl
dXBfdGhyZWFkKQojZGVmaW5lIF9fdmVyX21kX3ByaW50X2RldmljZXMgc21wX2E4ZDM2MzA2CiNk
ZWZpbmUgbWRfcHJpbnRfZGV2aWNlcyBfc2V0X3ZlcihtZF9wcmludF9kZXZpY2VzKQojZGVmaW5l
IF9fdmVyX2ZpbmRfcmRldl9uciBzbXBfYTQ5ODFjMjYKI2RlZmluZSBmaW5kX3JkZXZfbnIgX3Nl
dF92ZXIoZmluZF9yZGV2X25yKQojZGVmaW5lIF9fdmVyX21kX2ludGVycnVwdF90aHJlYWQgc21w
X2E3NDk0M2E1CiNkZWZpbmUgbWRfaW50ZXJydXB0X3RocmVhZCBfc2V0X3ZlcihtZF9pbnRlcnJ1
cHRfdGhyZWFkKQojZGVmaW5lIF9fdmVyX21kZGV2X21hcCBzbXBfNzJiNDAyYmEKI2RlZmluZSBt
ZGRldl9tYXAgX3NldF92ZXIobWRkZXZfbWFwKQojZGVmaW5lIF9fdmVyX21kX2NoZWNrX29yZGVy
aW5nIHNtcF9iNzNhODE0YgojZGVmaW5lIG1kX2NoZWNrX29yZGVyaW5nIF9zZXRfdmVyKG1kX2No
ZWNrX29yZGVyaW5nKQojIDE0MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R1bGVzL21nYV9kcnYudmVyIiAxCiMgMTQzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHVsZXMvbWlkaV9zeW1zLnZlciIgMQojZGVmaW5lIF9fdmVyX2RvX21pZGlfbXNn
IHNtcF9iNTE1ODdmNgojZGVmaW5lIGRvX21pZGlfbXNnIF9zZXRfdmVyKGRvX21pZGlfbXNnKQoj
ZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfb3BlbiBzbXBfZjZiM2EyZmIKI2RlZmluZSBtaWRpX3N5
bnRoX29wZW4gX3NldF92ZXIobWlkaV9zeW50aF9vcGVuKQojZGVmaW5lIF9fdmVyX21pZGlfc3lu
dGhfY2xvc2Ugc21wX2FkNDVkZjczCiNkZWZpbmUgbWlkaV9zeW50aF9jbG9zZSBfc2V0X3Zlciht
aWRpX3N5bnRoX2Nsb3NlKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfaW9jdGwgc21wX2I2NmQx
ZjY3CiNkZWZpbmUgbWlkaV9zeW50aF9pb2N0bCBfc2V0X3ZlcihtaWRpX3N5bnRoX2lvY3RsKQoj
ZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfa2lsbF9ub3RlIHNtcF8yYWEzMTY5NQojZGVmaW5lIG1p
ZGlfc3ludGhfa2lsbF9ub3RlIF9zZXRfdmVyKG1pZGlfc3ludGhfa2lsbF9ub3RlKQojZGVmaW5l
IF9fdmVyX21pZGlfc3ludGhfc3RhcnRfbm90ZSBzbXBfOWJkYWYyNGQKI2RlZmluZSBtaWRpX3N5
bnRoX3N0YXJ0X25vdGUgX3NldF92ZXIobWlkaV9zeW50aF9zdGFydF9ub3RlKQojZGVmaW5lIF9f
dmVyX21pZGlfc3ludGhfc2V0X2luc3RyIHNtcF9kODViZTkzOAojZGVmaW5lIG1pZGlfc3ludGhf
c2V0X2luc3RyIF9zZXRfdmVyKG1pZGlfc3ludGhfc2V0X2luc3RyKQojZGVmaW5lIF9fdmVyX21p
ZGlfc3ludGhfcmVzZXQgc21wXzU2NTA0Y2EyCiNkZWZpbmUgbWlkaV9zeW50aF9yZXNldCBfc2V0
X3ZlcihtaWRpX3N5bnRoX3Jlc2V0KQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfaHdfY29udHJv
bCBzbXBfYjE0YjIyY2QKI2RlZmluZSBtaWRpX3N5bnRoX2h3X2NvbnRyb2wgX3NldF92ZXIobWlk
aV9zeW50aF9od19jb250cm9sKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfYWZ0ZXJ0b3VjaCBz
bXBfZjFlYThhMjAKI2RlZmluZSBtaWRpX3N5bnRoX2FmdGVydG91Y2ggX3NldF92ZXIobWlkaV9z
eW50aF9hZnRlcnRvdWNoKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfY29udHJvbGxlciBzbXBf
ODkyMDkzZTAKI2RlZmluZSBtaWRpX3N5bnRoX2NvbnRyb2xsZXIgX3NldF92ZXIobWlkaV9zeW50
aF9jb250cm9sbGVyKQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfcGFubmluZyBzbXBfZGI0MDBh
ZmEKI2RlZmluZSBtaWRpX3N5bnRoX3Bhbm5pbmcgX3NldF92ZXIobWlkaV9zeW50aF9wYW5uaW5n
KQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfc2V0dXBfdm9pY2Ugc21wXzRmZjQ3ZTlkCiNkZWZp
bmUgbWlkaV9zeW50aF9zZXR1cF92b2ljZSBfc2V0X3ZlcihtaWRpX3N5bnRoX3NldHVwX3ZvaWNl
KQojZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfc2VuZF9zeXNleCBzbXBfZmRkY2JmYjMKI2RlZmlu
ZSBtaWRpX3N5bnRoX3NlbmRfc3lzZXggX3NldF92ZXIobWlkaV9zeW50aF9zZW5kX3N5c2V4KQoj
ZGVmaW5lIF9fdmVyX21pZGlfc3ludGhfYmVuZGVyIHNtcF9iYTdkZDA0MQojZGVmaW5lIG1pZGlf
c3ludGhfYmVuZGVyIF9zZXRfdmVyKG1pZGlfc3ludGhfYmVuZGVyKQojZGVmaW5lIF9fdmVyX21p
ZGlfc3ludGhfbG9hZF9wYXRjaCBzbXBfZjc0MjZkYTMKI2RlZmluZSBtaWRpX3N5bnRoX2xvYWRf
cGF0Y2ggX3NldF92ZXIobWlkaV9zeW50aF9sb2FkX3BhdGNoKQojZGVmaW5lIF9fdmVyX01JREli
dWZfYXZhaWwgc21wXzFmMzk1Njg2CiNkZWZpbmUgTUlESWJ1Zl9hdmFpbCBfc2V0X3ZlcihNSURJ
YnVmX2F2YWlsKQojIDE0NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL21pcm9wY20yMC1yZHMtY29yZS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hY2lfcmRzX2NtZCBz
bXBfZGU0MTU2Y2UKI2RlZmluZSBhY2lfcmRzX2NtZCBfc2V0X3ZlcihhY2lfcmRzX2NtZCkKIyAx
NDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9taXNjLnZlciIg
MQojZGVmaW5lIF9fdmVyX21pc2NfcmVnaXN0ZXIgc21wX2ZjNGM4M2VlCiNkZWZpbmUgbWlzY19y
ZWdpc3RlciBfc2V0X3ZlcihtaXNjX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21pc2NfZGVyZWdp
c3RlciBzbXBfNGIxMDZjZGMKI2RlZmluZSBtaXNjX2RlcmVnaXN0ZXIgX3NldF92ZXIobWlzY19k
ZXJlZ2lzdGVyKQojIDE0NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2
ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1
bGVzL21vZGVkYi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9fX2ZiX3RyeV9tb2RlIHNtcF80M2QyZDJm
ZAojZGVmaW5lIF9fZmJfdHJ5X21vZGUgX3NldF92ZXIoX19mYl90cnlfbW9kZSkKIyAxNDcgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9tcHRiYXNlLnZlciIgMQoj
ZGVmaW5lIF9fdmVyX21wdF9yZWdpc3RlciBzbXBfMDQ3N2NlYzkKI2RlZmluZSBtcHRfcmVnaXN0
ZXIgX3NldF92ZXIobXB0X3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21wdF9kZXJlZ2lzdGVyIHNt
cF82ZmI1YWI3MQojZGVmaW5lIG1wdF9kZXJlZ2lzdGVyIF9zZXRfdmVyKG1wdF9kZXJlZ2lzdGVy
KQojZGVmaW5lIF9fdmVyX21wdF9ldmVudF9yZWdpc3RlciBzbXBfNTBkY2QzYzMKI2RlZmluZSBt
cHRfZXZlbnRfcmVnaXN0ZXIgX3NldF92ZXIobXB0X2V2ZW50X3JlZ2lzdGVyKQojZGVmaW5lIF9f
dmVyX21wdF9ldmVudF9kZXJlZ2lzdGVyIHNtcF83M2ZlYzRiYgojZGVmaW5lIG1wdF9ldmVudF9k
ZXJlZ2lzdGVyIF9zZXRfdmVyKG1wdF9ldmVudF9kZXJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21w
dF9nZXRfbXNnX2ZyYW1lIHNtcF8wYThkOWVjNQojZGVmaW5lIG1wdF9nZXRfbXNnX2ZyYW1lIF9z
ZXRfdmVyKG1wdF9nZXRfbXNnX2ZyYW1lKQojZGVmaW5lIF9fdmVyX21wdF9wdXRfbXNnX2ZyYW1l
IHNtcF80NWMwMDExMAojZGVmaW5lIG1wdF9wdXRfbXNnX2ZyYW1lIF9zZXRfdmVyKG1wdF9wdXRf
bXNnX2ZyYW1lKQojZGVmaW5lIF9fdmVyX21wdF9mcmVlX21zZ19mcmFtZSBzbXBfNmM0OWFlOGMK
I2RlZmluZSBtcHRfZnJlZV9tc2dfZnJhbWUgX3NldF92ZXIobXB0X2ZyZWVfbXNnX2ZyYW1lKQoj
ZGVmaW5lIF9fdmVyX21wdF9zZW5kX2hhbmRzaGFrZV9yZXF1ZXN0IHNtcF9iNDFiYzIyZAojZGVm
aW5lIG1wdF9zZW5kX2hhbmRzaGFrZV9yZXF1ZXN0IF9zZXRfdmVyKG1wdF9zZW5kX2hhbmRzaGFr
ZV9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX21wdF9hZGFwdGVyX2ZpbmRfZmlyc3Qgc21wX2YzMzZm
ZmFmCiNkZWZpbmUgbXB0X2FkYXB0ZXJfZmluZF9maXJzdCBfc2V0X3ZlcihtcHRfYWRhcHRlcl9m
aW5kX2ZpcnN0KQojZGVmaW5lIF9fdmVyX21wdF9hZGFwdGVyX2ZpbmRfbmV4dCBzbXBfOWVmY2Zj
MzEKI2RlZmluZSBtcHRfYWRhcHRlcl9maW5kX25leHQgX3NldF92ZXIobXB0X2FkYXB0ZXJfZmlu
ZF9uZXh0KQojZGVmaW5lIF9fdmVyX21wdF92ZXJpZnlfYWRhcHRlciBzbXBfNjIxYTgyNjgKI2Rl
ZmluZSBtcHRfdmVyaWZ5X2FkYXB0ZXIgX3NldF92ZXIobXB0X3ZlcmlmeV9hZGFwdGVyKQojZGVm
aW5lIF9fdmVyX21wdF9wcmludF9pb2Nfc3VtbWFyeSBzbXBfYTk2M2Y4YTgKI2RlZmluZSBtcHRf
cHJpbnRfaW9jX3N1bW1hcnkgX3NldF92ZXIobXB0X3ByaW50X2lvY19zdW1tYXJ5KQojZGVmaW5l
IF9fdmVyX21wdF9sYW5faW5kZXggc21wXzNiNGYxNjJlCiNkZWZpbmUgbXB0X2xhbl9pbmRleCBf
c2V0X3ZlcihtcHRfbGFuX2luZGV4KQojZGVmaW5lIF9fdmVyX21wdF9zdG1faW5kZXggc21wXzg1
MzJjYzk2CiNkZWZpbmUgbXB0X3N0bV9pbmRleCBfc2V0X3ZlcihtcHRfc3RtX2luZGV4KQojZGVm
aW5lIF9fdmVyX21wdF9yZWdpc3Rlcl9hc2Nxb3BzX3N0cmluZ3Mgc21wXzJmNTNiZjU3CiNkZWZp
bmUgbXB0X3JlZ2lzdGVyX2FzY3FvcHNfc3RyaW5ncyBfc2V0X3ZlcihtcHRfcmVnaXN0ZXJfYXNj
cW9wc19zdHJpbmdzKQojZGVmaW5lIF9fdmVyX21wdF9kZXJlZ2lzdGVyX2FzY3FvcHNfc3RyaW5n
cyBzbXBfYWFhOWRjNGIKI2RlZmluZSBtcHRfZGVyZWdpc3Rlcl9hc2Nxb3BzX3N0cmluZ3MgX3Nl
dF92ZXIobXB0X2RlcmVnaXN0ZXJfYXNjcW9wc19zdHJpbmdzKQojZGVmaW5lIF9fdmVyX21wdF92
X0FTQ1FfVGFibGVQdHIgc21wXzAxN2EzZjViCiNkZWZpbmUgbXB0X3ZfQVNDUV9UYWJsZVB0ciBf
c2V0X3ZlcihtcHRfdl9BU0NRX1RhYmxlUHRyKQojZGVmaW5lIF9fdmVyX21wdF9BU0NRX1RhYmxl
U3ogc21wX2Q3MWQ3Yjg0CiNkZWZpbmUgbXB0X0FTQ1FfVGFibGVTeiBfc2V0X3ZlcihtcHRfQVND
UV9UYWJsZVN6KQojZGVmaW5lIF9fdmVyX21wdF9TY3NpT3Bjb2Rlc1B0ciBzbXBfYzQxY2U4NmQK
I2RlZmluZSBtcHRfU2NzaU9wY29kZXNQdHIgX3NldF92ZXIobXB0X1Njc2lPcGNvZGVzUHRyKQoj
IDE0OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21wdGN0bC52
ZXIiIDEKIyAxNDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9t
cHRsYW4udmVyIiAxCiMgMTUwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHVsZXMvbXB0c2NzaWgudmVyIiAxCiMgMTUxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L21vZHVsZXMvbXB1NDAxLnZlciIgMQojZGVmaW5lIF9fdmVyX3Byb2JlX21wdTQwMSBz
bXBfY2Q5MTQ2NWMKI2RlZmluZSBwcm9iZV9tcHU0MDEgX3NldF92ZXIocHJvYmVfbXB1NDAxKQoj
ZGVmaW5lIF9fdmVyX2F0dGFjaF9tcHU0MDEgc21wXzcwZmQ0YTQ0CiNkZWZpbmUgYXR0YWNoX21w
dTQwMSBfc2V0X3ZlcihhdHRhY2hfbXB1NDAxKQojZGVmaW5lIF9fdmVyX3VubG9hZF9tcHU0MDEg
c21wXzVmZWJmMjg0CiNkZWZpbmUgdW5sb2FkX21wdTQwMSBfc2V0X3Zlcih1bmxvYWRfbXB1NDAx
KQojZGVmaW5lIF9fdmVyX2ludGNoa19tcHU0MDEgc21wXzVmZTZkZDQyCiNkZWZpbmUgaW50Y2hr
X21wdTQwMSBfc2V0X3ZlcihpbnRjaGtfbXB1NDAxKQojZGVmaW5lIF9fdmVyX21wdWludHIgc21w
XzVhMzMzYjM4CiNkZWZpbmUgbXB1aW50ciBfc2V0X3ZlcihtcHVpbnRyKQojIDE1MiAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL21zZG9zZnNfc3ltcy52ZXIiIDEK
I2RlZmluZSBfX3Zlcl9tc2Rvc19jcmVhdGUgc21wXzgxYTJlM2E3CiNkZWZpbmUgbXNkb3NfY3Jl
YXRlIF9zZXRfdmVyKG1zZG9zX2NyZWF0ZSkKI2RlZmluZSBfX3Zlcl9tc2Rvc19sb29rdXAgc21w
X2MxYzc2Mjk0CiNkZWZpbmUgbXNkb3NfbG9va3VwIF9zZXRfdmVyKG1zZG9zX2xvb2t1cCkKI2Rl
ZmluZSBfX3Zlcl9tc2Rvc19ta2RpciBzbXBfNjY5NjEwODUKI2RlZmluZSBtc2Rvc19ta2RpciBf
c2V0X3Zlcihtc2Rvc19ta2RpcikKI2RlZmluZSBfX3Zlcl9tc2Rvc19yZW5hbWUgc21wX2Q2NTQ2
YTA3CiNkZWZpbmUgbXNkb3NfcmVuYW1lIF9zZXRfdmVyKG1zZG9zX3JlbmFtZSkKI2RlZmluZSBf
X3Zlcl9tc2Rvc19ybWRpciBzbXBfODk2OTY2MTIKI2RlZmluZSBtc2Rvc19ybWRpciBfc2V0X3Zl
cihtc2Rvc19ybWRpcikKI2RlZmluZSBfX3Zlcl9tc2Rvc191bmxpbmsgc21wXzNiZTJhZjc1CiNk
ZWZpbmUgbXNkb3NfdW5saW5rIF9zZXRfdmVyKG1zZG9zX3VubGluaykKI2RlZmluZSBfX3Zlcl9t
c2Rvc19yZWFkX3N1cGVyIHNtcF9mNjQ4ZWM1NgojZGVmaW5lIG1zZG9zX3JlYWRfc3VwZXIgX3Nl
dF92ZXIobXNkb3NfcmVhZF9zdXBlcikKI2RlZmluZSBfX3Zlcl9tc2Rvc19wdXRfc3VwZXIgc21w
XzRkZjNkNTkyCiNkZWZpbmUgbXNkb3NfcHV0X3N1cGVyIF9zZXRfdmVyKG1zZG9zX3B1dF9zdXBl
cikKIyAxNTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9tc25k
LnZlciIgMQojZGVmaW5lIF9fdmVyX21zbmRfcmVnaXN0ZXIgc21wXzg0N2Y4YjEyCiNkZWZpbmUg
bXNuZF9yZWdpc3RlciBfc2V0X3Zlcihtc25kX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21zbmRf
dW5yZWdpc3RlciBzbXBfMDk2ZjdhZmQKI2RlZmluZSBtc25kX3VucmVnaXN0ZXIgX3NldF92ZXIo
bXNuZF91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX21zbmRfZ2V0X251bV9kZXZzIHNtcF8zZDU3
MzFhZQojZGVmaW5lIG1zbmRfZ2V0X251bV9kZXZzIF9zZXRfdmVyKG1zbmRfZ2V0X251bV9kZXZz
KQojZGVmaW5lIF9fdmVyX21zbmRfZ2V0X2RldiBzbXBfMzM0YWM2ODQKI2RlZmluZSBtc25kX2dl
dF9kZXYgX3NldF92ZXIobXNuZF9nZXRfZGV2KQojZGVmaW5lIF9fdmVyX21zbmRfaW5pdF9xdWV1
ZSBzbXBfOWY1NjAyMmUKI2RlZmluZSBtc25kX2luaXRfcXVldWUgX3NldF92ZXIobXNuZF9pbml0
X3F1ZXVlKQojZGVmaW5lIF9fdmVyX21zbmRfZmlmb19pbml0IHNtcF82ODQ3M2RhMQojZGVmaW5l
IG1zbmRfZmlmb19pbml0IF9zZXRfdmVyKG1zbmRfZmlmb19pbml0KQojZGVmaW5lIF9fdmVyX21z
bmRfZmlmb19mcmVlIHNtcF8xODBjZWZmZgojZGVmaW5lIG1zbmRfZmlmb19mcmVlIF9zZXRfdmVy
KG1zbmRfZmlmb19mcmVlKQojZGVmaW5lIF9fdmVyX21zbmRfZmlmb19hbGxvYyBzbXBfOTg1M2Q0
NDkKI2RlZmluZSBtc25kX2ZpZm9fYWxsb2MgX3NldF92ZXIobXNuZF9maWZvX2FsbG9jKQojZGVm
aW5lIF9fdmVyX21zbmRfZmlmb19tYWtlX2VtcHR5IHNtcF82NzkyOTdkYgojZGVmaW5lIG1zbmRf
Zmlmb19tYWtlX2VtcHR5IF9zZXRfdmVyKG1zbmRfZmlmb19tYWtlX2VtcHR5KQojZGVmaW5lIF9f
dmVyX21zbmRfZmlmb193cml0ZSBzbXBfNmM4ZGE4OTUKI2RlZmluZSBtc25kX2ZpZm9fd3JpdGUg
X3NldF92ZXIobXNuZF9maWZvX3dyaXRlKQojZGVmaW5lIF9fdmVyX21zbmRfZmlmb19yZWFkIHNt
cF80NTJhNmZlYwojZGVmaW5lIG1zbmRfZmlmb19yZWFkIF9zZXRfdmVyKG1zbmRfZmlmb19yZWFk
KQojZGVmaW5lIF9fdmVyX21zbmRfd2FpdF9UWERFIHNtcF9kMWZjYWEyMwojZGVmaW5lIG1zbmRf
d2FpdF9UWERFIF9zZXRfdmVyKG1zbmRfd2FpdF9UWERFKQojZGVmaW5lIF9fdmVyX21zbmRfd2Fp
dF9IQzAgc21wX2ZjYWJiNzM0CiNkZWZpbmUgbXNuZF93YWl0X0hDMCBfc2V0X3Zlcihtc25kX3dh
aXRfSEMwKQojZGVmaW5lIF9fdmVyX21zbmRfc2VuZF9kc3BfY21kIHNtcF83ZTcwNTk3OQojZGVm
aW5lIG1zbmRfc2VuZF9kc3BfY21kIF9zZXRfdmVyKG1zbmRfc2VuZF9kc3BfY21kKQojZGVmaW5l
IF9fdmVyX21zbmRfc2VuZF93b3JkIHNtcF8wYjRlOWQ4ZgojZGVmaW5lIG1zbmRfc2VuZF93b3Jk
IF9zZXRfdmVyKG1zbmRfc2VuZF93b3JkKQojZGVmaW5lIF9fdmVyX21zbmRfdXBsb2FkX2hvc3Qg
c21wXzdjM2NhNWFlCiNkZWZpbmUgbXNuZF91cGxvYWRfaG9zdCBfc2V0X3Zlcihtc25kX3VwbG9h
ZF9ob3N0KQojZGVmaW5lIF9fdmVyX21zbmRfZW5hYmxlX2lycSBzbXBfMTk4MWFhOTUKI2RlZmlu
ZSBtc25kX2VuYWJsZV9pcnEgX3NldF92ZXIobXNuZF9lbmFibGVfaXJxKQojZGVmaW5lIF9fdmVy
X21zbmRfZGlzYWJsZV9pcnEgc21wX2UyYzJkZDA0CiNkZWZpbmUgbXNuZF9kaXNhYmxlX2lycSBf
c2V0X3Zlcihtc25kX2Rpc2FibGVfaXJxKQojIDE1NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9tb2R1bGVzL210ZGNvcmUudmVyIiAxCiNkZWZpbmUgX192ZXJfYWRkX210ZF9k
ZXZpY2Ugc21wXzY1OWJlZTA0CiNkZWZpbmUgYWRkX210ZF9kZXZpY2UgX3NldF92ZXIoYWRkX210
ZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfZGVsX210ZF9kZXZpY2Ugc21wXzc3MjRlNzExCiNkZWZp
bmUgZGVsX210ZF9kZXZpY2UgX3NldF92ZXIoZGVsX210ZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJf
X19nZXRfbXRkX2RldmljZSBzbXBfZDZiNzAwMTYKI2RlZmluZSBfX2dldF9tdGRfZGV2aWNlIF9z
ZXRfdmVyKF9fZ2V0X210ZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfbXRkX3VzZXIg
c21wXzA4YWFiMTIzCiNkZWZpbmUgcmVnaXN0ZXJfbXRkX3VzZXIgX3NldF92ZXIocmVnaXN0ZXJf
bXRkX3VzZXIpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9tdGRfdXNlciBzbXBfOWQwY2RhOGMK
I2RlZmluZSB1bnJlZ2lzdGVyX210ZF91c2VyIF9zZXRfdmVyKHVucmVnaXN0ZXJfbXRkX3VzZXIp
CiMgMTU1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgi
IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbXRkcGFy
dC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hZGRfbXRkX3BhcnRpdGlvbnMgc21wXzdlYTUwYjEwCiNk
ZWZpbmUgYWRkX210ZF9wYXJ0aXRpb25zIF9zZXRfdmVyKGFkZF9tdGRfcGFydGl0aW9ucykKI2Rl
ZmluZSBfX3Zlcl9kZWxfbXRkX3BhcnRpdGlvbnMgc21wXzZmZWE3Y2Q0CiNkZWZpbmUgZGVsX210
ZF9wYXJ0aXRpb25zIF9zZXRfdmVyKGRlbF9tdGRfcGFydGl0aW9ucykKIyAxNTYgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9uYW5kX2VjYy52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl9uYW5kX2NhbGN1bGF0ZV9lY2Mgc21wXzFmOTc1MTM3CiNkZWZpbmUgbmFuZF9jYWxj
dWxhdGVfZWNjIF9zZXRfdmVyKG5hbmRfY2FsY3VsYXRlX2VjYykKI2RlZmluZSBfX3Zlcl9uYW5k
X2NvcnJlY3RfZGF0YSBzbXBfZTc1NjkxOWQKI2RlZmluZSBuYW5kX2NvcnJlY3RfZGF0YSBfc2V0
X3ZlcihuYW5kX2NvcnJlY3RfZGF0YSkKIyAxNTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9uYW5kLnZlciIgMQojZGVmaW5lIF9fdmVyX25hbmRfc2NhbiBzbXBf
MTVlMjZkZDkKI2RlZmluZSBuYW5kX3NjYW4gX3NldF92ZXIobmFuZF9zY2FuKQojIDE1OCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL25ldGZpbHRlci52ZXIiIDEK
IyAxNTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9uZXRfaW5p
dC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9pbml0X2V0aGVyZGV2IHNtcF8yOGM1MjM1MQojZGVmaW5l
IGluaXRfZXRoZXJkZXYgX3NldF92ZXIoaW5pdF9ldGhlcmRldikKI2RlZmluZSBfX3Zlcl9hbGxv
Y19ldGhlcmRldiBzbXBfZmYzZDliNWYKI2RlZmluZSBhbGxvY19ldGhlcmRldiBfc2V0X3Zlcihh
bGxvY19ldGhlcmRldikKI2RlZmluZSBfX3Zlcl9ldGhlcl9zZXR1cCBzbXBfMTI3ZjIyMjYKI2Rl
ZmluZSBldGhlcl9zZXR1cCBfc2V0X3ZlcihldGhlcl9zZXR1cCkKI2RlZmluZSBfX3Zlcl9yZWdp
c3Rlcl9uZXRkZXYgc21wXzVjZDg0Y2ZjCiNkZWZpbmUgcmVnaXN0ZXJfbmV0ZGV2IF9zZXRfdmVy
KHJlZ2lzdGVyX25ldGRldikKI2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX25ldGRldiBzbXBfMGI2
NmJlNzcKI2RlZmluZSB1bnJlZ2lzdGVyX25ldGRldiBfc2V0X3Zlcih1bnJlZ2lzdGVyX25ldGRl
dikKIyAxNjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9uZXRz
eW1zLnZlciIgMQojZGVmaW5lIF9fdmVyX3NrYl9vdmVyX3BhbmljIHNtcF9iZTRjZWVkZAojZGVm
aW5lIHNrYl9vdmVyX3BhbmljIF9zZXRfdmVyKHNrYl9vdmVyX3BhbmljKQojZGVmaW5lIF9fdmVy
X3NrYl91bmRlcl9wYW5pYyBzbXBfNGFmZjU2YTEKI2RlZmluZSBza2JfdW5kZXJfcGFuaWMgX3Nl
dF92ZXIoc2tiX3VuZGVyX3BhbmljKQojZGVmaW5lIF9fdmVyX3NvY2tfcmVnaXN0ZXIgc21wX2Zi
ZTNhZWE2CiNkZWZpbmUgc29ja19yZWdpc3RlciBfc2V0X3Zlcihzb2NrX3JlZ2lzdGVyKQojZGVm
aW5lIF9fdmVyX3NvY2tfdW5yZWdpc3RlciBzbXBfMjM5NGEwNjIKI2RlZmluZSBzb2NrX3VucmVn
aXN0ZXIgX3NldF92ZXIoc29ja191bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX19fbG9ja19zb2Nr
IHNtcF9iOTQzODMzOQojZGVmaW5lIF9fbG9ja19zb2NrIF9zZXRfdmVyKF9fbG9ja19zb2NrKQoj
ZGVmaW5lIF9fdmVyX19fcmVsZWFzZV9zb2NrIHNtcF9iZmM3YWNhZgojZGVmaW5lIF9fcmVsZWFz
ZV9zb2NrIF9zZXRfdmVyKF9fcmVsZWFzZV9zb2NrKQojZGVmaW5lIF9fdmVyX21lbWNweV9mcm9t
aW92ZWMgc21wXzM2MTM5YTUxCiNkZWZpbmUgbWVtY3B5X2Zyb21pb3ZlYyBfc2V0X3ZlcihtZW1j
cHlfZnJvbWlvdmVjKQojZGVmaW5lIF9fdmVyX21lbWNweV90b2tlcm5lbGlvdmVjIHNtcF9lNDI3
MWZiMAojZGVmaW5lIG1lbWNweV90b2tlcm5lbGlvdmVjIF9zZXRfdmVyKG1lbWNweV90b2tlcm5l
bGlvdmVjKQojZGVmaW5lIF9fdmVyX3NvY2tfY3JlYXRlIHNtcF8zMDQzZjE5ZAojZGVmaW5lIHNv
Y2tfY3JlYXRlIF9zZXRfdmVyKHNvY2tfY3JlYXRlKQojZGVmaW5lIF9fdmVyX3NvY2tfYWxsb2Mg
c21wX2VhNWU0MWZlCiNkZWZpbmUgc29ja19hbGxvYyBfc2V0X3Zlcihzb2NrX2FsbG9jKQojZGVm
aW5lIF9fdmVyX3NvY2tfcmVsZWFzZSBzbXBfNTU0ODQwN2EKI2RlZmluZSBzb2NrX3JlbGVhc2Ug
X3NldF92ZXIoc29ja19yZWxlYXNlKQojZGVmaW5lIF9fdmVyX3NvY2tfc2V0c29ja29wdCBzbXBf
OTNlYjY1OGEKI2RlZmluZSBzb2NrX3NldHNvY2tvcHQgX3NldF92ZXIoc29ja19zZXRzb2Nrb3B0
KQojZGVmaW5lIF9fdmVyX3NvY2tfZ2V0c29ja29wdCBzbXBfNWE4ODdjZmQKI2RlZmluZSBzb2Nr
X2dldHNvY2tvcHQgX3NldF92ZXIoc29ja19nZXRzb2Nrb3B0KQojZGVmaW5lIF9fdmVyX3NvY2tf
c2VuZG1zZyBzbXBfMTZjYzEzMTQKI2RlZmluZSBzb2NrX3NlbmRtc2cgX3NldF92ZXIoc29ja19z
ZW5kbXNnKQojZGVmaW5lIF9fdmVyX3NvY2tfcmVjdm1zZyBzbXBfYTk2Zjg3MTgKI2RlZmluZSBz
b2NrX3JlY3Ztc2cgX3NldF92ZXIoc29ja19yZWN2bXNnKQojZGVmaW5lIF9fdmVyX3NrX2FsbG9j
IHNtcF9hNDZhMTA4MwojZGVmaW5lIHNrX2FsbG9jIF9zZXRfdmVyKHNrX2FsbG9jKQojZGVmaW5l
IF9fdmVyX3NrX2ZyZWUgc21wX2I1ZWNjZWJiCiNkZWZpbmUgc2tfZnJlZSBfc2V0X3Zlcihza19m
cmVlKQojZGVmaW5lIF9fdmVyX3NvY2tfd2FrZV9hc3luYyBzbXBfNGVlYmVhNDEKI2RlZmluZSBz
b2NrX3dha2VfYXN5bmMgX3NldF92ZXIoc29ja193YWtlX2FzeW5jKQojZGVmaW5lIF9fdmVyX3Nv
Y2tfYWxsb2Nfc2VuZF9za2Igc21wXzlkZmRhOGQ3CiNkZWZpbmUgc29ja19hbGxvY19zZW5kX3Nr
YiBfc2V0X3Zlcihzb2NrX2FsbG9jX3NlbmRfc2tiKQojZGVmaW5lIF9fdmVyX3NvY2tfaW5pdF9k
YXRhIHNtcF9hYzI3NDNhOQojZGVmaW5lIHNvY2tfaW5pdF9kYXRhIF9zZXRfdmVyKHNvY2tfaW5p
dF9kYXRhKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fcmVsZWFzZSBzbXBfNmEzYTZkMTkKI2RlZmlu
ZSBzb2NrX25vX3JlbGVhc2UgX3NldF92ZXIoc29ja19ub19yZWxlYXNlKQojZGVmaW5lIF9fdmVy
X3NvY2tfbm9fYmluZCBzbXBfN2M5NzY5YTUKI2RlZmluZSBzb2NrX25vX2JpbmQgX3NldF92ZXIo
c29ja19ub19iaW5kKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fY29ubmVjdCBzbXBfNGJlOGM5ODQK
I2RlZmluZSBzb2NrX25vX2Nvbm5lY3QgX3NldF92ZXIoc29ja19ub19jb25uZWN0KQojZGVmaW5l
IF9fdmVyX3NvY2tfbm9fc29ja2V0cGFpciBzbXBfMjcwYjY5MmYKI2RlZmluZSBzb2NrX25vX3Nv
Y2tldHBhaXIgX3NldF92ZXIoc29ja19ub19zb2NrZXRwYWlyKQojZGVmaW5lIF9fdmVyX3NvY2tf
bm9fYWNjZXB0IHNtcF8wYmZlZGIyOAojZGVmaW5lIHNvY2tfbm9fYWNjZXB0IF9zZXRfdmVyKHNv
Y2tfbm9fYWNjZXB0KQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fZ2V0bmFtZSBzbXBfM2Q0N2U4NDAK
I2RlZmluZSBzb2NrX25vX2dldG5hbWUgX3NldF92ZXIoc29ja19ub19nZXRuYW1lKQojZGVmaW5l
IF9fdmVyX3NvY2tfbm9fcG9sbCBzbXBfMzZiYTMyMTYKI2RlZmluZSBzb2NrX25vX3BvbGwgX3Nl
dF92ZXIoc29ja19ub19wb2xsKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9faW9jdGwgc21wXzZjYmMy
MjcwCiNkZWZpbmUgc29ja19ub19pb2N0bCBfc2V0X3Zlcihzb2NrX25vX2lvY3RsKQojZGVmaW5l
IF9fdmVyX3NvY2tfbm9fbGlzdGVuIHNtcF80ZjA2OTNkNgojZGVmaW5lIHNvY2tfbm9fbGlzdGVu
IF9zZXRfdmVyKHNvY2tfbm9fbGlzdGVuKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fc2h1dGRvd24g
c21wXzA3MWIzYmY2CiNkZWZpbmUgc29ja19ub19zaHV0ZG93biBfc2V0X3Zlcihzb2NrX25vX3No
dXRkb3duKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fZ2V0c29ja29wdCBzbXBfNzBmNWU4NDcKI2Rl
ZmluZSBzb2NrX25vX2dldHNvY2tvcHQgX3NldF92ZXIoc29ja19ub19nZXRzb2Nrb3B0KQojZGVm
aW5lIF9fdmVyX3NvY2tfbm9fc2V0c29ja29wdCBzbXBfOWIyY2NlZDMKI2RlZmluZSBzb2NrX25v
X3NldHNvY2tvcHQgX3NldF92ZXIoc29ja19ub19zZXRzb2Nrb3B0KQojZGVmaW5lIF9fdmVyX3Nv
Y2tfbm9fc2VuZG1zZyBzbXBfZDg2YmI5MTUKI2RlZmluZSBzb2NrX25vX3NlbmRtc2cgX3NldF92
ZXIoc29ja19ub19zZW5kbXNnKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fcmVjdm1zZyBzbXBfMTRm
MjU1ZDcKI2RlZmluZSBzb2NrX25vX3JlY3Ztc2cgX3NldF92ZXIoc29ja19ub19yZWN2bXNnKQoj
ZGVmaW5lIF9fdmVyX3NvY2tfbm9fbW1hcCBzbXBfYzU3MjMzYTYKI2RlZmluZSBzb2NrX25vX21t
YXAgX3NldF92ZXIoc29ja19ub19tbWFwKQojZGVmaW5lIF9fdmVyX3NvY2tfbm9fc2VuZHBhZ2Ug
c21wXzRkNDlkNjhiCiNkZWZpbmUgc29ja19ub19zZW5kcGFnZSBfc2V0X3Zlcihzb2NrX25vX3Nl
bmRwYWdlKQojZGVmaW5lIF9fdmVyX3NvY2tfcmZyZWUgc21wX2YxMzUyNjRlCiNkZWZpbmUgc29j
a19yZnJlZSBfc2V0X3Zlcihzb2NrX3JmcmVlKQojZGVmaW5lIF9fdmVyX3NvY2tfd2ZyZWUgc21w
XzI2NTVhNGMzCiNkZWZpbmUgc29ja193ZnJlZSBfc2V0X3Zlcihzb2NrX3dmcmVlKQojZGVmaW5l
IF9fdmVyX3NvY2tfd21hbGxvYyBzbXBfMGFlMjliNDkKI2RlZmluZSBzb2NrX3dtYWxsb2MgX3Nl
dF92ZXIoc29ja193bWFsbG9jKQojZGVmaW5lIF9fdmVyX3NvY2tfcm1hbGxvYyBzbXBfMGRkMTk0
MjcKI2RlZmluZSBzb2NrX3JtYWxsb2MgX3NldF92ZXIoc29ja19ybWFsbG9jKQojZGVmaW5lIF9f
dmVyX3NrYl9saW5lYXJpemUgc21wXzdjNDYyZjNlCiNkZWZpbmUgc2tiX2xpbmVhcml6ZSBfc2V0
X3Zlcihza2JfbGluZWFyaXplKQojZGVmaW5lIF9fdmVyX3NrYl9jaGVja3N1bSBzbXBfZGE1YWJh
ZDIKI2RlZmluZSBza2JfY2hlY2tzdW0gX3NldF92ZXIoc2tiX2NoZWNrc3VtKQojZGVmaW5lIF9f
dmVyX3NrYl9jaGVja3N1bV9oZWxwIHNtcF83ZGZmMTM1YwojZGVmaW5lIHNrYl9jaGVja3N1bV9o
ZWxwIF9zZXRfdmVyKHNrYl9jaGVja3N1bV9oZWxwKQojZGVmaW5lIF9fdmVyX3NrYl9yZWN2X2Rh
dGFncmFtIHNtcF9mNDZjNmI2MwojZGVmaW5lIHNrYl9yZWN2X2RhdGFncmFtIF9zZXRfdmVyKHNr
Yl9yZWN2X2RhdGFncmFtKQojZGVmaW5lIF9fdmVyX3NrYl9mcmVlX2RhdGFncmFtIHNtcF8zNTUz
ZmU2MAojZGVmaW5lIHNrYl9mcmVlX2RhdGFncmFtIF9zZXRfdmVyKHNrYl9mcmVlX2RhdGFncmFt
KQojZGVmaW5lIF9fdmVyX3NrYl9jb3B5X2RhdGFncmFtIHNtcF83Y2Q3NDE0MAojZGVmaW5lIHNr
Yl9jb3B5X2RhdGFncmFtIF9zZXRfdmVyKHNrYl9jb3B5X2RhdGFncmFtKQojZGVmaW5lIF9fdmVy
X3NrYl9jb3B5X2RhdGFncmFtX2lvdmVjIHNtcF84NjdjZjQ5MgojZGVmaW5lIHNrYl9jb3B5X2Rh
dGFncmFtX2lvdmVjIF9zZXRfdmVyKHNrYl9jb3B5X2RhdGFncmFtX2lvdmVjKQojZGVmaW5lIF9f
dmVyX3NrYl9jb3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjIHNtcF81NzQxOWM3OQojZGVmaW5l
IHNrYl9jb3B5X2FuZF9jc3VtX2RhdGFncmFtX2lvdmVjIF9zZXRfdmVyKHNrYl9jb3B5X2FuZF9j
c3VtX2RhdGFncmFtX2lvdmVjKQojZGVmaW5lIF9fdmVyX3NrYl9jb3B5X2JpdHMgc21wX2E1NWM4
NDdiCiNkZWZpbmUgc2tiX2NvcHlfYml0cyBfc2V0X3Zlcihza2JfY29weV9iaXRzKQojZGVmaW5l
IF9fdmVyX3NrYl9jb3B5X2FuZF9jc3VtX2JpdHMgc21wX2FmODc3NzE5CiNkZWZpbmUgc2tiX2Nv
cHlfYW5kX2NzdW1fYml0cyBfc2V0X3Zlcihza2JfY29weV9hbmRfY3N1bV9iaXRzKQojZGVmaW5l
IF9fdmVyX3NrYl9jb3B5X2FuZF9jc3VtX2RldiBzbXBfZjA4ZmEwMGUKI2RlZmluZSBza2JfY29w
eV9hbmRfY3N1bV9kZXYgX3NldF92ZXIoc2tiX2NvcHlfYW5kX2NzdW1fZGV2KQojZGVmaW5lIF9f
dmVyX3NrYl9jb3B5X2V4cGFuZCBzbXBfNmI3YTYzNmMKI2RlZmluZSBza2JfY29weV9leHBhbmQg
X3NldF92ZXIoc2tiX2NvcHlfZXhwYW5kKQojZGVmaW5lIF9fdmVyX19fX3Bza2JfdHJpbSBzbXBf
ZjdjM2NmMjMKI2RlZmluZSBfX19wc2tiX3RyaW0gX3NldF92ZXIoX19fcHNrYl90cmltKQojZGVm
aW5lIF9fdmVyX19fcHNrYl9wdWxsX3RhaWwgc21wX2NhZjcyNjg4CiNkZWZpbmUgX19wc2tiX3B1
bGxfdGFpbCBfc2V0X3ZlcihfX3Bza2JfcHVsbF90YWlsKQojZGVmaW5lIF9fdmVyX3Bza2JfZXhw
YW5kX2hlYWQgc21wX2IzYTRhOGNhCiNkZWZpbmUgcHNrYl9leHBhbmRfaGVhZCBfc2V0X3Zlcihw
c2tiX2V4cGFuZF9oZWFkKQojZGVmaW5lIF9fdmVyX3Bza2JfY29weSBzbXBfM2YzN2QwNDEKI2Rl
ZmluZSBwc2tiX2NvcHkgX3NldF92ZXIocHNrYl9jb3B5KQojZGVmaW5lIF9fdmVyX3NrYl9yZWFs
bG9jX2hlYWRyb29tIHNtcF9iOTM3NmFmMQojZGVmaW5lIHNrYl9yZWFsbG9jX2hlYWRyb29tIF9z
ZXRfdmVyKHNrYl9yZWFsbG9jX2hlYWRyb29tKQojZGVmaW5lIF9fdmVyX2RhdGFncmFtX3BvbGwg
c21wX2ViMDNjMzkyCiNkZWZpbmUgZGF0YWdyYW1fcG9sbCBfc2V0X3ZlcihkYXRhZ3JhbV9wb2xs
KQojZGVmaW5lIF9fdmVyX3B1dF9jbXNnIHNtcF80M2VjOTEzYQojZGVmaW5lIHB1dF9jbXNnIF9z
ZXRfdmVyKHB1dF9jbXNnKQojZGVmaW5lIF9fdmVyX3NvY2tfa21hbGxvYyBzbXBfMGFhNjY4OTcK
I2RlZmluZSBzb2NrX2ttYWxsb2MgX3NldF92ZXIoc29ja19rbWFsbG9jKQojZGVmaW5lIF9fdmVy
X3NvY2tfa2ZyZWVfcyBzbXBfMzJlM2EyZTkKI2RlZmluZSBzb2NrX2tmcmVlX3MgX3NldF92ZXIo
c29ja19rZnJlZV9zKQojZGVmaW5lIF9fdmVyX3NrX3J1bl9maWx0ZXIgc21wXzAxZDRiMTczCiNk
ZWZpbmUgc2tfcnVuX2ZpbHRlciBfc2V0X3Zlcihza19ydW5fZmlsdGVyKQojZGVmaW5lIF9fdmVy
X3NrX2Noa19maWx0ZXIgc21wXzUzYzA3NjdjCiNkZWZpbmUgc2tfY2hrX2ZpbHRlciBfc2V0X3Zl
cihza19jaGtfZmlsdGVyKQojZGVmaW5lIF9fdmVyX25laWdoX3RhYmxlX2luaXQgc21wXzJlMmNj
ZjVmCiNkZWZpbmUgbmVpZ2hfdGFibGVfaW5pdCBfc2V0X3ZlcihuZWlnaF90YWJsZV9pbml0KQoj
ZGVmaW5lIF9fdmVyX25laWdoX3RhYmxlX2NsZWFyIHNtcF8wOTYwNWQ2NQojZGVmaW5lIG5laWdo
X3RhYmxlX2NsZWFyIF9zZXRfdmVyKG5laWdoX3RhYmxlX2NsZWFyKQojZGVmaW5lIF9fdmVyX25l
aWdoX3Jlc29sdmVfb3V0cHV0IHNtcF85OTQwOTNjMQojZGVmaW5lIG5laWdoX3Jlc29sdmVfb3V0
cHV0IF9zZXRfdmVyKG5laWdoX3Jlc29sdmVfb3V0cHV0KQojZGVmaW5lIF9fdmVyX25laWdoX2Nv
bm5lY3RlZF9vdXRwdXQgc21wXzViMGZhMzc1CiNkZWZpbmUgbmVpZ2hfY29ubmVjdGVkX291dHB1
dCBfc2V0X3ZlcihuZWlnaF9jb25uZWN0ZWRfb3V0cHV0KQojZGVmaW5lIF9fdmVyX25laWdoX3Vw
ZGF0ZSBzbXBfZWUxN2FlYmMKI2RlZmluZSBuZWlnaF91cGRhdGUgX3NldF92ZXIobmVpZ2hfdXBk
YXRlKQojZGVmaW5lIF9fdmVyX25laWdoX2NyZWF0ZSBzbXBfMzAyZDdhMWEKI2RlZmluZSBuZWln
aF9jcmVhdGUgX3NldF92ZXIobmVpZ2hfY3JlYXRlKQojZGVmaW5lIF9fdmVyX25laWdoX2xvb2t1
cCBzbXBfMzljM2ExNWYKI2RlZmluZSBuZWlnaF9sb29rdXAgX3NldF92ZXIobmVpZ2hfbG9va3Vw
KQojZGVmaW5lIF9fdmVyX19fbmVpZ2hfZXZlbnRfc2VuZCBzbXBfNWRkMmFkMTkKI2RlZmluZSBf
X25laWdoX2V2ZW50X3NlbmQgX3NldF92ZXIoX19uZWlnaF9ldmVudF9zZW5kKQojZGVmaW5lIF9f
dmVyX25laWdoX2V2ZW50X25zIHNtcF85YTg2YWY1OQojZGVmaW5lIG5laWdoX2V2ZW50X25zIF9z
ZXRfdmVyKG5laWdoX2V2ZW50X25zKQojZGVmaW5lIF9fdmVyX25laWdoX2lmZG93biBzbXBfYTA4
MDViNzUKI2RlZmluZSBuZWlnaF9pZmRvd24gX3NldF92ZXIobmVpZ2hfaWZkb3duKQojZGVmaW5l
IF9fdmVyX25laWdoX3N5c2N0bF9yZWdpc3RlciBzbXBfZDE5YzQyNWYKI2RlZmluZSBuZWlnaF9z
eXNjdGxfcmVnaXN0ZXIgX3NldF92ZXIobmVpZ2hfc3lzY3RsX3JlZ2lzdGVyKQojZGVmaW5lIF9f
dmVyX3BuZWlnaF9sb29rdXAgc21wX2RmNWRmNjA3CiNkZWZpbmUgcG5laWdoX2xvb2t1cCBfc2V0
X3ZlcihwbmVpZ2hfbG9va3VwKQojZGVmaW5lIF9fdmVyX3BuZWlnaF9lbnF1ZXVlIHNtcF80ZmRk
NWZiYQojZGVmaW5lIHBuZWlnaF9lbnF1ZXVlIF9zZXRfdmVyKHBuZWlnaF9lbnF1ZXVlKQojZGVm
aW5lIF9fdmVyX25laWdoX2Rlc3Ryb3kgc21wXzk5MWJiNWYwCiNkZWZpbmUgbmVpZ2hfZGVzdHJv
eSBfc2V0X3ZlcihuZWlnaF9kZXN0cm95KQojZGVmaW5lIF9fdmVyX25laWdoX3Bhcm1zX2FsbG9j
IHNtcF9iNjI3OTYxYwojZGVmaW5lIG5laWdoX3Bhcm1zX2FsbG9jIF9zZXRfdmVyKG5laWdoX3Bh
cm1zX2FsbG9jKQojZGVmaW5lIF9fdmVyX25laWdoX3Bhcm1zX3JlbGVhc2Ugc21wXzMxNGMwYzcz
CiNkZWZpbmUgbmVpZ2hfcGFybXNfcmVsZWFzZSBfc2V0X3ZlcihuZWlnaF9wYXJtc19yZWxlYXNl
KQojZGVmaW5lIF9fdmVyX25laWdoX3JhbmRfcmVhY2hfdGltZSBzbXBfNDE4OGQ0MzkKI2RlZmlu
ZSBuZWlnaF9yYW5kX3JlYWNoX3RpbWUgX3NldF92ZXIobmVpZ2hfcmFuZF9yZWFjaF90aW1lKQoj
ZGVmaW5lIF9fdmVyX25laWdoX2NvbXBhdF9vdXRwdXQgc21wXzllOGY3MWE2CiNkZWZpbmUgbmVp
Z2hfY29tcGF0X291dHB1dCBfc2V0X3ZlcihuZWlnaF9jb21wYXRfb3V0cHV0KQojZGVmaW5lIF9f
dmVyX2RzdF9hbGxvYyBzbXBfNjM2YTY5ZWMKI2RlZmluZSBkc3RfYWxsb2MgX3NldF92ZXIoZHN0
X2FsbG9jKQojZGVmaW5lIF9fdmVyX19fZHN0X2ZyZWUgc21wX2UyYzRlZDg3CiNkZWZpbmUgX19k
c3RfZnJlZSBfc2V0X3ZlcihfX2RzdF9mcmVlKQojZGVmaW5lIF9fdmVyX2RzdF9kZXN0cm95IHNt
cF8xOTg5MTIxYgojZGVmaW5lIGRzdF9kZXN0cm95IF9zZXRfdmVyKGRzdF9kZXN0cm95KQojZGVm
aW5lIF9fdmVyX25ldF9yYXRlbGltaXQgc21wX2Y2ZWJjMDNiCiNkZWZpbmUgbmV0X3JhdGVsaW1p
dCBfc2V0X3ZlcihuZXRfcmF0ZWxpbWl0KQojZGVmaW5lIF9fdmVyX25ldF9yYW5kb20gc21wXzFj
NjZmNjRjCiNkZWZpbmUgbmV0X3JhbmRvbSBfc2V0X3ZlcihuZXRfcmFuZG9tKQojZGVmaW5lIF9f
dmVyX25ldF9zcmFuZG9tIHNtcF9mZjk2M2VkOAojZGVmaW5lIG5ldF9zcmFuZG9tIF9zZXRfdmVy
KG5ldF9zcmFuZG9tKQojZGVmaW5lIF9fdmVyX19fc2NtX2Rlc3Ryb3kgc21wX2EwM2UxNTJmCiNk
ZWZpbmUgX19zY21fZGVzdHJveSBfc2V0X3ZlcihfX3NjbV9kZXN0cm95KQojZGVmaW5lIF9fdmVy
X19fc2NtX3NlbmQgc21wXzQyY2IzZDI4CiNkZWZpbmUgX19zY21fc2VuZCBfc2V0X3ZlcihfX3Nj
bV9zZW5kKQojZGVmaW5lIF9fdmVyX3NjbV9mcF9kdXAgc21wXzIyOTNjNThjCiNkZWZpbmUgc2Nt
X2ZwX2R1cCBfc2V0X3ZlcihzY21fZnBfZHVwKQojZGVmaW5lIF9fdmVyX2ZpbGVzX3N0YXQgc21w
XzAzY2FkYTI3CiNkZWZpbmUgZmlsZXNfc3RhdCBfc2V0X3ZlcihmaWxlc19zdGF0KQojZGVmaW5l
IF9fdmVyX21lbWNweV90b2lvdmVjIHNtcF8yODc2YTZkMwojZGVmaW5lIG1lbWNweV90b2lvdmVj
IF9zZXRfdmVyKG1lbWNweV90b2lvdmVjKQojZGVmaW5lIF9fdmVyX3NrbGlzdF9kZXN0cm95X3Nv
Y2tldCBzbXBfMzVlOTU5NDYKI2RlZmluZSBza2xpc3RfZGVzdHJveV9zb2NrZXQgX3NldF92ZXIo
c2tsaXN0X2Rlc3Ryb3lfc29ja2V0KQojZGVmaW5lIF9fdmVyX3NrbGlzdF9pbnNlcnRfc29ja2V0
IHNtcF8xNDNjOWMwNAojZGVmaW5lIHNrbGlzdF9pbnNlcnRfc29ja2V0IF9zZXRfdmVyKHNrbGlz
dF9pbnNlcnRfc29ja2V0KQojZGVmaW5lIF9fdmVyX3NjbV9kZXRhY2hfZmRzIHNtcF81NWMwN2Uw
NwojZGVmaW5lIHNjbV9kZXRhY2hfZmRzIF9zZXRfdmVyKHNjbV9kZXRhY2hfZmRzKQojZGVmaW5l
IF9fdmVyX2luZXRkZXZfbG9jayBzbXBfZGVlZDVkMzIKI2RlZmluZSBpbmV0ZGV2X2xvY2sgX3Nl
dF92ZXIoaW5ldGRldl9sb2NrKQojZGVmaW5lIF9fdmVyX2luZXRfYWRkX3Byb3RvY29sIHNtcF80
YzU4ZTI0NgojZGVmaW5lIGluZXRfYWRkX3Byb3RvY29sIF9zZXRfdmVyKGluZXRfYWRkX3Byb3Rv
Y29sKQojZGVmaW5lIF9fdmVyX2luZXRfZGVsX3Byb3RvY29sIHNtcF8xODYxNGQ3ZQojZGVmaW5l
IGluZXRfZGVsX3Byb3RvY29sIF9zZXRfdmVyKGluZXRfZGVsX3Byb3RvY29sKQojZGVmaW5lIF9f
dmVyX2luZXRfcmVnaXN0ZXJfcHJvdG9zdyBzbXBfYzgwMDlkZTMKI2RlZmluZSBpbmV0X3JlZ2lz
dGVyX3Byb3Rvc3cgX3NldF92ZXIoaW5ldF9yZWdpc3Rlcl9wcm90b3N3KQojZGVmaW5lIF9fdmVy
X2luZXRfdW5yZWdpc3Rlcl9wcm90b3N3IHNtcF8zYTYyNTI0MAojZGVmaW5lIGluZXRfdW5yZWdp
c3Rlcl9wcm90b3N3IF9zZXRfdmVyKGluZXRfdW5yZWdpc3Rlcl9wcm90b3N3KQojZGVmaW5lIF9f
dmVyX2lwX3JvdXRlX291dHB1dF9rZXkgc21wX2I1MmIyODE2CiNkZWZpbmUgaXBfcm91dGVfb3V0
cHV0X2tleSBfc2V0X3ZlcihpcF9yb3V0ZV9vdXRwdXRfa2V5KQojZGVmaW5lIF9fdmVyX2lwX3Jv
dXRlX2lucHV0IHNtcF85MzBlNmJmOQojZGVmaW5lIGlwX3JvdXRlX2lucHV0IF9zZXRfdmVyKGlw
X3JvdXRlX2lucHV0KQojZGVmaW5lIF9fdmVyX2ljbXBfc2VuZCBzbXBfODE2OWJiZDAKI2RlZmlu
ZSBpY21wX3NlbmQgX3NldF92ZXIoaWNtcF9zZW5kKQojZGVmaW5lIF9fdmVyX2lwX29wdGlvbnNf
Y29tcGlsZSBzbXBfYTcwMzE3NDMKI2RlZmluZSBpcF9vcHRpb25zX2NvbXBpbGUgX3NldF92ZXIo
aXBfb3B0aW9uc19jb21waWxlKQojZGVmaW5lIF9fdmVyX2lwX29wdGlvbnNfdW5kbyBzbXBfOTcy
MWYxMmYKI2RlZmluZSBpcF9vcHRpb25zX3VuZG8gX3NldF92ZXIoaXBfb3B0aW9uc191bmRvKQoj
ZGVmaW5lIF9fdmVyX2FycF9zZW5kIHNtcF82Y2ZhMTMxNgojZGVmaW5lIGFycF9zZW5kIF9zZXRf
dmVyKGFycF9zZW5kKQojZGVmaW5lIF9fdmVyX2FycF9icm9rZW5fb3BzIHNtcF81YTBhZTBiZAoj
ZGVmaW5lIGFycF9icm9rZW5fb3BzIF9zZXRfdmVyKGFycF9icm9rZW5fb3BzKQojZGVmaW5lIF9f
dmVyX19faXBfc2VsZWN0X2lkZW50IHNtcF81ZjQzODM3MwojZGVmaW5lIF9faXBfc2VsZWN0X2lk
ZW50IF9zZXRfdmVyKF9faXBfc2VsZWN0X2lkZW50KQojZGVmaW5lIF9fdmVyX2lwX3NlbmRfY2hl
Y2sgc21wX2EzN2I3NDQxCiNkZWZpbmUgaXBfc2VuZF9jaGVjayBfc2V0X3ZlcihpcF9zZW5kX2No
ZWNrKQojZGVmaW5lIF9fdmVyX2lwX2ZyYWdtZW50IHNtcF9iMmRkNTZmMgojZGVmaW5lIGlwX2Zy
YWdtZW50IF9zZXRfdmVyKGlwX2ZyYWdtZW50KQojZGVmaW5lIF9fdmVyX2luZXRfZmFtaWx5X29w
cyBzbXBfNzkzNmJiNDcKI2RlZmluZSBpbmV0X2ZhbWlseV9vcHMgX3NldF92ZXIoaW5ldF9mYW1p
bHlfb3BzKQojZGVmaW5lIF9fdmVyX2luX2F0b24gc21wXzgzZTBhMTYyCiNkZWZpbmUgaW5fYXRv
biBfc2V0X3Zlcihpbl9hdG9uKQojZGVmaW5lIF9fdmVyX2lwX21jX2luY19ncm91cCBzbXBfOTg1
NWI2ZDMKI2RlZmluZSBpcF9tY19pbmNfZ3JvdXAgX3NldF92ZXIoaXBfbWNfaW5jX2dyb3VwKQoj
ZGVmaW5lIF9fdmVyX2lwX21jX2RlY19ncm91cCBzbXBfODdmNDQyZjQKI2RlZmluZSBpcF9tY19k
ZWNfZ3JvdXAgX3NldF92ZXIoaXBfbWNfZGVjX2dyb3VwKQojZGVmaW5lIF9fdmVyX2lwX2Zpbmlz
aF9vdXRwdXQgc21wXzgwZDJlNDEyCiNkZWZpbmUgaXBfZmluaXNoX291dHB1dCBfc2V0X3Zlcihp
cF9maW5pc2hfb3V0cHV0KQojZGVmaW5lIF9fdmVyX2luZXRfc3RyZWFtX29wcyBzbXBfZjExNzFj
OTUKI2RlZmluZSBpbmV0X3N0cmVhbV9vcHMgX3NldF92ZXIoaW5ldF9zdHJlYW1fb3BzKQojZGVm
aW5lIF9fdmVyX2luZXRfZGdyYW1fb3BzIHNtcF9mYWQ5MDMxZAojZGVmaW5lIGluZXRfZGdyYW1f
b3BzIF9zZXRfdmVyKGluZXRfZGdyYW1fb3BzKQojZGVmaW5lIF9fdmVyX2lwX2Ntc2dfcmVjdiBz
bXBfOWRhYWM3OTIKI2RlZmluZSBpcF9jbXNnX3JlY3YgX3NldF92ZXIoaXBfY21zZ19yZWN2KQoj
ZGVmaW5lIF9fdmVyX2luZXRfYWRkcl90eXBlIHNtcF85ZjgxOTdkYgojZGVmaW5lIGluZXRfYWRk
cl90eXBlIF9zZXRfdmVyKGluZXRfYWRkcl90eXBlKQojZGVmaW5lIF9fdmVyX2luZXRfc2VsZWN0
X2FkZHIgc21wX2FlNTFmMGU3CiNkZWZpbmUgaW5ldF9zZWxlY3RfYWRkciBfc2V0X3ZlcihpbmV0
X3NlbGVjdF9hZGRyKQojZGVmaW5lIF9fdmVyX2lwX2Rldl9maW5kIHNtcF9hNWQ1ODg5ZAojZGVm
aW5lIGlwX2Rldl9maW5kIF9zZXRfdmVyKGlwX2Rldl9maW5kKQojZGVmaW5lIF9fdmVyX2luZXRk
ZXZfYnlfaW5kZXggc21wXzEzYjY5YmQ5CiNkZWZpbmUgaW5ldGRldl9ieV9pbmRleCBfc2V0X3Zl
cihpbmV0ZGV2X2J5X2luZGV4KQojZGVmaW5lIF9fdmVyX2luX2Rldl9maW5pc2hfZGVzdHJveSBz
bXBfYzgwOTU5ZTIKI2RlZmluZSBpbl9kZXZfZmluaXNoX2Rlc3Ryb3kgX3NldF92ZXIoaW5fZGV2
X2ZpbmlzaF9kZXN0cm95KQojZGVmaW5lIF9fdmVyX2lwX2RlZnJhZyBzbXBfM2Y3NmYwM2YKI2Rl
ZmluZSBpcF9kZWZyYWcgX3NldF92ZXIoaXBfZGVmcmFnKQojZGVmaW5lIF9fdmVyX2lwX3J0X2lv
Y3RsIHNtcF85NDIwOGU4NAojZGVmaW5lIGlwX3J0X2lvY3RsIF9zZXRfdmVyKGlwX3J0X2lvY3Rs
KQojZGVmaW5lIF9fdmVyX2RldmluZXRfaW9jdGwgc21wXzg2OWM4MGVhCiNkZWZpbmUgZGV2aW5l
dF9pb2N0bCBfc2V0X3ZlcihkZXZpbmV0X2lvY3RsKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX2lu
ZXRhZGRyX25vdGlmaWVyIHNtcF8zZTQ1ZTlmZgojZGVmaW5lIHJlZ2lzdGVyX2luZXRhZGRyX25v
dGlmaWVyIF9zZXRfdmVyKHJlZ2lzdGVyX2luZXRhZGRyX25vdGlmaWVyKQojZGVmaW5lIF9fdmVy
X3VucmVnaXN0ZXJfaW5ldGFkZHJfbm90aWZpZXIgc21wXzc2MGI0MzdhCiNkZWZpbmUgdW5yZWdp
c3Rlcl9pbmV0YWRkcl9ub3RpZmllciBfc2V0X3Zlcih1bnJlZ2lzdGVyX2luZXRhZGRyX25vdGlm
aWVyKQojZGVmaW5lIF9fdmVyX2lwX3N0YXRpc3RpY3Mgc21wX2Y2MGZjM2U2CiNkZWZpbmUgaXBf
c3RhdGlzdGljcyBfc2V0X3ZlcihpcF9zdGF0aXN0aWNzKQojZGVmaW5lIF9fdmVyX25ldGxpbmtf
c2V0X2VyciBzbXBfMjAyNjJmZGIKI2RlZmluZSBuZXRsaW5rX3NldF9lcnIgX3NldF92ZXIobmV0
bGlua19zZXRfZXJyKQojZGVmaW5lIF9fdmVyX25ldGxpbmtfYnJvYWRjYXN0IHNtcF81YTY1M2Vl
ZQojZGVmaW5lIG5ldGxpbmtfYnJvYWRjYXN0IF9zZXRfdmVyKG5ldGxpbmtfYnJvYWRjYXN0KQoj
ZGVmaW5lIF9fdmVyX25ldGxpbmtfdW5pY2FzdCBzbXBfYWMxOTY3MmUKI2RlZmluZSBuZXRsaW5r
X3VuaWNhc3QgX3NldF92ZXIobmV0bGlua191bmljYXN0KQojZGVmaW5lIF9fdmVyX25ldGxpbmtf
a2VybmVsX2NyZWF0ZSBzbXBfNDI1ZmY0MzIKI2RlZmluZSBuZXRsaW5rX2tlcm5lbF9jcmVhdGUg
X3NldF92ZXIobmV0bGlua19rZXJuZWxfY3JlYXRlKQojZGVmaW5lIF9fdmVyX25ldGxpbmtfZHVt
cF9zdGFydCBzbXBfN2IxZGE2YjYKI2RlZmluZSBuZXRsaW5rX2R1bXBfc3RhcnQgX3NldF92ZXIo
bmV0bGlua19kdW1wX3N0YXJ0KQojZGVmaW5lIF9fdmVyX25ldGxpbmtfYWNrIHNtcF81ZmViMmJk
YQojZGVmaW5lIG5ldGxpbmtfYWNrIF9zZXRfdmVyKG5ldGxpbmtfYWNrKQojZGVmaW5lIF9fdmVy
X3J0YXR0cl9wYXJzZSBzbXBfZTQ5NDE0ZTkKI2RlZmluZSBydGF0dHJfcGFyc2UgX3NldF92ZXIo
cnRhdHRyX3BhcnNlKQojZGVmaW5lIF9fdmVyX3J0bmV0bGlua19saW5rcyBzbXBfNzE3M2U0MmMK
I2RlZmluZSBydG5ldGxpbmtfbGlua3MgX3NldF92ZXIocnRuZXRsaW5rX2xpbmtzKQojZGVmaW5l
IF9fdmVyX19fcnRhX2ZpbGwgc21wX2Y2MGZkMjFmCiNkZWZpbmUgX19ydGFfZmlsbCBfc2V0X3Zl
cihfX3J0YV9maWxsKQojZGVmaW5lIF9fdmVyX3J0bmV0bGlua19kdW1wX2lmaW5mbyBzbXBfMTU2
YjRlZjAKI2RlZmluZSBydG5ldGxpbmtfZHVtcF9pZmluZm8gX3NldF92ZXIocnRuZXRsaW5rX2R1
bXBfaWZpbmZvKQojZGVmaW5lIF9fdmVyX3J0bmV0bGlua19wdXRfbWV0cmljcyBzbXBfYmE4MmRj
ZDkKI2RlZmluZSBydG5ldGxpbmtfcHV0X21ldHJpY3MgX3NldF92ZXIocnRuZXRsaW5rX3B1dF9t
ZXRyaWNzKQojZGVmaW5lIF9fdmVyX3J0bmwgc21wX2Q4MDE4OGI4CiNkZWZpbmUgcnRubCBfc2V0
X3ZlcihydG5sKQojZGVmaW5lIF9fdmVyX25laWdoX2RlbGV0ZSBzbXBfYjdmNmM5Y2MKI2RlZmlu
ZSBuZWlnaF9kZWxldGUgX3NldF92ZXIobmVpZ2hfZGVsZXRlKQojZGVmaW5lIF9fdmVyX25laWdo
X2FkZCBzbXBfNWNlNDZlYWMKI2RlZmluZSBuZWlnaF9hZGQgX3NldF92ZXIobmVpZ2hfYWRkKQoj
ZGVmaW5lIF9fdmVyX25laWdoX2R1bXBfaW5mbyBzbXBfMDZiYjlkYjUKI2RlZmluZSBuZWlnaF9k
dW1wX2luZm8gX3NldF92ZXIobmVpZ2hfZHVtcF9pbmZvKQojZGVmaW5lIF9fdmVyX2Rldl9zZXRf
YWxsbXVsdGkgc21wXzEyMmI2MjJhCiNkZWZpbmUgZGV2X3NldF9hbGxtdWx0aSBfc2V0X3Zlcihk
ZXZfc2V0X2FsbG11bHRpKQojZGVmaW5lIF9fdmVyX2Rldl9zZXRfcHJvbWlzY3VpdHkgc21wX2Mz
YzliMTA0CiNkZWZpbmUgZGV2X3NldF9wcm9taXNjdWl0eSBfc2V0X3ZlcihkZXZfc2V0X3Byb21p
c2N1aXR5KQojZGVmaW5lIF9fdmVyX3NrbGlzdF9yZW1vdmVfc29ja2V0IHNtcF81NzIxMTA2NQoj
ZGVmaW5lIHNrbGlzdF9yZW1vdmVfc29ja2V0IF9zZXRfdmVyKHNrbGlzdF9yZW1vdmVfc29ja2V0
KQojZGVmaW5lIF9fdmVyX3J0bmxfc2VtIHNtcF8zMzIyZWIzYQojZGVmaW5lIHJ0bmxfc2VtIF9z
ZXRfdmVyKHJ0bmxfc2VtKQojZGVmaW5lIF9fdmVyX3J0bmxfbG9jayBzbXBfYzdhNGZiZWQKI2Rl
ZmluZSBydG5sX2xvY2sgX3NldF92ZXIocnRubF9sb2NrKQojZGVmaW5lIF9fdmVyX3J0bmxfdW5s
b2NrIHNtcF82ZTcyMGZmMgojZGVmaW5lIHJ0bmxfdW5sb2NrIF9zZXRfdmVyKHJ0bmxfdW5sb2Nr
KQojZGVmaW5lIF9fdmVyX2lwdjRfY29uZmlnIHNtcF8yNmI5OTc4MgojZGVmaW5lIGlwdjRfY29u
ZmlnIF9zZXRfdmVyKGlwdjRfY29uZmlnKQojZGVmaW5lIF9fdmVyX2Rldl9vcGVuIHNtcF9mZTcy
ZGZmZQojZGVmaW5lIGRldl9vcGVuIF9zZXRfdmVyKGRldl9vcGVuKQojZGVmaW5lIF9fdmVyX2lu
X250b2Egc21wXzIwY2U0OTFiCiNkZWZpbmUgaW5fbnRvYSBfc2V0X3Zlcihpbl9udG9hKQojZGVm
aW5lIF9fdmVyX3hybGltX2FsbG93IHNtcF8zYzI1MDg3YwojZGVmaW5lIHhybGltX2FsbG93IF9z
ZXRfdmVyKHhybGltX2FsbG93KQojZGVmaW5lIF9fdmVyX2lwX3JjdiBzbXBfZmVmYWQ2ZjUKI2Rl
ZmluZSBpcF9yY3YgX3NldF92ZXIoaXBfcmN2KQojZGVmaW5lIF9fdmVyX2FycF9yY3Ygc21wX2Ni
OWJlZmRjCiNkZWZpbmUgYXJwX3JjdiBfc2V0X3ZlcihhcnBfcmN2KQojZGVmaW5lIF9fdmVyX2Fy
cF90Ymwgc21wXzJjMWY2NTgxCiNkZWZpbmUgYXJwX3RibCBfc2V0X3ZlcihhcnBfdGJsKQojZGVm
aW5lIF9fdmVyX2FycF9maW5kIHNtcF9hYmRkYzM0OAojZGVmaW5lIGFycF9maW5kIF9zZXRfdmVy
KGFycF9maW5kKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX25ldGRldmljZV9ub3RpZmllciBzbXBf
NjNlY2FkNTMKI2RlZmluZSByZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIgX3NldF92ZXIocmVn
aXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfbmV0ZGV2
aWNlX25vdGlmaWVyIHNtcF9mZTc2OTQ1NgojZGVmaW5lIHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25v
dGlmaWVyIF9zZXRfdmVyKHVucmVnaXN0ZXJfbmV0ZGV2aWNlX25vdGlmaWVyKQojZGVmaW5lIF9f
dmVyX2xvb3BiYWNrX2RldiBzbXBfMzEwN2I3ZDgKI2RlZmluZSBsb29wYmFja19kZXYgX3NldF92
ZXIobG9vcGJhY2tfZGV2KQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX25ldGRldmljZSBzbXBfZGE1
YjM0NWQKI2RlZmluZSByZWdpc3Rlcl9uZXRkZXZpY2UgX3NldF92ZXIocmVnaXN0ZXJfbmV0ZGV2
aWNlKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfbmV0ZGV2aWNlIHNtcF9iZGU0ZWVlZQojZGVm
aW5lIHVucmVnaXN0ZXJfbmV0ZGV2aWNlIF9zZXRfdmVyKHVucmVnaXN0ZXJfbmV0ZGV2aWNlKQoj
ZGVmaW5lIF9fdmVyX25ldGRldl9zdGF0ZV9jaGFuZ2Ugc21wXzFlOTExNzdjCiNkZWZpbmUgbmV0
ZGV2X3N0YXRlX2NoYW5nZSBfc2V0X3ZlcihuZXRkZXZfc3RhdGVfY2hhbmdlKQojZGVmaW5lIF9f
dmVyX2Rldl9uZXdfaW5kZXggc21wXzhmZGRjODRjCiNkZWZpbmUgZGV2X25ld19pbmRleCBfc2V0
X3ZlcihkZXZfbmV3X2luZGV4KQojZGVmaW5lIF9fdmVyX2Rldl9nZXRfYnlfaW5kZXggc21wXzMy
MzNiN2M0CiNkZWZpbmUgZGV2X2dldF9ieV9pbmRleCBfc2V0X3ZlcihkZXZfZ2V0X2J5X2luZGV4
KQojZGVmaW5lIF9fdmVyX19fZGV2X2dldF9ieV9pbmRleCBzbXBfNzMwZTA4ZGQKI2RlZmluZSBf
X2Rldl9nZXRfYnlfaW5kZXggX3NldF92ZXIoX19kZXZfZ2V0X2J5X2luZGV4KQojZGVmaW5lIF9f
dmVyX2Rldl9nZXRfYnlfbmFtZSBzbXBfNDVhMGI3Y2IKI2RlZmluZSBkZXZfZ2V0X2J5X25hbWUg
X3NldF92ZXIoZGV2X2dldF9ieV9uYW1lKQojZGVmaW5lIF9fdmVyX19fZGV2X2dldF9ieV9uYW1l
IHNtcF8yZDFlYzcwOAojZGVmaW5lIF9fZGV2X2dldF9ieV9uYW1lIF9zZXRfdmVyKF9fZGV2X2dl
dF9ieV9uYW1lKQojZGVmaW5lIF9fdmVyX25ldGRldl9maW5pc2hfdW5yZWdpc3RlciBzbXBfMWZm
YTE4MmEKI2RlZmluZSBuZXRkZXZfZmluaXNoX3VucmVnaXN0ZXIgX3NldF92ZXIobmV0ZGV2X2Zp
bmlzaF91bnJlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX25ldGRldl9zZXRfbWFzdGVyIHNtcF9jOTBk
NTFkYgojZGVmaW5lIG5ldGRldl9zZXRfbWFzdGVyIF9zZXRfdmVyKG5ldGRldl9zZXRfbWFzdGVy
KQojZGVmaW5lIF9fdmVyX2V0aF90eXBlX3RyYW5zIHNtcF85NDg1N2ZkNAojZGVmaW5lIGV0aF90
eXBlX3RyYW5zIF9zZXRfdmVyKGV0aF90eXBlX3RyYW5zKQojZGVmaW5lIF9fdmVyX2FsbG9jX3Nr
YiBzbXBfNDcwM2ZhM2MKI2RlZmluZSBhbGxvY19za2IgX3NldF92ZXIoYWxsb2Nfc2tiKQojZGVm
aW5lIF9fdmVyX19fa2ZyZWVfc2tiIHNtcF81ZjBkYzdlYQojZGVmaW5lIF9fa2ZyZWVfc2tiIF9z
ZXRfdmVyKF9fa2ZyZWVfc2tiKQojZGVmaW5lIF9fdmVyX3NrYl9jbG9uZSBzbXBfMzU3ZTllNjIK
I2RlZmluZSBza2JfY2xvbmUgX3NldF92ZXIoc2tiX2Nsb25lKQojZGVmaW5lIF9fdmVyX3NrYl9j
b3B5IHNtcF8wN2VlOTdhMQojZGVmaW5lIHNrYl9jb3B5IF9zZXRfdmVyKHNrYl9jb3B5KQojZGVm
aW5lIF9fdmVyX25ldGlmX3J4IHNtcF9lMTNmZjljOAojZGVmaW5lIG5ldGlmX3J4IF9zZXRfdmVy
KG5ldGlmX3J4KQojZGVmaW5lIF9fdmVyX2Rldl9hZGRfcGFjayBzbXBfN2M1NzhmODMKI2RlZmlu
ZSBkZXZfYWRkX3BhY2sgX3NldF92ZXIoZGV2X2FkZF9wYWNrKQojZGVmaW5lIF9fdmVyX2Rldl9y
ZW1vdmVfcGFjayBzbXBfYjgyNjkwYmMKI2RlZmluZSBkZXZfcmVtb3ZlX3BhY2sgX3NldF92ZXIo
ZGV2X3JlbW92ZV9wYWNrKQojZGVmaW5lIF9fdmVyX2Rldl9nZXQgc21wXzc5MjU5ZmJjCiNkZWZp
bmUgZGV2X2dldCBfc2V0X3ZlcihkZXZfZ2V0KQojZGVmaW5lIF9fdmVyX2Rldl9hbGxvYyBzbXBf
NDE1MjE2N2YKI2RlZmluZSBkZXZfYWxsb2MgX3NldF92ZXIoZGV2X2FsbG9jKQojZGVmaW5lIF9f
dmVyX2Rldl9hbGxvY19uYW1lIHNtcF8yNDU3MjAxZQojZGVmaW5lIGRldl9hbGxvY19uYW1lIF9z
ZXRfdmVyKGRldl9hbGxvY19uYW1lKQojZGVmaW5lIF9fdmVyX19fbmV0ZGV2X3dhdGNoZG9nX3Vw
IHNtcF84YThmNjQzNgojZGVmaW5lIF9fbmV0ZGV2X3dhdGNoZG9nX3VwIF9zZXRfdmVyKF9fbmV0
ZGV2X3dhdGNoZG9nX3VwKQojZGVmaW5lIF9fdmVyX2Rldl9sb2FkIHNtcF9hOTBmZDNiNwojZGVm
aW5lIGRldl9sb2FkIF9zZXRfdmVyKGRldl9sb2FkKQojZGVmaW5lIF9fdmVyX2Rldl9pb2N0bCBz
bXBfMzg3Yzc4YTUKI2RlZmluZSBkZXZfaW9jdGwgX3NldF92ZXIoZGV2X2lvY3RsKQojZGVmaW5l
IF9fdmVyX2Rldl9xdWV1ZV94bWl0IHNtcF9jMWU4MjY2MAojZGVmaW5lIGRldl9xdWV1ZV94bWl0
IF9zZXRfdmVyKGRldl9xdWV1ZV94bWl0KQojZGVmaW5lIF9fdmVyX2Rldl9iYXNlIHNtcF82Yzky
MTA5NwojZGVmaW5lIGRldl9iYXNlIF9zZXRfdmVyKGRldl9iYXNlKQojZGVmaW5lIF9fdmVyX2Rl
dl9iYXNlX2xvY2sgc21wXzI5NmEyOWQxCiNkZWZpbmUgZGV2X2Jhc2VfbG9jayBfc2V0X3Zlcihk
ZXZfYmFzZV9sb2NrKQojZGVmaW5lIF9fdmVyX2Rldl9jbG9zZSBzbXBfNWE2MTVkYTEKI2RlZmlu
ZSBkZXZfY2xvc2UgX3NldF92ZXIoZGV2X2Nsb3NlKQojZGVmaW5lIF9fdmVyX2Rldl9tY19hZGQg
c21wXzA5NWRiZmQ3CiNkZWZpbmUgZGV2X21jX2FkZCBfc2V0X3ZlcihkZXZfbWNfYWRkKQojZGVm
aW5lIF9fdmVyX2Rldl9tY19kZWxldGUgc21wXzdmNzY3YTNkCiNkZWZpbmUgZGV2X21jX2RlbGV0
ZSBfc2V0X3ZlcihkZXZfbWNfZGVsZXRlKQojZGVmaW5lIF9fdmVyX2Rldl9tY191cGxvYWQgc21w
XzhiYTllMjdhCiNkZWZpbmUgZGV2X21jX3VwbG9hZCBfc2V0X3ZlcihkZXZfbWNfdXBsb2FkKQoj
ZGVmaW5lIF9fdmVyX25fdHR5X2lvY3RsIHNtcF83NmUyMGI3MAojZGVmaW5lIG5fdHR5X2lvY3Rs
IF9zZXRfdmVyKG5fdHR5X2lvY3RsKQojZGVmaW5lIF9fdmVyX3R0eV9yZWdpc3Rlcl9sZGlzYyBz
bXBfODY5YzA4YjUKI2RlZmluZSB0dHlfcmVnaXN0ZXJfbGRpc2MgX3NldF92ZXIodHR5X3JlZ2lz
dGVyX2xkaXNjKQojZGVmaW5lIF9fdmVyX19fa2lsbF9mYXN5bmMgc21wXzAyY2Y4NzcyCiNkZWZp
bmUgX19raWxsX2Zhc3luYyBfc2V0X3ZlcihfX2tpbGxfZmFzeW5jKQojZGVmaW5lIF9fdmVyX2lm
X3BvcnRfdGV4dCBzbXBfOWNmMGM2NGYKI2RlZmluZSBpZl9wb3J0X3RleHQgX3NldF92ZXIoaWZf
cG9ydF90ZXh0KQojZGVmaW5lIF9fdmVyX3N5c2N0bF93bWVtX21heCBzbXBfZmFjODg2NWYKI2Rl
ZmluZSBzeXNjdGxfd21lbV9tYXggX3NldF92ZXIoc3lzY3RsX3dtZW1fbWF4KQojZGVmaW5lIF9f
dmVyX3N5c2N0bF9ybWVtX21heCBzbXBfYjA1ZmMzMTAKI2RlZmluZSBzeXNjdGxfcm1lbV9tYXgg
X3NldF92ZXIoc3lzY3RsX3JtZW1fbWF4KQojZGVmaW5lIF9fdmVyX3N5c2N0bF9pcF9kZWZhdWx0
X3R0bCBzbXBfZjYzODhjNTYKI2RlZmluZSBzeXNjdGxfaXBfZGVmYXVsdF90dGwgX3NldF92ZXIo
c3lzY3RsX2lwX2RlZmF1bHRfdHRsKQojZGVmaW5lIF9fdmVyX3FkaXNjX2Rlc3Ryb3kgc21wXzM4
MTRhYTNmCiNkZWZpbmUgcWRpc2NfZGVzdHJveSBfc2V0X3ZlcihxZGlzY19kZXN0cm95KQojZGVm
aW5lIF9fdmVyX3FkaXNjX3Jlc2V0IHNtcF9lYzI3M2Q1NAojZGVmaW5lIHFkaXNjX3Jlc2V0IF9z
ZXRfdmVyKHFkaXNjX3Jlc2V0KQojZGVmaW5lIF9fdmVyX3FkaXNjX3Jlc3RhcnQgc21wXzNlMjQz
OTAwCiNkZWZpbmUgcWRpc2NfcmVzdGFydCBfc2V0X3ZlcihxZGlzY19yZXN0YXJ0KQojZGVmaW5l
IF9fdmVyX3FkaXNjX2NyZWF0ZV9kZmx0IHNtcF84MjNiMjA4MQojZGVmaW5lIHFkaXNjX2NyZWF0
ZV9kZmx0IF9zZXRfdmVyKHFkaXNjX2NyZWF0ZV9kZmx0KQojZGVmaW5lIF9fdmVyX25vb3BfcWRp
c2Mgc21wXzc1NGU2ZWRiCiNkZWZpbmUgbm9vcF9xZGlzYyBfc2V0X3Zlcihub29wX3FkaXNjKQoj
ZGVmaW5lIF9fdmVyX3FkaXNjX3RyZWVfbG9jayBzbXBfMmI4ZGExOTcKI2RlZmluZSBxZGlzY190
cmVlX2xvY2sgX3NldF92ZXIocWRpc2NfdHJlZV9sb2NrKQojZGVmaW5lIF9fdmVyX25mX3JlZ2lz
dGVyX2hvb2sgc21wXzFiMGZlZGU4CiNkZWZpbmUgbmZfcmVnaXN0ZXJfaG9vayBfc2V0X3Zlcihu
Zl9yZWdpc3Rlcl9ob29rKQojZGVmaW5lIF9fdmVyX25mX3VucmVnaXN0ZXJfaG9vayBzbXBfZTNi
YjUyN2YKI2RlZmluZSBuZl91bnJlZ2lzdGVyX2hvb2sgX3NldF92ZXIobmZfdW5yZWdpc3Rlcl9o
b29rKQojZGVmaW5lIF9fdmVyX25mX3JlZ2lzdGVyX3NvY2tvcHQgc21wX2E2MmI4OTFmCiNkZWZp
bmUgbmZfcmVnaXN0ZXJfc29ja29wdCBfc2V0X3ZlcihuZl9yZWdpc3Rlcl9zb2Nrb3B0KQojZGVm
aW5lIF9fdmVyX25mX3VucmVnaXN0ZXJfc29ja29wdCBzbXBfYTAzYTM1ZWQKI2RlZmluZSBuZl91
bnJlZ2lzdGVyX3NvY2tvcHQgX3NldF92ZXIobmZfdW5yZWdpc3Rlcl9zb2Nrb3B0KQojZGVmaW5l
IF9fdmVyX25mX3JlaW5qZWN0IHNtcF8zNjFjZDM5ZAojZGVmaW5lIG5mX3JlaW5qZWN0IF9zZXRf
dmVyKG5mX3JlaW5qZWN0KQojZGVmaW5lIF9fdmVyX25mX3JlZ2lzdGVyX3F1ZXVlX2hhbmRsZXIg
c21wXzI2ZGE5ZmJjCiNkZWZpbmUgbmZfcmVnaXN0ZXJfcXVldWVfaGFuZGxlciBfc2V0X3Zlcihu
Zl9yZWdpc3Rlcl9xdWV1ZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX25mX3VucmVnaXN0ZXJfcXVl
dWVfaGFuZGxlciBzbXBfNGRmNmU2ZGUKI2RlZmluZSBuZl91bnJlZ2lzdGVyX3F1ZXVlX2hhbmRs
ZXIgX3NldF92ZXIobmZfdW5yZWdpc3Rlcl9xdWV1ZV9oYW5kbGVyKQojZGVmaW5lIF9fdmVyX25m
X2hvb2tfc2xvdyBzbXBfOGM5NTcxMzEKI2RlZmluZSBuZl9ob29rX3Nsb3cgX3NldF92ZXIobmZf
aG9va19zbG93KQojZGVmaW5lIF9fdmVyX25mX2hvb2tzIHNtcF8wNzhiMWZkMgojZGVmaW5lIG5m
X2hvb2tzIF9zZXRfdmVyKG5mX2hvb2tzKQojZGVmaW5lIF9fdmVyX25mX3NldHNvY2tvcHQgc21w
XzBlNDMyODkxCiNkZWZpbmUgbmZfc2V0c29ja29wdCBfc2V0X3ZlcihuZl9zZXRzb2Nrb3B0KQoj
ZGVmaW5lIF9fdmVyX25mX2dldHNvY2tvcHQgc21wXzA3NjU2MGMwCiNkZWZpbmUgbmZfZ2V0c29j
a29wdCBfc2V0X3ZlcihuZl9nZXRzb2Nrb3B0KQojZGVmaW5lIF9fdmVyX2lwX2N0X2F0dGFjaCBz
bXBfNjlmZjE4ZDQKI2RlZmluZSBpcF9jdF9hdHRhY2ggX3NldF92ZXIoaXBfY3RfYXR0YWNoKQoj
ZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX2dpZmNvbmYgc21wXzVhNzY1ZTk1CiNkZWZpbmUgcmVnaXN0
ZXJfZ2lmY29uZiBfc2V0X3ZlcihyZWdpc3Rlcl9naWZjb25mKQojZGVmaW5lIF9fdmVyX25ldF9j
YWxsX3J4X2F0b21pYyBzbXBfZjIzZWZiOTgKI2RlZmluZSBuZXRfY2FsbF9yeF9hdG9taWMgX3Nl
dF92ZXIobmV0X2NhbGxfcnhfYXRvbWljKQojZGVmaW5lIF9fdmVyX3NvZnRuZXRfZGF0YSBzbXBf
ZjhkNmM4OTAKI2RlZmluZSBzb2Z0bmV0X2RhdGEgX3NldF92ZXIoc29mdG5ldF9kYXRhKQojIDE2
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL25ld3BvcnQudmVy
IiAxCiMgMTYyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbmxz
X2Jhc2UudmVyIiAxCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfbmxzIHNtcF9hNmU4MzgxMgojZGVm
aW5lIHJlZ2lzdGVyX25scyBfc2V0X3ZlcihyZWdpc3Rlcl9ubHMpCiNkZWZpbmUgX192ZXJfdW5y
ZWdpc3Rlcl9ubHMgc21wXzNmNGFiOTUwCiNkZWZpbmUgdW5yZWdpc3Rlcl9ubHMgX3NldF92ZXIo
dW5yZWdpc3Rlcl9ubHMpCiNkZWZpbmUgX192ZXJfdW5sb2FkX25scyBzbXBfZGExY2U5OWQKI2Rl
ZmluZSB1bmxvYWRfbmxzIF9zZXRfdmVyKHVubG9hZF9ubHMpCiNkZWZpbmUgX192ZXJfbG9hZF9u
bHMgc21wXzlmZjBhMmVhCiNkZWZpbmUgbG9hZF9ubHMgX3NldF92ZXIobG9hZF9ubHMpCiNkZWZp
bmUgX192ZXJfbG9hZF9ubHNfZGVmYXVsdCBzbXBfNzY4ZDczMjIKI2RlZmluZSBsb2FkX25sc19k
ZWZhdWx0IF9zZXRfdmVyKGxvYWRfbmxzX2RlZmF1bHQpCiNkZWZpbmUgX192ZXJfdXRmOF9tYnRv
d2Mgc21wXzRkZGM0YjlmCiNkZWZpbmUgdXRmOF9tYnRvd2MgX3NldF92ZXIodXRmOF9tYnRvd2Mp
CiNkZWZpbmUgX192ZXJfdXRmOF9tYnN0b3djcyBzbXBfN2Q4NTA2MTIKI2RlZmluZSB1dGY4X21i
c3Rvd2NzIF9zZXRfdmVyKHV0ZjhfbWJzdG93Y3MpCiNkZWZpbmUgX192ZXJfdXRmOF93Y3RvbWIg
c21wX2Y4MmYxMTA5CiNkZWZpbmUgdXRmOF93Y3RvbWIgX3NldF92ZXIodXRmOF93Y3RvbWIpCiNk
ZWZpbmUgX192ZXJfdXRmOF93Y3N0b21icyBzbXBfODYzY2I5MWEKI2RlZmluZSB1dGY4X3djc3Rv
bWJzIF9zZXRfdmVyKHV0Zjhfd2NzdG9tYnMpCiMgMTYzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvbm0yNTZfYXVkaW8udmVyIiAxCiMgMTY0ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvbnVidXNfc3ltcy52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl9udWJ1c19wcm9jX2F0dGFjaF9kZXZpY2Ugc21wXzg0MjhhYmUzCiNkZWZpbmUgbnVi
dXNfcHJvY19hdHRhY2hfZGV2aWNlIF9zZXRfdmVyKG51YnVzX3Byb2NfYXR0YWNoX2RldmljZSkK
I2RlZmluZSBfX3Zlcl9udWJ1c19wcm9jX2RldGFjaF9kZXZpY2Ugc21wXzIzNGI2NTMwCiNkZWZp
bmUgbnVidXNfcHJvY19kZXRhY2hfZGV2aWNlIF9zZXRfdmVyKG51YnVzX3Byb2NfZGV0YWNoX2Rl
dmljZSkKI2RlZmluZSBfX3Zlcl9udWJ1c19maW5kX2RldmljZSBzbXBfOGJiNGZjZTcKI2RlZmlu
ZSBudWJ1c19maW5kX2RldmljZSBfc2V0X3ZlcihudWJ1c19maW5kX2RldmljZSkKI2RlZmluZSBf
X3Zlcl9udWJ1c19maW5kX3R5cGUgc21wXzMxNGFmYzVmCiNkZWZpbmUgbnVidXNfZmluZF90eXBl
IF9zZXRfdmVyKG51YnVzX2ZpbmRfdHlwZSkKI2RlZmluZSBfX3Zlcl9udWJ1c19maW5kX3Nsb3Qg
c21wXzVhODIxYmRkCiNkZWZpbmUgbnVidXNfZmluZF9zbG90IF9zZXRfdmVyKG51YnVzX2ZpbmRf
c2xvdCkKI2RlZmluZSBfX3Zlcl9udWJ1c19nZXRfcm9vdF9kaXIgc21wXzIwMzU0MmM5CiNkZWZp
bmUgbnVidXNfZ2V0X3Jvb3RfZGlyIF9zZXRfdmVyKG51YnVzX2dldF9yb290X2RpcikKI2RlZmlu
ZSBfX3Zlcl9udWJ1c19nZXRfYm9hcmRfZGlyIHNtcF8wZGM1NWQ4MAojZGVmaW5lIG51YnVzX2dl
dF9ib2FyZF9kaXIgX3NldF92ZXIobnVidXNfZ2V0X2JvYXJkX2RpcikKI2RlZmluZSBfX3Zlcl9u
dWJ1c19nZXRfZnVuY19kaXIgc21wXzcwZTc1MWZjCiNkZWZpbmUgbnVidXNfZ2V0X2Z1bmNfZGly
IF9zZXRfdmVyKG51YnVzX2dldF9mdW5jX2RpcikKI2RlZmluZSBfX3Zlcl9udWJ1c19yZWFkZGly
IHNtcF9iZDNiY2FlNAojZGVmaW5lIG51YnVzX3JlYWRkaXIgX3NldF92ZXIobnVidXNfcmVhZGRp
cikKI2RlZmluZSBfX3Zlcl9udWJ1c19maW5kX3JzcmMgc21wX2Y4NjE3Mzk1CiNkZWZpbmUgbnVi
dXNfZmluZF9yc3JjIF9zZXRfdmVyKG51YnVzX2ZpbmRfcnNyYykKI2RlZmluZSBfX3Zlcl9udWJ1
c19yZXdpbmRkaXIgc21wX2VlZTZjYThlCiNkZWZpbmUgbnVidXNfcmV3aW5kZGlyIF9zZXRfdmVy
KG51YnVzX3Jld2luZGRpcikKI2RlZmluZSBfX3Zlcl9udWJ1c19nZXRfc3ViZGlyIHNtcF83ZTk0
NWRkYgojZGVmaW5lIG51YnVzX2dldF9zdWJkaXIgX3NldF92ZXIobnVidXNfZ2V0X3N1YmRpcikK
I2RlZmluZSBfX3Zlcl9udWJ1c19nZXRfcnNyY19tZW0gc21wXzVlZjEyZTM1CiNkZWZpbmUgbnVi
dXNfZ2V0X3JzcmNfbWVtIF9zZXRfdmVyKG51YnVzX2dldF9yc3JjX21lbSkKI2RlZmluZSBfX3Zl
cl9udWJ1c19nZXRfcnNyY19zdHIgc21wXzhmYjhjOTFjCiNkZWZpbmUgbnVidXNfZ2V0X3JzcmNf
c3RyIF9zZXRfdmVyKG51YnVzX2dldF9yc3JjX3N0cikKIyAxNjUgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9vcGwzLnZlciIgMQojZGVmaW5lIF9fdmVyX29wbDNf
aW5pdCBzbXBfMDIyMDNiYWEKI2RlZmluZSBvcGwzX2luaXQgX3NldF92ZXIob3BsM19pbml0KQoj
ZGVmaW5lIF9fdmVyX29wbDNfZGV0ZWN0IHNtcF82NzQ4MTc2NwojZGVmaW5lIG9wbDNfZGV0ZWN0
IF9zZXRfdmVyKG9wbDNfZGV0ZWN0KQojIDE2NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGVzL29yaW5vY28udmVyIiAxCiNkZWZpbmUgX192ZXJfZGxkd2RfaW5pdCBz
bXBfYWFlNWI1MzQKI2RlZmluZSBkbGR3ZF9pbml0IF9zZXRfdmVyKGRsZHdkX2luaXQpCiNkZWZp
bmUgX192ZXJfZGxkd2RfeG1pdCBzbXBfYTkwMjZmZjIKI2RlZmluZSBkbGR3ZF94bWl0IF9zZXRf
dmVyKGRsZHdkX3htaXQpCiNkZWZpbmUgX192ZXJfZGxkd2RfdHhfdGltZW91dCBzbXBfNDAwNzY3
YzcKI2RlZmluZSBkbGR3ZF90eF90aW1lb3V0IF9zZXRfdmVyKGRsZHdkX3R4X3RpbWVvdXQpCiNk
ZWZpbmUgX192ZXJfZGxkd2RfaW9jdGwgc21wXzQzZDM0ZDcxCiNkZWZpbmUgZGxkd2RfaW9jdGwg
X3NldF92ZXIoZGxkd2RfaW9jdGwpCiNkZWZpbmUgX192ZXJfZGxkd2RfY2hhbmdlX210dSBzbXBf
ZTBiMmU4MTAKI2RlZmluZSBkbGR3ZF9jaGFuZ2VfbXR1IF9zZXRfdmVyKGRsZHdkX2NoYW5nZV9t
dHUpCiNkZWZpbmUgX192ZXJfZGxkd2Rfc2V0X211bHRpY2FzdF9saXN0IHNtcF82OWI0OThlNQoj
ZGVmaW5lIGRsZHdkX3NldF9tdWx0aWNhc3RfbGlzdCBfc2V0X3ZlcihkbGR3ZF9zZXRfbXVsdGlj
YXN0X2xpc3QpCiNkZWZpbmUgX192ZXJfZGxkd2Rfc2h1dGRvd24gc21wXzgyNDE2ODI2CiNkZWZp
bmUgZGxkd2Rfc2h1dGRvd24gX3NldF92ZXIoZGxkd2Rfc2h1dGRvd24pCiNkZWZpbmUgX192ZXJf
ZGxkd2RfcmVzZXQgc21wXzQ2NDdkYjVkCiNkZWZpbmUgZGxkd2RfcmVzZXQgX3NldF92ZXIoZGxk
d2RfcmVzZXQpCiNkZWZpbmUgX192ZXJfZGxkd2Rfc2V0dXAgc21wX2MwMWY4MTBhCiNkZWZpbmUg
ZGxkd2Rfc2V0dXAgX3NldF92ZXIoZGxkd2Rfc2V0dXApCiNkZWZpbmUgX192ZXJfZGxkd2RfcHJv
Y19kZXZfaW5pdCBzbXBfZWZlYzhlYzkKI2RlZmluZSBkbGR3ZF9wcm9jX2Rldl9pbml0IF9zZXRf
dmVyKGRsZHdkX3Byb2NfZGV2X2luaXQpCiNkZWZpbmUgX192ZXJfZGxkd2RfcHJvY19kZXZfY2xl
YW51cCBzbXBfMTI0MDIwMTUKI2RlZmluZSBkbGR3ZF9wcm9jX2Rldl9jbGVhbnVwIF9zZXRfdmVy
KGRsZHdkX3Byb2NfZGV2X2NsZWFudXApCiNkZWZpbmUgX192ZXJfZGxkd2RfaW50ZXJydXB0IHNt
cF9iZjc4ZDM4NgojZGVmaW5lIGRsZHdkX2ludGVycnVwdCBfc2V0X3ZlcihkbGR3ZF9pbnRlcnJ1
cHQpCiMgMTY3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcDgw
MjIudmVyIiAxCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfODAyMl9jbGllbnQgc21wXzM1N2Q1ZDhh
CiNkZWZpbmUgcmVnaXN0ZXJfODAyMl9jbGllbnQgX3NldF92ZXIocmVnaXN0ZXJfODAyMl9jbGll
bnQpCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl84MDIyX2NsaWVudCBzbXBfN2FjZWYxNWQKI2Rl
ZmluZSB1bnJlZ2lzdGVyXzgwMjJfY2xpZW50IF9zZXRfdmVyKHVucmVnaXN0ZXJfODAyMl9jbGll
bnQpCiMgMTY4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcGFy
cG9ydF9wYy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BjX3Byb2JlX3BvcnQgc21wXzdk
MjI0NTMxCiNkZWZpbmUgcGFycG9ydF9wY19wcm9iZV9wb3J0IF9zZXRfdmVyKHBhcnBvcnRfcGNf
cHJvYmVfcG9ydCkKI2RlZmluZSBfX3Zlcl9wYXJwb3J0X3BjX3VucmVnaXN0ZXJfcG9ydCBzbXBf
NTljY2JjMjQKI2RlZmluZSBwYXJwb3J0X3BjX3VucmVnaXN0ZXJfcG9ydCBfc2V0X3ZlcihwYXJw
b3J0X3BjX3VucmVnaXN0ZXJfcG9ydCkKIyAxNjkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9wY2lfc29ja2V0LnZlciIgMQojIDE3MCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3BjaS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wY2lf
cmVhZF9jb25maWdfYnl0ZSBzbXBfNzMyYjMwYmEKI2RlZmluZSBwY2lfcmVhZF9jb25maWdfYnl0
ZSBfc2V0X3ZlcihwY2lfcmVhZF9jb25maWdfYnl0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfcmVhZF9j
b25maWdfd29yZCBzbXBfOWQzN2E2NDEKI2RlZmluZSBwY2lfcmVhZF9jb25maWdfd29yZCBfc2V0
X3ZlcihwY2lfcmVhZF9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfcmVhZF9jb25maWdf
ZHdvcmQgc21wXzc5ODE3NzlmCiNkZWZpbmUgcGNpX3JlYWRfY29uZmlnX2R3b3JkIF9zZXRfdmVy
KHBjaV9yZWFkX2NvbmZpZ19kd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfd3JpdGVfY29uZmlnX2J5
dGUgc21wXzIwZWRlODI3CiNkZWZpbmUgcGNpX3dyaXRlX2NvbmZpZ19ieXRlIF9zZXRfdmVyKHBj
aV93cml0ZV9jb25maWdfYnl0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfd3JpdGVfY29uZmlnX3dvcmQg
c21wXzg1MGU0MWYyCiNkZWZpbmUgcGNpX3dyaXRlX2NvbmZpZ193b3JkIF9zZXRfdmVyKHBjaV93
cml0ZV9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfd3JpdGVfY29uZmlnX2R3b3JkIHNt
cF9jMjk1ZDAzNQojZGVmaW5lIHBjaV93cml0ZV9jb25maWdfZHdvcmQgX3NldF92ZXIocGNpX3dy
aXRlX2NvbmZpZ19kd29yZCkKI2RlZmluZSBfX3Zlcl9wY2lfZGV2aWNlcyBzbXBfN2E4NGIxMDIK
I2RlZmluZSBwY2lfZGV2aWNlcyBfc2V0X3ZlcihwY2lfZGV2aWNlcykKI2RlZmluZSBfX3Zlcl9w
Y2lfcm9vdF9idXNlcyBzbXBfMDgyYzMyMTMKI2RlZmluZSBwY2lfcm9vdF9idXNlcyBfc2V0X3Zl
cihwY2lfcm9vdF9idXNlcykKI2RlZmluZSBfX3Zlcl9wY2lfZW5hYmxlX2RldmljZSBzbXBfOThh
NjYxOTcKI2RlZmluZSBwY2lfZW5hYmxlX2RldmljZSBfc2V0X3ZlcihwY2lfZW5hYmxlX2Rldmlj
ZSkKI2RlZmluZSBfX3Zlcl9wY2lfZGlzYWJsZV9kZXZpY2Ugc21wXzc4NmM0NTFhCiNkZWZpbmUg
cGNpX2Rpc2FibGVfZGV2aWNlIF9zZXRfdmVyKHBjaV9kaXNhYmxlX2RldmljZSkKI2RlZmluZSBf
X3Zlcl9wY2lfZmluZF9jYXBhYmlsaXR5IHNtcF8wN2JlYTA4MAojZGVmaW5lIHBjaV9maW5kX2Nh
cGFiaWxpdHkgX3NldF92ZXIocGNpX2ZpbmRfY2FwYWJpbGl0eSkKI2RlZmluZSBfX3Zlcl9wY2lf
cmVsZWFzZV9yZWdpb25zIHNtcF8xYmE5ZDdkNwojZGVmaW5lIHBjaV9yZWxlYXNlX3JlZ2lvbnMg
X3NldF92ZXIocGNpX3JlbGVhc2VfcmVnaW9ucykKI2RlZmluZSBfX3Zlcl9wY2lfcmVxdWVzdF9y
ZWdpb25zIHNtcF9iMTFkZWU1MwojZGVmaW5lIHBjaV9yZXF1ZXN0X3JlZ2lvbnMgX3NldF92ZXIo
cGNpX3JlcXVlc3RfcmVnaW9ucykKI2RlZmluZSBfX3Zlcl9wY2lfZmluZF9jbGFzcyBzbXBfNzJi
OTQ5MTYKI2RlZmluZSBwY2lfZmluZF9jbGFzcyBfc2V0X3ZlcihwY2lfZmluZF9jbGFzcykKI2Rl
ZmluZSBfX3Zlcl9wY2lfZmluZF9kZXZpY2Ugc21wXzU5ODNiMzliCiNkZWZpbmUgcGNpX2ZpbmRf
ZGV2aWNlIF9zZXRfdmVyKHBjaV9maW5kX2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lfZmluZF9z
bG90IHNtcF80ZWI1YmUyMQojZGVmaW5lIHBjaV9maW5kX3Nsb3QgX3NldF92ZXIocGNpX2ZpbmRf
c2xvdCkKI2RlZmluZSBfX3Zlcl9wY2lfZmluZF9zdWJzeXMgc21wXzdiNzcwMWMzCiNkZWZpbmUg
cGNpX2ZpbmRfc3Vic3lzIF9zZXRfdmVyKHBjaV9maW5kX3N1YnN5cykKI2RlZmluZSBfX3Zlcl9w
Y2lfc2V0X21hc3RlciBzbXBfNzY2MWNkNmIKI2RlZmluZSBwY2lfc2V0X21hc3RlciBfc2V0X3Zl
cihwY2lfc2V0X21hc3RlcikKI2RlZmluZSBfX3Zlcl9wY2lfc2V0X2RtYV9tYXNrIHNtcF9jY2Jl
YWJlOQojZGVmaW5lIHBjaV9zZXRfZG1hX21hc2sgX3NldF92ZXIocGNpX3NldF9kbWFfbWFzaykK
I2RlZmluZSBfX3Zlcl9wY2lfYXNzaWduX3Jlc291cmNlIHNtcF9mNTAwZGEwMwojZGVmaW5lIHBj
aV9hc3NpZ25fcmVzb3VyY2UgX3NldF92ZXIocGNpX2Fzc2lnbl9yZXNvdXJjZSkKI2RlZmluZSBf
X3Zlcl9wY2lfcmVnaXN0ZXJfZHJpdmVyIHNtcF9jMDM1ODFiOQojZGVmaW5lIHBjaV9yZWdpc3Rl
cl9kcml2ZXIgX3NldF92ZXIocGNpX3JlZ2lzdGVyX2RyaXZlcikKI2RlZmluZSBfX3Zlcl9wY2lf
dW5yZWdpc3Rlcl9kcml2ZXIgc21wX2RkOTc2MTNkCiNkZWZpbmUgcGNpX3VucmVnaXN0ZXJfZHJp
dmVyIF9zZXRfdmVyKHBjaV91bnJlZ2lzdGVyX2RyaXZlcikKI2RlZmluZSBfX3Zlcl9wY2lfZGV2
X2RyaXZlciBzbXBfNjMwNzVlZGMKI2RlZmluZSBwY2lfZGV2X2RyaXZlciBfc2V0X3ZlcihwY2lf
ZGV2X2RyaXZlcikKI2RlZmluZSBfX3Zlcl9wY2lfbWF0Y2hfZGV2aWNlIHNtcF9mOWI3ZWRkNQoj
ZGVmaW5lIHBjaV9tYXRjaF9kZXZpY2UgX3NldF92ZXIocGNpX21hdGNoX2RldmljZSkKI2RlZmlu
ZSBfX3Zlcl9wY2lfZmluZF9wYXJlbnRfcmVzb3VyY2Ugc21wXzU1MDkxMTQ0CiNkZWZpbmUgcGNp
X2ZpbmRfcGFyZW50X3Jlc291cmNlIF9zZXRfdmVyKHBjaV9maW5kX3BhcmVudF9yZXNvdXJjZSkK
I2RlZmluZSBfX3Zlcl9wY2lfc2V0dXBfZGV2aWNlIHNtcF83MzM3NTkxZAojZGVmaW5lIHBjaV9z
ZXR1cF9kZXZpY2UgX3NldF92ZXIocGNpX3NldHVwX2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lf
aW5zZXJ0X2RldmljZSBzbXBfYjFiNTU0OGEKI2RlZmluZSBwY2lfaW5zZXJ0X2RldmljZSBfc2V0
X3ZlcihwY2lfaW5zZXJ0X2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lfcmVtb3ZlX2RldmljZSBz
bXBfZDRlMjcwZTkKI2RlZmluZSBwY2lfcmVtb3ZlX2RldmljZSBfc2V0X3ZlcihwY2lfcmVtb3Zl
X2RldmljZSkKI2RlZmluZSBfX3Zlcl9wY2lfc2V0X3Bvd2VyX3N0YXRlIHNtcF80OWFjODUwOAoj
ZGVmaW5lIHBjaV9zZXRfcG93ZXJfc3RhdGUgX3NldF92ZXIocGNpX3NldF9wb3dlcl9zdGF0ZSkK
I2RlZmluZSBfX3Zlcl9wY2lfc2F2ZV9zdGF0ZSBzbXBfMWU3ZGJhNDYKI2RlZmluZSBwY2lfc2F2
ZV9zdGF0ZSBfc2V0X3ZlcihwY2lfc2F2ZV9zdGF0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfcmVzdG9y
ZV9zdGF0ZSBzbXBfNzU3ZTlmNzIKI2RlZmluZSBwY2lfcmVzdG9yZV9zdGF0ZSBfc2V0X3Zlcihw
Y2lfcmVzdG9yZV9zdGF0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfZW5hYmxlX3dha2Ugc21wXzJkM2Fk
Mzg5CiNkZWZpbmUgcGNpX2VuYWJsZV93YWtlIF9zZXRfdmVyKHBjaV9lbmFibGVfd2FrZSkKI2Rl
ZmluZSBfX3Zlcl9wY2liaW9zX3ByZXNlbnQgc21wXzUyMGE3NWI5CiNkZWZpbmUgcGNpYmlvc19w
cmVzZW50IF9zZXRfdmVyKHBjaWJpb3NfcHJlc2VudCkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX3Jl
YWRfY29uZmlnX2J5dGUgc21wX2Q4MDExNWUxCiNkZWZpbmUgcGNpYmlvc19yZWFkX2NvbmZpZ19i
eXRlIF9zZXRfdmVyKHBjaWJpb3NfcmVhZF9jb25maWdfYnl0ZSkKI2RlZmluZSBfX3Zlcl9wY2li
aW9zX3JlYWRfY29uZmlnX3dvcmQgc21wX2FhOWVmZmQ3CiNkZWZpbmUgcGNpYmlvc19yZWFkX2Nv
bmZpZ193b3JkIF9zZXRfdmVyKHBjaWJpb3NfcmVhZF9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zl
cl9wY2liaW9zX3JlYWRfY29uZmlnX2R3b3JkIHNtcF8zOGFlNjY4OQojZGVmaW5lIHBjaWJpb3Nf
cmVhZF9jb25maWdfZHdvcmQgX3NldF92ZXIocGNpYmlvc19yZWFkX2NvbmZpZ19kd29yZCkKI2Rl
ZmluZSBfX3Zlcl9wY2liaW9zX3dyaXRlX2NvbmZpZ19ieXRlIHNtcF83MTk4NTZlZQojZGVmaW5l
IHBjaWJpb3Nfd3JpdGVfY29uZmlnX2J5dGUgX3NldF92ZXIocGNpYmlvc193cml0ZV9jb25maWdf
Ynl0ZSkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX3dyaXRlX2NvbmZpZ193b3JkIHNtcF80ZjFjMmUz
MwojZGVmaW5lIHBjaWJpb3Nfd3JpdGVfY29uZmlnX3dvcmQgX3NldF92ZXIocGNpYmlvc193cml0
ZV9jb25maWdfd29yZCkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX3dyaXRlX2NvbmZpZ19kd29yZCBz
bXBfODFiNGY0NjUKI2RlZmluZSBwY2liaW9zX3dyaXRlX2NvbmZpZ19kd29yZCBfc2V0X3Zlcihw
Y2liaW9zX3dyaXRlX2NvbmZpZ19kd29yZCkKI2RlZmluZSBfX3Zlcl9wY2liaW9zX2ZpbmRfY2xh
c3Mgc21wX2VmMzMzZjdiCiNkZWZpbmUgcGNpYmlvc19maW5kX2NsYXNzIF9zZXRfdmVyKHBjaWJp
b3NfZmluZF9jbGFzcykKI2RlZmluZSBfX3Zlcl9wY2liaW9zX2ZpbmRfZGV2aWNlIHNtcF85N2Q0
OWM0ZAojZGVmaW5lIHBjaWJpb3NfZmluZF9kZXZpY2UgX3NldF92ZXIocGNpYmlvc19maW5kX2Rl
dmljZSkKI2RlZmluZSBfX3Zlcl9pc2FfZG1hX2JyaWRnZV9idWdneSBzbXBfZjgyYWJjMWQKI2Rl
ZmluZSBpc2FfZG1hX2JyaWRnZV9idWdneSBfc2V0X3Zlcihpc2FfZG1hX2JyaWRnZV9idWdneSkK
I2RlZmluZSBfX3Zlcl9wY2lfcGNpX3Byb2JsZW1zIHNtcF9kYzE0ZWRhNwojZGVmaW5lIHBjaV9w
Y2lfcHJvYmxlbXMgX3NldF92ZXIocGNpX3BjaV9wcm9ibGVtcykKI2RlZmluZSBfX3Zlcl9wY2lf
cG9vbF9jcmVhdGUgc21wXzQxNTZhOGZkCiNkZWZpbmUgcGNpX3Bvb2xfY3JlYXRlIF9zZXRfdmVy
KHBjaV9wb29sX2NyZWF0ZSkKI2RlZmluZSBfX3Zlcl9wY2lfcG9vbF9kZXN0cm95IHNtcF8wMzMy
M2M3NQojZGVmaW5lIHBjaV9wb29sX2Rlc3Ryb3kgX3NldF92ZXIocGNpX3Bvb2xfZGVzdHJveSkK
I2RlZmluZSBfX3Zlcl9wY2lfcG9vbF9hbGxvYyBzbXBfNzg0NzcwY2IKI2RlZmluZSBwY2lfcG9v
bF9hbGxvYyBfc2V0X3ZlcihwY2lfcG9vbF9hbGxvYykKI2RlZmluZSBfX3Zlcl9wY2lfcG9vbF9m
cmVlIHNtcF82OTY1NGU3MwojZGVmaW5lIHBjaV9wb29sX2ZyZWUgX3NldF92ZXIocGNpX3Bvb2xf
ZnJlZSkKIyAxNzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9w
aG9uZWRldi52ZXIiIDEKI2RlZmluZSBfX3Zlcl9waG9uZV9yZWdpc3Rlcl9kZXZpY2Ugc21wX2Uy
MWIxMjQwCiNkZWZpbmUgcGhvbmVfcmVnaXN0ZXJfZGV2aWNlIF9zZXRfdmVyKHBob25lX3JlZ2lz
dGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9waG9uZV91bnJlZ2lzdGVyX2RldmljZSBzbXBfNmVi
MzFhNTcKI2RlZmluZSBwaG9uZV91bnJlZ2lzdGVyX2RldmljZSBfc2V0X3ZlcihwaG9uZV91bnJl
Z2lzdGVyX2RldmljZSkKIyAxNzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bW9kdWxlcy9wbS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wbV9yZWdpc3RlciBzbXBfOGRiYWIxMWMK
I2RlZmluZSBwbV9yZWdpc3RlciBfc2V0X3ZlcihwbV9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9w
bV91bnJlZ2lzdGVyIHNtcF9lY2NkMWU2NAojZGVmaW5lIHBtX3VucmVnaXN0ZXIgX3NldF92ZXIo
cG1fdW5yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9wbV91bnJlZ2lzdGVyX2FsbCBzbXBfOWMwYmE1
YjIKI2RlZmluZSBwbV91bnJlZ2lzdGVyX2FsbCBfc2V0X3ZlcihwbV91bnJlZ2lzdGVyX2FsbCkK
I2RlZmluZSBfX3Zlcl9wbV9zZW5kIHNtcF8zOGZmM2VkMQojZGVmaW5lIHBtX3NlbmQgX3NldF92
ZXIocG1fc2VuZCkKI2RlZmluZSBfX3Zlcl9wbV9zZW5kX2FsbCBzbXBfZWNiZjljYWQKI2RlZmlu
ZSBwbV9zZW5kX2FsbCBfc2V0X3ZlcihwbV9zZW5kX2FsbCkKI2RlZmluZSBfX3Zlcl9wbV9maW5k
IHNtcF8xYTU1NzgwYQojZGVmaW5lIHBtX2ZpbmQgX3NldF92ZXIocG1fZmluZCkKI2RlZmluZSBf
X3Zlcl9wbV9hY3RpdmUgc21wX2ViZDM4N2Y2CiNkZWZpbmUgcG1fYWN0aXZlIF9zZXRfdmVyKHBt
X2FjdGl2ZSkKIyAxNzMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVy
c2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxl
cy9wcHBfYXN5bmMudmVyIiAxCiNkZWZpbmUgX192ZXJfcHBwX2NyYzE2X3RhYmxlIHNtcF9iN2Ey
YzdlNgojZGVmaW5lIHBwcF9jcmMxNl90YWJsZSBfc2V0X3ZlcihwcHBfY3JjMTZfdGFibGUpCiMg
MTc0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcHBwX2dlbmVy
aWMudmVyIiAxCiNkZWZpbmUgX192ZXJfcHBwX3JlZ2lzdGVyX2NoYW5uZWwgc21wXzk3ZTljZTM0
CiNkZWZpbmUgcHBwX3JlZ2lzdGVyX2NoYW5uZWwgX3NldF92ZXIocHBwX3JlZ2lzdGVyX2NoYW5u
ZWwpCiNkZWZpbmUgX192ZXJfcHBwX3VucmVnaXN0ZXJfY2hhbm5lbCBzbXBfNTg3NjU4NjcKI2Rl
ZmluZSBwcHBfdW5yZWdpc3Rlcl9jaGFubmVsIF9zZXRfdmVyKHBwcF91bnJlZ2lzdGVyX2NoYW5u
ZWwpCiNkZWZpbmUgX192ZXJfcHBwX2NoYW5uZWxfaW5kZXggc21wXzg2MGEyOTlmCiNkZWZpbmUg
cHBwX2NoYW5uZWxfaW5kZXggX3NldF92ZXIocHBwX2NoYW5uZWxfaW5kZXgpCiNkZWZpbmUgX192
ZXJfcHBwX3VuaXRfbnVtYmVyIHNtcF9mNGVkMmRkNgojZGVmaW5lIHBwcF91bml0X251bWJlciBf
c2V0X3ZlcihwcHBfdW5pdF9udW1iZXIpCiNkZWZpbmUgX192ZXJfcHBwX2lucHV0IHNtcF9hM2Jj
YzJjNAojZGVmaW5lIHBwcF9pbnB1dCBfc2V0X3ZlcihwcHBfaW5wdXQpCiNkZWZpbmUgX192ZXJf
cHBwX2lucHV0X2Vycm9yIHNtcF8zMWIxYmJjYwojZGVmaW5lIHBwcF9pbnB1dF9lcnJvciBfc2V0
X3ZlcihwcHBfaW5wdXRfZXJyb3IpCiNkZWZpbmUgX192ZXJfcHBwX291dHB1dF93YWtldXAgc21w
XzNmMjI5YjQxCiNkZWZpbmUgcHBwX291dHB1dF93YWtldXAgX3NldF92ZXIocHBwX291dHB1dF93
YWtldXApCiNkZWZpbmUgX192ZXJfcHBwX3JlZ2lzdGVyX2NvbXByZXNzb3Igc21wXzk2ODJlNzMz
CiNkZWZpbmUgcHBwX3JlZ2lzdGVyX2NvbXByZXNzb3IgX3NldF92ZXIocHBwX3JlZ2lzdGVyX2Nv
bXByZXNzb3IpCiNkZWZpbmUgX192ZXJfcHBwX3VucmVnaXN0ZXJfY29tcHJlc3NvciBzbXBfYTFi
OTI4ZGYKI2RlZmluZSBwcHBfdW5yZWdpc3Rlcl9jb21wcmVzc29yIF9zZXRfdmVyKHBwcF91bnJl
Z2lzdGVyX2NvbXByZXNzb3IpCiNkZWZpbmUgX192ZXJfYWxsX3BwcF91bml0cyBzbXBfODcxYmEy
NjIKI2RlZmluZSBhbGxfcHBwX3VuaXRzIF9zZXRfdmVyKGFsbF9wcHBfdW5pdHMpCiNkZWZpbmUg
X192ZXJfYWxsX2NoYW5uZWxzIHNtcF81MzJlYTIzZgojZGVmaW5lIGFsbF9jaGFubmVscyBfc2V0
X3ZlcihhbGxfY2hhbm5lbHMpCiMgMTc1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21vZHVsZXMvcHBwb3gudmVyIiAxCiNkZWZpbmUgX192ZXJfcmVnaXN0ZXJfcHBwb3hfcHJv
dG8gc21wXzI0NDdhN2YyCiNkZWZpbmUgcmVnaXN0ZXJfcHBwb3hfcHJvdG8gX3NldF92ZXIocmVn
aXN0ZXJfcHBwb3hfcHJvdG8pCiNkZWZpbmUgX192ZXJfdW5yZWdpc3Rlcl9wcHBveF9wcm90byBz
bXBfZTBmZjdhMTgKI2RlZmluZSB1bnJlZ2lzdGVyX3BwcG94X3Byb3RvIF9zZXRfdmVyKHVucmVn
aXN0ZXJfcHBwb3hfcHJvdG8pCiNkZWZpbmUgX192ZXJfcHBwb3hfdW5iaW5kX3NvY2sgc21wX2Iy
ODc0YWM1CiNkZWZpbmUgcHBwb3hfdW5iaW5kX3NvY2sgX3NldF92ZXIocHBwb3hfdW5iaW5kX3Nv
Y2spCiMgMTc2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcHJv
Yy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1fcHJvY19yb290IHNtcF85MWMwYmZiMgojZGVmaW5l
IGF0bV9wcm9jX3Jvb3QgX3NldF92ZXIoYXRtX3Byb2Nfcm9vdCkKIyAxNzcgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9wcm9maWxlLnZlciIgMQojIDE3OCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3BzbmFwLnZlciIgMQojZGVm
aW5lIF9fdmVyX3JlZ2lzdGVyX3NuYXBfY2xpZW50IHNtcF9jMzRhZGZhMAojZGVmaW5lIHJlZ2lz
dGVyX3NuYXBfY2xpZW50IF9zZXRfdmVyKHJlZ2lzdGVyX3NuYXBfY2xpZW50KQojZGVmaW5lIF9f
dmVyX3VucmVnaXN0ZXJfc25hcF9jbGllbnQgc21wXzlhYmVmYzUwCiNkZWZpbmUgdW5yZWdpc3Rl
cl9zbmFwX2NsaWVudCBfc2V0X3Zlcih1bnJlZ2lzdGVyX3NuYXBfY2xpZW50KQojIDE3OSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3B0eS52ZXIiIDEKIyAxODAg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9wd2MtdW5jb21wcmVz
cy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9wd2NfcmVnaXN0ZXJfZGVjb21wcmVzc29yIHNtcF9iOTZj
MmQzYgojZGVmaW5lIHB3Y19yZWdpc3Rlcl9kZWNvbXByZXNzb3IgX3NldF92ZXIocHdjX3JlZ2lz
dGVyX2RlY29tcHJlc3NvcikKI2RlZmluZSBfX3Zlcl9wd2NfdW5yZWdpc3Rlcl9kZWNvbXByZXNz
b3Igc21wX2Y5YTk2OWI1CiNkZWZpbmUgcHdjX3VucmVnaXN0ZXJfZGVjb21wcmVzc29yIF9zZXRf
dmVyKHB3Y191bnJlZ2lzdGVyX2RlY29tcHJlc3NvcikKIyAxODEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yMTI4X2Rydi52ZXIiIDEKIyAxODIgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yYW5kb20udmVyIiAxCiNkZWZpbmUg
X192ZXJfYWRkX2tleWJvYXJkX3JhbmRvbW5lc3Mgc21wXzc0Nzg5YzE5CiNkZWZpbmUgYWRkX2tl
eWJvYXJkX3JhbmRvbW5lc3MgX3NldF92ZXIoYWRkX2tleWJvYXJkX3JhbmRvbW5lc3MpCiNkZWZp
bmUgX192ZXJfYWRkX21vdXNlX3JhbmRvbW5lc3Mgc21wXzcwNTA3Yzk3CiNkZWZpbmUgYWRkX21v
dXNlX3JhbmRvbW5lc3MgX3NldF92ZXIoYWRkX21vdXNlX3JhbmRvbW5lc3MpCiNkZWZpbmUgX192
ZXJfYWRkX2ludGVycnVwdF9yYW5kb21uZXNzIHNtcF8xNmRmYmYzNgojZGVmaW5lIGFkZF9pbnRl
cnJ1cHRfcmFuZG9tbmVzcyBfc2V0X3ZlcihhZGRfaW50ZXJydXB0X3JhbmRvbW5lc3MpCiNkZWZp
bmUgX192ZXJfYWRkX2Jsa2Rldl9yYW5kb21uZXNzIHNtcF9kOWNiMjFkMQojZGVmaW5lIGFkZF9i
bGtkZXZfcmFuZG9tbmVzcyBfc2V0X3ZlcihhZGRfYmxrZGV2X3JhbmRvbW5lc3MpCiNkZWZpbmUg
X192ZXJfYmF0Y2hfZW50cm9weV9zdG9yZSBzbXBfYWJjOWU1ZWEKI2RlZmluZSBiYXRjaF9lbnRy
b3B5X3N0b3JlIF9zZXRfdmVyKGJhdGNoX2VudHJvcHlfc3RvcmUpCiMgMTgzICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvcmF3LnZlciIgMQojZGVmaW5lIF9fdmVy
X2F0bV9pbml0X2FhbDUgc21wX2JiZDEwOGM0CiNkZWZpbmUgYXRtX2luaXRfYWFsNSBfc2V0X3Zl
cihhdG1faW5pdF9hYWw1KQojIDE4NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R1bGVzL3JheV9jcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yYXlfZGV2X2lvY3RsIHNtcF8w
YWZjNzQ3NQojZGVmaW5lIHJheV9kZXZfaW9jdGwgX3NldF92ZXIocmF5X2Rldl9pb2N0bCkKI2Rl
ZmluZSBfX3Zlcl9yYXlfcnggc21wX2EzN2YyYTVjCiNkZWZpbmUgcmF5X3J4IF9zZXRfdmVyKHJh
eV9yeCkKIyAxODUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9y
ZWRib290LnZlciIgMQojZGVmaW5lIF9fdmVyX3BhcnNlX3JlZGJvb3RfcGFydGl0aW9ucyBzbXBf
ZDdkYWZjYTcKI2RlZmluZSBwYXJzZV9yZWRib290X3BhcnRpdGlvbnMgX3NldF92ZXIocGFyc2Vf
cmVkYm9vdF9wYXJ0aXRpb25zKQojIDE4NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9tb2R1bGVzL3Jlc291cmNlcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9hdG1fZGV2X3JlZ2lz
dGVyIHNtcF9lNGFkNjJmZAojZGVmaW5lIGF0bV9kZXZfcmVnaXN0ZXIgX3NldF92ZXIoYXRtX2Rl
dl9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9hdG1fZGV2X2RlcmVnaXN0ZXIgc21wXzI1YzlkMWQw
CiNkZWZpbmUgYXRtX2Rldl9kZXJlZ2lzdGVyIF9zZXRfdmVyKGF0bV9kZXZfZGVyZWdpc3RlcikK
I2RlZmluZSBfX3Zlcl9hdG1fZmluZF9kZXYgc21wXzFiZWJmNTZiCiNkZWZpbmUgYXRtX2ZpbmRf
ZGV2IF9zZXRfdmVyKGF0bV9maW5kX2RldikKI2RlZmluZSBfX3Zlcl9zaHV0ZG93bl9hdG1fZGV2
IHNtcF83ODc1YzVhOQojZGVmaW5lIHNodXRkb3duX2F0bV9kZXYgX3NldF92ZXIoc2h1dGRvd25f
YXRtX2RldikKI2RlZmluZSBfX3Zlcl9iaW5kX3ZjYyBzbXBfZmRlNThiYjMKI2RlZmluZSBiaW5k
X3ZjYyBfc2V0X3ZlcihiaW5kX3ZjYykKIyAxODcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvbW9kdWxlcy9yb290LnZlciIgMQojZGVmaW5lIF9fdmVyX3Byb2Nfc3lzX3Jvb3Qg
c21wXzdhMzAyY2VmCiNkZWZpbmUgcHJvY19zeXNfcm9vdCBfc2V0X3Zlcihwcm9jX3N5c19yb290
KQojZGVmaW5lIF9fdmVyX3Byb2Nfc3ltbGluayBzbXBfZWQxODIwOWIKI2RlZmluZSBwcm9jX3N5
bWxpbmsgX3NldF92ZXIocHJvY19zeW1saW5rKQojZGVmaW5lIF9fdmVyX3Byb2NfbWtub2Qgc21w
XzEyODJiYzcyCiNkZWZpbmUgcHJvY19ta25vZCBfc2V0X3Zlcihwcm9jX21rbm9kKQojZGVmaW5l
IF9fdmVyX3Byb2NfbWtkaXIgc21wXzQ2YTYzODcwCiNkZWZpbmUgcHJvY19ta2RpciBfc2V0X3Zl
cihwcm9jX21rZGlyKQojZGVmaW5lIF9fdmVyX2NyZWF0ZV9wcm9jX2VudHJ5IHNtcF9iOWRkZmNk
ZAojZGVmaW5lIGNyZWF0ZV9wcm9jX2VudHJ5IF9zZXRfdmVyKGNyZWF0ZV9wcm9jX2VudHJ5KQoj
ZGVmaW5lIF9fdmVyX3JlbW92ZV9wcm9jX2VudHJ5IHNtcF9hNjU4YjFlNgojZGVmaW5lIHJlbW92
ZV9wcm9jX2VudHJ5IF9zZXRfdmVyKHJlbW92ZV9wcm9jX2VudHJ5KQojZGVmaW5lIF9fdmVyX3By
b2Nfcm9vdCBzbXBfYmVhYWY3N2IKI2RlZmluZSBwcm9jX3Jvb3QgX3NldF92ZXIocHJvY19yb290
KQojZGVmaW5lIF9fdmVyX3Byb2Nfcm9vdF9mcyBzbXBfODg0NWM2Y2UKI2RlZmluZSBwcm9jX3Jv
b3RfZnMgX3NldF92ZXIocHJvY19yb290X2ZzKQojZGVmaW5lIF9fdmVyX3Byb2NfbmV0IHNtcF83
MGRhNTg1ZQojZGVmaW5lIHByb2NfbmV0IF9zZXRfdmVyKHByb2NfbmV0KQojZGVmaW5lIF9fdmVy
X3Byb2NfYnVzIHNtcF82OTZiZDI1MQojZGVmaW5lIHByb2NfYnVzIF9zZXRfdmVyKHByb2NfYnVz
KQojZGVmaW5lIF9fdmVyX3Byb2Nfcm9vdF9kcml2ZXIgc21wXzYzOTYyOTBhCiNkZWZpbmUgcHJv
Y19yb290X2RyaXZlciBfc2V0X3Zlcihwcm9jX3Jvb3RfZHJpdmVyKQojIDE4OCAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3J0Yy52ZXIiIDEKIyAxODkgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yd3NlbS1zcGlubG9jay52ZXIi
IDEKI2RlZmluZSBfX3Zlcl9pbml0X3J3c2VtIHNtcF9hNTNkOTMxYQojZGVmaW5lIGluaXRfcndz
ZW0gX3NldF92ZXIoaW5pdF9yd3NlbSkKI2RlZmluZSBfX3Zlcl9fX2Rvd25fcmVhZCBzbXBfMWNm
NTc3NzIKI2RlZmluZSBfX2Rvd25fcmVhZCBfc2V0X3ZlcihfX2Rvd25fcmVhZCkKI2RlZmluZSBf
X3Zlcl9fX2Rvd25fd3JpdGUgc21wX2M5YjFmOThhCiNkZWZpbmUgX19kb3duX3dyaXRlIF9zZXRf
dmVyKF9fZG93bl93cml0ZSkKI2RlZmluZSBfX3Zlcl9fX3VwX3JlYWQgc21wX2U5NTJmYzI5CiNk
ZWZpbmUgX191cF9yZWFkIF9zZXRfdmVyKF9fdXBfcmVhZCkKI2RlZmluZSBfX3Zlcl9fX3VwX3dy
aXRlIHNtcF8zNWZkZDY3ZAojZGVmaW5lIF9fdXBfd3JpdGUgX3NldF92ZXIoX191cF93cml0ZSkK
IyAxOTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9yd3NlbS52
ZXIiIDEKIyAxOTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lv
bnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9z
Yl9jb21tb24udmVyIiAxCiNkZWZpbmUgX192ZXJfc2JfZHNwX2luaXQgc21wXzQyMmM1ZGJlCiNk
ZWZpbmUgc2JfZHNwX2luaXQgX3NldF92ZXIoc2JfZHNwX2luaXQpCiNkZWZpbmUgX192ZXJfc2Jf
ZHNwX2RldGVjdCBzbXBfZDhhMjczMWMKI2RlZmluZSBzYl9kc3BfZGV0ZWN0IF9zZXRfdmVyKHNi
X2RzcF9kZXRlY3QpCiNkZWZpbmUgX192ZXJfc2JfZHNwX3VubG9hZCBzbXBfYzQ4ODQ5NjkKI2Rl
ZmluZSBzYl9kc3BfdW5sb2FkIF9zZXRfdmVyKHNiX2RzcF91bmxvYWQpCiNkZWZpbmUgX192ZXJf
c2JfZHNwX2Rpc2FibGVfbWlkaSBzbXBfNzMyZjM4ZGYKI2RlZmluZSBzYl9kc3BfZGlzYWJsZV9t
aWRpIF9zZXRfdmVyKHNiX2RzcF9kaXNhYmxlX21pZGkpCiNkZWZpbmUgX192ZXJfc2JfYmVfcXVp
ZXQgc21wXzQyNDI0MTA5CiNkZWZpbmUgc2JfYmVfcXVpZXQgX3NldF92ZXIoc2JfYmVfcXVpZXQp
CiNkZWZpbmUgX192ZXJfcHJvYmVfc2JtcHUgc21wX2QxZmE2OGMyCiNkZWZpbmUgcHJvYmVfc2Jt
cHUgX3NldF92ZXIocHJvYmVfc2JtcHUpCiNkZWZpbmUgX192ZXJfdW5sb2FkX3NibXB1IHNtcF83
NGFmZDY5YwojZGVmaW5lIHVubG9hZF9zYm1wdSBfc2V0X3Zlcih1bmxvYWRfc2JtcHUpCiNkZWZp
bmUgX192ZXJfc213X2ZyZWUgc21wXzQ1MGY5YWVhCiNkZWZpbmUgc213X2ZyZWUgX3NldF92ZXIo
c213X2ZyZWUpCiMgMTkyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZl
cnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVs
ZXMvc2NzaV9zeW1zLnZlciIgMQojZGVmaW5lIF9fdmVyX3Njc2lfcmVnaXN0ZXJfbW9kdWxlIHNt
cF9mYTIwYjdiMAojZGVmaW5lIHNjc2lfcmVnaXN0ZXJfbW9kdWxlIF9zZXRfdmVyKHNjc2lfcmVn
aXN0ZXJfbW9kdWxlKQojZGVmaW5lIF9fdmVyX3Njc2lfdW5yZWdpc3Rlcl9tb2R1bGUgc21wXzgx
ZDg1YTc1CiNkZWZpbmUgc2NzaV91bnJlZ2lzdGVyX21vZHVsZSBfc2V0X3ZlcihzY3NpX3VucmVn
aXN0ZXJfbW9kdWxlKQojZGVmaW5lIF9fdmVyX3Njc2lfZnJlZSBzbXBfNDc1ZGRkZmEKI2RlZmlu
ZSBzY3NpX2ZyZWUgX3NldF92ZXIoc2NzaV9mcmVlKQojZGVmaW5lIF9fdmVyX3Njc2lfbWFsbG9j
IHNtcF8xY2NlM2Y5MgojZGVmaW5lIHNjc2lfbWFsbG9jIF9zZXRfdmVyKHNjc2lfbWFsbG9jKQoj
ZGVmaW5lIF9fdmVyX3Njc2lfcmVnaXN0ZXIgc21wXzllMThkZDQ4CiNkZWZpbmUgc2NzaV9yZWdp
c3RlciBfc2V0X3ZlcihzY3NpX3JlZ2lzdGVyKQojZGVmaW5lIF9fdmVyX3Njc2lfdW5yZWdpc3Rl
ciBzbXBfZmNhOTVmMDEKI2RlZmluZSBzY3NpX3VucmVnaXN0ZXIgX3NldF92ZXIoc2NzaV91bnJl
Z2lzdGVyKQojZGVmaW5lIF9fdmVyX3Njc2ljYW1fYmlvc19wYXJhbSBzbXBfMDMxY2VhYWUKI2Rl
ZmluZSBzY3NpY2FtX2Jpb3NfcGFyYW0gX3NldF92ZXIoc2NzaWNhbV9iaW9zX3BhcmFtKQojZGVm
aW5lIF9fdmVyX3Njc2lfcGFydHNpemUgc21wXzNiZWFhZmYwCiNkZWZpbmUgc2NzaV9wYXJ0c2l6
ZSBfc2V0X3ZlcihzY3NpX3BhcnRzaXplKQojZGVmaW5lIF9fdmVyX3Njc2lfYWxsb2NhdGVfZGV2
aWNlIHNtcF9hODRkYzhlNAojZGVmaW5lIHNjc2lfYWxsb2NhdGVfZGV2aWNlIF9zZXRfdmVyKHNj
c2lfYWxsb2NhdGVfZGV2aWNlKQojZGVmaW5lIF9fdmVyX3Njc2lfZG9fY21kIHNtcF9lMTVkNDMw
ZQojZGVmaW5lIHNjc2lfZG9fY21kIF9zZXRfdmVyKHNjc2lfZG9fY21kKQojZGVmaW5lIF9fdmVy
X3Njc2lfY29tbWFuZF9zaXplIHNtcF85YjA1ZWE1YwojZGVmaW5lIHNjc2lfY29tbWFuZF9zaXpl
IF9zZXRfdmVyKHNjc2lfY29tbWFuZF9zaXplKQojZGVmaW5lIF9fdmVyX3Njc2lfaW9jdGwgc21w
Xzc3YzdjYWIzCiNkZWZpbmUgc2NzaV9pb2N0bCBfc2V0X3ZlcihzY3NpX2lvY3RsKQojZGVmaW5l
IF9fdmVyX3ByaW50X2NvbW1hbmQgc21wXzUyODIzMmU3CiNkZWZpbmUgcHJpbnRfY29tbWFuZCBf
c2V0X3ZlcihwcmludF9jb21tYW5kKQojZGVmaW5lIF9fdmVyX3ByaW50X3NlbnNlIHNtcF84ZjIw
MTY5NQojZGVmaW5lIHByaW50X3NlbnNlIF9zZXRfdmVyKHByaW50X3NlbnNlKQojZGVmaW5lIF9f
dmVyX3ByaW50X3JlcV9zZW5zZSBzbXBfMjdhMTViOGUKI2RlZmluZSBwcmludF9yZXFfc2Vuc2Ug
X3NldF92ZXIocHJpbnRfcmVxX3NlbnNlKQojZGVmaW5lIF9fdmVyX3ByaW50X21zZyBzbXBfOGNj
NWFlMDcKI2RlZmluZSBwcmludF9tc2cgX3NldF92ZXIocHJpbnRfbXNnKQojZGVmaW5lIF9fdmVy
X3ByaW50X3N0YXR1cyBzbXBfZTRjMDhjY2QKI2RlZmluZSBwcmludF9zdGF0dXMgX3NldF92ZXIo
cHJpbnRfc3RhdHVzKQojZGVmaW5lIF9fdmVyX3Njc2lfZG1hX2ZyZWVfc2VjdG9ycyBzbXBfZTkz
MGIzY2IKI2RlZmluZSBzY3NpX2RtYV9mcmVlX3NlY3RvcnMgX3NldF92ZXIoc2NzaV9kbWFfZnJl
ZV9zZWN0b3JzKQojZGVmaW5lIF9fdmVyX2tlcm5lbF9zY3NpX2lvY3RsIHNtcF82NGJjM2RmNQoj
ZGVmaW5lIGtlcm5lbF9zY3NpX2lvY3RsIF9zZXRfdmVyKGtlcm5lbF9zY3NpX2lvY3RsKQojZGVm
aW5lIF9fdmVyX3Njc2lfbmVlZF9pc2FfYnVmZmVyIHNtcF9lMjJiY2E5OAojZGVmaW5lIHNjc2lf
bmVlZF9pc2FfYnVmZmVyIF9zZXRfdmVyKHNjc2lfbmVlZF9pc2FfYnVmZmVyKQojZGVmaW5lIF9f
dmVyX3Njc2lfcmVsZWFzZV9jb21tYW5kIHNtcF8wZDI1NWUzNwojZGVmaW5lIHNjc2lfcmVsZWFz
ZV9jb21tYW5kIF9zZXRfdmVyKHNjc2lfcmVsZWFzZV9jb21tYW5kKQojZGVmaW5lIF9fdmVyX3By
aW50X1Njc2lfQ21uZCBzbXBfNTc0ZTJkOGEKI2RlZmluZSBwcmludF9TY3NpX0NtbmQgX3NldF92
ZXIocHJpbnRfU2NzaV9DbW5kKQojZGVmaW5lIF9fdmVyX3Njc2lfYmxvY2tfd2hlbl9wcm9jZXNz
aW5nX2Vycm9ycyBzbXBfMzdiOTdjZjIKI2RlZmluZSBzY3NpX2Jsb2NrX3doZW5fcHJvY2Vzc2lu
Z19lcnJvcnMgX3NldF92ZXIoc2NzaV9ibG9ja193aGVuX3Byb2Nlc3NpbmdfZXJyb3JzKQojZGVm
aW5lIF9fdmVyX3Njc2lfbWFya19ob3N0X3Jlc2V0IHNtcF9jOTE0NGQ2OQojZGVmaW5lIHNjc2lf
bWFya19ob3N0X3Jlc2V0IF9zZXRfdmVyKHNjc2lfbWFya19ob3N0X3Jlc2V0KQojZGVmaW5lIF9f
dmVyX3Njc2lfaW9jdGxfc2VuZF9jb21tYW5kIHNtcF9iYjI1ZDY4MAojZGVmaW5lIHNjc2lfaW9j
dGxfc2VuZF9jb21tYW5kIF9zZXRfdmVyKHNjc2lfaW9jdGxfc2VuZF9jb21tYW5kKQojZGVmaW5l
IF9fdmVyX3Njc2lfbG9nZ2luZ19sZXZlbCBzbXBfYWYzZGQ3ZGMKI2RlZmluZSBzY3NpX2xvZ2dp
bmdfbGV2ZWwgX3NldF92ZXIoc2NzaV9sb2dnaW5nX2xldmVsKQojZGVmaW5lIF9fdmVyX3Njc2lf
YWxsb2NhdGVfcmVxdWVzdCBzbXBfNjZkOWI0ZWUKI2RlZmluZSBzY3NpX2FsbG9jYXRlX3JlcXVl
c3QgX3NldF92ZXIoc2NzaV9hbGxvY2F0ZV9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX3Njc2lfcmVs
ZWFzZV9yZXF1ZXN0IHNtcF85YTJhNzY1ZQojZGVmaW5lIHNjc2lfcmVsZWFzZV9yZXF1ZXN0IF9z
ZXRfdmVyKHNjc2lfcmVsZWFzZV9yZXF1ZXN0KQojZGVmaW5lIF9fdmVyX3Njc2lfd2FpdF9yZXEg
c21wXzhkODNlZDk3CiNkZWZpbmUgc2NzaV93YWl0X3JlcSBfc2V0X3ZlcihzY3NpX3dhaXRfcmVx
KQojZGVmaW5lIF9fdmVyX3Njc2lfZG9fcmVxIHNtcF9hNDlhZDVmYQojZGVmaW5lIHNjc2lfZG9f
cmVxIF9zZXRfdmVyKHNjc2lfZG9fcmVxKQojZGVmaW5lIF9fdmVyX3Njc2lfcmVwb3J0X2J1c19y
ZXNldCBzbXBfODY2ZGRjNWEKI2RlZmluZSBzY3NpX3JlcG9ydF9idXNfcmVzZXQgX3NldF92ZXIo
c2NzaV9yZXBvcnRfYnVzX3Jlc2V0KQojZGVmaW5lIF9fdmVyX3Njc2lfYmxvY2tfcmVxdWVzdHMg
c21wXzVlZjA4ODk4CiNkZWZpbmUgc2NzaV9ibG9ja19yZXF1ZXN0cyBfc2V0X3ZlcihzY3NpX2Js
b2NrX3JlcXVlc3RzKQojZGVmaW5lIF9fdmVyX3Njc2lfdW5ibG9ja19yZXF1ZXN0cyBzbXBfMTQ0
MWRkNTEKI2RlZmluZSBzY3NpX3VuYmxvY2tfcmVxdWVzdHMgX3NldF92ZXIoc2NzaV91bmJsb2Nr
X3JlcXVlc3RzKQojZGVmaW5lIF9fdmVyX3Njc2lfZ2V0X2hvc3RfZGV2IHNtcF8xZmU1YTM5ZAoj
ZGVmaW5lIHNjc2lfZ2V0X2hvc3RfZGV2IF9zZXRfdmVyKHNjc2lfZ2V0X2hvc3RfZGV2KQojZGVm
aW5lIF9fdmVyX3Njc2lfZnJlZV9ob3N0X2RldiBzbXBfYWRlMDNlM2YKI2RlZmluZSBzY3NpX2Zy
ZWVfaG9zdF9kZXYgX3NldF92ZXIoc2NzaV9mcmVlX2hvc3RfZGV2KQojZGVmaW5lIF9fdmVyX3Nj
c2lfc2xlZXAgc21wXzM1OTYyYmY4CiNkZWZpbmUgc2NzaV9zbGVlcCBfc2V0X3ZlcihzY3NpX3Ns
ZWVwKQojZGVmaW5lIF9fdmVyX3Byb2NfcHJpbnRfc2NzaWRldmljZSBzbXBfOTdkYTdjNTAKI2Rl
ZmluZSBwcm9jX3ByaW50X3Njc2lkZXZpY2UgX3NldF92ZXIocHJvY19wcmludF9zY3NpZGV2aWNl
KQojZGVmaW5lIF9fdmVyX3Byb2Nfc2NzaSBzbXBfNzA5NjcwMzQKI2RlZmluZSBwcm9jX3Njc2kg
X3NldF92ZXIocHJvY19zY3NpKQojZGVmaW5lIF9fdmVyX3Njc2lfaW9fY29tcGxldGlvbiBzbXBf
MzlhN2Y2MjkKI2RlZmluZSBzY3NpX2lvX2NvbXBsZXRpb24gX3NldF92ZXIoc2NzaV9pb19jb21w
bGV0aW9uKQojZGVmaW5lIF9fdmVyX3Njc2lfZW5kX3JlcXVlc3Qgc21wXzE1NTNjNzlhCiNkZWZp
bmUgc2NzaV9lbmRfcmVxdWVzdCBfc2V0X3ZlcihzY3NpX2VuZF9yZXF1ZXN0KQojZGVmaW5lIF9f
dmVyX3Njc2lfcmVnaXN0ZXJfYmxvY2tlZF9ob3N0IHNtcF8xZjczNzEwNQojZGVmaW5lIHNjc2lf
cmVnaXN0ZXJfYmxvY2tlZF9ob3N0IF9zZXRfdmVyKHNjc2lfcmVnaXN0ZXJfYmxvY2tlZF9ob3N0
KQojZGVmaW5lIF9fdmVyX3Njc2lfZGVyZWdpc3Rlcl9ibG9ja2VkX2hvc3Qgc21wXzc2NmJkNDVi
CiNkZWZpbmUgc2NzaV9kZXJlZ2lzdGVyX2Jsb2NrZWRfaG9zdCBfc2V0X3ZlcihzY3NpX2RlcmVn
aXN0ZXJfYmxvY2tlZF9ob3N0KQojZGVmaW5lIF9fdmVyX3Njc2lfaG9zdGxpc3Qgc21wXzZlZTA3
MzhmCiNkZWZpbmUgc2NzaV9ob3N0bGlzdCBfc2V0X3ZlcihzY3NpX2hvc3RsaXN0KQojZGVmaW5l
IF9fdmVyX3Njc2lfaG9zdHMgc21wXzY0MmY0MTZjCiNkZWZpbmUgc2NzaV9ob3N0cyBfc2V0X3Zl
cihzY3NpX2hvc3RzKQojZGVmaW5lIF9fdmVyX3Njc2lfZGV2aWNlbGlzdCBzbXBfMWI0YTk5MGIK
I2RlZmluZSBzY3NpX2RldmljZWxpc3QgX3NldF92ZXIoc2NzaV9kZXZpY2VsaXN0KQojZGVmaW5l
IF9fdmVyX3Njc2lfZGV2aWNlX3R5cGVzIHNtcF9kNTRiNzRhYwojZGVmaW5lIHNjc2lfZGV2aWNl
X3R5cGVzIF9zZXRfdmVyKHNjc2lfZGV2aWNlX3R5cGVzKQojZGVmaW5lIF9fdmVyX3Njc2lfYWRk
X3RpbWVyIHNtcF8zZWZiODZjZQojZGVmaW5lIHNjc2lfYWRkX3RpbWVyIF9zZXRfdmVyKHNjc2lf
YWRkX3RpbWVyKQojZGVmaW5lIF9fdmVyX3Njc2lfZGVsZXRlX3RpbWVyIHNtcF81NGUyOWM3Ngoj
ZGVmaW5lIHNjc2lfZGVsZXRlX3RpbWVyIF9zZXRfdmVyKHNjc2lfZGVsZXRlX3RpbWVyKQojIDE5
MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NkbGFkcnYudmVy
IiAxCiNkZWZpbmUgX192ZXJfc2RsYV9zZXR1cCBzbXBfZTNhZDA2ZDkKI2RlZmluZSBzZGxhX3Nl
dHVwIF9zZXRfdmVyKHNkbGFfc2V0dXApCiNkZWZpbmUgX192ZXJfc2RsYV9kb3duIHNtcF8wNzYy
N2UzMwojZGVmaW5lIHNkbGFfZG93biBfc2V0X3ZlcihzZGxhX2Rvd24pCiNkZWZpbmUgX192ZXJf
c2RsYV9tYXBtZW0gc21wXzM2YmI3ODE4CiNkZWZpbmUgc2RsYV9tYXBtZW0gX3NldF92ZXIoc2Rs
YV9tYXBtZW0pCiNkZWZpbmUgX192ZXJfc2RsYV9pbnRlbiBzbXBfMWM0NDM4MzQKI2RlZmluZSBz
ZGxhX2ludGVuIF9zZXRfdmVyKHNkbGFfaW50ZW4pCiNkZWZpbmUgX192ZXJfc2RsYV9pbnRkZSBz
bXBfOTU0NzUyN2YKI2RlZmluZSBzZGxhX2ludGRlIF9zZXRfdmVyKHNkbGFfaW50ZGUpCiNkZWZp
bmUgX192ZXJfc2RsYV9pbnRhY2sgc21wXzQwYjkyODlmCiNkZWZpbmUgc2RsYV9pbnRhY2sgX3Nl
dF92ZXIoc2RsYV9pbnRhY2spCiNkZWZpbmUgX192ZXJfUzUxNF9pbnRhY2sgc21wXzljYjU1MGQz
CiNkZWZpbmUgUzUxNF9pbnRhY2sgX3NldF92ZXIoUzUxNF9pbnRhY2spCiNkZWZpbmUgX192ZXJf
cmVhZF9TNTE0X2ludF9zdGF0IHNtcF9kOGFjNzVhNgojZGVmaW5lIHJlYWRfUzUxNF9pbnRfc3Rh
dCBfc2V0X3ZlcihyZWFkX1M1MTRfaW50X3N0YXQpCiNkZWZpbmUgX192ZXJfc2RsYV9pbnRyIHNt
cF9hYmQzNWQ3MgojZGVmaW5lIHNkbGFfaW50ciBfc2V0X3ZlcihzZGxhX2ludHIpCiNkZWZpbmUg
X192ZXJfc2RsYV9leGVjIHNtcF83NjMwYjgyOQojZGVmaW5lIHNkbGFfZXhlYyBfc2V0X3Zlcihz
ZGxhX2V4ZWMpCiNkZWZpbmUgX192ZXJfc2RsYV9wZWVrIHNtcF8zOWFjMWVmZQojZGVmaW5lIHNk
bGFfcGVlayBfc2V0X3ZlcihzZGxhX3BlZWspCiNkZWZpbmUgX192ZXJfc2RsYV9wb2tlIHNtcF9h
NzA5Y2M1YQojZGVmaW5lIHNkbGFfcG9rZSBfc2V0X3ZlcihzZGxhX3Bva2UpCiNkZWZpbmUgX192
ZXJfd2FucGlwZV9od19wcm9iZSBzbXBfYTNlOThlYTAKI2RlZmluZSB3YW5waXBlX2h3X3Byb2Jl
IF9zZXRfdmVyKHdhbnBpcGVfaHdfcHJvYmUpCiMgMTk0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvc2VsZWN0aW9uLnZlciIgMQojZGVmaW5lIF9fdmVyX3NldF9z
ZWxlY3Rpb24gc21wXzhlMDBiYmJlCiNkZWZpbmUgc2V0X3NlbGVjdGlvbiBfc2V0X3ZlcihzZXRf
c2VsZWN0aW9uKQojZGVmaW5lIF9fdmVyX3Bhc3RlX3NlbGVjdGlvbiBzbXBfNmRiMDdiNGUKI2Rl
ZmluZSBwYXN0ZV9zZWxlY3Rpb24gX3NldF92ZXIocGFzdGVfc2VsZWN0aW9uKQojIDE5NSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NlcXVlbmNlcl9zeW1zLnZl
ciIgMQojZGVmaW5lIF9fdmVyX25vdGVfdG9fZnJlcSBzbXBfNWQ5ODZmYzkKI2RlZmluZSBub3Rl
X3RvX2ZyZXEgX3NldF92ZXIobm90ZV90b19mcmVxKQojZGVmaW5lIF9fdmVyX2NvbXB1dGVfZmlu
ZXR1bmUgc21wXzA0Yzg3ZWM4CiNkZWZpbmUgY29tcHV0ZV9maW5ldHVuZSBfc2V0X3Zlcihjb21w
dXRlX2ZpbmV0dW5lKQojZGVmaW5lIF9fdmVyX3NlcV9jb3B5X3RvX2lucHV0IHNtcF83Njc5ZWU3
NgojZGVmaW5lIHNlcV9jb3B5X3RvX2lucHV0IF9zZXRfdmVyKHNlcV9jb3B5X3RvX2lucHV0KQoj
ZGVmaW5lIF9fdmVyX3NlcV9pbnB1dF9ldmVudCBzbXBfMTdiYTIzMWQKI2RlZmluZSBzZXFfaW5w
dXRfZXZlbnQgX3NldF92ZXIoc2VxX2lucHV0X2V2ZW50KQojZGVmaW5lIF9fdmVyX3NlcXVlbmNl
cl9pbml0IHNtcF9mNzhmNjM2MwojZGVmaW5lIHNlcXVlbmNlcl9pbml0IF9zZXRfdmVyKHNlcXVl
bmNlcl9pbml0KQojZGVmaW5lIF9fdmVyX3NlcXVlbmNlcl90aW1lciBzbXBfOTBiZDk3MTQKI2Rl
ZmluZSBzZXF1ZW5jZXJfdGltZXIgX3NldF92ZXIoc2VxdWVuY2VyX3RpbWVyKQojZGVmaW5lIF9f
dmVyX3NvdW5kX3RpbWVyX2luaXQgc21wXzIxNjFkNWU4CiNkZWZpbmUgc291bmRfdGltZXJfaW5p
dCBfc2V0X3Zlcihzb3VuZF90aW1lcl9pbml0KQojZGVmaW5lIF9fdmVyX3NvdW5kX3RpbWVyX2lu
dGVycnVwdCBzbXBfZTI2NzVhNzkKI2RlZmluZSBzb3VuZF90aW1lcl9pbnRlcnJ1cHQgX3NldF92
ZXIoc291bmRfdGltZXJfaW50ZXJydXB0KQojZGVmaW5lIF9fdmVyX3NvdW5kX3RpbWVyX3N5bmNp
bnRlcnZhbCBzbXBfZmE2ODcxYmUKI2RlZmluZSBzb3VuZF90aW1lcl9zeW5jaW50ZXJ2YWwgX3Nl
dF92ZXIoc291bmRfdGltZXJfc3luY2ludGVydmFsKQojZGVmaW5lIF9fdmVyX3JlcHJvZ3JhbV90
aW1lciBzbXBfYzY4YjU2OGUKI2RlZmluZSByZXByb2dyYW1fdGltZXIgX3NldF92ZXIocmVwcm9n
cmFtX3RpbWVyKQojZGVmaW5lIF9fdmVyX2NlbnRfdHVuaW5nIHNtcF8wM2NlN2ZmNwojZGVmaW5l
IGNlbnRfdHVuaW5nIF9zZXRfdmVyKGNlbnRfdHVuaW5nKQojZGVmaW5lIF9fdmVyX3NlbWl0b25l
X3R1bmluZyBzbXBfOGI4NGFlYjEKI2RlZmluZSBzZW1pdG9uZV90dW5pbmcgX3NldF92ZXIoc2Vt
aXRvbmVfdHVuaW5nKQojIDE5NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
b2R1bGVzL3NlcmlhbC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9yZWdpc3Rlcl9zZXJpYWwgc21wX2Ex
OGRjMmIxCiNkZWZpbmUgcmVnaXN0ZXJfc2VyaWFsIF9zZXRfdmVyKHJlZ2lzdGVyX3NlcmlhbCkK
I2RlZmluZSBfX3Zlcl91bnJlZ2lzdGVyX3NlcmlhbCBzbXBfY2U4YTNlNjUKI2RlZmluZSB1bnJl
Z2lzdGVyX3NlcmlhbCBfc2V0X3Zlcih1bnJlZ2lzdGVyX3NlcmlhbCkKIyAxOTcgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zZXJpby52ZXIiIDEKI2RlZmluZSBf
X3Zlcl9zZXJpb19yZWdpc3Rlcl9wb3J0IHNtcF9jMDQyNGEwMgojZGVmaW5lIHNlcmlvX3JlZ2lz
dGVyX3BvcnQgX3NldF92ZXIoc2VyaW9fcmVnaXN0ZXJfcG9ydCkKI2RlZmluZSBfX3Zlcl9zZXJp
b191bnJlZ2lzdGVyX3BvcnQgc21wXzliNWFiMzc3CiNkZWZpbmUgc2VyaW9fdW5yZWdpc3Rlcl9w
b3J0IF9zZXRfdmVyKHNlcmlvX3VucmVnaXN0ZXJfcG9ydCkKI2RlZmluZSBfX3Zlcl9zZXJpb19y
ZWdpc3Rlcl9kZXZpY2Ugc21wX2JlOTFhOTMxCiNkZWZpbmUgc2VyaW9fcmVnaXN0ZXJfZGV2aWNl
IF9zZXRfdmVyKHNlcmlvX3JlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9zZXJpb191bnJl
Z2lzdGVyX2RldmljZSBzbXBfNTUxZWI5NGUKI2RlZmluZSBzZXJpb191bnJlZ2lzdGVyX2Rldmlj
ZSBfc2V0X3ZlcihzZXJpb191bnJlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl9zZXJpb19v
cGVuIHNtcF8xN2FiZmIyZgojZGVmaW5lIHNlcmlvX29wZW4gX3NldF92ZXIoc2VyaW9fb3BlbikK
I2RlZmluZSBfX3Zlcl9zZXJpb19jbG9zZSBzbXBfMzkzZDcwYzMKI2RlZmluZSBzZXJpb19jbG9z
ZSBfc2V0X3ZlcihzZXJpb19jbG9zZSkKI2RlZmluZSBfX3Zlcl9zZXJpb19yZXNjYW4gc21wXzIx
MzNiMTdiCiNkZWZpbmUgc2VyaW9fcmVzY2FuIF9zZXRfdmVyKHNlcmlvX3Jlc2NhbikKIyAxOTgg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zZ2ljb25zLnZlciIg
MQojIDE5OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NobWVt
LnZlciIgMQojZGVmaW5lIF9fdmVyX3NobWVtX2ZpbGVfc2V0dXAgc21wXzRiMDQwNWY4CiNkZWZp
bmUgc2htZW1fZmlsZV9zZXR1cCBfc2V0X3ZlcihzaG1lbV9maWxlX3NldHVwKQojIDIwMCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NobWlxLnZlciIgMQojIDIw
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NpZ25hbC52ZXIi
IDEKI2RlZmluZSBfX3Zlcl9kZXF1ZXVlX3NpZ25hbCBzbXBfNjcyYTgxMGEKI2RlZmluZSBkZXF1
ZXVlX3NpZ25hbCBfc2V0X3ZlcihkZXF1ZXVlX3NpZ25hbCkKI2RlZmluZSBfX3Zlcl9mbHVzaF9z
aWduYWxzIHNtcF9mZWFmOTE3ZAojZGVmaW5lIGZsdXNoX3NpZ25hbHMgX3NldF92ZXIoZmx1c2hf
c2lnbmFscykKI2RlZmluZSBfX3Zlcl9mb3JjZV9zaWcgc21wXzY1NWNjYmFhCiNkZWZpbmUgZm9y
Y2Vfc2lnIF9zZXRfdmVyKGZvcmNlX3NpZykKI2RlZmluZSBfX3Zlcl9mb3JjZV9zaWdfaW5mbyBz
bXBfY2MyYjQyZTEKI2RlZmluZSBmb3JjZV9zaWdfaW5mbyBfc2V0X3Zlcihmb3JjZV9zaWdfaW5m
bykKI2RlZmluZSBfX3Zlcl9raWxsX3BnIHNtcF8zOGYyOTcxOQojZGVmaW5lIGtpbGxfcGcgX3Nl
dF92ZXIoa2lsbF9wZykKI2RlZmluZSBfX3Zlcl9raWxsX3BnX2luZm8gc21wX2FjN2M4MDA2CiNk
ZWZpbmUga2lsbF9wZ19pbmZvIF9zZXRfdmVyKGtpbGxfcGdfaW5mbykKI2RlZmluZSBfX3Zlcl9r
aWxsX3Byb2Mgc21wXzkzMmRhNjdlCiNkZWZpbmUga2lsbF9wcm9jIF9zZXRfdmVyKGtpbGxfcHJv
YykKI2RlZmluZSBfX3Zlcl9raWxsX3Byb2NfaW5mbyBzbXBfY2UxN2U3OTMKI2RlZmluZSBraWxs
X3Byb2NfaW5mbyBfc2V0X3ZlcihraWxsX3Byb2NfaW5mbykKI2RlZmluZSBfX3Zlcl9raWxsX3Ns
IHNtcF9mYmExMmZkMAojZGVmaW5lIGtpbGxfc2wgX3NldF92ZXIoa2lsbF9zbCkKI2RlZmluZSBf
X3Zlcl9raWxsX3NsX2luZm8gc21wXzc3MTMwOTFkCiNkZWZpbmUga2lsbF9zbF9pbmZvIF9zZXRf
dmVyKGtpbGxfc2xfaW5mbykKI2RlZmluZSBfX3Zlcl9ub3RpZnlfcGFyZW50IHNtcF9lNzZhZjE0
MwojZGVmaW5lIG5vdGlmeV9wYXJlbnQgX3NldF92ZXIobm90aWZ5X3BhcmVudCkKI2RlZmluZSBf
X3Zlcl9yZWNhbGNfc2lncGVuZGluZyBzbXBfNzY5ODdiMWYKI2RlZmluZSByZWNhbGNfc2lncGVu
ZGluZyBfc2V0X3ZlcihyZWNhbGNfc2lncGVuZGluZykKI2RlZmluZSBfX3Zlcl9zZW5kX3NpZyBz
bXBfOTMzNmRkMDEKI2RlZmluZSBzZW5kX3NpZyBfc2V0X3ZlcihzZW5kX3NpZykKI2RlZmluZSBf
X3Zlcl9zZW5kX3NpZ19pbmZvIHNtcF9lYmU4NTJhOAojZGVmaW5lIHNlbmRfc2lnX2luZm8gX3Nl
dF92ZXIoc2VuZF9zaWdfaW5mbykKI2RlZmluZSBfX3Zlcl9ibG9ja19hbGxfc2lnbmFscyBzbXBf
NGVkZDcyZjcKI2RlZmluZSBibG9ja19hbGxfc2lnbmFscyBfc2V0X3ZlcihibG9ja19hbGxfc2ln
bmFscykKI2RlZmluZSBfX3Zlcl91bmJsb2NrX2FsbF9zaWduYWxzIHNtcF8wYTI0ODdlMAojZGVm
aW5lIHVuYmxvY2tfYWxsX3NpZ25hbHMgX3NldF92ZXIodW5ibG9ja19hbGxfc2lnbmFscykKIyAy
MDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zbGhjLnZlciIg
MQojZGVmaW5lIF9fdmVyX3NsaGNfaW5pdCBzbXBfMmUwZTkyN2YKI2RlZmluZSBzbGhjX2luaXQg
X3NldF92ZXIoc2xoY19pbml0KQojZGVmaW5lIF9fdmVyX3NsaGNfZnJlZSBzbXBfMjg5NGNmYjAK
I2RlZmluZSBzbGhjX2ZyZWUgX3NldF92ZXIoc2xoY19mcmVlKQojZGVmaW5lIF9fdmVyX3NsaGNf
cmVtZW1iZXIgc21wXzBiYzU1ODY4CiNkZWZpbmUgc2xoY19yZW1lbWJlciBfc2V0X3ZlcihzbGhj
X3JlbWVtYmVyKQojZGVmaW5lIF9fdmVyX3NsaGNfY29tcHJlc3Mgc21wXzc2MTM1ZTZjCiNkZWZp
bmUgc2xoY19jb21wcmVzcyBfc2V0X3ZlcihzbGhjX2NvbXByZXNzKQojZGVmaW5lIF9fdmVyX3Ns
aGNfdW5jb21wcmVzcyBzbXBfM2JjMTMxOWUKI2RlZmluZSBzbGhjX3VuY29tcHJlc3MgX3NldF92
ZXIoc2xoY191bmNvbXByZXNzKQojZGVmaW5lIF9fdmVyX3NsaGNfdG9zcyBzbXBfZjg5ZTM0NTUK
I2RlZmluZSBzbGhjX3Rvc3MgX3NldF92ZXIoc2xoY190b3NzKQojIDIwMyAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NvbnlwaS52ZXIiIDEKI2RlZmluZSBfX3Zl
cl9zb255cGlfY2FtZXJhX2NvbW1hbmQgc21wX2ZkNjU5OTFhCiNkZWZpbmUgc29ueXBpX2NhbWVy
YV9jb21tYW5kIF9zZXRfdmVyKHNvbnlwaV9jYW1lcmFfY29tbWFuZCkKIyAyMDQgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zb3VuZF9jb3JlLnZlciIgMQojZGVm
aW5lIF9fdmVyX3JlZ2lzdGVyX3NvdW5kX3NwZWNpYWwgc21wX2MyMzA0NjFiCiNkZWZpbmUgcmVn
aXN0ZXJfc291bmRfc3BlY2lhbCBfc2V0X3ZlcihyZWdpc3Rlcl9zb3VuZF9zcGVjaWFsKQojZGVm
aW5lIF9fdmVyX3JlZ2lzdGVyX3NvdW5kX21peGVyIHNtcF80OTIxNThkZAojZGVmaW5lIHJlZ2lz
dGVyX3NvdW5kX21peGVyIF9zZXRfdmVyKHJlZ2lzdGVyX3NvdW5kX21peGVyKQojZGVmaW5lIF9f
dmVyX3JlZ2lzdGVyX3NvdW5kX21pZGkgc21wXzhmYzBkMWNiCiNkZWZpbmUgcmVnaXN0ZXJfc291
bmRfbWlkaSBfc2V0X3ZlcihyZWdpc3Rlcl9zb3VuZF9taWRpKQojZGVmaW5lIF9fdmVyX3JlZ2lz
dGVyX3NvdW5kX2RzcCBzbXBfMmY2MDEwN2EKI2RlZmluZSByZWdpc3Rlcl9zb3VuZF9kc3AgX3Nl
dF92ZXIocmVnaXN0ZXJfc291bmRfZHNwKQojZGVmaW5lIF9fdmVyX3JlZ2lzdGVyX3NvdW5kX3N5
bnRoIHNtcF83OGI3ZTcyMAojZGVmaW5lIHJlZ2lzdGVyX3NvdW5kX3N5bnRoIF9zZXRfdmVyKHJl
Z2lzdGVyX3NvdW5kX3N5bnRoKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRfc3BlY2lh
bCBzbXBfOTljOTVmYTUKI2RlZmluZSB1bnJlZ2lzdGVyX3NvdW5kX3NwZWNpYWwgX3NldF92ZXIo
dW5yZWdpc3Rlcl9zb3VuZF9zcGVjaWFsKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRf
bWl4ZXIgc21wXzdhZmM5ZDhhCiNkZWZpbmUgdW5yZWdpc3Rlcl9zb3VuZF9taXhlciBfc2V0X3Zl
cih1bnJlZ2lzdGVyX3NvdW5kX21peGVyKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRf
bWlkaSBzbXBfZmRhYjZkZTMKI2RlZmluZSB1bnJlZ2lzdGVyX3NvdW5kX21pZGkgX3NldF92ZXIo
dW5yZWdpc3Rlcl9zb3VuZF9taWRpKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRfZHNw
IHNtcF9jZDA4M2IxMAojZGVmaW5lIHVucmVnaXN0ZXJfc291bmRfZHNwIF9zZXRfdmVyKHVucmVn
aXN0ZXJfc291bmRfZHNwKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJfc291bmRfc3ludGggc21w
X2RmMDMxMDhhCiNkZWZpbmUgdW5yZWdpc3Rlcl9zb3VuZF9zeW50aCBfc2V0X3Zlcih1bnJlZ2lz
dGVyX3NvdW5kX3N5bnRoKQojZGVmaW5lIF9fdmVyX21vZF9maXJtd2FyZV9sb2FkIHNtcF8zOWUz
ZGQyMwojZGVmaW5lIG1vZF9maXJtd2FyZV9sb2FkIF9zZXRfdmVyKG1vZF9maXJtd2FyZV9sb2Fk
KQojIDIwNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3NvdW5k
X3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJfbWl4ZXJfZGV2cyBzbXBfNGJlYWYwYjMKI2RlZmlu
ZSBtaXhlcl9kZXZzIF9zZXRfdmVyKG1peGVyX2RldnMpCiNkZWZpbmUgX192ZXJfYXVkaW9fZGV2
cyBzbXBfN2IzYzg1OTMKI2RlZmluZSBhdWRpb19kZXZzIF9zZXRfdmVyKGF1ZGlvX2RldnMpCiNk
ZWZpbmUgX192ZXJfbnVtX21peGVycyBzbXBfOWQ4NDViMTgKI2RlZmluZSBudW1fbWl4ZXJzIF9z
ZXRfdmVyKG51bV9taXhlcnMpCiNkZWZpbmUgX192ZXJfbnVtX2F1ZGlvZGV2cyBzbXBfNGNkMDFi
ZGQKI2RlZmluZSBudW1fYXVkaW9kZXZzIF9zZXRfdmVyKG51bV9hdWRpb2RldnMpCiNkZWZpbmUg
X192ZXJfbWlkaV9kZXZzIHNtcF84YTY3MzZiNgojZGVmaW5lIG1pZGlfZGV2cyBfc2V0X3Zlciht
aWRpX2RldnMpCiNkZWZpbmUgX192ZXJfbnVtX21pZGlzIHNtcF9hMWVhZTdjZgojZGVmaW5lIG51
bV9taWRpcyBfc2V0X3ZlcihudW1fbWlkaXMpCiNkZWZpbmUgX192ZXJfc3ludGhfZGV2cyBzbXBf
MTI2MDc3NGIKI2RlZmluZSBzeW50aF9kZXZzIF9zZXRfdmVyKHN5bnRoX2RldnMpCiNkZWZpbmUg
X192ZXJfbnVtX3N5bnRocyBzbXBfYmYwN2NhNmUKI2RlZmluZSBudW1fc3ludGhzIF9zZXRfdmVy
KG51bV9zeW50aHMpCiNkZWZpbmUgX192ZXJfc291bmRfdGltZXJfZGV2cyBzbXBfMWMzMGQ2ZmEK
I2RlZmluZSBzb3VuZF90aW1lcl9kZXZzIF9zZXRfdmVyKHNvdW5kX3RpbWVyX2RldnMpCiNkZWZp
bmUgX192ZXJfbnVtX3NvdW5kX3RpbWVycyBzbXBfOThlZGIxZTAKI2RlZmluZSBudW1fc291bmRf
dGltZXJzIF9zZXRfdmVyKG51bV9zb3VuZF90aW1lcnMpCiNkZWZpbmUgX192ZXJfc291bmRfaW5z
dGFsbF9hdWRpb2RydiBzbXBfNGNjYjNkMzcKI2RlZmluZSBzb3VuZF9pbnN0YWxsX2F1ZGlvZHJ2
IF9zZXRfdmVyKHNvdW5kX2luc3RhbGxfYXVkaW9kcnYpCiNkZWZpbmUgX192ZXJfc291bmRfaW5z
dGFsbF9taXhlciBzbXBfMjBhZTZlMGIKI2RlZmluZSBzb3VuZF9pbnN0YWxsX21peGVyIF9zZXRf
dmVyKHNvdW5kX2luc3RhbGxfbWl4ZXIpCiNkZWZpbmUgX192ZXJfc291bmRfYWxsb2NfZG1hIHNt
cF85YTk1NzMzZgojZGVmaW5lIHNvdW5kX2FsbG9jX2RtYSBfc2V0X3Zlcihzb3VuZF9hbGxvY19k
bWEpCiNkZWZpbmUgX192ZXJfc291bmRfZnJlZV9kbWEgc21wXzM5NGNiMDg4CiNkZWZpbmUgc291
bmRfZnJlZV9kbWEgX3NldF92ZXIoc291bmRfZnJlZV9kbWEpCiNkZWZpbmUgX192ZXJfc291bmRf
b3Blbl9kbWEgc21wX2NjNGI4Nzk3CiNkZWZpbmUgc291bmRfb3Blbl9kbWEgX3NldF92ZXIoc291
bmRfb3Blbl9kbWEpCiNkZWZpbmUgX192ZXJfc291bmRfY2xvc2VfZG1hIHNtcF80MThmNWZiZQoj
ZGVmaW5lIHNvdW5kX2Nsb3NlX2RtYSBfc2V0X3Zlcihzb3VuZF9jbG9zZV9kbWEpCiNkZWZpbmUg
X192ZXJfc291bmRfYWxsb2NfYXVkaW9kZXYgc21wXzUwMzU3MzZjCiNkZWZpbmUgc291bmRfYWxs
b2NfYXVkaW9kZXYgX3NldF92ZXIoc291bmRfYWxsb2NfYXVkaW9kZXYpCiNkZWZpbmUgX192ZXJf
c291bmRfYWxsb2NfbWlkaWRldiBzbXBfYmE0MTNmODcKI2RlZmluZSBzb3VuZF9hbGxvY19taWRp
ZGV2IF9zZXRfdmVyKHNvdW5kX2FsbG9jX21pZGlkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfYWxs
b2NfbWl4ZXJkZXYgc21wXzFiM2RmM2NmCiNkZWZpbmUgc291bmRfYWxsb2NfbWl4ZXJkZXYgX3Nl
dF92ZXIoc291bmRfYWxsb2NfbWl4ZXJkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfYWxsb2NfdGlt
ZXJkZXYgc21wXzUxZTM1NGIyCiNkZWZpbmUgc291bmRfYWxsb2NfdGltZXJkZXYgX3NldF92ZXIo
c291bmRfYWxsb2NfdGltZXJkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfYWxsb2Nfc3ludGhkZXYg
c21wX2M3NDhkMTA5CiNkZWZpbmUgc291bmRfYWxsb2Nfc3ludGhkZXYgX3NldF92ZXIoc291bmRf
YWxsb2Nfc3ludGhkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX2F1ZGlvZGV2IHNtcF9h
OTQ4NzUxZQojZGVmaW5lIHNvdW5kX3VubG9hZF9hdWRpb2RldiBfc2V0X3Zlcihzb3VuZF91bmxv
YWRfYXVkaW9kZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX21pZGlkZXYgc21wX2E2YmI0
MTRjCiNkZWZpbmUgc291bmRfdW5sb2FkX21pZGlkZXYgX3NldF92ZXIoc291bmRfdW5sb2FkX21p
ZGlkZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX21peGVyZGV2IHNtcF9hNTFjOTEzYgoj
ZGVmaW5lIHNvdW5kX3VubG9hZF9taXhlcmRldiBfc2V0X3Zlcihzb3VuZF91bmxvYWRfbWl4ZXJk
ZXYpCiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX3RpbWVyZGV2IHNtcF9hNDFlYWQ1ZgojZGVm
aW5lIHNvdW5kX3VubG9hZF90aW1lcmRldiBfc2V0X3Zlcihzb3VuZF91bmxvYWRfdGltZXJkZXYp
CiNkZWZpbmUgX192ZXJfc291bmRfdW5sb2FkX3N5bnRoZGV2IHNtcF8wNjMzOTgxNQojZGVmaW5l
IHNvdW5kX3VubG9hZF9zeW50aGRldiBfc2V0X3Zlcihzb3VuZF91bmxvYWRfc3ludGhkZXYpCiNk
ZWZpbmUgX192ZXJfbG9hZF9taXhlcl92b2x1bWVzIHNtcF9hMWQ1ZjA0ZgojZGVmaW5lIGxvYWRf
bWl4ZXJfdm9sdW1lcyBfc2V0X3Zlcihsb2FkX21peGVyX3ZvbHVtZXMpCiNkZWZpbmUgX192ZXJf
Y29uZl9wcmludGYgc21wXzBmMjgwMDM1CiNkZWZpbmUgY29uZl9wcmludGYgX3NldF92ZXIoY29u
Zl9wcmludGYpCiNkZWZpbmUgX192ZXJfY29uZl9wcmludGYyIHNtcF83YmRmMDkwNwojZGVmaW5l
IGNvbmZfcHJpbnRmMiBfc2V0X3Zlcihjb25mX3ByaW50ZjIpCiMgMjA2ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvc3VuaS52ZXIiIDEKI2RlZmluZSBfX3Zlcl9z
dW5pX2luaXQgc21wXzc4MTI0NTE1CiNkZWZpbmUgc3VuaV9pbml0IF9zZXRfdmVyKHN1bmlfaW5p
dCkKIyAyMDcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zdW5y
cGNfc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl9ycGNfYWxsb2NhdGUgc21wXzBjZDFjOTg5CiNk
ZWZpbmUgcnBjX2FsbG9jYXRlIF9zZXRfdmVyKHJwY19hbGxvY2F0ZSkKI2RlZmluZSBfX3Zlcl9y
cGNfZnJlZSBzbXBfZjlkMTE2NGMKI2RlZmluZSBycGNfZnJlZSBfc2V0X3ZlcihycGNfZnJlZSkK
I2RlZmluZSBfX3Zlcl9ycGNfZXhlY3V0ZSBzbXBfNGU5MDA3NjkKI2RlZmluZSBycGNfZXhlY3V0
ZSBfc2V0X3ZlcihycGNfZXhlY3V0ZSkKI2RlZmluZSBfX3Zlcl9ycGNfaW5pdF90YXNrIHNtcF8w
Y2M5YTY2NwojZGVmaW5lIHJwY19pbml0X3Rhc2sgX3NldF92ZXIocnBjX2luaXRfdGFzaykKI2Rl
ZmluZSBfX3Zlcl9ycGNfc2xlZXBfb24gc21wX2UxOTVmNWI2CiNkZWZpbmUgcnBjX3NsZWVwX29u
IF9zZXRfdmVyKHJwY19zbGVlcF9vbikKI2RlZmluZSBfX3Zlcl9ycGNfd2FrZV91cF9uZXh0IHNt
cF8wMzg4ZWZiMAojZGVmaW5lIHJwY193YWtlX3VwX25leHQgX3NldF92ZXIocnBjX3dha2VfdXBf
bmV4dCkKI2RlZmluZSBfX3Zlcl9ycGNfd2FrZV91cF90YXNrIHNtcF83ZGIwYzZhMwojZGVmaW5l
IHJwY193YWtlX3VwX3Rhc2sgX3NldF92ZXIocnBjX3dha2VfdXBfdGFzaykKI2RlZmluZSBfX3Zl
cl9ycGNfbmV3X2NoaWxkIHNtcF80ZmRjYjY4YQojZGVmaW5lIHJwY19uZXdfY2hpbGQgX3NldF92
ZXIocnBjX25ld19jaGlsZCkKI2RlZmluZSBfX3Zlcl9ycGNfcnVuX2NoaWxkIHNtcF82OTFjNzUz
ZgojZGVmaW5lIHJwY19ydW5fY2hpbGQgX3NldF92ZXIocnBjX3J1bl9jaGlsZCkKI2RlZmluZSBf
X3Zlcl9ycGNpb2RfZG93biBzbXBfYmFiZjBmMzUKI2RlZmluZSBycGNpb2RfZG93biBfc2V0X3Zl
cihycGNpb2RfZG93bikKI2RlZmluZSBfX3Zlcl9ycGNpb2RfdXAgc21wXzM3NTQ5MmE0CiNkZWZp
bmUgcnBjaW9kX3VwIF9zZXRfdmVyKHJwY2lvZF91cCkKI2RlZmluZSBfX3Zlcl9ycGNfbmV3X3Rh
c2sgc21wXzMzNDliMDQxCiNkZWZpbmUgcnBjX25ld190YXNrIF9zZXRfdmVyKHJwY19uZXdfdGFz
aykKI2RlZmluZSBfX3Zlcl9ycGNfd2FrZV91cF9zdGF0dXMgc21wXzczNjQ0Y2I4CiNkZWZpbmUg
cnBjX3dha2VfdXBfc3RhdHVzIF9zZXRfdmVyKHJwY193YWtlX3VwX3N0YXR1cykKI2RlZmluZSBf
X3Zlcl9ycGNfcmVsZWFzZV90YXNrIHNtcF9iMDM3ODk0MAojZGVmaW5lIHJwY19yZWxlYXNlX3Rh
c2sgX3NldF92ZXIocnBjX3JlbGVhc2VfdGFzaykKI2RlZmluZSBfX3Zlcl9ycGNfY3JlYXRlX2Ns
aWVudCBzbXBfN2Y0MTQ2MTcKI2RlZmluZSBycGNfY3JlYXRlX2NsaWVudCBfc2V0X3ZlcihycGNf
Y3JlYXRlX2NsaWVudCkKI2RlZmluZSBfX3Zlcl9ycGNfZGVzdHJveV9jbGllbnQgc21wX2Q4NWQx
OTI3CiNkZWZpbmUgcnBjX2Rlc3Ryb3lfY2xpZW50IF9zZXRfdmVyKHJwY19kZXN0cm95X2NsaWVu
dCkKI2RlZmluZSBfX3Zlcl9ycGNfc2h1dGRvd25fY2xpZW50IHNtcF9lMmIxOWZmYQojZGVmaW5l
IHJwY19zaHV0ZG93bl9jbGllbnQgX3NldF92ZXIocnBjX3NodXRkb3duX2NsaWVudCkKI2RlZmlu
ZSBfX3Zlcl9ycGNfa2lsbGFsbF90YXNrcyBzbXBfMTZjODc1MTQKI2RlZmluZSBycGNfa2lsbGFs
bF90YXNrcyBfc2V0X3ZlcihycGNfa2lsbGFsbF90YXNrcykKI2RlZmluZSBfX3Zlcl9ycGNfY2Fs
bF9zeW5jIHNtcF80Nzk4YjNlMwojZGVmaW5lIHJwY19jYWxsX3N5bmMgX3NldF92ZXIocnBjX2Nh
bGxfc3luYykKI2RlZmluZSBfX3Zlcl9ycGNfY2FsbF9hc3luYyBzbXBfY2VkMjJmNzEKI2RlZmlu
ZSBycGNfY2FsbF9hc3luYyBfc2V0X3ZlcihycGNfY2FsbF9hc3luYykKI2RlZmluZSBfX3Zlcl9y
cGNfY2FsbF9zZXR1cCBzbXBfYzdiY2YxN2EKI2RlZmluZSBycGNfY2FsbF9zZXR1cCBfc2V0X3Zl
cihycGNfY2FsbF9zZXR1cCkKI2RlZmluZSBfX3Zlcl9ycGNfY2xudF9zaWdtYXNrIHNtcF82ZjI0
YzZlNAojZGVmaW5lIHJwY19jbG50X3NpZ21hc2sgX3NldF92ZXIocnBjX2NsbnRfc2lnbWFzaykK
I2RlZmluZSBfX3Zlcl9ycGNfY2xudF9zaWd1bm1hc2sgc21wXzgzM2MwZGM5CiNkZWZpbmUgcnBj
X2NsbnRfc2lndW5tYXNrIF9zZXRfdmVyKHJwY19jbG50X3NpZ3VubWFzaykKI2RlZmluZSBfX3Zl
cl9ycGNfZGVsYXkgc21wX2Q2YTRlMTQ4CiNkZWZpbmUgcnBjX2RlbGF5IF9zZXRfdmVyKHJwY19k
ZWxheSkKI2RlZmluZSBfX3Zlcl9ycGNfcmVzdGFydF9jYWxsIHNtcF81YTM0MzI4MwojZGVmaW5l
IHJwY19yZXN0YXJ0X2NhbGwgX3NldF92ZXIocnBjX3Jlc3RhcnRfY2FsbCkKI2RlZmluZSBfX3Zl
cl94cHJ0X2NyZWF0ZV9wcm90byBzbXBfMDFkYWVkN2QKI2RlZmluZSB4cHJ0X2NyZWF0ZV9wcm90
byBfc2V0X3Zlcih4cHJ0X2NyZWF0ZV9wcm90bykKI2RlZmluZSBfX3Zlcl94cHJ0X2Rlc3Ryb3kg
c21wXzA4NTEyM2JmCiNkZWZpbmUgeHBydF9kZXN0cm95IF9zZXRfdmVyKHhwcnRfZGVzdHJveSkK
I2RlZmluZSBfX3Zlcl94cHJ0X3NldF90aW1lb3V0IHNtcF82NGU0ODZjMgojZGVmaW5lIHhwcnRf
c2V0X3RpbWVvdXQgX3NldF92ZXIoeHBydF9zZXRfdGltZW91dCkKI2RlZmluZSBfX3Zlcl9ycGNh
dXRoX3JlZ2lzdGVyIHNtcF8yMjAxNTI3ZAojZGVmaW5lIHJwY2F1dGhfcmVnaXN0ZXIgX3NldF92
ZXIocnBjYXV0aF9yZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX3VucmVnaXN0ZXIgc21w
XzJmMTgwZDQzCiNkZWZpbmUgcnBjYXV0aF91bnJlZ2lzdGVyIF9zZXRfdmVyKHJwY2F1dGhfdW5y
ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2luaXRfY3JlZGNhY2hlIHNtcF8zYTQ0MWEw
NQojZGVmaW5lIHJwY2F1dGhfaW5pdF9jcmVkY2FjaGUgX3NldF92ZXIocnBjYXV0aF9pbml0X2Ny
ZWRjYWNoZSkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2ZyZWVfY3JlZGNhY2hlIHNtcF81NzYyNGYy
YQojZGVmaW5lIHJwY2F1dGhfZnJlZV9jcmVkY2FjaGUgX3NldF92ZXIocnBjYXV0aF9mcmVlX2Ny
ZWRjYWNoZSkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2luc2VydF9jcmVkY2FjaGUgc21wX2IyZDFj
OWM2CiNkZWZpbmUgcnBjYXV0aF9pbnNlcnRfY3JlZGNhY2hlIF9zZXRfdmVyKHJwY2F1dGhfaW5z
ZXJ0X2NyZWRjYWNoZSkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2xvb2t1cGNyZWQgc21wXzdhYzQ2
ZjdjCiNkZWZpbmUgcnBjYXV0aF9sb29rdXBjcmVkIF9zZXRfdmVyKHJwY2F1dGhfbG9va3VwY3Jl
ZCkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX2JpbmRjcmVkIHNtcF8wMmJiZDRjOQojZGVmaW5lIHJw
Y2F1dGhfYmluZGNyZWQgX3NldF92ZXIocnBjYXV0aF9iaW5kY3JlZCkKI2RlZmluZSBfX3Zlcl9y
cGNhdXRoX21hdGNoY3JlZCBzbXBfZWY1YjYwMWQKI2RlZmluZSBycGNhdXRoX21hdGNoY3JlZCBf
c2V0X3ZlcihycGNhdXRoX21hdGNoY3JlZCkKI2RlZmluZSBfX3Zlcl9ycGNhdXRoX3JlbGVhc2Vj
cmVkIHNtcF85MzBkNWYwMwojZGVmaW5lIHJwY2F1dGhfcmVsZWFzZWNyZWQgX3NldF92ZXIocnBj
YXV0aF9yZWxlYXNlY3JlZCkKI2RlZmluZSBfX3Zlcl9zdmNfY3JlYXRlIHNtcF9iZGE2ZTEyMAoj
ZGVmaW5lIHN2Y19jcmVhdGUgX3NldF92ZXIoc3ZjX2NyZWF0ZSkKI2RlZmluZSBfX3Zlcl9zdmNf
Y3JlYXRlX3RocmVhZCBzbXBfMWExMzM1ZTYKI2RlZmluZSBzdmNfY3JlYXRlX3RocmVhZCBfc2V0
X3ZlcihzdmNfY3JlYXRlX3RocmVhZCkKI2RlZmluZSBfX3Zlcl9zdmNfZXhpdF90aHJlYWQgc21w
XzRkOWZiNTNiCiNkZWZpbmUgc3ZjX2V4aXRfdGhyZWFkIF9zZXRfdmVyKHN2Y19leGl0X3RocmVh
ZCkKI2RlZmluZSBfX3Zlcl9zdmNfZGVzdHJveSBzbXBfZjE3N2IyMTUKI2RlZmluZSBzdmNfZGVz
dHJveSBfc2V0X3ZlcihzdmNfZGVzdHJveSkKI2RlZmluZSBfX3Zlcl9zdmNfZHJvcCBzbXBfNDQ5
ZTFmNGYKI2RlZmluZSBzdmNfZHJvcCBfc2V0X3ZlcihzdmNfZHJvcCkKI2RlZmluZSBfX3Zlcl9z
dmNfcHJvY2VzcyBzbXBfOGE1MWY3MWMKI2RlZmluZSBzdmNfcHJvY2VzcyBfc2V0X3ZlcihzdmNf
cHJvY2VzcykKI2RlZmluZSBfX3Zlcl9zdmNfcmVjdiBzbXBfMjc4MDU4ZWMKI2RlZmluZSBzdmNf
cmVjdiBfc2V0X3ZlcihzdmNfcmVjdikKI2RlZmluZSBfX3Zlcl9zdmNfd2FrZV91cCBzbXBfOTJl
OWM3NTIKI2RlZmluZSBzdmNfd2FrZV91cCBfc2V0X3ZlcihzdmNfd2FrZV91cCkKI2RlZmluZSBf
X3Zlcl9zdmNfbWFrZXNvY2sgc21wXzVlNDE4YWM3CiNkZWZpbmUgc3ZjX21ha2Vzb2NrIF9zZXRf
dmVyKHN2Y19tYWtlc29jaykKI2RlZmluZSBfX3Zlcl9ycGNfcHJvY19yZWdpc3RlciBzbXBfM2U0
ZjFlYzkKI2RlZmluZSBycGNfcHJvY19yZWdpc3RlciBfc2V0X3ZlcihycGNfcHJvY19yZWdpc3Rl
cikKI2RlZmluZSBfX3Zlcl9ycGNfcHJvY191bnJlZ2lzdGVyIHNtcF81YmQyNjAwMAojZGVmaW5l
IHJwY19wcm9jX3VucmVnaXN0ZXIgX3NldF92ZXIocnBjX3Byb2NfdW5yZWdpc3RlcikKI2RlZmlu
ZSBfX3Zlcl9ycGNfcHJvY19yZWFkIHNtcF84ZTIwZGUzNAojZGVmaW5lIHJwY19wcm9jX3JlYWQg
X3NldF92ZXIocnBjX3Byb2NfcmVhZCkKI2RlZmluZSBfX3Zlcl9zdmNfcHJvY19yZWdpc3RlciBz
bXBfZTI4ZWM4NGEKI2RlZmluZSBzdmNfcHJvY19yZWdpc3RlciBfc2V0X3ZlcihzdmNfcHJvY19y
ZWdpc3RlcikKI2RlZmluZSBfX3Zlcl9zdmNfcHJvY191bnJlZ2lzdGVyIHNtcF8xMmUyODBlMwoj
ZGVmaW5lIHN2Y19wcm9jX3VucmVnaXN0ZXIgX3NldF92ZXIoc3ZjX3Byb2NfdW5yZWdpc3RlcikK
I2RlZmluZSBfX3Zlcl9zdmNfcHJvY19yZWFkIHNtcF84NjZiNTJkMwojZGVmaW5lIHN2Y19wcm9j
X3JlYWQgX3NldF92ZXIoc3ZjX3Byb2NfcmVhZCkKI2RlZmluZSBfX3Zlcl94ZHJfZW5jb2RlX2Fy
cmF5IHNtcF80Nzk4N2FlZgojZGVmaW5lIHhkcl9lbmNvZGVfYXJyYXkgX3NldF92ZXIoeGRyX2Vu
Y29kZV9hcnJheSkKI2RlZmluZSBfX3Zlcl94ZHJfZW5jb2RlX3N0cmluZyBzbXBfM2Q5YmI0MmMK
I2RlZmluZSB4ZHJfZW5jb2RlX3N0cmluZyBfc2V0X3Zlcih4ZHJfZW5jb2RlX3N0cmluZykKI2Rl
ZmluZSBfX3Zlcl94ZHJfZGVjb2RlX3N0cmluZyBzbXBfZTdlMDhjYmQKI2RlZmluZSB4ZHJfZGVj
b2RlX3N0cmluZyBfc2V0X3Zlcih4ZHJfZGVjb2RlX3N0cmluZykKI2RlZmluZSBfX3Zlcl94ZHJf
ZGVjb2RlX25ldG9iaiBzbXBfMWI0MzFjOGYKI2RlZmluZSB4ZHJfZGVjb2RlX25ldG9iaiBfc2V0
X3Zlcih4ZHJfZGVjb2RlX25ldG9iaikKI2RlZmluZSBfX3Zlcl94ZHJfZW5jb2RlX25ldG9iaiBz
bXBfMDgzNjY3NDcKI2RlZmluZSB4ZHJfZW5jb2RlX25ldG9iaiBfc2V0X3Zlcih4ZHJfZW5jb2Rl
X25ldG9iaikKI2RlZmluZSBfX3Zlcl94ZHJfemVybyBzbXBfNjYwMmVmOTUKI2RlZmluZSB4ZHJf
emVybyBfc2V0X3Zlcih4ZHJfemVybykKI2RlZmluZSBfX3Zlcl94ZHJfb25lIHNtcF84M2NjYmYw
NwojZGVmaW5lIHhkcl9vbmUgX3NldF92ZXIoeGRyX29uZSkKI2RlZmluZSBfX3Zlcl94ZHJfdHdv
IHNtcF9lZGNjMWZlYwojZGVmaW5lIHhkcl90d28gX3NldF92ZXIoeGRyX3R3bykKI2RlZmluZSBf
X3Zlcl94ZHJfc2hpZnRfaW92ZWMgc21wXzk0OWQxMmE1CiNkZWZpbmUgeGRyX3NoaWZ0X2lvdmVj
IF9zZXRfdmVyKHhkcl9zaGlmdF9pb3ZlYykKI2RlZmluZSBfX3Zlcl94ZHJfemVyb19pb3ZlYyBz
bXBfYmRkNTliZWYKI2RlZmluZSB4ZHJfemVyb19pb3ZlYyBfc2V0X3Zlcih4ZHJfemVyb19pb3Zl
YykKI2RlZmluZSBfX3Zlcl9ycGNfc3VjY2VzcyBzbXBfYmZlZjU3YmYKI2RlZmluZSBycGNfc3Vj
Y2VzcyBfc2V0X3ZlcihycGNfc3VjY2VzcykKI2RlZmluZSBfX3Zlcl9ycGNfZ2FyYmFnZV9hcmdz
IHNtcF83NDcxODk1YwojZGVmaW5lIHJwY19nYXJiYWdlX2FyZ3MgX3NldF92ZXIocnBjX2dhcmJh
Z2VfYXJncykKI2RlZmluZSBfX3Zlcl9ycGNfc3lzdGVtX2VyciBzbXBfZDRiYjQwNTQKI2RlZmlu
ZSBycGNfc3lzdGVtX2VyciBfc2V0X3ZlcihycGNfc3lzdGVtX2VycikKI2RlZmluZSBfX3Zlcl9y
cGNfZGVidWcgc21wXzMxYTg5ZDU5CiNkZWZpbmUgcnBjX2RlYnVnIF9zZXRfdmVyKHJwY19kZWJ1
ZykKI2RlZmluZSBfX3Zlcl9uZnNfZGVidWcgc21wX2FmNWJmNmVmCiNkZWZpbmUgbmZzX2RlYnVn
IF9zZXRfdmVyKG5mc19kZWJ1ZykKI2RlZmluZSBfX3Zlcl9uZnNkX2RlYnVnIHNtcF9iZjlkMWI5
NgojZGVmaW5lIG5mc2RfZGVidWcgX3NldF92ZXIobmZzZF9kZWJ1ZykKI2RlZmluZSBfX3Zlcl9u
bG1fZGVidWcgc21wXzUzNDQ1ZjY4CiNkZWZpbmUgbmxtX2RlYnVnIF9zZXRfdmVyKG5sbV9kZWJ1
ZykKIyAyMDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zdS52
ZXIiIDEKI2RlZmluZSBfX3Zlcl9zdV9udW1fcG9ydHMgc21wXzg1MzE4MDRmCiNkZWZpbmUgc3Vf
bnVtX3BvcnRzIF9zZXRfdmVyKHN1X251bV9wb3J0cykKIyAyMDkgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zd2lvdGxiLnZlciIgMQojZGVmaW5lIF9fdmVyX3N3
aW90bGJfaW5pdCBzbXBfY2NkNzE4OTAKI2RlZmluZSBzd2lvdGxiX2luaXQgX3NldF92ZXIoc3dp
b3RsYl9pbml0KQojZGVmaW5lIF9fdmVyX3N3aW90bGJfbWFwX3NpbmdsZSBzbXBfNjA5NTUwMmQK
I2RlZmluZSBzd2lvdGxiX21hcF9zaW5nbGUgX3NldF92ZXIoc3dpb3RsYl9tYXBfc2luZ2xlKQoj
ZGVmaW5lIF9fdmVyX3N3aW90bGJfdW5tYXBfc2luZ2xlIHNtcF9lNjAzNTFhMwojZGVmaW5lIHN3
aW90bGJfdW5tYXBfc2luZ2xlIF9zZXRfdmVyKHN3aW90bGJfdW5tYXBfc2luZ2xlKQojZGVmaW5l
IF9fdmVyX3N3aW90bGJfbWFwX3NnIHNtcF9iYTEzMjA0MgojZGVmaW5lIHN3aW90bGJfbWFwX3Nn
IF9zZXRfdmVyKHN3aW90bGJfbWFwX3NnKQojZGVmaW5lIF9fdmVyX3N3aW90bGJfdW5tYXBfc2cg
c21wXzA5NTJmZmM1CiNkZWZpbmUgc3dpb3RsYl91bm1hcF9zZyBfc2V0X3Zlcihzd2lvdGxiX3Vu
bWFwX3NnKQojZGVmaW5lIF9fdmVyX3N3aW90bGJfc3luY19zaW5nbGUgc21wXzc5MmMzMTFmCiNk
ZWZpbmUgc3dpb3RsYl9zeW5jX3NpbmdsZSBfc2V0X3Zlcihzd2lvdGxiX3N5bmNfc2luZ2xlKQoj
ZGVmaW5lIF9fdmVyX3N3aW90bGJfc3luY19zZyBzbXBfNzMzYzczODMKI2RlZmluZSBzd2lvdGxi
X3N5bmNfc2cgX3NldF92ZXIoc3dpb3RsYl9zeW5jX3NnKQojZGVmaW5lIF9fdmVyX3N3aW90bGJf
ZG1hX2FkZHJlc3Mgc21wX2QzOTUzMWVmCiNkZWZpbmUgc3dpb3RsYl9kbWFfYWRkcmVzcyBfc2V0
X3Zlcihzd2lvdGxiX2RtYV9hZGRyZXNzKQojZGVmaW5lIF9fdmVyX3N3aW90bGJfYWxsb2NfY29u
c2lzdGVudCBzbXBfMDFmNmQwNjEKI2RlZmluZSBzd2lvdGxiX2FsbG9jX2NvbnNpc3RlbnQgX3Nl
dF92ZXIoc3dpb3RsYl9hbGxvY19jb25zaXN0ZW50KQojZGVmaW5lIF9fdmVyX3N3aW90bGJfZnJl
ZV9jb25zaXN0ZW50IHNtcF9jOTA1ZWYzOQojZGVmaW5lIHN3aW90bGJfZnJlZV9jb25zaXN0ZW50
IF9zZXRfdmVyKHN3aW90bGJfZnJlZV9jb25zaXN0ZW50KQojIDIxMCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3N5bXMudmVyIiAxCiNkZWZpbmUgX192ZXJfaGNp
X3JlZ2lzdGVyX2RldiBzbXBfYzgxOWMwMDkKI2RlZmluZSBoY2lfcmVnaXN0ZXJfZGV2IF9zZXRf
dmVyKGhjaV9yZWdpc3Rlcl9kZXYpCiNkZWZpbmUgX192ZXJfaGNpX3VucmVnaXN0ZXJfZGV2IHNt
cF9hMTAxNTg3NwojZGVmaW5lIGhjaV91bnJlZ2lzdGVyX2RldiBfc2V0X3ZlcihoY2lfdW5yZWdp
c3Rlcl9kZXYpCiNkZWZpbmUgX192ZXJfaGNpX3JlZ2lzdGVyX3Byb3RvIHNtcF9iOWMxZDNlYwoj
ZGVmaW5lIGhjaV9yZWdpc3Rlcl9wcm90byBfc2V0X3ZlcihoY2lfcmVnaXN0ZXJfcHJvdG8pCiNk
ZWZpbmUgX192ZXJfaGNpX3VucmVnaXN0ZXJfcHJvdG8gc21wXzk3N2I5NWQ5CiNkZWZpbmUgaGNp
X3VucmVnaXN0ZXJfcHJvdG8gX3NldF92ZXIoaGNpX3VucmVnaXN0ZXJfcHJvdG8pCiNkZWZpbmUg
X192ZXJfaGNpX3JlZ2lzdGVyX25vdGlmaWVyIHNtcF85ZjVjNzZlYQojZGVmaW5lIGhjaV9yZWdp
c3Rlcl9ub3RpZmllciBfc2V0X3ZlcihoY2lfcmVnaXN0ZXJfbm90aWZpZXIpCiNkZWZpbmUgX192
ZXJfaGNpX3VucmVnaXN0ZXJfbm90aWZpZXIgc21wX2E0NTFkMjQ2CiNkZWZpbmUgaGNpX3VucmVn
aXN0ZXJfbm90aWZpZXIgX3NldF92ZXIoaGNpX3VucmVnaXN0ZXJfbm90aWZpZXIpCiNkZWZpbmUg
X192ZXJfaGNpX2Nvbm5lY3Qgc21wXzA0N2JmNTU1CiNkZWZpbmUgaGNpX2Nvbm5lY3QgX3NldF92
ZXIoaGNpX2Nvbm5lY3QpCiNkZWZpbmUgX192ZXJfaGNpX2Rpc2Nvbm5lY3Qgc21wXzgyY2M0NWI1
CiNkZWZpbmUgaGNpX2Rpc2Nvbm5lY3QgX3NldF92ZXIoaGNpX2Rpc2Nvbm5lY3QpCiNkZWZpbmUg
X192ZXJfaGNpX2Rldl9nZXQgc21wX2ZlZmRjOTQ5CiNkZWZpbmUgaGNpX2Rldl9nZXQgX3NldF92
ZXIoaGNpX2Rldl9nZXQpCiNkZWZpbmUgX192ZXJfaGNpX3JlY3ZfZnJhbWUgc21wXzBkYWU0NGRm
CiNkZWZpbmUgaGNpX3JlY3ZfZnJhbWUgX3NldF92ZXIoaGNpX3JlY3ZfZnJhbWUpCiNkZWZpbmUg
X192ZXJfaGNpX3NlbmRfYWNsIHNtcF83YTUwZjEyNwojZGVmaW5lIGhjaV9zZW5kX2FjbCBfc2V0
X3ZlcihoY2lfc2VuZF9hY2wpCiNkZWZpbmUgX192ZXJfaGNpX3NlbmRfc2NvIHNtcF81YzRlOGMw
YwojZGVmaW5lIGhjaV9zZW5kX3NjbyBfc2V0X3ZlcihoY2lfc2VuZF9zY28pCiNkZWZpbmUgX192
ZXJfaGNpX3NlbmRfcmF3IHNtcF9mNDU3ZTg5ZAojZGVmaW5lIGhjaV9zZW5kX3JhdyBfc2V0X3Zl
cihoY2lfc2VuZF9yYXcpCiNkZWZpbmUgX192ZXJfYmx1ZXpfZHVtcCBzbXBfMTMyYmJmNjAKI2Rl
ZmluZSBibHVlel9kdW1wIF9zZXRfdmVyKGJsdWV6X2R1bXApCiNkZWZpbmUgX192ZXJfYmFzd2Fw
IHNtcF80MzAxM2M5MwojZGVmaW5lIGJhc3dhcCBfc2V0X3ZlcihiYXN3YXApCiNkZWZpbmUgX192
ZXJfYmF0b3N0ciBzbXBfMGNkN2Y1YTgKI2RlZmluZSBiYXRvc3RyIF9zZXRfdmVyKGJhdG9zdHIp
CiNkZWZpbmUgX192ZXJfYnRlcnIgc21wX2YwNjY0NzljCiNkZWZpbmUgYnRlcnIgX3NldF92ZXIo
YnRlcnIpCiNkZWZpbmUgX192ZXJfYmx1ZXpfc29ja19yZWdpc3RlciBzbXBfYjM2YmI1MzgKI2Rl
ZmluZSBibHVlel9zb2NrX3JlZ2lzdGVyIF9zZXRfdmVyKGJsdWV6X3NvY2tfcmVnaXN0ZXIpCiNk
ZWZpbmUgX192ZXJfYmx1ZXpfc29ja191bnJlZ2lzdGVyIHNtcF9jMTE5NDgwYQojZGVmaW5lIGJs
dWV6X3NvY2tfdW5yZWdpc3RlciBfc2V0X3ZlcihibHVlel9zb2NrX3VucmVnaXN0ZXIpCiNkZWZp
bmUgX192ZXJfYmx1ZXpfc29ja19saW5rIHNtcF8wN2FjMjNmOQojZGVmaW5lIGJsdWV6X3NvY2tf
bGluayBfc2V0X3ZlcihibHVlel9zb2NrX2xpbmspCiNkZWZpbmUgX192ZXJfYmx1ZXpfc29ja191
bmxpbmsgc21wXzcyNzA5M2NjCiNkZWZpbmUgYmx1ZXpfc29ja191bmxpbmsgX3NldF92ZXIoYmx1
ZXpfc29ja191bmxpbmspCiMgMjExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L21vZHVsZXMvc3luY3BwcC52ZXIiIDEKI2RlZmluZSBfX3Zlcl9zcHBwX2lucHV0IHNtcF8zOTZl
YmVhMQojZGVmaW5lIHNwcHBfaW5wdXQgX3NldF92ZXIoc3BwcF9pbnB1dCkKI2RlZmluZSBfX3Zl
cl9zcHBwX2Nsb3NlIHNtcF84YmJlNDM0YwojZGVmaW5lIHNwcHBfY2xvc2UgX3NldF92ZXIoc3Bw
cF9jbG9zZSkKI2RlZmluZSBfX3Zlcl9zcHBwX29wZW4gc21wX2EwY2JjYmU5CiNkZWZpbmUgc3Bw
cF9vcGVuIF9zZXRfdmVyKHNwcHBfb3BlbikKI2RlZmluZSBfX3Zlcl9zcHBwX3Jlb3BlbiBzbXBf
YTMyZjQ5NDIKI2RlZmluZSBzcHBwX3Jlb3BlbiBfc2V0X3ZlcihzcHBwX3Jlb3BlbikKI2RlZmlu
ZSBfX3Zlcl9zcHBwX2NoYW5nZV9tdHUgc21wXzc2YjBkZWFkCiNkZWZpbmUgc3BwcF9jaGFuZ2Vf
bXR1IF9zZXRfdmVyKHNwcHBfY2hhbmdlX210dSkKI2RlZmluZSBfX3Zlcl9zcHBwX2RvX2lvY3Rs
IHNtcF9iNmUyNTU2ZQojZGVmaW5lIHNwcHBfZG9faW9jdGwgX3NldF92ZXIoc3BwcF9kb19pb2N0
bCkKI2RlZmluZSBfX3Zlcl9zcHBwX2F0dGFjaCBzbXBfMTAzNDNmMGQKI2RlZmluZSBzcHBwX2F0
dGFjaCBfc2V0X3ZlcihzcHBwX2F0dGFjaCkKI2RlZmluZSBfX3Zlcl9zcHBwX2RldGFjaCBzbXBf
NDExZGM1NjMKI2RlZmluZSBzcHBwX2RldGFjaCBfc2V0X3ZlcihzcHBwX2RldGFjaCkKIyAyMTIg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zeXNycS52ZXIiIDEK
I2RlZmluZSBfX3Zlcl9zeXNycV9wb3dlcl9vZmYgc21wXzBjMjU3ODQ5CiNkZWZpbmUgc3lzcnFf
cG93ZXJfb2ZmIF9zZXRfdmVyKHN5c3JxX3Bvd2VyX29mZikKIyAyMTMgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy9zeXMudmVyIiAxCiNkZWZpbmUgX192ZXJfbm90
aWZpZXJfY2hhaW5fcmVnaXN0ZXIgc21wXzYwY2VjM2I5CiNkZWZpbmUgbm90aWZpZXJfY2hhaW5f
cmVnaXN0ZXIgX3NldF92ZXIobm90aWZpZXJfY2hhaW5fcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJf
bm90aWZpZXJfY2hhaW5fdW5yZWdpc3RlciBzbXBfZjA5OTY3OWMKI2RlZmluZSBub3RpZmllcl9j
aGFpbl91bnJlZ2lzdGVyIF9zZXRfdmVyKG5vdGlmaWVyX2NoYWluX3VucmVnaXN0ZXIpCiNkZWZp
bmUgX192ZXJfbm90aWZpZXJfY2FsbF9jaGFpbiBzbXBfMjg4NDY5NjIKI2RlZmluZSBub3RpZmll
cl9jYWxsX2NoYWluIF9zZXRfdmVyKG5vdGlmaWVyX2NhbGxfY2hhaW4pCiNkZWZpbmUgX192ZXJf
cmVnaXN0ZXJfcmVib290X25vdGlmaWVyIHNtcF8xY2M2NzE5YQojZGVmaW5lIHJlZ2lzdGVyX3Jl
Ym9vdF9ub3RpZmllciBfc2V0X3ZlcihyZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIpCiNkZWZpbmUg
X192ZXJfdW5yZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIgc21wXzM5ODBhYWMxCiNkZWZpbmUgdW5y
ZWdpc3Rlcl9yZWJvb3Rfbm90aWZpZXIgX3NldF92ZXIodW5yZWdpc3Rlcl9yZWJvb3Rfbm90aWZp
ZXIpCiNkZWZpbmUgX192ZXJfaW5fZ3JvdXBfcCBzbXBfMzFlYmFkY2QKI2RlZmluZSBpbl9ncm91
cF9wIF9zZXRfdmVyKGluX2dyb3VwX3ApCiNkZWZpbmUgX192ZXJfaW5fZWdyb3VwX3Agc21wXzQy
YTRiZGYyCiNkZWZpbmUgaW5fZWdyb3VwX3AgX3NldF92ZXIoaW5fZWdyb3VwX3ApCiMgMjE0ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdGMudmVyIiAxCiMgMjE1
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdGRmeF9kcnYudmVy
IiAxCiMgMjE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25z
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdG1z
MzgwdHIudmVyIiAxCiMgMjE3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHVsZXMvdHR5X2lvY3RsLnZlciIgMQojIDIxOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGVzL3R0eV9pby52ZXIiIDEKI2RlZmluZSBfX3Zlcl90dHlfcmVnaXN0ZXJf
ZGV2ZnMgc21wXzI3MWYxMjM0CiNkZWZpbmUgdHR5X3JlZ2lzdGVyX2RldmZzIF9zZXRfdmVyKHR0
eV9yZWdpc3Rlcl9kZXZmcykKI2RlZmluZSBfX3Zlcl90dHlfdW5yZWdpc3Rlcl9kZXZmcyBzbXBf
MDA4YTdhNDIKI2RlZmluZSB0dHlfdW5yZWdpc3Rlcl9kZXZmcyBfc2V0X3Zlcih0dHlfdW5yZWdp
c3Rlcl9kZXZmcykKIyAyMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dWxlcy91YXJ0NDAxLnZlciIgMQojZGVmaW5lIF9fdmVyX3Byb2JlX3VhcnQ0MDEgc21wXzM2ZmFj
OThjCiNkZWZpbmUgcHJvYmVfdWFydDQwMSBfc2V0X3Zlcihwcm9iZV91YXJ0NDAxKQojZGVmaW5l
IF9fdmVyX3VubG9hZF91YXJ0NDAxIHNtcF9lY2ZkZDljOQojZGVmaW5lIHVubG9hZF91YXJ0NDAx
IF9zZXRfdmVyKHVubG9hZF91YXJ0NDAxKQojZGVmaW5lIF9fdmVyX3VhcnQ0MDFpbnRyIHNtcF8x
ZDExNjQ2YwojZGVmaW5lIHVhcnQ0MDFpbnRyIF9zZXRfdmVyKHVhcnQ0MDFpbnRyKQojIDIyMCAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3VQRDk4NDAyLnZlciIg
MQojIDIyMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3VzYnNl
cmlhbC52ZXIiIDEKI2RlZmluZSBfX3Zlcl91c2Jfc2VyaWFsX3JlZ2lzdGVyIHNtcF8yOTQ2OTdj
NwojZGVmaW5lIHVzYl9zZXJpYWxfcmVnaXN0ZXIgX3NldF92ZXIodXNiX3NlcmlhbF9yZWdpc3Rl
cikKI2RlZmluZSBfX3Zlcl91c2Jfc2VyaWFsX2RlcmVnaXN0ZXIgc21wX2ZmOGNjZDc3CiNkZWZp
bmUgdXNiX3NlcmlhbF9kZXJlZ2lzdGVyIF9zZXRfdmVyKHVzYl9zZXJpYWxfZGVyZWdpc3RlcikK
I2RlZmluZSBfX3Zlcl9lenVzYl93cml0ZW1lbW9yeSBzbXBfMjQwNDYxNmIKI2RlZmluZSBlenVz
Yl93cml0ZW1lbW9yeSBfc2V0X3ZlcihlenVzYl93cml0ZW1lbW9yeSkKI2RlZmluZSBfX3Zlcl9l
enVzYl9zZXRfcmVzZXQgc21wX2JlOTg4OTBiCiNkZWZpbmUgZXp1c2Jfc2V0X3Jlc2V0IF9zZXRf
dmVyKGV6dXNiX3NldF9yZXNldCkKIyAyMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbW9kdWxlcy91c2IudmVyIiAxCiNkZWZpbmUgX192ZXJfdXNiX2lmbnVtX3RvX2lmIHNt
cF80N2MxOGEwMwojZGVmaW5lIHVzYl9pZm51bV90b19pZiBfc2V0X3Zlcih1c2JfaWZudW1fdG9f
aWYpCiNkZWZpbmUgX192ZXJfdXNiX2VwbnVtX3RvX2VwX2Rlc2Mgc21wX2JiMjg4NTA0CiNkZWZp
bmUgdXNiX2VwbnVtX3RvX2VwX2Rlc2MgX3NldF92ZXIodXNiX2VwbnVtX3RvX2VwX2Rlc2MpCiNk
ZWZpbmUgX192ZXJfdXNiX3JlZ2lzdGVyIHNtcF8wMjcyOWQzNQojZGVmaW5lIHVzYl9yZWdpc3Rl
ciBfc2V0X3Zlcih1c2JfcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfdXNiX2RlcmVnaXN0ZXIgc21w
X2M1MzIzNzg0CiNkZWZpbmUgdXNiX2RlcmVnaXN0ZXIgX3NldF92ZXIodXNiX2RlcmVnaXN0ZXIp
CiNkZWZpbmUgX192ZXJfdXNiX3NjYW5fZGV2aWNlcyBzbXBfY2E0ZjYzMDEKI2RlZmluZSB1c2Jf
c2Nhbl9kZXZpY2VzIF9zZXRfdmVyKHVzYl9zY2FuX2RldmljZXMpCiNkZWZpbmUgX192ZXJfdXNi
X2FsbG9jX2J1cyBzbXBfYzdkN2Y0OWQKI2RlZmluZSB1c2JfYWxsb2NfYnVzIF9zZXRfdmVyKHVz
Yl9hbGxvY19idXMpCiNkZWZpbmUgX192ZXJfdXNiX2ZyZWVfYnVzIHNtcF9jYmU4Y2QzOAojZGVm
aW5lIHVzYl9mcmVlX2J1cyBfc2V0X3Zlcih1c2JfZnJlZV9idXMpCiNkZWZpbmUgX192ZXJfdXNi
X3JlZ2lzdGVyX2J1cyBzbXBfNWJlODgyNjIKI2RlZmluZSB1c2JfcmVnaXN0ZXJfYnVzIF9zZXRf
dmVyKHVzYl9yZWdpc3Rlcl9idXMpCiNkZWZpbmUgX192ZXJfdXNiX2RlcmVnaXN0ZXJfYnVzIHNt
cF8yMzljODFhZQojZGVmaW5lIHVzYl9kZXJlZ2lzdGVyX2J1cyBfc2V0X3Zlcih1c2JfZGVyZWdp
c3Rlcl9idXMpCiNkZWZpbmUgX192ZXJfdXNiX2FsbG9jX2RldiBzbXBfZjlhMWJkZjIKI2RlZmlu
ZSB1c2JfYWxsb2NfZGV2IF9zZXRfdmVyKHVzYl9hbGxvY19kZXYpCiNkZWZpbmUgX192ZXJfdXNi
X2ZyZWVfZGV2IHNtcF9mMDc1ZWRjYwojZGVmaW5lIHVzYl9mcmVlX2RldiBfc2V0X3Zlcih1c2Jf
ZnJlZV9kZXYpCiNkZWZpbmUgX192ZXJfdXNiX2luY19kZXZfdXNlIHNtcF81MzIyMmYyOAojZGVm
aW5lIHVzYl9pbmNfZGV2X3VzZSBfc2V0X3Zlcih1c2JfaW5jX2Rldl91c2UpCiNkZWZpbmUgX192
ZXJfdXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZhY2Ugc21wXzM1NjRmMmMxCiNkZWZpbmUgdXNiX2Ry
aXZlcl9jbGFpbV9pbnRlcmZhY2UgX3NldF92ZXIodXNiX2RyaXZlcl9jbGFpbV9pbnRlcmZhY2Up
CiNkZWZpbmUgX192ZXJfdXNiX2ludGVyZmFjZV9jbGFpbWVkIHNtcF9jYjhmZDk5NgojZGVmaW5l
IHVzYl9pbnRlcmZhY2VfY2xhaW1lZCBfc2V0X3Zlcih1c2JfaW50ZXJmYWNlX2NsYWltZWQpCiNk
ZWZpbmUgX192ZXJfdXNiX2RyaXZlcl9yZWxlYXNlX2ludGVyZmFjZSBzbXBfMDZhYTg2NGUKI2Rl
ZmluZSB1c2JfZHJpdmVyX3JlbGVhc2VfaW50ZXJmYWNlIF9zZXRfdmVyKHVzYl9kcml2ZXJfcmVs
ZWFzZV9pbnRlcmZhY2UpCiNkZWZpbmUgX192ZXJfdXNiX21hdGNoX2lkIHNtcF8zOWU3NDZhMAoj
ZGVmaW5lIHVzYl9tYXRjaF9pZCBfc2V0X3Zlcih1c2JfbWF0Y2hfaWQpCiNkZWZpbmUgX192ZXJf
dXNiX3Jvb3RfaHViX3N0cmluZyBzbXBfYTY4NzE4ZjAKI2RlZmluZSB1c2Jfcm9vdF9odWJfc3Ry
aW5nIF9zZXRfdmVyKHVzYl9yb290X2h1Yl9zdHJpbmcpCiNkZWZpbmUgX192ZXJfdXNiX25ld19k
ZXZpY2Ugc21wXzNmNTA3ZjAyCiNkZWZpbmUgdXNiX25ld19kZXZpY2UgX3NldF92ZXIodXNiX25l
d19kZXZpY2UpCiNkZWZpbmUgX192ZXJfdXNiX3Jlc2V0X2RldmljZSBzbXBfOWRmNTRkNGIKI2Rl
ZmluZSB1c2JfcmVzZXRfZGV2aWNlIF9zZXRfdmVyKHVzYl9yZXNldF9kZXZpY2UpCiNkZWZpbmUg
X192ZXJfdXNiX2Nvbm5lY3Qgc21wXzgxNjVhMTU4CiNkZWZpbmUgdXNiX2Nvbm5lY3QgX3NldF92
ZXIodXNiX2Nvbm5lY3QpCiNkZWZpbmUgX192ZXJfdXNiX2Rpc2Nvbm5lY3Qgc21wXzk3NmY1YTVk
CiNkZWZpbmUgdXNiX2Rpc2Nvbm5lY3QgX3NldF92ZXIodXNiX2Rpc2Nvbm5lY3QpCiNkZWZpbmUg
X192ZXJfdXNiX2NoZWNrX2JhbmR3aWR0aCBzbXBfOGVkNzM4NGYKI2RlZmluZSB1c2JfY2hlY2tf
YmFuZHdpZHRoIF9zZXRfdmVyKHVzYl9jaGVja19iYW5kd2lkdGgpCiNkZWZpbmUgX192ZXJfdXNi
X2NsYWltX2JhbmR3aWR0aCBzbXBfMTMyZjYwMTUKI2RlZmluZSB1c2JfY2xhaW1fYmFuZHdpZHRo
IF9zZXRfdmVyKHVzYl9jbGFpbV9iYW5kd2lkdGgpCiNkZWZpbmUgX192ZXJfdXNiX3JlbGVhc2Vf
YmFuZHdpZHRoIHNtcF8zOTEzOTg2MwojZGVmaW5lIHVzYl9yZWxlYXNlX2JhbmR3aWR0aCBfc2V0
X3Zlcih1c2JfcmVsZWFzZV9iYW5kd2lkdGgpCiNkZWZpbmUgX192ZXJfdXNiX3NldF9hZGRyZXNz
IHNtcF8yMDdlOTlhZQojZGVmaW5lIHVzYl9zZXRfYWRkcmVzcyBfc2V0X3Zlcih1c2Jfc2V0X2Fk
ZHJlc3MpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9kZXNjcmlwdG9yIHNtcF81MDAwZTU4ZgojZGVm
aW5lIHVzYl9nZXRfZGVzY3JpcHRvciBfc2V0X3Zlcih1c2JfZ2V0X2Rlc2NyaXB0b3IpCiNkZWZp
bmUgX192ZXJfdXNiX2dldF9jbGFzc19kZXNjcmlwdG9yIHNtcF8zYTQwYTI2YwojZGVmaW5lIHVz
Yl9nZXRfY2xhc3NfZGVzY3JpcHRvciBfc2V0X3Zlcih1c2JfZ2V0X2NsYXNzX2Rlc2NyaXB0b3Ip
CiNkZWZpbmUgX192ZXJfX191c2JfZ2V0X2V4dHJhX2Rlc2NyaXB0b3Igc21wXzk5MjRjNDk2CiNk
ZWZpbmUgX191c2JfZ2V0X2V4dHJhX2Rlc2NyaXB0b3IgX3NldF92ZXIoX191c2JfZ2V0X2V4dHJh
X2Rlc2NyaXB0b3IpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9kZXZpY2VfZGVzY3JpcHRvciBzbXBf
M2E5NWU1ZjAKI2RlZmluZSB1c2JfZ2V0X2RldmljZV9kZXNjcmlwdG9yIF9zZXRfdmVyKHVzYl9n
ZXRfZGV2aWNlX2Rlc2NyaXB0b3IpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9zdHJpbmcgc21wXzNk
OTI3NjA2CiNkZWZpbmUgdXNiX2dldF9zdHJpbmcgX3NldF92ZXIodXNiX2dldF9zdHJpbmcpCiNk
ZWZpbmUgX192ZXJfdXNiX3N0cmluZyBzbXBfMWM4Y2E1M2UKI2RlZmluZSB1c2Jfc3RyaW5nIF9z
ZXRfdmVyKHVzYl9zdHJpbmcpCiNkZWZpbmUgX192ZXJfdXNiX2dldF9wcm90b2NvbCBzbXBfNjc4
Mjk1N2EKI2RlZmluZSB1c2JfZ2V0X3Byb3RvY29sIF9zZXRfdmVyKHVzYl9nZXRfcHJvdG9jb2wp
CiNkZWZpbmUgX192ZXJfdXNiX3NldF9wcm90b2NvbCBzbXBfNzdiMjBkOGMKI2RlZmluZSB1c2Jf
c2V0X3Byb3RvY29sIF9zZXRfdmVyKHVzYl9zZXRfcHJvdG9jb2wpCiNkZWZpbmUgX192ZXJfdXNi
X2dldF9yZXBvcnQgc21wXzExNDIzOTM4CiNkZWZpbmUgdXNiX2dldF9yZXBvcnQgX3NldF92ZXIo
dXNiX2dldF9yZXBvcnQpCiNkZWZpbmUgX192ZXJfdXNiX3NldF9yZXBvcnQgc21wX2M5ZWRmNWU3
CiNkZWZpbmUgdXNiX3NldF9yZXBvcnQgX3NldF92ZXIodXNiX3NldF9yZXBvcnQpCiNkZWZpbmUg
X192ZXJfdXNiX3NldF9pZGxlIHNtcF84OTRiZjk2MQojZGVmaW5lIHVzYl9zZXRfaWRsZSBfc2V0
X3Zlcih1c2Jfc2V0X2lkbGUpCiNkZWZpbmUgX192ZXJfdXNiX2NsZWFyX2hhbHQgc21wX2YwOTZk
ZDA3CiNkZWZpbmUgdXNiX2NsZWFyX2hhbHQgX3NldF92ZXIodXNiX2NsZWFyX2hhbHQpCiNkZWZp
bmUgX192ZXJfdXNiX3NldF9pbnRlcmZhY2Ugc21wX2NkODMxZTQ4CiNkZWZpbmUgdXNiX3NldF9p
bnRlcmZhY2UgX3NldF92ZXIodXNiX3NldF9pbnRlcmZhY2UpCiNkZWZpbmUgX192ZXJfdXNiX2dl
dF9jb25maWd1cmF0aW9uIHNtcF80NDkwNTMwYwojZGVmaW5lIHVzYl9nZXRfY29uZmlndXJhdGlv
biBfc2V0X3Zlcih1c2JfZ2V0X2NvbmZpZ3VyYXRpb24pCiNkZWZpbmUgX192ZXJfdXNiX3NldF9j
b25maWd1cmF0aW9uIHNtcF84NWU4YzcyYwojZGVmaW5lIHVzYl9zZXRfY29uZmlndXJhdGlvbiBf
c2V0X3Zlcih1c2Jfc2V0X2NvbmZpZ3VyYXRpb24pCiNkZWZpbmUgX192ZXJfdXNiX2dldF9jdXJy
ZW50X2ZyYW1lX251bWJlciBzbXBfMTAwN2JjMmMKI2RlZmluZSB1c2JfZ2V0X2N1cnJlbnRfZnJh
bWVfbnVtYmVyIF9zZXRfdmVyKHVzYl9nZXRfY3VycmVudF9mcmFtZV9udW1iZXIpCiNkZWZpbmUg
X192ZXJfdXNiX2FsbG9jX3VyYiBzbXBfYjg5NTQxYmQKI2RlZmluZSB1c2JfYWxsb2NfdXJiIF9z
ZXRfdmVyKHVzYl9hbGxvY191cmIpCiNkZWZpbmUgX192ZXJfdXNiX2ZyZWVfdXJiIHNtcF82Yzc4
YjA1ZQojZGVmaW5lIHVzYl9mcmVlX3VyYiBfc2V0X3Zlcih1c2JfZnJlZV91cmIpCiNkZWZpbmUg
X192ZXJfdXNiX3N1Ym1pdF91cmIgc21wXzI5MGQxYTJmCiNkZWZpbmUgdXNiX3N1Ym1pdF91cmIg
X3NldF92ZXIodXNiX3N1Ym1pdF91cmIpCiNkZWZpbmUgX192ZXJfdXNiX3VubGlua191cmIgc21w
X2NjYmZhOWFiCiNkZWZpbmUgdXNiX3VubGlua191cmIgX3NldF92ZXIodXNiX3VubGlua191cmIp
CiNkZWZpbmUgX192ZXJfdXNiX2NvbnRyb2xfbXNnIHNtcF9jMDQxY2Q0NgojZGVmaW5lIHVzYl9j
b250cm9sX21zZyBfc2V0X3Zlcih1c2JfY29udHJvbF9tc2cpCiNkZWZpbmUgX192ZXJfdXNiX2J1
bGtfbXNnIHNtcF80OTRlMmU0YQojZGVmaW5lIHVzYl9idWxrX21zZyBfc2V0X3Zlcih1c2JfYnVs
a19tc2cpCiNkZWZpbmUgX192ZXJfdXNiX2RldmZzX2hhbmRsZSBzbXBfZTljNWY4N2YKI2RlZmlu
ZSB1c2JfZGV2ZnNfaGFuZGxlIF9zZXRfdmVyKHVzYl9kZXZmc19oYW5kbGUpCiMgMjIzICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdXNlbWEudmVyIiAxCiMgMjI0
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvdXRpbC52ZXIiIDEK
I2RlZmluZSBfX3Zlcl9kZXZmc19yZWdpc3Rlcl90YXBlIHNtcF9iOGQ2MThlOAojZGVmaW5lIGRl
dmZzX3JlZ2lzdGVyX3RhcGUgX3NldF92ZXIoZGV2ZnNfcmVnaXN0ZXJfdGFwZSkKI2RlZmluZSBf
X3Zlcl9kZXZmc19yZWdpc3Rlcl9zZXJpZXMgc21wXzNhZjFjNjYwCiNkZWZpbmUgZGV2ZnNfcmVn
aXN0ZXJfc2VyaWVzIF9zZXRfdmVyKGRldmZzX3JlZ2lzdGVyX3NlcmllcykKI2RlZmluZSBfX3Zl
cl9kZXZmc19hbGxvY19tYWpvciBzbXBfMTkwZTNiYmMKI2RlZmluZSBkZXZmc19hbGxvY19tYWpv
ciBfc2V0X3ZlcihkZXZmc19hbGxvY19tYWpvcikKI2RlZmluZSBfX3Zlcl9kZXZmc19kZWFsbG9j
X21ham9yIHNtcF9jZTlkZTQxZAojZGVmaW5lIGRldmZzX2RlYWxsb2NfbWFqb3IgX3NldF92ZXIo
ZGV2ZnNfZGVhbGxvY19tYWpvcikKI2RlZmluZSBfX3Zlcl9kZXZmc19hbGxvY19kZXZudW0gc21w
XzBiMzVjNTdmCiNkZWZpbmUgZGV2ZnNfYWxsb2NfZGV2bnVtIF9zZXRfdmVyKGRldmZzX2FsbG9j
X2Rldm51bSkKI2RlZmluZSBfX3Zlcl9kZXZmc19kZWFsbG9jX2Rldm51bSBzbXBfNzRlODU2ZTkK
I2RlZmluZSBkZXZmc19kZWFsbG9jX2Rldm51bSBfc2V0X3ZlcihkZXZmc19kZWFsbG9jX2Rldm51
bSkKI2RlZmluZSBfX3Zlcl9kZXZmc19hbGxvY191bmlxdWVfbnVtYmVyIHNtcF80NDRmNDEyZAoj
ZGVmaW5lIGRldmZzX2FsbG9jX3VuaXF1ZV9udW1iZXIgX3NldF92ZXIoZGV2ZnNfYWxsb2NfdW5p
cXVlX251bWJlcikKI2RlZmluZSBfX3Zlcl9kZXZmc19kZWFsbG9jX3VuaXF1ZV9udW1iZXIgc21w
XzliZjNmZjA4CiNkZWZpbmUgZGV2ZnNfZGVhbGxvY191bmlxdWVfbnVtYmVyIF9zZXRfdmVyKGRl
dmZzX2RlYWxsb2NfdW5pcXVlX251bWJlcikKIyAyMjUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW9kdWxlcy92ZmF0ZnNfc3ltcy52ZXIiIDEKI2RlZmluZSBfX3Zlcl92ZmF0
X2NyZWF0ZSBzbXBfMDgwNWY2ZjYKI2RlZmluZSB2ZmF0X2NyZWF0ZSBfc2V0X3Zlcih2ZmF0X2Ny
ZWF0ZSkKI2RlZmluZSBfX3Zlcl92ZmF0X3VubGluayBzbXBfYTVhYmE0ZmEKI2RlZmluZSB2ZmF0
X3VubGluayBfc2V0X3Zlcih2ZmF0X3VubGluaykKI2RlZmluZSBfX3Zlcl92ZmF0X21rZGlyIHNt
cF8xMmE4YTExYwojZGVmaW5lIHZmYXRfbWtkaXIgX3NldF92ZXIodmZhdF9ta2RpcikKI2RlZmlu
ZSBfX3Zlcl92ZmF0X3JtZGlyIHNtcF9hNGY3NGExNQojZGVmaW5lIHZmYXRfcm1kaXIgX3NldF92
ZXIodmZhdF9ybWRpcikKI2RlZmluZSBfX3Zlcl92ZmF0X3JlbmFtZSBzbXBfNDllY2RiMjMKI2Rl
ZmluZSB2ZmF0X3JlbmFtZSBfc2V0X3Zlcih2ZmF0X3JlbmFtZSkKI2RlZmluZSBfX3Zlcl92ZmF0
X3JlYWRfc3VwZXIgc21wX2YyOTdlNTFhCiNkZWZpbmUgdmZhdF9yZWFkX3N1cGVyIF9zZXRfdmVy
KHZmYXRfcmVhZF9zdXBlcikKI2RlZmluZSBfX3Zlcl92ZmF0X2xvb2t1cCBzbXBfZTE2ZWFiZDMK
I2RlZmluZSB2ZmF0X2xvb2t1cCBfc2V0X3Zlcih2ZmF0X2xvb2t1cCkKIyAyMjYgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy92aWRlb2Rldi52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl92aWRlb19wcm9jX2VudHJ5IHNtcF9hZDE2MmE0NgojZGVmaW5lIHZpZGVvX3Byb2Nf
ZW50cnkgX3NldF92ZXIodmlkZW9fcHJvY19lbnRyeSkKI2RlZmluZSBfX3Zlcl92aWRlb19yZWdp
c3Rlcl9kZXZpY2Ugc21wX2E1ZTI2ZjI0CiNkZWZpbmUgdmlkZW9fcmVnaXN0ZXJfZGV2aWNlIF9z
ZXRfdmVyKHZpZGVvX3JlZ2lzdGVyX2RldmljZSkKI2RlZmluZSBfX3Zlcl92aWRlb191bnJlZ2lz
dGVyX2RldmljZSBzbXBfNTc2YzE0ZTcKI2RlZmluZSB2aWRlb191bnJlZ2lzdGVyX2RldmljZSBf
c2V0X3Zlcih2aWRlb191bnJlZ2lzdGVyX2RldmljZSkKIyAyMjcgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy93YW5tYWluLnZlciIgMQojZGVmaW5lIF9fdmVyX3Jl
Z2lzdGVyX3dhbl9kZXZpY2Ugc21wXzQ2OGRhZGE3CiNkZWZpbmUgcmVnaXN0ZXJfd2FuX2Rldmlj
ZSBfc2V0X3ZlcihyZWdpc3Rlcl93YW5fZGV2aWNlKQojZGVmaW5lIF9fdmVyX3VucmVnaXN0ZXJf
d2FuX2RldmljZSBzbXBfMGViZTAzZDEKI2RlZmluZSB1bnJlZ2lzdGVyX3dhbl9kZXZpY2UgX3Nl
dF92ZXIodW5yZWdpc3Rlcl93YW5fZGV2aWNlKQojZGVmaW5lIF9fdmVyX3dhbnJvdXRlcl9lbmNh
cHN1bGF0ZSBzbXBfYjEzZDU4MzgKI2RlZmluZSB3YW5yb3V0ZXJfZW5jYXBzdWxhdGUgX3NldF92
ZXIod2Fucm91dGVyX2VuY2Fwc3VsYXRlKQojZGVmaW5lIF9fdmVyX3dhbnJvdXRlcl90eXBlX3Ry
YW5zIHNtcF9mYmNjNTM1MgojZGVmaW5lIHdhbnJvdXRlcl90eXBlX3RyYW5zIF9zZXRfdmVyKHdh
bnJvdXRlcl90eXBlX3RyYW5zKQojZGVmaW5lIF9fdmVyX2xvY2tfYWRhcHRlcl9pcnEgc21wXzdl
NmFlMjYzCiNkZWZpbmUgbG9ja19hZGFwdGVyX2lycSBfc2V0X3Zlcihsb2NrX2FkYXB0ZXJfaXJx
KQojZGVmaW5lIF9fdmVyX3VubG9ja19hZGFwdGVyX2lycSBzbXBfMWU3YjlhNDMKI2RlZmluZSB1
bmxvY2tfYWRhcHRlcl9pcnEgX3NldF92ZXIodW5sb2NrX2FkYXB0ZXJfaXJxKQojIDIyOCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R2ZXJzaW9ucy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGVzL3hvci52ZXIiIDEKI2RlZmlu
ZSBfX3Zlcl94b3JfYmxvY2sgc21wX2ZlODUwODM4CiNkZWZpbmUgeG9yX2Jsb2NrIF9zZXRfdmVy
KHhvcl9ibG9jaykKIyAyMjkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dmVyc2lvbnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dWxlcy95ZW50YS52ZXIiIDEKI2RlZmluZSBfX3Zlcl95ZW50YV9vcGVyYXRpb25zIHNtcF83ZGM5
NmM3ZAojZGVmaW5lIHllbnRhX29wZXJhdGlvbnMgX3NldF92ZXIoeWVudGFfb3BlcmF0aW9ucykK
IyAyMzAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdmVyc2lvbnMuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlcy96ODUyMzAu
dmVyIiAxCiNkZWZpbmUgX192ZXJfejg1MzBfZGVhZF9wb3J0IHNtcF84YjA2MDU3MAojZGVmaW5l
IHo4NTMwX2RlYWRfcG9ydCBfc2V0X3Zlcih6ODUzMF9kZWFkX3BvcnQpCiNkZWZpbmUgX192ZXJf
ejg1MzBfaGRsY19raWxvc3RyZWFtIHNtcF9lZWIyNTViYwojZGVmaW5lIHo4NTMwX2hkbGNfa2ls
b3N0cmVhbSBfc2V0X3Zlcih6ODUzMF9oZGxjX2tpbG9zdHJlYW0pCiNkZWZpbmUgX192ZXJfejg1
MzBfaGRsY19raWxvc3RyZWFtXzg1MjMwIHNtcF8wMzFmODZhYQojZGVmaW5lIHo4NTMwX2hkbGNf
a2lsb3N0cmVhbV84NTIzMCBfc2V0X3Zlcih6ODUzMF9oZGxjX2tpbG9zdHJlYW1fODUyMzApCiNk
ZWZpbmUgX192ZXJfejg1MzBfc3luYyBzbXBfMjgwZGRlZTAKI2RlZmluZSB6ODUzMF9zeW5jIF9z
ZXRfdmVyKHo4NTMwX3N5bmMpCiNkZWZpbmUgX192ZXJfejg1MzBfZG1hX3N5bmMgc21wXzFiZTQ1
Mzc0CiNkZWZpbmUgejg1MzBfZG1hX3N5bmMgX3NldF92ZXIoejg1MzBfZG1hX3N5bmMpCiNkZWZp
bmUgX192ZXJfejg1MzBfdHhkbWFfc3luYyBzbXBfOTMzYzFkZWQKI2RlZmluZSB6ODUzMF90eGRt
YV9zeW5jIF9zZXRfdmVyKHo4NTMwX3R4ZG1hX3N5bmMpCiNkZWZpbmUgX192ZXJfejg1MzBfbm9w
IHNtcF84MTQwNzE0YgojZGVmaW5lIHo4NTMwX25vcCBfc2V0X3Zlcih6ODUzMF9ub3ApCiNkZWZp
bmUgX192ZXJfejg1MzBfaW50ZXJydXB0IHNtcF8xNTRjOTlhZQojZGVmaW5lIHo4NTMwX2ludGVy
cnVwdCBfc2V0X3Zlcih6ODUzMF9pbnRlcnJ1cHQpCiNkZWZpbmUgX192ZXJfejg1MzBfc3luY19v
cGVuIHNtcF8wOGFiZjcwNwojZGVmaW5lIHo4NTMwX3N5bmNfb3BlbiBfc2V0X3Zlcih6ODUzMF9z
eW5jX29wZW4pCiNkZWZpbmUgX192ZXJfejg1MzBfc3luY19jbG9zZSBzbXBfYjc1NmQ5YzIKI2Rl
ZmluZSB6ODUzMF9zeW5jX2Nsb3NlIF9zZXRfdmVyKHo4NTMwX3N5bmNfY2xvc2UpCiNkZWZpbmUg
X192ZXJfejg1MzBfc3luY19kbWFfb3BlbiBzbXBfM2Y0ZDBjN2UKI2RlZmluZSB6ODUzMF9zeW5j
X2RtYV9vcGVuIF9zZXRfdmVyKHo4NTMwX3N5bmNfZG1hX29wZW4pCiNkZWZpbmUgX192ZXJfejg1
MzBfc3luY19kbWFfY2xvc2Ugc21wXzllYjhmNmExCiNkZWZpbmUgejg1MzBfc3luY19kbWFfY2xv
c2UgX3NldF92ZXIoejg1MzBfc3luY19kbWFfY2xvc2UpCiNkZWZpbmUgX192ZXJfejg1MzBfc3lu
Y190eGRtYV9vcGVuIHNtcF8wMDViMDZjOQojZGVmaW5lIHo4NTMwX3N5bmNfdHhkbWFfb3BlbiBf
c2V0X3Zlcih6ODUzMF9zeW5jX3R4ZG1hX29wZW4pCiNkZWZpbmUgX192ZXJfejg1MzBfc3luY190
eGRtYV9jbG9zZSBzbXBfY2I4MmM2ODQKI2RlZmluZSB6ODUzMF9zeW5jX3R4ZG1hX2Nsb3NlIF9z
ZXRfdmVyKHo4NTMwX3N5bmNfdHhkbWFfY2xvc2UpCiNkZWZpbmUgX192ZXJfejg1MzBfZGVzY3Jp
YmUgc21wXzdjZmI1M2NmCiNkZWZpbmUgejg1MzBfZGVzY3JpYmUgX3NldF92ZXIoejg1MzBfZGVz
Y3JpYmUpCiNkZWZpbmUgX192ZXJfejg1MzBfaW5pdCBzbXBfMDdjMjE3ZWUKI2RlZmluZSB6ODUz
MF9pbml0IF9zZXRfdmVyKHo4NTMwX2luaXQpCiNkZWZpbmUgX192ZXJfejg1MzBfc2h1dGRvd24g
c21wX2E3Mjg2MWUxCiNkZWZpbmUgejg1MzBfc2h1dGRvd24gX3NldF92ZXIoejg1MzBfc2h1dGRv
d24pCiNkZWZpbmUgX192ZXJfejg1MzBfY2hhbm5lbF9sb2FkIHNtcF9hZTA4NTg3OAojZGVmaW5l
IHo4NTMwX2NoYW5uZWxfbG9hZCBfc2V0X3Zlcih6ODUzMF9jaGFubmVsX2xvYWQpCiNkZWZpbmUg
X192ZXJfejg1MzBfbnVsbF9yeCBzbXBfZDlmY2M2MDcKI2RlZmluZSB6ODUzMF9udWxsX3J4IF9z
ZXRfdmVyKHo4NTMwX251bGxfcngpCiNkZWZpbmUgX192ZXJfejg1MzBfcXVldWVfeG1pdCBzbXBf
ZDk3YWE3YmUKI2RlZmluZSB6ODUzMF9xdWV1ZV94bWl0IF9zZXRfdmVyKHo4NTMwX3F1ZXVlX3ht
aXQpCiNkZWZpbmUgX192ZXJfejg1MzBfZ2V0X3N0YXRzIHNtcF9mYTcwMjAxZgojZGVmaW5lIHo4
NTMwX2dldF9zdGF0cyBfc2V0X3Zlcih6ODUzMF9nZXRfc3RhdHMpCiMgMjMxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZXMvemZ0YXBlX3N5bXMudmVyIiAxCiNkZWZp
bmUgX192ZXJfemZ0X2NtcHJfcmVnaXN0ZXIgc21wXzRlMzI4YjRkCiNkZWZpbmUgemZ0X2NtcHJf
cmVnaXN0ZXIgX3NldF92ZXIoemZ0X2NtcHJfcmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfemZ0X2Nt
cHJfdW5yZWdpc3RlciBzbXBfZTIwN2RmNTMKI2RlZmluZSB6ZnRfY21wcl91bnJlZ2lzdGVyIF9z
ZXRfdmVyKHpmdF9jbXByX3VucmVnaXN0ZXIpCiNkZWZpbmUgX192ZXJfemZ0X2ZldGNoX3NlZ21l
bnRfZnJhY3Rpb24gc21wXzQxZjE2NmMxCiNkZWZpbmUgemZ0X2ZldGNoX3NlZ21lbnRfZnJhY3Rp
b24gX3NldF92ZXIoemZ0X2ZldGNoX3NlZ21lbnRfZnJhY3Rpb24pCiNkZWZpbmUgX192ZXJfemZ0
X3ZtYWxsb2Nfb25jZSBzbXBfM2M0YjljODkKI2RlZmluZSB6ZnRfdm1hbGxvY19vbmNlIF9zZXRf
dmVyKHpmdF92bWFsbG9jX29uY2UpCiNkZWZpbmUgX192ZXJfemZ0X3ZtYWxsb2NfYWx3YXlzIHNt
cF8xNzcwZDUwNQojZGVmaW5lIHpmdF92bWFsbG9jX2Fsd2F5cyBfc2V0X3Zlcih6ZnRfdm1hbGxv
Y19hbHdheXMpCiNkZWZpbmUgX192ZXJfemZ0X3ZmcmVlIHNtcF8wMmRhMzVlNQojZGVmaW5lIHpm
dF92ZnJlZSBfc2V0X3Zlcih6ZnRfdmZyZWUpCiMgMjMyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHZlcnNpb25zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZXMvem9ycm8udmVyIiAxCiNkZWZpbmUgX192ZXJfem9ycm9fZmlu
ZF9kZXZpY2Ugc21wXzU3NzM3ZTgzCiNkZWZpbmUgem9ycm9fZmluZF9kZXZpY2UgX3NldF92ZXIo
em9ycm9fZmluZF9kZXZpY2UpCiNkZWZpbmUgX192ZXJfem9ycm9fdW51c2VkX3oycmFtIHNtcF9k
YzE4YzE2NwojZGVmaW5lIHpvcnJvX3VudXNlZF96MnJhbSBfc2V0X3Zlcih6b3Jyb191bnVzZWRf
ejJyYW0pCiMgMjMzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHZlcnNp
b25zLmgiIDIKIyAyICJmcy91ZGYvc3VwZXIuYyIgMgojIDQ2ICJmcy91ZGYvc3VwZXIuYyIKIyAx
ICJmcy91ZGYvdWRmZGVjbC5oIiAxCgojZGVmaW5lIF9fVURGX0RFQ0xfSAoKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl8xNjcuaCIgMQoKI2RlZmluZSBfTElOVVhf
VURGXzE2N19ICiMgNTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWRmXzE2
Ny5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQoK
I2RlZmluZSBfTElOVVhfVFlQRVNfSAoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9jb25maWcuaCIgMQoKI2RlZmluZSBfTElOVVhfQ09ORklHX0gKCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIiAxCgoKCiNkZWZpbmUgQVVU
T0NPTkZfSU5DTFVERUQKCgoKCiNkZWZpbmUgQ09ORklHX0VYUEVSSU1FTlRBTCAxCgoKCgojZGVm
aW5lIENPTkZJR19NT0RVTEVTIDEKI2RlZmluZSBDT05GSUdfTU9EVkVSU0lPTlMgMQojZGVmaW5l
IENPTkZJR19LTU9EIDEKCgoKCiNkZWZpbmUgQ09ORklHX0lBNjQgMQoKCgoKI2RlZmluZSBDT05G
SUdfUldTRU1fR0VORVJJQ19TUElOTE9DSyAxCgojZGVmaW5lIENPTkZJR19BQ1BJIDEKI2RlZmlu
ZSBDT05GSUdfQUNQSV9JTlRFUlBSRVRFUiAxCiNkZWZpbmUgQ09ORklHX0FDUElfS0VSTkVMX0NP
TkZJRyAxCiNkZWZpbmUgQ09ORklHX0lUQU5JVU0gMQoKCiNkZWZpbmUgQ09ORklHX0lBNjRfRElH
IDEKCgoKCiNkZWZpbmUgQ09ORklHX0lBNjRfUEFHRV9TSVpFXzE2S0IgMQoKI2RlZmluZSBDT05G
SUdfSUE2NF9CUkxfRU1VIDEKCiNkZWZpbmUgQ09ORklHX0lUQU5JVU1fQ1NURVBfU1BFQ0lGSUMg
MQojZGVmaW5lIENPTkZJR19JVEFOSVVNX0MwX1NQRUNJRklDIDEKI2RlZmluZSBDT05GSUdfSVRB
TklVTV9QVENHIDEKI2RlZmluZSBDT05GSUdfSUE2NF9MMV9DQUNIRV9TSElGVCAoNikKCiNkZWZp
bmUgQ09ORklHX0lBNjRfTUNBIDEKI2RlZmluZSBDT05GSUdfUE0gMQojZGVmaW5lIENPTkZJR19L
Q09SRV9FTEYgMQojZGVmaW5lIENPTkZJR19TTVAgMQojZGVmaW5lIENPTkZJR19QRVJGTU9OIDEK
I2RlZmluZSBDT05GSUdfSUE2NF9QQUxJTkZPIDEKI2RlZmluZSBDT05GSUdfRUZJX1ZBUlMgMQoj
ZGVmaW5lIENPTkZJR19ORVQgMQojZGVmaW5lIENPTkZJR19TWVNWSVBDIDEKCiNkZWZpbmUgQ09O
RklHX1NZU0NUTCAxCiNkZWZpbmUgQ09ORklHX0JJTkZNVF9FTEYgMQojIDcwICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX1BDSSAx
CiNkZWZpbmUgQ09ORklHX1BDSV9OQU1FUyAxCiNkZWZpbmUgQ09ORklHX0hPVFBMVUcgMQoKCgoK
CiNkZWZpbmUgQ09ORklHX1BDTUNJQV9NT0RVTEUgMQojZGVmaW5lIENPTkZJR19DQVJEQlVTIDEK
I2RlZmluZSBDT05GSUdfSTgyMzY1IDEKI2RlZmluZSBDT05GSUdfVENJQyAxCiMgOTEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdf
UEFDS0VUIDEKI2RlZmluZSBDT05GSUdfUEFDS0VUX01NQVAgMQojZGVmaW5lIENPTkZJR19ORVRM
SU5LIDEKI2RlZmluZSBDT05GSUdfUlRORVRMSU5LIDEKCiNkZWZpbmUgQ09ORklHX05FVEZJTFRF
UiAxCgojZGVmaW5lIENPTkZJR19GSUxURVIgMQojZGVmaW5lIENPTkZJR19VTklYIDEKI2RlZmlu
ZSBDT05GSUdfSU5FVCAxCgoKCgoKCiNkZWZpbmUgQ09ORklHX0lORVRfRUNOIDEKI2RlZmluZSBD
T05GSUdfU1lOX0NPT0tJRVMgMQoKCgoKCiNkZWZpbmUgQ09ORklHX0lQX05GX0NPTk5UUkFDS19N
T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfRlRQX01PRFVMRSAxCgojZGVmaW5lIENPTkZJ
R19JUF9ORl9RVUVVRV9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfSVBUQUJMRVNfTU9E
VUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX01BVENIX0xJTUlUX01PRFVMRSAxCgojZGVmaW5l
IENPTkZJR19JUF9ORl9NQVRDSF9NQUNfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX01B
VENIX01BUktfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX01BVENIX01VTFRJUE9SVF9N
T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfTUFUQ0hfVE9TX01PRFVMRSAxCgojZGVmaW5l
IENPTkZJR19JUF9ORl9NQVRDSF9UQ1BNU1NfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05G
X01BVENIX1NUQVRFX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9NQVRDSF9VTkNMRUFO
X01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9NQVRDSF9PV05FUl9NT0RVTEUgMQoKI2Rl
ZmluZSBDT05GSUdfSVBfTkZfRklMVEVSX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9U
QVJHRVRfUkVKRUNUX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9UQVJHRVRfTUlSUk9S
X01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9OQVRfTU9EVUxFIDEKI2RlZmluZSBDT05G
SUdfSVBfTkZfTkFUX05FRURFRCAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9UQVJHRVRfTUFTUVVF
UkFERV9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfSVBfTkZfVEFSR0VUX1JFRElSRUNUX01PRFVM
RSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9OQVRfRlRQX01PRFVMRSAxCgojZGVmaW5lIENPTkZJ
R19JUF9ORl9NQU5HTEVfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX1RBUkdFVF9UT1Nf
TU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX0lQX05GX1RBUkdFVF9NQVJLX01PRFVMRSAxCgojZGVm
aW5lIENPTkZJR19JUF9ORl9UQVJHRVRfTE9HX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9O
Rl9UQVJHRVRfVENQTVNTX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19JUF9ORl9DT01QQVRfSVBD
SEFJTlNfTU9EVUxFIDEKI2RlZmluZSBDT05GSUdfSVBfTkZfTkFUX05FRURFRCAxCgojZGVmaW5l
IENPTkZJR19JUF9ORl9DT01QQVRfSVBGV0FETV9NT0RVTEUgMQojZGVmaW5lIENPTkZJR19JUF9O
Rl9OQVRfTkVFREVEIDEKIyAyMTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
YXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfQkxLX0RFVl9MT09QIDEKIyAyNDQgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfSURF
IDEKCgoKCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFIDEKCgoKCgoKI2RlZmluZSBDT05GSUdf
QkxLX0RFVl9JREVESVNLIDEKI2RlZmluZSBDT05GSUdfSURFRElTS19NVUxUSV9NT0RFIDEKIyAy
NjggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmlu
ZSBDT05GSUdfQkxLX0RFVl9JREVDU19NT0RVTEUgMQojZGVmaW5lIENPTkZJR19CTEtfREVWX0lE
RUNEIDEKCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFVEFQRV9NT0RVTEUgMQojZGVmaW5lIENP
TkZJR19CTEtfREVWX0lERUZMT1BQWSAxCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFU0NTSSAx
CiMgMjgyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNk
ZWZpbmUgQ09ORklHX0JMS19ERVZfSURFUENJIDEKI2RlZmluZSBDT05GSUdfSURFUENJX1NIQVJF
X0lSUSAxCiNkZWZpbmUgQ09ORklHX0JMS19ERVZfSURFRE1BX1BDSSAxCgojZGVmaW5lIENPTkZJ
R19JREVETUFfUENJX0FVVE8gMQojZGVmaW5lIENPTkZJR19CTEtfREVWX0lERURNQSAxCiMgMzAy
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUg
Q09ORklHX0JMS19ERVZfUElJWCAxCiMgMzE0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0lERURNQV9BVVRPIDEKCgojZGVmaW5l
IENPTkZJR19CTEtfREVWX0lERV9NT0RFUyAxCgoKCgojZGVmaW5lIENPTkZJR19TQ1NJIDEKCgoK
CiNkZWZpbmUgQ09ORklHX0JMS19ERVZfU0QgMQojZGVmaW5lIENPTkZJR19TRF9FWFRSQV9ERVZT
ICg0MCkKCiNkZWZpbmUgQ09ORklHX0NIUl9ERVZfU1RfTU9EVUxFIDEKCgojZGVmaW5lIENPTkZJ
R19CTEtfREVWX1NSX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19TUl9FWFRSQV9ERVZTICgyKQoK
I2RlZmluZSBDT05GSUdfQ0hSX0RFVl9TR19NT0RVTEUgMQoKCgoKI2RlZmluZSBDT05GSUdfU0NT
SV9ERUJVR19RVUVVRVMgMQoKI2RlZmluZSBDT05GSUdfU0NTSV9DT05TVEFOVFMgMQojZGVmaW5l
IENPTkZJR19TQ1NJX0xPR0dJTkcgMQojIDM4NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19TQ1NJX1FMT0dJQ18xMjgwIDEKIyAz
OTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmlu
ZSBDT05GSUdfU0NTSV9QQ01DSUEgMQoKI2RlZmluZSBDT05GSUdfUENNQ0lBX0FIQTE1MlhfTU9E
VUxFIDEKCiNkZWZpbmUgQ09ORklHX1BDTUNJQV9GRE9NQUlOX01PRFVMRSAxCgoKI2RlZmluZSBD
T05GSUdfUENNQ0lBX1FMT0dJQ19NT0RVTEUgMQoKCgoKI2RlZmluZSBDT05GSUdfTkVUREVWSUNF
UyAxCgoKCgoKI2RlZmluZSBDT05GSUdfRFVNTVkgMQojIDQyNCAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19ORVRfRVRIRVJORVQg
MQoKCgoKCgoKI2RlZmluZSBDT05GSUdfTkVUX1ZFTkRPUl8zQ09NIDEKCgoKCgoKCiNkZWZpbmUg
Q09ORklHX1ZPUlRFWF9NT0RVTEUgMQoKCgoKCiNkZWZpbmUgQ09ORklHX05FVF9QQ0kgMQojIDQ1
NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5l
IENPTkZJR19FRVBSTzEwMCAxCiMgNDkwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX1BQUF9NT0RVTEUgMQojZGVmaW5lIENPTkZJ
R19QUFBfTVVMVElMSU5LIDEKI2RlZmluZSBDT05GSUdfUFBQX0ZJTFRFUiAxCgojZGVmaW5lIENP
TkZJR19QUFBfQVNZTkNfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1BQUF9TWU5DX1RUWV9NT0RV
TEUgMQoKI2RlZmluZSBDT05GSUdfUFBQX0RFRkxBVEVfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklH
X1BQUF9CU0RDT01QX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19QUFBPRV9NT0RVTEUgMQoKCgoK
CiNkZWZpbmUgQ09ORklHX05FVF9SQURJTyAxCgoKCgojZGVmaW5lIENPTkZJR19BSVJPTkVUNDUw
MF9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfQUlST05FVDQ1MDBfTk9OQ1NfTU9EVUxFIDEKCiNk
ZWZpbmUgQ09ORklHX0FJUk9ORVQ0NTAwX1BDSSAxCgoKCiNkZWZpbmUgQ09ORklHX0FJUk9ORVQ0
NTAwX1BST0NfTU9EVUxFIDEKCgoKCgoKCiNkZWZpbmUgQ09ORklHX05FVF9XSVJFTEVTUyAxCiMg
NTQ3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZp
bmUgQ09ORklHX05FVF9QQ01DSUEgMQojIDU1OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19ORVRfUENNQ0lBX1JBRElPIDEKCiNk
ZWZpbmUgQ09ORklHX1BDTUNJQV9SQVlDU19NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfUENNQ0lB
X05FVFdBVkVfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1BDTUNJQV9XQVZFTEFOX01PRFVMRSAx
CgojZGVmaW5lIENPTkZJR19BSVJPTkVUNDUwMF9DU19NT0RVTEUgMQojIDU4NiAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5lIENPTkZJR19JTlBV
VCAxCiNkZWZpbmUgQ09ORklHX0lOUFVUX0tFWUJERVYgMQojZGVmaW5lIENPTkZJR19JTlBVVF9N
T1VTRURFViAxCiNkZWZpbmUgQ09ORklHX0lOUFVUX01PVVNFREVWX1NDUkVFTl9YICgxMDI0KQoj
ZGVmaW5lIENPTkZJR19JTlBVVF9NT1VTRURFVl9TQ1JFRU5fWSAoNzY4KQoKI2RlZmluZSBDT05G
SUdfSU5QVVRfSk9ZREVWX01PRFVMRSAxCiNkZWZpbmUgQ09ORklHX0lOUFVUX0VWREVWIDEKCgoK
CiNkZWZpbmUgQ09ORklHX1ZUIDEKI2RlZmluZSBDT05GSUdfVlRfQ09OU09MRSAxCiNkZWZpbmUg
Q09ORklHX1NFUklBTCAxCiNkZWZpbmUgQ09ORklHX1NFUklBTF9DT05TT0xFIDEKCgojZGVmaW5l
IENPTkZJR19VTklYOThfUFRZUyAxCiNkZWZpbmUgQ09ORklHX1VOSVg5OF9QVFlfQ09VTlQgKDI1
NikKIyA2MTYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIK
I2RlZmluZSBDT05GSUdfTU9VU0UgMQojZGVmaW5lIENPTkZJR19QU01PVVNFIDEKIyA2MzggIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05G
SUdfRUZJX1JUQyAxCiMgNjQ4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1
dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0FHUCAxCgojZGVmaW5lIENPTkZJR19BR1BfSTQ2MCAx
CiNkZWZpbmUgQ09ORklHX0FHUF9JNDYwX0ZVTExSUSAxCgoKCgoKCiNkZWZpbmUgQ09ORklHX0FH
UF9QVEVfRklYVVBTIDEKI2RlZmluZSBDT05GSUdfRFJNIDEKIyA2NzEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfUENNQ0lBX1NF
UklBTF9DU19NT0RVTEUgMQoKCgoKCiNkZWZpbmUgQ09ORklHX1ZJREVPX0RFVl9NT0RVTEUgMQoK
CgoKI2RlZmluZSBDT05GSUdfVklERU9fUFJPQ19GUyAxCiMgNzE5ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0FVVE9GU19GUyAx
CgoKI2RlZmluZSBDT05GSUdfUkVJU0VSRlNfRlNfTU9EVUxFIDEKI2RlZmluZSBDT05GSUdfUkVJ
U0VSRlNfQ0hFQ0sgMQoKCgoKCiNkZWZpbmUgQ09ORklHX0ZBVF9GUyAxCiNkZWZpbmUgQ09ORklH
X01TRE9TX0ZTIDEKCiNkZWZpbmUgQ09ORklHX1ZGQVRfRlMgMQoKCgoKCiNkZWZpbmUgQ09ORklH
X0lTTzk2NjBfRlMgMQoKCgoKI2RlZmluZSBDT05GSUdfTlRGU19GU19NT0RVTEUgMQoKCiNkZWZp
bmUgQ09ORklHX1BST0NfRlMgMQoKCgojZGVmaW5lIENPTkZJR19ERVZQVFNfRlMgMQoKCgojZGVm
aW5lIENPTkZJR19FWFQyX0ZTIDEKCgojZGVmaW5lIENPTkZJR19VREZfRlNfTU9EVUxFIDEKIyA3
NjYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYXV0b2NvbmYuaCIKI2RlZmlu
ZSBDT05GSUdfTkZTX0ZTIDEKI2RlZmluZSBDT05GSUdfTkZTX1YzIDEKCiNkZWZpbmUgQ09ORklH
X05GU0QgMQojZGVmaW5lIENPTkZJR19ORlNEX1YzIDEKI2RlZmluZSBDT05GSUdfU1VOUlBDIDEK
I2RlZmluZSBDT05GSUdfTE9DS0QgMQojZGVmaW5lIENPTkZJR19MT0NLRF9WNCAxCiMgNzg4ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09O
RklHX1BBUlRJVElPTl9BRFZBTkNFRCAxCgoKCgoKI2RlZmluZSBDT05GSUdfTVNET1NfUEFSVElU
SU9OIDEKCgoKCiNkZWZpbmUgQ09ORklHX0VGSV9QQVJUSVRJT04gMQoKCgoKCiNkZWZpbmUgQ09O
RklHX05MUyAxCgoKCgojZGVmaW5lIENPTkZJR19OTFNfREVGQVVMVCAiaXNvODg1OS0xIgojIDg1
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5l
IENPTkZJR19WR0FfQ09OU09MRSAxCgoKCgojZGVmaW5lIENPTkZJR19GQiAxCiNkZWZpbmUgQ09O
RklHX0RVTU1ZX0NPTlNPTEUgMQoKI2RlZmluZSBDT05GSUdfRkJfUklWQV9NT0RVTEUgMQojIDg3
NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hdXRvY29uZi5oIgojZGVmaW5l
IENPTkZJR19GQkNPTl9DRkI4X01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19GQkNPTl9DRkIxNl9N
T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfRkJDT05fQ0ZCMzJfTU9EVUxFIDEKCgojZGVmaW5lIENP
TkZJR19GT05UXzh4OCAxCiNkZWZpbmUgQ09ORklHX0ZPTlRfOHgxNiAxCiNkZWZpbmUgQ09ORklH
X1BDSV9DT05TT0xFIDEKCgoKCiNkZWZpbmUgQ09ORklHX1NPVU5EIDEKCgoKI2RlZmluZSBDT05G
SUdfU09VTkRfQ1M0MjgxIDEKIyA5MTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvYXV0b2NvbmYuaCIKI2RlZmluZSBDT05GSUdfVVNCIDEKCgoKCgojZGVmaW5lIENPTkZJR19V
U0JfREVWSUNFRlMgMQojZGVmaW5lIENPTkZJR19VU0JfQkFORFdJRFRIIDEKCgoKCiNkZWZpbmUg
Q09ORklHX1VTQl9VSENJX0FMVCAxCiNkZWZpbmUgQ09ORklHX1VTQl9PSENJIDEKCgoKCgojZGVm
aW5lIENPTkZJR19VU0JfQVVESU9fTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9CTFVFVE9P
VEhfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TVE9SQUdFX01PRFVMRSAxCgojZGVmaW5l
IENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NIDEKI2RlZmluZSBDT05GSUdfVVNCX1NUT1JBR0Vf
RFBDTSAxCgojZGVmaW5lIENPTkZJR19VU0JfQUNNX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19V
U0JfUFJJTlRFUl9NT0RVTEUgMQoKCgoKCiNkZWZpbmUgQ09ORklHX1VTQl9ISURfTU9EVUxFIDEK
CiNkZWZpbmUgQ09ORklHX1VTQl9LQkRfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9NT1VT
RV9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfVVNCX1dBQ09NX01PRFVMRSAxCgoKCgoKI2RlZmlu
ZSBDT05GSUdfVVNCX0RDMlhYX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19VU0JfTURDODAwX01P
RFVMRSAxCgojZGVmaW5lIENPTkZJR19VU0JfU0NBTk5FUl9NT0RVTEUgMQoKI2RlZmluZSBDT05G
SUdfVVNCX01JQ1JPVEVLX01PRFVMRSAxCgoKCgoKI2RlZmluZSBDT05GSUdfVVNCX0lCTUNBTV9N
T0RVTEUgMQoKI2RlZmluZSBDT05GSUdfVVNCX09WNTExX01PRFVMRSAxCgojZGVmaW5lIENPTkZJ
R19VU0JfUFdDX01PRFVMRSAxCgoKI2RlZmluZSBDT05GSUdfVVNCX0RTQlJfTU9EVUxFIDEKCiNk
ZWZpbmUgQ09ORklHX1VTQl9EQUJVU0JfTU9EVUxFIDEKCgoKCgojZGVmaW5lIENPTkZJR19VU0Jf
UExVU0JfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9QRUdBU1VTX01PRFVMRSAxCgoKI2Rl
ZmluZSBDT05GSUdfVVNCX05FVDEwODBfTU9EVUxFIDEKIyAxMDAyICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxf
TU9EVUxFIDEKI2RlZmluZSBDT05GSUdfVVNCX1NFUklBTF9HRU5FUklDIDEKCiNkZWZpbmUgQ09O
RklHX1VTQl9TRVJJQUxfQkVMS0lOX01PRFVMRSAxCgojZGVmaW5lIENPTkZJR19VU0JfU0VSSUFM
X1dISVRFSEVBVF9NT0RVTEUgMQoKI2RlZmluZSBDT05GSUdfVVNCX1NFUklBTF9ESUdJX0FDQ0VM
RVBPUlRfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfRU1QRUdfTU9EVUxFIDEK
CiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfRlRESV9TSU9fTU9EVUxFIDEKCiNkZWZpbmUgQ09O
RklHX1VTQl9TRVJJQUxfVklTT1JfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxf
RURHRVBPUlRfTU9EVUxFIDEKCiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfS0VZU1BBTl9QREFf
TU9EVUxFIDEKCgojZGVmaW5lIENPTkZJR19VU0JfU0VSSUFMX01DVF9VMjMyX01PRFVMRSAxCgoK
CiNkZWZpbmUgQ09ORklHX1VTQl9TRVJJQUxfT01OSU5FVF9NT0RVTEUgMQoKCgoKCiNkZWZpbmUg
Q09ORklHX1VTQl9SSU81MDBfTU9EVUxFIDEKIyAxMDQyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L2F1dG9jb25mLmgiCiNkZWZpbmUgQ09ORklHX0lBMzJfU1VQUE9SVCAxCiNk
ZWZpbmUgQ09ORklHX01BVEhFTVUgMQojZGVmaW5lIENPTkZJR19NQUdJQ19TWVNSUSAxCgoKCiNk
ZWZpbmUgQ09ORklHX0lBNjRfUFJJTlRfSEFaQVJEUyAxCiNkZWZpbmUgQ09ORklHX0tEQiAxCiNk
ZWZpbmUgQ09ORklHX0tEQl9PRkYgMQoKCgoKI2RlZmluZSBDT05GSUdfS0FMTFNZTVMgMQojIDUg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDIKIyA2ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDIKCgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcG9zaXhfdHlwZXMuaCIgMQoKI2RlZmluZSBfTElO
VVhfUE9TSVhfVFlQRVNfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L3N0ZGRlZi5oIiAxCgojZGVmaW5lIF9MSU5VWF9TVERERUZfSAoKCgoKCiNkZWZpbmUgTlVMTCAo
KHZvaWQgKikwKQoKCgojZGVmaW5lIG9mZnNldG9mKFRZUEUsIE1FTUJFUikgKChzaXplX3QpICYo
KFRZUEUgKikwKS0+TUVNQkVSKQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvcG9zaXhfdHlwZXMuaCIgMgojIDIyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3Bvc2l4X3R5cGVzLmgiCiNkZWZpbmUgX19ORkRCSVRTICg4ICogc2l6ZW9mKHVuc2lnbmVk
IGxvbmcpKQoKCiNkZWZpbmUgX19GRF9TRVRTSVpFIDEwMjQKCgojZGVmaW5lIF9fRkRTRVRfTE9O
R1MgKF9fRkRfU0VUU0laRS9fX05GREJJVFMpCgoKI2RlZmluZSBfX0ZERUxUKGQpICgoZCkgLyBf
X05GREJJVFMpCgoKI2RlZmluZSBfX0ZETUFTSyhkKSAoMVVMIDw8ICgoZCkgJSBfX05GREJJVFMp
KQoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHVuc2lnbmVkIGxvbmcgZmRzX2JpdHMgWygxMDI0
Lyg4ICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKSldOwp9IF9fa2VybmVsX2ZkX3NldDsKCgp0eXBl
ZGVmIHZvaWQgKCpfX2tlcm5lbF9zaWdoYW5kbGVyX3QpKGludCk7CgoKdHlwZWRlZiBpbnQgX19r
ZXJuZWxfa2V5X3Q7CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Bvc2l4
X3R5cGVzLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BPU0lYX1RZUEVTX0gKIyAxMyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcG9zaXhfdHlwZXMuaCIKdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgX19rZXJuZWxfZGV2X3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fa2VybmVsX2lub190
Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX2tlcm5lbF9tb2RlX3Q7CnR5cGVkZWYgdW5zaWduZWQg
aW50IF9fa2VybmVsX25saW5rX3Q7CnR5cGVkZWYgbG9uZyBfX2tlcm5lbF9vZmZfdDsKdHlwZWRl
ZiBsb25nIGxvbmcgX19rZXJuZWxfbG9mZl90Owp0eXBlZGVmIGludCBfX2tlcm5lbF9waWRfdDsK
dHlwZWRlZiBpbnQgX19rZXJuZWxfaXBjX3BpZF90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX2tl
cm5lbF91aWRfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19rZXJuZWxfZ2lkX3Q7CnR5cGVkZWYg
dW5zaWduZWQgbG9uZyBfX2tlcm5lbF9zaXplX3Q7CnR5cGVkZWYgbG9uZyBfX2tlcm5lbF9zc2l6
ZV90Owp0eXBlZGVmIGxvbmcgX19rZXJuZWxfcHRyZGlmZl90Owp0eXBlZGVmIGxvbmcgX19rZXJu
ZWxfdGltZV90Owp0eXBlZGVmIGxvbmcgX19rZXJuZWxfc3VzZWNvbmRzX3Q7CnR5cGVkZWYgbG9u
ZyBfX2tlcm5lbF9jbG9ja190Owp0eXBlZGVmIGludCBfX2tlcm5lbF9kYWRkcl90Owp0eXBlZGVm
IGNoYXIgKiBfX2tlcm5lbF9jYWRkcl90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgX19rZXJuZWxf
c2lnc2V0X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX19rZXJuZWxfdWlkMTZfdDsKdHlwZWRl
ZiB1bnNpZ25lZCBzaG9ydCBfX2tlcm5lbF9naWQxNl90OwoKdHlwZWRlZiBzdHJ1Y3QgewogICAg
ICAgIGludCB2YWxbMl07Cn0gX19rZXJuZWxfZnNpZF90OwoKdHlwZWRlZiBfX2tlcm5lbF91aWRf
dCBfX2tlcm5lbF9vbGRfdWlkX3Q7CnR5cGVkZWYgX19rZXJuZWxfZ2lkX3QgX19rZXJuZWxfb2xk
X2dpZF90Owp0eXBlZGVmIF9fa2VybmVsX3VpZF90IF9fa2VybmVsX3VpZDMyX3Q7CnR5cGVkZWYg
X19rZXJuZWxfZ2lkX3QgX19rZXJuZWxfZ2lkMzJfdDsKIyA1OSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vcG9zaXhfdHlwZXMuaCIKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0ZE
X1NFVCh1bnNpZ25lZCBsb25nIGZkLCBfX2tlcm5lbF9mZF9zZXQgKmZkc2V0cCkKewogICAgICAg
IHVuc2lnbmVkIGxvbmcgX3RtcCA9IGZkIC8gKDggKiBzaXplb2YodW5zaWduZWQgbG9uZykpOwog
ICAgICAgIHVuc2lnbmVkIGxvbmcgX3JlbSA9IGZkICUgKDggKiBzaXplb2YodW5zaWduZWQgbG9u
ZykpOwogICAgICAgIGZkc2V0cC0+ZmRzX2JpdHNbX3RtcF0gfD0gKDFVTDw8X3JlbSk7Cn0KCgpz
dGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fRkRfQ0xSKHVuc2lnbmVkIGxvbmcgZmQsIF9fa2VybmVs
X2ZkX3NldCAqZmRzZXRwKQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfdG1wID0gZmQgLyAoOCAq
IHNpemVvZih1bnNpZ25lZCBsb25nKSk7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfcmVtID0gZmQg
JSAoOCAqIHNpemVvZih1bnNpZ25lZCBsb25nKSk7CiAgICAgICAgZmRzZXRwLT5mZHNfYml0c1tf
dG1wXSAmPSB+KDFVTDw8X3JlbSk7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19GRF9JU1NF
VCh1bnNpZ25lZCBsb25nIGZkLCBjb25zdCBfX2tlcm5lbF9mZF9zZXQgKnApCnsKICAgICAgICB1
bnNpZ25lZCBsb25nIF90bXAgPSBmZCAvICg4ICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcpKTsKICAg
ICAgICB1bnNpZ25lZCBsb25nIF9yZW0gPSBmZCAlICg4ICogc2l6ZW9mKHVuc2lnbmVkIGxvbmcp
KTsKICAgICAgICByZXR1cm4gKHAtPmZkc19iaXRzW190bXBdICYgKDFVTDw8X3JlbSkpICE9IDA7
Cn0KCgoKCgoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0ZEX1pFUk8oX19rZXJuZWxfZmRfc2V0
ICpwKQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqdG1wID0gcC0+ZmRzX2JpdHM7CiAgICAgICAg
aW50IGk7CgogICAgICAgIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcCgoMTAyNC8oOCAqIHNpemVv
Zih1bnNpZ25lZCBsb25nKSkpKSkgewogICAgICAgICAgICAgICAgc3dpdGNoICgoMTAyNC8oOCAq
IHNpemVvZih1bnNpZ25lZCBsb25nKSkpKSB7CiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE2
OgogICAgICAgICAgICAgICAgICAgICAgICB0bXBbIDBdID0gMDsgdG1wWyAxXSA9IDA7IHRtcFsg
Ml0gPSAwOyB0bXBbIDNdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgdG1wWyA0XSA9IDA7
IHRtcFsgNV0gPSAwOyB0bXBbIDZdID0gMDsgdG1wWyA3XSA9IDA7CiAgICAgICAgICAgICAgICAg
ICAgICAgIHRtcFsgOF0gPSAwOyB0bXBbIDldID0gMDsgdG1wWzEwXSA9IDA7IHRtcFsxMV0gPSAw
OwogICAgICAgICAgICAgICAgICAgICAgICB0bXBbMTJdID0gMDsgdG1wWzEzXSA9IDA7IHRtcFsx
NF0gPSAwOyB0bXBbMTVdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwoKICAg
ICAgICAgICAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICAgICAgICAgICAgdG1wWyAw
XSA9IDA7IHRtcFsgMV0gPSAwOyB0bXBbIDJdID0gMDsgdG1wWyAzXSA9IDA7CiAgICAgICAgICAg
ICAgICAgICAgICAgIHRtcFsgNF0gPSAwOyB0bXBbIDVdID0gMDsgdG1wWyA2XSA9IDA7IHRtcFsg
N10gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CgogICAgICAgICAgICAgICAg
ICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgICAgICAgICB0bXBbIDBdID0gMDsgdG1wWyAx
XSA9IDA7IHRtcFsgMl0gPSAwOyB0bXBbIDNdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpID0gKDEwMjQvKDgg
KiBzaXplb2YodW5zaWduZWQgbG9uZykpKTsKICAgICAgICB3aGlsZSAoaSkgewogICAgICAgICAg
ICAgICAgaS0tOwogICAgICAgICAgICAgICAgKnRtcCA9IDA7CiAgICAgICAgICAgICAgICB0bXAr
KzsKICAgICAgICB9Cn0KIyA0NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9w
b3NpeF90eXBlcy5oIiAyCiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90
eXBlcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdHlwZXMuaCIg
MQoKI2RlZmluZSBfQVNNX0lBNjRfVFlQRVNfSAojIDE5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS90eXBlcy5oIgojZGVmaW5lIF9fSUE2NF9VTCh4KSAoKHVuc2lnbmVkIGxvbmcp
KHgpKQojZGVmaW5lIF9fSUE2NF9VTF9DT05TVCh4KSB4ICMjIFVMCgoKCgp0eXBlZGVmIHVuc2ln
bmVkIGludCB1bW9kZV90OwoKCgoKCgp0eXBlZGVmIF9fc2lnbmVkX18gY2hhciBfX3M4Owp0eXBl
ZGVmIHVuc2lnbmVkIGNoYXIgX191ODsKCnR5cGVkZWYgX19zaWduZWRfXyBzaG9ydCBfX3MxNjsK
dHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3UxNjsKCnR5cGVkZWYgX19zaWduZWRfXyBpbnQgX19z
MzI7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdTMyOwoKdHlwZWRlZiBfX3NpZ25lZF9fIGxvbmcg
X19zNjQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBfX3U2NDsKCgoKCgoKdHlwZWRlZiBfX3M4IHM4
Owp0eXBlZGVmIF9fdTggdTg7Cgp0eXBlZGVmIF9fczE2IHMxNjsKdHlwZWRlZiBfX3UxNiB1MTY7
Cgp0eXBlZGVmIF9fczMyIHMzMjsKdHlwZWRlZiBfX3UzMiB1MzI7Cgp0eXBlZGVmIF9fczY0IHM2
NDsKdHlwZWRlZiBfX3U2NCB1NjQ7CgojZGVmaW5lIEJJVFNfUEVSX0xPTkcgNjQKCgoKdHlwZWRl
ZiB1NjQgZG1hX2FkZHJfdDsKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC90eXBlcy5oIiAyCgoKCnR5cGVkZWYgX19rZXJuZWxfZmRfc2V0IGZkX3NldDsKdHlwZWRlZiBf
X2tlcm5lbF9kZXZfdCBkZXZfdDsKdHlwZWRlZiBfX2tlcm5lbF9pbm9fdCBpbm9fdDsKdHlwZWRl
ZiBfX2tlcm5lbF9tb2RlX3QgbW9kZV90Owp0eXBlZGVmIF9fa2VybmVsX25saW5rX3Qgbmxpbmtf
dDsKdHlwZWRlZiBfX2tlcm5lbF9vZmZfdCBvZmZfdDsKdHlwZWRlZiBfX2tlcm5lbF9waWRfdCBw
aWRfdDsKdHlwZWRlZiBfX2tlcm5lbF9kYWRkcl90IGRhZGRyX3Q7CnR5cGVkZWYgX19rZXJuZWxf
a2V5X3Qga2V5X3Q7CnR5cGVkZWYgX19rZXJuZWxfc3VzZWNvbmRzX3Qgc3VzZWNvbmRzX3Q7CgoK
dHlwZWRlZiBfX2tlcm5lbF91aWQzMl90IHVpZF90Owp0eXBlZGVmIF9fa2VybmVsX2dpZDMyX3Qg
Z2lkX3Q7CnR5cGVkZWYgX19rZXJuZWxfdWlkMTZfdCB1aWQxNl90Owp0eXBlZGVmIF9fa2VybmVs
X2dpZDE2X3QgZ2lkMTZfdDsKIyA0NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC90eXBlcy5oIgp0eXBlZGVmIF9fa2VybmVsX2xvZmZfdCBsb2ZmX3Q7CgoKCgoKCgojZGVmaW5l
IF9TSVpFX1QKdHlwZWRlZiBfX2tlcm5lbF9zaXplX3Qgc2l6ZV90OwoKCgojZGVmaW5lIF9TU0la
RV9UCnR5cGVkZWYgX19rZXJuZWxfc3NpemVfdCBzc2l6ZV90OwoKCgojZGVmaW5lIF9QVFJESUZG
X1QKdHlwZWRlZiBfX2tlcm5lbF9wdHJkaWZmX3QgcHRyZGlmZl90OwoKCgojZGVmaW5lIF9USU1F
X1QKdHlwZWRlZiBfX2tlcm5lbF90aW1lX3QgdGltZV90OwoKCgojZGVmaW5lIF9DTE9DS19UCnR5
cGVkZWYgX19rZXJuZWxfY2xvY2tfdCBjbG9ja190OwoKCgojZGVmaW5lIF9DQUREUl9UCnR5cGVk
ZWYgX19rZXJuZWxfY2FkZHJfdCBjYWRkcl90OwoKCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdV9j
aGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVfc2hvcnQ7CnR5cGVkZWYgdW5zaWduZWQgaW50
IHVfaW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdV9sb25nOwoKCnR5cGVkZWYgdW5zaWduZWQg
Y2hhciB1bmNoYXI7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdXNob3J0Owp0eXBlZGVmIHVuc2ln
bmVkIGludCB1aW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdWxvbmc7CgoKI2RlZmluZSBfX0JJ
VF9UWVBFU19ERUZJTkVEX18KCnR5cGVkZWYgX191OCB1X2ludDhfdDsKdHlwZWRlZiBfX3M4IGlu
dDhfdDsKdHlwZWRlZiBfX3UxNiB1X2ludDE2X3Q7CnR5cGVkZWYgX19zMTYgaW50MTZfdDsKdHlw
ZWRlZiBfX3UzMiB1X2ludDMyX3Q7CnR5cGVkZWYgX19zMzIgaW50MzJfdDsKCgoKdHlwZWRlZiBf
X3U4IHVpbnQ4X3Q7CnR5cGVkZWYgX191MTYgdWludDE2X3Q7CnR5cGVkZWYgX191MzIgdWludDMy
X3Q7CgoKdHlwZWRlZiBfX3U2NCB1aW50NjRfdDsKdHlwZWRlZiBfX3U2NCB1X2ludDY0X3Q7CnR5
cGVkZWYgX19zNjQgaW50NjRfdDsKIyAxMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdHlwZXMuaCIKc3RydWN0IHVzdGF0IHsKICAgICAgICBfX2tlcm5lbF9kYWRkcl90IGZf
dGZyZWU7CiAgICAgICAgX19rZXJuZWxfaW5vX3QgZl90aW5vZGU7CiAgICAgICAgY2hhciBmX2Zu
YW1lWzZdOwogICAgICAgIGNoYXIgZl9mcGFja1s2XTsKfTsKIyA1NiAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC91ZGZfMTY3LmgiIDIKI2RlZmluZSBVaW50OCBfX3U4CiNkZWZp
bmUgU2ludDggX19zOAojZGVmaW5lIFVpbnQxNiBfX3UxNgojZGVmaW5lIFNpbnQxNiBfX3MxNgoj
ZGVmaW5lIFVpbnQzMiBfX3UzMgojZGVmaW5lIFNpbnQzMiBfX3MzMgojZGVmaW5lIFVpbnQ2NCBf
X3U2NAojZGVmaW5lIFNpbnQ2NCBfX3M2NAp0eXBlZGVmIF9fdTggZHN0cmluZzsKIyA3OCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZfMTY3LmgiCiNwcmFnbWEgcGFjaygx
KQoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3U4IGNoYXJTZXRUeXBlOwogICAgICAgIF9f
dTggY2hhclNldEluZm9bNjNdOwp9IGNoYXJzcGVjOwoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg
ICBfX3UxNiB0eXBlQW5kVGltZXpvbmU7CiAgICAgICAgX191MTYgeWVhcjsKICAgICAgICBfX3U4
IG1vbnRoOwogICAgICAgIF9fdTggZGF5OwogICAgICAgIF9fdTggaG91cjsKICAgICAgICBfX3U4
IG1pbnV0ZTsKICAgICAgICBfX3U4IHNlY29uZDsKICAgICAgICBfX3U4IGNlbnRpc2Vjb25kczsK
ICAgICAgICBfX3U4IGh1bmRyZWRzT2ZNaWNyb3NlY29uZHM7CiAgICAgICAgX191OCBtaWNyb3Nl
Y29uZHM7Cn0gdGltZXN0YW1wOwoKCiNkZWZpbmUgVElNRVNUQU1QX1RZUEVfQ1VUIDB4MDAwMFUK
I2RlZmluZSBUSU1FU1RBTVBfVFlQRV9MT0NBTCAweDAwMDFVCiNkZWZpbmUgVElNRVNUQU1QX1RZ
UEVfQUdSRUVNRU5UIDB4MDAwMlUKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgX191OCBmbGFn
czsKICAgICAgICBfX3U4IGlkZW50WzIzXTsKICAgICAgICBfX3U4IGlkZW50U3VmZml4WzhdOwp9
IEVudGl0eUlEOwojZGVmaW5lIHJlZ2lkIEVudGl0eUlECgoKI2RlZmluZSBFTlRJVFlJRF9GTEFH
U19ESVJUWSAweDAxVQojZGVmaW5lIEVOVElUWUlEX0ZMQUdTX1BST1RFQ1RFRCAweDAyVQoKCiNk
ZWZpbmUgU1REX0lEX0xFTiA1CnN0cnVjdCBWb2xTdHJ1Y3REZXNjIHsKICAgICAgICBfX3U4IHN0
cnVjdFR5cGU7CiAgICAgICAgX191OCBzdGRJZGVudFs1XTsKICAgICAgICBfX3U4IHN0cnVjdFZl
cnNpb247CiAgICAgICAgX191OCBzdHJ1Y3REYXRhWzIwNDFdOwp9OwoKCiNkZWZpbmUgU1REX0lE
X0JFQTAxICJCRUEwMSIKI2RlZmluZSBTVERfSURfQk9PVDIgIkJPT1QyIgojZGVmaW5lIFNURF9J
RF9DRDAwMSAiQ0QwMDEiCiNkZWZpbmUgU1REX0lEX0NEVzAyICJDRFcwMiIKI2RlZmluZSBTVERf
SURfTlNSMDIgIk5TUjAyIgojZGVmaW5lIFNURF9JRF9OU1IwMyAiTlNSMDMiCiNkZWZpbmUgU1RE
X0lEX1RFQTAxICJURUEwMSIKCgpzdHJ1Y3QgQmVnaW5uaW5nRXh0ZW5kZWRBcmVhRGVzYyB7CiAg
ICAgICAgX191OCBzdHJ1Y3RUeXBlOwogICAgICAgIF9fdTggc3RkSWRlbnRbNV07CiAgICAgICAg
X191OCBzdHJ1Y3RWZXJzaW9uOwogICAgICAgIF9fdTggc3RydWN0RGF0YVsyMDQxXTsKfTsKCgpz
dHJ1Y3QgVGVybWluYXRpbmdFeHRlbmRlZEFyZWFEZXNjIHsKICAgICAgICBfX3U4IHN0cnVjdFR5
cGU7CiAgICAgICAgX191OCBzdGRJZGVudFs1XTsKICAgICAgICBfX3U4IHN0cnVjdFZlcnNpb247
CiAgICAgICAgX191OCBzdHJ1Y3REYXRhWzIwNDFdOwp9OwoKCnN0cnVjdCBCb290RGVzYyB7CiAg
ICAgICAgX191OCBzdHJ1Y3RUeXBlOwogICAgICAgIF9fdTggc3RkSWRlbnRbNV07CiAgICAgICAg
X191OCBzdHJ1Y3RWZXJzaW9uOwogICAgICAgIF9fdTggcmVzZXJ2ZWQxOwogICAgICAgIEVudGl0
eUlEIGFyY2hpdGVjdHVyZVR5cGU7CiAgICAgICAgRW50aXR5SUQgYm9vdElkZW50OwogICAgICAg
IF9fdTMyIGJvb3RFeHRMb2NhdGlvbjsKICAgICAgICBfX3UzMiBib290RXh0TGVuZ3RoOwogICAg
ICAgIF9fdTY0IGxvYWRBZGRyZXNzOwogICAgICAgIF9fdTY0IHN0YXJ0QWRkcmVzczsKICAgICAg
ICB0aW1lc3RhbXAgZGVzY0NyZWF0aW9uRGF0ZUFuZFRpbWU7CiAgICAgICAgX191MTYgZmxhZ3M7
CiAgICAgICAgX191OCByZXNlcnZlZDJbMzJdOwogICAgICAgIF9fdTggYm9vdFVzZVsxOTA2XTsK
fTsKCgojZGVmaW5lIEJPT1RfRkxBR1NfRVJBU0UgMQoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAg
ICBfX3UzMiBleHRMZW5ndGg7CiAgICAgICAgX191MzIgZXh0TG9jYXRpb247Cn0gZXh0ZW50X2Fk
OwoKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3UxNiB0YWdJZGVudDsKICAgICAgICBfX3Ux
NiBkZXNjVmVyc2lvbjsKICAgICAgICBfX3U4IHRhZ0NoZWNrc3VtOwogICAgICAgIF9fdTggcmVz
ZXJ2ZWQ7CiAgICAgICAgX191MTYgdGFnU2VyaWFsTnVtOwogICAgICAgIF9fdTE2IGRlc2NDUkM7
CiAgICAgICAgX191MTYgZGVzY0NSQ0xlbmd0aDsKICAgICAgICBfX3UzMiB0YWdMb2NhdGlvbjsK
fSB0YWc7CgoKI2RlZmluZSBUSURfVU5VU0VEX0RFU0MgMHgwMDAwVQojZGVmaW5lIFRJRF9QUklN
QVJZX1ZPTF9ERVNDIDB4MDAwMVUKI2RlZmluZSBUSURfQU5DSE9SX1ZPTF9ERVNDX1BUUiAweDAw
MDJVCiNkZWZpbmUgVElEX1ZPTF9ERVNDX1BUUiAweDAwMDNVCiNkZWZpbmUgVElEX0lNUF9VU0Vf
Vk9MX0RFU0MgMHgwMDA0VQojZGVmaW5lIFRJRF9QQVJUSVRJT05fREVTQyAweDAwMDVVCiNkZWZp
bmUgVElEX0xPR0lDQUxfVk9MX0RFU0MgMHgwMDA2VQojZGVmaW5lIFRJRF9VTkFMTE9DX1NQQUNF
X0RFU0MgMHgwMDA3VQojZGVmaW5lIFRJRF9URVJNSU5BVElOR19ERVNDIDB4MDAwOFUKI2RlZmlu
ZSBUSURfTE9HSUNBTF9WT0xfSU5URUdSSVRZX0RFU0MgMHgwMDA5VQoKCiNkZWZpbmUgVElEX0ZJ
TEVfU0VUX0RFU0MgMHgwMTAwVQojZGVmaW5lIFRJRF9GSUxFX0lERU5UX0RFU0MgMHgwMTAxVQoj
ZGVmaW5lIFRJRF9BTExPQ19FWFRFTlRfREVTQyAweDAxMDJVCiNkZWZpbmUgVElEX0lORElSRUNU
X0VOVFJZIDB4MDEwM1UKI2RlZmluZSBUSURfVEVSTUlOQUxfRU5UUlkgMHgwMTA0VQojZGVmaW5l
IFRJRF9GSUxFX0VOVFJZIDB4MDEwNVUKI2RlZmluZSBUSURfRVhURU5ERURfQVRUUkVfSEVBREVS
X0RFU0MgMHgwMTA2VQojZGVmaW5lIFRJRF9VTkFMTE9DQVRFRF9TUEFDRV9FTlRSWSAweDAxMDdV
CiNkZWZpbmUgVElEX1NQQUNFX0JJVE1BUF9ERVNDIDB4MDEwOFUKI2RlZmluZSBUSURfUEFSVElU
SU9OX0lOVEVHUklUWV9FTlRSWSAweDAxMDlVCiNkZWZpbmUgVElEX0VYVEVOREVEX0ZJTEVfRU5U
UlkgMHgwMTBBVQoKCnN0cnVjdCBOU1JEZXNjIHsKICAgICAgICBfX3U4IHN0cnVjdFR5cGU7CiAg
ICAgICAgX191OCBzdGRJZGVudFs1XTsKICAgICAgICBfX3U4IHN0cnVjdFZlcnNpb247CiAgICAg
ICAgX191OCByZXNlcnZlZDsKICAgICAgICBfX3U4IHN0cnVjdERhdGFbMjA0MF07Cn07CgoKc3Ry
dWN0IFByaW1hcnlWb2xEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBfX3UzMiB2
b2xEZXNjU2VxTnVtOwogICAgICAgIF9fdTMyIHByaW1hcnlWb2xEZXNjTnVtOwogICAgICAgIGRz
dHJpbmcgdm9sSWRlbnRbMzJdOwogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAgICAgICBfX3Ux
NiBtYXhWb2xTZXFOdW07CiAgICAgICAgX191MTYgaW50ZXJjaGFuZ2VMdmw7CiAgICAgICAgX191
MTYgbWF4SW50ZXJjaGFuZ2VMdmw7CiAgICAgICAgX191MzIgY2hhclNldExpc3Q7CiAgICAgICAg
X191MzIgbWF4Q2hhclNldExpc3Q7CiAgICAgICAgZHN0cmluZyB2b2xTZXRJZGVudFsxMjhdOwog
ICAgICAgIGNoYXJzcGVjIGRlc2NDaGFyU2V0OwogICAgICAgIGNoYXJzcGVjIGV4cGxhbmF0b3J5
Q2hhclNldDsKICAgICAgICBleHRlbnRfYWQgdm9sQWJzdHJhY3Q7CiAgICAgICAgZXh0ZW50X2Fk
IHZvbENvcHlyaWdodDsKICAgICAgICBFbnRpdHlJRCBhcHBJZGVudDsKICAgICAgICB0aW1lc3Rh
bXAgcmVjb3JkaW5nRGF0ZUFuZFRpbWU7CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAg
ICAgX191OCBpbXBVc2VbNjRdOwogICAgICAgIF9fdTMyIHByZWRlY2Vzc29yVm9sRGVzY1NlcUxv
Y2F0aW9uOwogICAgICAgIF9fdTE2IGZsYWdzOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbMjJdOwp9
OwoKCiNkZWZpbmUgVk9MX1NFVF9JREVOVCAxCgoKc3RydWN0IEFuY2hvclZvbERlc2NQdHIgewog
ICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIGV4dGVudF9hZCBtYWluVm9sRGVzY1NlcUV4dDsK
ICAgICAgICBleHRlbnRfYWQgcmVzZXJ2ZVZvbERlc2NTZXFFeHQ7CiAgICAgICAgX191OCByZXNl
cnZlZFs0ODBdOwp9OwoKCnN0cnVjdCBWb2xEZXNjUHRyIHsKICAgICAgICB0YWcgZGVzY1RhZzsK
ICAgICAgICBfX3UzMiB2b2xEZXNjU2VxTnVtOwogICAgICAgIGV4dGVudF9hZCBuZXh0Vm9sRGVz
Y1NlcUV4dDsKICAgICAgICBfX3U4IHJlc2VydmVkWzQ4NF07Cn07CgoKc3RydWN0IEltcFVzZVZv
bERlc2MgewogICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIF9fdTMyIHZvbERlc2NTZXFOdW07
CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAgICAgX191OCBpbXBVc2VbNDYwXTsKfTsK
CgpzdHJ1Y3QgUGFydGl0aW9uRGVzYyB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191
MzIgdm9sRGVzY1NlcU51bTsKICAgICAgICBfX3UxNiBwYXJ0aXRpb25GbGFnczsKICAgICAgICBf
X3UxNiBwYXJ0aXRpb25OdW1iZXI7CiAgICAgICAgRW50aXR5SUQgcGFydGl0aW9uQ29udGVudHM7
CiAgICAgICAgX191OCBwYXJ0aXRpb25Db250ZW50c1VzZVsxMjhdOwogICAgICAgIF9fdTMyIGFj
Y2Vzc1R5cGU7CiAgICAgICAgX191MzIgcGFydGl0aW9uU3RhcnRpbmdMb2NhdGlvbjsKICAgICAg
ICBfX3UzMiBwYXJ0aXRpb25MZW5ndGg7CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAg
ICAgX191OCBpbXBVc2VbMTI4XTsKICAgICAgICBfX3U4IHJlc2VydmVkWzE1Nl07Cn07CgoKI2Rl
ZmluZSBQQVJUSVRJT05fRkxBR1NfQUxMT0MgMQoKCiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRT
X0ZEQzAxICIrRkRDMDEiCiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRTX0NEMDAxICIrQ0QwMDEi
CiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRTX0NEVzAyICIrQ0RXMDIiCiNkZWZpbmUgUEFSVElU
SU9OX0NPTlRFTlRTX05TUjAyICIrTlNSMDIiCiNkZWZpbmUgUEFSVElUSU9OX0NPTlRFTlRTX05T
UjAzICIrTlNSMDMiCgoKI2RlZmluZSBQQVJUSVRJT05fQUNDRVNTX05PTkUgMAojZGVmaW5lIFBB
UlRJVElPTl9BQ0NFU1NfUiAxCiNkZWZpbmUgUEFSVElUSU9OX0FDQ0VTU19XTyAyCiNkZWZpbmUg
UEFSVElUSU9OX0FDQ0VTU19SVyAzCiNkZWZpbmUgUEFSVElUSU9OX0FDQ0VTU19PVyA0CgoKc3Ry
dWN0IExvZ2ljYWxWb2xEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBfX3UzMiB2
b2xEZXNjU2VxTnVtOwogICAgICAgIGNoYXJzcGVjIGRlc2NDaGFyU2V0OwogICAgICAgIGRzdHJp
bmcgbG9naWNhbFZvbElkZW50WzEyOF07CiAgICAgICAgX191MzIgbG9naWNhbEJsb2NrU2l6ZTsK
ICAgICAgICBFbnRpdHlJRCBkb21haW5JZGVudDsKICAgICAgICBfX3U4IGxvZ2ljYWxWb2xDb250
ZW50c1VzZVsxNl07CiAgICAgICAgX191MzIgbWFwVGFibGVMZW5ndGg7CiAgICAgICAgX191MzIg
bnVtUGFydGl0aW9uTWFwczsKICAgICAgICBFbnRpdHlJRCBpbXBJZGVudDsKICAgICAgICBfX3U4
IGltcFVzZVsxMjhdOwogICAgICAgIGV4dGVudF9hZCBpbnRlZ3JpdHlTZXFFeHQ7CiAgICAgICAg
X191OCBwYXJ0aXRpb25NYXBzWzBdOwp9OwoKCnN0cnVjdCBHZW5lcmljUGFydGl0aW9uTWFwIHsK
ICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191OCBwYXJ0aXRpb25NYXBM
ZW5ndGg7CiAgICAgICAgX191OCBwYXJ0aXRpb25NYXBwaW5nWzBdOwp9OwoKCiNkZWZpbmUgUEFS
VElUSU9OX01BUF9UWVBFX05PTkUgMAojZGVmaW5lIFBBUlRJVElPTl9NQVBfVFlQRV8xIDEKI2Rl
ZmluZSBQQVJUSVRJT05fTUFQX1RZUEVfMiAyCgoKc3RydWN0IEdlbmVyaWNQYXJ0aXRpb25NYXAx
IHsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191OCBwYXJ0aXRpb25N
YXBMZW5ndGg7CiAgICAgICAgX191MTYgdm9sU2VxTnVtOwogICAgICAgIF9fdTE2IHBhcnRpdGlv
bk51bTsKfTsKCgpzdHJ1Y3QgR2VuZXJpY1BhcnRpdGlvbk1hcDIgewogICAgICAgIF9fdTggcGFy
dGl0aW9uTWFwVHlwZTsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcExlbmd0aDsKICAgICAgICBf
X3U4IHBhcnRpdGlvbklkZW50WzYyXTsKfTsKCgpzdHJ1Y3QgVW5hbGxvY2F0ZWRTcGFjZURlc2Mg
ewogICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIF9fdTMyIHZvbERlc2NTZXFOdW07CiAgICAg
ICAgX191MzIgbnVtQWxsb2NEZXNjczsKICAgICAgICBleHRlbnRfYWQgYWxsb2NEZXNjc1swXTsK
fTsKCgpzdHJ1Y3QgVGVybWluYXRpbmdEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAg
ICBfX3U4IHJlc2VydmVkWzQ5Nl07Cn07CgpzdHJ1Y3QgR2VuZXJpY0Rlc2MKewogICAgICAgIHRh
ZyBkZXNjVGFnOwogICAgICAgIF9fdTMyIHZvbERlc2NTZXFOdW07Cn07CgoKc3RydWN0IExvZ2lj
YWxWb2xJbnRlZ3JpdHlEZXNjIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICB0aW1lc3Rh
bXAgcmVjb3JkaW5nRGF0ZUFuZFRpbWU7CiAgICAgICAgX191MzIgaW50ZWdyaXR5VHlwZTsKICAg
ICAgICBleHRlbnRfYWQgbmV4dEludGVncml0eUV4dDsKICAgICAgICBfX3U4IGxvZ2ljYWxWb2xD
b250ZW50c1VzZVszMl07CiAgICAgICAgX191MzIgbnVtT2ZQYXJ0aXRpb25zOwogICAgICAgIF9f
dTMyIGxlbmd0aE9mSW1wVXNlOwogICAgICAgIF9fdTMyIGZyZWVTcGFjZVRhYmxlWzBdOwogICAg
ICAgIF9fdTMyIHNpemVUYWJsZVswXTsKICAgICAgICBfX3U4IGltcFVzZVswXTsKfTsKCgojZGVm
aW5lIElOVEVHUklUWV9UWVBFX09QRU4gMAojZGVmaW5lIElOVEVHUklUWV9UWVBFX0NMT1NFIDEK
Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgX191MzIgbG9naWNhbEJsb2NrTnVtOwogICAgICAg
IF9fdTE2IHBhcnRpdGlvblJlZmVyZW5jZU51bTsKfSBsYl9hZGRyOwoKCiNkZWZpbmUgRVhURU5U
X1JFQ09SREVEX0FMTE9DQVRFRCAweDAwCiNkZWZpbmUgRVhURU5UX05PVF9SRUNPUkRFRF9BTExP
Q0FURUQgMHgwMQojZGVmaW5lIEVYVEVOVF9OT1RfUkVDT1JERURfTk9UX0FMTE9DQVRFRCAweDAy
CiNkZWZpbmUgRVhURU5UX05FWFRfRVhURU5UX0FMTE9DREVDUyAweDAzCgoKdHlwZWRlZiBzdHJ1
Y3QgewogICAgICAgIF9fdTMyIGV4dExlbmd0aDsKICAgICAgICBsYl9hZGRyIGV4dExvY2F0aW9u
OwogICAgICAgIF9fdTggaW1wVXNlWzZdOwp9IGxvbmdfYWQ7CgoKCnN0cnVjdCBGaWxlU2V0RGVz
YyB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgdGltZXN0YW1wIHJlY29yZGluZ0RhdGVB
bmRUaW1lOwogICAgICAgIF9fdTE2IGludGVyY2hhbmdlTHZsOwogICAgICAgIF9fdTE2IG1heElu
dGVyY2hhbmdlTHZsOwogICAgICAgIF9fdTMyIGNoYXJTZXRMaXN0OwogICAgICAgIF9fdTMyIG1h
eENoYXJTZXRMaXN0OwogICAgICAgIF9fdTMyIGZpbGVTZXROdW07CiAgICAgICAgX191MzIgZmls
ZVNldERlc2NOdW07CiAgICAgICAgY2hhcnNwZWMgbG9naWNhbFZvbElkZW50Q2hhclNldDsKICAg
ICAgICBkc3RyaW5nIGxvZ2ljYWxWb2xJZGVudFsxMjhdOwogICAgICAgIGNoYXJzcGVjIGZpbGVT
ZXRDaGFyU2V0OwogICAgICAgIGRzdHJpbmcgZmlsZVNldElkZW50WzMyXTsKICAgICAgICBkc3Ry
aW5nIGNvcHlyaWdodEZpbGVJZGVudFszMl07CiAgICAgICAgZHN0cmluZyBhYnN0cmFjdEZpbGVJ
ZGVudFszMl07CiAgICAgICAgbG9uZ19hZCByb290RGlyZWN0b3J5SUNCOwogICAgICAgIEVudGl0
eUlEIGRvbWFpbklkZW50OwogICAgICAgIGxvbmdfYWQgbmV4dEV4dDsKICAgICAgICBsb25nX2Fk
IHN0cmVhbURpcmVjdG9yeUlDQjsKICAgICAgICBfX3U4IHJlc2VydmVkWzMyXTsKfTsKCgp0eXBl
ZGVmIHN0cnVjdCB7CiAgICAgICAgX191MzIgZXh0TGVuZ3RoOwogICAgICAgIF9fdTMyIGV4dFBv
c2l0aW9uOwp9IHNob3J0X2FkOwoKCnN0cnVjdCBQYXJ0aXRpb25IZWFkZXJEZXNjIHsKICAgICAg
ICBzaG9ydF9hZCB1bmFsbG9jYXRlZFNwYWNlVGFibGU7CiAgICAgICAgc2hvcnRfYWQgdW5hbGxv
Y2F0ZWRTcGFjZUJpdG1hcDsKICAgICAgICBzaG9ydF9hZCBwYXJ0aXRpb25JbnRlZ3JpdHlUYWJs
ZTsKICAgICAgICBzaG9ydF9hZCBmcmVlZFNwYWNlVGFibGU7CiAgICAgICAgc2hvcnRfYWQgZnJl
ZWRTcGFjZUJpdG1hcDsKICAgICAgICBfX3U4IHJlc2VydmVkWzg4XTsKfTsKCgpzdHJ1Y3QgRmls
ZUlkZW50RGVzYwp7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191MTYgZmlsZVZlcnNp
b25OdW07CiAgICAgICAgX191OCBmaWxlQ2hhcmFjdGVyaXN0aWNzOwogICAgICAgIF9fdTggbGVu
Z3RoRmlsZUlkZW50OwogICAgICAgIGxvbmdfYWQgaWNiOwogICAgICAgIF9fdTE2IGxlbmd0aE9m
SW1wVXNlOwogICAgICAgIF9fdTggaW1wVXNlWzBdOwogICAgICAgIF9fdTggZmlsZUlkZW50WzBd
OwogICAgICAgIF9fdTggcGFkZGluZ1swXTsKfTsKCgojZGVmaW5lIEZJTEVfSElEREVOIDEKI2Rl
ZmluZSBGSUxFX0RJUkVDVE9SWSAyCiNkZWZpbmUgRklMRV9ERUxFVEVEIDQKI2RlZmluZSBGSUxF
X1BBUkVOVCA4CiNkZWZpbmUgRklMRV9NRVRBREFUQSAweDEwCgoKc3RydWN0IEFsbG9jRXh0RGVz
Ywp7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191MzIgcHJldmlvdXNBbGxvY0V4dExv
Y2F0aW9uOwogICAgICAgIF9fdTMyIGxlbmd0aEFsbG9jRGVzY3M7Cn07CgoKdHlwZWRlZiBzdHJ1
Y3QgewogICAgICAgIF9fdTMyIHByaW9yUmVjb3JkZWROdW1EaXJlY3RFbnRyaWVzOwogICAgICAg
IF9fdTE2IHN0cmF0ZWd5VHlwZTsKICAgICAgICBfX3UxNiBzdHJhdGVneVBhcmFtZXRlcjsKICAg
ICAgICBfX3UxNiBudW1FbnRyaWVzOwogICAgICAgIF9fdTggcmVzZXJ2ZWQ7CiAgICAgICAgX191
OCBmaWxlVHlwZTsKICAgICAgICBsYl9hZGRyIHBhcmVudElDQkxvY2F0aW9uOwogICAgICAgIF9f
dTE2IGZsYWdzOwp9IGljYnRhZzsKCgojZGVmaW5lIEZJTEVfVFlQRV9OT05FIDB4MDBVCiNkZWZp
bmUgRklMRV9UWVBFX1VOQUxMT0MgMHgwMVUKI2RlZmluZSBGSUxFX1RZUEVfSU5URUdSSVRZIDB4
MDJVCiNkZWZpbmUgRklMRV9UWVBFX0lORElSRUNUIDB4MDNVCiNkZWZpbmUgRklMRV9UWVBFX0RJ
UkVDVE9SWSAweDA0VQojZGVmaW5lIEZJTEVfVFlQRV9SRUdVTEFSIDB4MDVVCiNkZWZpbmUgRklM
RV9UWVBFX0JMT0NLIDB4MDZVCiNkZWZpbmUgRklMRV9UWVBFX0NIQVIgMHgwN1UKI2RlZmluZSBG
SUxFX1RZUEVfRVhURU5ERUQgMHgwOFUKI2RlZmluZSBGSUxFX1RZUEVfRklGTyAweDA5VQojZGVm
aW5lIEZJTEVfVFlQRV9TT0NLRVQgMHgwYVUKI2RlZmluZSBGSUxFX1RZUEVfVEVSTUlOQUwgMHgw
YlUKI2RlZmluZSBGSUxFX1RZUEVfU1lNTElOSyAweDBjVQojZGVmaW5lIEZJTEVfVFlQRV9TVFJF
QU1ESVIgMHgwZFUKCgojZGVmaW5lIElDQl9GTEFHX0FMTE9DX01BU0sgMHgwMDA3VQojZGVmaW5l
IElDQl9GTEFHX1NPUlRFRCAweDAwMDhVCiNkZWZpbmUgSUNCX0ZMQUdfTk9OUkVMT0NBVEFCTEUg
MHgwMDEwVQojZGVmaW5lIElDQl9GTEFHX0FSQ0hJVkUgMHgwMDIwVQojZGVmaW5lIElDQl9GTEFH
X1NFVFVJRCAweDAwNDBVCiNkZWZpbmUgSUNCX0ZMQUdfU0VUR0lEIDB4MDA4MFUKI2RlZmluZSBJ
Q0JfRkxBR19TVElDS1kgMHgwMTAwVQojZGVmaW5lIElDQl9GTEFHX0NPTlRJR1VPVVMgMHgwMjAw
VQojZGVmaW5lIElDQl9GTEFHX1NZU1RFTSAweDA0MDBVCiNkZWZpbmUgSUNCX0ZMQUdfVFJBTlNG
T1JNRUQgMHgwODAwVQojZGVmaW5lIElDQl9GTEFHX01VTFRJVkVSU0lPTlMgMHgxMDAwVQoKCiNk
ZWZpbmUgSUNCX0ZMQUdfQURfU0hPUlQgMAojZGVmaW5lIElDQl9GTEFHX0FEX0xPTkcgMQojZGVm
aW5lIElDQl9GTEFHX0FEX0VYVEVOREVEIDIKI2RlZmluZSBJQ0JfRkxBR19BRF9JTl9JQ0IgMwoK
CnN0cnVjdCBJbmRpcmVjdEVudHJ5IHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBpY2J0
YWcgaWNiVGFnOwogICAgICAgIGxvbmdfYWQgaW5kaXJlY3RJQ0I7Cn07CgoKc3RydWN0IFRlcm1p
bmFsRW50cnkgewogICAgICAgIHRhZyBkZXNjVGFnOwogICAgICAgIGljYnRhZyBpY2JUYWc7Cn07
CgoKc3RydWN0IEZpbGVFbnRyeSB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgaWNidGFn
IGljYlRhZzsKICAgICAgICBfX3UzMiB1aWQ7CiAgICAgICAgX191MzIgZ2lkOwogICAgICAgIF9f
dTMyIHBlcm1pc3Npb25zOwogICAgICAgIF9fdTE2IGZpbGVMaW5rQ291bnQ7CiAgICAgICAgX191
OCByZWNvcmRGb3JtYXQ7CiAgICAgICAgX191OCByZWNvcmREaXNwbGF5QXR0cjsKICAgICAgICBf
X3UzMiByZWNvcmRMZW5ndGg7CiAgICAgICAgX191NjQgaW5mb3JtYXRpb25MZW5ndGg7CiAgICAg
ICAgX191NjQgbG9naWNhbEJsb2Nrc1JlY29yZGVkOwogICAgICAgIHRpbWVzdGFtcCBhY2Nlc3NU
aW1lOwogICAgICAgIHRpbWVzdGFtcCBtb2RpZmljYXRpb25UaW1lOwogICAgICAgIHRpbWVzdGFt
cCBhdHRyVGltZTsKICAgICAgICBfX3UzMiBjaGVja3BvaW50OwogICAgICAgIGxvbmdfYWQgZXh0
ZW5kZWRBdHRySUNCOwogICAgICAgIEVudGl0eUlEIGltcElkZW50OwogICAgICAgIF9fdTY0IHVu
aXF1ZUlEOwogICAgICAgIF9fdTMyIGxlbmd0aEV4dGVuZGVkQXR0cjsKICAgICAgICBfX3UzMiBs
ZW5ndGhBbGxvY0Rlc2NzOwogICAgICAgIF9fdTggZXh0ZW5kZWRBdHRyWzBdOwogICAgICAgIF9f
dTggYWxsb2NEZXNjc1swXTsKfTsKCgojZGVmaW5lIFBFUk1fT19FWEVDIDB4MDAwMDAwMDFVCiNk
ZWZpbmUgUEVSTV9PX1dSSVRFIDB4MDAwMDAwMDJVCiNkZWZpbmUgUEVSTV9PX1JFQUQgMHgwMDAw
MDAwNFUKI2RlZmluZSBQRVJNX09fQ0hBVFRSIDB4MDAwMDAwMDhVCiNkZWZpbmUgUEVSTV9PX0RF
TEVURSAweDAwMDAwMDEwVQojZGVmaW5lIFBFUk1fR19FWEVDIDB4MDAwMDAwMjBVCiNkZWZpbmUg
UEVSTV9HX1dSSVRFIDB4MDAwMDAwNDBVCiNkZWZpbmUgUEVSTV9HX1JFQUQgMHgwMDAwMDA4MFUK
I2RlZmluZSBQRVJNX0dfQ0hBVFRSIDB4MDAwMDAxMDBVCiNkZWZpbmUgUEVSTV9HX0RFTEVURSAw
eDAwMDAwMjAwVQojZGVmaW5lIFBFUk1fVV9FWEVDIDB4MDAwMDA0MDBVCiNkZWZpbmUgUEVSTV9V
X1dSSVRFIDB4MDAwMDA4MDBVCiNkZWZpbmUgUEVSTV9VX1JFQUQgMHgwMDAwMTAwMFUKI2RlZmlu
ZSBQRVJNX1VfQ0hBVFRSIDB4MDAwMDIwMDBVCiNkZWZpbmUgUEVSTV9VX0RFTEVURSAweDAwMDA0
MDAwVQoKCiNkZWZpbmUgUkVDT1JEX0ZNVF9OT05FIDAKI2RlZmluZSBSRUNPUkRfRk1UX0ZJWEVE
X1BBRCAxCiNkZWZpbmUgUkVDT1JEX0ZNVF9GSVhFRCAyCiNkZWZpbmUgUkVDT1JEX0ZNVF9WQVJJ
QUJMRTggMwojZGVmaW5lIFJFQ09SRF9GTVRfVkFSSUFCTEUxNiA0CiNkZWZpbmUgUkVDT1JEX0ZN
VF9WQVJJQUJMRTE2X01TQiA1CiNkZWZpbmUgUkVDT1JEX0ZNVF9WQVJJQUJMRTMyIDYKI2RlZmlu
ZSBSRUNPUkRfRk1UX1BSSU5UIDcKI2RlZmluZSBSRUNPUkRfRk1UX0xGIDgKI2RlZmluZSBSRUNP
UkRfRk1UX0NSIDkKI2RlZmluZSBSRUNPUkRfRk1UX0NSTEYgMTAKI2RlZmluZSBSRUNPUkRfRk1U
X0xGQ1IgMTAKCgpzdHJ1Y3QgRXh0ZW5kZWRBdHRySGVhZGVyRGVzYyB7CiAgICAgICAgdGFnIGRl
c2NUYWc7CiAgICAgICAgX191MzIgaW1wQXR0ckxvY2F0aW9uOwogICAgICAgIF9fdTMyIGFwcEF0
dHJMb2NhdGlvbjsKfTsKCgpzdHJ1Y3QgR2VuZXJpY0F0dHJGb3JtYXQgewogICAgICAgIF9fdTMy
IGF0dHJUeXBlOwogICAgICAgIF9fdTggYXR0clN1YnR5cGU7CiAgICAgICAgX191OCByZXNlcnZl
ZFszXTsKICAgICAgICBfX3UzMiBhdHRyTGVuZ3RoOwogICAgICAgIF9fdTggYXR0ckRhdGFbMF07
Cn07CgoKc3RydWN0IENoYXJTZXRBdHRyRm9ybWF0IHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsK
ICAgICAgICBfX3U4IGF0dHJTdWJ0eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAg
ICAgX191MzIgYXR0ckxlbmd0aDsKICAgICAgICBfX3UzMiBlc2NhcGVTZXFMZW5ndGg7CiAgICAg
ICAgX191OCBjaGFyU2V0VHlwZTsKICAgICAgICBfX3U4IGVzY2FwZVNlcVswXTsKfTsKCgpzdHJ1
Y3QgQWx0ZXJuYXRlUGVybWlzc2lvbnNFeHRlbmRlZEF0dHIgewogICAgICAgIF9fdTMyIGF0dHJU
eXBlOwogICAgICAgIF9fdTggYXR0clN1YnR5cGU7CiAgICAgICAgX191OCByZXNlcnZlZFszXTsK
ICAgICAgICBfX3UzMiBhdHRyTGVuZ3RoOwogICAgICAgIF9fdTE2IG93bmVySWRlbnQ7CiAgICAg
ICAgX191MTYgZ3JvdXBJZGVudDsKICAgICAgICBfX3UxNiBwZXJtaXNzaW9uX1JzbXBfOWIzNTQ0
NTc7Cn07CgoKc3RydWN0IEZpbGVUaW1lc0V4dGVuZGVkQXR0ciB7CiAgICAgICAgX191MzIgYXR0
clR5cGU7CiAgICAgICAgX191OCBhdHRyU3VidHlwZTsKICAgICAgICBfX3U4IHJlc2VydmVkWzNd
OwogICAgICAgIF9fdTMyIGF0dHJMZW5ndGg7CiAgICAgICAgX191MzIgZGF0YUxlbmd0aDsKICAg
ICAgICBfX3UzMiBmaWxlVGltZUV4aXN0ZW5jZTsKICAgICAgICBfX3U4IGZpbGVUaW1lczsKfTsK
CgojZGVmaW5lIEZURV9DUkVBVElPTiAwCiNkZWZpbmUgRlRFX0RFTEVUSU9OIDIKI2RlZmluZSBG
VEVfRUZGRUNUSVZFIDMKI2RlZmluZSBGVEVfQkFDS1VQIDUKCgpzdHJ1Y3QgSW5mb1RpbWVzRXh0
ZW5kZWRBdHRyIHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsKICAgICAgICBfX3U4IGF0dHJTdWJ0
eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAgICAgX191MzIgYXR0ckxlbmd0aDsK
ICAgICAgICBfX3UzMiBkYXRhTGVuZ3RoOwogICAgICAgIF9fdTMyIGluZm9UaW1lRXhpc3RlbmNl
OwogICAgICAgIF9fdTggaW5mb1RpbWVzWzBdOwp9OwoKCnN0cnVjdCBEZXZpY2VTcGVjaWZpY2F0
aW9uRXh0ZW5kZWRBdHRyIHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsKICAgICAgICBfX3U4IGF0
dHJTdWJ0eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAgICAgX191MzIgYXR0ckxl
bmd0aDsKICAgICAgICBfX3UzMiBpbXBVc2VMZW5ndGg7CiAgICAgICAgX191MzIgbWFqb3JEZXZp
Y2VJZGVudDsKICAgICAgICBfX3UzMiBtaW5vckRldmljZUlkZW50OwogICAgICAgIF9fdTggaW1w
VXNlWzBdOwp9OwoKCnN0cnVjdCBJbXBVc2VFeHRlbmRlZEF0dHIgewogICAgICAgIF9fdTMyIGF0
dHJUeXBlOwogICAgICAgIF9fdTggYXR0clN1YnR5cGU7CiAgICAgICAgX191OCByZXNlcnZlZFsz
XTsKICAgICAgICBfX3UzMiBhdHRyTGVuZ3RoOwogICAgICAgIF9fdTMyIGltcFVzZUxlbmd0aDsK
ICAgICAgICBFbnRpdHlJRCBpbXBJZGVudDsKICAgICAgICBfX3U4IGltcFVzZVswXTsKfTsKCgpz
dHJ1Y3QgQXBwVXNlRXh0ZW5kZWRBdHRyIHsKICAgICAgICBfX3UzMiBhdHRyVHlwZTsKICAgICAg
ICBfX3U4IGF0dHJTdWJ0eXBlOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbM107CiAgICAgICAgX191
MzIgYXR0ckxlbmd0aDsKICAgICAgICBfX3UzMiBhcHBVc2VMZW5ndGg7CiAgICAgICAgRW50aXR5
SUQgYXBwSWRlbnQ7CiAgICAgICAgX191OCBhcHBVc2VbMF07Cn07CgojZGVmaW5lIEVYVEFUVFJf
Q0hBUl9TRVQgMQojZGVmaW5lIEVYVEFUVFJfQUxUX1BFUk1TIDMKI2RlZmluZSBFWFRBVFRSX0ZJ
TEVfVElNRVMgNQojZGVmaW5lIEVYVEFUVFJfSU5GT19USU1FUyA2CiNkZWZpbmUgRVhUQVRUUl9E
RVZfU1BFQyAxMgojZGVmaW5lIEVYVEFUVFJfSU1QX1VTRSAyMDQ4CiNkZWZpbmUgRVhUQVRUUl9B
UFBfVVNFIDY1NTM2CgoKCnN0cnVjdCBVbmFsbG9jYXRlZFNwYWNlRW50cnkgewogICAgICAgIHRh
ZyBkZXNjVGFnOwogICAgICAgIGljYnRhZyBpY2JUYWc7CiAgICAgICAgX191MzIgbGVuZ3RoQWxs
b2NEZXNjczsKICAgICAgICBfX3U4IGFsbG9jRGVzY3NbMF07Cn07CgoKc3RydWN0IFNwYWNlQml0
bWFwRGVzYyB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgX191MzIgbnVtT2ZCaXRzOwog
ICAgICAgIF9fdTMyIG51bU9mQnl0ZXM7CiAgICAgICAgX191OCBiaXRtYXBbMF07Cn07CgoKc3Ry
dWN0IFBhcnRpdGlvbkludGVncml0eUVudHJ5IHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAg
ICBpY2J0YWcgaWNiVGFnOwogICAgICAgIHRpbWVzdGFtcCByZWNvcmRpbmdEYXRlQW5kVGltZTsK
ICAgICAgICBfX3U4IGludGVncml0eVR5cGU7CiAgICAgICAgX191OCByZXNlcnZlZFsxNzVdOwog
ICAgICAgIEVudGl0eUlEIGltcElkZW50OwogICAgICAgIF9fdTggaW1wVXNlWzI1Nl07Cn07CgoK
dHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIF9fdTMyIGV4dExlbmd0aDsKICAgICAgICBfX3UzMiBy
ZWNvcmRlZExlbmd0aDsKICAgICAgICBfX3UzMiBpbmZvcm1hdGlvbkxlbmd0aDsKICAgICAgICBs
Yl9hZGRyIGV4dExvY2F0aW9uOwp9IGV4dF9hZDsKCgpzdHJ1Y3QgTG9naWNhbFZvbEhlYWRlckRl
c2MgewogICAgICAgIF9fdTY0IHVuaXF1ZUlEOwogICAgICAgIF9fdTggcmVzZXJ2ZWRbMjRdOwp9
OwoKCnN0cnVjdCBQYXRoQ29tcG9uZW50IHsKICAgICAgICBfX3U4IGNvbXBvbmVudFR5cGU7CiAg
ICAgICAgX191OCBsZW5ndGhDb21wb25lbnRJZGVudDsKICAgICAgICBfX3UxNiBjb21wb25lbnRG
aWxlVmVyc2lvbk51bTsKICAgICAgICBkc3RyaW5nIGNvbXBvbmVudElkZW50WzBdOwp9OwoKCnN0
cnVjdCBFeHRlbmRlZEZpbGVFbnRyeSB7CiAgICAgICAgdGFnIGRlc2NUYWc7CiAgICAgICAgaWNi
dGFnIGljYlRhZzsKICAgICAgICBfX3UzMiB1aWQ7CiAgICAgICAgX191MzIgZ2lkOwogICAgICAg
IF9fdTMyIHBlcm1pc3Npb25zOwogICAgICAgIF9fdTE2IGZpbGVMaW5rQ291bnQ7CiAgICAgICAg
X191OCByZWNvcmRGb3JtYXQ7CiAgICAgICAgX191OCByZWNvcmREaXNwbGF5QXR0cjsKICAgICAg
ICBfX3UzMiByZWNvcmRMZW5ndGg7CiAgICAgICAgX191NjQgaW5mb3JtYXRpb25MZW5ndGg7CiAg
ICAgICAgX191NjQgb2JqZWN0U2l6ZTsKICAgICAgICBfX3U2NCBsb2dpY2FsQmxvY2tzUmVjb3Jk
ZWQ7CiAgICAgICAgdGltZXN0YW1wIGFjY2Vzc1RpbWU7CiAgICAgICAgdGltZXN0YW1wIG1vZGlm
aWNhdGlvblRpbWU7CiAgICAgICAgdGltZXN0YW1wIGNyZWF0ZVRpbWU7CiAgICAgICAgdGltZXN0
YW1wIGF0dHJUaW1lOwogICAgICAgIF9fdTMyIGNoZWNrcG9pbnQ7CiAgICAgICAgX191MzIgcmVz
ZXJ2ZWQ7CiAgICAgICAgbG9uZ19hZCBleHRlbmRlZEF0dHJJQ0I7CiAgICAgICAgbG9uZ19hZCBz
dHJlYW1EaXJlY3RvcnlJQ0I7CiAgICAgICAgRW50aXR5SUQgaW1wSWRlbnQ7CiAgICAgICAgX191
NjQgdW5pcXVlSUQ7CiAgICAgICAgX191MzIgbGVuZ3RoRXh0ZW5kZWRBdHRyOwogICAgICAgIF9f
dTMyIGxlbmd0aEFsbG9jRGVzY3M7CiAgICAgICAgX191OCBleHRlbmRlZEF0dHJbMF07CiAgICAg
ICAgX191OCBhbGxvY0Rlc2NzWzBdOwp9OwojcHJhZ21hIHBhY2soKQojIDUgImZzL3VkZi91ZGZk
ZWNsLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl91ZGYu
aCIgMQoKI2RlZmluZSBfTElOVVhfVURGX1VERl9ICiMgMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvdWRmX3VkZi5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvdWRmXzE2Ny5oIiAxCiMgMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdWRmX3VkZi5oIiAyCgojcHJhZ21hIHBhY2soMSkKCgoKI2RlZmluZSBVREZfQ0hBUl9T
RVRfVFlQRSAwCiNkZWZpbmUgVURGX0NIQVJfU0VUX0lORk8gIk9TVEEgQ29tcHJlc3NlZCBVbmlj
b2RlIgoKI2RlZmluZSBVREZfSURfREVWRUxPUEVSICIqTGludXggVURGRlMiCgoKc3RydWN0IExv
Z2ljYWxWb2xJbnRlZ3JpdHlEZXNjSW1wVXNlCnsKICAgICAgICBFbnRpdHlJRCBpbXBJZGVudDsK
ICAgICAgICBfX3UzMiBudW1GaWxlczsKICAgICAgICBfX3UzMiBudW1EaXJzOwogICAgICAgIF9f
dTE2IG1pblVERlJlYWRSZXY7CiAgICAgICAgX191MTYgbWluVURGV3JpdGVSZXY7CiAgICAgICAg
X191MTYgbWF4VURGV3JpdGVSZXY7Cn07CgoKCnN0cnVjdCBJbXBVc2VWb2xEZXNjSW1wVXNlCnsK
ICAgICAgICBjaGFyc3BlYyBMVklDaGFyc2V0OwogICAgICAgIGRzdHJpbmcgbG9naWNhbFZvbElk
ZW50WzEyOF07CiAgICAgICAgZHN0cmluZyBMVkluZm8xWzM2XTsKICAgICAgICBkc3RyaW5nIExW
SW5mbzJbMzZdOwogICAgICAgIGRzdHJpbmcgTFZJbmZvM1szNl07CiAgICAgICAgRW50aXR5SUQg
aW1wSWRlbnQ7CiAgICAgICAgX191OCBpbXBVc2VbMTI4XTsKfTsKCnN0cnVjdCBVZGZQYXJ0aXRp
b25NYXAyCnsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191OCBwYXJ0
aXRpb25NYXBMZW5ndGg7CiAgICAgICAgX191OCByZXNlcnZlZDFbMl07CiAgICAgICAgRW50aXR5
SUQgcGFydElkZW50OwogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAgICAgICBfX3UxNiBwYXJ0
aXRpb25OdW07CiAgICAgICAgX191OCByZXNlcnZlZDJbMjRdOwp9OwoKCnN0cnVjdCBWaXJ0dWFs
UGFydGl0aW9uTWFwCnsKICAgICAgICBfX3U4IHBhcnRpdGlvbk1hcFR5cGU7CiAgICAgICAgX191
OCBwYXJ0aXRpb25NYXBMZW5ndGg7CiAgICAgICAgX191OCByZXNlcnZlZDFbMl07CiAgICAgICAg
RW50aXR5SUQgcGFydElkZW50OwogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAgICAgICBfX3Ux
NiBwYXJ0aXRpb25OdW07CiAgICAgICAgX191OCByZXNlcnZlZDJbMjRdOwp9OwoKCnN0cnVjdCBT
cGFyYWJsZVBhcnRpdGlvbk1hcAp7CiAgICAgICAgX191OCBwYXJ0aXRpb25NYXBUeXBlOwogICAg
ICAgIF9fdTggcGFydGl0aW9uTWFwTGVuZ3RoOwogICAgICAgIF9fdTggcmVzZXJ2ZWQxWzJdOwog
ICAgICAgIEVudGl0eUlEIHBhcnRJZGVudDsKCgogICAgICAgIF9fdTE2IHZvbFNlcU51bTsKICAg
ICAgICBfX3UxNiBwYXJ0aXRpb25OdW07CiAgICAgICAgX191MTYgcGFja2V0TGVuZ3RoOwogICAg
ICAgIF9fdTggbnVtU3BhcmluZ1RhYmxlczsKICAgICAgICBfX3U4IHJlc2VydmVkMlsxXTsKICAg
ICAgICBfX3UzMiBzaXplU3BhcmluZ1RhYmxlOwogICAgICAgIF9fdTMyIGxvY1NwYXJpbmdUYWJs
ZVs0XTsKfTsKCgoKc3RydWN0IERWRENvcHlyaWdodEltcFVzZSB7CiAgICAgICAgX191MTYgaGVh
ZGVyQ2hlY2tzdW07CiAgICAgICAgX191OCBDR01TSW5mbzsKICAgICAgICBfX3U4IGRhdGFUeXBl
OwogICAgICAgIF9fdTggcHJvdGVjdGlvblN5c3RlbUluZm9bNF07Cn07CgoKc3RydWN0IEFESW1w
VXNlCnsKICAgICAgICBfX3UxNiBmbGFnczsKICAgICAgICBfX3U4IGltcFVzZVs0XTsKfTsKCgoj
ZGVmaW5lIFVERl9FWFRFTlRfTEVOR1RIX01BU0sgMHgzRkZGRkZGRgojZGVmaW5lIFVERl9FWFRF
TlRfRkxBR19NQVNLIDB4YzAwMDAwMDAKI2RlZmluZSBVREZfRVhURU5UX0ZMQUdfRVJBU0VEIDB4
NDAwMDAwMDAKIyAxMzUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWRmX3Vk
Zi5oIgojZGVmaW5lIEZJTEVfVFlQRV9WQVQxNSAweDBVCgoKc3RydWN0IFZpcnV0YWxBbGxvY2F0
aW9uVGFibGUxNSB7CiAgICAgICAgX191MzIgVmlydHVhbFNlY3RvclswXTsKICAgICAgICBFbnRp
dHlJRCBpZGVudDsKICAgICAgICBfX3UzMiBwcmV2aW91c1ZBVElDQjsKICAgfTsKCgoKCiNkZWZp
bmUgRklMRV9UWVBFX1ZBVDIwIDB4ZjhVCgoKc3RydWN0IFZpcnR1YWxBbGxvY2F0aW9uVGFibGUy
MCB7CiAgICAgICAgX191MTYgbGVuZ3RoSGVhZGVyOwogICAgICAgIF9fdTE2IGxlbmd0aEltcFVz
ZTsKICAgICAgICBkc3RyaW5nIGxvZ2ljYWxWb2xJZGVudFsxMjhdOwogICAgICAgIF9fdTMyIHBy
ZXZpb3VzVmF0SUNCTG9jOwogICAgICAgIF9fdTMyIG51bUZJRFNGaWxlczsKICAgICAgICBfX3Uz
MiBudW1GSURTRGlyZWN0b3JpZXM7CiAgICAgICAgX191MTYgbWluUmVhZFJldmlzaW9uOwogICAg
ICAgIF9fdTE2IG1pbldyaXRlUmV2aXNpb247CiAgICAgICAgX191MTYgbWF4V3JpdGVSZXZpc2lv
bjsKICAgICAgICBfX3UxNiByZXNlcnZlZDsKICAgICAgICBfX3U4IGltcFVzZVswXTsKICAgICAg
ICBfX3UzMiB2YXRFbnRyeVswXTsKfTsKCgoKI2RlZmluZSBGSUxFX1RZUEVfUkVBTFRJTUUgMHhm
OVUKCgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgX191MzIgb3JpZ0xvY2F0aW9uOwogICAgICAg
IF9fdTMyIG1hcHBlZExvY2F0aW9uOwp9IFNwYXJpbmdFbnRyeTsKCgpzdHJ1Y3QgU3BhcmluZ1Rh
YmxlIHsKICAgICAgICB0YWcgZGVzY1RhZzsKICAgICAgICBFbnRpdHlJRCBzcGFyaW5nSWRlbnQ7
CiAgICAgICAgX191MTYgcmVhbGxvY2F0aW9uVGFibGVMZW47CiAgICAgICAgX191MTYgcmVzZXJ2
ZWQ7CiAgICAgICAgX191MzIgc2VxdWVuY2VOdW07CiAgICAgICAgU3BhcmluZ0VudHJ5IG1hcEVu
dHJ5WzBdOwp9OwoKCiNkZWZpbmUgVURGX0lEX0NPTVBMSUFOVCAiKk9TVEEgVURGIENvbXBsaWFu
dCIKI2RlZmluZSBVREZfSURfTFZfSU5GTyAiKlVERiBMViBJbmZvIgojZGVmaW5lIFVERl9JRF9G
UkVFX0VBICIqVURGIEZyZWVFQVNwYWNlIgojZGVmaW5lIFVERl9JRF9GUkVFX0FQUF9FQSAiKlVE
RiBGcmVlQXBwRUFTcGFjZSIKI2RlZmluZSBVREZfSURfRFZEX0NHTVMgIipVREYgRFZEIENHTVMg
SW5mbyIKI2RlZmluZSBVREZfSURfT1MyX0VBICIqVURGIE9TLzIgRUEiCiNkZWZpbmUgVURGX0lE
X09TMl9FQV9MRU5HVEggIipVREYgT1MvMiBFQUxlbmd0aCIKI2RlZmluZSBVREZfSURfTUFDX1ZP
TFVNRSAiKlVERiBNYWMgVm9sdW1lSW5mbyIKI2RlZmluZSBVREZfSURfTUFDX0ZJTkRFUiAiKlVE
RiBNYWMgRmluZGVySW5mbyIKI2RlZmluZSBVREZfSURfTUFDX1VOSVFVRSAiKlVERiBNYWMgVW5p
cXVlSURUYWJsZSIKI2RlZmluZSBVREZfSURfTUFDX1JFU09VUkNFICIqVURGIE1hYyBSZXNvdXJj
ZUZvcmsiCiNkZWZpbmUgVURGX0lEX1ZJUlRVQUwgIipVREYgVmlydHVhbCBQYXJ0aXRpb24iCiNk
ZWZpbmUgVURGX0lEX1NQQVJBQkxFICIqVURGIFNwYXJhYmxlIFBhcnRpdGlvbiIKI2RlZmluZSBV
REZfSURfQUxMT0MgIipVREYgVmlydHVhbCBBbGxvYyBUYmwiCiNkZWZpbmUgVURGX0lEX1NQQVJJ
TkcgIipVREYgU3BhcmluZyBUYWJsZSIKCgojZGVmaW5lIFVERl9PU19DTEFTU19VTkRFRiAweDAw
VQojZGVmaW5lIFVERl9PU19DTEFTU19ET1MgMHgwMVUKI2RlZmluZSBVREZfT1NfQ0xBU1NfT1My
IDB4MDJVCiNkZWZpbmUgVURGX09TX0NMQVNTX01BQyAweDAzVQojZGVmaW5lIFVERl9PU19DTEFT
U19VTklYIDB4MDRVCiNkZWZpbmUgVURGX09TX0NMQVNTX1dJTjk1IDB4MDVVCiNkZWZpbmUgVURG
X09TX0NMQVNTX1dJTk5UIDB4MDZVCiNkZWZpbmUgVURGX09TX0lEX1VOREVGIDB4MDBVCiNkZWZp
bmUgVURGX09TX0lEX0RPUyAweDAwVQojZGVmaW5lIFVERl9PU19JRF9PUzIgMHgwMFUKI2RlZmlu
ZSBVREZfT1NfSURfTUFDIDB4MDBVCiNkZWZpbmUgVURGX09TX0lEX1VOSVggMHgwMFUKI2RlZmlu
ZSBVREZfT1NfSURfV0lOOTUgMHgwMFUKI2RlZmluZSBVREZfT1NfSURfV0lOTlQgMHgwMFUKI2Rl
ZmluZSBVREZfT1NfSURfQUlYIDB4MDFVCiNkZWZpbmUgVURGX09TX0lEX1NPTEFSSVMgMHgwMlUK
I2RlZmluZSBVREZfT1NfSURfSFBVWCAweDAzVQojZGVmaW5lIFVERl9PU19JRF9JUklYIDB4MDRV
CiNkZWZpbmUgVURGX09TX0lEX0xJTlVYIDB4MDVVCiNkZWZpbmUgVURGX09TX0lEX01LTElOVVgg
MHgwNlUKI2RlZmluZSBVREZfT1NfSURfRlJFRUJTRCAweDA3VQoKI2RlZmluZSBVREZfTkFNRV9Q
QUQgNAojZGVmaW5lIFVERl9OQU1FX0xFTiAyNTUKI2RlZmluZSBVREZfUEFUSF9MRU4gMTAyMwoK
I3ByYWdtYSBwYWNrKCkKIyA2ICJmcy91ZGYvdWRmZGVjbC5oIiAyCiMgMSAiZnMvdWRmL3VkZmVu
ZC5oIiAxCgojZGVmaW5lIF9fVURGX0VORElBTl9ICiMgNTMgImZzL3VkZi91ZGZlbmQuaCIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9ieXRlb3JkZXIuaCIgMQoKI2RlZmlu
ZSBfQVNNX0lBNjRfQllURU9SREVSX0gKCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS90eXBlcy5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
YXNtL2J5dGVvcmRlci5oIiAyCgpzdGF0aWMgX19pbmxpbmVfXyBfX2NvbnN0X18gX191NjQKX19p
YTY0X3N3YWI2NCAoX191NjQgeCkKewogICAgICAgIF9fdTY0IHJlc3VsdDsKCiAgICAgICAgX19h
c21fXyAoIm11eDEgJTA9JTEsQHJldiIgOiAiPXIiIChyZXN1bHQpIDogInIiICh4KSk7CiAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKfQoKc3RhdGljIF9faW5saW5lX18gX19jb25zdF9fIF9fdTMyCl9f
aWE2NF9zd2FiMzIgKF9fdTMyIHgpCnsKICAgICAgICByZXR1cm4gX19pYTY0X3N3YWI2NCh4KSA+
PiAzMjsKfQoKc3RhdGljIF9faW5saW5lX18gX19jb25zdF9fIF9fdTE2Cl9faWE2NF9zd2FiMTYo
X191MTYgeCkKewogICAgICAgIHJldHVybiBfX2lhNjRfc3dhYjY0KHgpID4+IDQ4Owp9CgojZGVm
aW5lIF9fYXJjaF9fc3dhYjY0KHgpIF9faWE2NF9zd2FiNjQoeCkKI2RlZmluZSBfX2FyY2hfX3N3
YWIzMih4KSBfX2lhNjRfc3dhYjMyKHgpCiNkZWZpbmUgX19hcmNoX19zd2FiMTYoeCkgX19pYTY0
X3N3YWIxNih4KQoKI2RlZmluZSBfX0JZVEVPUkRFUl9IQVNfVTY0X18KCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvbGl0dGxlX2VuZGlhbi5oIiAxCgoj
ZGVmaW5lIF9MSU5VWF9CWVRFT1JERVJfTElUVExFX0VORElBTl9ICgoKI2RlZmluZSBfX0xJVFRM
RV9FTkRJQU4gMTIzNAoKCiNkZWZpbmUgX19MSVRUTEVfRU5ESUFOX0JJVEZJRUxECgoKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9zd2FiLmgiIDEKCiNk
ZWZpbmUgX0xJTlVYX0JZVEVPUkRFUl9TV0FCX0gKIyAyMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dhYi5oIgojZGVmaW5lIF9fX3N3YWIxNih4KSAoeyBf
X3UxNiBfX3ggPSAoeCk7ICgoX191MTYpKCAoKChfX3UxNikoX194KSAmIChfX3UxNikweDAwZmZV
KSA8PCA4KSB8ICgoKF9fdTE2KShfX3gpICYgKF9fdTE2KTB4ZmYwMFUpID4+IDgpICkpOyB9KQoK
CgoKCgoKI2RlZmluZSBfX19zd2FiMzIoeCkgKHsgX191MzIgX194ID0gKHgpOyAoKF9fdTMyKSgg
KCgoX191MzIpKF9feCkgJiAoX191MzIpMHgwMDAwMDBmZlVMKSA8PCAyNCkgfCAoKChfX3UzMiko
X194KSAmIChfX3UzMikweDAwMDBmZjAwVUwpIDw8IDgpIHwgKCgoX191MzIpKF9feCkgJiAoX191
MzIpMHgwMGZmMDAwMFVMKSA+PiA4KSB8ICgoKF9fdTMyKShfX3gpICYgKF9fdTMyKTB4ZmYwMDAw
MDBVTCkgPj4gMjQpICkpOyB9KQojIDM5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2J5dGVvcmRlci9zd2FiLmgiCiNkZWZpbmUgX19fc3dhYjY0KHgpICh7IF9fdTY0IF9feCA9
ICh4KTsgKChfX3U2NCkoIChfX3U2NCkoKChfX3U2NCkoX194KSAmIChfX3U2NCkweDAwMDAwMDAw
MDAwMDAwZmZVTEwpIDw8IDU2KSB8IChfX3U2NCkoKChfX3U2NCkoX194KSAmIChfX3U2NCkweDAw
MDAwMDAwMDAwMGZmMDBVTEwpIDw8IDQwKSB8IChfX3U2NCkoKChfX3U2NCkoX194KSAmIChfX3U2
NCkweDAwMDAwMDAwMDBmZjAwMDBVTEwpIDw8IDI0KSB8IChfX3U2NCkoKChfX3U2NCkoX194KSAm
IChfX3U2NCkweDAwMDAwMDAwZmYwMDAwMDBVTEwpIDw8IDgpIHwgKF9fdTY0KSgoKF9fdTY0KShf
X3gpICYgKF9fdTY0KTB4MDAwMDAwZmYwMDAwMDAwMFVMTCkgPj4gOCkgfCAoX191NjQpKCgoX191
NjQpKF9feCkgJiAoX191NjQpMHgwMDAwZmYwMDAwMDAwMDAwVUxMKSA+PiAyNCkgfCAoX191NjQp
KCgoX191NjQpKF9feCkgJiAoX191NjQpMHgwMGZmMDAwMDAwMDAwMDAwVUxMKSA+PiA0MCkgfCAo
X191NjQpKCgoX191NjQpKF9feCkgJiAoX191NjQpMHhmZjAwMDAwMDAwMDAwMDAwVUxMKSA+PiA1
NikgKSk7IH0pCiMgNTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYnl0ZW9y
ZGVyL3N3YWIuaCIKI2RlZmluZSBfX19jb25zdGFudF9zd2FiMTYoeCkgKChfX3UxNikoICgoKF9f
dTE2KSh4KSAmIChfX3UxNikweDAwZmZVKSA8PCA4KSB8ICgoKF9fdTE2KSh4KSAmIChfX3UxNikw
eGZmMDBVKSA+PiA4KSApKQoKCgojZGVmaW5lIF9fX2NvbnN0YW50X3N3YWIzMih4KSAoKF9fdTMy
KSggKCgoX191MzIpKHgpICYgKF9fdTMyKTB4MDAwMDAwZmZVTCkgPDwgMjQpIHwgKCgoX191MzIp
KHgpICYgKF9fdTMyKTB4MDAwMGZmMDBVTCkgPDwgOCkgfCAoKChfX3UzMikoeCkgJiAoX191MzIp
MHgwMGZmMDAwMFVMKSA+PiA4KSB8ICgoKF9fdTMyKSh4KSAmIChfX3UzMikweGZmMDAwMDAwVUwp
ID4+IDI0KSApKQoKCgoKCiNkZWZpbmUgX19fY29uc3RhbnRfc3dhYjY0KHgpICgoX191NjQpKCAo
X191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMDAwMDAwMDAwMDBmZlVMTCkgPDwgNTYp
IHwgKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwMDAwMDAwMDAwMGZmMDBVTEwpIDw8
IDQwKSB8IChfX3U2NCkoKChfX3U2NCkoeCkgJiAoX191NjQpMHgwMDAwMDAwMDAwZmYwMDAwVUxM
KSA8PCAyNCkgfCAoX191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMDAwMDBmZjAwMDAw
MFVMTCkgPDwgOCkgfCAoX191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMDAwZmYwMDAw
MDAwMFVMTCkgPj4gOCkgfCAoX191NjQpKCgoX191NjQpKHgpICYgKF9fdTY0KTB4MDAwMGZmMDAw
MDAwMDAwMFVMTCkgPj4gMjQpIHwgKF9fdTY0KSgoKF9fdTY0KSh4KSAmIChfX3U2NCkweDAwZmYw
MDAwMDAwMDAwMDBVTEwpID4+IDQwKSB8IChfX3U2NCkoKChfX3U2NCkoeCkgJiAoX191NjQpMHhm
ZjAwMDAwMDAwMDAwMDAwVUxMKSA+PiA1NikgKSkKIyA4OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dhYi5oIgojZGVmaW5lIF9fYXJjaF9fc3dhYjE2cCh4
KSBfX2FyY2hfX3N3YWIxNigqKHgpKQoKCiNkZWZpbmUgX19hcmNoX19zd2FiMzJwKHgpIF9fYXJj
aF9fc3dhYjMyKCooeCkpCgoKI2RlZmluZSBfX2FyY2hfX3N3YWI2NHAoeCkgX19hcmNoX19zd2Fi
NjQoKih4KSkKCgoKI2RlZmluZSBfX2FyY2hfX3N3YWIxNnMoeCkgZG8geyAqKHgpID0gX19hcmNo
X19zd2FiMTZwKCh4KSk7IH0gd2hpbGUgKDApCgoKI2RlZmluZSBfX2FyY2hfX3N3YWIzMnMoeCkg
ZG8geyAqKHgpID0gX19hcmNoX19zd2FiMzJwKCh4KSk7IH0gd2hpbGUgKDApCgoKI2RlZmluZSBf
X2FyY2hfX3N3YWI2NHMoeCkgZG8geyAqKHgpID0gX19hcmNoX19zd2FiNjRwKCh4KSk7IH0gd2hp
bGUgKDApCgoKCgoKCgojZGVmaW5lIF9fc3dhYjE2KHgpIChfX2J1aWx0aW5fY29uc3RhbnRfcCgo
X191MTYpKHgpKSA/IF9fX3N3YWIxNigoeCkpIDogX19mc3dhYjE2KCh4KSkpCgoKCiNkZWZpbmUg
X19zd2FiMzIoeCkgKF9fYnVpbHRpbl9jb25zdGFudF9wKChfX3UzMikoeCkpID8gX19fc3dhYjMy
KCh4KSkgOiBfX2Zzd2FiMzIoKHgpKSkKCgoKI2RlZmluZSBfX3N3YWI2NCh4KSAoX19idWlsdGlu
X2NvbnN0YW50X3AoKF9fdTY0KSh4KSkgPyBfX19zd2FiNjQoKHgpKSA6IF9fZnN3YWI2NCgoeCkp
KQojIDEzMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvc3dh
Yi5oIgpleHRlcm4gX19pbmxpbmVfXyBfX2NvbnN0X18gX191MTYgX19mc3dhYjE2KF9fdTE2IHgp
CnsKICAgICAgICByZXR1cm4gX19pYTY0X3N3YWIxNih4KTsKfQpleHRlcm4gX19pbmxpbmVfXyBf
X3UxNiBfX3N3YWIxNnAoX191MTYgKngpCnsKICAgICAgICByZXR1cm4gX19pYTY0X3N3YWIxNigq
KHgpKTsKfQpleHRlcm4gX19pbmxpbmVfXyB2b2lkIF9fc3dhYjE2cyhfX3UxNiAqYWRkcikKewog
ICAgICAgIGRvIHsgKihhZGRyKSA9IF9faWE2NF9zd2FiMTYoKigoYWRkcikpKTsgfSB3aGlsZSAo
MCk7Cn0KCmV4dGVybiBfX2lubGluZV9fIF9fY29uc3RfXyBfX3UzMiBfX2Zzd2FiMzIoX191MzIg
eCkKewogICAgICAgIHJldHVybiBfX2lhNjRfc3dhYjMyKHgpOwp9CmV4dGVybiBfX2lubGluZV9f
IF9fdTMyIF9fc3dhYjMycChfX3UzMiAqeCkKewogICAgICAgIHJldHVybiBfX2lhNjRfc3dhYjMy
KCooeCkpOwp9CmV4dGVybiBfX2lubGluZV9fIHZvaWQgX19zd2FiMzJzKF9fdTMyICphZGRyKQp7
CiAgICAgICAgZG8geyAqKGFkZHIpID0gX19pYTY0X3N3YWIzMigqKChhZGRyKSkpOyB9IHdoaWxl
ICgwKTsKfQoKCmV4dGVybiBfX2lubGluZV9fIF9fY29uc3RfXyBfX3U2NCBfX2Zzd2FiNjQoX191
NjQgeCkKewoKCgoKCiAgICAgICAgcmV0dXJuIF9faWE2NF9zd2FiNjQoeCk7Cgp9CmV4dGVybiBf
X2lubGluZV9fIF9fdTY0IF9fc3dhYjY0cChfX3U2NCAqeCkKewogICAgICAgIHJldHVybiBfX2lh
NjRfc3dhYjY0KCooeCkpOwp9CmV4dGVybiBfX2lubGluZV9fIHZvaWQgX19zd2FiNjRzKF9fdTY0
ICphZGRyKQp7CiAgICAgICAgZG8geyAqKGFkZHIpID0gX19pYTY0X3N3YWI2NCgqKChhZGRyKSkp
OyB9IHdoaWxlICgwKTsKfQoKCgojZGVmaW5lIHN3YWIxNiBfX3N3YWIxNgojZGVmaW5lIHN3YWIz
MiBfX3N3YWIzMgojZGVmaW5lIHN3YWI2NCBfX3N3YWI2NAojZGVmaW5lIHN3YWIxNnAgX19zd2Fi
MTZwCiNkZWZpbmUgc3dhYjMycCBfX3N3YWIzMnAKI2RlZmluZSBzd2FiNjRwIF9fc3dhYjY0cAoj
ZGVmaW5lIHN3YWIxNnMgX19zd2FiMTZzCiNkZWZpbmUgc3dhYjMycyBfX3N3YWIzMnMKI2RlZmlu
ZSBzd2FiNjRzIF9fc3dhYjY0cwojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiIDIKCiNkZWZpbmUgX19jb25zdGFudF9odG9u
bCh4KSBfX19jb25zdGFudF9zd2FiMzIoKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfbnRvaGwoeCkg
X19fY29uc3RhbnRfc3dhYjMyKCh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2h0b25zKHgpIF9fX2Nv
bnN0YW50X3N3YWIxNigoeCkpCiNkZWZpbmUgX19jb25zdGFudF9udG9ocyh4KSBfX19jb25zdGFu
dF9zd2FiMTYoKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2xlNjQoeCkgKChfX3U2NCko
eCkpCiNkZWZpbmUgX19jb25zdGFudF9sZTY0X3RvX2NwdSh4KSAoKF9fdTY0KSh4KSkKI2RlZmlu
ZSBfX2NvbnN0YW50X2NwdV90b19sZTMyKHgpICgoX191MzIpKHgpKQojZGVmaW5lIF9fY29uc3Rh
bnRfbGUzMl90b19jcHUoeCkgKChfX3UzMikoeCkpCiNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9f
bGUxNih4KSAoKF9fdTE2KSh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2xlMTZfdG9fY3B1KHgpICgo
X191MTYpKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfY3B1X3RvX2JlNjQoeCkgX19fY29uc3RhbnRf
c3dhYjY0KCh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2JlNjRfdG9fY3B1KHgpIF9fX2NvbnN0YW50
X3N3YWI2NCgoeCkpCiNkZWZpbmUgX19jb25zdGFudF9jcHVfdG9fYmUzMih4KSBfX19jb25zdGFu
dF9zd2FiMzIoKHgpKQojZGVmaW5lIF9fY29uc3RhbnRfYmUzMl90b19jcHUoeCkgX19fY29uc3Rh
bnRfc3dhYjMyKCh4KSkKI2RlZmluZSBfX2NvbnN0YW50X2NwdV90b19iZTE2KHgpIF9fX2NvbnN0
YW50X3N3YWIxNigoeCkpCiNkZWZpbmUgX19jb25zdGFudF9iZTE2X3RvX2NwdSh4KSBfX19jb25z
dGFudF9zd2FiMTYoKHgpKQojZGVmaW5lIF9fY3B1X3RvX2xlNjQoeCkgKChfX3U2NCkoeCkpCiNk
ZWZpbmUgX19sZTY0X3RvX2NwdSh4KSAoKF9fdTY0KSh4KSkKI2RlZmluZSBfX2NwdV90b19sZTMy
KHgpICgoX191MzIpKHgpKQojZGVmaW5lIF9fbGUzMl90b19jcHUoeCkgKChfX3UzMikoeCkpCiNk
ZWZpbmUgX19jcHVfdG9fbGUxNih4KSAoKF9fdTE2KSh4KSkKI2RlZmluZSBfX2xlMTZfdG9fY3B1
KHgpICgoX191MTYpKHgpKQojZGVmaW5lIF9fY3B1X3RvX2JlNjQoeCkgX19zd2FiNjQoKHgpKQoj
ZGVmaW5lIF9fYmU2NF90b19jcHUoeCkgX19zd2FiNjQoKHgpKQojZGVmaW5lIF9fY3B1X3RvX2Jl
MzIoeCkgX19zd2FiMzIoKHgpKQojZGVmaW5lIF9fYmUzMl90b19jcHUoeCkgX19zd2FiMzIoKHgp
KQojZGVmaW5lIF9fY3B1X3RvX2JlMTYoeCkgX19zd2FiMTYoKHgpKQojZGVmaW5lIF9fYmUxNl90
b19jcHUoeCkgX19zd2FiMTYoKHgpKQojZGVmaW5lIF9fY3B1X3RvX2xlNjRwKHgpICgqKF9fdTY0
KikoeCkpCiNkZWZpbmUgX19sZTY0X3RvX2NwdXAoeCkgKCooX191NjQqKSh4KSkKI2RlZmluZSBf
X2NwdV90b19sZTMycCh4KSAoKihfX3UzMiopKHgpKQojZGVmaW5lIF9fbGUzMl90b19jcHVwKHgp
ICgqKF9fdTMyKikoeCkpCiNkZWZpbmUgX19jcHVfdG9fbGUxNnAoeCkgKCooX191MTYqKSh4KSkK
I2RlZmluZSBfX2xlMTZfdG9fY3B1cCh4KSAoKihfX3UxNiopKHgpKQojZGVmaW5lIF9fY3B1X3Rv
X2JlNjRwKHgpIF9fc3dhYjY0cCgoeCkpCiNkZWZpbmUgX19iZTY0X3RvX2NwdXAoeCkgX19zd2Fi
NjRwKCh4KSkKI2RlZmluZSBfX2NwdV90b19iZTMycCh4KSBfX3N3YWIzMnAoKHgpKQojZGVmaW5l
IF9fYmUzMl90b19jcHVwKHgpIF9fc3dhYjMycCgoeCkpCiNkZWZpbmUgX19jcHVfdG9fYmUxNnAo
eCkgX19zd2FiMTZwKCh4KSkKI2RlZmluZSBfX2JlMTZfdG9fY3B1cCh4KSBfX3N3YWIxNnAoKHgp
KQojZGVmaW5lIF9fY3B1X3RvX2xlNjRzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fbGU2
NF90b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fY3B1X3RvX2xlMzJzKHgpIGRv
IHt9IHdoaWxlICgwKQojZGVmaW5lIF9fbGUzMl90b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQoj
ZGVmaW5lIF9fY3B1X3RvX2xlMTZzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fbGUxNl90
b19jcHVzKHgpIGRvIHt9IHdoaWxlICgwKQojZGVmaW5lIF9fY3B1X3RvX2JlNjRzKHgpIF9fc3dh
YjY0cygoeCkpCiNkZWZpbmUgX19iZTY0X3RvX2NwdXMoeCkgX19zd2FiNjRzKCh4KSkKI2RlZmlu
ZSBfX2NwdV90b19iZTMycyh4KSBfX3N3YWIzMnMoKHgpKQojZGVmaW5lIF9fYmUzMl90b19jcHVz
KHgpIF9fc3dhYjMycygoeCkpCiNkZWZpbmUgX19jcHVfdG9fYmUxNnMoeCkgX19zd2FiMTZzKCh4
KSkKI2RlZmluZSBfX2JlMTZfdG9fY3B1cyh4KSBfX3N3YWIxNnMoKHgpKQoKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9nZW5lcmljLmgiIDEKCiNkZWZp
bmUgX0xJTlVYX0JZVEVPUkRFUl9HRU5FUklDX0gKIyA4NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9ieXRlb3JkZXIvZ2VuZXJpYy5oIgojZGVmaW5lIGNwdV90b19sZTY0IF9f
Y3B1X3RvX2xlNjQKI2RlZmluZSBsZTY0X3RvX2NwdSBfX2xlNjRfdG9fY3B1CiNkZWZpbmUgY3B1
X3RvX2xlMzIgX19jcHVfdG9fbGUzMgojZGVmaW5lIGxlMzJfdG9fY3B1IF9fbGUzMl90b19jcHUK
I2RlZmluZSBjcHVfdG9fbGUxNiBfX2NwdV90b19sZTE2CiNkZWZpbmUgbGUxNl90b19jcHUgX19s
ZTE2X3RvX2NwdQojZGVmaW5lIGNwdV90b19iZTY0IF9fY3B1X3RvX2JlNjQKI2RlZmluZSBiZTY0
X3RvX2NwdSBfX2JlNjRfdG9fY3B1CiNkZWZpbmUgY3B1X3RvX2JlMzIgX19jcHVfdG9fYmUzMgoj
ZGVmaW5lIGJlMzJfdG9fY3B1IF9fYmUzMl90b19jcHUKI2RlZmluZSBjcHVfdG9fYmUxNiBfX2Nw
dV90b19iZTE2CiNkZWZpbmUgYmUxNl90b19jcHUgX19iZTE2X3RvX2NwdQojZGVmaW5lIGNwdV90
b19sZTY0cCBfX2NwdV90b19sZTY0cAojZGVmaW5lIGxlNjRfdG9fY3B1cCBfX2xlNjRfdG9fY3B1
cAojZGVmaW5lIGNwdV90b19sZTMycCBfX2NwdV90b19sZTMycAojZGVmaW5lIGxlMzJfdG9fY3B1
cCBfX2xlMzJfdG9fY3B1cAojZGVmaW5lIGNwdV90b19sZTE2cCBfX2NwdV90b19sZTE2cAojZGVm
aW5lIGxlMTZfdG9fY3B1cCBfX2xlMTZfdG9fY3B1cAojZGVmaW5lIGNwdV90b19iZTY0cCBfX2Nw
dV90b19iZTY0cAojZGVmaW5lIGJlNjRfdG9fY3B1cCBfX2JlNjRfdG9fY3B1cAojZGVmaW5lIGNw
dV90b19iZTMycCBfX2NwdV90b19iZTMycAojZGVmaW5lIGJlMzJfdG9fY3B1cCBfX2JlMzJfdG9f
Y3B1cAojZGVmaW5lIGNwdV90b19iZTE2cCBfX2NwdV90b19iZTE2cAojZGVmaW5lIGJlMTZfdG9f
Y3B1cCBfX2JlMTZfdG9fY3B1cAojZGVmaW5lIGNwdV90b19sZTY0cyBfX2NwdV90b19sZTY0cwoj
ZGVmaW5lIGxlNjRfdG9fY3B1cyBfX2xlNjRfdG9fY3B1cwojZGVmaW5lIGNwdV90b19sZTMycyBf
X2NwdV90b19sZTMycwojZGVmaW5lIGxlMzJfdG9fY3B1cyBfX2xlMzJfdG9fY3B1cwojZGVmaW5l
IGNwdV90b19sZTE2cyBfX2NwdV90b19sZTE2cwojZGVmaW5lIGxlMTZfdG9fY3B1cyBfX2xlMTZf
dG9fY3B1cwojZGVmaW5lIGNwdV90b19iZTY0cyBfX2NwdV90b19iZTY0cwojZGVmaW5lIGJlNjRf
dG9fY3B1cyBfX2JlNjRfdG9fY3B1cwojZGVmaW5lIGNwdV90b19iZTMycyBfX2NwdV90b19iZTMy
cwojZGVmaW5lIGJlMzJfdG9fY3B1cyBfX2JlMzJfdG9fY3B1cwojZGVmaW5lIGNwdV90b19iZTE2
cyBfX2NwdV90b19iZTE2cwojZGVmaW5lIGJlMTZfdG9fY3B1cyBfX2JlMTZfdG9fY3B1cwojIDE1
MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ieXRlb3JkZXIvZ2VuZXJpYy5o
IgpleHRlcm4gX191MzIgbnRvaGwoX191MzIpOwpleHRlcm4gX191MzIgaHRvbmwoX191MzIpOwoK
CgoKZXh0ZXJuIHVuc2lnbmVkIHNob3J0IGludCBudG9ocyh1bnNpZ25lZCBzaG9ydCBpbnQpOwpl
eHRlcm4gdW5zaWduZWQgc2hvcnQgaW50IGh0b25zKHVuc2lnbmVkIHNob3J0IGludCk7CgoKCgoj
ZGVmaW5lIF9fX2h0b25sKHgpIF9fY3B1X3RvX2JlMzIoeCkKI2RlZmluZSBfX19odG9ucyh4KSBf
X2NwdV90b19iZTE2KHgpCiNkZWZpbmUgX19fbnRvaGwoeCkgX19iZTMyX3RvX2NwdSh4KQojZGVm
aW5lIF9fX250b2hzKHgpIF9fYmUxNl90b19jcHUoeCkKCgojZGVmaW5lIGh0b25sKHgpIF9fX2h0
b25sKHgpCiNkZWZpbmUgbnRvaGwoeCkgX19fbnRvaGwoeCkKCgoKCiNkZWZpbmUgaHRvbnMoeCkg
X19faHRvbnMoeCkKI2RlZmluZSBudG9ocyh4KSBfX19udG9ocyh4KQojIDY3ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2J5dGVvcmRlci9saXR0bGVfZW5kaWFuLmgiIDIKIyAz
OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYnl0ZW9yZGVyLmgiIDIKIyA1NCAi
ZnMvdWRmL3VkZmVuZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9zdHJpbmcuaCIgMQoKI2RlZmluZSBfTElOVVhfU1RSSU5HX0hfCgoKCgoKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zdGRkZWYuaCIgMQojIDEwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3N0cmluZy5oIiAyCgoKCgoKZXh0ZXJuIGNoYXIgKiBfX19zdHJ0b2tfUnNt
cF8yOTgwNWMxMzsKZXh0ZXJuIGNoYXIgKiBzdHJwYnJrKGNvbnN0IGNoYXIgKixjb25zdCBjaGFy
ICopOwpleHRlcm4gY2hhciAqIHN0cnRva19Sc21wX2VlOWMxYmQ0KGNoYXIgKixjb25zdCBjaGFy
ICopOwpleHRlcm4gY2hhciAqIHN0cnNlcF9Sc21wXzg1ZGY5YjZjKGNoYXIgKiosY29uc3QgY2hh
ciAqKTsKZXh0ZXJuIF9fa2VybmVsX3NpemVfdCBzdHJzcG5fUnNtcF8zZmE5MTNkYShjb25zdCBj
aGFyICosY29uc3QgY2hhciAqKTsKCgoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvYXNtL3N0cmluZy5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9TVFJJTkdfSAojIDEyICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zdHJpbmcuaCIKIyAxICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTMgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvYXNtL3N0cmluZy5oIiAyCgojZGVmaW5lIF9fSEFWRV9BUkNIX1NUUkxFTiAx
CiNkZWZpbmUgX19IQVZFX0FSQ0hfTUVNU0VUIDEKI2RlZmluZSBfX0hBVkVfQVJDSF9NRU1DUFkg
MQojZGVmaW5lIF9fSEFWRV9BUkNIX0JDT1BZIDEKCmV4dGVybiBfX2tlcm5lbF9zaXplX3Qgc3Ry
bGVuX1JzbXBfZGNiNTY3MWQgKGNvbnN0IGNoYXIgKik7CmV4dGVybiB2b2lkICptZW1zZXQgKHZv
aWQgKiwgaW50LCBfX2tlcm5lbF9zaXplX3QpOwpleHRlcm4gdm9pZCAqbWVtY3B5ICh2b2lkICos
IGNvbnN0IHZvaWQgKiwgX19rZXJuZWxfc2l6ZV90KTsKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zdHJpbmcuaCIgMgoKCmV4dGVybiBjaGFyICogc3RyY3B5X1JzbXBf
ZTkxNGU0MWUoY2hhciAqLGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGNoYXIgKiBzdHJuY3B5X1Jz
bXBfN2VjOWJmYmMoY2hhciAqLGNvbnN0IGNoYXIgKiwgX19rZXJuZWxfc2l6ZV90KTsKCgpleHRl
cm4gY2hhciAqIHN0cmNhdF9Sc21wXzA2MTY1MWJlKGNoYXIgKiwgY29uc3QgY2hhciAqKTsKCgpl
eHRlcm4gY2hhciAqIHN0cm5jYXRfUnNtcF8yMzQ1MDlmMyhjaGFyICosIGNvbnN0IGNoYXIgKiwg
X19rZXJuZWxfc2l6ZV90KTsKCgpleHRlcm4gaW50IHN0cmNtcF9Sc21wX2UyZDUyNTVhKGNvbnN0
IGNoYXIgKixjb25zdCBjaGFyICopOwoKCmV4dGVybiBpbnQgc3RybmNtcF9Sc21wXzg1YWJjODVm
KGNvbnN0IGNoYXIgKixjb25zdCBjaGFyICosX19rZXJuZWxfc2l6ZV90KTsKCgpleHRlcm4gaW50
IHN0cm5pY21wX1JzbXBfNzU2ZTY5OTIoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIF9fa2Vy
bmVsX3NpemVfdCk7CgoKZXh0ZXJuIGNoYXIgKiBzdHJjaHJfUnNtcF8zNDljYmE4NShjb25zdCBj
aGFyICosaW50KTsKCgpleHRlcm4gY2hhciAqIHN0cnJjaHJfUnNtcF85Zjk4NDUxMyhjb25zdCBj
aGFyICosaW50KTsKCgpleHRlcm4gY2hhciAqIHN0cnN0cl9Sc21wXzFlNmQyNmE4KGNvbnN0IGNo
YXIgKixjb25zdCBjaGFyICopOwoKCgoKCmV4dGVybiBfX2tlcm5lbF9zaXplX3Qgc3Rybmxlbl9S
c21wX2NjMDdhZjc1KGNvbnN0IGNoYXIgKixfX2tlcm5lbF9zaXplX3QpOwojIDcxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIgpleHRlcm4gdm9pZCAqIG1lbW1v
dmVfUnNtcF81ZGJiZTk4ZSh2b2lkICosY29uc3Qgdm9pZCAqLF9fa2VybmVsX3NpemVfdCk7CgoK
ZXh0ZXJuIHZvaWQgKiBtZW1zY2FuX1JzbXBfOWMwZWEzY2Qodm9pZCAqLGludCxfX2tlcm5lbF9z
aXplX3QpOwoKCmV4dGVybiBpbnQgbWVtY21wX1JzbXBfYzdlYzI4YjAoY29uc3Qgdm9pZCAqLGNv
bnN0IHZvaWQgKixfX2tlcm5lbF9zaXplX3QpOwoKCmV4dGVybiB2b2lkICogbWVtY2hyX1JzbXBf
Yzc0MGM2NGEoY29uc3Qgdm9pZCAqLGludCxfX2tlcm5lbF9zaXplX3QpOwoKZXh0ZXJuIGNoYXIg
KiBrc3RyZHVwKGNvbnN0IGNoYXIgKixpbnQpOwojIDU1ICJmcy91ZGYvdWRmZW5kLmgiIDIKCgoK
c3RhdGljIGlubGluZSBsYl9hZGRyIGxlbGJfdG9fY3B1KGxiX2FkZHIgaW4pCnsKICAgICAgICBs
Yl9hZGRyIG91dDsKICAgICAgICBvdXQubG9naWNhbEJsb2NrTnVtID0gKChfX3UzMikoaW4ubG9n
aWNhbEJsb2NrTnVtKSk7CiAgICAgICAgb3V0LnBhcnRpdGlvblJlZmVyZW5jZU51bSA9ICgoX191
MTYpKGluLnBhcnRpdGlvblJlZmVyZW5jZU51bSkpOwogICAgICAgIHJldHVybiBvdXQ7Cn0KCnN0
YXRpYyBpbmxpbmUgbGJfYWRkciBjcHVfdG9fbGVsYihsYl9hZGRyIGluKQp7CiAgICAgICAgbGJf
YWRkciBvdXQ7CiAgICAgICAgb3V0LmxvZ2ljYWxCbG9ja051bSA9ICgoX191MzIpKGluLmxvZ2lj
YWxCbG9ja051bSkpOwogICAgICAgIG91dC5wYXJ0aXRpb25SZWZlcmVuY2VOdW0gPSAoKF9fdTE2
KShpbi5wYXJ0aXRpb25SZWZlcmVuY2VOdW0pKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0
aWMgaW5saW5lIHRpbWVzdGFtcCBsZXRzX3RvX2NwdSh0aW1lc3RhbXAgaW4pCnsKICAgICAgICB0
aW1lc3RhbXAgb3V0OwogICAgICAgIG1lbWNweSgmb3V0LCAmaW4sIHNpemVvZih0aW1lc3RhbXAp
KTsKICAgICAgICBvdXQudHlwZUFuZFRpbWV6b25lID0gKChfX3UxNikoaW4udHlwZUFuZFRpbWV6
b25lKSk7CiAgICAgICAgb3V0LnllYXIgPSAoKF9fdTE2KShpbi55ZWFyKSk7CiAgICAgICAgcmV0
dXJuIG91dDsKfQoKc3RhdGljIGlubGluZSBzaG9ydF9hZCBsZXNhX3RvX2NwdShzaG9ydF9hZCBp
bikKewogICAgICAgIHNob3J0X2FkIG91dDsKICAgICAgICBvdXQuZXh0TGVuZ3RoID0gKChfX3Uz
MikoaW4uZXh0TGVuZ3RoKSk7CiAgICAgICAgb3V0LmV4dFBvc2l0aW9uID0gKChfX3UzMikoaW4u
ZXh0UG9zaXRpb24pKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0aWMgaW5saW5lIHNob3J0
X2FkIGNwdV90b19sZXNhKHNob3J0X2FkIGluKQp7CiAgICAgICAgc2hvcnRfYWQgb3V0OwogICAg
ICAgIG91dC5leHRMZW5ndGggPSAoKF9fdTMyKShpbi5leHRMZW5ndGgpKTsKICAgICAgICBvdXQu
ZXh0UG9zaXRpb24gPSAoKF9fdTMyKShpbi5leHRQb3NpdGlvbikpOwogICAgICAgIHJldHVybiBv
dXQ7Cn0KCnN0YXRpYyBpbmxpbmUgbG9uZ19hZCBsZWxhX3RvX2NwdShsb25nX2FkIGluKQp7CiAg
ICAgICAgbG9uZ19hZCBvdXQ7CiAgICAgICAgb3V0LmV4dExlbmd0aCA9ICgoX191MzIpKGluLmV4
dExlbmd0aCkpOwogICAgICAgIG91dC5leHRMb2NhdGlvbiA9IGxlbGJfdG9fY3B1KGluLmV4dExv
Y2F0aW9uKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0aWMgaW5saW5lIGxvbmdfYWQgY3B1
X3RvX2xlbGEobG9uZ19hZCBpbikKewogICAgICAgIGxvbmdfYWQgb3V0OwogICAgICAgIG91dC5l
eHRMZW5ndGggPSAoKF9fdTMyKShpbi5leHRMZW5ndGgpKTsKICAgICAgICBvdXQuZXh0TG9jYXRp
b24gPSBjcHVfdG9fbGVsYihpbi5leHRMb2NhdGlvbik7CiAgICAgICAgcmV0dXJuIG91dDsKfQoK
c3RhdGljIGlubGluZSBleHRlbnRfYWQgbGVlYV90b19jcHUoZXh0ZW50X2FkIGluKQp7CiAgICAg
ICAgZXh0ZW50X2FkIG91dDsKICAgICAgICBvdXQuZXh0TGVuZ3RoID0gKChfX3UzMikoaW4uZXh0
TGVuZ3RoKSk7CiAgICAgICAgb3V0LmV4dExvY2F0aW9uID0gKChfX3UzMikoaW4uZXh0TG9jYXRp
b24pKTsKICAgICAgICByZXR1cm4gb3V0Owp9CgpzdGF0aWMgaW5saW5lIHRpbWVzdGFtcCBjcHVf
dG9fbGV0cyh0aW1lc3RhbXAgaW4pCnsKICAgICAgICB0aW1lc3RhbXAgb3V0OwogICAgICAgIG1l
bWNweSgmb3V0LCAmaW4sIHNpemVvZih0aW1lc3RhbXApKTsKICAgICAgICBvdXQudHlwZUFuZFRp
bWV6b25lID0gKChfX3UxNikoaW4udHlwZUFuZFRpbWV6b25lKSk7CiAgICAgICAgb3V0LnllYXIg
PSAoKF9fdTE2KShpbi55ZWFyKSk7CiAgICAgICAgcmV0dXJuIG91dDsKfQojIDcgImZzL3VkZi91
ZGZkZWNsLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZf
ZnMuaCIgMQojIDM1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl9mcy5o
IgojZGVmaW5lIF9MSU5VWF9VREZfRlNfSAoKI2RlZmluZSBVREZfUFJFQUxMT0NBVEUKI2RlZmlu
ZSBVREZfREVGQVVMVF9QUkVBTExPQ19CTE9DS1MgOAoKI2RlZmluZSBVREZGU19EQVRFICIyMDAx
LzA2LzEzIgojZGVmaW5lIFVERkZTX1ZFUlNJT04gIjAuOS40LjEiCgoKCgoKCiNkZWZpbmUgVURG
RlNfUlcgMAoKCgoKI2RlZmluZSBVREZGU19ERUJVRwoKCiNkZWZpbmUgdWRmX2RlYnVnKGYsIGEu
Li4pIHsgcHJpbnRrIChLRVJOX0RFQlVHICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsIF9fRklM
RV9fLCBfX0xJTkVfXywgX19GVU5DVElPTl9fKTsgcHJpbnRrIChmLCAjIyBhKTsgfQojIDY2ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl9mcy5oIgojZGVmaW5lIHVkZl9p
bmZvKGYsIGEuLi4pIHByaW50ayAoS0VSTl9JTkZPICJVREYtZnMgSU5GTyAiIGYsICMjIGEpOwoj
IDkgImZzL3VkZi91ZGZkZWNsLmgiIDIKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTMgImZzL3VkZi91ZGZkZWNsLmgiIDIKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyAxNCAiZnMvdWRmL3Vk
ZmRlY2wuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgi
IDEKCiNkZWZpbmUgX0xJTlVYX0ZTX0gKCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bGlua2FnZS5oIiAxCgojZGVmaW5lIF9MSU5VWF9MSU5LQUdFX0gKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIiAyCgoKCgojZGVmaW5lIENQUF9BU01MSU5LQUdF
CgoKCgoKI2RlZmluZSBhc21saW5rYWdlIENQUF9BU01MSU5LQUdFIF9fYXR0cmlidXRlX18oKHN5
c2NhbGxfbGlua2FnZSkpCgoKCgojZGVmaW5lIFNZTUJPTF9OQU1FX1NUUihYKSAjWAojZGVmaW5l
IFNZTUJPTF9OQU1FKFgpIFgKCiNkZWZpbmUgU1lNQk9MX05BTUVfTEFCRUwoWCkgWCAjIyA6CiMg
NDQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIgojZGVmaW5l
IF9fQUxJR04gLmFsaWduIDQsMHg5MAojZGVmaW5lIF9fQUxJR05fU1RSICIuYWxpZ24gNCwweDkw
IgojIDExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpbWl0cy5oIiAxCgojZGVmaW5lIF9M
SU5VWF9MSU1JVFNfSAoKI2RlZmluZSBOUl9PUEVOIDEwMjQKCiNkZWZpbmUgTkdST1VQU19NQVgg
MzIKI2RlZmluZSBBUkdfTUFYIDEzMTA3MgojZGVmaW5lIENISUxEX01BWCA5OTkKI2RlZmluZSBP
UEVOX01BWCAyNTYKI2RlZmluZSBMSU5LX01BWCAxMjcKI2RlZmluZSBNQVhfQ0FOT04gMjU1CiNk
ZWZpbmUgTUFYX0lOUFVUIDI1NQojZGVmaW5lIE5BTUVfTUFYIDI1NQojZGVmaW5lIFBBVEhfTUFY
IDQwOTUKI2RlZmluZSBQSVBFX0JVRiA0MDk2CgojZGVmaW5lIFJUU0lHX01BWCAzMgojIDEyICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIgMQoKI2RlZmluZSBfTElOVVhfV0FJVF9I
CgojZGVmaW5lIFdOT0hBTkcgMHgwMDAwMDAwMQojZGVmaW5lIFdVTlRSQUNFRCAweDAwMDAwMDAy
CgojZGVmaW5lIF9fV05PVEhSRUFEIDB4MjAwMDAwMDAKI2RlZmluZSBfX1dBTEwgMHg0MDAwMDAw
MAojZGVmaW5lIF9fV0NMT05FIDB4ODAwMDAwMDAKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAxCgojZGVmaW5lIF9MSU5VWF9LRVJORUxfSAoKCgoK
CgoKIyAxICIvb3B0L2djYzMvbGliL2djYy1saWIvaWE2NC1ocC1saW51eC8zLjAvaW5jbHVkZS9z
dGRhcmcuaCIgMSAzCiMgMzQgIi9vcHQvZ2NjMy9saWIvZ2NjLWxpYi9pYTY0LWhwLWxpbnV4LzMu
MC9pbmNsdWRlL3N0ZGFyZy5oIiAzCiNkZWZpbmUgX1NUREFSR19ICiNkZWZpbmUgX0FOU0lfU1RE
QVJHX0hfCgoKCgoKCiNkZWZpbmUgX19HTlVDX1ZBX0xJU1QKdHlwZWRlZiBfX2J1aWx0aW5fdmFf
bGlzdCBfX2dudWNfdmFfbGlzdDsKIyA1NCAiL29wdC9nY2MzL2xpYi9nY2MtbGliL2lhNjQtaHAt
bGludXgvMy4wL2luY2x1ZGUvc3RkYXJnLmgiIDMKI2RlZmluZSB2YV9zdGFydCh2LCBsKSBfX2J1
aWx0aW5fc3RkYXJnX3N0YXJ0KCh2KSxsKQojZGVmaW5lIHZhX2VuZCBfX2J1aWx0aW5fdmFfZW5k
CiNkZWZpbmUgdmFfYXJnIF9fYnVpbHRpbl92YV9hcmcKCiNkZWZpbmUgdmFfY29weShkLCBzKSBf
X2J1aWx0aW5fdmFfY29weSgoZCksKHMpKQoKI2RlZmluZSBfX3ZhX2NvcHkoZCwgcykgX19idWls
dGluX3ZhX2NvcHkoKGQpLChzKSkKIyAxMTAgIi9vcHQvZ2NjMy9saWIvZ2NjLWxpYi9pYTY0LWhw
LWxpbnV4LzMuMC9pbmNsdWRlL3N0ZGFyZy5oIiAzCnR5cGVkZWYgX19nbnVjX3ZhX2xpc3QgdmFf
bGlzdDsKCgoKCgojZGVmaW5lIF9WQV9MSVNUXwoKCiNkZWZpbmUgX1ZBX0xJU1QKCgojZGVmaW5l
IF9WQV9MSVNUX0RFRklORUQKCgojZGVmaW5lIF9WQV9MSVNUX1RfSAoKCiNkZWZpbmUgX192YV9s
aXN0X18KIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9rZXJuZWwuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlua2FnZS5oIiAxCiMg
MTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDIKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0ZGRlZi5oIiAxCiMgMTMgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDIKCgoKI2RlZmluZSBiYXJy
aWVyKCkgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKQoKI2RlZmluZSBJTlRf
TUFYICgoaW50KSh+MFU+PjEpKQojZGVmaW5lIElOVF9NSU4gKC1JTlRfTUFYIC0gMSkKI2RlZmlu
ZSBVSU5UX01BWCAofjBVKQojZGVmaW5lIExPTkdfTUFYICgobG9uZykofjBVTD4+MSkpCiNkZWZp
bmUgTE9OR19NSU4gKC1MT05HX01BWCAtIDEpCiNkZWZpbmUgVUxPTkdfTUFYICh+MFVMKQoKI2Rl
ZmluZSBTVEFDS19NQUdJQyAweGRlYWRiZWVmCgojZGVmaW5lIEFSUkFZX1NJWkUoeCkgKHNpemVv
Zih4KSAvIHNpemVvZigoeClbMF0pKQoKI2RlZmluZSBLRVJOX0VNRVJHICI8MD4iCiNkZWZpbmUg
S0VSTl9BTEVSVCAiPDE+IgojZGVmaW5lIEtFUk5fQ1JJVCAiPDI+IgojZGVmaW5lIEtFUk5fRVJS
ICI8Mz4iCiNkZWZpbmUgS0VSTl9XQVJOSU5HICI8ND4iCiNkZWZpbmUgS0VSTl9OT1RJQ0UgIjw1
PiIKI2RlZmluZSBLRVJOX0lORk8gIjw2PiIKI2RlZmluZSBLRVJOX0RFQlVHICI8Nz4iCgojZGVm
aW5lIE5PUkVUX1RZUEUKI2RlZmluZSBBVFRSSUJfTk9SRVQgX19hdHRyaWJ1dGVfXygobm9yZXR1
cm4pKQojZGVmaW5lIE5PUkVUX0FORCBub3JldHVybiwKCgoKCiNkZWZpbmUgRkFTVENBTEwoeCkg
eAoKCnN0cnVjdCBzZW1hcGhvcmU7CgpleHRlcm4gc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpwYW5p
Y19ub3RpZmllcl9saXN0OwogICAgICAgICAgIHZvaWQgcGFuaWNfUnNtcF8wMTA3NWJmMChjb25z
dCBjaGFyICogZm10LCAuLi4pCiAgICAgICAgX19hdHRyaWJ1dGVfXyAoKG5vcmV0dXJuLCBmb3Jt
YXQgKHByaW50ZiwgMSwgMikpKTsKICAgICAgICAgICB2b2lkIGRvX2V4aXQobG9uZyBlcnJvcl9j
b2RlKQogICAgICAgIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSk7CiAgICAgICAgICAgdm9pZCB1
cF9hbmRfZXhpdF9Sc21wXzllYjkyNmNhKHN0cnVjdCBzZW1hcGhvcmUgKiwgbG9uZykKICAgICAg
ICBfX2F0dHJpYnV0ZV9fKChub3JldHVybikpOwpleHRlcm4gaW50IGFicyhpbnQpOwpleHRlcm4g
dW5zaWduZWQgbG9uZyBzaW1wbGVfc3RydG91bF9Sc21wXzIwMDAwMzI5KGNvbnN0IGNoYXIgKixj
aGFyICoqLHVuc2lnbmVkIGludCk7CmV4dGVybiBsb25nIHNpbXBsZV9zdHJ0b2woY29uc3QgY2hh
ciAqLGNoYXIgKiosdW5zaWduZWQgaW50KTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBzaW1w
bGVfc3RydG91bGwoY29uc3QgY2hhciAqLGNoYXIgKiosdW5zaWduZWQgaW50KTsKZXh0ZXJuIGxv
bmcgbG9uZyBzaW1wbGVfc3RydG9sbChjb25zdCBjaGFyICosY2hhciAqKix1bnNpZ25lZCBpbnQp
OwpleHRlcm4gaW50IHNwcmludGZfUnNtcF8zYzJjNWFmNShjaGFyICogYnVmLCBjb25zdCBjaGFy
ICogZm10LCAuLi4pOwpleHRlcm4gaW50IHZzcHJpbnRmX1JzbXBfOTU0Y2JiMjYoY2hhciAqYnVm
LCBjb25zdCBjaGFyICosIHZhX2xpc3QpOwpleHRlcm4gaW50IGdldF9vcHRpb25fUnNtcF9iMGUx
MDc4MShjaGFyICoqc3RyLCBpbnQgKnBpbnQpOwpleHRlcm4gY2hhciAqZ2V0X29wdGlvbnNfUnNt
cF8wZmJmZjliOShjaGFyICpzdHIsIGludCBuaW50cywgaW50ICppbnRzKTsKZXh0ZXJuIHVuc2ln
bmVkIGxvbmcgbG9uZyBtZW1wYXJzZV9Sc21wXzIzZjJkMzZmKGNoYXIgKnB0ciwgY2hhciAqKnJl
dHB0cik7CmV4dGVybiB2b2lkIGRldl9wcm9iZV9sb2NrKHZvaWQpOwpleHRlcm4gdm9pZCBkZXZf
cHJvYmVfdW5sb2NrKHZvaWQpOwoKZXh0ZXJuIGludCBzZXNzaW9uX29mX3BncnAoaW50IHBncnAp
OwoKIF9fYXR0cmlidXRlX18oKHN5c2NhbGxfbGlua2FnZSkpIGludCBwcmludGtfUnNtcF84Mjdk
NTgwNyhjb25zdCBjaGFyICogZm10LCAuLi4pCiAgICAgICAgX19hdHRyaWJ1dGVfXyAoKGZvcm1h
dCAocHJpbnRmLCAxLCAyKSkpOwoKZXh0ZXJuIGludCBjb25zb2xlX2xvZ2xldmVsX1JzbXBfODBj
ZTFiOGU7CgpzdGF0aWMgaW5saW5lIHZvaWQgY29uc29sZV9zaWxlbnQodm9pZCkKewogICAgICAg
IGNvbnNvbGVfbG9nbGV2ZWxfUnNtcF84MGNlMWI4ZSA9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgdm9p
ZCBjb25zb2xlX3ZlcmJvc2Uodm9pZCkKewogICAgICAgIGlmIChjb25zb2xlX2xvZ2xldmVsX1Jz
bXBfODBjZTFiOGUpCiAgICAgICAgICAgICAgICBjb25zb2xlX2xvZ2xldmVsX1JzbXBfODBjZTFi
OGUgPSAxNTsKfQoKCgoKCiNkZWZpbmUgcHJfZGVidWcoZm10LCBhcmcuLi4pIGRvIHsgfSB3aGls
ZSAoMCkKCgoKI2RlZmluZSBwcl9pbmZvKGZtdCwgYXJnLi4uKSBwcmludGsoS0VSTl9JTkZPIGZt
dCwgIyMgYXJnKQoKCgoKCgojZGVmaW5lIE5JUFFVQUQoYWRkcikgKCh1bnNpZ25lZCBjaGFyICop
JmFkZHIpWzBdLCAoKHVuc2lnbmVkIGNoYXIgKikmYWRkcilbMV0sICgodW5zaWduZWQgY2hhciAq
KSZhZGRyKVsyXSwgKCh1bnNpZ25lZCBjaGFyICopJmFkZHIpWzNdCgoKCgoKI2RlZmluZSBISVBR
VUFEKGFkZHIpICgodW5zaWduZWQgY2hhciAqKSZhZGRyKVszXSwgKCh1bnNpZ25lZCBjaGFyICop
JmFkZHIpWzJdLCAoKHVuc2lnbmVkIGNoYXIgKikmYWRkcilbMV0sICgodW5zaWduZWQgY2hhciAq
KSZhZGRyKVswXQoKCgoKCgoKI2RlZmluZSBTSV9MT0FEX1NISUZUIDE2CnN0cnVjdCBzeXNpbmZv
IHsKICAgICAgICBsb25nIHVwdGltZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGxvYWRzWzNdOwog
ICAgICAgIHVuc2lnbmVkIGxvbmcgdG90YWxyYW07CiAgICAgICAgdW5zaWduZWQgbG9uZyBmcmVl
cmFtOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2hhcmVkcmFtOwogICAgICAgIHVuc2lnbmVkIGxv
bmcgYnVmZmVycmFtOwogICAgICAgIHVuc2lnbmVkIGxvbmcgdG90YWxzd2FwOwogICAgICAgIHVu
c2lnbmVkIGxvbmcgZnJlZXN3YXA7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcHJvY3M7CiAgICAg
ICAgdW5zaWduZWQgc2hvcnQgcGFkOwogICAgICAgIHVuc2lnbmVkIGxvbmcgdG90YWxoaWdoOwog
ICAgICAgIHVuc2lnbmVkIGxvbmcgZnJlZWhpZ2g7CiAgICAgICAgdW5zaWduZWQgaW50IG1lbV91
bml0OwogICAgICAgIGNoYXIgX2ZbMjAtMipzaXplb2YobG9uZyktc2l6ZW9mKGludCldOwp9Owoj
IDE0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCgojZGVmaW5lIF9MSU5V
WF9MSVNUX0gKIyAxNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9saXN0Lmgi
CnN0cnVjdCBsaXN0X2hlYWQgewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKm5leHQsICpwcmV2
Owp9OwoKI2RlZmluZSBMSVNUX0hFQURfSU5JVChuYW1lKSB7ICYobmFtZSksICYobmFtZSkgfQoK
I2RlZmluZSBMSVNUX0hFQUQobmFtZSkgc3RydWN0IGxpc3RfaGVhZCBuYW1lID0gTElTVF9IRUFE
X0lOSVQobmFtZSkKCgojZGVmaW5lIElOSVRfTElTVF9IRUFEKHB0cikgZG8geyAocHRyKS0+bmV4
dCA9IChwdHIpOyAocHRyKS0+cHJldiA9IChwdHIpOyB9IHdoaWxlICgwKQojIDM1ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIF9faW5saW5lX18gdm9p
ZCBfX2xpc3RfYWRkKHN0cnVjdCBsaXN0X2hlYWQgKiBuZXcsCiAgICAgICAgc3RydWN0IGxpc3Rf
aGVhZCAqIHByZXYsCiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqIG5leHQpCnsKICAgICAgICBu
ZXh0LT5wcmV2ID0gbmV3OwogICAgICAgIG5ldy0+bmV4dCA9IG5leHQ7CiAgICAgICAgbmV3LT5w
cmV2ID0gcHJldjsKICAgICAgICBwcmV2LT5uZXh0ID0gbmV3Owp9CiMgNTMgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIGxp
c3RfYWRkKHN0cnVjdCBsaXN0X2hlYWQgKm5ldywgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewog
ICAgICAgIF9fbGlzdF9hZGQobmV3LCBoZWFkLCBoZWFkLT5uZXh0KTsKfQojIDY2ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIF9faW5saW5lX18gdm9p
ZCBsaXN0X2FkZF90YWlsKHN0cnVjdCBsaXN0X2hlYWQgKm5ldywgc3RydWN0IGxpc3RfaGVhZCAq
aGVhZCkKewogICAgICAgIF9fbGlzdF9hZGQobmV3LCBoZWFkLT5wcmV2LCBoZWFkKTsKfQojIDc4
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xpc3QuaCIKc3RhdGljIF9faW5s
aW5lX18gdm9pZCBfX2xpc3RfZGVsKHN0cnVjdCBsaXN0X2hlYWQgKiBwcmV2LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqIG5leHQpCnsKICAgICAg
ICBuZXh0LT5wcmV2ID0gcHJldjsKICAgICAgICBwcmV2LT5uZXh0ID0gbmV4dDsKfQoKCgoKCgpz
dGF0aWMgX19pbmxpbmVfXyB2b2lkIGxpc3RfZGVsKHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5KQp7
CiAgICAgICAgX19saXN0X2RlbChlbnRyeS0+cHJldiwgZW50cnktPm5leHQpOwp9CgoKCgoKc3Rh
dGljIF9faW5saW5lX18gdm9pZCBsaXN0X2RlbF9pbml0KHN0cnVjdCBsaXN0X2hlYWQgKmVudHJ5
KQp7CiAgICAgICAgX19saXN0X2RlbChlbnRyeS0+cHJldiwgZW50cnktPm5leHQpOwogICAgICAg
IGRvIHsgKGVudHJ5KS0+bmV4dCA9IChlbnRyeSk7IChlbnRyeSktPnByZXYgPSAoZW50cnkpOyB9
IHdoaWxlICgwKTsKfQoKCgoKCnN0YXRpYyBfX2lubGluZV9fIGludCBsaXN0X2VtcHR5KHN0cnVj
dCBsaXN0X2hlYWQgKmhlYWQpCnsKICAgICAgICByZXR1cm4gaGVhZC0+bmV4dCA9PSBoZWFkOwp9
CgoKCgoKCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgbGlzdF9zcGxpY2Uoc3RydWN0IGxpc3RfaGVh
ZCAqbGlzdCwgc3RydWN0IGxpc3RfaGVhZCAqaGVhZCkKewogICAgICAgIHN0cnVjdCBsaXN0X2hl
YWQgKmZpcnN0ID0gbGlzdC0+bmV4dDsKCiAgICAgICAgaWYgKGZpcnN0ICE9IGxpc3QpIHsKICAg
ICAgICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmxhc3QgPSBsaXN0LT5wcmV2OwogICAgICAg
ICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqYXQgPSBoZWFkLT5uZXh0OwoKICAgICAgICAgICAg
ICAgIGZpcnN0LT5wcmV2ID0gaGVhZDsKICAgICAgICAgICAgICAgIGhlYWQtPm5leHQgPSBmaXJz
dDsKCiAgICAgICAgICAgICAgICBsYXN0LT5uZXh0ID0gYXQ7CiAgICAgICAgICAgICAgICBhdC0+
cHJldiA9IGxhc3Q7CiAgICAgICAgfQp9CgoKCgoKCgojZGVmaW5lIGxpc3RfZW50cnkocHRyLCB0
eXBlLCBtZW1iZXIpICgodHlwZSAqKSgoY2hhciAqKShwdHIpLSh1bnNpZ25lZCBsb25nKSgmKCh0
eXBlICopMCktPm1lbWJlcikpKQoKCgoKCgoKI2RlZmluZSBsaXN0X2Zvcl9lYWNoKHBvcywgaGVh
ZCkgZm9yIChwb3MgPSAoaGVhZCktPm5leHQ7IHBvcyAhPSAoaGVhZCk7IHBvcyA9IHBvcy0+bmV4
dCkKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC93YWl0LmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0ZGRlZi5oIiAxCiMgMTYgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvd2FpdC5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCgojZGVmaW5lIF9fTElOVVhf
U1BJTkxPQ0tfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZp
Zy5oIiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5o
IiAyCgoKCgoKI2RlZmluZSBzcGluX2xvY2tfaXJxc2F2ZShsb2NrLCBmbGFncykgZG8geyBsb2Nh
bF9pcnFfc2F2ZShmbGFncyk7IHNwaW5fbG9jayhsb2NrKTsgfSB3aGlsZSAoMCkKI2RlZmluZSBz
cGluX2xvY2tfaXJxKGxvY2spIGRvIHsgbG9jYWxfaXJxX2Rpc2FibGUoKTsgc3Bpbl9sb2NrKGxv
Y2spOyB9IHdoaWxlICgwKQojZGVmaW5lIHNwaW5fbG9ja19iaChsb2NrKSBkbyB7IGxvY2FsX2Jo
X2Rpc2FibGUoKTsgc3Bpbl9sb2NrKGxvY2spOyB9IHdoaWxlICgwKQoKI2RlZmluZSByZWFkX2xv
Y2tfaXJxc2F2ZShsb2NrLCBmbGFncykgZG8geyBsb2NhbF9pcnFfc2F2ZShmbGFncyk7IHJlYWRf
bG9jayhsb2NrKTsgfSB3aGlsZSAoMCkKI2RlZmluZSByZWFkX2xvY2tfaXJxKGxvY2spIGRvIHsg
bG9jYWxfaXJxX2Rpc2FibGUoKTsgcmVhZF9sb2NrKGxvY2spOyB9IHdoaWxlICgwKQojZGVmaW5l
IHJlYWRfbG9ja19iaChsb2NrKSBkbyB7IGxvY2FsX2JoX2Rpc2FibGUoKTsgcmVhZF9sb2NrKGxv
Y2spOyB9IHdoaWxlICgwKQoKI2RlZmluZSB3cml0ZV9sb2NrX2lycXNhdmUobG9jaywgZmxhZ3Mp
IGRvIHsgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOyB3cml0ZV9sb2NrKGxvY2spOyB9IHdoaWxlICgw
KQojZGVmaW5lIHdyaXRlX2xvY2tfaXJxKGxvY2spIGRvIHsgbG9jYWxfaXJxX2Rpc2FibGUoKTsg
d3JpdGVfbG9jayhsb2NrKTsgfSB3aGlsZSAoMCkKI2RlZmluZSB3cml0ZV9sb2NrX2JoKGxvY2sp
IGRvIHsgbG9jYWxfYmhfZGlzYWJsZSgpOyB3cml0ZV9sb2NrKGxvY2spOyB9IHdoaWxlICgwKQoK
I2RlZmluZSBzcGluX3VubG9ja19pcnFyZXN0b3JlKGxvY2ssIGZsYWdzKSBkbyB7IHNwaW5fdW5s
b2NrKGxvY2spOyBsb2NhbF9pcnFfcmVzdG9yZShmbGFncyk7IH0gd2hpbGUgKDApCiNkZWZpbmUg
c3Bpbl91bmxvY2tfaXJxKGxvY2spIGRvIHsgc3Bpbl91bmxvY2sobG9jayk7IGxvY2FsX2lycV9l
bmFibGUoKTsgfSB3aGlsZSAoMCkKI2RlZmluZSBzcGluX3VubG9ja19iaChsb2NrKSBkbyB7IHNw
aW5fdW5sb2NrKGxvY2spOyBsb2NhbF9iaF9lbmFibGUoKTsgfSB3aGlsZSAoMCkKCiNkZWZpbmUg
cmVhZF91bmxvY2tfaXJxcmVzdG9yZShsb2NrLCBmbGFncykgZG8geyByZWFkX3VubG9jayhsb2Nr
KTsgbG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyB9IHdoaWxlICgwKQojZGVmaW5lIHJlYWRfdW5s
b2NrX2lycShsb2NrKSBkbyB7IHJlYWRfdW5sb2NrKGxvY2spOyBsb2NhbF9pcnFfZW5hYmxlKCk7
IH0gd2hpbGUgKDApCiNkZWZpbmUgcmVhZF91bmxvY2tfYmgobG9jaykgZG8geyByZWFkX3VubG9j
ayhsb2NrKTsgbG9jYWxfYmhfZW5hYmxlKCk7IH0gd2hpbGUgKDApCgojZGVmaW5lIHdyaXRlX3Vu
bG9ja19pcnFyZXN0b3JlKGxvY2ssIGZsYWdzKSBkbyB7IHdyaXRlX3VubG9jayhsb2NrKTsgbG9j
YWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyB9IHdoaWxlICgwKQojZGVmaW5lIHdyaXRlX3VubG9ja19p
cnEobG9jaykgZG8geyB3cml0ZV91bmxvY2sobG9jayk7IGxvY2FsX2lycV9lbmFibGUoKTsgfSB3
aGlsZSAoMCkKI2RlZmluZSB3cml0ZV91bmxvY2tfYmgobG9jaykgZG8geyB3cml0ZV91bmxvY2so
bG9jayk7IGxvY2FsX2JoX2VuYWJsZSgpOyB9IHdoaWxlICgwKQoKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfU1BJ
TkxPQ0tfSAojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zcGlubG9jay5o
IgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDEKIyAx
MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMgoKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIgMQoKI2RlZmluZSBfQVNN
X0lBNjRfU1lTVEVNX0gKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lz
dGVtLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIg
MQojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIgMgoKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEKCiNkZWZpbmUgX0FT
TV9JQTY0X1BBR0VfSAoKCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2NvbmZpZy5oIiAxCiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Bh
Z2UuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90eXBlcy5oIiAx
CiMgMTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIgMgojIDIyICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiCiNkZWZpbmUgUEFHRV9TSElG
VCAxNAoKCgoKCgojZGVmaW5lIFBBR0VfU0laRSAoX19JQTY0X1VMX0NPTlNUKDEpIDw8IFBBR0Vf
U0hJRlQpCiNkZWZpbmUgUEFHRV9NQVNLICh+KFBBR0VfU0laRSAtIDEpKQojZGVmaW5lIFBBR0Vf
QUxJR04oYWRkcikgKCgoYWRkcikgKyBQQUdFX1NJWkUgLSAxKSAmIFBBR0VfTUFTSykKCgoKCgoK
I2RlZmluZSBTVFJJQ1RfTU1fVFlQRUNIRUNLUwoKZXh0ZXJuIHZvaWQgY2xlYXJfcGFnZV9Sc21w
XzNkOWVlOWYwICh2b2lkICpwYWdlKTsKZXh0ZXJuIHZvaWQgY29weV9wYWdlICh2b2lkICp0bywg
dm9pZCAqZnJvbSk7CiMgNTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2Uu
aCIKI2RlZmluZSBNQVBfTlJfREVOU0UoYWRkcikgKCgodW5zaWduZWQgbG9uZykgKGFkZHIpIC0g
UEFHRV9PRkZTRVQpID4+IFBBR0VfU0hJRlQpCiMgNjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvYXNtL3BhZ2UuaCIKI2RlZmluZSB2aXJ0X3RvX3BhZ2Uoa2FkZHIpIChtZW1fbWFwICsg
TUFQX05SX0RFTlNFKGthZGRyKSkKCiNkZWZpbmUgVkFMSURfUEFHRShwYWdlKSAoKHBhZ2UgLSBt
ZW1fbWFwKSA8IG1heF9tYXBucikKCnR5cGVkZWYgdW5pb24gaWE2NF92YSB7CiAgICAgICAgc3Ry
dWN0IHsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgb2ZmIDogNjE7CiAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBsb25nIHJlZyA6IDM7CiAgICAgICAgfSBmOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgbDsKICAgICAgICB2b2lkICpwOwp9IGlhNjRfdmE7CgoKCgoKCgojZGVmaW5lIF9fcGEo
eCkgKHtpYTY0X3ZhIF92OyBfdi5sID0gKGxvbmcpICh4KTsgX3YuZi5yZWcgPSAwOyBfdi5sO30p
CiNkZWZpbmUgX192YSh4KSAoe2lhNjRfdmEgX3Y7IF92LmwgPSAobG9uZykgKHgpOyBfdi5mLnJl
ZyA9IC0xOyBfdi5wO30pCgojZGVmaW5lIFJFR0lPTl9OVU1CRVIoeCkgKHtpYTY0X3ZhIF92OyBf
di5sID0gKGxvbmcpICh4KTsgX3YuZi5yZWc7fSkKI2RlZmluZSBSRUdJT05fT0ZGU0VUKHgpICh7
aWE2NF92YSBfdjsgX3YubCA9IChsb25nKSAoeCk7IF92LmYub2ZmO30pCgojZGVmaW5lIFJFR0lP
Tl9TSVpFIFJFR0lPTl9OVU1CRVIoMSkKI2RlZmluZSBSRUdJT05fS0VSTkVMIDcKCiNkZWZpbmUg
QlVHKCkgZG8geyBwcmludGsoImtlcm5lbCBCVUcgYXQgJXM6JWQhXG4iLCBfX0ZJTEVfXywgX19M
SU5FX18pOyAqKGludCAqKTA9MDsgfSB3aGlsZSAoMCkKI2RlZmluZSBQQUdFX0JVRyhwYWdlKSBk
byB7IEJVRygpOyB9IHdoaWxlICgwKQoKc3RhdGljIF9faW5saW5lX18gaW50CmdldF9vcmRlciAo
dW5zaWduZWQgbG9uZyBzaXplKQp7CiAgICAgICAgZG91YmxlIGQgPSBzaXplIC0gMTsKICAgICAg
ICBsb25nIG9yZGVyOwoKICAgICAgICBfX2FzbV9fICgiZ2V0Zi5leHAgJTA9JTEiIDogIj1yIihv
cmRlcikgOiAiZiIoZCkpOwogICAgICAgIG9yZGVyID0gb3JkZXIgLSAxNCAtIDB4ZmZmZiArIDE7
CiAgICAgICAgaWYgKG9yZGVyIDwgMCkKICAgICAgICAgICAgICAgIG9yZGVyID0gMDsKICAgICAg
ICByZXR1cm4gb3JkZXI7Cn0KIyAxMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3BhZ2UuaCIKICB0eXBlZGVmIHN0cnVjdCB7IHVuc2lnbmVkIGxvbmcgcHRlOyB9IHB0ZV90Owog
IHR5cGVkZWYgc3RydWN0IHsgdW5zaWduZWQgbG9uZyBwbWQ7IH0gcG1kX3Q7CiAgdHlwZWRlZiBz
dHJ1Y3QgeyB1bnNpZ25lZCBsb25nIHBnZDsgfSBwZ2RfdDsKICB0eXBlZGVmIHN0cnVjdCB7IHVu
c2lnbmVkIGxvbmcgcGdwcm90OyB9IHBncHJvdF90OwoKI2RlZmluZSBwdGVfdmFsKHgpICgoeCku
cHRlKQojZGVmaW5lIHBtZF92YWwoeCkgKCh4KS5wbWQpCiNkZWZpbmUgcGdkX3ZhbCh4KSAoKHgp
LnBnZCkKI2RlZmluZSBwZ3Byb3RfdmFsKHgpICgoeCkucGdwcm90KQoKI2RlZmluZSBfX3B0ZSh4
KSAoKHB0ZV90KSB7ICh4KSB9ICkKI2RlZmluZSBfX3BncHJvdCh4KSAoKHBncHJvdF90KSB7ICh4
KSB9ICkKIyAxNDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIKI2Rl
ZmluZSBQQUdFX09GRlNFVCAweGUwMDAwMDAwMDAwMDAwMDAKIyAxOCAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDIKCiNkZWZpbmUgS0VSTkVMX1NUQVJUIChQQUdF
X09GRlNFVCArIDY4KjEwMjQqMTAyNCkKCgoKCiNkZWZpbmUgSVZUX0FERFIgKEtFUk5FTF9TVEFS
VCkKI2RlZmluZSBJVlRfRU5EX0FERFIgKEtFUk5FTF9TVEFSVCArIDB4ODAwMCkKI2RlZmluZSBa
RVJPX1BBR0VfQUREUiBQQUdFX0FMSUdOKElWVF9FTkRfQUREUikKI2RlZmluZSBTV0FQUEVSX1BH
RF9BRERSIChaRVJPX1BBR0VfQUREUiArIDEqUEFHRV9TSVpFKQoKI2RlZmluZSBHQVRFX0FERFIg
KDB4YTAwMDAwMDAwMDAwMDAwMCArIFBBR0VfU0laRSkKI2RlZmluZSBQRVJDUFVfQUREUiAoMHhh
MDAwMDAwMDAwMDAwMDAwICsgMipQQUdFX1NJWkUpCgoKCgoKCiNkZWZpbmUgSUE2NF9TRU1GSVhf
SU5TTgojZGVmaW5lIElBNjRfU0VNRklYICIiCgoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgva2VybmVsLmgiIDEKIyA0NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vc3lzdGVtLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3R5cGVzLmgiIDEKIyA0NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lz
dGVtLmgiIDIKCnN0cnVjdCBwY2lfdmVjdG9yX3N0cnVjdCB7CiAgICAgICAgX191MTYgYnVzOwog
ICAgICAgIF9fdTMyIHBjaV9pZDsKICAgICAgICBfX3U4IHBpbjsKICAgICAgICBfX3U4IGlycTsK
fTsKCmV4dGVybiBzdHJ1Y3QgaWE2NF9ib290X3BhcmFtIHsKICAgICAgICBfX3U2NCBjb21tYW5k
X2xpbmU7CiAgICAgICAgX191NjQgZWZpX3N5c3RhYjsKICAgICAgICBfX3U2NCBlZmlfbWVtbWFw
OwogICAgICAgIF9fdTY0IGVmaV9tZW1tYXBfc2l6ZTsKICAgICAgICBfX3U2NCBlZmlfbWVtZGVz
Y19zaXplOwogICAgICAgIF9fdTMyIGVmaV9tZW1kZXNjX3ZlcnNpb247CiAgICAgICAgc3RydWN0
IHsKICAgICAgICAgICAgICAgIF9fdTE2IG51bV9jb2xzOwogICAgICAgICAgICAgICAgX191MTYg
bnVtX3Jvd3M7CiAgICAgICAgICAgICAgICBfX3UxNiBvcmlnX3g7CiAgICAgICAgICAgICAgICBf
X3UxNiBvcmlnX3k7CiAgICAgICAgfSBjb25zb2xlX2luZm87CiAgICAgICAgX191NjQgZnBzd2E7
CiAgICAgICAgX191NjQgaW5pdHJkX3N0YXJ0OwogICAgICAgIF9fdTY0IGluaXRyZF9zaXplOwp9
ICppYTY0X2Jvb3RfcGFyYW07CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9pbnNuX2dyb3VwX2Jh
cnJpZXIgKHZvaWQpCnsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIjs7IiA6OjogIm1l
bW9yeSIpOwp9CiMgOTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5o
IgojZGVmaW5lIG1iKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZiIgOjo6ICJtZW1vcnkiKQoj
ZGVmaW5lIHJtYigpIG1iKCkKI2RlZmluZSB3bWIoKSBtYigpCgoKI2RlZmluZSBzbXBfbWIoKSBt
YigpCiNkZWZpbmUgc21wX3JtYigpIHJtYigpCiNkZWZpbmUgc21wX3dtYigpIHdtYigpCiMgMTE4
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIKI2RlZmluZSBzZXRf
bWIodmFyLCB2YWx1ZSkgZG8geyAodmFyKSA9ICh2YWx1ZSk7IG1iKCk7IH0gd2hpbGUgKDApCiNk
ZWZpbmUgc2V0X3dtYih2YXIsIHZhbHVlKSBkbyB7ICh2YXIpID0gKHZhbHVlKTsgbWIoKTsgfSB3
aGlsZSAoMCkKIyAxNjkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5o
IgojZGVmaW5lIGxvY2FsX2lycV9zYXZlKHgpIF9fYXNtX18gX192b2xhdGlsZV9fICgibW92ICUw
PXBzcjs7IHJzbSBwc3IuaTs7IiA6ICI9ciIgKHgpIDo6ICJtZW1vcnkiKQoKI2RlZmluZSBsb2Nh
bF9pcnFfZGlzYWJsZSgpIF9fYXNtX18gX192b2xhdGlsZV9fICgiOzsgcnNtIHBzci5pOzsiIDo6
OiAibWVtb3J5IikKCiNkZWZpbmUgbG9jYWxfaXJxX3Jlc3RvcmUoeCkgX19hc21fXyBfX3ZvbGF0
aWxlX18gKCI7OyBtb3YgcHNyLmw9JTA7OyBzcmx6LmQiIDo6ICJyIiAoeCkgOiAibWVtb3J5IikK
CgoKI2RlZmluZSBsb2NhbF9pcnFfZW5hYmxlKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCI7OyBz
c20gcHNyLmk7OyBzcmx6LmQiIDo6OiAibWVtb3J5IikKCiNkZWZpbmUgX19jbGkoKSBsb2NhbF9p
cnFfZGlzYWJsZSAoKQojZGVmaW5lIF9fc2F2ZV9mbGFncyhmbGFncykgX19hc21fXyBfX3ZvbGF0
aWxlX18gKCJtb3YgJTA9cHNyIiA6ICI9ciIgKGZsYWdzKSA6OiAibWVtb3J5IikKI2RlZmluZSBf
X3NhdmVfYW5kX2NsaShmbGFncykgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpCiNkZWZpbmUgc2F2ZV9h
bmRfY2xpKGZsYWdzKSBfX3NhdmVfYW5kX2NsaShmbGFncykKI2RlZmluZSBfX3N0aSgpIGxvY2Fs
X2lycV9lbmFibGUgKCkKI2RlZmluZSBfX3Jlc3RvcmVfZmxhZ3MoZmxhZ3MpIGxvY2FsX2lycV9y
ZXN0b3JlKGZsYWdzKQoKCiAgZXh0ZXJuIHZvaWQgX19nbG9iYWxfY2xpX1JzbXBfNjQ1NzZiMDUg
KHZvaWQpOwogIGV4dGVybiB2b2lkIF9fZ2xvYmFsX3N0aV9Sc21wX2RhNDQ1NmRkICh2b2lkKTsK
ICBleHRlcm4gdW5zaWduZWQgbG9uZyBfX2dsb2JhbF9zYXZlX2ZsYWdzX1JzbXBfNWQ5MDJlOTYg
KHZvaWQpOwogIGV4dGVybiB2b2lkIF9fZ2xvYmFsX3Jlc3RvcmVfZmxhZ3NfUnNtcF81NGRkMWRj
YiAodW5zaWduZWQgbG9uZyk7CiNkZWZpbmUgY2xpKCkgX19nbG9iYWxfY2xpKCkKI2RlZmluZSBz
dGkoKSBfX2dsb2JhbF9zdGkoKQojZGVmaW5lIHNhdmVfZmxhZ3MoZmxhZ3MpICgoZmxhZ3MpID0g
X19nbG9iYWxfc2F2ZV9mbGFncygpKQojZGVmaW5lIHJlc3RvcmVfZmxhZ3MoZmxhZ3MpIF9fZ2xv
YmFsX3Jlc3RvcmVfZmxhZ3MoZmxhZ3MpCiMgMjA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9zeXN0ZW0uaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19iYWRfc2l6ZV9mb3JfaWE2
NF9mZXRjaF9hbmRfYWRkICh2b2lkKTsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19iYWRfaW5jcmVt
ZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQgKHZvaWQpOwoKI2RlZmluZSBJQTY0X0ZFVENIQURE
KHRtcCwgdiwgbiwgc3opICh7IHN3aXRjaCAoc3opIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRp
bGVfXyAoSUE2NF9TRU1GSVgiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIodG1wKSA6
ICJyIih2KSwgImkiKG4pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9s
YXRpbGVfXyAoSUE2NF9TRU1GSVgiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIodG1w
KSA6ICJyIih2KSwgImkiKG4pIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSkKIyAyMjcgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIgojZGVmaW5lIGlhNjRfZmV0Y2hfYW5kX2FkZChpLCB2
KSAoeyBfX3U2NCBfdG1wOyB2b2xhdGlsZSBfX3R5cGVvZl9fKCoodikpICpfdiA9ICh2KTsgc3dp
dGNoIChpKSB7IGNhc2UgLTE2OiBJQTY0X0ZFVENIQUREKF90bXAsIF92LCAtMTYsIHNpemVvZigq
KHYpKSk7IGJyZWFrOyBjYXNlIC04OiBJQTY0X0ZFVENIQUREKF90bXAsIF92LCAtOCwgc2l6ZW9m
KCoodikpKTsgYnJlYWs7IGNhc2UgLTQ6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIC00LCBzaXpl
b2YoKih2KSkpOyBicmVhazsgY2FzZSAtMTogSUE2NF9GRVRDSEFERChfdG1wLCBfdiwgLTEsIHNp
emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDE6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIDEsIHNp
emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDQ6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIDQsIHNp
emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDg6IElBNjRfRkVUQ0hBREQoX3RtcCwgX3YsIDgsIHNp
emVvZigqKHYpKSk7IGJyZWFrOyBjYXNlIDE2OiBJQTY0X0ZFVENIQUREKF90bXAsIF92LCAxNiwg
c2l6ZW9mKCoodikpKTsgYnJlYWs7IGRlZmF1bHQ6IF90bXAgPSBfX2JhZF9pbmNyZW1lbnRfZm9y
X2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVhazsgfSAoX190eXBlb2ZfXygqdikpIChfdG1wICsg
KGkpKTsgfSkKIyAyNTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5o
IgpleHRlcm4gdm9pZCBfX3hjaGdfY2FsbGVkX3dpdGhfYmFkX3BvaW50ZXIgKHZvaWQpOwoKc3Rh
dGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZwpfX3hjaGcgKHVuc2lnbmVkIGxvbmcgeCwgdm9s
YXRpbGUgdm9pZCAqcHRyLCBpbnQgc2l6ZSkKewogICAgICAgIHVuc2lnbmVkIGxvbmcgcmVzdWx0
OwoKICAgICAgICBzd2l0Y2ggKHNpemUpIHsKICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAg
ICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGUgKCIiInhjaGcxICUwPVslMV0sJTIiIDogIj1yIiAo
cmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJyIiAocHRyKSwg
InIiICh4KSA6ICJtZW1vcnkiKTsKICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CgogICAg
ICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZSAoIiIi
eGNoZzIgJTA9WyUxXSwlMiIgOiAiPXIiIChyZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDogInIiIChwdHIpLCAiciIgKHgpIDogIm1lbW9yeSIpOwogICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKCiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAg
ICAgX19hc21fXyBfX3ZvbGF0aWxlICgiIiJ4Y2hnNCAlMD1bJTFdLCUyIiA6ICI9ciIgKHJlc3Vs
dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiciIgKHB0ciksICJyIiAo
eCkgOiAibWVtb3J5Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwoKICAgICAgICAg
ICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGUgKCIiInhjaGc4
ICUwPVslMV0sJTIiIDogIj1yIiAocmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA6ICJyIiAocHRyKSwgInIiICh4KSA6ICJtZW1vcnkiKTsKICAgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIF9feGNoZ19jYWxsZWRfd2l0aF9iYWRf
cG9pbnRlcigpOwogICAgICAgIHJldHVybiB4Owp9CgojZGVmaW5lIHhjaGcocHRyLCB4KSAoKF9f
dHlwZW9mX18oKihwdHIpKSkgX194Y2hnICgodW5zaWduZWQgbG9uZykgKHgpLCAocHRyKSwgc2l6
ZW9mKCoocHRyKSkpKQojIDI5MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lz
dGVtLmgiCiNkZWZpbmUgX19IQVZFX0FSQ0hfQ01QWENIRyAxCgoKCgoKZXh0ZXJuIGxvbmcgX19j
bXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKHZvaWQpOwoKI2RlZmluZSBpYTY0X2NtcHhj
aGcoc2VtLCBwdHIsIG9sZCwgbmV3LCBzaXplKSAoeyBfX3R5cGVvZl9fKHB0cikgX3BfID0gKHB0
cik7IF9fdHlwZW9mX18obmV3KSBfbl8gPSAobmV3KTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAo
c2l6ZSkgeyBjYXNlIDE6IF9vXyA9IChfX3U4ICkgKGxvbmcpIChvbGQpOyBicmVhazsgY2FzZSAy
OiBfb18gPSAoX191MTYpIChsb25nKSAob2xkKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMy
KSAobG9uZykgKG9sZCk7IGJyZWFrOyBjYXNlIDg6IF9vXyA9IChfX3U2NCkgKGxvbmcpIChvbGQp
OyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0gX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgYXIu
Y2N2PSUwOzsiIDo6ICJyTyIoX29fKSk7IHN3aXRjaCAoc2l6ZSkgeyBjYXNlIDE6IF9fYXNtX18g
X192b2xhdGlsZV9fIChJQTY0X1NFTUZJWCJjbXB4Y2hnMS4ic2VtIiAlMD1bJTFdLCUyLGFyLmNj
diIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBj
YXNlIDI6IF9fYXNtX18gX192b2xhdGlsZV9fIChJQTY0X1NFTUZJWCJjbXB4Y2hnMi4ic2VtIiAl
MD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVt
b3J5Iik7IGJyZWFrOyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fIChJQTY0X1NFTUZJWCJj
bXB4Y2hnNC4ic2VtIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwg
InIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9f
IChJQTY0X1NFTUZJWCJjbXB4Y2hnOC4ic2VtIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9y
XykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfcl8g
PSBfX2NtcHhjaGdfY2FsbGVkX3dpdGhfYmFkX3BvaW50ZXIoKTsgYnJlYWs7IH0gKF9fdHlwZW9m
X18ob2xkKSkgX3JfOyB9KQojIDM0MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20v
c3lzdGVtLmgiCiNkZWZpbmUgY21weGNoZ19hY3EocHRyLCBvLCBuKSBpYTY0X2NtcHhjaGcoImFj
cSIsIChwdHIpLCAobyksIChuKSwgc2l6ZW9mKCoocHRyKSkpCiNkZWZpbmUgY21weGNoZ19yZWwo
cHRyLCBvLCBuKSBpYTY0X2NtcHhjaGcoInJlbCIsIChwdHIpLCAobyksIChuKSwgc2l6ZW9mKCoo
cHRyKSkpCgoKI2RlZmluZSBjbXB4Y2hnKHB0ciwgbywgbikgY21weGNoZ19hY3EocHRyLG8sbikK
IyAzNjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIgojZGVmaW5l
IENNUFhDSEdfQlVHQ0hFQ0tfREVDTAojZGVmaW5lIENNUFhDSEdfQlVHQ0hFQ0sodikKCgoKCiNk
ZWZpbmUgcHJlcGFyZV90b19zd2l0Y2goKSBkbyB7IH0gd2hpbGUoMCkKCgojZGVmaW5lIElTX0lB
MzJfUFJPQ0VTUyhyZWdzKSAoaWE2NF9wc3IocmVncyktPmlzICE9IDApCiMgMzg1ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIKZXh0ZXJuIHN0cnVjdCB0YXNrX3N0
cnVjdCAqaWE2NF9zd2l0Y2hfdG8gKHZvaWQgKm5leHRfdGFzayk7CgpleHRlcm4gdm9pZCBpYTY0
X3NhdmVfZXh0cmEgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CmV4dGVybiB2b2lkIGlhNjRf
bG9hZF9leHRyYSAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKCiNkZWZpbmUgX19zd2l0Y2hf
dG8ocHJldiwgbmV4dCwgbGFzdCkgZG8geyBpZiAoKChwcmV2KS0+dGhyZWFkLmZsYWdzICYgKElB
NjRfVEhSRUFEX0RCR19WQUxJRHxJQTY0X1RIUkVBRF9QTV9WQUxJRCkpIHx8IElTX0lBMzJfUFJP
Q0VTUyhpYTY0X3Rhc2tfcmVncyhwcmV2KSkpIGlhNjRfc2F2ZV9leHRyYShwcmV2KTsgaWYgKCgo
bmV4dCktPnRocmVhZC5mbGFncyAmIChJQTY0X1RIUkVBRF9EQkdfVkFMSUR8SUE2NF9USFJFQURf
UE1fVkFMSUQpKSB8fCBJU19JQTMyX1BST0NFU1MoaWE2NF90YXNrX3JlZ3MobmV4dCkpKSBpYTY0
X2xvYWRfZXh0cmEobmV4dCk7IChsYXN0KSA9IGlhNjRfc3dpdGNoX3RvKChuZXh0KSk7IH0gd2hp
bGUgKDApCiMgNDA4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIK
I2RlZmluZSBzd2l0Y2hfdG8ocHJldiwgbmV4dCwgbGFzdCkgZG8geyBpZiAoaWE2NF9wc3IoaWE2
NF90YXNrX3JlZ3MocHJldikpLT5tZmgpIHsgaWE2NF9wc3IoaWE2NF90YXNrX3JlZ3MocHJldikp
LT5tZmggPSAwOyAocHJldiktPnRocmVhZC5mbGFncyB8PSBJQTY0X1RIUkVBRF9GUEhfVkFMSUQ7
IF9faWE2NF9zYXZlX2ZwdSgocHJldiktPnRocmVhZC5mcGgpOyB9IGlhNjRfcHNyKGlhNjRfdGFz
a19yZWdzKHByZXYpKS0+ZGZoID0gMTsgX19zd2l0Y2hfdG8ocHJldixuZXh0LGxhc3QpOyB9IHdo
aWxlICgwKQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zcGlubG9jay5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKCiNk
ZWZpbmUgX0FTTV9JQTY0X0JJVE9QU19ICiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvYXNtL2JpdG9wcy5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5
c3RlbS5oIiAxCiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2JpdG9wcy5o
IiAyCiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2JpdG9wcy5oIgpzdGF0
aWMgX19pbmxpbmVfXyB2b2lkCnNldF9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikK
ewogICAgICAgIF9fdTMyIGJpdCwgb2xkLCBuZXc7CiAgICAgICAgdm9sYXRpbGUgX191MzIgKm07
CgoKICAgICAgICBtID0gKHZvbGF0aWxlIF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSk7CiAgICAg
ICAgYml0ID0gMSA8PCAobnIgJiAzMSk7CiAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAgIG9sZCA9ICptOwogICAgICAgICAgICAg
ICAgbmV3ID0gb2xkIHwgYml0OwogICAgICAgIH0gd2hpbGUgKCh7IF9fdHlwZW9mX18oKG0pKSBf
cF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3KSkgX25fID0gKChuZXcpKTsgX191NjQgX29fLCBf
cl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNhc2UgMTogX29fID0gKF9fdTggKSAobG9uZykg
KChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29fID0gKF9fdTE2KSAobG9uZykgKChvbGQpKTsgYnJl
YWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgODog
X29fID0gKF9fdTY0KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9f
YXNtX18gX192b2xhdGlsZV9fICgibW92IGFyLmNjdj0lMDs7IiA6OiAick8iKF9vXykpOyBzd2l0
Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4
Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAi
ciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgMjogX19hc21fXyBfX3ZvbGF0aWxlX18g
KCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIi
KF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA0OiBfX2FzbV9fIF9fdm9s
YXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9y
XykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6
ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1
bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0aF9iYWRfcG9pbnRlcigpOyBicmVhazsgfSAo
X190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkgIT0gb2xkKTsKfQoKCgoKI2RlZmluZSBzbXBfbWJf
X2JlZm9yZV9jbGVhcl9iaXQoKSBzbXBfbWIoKQojZGVmaW5lIHNtcF9tYl9fYWZ0ZXJfY2xlYXJf
Yml0KCkgc21wX21iKCkKc3RhdGljIF9faW5saW5lX18gdm9pZApjbGVhcl9iaXQgKGludCBuciwg
dm9sYXRpbGUgdm9pZCAqYWRkcikKewogICAgICAgIF9fdTMyIG1hc2ssIG9sZCwgbmV3OwogICAg
ICAgIHZvbGF0aWxlIF9fdTMyICptOwoKCiAgICAgICAgbSA9ICh2b2xhdGlsZSBfX3UzMiAqKSBh
ZGRyICsgKG5yID4+IDUpOwogICAgICAgIG1hc2sgPSB+KDEgPDwgKG5yICYgMzEpKTsKICAgICAg
ICBkbyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgICAgICAg
ICAgb2xkID0gKm07CiAgICAgICAgICAgICAgICBuZXcgPSBvbGQgJiBtYXNrOwogICAgICAgIH0g
d2hpbGUgKCh7IF9fdHlwZW9mX18oKG0pKSBfcF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3KSkg
X25fID0gKChuZXcpKTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNh
c2UgMTogX29fID0gKF9fdTggKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29fID0g
KF9fdTE2KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9u
ZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKChvbGQpKTsg
YnJlYWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92IGFyLmNj
dj0lMDs7IiA6OiAick8iKF9vXykpOyBzd2l0Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2
IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNh
c2UgMjogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwl
Mixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBi
cmVhazsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAl
MD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVt
b3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4i
ImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25f
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0
aF9iYWRfcG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkgIT0g
b2xkKTsKfQoKCgoKc3RhdGljIF9faW5saW5lX18gdm9pZApfX2NoYW5nZV9iaXQgKGludCBuciwg
dm9pZCAqYWRkcikKewogICAgICAgIHZvbGF0aWxlIF9fdTMyICptID0gKF9fdTMyICopIGFkZHIg
KyAobnIgPj4gNSk7CiAgICAgICAgX191MzIgYml0ID0gKDEgPDwgKG5yICYgMzEpKTsKCiAgICAg
ICAgKm0gPSAqbSBeIGJpdDsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZApjaGFuZ2VfYml0IChp
bnQgbnIsIHZvbGF0aWxlIHZvaWQgKmFkZHIpCnsKICAgICAgICBfX3UzMiBiaXQsIG9sZCwgbmV3
OwogICAgICAgIHZvbGF0aWxlIF9fdTMyICptOwoKCiAgICAgICAgbSA9ICh2b2xhdGlsZSBfX3Uz
MiAqKSBhZGRyICsgKG5yID4+IDUpOwogICAgICAgIGJpdCA9ICgxIDw8IChuciAmIDMxKSk7CiAg
ICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAg
ICAgICAgIG9sZCA9ICptOwogICAgICAgICAgICAgICAgbmV3ID0gb2xkIF4gYml0OwogICAgICAg
IH0gd2hpbGUgKCh7IF9fdHlwZW9mX18oKG0pKSBfcF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3
KSkgX25fID0gKChuZXcpKTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7
IGNhc2UgMTogX29fID0gKF9fdTggKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29f
ID0gKF9fdTE2KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAo
bG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKChvbGQp
KTsgYnJlYWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92IGFy
LmNjdj0lMDs7IiA6OiAick8iKF9vXykpOyBzd2l0Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIu
Y2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7
IGNhc2UgMjogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUx
XSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIp
OyBicmVhazsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3Ei
IiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAi
bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hn
OC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIo
X25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRf
d2l0aF9iYWRfcG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkg
IT0gb2xkKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50CnRlc3RfYW5kX3NldF9iaXQgKGludCBu
ciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKewogICAgICAgIF9fdTMyIGJpdCwgb2xkLCBuZXc7CiAg
ICAgICAgdm9sYXRpbGUgX191MzIgKm07CgoKICAgICAgICBtID0gKHZvbGF0aWxlIF9fdTMyICop
IGFkZHIgKyAobnIgPj4gNSk7CiAgICAgICAgYml0ID0gMSA8PCAobnIgJiAzMSk7CiAgICAgICAg
ZG8gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAg
IG9sZCA9ICptOwogICAgICAgICAgICAgICAgbmV3ID0gb2xkIHwgYml0OwogICAgICAgIH0gd2hp
bGUgKCh7IF9fdHlwZW9mX18oKG0pKSBfcF8gPSAoKG0pKTsgX190eXBlb2ZfXygobmV3KSkgX25f
ID0gKChuZXcpKTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNhc2Ug
MTogX29fID0gKF9fdTggKSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgMjogX29fID0gKF9f
dTE2KSAobG9uZykgKChvbGQpKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9uZykg
KChvbGQpKTsgYnJlYWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKChvbGQpKTsgYnJl
YWs7IGRlZmF1bHQ6IGJyZWFrOyB9IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92IGFyLmNjdj0l
MDs7IiA6OiAick8iKF9vXykpOyBzd2l0Y2ggKHNpemVvZigqKG0pKSkgeyBjYXNlIDE6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6
ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug
MjogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwlMixh
ci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVh
azsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAlMD1b
JTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5
Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4iImFj
cSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0aF9i
YWRfcG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXygob2xkKSkpIF9yXzsgfSkgIT0gb2xk
KTsKICAgICAgICByZXR1cm4gKG9sZCAmIGJpdCkgIT0gMDsKfQoKc3RhdGljIF9faW5saW5lX18g
aW50CnRlc3RfYW5kX2NsZWFyX2JpdCAoaW50IG5yLCB2b2xhdGlsZSB2b2lkICphZGRyKQp7CiAg
ICAgICAgX191MzIgbWFzaywgb2xkLCBuZXc7CiAgICAgICAgdm9sYXRpbGUgX191MzIgKm07CgoK
ICAgICAgICBtID0gKHZvbGF0aWxlIF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSk7CiAgICAgICAg
bWFzayA9IH4oMSA8PCAobnIgJiAzMSkpOwogICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICBvbGQgPSAqbTsKICAgICAgICAgICAg
ICAgIG5ldyA9IG9sZCAmIG1hc2s7CiAgICAgICAgfSB3aGlsZSAoKHsgX190eXBlb2ZfXygobSkp
IF9wXyA9ICgobSkpOyBfX3R5cGVvZl9fKChuZXcpKSBfbl8gPSAoKG5ldykpOyBfX3U2NCBfb18s
IF9yXzsgc3dpdGNoIChzaXplb2YoKihtKSkpIHsgY2FzZSAxOiBfb18gPSAoX191OCApIChsb25n
KSAoKG9sZCkpOyBicmVhazsgY2FzZSAyOiBfb18gPSAoX191MTYpIChsb25nKSAoKG9sZCkpOyBi
cmVhazsgY2FzZSA0OiBfb18gPSAoX191MzIpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA4
OiBfb18gPSAoX191NjQpIChsb25nKSAoKG9sZCkpOyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0g
X19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgYXIuY2N2PSUwOzsiIDo6ICJyTyIoX29fKSk7IHN3
aXRjaCAoc2l6ZW9mKCoobSkpKSB7IGNhc2UgMTogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNt
cHhjaGcxLiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyks
ICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSAyOiBfX2FzbV9fIF9fdm9sYXRpbGVf
XyAoIiIiY21weGNoZzIuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAi
ciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDQ6IF9fYXNtX18gX192
b2xhdGlsZV9fICgiIiJjbXB4Y2hnNC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIo
X3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGc4LiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3Yi
IDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgZGVm
YXVsdDogX3JfID0gX19jbXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKCk7IGJyZWFrOyB9
IChfX3R5cGVvZl9fKChvbGQpKSkgX3JfOyB9KSAhPSBvbGQpOwogICAgICAgIHJldHVybiAob2xk
ICYgfm1hc2spICE9IDA7Cn0KCgoKCnN0YXRpYyBfX2lubGluZV9fIGludApfX3Rlc3RfYW5kX2No
YW5nZV9iaXQgKGludCBuciwgdm9pZCAqYWRkcikKewogICAgICAgIF9fdTMyIG9sZCwgYml0ID0g
KDEgPDwgKG5yICYgMzEpKTsKICAgICAgICBfX3UzMiAqbSA9IChfX3UzMiAqKSBhZGRyICsgKG5y
ID4+IDUpOwoKICAgICAgICBvbGQgPSAqbTsKICAgICAgICAqbSA9IG9sZCBeIGJpdDsKICAgICAg
ICByZXR1cm4gKG9sZCAmIGJpdCkgIT0gMDsKfQoKc3RhdGljIF9faW5saW5lX18gaW50CnRlc3Rf
YW5kX2NoYW5nZV9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9pZCAqYWRkcikKewogICAgICAgIF9f
dTMyIGJpdCwgb2xkLCBuZXc7CiAgICAgICAgdm9sYXRpbGUgX191MzIgKm07CgoKICAgICAgICBt
ID0gKHZvbGF0aWxlIF9fdTMyICopIGFkZHIgKyAobnIgPj4gNSk7CiAgICAgICAgYml0ID0gKDEg
PDwgKG5yICYgMzEpKTsKICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgOwogICAgICAgICAgICAgICAgb2xkID0gKm07CiAgICAgICAgICAgICAgICBuZXcgPSBv
bGQgXiBiaXQ7CiAgICAgICAgfSB3aGlsZSAoKHsgX190eXBlb2ZfXygobSkpIF9wXyA9ICgobSkp
OyBfX3R5cGVvZl9fKChuZXcpKSBfbl8gPSAoKG5ldykpOyBfX3U2NCBfb18sIF9yXzsgc3dpdGNo
IChzaXplb2YoKihtKSkpIHsgY2FzZSAxOiBfb18gPSAoX191OCApIChsb25nKSAoKG9sZCkpOyBi
cmVhazsgY2FzZSAyOiBfb18gPSAoX191MTYpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA0
OiBfb18gPSAoX191MzIpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA4OiBfb18gPSAoX191
NjQpIChsb25nKSAoKG9sZCkpOyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0gX19hc21fXyBfX3Zv
bGF0aWxlX18gKCJtb3YgYXIuY2N2PSUwOzsiIDo6ICJyTyIoX29fKSk7IHN3aXRjaCAoc2l6ZW9m
KCoobSkpKSB7IGNhc2UgMTogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcxLiIiYWNx
IiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDog
Im1lbW9yeSIpOyBicmVhazsgY2FzZSAyOiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNo
ZzIuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIi
KF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgi
IiJjbXB4Y2hnNC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihf
cF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0
aWxlX18gKCIiImNtcHhjaGc4LiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8p
IDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX3JfID0g
X19jbXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKCk7IGJyZWFrOyB9IChfX3R5cGVvZl9f
KChvbGQpKSkgX3JfOyB9KSAhPSBvbGQpOwogICAgICAgIHJldHVybiAob2xkICYgYml0KSAhPSAw
Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQKdGVzdF9iaXQgKGludCBuciwgdm9sYXRpbGUgdm9p
ZCAqYWRkcikKewogICAgICAgIHJldHVybiAxICYgKCgoY29uc3Qgdm9sYXRpbGUgX191MzIgKikg
YWRkcilbbnIgPj4gNV0gPj4gKG5yICYgMzEpKTsKfQoKCgoKCgpzdGF0aWMgaW5saW5lIHVuc2ln
bmVkIGxvbmcKZmZ6ICh1bnNpZ25lZCBsb25nIHgpCnsKICAgICAgICB1bnNpZ25lZCBsb25nIHJl
c3VsdDsKCiAgICAgICAgX19hc21fXyAoInBvcGNudCAlMD0lMSIgOiAiPXIiIChyZXN1bHQpIDog
InIiICh4ICYgKH54IC0gMSkpKTsKICAgICAgICByZXR1cm4gcmVzdWx0Owp9CgoKCgoKCgpzdGF0
aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKaWE2NF9mbHMgKHVuc2lnbmVkIGxvbmcgeCkKewogICAg
ICAgIGRvdWJsZSBkID0geDsKICAgICAgICBsb25nIGV4cDsKCiAgICAgICAgX19hc21fXyAoImdl
dGYuZXhwICUwPSUxIiA6ICI9ciIoZXhwKSA6ICJmIihkKSk7CiAgICAgICAgcmV0dXJuIGV4cCAt
IDB4ZmZmZjsKfQoKCgoKCgoKI2RlZmluZSBmZnMoeCkgX19idWlsdGluX2Zmcyh4KQoKCgoKCnN0
YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcKaHdlaWdodDY0ICh1bnNpZ25lZCBsb25nIHgp
CnsKICAgICAgICB1bnNpZ25lZCBsb25nIHJlc3VsdDsKICAgICAgICBfX2FzbV9fICgicG9wY250
ICUwPSUxIiA6ICI9ciIgKHJlc3VsdCkgOiAiciIgKHgpKTsKICAgICAgICByZXR1cm4gcmVzdWx0
Owp9CgojZGVmaW5lIGh3ZWlnaHQzMih4KSBod2VpZ2h0NjQgKCh4KSAmIDB4ZmZmZmZmZmZ1bCkK
I2RlZmluZSBod2VpZ2h0MTYoeCkgaHdlaWdodDY0ICgoeCkgJiAweGZmZmZ1bCkKI2RlZmluZSBo
d2VpZ2h0OCh4KSBod2VpZ2h0NjQgKCh4KSAmIDB4ZmZ1bCkKCgoKCgoKc3RhdGljIGlubGluZSBp
bnQKZmluZF9uZXh0X3plcm9fYml0ICh2b2lkICphZGRyLCB1bnNpZ25lZCBsb25nIHNpemUsIHVu
c2lnbmVkIGxvbmcgb2Zmc2V0KQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqcCA9ICgodW5zaWdu
ZWQgbG9uZyAqKSBhZGRyKSArIChvZmZzZXQgPj4gNik7CiAgICAgICAgdW5zaWduZWQgbG9uZyBy
ZXN1bHQgPSBvZmZzZXQgJiB+NjNVTDsKICAgICAgICB1bnNpZ25lZCBsb25nIHRtcDsKCiAgICAg
ICAgaWYgKG9mZnNldCA+PSBzaXplKQogICAgICAgICAgICAgICAgcmV0dXJuIHNpemU7CiAgICAg
ICAgc2l6ZSAtPSByZXN1bHQ7CiAgICAgICAgb2Zmc2V0ICY9IDYzVUw7CiAgICAgICAgaWYgKG9m
ZnNldCkgewogICAgICAgICAgICAgICAgdG1wID0gKihwKyspOwogICAgICAgICAgICAgICAgdG1w
IHw9IH4wVUwgPj4gKDY0LW9mZnNldCk7CiAgICAgICAgICAgICAgICBpZiAoc2l6ZSA8IDY0KQog
ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZvdW5kX2ZpcnN0OwogICAgICAgICAgICAgICAg
aWYgKH50bXApCiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZm91bmRfbWlkZGxlOwogICAg
ICAgICAgICAgICAgc2l6ZSAtPSA2NDsKICAgICAgICAgICAgICAgIHJlc3VsdCArPSA2NDsKICAg
ICAgICB9CiAgICAgICAgd2hpbGUgKHNpemUgJiB+NjNVTCkgewogICAgICAgICAgICAgICAgaWYg
KH4odG1wID0gKihwKyspKSkKICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmb3VuZF9taWRk
bGU7CiAgICAgICAgICAgICAgICByZXN1bHQgKz0gNjQ7CiAgICAgICAgICAgICAgICBzaXplIC09
IDY0OwogICAgICAgIH0KICAgICAgICBpZiAoIXNpemUpCiAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgIHRtcCA9ICpwOwpmb3VuZF9maXJzdDoKICAgICAgICB0bXAgfD0gfjBV
TCA8PCBzaXplOwpmb3VuZF9taWRkbGU6CiAgICAgICAgcmV0dXJuIHJlc3VsdCArIGZmeih0bXAp
Owp9CgoKCgojZGVmaW5lIGZpbmRfZmlyc3RfemVyb19iaXQoYWRkciwgc2l6ZSkgZmluZF9uZXh0
X3plcm9fYml0KChhZGRyKSwgKHNpemUpLCAwKQoKCgojZGVmaW5lIGV4dDJfc2V0X2JpdCB0ZXN0
X2FuZF9zZXRfYml0CiNkZWZpbmUgZXh0Ml9jbGVhcl9iaXQgdGVzdF9hbmRfY2xlYXJfYml0CiNk
ZWZpbmUgZXh0Ml90ZXN0X2JpdCB0ZXN0X2JpdAojZGVmaW5lIGV4dDJfZmluZF9maXJzdF96ZXJv
X2JpdCBmaW5kX2ZpcnN0X3plcm9fYml0CiNkZWZpbmUgZXh0Ml9maW5kX25leHRfemVyb19iaXQg
ZmluZF9uZXh0X3plcm9fYml0CgoKI2RlZmluZSBtaW5peF90ZXN0X2FuZF9zZXRfYml0KG5yLCBh
ZGRyKSB0ZXN0X2FuZF9zZXRfYml0KG5yLGFkZHIpCiNkZWZpbmUgbWluaXhfc2V0X2JpdChuciwg
YWRkcikgc2V0X2JpdChucixhZGRyKQojZGVmaW5lIG1pbml4X3Rlc3RfYW5kX2NsZWFyX2JpdChu
ciwgYWRkcikgdGVzdF9hbmRfY2xlYXJfYml0KG5yLGFkZHIpCiNkZWZpbmUgbWluaXhfdGVzdF9i
aXQobnIsIGFkZHIpIHRlc3RfYml0KG5yLGFkZHIpCiNkZWZpbmUgbWluaXhfZmluZF9maXJzdF96
ZXJvX2JpdChhZGRyLCBzaXplKSBmaW5kX2ZpcnN0X3plcm9fYml0KGFkZHIsc2l6ZSkKIyAxNiAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2F0b21pYy5oIiAxCgojZGVmaW5lIF9BU01fSUE2
NF9BVE9NSUNfSAojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9hdG9taWMu
aCIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyAx
NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgiIDIKCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDEKIyAxOCAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgiIDIKCgoKCgp0eXBlZGVmIHN0cnVjdCB7
IHZvbGF0aWxlIF9fczMyIGNvdW50ZXI7IH0gYXRvbWljX3Q7CgojZGVmaW5lIEFUT01JQ19JTklU
KGkpICgoYXRvbWljX3QpIHsgKGkpIH0pCgojZGVmaW5lIGF0b21pY19yZWFkKHYpICgodiktPmNv
dW50ZXIpCiNkZWZpbmUgYXRvbWljX3NldCh2LCBpKSAoKCh2KS0+Y291bnRlcikgPSAoaSkpCgpz
dGF0aWMgX19pbmxpbmVfXyBpbnQKaWE2NF9hdG9taWNfYWRkIChpbnQgaSwgYXRvbWljX3QgKnYp
CnsKICAgICAgICBfX3MzMiBvbGQsIG5ldzsKCgogICAgICAgIGRvIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICBvbGQgPSAoKHYpLT5jb3VudGVy
KTsKICAgICAgICAgICAgICAgIG5ldyA9IG9sZCArIGk7CiAgICAgICAgfSB3aGlsZSAoKHsgX190
eXBlb2ZfXyh2KSBfcF8gPSAodik7IF9fdHlwZW9mX18ob2xkICsgaSkgX25fID0gKG9sZCArIGkp
OyBfX3U2NCBfb18sIF9yXzsgc3dpdGNoIChzaXplb2YoYXRvbWljX3QpKSB7IGNhc2UgMTogX29f
ID0gKF9fdTggKSAobG9uZykgKG9sZCk7IGJyZWFrOyBjYXNlIDI6IF9vXyA9IChfX3UxNikgKGxv
bmcpIChvbGQpOyBicmVhazsgY2FzZSA0OiBfb18gPSAoX191MzIpIChsb25nKSAob2xkKTsgYnJl
YWs7IGNhc2UgODogX29fID0gKF9fdTY0KSAobG9uZykgKG9sZCk7IGJyZWFrOyBkZWZhdWx0OiBi
cmVhazsgfSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1vdiBhci5jY3Y9JTA7OyIgOjogInJPIihf
b18pKTsgc3dpdGNoIChzaXplb2YoYXRvbWljX3QpKSB7IGNhc2UgMTogX19hc21fXyBfX3ZvbGF0
aWxlX18gKCIiImNtcHhjaGcxLiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8p
IDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSAyOiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzIuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAi
PXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDQ6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnNC4iImFjcSIiICUwPVslMV0sJTIsYXIu
Y2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7
IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGc4LiIiYWNxIiIgJTA9WyUx
XSwlMixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIp
OyBicmVhazsgZGVmYXVsdDogX3JfID0gX19jbXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVy
KCk7IGJyZWFrOyB9IChfX3R5cGVvZl9fKG9sZCkpIF9yXzsgfSkgIT0gb2xkKTsKICAgICAgICBy
ZXR1cm4gbmV3Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQKaWE2NF9hdG9taWNfc3ViIChpbnQg
aSwgYXRvbWljX3QgKnYpCnsKICAgICAgICBfX3MzMiBvbGQsIG5ldzsKCgogICAgICAgIGRvIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7CiAgICAgICAgICAgICAgICBvbGQg
PSAoKHYpLT5jb3VudGVyKTsKICAgICAgICAgICAgICAgIG5ldyA9IG9sZCAtIGk7CiAgICAgICAg
fSB3aGlsZSAoKHsgX190eXBlb2ZfXyh2KSBfcF8gPSAodik7IF9fdHlwZW9mX18obmV3KSBfbl8g
PSAobmV3KTsgX191NjQgX29fLCBfcl87IHN3aXRjaCAoc2l6ZW9mKGF0b21pY190KSkgeyBjYXNl
IDE6IF9vXyA9IChfX3U4ICkgKGxvbmcpIChvbGQpOyBicmVhazsgY2FzZSAyOiBfb18gPSAoX191
MTYpIChsb25nKSAob2xkKTsgYnJlYWs7IGNhc2UgNDogX29fID0gKF9fdTMyKSAobG9uZykgKG9s
ZCk7IGJyZWFrOyBjYXNlIDg6IF9vXyA9IChfX3U2NCkgKGxvbmcpIChvbGQpOyBicmVhazsgZGVm
YXVsdDogYnJlYWs7IH0gX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgYXIuY2N2PSUwOzsiIDo6
ICJyTyIoX29fKSk7IHN3aXRjaCAoc2l6ZW9mKGF0b21pY190KSkgeyBjYXNlIDE6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJjbXB4Y2hnMS4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9
ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgMjog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGcyLiIiYWNxIiIgJTA9WyUxXSwlMixhci5j
Y3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsg
Y2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiY21weGNoZzQuIiJhY3EiIiAlMD1bJTFd
LCUyLGFyLmNjdiIgOiAiPXIiKF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7
IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnOC4iImFjcSIi
ICUwPVslMV0sJTIsYXIuY2N2IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJt
ZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9yXyA9IF9fY21weGNoZ19jYWxsZWRfd2l0aF9iYWRf
cG9pbnRlcigpOyBicmVhazsgfSAoX190eXBlb2ZfXyhvbGQpKSBfcl87IH0pICE9IG9sZCk7CiAg
ICAgICAgcmV0dXJuIG5ldzsKfQoKCgoKCnN0YXRpYyBfX2lubGluZV9fIGludAphdG9taWNfYWRk
X25lZ2F0aXZlIChpbnQgaSwgYXRvbWljX3QgKnYpCnsKICAgICAgICByZXR1cm4gaWE2NF9hdG9t
aWNfYWRkKGksIHYpIDwgMDsKfQoKI2RlZmluZSBhdG9taWNfYWRkX3JldHVybihpLCB2KSAoKF9f
YnVpbHRpbl9jb25zdGFudF9wKGkpICYmICggKGkgPT0gMSkgfHwgKGkgPT0gNCkgfHwgKGkgPT0g
OCkgfHwgKGkgPT0gMTYpIHx8IChpID09IC0xKSB8fCAoaSA9PSAtNCkgfHwgKGkgPT0gLTgpIHx8
IChpID09IC0xNikpKSA/IGlhNjRfZmV0Y2hfYW5kX2FkZChpLCAmKHYpLT5jb3VudGVyKSA6IGlh
NjRfYXRvbWljX2FkZChpLCB2KSkKCgoKCgoKI2RlZmluZSBhdG9taWNfc3ViX3JldHVybihpLCB2
KSAoKF9fYnVpbHRpbl9jb25zdGFudF9wKGkpICYmICggKGkgPT0gMSkgfHwgKGkgPT0gNCkgfHwg
KGkgPT0gOCkgfHwgKGkgPT0gMTYpIHx8IChpID09IC0xKSB8fCAoaSA9PSAtNCkgfHwgKGkgPT0g
LTgpIHx8IChpID09IC0xNikpKSA/IGlhNjRfZmV0Y2hfYW5kX2FkZCgtKGkpLCAmKHYpLT5jb3Vu
dGVyKSA6IGlhNjRfYXRvbWljX3N1YihpLCB2KSkKCgoKCgoKI2RlZmluZSBhdG9taWNfZGVjX3Jl
dHVybih2KSBhdG9taWNfc3ViX3JldHVybigxLCAodikpCiNkZWZpbmUgYXRvbWljX2luY19yZXR1
cm4odikgYXRvbWljX2FkZF9yZXR1cm4oMSwgKHYpKQoKI2RlZmluZSBhdG9taWNfc3ViX2FuZF90
ZXN0KGksIHYpIChhdG9taWNfc3ViX3JldHVybigoaSksICh2KSkgPT0gMCkKI2RlZmluZSBhdG9t
aWNfZGVjX2FuZF90ZXN0KHYpIChhdG9taWNfc3ViX3JldHVybigxLCAodikpID09IDApCiNkZWZp
bmUgYXRvbWljX2luY19hbmRfdGVzdCh2KSAoYXRvbWljX2FkZF9yZXR1cm4oMSwgKHYpKSAhPSAw
KQoKI2RlZmluZSBhdG9taWNfYWRkKGksIHYpIGF0b21pY19hZGRfcmV0dXJuKChpKSwgKHYpKQoj
ZGVmaW5lIGF0b21pY19zdWIoaSwgdikgYXRvbWljX3N1Yl9yZXR1cm4oKGkpLCAodikpCiNkZWZp
bmUgYXRvbWljX2luYyh2KSBhdG9taWNfYWRkKDEsICh2KSkKI2RlZmluZSBhdG9taWNfZGVjKHYp
IGF0b21pY19zdWIoMSwgKHYpKQoKCiNkZWZpbmUgc21wX21iX19iZWZvcmVfYXRvbWljX2RlYygp
IGJhcnJpZXIoKQojZGVmaW5lIHNtcF9tYl9fYWZ0ZXJfYXRvbWljX2RlYygpIGJhcnJpZXIoKQoj
ZGVmaW5lIHNtcF9tYl9fYmVmb3JlX2F0b21pY19pbmMoKSBiYXJyaWVyKCkKI2RlZmluZSBzbXBf
bWJfX2FmdGVyX2F0b21pY19pbmMoKSBiYXJyaWVyKCkKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIgMgojIDcwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9zcGlubG9jay5oIgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgdm9sYXRpbGUg
dW5zaWduZWQgaW50IGxvY2s7Cn0gc3BpbmxvY2tfdDsKCiNkZWZpbmUgU1BJTl9MT0NLX1VOTE9D
S0VEIChzcGlubG9ja190KSB7IDAgfQojZGVmaW5lIHNwaW5fbG9ja19pbml0KHgpICgoeCktPmxv
Y2sgPSAwKQoKCgoKCgojZGVmaW5lIHNwaW5fbG9jayh4KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo
ICJtb3YgYXIuY2N2ID0gcjBcbiIgIm1vdiByMjkgPSAxXG4iICI7O1xuIiAiMTpcbiIgImxkNCBy
MiA9IFslMF1cbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAscjJcbiIgIihwNykgYnIuY29u
ZC5zcG50LmZldyAxYiBcbiIgSUE2NF9TRU1GSVgiY21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5
LCBhci5jY3ZcbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNv
bmQuc3BudC5mZXcgMWJcbiIgIjs7XG4iIDo6ICJyIigmKHgpLT5sb2NrKSA6ICJyMiIsICJyMjki
LCAibWVtb3J5IikKIyA5OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3Bpbmxv
Y2suaCIKI2RlZmluZSBzcGluX2lzX2xvY2tlZCh4KSAoKHgpLT5sb2NrICE9IDApCiNkZWZpbmUg
c3Bpbl91bmxvY2soeCkgZG8geyBiYXJyaWVyKCk7ICgoc3BpbmxvY2tfdCAqKSB4KS0+bG9jayA9
IDA7IH0gd2hpbGUgKDApCiNkZWZpbmUgc3Bpbl90cnlsb2NrKHgpIChjbXB4Y2hnX2FjcSgmKHgp
LT5sb2NrLCAwLCAxKSA9PSAwKQojZGVmaW5lIHNwaW5fdW5sb2NrX3dhaXQoeCkgZG8geyBiYXJy
aWVyKCk7IH0gd2hpbGUgKCh4KS0+bG9jaykKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHZv
bGF0aWxlIGludCByZWFkX2NvdW50ZXI6MzE7CiAgICAgICAgdm9sYXRpbGUgaW50IHdyaXRlX2xv
Y2s6MTsKfSByd2xvY2tfdDsKI2RlZmluZSBSV19MT0NLX1VOTE9DS0VEIChyd2xvY2tfdCkgeyAw
LCAwIH0KCiNkZWZpbmUgcmVhZF9sb2NrKHJ3KSBkbyB7IGludCB0bXAgPSAwOyBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIjE6XHQiSUE2NF9TRU1GSVgiZmV0Y2hhZGQ0LmFjcSAlMCA9IFslMV0sIDFc
biIgIjs7XG4iICJ0Yml0Lm56IHA2LHAwID0gJTAsIDMxXG4iICIocDYpIGJyLmNvbmQuc3B0ay5m
ZXcgMmZcbiIgIi5zZWN0aW9uIC50ZXh0LmxvY2ssXCJheFwiXG4iICIyOlx0IklBNjRfU0VNRklY
ImZldGNoYWRkNC5yZWwgJTAgPSBbJTFdLCAtMVxuIiAiOztcbiIgIjM6XHRsZDQuYWNxICUwID0g
WyUxXVxuIiAiOztcbiIgInRiaXQubnogcDYscDAgPSAlMCwgMzFcbiIgIihwNikgYnIuY29uZC5z
cHRrLmZldyAzYlxuIiAiYnIuY29uZC5zcHRrLmZldyAxYlxuIiAiOztcbiIgIi5wcmV2aW91c1xu
IiA6ICI9JnIiICh0bXApIDogInIiIChydyk6ICJtZW1vcnkiKTsgfSB3aGlsZSgwKQojIDEzMiAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3BpbmxvY2suaCIKI2RlZmluZSByZWFk
X3VubG9jayhydykgZG8geyBpbnQgdG1wID0gMDsgX19hc21fXyBfX3ZvbGF0aWxlX18gKElBNjRf
U0VNRklYImZldGNoYWRkNC5yZWwgJTAgPSBbJTFdLCAtMVxuIiA6ICI9ciIgKHRtcCkgOiAiciIg
KHJ3KSA6ICJtZW1vcnkiKTsgfSB3aGlsZSgwKQojIDE0MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vc3BpbmxvY2suaCIKI2RlZmluZSB3cml0ZV9sb2NrKHJ3KSBkbyB7IF9fYXNt
X18gX192b2xhdGlsZV9fICggIm1vdiBhci5jY3YgPSByMFxuIiAibW92bCByMjkgPSAweDgwMDAw
MDAwXG4iICI7O1xuIiAiMTpcbiIgImxkNCByMiA9IFslMF1cbiIgIjs7XG4iICJjbXA0LmVxIHAw
LHA3ID0gcjAscjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYiBcbiIgSUE2NF9TRU1GSVgi
Y21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5LCBhci5jY3ZcbiIgIjs7XG4iICJjbXA0LmVxIHAw
LHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNvbmQuc3BudC5mZXcgMWJcbiIgIjs7XG4iIDo6ICJy
IihydykgOiAicjIiLCAicjI5IiwgIm1lbW9yeSIpOyB9IHdoaWxlKDApCiMgMTY0ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zcGlubG9jay5oIgojZGVmaW5lIHdyaXRlX3VubG9j
ayh4KSAoe2NsZWFyX2JpdCgzMSwgKHgpKTsgbWIoKTt9KQojIDM2ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDIKIyAxMzIgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9hdG9taWMuaCIgMQojIDEzMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9zcGlubG9jay5oIiAyCmV4dGVybiBpbnQgYXRvbWljX2RlY19hbmRfbG9jayhhdG9t
aWNfdCAqYXRvbWljLCBzcGlubG9ja190ICpsb2NrKTsKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC93YWl0LmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vcGFnZS5oIiAxCiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvd2FpdC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vz
c29yLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BST0NFU1NPUl9ICiMgMTYgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vcHRyYWNlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BUUkFDRV9ICiMgNTEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5oIgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA1MiAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vZnB1LmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X0ZQVV9ICgoKCgoKCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdHlwZXMuaCIgMQojIDEwICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9mcHUuaCIgMgoKCiNkZWZpbmUgRlBTUl9UUkFQX1ZE
ICgxIDw8IDApCiNkZWZpbmUgRlBTUl9UUkFQX0REICgxIDw8IDEpCiNkZWZpbmUgRlBTUl9UUkFQ
X1pEICgxIDw8IDIpCiNkZWZpbmUgRlBTUl9UUkFQX09EICgxIDw8IDMpCiNkZWZpbmUgRlBTUl9U
UkFQX1VEICgxIDw8IDQpCiNkZWZpbmUgRlBTUl9UUkFQX0lEICgxIDw8IDUpCiNkZWZpbmUgRlBT
Ul9TMCh4KSAoKHgpIDw8IDYpCiNkZWZpbmUgRlBTUl9TMSh4KSAoKHgpIDw8IDE5KQojZGVmaW5l
IEZQU1JfUzIoeCkgKF9fSUE2NF9VTCh4KSA8PCAzMikKI2RlZmluZSBGUFNSX1MzKHgpIChfX0lB
NjRfVUwoeCkgPDwgNDUpCgoKI2RlZmluZSBGUFNGX0ZUWiAoMSA8PCAwKQojZGVmaW5lIEZQU0Zf
V1JFICgxIDw8IDEpCiNkZWZpbmUgRlBTRl9QQyh4KSAoKCh4KSAmIDB4MykgPDwgMikKI2RlZmlu
ZSBGUFNGX1JDKHgpICgoKHgpICYgMHgzKSA8PCA0KQojZGVmaW5lIEZQU0ZfVEQgKDEgPDwgNikK
CgojZGVmaW5lIEZQU0ZfViAoMSA8PCA3KQojZGVmaW5lIEZQU0ZfRCAoMSA8PCA4KQojZGVmaW5l
IEZQU0ZfWiAoMSA8PCA5KQojZGVmaW5lIEZQU0ZfTyAoMSA8PCAxMCkKI2RlZmluZSBGUFNGX1Ug
KDEgPDwgMTEpCiNkZWZpbmUgRlBTRl9JICgxIDw8IDEyKQoKCiNkZWZpbmUgRlBSQ19ORUFSRVNU
IDB4MAojZGVmaW5lIEZQUkNfTkVHSU5GIDB4MQojZGVmaW5lIEZQUkNfUE9TSU5GIDB4MgojZGVm
aW5lIEZQUkNfVFJVTkMgMHgzCgojZGVmaW5lIEZQU0ZfREVGQVVMVCAoRlBTRl9QQyAoMHgzKSB8
IEZQU0ZfUkMgKEZQUkNfTkVBUkVTVCkpCgoKCiNkZWZpbmUgRlBTUl9ERUZBVUxUIChGUFNSX1RS
QVBfVkQgfCBGUFNSX1RSQVBfREQgfCBGUFNSX1RSQVBfWkQgfCBGUFNSX1RSQVBfT0QgfCBGUFNS
X1RSQVBfVUQgfCBGUFNSX1RSQVBfSUQgfCBGUFNSX1MwIChGUFNGX0RFRkFVTFQpIHwgRlBTUl9T
MSAoRlBTRl9ERUZBVUxUIHwgRlBTRl9URCB8IEZQU0ZfV1JFKSB8IEZQU1JfUzIgKEZQU0ZfREVG
QVVMVCB8IEZQU0ZfVEQpIHwgRlBTUl9TMyAoRlBTRl9ERUZBVUxUIHwgRlBTRl9URCkpCiMgNTcg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2ZwdS5oIgpzdHJ1Y3QgaWE2NF9mcHJl
ZyB7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBiaXRzWzJd
OwogICAgICAgIH0gdTsKfSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoMTYpKSk7CiMgNTQgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vb2Zmc2V0cy5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9P
RkZTRVRTX0gKCgoKCgoKI2RlZmluZSBQVF9QVFJBQ0VEX0JJVCAwCiNkZWZpbmUgUFRfVFJBQ0VT
WVNfQklUIDEKI2RlZmluZSBJQTY0X1RBU0tfU0laRSAzOTA0CiNkZWZpbmUgSUE2NF9QVF9SRUdT
X1NJWkUgNDAwCiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfU0laRSA1NjAKI2RlZmluZSBJQTY0
X1NJR0lORk9fU0laRSAxMjgKI2RlZmluZSBJQTY0X0NQVV9TSVpFIDE2Mzg0CiNkZWZpbmUgU0lH
RlJBTUVfU0laRSAyODMyCiNkZWZpbmUgVU5XX0ZSQU1FX0lORk9fU0laRSA0NDgKCiNkZWZpbmUg
SUE2NF9UQVNLX1BUUkFDRV9PRkZTRVQgNDgKI2RlZmluZSBJQTY0X1RBU0tfU0lHUEVORElOR19P
RkZTRVQgMTYKI2RlZmluZSBJQTY0X1RBU0tfTkVFRF9SRVNDSEVEX09GRlNFVCA0MAojZGVmaW5l
IElBNjRfVEFTS19QUk9DRVNTT1JfT0ZGU0VUIDEwMAojZGVmaW5lIElBNjRfVEFTS19USFJFQURf
T0ZGU0VUIDE0NTYKI2RlZmluZSBJQTY0X1RBU0tfVEhSRUFEX0tTUF9PRkZTRVQgMTQ1NgojZGVm
aW5lIElBNjRfVEFTS19USFJFQURfU0lHTUFTS19PRkZTRVQgMTU2OAojZGVmaW5lIElBNjRfVEFT
S19QRk1fTk9USUZZX09GRlNFVCAyMDg4CiNkZWZpbmUgSUE2NF9UQVNLX1BJRF9PRkZTRVQgMTk2
CiNkZWZpbmUgSUE2NF9UQVNLX01NX09GRlNFVCA4OAojZGVmaW5lIElBNjRfUFRfUkVHU19DUl9J
UFNSX09GRlNFVCAwCiNkZWZpbmUgSUE2NF9QVF9SRUdTX0NSX0lJUF9PRkZTRVQgOAojZGVmaW5l
IElBNjRfUFRfUkVHU19DUl9JRlNfT0ZGU0VUIDE2CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0FSX1VO
QVRfT0ZGU0VUIDI0CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0FSX1BGU19PRkZTRVQgMzIKI2RlZmlu
ZSBJQTY0X1BUX1JFR1NfQVJfUlNDX09GRlNFVCA0MAojZGVmaW5lIElBNjRfUFRfUkVHU19BUl9S
TkFUX09GRlNFVCA0OAojZGVmaW5lIElBNjRfUFRfUkVHU19BUl9CU1BTVE9SRV9PRkZTRVQgNTYK
I2RlZmluZSBJQTY0X1BUX1JFR1NfUFJfT0ZGU0VUIDY0CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0I2
X09GRlNFVCA3MgojZGVmaW5lIElBNjRfUFRfUkVHU19MT0FEUlNfT0ZGU0VUIDgwCiNkZWZpbmUg
SUE2NF9QVF9SRUdTX1IxX09GRlNFVCA4OAojZGVmaW5lIElBNjRfUFRfUkVHU19SMl9PRkZTRVQg
OTYKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjNfT0ZGU0VUIDEwNAojZGVmaW5lIElBNjRfUFRfUkVH
U19SMTJfT0ZGU0VUIDExMgojZGVmaW5lIElBNjRfUFRfUkVHU19SMTNfT0ZGU0VUIDEyMAojZGVm
aW5lIElBNjRfUFRfUkVHU19SMTRfT0ZGU0VUIDEyOAojZGVmaW5lIElBNjRfUFRfUkVHU19SMTVf
T0ZGU0VUIDEzNgojZGVmaW5lIElBNjRfUFRfUkVHU19SOF9PRkZTRVQgMTQ0CiNkZWZpbmUgSUE2
NF9QVF9SRUdTX1I5X09GRlNFVCAxNTIKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjEwX09GRlNFVCAx
NjAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjExX09GRlNFVCAxNjgKI2RlZmluZSBJQTY0X1BUX1JF
R1NfUjE2X09GRlNFVCAxNzYKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjE3X09GRlNFVCAxODQKI2Rl
ZmluZSBJQTY0X1BUX1JFR1NfUjE4X09GRlNFVCAxOTIKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjE5
X09GRlNFVCAyMDAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjIwX09GRlNFVCAyMDgKI2RlZmluZSBJ
QTY0X1BUX1JFR1NfUjIxX09GRlNFVCAyMTYKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjIyX09GRlNF
VCAyMjQKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjIzX09GRlNFVCAyMzIKI2RlZmluZSBJQTY0X1BU
X1JFR1NfUjI0X09GRlNFVCAyNDAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjI1X09GRlNFVCAyNDgK
I2RlZmluZSBJQTY0X1BUX1JFR1NfUjI2X09GRlNFVCAyNTYKI2RlZmluZSBJQTY0X1BUX1JFR1Nf
UjI3X09GRlNFVCAyNjQKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjI4X09GRlNFVCAyNzIKI2RlZmlu
ZSBJQTY0X1BUX1JFR1NfUjI5X09GRlNFVCAyODAKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjMwX09G
RlNFVCAyODgKI2RlZmluZSBJQTY0X1BUX1JFR1NfUjMxX09GRlNFVCAyOTYKI2RlZmluZSBJQTY0
X1BUX1JFR1NfQVJfQ0NWX09GRlNFVCAzMDQKI2RlZmluZSBJQTY0X1BUX1JFR1NfQVJfRlBTUl9P
RkZTRVQgMzEyCiNkZWZpbmUgSUE2NF9QVF9SRUdTX0IwX09GRlNFVCAzMjAKI2RlZmluZSBJQTY0
X1BUX1JFR1NfQjdfT0ZGU0VUIDMyOAojZGVmaW5lIElBNjRfUFRfUkVHU19GNl9PRkZTRVQgMzM2
CiNkZWZpbmUgSUE2NF9QVF9SRUdTX0Y3X09GRlNFVCAzNTIKI2RlZmluZSBJQTY0X1BUX1JFR1Nf
RjhfT0ZGU0VUIDM2OAojZGVmaW5lIElBNjRfUFRfUkVHU19GOV9PRkZTRVQgMzg0CiNkZWZpbmUg
SUE2NF9TV0lUQ0hfU1RBQ0tfQ0FMTEVSX1VOQVRfT0ZGU0VUIDAKI2RlZmluZSBJQTY0X1NXSVRD
SF9TVEFDS19BUl9GUFNSX09GRlNFVCA4CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjJfT0ZG
U0VUIDE2CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjNfT0ZGU0VUIDMyCiNkZWZpbmUgSUE2
NF9TV0lUQ0hfU1RBQ0tfRjRfT0ZGU0VUIDQ4CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjVf
T0ZGU0VUIDY0CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjEwX09GRlNFVCA4MAojZGVmaW5l
IElBNjRfU1dJVENIX1NUQUNLX0YxMV9PRkZTRVQgOTYKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFD
S19GMTJfT0ZGU0VUIDExMgojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YxM19PRkZTRVQgMTI4
CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjE0X09GRlNFVCAxNDQKI2RlZmluZSBJQTY0X1NX
SVRDSF9TVEFDS19GMTVfT0ZGU0VUIDE2MAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YxNl9P
RkZTRVQgMTc2CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjE3X09GRlNFVCAxOTIKI2RlZmlu
ZSBJQTY0X1NXSVRDSF9TVEFDS19GMThfT0ZGU0VUIDIwOAojZGVmaW5lIElBNjRfU1dJVENIX1NU
QUNLX0YxOV9PRkZTRVQgMjI0CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjIwX09GRlNFVCAy
NDAKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19GMjFfT0ZGU0VUIDI1NgojZGVmaW5lIElBNjRf
U1dJVENIX1NUQUNLX0YyMl9PRkZTRVQgMjcyCiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfRjIz
X09GRlNFVCAyODgKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19GMjRfT0ZGU0VUIDMwNAojZGVm
aW5lIElBNjRfU1dJVENIX1NUQUNLX0YyNV9PRkZTRVQgMzIwCiNkZWZpbmUgSUE2NF9TV0lUQ0hf
U1RBQ0tfRjI2X09GRlNFVCAzMzYKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19GMjdfT0ZGU0VU
IDM1MgojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YyOF9PRkZTRVQgMzY4CiNkZWZpbmUgSUE2
NF9TV0lUQ0hfU1RBQ0tfRjI5X09GRlNFVCAzODQKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19G
MzBfT0ZGU0VUIDQwMAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0YzMV9PRkZTRVQgNDE2CiNk
ZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfUjRfT0ZGU0VUIDQzMgojZGVmaW5lIElBNjRfU1dJVENI
X1NUQUNLX1I1X09GRlNFVCA0NDAKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19SNl9PRkZTRVQg
NDQ4CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfUjdfT0ZGU0VUIDQ1NgojZGVmaW5lIElBNjRf
U1dJVENIX1NUQUNLX0IwX09GRlNFVCA0NjQKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFDS19CMV9P
RkZTRVQgNDcyCiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfQjJfT0ZGU0VUIDQ4MAojZGVmaW5l
IElBNjRfU1dJVENIX1NUQUNLX0IzX09GRlNFVCA0ODgKI2RlZmluZSBJQTY0X1NXSVRDSF9TVEFD
S19CNF9PRkZTRVQgNDk2CiNkZWZpbmUgSUE2NF9TV0lUQ0hfU1RBQ0tfQjVfT0ZGU0VUIDUwNAoj
ZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FSX1BGU19PRkZTRVQgNTEyCiNkZWZpbmUgSUE2NF9T
V0lUQ0hfU1RBQ0tfQVJfTENfT0ZGU0VUIDUyMAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FS
X1VOQVRfT0ZGU0VUIDUyOAojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FSX1JOQVRfT0ZGU0VU
IDUzNgojZGVmaW5lIElBNjRfU1dJVENIX1NUQUNLX0FSX0JTUFNUT1JFX09GRlNFVCA1NDQKI2Rl
ZmluZSBJQTY0X1NXSVRDSF9TVEFDS19QUl9PRkZTRVQgNTUyCiNkZWZpbmUgSUE2NF9TSUdDT05U
RVhUX0FSX0JTUF9PRkZTRVQgNzIKI2RlZmluZSBJQTY0X1NJR0NPTlRFWFRfQVJfRlBTUl9PRkZT
RVQgMTA0CiNkZWZpbmUgSUE2NF9TSUdDT05URVhUX0FSX1JOQVRfT0ZGU0VUIDgwCiNkZWZpbmUg
SUE2NF9TSUdDT05URVhUX0FSX1VOQVRfT0ZGU0VUIDk2CiNkZWZpbmUgSUE2NF9TSUdDT05URVhU
X0IwX09GRlNFVCAxMzYKI2RlZmluZSBJQTY0X1NJR0NPTlRFWFRfQ0ZNX09GRlNFVCA0OAojZGVm
aW5lIElBNjRfU0lHQ09OVEVYVF9GTEFHU19PRkZTRVQgMAojZGVmaW5lIElBNjRfU0lHQ09OVEVY
VF9GUjZfT0ZGU0VUIDU2MAojZGVmaW5lIElBNjRfU0lHQ09OVEVYVF9QUl9PRkZTRVQgMTI4CiNk
ZWZpbmUgSUE2NF9TSUdDT05URVhUX1IxMl9PRkZTRVQgMjk2CiNkZWZpbmUgSUE2NF9TSUdGUkFN
RV9BUkcwX09GRlNFVCAwCiNkZWZpbmUgSUE2NF9TSUdGUkFNRV9BUkcxX09GRlNFVCA4CiNkZWZp
bmUgSUE2NF9TSUdGUkFNRV9BUkcyX09GRlNFVCAxNgojZGVmaW5lIElBNjRfU0lHRlJBTUVfUkJT
X0JBU0VfT0ZGU0VUIDI0CiNkZWZpbmUgSUE2NF9TSUdGUkFNRV9IQU5ETEVSX09GRlNFVCAzMgoj
ZGVmaW5lIElBNjRfU0lHRlJBTUVfU0lHQ09OVEVYVF9PRkZTRVQgMTc2CiNkZWZpbmUgSUE2NF9D
TE9ORV9WRk9SSyAxNjM4NAojZGVmaW5lIElBNjRfQ0xPTkVfVk0gMjU2CiNkZWZpbmUgSUE2NF9D
UFVfSVJRX0NPVU5UX09GRlNFVCAwCiNkZWZpbmUgSUE2NF9DUFVfQkhfQ09VTlRfT0ZGU0VUIDQK
I2RlZmluZSBJQTY0X0NQVV9QSFlTX1NUQUNLRURfU0laRV9QOF9PRkZTRVQgMTIKIyA1NSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDIKIyA2NSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiCiNkZWZpbmUgSUE2NF9UQVNLX1NUUlVD
VF9MT0dfTlVNX1BBR0VTIDEKCgoKCiNkZWZpbmUgSUE2NF9SQlNfT0ZGU0VUICgoSUE2NF9UQVNL
X1NJWkUgKyAxNSkgJiB+MTUpCiNkZWZpbmUgSUE2NF9TVEtfT0ZGU0VUICgoMSA8PCBJQTY0X1RB
U0tfU1RSVUNUX0xPR19OVU1fUEFHRVMpKlBBR0VfU0laRSkKCiNkZWZpbmUgSU5JVF9UQVNLX1NJ
WkUgSUE2NF9TVEtfT0ZGU0VUCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vY3VycmVudC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9DVVJSRU5UX0gKIyAxMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vY3VycmVudC5oIgpyZWdpc3RlciBzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKmN1cnJlbnQgYXNtICgicjEzIik7CiMgNzggIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vcGFnZS5oIiAxCiMgNzkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0
cmFjZS5oIiAyCiMgOTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5o
IgpzdHJ1Y3QgcHRfcmVncyB7CgoKICAgICAgICB1bnNpZ25lZCBsb25nIGNyX2lwc3I7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyBjcl9paXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBjcl9pZnM7Cgog
ICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfdW5hdDsKICAgICAgICB1bnNpZ25lZCBsb25nIGFyX3Bm
czsKICAgICAgICB1bnNpZ25lZCBsb25nIGFyX3JzYzsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBh
cl9ybmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfYnNwc3RvcmU7CgogICAgICAgIHVuc2ln
bmVkIGxvbmcgcHI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBiNjsKICAgICAgICB1bnNpZ25lZCBs
b25nIGxvYWRyczsKCiAgICAgICAgdW5zaWduZWQgbG9uZyByMTsKICAgICAgICB1bnNpZ25lZCBs
b25nIHIyOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcjM7CiAgICAgICAgdW5zaWduZWQgbG9uZyBy
MTI7CiAgICAgICAgdW5zaWduZWQgbG9uZyByMTM7CiAgICAgICAgdW5zaWduZWQgbG9uZyByMTQ7
CiAgICAgICAgdW5zaWduZWQgbG9uZyByMTU7CgogICAgICAgIHVuc2lnbmVkIGxvbmcgcjg7CiAg
ICAgICAgdW5zaWduZWQgbG9uZyByOTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIxMDsKICAgICAg
ICB1bnNpZ25lZCBsb25nIHIxMTsKCgoKICAgICAgICB1bnNpZ25lZCBsb25nIHIxNjsKICAgICAg
ICB1bnNpZ25lZCBsb25nIHIxNzsKICAgICAgICB1bnNpZ25lZCBsb25nIHIxODsKICAgICAgICB1
bnNpZ25lZCBsb25nIHIxOTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyMDsKICAgICAgICB1bnNp
Z25lZCBsb25nIHIyMTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyMjsKICAgICAgICB1bnNpZ25l
ZCBsb25nIHIyMzsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyNDsKICAgICAgICB1bnNpZ25lZCBs
b25nIHIyNTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyNjsKICAgICAgICB1bnNpZ25lZCBsb25n
IHIyNzsKICAgICAgICB1bnNpZ25lZCBsb25nIHIyODsKICAgICAgICB1bnNpZ25lZCBsb25nIHIy
OTsKICAgICAgICB1bnNpZ25lZCBsb25nIHIzMDsKICAgICAgICB1bnNpZ25lZCBsb25nIHIzMTsK
CiAgICAgICAgdW5zaWduZWQgbG9uZyBhcl9jY3Y7CiAgICAgICAgdW5zaWduZWQgbG9uZyBhcl9m
cHNyOwoKICAgICAgICB1bnNpZ25lZCBsb25nIGIwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgYjc7
CgoKCgogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGY2OwogICAgICAgIHN0cnVjdCBpYTY0X2Zw
cmVnIGY3OwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGY4OwogICAgICAgIHN0cnVjdCBpYTY0
X2ZwcmVnIGY5Owp9OwoKCgoKCgpzdHJ1Y3Qgc3dpdGNoX3N0YWNrIHsKICAgICAgICB1bnNpZ25l
ZCBsb25nIGNhbGxlcl91bmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfZnBzcjsKCiAgICAg
ICAgc3RydWN0IGlhNjRfZnByZWcgZjI7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjM7CiAg
ICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjQ7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjU7
CgogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYxMDsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJl
ZyBmMTE7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjEyOwogICAgICAgIHN0cnVjdCBpYTY0
X2ZwcmVnIGYxMzsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMTQ7CiAgICAgICAgc3RydWN0
IGlhNjRfZnByZWcgZjE1OwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYxNjsKICAgICAgICBz
dHJ1Y3QgaWE2NF9mcHJlZyBmMTc7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjE4OwogICAg
ICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYxOTsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMjA7
CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjIxOwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVn
IGYyMjsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMjM7CiAgICAgICAgc3RydWN0IGlhNjRf
ZnByZWcgZjI0OwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYyNTsKICAgICAgICBzdHJ1Y3Qg
aWE2NF9mcHJlZyBmMjY7CiAgICAgICAgc3RydWN0IGlhNjRfZnByZWcgZjI3OwogICAgICAgIHN0
cnVjdCBpYTY0X2ZwcmVnIGYyODsKICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyBmMjk7CiAgICAg
ICAgc3RydWN0IGlhNjRfZnByZWcgZjMwOwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGYzMTsK
CiAgICAgICAgdW5zaWduZWQgbG9uZyByNDsKICAgICAgICB1bnNpZ25lZCBsb25nIHI1OwogICAg
ICAgIHVuc2lnbmVkIGxvbmcgcjY7CiAgICAgICAgdW5zaWduZWQgbG9uZyByNzsKCiAgICAgICAg
dW5zaWduZWQgbG9uZyBiMDsKICAgICAgICB1bnNpZ25lZCBsb25nIGIxOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgYjI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBiMzsKICAgICAgICB1bnNpZ25lZCBs
b25nIGI0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYjU7CgogICAgICAgIHVuc2lnbmVkIGxvbmcg
YXJfcGZzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfbGM7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBhcl91bmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJfcm5hdDsKICAgICAgICB1bnNpZ25l
ZCBsb25nIGFyX2JzcHN0b3JlOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcHI7Cn07CgoKCiNkZWZp
bmUgaWE2NF90YXNrX3JlZ3ModCkgKCgoc3RydWN0IHB0X3JlZ3MgKikgKChjaGFyICopICh0KSAr
IElBNjRfU1RLX09GRlNFVCkpIC0gMSkKI2RlZmluZSBpYTY0X3BzcihyZWdzKSAoKHN0cnVjdCBp
YTY0X3BzciAqKSAmKHJlZ3MpLT5jcl9pcHNyKQojZGVmaW5lIHVzZXJfbW9kZShyZWdzKSAoKChz
dHJ1Y3QgaWE2NF9wc3IgKikgJihyZWdzKS0+Y3JfaXBzciktPmNwbCAhPSAwKQoKICBzdHJ1Y3Qg
dGFza19zdHJ1Y3Q7CgogIGV4dGVybiB2b2lkIHNob3dfcmVncyAoc3RydWN0IHB0X3JlZ3MgKik7
CiAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaWE2NF9nZXRfdXNlcl9yYnNfZW5kIChzdHJ1Y3QgdGFz
a19zdHJ1Y3QgKiwgc3RydWN0IHB0X3JlZ3MgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKik7CiAgZXh0ZXJuIGxvbmcgaWE2NF9w
ZWVrIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKiwgc3RydWN0IHN3aXRjaF9zdGFjayAqLCB1bnNpZ25l
ZCBsb25nLAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZywgbG9uZyAqKTsK
ICBleHRlcm4gbG9uZyBpYTY0X3Bva2UgKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBzdHJ1Y3Qgc3dp
dGNoX3N0YWNrICosIHVuc2lnbmVkIGxvbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBsb25nLCBsb25nKTsKICBleHRlcm4gdm9pZCBpYTY0X2ZsdXNoX2ZwaCAoc3RydWN0IHRh
c2tfc3RydWN0ICopOwogIGV4dGVybiB2b2lkIGlhNjRfc3luY19mcGggKHN0cnVjdCB0YXNrX3N0
cnVjdCAqKTsKICBleHRlcm4gbG9uZyBpYTY0X3N5bmNfdXNlcl9yYnMgKHN0cnVjdCB0YXNrX3N0
cnVjdCAqLCBzdHJ1Y3Qgc3dpdGNoX3N0YWNrICosCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKCgogIGV4dGVybiB1bnNpZ25l
ZCBsb25nIGlhNjRfZ2V0X3NjcmF0Y2hfbmF0X2JpdHMgKHN0cnVjdCBwdF9yZWdzICpwdCwgdW5z
aWduZWQgbG9uZyBzY3JhdGNoX3VuYXQpOwoKICBleHRlcm4gdW5zaWduZWQgbG9uZyBpYTY0X3B1
dF9zY3JhdGNoX25hdF9iaXRzIChzdHJ1Y3QgcHRfcmVncyAqcHQsIHVuc2lnbmVkIGxvbmcgbmF0
KTsKCiAgZXh0ZXJuIHZvaWQgaWE2NF9pbmNyZW1lbnRfaXAgKHN0cnVjdCBwdF9yZWdzICpwdCk7
CiAgZXh0ZXJuIHZvaWQgaWE2NF9kZWNyZW1lbnRfaXAgKHN0cnVjdCBwdF9yZWdzICpwdCk7Cgpz
dGF0aWMgaW5saW5lIHZvaWQKZm9yY2Vfc3VjY2Vzc2Z1bF9zeXNjYWxsX3JldHVybiAodm9pZCkK
ewogICAgICAgICgoKHN0cnVjdCBwdF9yZWdzICopICgoY2hhciAqKSAoY3VycmVudCkgKyAoKDEg
PDwgMSkqKDFVTCA8PCAxNCkpKSkgLSAxKS0+cjggPSAwOwp9CiMgMjU2ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2FzbS9wdHJhY2UuaCIKI2RlZmluZSBQVFJBQ0VfU0lOR0xFQkxPQ0sg
MTIKI2RlZmluZSBQVFJBQ0VfR0VUU0lHSU5GTyAxMwojZGVmaW5lIFBUUkFDRV9TRVRTSUdJTkZP
IDE0CiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20va3JlZ3MuaCIgMQoKI2RlZmlu
ZSBfQVNNX0lBNjRfS1JFR1NfSAojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz
bS9rcmVncy5oIgojZGVmaW5lIElBNjRfS1JfSU9fQkFTRSAwCiNkZWZpbmUgSUE2NF9LUl9DVVJS
RU5UX1NUQUNLIDQKI2RlZmluZSBJQTY0X0tSX0ZQVV9PV05FUiA1CiNkZWZpbmUgSUE2NF9LUl9D
VVJSRU5UIDYKI2RlZmluZSBJQTY0X0tSX1BUX0JBU0UgNwoKI2RlZmluZSBfSUE2NF9LUl9QQVNU
RSh4LCB5KSB4ICMjIHkKI2RlZmluZSBfSUE2NF9LUl9QUkVGSVgobikgX0lBNjRfS1JfUEFTVEUo
YXIuaywgbikKI2RlZmluZSBJQTY0X0tSKG4pIF9JQTY0X0tSX1BSRUZJWChJQTY0X0tSXyAjIyBu
KQoKCgoKI2RlZmluZSBJQTY0X1RSX0tFUk5FTCAwCiNkZWZpbmUgSUE2NF9UUl9QQUxDT0RFIDEK
I2RlZmluZSBJQTY0X1RSX1BFUkNQVV9EQVRBIDEKI2RlZmluZSBJQTY0X1RSX0NVUlJFTlRfU1RB
Q0sgMgojIDIwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIiAxCiMgMjEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdHlwZXMuaCIgMQojIDIyICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMgoKI2RlZmluZSBJQTY0X05VTV9E
QkdfUkVHUyA4CgoKCgojZGVmaW5lIElBNjRfTlVNX1BNQ19SRUdTIDMyCiNkZWZpbmUgSUE2NF9O
VU1fUE1EX1JFR1MgMzIKI2RlZmluZSBJQTY0X05VTV9QTURfQ09VTlRFUlMgNAoKI2RlZmluZSBE
RUZBVUxUX01BUF9CQVNFIDB4MjAwMDAwMDAwMDAwMDAwMAojZGVmaW5lIERFRkFVTFRfVEFTS19T
SVpFIDB4YTAwMDAwMDAwMDAwMDAwMAoKCgoKCgoKI2RlZmluZSBUQVNLX1NJWkUgKGN1cnJlbnQt
PnRocmVhZC50YXNrX3NpemUpCgoKCgoKI2RlZmluZSBUQVNLX1VOTUFQUEVEX0JBU0UgKGN1cnJl
bnQtPnRocmVhZC5tYXBfYmFzZSkKCgoKCiNkZWZpbmUgRUlTQV9idXMgMAojZGVmaW5lIEVJU0Ff
YnVzX19pc19hX21hY3JvCiNkZWZpbmUgTUNBX2J1cyAwCiNkZWZpbmUgTUNBX2J1c19faXNfYV9t
YWNybwoKCiNkZWZpbmUgSUE2NF9QU1JfQkVfQklUIDEKI2RlZmluZSBJQTY0X1BTUl9VUF9CSVQg
MgojZGVmaW5lIElBNjRfUFNSX0FDX0JJVCAzCiNkZWZpbmUgSUE2NF9QU1JfTUZMX0JJVCA0CiNk
ZWZpbmUgSUE2NF9QU1JfTUZIX0JJVCA1CiNkZWZpbmUgSUE2NF9QU1JfSUNfQklUIDEzCiNkZWZp
bmUgSUE2NF9QU1JfSV9CSVQgMTQKI2RlZmluZSBJQTY0X1BTUl9QS19CSVQgMTUKI2RlZmluZSBJ
QTY0X1BTUl9EVF9CSVQgMTcKI2RlZmluZSBJQTY0X1BTUl9ERkxfQklUIDE4CiNkZWZpbmUgSUE2
NF9QU1JfREZIX0JJVCAxOQojZGVmaW5lIElBNjRfUFNSX1NQX0JJVCAyMAojZGVmaW5lIElBNjRf
UFNSX1BQX0JJVCAyMQojZGVmaW5lIElBNjRfUFNSX0RJX0JJVCAyMgojZGVmaW5lIElBNjRfUFNS
X1NJX0JJVCAyMwojZGVmaW5lIElBNjRfUFNSX0RCX0JJVCAyNAojZGVmaW5lIElBNjRfUFNSX0xQ
X0JJVCAyNQojZGVmaW5lIElBNjRfUFNSX1RCX0JJVCAyNgojZGVmaW5lIElBNjRfUFNSX1JUX0JJ
VCAyNwoKI2RlZmluZSBJQTY0X1BTUl9DUEwwX0JJVCAzMgojZGVmaW5lIElBNjRfUFNSX0NQTDFf
QklUIDMzCiNkZWZpbmUgSUE2NF9QU1JfSVNfQklUIDM0CiNkZWZpbmUgSUE2NF9QU1JfTUNfQklU
IDM1CiNkZWZpbmUgSUE2NF9QU1JfSVRfQklUIDM2CiNkZWZpbmUgSUE2NF9QU1JfSURfQklUIDM3
CiNkZWZpbmUgSUE2NF9QU1JfREFfQklUIDM4CiNkZWZpbmUgSUE2NF9QU1JfRERfQklUIDM5CiNk
ZWZpbmUgSUE2NF9QU1JfU1NfQklUIDQwCiNkZWZpbmUgSUE2NF9QU1JfUklfQklUIDQxCiNkZWZp
bmUgSUE2NF9QU1JfRURfQklUIDQzCiNkZWZpbmUgSUE2NF9QU1JfQk5fQklUIDQ0CgojZGVmaW5l
IElBNjRfUFNSX0JFIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfQkVfQklUKQojZGVmaW5lIElB
NjRfUFNSX1VQIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfVVBfQklUKQojZGVmaW5lIElBNjRf
UFNSX0FDIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfQUNfQklUKQojZGVmaW5lIElBNjRfUFNS
X01GTCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX01GTF9CSVQpCiNkZWZpbmUgSUE2NF9QU1Jf
TUZIIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfTUZIX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9J
QyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lDX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9JIChf
X0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfSV9CSVQpCiNkZWZpbmUgSUE2NF9QU1JfUEsgKF9fSUE2
NF9VTCgxKSA8PCBJQTY0X1BTUl9QS19CSVQpCiNkZWZpbmUgSUE2NF9QU1JfRFQgKF9fSUE2NF9V
TCgxKSA8PCBJQTY0X1BTUl9EVF9CSVQpCiNkZWZpbmUgSUE2NF9QU1JfREZMIChfX0lBNjRfVUwo
MSkgPDwgSUE2NF9QU1JfREZMX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9ERkggKF9fSUE2NF9VTCgx
KSA8PCBJQTY0X1BTUl9ERkhfQklUKQojZGVmaW5lIElBNjRfUFNSX1NQIChfX0lBNjRfVUwoMSkg
PDwgSUE2NF9QU1JfU1BfQklUKQojZGVmaW5lIElBNjRfUFNSX1BQIChfX0lBNjRfVUwoMSkgPDwg
SUE2NF9QU1JfUFBfQklUKQojZGVmaW5lIElBNjRfUFNSX0RJIChfX0lBNjRfVUwoMSkgPDwgSUE2
NF9QU1JfRElfQklUKQojZGVmaW5lIElBNjRfUFNSX1NJIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9Q
U1JfU0lfQklUKQojZGVmaW5lIElBNjRfUFNSX0RCIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1Jf
REJfQklUKQojZGVmaW5lIElBNjRfUFNSX0xQIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfTFBf
QklUKQojZGVmaW5lIElBNjRfUFNSX1RCIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfVEJfQklU
KQojZGVmaW5lIElBNjRfUFNSX1JUIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9QU1JfUlRfQklUKQoK
I2RlZmluZSBJQTY0X1BTUl9JUyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lTX0JJVCkKI2Rl
ZmluZSBJQTY0X1BTUl9NQyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX01DX0JJVCkKI2RlZmlu
ZSBJQTY0X1BTUl9JVCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lUX0JJVCkKI2RlZmluZSBJ
QTY0X1BTUl9JRCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0lEX0JJVCkKI2RlZmluZSBJQTY0
X1BTUl9EQSAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0RBX0JJVCkKI2RlZmluZSBJQTY0X1BT
Ul9ERCAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX0REX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9T
UyAoX19JQTY0X1VMKDEpIDw8IElBNjRfUFNSX1NTX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9SSSAo
X19JQTY0X1VMKDMpIDw8IElBNjRfUFNSX1JJX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9FRCAoX19J
QTY0X1VMKDEpIDw8IElBNjRfUFNSX0VEX0JJVCkKI2RlZmluZSBJQTY0X1BTUl9CTiAoX19JQTY0
X1VMKDEpIDw8IElBNjRfUFNSX0JOX0JJVCkKCgojZGVmaW5lIElBNjRfUFNSX1VNIChJQTY0X1BT
Ul9CRSB8IElBNjRfUFNSX1VQIHwgSUE2NF9QU1JfQUMgfCBJQTY0X1BTUl9NRkwgfCBJQTY0X1BT
Ul9NRkgpCgoKI2RlZmluZSBJQTY0X0RDUl9QUF9CSVQgMAojZGVmaW5lIElBNjRfRENSX0JFX0JJ
VCAxCiNkZWZpbmUgSUE2NF9EQ1JfTENfQklUIDIKI2RlZmluZSBJQTY0X0RDUl9ETV9CSVQgOAoj
ZGVmaW5lIElBNjRfRENSX0RQX0JJVCA5CiNkZWZpbmUgSUE2NF9EQ1JfREtfQklUIDEwCiNkZWZp
bmUgSUE2NF9EQ1JfRFhfQklUIDExCiNkZWZpbmUgSUE2NF9EQ1JfRFJfQklUIDEyCiNkZWZpbmUg
SUE2NF9EQ1JfREFfQklUIDEzCiNkZWZpbmUgSUE2NF9EQ1JfRERfQklUIDE0CgojZGVmaW5lIElB
NjRfRENSX1BQIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfUFBfQklUKQojZGVmaW5lIElBNjRf
RENSX0JFIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfQkVfQklUKQojZGVmaW5lIElBNjRfRENS
X0xDIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfTENfQklUKQojZGVmaW5lIElBNjRfRENSX0RN
IChfX0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfRE1fQklUKQojZGVmaW5lIElBNjRfRENSX0RQIChf
X0lBNjRfVUwoMSkgPDwgSUE2NF9EQ1JfRFBfQklUKQojZGVmaW5lIElBNjRfRENSX0RLIChfX0lB
NjRfVUwoMSkgPDwgSUE2NF9EQ1JfREtfQklUKQojZGVmaW5lIElBNjRfRENSX0RYIChfX0lBNjRf
VUwoMSkgPDwgSUE2NF9EQ1JfRFhfQklUKQojZGVmaW5lIElBNjRfRENSX0RSIChfX0lBNjRfVUwo
MSkgPDwgSUE2NF9EQ1JfRFJfQklUKQojZGVmaW5lIElBNjRfRENSX0RBIChfX0lBNjRfVUwoMSkg
PDwgSUE2NF9EQ1JfREFfQklUKQojZGVmaW5lIElBNjRfRENSX0REIChfX0lBNjRfVUwoMSkgPDwg
SUE2NF9EQ1JfRERfQklUKQoKCiNkZWZpbmUgSUE2NF9JU1JfWF9CSVQgMzIKI2RlZmluZSBJQTY0
X0lTUl9XX0JJVCAzMwojZGVmaW5lIElBNjRfSVNSX1JfQklUIDM0CiNkZWZpbmUgSUE2NF9JU1Jf
TkFfQklUIDM1CiNkZWZpbmUgSUE2NF9JU1JfU1BfQklUIDM2CiNkZWZpbmUgSUE2NF9JU1JfUlNf
QklUIDM3CiNkZWZpbmUgSUE2NF9JU1JfSVJfQklUIDM4CgojZGVmaW5lIElBNjRfSVNSX1ggKF9f
SUE2NF9VTCgxKSA8PCBJQTY0X0lTUl9YX0JJVCkKI2RlZmluZSBJQTY0X0lTUl9XIChfX0lBNjRf
VUwoMSkgPDwgSUE2NF9JU1JfV19CSVQpCiNkZWZpbmUgSUE2NF9JU1JfUiAoX19JQTY0X1VMKDEp
IDw8IElBNjRfSVNSX1JfQklUKQojZGVmaW5lIElBNjRfSVNSX05BIChfX0lBNjRfVUwoMSkgPDwg
SUE2NF9JU1JfTkFfQklUKQojZGVmaW5lIElBNjRfSVNSX1NQIChfX0lBNjRfVUwoMSkgPDwgSUE2
NF9JU1JfU1BfQklUKQojZGVmaW5lIElBNjRfSVNSX1JTIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9J
U1JfUlNfQklUKQojZGVmaW5lIElBNjRfSVNSX0lSIChfX0lBNjRfVUwoMSkgPDwgSUE2NF9JU1Jf
SVJfQklUKQoKI2RlZmluZSBJQTY0X1RIUkVBRF9GUEhfVkFMSUQgKF9fSUE2NF9VTCgxKSA8PCAw
KQojZGVmaW5lIElBNjRfVEhSRUFEX0RCR19WQUxJRCAoX19JQTY0X1VMKDEpIDw8IDEpCiNkZWZp
bmUgSUE2NF9USFJFQURfUE1fVkFMSUQgKF9fSUE2NF9VTCgxKSA8PCAyKQojZGVmaW5lIElBNjRf
VEhSRUFEX1VBQ19OT1BSSU5UIChfX0lBNjRfVUwoMSkgPDwgMykKI2RlZmluZSBJQTY0X1RIUkVB
RF9VQUNfU0lHQlVTIChfX0lBNjRfVUwoMSkgPDwgNCkKI2RlZmluZSBJQTY0X1RIUkVBRF9LUkJT
X1NZTkNFRCAoX19JQTY0X1VMKDEpIDw8IDUpCiNkZWZpbmUgSUE2NF9LRVJORUxfREVBVEggKF9f
SUE2NF9VTCgxKSA8PCA2MykKCiNkZWZpbmUgSUE2NF9USFJFQURfVUFDX1NISUZUIDMKI2RlZmlu
ZSBJQTY0X1RIUkVBRF9VQUNfTUFTSyAoSUE2NF9USFJFQURfVUFDX05PUFJJTlQgfCBJQTY0X1RI
UkVBRF9VQUNfU0lHQlVTKQoKCgoKCgoKI2RlZmluZSBJQTY0X1VTRUNfUEVSX0NZQ19TSElGVCA0
MQoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGhyZWFkcy5oIiAx
CgojZGVmaW5lIF9MSU5VWF9USFJFQURTX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9jb25maWcuaCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdGhyZWFkcy5oIiAyCgoKCgoKCgojZGVmaW5lIE5SX0NQVVMgMzIKCgoKCiNkZWZpbmUg
TUlOX1RIUkVBRFNfTEVGVF9GT1JfUk9PVCA0CgoKCgojZGVmaW5lIFBJRF9NQVggMHg4MDAwCiMg
MTg3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMgoKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9mcHUuaCIgMQojIDE4OSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9vZmZzZXRzLmgiIDEKIyAxOTAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vcGFnZS5oIiAxCiMgMTkxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
YXNtL3JzZS5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9SU0VfSAojIDE0ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2FzbS9yc2UuaCIKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9u
ZwppYTY0X3JzZV9zbG90X251bSAodW5zaWduZWQgbG9uZyAqYWRkcikKewogICAgICAgIHJldHVy
biAoKCh1bnNpZ25lZCBsb25nKSBhZGRyKSA+PiAzKSAmIDB4M2Y7Cn0KCgoKCnN0YXRpYyBfX2lu
bGluZV9fIHVuc2lnbmVkIGxvbmcKaWE2NF9yc2VfaXNfcm5hdF9zbG90ICh1bnNpZ25lZCBsb25n
ICphZGRyKQp7CiAgICAgICAgcmV0dXJuIGlhNjRfcnNlX3Nsb3RfbnVtKGFkZHIpID09IDB4M2Y7
Cn0KCgoKCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nICoKaWE2NF9yc2Vfcm5hdF9h
ZGRyICh1bnNpZ25lZCBsb25nICpzbG90X2FkZHIpCnsKICAgICAgICByZXR1cm4gKHVuc2lnbmVk
IGxvbmcgKikgKCh1bnNpZ25lZCBsb25nKSBzbG90X2FkZHIgfCAoMHgzZiA8PCAzKSk7Cn0KCgoK
CgoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZwppYTY0X3JzZV9udW1fcmVncyAodW5z
aWduZWQgbG9uZyAqYnNwc3RvcmUsIHVuc2lnbmVkIGxvbmcgKmJzcCkKewogICAgICAgIHVuc2ln
bmVkIGxvbmcgc2xvdHMgPSAoYnNwIC0gYnNwc3RvcmUpOwoKICAgICAgICByZXR1cm4gc2xvdHMg
LSAoaWE2NF9yc2Vfc2xvdF9udW0oYnNwc3RvcmUpICsgc2xvdHMpLzB4NDA7Cn0KCgoKCgpzdGF0
aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nICoKaWE2NF9yc2Vfc2tpcF9yZWdzICh1bnNpZ25l
ZCBsb25nICphZGRyLCBsb25nIG51bV9yZWdzKQp7CiAgICAgICAgbG9uZyBkZWx0YSA9IGlhNjRf
cnNlX3Nsb3RfbnVtKGFkZHIpICsgbnVtX3JlZ3M7CgogICAgICAgIGlmIChudW1fcmVncyA8IDAp
CiAgICAgICAgICAgICAgICBkZWx0YSAtPSAweDNlOwogICAgICAgIHJldHVybiBhZGRyICsgbnVt
X3JlZ3MgKyBkZWx0YS8weDNmOwp9CiMgMTkyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2FzbS9wcm9jZXNzb3IuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3Vud2luZC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9VTldJTkRfSAojIDE2ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS91bndpbmQuaCIKc3RydWN0IHRhc2tfc3RydWN0OwpzdHJ1
Y3Qgc3dpdGNoX3N0YWNrOwoKZW51bSB1bndfYXBwbGljYXRpb25fcmVnaXN0ZXIgewogICAgICAg
IFVOV19BUl9CU1AsCiAgICAgICAgVU5XX0FSX0JTUFNUT1JFLAogICAgICAgIFVOV19BUl9QRlMs
CiAgICAgICAgVU5XX0FSX1JOQVQsCiAgICAgICAgVU5XX0FSX1VOQVQsCiAgICAgICAgVU5XX0FS
X0xDLAogICAgICAgIFVOV19BUl9FQywKICAgICAgICBVTldfQVJfRlBTUiwKICAgICAgICBVTldf
QVJfUlNDLAogICAgICAgIFVOV19BUl9DQ1YKfTsKCgoKCgoKc3RydWN0IHVud19zdGFjayB7CiAg
ICAgICAgdW5zaWduZWQgbG9uZyBsaW1pdDsKICAgICAgICB1bnNpZ25lZCBsb25nIHRvcDsKfTsK
CiNkZWZpbmUgVU5XX0ZMQUdfSU5URVJSVVBUX0ZSQU1FICgxVUwgPDwgMCkKCgoKCgoKc3RydWN0
IHVud19mcmFtZV9pbmZvIHsKICAgICAgICBzdHJ1Y3QgdW53X3N0YWNrIHJlZ3N0azsKICAgICAg
ICBzdHJ1Y3QgdW53X3N0YWNrIG1lbXN0azsKICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAg
ICAgICAgc2hvcnQgaGludDsKICAgICAgICBzaG9ydCBwcmV2X3NjcmlwdDsKCgogICAgICAgIHVu
c2lnbmVkIGxvbmcgYnNwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3A7CiAgICAgICAgdW5zaWdu
ZWQgbG9uZyBwc3A7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpcDsKICAgICAgICB1bnNpZ25lZCBs
b25nIHByOwogICAgICAgIHVuc2lnbmVkIGxvbmcgKmNmbV9sb2M7CgogICAgICAgIHN0cnVjdCB0
YXNrX3N0cnVjdCAqdGFzazsKICAgICAgICBzdHJ1Y3Qgc3dpdGNoX3N0YWNrICpzdzsKCgogICAg
ICAgIHVuc2lnbmVkIGxvbmcgKmJzcF9sb2M7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqYnNwc3Rv
cmVfbG9jOwogICAgICAgIHVuc2lnbmVkIGxvbmcgKnBmc19sb2M7CiAgICAgICAgdW5zaWduZWQg
bG9uZyAqcm5hdF9sb2M7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqcnBfbG9jOwogICAgICAgIHVu
c2lnbmVkIGxvbmcgKnByaV91bmF0X2xvYzsKICAgICAgICB1bnNpZ25lZCBsb25nICp1bmF0X2xv
YzsKICAgICAgICB1bnNpZ25lZCBsb25nICpwcl9sb2M7CiAgICAgICAgdW5zaWduZWQgbG9uZyAq
bGNfbG9jOwogICAgICAgIHVuc2lnbmVkIGxvbmcgKmZwc3JfbG9jOwogICAgICAgIHN0cnVjdCB1
bndfaXJlZyB7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpsb2M7CiAgICAgICAgICAg
ICAgICBzdHJ1Y3QgdW53X2lyZWdfbmF0IHsKICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0
eXBlIDogMzsKICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgb2ZmIDogNjE7CiAg
ICAgICAgICAgICAgICB9IG5hdDsKICAgICAgICB9IHI0LCByNSwgcjYsIHI3OwogICAgICAgIHVu
c2lnbmVkIGxvbmcgKmIxX2xvYywgKmIyX2xvYywgKmIzX2xvYywgKmI0X2xvYywgKmI1X2xvYzsK
ICAgICAgICBzdHJ1Y3QgaWE2NF9mcHJlZyAqZjJfbG9jLCAqZjNfbG9jLCAqZjRfbG9jLCAqZjVf
bG9jLCAqZnJfbG9jWzE2XTsKfTsKIyA5NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vdW53aW5kLmgiCmV4dGVybiB2b2lkIHVud19pbml0ICh2b2lkKTsKZXh0ZXJuIHZvaWQgdW53
X2NyZWF0ZV9nYXRlX3RhYmxlICh2b2lkKTsKCmV4dGVybiB2b2lkICp1bndfYWRkX3Vud2luZF90
YWJsZSAoY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbG9uZyBzZWdtZW50X2Jhc2UsIHVuc2ln
bmVkIGxvbmcgZ3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9p
ZCAqdGFibGVfc3RhcnQsIGNvbnN0IHZvaWQgKnRhYmxlX2VuZCk7CgpleHRlcm4gdm9pZCB1bndf
cmVtb3ZlX3Vud2luZF90YWJsZSAodm9pZCAqaGFuZGxlKTsKCgoKCmV4dGVybiB2b2lkIHVud19p
bml0X2Zyb21fYmxvY2tlZF90YXNrIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHN0cnVj
dCB0YXNrX3N0cnVjdCAqdCk7CgpleHRlcm4gdm9pZCB1bndfaW5pdF9mcmFtZV9pbmZvIChzdHJ1
Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHN0cnVjdCB0YXNrX3N0cnVjdCAqdCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHN3aXRjaF9zdGFjayAqc3cpOwoKCgoKZXh0
ZXJuIHZvaWQgdW53X2luaXRfcnVubmluZyAodm9pZCAoKmNhbGxiYWNrKShzdHJ1Y3QgdW53X2Zy
YW1lX2luZm8gKmluZm8sIHZvaWQgKmFyZyksIHZvaWQgKmFyZyk7CgoKCgoKZXh0ZXJuIGludCB1
bndfdW53aW5kIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8pOwoKCgoKCgpleHRlcm4gaW50
IHVud191bndpbmRfdG9fdXNlciAoc3RydWN0IHVud19mcmFtZV9pbmZvICppbmZvKTsKCiNkZWZp
bmUgdW53X2lzX2ludHJfZnJhbWUoaW5mbykgKCgoaW5mbyktPmZsYWdzICYgVU5XX0ZMQUdfSU5U
RVJSVVBUX0ZSQU1FKSAhPSAwKQoKc3RhdGljIGlubGluZSBpbnQKdW53X2dldF9pcCAoc3RydWN0
IHVud19mcmFtZV9pbmZvICppbmZvLCB1bnNpZ25lZCBsb25nICp2YWxwKQp7CiAgICAgICAgKnZh
bHAgPSAoaW5mbyktPmlwOwogICAgICAgIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIGludAp1
bndfZ2V0X3NwIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHVuc2lnbmVkIGxvbmcgKnZh
bHApCnsKICAgICAgICAqdmFscCA9IChpbmZvKS0+c3A7CiAgICAgICAgcmV0dXJuIDA7Cn0KCnN0
YXRpYyBpbmxpbmUgaW50CnVud19nZXRfcHNwIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8s
IHVuc2lnbmVkIGxvbmcgKnZhbHApCnsKICAgICAgICAqdmFscCA9IChpbmZvKS0+cHNwOwogICAg
ICAgIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIGludAp1bndfZ2V0X2JzcCAoc3RydWN0IHVu
d19mcmFtZV9pbmZvICppbmZvLCB1bnNpZ25lZCBsb25nICp2YWxwKQp7CiAgICAgICAgKnZhbHAg
PSAoaW5mbyktPmJzcDsKICAgICAgICByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBpbnQKdW53
X2dldF9jZm0gKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAqaW5mbywgdW5zaWduZWQgbG9uZyAqdmFs
cCkKewogICAgICAgICp2YWxwID0gKihpbmZvKS0+Y2ZtX2xvYzsKICAgICAgICByZXR1cm4gMDsK
fQoKc3RhdGljIGlubGluZSBpbnQKdW53X3NldF9jZm0gKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAq
aW5mbywgdW5zaWduZWQgbG9uZyB2YWwpCnsKICAgICAgICAqKGluZm8pLT5jZm1fbG9jID0gdmFs
OwogICAgICAgIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIGludAp1bndfZ2V0X3JwIChzdHJ1
Y3QgdW53X2ZyYW1lX2luZm8gKmluZm8sIHVuc2lnbmVkIGxvbmcgKnZhbCkKewogICAgICAgIGlm
ICghaW5mby0+cnBfbG9jKQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICp2YWwg
PSAqaW5mby0+cnBfbG9jOwogICAgICAgIHJldHVybiAwOwp9CgpleHRlcm4gaW50IHVud19hY2Nl
c3NfZ3IgKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAqLCBpbnQsIHVuc2lnbmVkIGxvbmcgKiwgY2hh
ciAqLCBpbnQpOwpleHRlcm4gaW50IHVud19hY2Nlc3NfYnIgKHN0cnVjdCB1bndfZnJhbWVfaW5m
byAqLCBpbnQsIHVuc2lnbmVkIGxvbmcgKiwgaW50KTsKZXh0ZXJuIGludCB1bndfYWNjZXNzX2Zy
IChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKiwgaW50LCBzdHJ1Y3QgaWE2NF9mcHJlZyAqLCBpbnQp
OwpleHRlcm4gaW50IHVud19hY2Nlc3NfYXIgKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAqLCBpbnQs
IHVuc2lnbmVkIGxvbmcgKiwgaW50KTsKZXh0ZXJuIGludCB1bndfYWNjZXNzX3ByIChzdHJ1Y3Qg
dW53X2ZyYW1lX2luZm8gKiwgdW5zaWduZWQgbG9uZyAqLCBpbnQpOwoKc3RhdGljIGlubGluZSBp
bnQKdW53X3NldF9nciAoc3RydWN0IHVud19mcmFtZV9pbmZvICppLCBpbnQgbiwgdW5zaWduZWQg
bG9uZyB2LCBjaGFyIG5hdCkKewogICAgICAgIHJldHVybiB1bndfYWNjZXNzX2dyKGksIG4sICZ2
LCAmbmF0LCAxKTsKfQoKc3RhdGljIGlubGluZSBpbnQKdW53X3NldF9iciAoc3RydWN0IHVud19m
cmFtZV9pbmZvICppLCBpbnQgbiwgdW5zaWduZWQgbG9uZyB2KQp7CiAgICAgICAgcmV0dXJuIHVu
d19hY2Nlc3NfYnIoaSwgbiwgJnYsIDEpOwp9CgpzdGF0aWMgaW5saW5lIGludAp1bndfc2V0X2Zy
IChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmksIGludCBuLCBzdHJ1Y3QgaWE2NF9mcHJlZyB2KQp7
CiAgICAgICAgcmV0dXJuIHVud19hY2Nlc3NfZnIoaSwgbiwgJnYsIDEpOwp9CgpzdGF0aWMgaW5s
aW5lIGludAp1bndfc2V0X2FyIChzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gKmksIGludCBuLCB1bnNp
Z25lZCBsb25nIHYpCnsKICAgICAgICByZXR1cm4gdW53X2FjY2Vzc19hcihpLCBuLCAmdiwgMSk7
Cn0KCnN0YXRpYyBpbmxpbmUgaW50CnVud19zZXRfcHIgKHN0cnVjdCB1bndfZnJhbWVfaW5mbyAq
aSwgdW5zaWduZWQgbG9uZyB2KQp7CiAgICAgICAgcmV0dXJuIHVud19hY2Nlc3NfcHIoaSwgJnYs
IDEpOwp9CgojZGVmaW5lIHVud19nZXRfZ3IoaSwgbiwgdiwgbmF0KSB1bndfYWNjZXNzX2dyKGks
bix2LG5hdCwwKQojZGVmaW5lIHVud19nZXRfYnIoaSwgbiwgdikgdW53X2FjY2Vzc19icihpLG4s
diwwKQojZGVmaW5lIHVud19nZXRfZnIoaSwgbiwgdikgdW53X2FjY2Vzc19mcihpLG4sdiwwKQoj
ZGVmaW5lIHVud19nZXRfYXIoaSwgbiwgdikgdW53X2FjY2Vzc19hcihpLG4sdiwwKQojZGVmaW5l
IHVud19nZXRfcHIoaSwgdikgdW53X2FjY2Vzc19wcihpLHYsMCkKIyAxOTMgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIiAyCgoKc3RydWN0IGlhNjRfcHNyIHsK
ICAgICAgICBfX3U2NCByZXNlcnZlZDAgOiAxOwogICAgICAgIF9fdTY0IGJlIDogMTsKICAgICAg
ICBfX3U2NCB1cCA6IDE7CiAgICAgICAgX191NjQgYWMgOiAxOwogICAgICAgIF9fdTY0IG1mbCA6
IDE7CiAgICAgICAgX191NjQgbWZoIDogMTsKICAgICAgICBfX3U2NCByZXNlcnZlZDEgOiA3Owog
ICAgICAgIF9fdTY0IGljIDogMTsKICAgICAgICBfX3U2NCBpIDogMTsKICAgICAgICBfX3U2NCBw
ayA6IDE7CiAgICAgICAgX191NjQgcmVzZXJ2ZWQyIDogMTsKICAgICAgICBfX3U2NCBkdCA6IDE7
CiAgICAgICAgX191NjQgZGZsIDogMTsKICAgICAgICBfX3U2NCBkZmggOiAxOwogICAgICAgIF9f
dTY0IHNwIDogMTsKICAgICAgICBfX3U2NCBwcCA6IDE7CiAgICAgICAgX191NjQgZGkgOiAxOwog
ICAgICAgIF9fdTY0IHNpIDogMTsKICAgICAgICBfX3U2NCBkYiA6IDE7CiAgICAgICAgX191NjQg
bHAgOiAxOwogICAgICAgIF9fdTY0IHRiIDogMTsKICAgICAgICBfX3U2NCBydCA6IDE7CiAgICAg
ICAgX191NjQgcmVzZXJ2ZWQzIDogNDsKICAgICAgICBfX3U2NCBjcGwgOiAyOwogICAgICAgIF9f
dTY0IGlzIDogMTsKICAgICAgICBfX3U2NCBtYyA6IDE7CiAgICAgICAgX191NjQgaXQgOiAxOwog
ICAgICAgIF9fdTY0IGlkIDogMTsKICAgICAgICBfX3U2NCBkYSA6IDE7CiAgICAgICAgX191NjQg
ZGQgOiAxOwogICAgICAgIF9fdTY0IHNzIDogMTsKICAgICAgICBfX3U2NCByaSA6IDI7CiAgICAg
ICAgX191NjQgZWQgOiAxOwogICAgICAgIF9fdTY0IGJuIDogMTsKICAgICAgICBfX3U2NCByZXNl
cnZlZDQgOiAxOTsKfTsKCgoKCgpzdHJ1Y3QgY3B1aW5mb19pYTY0IHsKCiAgICAgICAgdW5pb24g
ewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIg
aXJxX2NvdW50OwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiBiaF9jb3VudDsKICAgICAg
ICAgICAgICAgIH0gZjsKICAgICAgICAgICAgICAgIF9fdTY0IGlycV9hbmRfYmhfY291bnRzOwog
ICAgICAgIH0gaXJxX3N0YXQ7CiAgICAgICAgX191MzIgc29mdGlycV9wZW5kaW5nOwogICAgICAg
IF9fdTMyIHBoeXNfc3RhY2tlZF9zaXplX3A4OwogICAgICAgIF9fdTY0IGl0bV9kZWx0YTsKICAg
ICAgICBfX3U2NCBpdG1fbmV4dDsKICAgICAgICBfX3U2NCAqcGdkX3F1aWNrOwogICAgICAgIF9f
dTY0ICpwbWRfcXVpY2s7CiAgICAgICAgX191NjQgKnB0ZV9xdWljazsKICAgICAgICBfX3U2NCBw
Z3RhYmxlX2NhY2hlX3N6OwoKICAgICAgICBfX3U2NCBwcG47CiAgICAgICAgX191NjQgZmVhdHVy
ZXM7CiAgICAgICAgX191OCBudW1iZXI7CiAgICAgICAgX191OCByZXZpc2lvbjsKICAgICAgICBf
X3U4IG1vZGVsOwogICAgICAgIF9fdTggZmFtaWx5OwogICAgICAgIF9fdTggYXJjaHJldjsKICAg
ICAgICBjaGFyIHZlbmRvclsxNl07CiAgICAgICAgX191NjQgaXRjX2ZyZXE7CiAgICAgICAgX191
NjQgcHJvY19mcmVxOwogICAgICAgIF9fdTY0IGN5Y19wZXJfdXNlYzsKICAgICAgICBfX3U2NCB1
c2VjX3Blcl9jeWM7CiAgICAgICAgX191NjQgdW5pbXBsX3ZhX21hc2s7CiAgICAgICAgX191NjQg
dW5pbXBsX3BhX21hc2s7CiAgICAgICAgX191NjQgcHRjZV9iYXNlOwogICAgICAgIF9fdTMyIHB0
Y2VfY291bnRbMl07CiAgICAgICAgX191MzIgcHRjZV9zdHJpZGVbMl07CiAgICAgICAgc3RydWN0
IHRhc2tfc3RydWN0ICprc29mdGlycWQ7CgogICAgICAgIF9fdTY0IGxvb3BzX3Blcl9qaWZmeTsK
ICAgICAgICBfX3U2NCBpcGlfY291bnQ7CiAgICAgICAgX191NjQgcHJvZl9jb3VudGVyOwogICAg
ICAgIF9fdTY0IHByb2ZfbXVsdGlwbGllcjsKICAgICAgICBfX3U2NCBpcGlfb3BlcmF0aW9uOwoK
CgoKfSBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoKDFVTCA8PCAxNCkpKSkgOwoKCgoKCiNkZWZp
bmUgbG9jYWxfY3B1X2RhdGEgKChzdHJ1Y3QgY3B1aW5mb19pYTY0ICopIFBFUkNQVV9BRERSKQoj
IDMwNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCiAgZXh0
ZXJuIHN0cnVjdCBjcHVpbmZvX2lhNjQgX2NwdV9kYXRhX1JzbXBfZDJmZjUwZjVbMzJdOwojZGVm
aW5lIGNwdV9kYXRhKGNwdSkgKCZfY3B1X2RhdGFbY3B1XSkKCgpleHRlcm4gdm9pZCBpZGVudGlm
eV9jcHUgKHN0cnVjdCBjcHVpbmZvX2lhNjQgKik7CmV4dGVybiB2b2lkIHByaW50X2NwdV9pbmZv
IChzdHJ1Y3QgY3B1aW5mb19pYTY0ICopOwoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIHVuc2ln
bmVkIGxvbmcgc2VnOwp9IG1tX3NlZ21lbnRfdDsKCiNkZWZpbmUgU0VUX1VOQUxJR05fQ1RMKHRh
c2ssIHZhbHVlKSAoeyAodGFzayktPnRocmVhZC5mbGFncyA9ICgoKHRhc2spLT50aHJlYWQuZmxh
Z3MgJiB+SUE2NF9USFJFQURfVUFDX01BU0spIHwgKCgodmFsdWUpIDw8IElBNjRfVEhSRUFEX1VB
Q19TSElGVCkgJiBJQTY0X1RIUkVBRF9VQUNfTUFTSykpOyAwOyB9KQoKCgoKCiNkZWZpbmUgR0VU
X1VOQUxJR05fQ1RMKHRhc2ssIGFkZHIpICh7IHB1dF91c2VyKCgodGFzayktPnRocmVhZC5mbGFn
cyAmIElBNjRfVEhSRUFEX1VBQ19NQVNLKSA+PiBJQTY0X1RIUkVBRF9VQUNfU0hJRlQsIChpbnQg
KikgKGFkZHIpKTsgfSkKCgoKCgpzdHJ1Y3Qgc2lnaW5mbzsKCnN0cnVjdCB0aHJlYWRfc3RydWN0
IHsKICAgICAgICBfX3U2NCBrc3A7CiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICAg
ICBfX3U2NCBtYXBfYmFzZTsKICAgICAgICBfX3U2NCB0YXNrX3NpemU7CiAgICAgICAgc3RydWN0
IHNpZ2luZm8gKnNpZ2luZm87CgoKICAgICAgICBfX3U2NCBlZmxhZzsKICAgICAgICBfX3U2NCBm
c3I7CiAgICAgICAgX191NjQgZmNyOwogICAgICAgIF9fdTY0IGZpcjsKICAgICAgICBfX3U2NCBm
ZHI7CiAgICAgICAgX191NjQgY3NkOwogICAgICAgIF9fdTY0IHNzZDsKICAgICAgICBfX3U2NCB0
c3NkOwogICAgICAgIF9fdTY0IG9sZF9pb2I7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAg
ICAgX191NjQgc2lnbWFzazsKICAgICAgICB9IHVuOwojZGVmaW5lIElOSVRfVEhSRUFEX0lBMzIg
MCwgMCwgMHgxNzgwMDAwMDAzN2ZVTEwsIDAsIDAsIDAsIDAsIDAsIDAsIHswfSwKCgoKCiAgICAg
ICAgX191NjQgcG1jWzMyXTsKICAgICAgICBfX3U2NCBwbWRbMzJdOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgcGZtX3BlbmRfbm90aWZ5OwogICAgICAgIHZvaWQgKnBmbV9jb250ZXh0OwojZGVmaW5l
IElOSVRfVEhSRUFEX1BNIHswLCB9LCB7MCwgfSwgMCwgMCwKCgoKICAgICAgICBfX3U2NCBkYnJb
OF07CiAgICAgICAgX191NjQgaWJyWzhdOwogICAgICAgIHN0cnVjdCBpYTY0X2ZwcmVnIGZwaFs5
Nl07Cn07CgojZGVmaW5lIElOSVRfTU1BUCB7ICZpbml0X21tLCBQQUdFX09GRlNFVCwgUEFHRV9P
RkZTRVQgKyAweDEwMDAwMDAwLCBOVUxMLCBQQUdFX1NIQVJFRCwgVk1fUkVBRCB8IFZNX1dSSVRF
IHwgVk1fRVhFQywgMSwgTlVMTCwgTlVMTCB9CgoKCgojZGVmaW5lIElOSVRfVEhSRUFEIHsgMCwg
MCwgREVGQVVMVF9NQVBfQkFTRSwgREVGQVVMVF9UQVNLX1NJWkUsIDAsIElOSVRfVEhSRUFEX0lB
MzIgSU5JVF9USFJFQURfUE0gezAsIH0sIHswLCB9LCB7e3t7MH19fSwgfSB9CiMgMzg1ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKI2RlZmluZSBzdGFydF90
aHJlYWQocmVncywgbmV3X2lwLCBuZXdfc3ApIGRvIHsgc2V0X2ZzKFVTRVJfRFMpOyBpYTY0X3Bz
cihyZWdzKS0+ZGZoID0gMTsgaWE2NF9wc3IocmVncyktPm1maCA9IDA7IGlhNjRfcHNyKHJlZ3Mp
LT5jcGwgPSAzOyBpYTY0X3BzcihyZWdzKS0+cmkgPSAwOyBpYTY0X3BzcihyZWdzKS0+aXMgPSAw
OyByZWdzLT5jcl9paXAgPSBuZXdfaXA7IHJlZ3MtPmFyX3JzYyA9IDB4ZjsgcmVncy0+YXJfcm5h
dCA9IDA7IHJlZ3MtPmFyX2JzcHN0b3JlID0gSUE2NF9SQlNfQk9UOyByZWdzLT5hcl9mcHNyID0g
RlBTUl9ERUZBVUxUOyByZWdzLT5sb2FkcnMgPSAwOyByZWdzLT5yOCA9IGN1cnJlbnQtPm1tLT5k
dW1wYWJsZTsgcmVncy0+cjEyID0gbmV3X3NwIC0gMTY7IGlmICghX19idWlsdGluX2V4cGVjdCAo
Y3VycmVudC0+bW0tPmR1bXBhYmxlLCAxKSkgeyByZWdzLT5hcl9wZnMgPSAwOyByZWdzLT5wciA9
IDA7IHJlZ3MtPmI2ID0gMDsgcmVncy0+cjEgPSAwOyByZWdzLT5yMiA9IDA7IHJlZ3MtPnIzID0g
MDsgcmVncy0+cjEzID0gMDsgcmVncy0+cjE0ID0gMDsgcmVncy0+cjE1ID0gMDsgcmVncy0+cjkg
PSAwOyByZWdzLT5yMTEgPSAwOyByZWdzLT5yMTYgPSAwOyByZWdzLT5yMTcgPSAwOyByZWdzLT5y
MTggPSAwOyByZWdzLT5yMTkgPSAwOyByZWdzLT5yMjAgPSAwOyByZWdzLT5yMjEgPSAwOyByZWdz
LT5yMjIgPSAwOyByZWdzLT5yMjMgPSAwOyByZWdzLT5yMjQgPSAwOyByZWdzLT5yMjUgPSAwOyBy
ZWdzLT5yMjYgPSAwOyByZWdzLT5yMjcgPSAwOyByZWdzLT5yMjggPSAwOyByZWdzLT5yMjkgPSAw
OyByZWdzLT5yMzAgPSAwOyByZWdzLT5yMzEgPSAwOyByZWdzLT5hcl9jY3YgPSAwOyByZWdzLT5i
MCA9IDA7IHJlZ3MtPmI3ID0gMDsgcmVncy0+ZjYudS5iaXRzWzBdID0gMDsgcmVncy0+ZjYudS5i
aXRzWzFdID0gMDsgcmVncy0+ZjcudS5iaXRzWzBdID0gMDsgcmVncy0+ZjcudS5iaXRzWzFdID0g
MDsgcmVncy0+ZjgudS5iaXRzWzBdID0gMDsgcmVncy0+ZjgudS5iaXRzWzFdID0gMDsgcmVncy0+
ZjkudS5iaXRzWzBdID0gMDsgcmVncy0+ZjkudS5iaXRzWzFdID0gMDsgfSB9IHdoaWxlICgwKQoj
IDQyOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgiCnN0cnVj
dCBtbV9zdHJ1Y3Q7CnN0cnVjdCB0YXNrX3N0cnVjdDsKCgoKCgoKCiAgZXh0ZXJuIHZvaWQgcmVs
ZWFzZV90aHJlYWQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CiMgNDU3ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKZXh0ZXJuIGludCBrZXJuZWxfdGhy
ZWFkX1JzbXBfN2U5ZWJiMDUgKGludCAoKmZuKSh2b2lkICopLCB2b2lkICphcmcsIHVuc2lnbmVk
IGxvbmcgZmxhZ3MpOwoKCiNkZWZpbmUgY29weV9zZWdtZW50cyh0c2ssIG1tKSBkbyB7IH0gd2hp
bGUgKDApCiNkZWZpbmUgcmVsZWFzZV9zZWdtZW50cyhtbSkgZG8geyB9IHdoaWxlICgwKQoKCmV4
dGVybiB1bnNpZ25lZCBsb25nIGdldF93Y2hhbiAoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsKCgoj
ZGVmaW5lIEtTVEtfRUlQKHRzaykgKHsgc3RydWN0IHB0X3JlZ3MgKl9yZWdzID0gaWE2NF90YXNr
X3JlZ3ModHNrKTsgX3JlZ3MtPmNyX2lpcCArIGlhNjRfcHNyKF9yZWdzKS0+cmk7IH0pCgoKCgoK
CiNkZWZpbmUgS1NUS19FU1AodHNrKSAoKHRzayktPnRocmVhZC5rc3ApCgpzdGF0aWMgaW5saW5l
IHVuc2lnbmVkIGxvbmcKaWE2NF9nZXRfa3IgKHVuc2lnbmVkIGxvbmcgcmVnbnVtKQp7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyByOwoKICAgICAgICBzd2l0Y2ggKHJlZ251bSkgewogICAgICAgICAg
ICAgIGNhc2UgMDogYXNtIHZvbGF0aWxlICgibW92ICUwPWFyLmswIiA6ICI9ciIocikpOyBicmVh
azsKICAgICAgICAgICAgICBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1hci5rMSIgOiAi
PXIiKHIpKTsgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAyOiBhc20gdm9sYXRpbGUgKCJtb3Yg
JTA9YXIuazIiIDogIj1yIihyKSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMzogYXNtIHZv
bGF0aWxlICgibW92ICUwPWFyLmszIiA6ICI9ciIocikpOyBicmVhazsKICAgICAgICAgICAgICBj
YXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1hci5rNCIgOiAiPXIiKHIpKTsgYnJlYWs7CiAg
ICAgICAgICAgICAgY2FzZSA1OiBhc20gdm9sYXRpbGUgKCJtb3YgJTA9YXIuazUiIDogIj1yIihy
KSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNjogYXNtIHZvbGF0aWxlICgibW92ICUwPWFy
Lms2IiA6ICI9ciIocikpOyBicmVhazsKICAgICAgICAgICAgICBjYXNlIDc6IGFzbSB2b2xhdGls
ZSAoIm1vdiAlMD1hci5rNyIgOiAiPXIiKHIpKTsgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJl
dHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfa3IgKHVuc2lnbmVkIGxvbmcg
cmVnbnVtLCB1bnNpZ25lZCBsb25nIHIpCnsKICAgICAgICBzd2l0Y2ggKHJlZ251bSkgewogICAg
ICAgICAgICAgIGNhc2UgMDogYXNtIHZvbGF0aWxlICgibW92IGFyLmswPSUwIiA6OiAiciIocikp
OyBicmVhazsKICAgICAgICAgICAgICBjYXNlIDE6IGFzbSB2b2xhdGlsZSAoIm1vdiBhci5rMT0l
MCIgOjogInIiKHIpKTsgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAyOiBhc20gdm9sYXRpbGUg
KCJtb3YgYXIuazI9JTAiIDo6ICJyIihyKSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMzog
YXNtIHZvbGF0aWxlICgibW92IGFyLmszPSUwIiA6OiAiciIocikpOyBicmVhazsKICAgICAgICAg
ICAgICBjYXNlIDQ6IGFzbSB2b2xhdGlsZSAoIm1vdiBhci5rND0lMCIgOjogInIiKHIpKTsgYnJl
YWs7CiAgICAgICAgICAgICAgY2FzZSA1OiBhc20gdm9sYXRpbGUgKCJtb3YgYXIuazU9JTAiIDo6
ICJyIihyKSk7IGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNjogYXNtIHZvbGF0aWxlICgibW92
IGFyLms2PSUwIiA6OiAiciIocikpOyBicmVhazsKICAgICAgICAgICAgICBjYXNlIDc6IGFzbSB2
b2xhdGlsZSAoIm1vdiBhci5rNz0lMCIgOjogInIiKHIpKTsgYnJlYWs7CiAgICAgICAgfQp9CiMg
NTI1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIKZXh0ZXJu
IHZvaWQgX19pYTY0X2luaXRfZnB1ICh2b2lkKTsKZXh0ZXJuIHZvaWQgX19pYTY0X3NhdmVfZnB1
IChzdHJ1Y3QgaWE2NF9mcHJlZyAqZnBoKTsKZXh0ZXJuIHZvaWQgX19pYTY0X2xvYWRfZnB1IChz
dHJ1Y3QgaWE2NF9mcHJlZyAqZnBoKTsKZXh0ZXJuIHZvaWQgaWE2NF9zYXZlX2RlYnVnX3JlZ3Mg
KHVuc2lnbmVkIGxvbmcgKnNhdmVfYXJlYSk7CmV4dGVybiB2b2lkIGlhNjRfbG9hZF9kZWJ1Z19y
ZWdzICh1bnNpZ25lZCBsb25nICpzYXZlX2FyZWEpOwoKCmV4dGVybiB2b2lkIGlhMzJfc2F2ZV9z
dGF0ZSAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKZXh0ZXJuIHZvaWQgaWEzMl9sb2FkX3N0
YXRlIChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2spOwoKCgpleHRlcm4gdm9pZCBpYTY0X3NhdmVf
cG1fcmVncyAoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKTsKZXh0ZXJuIHZvaWQgaWE2NF9sb2Fk
X3BtX3JlZ3MgKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzayk7CgoKI2RlZmluZSBpYTY0X2ZwaF9l
bmFibGUoKSBhc20gdm9sYXRpbGUgKCI7OyByc20gcHNyLmRmaDs7IHNybHouZDs7IiA6OjogIm1l
bW9yeSIpOwojZGVmaW5lIGlhNjRfZnBoX2Rpc2FibGUoKSBhc20gdm9sYXRpbGUgKCI7OyBzc20g
cHNyLmRmaDs7IHNybHouZDs7IiA6OjogIm1lbW9yeSIpOwoKCnN0YXRpYyBpbmxpbmUgdm9pZApp
YTY0X2luaXRfZnB1ICh2b2lkKSB7CiAgICAgICAgYXNtIHZvbGF0aWxlICgiOzsgcnNtIHBzci5k
Zmg7OyBzcmx6LmQ7OyIgOjo6ICJtZW1vcnkiKTs7CiAgICAgICAgX19pYTY0X2luaXRfZnB1KCk7
CiAgICAgICAgYXNtIHZvbGF0aWxlICgiOzsgc3NtIHBzci5kZmg7OyBzcmx6LmQ7OyIgOjo6ICJt
ZW1vcnkiKTs7Cn0KCgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zYXZlX2ZwdSAoc3RydWN0IGlh
NjRfZnByZWcgKmZwaCkgewogICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7IHJzbSBwc3IuZGZoOzsg
c3Jsei5kOzsiIDo6OiAibWVtb3J5Iik7OwogICAgICAgIF9faWE2NF9zYXZlX2ZwdShmcGgpOwog
ICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7IHNzbSBwc3IuZGZoOzsgc3Jsei5kOzsiIDo6OiAibWVt
b3J5Iik7Owp9CgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfbG9hZF9mcHUgKHN0cnVjdCBpYTY0
X2ZwcmVnICpmcGgpIHsKICAgICAgICBhc20gdm9sYXRpbGUgKCI7OyByc20gcHNyLmRmaDs7IHNy
bHouZDs7IiA6OjogIm1lbW9yeSIpOzsKICAgICAgICBfX2lhNjRfbG9hZF9mcHUoZnBoKTsKICAg
ICAgICBhc20gdm9sYXRpbGUgKCI7OyBzc20gcHNyLmRmaDs7IHNybHouZDs7IiA6OjogIm1lbW9y
eSIpOzsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfZmMgKHZvaWQgKmFkZHIpCnsKICAgICAg
ICBhc20gdm9sYXRpbGUgKCJmYyAlMCIgOjogInIiKGFkZHIpIDogIm1lbW9yeSIpOwp9CgpzdGF0
aWMgaW5saW5lIHZvaWQKaWE2NF9zeW5jX2kgKHZvaWQpCnsKICAgICAgICBhc20gdm9sYXRpbGUg
KCI7OyBzeW5jLmkiIDo6OiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3Ny
bHpfaSAodm9pZCkKewogICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7IHNybHouaSA7OyIgOjo6ICJt
ZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc3Jsel9kICh2b2lkKQp7CiAgICAg
ICAgYXNtIHZvbGF0aWxlICgiOzsgc3Jsei5kIiA6OjogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5s
aW5lIF9fdTY0CmlhNjRfZ2V0X3JyIChfX3U2NCByZWdfYml0cykKewogICAgICAgIF9fdTY0IHI7
CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92ICUwPXJyWyUxXSIgOiAiPXIiKHIpIDogInIiKHJl
Z19iaXRzKSA6ICJtZW1vcnkiKTsKICAgICAgICByZXR1cm4gcjsKfQoKc3RhdGljIGlubGluZSB2
b2lkCmlhNjRfc2V0X3JyIChfX3U2NCByZWdfYml0cywgX191NjQgcnJfdmFsKQp7CiAgICAgICAg
YXNtIHZvbGF0aWxlICgibW92IHJyWyUwXT0lMSIgOjogInIiKHJlZ19iaXRzKSwgInIiKHJyX3Zh
bCkgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfZGNyICh2b2lk
KQp7CiAgICAgICAgX191NjQgcjsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgJTA9Y3IuZGNy
IiA6ICI9ciIocikpOwogICAgICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2
NF9zZXRfZGNyIChfX3U2NCB2YWwpCnsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IuZGNy
PSUwOzsiIDo6ICJyIih2YWwpIDogIm1lbW9yeSIpOwogICAgICAgIGlhNjRfc3Jsel9kKCk7Cn0K
CnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfbGlkICh2b2lkKQp7CiAgICAgICAgX191NjQg
cjsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgJTA9Y3IubGlkIiA6ICI9ciIocikpOwogICAg
ICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9pbnZhbGEgKHZvaWQpCnsK
ICAgICAgICBhc20gdm9sYXRpbGUgKCJpbnZhbGEiIDo6OiAibWVtb3J5Iik7Cn0KCgoKCgojZGVm
aW5lIGlhNjRfY2xlYXJfaWMoZmxhZ3MpIGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1wc3I7OyByc20g
cHNyLmkgfCBwc3IuaWM7OyBzcmx6Lmk7OyIgOiAiPXIiKGZsYWdzKSA6OiAibWVtb3J5Iik7CgoK
CgoKCgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9pdHIgKF9fdTY0IHRhcmdldF9tYXNrLCBfX3U2
NCB0cl9udW0sCiAgICAgICAgICBfX3U2NCB2bWFkZHIsIF9fdTY0IHB0ZSwKICAgICAgICAgIF9f
dTY0IGxvZ19wYWdlX3NpemUpCnsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IuaXRpcj0l
MCIgOjogInIiKGxvZ19wYWdlX3NpemUgPDwgMikgOiAibWVtb3J5Iik7CiAgICAgICAgYXNtIHZv
bGF0aWxlICgibW92IGNyLmlmYT0lMDs7IiA6OiAiciIodm1hZGRyKSA6ICJtZW1vcnkiKTsKICAg
ICAgICBpZiAodGFyZ2V0X21hc2sgJiAweDEpCiAgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUg
KCJpdHIuaSBpdHJbJTBdPSUxIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDo6ICJyIih0cl9udW0pLCAiciIocHRlKSA6ICJtZW1vcnkiKTsKICAgICAgICBpZiAodGFyZ2V0
X21hc2sgJiAweDIpCiAgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUgKCI7O2l0ci5kIGR0clsl
MF09JTEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjogInIiKHRyX251
bSksICJyIihwdGUpIDogIm1lbW9yeSIpOwp9CgoKCgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRf
aXRjIChfX3U2NCB0YXJnZXRfbWFzaywgX191NjQgdm1hZGRyLCBfX3U2NCBwdGUsCiAgICAgICAg
ICBfX3U2NCBsb2dfcGFnZV9zaXplKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92IGNyLml0
aXI9JTAiIDo6ICJyIihsb2dfcGFnZV9zaXplIDw8IDIpIDogIm1lbW9yeSIpOwogICAgICAgIGFz
bSB2b2xhdGlsZSAoIm1vdiBjci5pZmE9JTA7OyIgOjogInIiKHZtYWRkcikgOiAibWVtb3J5Iik7
CgogICAgICAgIGlmICh0YXJnZXRfbWFzayAmIDB4MSkKICAgICAgICAgICAgICAgIGFzbSB2b2xh
dGlsZSAoIml0Yy5pICUwOzsiIDo6ICJyIihwdGUpIDogIm1lbW9yeSIpOwogICAgICAgIGlmICh0
YXJnZXRfbWFzayAmIDB4MikKICAgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSAoIjs7aXRjLmQg
JTA7OyIgOjogInIiKHB0ZSkgOiAibWVtb3J5Iik7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIHZvaWQK
aWE2NF9wdHIgKF9fdTY0IHRhcmdldF9tYXNrLCBfX3U2NCB2bWFkZHIsIF9fdTY0IGxvZ19zaXpl
KQp7CiAgICAgICAgaWYgKHRhcmdldF9tYXNrICYgMHgxKQogICAgICAgICAgICAgICAgYXNtIHZv
bGF0aWxlICgicHRyLmkgJTAsJTEiIDo6ICJyIih2bWFkZHIpLCAiciIobG9nX3NpemUgPDwgMikp
OwogICAgICAgIGlmICh0YXJnZXRfbWFzayAmIDB4MikKICAgICAgICAgICAgICAgIGFzbSB2b2xh
dGlsZSAoInB0ci5kICUwLCUxIiA6OiAiciIodm1hZGRyKSwgInIiKGxvZ19zaXplIDw8IDIpKTsK
fQoKCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9pdmEgKHZvaWQgKml2dF9hZGRyKQp7CiAg
ICAgICAgYXNtIHZvbGF0aWxlICgibW92IGNyLml2YT0lMDs7IHNybHouaTs7IiA6OiAiciIoaXZ0
X2FkZHIpIDogIm1lbW9yeSIpOwp9CgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0X3B0YSAo
X191NjQgcHRhKQp7CgogICAgICAgIGFzbSB2b2xhdGlsZSAoIm1vdiBjci5wdGE9JTA7OyBzcmx6
Lmk7OyIgOjogInIiKHB0YSkgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2
NF9nZXRfY3B1aWQgKF9fdTY0IHJlZ251bSkKewogICAgICAgIF9fdTY0IHI7CgogICAgICAgIGFz
bSAoIm1vdiAlMD1jcHVpZFslcjFdIiA6ICI9ciIocikgOiAick8iKHJlZ251bSkpOwogICAgICAg
IHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9lb2kgKHZvaWQpCnsKICAgICAg
ICBhc20gKCJtb3YgY3IuZW9pPXIwOzsgc3Jsei5kOzsiIDo6OiAibWVtb3J5Iik7Cn0KCnN0YXRp
YyBpbmxpbmUgdm9pZAppYTY0X3NldF9scnIwICh1bnNpZ25lZCBsb25nIHZhbCkKewogICAgICAg
IGFzbSB2b2xhdGlsZSAoIm1vdiBjci5scnIwPSUwOzsgc3Jsei5kIiA6OiAiciIodmFsKSA6ICJt
ZW1vcnkiKTsKfQoKCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9scnIxICh1bnNpZ25lZCBs
b25nIHZhbCkKewogICAgICAgIGFzbSB2b2xhdGlsZSAoIm1vdiBjci5scnIxPSUwOzsgc3Jsei5k
IiA6OiAiciIodmFsKSA6ICJtZW1vcnkiKTsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0
X3BtdiAoX191NjQgdmFsKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92IGNyLnBtdj0lMCIg
OjogInIiKHZhbCkgOiAibWVtb3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRf
cG1jIChfX3U2NCByZWdudW0pCnsKICAgICAgICBfX3U2NCByZXR2YWw7CgogICAgICAgIGFzbSB2
b2xhdGlsZSAoIm1vdiAlMD1wbWNbJTFdIiA6ICI9ciIocmV0dmFsKSA6ICJyIihyZWdudW0pKTsK
ICAgICAgICByZXR1cm4gcmV0dmFsOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfcG1j
IChfX3U2NCByZWdudW0sIF9fdTY0IHZhbHVlKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92
IHBtY1slMF09JTEiIDo6ICJyIihyZWdudW0pLCAiciIodmFsdWUpKTsKfQoKc3RhdGljIGlubGlu
ZSBfX3U2NAppYTY0X2dldF9wbWQgKF9fdTY0IHJlZ251bSkKewogICAgICAgIF9fdTY0IHJldHZh
bDsKCiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92ICUwPXBtZFslMV0iIDogIj1yIihyZXR2YWwp
IDogInIiKHJlZ251bSkpOwogICAgICAgIHJldHVybiByZXR2YWw7Cn0KCnN0YXRpYyBpbmxpbmUg
dm9pZAppYTY0X3NldF9wbWQgKF9fdTY0IHJlZ251bSwgX191NjQgdmFsdWUpCnsKICAgICAgICBh
c20gdm9sYXRpbGUgKCJtb3YgcG1kWyUwXT0lMSIgOjogInIiKHJlZ251bSksICJyIih2YWx1ZSkp
Owp9CgoKCgoKc3RhdGljIGlubGluZSBfX3U2NAppYTY0X3VuYXRfcG9zICh2b2lkICpzcGlsbF9h
ZGRyKQp7CiAgICAgICAgcmV0dXJuICgoX191NjQpIHNwaWxsX2FkZHIgPj4gMykgJiAweDNmOwp9
CgoKCgoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0X3VuYXQgKF9fdTY0ICp1bmF0LCB2b2lk
ICpzcGlsbF9hZGRyLCB1bnNpZ25lZCBsb25nIG5hdCkKewogICAgICAgIF9fdTY0IGJpdCA9IGlh
NjRfdW5hdF9wb3Moc3BpbGxfYWRkcik7CiAgICAgICAgX191NjQgbWFzayA9IDFVTCA8PCBiaXQ7
CgogICAgICAgICp1bmF0ID0gKCp1bmF0ICYgfm1hc2spIHwgKG5hdCA8PCBiaXQpOwp9CgoKCgoK
c3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCnRocmVhZF9zYXZlZF9wYyAoc3RydWN0IHRocmVh
ZF9zdHJ1Y3QgKnQpCnsKICAgICAgICBzdHJ1Y3QgdW53X2ZyYW1lX2luZm8gaW5mbzsKICAgICAg
ICB1bnNpZ25lZCBsb25nIGlwOwoKCiAgICAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpwID0gKHZv
aWQgKikgKCh1bnNpZ25lZCBsb25nKSB0IC0gMTQ1Nik7CgogICAgICAgIHVud19pbml0X2Zyb21f
YmxvY2tlZF90YXNrKCZpbmZvLCBwKTsKICAgICAgICBpZiAodW53X3Vud2luZCgmaW5mbykgPCAw
KQogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgdW53X2dldF9pcCgmaW5mbywgJmlw
KTsKICAgICAgICByZXR1cm4gaXA7Cn0KCgoKCiNkZWZpbmUgY3VycmVudF90ZXh0X2FkZHIoKSAo
eyB2b2lkICpfcGM7IGFzbSB2b2xhdGlsZSAoIm1vdiAlMD1pcCIgOiAiPXIiIChfcGMpKTsgX3Bj
OyB9KQoKCiNkZWZpbmUgVEhSRUFEX1NJWkUgSUE2NF9TVEtfT0ZGU0VUCgojZGVmaW5lIGFsbG9j
X3Rhc2tfc3RydWN0KCkgKChzdHJ1Y3QgdGFza19zdHJ1Y3QgKikgX19nZXRfZnJlZV9wYWdlcyhH
RlBfS0VSTkVMLCBJQTY0X1RBU0tfU1RSVUNUX0xPR19OVU1fUEFHRVMpKQoKI2RlZmluZSBmcmVl
X3Rhc2tfc3RydWN0KHApIGZyZWVfcGFnZXMoKHVuc2lnbmVkIGxvbmcpKHApLCBJQTY0X1RBU0tf
U1RSVUNUX0xPR19OVU1fUEFHRVMpCiNkZWZpbmUgZ2V0X3Rhc2tfc3RydWN0KHRzaykgYXRvbWlj
X2luYygmdmlydF90b19wYWdlKHRzayktPmNvdW50KQoKI2RlZmluZSBpbml0X3Rhc2sgKGluaXRf
dGFza191bmlvbi50YXNrKQojZGVmaW5lIGluaXRfc3RhY2sgKGluaXRfdGFza191bmlvbi5zdGFj
aykKCgoKCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9jbWN2IChfX3U2NCB2YWwpCnsKICAg
ICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IuY21jdj0lMCIgOjogInIiKHZhbCkgOiAibWVtb3J5
Iik7Cn0KCgoKCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfY21jdiAodm9pZCkKewogICAg
ICAgIF9fdTY0IHZhbDsKCiAgICAgICAgYXNtIHZvbGF0aWxlICgibW92ICUwPWNyLmNtY3YiIDog
Ij1yIih2YWwpIDo6ICJtZW1vcnkiKTsKICAgICAgICByZXR1cm4gdmFsOwp9CgpzdGF0aWMgaW5s
aW5lIF9fdTY0CmlhNjRfZ2V0X2l2ciAodm9pZCkKewogICAgICAgIF9fdTY0IHI7CiAgICAgICAg
YXNtIHZvbGF0aWxlICgic3Jsei5kOzsgbW92ICUwPWNyLml2cjs7IHNybHouZDs7IiA6ICI9ciIo
cikpOwogICAgICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfdHBy
IChfX3U2NCB2YWwpCnsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgY3IudHByPSUwIiA6OiAi
ciIodmFsKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfdHByICh2b2lkKQp7CiAg
ICAgICAgX191NjQgcjsKICAgICAgICBhc20gdm9sYXRpbGUgKCJtb3YgJTA9Y3IudHByIiA6ICI9
ciIocikpOwogICAgICAgIHJldHVybiByOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRf
aXJyMCAoX191NjQgdmFsKQp7CiAgICAgICAgYXNtIHZvbGF0aWxlKCJtb3YgY3IuaXJyMD0lMDs7
IiA6OiAiciIodmFsKSA6ICJtZW1vcnkiKTsKICAgICAgICBpYTY0X3NybHpfZCgpOwp9CgpzdGF0
aWMgaW5saW5lIF9fdTY0CmlhNjRfZ2V0X2lycjAgKHZvaWQpCnsKICAgICAgICBfX3U2NCB2YWw7
CgoKICAgICAgICBhc20gdm9sYXRpbGUoIm1vdiAlMD1jci5pcnIwIiA6ICI9ciIodmFsKSk7CiAg
ICAgICAgcmV0dXJuIHZhbDsKfQoKc3RhdGljIGlubGluZSB2b2lkCmlhNjRfc2V0X2lycjEgKF9f
dTY0IHZhbCkKewogICAgICAgIGFzbSB2b2xhdGlsZSgibW92IGNyLmlycjE9JTA7OyIgOjogInIi
KHZhbCkgOiAibWVtb3J5Iik7CiAgICAgICAgaWE2NF9zcmx6X2QoKTsKfQoKc3RhdGljIGlubGlu
ZSBfX3U2NAppYTY0X2dldF9pcnIxICh2b2lkKQp7CiAgICAgICAgX191NjQgdmFsOwoKCiAgICAg
ICAgYXNtIHZvbGF0aWxlKCJtb3YgJTA9Y3IuaXJyMSIgOiAiPXIiKHZhbCkpOwogICAgICAgIHJl
dHVybiB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZAppYTY0X3NldF9pcnIyIChfX3U2NCB2YWwp
CnsKICAgICAgICBhc20gdm9sYXRpbGUoIm1vdiBjci5pcnIyPSUwOzsiIDo6ICJyIih2YWwpIDog
Im1lbW9yeSIpOwogICAgICAgIGlhNjRfc3Jsel9kKCk7Cn0KCnN0YXRpYyBpbmxpbmUgX191NjQK
aWE2NF9nZXRfaXJyMiAodm9pZCkKewogICAgICAgIF9fdTY0IHZhbDsKCgogICAgICAgIGFzbSB2
b2xhdGlsZSgibW92ICUwPWNyLmlycjIiIDogIj1yIih2YWwpKTsKICAgICAgICByZXR1cm4gdmFs
Owp9CgpzdGF0aWMgaW5saW5lIHZvaWQKaWE2NF9zZXRfaXJyMyAoX191NjQgdmFsKQp7CiAgICAg
ICAgYXNtIHZvbGF0aWxlKCJtb3YgY3IuaXJyMz0lMDs7IiA6OiAiciIodmFsKSA6ICJtZW1vcnki
KTsKICAgICAgICBpYTY0X3NybHpfZCgpOwp9CgpzdGF0aWMgaW5saW5lIF9fdTY0CmlhNjRfZ2V0
X2lycjMgKHZvaWQpCnsKICAgICAgICBfX3U2NCB2YWw7CgoKICAgICAgICBhc20gdm9sYXRpbGUg
KCJtb3YgJTA9Y3IuaXJyMyIgOiAiPXIiKHZhbCkpOwogICAgICAgIHJldHVybiB2YWw7Cn0KCnN0
YXRpYyBpbmxpbmUgX191NjQKaWE2NF9nZXRfZ3Aodm9pZCkKewogICAgICAgIF9fdTY0IHZhbDsK
CiAgICAgICAgYXNtICgibW92ICUwPWdwIiA6ICI9ciIodmFsKSk7CiAgICAgICAgcmV0dXJuIHZh
bDsKfQojIDk1OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJvY2Vzc29yLmgi
CiNkZWZpbmUgaWE2NF9yb3RyKHcsIG4pICh7IF9fdTY0IHJlc3VsdDsgYXNtICgic2hycCAlMD0l
MSwlMSwlMiIgOiAiPXIiKHJlc3VsdCkgOiAiciIodyksICJpIihuKSk7IHJlc3VsdDsgfSkKCgoK
CgoKCiNkZWZpbmUgaWE2NF9yb3RsKHcsIG4pIGlhNjRfcm90cigodyksKDY0KS0obikpCgpzdGF0
aWMgaW5saW5lIF9fdTY0CmlhNjRfdGhhc2ggKF9fdTY0IGFkZHIpCnsKICAgICAgICBfX3U2NCBy
ZXN1bHQ7CiAgICAgICAgYXNtICgidGhhc2ggJTA9JTEiIDogIj1yIihyZXN1bHQpIDogInIiIChh
ZGRyKSk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKfQojIDIwICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIgMgoKCgoKI2RlZmluZSBXQUlUUVVFVUVfREVCVUcgMAoK
c3RydWN0IF9fd2FpdF9xdWV1ZSB7CiAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwojZGVmaW5l
IFdRX0ZMQUdfRVhDTFVTSVZFIDB4MDEKIHN0cnVjdCB0YXNrX3N0cnVjdCAqIHRhc2s7CiAgICAg
ICAgc3RydWN0IGxpc3RfaGVhZCB0YXNrX2xpc3Q7CgoKCgp9Owp0eXBlZGVmIHN0cnVjdCBfX3dh
aXRfcXVldWUgd2FpdF9xdWV1ZV90OwoKCgoKCgoKI2RlZmluZSBVU0VfUldfV0FJVF9RVUVVRV9T
UElOTE9DSyAwCiMgNTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvd2FpdC5o
IgojZGVmaW5lIHdxX2xvY2tfdCBzcGlubG9ja190CiNkZWZpbmUgV0FJVFFVRVVFX1JXX0xPQ0tf
VU5MT0NLRUQgU1BJTl9MT0NLX1VOTE9DS0VECgojZGVmaW5lIHdxX3JlYWRfbG9jayBzcGluX2xv
Y2sKI2RlZmluZSB3cV9yZWFkX2xvY2tfaXJxc2F2ZSBzcGluX2xvY2tfaXJxc2F2ZQojZGVmaW5l
IHdxX3JlYWRfdW5sb2NrIHNwaW5fdW5sb2NrCiNkZWZpbmUgd3FfcmVhZF91bmxvY2tfaXJxcmVz
dG9yZSBzcGluX3VubG9ja19pcnFyZXN0b3JlCiNkZWZpbmUgd3Ffd3JpdGVfbG9ja19pcnEgc3Bp
bl9sb2NrX2lycQojZGVmaW5lIHdxX3dyaXRlX2xvY2tfaXJxc2F2ZSBzcGluX2xvY2tfaXJxc2F2
ZQojZGVmaW5lIHdxX3dyaXRlX3VubG9ja19pcnFyZXN0b3JlIHNwaW5fdW5sb2NrX2lycXJlc3Rv
cmUKI2RlZmluZSB3cV93cml0ZV91bmxvY2sgc3Bpbl91bmxvY2sKCgpzdHJ1Y3QgX193YWl0X3F1
ZXVlX2hlYWQgewogICAgICAgIHNwaW5sb2NrX3QgbG9jazsKICAgICAgICBzdHJ1Y3QgbGlzdF9o
ZWFkIHRhc2tfbGlzdDsKCgoKCn07CnR5cGVkZWYgc3RydWN0IF9fd2FpdF9xdWV1ZV9oZWFkIHdh
aXRfcXVldWVfaGVhZF90OwojIDExNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC93YWl0LmgiCiNkZWZpbmUgV1FfQlVHKCkKI2RlZmluZSBDSEVDS19NQUdJQyh4KQojZGVmaW5l
IENIRUNLX01BR0lDX1dRSEVBRCh4KQojZGVmaW5lIFdRX0NIRUNLX0xJU1RfSEVBRChsaXN0KQoj
ZGVmaW5lIFdRX05PVEVfV0FLRVIodHNrKQojIDEzMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC93YWl0LmgiCiNkZWZpbmUgX19XQUlUUVVFVUVfREVCVUdfSU5JVChuYW1lKQoj
ZGVmaW5lIF9fV0FJVFFVRVVFX0hFQURfREVCVUdfSU5JVChuYW1lKQoKCiNkZWZpbmUgX19XQUlU
UVVFVUVfSU5JVElBTElaRVIobmFtZSwgdHNrKSB7IHRhc2s6IHRzaywgdGFza19saXN0OiB7IE5V
TEwsIE5VTEwgfSwgX19XQUlUUVVFVUVfREVCVUdfSU5JVChuYW1lKX0KCgoKCiNkZWZpbmUgREVD
TEFSRV9XQUlUUVVFVUUobmFtZSwgdHNrKSB3YWl0X3F1ZXVlX3QgbmFtZSA9IF9fV0FJVFFVRVVF
X0lOSVRJQUxJWkVSKG5hbWUsIHRzaykKCgojZGVmaW5lIF9fV0FJVF9RVUVVRV9IRUFEX0lOSVRJ
QUxJWkVSKG5hbWUpIHsgbG9jazogV0FJVFFVRVVFX1JXX0xPQ0tfVU5MT0NLRUQsIHRhc2tfbGlz
dDogeyAmKG5hbWUpLnRhc2tfbGlzdCwgJihuYW1lKS50YXNrX2xpc3QgfSwgX19XQUlUUVVFVUVf
SEVBRF9ERUJVR19JTklUKG5hbWUpfQoKCgoKI2RlZmluZSBERUNMQVJFX1dBSVRfUVVFVUVfSEVB
RChuYW1lKSB3YWl0X3F1ZXVlX2hlYWRfdCBuYW1lID0gX19XQUlUX1FVRVVFX0hFQURfSU5JVElB
TElaRVIobmFtZSkKCgpzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF93YWl0cXVldWVfaGVhZCh3YWl0
X3F1ZXVlX2hlYWRfdCAqcSkKewoKCgoKICAgICAgICBxLT5sb2NrID0gKHNwaW5sb2NrX3QpIHsg
MCB9OwogICAgICAgIGRvIHsgKCZxLT50YXNrX2xpc3QpLT5uZXh0ID0gKCZxLT50YXNrX2xpc3Qp
OyAoJnEtPnRhc2tfbGlzdCktPnByZXYgPSAoJnEtPnRhc2tfbGlzdCk7IH0gd2hpbGUgKDApOwoK
CgoKfQoKc3RhdGljIGlubGluZSB2b2lkIGluaXRfd2FpdHF1ZXVlX2VudHJ5KHdhaXRfcXVldWVf
dCAqcSwgc3RydWN0IHRhc2tfc3RydWN0ICpwKQp7CgoKCgogICAgICAgIHEtPmZsYWdzID0gMDsK
ICAgICAgICBxLT50YXNrID0gcDsKCgoKfQoKc3RhdGljIGlubGluZSBpbnQgd2FpdHF1ZXVlX2Fj
dGl2ZSh3YWl0X3F1ZXVlX2hlYWRfdCAqcSkKewoKCgoKCgogICAgICAgIHJldHVybiAhbGlzdF9l
bXB0eSgmcS0+dGFza19saXN0KTsKfQoKc3RhdGljIGlubGluZSB2b2lkIF9fYWRkX3dhaXRfcXVl
dWUod2FpdF9xdWV1ZV9oZWFkX3QgKmhlYWQsIHdhaXRfcXVldWVfdCAqbmV3KQp7CiMgMTk4ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3dhaXQuaCIKICAgICAgICBsaXN0X2Fk
ZCgmbmV3LT50YXNrX2xpc3QsICZoZWFkLT50YXNrX2xpc3QpOwp9CgoKCgpzdGF0aWMgaW5saW5l
IHZvaWQgX19hZGRfd2FpdF9xdWV1ZV90YWlsKHdhaXRfcXVldWVfaGVhZF90ICpoZWFkLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0X3F1ZXVlX3Qg
Km5ldykKewojIDIxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC93YWl0Lmgi
CiAgICAgICAgbGlzdF9hZGRfdGFpbCgmbmV3LT50YXNrX2xpc3QsICZoZWFkLT50YXNrX2xpc3Qp
Owp9CgpzdGF0aWMgaW5saW5lIHZvaWQgX19yZW1vdmVfd2FpdF9xdWV1ZSh3YWl0X3F1ZXVlX2hl
YWRfdCAqaGVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3YWl0X3F1ZXVlX3QgKm9sZCkKewoKCgoKCiAgICAgICAgbGlzdF9kZWwoJm9s
ZC0+dGFza19saXN0KTsKfQojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgi
IDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC92ZnMuaCIgMQoKI2RlZmluZSBfTElO
VVhfVkZTX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3RhdGZzLmgi
IDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NUQVRGU19ICgoKCgoKCgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDExICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2FzbS9zdGF0ZnMuaCIgMgogdHlwZWRlZiBfX2tlcm5lbF9mc2lkX3QgZnNpZF90
OwoKCnN0cnVjdCBzdGF0ZnMgewogICAgICAgIGxvbmcgZl90eXBlOwogICAgICAgIGxvbmcgZl9i
c2l6ZTsKICAgICAgICBsb25nIGZfYmxvY2tzOwogICAgICAgIGxvbmcgZl9iZnJlZTsKICAgICAg
ICBsb25nIGZfYmF2YWlsOwogICAgICAgIGxvbmcgZl9maWxlczsKICAgICAgICBsb25nIGZfZmZy
ZWU7CiAgICAgICAgX19rZXJuZWxfZnNpZF90IGZfZnNpZDsKICAgICAgICBsb25nIGZfbmFtZWxl
bjsKICAgICAgICBsb25nIGZfc3BhcmVbNl07Cn07CiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC92ZnMuaCIgMgojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25l
dC5oIiAxCiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmV0LmgiCiNk
ZWZpbmUgX0xJTlVYX05FVF9ICgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvY29uZmlnLmgiIDEKIyAyMiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9u
ZXQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc29ja2V0Lmgi
IDEKCiNkZWZpbmUgX0xJTlVYX1NPQ0tFVF9ICgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vc29ja2V0LmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NPQ0tFVF9ICiMgMTEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NvY2tldC5oIgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NvY2tpb3MuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRf
U09DS0lPU19ICiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NvY2tpb3Mu
aCIKI2RlZmluZSBGSU9TRVRPV04gMHg4OTAxCiNkZWZpbmUgU0lPQ1NQR1JQIDB4ODkwMgojZGVm
aW5lIEZJT0dFVE9XTiAweDg5MDMKI2RlZmluZSBTSU9DR1BHUlAgMHg4OTA0CiNkZWZpbmUgU0lP
Q0FUTUFSSyAweDg5MDUKI2RlZmluZSBTSU9DR1NUQU1QIDB4ODkwNgojIDEyICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zb2NrZXQuaCIgMgoKCiNkZWZpbmUgU09MX1NPQ0tFVCAx
CgojZGVmaW5lIFNPX0RFQlVHIDEKI2RlZmluZSBTT19SRVVTRUFERFIgMgojZGVmaW5lIFNPX1RZ
UEUgMwojZGVmaW5lIFNPX0VSUk9SIDQKI2RlZmluZSBTT19ET05UUk9VVEUgNQojZGVmaW5lIFNP
X0JST0FEQ0FTVCA2CiNkZWZpbmUgU09fU05EQlVGIDcKI2RlZmluZSBTT19SQ1ZCVUYgOAojZGVm
aW5lIFNPX0tFRVBBTElWRSA5CiNkZWZpbmUgU09fT09CSU5MSU5FIDEwCiNkZWZpbmUgU09fTk9f
Q0hFQ0sgMTEKI2RlZmluZSBTT19QUklPUklUWSAxMgojZGVmaW5lIFNPX0xJTkdFUiAxMwojZGVm
aW5lIFNPX0JTRENPTVBBVCAxNAoKI2RlZmluZSBTT19QQVNTQ1JFRCAxNgojZGVmaW5lIFNPX1BF
RVJDUkVEIDE3CiNkZWZpbmUgU09fUkNWTE9XQVQgMTgKI2RlZmluZSBTT19TTkRMT1dBVCAxOQoj
ZGVmaW5lIFNPX1JDVlRJTUVPIDIwCiNkZWZpbmUgU09fU05EVElNRU8gMjEKCgojZGVmaW5lIFNP
X1NFQ1VSSVRZX0FVVEhFTlRJQ0FUSU9OIDIyCiNkZWZpbmUgU09fU0VDVVJJVFlfRU5DUllQVElP
Tl9UUkFOU1BPUlQgMjMKI2RlZmluZSBTT19TRUNVUklUWV9FTkNSWVBUSU9OX05FVFdPUksgMjQK
CiNkZWZpbmUgU09fQklORFRPREVWSUNFIDI1CgoKI2RlZmluZSBTT19BVFRBQ0hfRklMVEVSIDI2
CiNkZWZpbmUgU09fREVUQUNIX0ZJTFRFUiAyNwoKI2RlZmluZSBTT19QRUVSTkFNRSAyOAojZGVm
aW5lIFNPX1RJTUVTVEFNUCAyOQojZGVmaW5lIFNDTV9USU1FU1RBTVAgU09fVElNRVNUQU1QCgoj
ZGVmaW5lIFNPX0FDQ0VQVENPTk4gMzAKCgoKCiNkZWZpbmUgU09DS19TVFJFQU0gMQojZGVmaW5l
IFNPQ0tfREdSQU0gMgojZGVmaW5lIFNPQ0tfUkFXIDMKI2RlZmluZSBTT0NLX1JETSA0CiNkZWZp
bmUgU09DS19TRVFQQUNLRVQgNQojZGVmaW5lIFNPQ0tfUEFDS0VUIDEwCgoKCgojZGVmaW5lIFNP
Q0tfTUFYIChTT0NLX1BBQ0tFVCsxKQojIDcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvc29ja2V0LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L3NvY2tpb3MuaCIgMQojIDE5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Nv
Y2tpb3MuaCIKI2RlZmluZSBfTElOVVhfU09DS0lPU19ICgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvYXNtL3NvY2tpb3MuaCIgMQojIDIyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3NvY2tpb3MuaCIgMgoKCiNkZWZpbmUgU0lPQ0lOUSBGSU9OUkVBRAojZGVm
aW5lIFNJT0NPVVRRIFRJT0NPVVRRCgoKI2RlZmluZSBTSU9DQUREUlQgMHg4OTBCCiNkZWZpbmUg
U0lPQ0RFTFJUIDB4ODkwQwojZGVmaW5lIFNJT0NSVE1TRyAweDg5MEQKCgojZGVmaW5lIFNJT0NH
SUZOQU1FIDB4ODkxMAojZGVmaW5lIFNJT0NTSUZMSU5LIDB4ODkxMQojZGVmaW5lIFNJT0NHSUZD
T05GIDB4ODkxMgojZGVmaW5lIFNJT0NHSUZGTEFHUyAweDg5MTMKI2RlZmluZSBTSU9DU0lGRkxB
R1MgMHg4OTE0CiNkZWZpbmUgU0lPQ0dJRkFERFIgMHg4OTE1CiNkZWZpbmUgU0lPQ1NJRkFERFIg
MHg4OTE2CiNkZWZpbmUgU0lPQ0dJRkRTVEFERFIgMHg4OTE3CiNkZWZpbmUgU0lPQ1NJRkRTVEFE
RFIgMHg4OTE4CiNkZWZpbmUgU0lPQ0dJRkJSREFERFIgMHg4OTE5CiNkZWZpbmUgU0lPQ1NJRkJS
REFERFIgMHg4OTFhCiNkZWZpbmUgU0lPQ0dJRk5FVE1BU0sgMHg4OTFiCiNkZWZpbmUgU0lPQ1NJ
Rk5FVE1BU0sgMHg4OTFjCiNkZWZpbmUgU0lPQ0dJRk1FVFJJQyAweDg5MWQKI2RlZmluZSBTSU9D
U0lGTUVUUklDIDB4ODkxZQojZGVmaW5lIFNJT0NHSUZNRU0gMHg4OTFmCiNkZWZpbmUgU0lPQ1NJ
Rk1FTSAweDg5MjAKI2RlZmluZSBTSU9DR0lGTVRVIDB4ODkyMQojZGVmaW5lIFNJT0NTSUZNVFUg
MHg4OTIyCiNkZWZpbmUgU0lPQ1NJRk5BTUUgMHg4OTIzCiNkZWZpbmUgU0lPQ1NJRkhXQUREUiAw
eDg5MjQKI2RlZmluZSBTSU9DR0lGRU5DQVAgMHg4OTI1CiNkZWZpbmUgU0lPQ1NJRkVOQ0FQIDB4
ODkyNgojZGVmaW5lIFNJT0NHSUZIV0FERFIgMHg4OTI3CiNkZWZpbmUgU0lPQ0dJRlNMQVZFIDB4
ODkyOQojZGVmaW5lIFNJT0NTSUZTTEFWRSAweDg5MzAKI2RlZmluZSBTSU9DQURETVVMVEkgMHg4
OTMxCiNkZWZpbmUgU0lPQ0RFTE1VTFRJIDB4ODkzMgojZGVmaW5lIFNJT0NHSUZJTkRFWCAweDg5
MzMKI2RlZmluZSBTSU9HSUZJTkRFWCBTSU9DR0lGSU5ERVgKI2RlZmluZSBTSU9DU0lGUEZMQUdT
IDB4ODkzNAojZGVmaW5lIFNJT0NHSUZQRkxBR1MgMHg4OTM1CiNkZWZpbmUgU0lPQ0RJRkFERFIg
MHg4OTM2CiNkZWZpbmUgU0lPQ1NJRkhXQlJPQURDQVNUIDB4ODkzNwojZGVmaW5lIFNJT0NHSUZD
T1VOVCAweDg5MzgKCiNkZWZpbmUgU0lPQ0dJRkJSIDB4ODk0MAojZGVmaW5lIFNJT0NTSUZCUiAw
eDg5NDEKCiNkZWZpbmUgU0lPQ0dJRlRYUUxFTiAweDg5NDIKI2RlZmluZSBTSU9DU0lGVFhRTEVO
IDB4ODk0MwoKI2RlZmluZSBTSU9DR0lGRElWRVJUIDB4ODk0NAojZGVmaW5lIFNJT0NTSUZESVZF
UlQgMHg4OTQ1CgojZGVmaW5lIFNJT0NFVEhUT09MIDB4ODk0NgoKI2RlZmluZSBTSU9DR01JSVBI
WSAweDg5NDcKI2RlZmluZSBTSU9DR01JSVJFRyAweDg5NDgKI2RlZmluZSBTSU9DU01JSVJFRyAw
eDg5NDkKCgoKI2RlZmluZSBTSU9DREFSUCAweDg5NTMKI2RlZmluZSBTSU9DR0FSUCAweDg5NTQK
I2RlZmluZSBTSU9DU0FSUCAweDg5NTUKCgojZGVmaW5lIFNJT0NEUkFSUCAweDg5NjAKI2RlZmlu
ZSBTSU9DR1JBUlAgMHg4OTYxCiNkZWZpbmUgU0lPQ1NSQVJQIDB4ODk2MgoKCgojZGVmaW5lIFNJ
T0NHSUZNQVAgMHg4OTcwCiNkZWZpbmUgU0lPQ1NJRk1BUCAweDg5NzEKCgoKI2RlZmluZSBTSU9D
QURERExDSSAweDg5ODAKI2RlZmluZSBTSU9DREVMRExDSSAweDg5ODEKIyAxMTQgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc29ja2lvcy5oIgojZGVmaW5lIFNJT0NERVZQUklW
QVRFIDB4ODlGMAoKCgoKCiNkZWZpbmUgU0lPQ1BST1RPUFJJVkFURSAweDg5RTAKIyA4ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NvY2tldC5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91aW8uaCIgMQoKI2RlZmluZSBfX0xJTlVYX1VJT19I
CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDUg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWlvLmgiIDIKIyAxOSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91aW8uaCIKc3RydWN0IGlvdmVjCnsKICAgICAg
ICB2b2lkICppb3ZfYmFzZTsKICAgICAgICBfX2tlcm5lbF9zaXplX3QgaW92X2xlbjsKfTsKCgoK
CgojZGVmaW5lIFVJT19GQVNUSU9WIDgKI2RlZmluZSBVSU9fTUFYSU9WIDEwMjQKIyA5ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NvY2tldC5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvc29ja2V0LmgiIDIKCnR5cGVkZWYgdW5zaWduZWQgc2hvcnQg
c2FfZmFtaWx5X3Q7CgoKCgoKc3RydWN0IHNvY2thZGRyIHsKICAgICAgICBzYV9mYW1pbHlfdCBz
YV9mYW1pbHk7CiAgICAgICAgY2hhciBzYV9kYXRhWzE0XTsKfTsKCnN0cnVjdCBsaW5nZXIgewog
ICAgICAgIGludCBsX29ub2ZmOwogICAgICAgIGludCBsX2xpbmdlcjsKfTsKCgoKCgoKCnN0cnVj
dCBtc2doZHIgewogICAgICAgIHZvaWQgKiBtc2dfbmFtZTsKICAgICAgICBpbnQgbXNnX25hbWVs
ZW47CiAgICAgICAgc3RydWN0IGlvdmVjICogbXNnX2lvdjsKICAgICAgICBfX2tlcm5lbF9zaXpl
X3QgbXNnX2lvdmxlbjsKICAgICAgICB2b2lkICogbXNnX2NvbnRyb2w7CiAgICAgICAgX19rZXJu
ZWxfc2l6ZV90IG1zZ19jb250cm9sbGVuOwogICAgICAgIHVuc2lnbmVkIG1zZ19mbGFnczsKfTsK
CgoKCgoKCnN0cnVjdCBjbXNnaGRyIHsKICAgICAgICBfX2tlcm5lbF9zaXplX3QgY21zZ19sZW47
CiAgICAgICAgaW50IGNtc2dfbGV2ZWw7CiAgICAgICAgaW50IGNtc2dfdHlwZTsKfTsKCgoKCgoK
I2RlZmluZSBfX0NNU0dfTlhUSERSKGN0bCwgbGVuLCBjbXNnKSBfX2Ntc2dfbnh0aGRyKChjdGwp
LChsZW4pLChjbXNnKSkKI2RlZmluZSBDTVNHX05YVEhEUihtaGRyLCBjbXNnKSBjbXNnX254dGhk
cigobWhkciksIChjbXNnKSkKCiNkZWZpbmUgQ01TR19BTElHTihsZW4pICggKChsZW4pK3NpemVv
Zihsb25nKS0xKSAmIH4oc2l6ZW9mKGxvbmcpLTEpICkKCiNkZWZpbmUgQ01TR19EQVRBKGNtc2cp
ICgodm9pZCAqKSgoY2hhciAqKShjbXNnKSArIENNU0dfQUxJR04oc2l6ZW9mKHN0cnVjdCBjbXNn
aGRyKSkpKQojZGVmaW5lIENNU0dfU1BBQ0UobGVuKSAoQ01TR19BTElHTihzaXplb2Yoc3RydWN0
IGNtc2doZHIpKSArIENNU0dfQUxJR04obGVuKSkKI2RlZmluZSBDTVNHX0xFTihsZW4pIChDTVNH
X0FMSUdOKHNpemVvZihzdHJ1Y3QgY21zZ2hkcikpICsgKGxlbikpCgojZGVmaW5lIF9fQ01TR19G
SVJTVEhEUihjdGwsIGxlbikgKChsZW4pID49IHNpemVvZihzdHJ1Y3QgY21zZ2hkcikgPyAoc3Ry
dWN0IGNtc2doZHIgKikoY3RsKSA6IChzdHJ1Y3QgY21zZ2hkciAqKU5VTEwpCgoKI2RlZmluZSBD
TVNHX0ZJUlNUSERSKG1zZykgX19DTVNHX0ZJUlNUSERSKChtc2cpLT5tc2dfY29udHJvbCwgKG1z
ZyktPm1zZ19jb250cm9sbGVuKQoKCgoKCgojZGVmaW5lIF9fS0lOTElORSBzdGF0aWMgaW5saW5l
CiMgMTAyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NvY2tldC5oIgpzdGF0
aWMgaW5saW5lIHN0cnVjdCBjbXNnaGRyICogX19jbXNnX254dGhkcih2b2lkICpfX2N0bCwgX19r
ZXJuZWxfc2l6ZV90IF9fc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKQp7CiAgICAgICAgc3RydWN0IGNtc2do
ZHIgKiBfX3B0cjsKCiAgICAgICAgX19wdHIgPSAoc3RydWN0IGNtc2doZHIqKSgoKHVuc2lnbmVk
IGNoYXIgKikgX19jbXNnKSArICggKChfX2Ntc2ctPmNtc2dfbGVuKStzaXplb2YobG9uZyktMSkg
JiB+KHNpemVvZihsb25nKS0xKSApKTsKICAgICAgICBpZiAoKHVuc2lnbmVkIGxvbmcpKChjaGFy
KikoX19wdHIrMSkgLSAoY2hhciAqKSBfX2N0bCkgPiBfX3NpemUpCiAgICAgICAgICAgICAgICBy
ZXR1cm4gKHN0cnVjdCBjbXNnaGRyICopMDsKCiAgICAgICAgcmV0dXJuIF9fcHRyOwp9CgpzdGF0
aWMgaW5saW5lIHN0cnVjdCBjbXNnaGRyICogY21zZ19ueHRoZHIgKHN0cnVjdCBtc2doZHIgKl9f
bXNnLCBzdHJ1Y3QgY21zZ2hkciAqX19jbXNnKQp7CiAgICAgICAgcmV0dXJuIF9fY21zZ19ueHRo
ZHIoX19tc2ctPm1zZ19jb250cm9sLCBfX21zZy0+bXNnX2NvbnRyb2xsZW4sIF9fY21zZyk7Cn0K
CgoKI2RlZmluZSBTQ01fUklHSFRTIDB4MDEKI2RlZmluZSBTQ01fQ1JFREVOVElBTFMgMHgwMgoj
ZGVmaW5lIFNDTV9DT05ORUNUIDB4MDMKCnN0cnVjdCB1Y3JlZCB7CiAgICAgICAgX191MzIgcGlk
OwogICAgICAgIF9fdTMyIHVpZDsKICAgICAgICBfX3UzMiBnaWQ7Cn07CgoKI2RlZmluZSBBRl9V
TlNQRUMgMAojZGVmaW5lIEFGX1VOSVggMQojZGVmaW5lIEFGX0xPQ0FMIDEKI2RlZmluZSBBRl9J
TkVUIDIKI2RlZmluZSBBRl9BWDI1IDMKI2RlZmluZSBBRl9JUFggNAojZGVmaW5lIEFGX0FQUExF
VEFMSyA1CiNkZWZpbmUgQUZfTkVUUk9NIDYKI2RlZmluZSBBRl9CUklER0UgNwojZGVmaW5lIEFG
X0FUTVBWQyA4CiNkZWZpbmUgQUZfWDI1IDkKI2RlZmluZSBBRl9JTkVUNiAxMAojZGVmaW5lIEFG
X1JPU0UgMTEKI2RlZmluZSBBRl9ERUNuZXQgMTIKI2RlZmluZSBBRl9ORVRCRVVJIDEzCiNkZWZp
bmUgQUZfU0VDVVJJVFkgMTQKI2RlZmluZSBBRl9LRVkgMTUKI2RlZmluZSBBRl9ORVRMSU5LIDE2
CiNkZWZpbmUgQUZfUk9VVEUgQUZfTkVUTElOSwojZGVmaW5lIEFGX1BBQ0tFVCAxNwojZGVmaW5l
IEFGX0FTSCAxOAojZGVmaW5lIEFGX0VDT05FVCAxOQojZGVmaW5lIEFGX0FUTVNWQyAyMAojZGVm
aW5lIEFGX1NOQSAyMgojZGVmaW5lIEFGX0lSREEgMjMKI2RlZmluZSBBRl9QUFBPWCAyNAojZGVm
aW5lIEFGX1dBTlBJUEUgMjUKI2RlZmluZSBBRl9CTFVFVE9PVEggMzEKI2RlZmluZSBBRl9NQVgg
MzIKCgojZGVmaW5lIFBGX1VOU1BFQyBBRl9VTlNQRUMKI2RlZmluZSBQRl9VTklYIEFGX1VOSVgK
I2RlZmluZSBQRl9MT0NBTCBBRl9MT0NBTAojZGVmaW5lIFBGX0lORVQgQUZfSU5FVAojZGVmaW5l
IFBGX0FYMjUgQUZfQVgyNQojZGVmaW5lIFBGX0lQWCBBRl9JUFgKI2RlZmluZSBQRl9BUFBMRVRB
TEsgQUZfQVBQTEVUQUxLCiNkZWZpbmUgUEZfTkVUUk9NIEFGX05FVFJPTQojZGVmaW5lIFBGX0JS
SURHRSBBRl9CUklER0UKI2RlZmluZSBQRl9BVE1QVkMgQUZfQVRNUFZDCiNkZWZpbmUgUEZfWDI1
IEFGX1gyNQojZGVmaW5lIFBGX0lORVQ2IEFGX0lORVQ2CiNkZWZpbmUgUEZfUk9TRSBBRl9ST1NF
CiNkZWZpbmUgUEZfREVDbmV0IEFGX0RFQ25ldAojZGVmaW5lIFBGX05FVEJFVUkgQUZfTkVUQkVV
SQojZGVmaW5lIFBGX1NFQ1VSSVRZIEFGX1NFQ1VSSVRZCiNkZWZpbmUgUEZfS0VZIEFGX0tFWQoj
ZGVmaW5lIFBGX05FVExJTksgQUZfTkVUTElOSwojZGVmaW5lIFBGX1JPVVRFIEFGX1JPVVRFCiNk
ZWZpbmUgUEZfUEFDS0VUIEFGX1BBQ0tFVAojZGVmaW5lIFBGX0FTSCBBRl9BU0gKI2RlZmluZSBQ
Rl9FQ09ORVQgQUZfRUNPTkVUCiNkZWZpbmUgUEZfQVRNU1ZDIEFGX0FUTVNWQwojZGVmaW5lIFBG
X1NOQSBBRl9TTkEKI2RlZmluZSBQRl9JUkRBIEFGX0lSREEKI2RlZmluZSBQRl9QUFBPWCBBRl9Q
UFBPWAojZGVmaW5lIFBGX1dBTlBJUEUgQUZfV0FOUElQRQojZGVmaW5lIFBGX0JMVUVUT09USCBB
Rl9CTFVFVE9PVEgKI2RlZmluZSBQRl9NQVggQUZfTUFYCgoKI2RlZmluZSBTT01BWENPTk4gMTI4
CgoKCgoKI2RlZmluZSBNU0dfT09CIDEKI2RlZmluZSBNU0dfUEVFSyAyCiNkZWZpbmUgTVNHX0RP
TlRST1VURSA0CiNkZWZpbmUgTVNHX1RSWUhBUkQgNAojZGVmaW5lIE1TR19DVFJVTkMgOAojZGVm
aW5lIE1TR19QUk9CRSAweDEwCiNkZWZpbmUgTVNHX1RSVU5DIDB4MjAKI2RlZmluZSBNU0dfRE9O
VFdBSVQgMHg0MAojZGVmaW5lIE1TR19FT1IgMHg4MAojZGVmaW5lIE1TR19XQUlUQUxMIDB4MTAw
CiNkZWZpbmUgTVNHX0ZJTiAweDIwMAojZGVmaW5lIE1TR19TWU4gMHg0MDAKI2RlZmluZSBNU0df
Q09ORklSTSAweDgwMAojZGVmaW5lIE1TR19SU1QgMHgxMDAwCiNkZWZpbmUgTVNHX0VSUlFVRVVF
IDB4MjAwMAojZGVmaW5lIE1TR19OT1NJR05BTCAweDQwMDAKI2RlZmluZSBNU0dfTU9SRSAweDgw
MDAKCiNkZWZpbmUgTVNHX0VPRiBNU0dfRklOCgoKCiNkZWZpbmUgU09MX0lQIDAKCiNkZWZpbmUg
U09MX1RDUCA2CiNkZWZpbmUgU09MX1VEUCAxNwojZGVmaW5lIFNPTF9JUFY2IDQxCiNkZWZpbmUg
U09MX0lDTVBWNiA1OAojZGVmaW5lIFNPTF9SQVcgMjU1CiNkZWZpbmUgU09MX0lQWCAyNTYKI2Rl
ZmluZSBTT0xfQVgyNSAyNTcKI2RlZmluZSBTT0xfQVRBTEsgMjU4CiNkZWZpbmUgU09MX05FVFJP
TSAyNTkKI2RlZmluZSBTT0xfUk9TRSAyNjAKI2RlZmluZSBTT0xfREVDTkVUIDI2MQojZGVmaW5l
IFNPTF9YMjUgMjYyCiNkZWZpbmUgU09MX1BBQ0tFVCAyNjMKI2RlZmluZSBTT0xfQVRNIDI2NAoj
ZGVmaW5lIFNPTF9BQUwgMjY1CiNkZWZpbmUgU09MX0lSREEgMjY2CgoKI2RlZmluZSBJUFhfVFlQ
RSAxCgoKZXh0ZXJuIGludCBtZW1jcHlfZnJvbWlvdmVjX1JzbXBfMzYxMzlhNTEodW5zaWduZWQg
Y2hhciAqa2RhdGEsIHN0cnVjdCBpb3ZlYyAqaW92LCBpbnQgbGVuKTsKZXh0ZXJuIGludCBtZW1j
cHlfZnJvbWlvdmVjZW5kKHVuc2lnbmVkIGNoYXIgKmtkYXRhLCBzdHJ1Y3QgaW92ZWMgKmlvdiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0LCBpbnQgbGVuKTsKZXh0
ZXJuIGludCBjc3VtX3BhcnRpYWxfY29weV9mcm9taW92ZWNlbmQodW5zaWduZWQgY2hhciAqa2Rh
dGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpb3Zl
YyAqaW92LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2Zm
c2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp
bnQgbGVuLCBpbnQgKmNzdW1wKTsKCmV4dGVybiBpbnQgdmVyaWZ5X2lvdmVjKHN0cnVjdCBtc2do
ZHIgKm0sIHN0cnVjdCBpb3ZlYyAqaW92LCBjaGFyICphZGRyZXNzLCBpbnQgbW9kZSk7CmV4dGVy
biBpbnQgbWVtY3B5X3RvaW92ZWNfUnNtcF8yODc2YTZkMyhzdHJ1Y3QgaW92ZWMgKnYsIHVuc2ln
bmVkIGNoYXIgKmtkYXRhLCBpbnQgbGVuKTsKZXh0ZXJuIHZvaWQgbWVtY3B5X3Rva2VybmVsaW92
ZWNfUnNtcF9lNDI3MWZiMChzdHJ1Y3QgaW92ZWMgKmlvdiwgdW5zaWduZWQgY2hhciAqa2RhdGEs
IGludCBsZW4pOwpleHRlcm4gaW50IG1vdmVfYWRkcl90b191c2VyKHZvaWQgKmthZGRyLCBpbnQg
a2xlbiwgdm9pZCAqdWFkZHIsIGludCAqdWxlbik7CmV4dGVybiBpbnQgbW92ZV9hZGRyX3RvX2tl
cm5lbCh2b2lkICp1YWRkciwgaW50IHVsZW4sIHZvaWQgKmthZGRyKTsKZXh0ZXJuIGludCBwdXRf
Y21zZ19Sc21wXzQzZWM5MTNhKHN0cnVjdCBtc2doZHIqLCBpbnQgbGV2ZWwsIGludCB0eXBlLCBp
bnQgbGVuLCB2b2lkICpkYXRhKTsKIyAyMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9uZXQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvd2Fp
dC5oIiAxCiMgMjQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmV0LmgiIDIK
CnN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdDsKCiNkZWZpbmUgTlBST1RPIDMyCgoKI2RlZmluZSBT
WVNfU09DS0VUIDEKI2RlZmluZSBTWVNfQklORCAyCiNkZWZpbmUgU1lTX0NPTk5FQ1QgMwojZGVm
aW5lIFNZU19MSVNURU4gNAojZGVmaW5lIFNZU19BQ0NFUFQgNQojZGVmaW5lIFNZU19HRVRTT0NL
TkFNRSA2CiNkZWZpbmUgU1lTX0dFVFBFRVJOQU1FIDcKI2RlZmluZSBTWVNfU09DS0VUUEFJUiA4
CiNkZWZpbmUgU1lTX1NFTkQgOQojZGVmaW5lIFNZU19SRUNWIDEwCiNkZWZpbmUgU1lTX1NFTkRU
TyAxMQojZGVmaW5lIFNZU19SRUNWRlJPTSAxMgojZGVmaW5lIFNZU19TSFVURE9XTiAxMwojZGVm
aW5lIFNZU19TRVRTT0NLT1BUIDE0CiNkZWZpbmUgU1lTX0dFVFNPQ0tPUFQgMTUKI2RlZmluZSBT
WVNfU0VORE1TRyAxNgojZGVmaW5lIFNZU19SRUNWTVNHIDE3CgoKdHlwZWRlZiBlbnVtIHsKICBT
U19GUkVFID0gMCwKICBTU19VTkNPTk5FQ1RFRCwKICBTU19DT05ORUNUSU5HLAogIFNTX0NPTk5F
Q1RFRCwKICBTU19ESVNDT05ORUNUSU5HCn0gc29ja2V0X3N0YXRlOwoKI2RlZmluZSBfX1NPX0FD
Q0VQVENPTiAoMTw8MTYpCgoKCiNkZWZpbmUgU09DS19BU1lOQ19OT1NQQUNFIDAKI2RlZmluZSBT
T0NLX0FTWU5DX1dBSVREQVRBIDEKI2RlZmluZSBTT0NLX05PU1BBQ0UgMgoKc3RydWN0IHNvY2tl
dAp7CiAgICAgICAgc29ja2V0X3N0YXRlIHN0YXRlOwoKICAgICAgICB1bnNpZ25lZCBsb25nIGZs
YWdzOwogICAgICAgIHN0cnVjdCBwcm90b19vcHMgKm9wczsKICAgICAgICBzdHJ1Y3QgaW5vZGUg
Kmlub2RlOwogICAgICAgIHN0cnVjdCBmYXN5bmNfc3RydWN0ICpmYXN5bmNfbGlzdDsKICAgICAg
ICBzdHJ1Y3QgZmlsZSAqZmlsZTsKICAgICAgICBzdHJ1Y3Qgc29jayAqc2s7CiAgICAgICAgd2Fp
dF9xdWV1ZV9oZWFkX3Qgd2FpdDsKCiAgICAgICAgc2hvcnQgdHlwZTsKICAgICAgICB1bnNpZ25l
ZCBjaGFyIHBhc3NjcmVkOwp9OwoKI2RlZmluZSBTT0NLX0lOT0RFKFMpICgoUyktPmlub2RlKQoK
c3RydWN0IHNjbV9jb29raWU7CnN0cnVjdCB2bV9hcmVhX3N0cnVjdDsKc3RydWN0IHBhZ2U7Cgpz
dHJ1Y3QgcHJvdG9fb3BzIHsKICBpbnQgZmFtaWx5OwoKICBpbnQgKCpyZWxlYXNlKSAoc3RydWN0
IHNvY2tldCAqc29jayk7CiAgaW50ICgqYmluZCkgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVj
dCBzb2NrYWRkciAqdW15YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb2NrYWRk
cl9sZW4pOwogIGludCAoKmNvbm5lY3QpIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29j
a2FkZHIgKnVzZXJ2YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzb2NrYWRkcl9s
ZW4sIGludCBmbGFncyk7CiAgaW50ICgqc29ja2V0cGFpcikgKHN0cnVjdCBzb2NrZXQgKnNvY2sx
LCBzdHJ1Y3Qgc29ja2V0ICpzb2NrMik7CiAgaW50ICgqYWNjZXB0KSAoc3RydWN0IHNvY2tldCAq
c29jaywgc3RydWN0IHNvY2tldCAqbmV3c29jaywKICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBmbGFncyk7CiAgaW50ICgqZ2V0bmFtZV9Sc21wXzdjNjBkNjZlKSAoc3RydWN0IHNvY2tldCAq
c29jaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCAqdXNvY2thZGRyX2xlbiwgaW50IHBlZXIpOwogIHVuc2lnbmVkIGludCAoKnBvbGwpIChzdHJ1
Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHBvbGxfdGFibGVfc3Ry
dWN0ICp3YWl0KTsKICBpbnQgKCppb2N0bCkgKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHVuc2lnbmVk
IGludCBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGFyZyk7CiAg
aW50ICgqbGlzdGVuKSAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxlbik7CiAgaW50ICgqc2h1
dGRvd24pIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgZmxhZ3MpOwogIGludCAoKnNldHNvY2tv
cHQpIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgICAgY2hhciAqb3B0dmFsLCBpbnQgb3B0bGVuKTsKICBpbnQgKCpnZXRz
b2Nrb3B0KSAoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKm9wdHZhbCwgaW50ICpvcHRsZW4pOwogIGludCAo
KnNlbmRtc2cpIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptLCBpbnQgdG90
YWxfbGVuLCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKTsKICBpbnQgKCpyZWN2bXNnKSAoc3RydWN0
IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbSwgaW50IHRvdGFsX2xlbiwgaW50IGZsYWdz
LCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKTsKICBpbnQgKCptbWFwKSAoc3RydWN0IGZpbGUgKmZp
bGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSk7CiAg
c3NpemVfdCAoKnNlbmRwYWdlKSAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHBhZ2UgKnBh
Z2UsIGludCBvZmZzZXQsIHNpemVfdCBzaXplLCBpbnQgZmxhZ3MpOwp9OwoKc3RydWN0IG5ldF9w
cm90b19mYW1pbHkKewogICAgICAgIGludCBmYW1pbHk7CiAgICAgICAgaW50ICgqY3JlYXRlKShz
dHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgcHJvdG9jb2wpOwoKCiAgICAgICAgc2hvcnQgYXV0aGVu
dGljYXRpb247CiAgICAgICAgc2hvcnQgZW5jcnlwdGlvbjsKICAgICAgICBzaG9ydCBlbmNyeXB0
X25ldDsKfTsKCnN0cnVjdCBuZXRfcHJvdG8KewogICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAg
ICAgICAgdm9pZCAoKmluaXRfZnVuYykoc3RydWN0IG5ldF9wcm90byAqKTsKfTsKCmV4dGVybiBp
bnQgc29ja193YWtlX2FzeW5jX1JzbXBfNGVlYmVhNDEoc3RydWN0IHNvY2tldCAqc2ssIGludCBo
b3csIGludCBiYW5kKTsKZXh0ZXJuIGludCBzb2NrX3JlZ2lzdGVyX1JzbXBfZmJlM2FlYTYoc3Ry
dWN0IG5ldF9wcm90b19mYW1pbHkgKmZhbSk7CmV4dGVybiBpbnQgc29ja191bnJlZ2lzdGVyX1Jz
bXBfMjM5NGEwNjIoaW50IGZhbWlseSk7CmV4dGVybiBzdHJ1Y3Qgc29ja2V0ICpzb2NrX2FsbG9j
X1JzbXBfZWE1ZTQxZmUodm9pZCk7CmV4dGVybiBpbnQgc29ja19jcmVhdGVfUnNtcF8zMDQzZjE5
ZChpbnQgZmFtaWx5LCBpbnQgdHlwZSwgaW50IHByb3RvLCBzdHJ1Y3Qgc29ja2V0ICoqKTsKZXh0
ZXJuIHZvaWQgc29ja19yZWxlYXNlX1JzbXBfNTU0ODQwN2Eoc3RydWN0IHNvY2tldCAqKTsKZXh0
ZXJuIGludCBzb2NrX3NlbmRtc2dfUnNtcF8xNmNjMTMxNChzdHJ1Y3Qgc29ja2V0ICosIHN0cnVj
dCBtc2doZHIgKm0sIGludCBsZW4pOwpleHRlcm4gaW50IHNvY2tfcmVjdm1zZ19Sc21wX2E5NmY4
NzE4KHN0cnVjdCBzb2NrZXQgKiwgc3RydWN0IG1zZ2hkciAqbSwgaW50IGxlbiwgaW50IGZsYWdz
KTsKZXh0ZXJuIGludCBzb2NrX3JlYWR2X3dyaXRldihpbnQgdHlwZSwgc3RydWN0IGlub2RlICog
aW5vZGUsIHN0cnVjdCBmaWxlICogZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0cnVjdCBpb3ZlYyAqIGlvdiwgbG9uZyBjb3VudCwgbG9uZyBzaXplKTsKCmV4
dGVybiBpbnQgbmV0X3JhdGVsaW1pdF9Sc21wX2Y2ZWJjMDNiKHZvaWQpOwpleHRlcm4gdW5zaWdu
ZWQgbG9uZyBuZXRfcmFuZG9tX1JzbXBfMWM2NmY2NGModm9pZCk7CmV4dGVybiB2b2lkIG5ldF9z
cmFuZG9tX1JzbXBfZmY5NjNlZDgodW5zaWduZWQgbG9uZyk7CgoKCgoKCiNkZWZpbmUgU09DS09Q
U19XUkFQUEVEKG5hbWUpIF9fdW5sb2NrZWRfICMjIG5hbWUKCiNkZWZpbmUgU09DS0NBTExfV1JB
UChuYW1lLCBjYWxsLCBwYXJtcywgYXJncykgc3RhdGljIGludCBfX2xvY2tfICMjIG5hbWUgIyMg
XyAjIyBjYWxsIHBhcm1zIHsgaW50IHJldDsgbG9ja19rZXJuZWwoKTsgcmV0ID0gX191bmxvY2tl
ZF8gIyMgbmFtZSAjIyBfb3BzLmNhbGwgYXJncyA7IHVubG9ja19rZXJuZWwoKTsgcmV0dXJuIHJl
dDsgfQojIDE2NCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uZXQuaCIKI2Rl
ZmluZSBTT0NLQ0FMTF9VV1JBUChuYW1lLCBjYWxsLCBwYXJtcywgYXJncykgc3RhdGljIHVuc2ln
bmVkIGludCBfX2xvY2tfICMjIG5hbWUgIyMgXyAjIyBjYWxsIHBhcm1zIHsgaW50IHJldDsgbG9j
a19rZXJuZWwoKTsgcmV0ID0gX191bmxvY2tlZF8gIyMgbmFtZSAjIyBfb3BzLmNhbGwgYXJncyA7
IHVubG9ja19rZXJuZWwoKTsgcmV0dXJuIHJldDsgfQojIDE3NSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9uZXQuaCIKI2RlZmluZSBTT0NLT1BTX1dSQVAobmFtZSwgZmFtKSBT
T0NLQ0FMTF9XUkFQKG5hbWUsIHJlbGVhc2UsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrKSwgKHNvY2sp
KSBTT0NLQ0FMTF9XUkFQKG5hbWUsIGJpbmQsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg
c29ja2FkZHIgKnVhZGRyLCBpbnQgYWRkcl9sZW4pLCAoc29jaywgdWFkZHIsIGFkZHJfbGVuKSkg
U09DS0NBTExfV1JBUChuYW1lLCBjb25uZWN0LCAoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0
IHNvY2thZGRyICogdWFkZHIsIGludCBhZGRyX2xlbiwgaW50IGZsYWdzKSwgKHNvY2ssIHVhZGRy
LCBhZGRyX2xlbiwgZmxhZ3MpKSBTT0NLQ0FMTF9XUkFQKG5hbWUsIHNvY2tldHBhaXIsIChzdHJ1
Y3Qgc29ja2V0ICpzb2NrMSwgc3RydWN0IHNvY2tldCAqc29jazIpLCAoc29jazEsIHNvY2syKSkg
U09DS0NBTExfV1JBUChuYW1lLCBhY2NlcHQsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg
c29ja2V0ICpuZXdzb2NrLCBpbnQgZmxhZ3MpLCAoc29jaywgbmV3c29jaywgZmxhZ3MpKSBTT0NL
Q0FMTF9XUkFQKG5hbWUsIGdldG5hbWUsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29j
a2FkZHIgKnVhZGRyLCBpbnQgKmFkZHJfbGVuLCBpbnQgcGVlciksIChzb2NrLCB1YWRkciwgYWRk
cl9sZW4sIHBlZXIpKSBTT0NLQ0FMTF9VV1JBUChuYW1lLCBwb2xsLCAoc3RydWN0IGZpbGUgKmZp
bGUsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqd2FpdCks
IChmaWxlLCBzb2NrLCB3YWl0KSkgU09DS0NBTExfV1JBUChuYW1lLCBpb2N0bCwgKHN0cnVjdCBz
b2NrZXQgKnNvY2ssIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKSwgKHNvY2ss
IGNtZCwgYXJnKSkgU09DS0NBTExfV1JBUChuYW1lLCBsaXN0ZW4sIChzdHJ1Y3Qgc29ja2V0ICpz
b2NrLCBpbnQgbGVuKSwgKHNvY2ssIGxlbikpIFNPQ0tDQUxMX1dSQVAobmFtZSwgc2h1dGRvd24s
IChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgZmxhZ3MpLCAoc29jaywgZmxhZ3MpKSBTT0NLQ0FM
TF9XUkFQKG5hbWUsIHNldHNvY2tvcHQsIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgbGV2ZWws
IGludCBvcHRuYW1lLCBjaGFyICpvcHR2YWwsIGludCBvcHRsZW4pLCAoc29jaywgbGV2ZWwsIG9w
dG5hbWUsIG9wdHZhbCwgb3B0bGVuKSkgU09DS0NBTExfV1JBUChuYW1lLCBnZXRzb2Nrb3B0LCAo
c3RydWN0IHNvY2tldCAqc29jaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSwgY2hhciAqb3B0dmFs
LCBpbnQgKm9wdGxlbiksIChzb2NrLCBsZXZlbCwgb3B0bmFtZSwgb3B0dmFsLCBvcHRsZW4pKSBT
T0NLQ0FMTF9XUkFQKG5hbWUsIHNlbmRtc2csIChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qg
bXNnaGRyICptLCBpbnQgbGVuLCBzdHJ1Y3Qgc2NtX2Nvb2tpZSAqc2NtKSwgKHNvY2ssIG0sIGxl
biwgc2NtKSkgU09DS0NBTExfV1JBUChuYW1lLCByZWN2bXNnLCAoc3RydWN0IHNvY2tldCAqc29j
aywgc3RydWN0IG1zZ2hkciAqbSwgaW50IGxlbiwgaW50IGZsYWdzLCBzdHJ1Y3Qgc2NtX2Nvb2tp
ZSAqc2NtKSwgKHNvY2ssIG0sIGxlbiwgZmxhZ3MsIHNjbSkpIFNPQ0tDQUxMX1dSQVAobmFtZSwg
bW1hcCwgKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgdm1f
YXJlYV9zdHJ1Y3QgKnZtYSksIChmaWxlLCBzb2NrLCB2bWEpKSBzdGF0aWMgc3RydWN0IHByb3Rv
X29wcyBuYW1lICMjIF9vcHMgPSB7IGZhbWlseTogZmFtLCByZWxlYXNlOiBfX2xvY2tfICMjIG5h
bWUgIyMgX3JlbGVhc2UsIGJpbmQ6IF9fbG9ja18gIyMgbmFtZSAjIyBfYmluZCwgY29ubmVjdDog
X19sb2NrXyAjIyBuYW1lICMjIF9jb25uZWN0LCBzb2NrZXRwYWlyOiBfX2xvY2tfICMjIG5hbWUg
IyMgX3NvY2tldHBhaXIsIGFjY2VwdDogX19sb2NrXyAjIyBuYW1lICMjIF9hY2NlcHQsIGdldG5h
bWU6IF9fbG9ja18gIyMgbmFtZSAjIyBfZ2V0bmFtZSwgcG9sbDogX19sb2NrXyAjIyBuYW1lICMj
IF9wb2xsLCBpb2N0bDogX19sb2NrXyAjIyBuYW1lICMjIF9pb2N0bCwgbGlzdGVuOiBfX2xvY2tf
ICMjIG5hbWUgIyMgX2xpc3Rlbiwgc2h1dGRvd246IF9fbG9ja18gIyMgbmFtZSAjIyBfc2h1dGRv
d24sIHNldHNvY2tvcHQ6IF9fbG9ja18gIyMgbmFtZSAjIyBfc2V0c29ja29wdCwgZ2V0c29ja29w
dDogX19sb2NrXyAjIyBuYW1lICMjIF9nZXRzb2Nrb3B0LCBzZW5kbXNnOiBfX2xvY2tfICMjIG5h
bWUgIyMgX3NlbmRtc2csIHJlY3Ztc2c6IF9fbG9ja18gIyMgbmFtZSAjIyBfcmVjdm1zZywgbW1h
cDogX19sb2NrXyAjIyBuYW1lICMjIF9tbWFwLCB9OwojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L2tkZXZfdC5oIiAxCgojZGVmaW5lIF9MSU5VWF9LREVWX1RfSAojIDY0ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2tkZXZfdC5oIgojZGVmaW5lIE1JTk9SQklUUyA4
CiNkZWZpbmUgTUlOT1JNQVNLICgoMVUgPDwgTUlOT1JCSVRTKSAtIDEpCgp0eXBlZGVmIHVuc2ln
bmVkIHNob3J0IGtkZXZfdDsKCiNkZWZpbmUgTUFKT1IoZGV2KSAoKHVuc2lnbmVkIGludCkgKChk
ZXYpID4+IE1JTk9SQklUUykpCiNkZWZpbmUgTUlOT1IoZGV2KSAoKHVuc2lnbmVkIGludCkgKChk
ZXYpICYgTUlOT1JNQVNLKSkKI2RlZmluZSBIQVNIREVWKGRldikgKCh1bnNpZ25lZCBpbnQpIChk
ZXYpKQojZGVmaW5lIE5PREVWIDAKI2RlZmluZSBNS0RFVihtYSwgbWkpICgoKG1hKSA8PCBNSU5P
UkJJVFMpIHwgKG1pKSkKI2RlZmluZSBCX0ZSRUUgMHhmZmZmCgpleHRlcm4gY29uc3QgY2hhciAq
IGtkZXZuYW1lX1JzbXBfYzI1OGM5MDYoa2Rldl90KTsKCgoKCgoKc3RhdGljIGlubGluZSB1bnNp
Z25lZCBpbnQga2Rldl90X3RvX25yKGtkZXZfdCBkZXYpIHsKICAgICAgICByZXR1cm4gKCgodW5z
aWduZWQgaW50KSAoKGRldikgPj4gOCkpPDw4KSB8ICgodW5zaWduZWQgaW50KSAoKGRldikgJiAo
KDFVIDw8IDgpIC0gMSkpKTsKfQoKc3RhdGljIGlubGluZSBrZGV2X3QgdG9fa2Rldl90KGludCBk
ZXYpCnsKICAgICAgICBpbnQgbWFqb3IsIG1pbm9yOwojIDk4ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2tkZXZfdC5oIgogICAgICAgIG1ham9yID0gKGRldiA+PiA4KTsKICAg
ICAgICBtaW5vciA9IChkZXYgJiAweGZmKTsKCiAgICAgICAgcmV0dXJuICgoKG1ham9yKSA8PCA4
KSB8IChtaW5vcikpOwp9CiMgMTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
ZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaW9jdGwuaCIg
MQoKI2RlZmluZSBfTElOVVhfSU9DVExfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9pb2N0bC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9JT0NUTF9ICiMgMjkgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvY3RsLmgiCiNkZWZpbmUgX0lPQ19OUkJJVFMg
OAojZGVmaW5lIF9JT0NfVFlQRUJJVFMgOAojZGVmaW5lIF9JT0NfU0laRUJJVFMgMTQKI2RlZmlu
ZSBfSU9DX0RJUkJJVFMgMgoKI2RlZmluZSBfSU9DX05STUFTSyAoKDEgPDwgX0lPQ19OUkJJVFMp
LTEpCiNkZWZpbmUgX0lPQ19UWVBFTUFTSyAoKDEgPDwgX0lPQ19UWVBFQklUUyktMSkKI2RlZmlu
ZSBfSU9DX1NJWkVNQVNLICgoMSA8PCBfSU9DX1NJWkVCSVRTKS0xKQojZGVmaW5lIF9JT0NfRElS
TUFTSyAoKDEgPDwgX0lPQ19ESVJCSVRTKS0xKQoKI2RlZmluZSBfSU9DX05SU0hJRlQgMAojZGVm
aW5lIF9JT0NfVFlQRVNISUZUIChfSU9DX05SU0hJRlQrX0lPQ19OUkJJVFMpCiNkZWZpbmUgX0lP
Q19TSVpFU0hJRlQgKF9JT0NfVFlQRVNISUZUK19JT0NfVFlQRUJJVFMpCiNkZWZpbmUgX0lPQ19E
SVJTSElGVCAoX0lPQ19TSVpFU0hJRlQrX0lPQ19TSVpFQklUUykKCgoKCiNkZWZpbmUgX0lPQ19O
T05FIDBVCiNkZWZpbmUgX0lPQ19XUklURSAxVQojZGVmaW5lIF9JT0NfUkVBRCAyVQoKI2RlZmlu
ZSBfSU9DKGRpciwgdHlwZSwgbnIsIHNpemUpICgoKGRpcikgPDwgX0lPQ19ESVJTSElGVCkgfCAo
KHR5cGUpIDw8IF9JT0NfVFlQRVNISUZUKSB8ICgobnIpIDw8IF9JT0NfTlJTSElGVCkgfCAoKHNp
emUpIDw8IF9JT0NfU0laRVNISUZUKSkKCgoKCgoKI2RlZmluZSBfSU8odHlwZSwgbnIpIF9JT0Mo
X0lPQ19OT05FLCh0eXBlKSwobnIpLDApCiNkZWZpbmUgX0lPUih0eXBlLCBuciwgc2l6ZSkgX0lP
QyhfSU9DX1JFQUQsKHR5cGUpLChuciksc2l6ZW9mKHNpemUpKQojZGVmaW5lIF9JT1codHlwZSwg
bnIsIHNpemUpIF9JT0MoX0lPQ19XUklURSwodHlwZSksKG5yKSxzaXplb2Yoc2l6ZSkpCiNkZWZp
bmUgX0lPV1IodHlwZSwgbnIsIHNpemUpIF9JT0MoX0lPQ19SRUFEfF9JT0NfV1JJVEUsKHR5cGUp
LChuciksc2l6ZW9mKHNpemUpKQoKCiNkZWZpbmUgX0lPQ19ESVIobnIpICgoKG5yKSA+PiBfSU9D
X0RJUlNISUZUKSAmIF9JT0NfRElSTUFTSykKI2RlZmluZSBfSU9DX1RZUEUobnIpICgoKG5yKSA+
PiBfSU9DX1RZUEVTSElGVCkgJiBfSU9DX1RZUEVNQVNLKQojZGVmaW5lIF9JT0NfTlIobnIpICgo
KG5yKSA+PiBfSU9DX05SU0hJRlQpICYgX0lPQ19OUk1BU0spCiNkZWZpbmUgX0lPQ19TSVpFKG5y
KSAoKChucikgPj4gX0lPQ19TSVpFU0hJRlQpICYgX0lPQ19TSVpFTUFTSykKCgoKI2RlZmluZSBJ
T0NfSU4gKF9JT0NfV1JJVEUgPDwgX0lPQ19ESVJTSElGVCkKI2RlZmluZSBJT0NfT1VUIChfSU9D
X1JFQUQgPDwgX0lPQ19ESVJTSElGVCkKI2RlZmluZSBJT0NfSU5PVVQgKChfSU9DX1dSSVRFfF9J
T0NfUkVBRCkgPDwgX0lPQ19ESVJTSElGVCkKI2RlZmluZSBJT0NTSVpFX01BU0sgKF9JT0NfU0la
RU1BU0sgPDwgX0lPQ19TSVpFU0hJRlQpCiNkZWZpbmUgSU9DU0laRV9TSElGVCAoX0lPQ19TSVpF
U0hJRlQpCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9pb2N0bC5oIiAy
CiMgMTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTkgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiIDEKCiNkZWZpbmUgX19MSU5VWF9EQ0FDSEVfSAoK
CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2F0b21pYy5oIiAxCiMgNyAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9kY2FjaGUuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW91bnQuaCIgMQojIDEyICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vdW50LmgiCiNkZWZpbmUgX0xJTlVYX01PVU5UX0gK
CgpzdHJ1Y3QgdmZzbW91bnQKewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbW50X2hhc2g7CiAg
ICAgICAgc3RydWN0IHZmc21vdW50ICptbnRfcGFyZW50OwogICAgICAgIHN0cnVjdCBkZW50cnkg
Km1udF9tb3VudHBvaW50OwogICAgICAgIHN0cnVjdCBkZW50cnkgKm1udF9yb290OwogICAgICAg
IHN0cnVjdCBsaXN0X2hlYWQgbW50X2luc3RhbmNlczsKICAgICAgICBzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKm1udF9zYjsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIG1udF9tb3VudHM7CiAgICAgICAg
c3RydWN0IGxpc3RfaGVhZCBtbnRfY2hpbGQ7CiAgICAgICAgYXRvbWljX3QgbW50X2NvdW50Owog
ICAgICAgIGludCBtbnRfZmxhZ3M7CiAgICAgICAgY2hhciAqbW50X2Rldm5hbWU7CiAgICAgICAg
c3RydWN0IGxpc3RfaGVhZCBtbnRfbGlzdDsKICAgICAgICB1aWRfdCBtbnRfb3duZXI7Cn07Cgpz
dGF0aWMgaW5saW5lIHN0cnVjdCB2ZnNtb3VudCAqbW50Z2V0KHN0cnVjdCB2ZnNtb3VudCAqbW50
KQp7CiAgICAgICAgaWYgKG1udCkKICAgICAgICAgICAgICAgICgoX19idWlsdGluX2NvbnN0YW50
X3AoKDEpKSAmJiAoICgoMSkgPT0gMSkgfHwgKCgxKSA9PSA0KSB8fCAoKDEpID09IDgpIHx8ICgo
MSkgPT0gMTYpIHx8ICgoMSkgPT0gLTEpIHx8ICgoMSkgPT0gLTQpIHx8ICgoMSkgPT0gLTgpIHx8
ICgoMSkgPT0gLTE2KSkpID8gKHsgX191NjQgX3RtcDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYo
KCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCZtbnQtPm1udF9jb3Vu
dCkpKS0+Y291bnRlcik7IHN3aXRjaCAoKDEpKSB7IGNhc2UgLTE2OiAoeyBzd2l0Y2ggKHNpemVv
ZigqKCYoKCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi
ciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf
Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgoJm1udC0+bW50X2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo
X3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf
c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC00OiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNl
IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1y
IihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBf
X2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTE6
ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZtbnQtPm1udF9jb3VudCkpKS0+Y291bnRlcikpKSB7
IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwl
MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNh
c2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIg
OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2Fz
ZSAxOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmbW50LT5tbnRfY291bnQpKSktPmNvdW50ZXIp
KSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVsl
MV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7
IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwl
MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVm
YXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBj
YXNlIDQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZtbnQtPm1udF9jb3VudCkpKS0+Y291bnRl
cikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9
WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVh
azsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFd
LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBk
ZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7
IGNhc2UgODogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJm1udC0+bW50X2NvdW50KSkpLT5jb3Vu
dGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJy
ZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVsl
MV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7
IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVh
azsgY2FzZSAxNjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJm1udC0+bW50X2NvdW50KSkpLT5j
b3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJl
bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIp
OyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBi
cmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7
IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2Fu
ZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9mX18oKiYoKCgmbW50LT5tbnRfY291bnQpKSktPmNv
dW50ZXIpKSAoX3RtcCArICgoMSkpKTsgfSkgOiBpYTY0X2F0b21pY19hZGQoKDEpLCAoKCZtbnQt
Pm1udF9jb3VudCkpKSk7CiAgICAgICAgcmV0dXJuIG1udDsKfQoKZXh0ZXJuIHZvaWQgX19tbnRw
dXRfUnNtcF9jZDgxODkwMihzdHJ1Y3QgdmZzbW91bnQgKm1udCk7CgpzdGF0aWMgaW5saW5lIHZv
aWQgbW50cHV0KHN0cnVjdCB2ZnNtb3VudCAqbW50KQp7CiAgICAgICAgaWYgKG1udCkgewogICAg
ICAgICAgICAgICAgaWYgKCgoKF9fYnVpbHRpbl9jb25zdGFudF9wKDEpICYmICggKDEgPT0gMSkg
fHwgKDEgPT0gNCkgfHwgKDEgPT0gOCkgfHwgKDEgPT0gMTYpIHx8ICgxID09IC0xKSB8fCAoMSA9
PSAtNCkgfHwgKDEgPT0gLTgpIHx8ICgxID09IC0xNikpKSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0
aWxlIF9fdHlwZW9mX18oKigmKCgmbW50LT5tbnRfY291bnQpKS0+Y291bnRlcikpICpfdiA9ICgm
KCgmbW50LT5tbnRfY291bnQpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0xNjog
KHsgc3dpdGNoIChzaXplb2YoKigmKCgmbW50LT5tbnRfY291bnQpKS0+Y291bnRlcikpKSB7IGNh
c2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIg
OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNl
IDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVs
dDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNl
IC04OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3VudGVyKSkp
IHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFd
LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsg
Y2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUy
IiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVm
YXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBj
YXNlIC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3VudGVy
KSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1b
JTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVh
azsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFd
LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFr
OyBjYXNlIC0xOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3Vu
dGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1lbW9yeSIpOyBi
cmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1b
JTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1lbW9yeSIpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy
ZWFrOyBjYXNlIDE6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJm1udC0+bW50X2NvdW50KSktPmNv
dW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs
ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsg
YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9
WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy
ZWFrOyBjYXNlIDQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJm1udC0+bW50X2NvdW50KSktPmNv
dW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs
ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsg
YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9
WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy
ZWFrOyBjYXNlIDg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJm1udC0+bW50X2NvdW50KSktPmNv
dW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs
ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsg
YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9
WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy
ZWFrOyBjYXNlIDE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZtbnQtPm1udF9jb3VudCkpLT5j
b3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJl
bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIp
OyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBi
cmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7
IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2Fu
ZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9mX18oKiYoKCZtbnQtPm1udF9jb3VudCkpLT5jb3Vu
dGVyKSkgKF90bXAgKyAoLSgxKSkpOyB9KSA6IGlhNjRfYXRvbWljX3N1YigxLCAoJm1udC0+bW50
X2NvdW50KSkpID09IDApKQogICAgICAgICAgICAgICAgICAgICAgICBfX21udHB1dF9Sc21wX2Nk
ODE4OTAyKG1udCk7CiAgICAgICAgfQp9CiMgOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9kY2FjaGUuaCIgMgojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2RjYWNoZS5oIgojZGVmaW5lIElTX1JPT1QoeCkgKCh4KSA9PSAoeCktPmRfcGFyZW50KQoK
CgoKCnN0cnVjdCBxc3RyIHsKICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICogbmFtZTsKICAg
ICAgICB1bnNpZ25lZCBpbnQgbGVuOwogICAgICAgIHVuc2lnbmVkIGludCBoYXNoOwp9OwoKc3Ry
dWN0IGRlbnRyeV9zdGF0X3QgewogICAgICAgIGludCBucl9kZW50cnk7CiAgICAgICAgaW50IG5y
X3VudXNlZDsKICAgICAgICBpbnQgYWdlX2xpbWl0OwogICAgICAgIGludCB3YW50X3BhZ2VzOwog
ICAgICAgIGludCBkdW1teVsyXTsKfTsKZXh0ZXJuIHN0cnVjdCBkZW50cnlfc3RhdF90IGRlbnRy
eV9zdGF0OwoKCgojZGVmaW5lIGluaXRfbmFtZV9oYXNoKCkgMAoKCnN0YXRpYyBfX2lubGluZV9f
IHVuc2lnbmVkIGxvbmcgcGFydGlhbF9uYW1lX2hhc2godW5zaWduZWQgbG9uZyBjLCB1bnNpZ25l
ZCBsb25nIHByZXZoYXNoKQp7CiAgICAgICAgcmV0dXJuIChwcmV2aGFzaCArIChjIDw8IDQpICsg
KGMgPj4gNCkpICogMTE7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGVuZF9u
YW1lX2hhc2godW5zaWduZWQgbG9uZyBoYXNoKQp7CiAgICAgICAgcmV0dXJuICh1bnNpZ25lZCBp
bnQpIGhhc2g7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgZnVsbF9uYW1lX2hh
c2goY29uc3QgdW5zaWduZWQgY2hhciAqIG5hbWUsIHVuc2lnbmVkIGludCBsZW4pCnsKICAgICAg
ICB1bnNpZ25lZCBsb25nIGhhc2ggPSAwOwogICAgICAgIHdoaWxlIChsZW4tLSkKICAgICAgICAg
ICAgICAgIGhhc2ggPSBwYXJ0aWFsX25hbWVfaGFzaCgqbmFtZSsrLCBoYXNoKTsKICAgICAgICBy
ZXR1cm4gZW5kX25hbWVfaGFzaChoYXNoKTsKfQoKI2RlZmluZSBETkFNRV9JTkxJTkVfTEVOIDE2
CgpzdHJ1Y3QgZGVudHJ5IHsKICAgICAgICBhdG9taWNfdCBkX2NvdW50OwogICAgICAgIHVuc2ln
bmVkIGludCBkX2ZsYWdzOwogICAgICAgIHN0cnVjdCBpbm9kZSAqIGRfaW5vZGU7CiAgICAgICAg
c3RydWN0IGRlbnRyeSAqIGRfcGFyZW50OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZF9oYXNo
OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZF9scnU7CiAgICAgICAgc3RydWN0IGxpc3RfaGVh
ZCBkX2NoaWxkOwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZF9zdWJkaXJzOwogICAgICAgIHN0
cnVjdCBsaXN0X2hlYWQgZF9hbGlhczsKICAgICAgICBpbnQgZF9tb3VudGVkOwogICAgICAgIHN0
cnVjdCBxc3RyIGRfbmFtZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGRfdGltZTsKICAgICAgICBz
dHJ1Y3QgZGVudHJ5X29wZXJhdGlvbnMgKmRfb3A7CiAgICAgICAgc3RydWN0IHN1cGVyX2Jsb2Nr
ICogZF9zYjsKICAgICAgICB1bnNpZ25lZCBsb25nIGRfdmZzX2ZsYWdzOwogICAgICAgIHZvaWQg
KiBkX2ZzZGF0YTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGRfaW5hbWVbMTZdOwp9OwoKc3RydWN0
IGRlbnRyeV9vcGVyYXRpb25zIHsKICAgICAgICBpbnQgKCpkX3JldmFsaWRhdGUpKHN0cnVjdCBk
ZW50cnkgKiwgaW50KTsKICAgICAgICBpbnQgKCpkX2hhc2gpIChzdHJ1Y3QgZGVudHJ5ICosIHN0
cnVjdCBxc3RyICopOwogICAgICAgIGludCAoKmRfY29tcGFyZSkgKHN0cnVjdCBkZW50cnkgKiwg
c3RydWN0IHFzdHIgKiwgc3RydWN0IHFzdHIgKik7CiAgICAgICAgaW50ICgqZF9kZWxldGVfUnNt
cF9jNzE4YjU1Nykoc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICB2b2lkICgqZF9yZWxlYXNlKShz
dHJ1Y3QgZGVudHJ5ICopOwogICAgICAgIHZvaWQgKCpkX2lwdXQpKHN0cnVjdCBkZW50cnkgKiwg
c3RydWN0IGlub2RlICopOwp9OwojIDExNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9kY2FjaGUuaCIKI2RlZmluZSBEQ0FDSEVfQVVUT0ZTX1BFTkRJTkcgMHgwMDAxCiNkZWZp
bmUgRENBQ0hFX05GU0ZTX1JFTkFNRUQgMHgwMDAyCgoKCiNkZWZpbmUgRENBQ0hFX05GU0RfRElT
Q09OTkVDVEVEIDB4MDAwNAoKCgoKCiNkZWZpbmUgRENBQ0hFX1JFRkVSRU5DRUQgMHgwMDA4Cgpl
eHRlcm4gc3BpbmxvY2tfdCBkY2FjaGVfbG9ja19Sc21wX2Y3YzMyY2ExOwojIDE0NiAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9kY2FjaGUuaCIKc3RhdGljIF9faW5saW5lX18g
dm9pZCBkX2Ryb3Aoc3RydWN0IGRlbnRyeSAqIGRlbnRyeSkKewogICAgICAgIF9fYXNtX18gX192
b2xhdGlsZV9fICggIm1vdiBhci5jY3YgPSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIx
OlxuIiAibGQ0IHIyID0gWyUwXVxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAi
KHA3KSBici5jb25kLnNwbnQuZmV3IDFiIFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCBy
MjksIGFyLmNjdlxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIu
Y29uZC5zcG50LmZldyAxYlxuIiAiOztcbiIgOjogInIiKCYoJmRjYWNoZV9sb2NrX1JzbXBfZjdj
MzJjYTEpLT5sb2NrKSA6ICJyMiIsICJyMjkiLCAibWVtb3J5Iik7CiAgICAgICAgbGlzdF9kZWwo
JmRlbnRyeS0+ZF9oYXNoKTsKICAgICAgICBkbyB7ICgmZGVudHJ5LT5kX2hhc2gpLT5uZXh0ID0g
KCZkZW50cnktPmRfaGFzaCk7ICgmZGVudHJ5LT5kX2hhc2gpLT5wcmV2ID0gKCZkZW50cnktPmRf
aGFzaCk7IH0gd2hpbGUgKDApOwogICAgICAgIGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6
IDogOiJtZW1vcnkiKTsgKChzcGlubG9ja190ICopICZkY2FjaGVfbG9ja19Sc21wX2Y3YzMyY2Ex
KS0+bG9jayA9IDA7IH0gd2hpbGUgKDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgZG5hbWVf
ZXh0ZXJuYWwoc3RydWN0IGRlbnRyeSAqZCkKewogICAgICAgIHJldHVybiBkLT5kX25hbWUubmFt
ZSAhPSBkLT5kX2luYW1lOwp9CgoKCgpleHRlcm4gdm9pZCBkX2luc3RhbnRpYXRlX1JzbXBfMDIx
ZTI1OTIoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIGRfZGVs
ZXRlX1JzbXBfYzcxOGI1NTcoc3RydWN0IGRlbnRyeSAqKTsKCgpleHRlcm4gc3RydWN0IGRlbnRy
eSAqIGRfYWxsb2NfUnNtcF8yMDRlY2Q2MihzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IHN0cnVjdCBx
c3RyICopOwpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX3NiX1JzbXBfNjg1OGYzZGUoc3RydWN0
IHN1cGVyX2Jsb2NrICopOwpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX3BhcmVudF9Sc21wXzE0
M2MyYmI4KHN0cnVjdCBkZW50cnkgKik7CmV4dGVybiBpbnQgZF9pbnZhbGlkYXRlX1JzbXBfNWEw
NGQ4ZWQoc3RydWN0IGRlbnRyeSAqKTsKCiNkZWZpbmUgc2hyaW5rX2RjYWNoZSgpIHBydW5lX2Rj
YWNoZSgwKQpzdHJ1Y3Qgem9uZV9zdHJ1Y3Q7CgpleHRlcm4gdm9pZCBzaHJpbmtfZGNhY2hlX21l
bW9yeShpbnQsIHVuc2lnbmVkIGludCk7CmV4dGVybiB2b2lkIHBydW5lX2RjYWNoZV9Sc21wXzZj
ZjI4Zjc3KGludCk7CgoKZXh0ZXJuIHZvaWQgc2hyaW5rX2ljYWNoZV9tZW1vcnkoaW50LCBpbnQp
OwpleHRlcm4gdm9pZCBwcnVuZV9pY2FjaGUoaW50KTsKCgpleHRlcm4gc3RydWN0IGRlbnRyeSAq
IGRfYWxsb2Nfcm9vdF9Sc21wX2UyMjRjNGM1KHN0cnVjdCBpbm9kZSAqKTsKCgpleHRlcm4gdm9p
ZCBkX2dlbm9jaWRlKHN0cnVjdCBkZW50cnkgKik7CgpleHRlcm4gc3RydWN0IGRlbnRyeSAqZF9m
aW5kX2FsaWFzX1JzbXBfYjYwNTg4MDIoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBkX3By
dW5lX2FsaWFzZXNfUnNtcF9jOWJhZDQ3YihzdHJ1Y3QgaW5vZGUgKik7CgoKZXh0ZXJuIGludCBo
YXZlX3N1Ym1vdW50c19Sc21wX2IzYjI5YzBlKHN0cnVjdCBkZW50cnkgKik7CgoKCgpleHRlcm4g
dm9pZCBkX3JlaGFzaF9Sc21wX2Q5MDFjMTRiKHN0cnVjdCBkZW50cnkgKik7CiMgMjA3ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgX19pbmxpbmVf
XyB2b2lkIGRfYWRkKHN0cnVjdCBkZW50cnkgKiBlbnRyeSwgc3RydWN0IGlub2RlICogaW5vZGUp
CnsKICAgICAgICBkX2luc3RhbnRpYXRlX1JzbXBfMDIxZTI1OTIoZW50cnksIGlub2RlKTsKICAg
ICAgICBkX3JlaGFzaF9Sc21wX2Q5MDFjMTRiKGVudHJ5KTsKfQoKCmV4dGVybiB2b2lkIGRfbW92
ZV9Sc21wXzZhNmNjNjdjKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGRlbnRyeSAqKTsKCgpleHRl
cm4gc3RydWN0IGRlbnRyeSAqIGRfbG9va3VwX1JzbXBfZTljNTYzZTEoc3RydWN0IGRlbnRyeSAq
LCBzdHJ1Y3QgcXN0ciAqKTsKCgpleHRlcm4gaW50IGRfdmFsaWRhdGVfUnNtcF9jNDcxM2QxOShz
dHJ1Y3QgZGVudHJ5ICosIHN0cnVjdCBkZW50cnkgKik7CgpleHRlcm4gY2hhciAqIF9fZF9wYXRo
X1JzbXBfYWYxZDdiZmYoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgdmZzbW91bnQgKiwgc3RydWN0
IGRlbnRyeSAqLAogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqLCBjaGFyICosIGludCk7CiMgMjQw
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2RjYWNoZS5oIgpzdGF0aWMgX19p
bmxpbmVfXyBzdHJ1Y3QgZGVudHJ5ICogZGdldChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKICAg
ICAgICBpZiAoZGVudHJ5KSB7CiAgICAgICAgICAgICAgICBpZiAoISgoJmRlbnRyeS0+ZF9jb3Vu
dCktPmNvdW50ZXIpKQogICAgICAgICAgICAgICAgICAgICAgICBkbyB7IHByaW50a19Sc21wXzgy
N2Q1ODA3KCJrZXJuZWwgQlVHIGF0ICVzOiVkIVxuIiwgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvZGNhY2hlLmgiLCAyNDQpOyAqKGludCAqKTA9MDsgfSB3aGlsZSAoMCk7CiAg
ICAgICAgICAgICAgICAoKF9fYnVpbHRpbl9jb25zdGFudF9wKCgxKSkgJiYgKCAoKDEpID09IDEp
IHx8ICgoMSkgPT0gNCkgfHwgKCgxKSA9PSA4KSB8fCAoKDEpID09IDE2KSB8fCAoKDEpID09IC0x
KSB8fCAoKDEpID09IC00KSB8fCAoKDEpID09IC04KSB8fCAoKDEpID09IC0xNikpKSA/ICh7IF9f
dTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+
Y291bnRlcikpICpfdiA9ICgmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcik7IHN3aXRj
aCAoKDEpKSB7IGNhc2UgLTE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmZGVudHJ5LT5kX2Nv
dW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0
Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNo
YWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAi
bWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9h
ZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZkZW50
cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9f
ICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJp
IigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgi
IiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigt
OCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNo
X2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigo
KCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xh
dGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihf
diksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGls
ZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiks
ICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0
X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTE6ICh7IHN3aXRjaCAoc2l6ZW9m
KCooJigoKCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192
b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy
IihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv
cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChz
aXplb2YoKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90
bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXpl
X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgODogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgoJmRlbnRyeS0+ZF9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2Ug
NDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAi
PXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo
X3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2Jh
ZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTY6ICh7
IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSkgeyBj
YXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIi
IDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNl
IDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGRlZmF1
bHQ6IF90bXAgPSBfX2JhZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVh
azsgfSAoX190eXBlb2ZfXygqJigoKCZkZW50cnktPmRfY291bnQpKSktPmNvdW50ZXIpKSAoX3Rt
cCArICgoMSkpKTsgfSkgOiBpYTY0X2F0b21pY19hZGQoKDEpLCAoKCZkZW50cnktPmRfY291bnQp
KSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZGVudHJ5Owp9CgpleHRlcm4gc3RydWN0IGRl
bnRyeSAqIGRnZXRfbG9ja2VkX1JzbXBfZDI4MmI4MDcoc3RydWN0IGRlbnRyeSAqKTsKIyAyNTkg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZGNhY2hlLmgiCnN0YXRpYyBfX2lu
bGluZV9fIGludCBkX3VuaGFzaGVkKHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogICAgICAgIHJl
dHVybiBsaXN0X2VtcHR5KCZkZW50cnktPmRfaGFzaCk7Cn0KCmV4dGVybiB2b2lkIGRwdXRfUnNt
cF81NzRlNmJhMyhzdHJ1Y3QgZGVudHJ5ICopOwoKc3RhdGljIF9faW5saW5lX18gaW50IGRfbW91
bnRwb2ludChzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKICAgICAgICByZXR1cm4gZGVudHJ5LT5k
X21vdW50ZWQ7Cn0KCmV4dGVybiBzdHJ1Y3QgdmZzbW91bnQgKmxvb2t1cF9tbnRfUnNtcF9lZmU3
MTUzZChzdHJ1Y3QgdmZzbW91bnQgKiwgc3RydWN0IGRlbnRyeSAqKTsKIyAyMCAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zdGF0LmgiIDEKCiNkZWZpbmUgX0xJTlVYX1NUQVRfSAoKCgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N0YXQuaCIgMQoKI2RlZmluZSBfQVNN
X0lBNjRfU1RBVF9ICgoKCgoKCnN0cnVjdCBzdGF0IHsKICAgICAgICB1bnNpZ25lZCBsb25nIHN0
X2RldjsKICAgICAgICB1bnNpZ25lZCBsb25nIHN0X2lubzsKICAgICAgICB1bnNpZ25lZCBsb25n
IHN0X25saW5rOwogICAgICAgIHVuc2lnbmVkIGludCBzdF9tb2RlOwogICAgICAgIHVuc2lnbmVk
IGludCBzdF91aWQ7CiAgICAgICAgdW5zaWduZWQgaW50IHN0X2dpZDsKICAgICAgICB1bnNpZ25l
ZCBpbnQgX19wYWQwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3RfcmRldjsKICAgICAgICB1bnNp
Z25lZCBsb25nIHN0X3NpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzdF9hdGltZTsKICAgICAg
ICB1bnNpZ25lZCBsb25nIF9fcmVzZXJ2ZWQwOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3RfbXRp
bWU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfX3Jlc2VydmVkMTsKICAgICAgICB1bnNpZ25lZCBs
b25nIHN0X2N0aW1lOwogICAgICAgIHVuc2lnbmVkIGxvbmcgX19yZXNlcnZlZDI7CiAgICAgICAg
dW5zaWduZWQgbG9uZyBzdF9ibGtzaXplOwogICAgICAgIGxvbmcgc3RfYmxvY2tzOwogICAgICAg
IHVuc2lnbmVkIGxvbmcgX191bnVzZWRbM107Cn07CgpzdHJ1Y3QgaWE2NF9vbGRzdGF0IHsKICAg
ICAgICB1bnNpZ25lZCBpbnQgc3RfZGV2OwogICAgICAgIHVuc2lnbmVkIGludCBzdF9pbm87CiAg
ICAgICAgdW5zaWduZWQgaW50IHN0X21vZGU7CiAgICAgICAgdW5zaWduZWQgaW50IHN0X25saW5r
OwogICAgICAgIHVuc2lnbmVkIGludCBzdF91aWQ7CiAgICAgICAgdW5zaWduZWQgaW50IHN0X2dp
ZDsKICAgICAgICB1bnNpZ25lZCBpbnQgc3RfcmRldjsKICAgICAgICB1bnNpZ25lZCBpbnQgX19w
YWQxOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3Rfc2l6ZTsKICAgICAgICB1bnNpZ25lZCBsb25n
IHN0X2F0aW1lOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc3RfbXRpbWU7CiAgICAgICAgdW5zaWdu
ZWQgbG9uZyBzdF9jdGltZTsKICAgICAgICB1bnNpZ25lZCBpbnQgc3RfYmxrc2l6ZTsKICAgICAg
ICBpbnQgc3RfYmxvY2tzOwogICAgICAgIHVuc2lnbmVkIGludCBfX3VudXNlZDE7CiAgICAgICAg
dW5zaWduZWQgaW50IF9fdW51c2VkMjsKfTsKIyA3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3N0YXQuaCIgMgoKCgoKCiNkZWZpbmUgU19JRk1UIDAwMTcwMDAwCiNkZWZpbmUg
U19JRlNPQ0sgMDE0MDAwMAojZGVmaW5lIFNfSUZMTksgMDEyMDAwMAojZGVmaW5lIFNfSUZSRUcg
MDEwMDAwMAojZGVmaW5lIFNfSUZCTEsgMDA2MDAwMAojZGVmaW5lIFNfSUZESVIgMDA0MDAwMAoj
ZGVmaW5lIFNfSUZDSFIgMDAyMDAwMAojZGVmaW5lIFNfSUZJRk8gMDAxMDAwMAojZGVmaW5lIFNf
SVNVSUQgMDAwNDAwMAojZGVmaW5lIFNfSVNHSUQgMDAwMjAwMAojZGVmaW5lIFNfSVNWVFggMDAw
MTAwMAoKI2RlZmluZSBTX0lTTE5LKG0pICgoKG0pICYgU19JRk1UKSA9PSBTX0lGTE5LKQojZGVm
aW5lIFNfSVNSRUcobSkgKCgobSkgJiBTX0lGTVQpID09IFNfSUZSRUcpCiNkZWZpbmUgU19JU0RJ
UihtKSAoKChtKSAmIFNfSUZNVCkgPT0gU19JRkRJUikKI2RlZmluZSBTX0lTQ0hSKG0pICgoKG0p
ICYgU19JRk1UKSA9PSBTX0lGQ0hSKQojZGVmaW5lIFNfSVNCTEsobSkgKCgobSkgJiBTX0lGTVQp
ID09IFNfSUZCTEspCiNkZWZpbmUgU19JU0ZJRk8obSkgKCgobSkgJiBTX0lGTVQpID09IFNfSUZJ
Rk8pCiNkZWZpbmUgU19JU1NPQ0sobSkgKCgobSkgJiBTX0lGTVQpID09IFNfSUZTT0NLKQoKI2Rl
ZmluZSBTX0lSV1hVIDAwNzAwCiNkZWZpbmUgU19JUlVTUiAwMDQwMAojZGVmaW5lIFNfSVdVU1Ig
MDAyMDAKI2RlZmluZSBTX0lYVVNSIDAwMTAwCgojZGVmaW5lIFNfSVJXWEcgMDAwNzAKI2RlZmlu
ZSBTX0lSR1JQIDAwMDQwCiNkZWZpbmUgU19JV0dSUCAwMDAyMAojZGVmaW5lIFNfSVhHUlAgMDAw
MTAKCiNkZWZpbmUgU19JUldYTyAwMDAwNwojZGVmaW5lIFNfSVJPVEggMDAwMDQKI2RlZmluZSBT
X0lXT1RIIDAwMDAyCiNkZWZpbmUgU19JWE9USCAwMDAwMQoKCgoKI2RlZmluZSBTX0lSV1hVR08g
KFNfSVJXWFV8U19JUldYR3xTX0lSV1hPKQojZGVmaW5lIFNfSUFMTFVHTyAoU19JU1VJRHxTX0lT
R0lEfFNfSVNWVFh8U19JUldYVUdPKQojZGVmaW5lIFNfSVJVR08gKFNfSVJVU1J8U19JUkdSUHxT
X0lST1RIKQojZGVmaW5lIFNfSVdVR08gKFNfSVdVU1J8U19JV0dSUHxTX0lXT1RIKQojZGVmaW5l
IFNfSVhVR08gKFNfSVhVU1J8U19JWEdSUHxTX0lYT1RIKQojIDIxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2NhY2hlLmgiIDEKCiNkZWZpbmUgX19MSU5VWF9DQUNIRV9ICgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2NhY2hlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0
X0NBQ0hFX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcu
aCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2NhY2hlLmgiIDIKCgoK
CgoKCiNkZWZpbmUgTDFfQ0FDSEVfU0hJRlQgQ09ORklHX0lBNjRfTDFfQ0FDSEVfU0hJRlQKI2Rl
ZmluZSBMMV9DQUNIRV9CWVRFUyAoMSA8PCBMMV9DQUNIRV9TSElGVCkKCgojZGVmaW5lIFNNUF9D
QUNIRV9TSElGVCBMMV9DQUNIRV9TSElGVAojZGVmaW5lIFNNUF9DQUNIRV9CWVRFUyBMMV9DQUNI
RV9CWVRFUwojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY2FjaGUuaCIg
MgoKCiNkZWZpbmUgTDFfQ0FDSEVfQUxJR04oeCkgKCgoeCkrKEwxX0NBQ0hFX0JZVEVTLTEpKSZ+
KEwxX0NBQ0hFX0JZVEVTLTEpKQoKCgoKCgoKI2RlZmluZSBfX19fY2FjaGVsaW5lX2FsaWduZWQg
X19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oU01QX0NBQ0hFX0JZVEVTKSkpCgoKCgojZGVmaW5l
IF9fY2FjaGVsaW5lX2FsaWduZWQgX19fX2NhY2hlbGluZV9hbGlnbmVkCiMgMjIgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc3RkZGVmLmgiIDEKIyAyMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9zdHJpbmcuaCIgMQojIDI0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L2ZzLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgi
IDEKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKIyAyNyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCgpzdHJ1Y3QgcG9sbF90YWJsZV9z
dHJ1Y3Q7CiMgNDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIKI3Vu
ZGVmIE5SX09QRU4KI2RlZmluZSBOUl9PUEVOICgxMDI0KjEwMjQpCiNkZWZpbmUgSU5SX09QRU4g
MTAyNAoKI2RlZmluZSBCTE9DS19TSVpFX0JJVFMgMTAKI2RlZmluZSBCTE9DS19TSVpFICgxPDxC
TE9DS19TSVpFX0JJVFMpCgoKc3RydWN0IGZpbGVzX3N0YXRfc3RydWN0IHsKICAgICAgICBpbnQg
bnJfZmlsZXM7CiAgICAgICAgaW50IG5yX2ZyZWVfZmlsZXM7CiAgICAgICAgaW50IG1heF9maWxl
czsKfTsKZXh0ZXJuIHN0cnVjdCBmaWxlc19zdGF0X3N0cnVjdCBmaWxlc19zdGF0X1JzbXBfMDNj
YWRhMjc7CgpzdHJ1Y3QgaW5vZGVzX3N0YXRfdCB7CiAgICAgICAgaW50IG5yX2lub2RlczsKICAg
ICAgICBpbnQgbnJfdW51c2VkOwogICAgICAgIGludCBkdW1teVs1XTsKfTsKZXh0ZXJuIHN0cnVj
dCBpbm9kZXNfc3RhdF90IGlub2Rlc19zdGF0OwoKZXh0ZXJuIGludCBtYXhfc3VwZXJfYmxvY2tz
LCBucl9zdXBlcl9ibG9ja3M7CmV4dGVybiBpbnQgbGVhc2VzX2VuYWJsZSwgZGlyX25vdGlmeV9l
bmFibGUsIGxlYXNlX2JyZWFrX3RpbWU7CgojZGVmaW5lIE5SX0ZJTEUgODE5MgojZGVmaW5lIE5S
X1JFU0VSVkVEX0ZJTEVTIDEwCiNkZWZpbmUgTlJfU1VQRVIgMjU2CgojZGVmaW5lIE1BWV9FWEVD
IDEKI2RlZmluZSBNQVlfV1JJVEUgMgojZGVmaW5lIE1BWV9SRUFEIDQKCiNkZWZpbmUgRk1PREVf
UkVBRCAxCiNkZWZpbmUgRk1PREVfV1JJVEUgMgoKI2RlZmluZSBSRUFEIDAKI2RlZmluZSBXUklU
RSAxCiNkZWZpbmUgUkVBREEgMgojZGVmaW5lIFNQRUNJQUwgNAoKI2RlZmluZSBTRUxfSU4gMQoj
ZGVmaW5lIFNFTF9PVVQgMgojZGVmaW5lIFNFTF9FWCA0CgoKI2RlZmluZSBGU19SRVFVSVJFU19E
RVYgMQojZGVmaW5lIEZTX05PX0RDQUNIRSAyCiNkZWZpbmUgRlNfTk9fUFJFTElNIDQKCgojZGVm
aW5lIEZTX1NJTkdMRSA4CgoKCgoKI2RlZmluZSBGU19OT01PVU5UIDE2CiNkZWZpbmUgRlNfTElU
VEVSIDMyCiNkZWZpbmUgRlNfT0REX1JFTkFNRSAzMjc2OAoKCgoKCiNkZWZpbmUgTVNfUkRPTkxZ
IDEKI2RlZmluZSBNU19OT1NVSUQgMgojZGVmaW5lIE1TX05PREVWIDQKI2RlZmluZSBNU19OT0VY
RUMgOAojZGVmaW5lIE1TX1NZTkNIUk9OT1VTIDE2CiNkZWZpbmUgTVNfUkVNT1VOVCAzMgojZGVm
aW5lIE1TX01BTkRMT0NLIDY0CiNkZWZpbmUgTVNfTk9BVElNRSAxMDI0CiNkZWZpbmUgTVNfTk9E
SVJBVElNRSAyMDQ4CiNkZWZpbmUgTVNfQklORCA0MDk2CgoKCgojZGVmaW5lIE1TX1JNVF9NQVNL
IChNU19SRE9OTFl8TVNfTk9TVUlEfE1TX05PREVWfE1TX05PRVhFQ3wgTVNfU1lOQ0hST05PVVN8
TVNfTUFORExPQ0t8TVNfTk9BVElNRXxNU19OT0RJUkFUSU1FKQoKCgoKCiNkZWZpbmUgTVNfTUdD
X1ZBTCAweEMwRUQwMDAwCiNkZWZpbmUgTVNfTUdDX01TSyAweGZmZmYwMDAwCgoKCiNkZWZpbmUg
U19TWU5DIDEKI2RlZmluZSBTX05PQVRJTUUgMgojZGVmaW5lIFNfUVVPVEEgNAojZGVmaW5lIFNf
QVBQRU5EIDgKI2RlZmluZSBTX0lNTVVUQUJMRSAxNgojZGVmaW5lIFNfREVBRCAzMgojIDE1MiAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIgojZGVmaW5lIF9fSVNfRkxH
KGlub2RlLCBmbGcpICgoaW5vZGUpLT5pX3NiLT5zX2ZsYWdzICYgKGZsZykpCgojZGVmaW5lIElT
X1JET05MWShpbm9kZSkgKChpbm9kZSktPmlfc2ItPnNfZmxhZ3MgJiBNU19SRE9OTFkpCiNkZWZp
bmUgSVNfTk9TVUlEKGlub2RlKSBfX0lTX0ZMRyhpbm9kZSwgTVNfTk9TVUlEKQojZGVmaW5lIElT
X05PREVWKGlub2RlKSBfX0lTX0ZMRyhpbm9kZSwgTVNfTk9ERVYpCiNkZWZpbmUgSVNfTk9FWEVD
KGlub2RlKSBfX0lTX0ZMRyhpbm9kZSwgTVNfTk9FWEVDKQojZGVmaW5lIElTX1NZTkMoaW5vZGUp
IChfX0lTX0ZMRyhpbm9kZSwgTVNfU1lOQ0hST05PVVMpIHx8ICgoaW5vZGUpLT5pX2ZsYWdzICYg
U19TWU5DKSkKI2RlZmluZSBJU19NQU5ETE9DSyhpbm9kZSkgX19JU19GTEcoaW5vZGUsIE1TX01B
TkRMT0NLKQoKI2RlZmluZSBJU19RVU9UQUlOSVQoaW5vZGUpICgoaW5vZGUpLT5pX2ZsYWdzICYg
U19RVU9UQSkKI2RlZmluZSBJU19BUFBFTkQoaW5vZGUpICgoaW5vZGUpLT5pX2ZsYWdzICYgU19B
UFBFTkQpCiNkZWZpbmUgSVNfSU1NVVRBQkxFKGlub2RlKSAoKGlub2RlKS0+aV9mbGFncyAmIFNf
SU1NVVRBQkxFKQojZGVmaW5lIElTX05PQVRJTUUoaW5vZGUpIChfX0lTX0ZMRyhpbm9kZSwgTVNf
Tk9BVElNRSkgfHwgKChpbm9kZSktPmlfZmxhZ3MgJiBTX05PQVRJTUUpKQojZGVmaW5lIElTX05P
RElSQVRJTUUoaW5vZGUpIF9fSVNfRkxHKGlub2RlLCBNU19OT0RJUkFUSU1FKQoKI2RlZmluZSBJ
U19ERUFERElSKGlub2RlKSAoKGlub2RlKS0+aV9mbGFncyAmIFNfREVBRCkKCgoKCiNkZWZpbmUg
QkxLUk9TRVQgX0lPKDB4MTIsOTMpCiNkZWZpbmUgQkxLUk9HRVQgX0lPKDB4MTIsOTQpCiNkZWZp
bmUgQkxLUlJQQVJUIF9JTygweDEyLDk1KQojZGVmaW5lIEJMS0dFVFNJWkUgX0lPKDB4MTIsOTYp
CiNkZWZpbmUgQkxLRkxTQlVGIF9JTygweDEyLDk3KQojZGVmaW5lIEJMS1JBU0VUIF9JTygweDEy
LDk4KQojZGVmaW5lIEJMS1JBR0VUIF9JTygweDEyLDk5KQojZGVmaW5lIEJMS0ZSQVNFVCBfSU8o
MHgxMiwxMDApCiNkZWZpbmUgQkxLRlJBR0VUIF9JTygweDEyLDEwMSkKI2RlZmluZSBCTEtTRUNU
U0VUIF9JTygweDEyLDEwMikKI2RlZmluZSBCTEtTRUNUR0VUIF9JTygweDEyLDEwMykKI2RlZmlu
ZSBCTEtTU1pHRVQgX0lPKDB4MTIsMTA0KQojIDE5MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9mcy5oIgojZGVmaW5lIEJNQVBfSU9DVEwgMQojZGVmaW5lIEZJQk1BUCBfSU8o
MHgwMCwxKQojZGVmaW5lIEZJR0VUQlNaIF9JTygweDAwLDIpCgoKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3JlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NF
TUFQSE9SRV9ICgoKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC93
YWl0LmgiIDEKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3Jl
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3J3c2VtLmgiIDEK
CgoKCgoKCiNkZWZpbmUgX0xJTlVYX1JXU0VNX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9saW5rYWdlLmgiIDEKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9yd3NlbS5oIiAyCgojZGVmaW5lIFJXU0VNX0RFQlVHIDAKCgoKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTcgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0uaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3J3c2VtLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2tlcm5lbC5oIiAxCiMgMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvcndzZW0uaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5
c3RlbS5oIiAxCiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0u
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2F0b21pYy5oIiAxCiMg
MjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0uaCIgMgoKc3RydWN0
IHJ3X3NlbWFwaG9yZTsKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
cndzZW0tc3BpbmxvY2suaCIgMQojIDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvcndzZW0tc3BpbmxvY2suaCIKI2RlZmluZSBfTElOVVhfUldTRU1fU1BJTkxPQ0tfSAoKCgoK
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCiMg
MTYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0tc3BpbmxvY2suaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTcg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcndzZW0tc3BpbmxvY2suaCIgMgoK
CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDIx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3J3c2VtLXNwaW5sb2NrLmgiIDIK
CnN0cnVjdCByd3NlbV93YWl0ZXI7CiMgMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvcndzZW0tc3BpbmxvY2suaCIKc3RydWN0IHJ3X3NlbWFwaG9yZSB7CiAgICAgICAgX19z
MzIgYWN0aXZpdHk7CiAgICAgICAgc3BpbmxvY2tfdCB3YWl0X2xvY2s7CiAgICAgICAgc3RydWN0
IGxpc3RfaGVhZCB3YWl0X2xpc3Q7CgoKCn07CgoKCgoKCgojZGVmaW5lIF9fUldTRU1fREVCVUdf
SU5JVAoKCiNkZWZpbmUgX19SV1NFTV9JTklUSUFMSVpFUihuYW1lKSB7IDAsIFNQSU5fTE9DS19V
TkxPQ0tFRCwgTElTVF9IRUFEX0lOSVQoKG5hbWUpLndhaXRfbGlzdCkgX19SV1NFTV9ERUJVR19J
TklUIH0KCgojZGVmaW5lIERFQ0xBUkVfUldTRU0obmFtZSkgc3RydWN0IHJ3X3NlbWFwaG9yZSBu
YW1lID0gX19SV1NFTV9JTklUSUFMSVpFUihuYW1lKQoKCmV4dGVybiB2b2lkIGluaXRfcndzZW1f
UnNtcF9hNTNkOTMxYShzdHJ1Y3Qgcndfc2VtYXBob3JlICpzZW0pOwpleHRlcm4gdm9pZCBfX2Rv
d25fcmVhZF9Sc21wXzFjZjU3NzcyKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSk7CmV4dGVybiB2
b2lkIF9fZG93bl93cml0ZV9Sc21wX2M5YjFmOThhKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSk7
CmV4dGVybiB2b2lkIF9fdXBfcmVhZF9Sc21wX2U5NTJmYzI5KHN0cnVjdCByd19zZW1hcGhvcmUg
KnNlbSk7CmV4dGVybiB2b2lkIF9fdXBfd3JpdGVfUnNtcF8zNWZkZDY3ZChzdHJ1Y3Qgcndfc2Vt
YXBob3JlICpzZW0pOwojIDI2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3J3
c2VtLmgiIDIKIyAzNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yd3NlbS5o
IgojZGVmaW5lIHJ3c2VtdHJhY2UoU0VNLCBGTVQpCgoKCgoKCnN0YXRpYyBpbmxpbmUgdm9pZCBk
b3duX3JlYWQoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKQp7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgIF9fZG93bl9yZWFkX1JzbXBfMWNmNTc3
NzIoc2VtKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoK
CgoKc3RhdGljIGlubGluZSB2b2lkIGRvd25fd3JpdGUoc3RydWN0IHJ3X3NlbWFwaG9yZSAqc2Vt
KQp7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKICAgICAg
ICBfX2Rvd25fd3JpdGVfUnNtcF9jOWIxZjk4YShzZW0pOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDsKfQoKCgoKc3RhdGljIGlubGluZSB2b2lkIHVwX3JlYWQo
c3RydWN0IHJ3X3NlbWFwaG9yZSAqc2VtKQp7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDsKICAgICAgICBfX3VwX3JlYWRfUnNtcF9lOTUyZmMyOShzZW0pOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsKfQoKCgoKc3RhdGljIGlubGlu
ZSB2b2lkIHVwX3dyaXRlKHN0cnVjdCByd19zZW1hcGhvcmUgKnNlbSkKewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgIF9fdXBfd3JpdGVfUnNtcF8z
NWZkZDY3ZChzZW0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7
Cn0KIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3JlLmgiIDIK
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYXRvbWljLmgiIDEKIyAxMyAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2VtYXBob3JlLmgiIDIKCnN0cnVjdCBz
ZW1hcGhvcmUgewogICAgICAgIGF0b21pY190IGNvdW50OwogICAgICAgIGludCBzbGVlcGVyczsK
ICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0OwoKCgp9OwoKCgoKI2RlZmluZSBfX1NFTV9E
RUJVR19JTklUKG5hbWUpCgoKI2RlZmluZSBfX1NFTUFQSE9SRV9JTklUSUFMSVpFUihuYW1lLCBj
b3VudCkgeyBBVE9NSUNfSU5JVChjb3VudCksIDAsIF9fV0FJVF9RVUVVRV9IRUFEX0lOSVRJQUxJ
WkVSKChuYW1lKS53YWl0KSBfX1NFTV9ERUJVR19JTklUKG5hbWUpIH0KCgoKCgojZGVmaW5lIF9f
TVVURVhfSU5JVElBTElaRVIobmFtZSkgX19TRU1BUEhPUkVfSU5JVElBTElaRVIobmFtZSwxKQoK
I2RlZmluZSBfX0RFQ0xBUkVfU0VNQVBIT1JFX0dFTkVSSUMobmFtZSwgY291bnQpIHN0cnVjdCBz
ZW1hcGhvcmUgbmFtZSA9IF9fU0VNQVBIT1JFX0lOSVRJQUxJWkVSKG5hbWUsIGNvdW50KQoKCiNk
ZWZpbmUgREVDTEFSRV9NVVRFWChuYW1lKSBfX0RFQ0xBUkVfU0VNQVBIT1JFX0dFTkVSSUMobmFt
ZSwgMSkKI2RlZmluZSBERUNMQVJFX01VVEVYX0xPQ0tFRChuYW1lKSBfX0RFQ0xBUkVfU0VNQVBI
T1JFX0dFTkVSSUMobmFtZSwgMCkKCnN0YXRpYyBpbmxpbmUgdm9pZApzZW1hX2luaXQgKHN0cnVj
dCBzZW1hcGhvcmUgKnNlbSwgaW50IHZhbCkKewogICAgICAgICpzZW0gPSAoc3RydWN0IHNlbWFw
aG9yZSkgeyAoKGF0b21pY190KSB7ICh2YWwpIH0pLCAwLCB7IGxvY2s6IChzcGlubG9ja190KSB7
IDAgfSwgdGFza19saXN0OiB7ICYoKCpzZW0pLndhaXQpLnRhc2tfbGlzdCwgJigoKnNlbSkud2Fp
dCkudGFza19saXN0IH0sIH0gfTsKfQoKc3RhdGljIGlubGluZSB2b2lkCmluaXRfTVVURVggKHN0
cnVjdCBzZW1hcGhvcmUgKnNlbSkKewogICAgICAgIHNlbWFfaW5pdChzZW0sIDEpOwp9CgpzdGF0
aWMgaW5saW5lIHZvaWQKaW5pdF9NVVRFWF9MT0NLRUQgKHN0cnVjdCBzZW1hcGhvcmUgKnNlbSkK
ewogICAgICAgIHNlbWFfaW5pdChzZW0sIDApOwp9CgpleHRlcm4gdm9pZCBfX2Rvd24gKHN0cnVj
dCBzZW1hcGhvcmUgKiBzZW0pOwpleHRlcm4gaW50IF9fZG93bl9pbnRlcnJ1cHRpYmxlIChzdHJ1
Y3Qgc2VtYXBob3JlICogc2VtKTsKZXh0ZXJuIGludCBfX2Rvd25fdHJ5bG9jayAoc3RydWN0IHNl
bWFwaG9yZSAqIHNlbSk7CmV4dGVybiB2b2lkIF9fdXAgKHN0cnVjdCBzZW1hcGhvcmUgKiBzZW0p
OwoKZXh0ZXJuIHNwaW5sb2NrX3Qgc2VtYXBob3JlX3dha2VfbG9jazsKCgoKCgpzdGF0aWMgaW5s
aW5lIHZvaWQKZG93biAoc3RydWN0IHNlbWFwaG9yZSAqc2VtKQp7CgoKCiAgICAgICAgaWYgKCgo
X19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYgKCAoMSA9PSAxKSB8fCAoMSA9PSA0KSB8fCAoMSA9
PSA4KSB8fCAoMSA9PSAxNikgfHwgKDEgPT0gLTEpIHx8ICgxID09IC00KSB8fCAoMSA9PSAtOCkg
fHwgKDEgPT0gLTE2KSkpID8gKHsgX191NjQgX3RtcDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYo
KCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSAqX3YgPSAoJigoJnNlbS0+Y291bnQpKS0+Y291bnRl
cik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0xNjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2Vt
LT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi
ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl
dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikg
OiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2Fu
ZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNl
bS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIi
ImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC04
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl
dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC04KSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5k
X2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtNDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2Vt
LT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi
ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQp
IDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0
Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDog
Im1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRf
YWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0xOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0t
PmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJm
ZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMSkg
OiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRj
aGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMSkgOiAi
bWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9h
ZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5j
b3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0
Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAi
bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk
ZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1v
cnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgp
OyB9IH0pOyBicmVhazsgY2FzZSA0OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50
KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk
ZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1v
cnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5y
ZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIp
OyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0g
fSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+
Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5y
ZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIp
OyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJy
ZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsg
YnJlYWs7IGNhc2UgMTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291
bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwg
JTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsg
YnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9
WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsgYnJl
YWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBi
cmVhazsgZGVmYXVsdDogX3RtcCA9IF9fYmFkX2luY3JlbWVudF9mb3JfaWE2NF9mZXRjaF9hbmRf
YWRkKCk7IGJyZWFrOyB9IChfX3R5cGVvZl9fKComKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkg
KF90bXAgKyAoLSgxKSkpOyB9KSA6IGlhNjRfYXRvbWljX3N1YigxLCAoJnNlbS0+Y291bnQpKSkg
PCAwKQogICAgICAgICAgICAgICAgX19kb3duKHNlbSk7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIGlu
dApkb3duX2ludGVycnVwdGlibGUgKHN0cnVjdCBzZW1hcGhvcmUgKiBzZW0pCnsKICAgICAgICBp
bnQgcmV0ID0gMDsKCgoKCiAgICAgICAgaWYgKCgoX19idWlsdGluX2NvbnN0YW50X3AoMSkgJiYg
KCAoMSA9PSAxKSB8fCAoMSA9PSA0KSB8fCAoMSA9PSA4KSB8fCAoMSA9PSAxNikgfHwgKDEgPT0g
LTEpIHx8ICgxID09IC00KSB8fCAoMSA9PSAtOCkgfHwgKDEgPT0gLTE2KSkpID8gKHsgX191NjQg
X3RtcDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSAq
X3YgPSAoJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0x
NjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2Fz
ZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6
ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug
ODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAi
PXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2Ug
LTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNh
c2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIg
OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC04KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug
ODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAi
PXIiKF90bXApIDogInIiKF92KSwgImkiKC04KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAt
NDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2Fz
ZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6
ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4
OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9
ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDog
X19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0x
OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNl
IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1y
IihfdG1wKSA6ICJyIihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBf
X2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTog
KHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0
OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9
ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSA0OiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21f
XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp
IDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRj
aCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21f
XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp
IDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi
ciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv
cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTY6ICh7IHN3aXRjaCAo
c2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBf
X3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDog
InIiKF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3Zv
bGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIi
KF92KSwgImkiKDE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9y
X2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgZGVmYXVsdDogX3RtcCA9IF9fYmFk
X2luY3JlbWVudF9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IGJyZWFrOyB9IChfX3R5cGVvZl9f
KComKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkgKF90bXAgKyAoLSgxKSkpOyB9KSA6IGlhNjRf
YXRvbWljX3N1YigxLCAoJnNlbS0+Y291bnQpKSkgPCAwKQogICAgICAgICAgICAgICAgcmV0ID0g
X19kb3duX2ludGVycnVwdGlibGUoc2VtKTsKICAgICAgICByZXR1cm4gcmV0Owp9CgpzdGF0aWMg
aW5saW5lIGludApkb3duX3RyeWxvY2sgKHN0cnVjdCBzZW1hcGhvcmUgKnNlbSkKewogICAgICAg
IGludCByZXQgPSAwOwoKCgoKICAgICAgICBpZiAoKChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAm
JiAoICgxID09IDEpIHx8ICgxID09IDQpIHx8ICgxID09IDgpIHx8ICgxID09IDE2KSB8fCAoMSA9
PSAtMSkgfHwgKDEgPT0gLTQpIHx8ICgxID09IC04KSB8fCAoMSA9PSAtMTYpKSkgPyAoeyBfX3U2
NCBfdG1wOyB2b2xhdGlsZSBfX3R5cGVvZl9fKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikp
ICpfdiA9ICgmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKTsgc3dpdGNoICgtKDEpKSB7IGNhc2Ug
LTE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBj
YXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIi
IDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2Fz
ZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6
ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2Fz
ZSAtODogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsg
Y2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUy
IiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2Fz
ZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6
ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVs
dDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNl
IC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBj
YXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIi
IDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNl
IDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2Ug
LTE6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNh
c2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIg
OiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2Ug
ODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAi
PXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAx
OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNl
IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19i
YWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7
IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgODogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf
Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxNjogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi
ciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9m
b3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0gX19i
YWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9m
X18oKiYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIpKSAoX3RtcCArICgtKDEpKSk7IH0pIDogaWE2
NF9hdG9taWNfc3ViKDEsICgmc2VtLT5jb3VudCkpKSA8IDApCiAgICAgICAgICAgICAgICByZXQg
PSBfX2Rvd25fdHJ5bG9jayhzZW0pOwogICAgICAgIHJldHVybiByZXQ7Cn0KCnN0YXRpYyBpbmxp
bmUgdm9pZAp1cCAoc3RydWN0IHNlbWFwaG9yZSAqIHNlbSkKewoKCgogICAgICAgIGlmICgoKF9f
YnVpbHRpbl9jb25zdGFudF9wKDEpICYmICggKDEgPT0gMSkgfHwgKDEgPT0gNCkgfHwgKDEgPT0g
OCkgfHwgKDEgPT0gMTYpIHx8ICgxID09IC0xKSB8fCAoMSA9PSAtNCkgfHwgKDEgPT0gLTgpIHx8
ICgxID09IC0xNikpKSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigmKCgm
c2VtLT5jb3VudCkpLT5jb3VudGVyKSkgKl92ID0gKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIp
OyBzd2l0Y2ggKDEpIHsgY2FzZSAtMTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291
bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNo
YWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAi
bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk
ZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYpIDogIm1l
bW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRk
KCk7IH0gfSk7IGJyZWFrOyBjYXNlIC04OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNv
dW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRj
aGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAi
bWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFk
ZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVt
b3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQo
KTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291
bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNo
YWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00KSA6ICJt
ZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRk
OC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00KSA6ICJtZW1v
cnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgp
OyB9IH0pOyBicmVhazsgY2FzZSAtMTogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3Vu
dCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hh
ZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1l
bW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4
LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTEpIDogIm1lbW9y
eSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7
IH0gfSk7IGJyZWFrOyBjYXNlIDE6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoJnNlbS0+Y291bnQp
KS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRk
NC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9y
eSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJl
bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7
IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9
KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgmc2VtLT5jb3VudCkpLT5j
b3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJl
bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7
IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUw
PVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJl
YWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBi
cmVhazsgY2FzZSA4OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50
ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUw
PVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJl
YWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUx
XSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsg
ZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFr
OyBjYXNlIDE2OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCZzZW0tPmNvdW50KSktPmNvdW50ZXIp
KSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVsl
MV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFr
OyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0s
JTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBk
ZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7
IGRlZmF1bHQ6IF90bXAgPSBfX2JhZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgp
OyBicmVhazsgfSAoX190eXBlb2ZfXygqJigoJnNlbS0+Y291bnQpKS0+Y291bnRlcikpIChfdG1w
ICsgKDEpKTsgfSkgOiBpYTY0X2F0b21pY19hZGQoMSwgKCZzZW0tPmNvdW50KSkpIDw9IDApCiAg
ICAgICAgICAgICAgICBfX3VwKHNlbSk7Cn0KIyAyMDAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L2J5dGVvcmRlci5oIiAxCiMgMjAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L2ZzLmgiIDIKCmV4dGVybiB2b2lkIHVwZGF0ZV9hdGltZV9Sc21wXzkxY2ExYTcwIChzdHJ1Y3Qg
aW5vZGUgKik7CiNkZWZpbmUgVVBEQVRFX0FUSU1FKGlub2RlKSB1cGRhdGVfYXRpbWUgKGlub2Rl
KQoKZXh0ZXJuIHZvaWQgYnVmZmVyX2luaXQodW5zaWduZWQgbG9uZyk7CmV4dGVybiB2b2lkIGlu
b2RlX2luaXQodW5zaWduZWQgbG9uZyk7CmV4dGVybiB2b2lkIG1udF9pbml0KHVuc2lnbmVkIGxv
bmcpOwoKCmVudW0gYmhfc3RhdGVfYml0cyB7CiAgICAgICAgQkhfVXB0b2RhdGUsCiAgICAgICAg
QkhfRGlydHksCiAgICAgICAgQkhfTG9jaywKICAgICAgICBCSF9SZXEsCiAgICAgICAgQkhfTWFw
cGVkLAogICAgICAgIEJIX05ldywKICAgICAgICBCSF9Qcm90ZWN0ZWQsCgogICAgICAgIEJIX1By
aXZhdGVTdGFydCwKCgp9OwojIDIzNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9mcy5oIgpzdHJ1Y3QgYnVmZmVyX2hlYWQgewoKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQg
KmJfbmV4dDsKICAgICAgICB1bnNpZ25lZCBsb25nIGJfYmxvY2tucjsKICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBiX3NpemU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgYl9saXN0OwogICAgICAgIGtk
ZXZfdCBiX2RldjsKCiAgICAgICAgYXRvbWljX3QgYl9jb3VudDsKICAgICAgICBrZGV2X3QgYl9y
ZGV2OwogICAgICAgIHVuc2lnbmVkIGxvbmcgYl9zdGF0ZTsKICAgICAgICB1bnNpZ25lZCBsb25n
IGJfZmx1c2h0aW1lOwoKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJfbmV4dF9mcmVlOwog
ICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqYl9wcmV2X2ZyZWU7CiAgICAgICAgc3RydWN0IGJ1
ZmZlcl9oZWFkICpiX3RoaXNfcGFnZTsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJfcmVx
bmV4dDsKCiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICoqYl9wcHJldjsKICAgICAgICBjaGFy
ICogYl9kYXRhOwogICAgICAgIHN0cnVjdCBwYWdlICpiX3BhZ2U7CiAgICAgICAgdm9pZCAoKmJf
ZW5kX2lvKShzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCBpbnQgdXB0b2RhdGUpOwogICAgICAgIHZv
aWQgKmJfcHJpdmF0ZTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBiX3JzZWN0b3I7CiAgICAgICAg
d2FpdF9xdWV1ZV9oZWFkX3QgYl93YWl0OwoKICAgICAgICBzdHJ1Y3QgaW5vZGUgKiBiX2lub2Rl
OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgYl9pbm9kZV9idWZmZXJzOwp9OwoKdHlwZWRlZiB2
b2lkIChiaF9lbmRfaW9fdCkoc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCwgaW50IHVwdG9kYXRlKTsK
dm9pZCBpbml0X2J1ZmZlcl9Sc21wXzczMjM5OGUyKHN0cnVjdCBidWZmZXJfaGVhZCAqLCBiaF9l
bmRfaW9fdCAqLCB2b2lkICopOwoKI2RlZmluZSBfX2J1ZmZlcl9zdGF0ZShiaCwgc3RhdGUpICgo
KGJoKS0+Yl9zdGF0ZSAmICgxVUwgPDwgQkhfICMjIHN0YXRlKSkgIT0gMCkKCiNkZWZpbmUgYnVm
ZmVyX3VwdG9kYXRlKGJoKSBfX2J1ZmZlcl9zdGF0ZShiaCxVcHRvZGF0ZSkKI2RlZmluZSBidWZm
ZXJfZGlydHkoYmgpIF9fYnVmZmVyX3N0YXRlKGJoLERpcnR5KQojZGVmaW5lIGJ1ZmZlcl9sb2Nr
ZWQoYmgpIF9fYnVmZmVyX3N0YXRlKGJoLExvY2spCiNkZWZpbmUgYnVmZmVyX3JlcShiaCkgX19i
dWZmZXJfc3RhdGUoYmgsUmVxKQojZGVmaW5lIGJ1ZmZlcl9tYXBwZWQoYmgpIF9fYnVmZmVyX3N0
YXRlKGJoLE1hcHBlZCkKI2RlZmluZSBidWZmZXJfbmV3KGJoKSBfX2J1ZmZlcl9zdGF0ZShiaCxO
ZXcpCiNkZWZpbmUgYnVmZmVyX3Byb3RlY3RlZChiaCkgX19idWZmZXJfc3RhdGUoYmgsUHJvdGVj
dGVkKQoKI2RlZmluZSBiaF9vZmZzZXQoYmgpICgodW5zaWduZWQgbG9uZykoYmgpLT5iX2RhdGEg
JiB+UEFHRV9NQVNLKQoKZXh0ZXJuIHZvaWQgc2V0X2JoX3BhZ2Uoc3RydWN0IGJ1ZmZlcl9oZWFk
ICpiaCwgc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KTsKCiNkZWZpbmUg
dG91Y2hfYnVmZmVyKGJoKSBTZXRQYWdlUmVmZXJlbmNlZChiaC0+Yl9wYWdlKQoKCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaCIgMQoKI2RlZmluZSBf
TElOVVhfUElQRV9GU19JX0gKCiNkZWZpbmUgUElQRUZTX01BR0lDIDB4NTA0OTUwNDUKc3RydWN0
IHBpcGVfaW5vZGVfaW5mbyB7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdDsKICAgICAg
ICBjaGFyICpiYXNlOwogICAgICAgIHVuc2lnbmVkIGludCBsZW47CiAgICAgICAgdW5zaWduZWQg
aW50IHN0YXJ0OwogICAgICAgIHVuc2lnbmVkIGludCByZWFkZXJzOwogICAgICAgIHVuc2lnbmVk
IGludCB3cml0ZXJzOwogICAgICAgIHVuc2lnbmVkIGludCB3YWl0aW5nX3JlYWRlcnM7CiAgICAg
ICAgdW5zaWduZWQgaW50IHdhaXRpbmdfd3JpdGVyczsKICAgICAgICB1bnNpZ25lZCBpbnQgcl9j
b3VudGVyOwogICAgICAgIHVuc2lnbmVkIGludCB3X2NvdW50ZXI7Cn07CgoKCiNkZWZpbmUgUElQ
RV9TSVpFIFBBR0VfU0laRQoKI2RlZmluZSBQSVBFX1NFTShpbm9kZSkgKCYoaW5vZGUpLmlfc2Vt
KQojZGVmaW5lIFBJUEVfV0FJVChpbm9kZSkgKCYoaW5vZGUpLmlfcGlwZS0+d2FpdCkKI2RlZmlu
ZSBQSVBFX0JBU0UoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+YmFzZSkKI2RlZmluZSBQSVBFX1NU
QVJUKGlub2RlKSAoKGlub2RlKS5pX3BpcGUtPnN0YXJ0KQojZGVmaW5lIFBJUEVfTEVOKGlub2Rl
KSAoKGlub2RlKS5pX3BpcGUtPmxlbikKI2RlZmluZSBQSVBFX1JFQURFUlMoaW5vZGUpICgoaW5v
ZGUpLmlfcGlwZS0+cmVhZGVycykKI2RlZmluZSBQSVBFX1dSSVRFUlMoaW5vZGUpICgoaW5vZGUp
LmlfcGlwZS0+d3JpdGVycykKI2RlZmluZSBQSVBFX1dBSVRJTkdfUkVBREVSUyhpbm9kZSkgKChp
bm9kZSkuaV9waXBlLT53YWl0aW5nX3JlYWRlcnMpCiNkZWZpbmUgUElQRV9XQUlUSU5HX1dSSVRF
UlMoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+d2FpdGluZ193cml0ZXJzKQojZGVmaW5lIFBJUEVf
UkNPVU5URVIoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+cl9jb3VudGVyKQojZGVmaW5lIFBJUEVf
V0NPVU5URVIoaW5vZGUpICgoaW5vZGUpLmlfcGlwZS0+d19jb3VudGVyKQoKI2RlZmluZSBQSVBF
X0VNUFRZKGlub2RlKSAoUElQRV9MRU4oaW5vZGUpID09IDApCiNkZWZpbmUgUElQRV9GVUxMKGlu
b2RlKSAoUElQRV9MRU4oaW5vZGUpID09IFBJUEVfU0laRSkKI2RlZmluZSBQSVBFX0ZSRUUoaW5v
ZGUpIChQSVBFX1NJWkUgLSBQSVBFX0xFTihpbm9kZSkpCiNkZWZpbmUgUElQRV9FTkQoaW5vZGUp
ICgoUElQRV9TVEFSVChpbm9kZSkgKyBQSVBFX0xFTihpbm9kZSkpICYgKFBJUEVfU0laRS0xKSkK
I2RlZmluZSBQSVBFX01BWF9SQ0hVTksoaW5vZGUpIChQSVBFX1NJWkUgLSBQSVBFX1NUQVJUKGlu
b2RlKSkKI2RlZmluZSBQSVBFX01BWF9XQ0hVTksoaW5vZGUpIChQSVBFX1NJWkUgLSBQSVBFX0VO
RChpbm9kZSkpCgoKdm9pZCBwaXBlX3dhaXQoc3RydWN0IGlub2RlICogaW5vZGUpOwoKc3RydWN0
IGlub2RlKiBwaXBlX25ldyhzdHJ1Y3QgaW5vZGUqIGlub2RlKTsKIyAyODcgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbWluaXhfZnNfaS5oIiAxCgojZGVmaW5lIF9NSU5JWF9GU19JCgoKCgpz
dHJ1Y3QgbWluaXhfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAg
X191MTYgaTFfZGF0YVsxNl07CiAgICAgICAgICAgICAgICBfX3UzMiBpMl9kYXRhWzE2XTsKICAg
ICAgICB9IHU7Cn07CiMgMjg4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Zz
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2V4dDJfZnNfaS5o
IiAxCiMgMTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZXh0Ml9mc19pLmgi
CiNkZWZpbmUgX0xJTlVYX0VYVDJfRlNfSQoKCgoKc3RydWN0IGV4dDJfaW5vZGVfaW5mbyB7CiAg
ICAgICAgX191MzIgaV9kYXRhWzE1XTsKICAgICAgICBfX3UzMiBpX2ZsYWdzOwogICAgICAgIF9f
dTMyIGlfZmFkZHI7CiAgICAgICAgX191OCBpX2ZyYWdfbm87CiAgICAgICAgX191OCBpX2ZyYWdf
c2l6ZTsKICAgICAgICBfX3UxNiBpX29zeW5jOwogICAgICAgIF9fdTMyIGlfZmlsZV9hY2w7CiAg
ICAgICAgX191MzIgaV9kaXJfYWNsOwogICAgICAgIF9fdTMyIGlfZHRpbWU7CiAgICAgICAgX191
MzIgaV9ibG9ja19ncm91cDsKICAgICAgICBfX3UzMiBpX25leHRfYWxsb2NfYmxvY2s7CiAgICAg
ICAgX191MzIgaV9uZXh0X2FsbG9jX2dvYWw7CiAgICAgICAgX191MzIgaV9wcmVhbGxvY19ibG9j
azsKICAgICAgICBfX3UzMiBpX3ByZWFsbG9jX2NvdW50OwogICAgICAgIGludCBpX25ld19pbm9k
ZToxOwp9OwojIDI4OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ocGZzX2ZzX2kuaCIgMQoK
I2RlZmluZSBfSFBGU19GU19JCgpzdHJ1Y3QgaHBmc19pbm9kZV9pbmZvIHsKICAgICAgICB1bnNp
Z25lZCBsb25nIG1tdV9wcml2YXRlOwogICAgICAgIGlub190IGlfcGFyZW50X2RpcjsKICAgICAg
ICB1bnNpZ25lZCBpX2RubzsKICAgICAgICB1bnNpZ25lZCBpX2Rwb3M7CiAgICAgICAgdW5zaWdu
ZWQgaV9kc3ViZG5vOwogICAgICAgIHVuc2lnbmVkIGlfZmlsZV9zZWM7CiAgICAgICAgdW5zaWdu
ZWQgaV9kaXNrX3NlYzsKICAgICAgICB1bnNpZ25lZCBpX25fc2VjczsKICAgICAgICB1bnNpZ25l
ZCBpX2VhX3NpemU7CiAgICAgICAgdW5zaWduZWQgaV9jb252IDogMjsKICAgICAgICB1bnNpZ25l
ZCBpX2VhX21vZGUgOiAxOwogICAgICAgIHVuc2lnbmVkIGlfZWFfdWlkIDogMTsKICAgICAgICB1
bnNpZ25lZCBpX2VhX2dpZCA6IDE7CiAgICAgICAgdW5zaWduZWQgaV9kaXJ0eSA6IDE7CiAgICAg
ICAgc3RydWN0IHNlbWFwaG9yZSBpX3NlbTsKICAgICAgICBsb2ZmX3QgKippX3JkZGlyX29mZjsK
fTsKCiNkZWZpbmUgaV9ocGZzX2RubyB1LmhwZnNfaS5pX2RubwojZGVmaW5lIGlfaHBmc19wYXJl
bnRfZGlyIHUuaHBmc19pLmlfcGFyZW50X2RpcgojZGVmaW5lIGlfaHBmc19uX3NlY3MgdS5ocGZz
X2kuaV9uX3NlY3MKI2RlZmluZSBpX2hwZnNfZmlsZV9zZWMgdS5ocGZzX2kuaV9maWxlX3NlYwoj
ZGVmaW5lIGlfaHBmc19kaXNrX3NlYyB1LmhwZnNfaS5pX2Rpc2tfc2VjCiNkZWZpbmUgaV9ocGZz
X2Rwb3MgdS5ocGZzX2kuaV9kcG9zCiNkZWZpbmUgaV9ocGZzX2RzdWJkbm8gdS5ocGZzX2kuaV9k
c3ViZG5vCiNkZWZpbmUgaV9ocGZzX2VhX3NpemUgdS5ocGZzX2kuaV9lYV9zaXplCiNkZWZpbmUg
aV9ocGZzX2NvbnYgdS5ocGZzX2kuaV9jb252CiNkZWZpbmUgaV9ocGZzX2VhX21vZGUgdS5ocGZz
X2kuaV9lYV9tb2RlCiNkZWZpbmUgaV9ocGZzX2VhX3VpZCB1LmhwZnNfaS5pX2VhX3VpZAojZGVm
aW5lIGlfaHBmc19lYV9naWQgdS5ocGZzX2kuaV9lYV9naWQKCgojZGVmaW5lIGlfaHBmc19zZW0g
dS5ocGZzX2kuaV9zZW0KI2RlZmluZSBpX2hwZnNfcmRkaXJfb2ZmIHUuaHBmc19pLmlfcmRkaXJf
b2ZmCiNkZWZpbmUgaV9ocGZzX2RpcnR5IHUuaHBmc19pLmlfZGlydHkKIyAyOTAgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbnRmc19mc19pLmgiIDEKCiNkZWZpbmUgX0xJTlVYX05URlNfRlNf
SV9ICgoKc3RydWN0IG50ZnNfYXR0cmlidXRlOwpzdHJ1Y3QgbnRmc19zYl9pbmZvOwoKCgojZGVm
aW5lIE5URlNfSU5URUdSQUxfVFlQRVMKdHlwZWRlZiB1OCBudGZzX3U4Owp0eXBlZGVmIHUxNiBu
dGZzX3UxNjsKdHlwZWRlZiB1MzIgbnRmc191MzI7CnR5cGVkZWYgdTY0IG50ZnNfdTY0Owp0eXBl
ZGVmIHM4IG50ZnNfczg7CnR5cGVkZWYgczE2IG50ZnNfczE2Owp0eXBlZGVmIHMzMiBudGZzX3Mz
MjsKdHlwZWRlZiBzNjQgbnRmc19zNjQ7CgoKCiNkZWZpbmUgTlRNT0RFX1QKdHlwZWRlZiBfX2tl
cm5lbF9tb2RlX3QgbnRtb2RlX3Q7CgoKI2RlZmluZSBOVEZTX1VJRF9UCnR5cGVkZWYgdWlkX3Qg
bnRmc191aWRfdDsKCgojZGVmaW5lIE5URlNfR0lEX1QKdHlwZWRlZiBnaWRfdCBudGZzX2dpZF90
OwoKCiNkZWZpbmUgTlRGU19TSVpFX1QKdHlwZWRlZiBfX2tlcm5lbF9zaXplX3QgbnRmc19zaXpl
X3Q7CgoKI2RlZmluZSBOVEZTX1RJTUVfVAp0eXBlZGVmIF9fa2VybmVsX3RpbWVfdCBudGZzX3Rp
bWVfdDsKCgoKCiNkZWZpbmUgTlRGU19XQ0hBUl9UCnR5cGVkZWYgdTE2IG50ZnNfd2NoYXJfdDsK
CgoKI2RlZmluZSBOVEZTX09GRlNFVF9UCnR5cGVkZWYgczY0IG50ZnNfb2Zmc2V0X3Q7CgoKCiNk
ZWZpbmUgTlRGU19USU1FNjRfVAp0eXBlZGVmIHU2NCBudGZzX3RpbWU2NF90OwojIDY2ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L250ZnNfZnNfaS5oIgojZGVmaW5lIE5URlNf
Q0xVU1RFUl9UCnR5cGVkZWYgczMyIG50ZnNfY2x1c3Rlcl90OwoKCgpzdHJ1Y3QgbnRmc19pbm9k
ZV9pbmZvewogICAgICAgIHVuc2lnbmVkIGxvbmcgbW11X3ByaXZhdGU7CiAgICAgICAgc3RydWN0
IG50ZnNfc2JfaW5mbyAqdm9sOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaV9udW1iZXI7CiAgICAg
ICAgX191MTYgc2VxdWVuY2VfbnVtYmVyOwogICAgICAgIHVuc2lnbmVkIGNoYXIgKmF0dHI7CiAg
ICAgICAgaW50IGF0dHJfY291bnQ7CiAgICAgICAgc3RydWN0IG50ZnNfYXR0cmlidXRlICphdHRy
czsKICAgICAgICBpbnQgcmVjb3JkX2NvdW50OwogICAgICAgIGludCAqcmVjb3JkczsKCiAgICAg
ICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IHJlY29yZHNpemU7CiAgICAgICAgICAgICAgICAgICAgICAgIGludCBjbHVzdGVyc19w
ZXJfcmVjb3JkOwogICAgICAgICAgICAgICAgfSBpbmRleDsKICAgICAgICB9IHU7Cn07CiMgMjkx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21zZG9zX2ZzX2kuaCIgMQoKI2RlZmluZSBfTVNE
T1NfRlNfSQoKCgoKCnN0cnVjdCBtc2Rvc19pbm9kZV9pbmZvIHsKICAgICAgICB1bnNpZ25lZCBs
b25nIG1tdV9wcml2YXRlOwogICAgICAgIGludCBpX3N0YXJ0OwogICAgICAgIGludCBpX2xvZ3N0
YXJ0OwogICAgICAgIGludCBpX2F0dHJzOwogICAgICAgIGludCBpX2N0aW1lX21zOwogICAgICAg
IGludCBpX2xvY2F0aW9uOwogICAgICAgIHN0cnVjdCBpbm9kZSAqaV9mYXRfaW5vZGU7CiAgICAg
ICAgc3RydWN0IGxpc3RfaGVhZCBpX2ZhdF9oYXNoOwp9OwojIDI5MiAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC91bXNkb3NfZnNfaS5oIiAxCgojZGVmaW5lIFVNU0RPU19GU19JX0gKCgoKCgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbXNkb3NfZnNfaS5oIiAxCiMg
OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91bXNkb3NfZnNfaS5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9waXBlX2ZzX2kuaCIgMQojIDEw
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Vtc2Rvc19mc19pLmgiIDIKIyAz
OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91bXNkb3NfZnNfaS5oIgpzdHJ1
Y3QgZGlyX2xvY2tpbmdfaW5mbyB7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3QgcDsKICAgICAg
ICBzaG9ydCBpbnQgbG9va2luZzsKICAgICAgICBzaG9ydCBpbnQgY3JlYXRpbmc7CgoKCiAgICAg
ICAgbG9uZyBwaWQ7Cgp9OwoKc3RydWN0IHVtc2Rvc19pbm9kZV9pbmZvIHsKICAgICAgICBzdHJ1
Y3QgbXNkb3NfaW5vZGVfaW5mbyBtc2Rvc19pbmZvOwogICAgICAgIHN0cnVjdCBkaXJfbG9ja2lu
Z19pbmZvIGRpcl9pbmZvOwogICAgICAgIGludCBpX3BhdGNoZWQ7CiAgICAgICAgaW50IGlfaXNf
aGxpbms7CiAgICAgICAgb2ZmX3QgcG9zOwp9OwojIDI5MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9pc29fZnNfaS5oIiAxCgojZGVmaW5lIF9JU09fRlNfSQoKCgoKc3RydWN0IGlzb19pbm9k
ZV9pbmZvIHsKICAgICAgICB1bnNpZ25lZCBpbnQgaV9maXJzdF9leHRlbnQ7CiAgICAgICAgdW5z
aWduZWQgY2hhciBpX2ZpbGVfZm9ybWF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgaV9uZXh0X3Nl
Y3Rpb25faW5vOwogICAgICAgIG9mZl90IGlfc2VjdGlvbl9zaXplOwp9OwojIDI5NCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9uZnNfZnNfaS5oIiAxCgojZGVmaW5lIF9ORlNfRlNfSQoKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90eXBlcy5oIiAxCiMgNSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uZnNfZnNfaS5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9saXN0LmgiIDEKIyA2ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L25mc19mc19pLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L25mcy5oIiAxCgoKCgoKCgojZGVmaW5lIF9MSU5VWF9ORlNfSAoKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N1bnJwYy9tc2dfcHJvdC5oIiAx
CgoKCgoKCgojZGVmaW5lIF9MSU5VWF9TVU5SUENfTVNHUFJPVF9IXwoKCgojZGVmaW5lIFJQQ19W
RVJTSU9OIDIKCmVudW0gcnBjX2F1dGhfZmxhdm9yIHsKICAgICAgICBSUENfQVVUSF9OVUxMID0g
MCwKICAgICAgICBSUENfQVVUSF9VTklYID0gMSwKICAgICAgICBSUENfQVVUSF9TSE9SVCA9IDIs
CiAgICAgICAgUlBDX0FVVEhfREVTID0gMywKICAgICAgICBSUENfQVVUSF9LUkIgPSA0LAp9OwoK
ZW51bSBycGNfbXNnX3R5cGUgewogICAgICAgIFJQQ19DQUxMID0gMCwKICAgICAgICBSUENfUkVQ
TFkgPSAxCn07CgplbnVtIHJwY19yZXBseV9zdGF0IHsKICAgICAgICBSUENfTVNHX0FDQ0VQVEVE
ID0gMCwKICAgICAgICBSUENfTVNHX0RFTklFRCA9IDEKfTsKCmVudW0gcnBjX2FjY2VwdF9zdGF0
IHsKICAgICAgICBSUENfU1VDQ0VTUyA9IDAsCiAgICAgICAgUlBDX1BST0dfVU5BVkFJTCA9IDEs
CiAgICAgICAgUlBDX1BST0dfTUlTTUFUQ0ggPSAyLAogICAgICAgIFJQQ19QUk9DX1VOQVZBSUwg
PSAzLAogICAgICAgIFJQQ19HQVJCQUdFX0FSR1MgPSA0LAogICAgICAgIFJQQ19TWVNURU1fRVJS
ID0gNQp9OwoKZW51bSBycGNfcmVqZWN0X3N0YXQgewogICAgICAgIFJQQ19NSVNNQVRDSCA9IDAs
CiAgICAgICAgUlBDX0FVVEhfRVJST1IgPSAxCn07CgplbnVtIHJwY19hdXRoX3N0YXQgewogICAg
ICAgIFJQQ19BVVRIX09LID0gMCwKICAgICAgICBSUENfQVVUSF9CQURDUkVEID0gMSwKICAgICAg
ICBSUENfQVVUSF9SRUpFQ1RFRENSRUQgPSAyLAogICAgICAgIFJQQ19BVVRIX0JBRFZFUkYgPSAz
LAogICAgICAgIFJQQ19BVVRIX1JFSkVDVEVEVkVSRiA9IDQsCiAgICAgICAgUlBDX0FVVEhfVE9P
V0VBSyA9IDUKfTsKCiNkZWZpbmUgUlBDX1BNQVBfUFJPR1JBTSAxMDAwMDAKI2RlZmluZSBSUENf
UE1BUF9WRVJTSU9OIDIKI2RlZmluZSBSUENfUE1BUF9QT1JUIDExMQoKI2RlZmluZSBSUENfTUFY
TkVUTkFNRUxFTiAyNTYKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9u
ZnMuaCIgMgoKI2RlZmluZSBORlNfUFJPR1JBTSAxMDAwMDMKI2RlZmluZSBORlNfUE9SVCAyMDQ5
CiNkZWZpbmUgTkZTX01BWERBVEEgODE5MgojZGVmaW5lIE5GU19NQVhQQVRITEVOIDEwMjQKI2Rl
ZmluZSBORlNfTUFYTkFNTEVOIDI1NQojZGVmaW5lIE5GU19NQVhHUk9VUFMgMTYKI2RlZmluZSBO
RlNfRkhTSVpFIDMyCiNkZWZpbmUgTkZTX0NPT0tJRVNJWkUgNAojZGVmaW5lIE5GU19GSUZPX0RF
ViAoLTEpCiNkZWZpbmUgTkZTTU9ERV9GTVQgMDE3MDAwMAojZGVmaW5lIE5GU01PREVfRElSIDAw
NDAwMDAKI2RlZmluZSBORlNNT0RFX0NIUiAwMDIwMDAwCiNkZWZpbmUgTkZTTU9ERV9CTEsgMDA2
MDAwMAojZGVmaW5lIE5GU01PREVfUkVHIDAxMDAwMDAKI2RlZmluZSBORlNNT0RFX0xOSyAwMTIw
MDAwCiNkZWZpbmUgTkZTTU9ERV9TT0NLIDAxNDAwMDAKI2RlZmluZSBORlNNT0RFX0ZJRk8gMDAx
MDAwMAoKI2RlZmluZSBORlNfTU5UX1BST0dSQU0gMTAwMDA1CiNkZWZpbmUgTkZTX01OVF9QT1JU
IDYyNwojIDQxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25mcy5oIgogZW51
bSBuZnNfc3RhdCB7CiAgICAgICAgTkZTX09LID0gMCwKICAgICAgICBORlNFUlJfUEVSTSA9IDEs
CiAgICAgICAgTkZTRVJSX05PRU5UID0gMiwKICAgICAgICBORlNFUlJfSU8gPSA1LAogICAgICAg
IE5GU0VSUl9OWElPID0gNiwKICAgICAgICBORlNFUlJfRUFHQUlOID0gMTEsCiAgICAgICAgTkZT
RVJSX0FDQ0VTID0gMTMsCiAgICAgICAgTkZTRVJSX0VYSVNUID0gMTcsCiAgICAgICAgTkZTRVJS
X1hERVYgPSAxOCwKICAgICAgICBORlNFUlJfTk9ERVYgPSAxOSwKICAgICAgICBORlNFUlJfTk9U
RElSID0gMjAsCiAgICAgICAgTkZTRVJSX0lTRElSID0gMjEsCiAgICAgICAgTkZTRVJSX0lOVkFM
ID0gMjIsCiAgICAgICAgTkZTRVJSX0ZCSUcgPSAyNywKICAgICAgICBORlNFUlJfTk9TUEMgPSAy
OCwKICAgICAgICBORlNFUlJfUk9GUyA9IDMwLAogICAgICAgIE5GU0VSUl9NTElOSyA9IDMxLAog
ICAgICAgIE5GU0VSUl9PUE5PVFNVUFAgPSA0NSwKICAgICAgICBORlNFUlJfTkFNRVRPT0xPTkcg
PSA2MywKICAgICAgICBORlNFUlJfTk9URU1QVFkgPSA2NiwKICAgICAgICBORlNFUlJfRFFVT1Qg
PSA2OSwKICAgICAgICBORlNFUlJfU1RBTEUgPSA3MCwKICAgICAgICBORlNFUlJfUkVNT1RFID0g
NzEsCiAgICAgICAgTkZTRVJSX1dGTFVTSCA9IDk5LAogICAgICAgIE5GU0VSUl9CQURIQU5ETEUg
PSAxMDAwMSwKICAgICAgICBORlNFUlJfTk9UX1NZTkMgPSAxMDAwMiwKICAgICAgICBORlNFUlJf
QkFEX0NPT0tJRSA9IDEwMDAzLAogICAgICAgIE5GU0VSUl9OT1RTVVBQID0gMTAwMDQsCiAgICAg
ICAgTkZTRVJSX1RPT1NNQUxMID0gMTAwMDUsCiAgICAgICAgTkZTRVJSX1NFUlZFUkZBVUxUID0g
MTAwMDYsCiAgICAgICAgTkZTRVJSX0JBRFRZUEUgPSAxMDAwNywKICAgICAgICBORlNFUlJfSlVL
RUJPWCA9IDEwMDA4CiB9OwoKCgplbnVtIG5mc19mdHlwZSB7CiAgICAgICAgTkZOT04gPSAwLAog
ICAgICAgIE5GUkVHID0gMSwKICAgICAgICBORkRJUiA9IDIsCiAgICAgICAgTkZCTEsgPSAzLAog
ICAgICAgIE5GQ0hSID0gNCwKICAgICAgICBORkxOSyA9IDUsCiAgICAgICAgTkZTT0NLID0gNiwK
ICAgICAgICBORkJBRCA9IDcsCiAgICAgICAgTkZGSUZPID0gOAp9OwoKCgoKCiNkZWZpbmUgTkZT
X01BWEZIU0laRSA2NApzdHJ1Y3QgbmZzX2ZoIHsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzaXpl
OwogICAgICAgIHVuc2lnbmVkIGNoYXIgZGF0YVs2NF07Cn07CgoKCgoKI2RlZmluZSBORlNfT0ZG
U0VUX01BWCAoKF9fczY0KSgofihfX3U2NCkwKSA+PiAxKSkKCgplbnVtIG5mczNfc3RhYmxlX2hv
dyB7CiAgICAgICAgTkZTX1VOU1RBQkxFID0gMCwKICAgICAgICBORlNfREFUQV9TWU5DID0gMSwK
ICAgICAgICBORlNfRklMRV9TWU5DID0gMgp9OwojIDcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbmZzX2ZzX2kuaCIgMgoKCgoKc3RydWN0IG5mc19pbm9kZV9pbmZvIHsKCgoK
ICAgICAgICBfX3U2NCBmc2lkOwogICAgICAgIF9fdTY0IGZpbGVpZDsKCgoKCiAgICAgICAgc3Ry
dWN0IG5mc19maCBmaDsKCgoKCiAgICAgICAgdW5zaWduZWQgc2hvcnQgZmxhZ3M7CiMgNDUgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmZzX2ZzX2kuaCIKICAgICAgICB1bnNp
Z25lZCBsb25nIHJlYWRfY2FjaGVfamlmZmllczsKICAgICAgICBfX3U2NCByZWFkX2NhY2hlX2N0
aW1lOwogICAgICAgIF9fdTY0IHJlYWRfY2FjaGVfbXRpbWU7CiAgICAgICAgX191NjQgcmVhZF9j
YWNoZV9hdGltZTsKICAgICAgICBfX3U2NCByZWFkX2NhY2hlX2lzaXplOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgYXR0cnRpbWVvOwogICAgICAgIHVuc2lnbmVkIGxvbmcgYXR0cnRpbWVvX3RpbWVz
dGFtcDsKCgoKCgogICAgICAgIF9fdTMyIGNvb2tpZXZlcmZbMl07CgoKCgogICAgICAgIHN0cnVj
dCBsaXN0X2hlYWQgcmVhZDsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRpcnR5OwogICAgICAg
IHN0cnVjdCBsaXN0X2hlYWQgY29tbWl0OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgd3JpdGVi
YWNrOwoKICAgICAgICB1bnNpZ25lZCBpbnQgbnJlYWQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmRpcnR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5jb21taXQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnBhZ2VzOwoKCiAgICAgICAgc3RydWN0
IGlub2RlICpoYXNoX25leHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmhhc2hf
cHJldjsKICAgICAgICB1bnNpZ25lZCBsb25nIG5leHRzY2FuOwp9OwoKCgoKI2RlZmluZSBORlNf
SU5PX1NUQUxFIDB4MDAwMQojZGVmaW5lIE5GU19JTk9fQURWSVNFX1JEUExVUyAweDAwMDIKI2Rl
ZmluZSBORlNfSU5PX1JFVkFMSURBVElORyAweDAwMDQKI2RlZmluZSBORlNfSVNfU05BUFNIT1Qg
MHgwMDEwCiNkZWZpbmUgTkZTX0lOT19GTFVTSCAweDAwMjAKCgoKCnN0cnVjdCBuZnNfbG9ja19p
bmZvIHsKICAgICAgICB1MzIgc3RhdGU7CiAgICAgICAgdTMyIGZsYWdzOwogICAgICAgIHN0cnVj
dCBubG1faG9zdCAqaG9zdDsKfTsKCgoKCiNkZWZpbmUgTkZTX0xDS19HUkFOVEVEIDB4MDAwMQoj
IDI5NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zeXN2X2ZzX2kuaCIgMQoKI2RlZmluZSBf
U1lTVl9GU19JCgoKCgpzdHJ1Y3Qgc3lzdl9pbm9kZV9pbmZvIHsKICAgICAgICB1MzIgaV9kYXRh
WzEwKzErMSsxXTsKCgoKCn07CiMgMjk2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2FmZnNf
ZnNfaS5oIiAxCgojZGVmaW5lIF9BRkZTX0ZTX0kKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9hLm91dC5oIiAxCgojZGVmaW5lIF9fQV9PVVRfR05VX0hfXwoKI2RlZmlu
ZSBfX0dOVV9FWEVDX01BQ1JPU19fCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vYS5vdXQuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfQV9PVVRfSAojIDE0ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9hLm91dC5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9hLm91dC5oIiAyCgpzdHJ1Y3QgZXhlYyB7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBhX2luZm87CiAgICAgICAgdW5zaWduZWQgbG9uZyBhX3RleHQ7CiAgICAgICAgdW5zaWduZWQg
bG9uZyBhX2RhdGE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBhX2JzczsKICAgICAgICB1bnNpZ25l
ZCBsb25nIGFfZW50cnk7Cn07CgojZGVmaW5lIE5fVFhUQUREUih4KSAwCiNkZWZpbmUgTl9EQVRB
RERSKHgpIDAKI2RlZmluZSBOX0JTU0FERFIoeCkgMAojZGVmaW5lIE5fRFJTSVpFKHgpIDAKI2Rl
ZmluZSBOX1RSU0laRSh4KSAwCiNkZWZpbmUgTl9TWU1TSVpFKHgpIDAKI2RlZmluZSBOX1RYVE9G
Rih4KSAwCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEK
IyAzNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYS5vdXQuaCIgMgojZGVmaW5l
IFNUQUNLX1RPUCAoMHg4MDAwMDAwMDAwMDAwMDAwVUwgKyAoMVVMIDw8ICg0KlBBR0VfU0hJRlQg
LSAxMikpIC0gUEFHRV9TSVpFKQojZGVmaW5lIElBNjRfUkJTX0JPVCAoU1RBQ0tfVE9QIC0gMHg4
MDAwMDAwMEwgKyBQQUdFX1NJWkUpCiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9hLm91dC5oIiAyCgoKCgplbnVtIG1hY2hpbmVfdHlwZSB7CgoKCiAgTV9PTERTVU4yID0g
MCwKCgoKCiAgTV82ODAxMCA9IDEsCgoKCgogIE1fNjgwMjAgPSAyLAoKCgoKICBNX1NQQVJDID0g
MywKCgogIE1fMzg2ID0gMTAwLAogIE1fTUlQUzEgPSAxNTEsCiAgTV9NSVBTMiA9IDE1Mgp9OwoK
CiNkZWZpbmUgTl9NQUdJQyhleGVjKSAoKGV4ZWMpLmFfaW5mbyAmIDB4ZmZmZikKCiNkZWZpbmUg
Tl9NQUNIVFlQRShleGVjKSAoKGVudW0gbWFjaGluZV90eXBlKSgoKGV4ZWMpLmFfaW5mbyA+PiAx
NikgJiAweGZmKSkKI2RlZmluZSBOX0ZMQUdTKGV4ZWMpICgoKGV4ZWMpLmFfaW5mbyA+PiAyNCkg
JiAweGZmKQojZGVmaW5lIE5fU0VUX0lORk8oZXhlYywgbWFnaWMsIHR5cGUsIGZsYWdzKSAoKGV4
ZWMpLmFfaW5mbyA9ICgobWFnaWMpICYgMHhmZmZmKSB8ICgoKGludCkodHlwZSkgJiAweGZmKSA8
PCAxNikgfCAoKChmbGFncykgJiAweGZmKSA8PCAyNCkpCgoKCiNkZWZpbmUgTl9TRVRfTUFHSUMo
ZXhlYywgbWFnaWMpICgoZXhlYykuYV9pbmZvID0gKCgoZXhlYykuYV9pbmZvICYgMHhmZmZmMDAw
MCkgfCAoKG1hZ2ljKSAmIDB4ZmZmZikpKQoKCiNkZWZpbmUgTl9TRVRfTUFDSFRZUEUoZXhlYywg
bWFjaHR5cGUpICgoZXhlYykuYV9pbmZvID0gKChleGVjKS5hX2luZm8mMHhmZjAwZmZmZikgfCAo
KCgoaW50KShtYWNodHlwZSkpJjB4ZmYpIDw8IDE2KSkKCgoKI2RlZmluZSBOX1NFVF9GTEFHUyhl
eGVjLCBmbGFncykgKChleGVjKS5hX2luZm8gPSAoKGV4ZWMpLmFfaW5mbyYweDAwZmZmZmZmKSB8
ICgoKGZsYWdzKSAmIDB4ZmYpIDw8IDI0KSkKCgoKCiNkZWZpbmUgT01BR0lDIDA0MDcKCiNkZWZp
bmUgTk1BR0lDIDA0MTAKCiNkZWZpbmUgWk1BR0lDIDA0MTMKCgojZGVmaW5lIFFNQUdJQyAwMzE0
CgoKI2RlZmluZSBDTUFHSUMgMDQyMQoKCiNkZWZpbmUgTl9CQURNQUcoeCkgKE5fTUFHSUMoeCkg
IT0gT01BR0lDICYmIE5fTUFHSUMoeCkgIT0gTk1BR0lDICYmIE5fTUFHSUMoeCkgIT0gWk1BR0lD
ICYmIE5fTUFHSUMoeCkgIT0gUU1BR0lDKQoKCgoKCiNkZWZpbmUgX05fSERST0ZGKHgpICgxMDI0
IC0gc2l6ZW9mIChzdHJ1Y3QgZXhlYykpCiMgODkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvYS5vdXQuaCIKI2RlZmluZSBOX0RBVE9GRih4KSAoTl9UWFRPRkYoeCkgKyAoeCku
YV90ZXh0KQoKCgojZGVmaW5lIE5fVFJFTE9GRih4KSAoTl9EQVRPRkYoeCkgKyAoeCkuYV9kYXRh
KQoKCgojZGVmaW5lIE5fRFJFTE9GRih4KSAoTl9UUkVMT0ZGKHgpICsgTl9UUlNJWkUoeCkpCgoK
CiNkZWZpbmUgTl9TWU1PRkYoeCkgKE5fRFJFTE9GRih4KSArIE5fRFJTSVpFKHgpKQoKCgojZGVm
aW5lIE5fU1RST0ZGKHgpIChOX1NZTU9GRih4KSArIE5fU1lNU0laRSh4KSkKIyAxMzEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYS5vdXQuaCIKIyAxICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEKIyAxMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvYS5vdXQuaCIgMgoKCgoKI2RlZmluZSBTRUdNRU5UX1NJWkUgUEFHRV9T
SVpFCgoKCgojZGVmaW5lIF9OX1NFR01FTlRfUk9VTkQoeCkgKCgoeCkgKyBTRUdNRU5UX1NJWkUg
LSAxKSAmIH4oU0VHTUVOVF9TSVpFIC0gMSkpCgojZGVmaW5lIF9OX1RYVEVOREFERFIoeCkgKE5f
VFhUQUREUih4KSsoeCkuYV90ZXh0KQojIDE1NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9hLm91dC5oIgpzdHJ1Y3Qgbmxpc3QgewogIHVuaW9uIHsKICAgIGNoYXIgKm5fbmFt
ZTsKICAgIHN0cnVjdCBubGlzdCAqbl9uZXh0OwogICAgbG9uZyBuX3N0cng7CiAgfSBuX3VuOwog
IHVuc2lnbmVkIGNoYXIgbl90eXBlOwogIGNoYXIgbl9vdGhlcjsKICBzaG9ydCBuX2Rlc2M7CiAg
dW5zaWduZWQgbG9uZyBuX3ZhbHVlOwp9OwoKCgojZGVmaW5lIE5fVU5ERiAwCgoKI2RlZmluZSBO
X0FCUyAyCgoKI2RlZmluZSBOX1RFWFQgNAoKCiNkZWZpbmUgTl9EQVRBIDYKCgojZGVmaW5lIE5f
QlNTIDgKCgojZGVmaW5lIE5fRk4gMTUKCgoKI2RlZmluZSBOX0VYVCAxCgoKI2RlZmluZSBOX1RZ
UEUgMDM2CgoKI2RlZmluZSBOX1NUQUIgMDM0MAojIDIwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9hLm91dC5oIgojZGVmaW5lIE5fSU5EUiAweGEKIyAyMjEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYS5vdXQuaCIKI2RlZmluZSBOX1NFVEEgMHgxNAoj
ZGVmaW5lIE5fU0VUVCAweDE2CiNkZWZpbmUgTl9TRVREIDB4MTgKI2RlZmluZSBOX1NFVEIgMHgx
QQoKCiNkZWZpbmUgTl9TRVRWIDB4MUMKCgoKCgoKCnN0cnVjdCByZWxvY2F0aW9uX2luZm8KewoK
ICBpbnQgcl9hZGRyZXNzOwoKICB1bnNpZ25lZCBpbnQgcl9zeW1ib2xudW06MjQ7CgoKCiAgdW5z
aWduZWQgaW50IHJfcGNyZWw6MTsKCgogIHVuc2lnbmVkIGludCByX2xlbmd0aDoyOwoKCgoKCgog
IHVuc2lnbmVkIGludCByX2V4dGVybjoxOwoKCgoKCgoKICB1bnNpZ25lZCBpbnQgcl9wYWQ6NDsK
Cn07CiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hZmZzX2ZzX2kuaCIg
MgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lLmgiIDEKCiNk
ZWZpbmUgX0xJTlVYX1RJTUVfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz
bS9wYXJhbS5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9QQVJBTV9ICiMgMTEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhcmFtLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9wYXJhbS5oIiAyCiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3BhcmFtLmgiCiNkZWZpbmUgSFogMTAyNAoKCiNkZWZpbmUgRVhFQ19QQUdFU0laRSA2NTUzNgoK
CiNkZWZpbmUgTkdST1VQUyAzMgoKCgojZGVmaW5lIE5PR1JPVVAgKC0xKQoKCiNkZWZpbmUgTUFY
SE9TVE5BTUVMRU4gNjQKCgojZGVmaW5lIENMT0NLU19QRVJfU0VDIEhaCiMgNSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3RpbWUuaCIgMgoKCiNkZWZpbmUgX1NUUlVDVF9USU1FU1BFQwpzdHJ1Y3Qg
dGltZXNwZWMgewogICAgICAgIHRpbWVfdCB0dl9zZWM7CiAgICAgICAgbG9uZyB0dl9uc2VjOwp9
OwojIDI5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RpbWUuaCIKI2RlZmlu
ZSBNQVhfSklGRllfT0ZGU0VUICgofjBVTCA+PiAxKS0xKQoKc3RhdGljIF9faW5saW5lX18gdW5z
aWduZWQgbG9uZwp0aW1lc3BlY190b19qaWZmaWVzKHN0cnVjdCB0aW1lc3BlYyAqdmFsdWUpCnsK
ICAgICAgICB1bnNpZ25lZCBsb25nIHNlYyA9IHZhbHVlLT50dl9zZWM7CiAgICAgICAgbG9uZyBu
c2VjID0gdmFsdWUtPnR2X25zZWM7CgogICAgICAgIGlmIChzZWMgPj0gKCgofjBVTCA+PiAxKS0x
KSAvIDEwMjQpKQogICAgICAgICAgICAgICAgcmV0dXJuICgofjBVTCA+PiAxKS0xKTsKICAgICAg
ICBuc2VjICs9IDEwMDAwMDAwMDBMIC8gMTAyNCAtIDE7CiAgICAgICAgbnNlYyAvPSAxMDAwMDAw
MDAwTCAvIDEwMjQ7CiAgICAgICAgcmV0dXJuIDEwMjQgKiBzZWMgKyBuc2VjOwp9CgpzdGF0aWMg
X19pbmxpbmVfXyB2b2lkCmppZmZpZXNfdG9fdGltZXNwZWModW5zaWduZWQgbG9uZyBqaWZmaWVz
X1JzbXBfMGRhMDJkNjcsIHN0cnVjdCB0aW1lc3BlYyAqdmFsdWUpCnsKICAgICAgICB2YWx1ZS0+
dHZfbnNlYyA9IChqaWZmaWVzX1JzbXBfMGRhMDJkNjcgJSAxMDI0KSAqICgxMDAwMDAwMDAwTCAv
IDEwMjQpOwogICAgICAgIHZhbHVlLT50dl9zZWMgPSBqaWZmaWVzX1JzbXBfMGRhMDJkNjcgLyAx
MDI0Owp9CiMgNjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGltZS5oIgpz
dGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcKbWt0aW1lICh1bnNpZ25lZCBpbnQgeWVhciwgdW5z
aWduZWQgaW50IG1vbiwKICAgICAgICB1bnNpZ25lZCBpbnQgZGF5LCB1bnNpZ25lZCBpbnQgaG91
ciwKICAgICAgICB1bnNpZ25lZCBpbnQgbWluLCB1bnNpZ25lZCBpbnQgc2VjKQp7CiAgICAgICAg
aWYgKDAgPj0gKGludCkgKG1vbiAtPSAyKSkgewogICAgICAgICAgICAgICAgbW9uICs9IDEyOwog
ICAgICAgICAgICAgICAgeWVhciAtPSAxOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICgoKAog
ICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpICh5ZWFyLzQgLSB5ZWFyLzEwMCArIHllYXIv
NDAwICsgMzY3Km1vbi8xMiArIGRheSkgKwogICAgICAgICAgICAgICAgICAgICAgICB5ZWFyKjM2
NSAtIDcxOTQ5OQogICAgICAgICAgICApKjI0ICsgaG91cgogICAgICAgICAgKSo2MCArIG1pbgog
ICAgICAgICkqNjAgKyBzZWM7Cn0KCgoKCnN0cnVjdCB0aW1ldmFsIHsKICAgICAgICB0aW1lX3Qg
dHZfc2VjOwogICAgICAgIHN1c2Vjb25kc190IHR2X3VzZWM7Cn07CgpzdHJ1Y3QgdGltZXpvbmUg
ewogICAgICAgIGludCB0el9taW51dGVzd2VzdDsKICAgICAgICBpbnQgdHpfZHN0dGltZTsKfTsK
CiNkZWZpbmUgTkZEQklUUyBfX05GREJJVFMKCgpleHRlcm4gdm9pZCBkb19nZXR0aW1lb2ZkYXlf
UnNtcF83MjI3MGUzNShzdHJ1Y3QgdGltZXZhbCAqdHYpOwpleHRlcm4gdm9pZCBkb19zZXR0aW1l
b2ZkYXlfUnNtcF8xOWQ3YjFmZihzdHJ1Y3QgdGltZXZhbCAqdHYpOwpleHRlcm4gdm9pZCBnZXRf
ZmFzdF90aW1lX1JzbXBfNjA3NDMwMjIoc3RydWN0IHRpbWV2YWwgKnR2KTsKZXh0ZXJuIHZvaWQg
KCpkb19nZXRfZmFzdF90aW1lKShzdHJ1Y3QgdGltZXZhbCAqKTsKCgojZGVmaW5lIEZEX1NFVFNJ
WkUgX19GRF9TRVRTSVpFCiNkZWZpbmUgRkRfU0VUKGZkLCBmZHNldHApIF9fRkRfU0VUKGZkLGZk
c2V0cCkKI2RlZmluZSBGRF9DTFIoZmQsIGZkc2V0cCkgX19GRF9DTFIoZmQsZmRzZXRwKQojZGVm
aW5lIEZEX0lTU0VUKGZkLCBmZHNldHApIF9fRkRfSVNTRVQoZmQsZmRzZXRwKQojZGVmaW5lIEZE
X1pFUk8oZmRzZXRwKSBfX0ZEX1pFUk8oZmRzZXRwKQoKCgoKCiNkZWZpbmUgSVRJTUVSX1JFQUwg
MAojZGVmaW5lIElUSU1FUl9WSVJUVUFMIDEKI2RlZmluZSBJVElNRVJfUFJPRiAyCgpzdHJ1Y3Qg
aXRpbWVyc3BlYyB7CiAgICAgICAgc3RydWN0IHRpbWVzcGVjIGl0X2ludGVydmFsOwogICAgICAg
IHN0cnVjdCB0aW1lc3BlYyBpdF92YWx1ZTsKfTsKCnN0cnVjdCBpdGltZXJ2YWwgewogICAgICAg
IHN0cnVjdCB0aW1ldmFsIGl0X2ludGVydmFsOwogICAgICAgIHN0cnVjdCB0aW1ldmFsIGl0X3Zh
bHVlOwp9OwojIDggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYWZmc19mc19p
LmgiIDIKCiNkZWZpbmUgQUZGU19DQUNIRV9TSVpFIFBBR0VfU0laRQoKCiNkZWZpbmUgQUZGU19N
QVhfUFJFQUxMT0MgMzIKI2RlZmluZSBBRkZTX0xDX1NJWkUgKEFGRlNfQ0FDSEVfU0laRS9zaXpl
b2YodTMyKS8yKQojZGVmaW5lIEFGRlNfQUNfU0laRSAoQUZGU19DQUNIRV9TSVpFL3NpemVvZihz
dHJ1Y3QgYWZmc19leHRfa2V5KS8yKQojZGVmaW5lIEFGRlNfQUNfTUFTSyAoQUZGU19BQ19TSVpF
LTEpCgpzdHJ1Y3QgYWZmc19leHRfa2V5IHsKICAgICAgICB1MzIgZXh0OwogICAgICAgIHUzMiBr
ZXk7Cn07CgoKCgpzdHJ1Y3QgYWZmc19pbm9kZV9pbmZvIHsKICAgICAgICB1MzIgaV9vcGVuY250
OwogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgaV9saW5rX2xvY2s7CiAgICAgICAgc3RydWN0IHNl
bWFwaG9yZSBpX2V4dF9sb2NrOwojZGVmaW5lIGlfaGFzaF9sb2NrIGlfZXh0X2xvY2sKIHUzMiBp
X2Jsa2NudDsKICAgICAgICB1MzIgaV9leHRjbnQ7CiAgICAgICAgdTMyICppX2xjOwogICAgICAg
IHUzMiBpX2xjX3NpemU7CiAgICAgICAgdTMyIGlfbGNfc2hpZnQ7CiAgICAgICAgdTMyIGlfbGNf
bWFzazsKICAgICAgICBzdHJ1Y3QgYWZmc19leHRfa2V5ICppX2FjOwogICAgICAgIHUzMiBpX2V4
dF9sYXN0OwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqaV9leHRfYmg7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBtbXVfcHJpdmF0ZTsKICAgICAgICB1MzIgaV9wcm90ZWN0OwogICAgICAgIHUz
MiBpX2xhc3RhbGxvYzsKICAgICAgICBpbnQgaV9wYV9jbnQ7CiMgNTEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvYWZmc19mc19pLmgiCn07CgoKI2RlZmluZSBBRkZTX0lOT0RF
ICgmaW5vZGUtPnUuYWZmc19pKQojZGVmaW5lIEFGRlNfRElSICgmZGlyLT51LmFmZnNfaSkKIyAy
OTcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2ZzX2kuaCIgMQojIDE0ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Vmc19mc19pLmgiCiNkZWZpbmUgX0xJTlVYX1VG
U19GU19JX0gKCnN0cnVjdCB1ZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5pb24gewogICAgICAg
ICAgICAgICAgX191MzIgaV9kYXRhWzE1XTsKICAgICAgICAgICAgICAgIF9fdTggaV9zeW1saW5r
WzQqMTVdOwogICAgICAgIH0gaV91MTsKICAgICAgICBfX3U2NCBpX3NpemU7CiAgICAgICAgX191
MzIgaV9mbGFnczsKICAgICAgICBfX3UzMiBpX2dlbjsKICAgICAgICBfX3UzMiBpX3NoYWRvdzsK
ICAgICAgICBfX3UzMiBpX3VudXNlZDE7CiAgICAgICAgX191MzIgaV91bnVzZWQyOwogICAgICAg
IF9fdTMyIGlfb2VmdGZsYWc7CiAgICAgICAgX191MTYgaV9vc3luYzsKICAgICAgICBfX3UzMiBp
X2xhc3RmcmFnOwp9OwojIDI5OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9m
cy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9lZnNfZnNfaS5o
IiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZWZzX2ZzX2kuaCIK
I2RlZmluZSBfX0VGU19GU19JX0hfXwoKdHlwZWRlZiBpbnQzMl90IGVmc19ibG9ja190Owp0eXBl
ZGVmIHVpbnQzMl90IGVmc19pbm9fdDsKCiNkZWZpbmUgRUZTX0RJUkVDVEVYVEVOVFMgMTIKCgoK
CnR5cGVkZWYgdW5pb24gZXh0ZW50X3UgewogICAgICAgIHVuc2lnbmVkIGNoYXIgcmF3WzhdOwog
ICAgICAgIHN0cnVjdCBleHRlbnRfcyB7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZXhf
bWFnaWM6ODsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBleF9ibjoyNDsKICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGludCBleF9sZW5ndGg6ODsKICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBleF9vZmZzZXQ6MjQ7CiAgICAgICAgfSBjb29rZWQ7Cn0gZWZzX2V4dGVudDsKCnR5cGVk
ZWYgc3RydWN0IGVkZXZzIHsKICAgICAgICBzaG9ydCBvZGV2OwogICAgICAgIHVuc2lnbmVkIGlu
dCBuZGV2Owp9IGVmc19kZXZzOwoKCgoKCnN0cnVjdCBlZnNfZGlub2RlIHsKICAgICAgICB1X3No
b3J0IGRpX21vZGU7CiAgICAgICAgc2hvcnQgZGlfbmxpbms7CiAgICAgICAgdV9zaG9ydCBkaV91
aWQ7CiAgICAgICAgdV9zaG9ydCBkaV9naWQ7CiAgICAgICAgaW50MzJfdCBkaV9zaXplOwogICAg
ICAgIGludDMyX3QgZGlfYXRpbWU7CiAgICAgICAgaW50MzJfdCBkaV9tdGltZTsKICAgICAgICBp
bnQzMl90IGRpX2N0aW1lOwogICAgICAgIHVpbnQzMl90IGRpX2dlbjsKICAgICAgICBzaG9ydCBk
aV9udW1leHRlbnRzOwogICAgICAgIHVfY2hhciBkaV92ZXJzaW9uOwogICAgICAgIHVfY2hhciBk
aV9zcGFyZTsKICAgICAgICB1bmlvbiBkaV9hZGRyIHsKICAgICAgICAgICAgICAgIGVmc19leHRl
bnQgZGlfZXh0ZW50c1sxMl07CiAgICAgICAgICAgICAgICBlZnNfZGV2cyBkaV9kZXY7CiAgICAg
ICAgfSBkaV91Owp9OwoKCnN0cnVjdCBlZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgaW50IG51bWV4
dGVudHM7CiAgICAgICAgaW50IGxhc3RleHRlbnQ7CgogICAgICAgIGVmc19leHRlbnQgZXh0ZW50
c1sxMl07Cn07CiMgMjk5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgi
IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvZGFfZnNfaS5oIiAx
CiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb2RhX2ZzX2kuaCIKI2Rl
ZmluZSBfTElOVVhfQ09EQV9GU19JCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3R5cGVzLmgiIDEKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9jb2RhX2ZzX2kuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
bGlzdC5oIiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29kYV9m
c19pLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvZGEuaCIg
MQojIDYwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvZGEuaCIKI2RlZmlu
ZSBfQ09EQV9IRUFERVJfCiMgNzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
Y29kYS5oIgojZGVmaW5lIENPREFfTUFYU1lNTElOS1MgMTAKIyAxMDIgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvY29kYS5oIgojZGVmaW5lIGNkZXZfdCB1X3F1YWRfdAoKCgoK
Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1X3F1YWRfdDsKIyAxMzYgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29kYS5oIgojZGVmaW5lIENPREFfTUFYTkFNTEVOIDI1
NQojZGVmaW5lIENPREFfTUFYUEFUSExFTiAxMDI0CiNkZWZpbmUgQ09EQV9NQVhTWU1MSU5LIDEw
CgoKCgojZGVmaW5lIENfT19SRUFEIDB4MDAxCiNkZWZpbmUgQ19PX1dSSVRFIDB4MDAyCiNkZWZp
bmUgQ19PX1RSVU5DIDB4MDEwCiNkZWZpbmUgQ19PX0VYQ0wgMHgxMDAKI2RlZmluZSBDX09fQ1JF
QVQgMHgyMDAKCgojZGVmaW5lIENfTV9SRUFEIDAwNDAwCiNkZWZpbmUgQ19NX1dSSVRFIDAwMjAw
CgoKI2RlZmluZSBDX0FfQ19PSyA4CiNkZWZpbmUgQ19BX1JfT0sgNAojZGVmaW5lIENfQV9XX09L
IDIKI2RlZmluZSBDX0FfWF9PSyAxCiNkZWZpbmUgQ19BX0ZfT0sgMAoKCgoKI2RlZmluZSBfVkVO
VVNfRElSRU5UX1RfIDEKc3RydWN0IHZlbnVzX2RpcmVudCB7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBkX2ZpbGVubzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBkX3JlY2xlbjsKICAgICAgICB1bnNp
Z25lZCBjaGFyIGRfdHlwZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGRfbmFtbGVuOwogICAgICAg
IGNoYXIgZF9uYW1lWzI1NSArIDFdOwp9OwoKI2RlZmluZSBESVJTSVooZHApICgoc2l6ZW9mIChz
dHJ1Y3QgdmVudXNfZGlyZW50KSAtIChDT0RBX01BWE5BTUxFTisxKSkgKyAoKChkcCktPmRfbmFt
bGVuKzEgKyAzKSAmfiAzKSkKCgoKCgojZGVmaW5lIENEVF9VTktOT1dOIDAKI2RlZmluZSBDRFRf
RklGTyAxCiNkZWZpbmUgQ0RUX0NIUiAyCiNkZWZpbmUgQ0RUX0RJUiA0CiNkZWZpbmUgQ0RUX0JM
SyA2CiNkZWZpbmUgQ0RUX1JFRyA4CiNkZWZpbmUgQ0RUX0xOSyAxMAojZGVmaW5lIENEVF9TT0NL
IDEyCiNkZWZpbmUgQ0RUX1dIVCAxNAoKCgoKI2RlZmluZSBJRlRPQ0RUKG1vZGUpICgoKG1vZGUp
ICYgMDE3MDAwMCkgPj4gMTIpCiNkZWZpbmUgQ0RUVE9JRihkaXJ0eXBlKSAoKGRpcnR5cGUpIDw8
IDEyKQoKCgoKI2RlZmluZSBfRklEX1RfIDEKdHlwZWRlZiB1X2xvbmcgVm9sdW1lSWQ7CnR5cGVk
ZWYgdV9sb25nIFZub2RlSWQ7CnR5cGVkZWYgdV9sb25nIFVuaXF1ZV90Owp0eXBlZGVmIHVfbG9u
ZyBGaWxlVmVyc2lvbjsKCgoKI2RlZmluZSBfVklDRUZJRF9UXyAxCnR5cGVkZWYgc3RydWN0IFZp
Y2VGaWQgewogICAgVm9sdW1lSWQgVm9sdW1lOwogICAgVm5vZGVJZCBWbm9kZTsKICAgIFVuaXF1
ZV90IFVuaXF1ZTsKfSBWaWNlRmlkOwoKCgoKc3RhdGljIF9faW5saW5lX18gaW5vX3QgY29kYV9m
Mmkoc3RydWN0IFZpY2VGaWQgKmZpZCkKewogICAgICAgIGlmICggISBmaWQgKQogICAgICAgICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgICAgaWYgKGZpZC0+Vm5vZGUgPT0gMHhmZmZmZmZmZSB8fCBm
aWQtPlZub2RlID09IDB4ZmZmZmZmZmYpCiAgICAgICAgICAgICAgICByZXR1cm4gKChmaWQtPlZv
bHVtZSA8PCAyMCkgfCAoZmlkLT5VbmlxdWUgJiAweGZmZmZmKSk7CiAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgcmV0dXJuIChmaWQtPlVuaXF1ZSArIChmaWQtPlZub2RlPDwxMCkgKyAoZmlk
LT5Wb2x1bWU8PDIwKSk7Cn0KIyAyMzIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvY29kYS5oIgojZGVmaW5lIF9WVUlEX1RfCnR5cGVkZWYgdV9pbnQzMl90IHZ1aWRfdDsKdHlw
ZWRlZiB1X2ludDMyX3QgdmdpZF90OwoKCgojZGVmaW5lIF9DT0RBQ1JFRF9UXwpzdHJ1Y3QgY29k
YV9jcmVkIHsKICAgIHZ1aWRfdCBjcl91aWQsIGNyX2V1aWQsIGNyX3N1aWQsIGNyX2ZzdWlkOwog
ICAgdmdpZF90IGNyX2dyb3VwaWQsIGNyX2VnaWQsIGNyX3NnaWQsIGNyX2ZzZ2lkOwp9OwoKCgoj
ZGVmaW5lIF9WRU5VU19WQVRUUl9UXwoKCgplbnVtIGNvZGFfdnR5cGUgeyBDX1ZOT04sIENfVlJF
RywgQ19WRElSLCBDX1ZCTEssIENfVkNIUiwgQ19WTE5LLCBDX1ZTT0NLLCBDX1ZGSUZPLCBDX1ZC
QUQgfTsKCnN0cnVjdCBjb2RhX3ZhdHRyIHsKICAgICAgICBsb25nIHZhX3R5cGU7CiAgICAgICAg
dV9zaG9ydCB2YV9tb2RlOwogICAgICAgIHNob3J0IHZhX25saW5rOwogICAgICAgIHZ1aWRfdCB2
YV91aWQ7CiAgICAgICAgdmdpZF90IHZhX2dpZDsKICAgICAgICBsb25nIHZhX2ZpbGVpZDsKICAg
ICAgICB1X3F1YWRfdCB2YV9zaXplOwogICAgICAgIGxvbmcgdmFfYmxvY2tzaXplOwogICAgICAg
IHN0cnVjdCB0aW1lc3BlYyB2YV9hdGltZTsKICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgdmFfbXRp
bWU7CiAgICAgICAgc3RydWN0IHRpbWVzcGVjIHZhX2N0aW1lOwogICAgICAgIHVfbG9uZyB2YV9n
ZW47CiAgICAgICAgdV9sb25nIHZhX2ZsYWdzOwogICAgICAgIHVfcXVhZF90IHZhX3JkZXY7CiAg
ICAgICAgdV9xdWFkX3QgdmFfYnl0ZXM7CiAgICAgICAgdV9xdWFkX3QgdmFfZmlsZXJldjsKfTsK
CgoKCnN0cnVjdCBjb2RhX3N0YXRmcyB7CiAgICBpbnQzMl90IGZfYmxvY2tzOwogICAgaW50MzJf
dCBmX2JmcmVlOwogICAgaW50MzJfdCBmX2JhdmFpbDsKICAgIGludDMyX3QgZl9maWxlczsKICAg
IGludDMyX3QgZl9mZnJlZTsKfTsKCgoKCgojZGVmaW5lIENPREFfUk9PVCAyCiNkZWZpbmUgQ09E
QV9PUEVOX0JZX0ZEIDMKI2RlZmluZSBDT0RBX09QRU4gNAojZGVmaW5lIENPREFfQ0xPU0UgNQoj
ZGVmaW5lIENPREFfSU9DVEwgNgojZGVmaW5lIENPREFfR0VUQVRUUiA3CiNkZWZpbmUgQ09EQV9T
RVRBVFRSIDgKI2RlZmluZSBDT0RBX0FDQ0VTUyA5CiNkZWZpbmUgQ09EQV9MT09LVVAgMTAKI2Rl
ZmluZSBDT0RBX0NSRUFURSAxMQojZGVmaW5lIENPREFfUkVNT1ZFIDEyCiNkZWZpbmUgQ09EQV9M
SU5LIDEzCiNkZWZpbmUgQ09EQV9SRU5BTUUgMTQKI2RlZmluZSBDT0RBX01LRElSIDE1CiNkZWZp
bmUgQ09EQV9STURJUiAxNgojZGVmaW5lIENPREFfU1lNTElOSyAxOAojZGVmaW5lIENPREFfUkVB
RExJTksgMTkKI2RlZmluZSBDT0RBX0ZTWU5DIDIwCiNkZWZpbmUgQ09EQV9WR0VUIDIyCiNkZWZp
bmUgQ09EQV9TSUdOQUwgMjMKI2RlZmluZSBDT0RBX1JFUExBQ0UgMjQKI2RlZmluZSBDT0RBX0ZM
VVNIIDI1CiNkZWZpbmUgQ09EQV9QVVJHRVVTRVIgMjYKI2RlZmluZSBDT0RBX1pBUEZJTEUgMjcK
I2RlZmluZSBDT0RBX1pBUERJUiAyOAojZGVmaW5lIENPREFfUFVSR0VGSUQgMzAKI2RlZmluZSBD
T0RBX09QRU5fQllfUEFUSCAzMQojZGVmaW5lIENPREFfUkVTT0xWRSAzMgojZGVmaW5lIENPREFf
UkVJTlRFR1JBVEUgMzMKI2RlZmluZSBDT0RBX1NUQVRGUyAzNAojZGVmaW5lIENPREFfU1RPUkUg
MzUKI2RlZmluZSBDT0RBX1JFTEVBU0UgMzYKI2RlZmluZSBDT0RBX05DQUxMUyAzNwoKI2RlZmlu
ZSBET1dOQ0FMTChvcGNvZGUpIChvcGNvZGUgPj0gQ09EQV9SRVBMQUNFICYmIG9wY29kZSA8PSBD
T0RBX1BVUkdFRklEKQoKI2RlZmluZSBWQ19NQVhEQVRBU0laRSA4MTkyCiNkZWZpbmUgVkNfTUFY
TVNHU0laRSBzaXplb2YodW5pb24gaW5wdXRBcmdzKStzaXplb2YodW5pb24gb3V0cHV0QXJncykg
KyBWQ19NQVhEQVRBU0laRQoKCiNkZWZpbmUgQ0lPQ19LRVJORUxfVkVSU0lPTiBfSU9XUignYycs
IDEwLCBzaXplb2YgKGludCkpCgoKCgoKI2RlZmluZSBDT0RBX0tFUk5FTF9WRVJTSU9OIDIKCgoK
CnN0cnVjdCBjb2RhX2luX2hkciB7CiAgICB1bnNpZ25lZCBsb25nIG9wY29kZTsKICAgIHVuc2ln
bmVkIGxvbmcgdW5pcXVlOwogICAgdV9zaG9ydCBwaWQ7CiAgICB1X3Nob3J0IHBnaWQ7CiAgICB1
X3Nob3J0IHNpZDsKICAgIHN0cnVjdCBjb2RhX2NyZWQgY3JlZDsKfTsKCgpzdHJ1Y3QgY29kYV9v
dXRfaGRyIHsKICAgIHVuc2lnbmVkIGxvbmcgb3Bjb2RlOwogICAgdW5zaWduZWQgbG9uZyB1bmlx
dWU7CiAgICB1bnNpZ25lZCBsb25nIHJlc3VsdDsKfTsKCgpzdHJ1Y3QgY29kYV9yb290X291dCB7
CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgVmljZUZpZCBWRmlkOwp9OwoKc3RydWN0
IGNvZGFfcm9vdF9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaW47Cn07CgoKc3RydWN0IGNv
ZGFfb3Blbl9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7
CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9vcGVuX291dCB7CiAgICBzdHJ1Y3QgY29k
YV9vdXRfaGRyIG9oOwogICAgdV9xdWFkX3QgZGV2OwogICAgaW5vX3QgaW5vZGU7Cn07CgoKCnN0
cnVjdCBjb2RhX3N0b3JlX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VG
aWQgVkZpZDsKICAgIGludCBmbGFnczsKfTsKCnN0cnVjdCBjb2RhX3N0b3JlX291dCB7CiAgICBz
dHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9yZWxlYXNlX2luIHsKICAg
IHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIGludCBmbGFnczsK
fTsKCnN0cnVjdCBjb2RhX3JlbGVhc2Vfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb3V0
Owp9OwoKCnN0cnVjdCBjb2RhX2Nsb3NlX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsK
ICAgIFZpY2VGaWQgVkZpZDsKICAgIGludCBmbGFnczsKfTsKCnN0cnVjdCBjb2RhX2Nsb3NlX291
dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9pb2N0bF9p
biB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBpbnQg
Y21kOwogICAgaW50IGxlbjsKICAgIGludCByd2ZsYWc7CiAgICBjaGFyICpkYXRhOwp9OwoKc3Ry
dWN0IGNvZGFfaW9jdGxfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBpbnQg
bGVuOwogICAgY2FkZHJfdCBkYXRhOwp9OwoKCgpzdHJ1Y3QgY29kYV9nZXRhdHRyX2luIHsKICAg
IHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKfTsKCnN0cnVjdCBjb2Rh
X2dldGF0dHJfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBzdHJ1Y3QgY29k
YV92YXR0ciBhdHRyOwp9OwoKCgpzdHJ1Y3QgY29kYV9zZXRhdHRyX2luIHsKICAgIHN0cnVjdCBj
b2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIHN0cnVjdCBjb2RhX3ZhdHRyIGF0
dHI7Cn07CgpzdHJ1Y3QgY29kYV9zZXRhdHRyX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRy
IG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9hY2Nlc3NfaW4gewogICAgc3RydWN0IGNvZGFfaW5faGRy
IGloOwogICAgVmljZUZpZCBWRmlkOwogICAgaW50IGZsYWdzOwp9OwoKc3RydWN0IGNvZGFfYWNj
ZXNzX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgoKI2RlZmluZSBDTFVf
Q0FTRV9TRU5TSVRJVkUgMHgwMQojZGVmaW5lIENMVV9DQVNFX0lOU0VOU0lUSVZFIDB4MDIKCgpz
dHJ1Y3QgY29kYV9sb29rdXBfaW4gewogICAgc3RydWN0IGNvZGFfaW5faGRyIGloOwogICAgVmlj
ZUZpZCBWRmlkOwogICAgaW50IG5hbWU7CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9s
b29rdXBfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBWaWNlRmlkIFZGaWQ7
CiAgICBpbnQgdnR5cGU7Cn07CgoKCnN0cnVjdCBjb2RhX2NyZWF0ZV9pbiB7CiAgICBzdHJ1Y3Qg
Y29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBzdHJ1Y3QgY29kYV92YXR0ciBh
dHRyOwogICAgaW50IGV4Y2w7CiAgICBpbnQgbW9kZTsKICAgIGludCBuYW1lOwp9OwoKc3RydWN0
IGNvZGFfY3JlYXRlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgVmljZUZp
ZCBWRmlkOwogICAgc3RydWN0IGNvZGFfdmF0dHIgYXR0cjsKfTsKCgoKc3RydWN0IGNvZGFfcmVt
b3ZlX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAg
IGludCBuYW1lOwp9OwoKc3RydWN0IGNvZGFfcmVtb3ZlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9v
dXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9saW5rX2luIHsKICAgIHN0cnVjdCBjb2RhX2lu
X2hkciBpaDsKICAgIFZpY2VGaWQgc291cmNlRmlkOwogICAgVmljZUZpZCBkZXN0RmlkOwogICAg
aW50IHRuYW1lOwp9OwoKc3RydWN0IGNvZGFfbGlua19vdXQgewogICAgc3RydWN0IGNvZGFfb3V0
X2hkciBvdXQ7Cn07CgoKCnN0cnVjdCBjb2RhX3JlbmFtZV9pbiB7CiAgICBzdHJ1Y3QgY29kYV9p
bl9oZHIgaWg7CiAgICBWaWNlRmlkIHNvdXJjZUZpZDsKICAgIGludCBzcmNuYW1lOwogICAgVmlj
ZUZpZCBkZXN0RmlkOwogICAgaW50IGRlc3RuYW1lOwp9OwoKc3RydWN0IGNvZGFfcmVuYW1lX291
dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV9ta2Rpcl9p
biB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBzdHJ1
Y3QgY29kYV92YXR0ciBhdHRyOwogICAgaW50IG5hbWU7Cn07CgpzdHJ1Y3QgY29kYV9ta2Rpcl9v
dXQgewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBvaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIHN0
cnVjdCBjb2RhX3ZhdHRyIGF0dHI7Cn07CgoKCnN0cnVjdCBjb2RhX3JtZGlyX2luIHsKICAgIHN0
cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKICAgIGludCBuYW1lOwp9OwoK
c3RydWN0IGNvZGFfcm1kaXJfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb3V0Owp9OwoK
CnN0cnVjdCBjb2RhX3N5bWxpbmtfaW4gewogICAgc3RydWN0IGNvZGFfaW5faGRyIGloOwogICAg
VmljZUZpZCBWRmlkOwogICAgaW50IHNyY25hbWU7CiAgICBzdHJ1Y3QgY29kYV92YXR0ciBhdHRy
OwogICAgaW50IHRuYW1lOwp9OwoKc3RydWN0IGNvZGFfc3ltbGlua19vdXQgewogICAgc3RydWN0
IGNvZGFfb3V0X2hkciBvdXQ7Cn07CgoKc3RydWN0IGNvZGFfcmVhZGxpbmtfaW4gewogICAgc3Ry
dWN0IGNvZGFfaW5faGRyIGloOwogICAgVmljZUZpZCBWRmlkOwp9OwoKc3RydWN0IGNvZGFfcmVh
ZGxpbmtfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBpbnQgY291bnQ7CiAg
ICBjYWRkcl90IGRhdGE7Cn07CgoKCnN0cnVjdCBjb2RhX2ZzeW5jX2luIHsKICAgIHN0cnVjdCBj
b2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKfTsKCnN0cnVjdCBjb2RhX2ZzeW5jX291
dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG91dDsKfTsKCgpzdHJ1Y3QgY29kYV92Z2V0X2lu
IHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBpaDsKICAgIFZpY2VGaWQgVkZpZDsKfTsKCnN0cnVj
dCBjb2RhX3ZnZXRfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICBWaWNlRmlk
IFZGaWQ7CiAgICBpbnQgdnR5cGU7Cn07CiMgNjE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2NvZGEuaCIKc3RydWN0IGNvZGFfcHVyZ2V1c2VyX291dCB7CiAgICBzdHJ1Y3Qg
Y29kYV9vdXRfaGRyIG9oOwogICAgc3RydWN0IGNvZGFfY3JlZCBjcmVkOwp9OwoKCgpzdHJ1Y3Qg
Y29kYV96YXBmaWxlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgVmljZUZp
ZCBDb2RhRmlkOwp9OwoKCgpzdHJ1Y3QgY29kYV96YXBkaXJfb3V0IHsKICAgIHN0cnVjdCBjb2Rh
X291dF9oZHIgb2g7CiAgICBWaWNlRmlkIENvZGFGaWQ7Cn07CgoKCnN0cnVjdCBjb2RhX3phcHZu
b2RlX291dCB7CiAgICBzdHJ1Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgc3RydWN0IGNvZGFfY3Jl
ZCBjcmVkOwogICAgVmljZUZpZCBWRmlkOwp9OwoKCgpzdHJ1Y3QgY29kYV9wdXJnZWZpZF9vdXQg
ewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBvaDsKICAgIFZpY2VGaWQgQ29kYUZpZDsKfTsKCgoK
c3RydWN0IGNvZGFfcmVwbGFjZV9vdXQgewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBvaDsKICAg
IFZpY2VGaWQgTmV3RmlkOwogICAgVmljZUZpZCBPbGRGaWQ7Cn07CgoKc3RydWN0IGNvZGFfb3Bl
bl9ieV9mZF9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIgaWg7CiAgICBWaWNlRmlkIFZGaWQ7
CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9vcGVuX2J5X2ZkX291dCB7CiAgICBzdHJ1
Y3QgY29kYV9vdXRfaGRyIG9oOwogICAgaW50IGZkOwoKCiAgICBzdHJ1Y3QgZmlsZSAqZmg7Cgp9
OwoKCnN0cnVjdCBjb2RhX29wZW5fYnlfcGF0aF9pbiB7CiAgICBzdHJ1Y3QgY29kYV9pbl9oZHIg
aWg7CiAgICBWaWNlRmlkIFZGaWQ7CiAgICBpbnQgZmxhZ3M7Cn07CgpzdHJ1Y3QgY29kYV9vcGVu
X2J5X3BhdGhfb3V0IHsKICAgIHN0cnVjdCBjb2RhX291dF9oZHIgb2g7CiAgICAgICAgaW50IHBh
dGg7Cn07CgoKc3RydWN0IGNvZGFfc3RhdGZzX2luIHsKICAgIHN0cnVjdCBjb2RhX2luX2hkciBp
bjsKfTsKCnN0cnVjdCBjb2RhX3N0YXRmc19vdXQgewogICAgc3RydWN0IGNvZGFfb3V0X2hkciBv
aDsKICAgIHN0cnVjdCBjb2RhX3N0YXRmcyBzdGF0Owp9OwoKCgoKCgojZGVmaW5lIENPREFfTk9D
QUNIRSAweDgwMDAwMDAwCgp1bmlvbiBpbnB1dEFyZ3MgewogICAgc3RydWN0IGNvZGFfaW5faGRy
IGloOwogICAgc3RydWN0IGNvZGFfb3Blbl9pbiBjb2RhX29wZW47CiAgICBzdHJ1Y3QgY29kYV9z
dG9yZV9pbiBjb2RhX3N0b3JlOwogICAgc3RydWN0IGNvZGFfcmVsZWFzZV9pbiBjb2RhX3JlbGVh
c2U7CiAgICBzdHJ1Y3QgY29kYV9jbG9zZV9pbiBjb2RhX2Nsb3NlOwogICAgc3RydWN0IGNvZGFf
aW9jdGxfaW4gY29kYV9pb2N0bDsKICAgIHN0cnVjdCBjb2RhX2dldGF0dHJfaW4gY29kYV9nZXRh
dHRyOwogICAgc3RydWN0IGNvZGFfc2V0YXR0cl9pbiBjb2RhX3NldGF0dHI7CiAgICBzdHJ1Y3Qg
Y29kYV9hY2Nlc3NfaW4gY29kYV9hY2Nlc3M7CiAgICBzdHJ1Y3QgY29kYV9sb29rdXBfaW4gY29k
YV9sb29rdXA7CiAgICBzdHJ1Y3QgY29kYV9jcmVhdGVfaW4gY29kYV9jcmVhdGU7CiAgICBzdHJ1
Y3QgY29kYV9yZW1vdmVfaW4gY29kYV9yZW1vdmU7CiAgICBzdHJ1Y3QgY29kYV9saW5rX2luIGNv
ZGFfbGluazsKICAgIHN0cnVjdCBjb2RhX3JlbmFtZV9pbiBjb2RhX3JlbmFtZTsKICAgIHN0cnVj
dCBjb2RhX21rZGlyX2luIGNvZGFfbWtkaXI7CiAgICBzdHJ1Y3QgY29kYV9ybWRpcl9pbiBjb2Rh
X3JtZGlyOwogICAgc3RydWN0IGNvZGFfc3ltbGlua19pbiBjb2RhX3N5bWxpbms7CiAgICBzdHJ1
Y3QgY29kYV9yZWFkbGlua19pbiBjb2RhX3JlYWRsaW5rOwogICAgc3RydWN0IGNvZGFfZnN5bmNf
aW4gY29kYV9mc3luYzsKICAgIHN0cnVjdCBjb2RhX3ZnZXRfaW4gY29kYV92Z2V0OwogICAgc3Ry
dWN0IGNvZGFfb3Blbl9ieV9mZF9pbiBjb2RhX29wZW5fYnlfZmQ7CiAgICBzdHJ1Y3QgY29kYV9v
cGVuX2J5X3BhdGhfaW4gY29kYV9vcGVuX2J5X3BhdGg7CiAgICBzdHJ1Y3QgY29kYV9zdGF0ZnNf
aW4gY29kYV9zdGF0ZnM7Cn07Cgp1bmlvbiBvdXRwdXRBcmdzIHsKICAgIHN0cnVjdCBjb2RhX291
dF9oZHIgb2g7CiAgICBzdHJ1Y3QgY29kYV9yb290X291dCBjb2RhX3Jvb3Q7CiAgICBzdHJ1Y3Qg
Y29kYV9vcGVuX291dCBjb2RhX29wZW47CiAgICBzdHJ1Y3QgY29kYV9pb2N0bF9vdXQgY29kYV9p
b2N0bDsKICAgIHN0cnVjdCBjb2RhX2dldGF0dHJfb3V0IGNvZGFfZ2V0YXR0cjsKICAgIHN0cnVj
dCBjb2RhX2xvb2t1cF9vdXQgY29kYV9sb29rdXA7CiAgICBzdHJ1Y3QgY29kYV9jcmVhdGVfb3V0
IGNvZGFfY3JlYXRlOwogICAgc3RydWN0IGNvZGFfbWtkaXJfb3V0IGNvZGFfbWtkaXI7CiAgICBz
dHJ1Y3QgY29kYV9yZWFkbGlua19vdXQgY29kYV9yZWFkbGluazsKICAgIHN0cnVjdCBjb2RhX3Zn
ZXRfb3V0IGNvZGFfdmdldDsKICAgIHN0cnVjdCBjb2RhX3B1cmdldXNlcl9vdXQgY29kYV9wdXJn
ZXVzZXI7CiAgICBzdHJ1Y3QgY29kYV96YXBmaWxlX291dCBjb2RhX3phcGZpbGU7CiAgICBzdHJ1
Y3QgY29kYV96YXBkaXJfb3V0IGNvZGFfemFwZGlyOwogICAgc3RydWN0IGNvZGFfemFwdm5vZGVf
b3V0IGNvZGFfemFwdm5vZGU7CiAgICBzdHJ1Y3QgY29kYV9wdXJnZWZpZF9vdXQgY29kYV9wdXJn
ZWZpZDsKICAgIHN0cnVjdCBjb2RhX3JlcGxhY2Vfb3V0IGNvZGFfcmVwbGFjZTsKICAgIHN0cnVj
dCBjb2RhX29wZW5fYnlfZmRfb3V0IGNvZGFfb3Blbl9ieV9mZDsKICAgIHN0cnVjdCBjb2RhX29w
ZW5fYnlfcGF0aF9vdXQgY29kYV9vcGVuX2J5X3BhdGg7CiAgICBzdHJ1Y3QgY29kYV9zdGF0ZnNf
b3V0IGNvZGFfc3RhdGZzOwp9OwoKdW5pb24gY29kYV9kb3duY2FsbHMgewoKCiAgICBzdHJ1Y3Qg
Y29kYV9wdXJnZXVzZXJfb3V0IHB1cmdldXNlcjsKICAgIHN0cnVjdCBjb2RhX3phcGZpbGVfb3V0
IHphcGZpbGU7CiAgICBzdHJ1Y3QgY29kYV96YXBkaXJfb3V0IHphcGRpcjsKICAgIHN0cnVjdCBj
b2RhX3phcHZub2RlX291dCB6YXB2bm9kZTsKICAgIHN0cnVjdCBjb2RhX3B1cmdlZmlkX291dCBw
dXJnZWZpZDsKICAgIHN0cnVjdCBjb2RhX3JlcGxhY2Vfb3V0IHJlcGxhY2U7Cn07CgoKCgoKCiNk
ZWZpbmUgUElPQ1BBUk1fTUFTSyAweDAwMDBmZmZmCnN0cnVjdCBWaWNlSW9jdGwgewogICAgICAg
IGNhZGRyX3QgaW4sIG91dDsKICAgICAgICBzaG9ydCBpbl9zaXplOwogICAgICAgIHNob3J0IG91
dF9zaXplOwp9OwoKc3RydWN0IFBpb2N0bERhdGEgewogICAgICAgIGNvbnN0IGNoYXIgKnBhdGg7
CiAgICAgICAgaW50IGZvbGxvdzsKICAgICAgICBzdHJ1Y3QgVmljZUlvY3RsIHZpOwp9OwoKI2Rl
ZmluZSBDT0RBX0NPTlRST0wgIi5DT05UUk9MIgojZGVmaW5lIENPREFfQ09OVFJPTExFTiA4CiNk
ZWZpbmUgQ1RMX1ZPTCAtMQojZGVmaW5lIENUTF9WTk8gLTEKI2RlZmluZSBDVExfVU5JIC0xCiNk
ZWZpbmUgQ1RMX0lOTyAtMQojZGVmaW5lIENUTF9GSUxFICIvY29kYS8uQ09OVFJPTCIKCgojZGVm
aW5lIElTX0NUTF9GSUQoZmlkcCkgKChmaWRwKS0+Vm9sdW1lID09IENUTF9WT0wgJiYgKGZpZHAp
LT5Wbm9kZSA9PSBDVExfVk5PICYmIChmaWRwKS0+VW5pcXVlID09IENUTF9VTkkpCgoKCgoKI2Rl
ZmluZSBDT0RBX01PVU5UX1ZFUlNJT04gMQoKc3RydWN0IGNvZGFfbW91bnRfZGF0YSB7CiAgICAg
ICAgaW50IHZlcnNpb247CiAgICAgICAgaW50IGZkOwp9OwojIDE1ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2NvZGFfZnNfaS5oIiAyCgoKCgpzdHJ1Y3QgY29kYV9pbm9kZV9p
bmZvIHsKICAgICAgICBzdHJ1Y3QgVmljZUZpZCBjX2ZpZDsKICAgICAgICB1X3Nob3J0IGNfZmxh
Z3M7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBjX2NpbGlzdDsKICAgICAgICBzdHJ1Y3QgZmls
ZSAqY19jb250YWluZXI7CiAgICAgICAgdW5zaWduZWQgaW50IGNfY29udGNvdW50OwogICAgICAg
IHN0cnVjdCBjb2RhX2NyZWQgY19jYWNoZWRfY3JlZDsKICAgICAgICB1bnNpZ25lZCBpbnQgY19j
YWNoZWRfcGVybTsKfTsKCgojZGVmaW5lIENfVkFUVFIgMHgxCiNkZWZpbmUgQ19GTFVTSCAweDIK
I2RlZmluZSBDX0RZSU5HIDB4NAojZGVmaW5lIENfUFVSR0UgMHg4CgppbnQgY29kYV9jbm9kZV9t
YWtlKHN0cnVjdCBpbm9kZSAqKiwgc3RydWN0IFZpY2VGaWQgKiwgc3RydWN0IHN1cGVyX2Jsb2Nr
ICopOwppbnQgY29kYV9jbm9kZV9tYWtlY3RsKHN0cnVjdCBpbm9kZSAqKmlub2RlLCBzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKnNiKTsKc3RydWN0IGlub2RlICpjb2RhX2ZpZF90b19pbm9kZShWaWNlRmlk
ICpmaWQsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpOwp2b2lkIGNvZGFfcmVwbGFjZV9maWQoc3Ry
dWN0IGlub2RlICosIFZpY2VGaWQgKiwgVmljZUZpZCAqKTsKIyAzMDAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvcm9tZnNfZnNfaS5oIiAxCgojZGVmaW5lIF9fUk9NRlNfRlNfSQoKCgpzdHJ1
Y3Qgcm9tZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpX21ldGFzaXplOwog
ICAgICAgIHVuc2lnbmVkIGxvbmcgaV9kYXRhb2Zmc2V0Owp9OwojIDMwMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9zaG1lbV9mcy5oIiAxCgojZGVmaW5lIF9fU0hNRU1fRlNfSAoKCgojZGVm
aW5lIFNITUVNX05SX0RJUkVDVCAxNgojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3NobWVtX2ZzLmgiCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICB1bnNpZ25lZCBsb25n
IHZhbDsKfSBzd3BfZW50cnlfdDsKCnN0cnVjdCBzaG1lbV9pbm9kZV9pbmZvIHsKICAgICAgICBz
cGlubG9ja190IGxvY2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBtYXhfaW5kZXg7CiAgICAgICAg
c3dwX2VudHJ5X3QgaV9kaXJlY3RbMTZdOwogICAgICAgIHN3cF9lbnRyeV90ICoqaV9pbmRpcmVj
dDsKICAgICAgICB1bnNpZ25lZCBsb25nIHN3YXBwZWQ7CiAgICAgICAgaW50IGxvY2tlZDsKICAg
ICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Cn07CgpzdHJ1Y3Qgc2htZW1fc2JfaW5mbyB7CiAg
ICAgICAgdW5zaWduZWQgbG9uZyBtYXhfYmxvY2tzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZnJl
ZV9ibG9ja3M7CiAgICAgICAgdW5zaWduZWQgbG9uZyBtYXhfaW5vZGVzOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgZnJlZV9pbm9kZXM7CiAgICAgICAgc3BpbmxvY2tfdCBzdGF0X2xvY2s7Cn07CiMg
MzAyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYl9mc19pLmgiIDEKIyAxMCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zbWJfZnNfaS5oIgojZGVmaW5lIF9MSU5VWF9T
TUJfRlNfSQoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5o
IiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc21iX2ZzX2kuaCIg
MgoKCgoKc3RydWN0IHNtYl9pbm9kZV9pbmZvIHsKCgoKCgogICAgICAgIHVuc2lnbmVkIGludCBv
cGVuOwogICAgICAgIF9fdTE2IGZpbGVpZDsKICAgICAgICBfX3UxNiBhdHRyOwoKICAgICAgICBf
X3UxNiBhY2Nlc3M7CiAgICAgICAgX191MTYgZmxhZ3M7CiAgICAgICAgdW5zaWduZWQgbG9uZyBv
bGRtdGltZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGNsb3NlZDsKICAgICAgICB1bnNpZ25lZCBv
cGVuZXJzOwp9OwojIDMwMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9oZnNfZnNfaS5oIiAx
CiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaGZzX2ZzX2kuaCIKI2Rl
ZmluZSBfTElOVVhfSEZTX0ZTX0lfSAoKCgoKCgpzdHJ1Y3QgaGZzX2lub2RlX2luZm8gewogICAg
ICAgIGludCBtYWdpYzsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBtbXVfcHJpdmF0ZTsKICAgICAg
ICBzdHJ1Y3QgaGZzX2NhdF9lbnRyeSAqZW50cnk7CgoKICAgICAgICBzdHJ1Y3QgaGZzX2Zvcmsg
KmZvcms7CiAgICAgICAgaW50IGNvbnZlcnQ7CgoKICAgICAgICBpbm9fdCBmaWxlX3R5cGU7CiAg
ICAgICAgY2hhciBkaXJfc2l6ZTsKCgogICAgICAgIGNvbnN0IHN0cnVjdCBoZnNfaGRyX2xheW91
dCAqZGVmYXVsdF9sYXlvdXQ7CiAgICAgICAgc3RydWN0IGhmc19oZHJfbGF5b3V0ICpsYXlvdXQ7
CgoKICAgICAgICBpbnQgdHpfc2Vjb25kc3dlc3Q7CgoKICAgICAgICB2b2lkICgqZF9kcm9wX29w
KShzdHJ1Y3QgZGVudHJ5ICosIGNvbnN0IGlub190KTsKfTsKIyAzMDQgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvYWRmc19mc19pLmgiIDEKCgoKCgoKCiNkZWZpbmUgX0FERlNfRlNfSQoKCgoK
c3RydWN0IGFkZnNfaW5vZGVfaW5mbyB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBtbXVfcHJpdmF0
ZTsKICAgICAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9pZDsKICAgICAgICBfX3UzMiBsb2FkYWRk
cjsKICAgICAgICBfX3UzMiBleGVjYWRkcjsKICAgICAgICB1bnNpZ25lZCBpbnQgZmlsZXR5cGU7
CiAgICAgICAgdW5zaWduZWQgaW50IGF0dHI7CiAgICAgICAgaW50IHN0YW1wZWQ6MTsKfTsKIyAz
MDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcW54NF9mc19pLmgiIDEKIyAxMiAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzX2kuaCIKI2RlZmluZSBfUU5YNF9G
U19JCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcW54dHlwZXMuaCIg
MQojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3FueHR5cGVzLmgiCiNk
ZWZpbmUgX1FOWDRUWVBFU19ICgp0eXBlZGVmIF9fdTE2IHFueDRfbnh0bnRfdDsKdHlwZWRlZiBf
X3U4IHFueDRfZnR5cGVfdDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3UzMiB4dG50X2Js
azsKICAgICAgICBfX3UzMiB4dG50X3NpemU7Cn0gcW54NF94dG50X3Q7Cgp0eXBlZGVmIF9fdTE2
IHFueDRfbW9kZV90Owp0eXBlZGVmIF9fdTE2IHFueDRfbXVpZF90Owp0eXBlZGVmIF9fdTE2IHFu
eDRfbWdpZF90Owp0eXBlZGVmIF9fdTMyIHFueDRfb2ZmX3Q7CnR5cGVkZWYgX191MTYgcW54NF9u
bGlua190OwojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3FueDRfZnNf
aS5oIiAyCgoKCgpzdHJ1Y3QgcW54NF9pbm9kZV9pbmZvIHsKICAgICAgICBjaGFyIGlfcmVzZXJ2
ZWRbMTZdOwogICAgICAgIHFueDRfb2ZmX3QgaV9zaXplOwogICAgICAgIHFueDRfeHRudF90IGlf
Zmlyc3RfeHRudDsKICAgICAgICBfX3UzMiBpX3hibGs7CiAgICAgICAgX19zMzIgaV9mdGltZTsK
ICAgICAgICBfX3MzMiBpX210aW1lOwogICAgICAgIF9fczMyIGlfYXRpbWU7CiAgICAgICAgX19z
MzIgaV9jdGltZTsKICAgICAgICBxbng0X254dG50X3QgaV9udW1feHRudHM7CiAgICAgICAgcW54
NF9tb2RlX3QgaV9tb2RlOwogICAgICAgIHFueDRfbXVpZF90IGlfdWlkOwogICAgICAgIHFueDRf
bWdpZF90IGlfZ2lkOwogICAgICAgIHFueDRfbmxpbmtfdCBpX25saW5rOwogICAgICAgIF9fdTgg
aV96ZXJvWzRdOwogICAgICAgIHFueDRfZnR5cGVfdCBpX3R5cGU7CiAgICAgICAgX191OCBpX3N0
YXR1czsKICAgICAgICB1bnNpZ25lZCBsb25nIG1tdV9wcml2YXRlOwp9OwojIDMwNiAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9yZWlzZXJmc19mc19pLmgiIDEKCiNkZWZpbmUgX1JFSVNFUl9G
U19JCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMg
NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yZWlzZXJmc19mc19pLmgiIDIK
CnN0cnVjdCByZWlzZXJmc19pbm9kZV9pbmZvIHsKICBfX3UzMiBpX2tleSBbNF07CgoKCgoKCiAg
aW50IGlfdmVyc2lvbjsKCiAgaW50IGlfcGFja19vbl9jbG9zZSA7CgogIF9fdTMyIGlfZmlyc3Rf
ZGlyZWN0X2J5dGU7CiMgMzUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcmVp
c2VyZnNfZnNfaS5oIgogIGludCBpX3ByZWFsbG9jX2Jsb2NrOwogIGludCBpX3ByZWFsbG9jX2Nv
dW50OwogIHN0cnVjdCBsaXN0X2hlYWQgaV9wcmVhbGxvY19saXN0OwoKCgoKICBpbnQgbm9wYWNr
Owp9OwojIDMwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9iZnNfZnNfaS5oIiAxCgoKCgoK
CiNkZWZpbmUgX0xJTlVYX0JGU19GU19JCgoKCgpzdHJ1Y3QgYmZzX2lub2RlX2luZm8gewogICAg
ICAgIHVuc2lnbmVkIGxvbmcgaV9kc2tfaW5vOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaV9zYmxv
Y2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpX2VibG9jazsKfTsKIyAzMDggIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvdWRmX2ZzX2kuaCIgMQojIDE5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3VkZl9mc19pLmgiCiNkZWZpbmUgX0xJTlVYX1VERl9GU19JX0gKIyAzMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZfZnNfaS5oIgpzdHJ1Y3QgdWRm
X2lub2RlX2luZm8KewogICAgICAgIGxvbmcgaV91bXRpbWU7CiAgICAgICAgbG9uZyBpX3VjdGlt
ZTsKICAgICAgICBsb25nIGlfY3J0aW1lOwogICAgICAgIGxvbmcgaV91Y3J0aW1lOwoKICAgICAg
ICBsYl9hZGRyIGlfbG9jYXRpb247CiAgICAgICAgX191NjQgaV91bmlxdWU7CiAgICAgICAgX191
MzIgaV9sZW5FQXR0cjsKICAgICAgICBfX3UzMiBpX2xlbkFsbG9jOwogICAgICAgIF9fdTY0IGlf
bGVuRXh0ZW50czsKICAgICAgICBfX3UzMiBpX25leHRfYWxsb2NfYmxvY2s7CiAgICAgICAgX191
MzIgaV9uZXh0X2FsbG9jX2dvYWw7CiAgICAgICAgdW5zaWduZWQgaV9hbGxvY190eXBlIDogMzsK
ICAgICAgICB1bnNpZ25lZCBpX2V4dGVuZGVkX2ZlIDogMTsKICAgICAgICB1bnNpZ25lZCBpX3N0
cmF0XzQwOTYgOiAxOwogICAgICAgIHVuc2lnbmVkIGlfbmV3X2lub2RlIDogMTsKICAgICAgICB1
bnNpZ25lZCByZXNlcnZlZCA6IDI2Owp9OwoKCgoKCiNkZWZpbmUgVURGX0dFVEVBU0laRSBfSU9S
KCdsJywgMHg0MCwgaW50KQojZGVmaW5lIFVERl9HRVRFQUJMT0NLIF9JT1IoJ2wnLCAweDQxLCB2
b2lkICopCiNkZWZpbmUgVURGX0dFVFZPTElERU5UIF9JT1IoJ2wnLCAweDQyLCB2b2lkICopCiNk
ZWZpbmUgVURGX1JFTE9DQVRFX0JMT0NLUyBfSU9XUignbCcsIDB4NDMsIGxvbmcpCiMgMzA5ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcF9mc19pLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcF9mc19pLmgiCiNkZWZpbmUgX0xJTlVYX05DUF9GU19J
CgoKCgoKCgpzdHJ1Y3QgbmNwX2lub2RlX2luZm8gewogICAgICAgIF9fdTMyIGRpckVudE51bSBf
X2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBEb3NEaXJOdW0gX19hdHRyaWJ1
dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgdm9sTnVtYmVyIF9fYXR0cmlidXRlX18oKHBh
Y2tlZCkpOwogICAgICAgIF9fdTMyIG53YXR0cjsKICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlIG9w
ZW5fc2VtOwogICAgICAgIGF0b21pY190IG9wZW5lZDsKICAgICAgICBpbnQgYWNjZXNzOwogICAg
ICAgIF9fdTMyIHNlcnZlcl9maWxlX2hhbmRsZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAg
ICAgICBfX3U4IG9wZW5fY3JlYXRlX2FjdGlvbiBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAg
ICAgICBfX3U4IGZpbGVfaGFuZGxlWzZdIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwp9OwojIDMx
MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9wcm9jX2ZzX2kuaCIgMQpzdHJ1Y3QgcHJvY19p
bm9kZV9pbmZvIHsKICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiAgICAgICAgaW50
IHR5cGU7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgaW50ICgqcHJvY19nZXRfbGlu
aykoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiosIHN0cnVjdCB2ZnNtb3VudCAqKik7
CiAgICAgICAgICAgICAgICBpbnQgKCpwcm9jX3JlYWQpKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFz
aywgY2hhciAqcGFnZSk7CiAgICAgICAgfSBvcDsKICAgICAgICBzdHJ1Y3QgZmlsZSAqZmlsZTsK
fTsKIyAzMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdXNiZGV2X2ZzX2kuaCIgMQpzdHJ1
Y3QgdXNiX2RldmljZTsKc3RydWN0IHVzYl9idXM7CgpzdHJ1Y3QgdXNiZGV2X2lub2RlX2luZm8g
ewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgZGxpc3Q7CiAgICAgICAgc3RydWN0IGxpc3RfaGVh
ZCBzbGlzdDsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgdXNiX2Rldmlj
ZSAqZGV2OwogICAgICAgICAgICAgICAgc3RydWN0IHVzYl9idXMgKmJ1czsKICAgICAgICB9IHA7
Cn07CiMgMzEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKCgoK
CgojZGVmaW5lIEFUVFJfTU9ERSAxCiNkZWZpbmUgQVRUUl9VSUQgMgojZGVmaW5lIEFUVFJfR0lE
IDQKI2RlZmluZSBBVFRSX1NJWkUgOAojZGVmaW5lIEFUVFJfQVRJTUUgMTYKI2RlZmluZSBBVFRS
X01USU1FIDMyCiNkZWZpbmUgQVRUUl9DVElNRSA2NAojZGVmaW5lIEFUVFJfQVRJTUVfU0VUIDEy
OAojZGVmaW5lIEFUVFJfTVRJTUVfU0VUIDI1NgojZGVmaW5lIEFUVFJfRk9SQ0UgNTEyCiNkZWZp
bmUgQVRUUl9BVFRSX0ZMQUcgMTAyNAojIDMzOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9mcy5oIgpzdHJ1Y3QgaWF0dHIgewogICAgICAgIHVuc2lnbmVkIGludCBpYV92YWxp
ZDsKICAgICAgICB1bW9kZV90IGlhX21vZGU7CiAgICAgICAgdWlkX3QgaWFfdWlkOwogICAgICAg
IGdpZF90IGlhX2dpZDsKICAgICAgICBsb2ZmX3QgaWFfc2l6ZTsKICAgICAgICB0aW1lX3QgaWFf
YXRpbWU7CiAgICAgICAgdGltZV90IGlhX210aW1lOwogICAgICAgIHRpbWVfdCBpYV9jdGltZTsK
ICAgICAgICB1bnNpZ25lZCBpbnQgaWFfYXR0cl9mbGFnczsKfTsKCgoKCiNkZWZpbmUgQVRUUl9G
TEFHX1NZTkNST05PVVMgMQojZGVmaW5lIEFUVFJfRkxBR19OT0FUSU1FIDIKI2RlZmluZSBBVFRS
X0ZMQUdfQVBQRU5EIDQKI2RlZmluZSBBVFRSX0ZMQUdfSU1NVVRBQkxFIDgKI2RlZmluZSBBVFRS
X0ZMQUdfTk9ESVJBVElNRSAxNgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3F1b3RhLmgiIDEKIyA0MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9xdW90YS5oIgojZGVmaW5lIF9MSU5VWF9RVU9UQV8KCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9lcnJuby5oIiAxCgojZGVmaW5lIF9MSU5VWF9FUlJOT19ICgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2Vycm5vLmgiIDEKCiNkZWZpbmUgX0FT
TV9JQTY0X0VSUk5PX0gKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vZXJy
bm8uaCIKI2RlZmluZSBFUEVSTSAxCiNkZWZpbmUgRU5PRU5UIDIKI2RlZmluZSBFU1JDSCAzCiNk
ZWZpbmUgRUlOVFIgNAojZGVmaW5lIEVJTyA1CiNkZWZpbmUgRU5YSU8gNgojZGVmaW5lIEUyQklH
IDcKI2RlZmluZSBFTk9FWEVDIDgKI2RlZmluZSBFQkFERiA5CiNkZWZpbmUgRUNISUxEIDEwCiNk
ZWZpbmUgRUFHQUlOIDExCiNkZWZpbmUgRU5PTUVNIDEyCiNkZWZpbmUgRUFDQ0VTIDEzCiNkZWZp
bmUgRUZBVUxUIDE0CiNkZWZpbmUgRU5PVEJMSyAxNQojZGVmaW5lIEVCVVNZIDE2CiNkZWZpbmUg
RUVYSVNUIDE3CiNkZWZpbmUgRVhERVYgMTgKI2RlZmluZSBFTk9ERVYgMTkKI2RlZmluZSBFTk9U
RElSIDIwCiNkZWZpbmUgRUlTRElSIDIxCiNkZWZpbmUgRUlOVkFMIDIyCiNkZWZpbmUgRU5GSUxF
IDIzCiNkZWZpbmUgRU1GSUxFIDI0CiNkZWZpbmUgRU5PVFRZIDI1CiNkZWZpbmUgRVRYVEJTWSAy
NgojZGVmaW5lIEVGQklHIDI3CiNkZWZpbmUgRU5PU1BDIDI4CiNkZWZpbmUgRVNQSVBFIDI5CiNk
ZWZpbmUgRVJPRlMgMzAKI2RlZmluZSBFTUxJTksgMzEKI2RlZmluZSBFUElQRSAzMgojZGVmaW5l
IEVET00gMzMKI2RlZmluZSBFUkFOR0UgMzQKI2RlZmluZSBFREVBRExLIDM1CiNkZWZpbmUgRU5B
TUVUT09MT05HIDM2CiNkZWZpbmUgRU5PTENLIDM3CiNkZWZpbmUgRU5PU1lTIDM4CiNkZWZpbmUg
RU5PVEVNUFRZIDM5CiNkZWZpbmUgRUxPT1AgNDAKI2RlZmluZSBFV09VTERCTE9DSyBFQUdBSU4K
I2RlZmluZSBFTk9NU0cgNDIKI2RlZmluZSBFSURSTSA0MwojZGVmaW5lIEVDSFJORyA0NAojZGVm
aW5lIEVMMk5TWU5DIDQ1CiNkZWZpbmUgRUwzSExUIDQ2CiNkZWZpbmUgRUwzUlNUIDQ3CiNkZWZp
bmUgRUxOUk5HIDQ4CiNkZWZpbmUgRVVOQVRDSCA0OQojZGVmaW5lIEVOT0NTSSA1MAojZGVmaW5l
IEVMMkhMVCA1MQojZGVmaW5lIEVCQURFIDUyCiNkZWZpbmUgRUJBRFIgNTMKI2RlZmluZSBFWEZV
TEwgNTQKI2RlZmluZSBFTk9BTk8gNTUKI2RlZmluZSBFQkFEUlFDIDU2CiNkZWZpbmUgRUJBRFNM
VCA1NwoKI2RlZmluZSBFREVBRExPQ0sgRURFQURMSwoKI2RlZmluZSBFQkZPTlQgNTkKI2RlZmlu
ZSBFTk9TVFIgNjAKI2RlZmluZSBFTk9EQVRBIDYxCiNkZWZpbmUgRVRJTUUgNjIKI2RlZmluZSBF
Tk9TUiA2MwojZGVmaW5lIEVOT05FVCA2NAojZGVmaW5lIEVOT1BLRyA2NQojZGVmaW5lIEVSRU1P
VEUgNjYKI2RlZmluZSBFTk9MSU5LIDY3CiNkZWZpbmUgRUFEViA2OAojZGVmaW5lIEVTUk1OVCA2
OQojZGVmaW5lIEVDT01NIDcwCiNkZWZpbmUgRVBST1RPIDcxCiNkZWZpbmUgRU1VTFRJSE9QIDcy
CiNkZWZpbmUgRURPVERPVCA3MwojZGVmaW5lIEVCQURNU0cgNzQKI2RlZmluZSBFT1ZFUkZMT1cg
NzUKI2RlZmluZSBFTk9UVU5JUSA3NgojZGVmaW5lIEVCQURGRCA3NwojZGVmaW5lIEVSRU1DSEcg
NzgKI2RlZmluZSBFTElCQUNDIDc5CiNkZWZpbmUgRUxJQkJBRCA4MAojZGVmaW5lIEVMSUJTQ04g
ODEKI2RlZmluZSBFTElCTUFYIDgyCiNkZWZpbmUgRUxJQkVYRUMgODMKI2RlZmluZSBFSUxTRVEg
ODQKI2RlZmluZSBFUkVTVEFSVCA4NQojZGVmaW5lIEVTVFJQSVBFIDg2CiNkZWZpbmUgRVVTRVJT
IDg3CiNkZWZpbmUgRU5PVFNPQ0sgODgKI2RlZmluZSBFREVTVEFERFJSRVEgODkKI2RlZmluZSBF
TVNHU0laRSA5MAojZGVmaW5lIEVQUk9UT1RZUEUgOTEKI2RlZmluZSBFTk9QUk9UT09QVCA5Mgoj
ZGVmaW5lIEVQUk9UT05PU1VQUE9SVCA5MwojZGVmaW5lIEVTT0NLVE5PU1VQUE9SVCA5NAojZGVm
aW5lIEVPUE5PVFNVUFAgOTUKI2RlZmluZSBFUEZOT1NVUFBPUlQgOTYKI2RlZmluZSBFQUZOT1NV
UFBPUlQgOTcKI2RlZmluZSBFQUREUklOVVNFIDk4CiNkZWZpbmUgRUFERFJOT1RBVkFJTCA5OQoj
ZGVmaW5lIEVORVRET1dOIDEwMAojZGVmaW5lIEVORVRVTlJFQUNIIDEwMQojZGVmaW5lIEVORVRS
RVNFVCAxMDIKI2RlZmluZSBFQ09OTkFCT1JURUQgMTAzCiNkZWZpbmUgRUNPTk5SRVNFVCAxMDQK
I2RlZmluZSBFTk9CVUZTIDEwNQojZGVmaW5lIEVJU0NPTk4gMTA2CiNkZWZpbmUgRU5PVENPTk4g
MTA3CiNkZWZpbmUgRVNIVVRET1dOIDEwOAojZGVmaW5lIEVUT09NQU5ZUkVGUyAxMDkKI2RlZmlu
ZSBFVElNRURPVVQgMTEwCiNkZWZpbmUgRUNPTk5SRUZVU0VEIDExMQojZGVmaW5lIEVIT1NURE9X
TiAxMTIKI2RlZmluZSBFSE9TVFVOUkVBQ0ggMTEzCiNkZWZpbmUgRUFMUkVBRFkgMTE0CiNkZWZp
bmUgRUlOUFJPR1JFU1MgMTE1CiNkZWZpbmUgRVNUQUxFIDExNgojZGVmaW5lIEVVQ0xFQU4gMTE3
CiNkZWZpbmUgRU5PVE5BTSAxMTgKI2RlZmluZSBFTkFWQUlMIDExOQojZGVmaW5lIEVJU05BTSAx
MjAKI2RlZmluZSBFUkVNT1RFSU8gMTIxCiNkZWZpbmUgRURRVU9UIDEyMgoKI2RlZmluZSBFTk9N
RURJVU0gMTIzCiNkZWZpbmUgRU1FRElVTVRZUEUgMTI0CiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9lcnJuby5oIiAyCgoKCgojZGVmaW5lIEVSRVNUQVJUU1lTIDUxMgoj
ZGVmaW5lIEVSRVNUQVJUTk9JTlRSIDUxMwojZGVmaW5lIEVSRVNUQVJUTk9IQU5EIDUxNAojZGVm
aW5lIEVOT0lPQ1RMQ01EIDUxNQoKCiNkZWZpbmUgRUJBREhBTkRMRSA1MjEKI2RlZmluZSBFTk9U
U1lOQyA1MjIKI2RlZmluZSBFQkFEQ09PS0lFIDUyMwojZGVmaW5lIEVOT1RTVVBQIDUyNAojZGVm
aW5lIEVUT09TTUFMTCA1MjUKI2RlZmluZSBFU0VSVkVSRkFVTFQgNTI2CiNkZWZpbmUgRUJBRFRZ
UEUgNTI3CiNkZWZpbmUgRUpVS0VCT1ggNTI4CiMgNDMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvcXVvdGEuaCIgMgoKCgoKI2RlZmluZSBkYnRvYihudW0pIChudW0gPDwgQkxP
Q0tfU0laRV9CSVRTKQojZGVmaW5lIGJ0b2RiKG51bSkgKG51bSA+PiBCTE9DS19TSVpFX0JJVFMp
CgoKCgoKI2RlZmluZSBmc190b19kcV9ibG9ja3MobnVtLCBibGtzaXplKSAoKChudW0pICogKGJs
a3NpemUpKSAvIEJMT0NLX1NJWkUpCiMgNjUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvcXVvdGEuaCIKI2RlZmluZSBNQVhfSVFfVElNRSA2MDQ4MDAKI2RlZmluZSBNQVhfRFFf
VElNRSA2MDQ4MDAKCiNkZWZpbmUgTUFYUVVPVEFTIDIKI2RlZmluZSBVU1JRVU9UQSAwCiNkZWZp
bmUgR1JQUVVPVEEgMQoKCgoKI2RlZmluZSBJTklUUUZOQU1FUyB7ICJ1c2VyIiwgImdyb3VwIiwg
InVuZGVmaW5lZCIsIH07CgoKCgoKI2RlZmluZSBRVU9UQUZJTEVOQU1FICJxdW90YSIKI2RlZmlu
ZSBRVU9UQUdST1VQICJzdGFmZiIKCmV4dGVybiBpbnQgbnJfZHF1b3RzLCBucl9mcmVlX2RxdW90
czsKZXh0ZXJuIGludCBtYXhfZHF1b3RzOwpleHRlcm4gaW50IGRxdW90X3Jvb3Rfc3F1YXNoOwoK
I2RlZmluZSBOUl9EUUhBU0ggNDMKI2RlZmluZSBOUl9EUVVPVFMgMTAyNAoKCgoKCgoKI2RlZmlu
ZSBTVUJDTURNQVNLIDB4MDBmZgojZGVmaW5lIFNVQkNNRFNISUZUIDgKI2RlZmluZSBRQ01EKGNt
ZCwgdHlwZSkgKCgoY21kKSA8PCBTVUJDTURTSElGVCkgfCAoKHR5cGUpICYgU1VCQ01ETUFTSykp
CgojZGVmaW5lIFFfUVVPVEFPTiAweDAxMDAKI2RlZmluZSBRX1FVT1RBT0ZGIDB4MDIwMAojZGVm
aW5lIFFfR0VUUVVPVEEgMHgwMzAwCiNkZWZpbmUgUV9TRVRRVU9UQSAweDA0MDAKI2RlZmluZSBR
X1NFVFVTRSAweDA1MDAKI2RlZmluZSBRX1NZTkMgMHgwNjAwCiNkZWZpbmUgUV9TRVRRTElNIDB4
MDcwMAojZGVmaW5lIFFfR0VUU1RBVFMgMHgwODAwCiNkZWZpbmUgUV9SU1FVQVNIIDB4MTAwMAoK
CgoKCgpzdHJ1Y3QgZHFibGsgewogICAgICAgIF9fdTMyIGRxYl9iaGFyZGxpbWl0OwogICAgICAg
IF9fdTMyIGRxYl9ic29mdGxpbWl0OwogICAgICAgIF9fdTMyIGRxYl9jdXJibG9ja3M7CiAgICAg
ICAgX191MzIgZHFiX2loYXJkbGltaXQ7CiAgICAgICAgX191MzIgZHFiX2lzb2Z0bGltaXQ7CiAg
ICAgICAgX191MzIgZHFiX2N1cmlub2RlczsKICAgICAgICB0aW1lX3QgZHFiX2J0aW1lOwogICAg
ICAgIHRpbWVfdCBkcWJfaXRpbWU7Cn07CgoKCgojZGVmaW5lIGRxX2JoYXJkbGltaXQgZHFfZHFi
LmRxYl9iaGFyZGxpbWl0CiNkZWZpbmUgZHFfYnNvZnRsaW1pdCBkcV9kcWIuZHFiX2Jzb2Z0bGlt
aXQKI2RlZmluZSBkcV9jdXJibG9ja3MgZHFfZHFiLmRxYl9jdXJibG9ja3MKI2RlZmluZSBkcV9p
aGFyZGxpbWl0IGRxX2RxYi5kcWJfaWhhcmRsaW1pdAojZGVmaW5lIGRxX2lzb2Z0bGltaXQgZHFf
ZHFiLmRxYl9pc29mdGxpbWl0CiNkZWZpbmUgZHFfY3VyaW5vZGVzIGRxX2RxYi5kcWJfY3VyaW5v
ZGVzCiNkZWZpbmUgZHFfYnRpbWUgZHFfZHFiLmRxYl9idGltZQojZGVmaW5lIGRxX2l0aW1lIGRx
X2RxYi5kcWJfaXRpbWUKCiNkZWZpbmUgZHFvZmYoVUlEKSAoKGxvZmZfdCkoKFVJRCkgKiBzaXpl
b2YgKHN0cnVjdCBkcWJsaykpKQoKc3RydWN0IGRxc3RhdHMgewogICAgICAgIF9fdTMyIGxvb2t1
cHM7CiAgICAgICAgX191MzIgZHJvcHM7CiAgICAgICAgX191MzIgcmVhZHM7CiAgICAgICAgX191
MzIgd3JpdGVzOwogICAgICAgIF9fdTMyIGNhY2hlX2hpdHM7CiAgICAgICAgX191MzIgYWxsb2Nh
dGVkX2RxdW90czsKICAgICAgICBfX3UzMiBmcmVlX2RxdW90czsKICAgICAgICBfX3UzMiBzeW5j
czsKfTsKCgoKCgoKCiNkZWZpbmUgTUFYX1FVT1RBX01FU1NBR0UgNzUKCiNkZWZpbmUgRFFfTE9D
S0VEIDB4MDEKI2RlZmluZSBEUV9XQU5UIDB4MDIKI2RlZmluZSBEUV9NT0QgMHgwNAojZGVmaW5l
IERRX0JMS1MgMHgxMAojZGVmaW5lIERRX0lOT0RFUyAweDIwCiNkZWZpbmUgRFFfRkFLRSAweDQw
CgpzdHJ1Y3QgZHF1b3QgewogICAgICAgIHN0cnVjdCBkcXVvdCAqZHFfbmV4dDsKICAgICAgICBz
dHJ1Y3QgZHF1b3QgKipkcV9wcHJldjsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGRxX2ZyZWU7
CiAgICAgICAgc3RydWN0IGRxdW90ICpkcV9oYXNoX25leHQ7CiAgICAgICAgc3RydWN0IGRxdW90
ICoqZHFfaGFzaF9wcHJldjsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBkcV93YWl0OwogICAg
ICAgIGludCBkcV9jb3VudDsKCgogICAgICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqZHFfc2I7CiAg
ICAgICAgdW5zaWduZWQgaW50IGRxX2lkOwogICAgICAgIGtkZXZfdCBkcV9kZXY7CiAgICAgICAg
c2hvcnQgZHFfdHlwZTsKICAgICAgICBzaG9ydCBkcV9mbGFnczsKICAgICAgICB1bnNpZ25lZCBs
b25nIGRxX3JlZmVyZW5jZWQ7CgogICAgICAgIHN0cnVjdCBkcWJsayBkcV9kcWI7Cn07CgojZGVm
aW5lIE5PRFFVT1QgKHN0cnVjdCBkcXVvdCAqKU5VTEwKCgoKCiNkZWZpbmUgUVVPVEFfU1lTQ0FM
TCAweDAxCiNkZWZpbmUgU0VUX1FVT1RBIDB4MDIKI2RlZmluZSBTRVRfVVNFIDB4MDQKI2RlZmlu
ZSBTRVRfUUxJTUlUIDB4MDgKCiNkZWZpbmUgUVVPVEFfT0sgMAojZGVmaW5lIE5PX1FVT1RBIDEK
IyAzNjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW91bnQuaCIgMQojIDM2NCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCgoKCgpzdHJ1Y3QgcGFnZTsKc3Ry
dWN0IGFkZHJlc3Nfc3BhY2U7CgpzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIHsKICAg
ICAgICBpbnQgKCp3cml0ZXBhZ2UpKHN0cnVjdCBwYWdlICopOwogICAgICAgIGludCAoKnJlYWRw
YWdlKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgcGFnZSAqKTsKICAgICAgICBpbnQgKCpzeW5jX3Bh
Z2UpKHN0cnVjdCBwYWdlICopOwogICAgICAgIGludCAoKnByZXBhcmVfd3JpdGUpKHN0cnVjdCBm
aWxlICosIHN0cnVjdCBwYWdlICosIHVuc2lnbmVkLCB1bnNpZ25lZCk7CiAgICAgICAgaW50ICgq
Y29tbWl0X3dyaXRlKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgcGFnZSAqLCB1bnNpZ25lZCwgdW5z
aWduZWQpOwoKICAgICAgICBpbnQgKCpibWFwX1JzbXBfMTRlZDZiZGYpKHN0cnVjdCBhZGRyZXNz
X3NwYWNlICosIGxvbmcpOwp9OwoKc3RydWN0IGFkZHJlc3Nfc3BhY2UgewogICAgICAgIHN0cnVj
dCBsaXN0X2hlYWQgY2xlYW5fcGFnZXM7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBkaXJ0eV9w
YWdlczsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxvY2tlZF9wYWdlczsKICAgICAgICB1bnNp
Z25lZCBsb25nIG5ycGFnZXM7CiAgICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9u
cyAqYV9vcHM7CiAgICAgICAgc3RydWN0IGlub2RlICpob3N0OwogICAgICAgIHN0cnVjdCB2bV9h
cmVhX3N0cnVjdCAqaV9tbWFwOwogICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqaV9tbWFw
X3NoYXJlZDsKICAgICAgICBzcGlubG9ja190IGlfc2hhcmVkX2xvY2s7CiAgICAgICAgaW50IGdm
cF9tYXNrOwp9OwoKc3RydWN0IGNoYXJfZGV2aWNlIHsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFk
IGhhc2g7CiAgICAgICAgYXRvbWljX3QgY291bnQ7CiAgICAgICAgZGV2X3QgZGV2OwogICAgICAg
IGF0b21pY190IG9wZW5lcnM7CiAgICAgICAgc3RydWN0IHNlbWFwaG9yZSBzZW07Cn07CgpzdHJ1
Y3QgYmxvY2tfZGV2aWNlIHsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGJkX2hhc2g7CiAgICAg
ICAgYXRvbWljX3QgYmRfY291bnQ7CgogICAgICAgIGRldl90IGJkX2RldjsKICAgICAgICBhdG9t
aWNfdCBiZF9vcGVuZXJzOwogICAgICAgIGNvbnN0IHN0cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0
aW9ucyAqYmRfb3A7CiAgICAgICAgc3RydWN0IHNlbWFwaG9yZSBiZF9zZW07Cn07CgpzdHJ1Y3Qg
aW5vZGUgewogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgaV9oYXNoOwogICAgICAgIHN0cnVjdCBs
aXN0X2hlYWQgaV9saXN0OwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgaV9kZW50cnk7CgogICAg
ICAgIHN0cnVjdCBsaXN0X2hlYWQgaV9kaXJ0eV9idWZmZXJzOwoKICAgICAgICB1bnNpZ25lZCBs
b25nIGlfaW5vOwogICAgICAgIGF0b21pY190IGlfY291bnQ7CiAgICAgICAga2Rldl90IGlfZGV2
OwogICAgICAgIHVtb2RlX3QgaV9tb2RlOwogICAgICAgIG5saW5rX3QgaV9ubGluazsKICAgICAg
ICB1aWRfdCBpX3VpZDsKICAgICAgICBnaWRfdCBpX2dpZDsKICAgICAgICBrZGV2X3QgaV9yZGV2
OwogICAgICAgIGxvZmZfdCBpX3NpemU7CiAgICAgICAgdGltZV90IGlfYXRpbWU7CiAgICAgICAg
dGltZV90IGlfbXRpbWU7CiAgICAgICAgdGltZV90IGlfY3RpbWU7CiAgICAgICAgdW5zaWduZWQg
bG9uZyBpX2Jsa3NpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBpX2Jsb2NrczsKICAgICAgICB1
bnNpZ25lZCBsb25nIGlfdmVyc2lvbjsKICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlIGlfc2VtOwog
ICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgaV96b21iaWU7CiAgICAgICAgc3RydWN0IGlub2RlX29w
ZXJhdGlvbnMgKmlfb3A7CiAgICAgICAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqaV9mb3A7CiAg
ICAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICppX3NiOwogICAgICAgIHdhaXRfcXVldWVfaGVhZF90
IGlfd2FpdDsKICAgICAgICBzdHJ1Y3QgZmlsZV9sb2NrICppX2Zsb2NrOwogICAgICAgIHN0cnVj
dCBhZGRyZXNzX3NwYWNlICppX21hcHBpbmc7CiAgICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug
aV9kYXRhOwogICAgICAgIHN0cnVjdCBkcXVvdCAqaV9kcXVvdFsyXTsKCiAgICAgICAgc3RydWN0
IHBpcGVfaW5vZGVfaW5mbyAqaV9waXBlOwogICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKmlf
YmRldjsKICAgICAgICBzdHJ1Y3QgY2hhcl9kZXZpY2UgKmlfY2RldjsKCiAgICAgICAgdW5zaWdu
ZWQgbG9uZyBpX2Rub3RpZnlfbWFzazsKICAgICAgICBzdHJ1Y3QgZG5vdGlmeV9zdHJ1Y3QgKmlf
ZG5vdGlmeTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBpX3N0YXRlOwoKICAgICAgICB1bnNpZ25l
ZCBpbnQgaV9mbGFnczsKICAgICAgICB1bnNpZ25lZCBjaGFyIGlfc29jazsKCiAgICAgICAgYXRv
bWljX3QgaV93cml0ZWNvdW50OwogICAgICAgIHVuc2lnbmVkIGludCBpX2F0dHJfZmxhZ3M7CiAg
ICAgICAgX191MzIgaV9nZW5lcmF0aW9uOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAg
IHN0cnVjdCBtaW5peF9pbm9kZV9pbmZvIG1pbml4X2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qg
ZXh0Ml9pbm9kZV9pbmZvIGV4dDJfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBocGZzX2lub2Rl
X2luZm8gaHBmc19pOwogICAgICAgICAgICAgICAgc3RydWN0IG50ZnNfaW5vZGVfaW5mbyBudGZz
X2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgbXNkb3NfaW5vZGVfaW5mbyBtc2Rvc19pOwogICAg
ICAgICAgICAgICAgc3RydWN0IHVtc2Rvc19pbm9kZV9pbmZvIHVtc2Rvc19pOwogICAgICAgICAg
ICAgICAgc3RydWN0IGlzb19pbm9kZV9pbmZvIGlzb2ZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1
Y3QgbmZzX2lub2RlX2luZm8gbmZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3lzdl9pbm9k
ZV9pbmZvIHN5c3ZfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBhZmZzX2lub2RlX2luZm8gYWZm
c19pOwogICAgICAgICAgICAgICAgc3RydWN0IHVmc19pbm9kZV9pbmZvIHVmc19pOwogICAgICAg
ICAgICAgICAgc3RydWN0IGVmc19pbm9kZV9pbmZvIGVmc19pOwogICAgICAgICAgICAgICAgc3Ry
dWN0IHJvbWZzX2lub2RlX2luZm8gcm9tZnNfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBzaG1l
bV9pbm9kZV9pbmZvIHNobWVtX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgY29kYV9pbm9kZV9p
bmZvIGNvZGFfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCBzbWJfaW5vZGVfaW5mbyBzbWJmc19p
OwogICAgICAgICAgICAgICAgc3RydWN0IGhmc19pbm9kZV9pbmZvIGhmc19pOwogICAgICAgICAg
ICAgICAgc3RydWN0IGFkZnNfaW5vZGVfaW5mbyBhZGZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1
Y3QgcW54NF9pbm9kZV9pbmZvIHFueDRfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCByZWlzZXJm
c19pbm9kZV9pbmZvIHJlaXNlcmZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgYmZzX2lub2Rl
X2luZm8gYmZzX2k7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgdWRmX2lub2RlX2luZm8gdWRmX2k7
CiAgICAgICAgICAgICAgICBzdHJ1Y3QgbmNwX2lub2RlX2luZm8gbmNwZnNfaTsKICAgICAgICAg
ICAgICAgIHN0cnVjdCBwcm9jX2lub2RlX2luZm8gcHJvY19pOwogICAgICAgICAgICAgICAgc3Ry
dWN0IHNvY2tldCBzb2NrZXRfaTsKICAgICAgICAgICAgICAgIHN0cnVjdCB1c2JkZXZfaW5vZGVf
aW5mbyB1c2JkZXZfaTsKICAgICAgICAgICAgICAgIHZvaWQgKmdlbmVyaWNfaXA7CiAgICAgICAg
fSB1Owp9OwoKc3RydWN0IGZvd25fc3RydWN0IHsKICAgICAgICBpbnQgcGlkOwogICAgICAgIHVp
ZF90IHVpZCwgZXVpZDsKICAgICAgICBpbnQgc2lnbnVtOwp9OwoKc3RydWN0IGZpbGUgewogICAg
ICAgIHN0cnVjdCBsaXN0X2hlYWQgZl9saXN0OwogICAgICAgIHN0cnVjdCBkZW50cnkgKmZfZGVu
dHJ5OwogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqZl92ZnNtbnQ7CiAgICAgICAgc3RydWN0IGZp
bGVfb3BlcmF0aW9ucyAqZl9vcDsKICAgICAgICBhdG9taWNfdCBmX2NvdW50OwogICAgICAgIHVu
c2lnbmVkIGludCBmX2ZsYWdzOwogICAgICAgIG1vZGVfdCBmX21vZGU7CiAgICAgICAgbG9mZl90
IGZfcG9zOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZl9yZWFkYSwgZl9yYW1heCwgZl9yYWVuZCwg
Zl9yYWxlbiwgZl9yYXdpbjsKICAgICAgICBzdHJ1Y3QgZm93bl9zdHJ1Y3QgZl9vd25lcjsKICAg
ICAgICB1bnNpZ25lZCBpbnQgZl91aWQsIGZfZ2lkOwogICAgICAgIGludCBmX2Vycm9yOwoKICAg
ICAgICB1bnNpZ25lZCBsb25nIGZfdmVyc2lvbjsKCgogICAgICAgIHZvaWQgKnByaXZhdGVfZGF0
YTsKfTsKZXh0ZXJuIHNwaW5sb2NrX3QgZmlsZXNfbG9ja19Sc21wX2MyYmUyMTc5OwojZGVmaW5l
IGZpbGVfbGlzdF9sb2NrKCkgc3Bpbl9sb2NrKCZmaWxlc19sb2NrKTsKI2RlZmluZSBmaWxlX2xp
c3RfdW5sb2NrKCkgc3Bpbl91bmxvY2soJmZpbGVzX2xvY2spOwoKI2RlZmluZSBnZXRfZmlsZSh4
KSBhdG9taWNfaW5jKCYoeCktPmZfY291bnQpCiNkZWZpbmUgZmlsZV9jb3VudCh4KSBhdG9taWNf
cmVhZCgmKHgpLT5mX2NvdW50KQoKZXh0ZXJuIGludCBpbml0X3ByaXZhdGVfZmlsZV9Sc21wXzFj
ZWU0YTkwKHN0cnVjdCBmaWxlICosIHN0cnVjdCBkZW50cnkgKiwgaW50KTsKCiNkZWZpbmUgTUFY
X05PTl9MRlMgKCgxVUw8PDMxKSAtIDEpCgojZGVmaW5lIEZMX1BPU0lYIDEKI2RlZmluZSBGTF9G
TE9DSyAyCiNkZWZpbmUgRkxfQlJPS0VOIDQKI2RlZmluZSBGTF9BQ0NFU1MgOAojZGVmaW5lIEZM
X0xPQ0tEIDE2CiNkZWZpbmUgRkxfTEVBU0UgMzIKIyA1NDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvZnMuaCIKdHlwZWRlZiBzdHJ1Y3QgZmlsZXNfc3RydWN0ICpmbF9vd25l
cl90OwoKc3RydWN0IGZpbGVfbG9jayB7CiAgICAgICAgc3RydWN0IGZpbGVfbG9jayAqZmxfbmV4
dDsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGZsX2xpbms7CiAgICAgICAgc3RydWN0IGxpc3Rf
aGVhZCBmbF9ibG9jazsKICAgICAgICBmbF9vd25lcl90IGZsX293bmVyOwogICAgICAgIHVuc2ln
bmVkIGludCBmbF9waWQ7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3QgZmxfd2FpdDsKICAgICAg
ICBzdHJ1Y3QgZmlsZSAqZmxfZmlsZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGZsX2ZsYWdzOwog
ICAgICAgIHVuc2lnbmVkIGNoYXIgZmxfdHlwZTsKICAgICAgICBsb2ZmX3QgZmxfc3RhcnQ7CiAg
ICAgICAgbG9mZl90IGZsX2VuZDsKCiAgICAgICAgdm9pZCAoKmZsX25vdGlmeSkoc3RydWN0IGZp
bGVfbG9jayAqKTsKICAgICAgICB2b2lkICgqZmxfaW5zZXJ0KShzdHJ1Y3QgZmlsZV9sb2NrICop
OwogICAgICAgIHZvaWQgKCpmbF9yZW1vdmUpKHN0cnVjdCBmaWxlX2xvY2sgKik7CgogICAgICAg
IHN0cnVjdCBmYXN5bmNfc3RydWN0ICogZmxfZmFzeW5jOwoKICAgICAgICB1bmlvbiB7CiAgICAg
ICAgICAgICAgICBzdHJ1Y3QgbmZzX2xvY2tfaW5mbyBuZnNfZmw7CiAgICAgICAgfSBmbF91Owp9
OwoKCgojZGVmaW5lIElOVF9MSU1JVCh4KSAofigoeCkxIDw8IChzaXplb2YoeCkqOCAtIDEpKSkK
I2RlZmluZSBPRkZTRVRfTUFYIElOVF9MSU1JVChsb2ZmX3QpCiNkZWZpbmUgT0ZGVF9PRkZTRVRf
TUFYIElOVF9MSU1JVChvZmZfdCkKCgpleHRlcm4gc3RydWN0IGxpc3RfaGVhZCBmaWxlX2xvY2tf
bGlzdF9Sc21wXzZlODUxMTlkOwoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2ZjbnRsLmgiIDEKCiNkZWZpbmUgX0xJTlVYX0ZDTlRMX0gKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vZmNudGwuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfRkNOVExf
SAojIDE0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9mY250bC5oIgojZGVmaW5l
IE9fQUNDTU9ERSAwMDAzCiNkZWZpbmUgT19SRE9OTFkgMDAKI2RlZmluZSBPX1dST05MWSAwMQoj
ZGVmaW5lIE9fUkRXUiAwMgojZGVmaW5lIE9fQ1JFQVQgMDEwMAojZGVmaW5lIE9fRVhDTCAwMjAw
CiNkZWZpbmUgT19OT0NUVFkgMDQwMAojZGVmaW5lIE9fVFJVTkMgMDEwMDAKI2RlZmluZSBPX0FQ
UEVORCAwMjAwMAojZGVmaW5lIE9fTk9OQkxPQ0sgMDQwMDAKI2RlZmluZSBPX05ERUxBWSBPX05P
TkJMT0NLCiNkZWZpbmUgT19TWU5DIDAxMDAwMAojZGVmaW5lIEZBU1lOQyAwMjAwMDAKI2RlZmlu
ZSBPX0RJUkVDVCAwNDAwMDAKI2RlZmluZSBPX0xBUkdFRklMRSAwMTAwMDAwCiNkZWZpbmUgT19E
SVJFQ1RPUlkgMDIwMDAwMAojZGVmaW5lIE9fTk9GT0xMT1cgMDQwMDAwMAoKI2RlZmluZSBGX0RV
UEZEIDAKI2RlZmluZSBGX0dFVEZEIDEKI2RlZmluZSBGX1NFVEZEIDIKI2RlZmluZSBGX0dFVEZM
IDMKI2RlZmluZSBGX1NFVEZMIDQKI2RlZmluZSBGX0dFVExLIDUKI2RlZmluZSBGX1NFVExLIDYK
I2RlZmluZSBGX1NFVExLVyA3CgojZGVmaW5lIEZfU0VUT1dOIDgKI2RlZmluZSBGX0dFVE9XTiA5
CiNkZWZpbmUgRl9TRVRTSUcgMTAKI2RlZmluZSBGX0dFVFNJRyAxMQoKCiNkZWZpbmUgRkRfQ0xP
RVhFQyAxCgoKI2RlZmluZSBGX1JETENLIDAKI2RlZmluZSBGX1dSTENLIDEKI2RlZmluZSBGX1VO
TENLIDIKCgojZGVmaW5lIEZfRVhMQ0sgNAojZGVmaW5lIEZfU0hMQ0sgOAoKCiNkZWZpbmUgRl9J
TlBST0dSRVNTIDE2CgoKI2RlZmluZSBMT0NLX1NIIDEKI2RlZmluZSBMT0NLX0VYIDIKI2RlZmlu
ZSBMT0NLX05CIDQKCiNkZWZpbmUgTE9DS19VTiA4CgojZGVmaW5lIExPQ0tfTUFORCAzMgojZGVm
aW5lIExPQ0tfUkVBRCA2NAojZGVmaW5lIExPQ0tfV1JJVEUgMTI4CiNkZWZpbmUgTE9DS19SVyAx
OTIKCnN0cnVjdCBmbG9jayB7CiAgICAgICAgc2hvcnQgbF90eXBlOwogICAgICAgIHNob3J0IGxf
d2hlbmNlOwogICAgICAgIG9mZl90IGxfc3RhcnQ7CiAgICAgICAgb2ZmX3QgbF9sZW47CiAgICAg
ICAgcGlkX3QgbF9waWQ7Cn07CgoKI2RlZmluZSBmbG9jazY0IGZsb2NrCgoKI2RlZmluZSBGX0xJ
TlVYX1NQRUNJRklDX0JBU0UgMTAyNAojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvZmNudGwuaCIgMgoKI2RlZmluZSBGX1NFVExFQVNFIChGX0xJTlVYX1NQRUNJRklDX0JB
U0UrMCkKI2RlZmluZSBGX0dFVExFQVNFIChGX0xJTlVYX1NQRUNJRklDX0JBU0UrMSkKCgoKCgoj
ZGVmaW5lIEZfTk9USUZZIChGX0xJTlVYX1NQRUNJRklDX0JBU0UrMikKCgoKCiNkZWZpbmUgRE5f
QUNDRVNTIDB4MDAwMDAwMDEKI2RlZmluZSBETl9NT0RJRlkgMHgwMDAwMDAwMgojZGVmaW5lIERO
X0NSRUFURSAweDAwMDAwMDA0CiNkZWZpbmUgRE5fREVMRVRFIDB4MDAwMDAwMDgKI2RlZmluZSBE
Tl9SRU5BTUUgMHgwMDAwMDAxMAojZGVmaW5lIEROX0FUVFJJQiAweDAwMDAwMDIwCiNkZWZpbmUg
RE5fTVVMVElTSE9UIDB4ODAwMDAwMDAKIyA1NzcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvZnMuaCIgMgoKZXh0ZXJuIGludCBmY250bF9nZXRsayh1bnNpZ25lZCBpbnQsIHN0
cnVjdCBmbG9jayAqKTsKZXh0ZXJuIGludCBmY250bF9zZXRsayh1bnNpZ25lZCBpbnQsIHVuc2ln
bmVkIGludCwgc3RydWN0IGZsb2NrICopOwoKZXh0ZXJuIGludCBmY250bF9nZXRsazY0KHVuc2ln
bmVkIGludCwgc3RydWN0IGZsb2NrICopOwpleHRlcm4gaW50IGZjbnRsX3NldGxrNjQodW5zaWdu
ZWQgaW50LCB1bnNpZ25lZCBpbnQsIHN0cnVjdCBmbG9jayAqKTsKCgpleHRlcm4gdm9pZCBsb2Nr
c19pbml0X2xvY2tfUnNtcF9mMDAzZWQxOShzdHJ1Y3QgZmlsZV9sb2NrICopOwpleHRlcm4gdm9p
ZCBsb2Nrc19jb3B5X2xvY2tfUnNtcF85OThiOGRkMyhzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVj
dCBmaWxlX2xvY2sgKik7CmV4dGVybiB2b2lkIGxvY2tzX3JlbW92ZV9wb3NpeChzdHJ1Y3QgZmls
ZSAqLCBmbF9vd25lcl90KTsKZXh0ZXJuIHZvaWQgbG9ja3NfcmVtb3ZlX2Zsb2NrKHN0cnVjdCBm
aWxlICopOwpleHRlcm4gc3RydWN0IGZpbGVfbG9jayAqcG9zaXhfdGVzdF9sb2NrX1JzbXBfZGU4
ZTAwNzIoc3RydWN0IGZpbGUgKiwgc3RydWN0IGZpbGVfbG9jayAqKTsKZXh0ZXJuIGludCBwb3Np
eF9sb2NrX2ZpbGVfUnNtcF8yNDRmNzUyZShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgZmlsZV9sb2Nr
ICosIHVuc2lnbmVkIGludCk7CmV4dGVybiB2b2lkIHBvc2l4X2Jsb2NrX2xvY2tfUnNtcF9jMjA0
MjgwZChzdHJ1Y3QgZmlsZV9sb2NrICosIHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4dGVybiB2b2lk
IHBvc2l4X3VuYmxvY2tfbG9ja19Sc21wXzk1MGU4YWQ2KHN0cnVjdCBmaWxlX2xvY2sgKik7CmV4
dGVybiBpbnQgX19nZXRfbGVhc2VfUnNtcF84MTFjNWE4OShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1
bnNpZ25lZCBpbnQgZmxhZ3MpOwpleHRlcm4gdGltZV90IGxlYXNlX2dldF9tdGltZV9Sc21wX2M4
ZDZiZDdmKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIGludCBsb2NrX21heV9yZWFkX1JzbXBfMzE2
ZTUwN2Yoc3RydWN0IGlub2RlICosIGxvZmZfdCBzdGFydCwgdW5zaWduZWQgbG9uZyBjb3VudCk7
CmV4dGVybiBpbnQgbG9ja19tYXlfd3JpdGVfUnNtcF84YmRhODFlYShzdHJ1Y3QgaW5vZGUgKiwg
bG9mZl90IHN0YXJ0LCB1bnNpZ25lZCBsb25nIGNvdW50KTsKCnN0cnVjdCBmYXN5bmNfc3RydWN0
IHsKICAgICAgICBpbnQgbWFnaWM7CiAgICAgICAgaW50IGZhX2ZkOwogICAgICAgIHN0cnVjdCBm
YXN5bmNfc3RydWN0ICpmYV9uZXh0OwogICAgICAgIHN0cnVjdCBmaWxlICpmYV9maWxlOwp9OwoK
I2RlZmluZSBGQVNZTkNfTUFHSUMgMHg0NjAxCgoKZXh0ZXJuIGludCBmYXN5bmNfaGVscGVyX1Jz
bXBfYjI2ZWVmMzAoaW50LCBzdHJ1Y3QgZmlsZSAqLCBpbnQsIHN0cnVjdCBmYXN5bmNfc3RydWN0
ICoqKTsKCmV4dGVybiB2b2lkIGtpbGxfZmFzeW5jX1JzbXBfNDY4MjAzNGMoc3RydWN0IGZhc3lu
Y19zdHJ1Y3QgKiosIGludCwgaW50KTsKCmV4dGVybiB2b2lkIF9fa2lsbF9mYXN5bmNfUnNtcF8w
MmNmODc3MihzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqLCBpbnQsIGludCk7CgpzdHJ1Y3QgbmFtZWlk
YXRhIHsKICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnk7CiAgICAgICAgc3RydWN0IHZmc21v
dW50ICptbnQ7CiAgICAgICAgc3RydWN0IHFzdHIgbGFzdDsKICAgICAgICB1bnNpZ25lZCBpbnQg
ZmxhZ3M7CiAgICAgICAgaW50IGxhc3RfdHlwZTsKfTsKCiNkZWZpbmUgRFFVT1RfVVNSX0VOQUJM
RUQgMHgwMQojZGVmaW5lIERRVU9UX0dSUF9FTkFCTEVEIDB4MDIKCnN0cnVjdCBxdW90YV9tb3Vu
dF9vcHRpb25zCnsKICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgICAgc3RydWN0IHNl
bWFwaG9yZSBkcWlvX3NlbTsKICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlIGRxb2ZmX3NlbTsKICAg
ICAgICBzdHJ1Y3QgZmlsZSAqZmlsZXNbMl07CiAgICAgICAgdGltZV90IGlub2RlX2V4cGlyZVsy
XTsKICAgICAgICB0aW1lX3QgYmxvY2tfZXhwaXJlWzJdOwogICAgICAgIGNoYXIgcnNxdWFzaFsy
XTsKfTsKCgoKCgojZGVmaW5lIE1OVF9GT1JDRSAweDAwMDAwMDAxCgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbWluaXhfZnNfc2IuaCIgMQoKI2RlZmluZSBfTUlOSVhf
RlNfU0IKCgoKCnN0cnVjdCBtaW5peF9zYl9pbmZvIHsKICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBzX25pbm9kZXM7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGxvbmcgc19uem9uZXM7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc19p
bWFwX2Jsb2NrczsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzX3ptYXBf
YmxvY2tzOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNfZmlyc3RkYXRh
em9uZTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzX2xvZ196b25lX3Np
emU7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc19tYXhfc2l6ZTsKICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IHNfZGlyc2l6ZTsKICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IHNfbmFtZWxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgaW50IHNfbGlua19tYXg7
CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqKiBzX2ltYXA7CiAg
ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqKiBzX3ptYXA7CiAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqIHNfc2JoOwogICAgICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3QgbWluaXhfc3VwZXJfYmxvY2sgKiBzX21zOwogICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzX21vdW50X3N0YXRlOwogICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCBzX3ZlcnNpb247Cn07CiMgNjQzICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2V4dDJfZnNfc2IuaCIgMQojIDE3ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2V4dDJfZnNfc2IuaCIKI2RlZmluZSBfTElOVVhfRVhUMl9GU19TQgoK
CgoKCgoKI2RlZmluZSBFWFQyX01BWF9HUk9VUF9MT0FERUQgOAoKCgoKc3RydWN0IGV4dDJfc2Jf
aW5mbyB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2ZyYWdfc2l6ZTsKICAgICAgICB1bnNpZ25l
ZCBsb25nIHNfZnJhZ3NfcGVyX2Jsb2NrOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19pbm9kZXNf
cGVyX2Jsb2NrOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19mcmFnc19wZXJfZ3JvdXA7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyBzX2Jsb2Nrc19wZXJfZ3JvdXA7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBzX2lub2Rlc19wZXJfZ3JvdXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2l0Yl9wZXJfZ3Jv
dXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2dkYl9jb3VudDsKICAgICAgICB1bnNpZ25lZCBs
b25nIHNfZGVzY19wZXJfYmxvY2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2dyb3Vwc19jb3Vu
dDsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBzX3NiaDsKICAgICAgICBzdHJ1Y3QgZXh0
Ml9zdXBlcl9ibG9jayAqIHNfZXM7CiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICoqIHNfZ3Jv
dXBfZGVzYzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzX2xvYWRlZF9pbm9kZV9iaXRtYXBzOwog
ICAgICAgIHVuc2lnbmVkIHNob3J0IHNfbG9hZGVkX2Jsb2NrX2JpdG1hcHM7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBzX2lub2RlX2JpdG1hcF9udW1iZXJbOF07CiAgICAgICAgc3RydWN0IGJ1ZmZl
cl9oZWFkICogc19pbm9kZV9iaXRtYXBbOF07CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2Jsb2Nr
X2JpdG1hcF9udW1iZXJbOF07CiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICogc19ibG9ja19i
aXRtYXBbOF07CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX21vdW50X29wdDsKICAgICAgICB1aWRf
dCBzX3Jlc3VpZDsKICAgICAgICBnaWRfdCBzX3Jlc2dpZDsKICAgICAgICB1bnNpZ25lZCBzaG9y
dCBzX21vdW50X3N0YXRlOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNfcGFkOwogICAgICAgIGlu
dCBzX2FkZHJfcGVyX2Jsb2NrX2JpdHM7CiAgICAgICAgaW50IHNfZGVzY19wZXJfYmxvY2tfYml0
czsKICAgICAgICBpbnQgc19pbm9kZV9zaXplOwogICAgICAgIGludCBzX2ZpcnN0X2lubzsKfTsK
IyA2NDQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaHBmc19mc19zYi5oIiAxCgojZGVmaW5l
IF9IUEZTX0ZTX1NCCgpzdHJ1Y3QgaHBmc19zYl9pbmZvIHsKICAgICAgICBpbm9fdCBzYl9yb290
OwogICAgICAgIHVuc2lnbmVkIHNiX2ZzX3NpemU7CiAgICAgICAgdW5zaWduZWQgc2JfYml0bWFw
czsKICAgICAgICB1bnNpZ25lZCBzYl9kaXJiYW5kX3N0YXJ0OwogICAgICAgIHVuc2lnbmVkIHNi
X2RpcmJhbmRfc2l6ZTsKICAgICAgICB1bnNpZ25lZCBzYl9kbWFwOwogICAgICAgIHVuc2lnbmVk
IHNiX25fZnJlZTsKICAgICAgICB1bnNpZ25lZCBzYl9uX2ZyZWVfZG5vZGVzOwogICAgICAgIHVp
ZF90IHNiX3VpZDsKICAgICAgICBnaWRfdCBzYl9naWQ7CiAgICAgICAgdW1vZGVfdCBzYl9tb2Rl
OwogICAgICAgIHVuc2lnbmVkIHNiX2NvbnYgOiAyOwogICAgICAgIHVuc2lnbmVkIHNiX2VhcyA6
IDI7CiAgICAgICAgdW5zaWduZWQgc2JfZXJyIDogMjsKICAgICAgICB1bnNpZ25lZCBzYl9jaGsg
OiAyOwogICAgICAgIHVuc2lnbmVkIHNiX2xvd2VyY2FzZSA6IDE7CiAgICAgICAgdW5zaWduZWQg
c2Jfd2FzX2Vycm9yIDogMTsKICAgICAgICB1bnNpZ25lZCBzYl9jaGtkc2sgOiAyOwogICAgICAg
IHVuc2lnbmVkIHNiX3JkX2Zub2RlIDogMjsKICAgICAgICB1bnNpZ25lZCBzYl9yZF9pbm9kZSA6
IDI7CgoKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBzYl9pZ2V0X3E7CiAgICAgICAgdW5zaWdu
ZWQgY2hhciAqc2JfY3BfdGFibGU7CgoKICAgICAgICB1bnNpZ25lZCAqc2JfYm1wX2RpcjsKICAg
ICAgICB1bnNpZ25lZCBzYl9jX2JpdG1hcDsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBzYl9j
cmVhdGlvbl9kZTsKCiAgICAgICAgdW5zaWduZWQgc2JfY3JlYXRpb25fZGVfbG9jayA6IDE7Cgog
ICAgICAgIGludCBzYl90aW1lc2hpZnQ7Cn07CgojZGVmaW5lIHNfaHBmc19yb290IHUuaHBmc19z
Yi5zYl9yb290CiNkZWZpbmUgc19ocGZzX2ZzX3NpemUgdS5ocGZzX3NiLnNiX2ZzX3NpemUKI2Rl
ZmluZSBzX2hwZnNfYml0bWFwcyB1LmhwZnNfc2Iuc2JfYml0bWFwcwojZGVmaW5lIHNfaHBmc19k
aXJiYW5kX3N0YXJ0IHUuaHBmc19zYi5zYl9kaXJiYW5kX3N0YXJ0CiNkZWZpbmUgc19ocGZzX2Rp
cmJhbmRfc2l6ZSB1LmhwZnNfc2Iuc2JfZGlyYmFuZF9zaXplCiNkZWZpbmUgc19ocGZzX2RtYXAg
dS5ocGZzX3NiLnNiX2RtYXAKI2RlZmluZSBzX2hwZnNfdWlkIHUuaHBmc19zYi5zYl91aWQKI2Rl
ZmluZSBzX2hwZnNfZ2lkIHUuaHBmc19zYi5zYl9naWQKI2RlZmluZSBzX2hwZnNfbW9kZSB1Lmhw
ZnNfc2Iuc2JfbW9kZQojZGVmaW5lIHNfaHBmc19uX2ZyZWUgdS5ocGZzX3NiLnNiX25fZnJlZQoj
ZGVmaW5lIHNfaHBmc19uX2ZyZWVfZG5vZGVzIHUuaHBmc19zYi5zYl9uX2ZyZWVfZG5vZGVzCiNk
ZWZpbmUgc19ocGZzX2xvd2VyY2FzZSB1LmhwZnNfc2Iuc2JfbG93ZXJjYXNlCiNkZWZpbmUgc19o
cGZzX2NvbnYgdS5ocGZzX3NiLnNiX2NvbnYKI2RlZmluZSBzX2hwZnNfZWFzIHUuaHBmc19zYi5z
Yl9lYXMKI2RlZmluZSBzX2hwZnNfZXJyIHUuaHBmc19zYi5zYl9lcnIKI2RlZmluZSBzX2hwZnNf
Y2hrIHUuaHBmc19zYi5zYl9jaGsKI2RlZmluZSBzX2hwZnNfd2FzX2Vycm9yIHUuaHBmc19zYi5z
Yl93YXNfZXJyb3IKI2RlZmluZSBzX2hwZnNfY2hrZHNrIHUuaHBmc19zYi5zYl9jaGtkc2sKCiNk
ZWZpbmUgc19ocGZzX3JkX2lub2RlIHUuaHBmc19zYi5zYl9yZF9pbm9kZQojZGVmaW5lIHNfaHBm
c19jcF90YWJsZSB1LmhwZnNfc2Iuc2JfY3BfdGFibGUKI2RlZmluZSBzX2hwZnNfYm1wX2RpciB1
LmhwZnNfc2Iuc2JfYm1wX2RpcgojZGVmaW5lIHNfaHBmc19jX2JpdG1hcCB1LmhwZnNfc2Iuc2Jf
Y19iaXRtYXAKI2RlZmluZSBzX2hwZnNfY3JlYXRpb25fZGUgdS5ocGZzX3NiLnNiX2NyZWF0aW9u
X2RlCiNkZWZpbmUgc19ocGZzX2NyZWF0aW9uX2RlX2xvY2sgdS5ocGZzX3NiLnNiX2NyZWF0aW9u
X2RlX2xvY2sKI2RlZmluZSBzX2hwZnNfaWdldF9xIHUuaHBmc19zYi5zYl9pZ2V0X3EKCiNkZWZp
bmUgc19ocGZzX3RpbWVzaGlmdCB1LmhwZnNfc2Iuc2JfdGltZXNoaWZ0CiMgNjQ1ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L250ZnNfZnNfc2IuaCIgMQoKI2RlZmluZSBfTElOVVhfTlRGU19G
U19TQl9ICgp0eXBlZGVmIF9fczY0IExDTjsKCnN0cnVjdCBudGZzX3NiX2luZm97CgogICAgICAg
IG50ZnNfdWlkX3QgdWlkOwogICAgICAgIG50ZnNfZ2lkX3QgZ2lkOwogICAgICAgIG50bW9kZV90
IHVtYXNrOwogICAgICAgIHVuc2lnbmVkIGludCBuY3Q7CiAgICAgICAgdm9pZCAqbmxzX21hcDsK
ICAgICAgICB1bnNpZ25lZCBpbnQgbmd0OwoKCiAgICAgICAgbnRmc19zaXplX3QgcGFydGl0aW9u
X2JpYXM7CgogICAgICAgIG50ZnNfdTMyIGF0X3N0YW5kYXJkX2luZm9ybWF0aW9uOwogICAgICAg
IG50ZnNfdTMyIGF0X2F0dHJpYnV0ZV9saXN0OwogICAgICAgIG50ZnNfdTMyIGF0X2ZpbGVfbmFt
ZTsKICAgICAgICBudGZzX3UzMiBhdF92b2x1bWVfdmVyc2lvbjsKICAgICAgICBudGZzX3UzMiBh
dF9zZWN1cml0eV9kZXNjcmlwdG9yOwogICAgICAgIG50ZnNfdTMyIGF0X3ZvbHVtZV9uYW1lOwog
ICAgICAgIG50ZnNfdTMyIGF0X3ZvbHVtZV9pbmZvcm1hdGlvbjsKICAgICAgICBudGZzX3UzMiBh
dF9kYXRhOwogICAgICAgIG50ZnNfdTMyIGF0X2luZGV4X3Jvb3Q7CiAgICAgICAgbnRmc191MzIg
YXRfaW5kZXhfYWxsb2NhdGlvbjsKICAgICAgICBudGZzX3UzMiBhdF9iaXRtYXA7CiAgICAgICAg
bnRmc191MzIgYXRfc3ltbGluazsKCiAgICAgICAgaW50IHNlY3Rvcl9zaXplOwogICAgICAgIGlu
dCBjbHVzdGVyX3NpemU7CiAgICAgICAgaW50IGNsdXN0ZXJfc2l6ZV9iaXRzOwogICAgICAgIGlu
dCBtZnRfY2x1c3RlcnNfcGVyX3JlY29yZDsKICAgICAgICBpbnQgbWZ0X3JlY29yZF9zaXplOwog
ICAgICAgIGludCBtZnRfcmVjb3JkX3NpemVfYml0czsKICAgICAgICBpbnQgaW5kZXhfY2x1c3Rl
cnNfcGVyX3JlY29yZDsKICAgICAgICBpbnQgaW5kZXhfcmVjb3JkX3NpemU7CiAgICAgICAgaW50
IGluZGV4X3JlY29yZF9zaXplX2JpdHM7CiAgICAgICAgTENOIG1mdF9sY247CgogICAgICAgIHVu
c2lnbmVkIGNoYXIgKm1mdDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCAqdXBjYXNlOwogICAgICAg
IHVuc2lnbmVkIGludCB1cGNhc2VfbGVuZ3RoOwoKICAgICAgICBzdHJ1Y3QgbnRmc19pbm9kZV9p
bmZvICptZnRfaW5vOwogICAgICAgIHN0cnVjdCBudGZzX2lub2RlX2luZm8gKm1mdG1pcnI7CiAg
ICAgICAgc3RydWN0IG50ZnNfaW5vZGVfaW5mbyAqYml0bWFwOwogICAgICAgIHN0cnVjdCBzdXBl
cl9ibG9jayAqc2I7CiAgICAgICAgdW5zaWduZWQgY2hhciBpbm9fZmxhZ3M7Cn07CiMgNjQ2ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21zZG9zX2ZzX3NiLmgiIDEKCiNkZWZpbmUgX01TRE9T
X0ZTX1NCCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mYXRfY3ZmLmgi
IDEKCiNkZWZpbmUgX0ZBVF9DVkYKCiNkZWZpbmUgQ1ZGX1VTRV9SRUFEUEFHRSAweDAwMDEKCnN0
cnVjdCBjdmZfZm9ybWF0CnsgaW50IGN2Zl92ZXJzaW9uOwogIGNoYXIqIGN2Zl92ZXJzaW9uX3Rl
eHQ7CiAgdW5zaWduZWQgbG9uZyBmbGFnczsKICBpbnQgKCpkZXRlY3RfY3ZmKSAoc3RydWN0IHN1
cGVyX2Jsb2NrKnNiKTsKICBpbnQgKCptb3VudF9jdmYpIChzdHJ1Y3Qgc3VwZXJfYmxvY2sqc2Is
Y2hhcipvcHRpb25zKTsKICBpbnQgKCp1bm1vdW50X2N2ZikgKHN0cnVjdCBzdXBlcl9ibG9jaypz
Yik7CiAgc3RydWN0IGJ1ZmZlcl9oZWFkKiAoKmN2Zl9icmVhZCkgKHN0cnVjdCBzdXBlcl9ibG9j
aypzYixpbnQgYmxvY2spOwogIHN0cnVjdCBidWZmZXJfaGVhZCogKCpjdmZfZ2V0YmxrKSAoc3Ry
dWN0IHN1cGVyX2Jsb2NrKnNiLGludCBibG9jayk7CiAgdm9pZCAoKmN2Zl9icmVsc2UpIChzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKnNiLHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpOwogIHZvaWQgKCpjdmZf
bWFya19idWZmZXJfZGlydHkpIChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKTsKICB2b2lkICgqY3ZmX3Nl
dF91cHRvZGF0ZSkgKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAgICAgICAgICAgICAgICAgICAg
ICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLAogICAgICAgICAgICAgICAgICAgICAgICAgaW50
IHZhbCk7CiAgaW50ICgqY3ZmX2lzX3VwdG9kYXRlKSAoc3RydWN0IHN1cGVyX2Jsb2NrICpzYixz
dHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKTsKICB2b2lkICgqY3ZmX2xsX3J3X2Jsb2NrKSAoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYiwKICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9wciwKICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IG5icmVxLAogICAgICAgICAgICAgICAgICAgICAgICBzdHJ1
Y3QgYnVmZmVyX2hlYWQgKmJoWzMyXSk7CiAgaW50ICgqZmF0X2FjY2VzcykgKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IsaW50IG5yLGludCBuZXdfdmFsdWUpOwogIGludCAoKmN2Zl9zdGF0ZnMpIChz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLHN0cnVjdCBzdGF0ZnMgKmJ1ZiwgaW50IGJ1ZnNpeik7CiAg
aW50ICgqY3ZmX2JtYXApIChzdHJ1Y3QgaW5vZGUgKmlub2RlLGludCBibG9jayk7CiAgc3NpemVf
dCAoKmN2Zl9maWxlX3JlYWQpICggc3RydWN0IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZf
dCAqKTsKICBzc2l6ZV90ICgqY3ZmX2ZpbGVfd3JpdGUpICggc3RydWN0IGZpbGUgKiwgY29uc3Qg
Y2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKICBpbnQgKCpjdmZfbW1hcCkgKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKTsKICBpbnQgKCpjdmZfcmVhZHBhZ2UpIChzdHJ1
Y3QgaW5vZGUgKiwgc3RydWN0IHBhZ2UgKik7CiAgaW50ICgqY3ZmX3dyaXRlcGFnZSkgKHN0cnVj
dCBpbm9kZSAqLCBzdHJ1Y3QgcGFnZSAqKTsKICBpbnQgKCpjdmZfZGlyX2lvY3RsKSAoc3RydWN0
IGlub2RlICogaW5vZGUsIHN0cnVjdCBmaWxlICogZmlscCwKICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwogIHZvaWQgKCp6ZXJvX291
dF9jbHVzdGVyKSAoc3RydWN0IGlub2RlKiwgaW50IGNsdXN0ZXJucik7Cn07CgppbnQgcmVnaXN0
ZXJfY3ZmX2Zvcm1hdF9Sc21wXzliYzllMDFlKHN0cnVjdCBjdmZfZm9ybWF0KmN2Zl9mb3JtYXQp
OwppbnQgdW5yZWdpc3Rlcl9jdmZfZm9ybWF0X1JzbXBfMTBjMGI2MjUoc3RydWN0IGN2Zl9mb3Jt
YXQqY3ZmX2Zvcm1hdCk7CnZvaWQgZGVjX2N2Zl9mb3JtYXRfdXNlX2NvdW50X2J5X3ZlcnNpb24o
aW50IHZlcnNpb24pOwppbnQgZGV0ZWN0X2N2ZihzdHJ1Y3Qgc3VwZXJfYmxvY2sqc2IsY2hhcipm
b3JjZSk7CgpleHRlcm4gc3RydWN0IGN2Zl9mb3JtYXQgKmN2Zl9mb3JtYXRzW107CmV4dGVybiBp
bnQgY3ZmX2Zvcm1hdF91c2VfY291bnRbXTsKIyA0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21zZG9zX2ZzX3NiLmgiIDIKCgoKCgpzdHJ1Y3QgZmF0X21vdW50X29wdGlvbnMg
ewogICAgICAgIHVpZF90IGZzX3VpZDsKICAgICAgICBnaWRfdCBmc19naWQ7CiAgICAgICAgdW5z
aWduZWQgc2hvcnQgZnNfdW1hc2s7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgY29kZXBhZ2U7CiAg
ICAgICAgY2hhciAqaW9jaGFyc2V0OwogICAgICAgIHVuc2lnbmVkIGNoYXIgbmFtZV9jaGVjazsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIGNvbnZlcnNpb247CiAgICAgICAgdW5zaWduZWQgcXVpZXQ6
MSwKICAgICAgICAgICAgICAgICBzaG93ZXhlYzoxLAogICAgICAgICAgICAgICAgIHN5c19pbW11
dGFibGU6MSwKICAgICAgICAgICAgICAgICBkb3RzT0s6MSwKICAgICAgICAgICAgICAgICBpc3Zm
YXQ6MSwKICAgICAgICAgICAgICAgICB1dGY4OjEsCiAgICAgICAgICAgICAgICAgdW5pY29kZV94
bGF0ZToxLAogICAgICAgICAgICAgICAgIHBvc2l4ZnM6MSwKICAgICAgICAgICAgICAgICBudW10
YWlsOjEsCiAgICAgICAgICAgICAgICAgYXRhcmk6MSwKICAgICAgICAgICAgICAgICBmYXQzMjox
LAogICAgICAgICAgICAgICAgIG5vY2FzZToxOwp9OwoKc3RydWN0IHZmYXRfdW5pY29kZSB7CiAg
ICAgICAgdW5zaWduZWQgY2hhciB1bmkxOwogICAgICAgIHVuc2lnbmVkIGNoYXIgdW5pMjsKfTsK
CnN0cnVjdCBtc2Rvc19zYl9pbmZvIHsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBjbHVzdGVyX3Np
emU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgY2x1c3Rlcl9iaXRzOwogICAgICAgIHVuc2lnbmVk
IGNoYXIgZmF0cyxmYXRfYml0czsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBmYXRfc3RhcnQ7CiAg
ICAgICAgdW5zaWduZWQgbG9uZyBmYXRfbGVuZ3RoOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZGly
X3N0YXJ0OwogICAgICAgIHVuc2lnbmVkIHNob3J0IGRpcl9lbnRyaWVzOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgZGF0YV9zdGFydDsKICAgICAgICB1bnNpZ25lZCBsb25nIGNsdXN0ZXJzOwogICAg
ICAgIHVuc2lnbmVkIGxvbmcgcm9vdF9jbHVzdGVyOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZnNp
bmZvX3NlY3RvcjsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCBmYXRfd2FpdDsKICAgICAgICBz
dHJ1Y3Qgc2VtYXBob3JlIGZhdF9sb2NrOwogICAgICAgIGludCBwcmV2X2ZyZWU7CiAgICAgICAg
aW50IGZyZWVfY2x1c3RlcnM7CiAgICAgICAgc3RydWN0IGZhdF9tb3VudF9vcHRpb25zIG9wdGlv
bnM7CiAgICAgICAgc3RydWN0IG5sc190YWJsZSAqbmxzX2Rpc2s7CiAgICAgICAgc3RydWN0IG5s
c190YWJsZSAqbmxzX2lvOwogICAgICAgIHN0cnVjdCBjdmZfZm9ybWF0KiBjdmZfZm9ybWF0Owog
ICAgICAgIHZvaWQgKmRpcl9vcHM7CiAgICAgICAgdm9pZCAqcHJpdmF0ZV9kYXRhOwogICAgICAg
IGludCBkaXJfcGVyX2Jsb2NrOwogICAgICAgIGludCBkaXJfcGVyX2Jsb2NrX2JpdHM7Cn07CiMg
NjQ3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2lzb19mc19zYi5oIiAxCgojZGVmaW5lIF9J
U09GU19GU19TQgoKCgoKc3RydWN0IGlzb2ZzX3NiX2luZm8gewogICAgICAgIHVuc2lnbmVkIGxv
bmcgc19uaW5vZGVzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19uem9uZXM7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBzX2ZpcnN0ZGF0YXpvbmU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2xvZ196
b25lX3NpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX21heF9zaXplOwoKICAgICAgICB1bnNp
Z25lZCBjaGFyIHNfaGlnaF9zaWVycmE7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX21hcHBpbmc7
CiAgICAgICAgdW5zaWduZWQgY2hhciBzX3JvY2s7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX2pv
bGlldF9sZXZlbDsKICAgICAgICB1bnNpZ25lZCBjaGFyIHNfdXRmODsKICAgICAgICB1bnNpZ25l
ZCBjaGFyIHNfY3J1ZnQ7CgoKICAgICAgICB1bnNpZ25lZCBjaGFyIHNfdW5oaWRlOwogICAgICAg
IHVuc2lnbmVkIGNoYXIgc19ub3N1aWQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX25vZGV2Owog
ICAgICAgIG1vZGVfdCBzX21vZGU7CiAgICAgICAgZ2lkX3Qgc19naWQ7CiAgICAgICAgdWlkX3Qg
c191aWQ7CiAgICAgICAgc3RydWN0IG5sc190YWJsZSAqc19ubHNfaW9jaGFyc2V0Owp9OwojIDY0
OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uZnNfZnNfc2IuaCIgMQoKI2RlZmluZSBfTkZT
X0ZTX1NCCgoKCgpzdHJ1Y3QgbmZzX3NlcnZlciB7CiAgICAgICAgc3RydWN0IHJwY19jbG50ICog
Y2xpZW50OwogICAgICAgIHN0cnVjdCBuZnNfcnBjX29wcyAqIHJwY19vcHM7CiAgICAgICAgaW50
IGZsYWdzOwogICAgICAgIHVuc2lnbmVkIGludCByc2l6ZTsKICAgICAgICB1bnNpZ25lZCBpbnQg
cnBhZ2VzOwogICAgICAgIHVuc2lnbmVkIGludCB3c2l6ZTsKICAgICAgICB1bnNpZ25lZCBpbnQg
d3BhZ2VzOwogICAgICAgIHVuc2lnbmVkIGludCBkdHNpemU7CiAgICAgICAgdW5zaWduZWQgaW50
IGJzaXplOwogICAgICAgIHVuc2lnbmVkIGludCBhY3JlZ21pbjsKICAgICAgICB1bnNpZ25lZCBp
bnQgYWNyZWdtYXg7CiAgICAgICAgdW5zaWduZWQgaW50IGFjZGlybWluOwogICAgICAgIHVuc2ln
bmVkIGludCBhY2Rpcm1heDsKICAgICAgICB1bnNpZ25lZCBpbnQgbmFtZWxlbjsKICAgICAgICBj
aGFyICogaG9zdG5hbWU7CiAgICAgICAgc3RydWN0IG5mc19yZXFsaXN0ICogcndfcmVxdWVzdHM7
Cn07CgoKCgpzdHJ1Y3QgbmZzX3NiX2luZm8gewogICAgICAgIHN0cnVjdCBuZnNfc2VydmVyIHNf
c2VydmVyOwp9OwojIDY0OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5o
IiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zeXN2X2ZzX3NiLmgi
IDEKCiNkZWZpbmUgX1NZU1ZfRlNfU0IKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9zeXN2X2ZzX3NiLmgiCnN0cnVjdCBzeXN2X3NiX2luZm8gewogICAgICAgIGludCBz
X3R5cGU7CiAgICAgICAgY2hhciBzX2J5dGVzZXg7CiAgICAgICAgY2hhciBzX2tsdWRnZV9zeW1s
aW5rczsKICAgICAgICBjaGFyIHNfdHJ1bmNhdGU7CgogICAgICAgIG5saW5rX3Qgc19saW5rX21h
eDsKICAgICAgICB1bnNpZ25lZCBpbnQgc19pbm9kZXNfcGVyX2Jsb2NrOwogICAgICAgIHVuc2ln
bmVkIGludCBzX2lub2Rlc19wZXJfYmxvY2tfMTsKICAgICAgICB1bnNpZ25lZCBpbnQgc19pbm9k
ZXNfcGVyX2Jsb2NrX2JpdHM7CiAgICAgICAgdW5zaWduZWQgaW50IHNfaW5kX3Blcl9ibG9jazsK
ICAgICAgICB1bnNpZ25lZCBpbnQgc19pbmRfcGVyX2Jsb2NrX2JpdHM7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHNfaW5kX3Blcl9ibG9ja18yOwogICAgICAgIHVuc2lnbmVkIGludCBzX3Rvb2JpZ19i
bG9jazsKICAgICAgICB1bnNpZ25lZCBpbnQgc19ibG9ja19iYXNlOwogICAgICAgIHVuc2lnbmVk
IHNob3J0IHNfZmljX3NpemU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgc19mbGNfc2l6ZTsKCiAg
ICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpzX2JoMTsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hl
YWQgKnNfYmgyOwoKCiAgICAgICAgY2hhciAqIHNfc2JkMTsKICAgICAgICBjaGFyICogc19zYmQy
OwogICAgICAgIHUxNiAqc19zYl9maWNfY291bnQ7CiAgICAgICAgdTE2ICpzX3NiX2ZpY19pbm9k
ZXM7CiAgICAgICAgdTE2ICpzX3NiX3RvdGFsX2ZyZWVfaW5vZGVzOwogICAgICAgIHUxNiAqc19i
Y2FjaGVfY291bnQ7CiAgICAgICAgdTMyICpzX2JjYWNoZTsKICAgICAgICB1MzIgKnNfZnJlZV9i
bG9ja3M7CiAgICAgICAgdTMyICpzX3NiX3RpbWU7CiAgICAgICAgdTMyICpzX3NiX3N0YXRlOwoK
CiAgICAgICAgdTMyIHNfZmlyc3Rpbm9kZXpvbmU7CiAgICAgICAgdTMyIHNfZmlyc3RkYXRhem9u
ZTsKICAgICAgICB1MzIgc19uaW5vZGVzOwogICAgICAgIHUzMiBzX25kYXRhem9uZXM7CiAgICAg
ICAgdTMyIHNfbnpvbmVzOwogICAgICAgIHUxNiBzX25hbWVsZW47Cn07CgoKCiNkZWZpbmUgc3Zf
dHlwZSB1LnN5c3Zfc2Iuc190eXBlCiNkZWZpbmUgc3ZfYnl0ZXNleCB1LnN5c3Zfc2Iuc19ieXRl
c2V4CiNkZWZpbmUgc3Zfa2x1ZGdlX3N5bWxpbmtzIHUuc3lzdl9zYi5zX2tsdWRnZV9zeW1saW5r
cwojZGVmaW5lIHN2X3RydW5jYXRlIHUuc3lzdl9zYi5zX3RydW5jYXRlCiNkZWZpbmUgc3ZfbGlu
a19tYXggdS5zeXN2X3NiLnNfbGlua19tYXgKI2RlZmluZSBzdl9pbm9kZXNfcGVyX2Jsb2NrIHUu
c3lzdl9zYi5zX2lub2Rlc19wZXJfYmxvY2sKI2RlZmluZSBzdl9pbm9kZXNfcGVyX2Jsb2NrXzEg
dS5zeXN2X3NiLnNfaW5vZGVzX3Blcl9ibG9ja18xCiNkZWZpbmUgc3ZfaW5vZGVzX3Blcl9ibG9j
a19iaXRzIHUuc3lzdl9zYi5zX2lub2Rlc19wZXJfYmxvY2tfYml0cwojZGVmaW5lIHN2X2luZF9w
ZXJfYmxvY2sgdS5zeXN2X3NiLnNfaW5kX3Blcl9ibG9jawojZGVmaW5lIHN2X2luZF9wZXJfYmxv
Y2tfYml0cyB1LnN5c3Zfc2Iuc19pbmRfcGVyX2Jsb2NrX2JpdHMKI2RlZmluZSBzdl9pbmRfcGVy
X2Jsb2NrXzIgdS5zeXN2X3NiLnNfaW5kX3Blcl9ibG9ja18yCiNkZWZpbmUgc3ZfdG9vYmlnX2Js
b2NrIHUuc3lzdl9zYi5zX3Rvb2JpZ19ibG9jawojZGVmaW5lIHN2X2Jsb2NrX2Jhc2UgdS5zeXN2
X3NiLnNfYmxvY2tfYmFzZQojZGVmaW5lIHN2X2ZpY19zaXplIHUuc3lzdl9zYi5zX2ZpY19zaXpl
CiNkZWZpbmUgc3ZfZmxjX3NpemUgdS5zeXN2X3NiLnNfZmxjX3NpemUKI2RlZmluZSBzdl9iaDEg
dS5zeXN2X3NiLnNfYmgxCiNkZWZpbmUgc3ZfYmgyIHUuc3lzdl9zYi5zX2JoMgojZGVmaW5lIHN2
X3NiZDEgdS5zeXN2X3NiLnNfc2JkMQojZGVmaW5lIHN2X3NiZDIgdS5zeXN2X3NiLnNfc2JkMgoj
ZGVmaW5lIHN2X3NiX2ZpY19jb3VudCB1LnN5c3Zfc2Iuc19zYl9maWNfY291bnQKI2RlZmluZSBz
dl9zYl9maWNfaW5vZGVzIHUuc3lzdl9zYi5zX3NiX2ZpY19pbm9kZXMKI2RlZmluZSBzdl9zYl90
b3RhbF9mcmVlX2lub2RlcyB1LnN5c3Zfc2Iuc19zYl90b3RhbF9mcmVlX2lub2RlcwojZGVmaW5l
IHN2X2JjYWNoZV9jb3VudCB1LnN5c3Zfc2Iuc19iY2FjaGVfY291bnQKI2RlZmluZSBzdl9iY2Fj
aGUgdS5zeXN2X3NiLnNfYmNhY2hlCiNkZWZpbmUgc3ZfZnJlZV9ibG9ja3MgdS5zeXN2X3NiLnNf
ZnJlZV9ibG9ja3MKI2RlZmluZSBzdl9zYl90aW1lIHUuc3lzdl9zYi5zX3NiX3RpbWUKI2RlZmlu
ZSBzdl9zYl9zdGF0ZSB1LnN5c3Zfc2Iuc19zYl9zdGF0ZQojZGVmaW5lIHN2X2ZpcnN0aW5vZGV6
b25lIHUuc3lzdl9zYi5zX2ZpcnN0aW5vZGV6b25lCiNkZWZpbmUgc3ZfZmlyc3RkYXRhem9uZSB1
LnN5c3Zfc2Iuc19maXJzdGRhdGF6b25lCiNkZWZpbmUgc3Zfbmlub2RlcyB1LnN5c3Zfc2Iuc19u
aW5vZGVzCiNkZWZpbmUgc3ZfbmRhdGF6b25lcyB1LnN5c3Zfc2Iuc19uZGF0YXpvbmVzCiNkZWZp
bmUgc3ZfbnpvbmVzIHUuc3lzdl9zYi5zX256b25lcwojZGVmaW5lIHN2X25hbWVsZW4gdS5zeXN2
X3NiLnNfbmFtZWxlbgojIDY1MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9m
cy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9hZmZzX2ZzX3Ni
LmgiIDEKCiNkZWZpbmUgX0FGRlNfRlNfU0IKIyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9hZmZzX2ZzX3NiLmgiCnN0cnVjdCBhZmZzX2JtX2luZm8gewogICAgICAgIHUz
MiBibV9rZXk7CiAgICAgICAgdTMyIGJtX2ZyZWU7Cn07CgpzdHJ1Y3QgYWZmc19zYl9pbmZvIHsK
ICAgICAgICBpbnQgc19wYXJ0aXRpb25fc2l6ZTsKICAgICAgICBpbnQgc19yZXNlcnZlZDsKCiAg
ICAgICAgdTMyIHNfZGF0YV9ibGtzaXplOwogICAgICAgIHUzMiBzX3Jvb3RfYmxvY2s7CiAgICAg
ICAgaW50IHNfaGFzaHNpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzX2ZsYWdzOwogICAgICAg
IHVpZF90IHNfdWlkOwogICAgICAgIGdpZF90IHNfZ2lkOwogICAgICAgIHVtb2RlX3Qgc19tb2Rl
OwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqc19yb290X2JoOwogICAgICAgIHN0cnVjdCBz
ZW1hcGhvcmUgc19ibWxvY2s7CiAgICAgICAgc3RydWN0IGFmZnNfYm1faW5mbyAqc19iaXRtYXA7
CiAgICAgICAgdTMyIHNfYm1hcF9jb3VudDsKICAgICAgICB1MzIgc19ibWFwX2JpdHM7CiAgICAg
ICAgdTMyIHNfbGFzdF9ibWFwOwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqc19ibWFwX2Jo
OwogICAgICAgIGNoYXIgKnNfcHJlZml4OwogICAgICAgIGludCBzX3ByZWZpeF9sZW47CiAgICAg
ICAgY2hhciBzX3ZvbHVtZVszMl07Cn07CgojZGVmaW5lIFNGX0lOVEwgMHgwMDAxCiNkZWZpbmUg
U0ZfQk1fVkFMSUQgMHgwMDAyCiNkZWZpbmUgU0ZfSU1NVVRBQkxFIDB4MDAwNAojZGVmaW5lIFNG
X1FVSUVUIDB4MDAwOAojZGVmaW5lIFNGX1NFVFVJRCAweDAwMTAKI2RlZmluZSBTRl9TRVRHSUQg
MHgwMDIwCiNkZWZpbmUgU0ZfU0VUTU9ERSAweDAwNDAKI2RlZmluZSBTRl9NVUZTIDB4MDEwMAoj
ZGVmaW5lIFNGX09GUyAweDAyMDAKI2RlZmluZSBTRl9QUkVGSVggMHgwNDAwCiNkZWZpbmUgU0Zf
VkVSQk9TRSAweDA4MDAKI2RlZmluZSBTRl9SRUFET05MWSAweDEwMDAKCgojZGVmaW5lIEFGRlNf
U0IgKCZzYi0+dS5hZmZzX3NiKQojIDY1MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZnNf
ZnNfc2IuaCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Vmc19m
c19zYi5oIgojZGVmaW5lIF9fTElOVVhfVUZTX0ZTX1NCX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC91ZnNfZnMuaCIgMQojIDI4ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3Vmc19mcy5oIgojZGVmaW5lIF9fTElOVVhfVUZTX0ZTX0gKCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMzEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2ZzLmgiIDIKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2tlcm5lbC5oIiAxCiMgMzIgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2ZzLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3RpbWUuaCIgMQojIDMzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3Vmc19mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9zdGF0LmgiIDEKIyAzNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91
ZnNfZnMuaCIgMgoKI2RlZmluZSBVRlNfQkJMT0NLIDAKI2RlZmluZSBVRlNfQkJTSVpFIDgxOTIK
I2RlZmluZSBVRlNfU0JMT0NLIDgxOTIKI2RlZmluZSBVRlNfU0JTSVpFIDgxOTIKCiNkZWZpbmUg
VUZTX1NFQ1RPUl9TSVpFIDUxMgojZGVmaW5lIFVGU19TRUNUT1JfQklUUyA5CiNkZWZpbmUgVUZT
X01BR0lDIDB4MDAwMTE5NTQKI2RlZmluZSBVRlNfQ0lHQU0gMHg1NDE5MDEwMAoKCgoKI2RlZmlu
ZSBVRlNfTUFHSUNfTEZOIDB4MDAwOTUwMTQKI2RlZmluZSBVRlNfQ0lHQU1fTEZOIDB4MTQ1MDA5
MDAKCiNkZWZpbmUgVUZTX01BR0lDX1NFQyAweDAwNjEyMTk1CiNkZWZpbmUgVUZTX0NJR0FNX1NF
QyAweDk1MjE2MTAwCgojZGVmaW5lIFVGU19NQUdJQ19GRUEgMHgwMDE5NTYxMgojZGVmaW5lIFVG
U19DSUdBTV9GRUEgMHgxMjU2MTkwMAoKI2RlZmluZSBVRlNfTUFHSUNfNEdCIDB4MDUyMzE5OTQK
I2RlZmluZSBVRlNfQ0lHQU1fNEdCIDB4OTQxOTIzMDUKCgojZGVmaW5lIFVGU19GU0ZfTEZOIDB4
MDAwMDAwMDEKI2RlZmluZSBVRlNfRlNGX0IxIDB4MDAwMDAwMDIKI2RlZmluZSBVRlNfRlNGX0xG
UyAweDAwMDAwMDAyCiNkZWZpbmUgVUZTX0ZTRl9MVUlEIDB4MDAwMDAwMDQKCgoKCiNkZWZpbmUg
VUZTX0JTSVpFIDgxOTIKI2RlZmluZSBVRlNfTUlOQlNJWkUgNDA5NgojZGVmaW5lIFVGU19GU0la
RSAxMDI0CiNkZWZpbmUgVUZTX01BWEZSQUcgKFVGU19CU0laRSAvIFVGU19GU0laRSkKCiNkZWZp
bmUgVUZTX05EQUREUiAxMgojZGVmaW5lIFVGU19OSU5ESVIgMwoKI2RlZmluZSBVRlNfSU5EX0JM
T0NLIChVRlNfTkRBRERSICsgMCkKI2RlZmluZSBVRlNfRElORF9CTE9DSyAoVUZTX05EQUREUiAr
IDEpCiNkZWZpbmUgVUZTX1RJTkRfQkxPQ0sgKFVGU19OREFERFIgKyAyKQoKI2RlZmluZSBVRlNf
TkRJUl9GUkFHTUVOVCAoVUZTX05EQUREUiA8PCB1c3BpLT5zX2ZwYnNoaWZ0KQojZGVmaW5lIFVG
U19JTkRfRlJBR01FTlQgKFVGU19JTkRfQkxPQ0sgPDwgdXNwaS0+c19mcGJzaGlmdCkKI2RlZmlu
ZSBVRlNfRElORF9GUkFHTUVOVCAoVUZTX0RJTkRfQkxPQ0sgPDwgdXNwaS0+c19mcGJzaGlmdCkK
I2RlZmluZSBVRlNfVElORF9GUkFHTUVOVCAoVUZTX1RJTkRfQkxPQ0sgPDwgdXNwaS0+c19mcGJz
aGlmdCkKCiNkZWZpbmUgVUZTX1JPT1RJTk8gMgojZGVmaW5lIFVGU19GSVJTVF9JTk8gKFVGU19S
T09USU5PICsgMSkKCiNkZWZpbmUgVUZTX1VTRUVGVCAoKF9fdTE2KTY1NTM1KQoKI2RlZmluZSBV
RlNfRlNPSyAweDdjMjY5ZDM4CiNkZWZpbmUgVUZTX0ZTQUNUSVZFICgoY2hhcikweDAwKQojZGVm
aW5lIFVGU19GU0NMRUFOICgoY2hhcikweDAxKQojZGVmaW5lIFVGU19GU1NUQUJMRSAoKGNoYXIp
MHgwMikKI2RlZmluZSBVRlNfRlNPU0YxICgoY2hhcikweDAzKQojZGVmaW5lIFVGU19GU0JBRCAo
KGNoYXIpMHhmZikKCgoKI2RlZmluZSBVRlNfQllURVNFWCAweDAwMDAwMDAxCgoKI2RlZmluZSBV
RlNfTkFUSVZFX0VORElBTiAweDAwMDAwMDAwCiNkZWZpbmUgVUZTX1NXQUJCRURfRU5ESUFOIDB4
MDAwMDAwMDEKCgoKCgoKI2RlZmluZSBVRlNfREVfTUFTSyAweDAwMDAwMDEwCiNkZWZpbmUgVUZT
X0RFX09MRCAweDAwMDAwMDAwCiNkZWZpbmUgVUZTX0RFXzQ0QlNEIDB4MDAwMDAwMTAKCiNkZWZp
bmUgVUZTX1VJRF9NQVNLIDB4MDAwMDAwNjAKI2RlZmluZSBVRlNfVUlEX09MRCAweDAwMDAwMDAw
CiNkZWZpbmUgVUZTX1VJRF80NEJTRCAweDAwMDAwMDIwCiNkZWZpbmUgVUZTX1VJRF9FRlQgMHgw
MDAwMDA0MAoKI2RlZmluZSBVRlNfU1RfTUFTSyAweDAwMDAwNzAwCiNkZWZpbmUgVUZTX1NUX09M
RCAweDAwMDAwMDAwCiNkZWZpbmUgVUZTX1NUXzQ0QlNEIDB4MDAwMDAxMDAKI2RlZmluZSBVRlNf
U1RfU1VOIDB4MDAwMDAyMDAKI2RlZmluZSBVRlNfU1RfU1VOeDg2IDB4MDAwMDA0MDAKCiNkZWZp
bmUgVUZTX0NHX01BU0sgMHgwMDAwMzAwMAojZGVmaW5lIFVGU19DR19PTEQgMHgwMDAwMDAwMAoj
ZGVmaW5lIFVGU19DR180NEJTRCAweDAwMDAyMDAwCiNkZWZpbmUgVUZTX0NHX1NVTiAweDAwMDAx
MDAwCgoKI2RlZmluZSBVRlNfNDJJTk9ERUZNVCAtMQojZGVmaW5lIFVGU180NElOT0RFRk1UIDIK
CgojZGVmaW5lIFVGU19NT1VOVF9PTkVSUk9SIDB4MDAwMDAwMEYKI2RlZmluZSBVRlNfTU9VTlRf
T05FUlJPUl9QQU5JQyAweDAwMDAwMDAxCiNkZWZpbmUgVUZTX01PVU5UX09ORVJST1JfTE9DSyAw
eDAwMDAwMDAyCiNkZWZpbmUgVUZTX01PVU5UX09ORVJST1JfVU1PVU5UIDB4MDAwMDAwMDQKI2Rl
ZmluZSBVRlNfTU9VTlRfT05FUlJPUl9SRVBBSVIgMHgwMDAwMDAwOAoKI2RlZmluZSBVRlNfTU9V
TlRfVUZTVFlQRSAweDAwMDAwRkYwCiNkZWZpbmUgVUZTX01PVU5UX1VGU1RZUEVfT0xEIDB4MDAw
MDAwMTAKI2RlZmluZSBVRlNfTU9VTlRfVUZTVFlQRV80NEJTRCAweDAwMDAwMDIwCiNkZWZpbmUg
VUZTX01PVU5UX1VGU1RZUEVfU1VOIDB4MDAwMDAwNDAKI2RlZmluZSBVRlNfTU9VTlRfVUZTVFlQ
RV9ORVhUU1RFUCAweDAwMDAwMDgwCiNkZWZpbmUgVUZTX01PVU5UX1VGU1RZUEVfTkVYVFNURVBf
Q0QgMHgwMDAwMDEwMAojZGVmaW5lIFVGU19NT1VOVF9VRlNUWVBFX09QRU5TVEVQIDB4MDAwMDAy
MDAKI2RlZmluZSBVRlNfTU9VTlRfVUZTVFlQRV9TVU54ODYgMHgwMDAwMDQwMAojZGVmaW5lIFVG
U19NT1VOVF9VRlNUWVBFX0hQIDB4MDAwMDA4MDAKCiNkZWZpbmUgdWZzX2NsZWFyX29wdChvLCBv
cHQpIG8gJj0gflVGU19NT1VOVF8gIyMgb3B0CiNkZWZpbmUgdWZzX3NldF9vcHQobywgb3B0KSBv
IHw9IFVGU19NT1VOVF8gIyMgb3B0CiNkZWZpbmUgdWZzX3Rlc3Rfb3B0KG8sIG9wdCkgKChvKSAm
IFVGU19NT1VOVF8gIyMgb3B0KQojIDE2OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC91ZnNfZnMuaCIKI2RlZmluZSBVRlNfTUlORlJFRSA1CiNkZWZpbmUgVUZTX0RFRkFVTFRP
UFQgVUZTX09QVFRJTUUKCgoKCgojZGVmaW5lIHVmc19mc2J0b2RiKHVzcGksIGIpICgoYikgPDwg
KHVzcGkpLT5zX2ZzYnRvZGIpCiNkZWZpbmUgdWZzX2RidG9mc2IodXNwaSwgYikgKChiKSA+PiAo
dXNwaSktPnNfZnNidG9kYikKCgoKCgojZGVmaW5lIHVmc19jZ2Jhc2UoYykgKHVzcGktPnNfZnBn
ICogKGMpKQojZGVmaW5lIHVmc19jZ3N0YXJ0KGMpICh1ZnNfY2diYXNlKGMpICsgdXNwaS0+c19j
Z29mZnNldCAqICgoYykgJiB+dXNwaS0+c19jZ21hc2spKQojZGVmaW5lIHVmc19jZ3NibG9jayhj
KSAodWZzX2Nnc3RhcnQoYykgKyB1c3BpLT5zX3NibGtubykKI2RlZmluZSB1ZnNfY2djbWluKGMp
ICh1ZnNfY2dzdGFydChjKSArIHVzcGktPnNfY2Jsa25vKQojZGVmaW5lIHVmc19jZ2ltaW4oYykg
KHVmc19jZ3N0YXJ0KGMpICsgdXNwaS0+c19pYmxrbm8pCiNkZWZpbmUgdWZzX2NnZG1pbihjKSAo
dWZzX2Nnc3RhcnQoYykgKyB1c3BpLT5zX2RibGtubykKCgoKCgoKCiNkZWZpbmUgdWZzX2lub3Rv
Y2coeCkgKCh4KSAvIHVzcGktPnNfaXBnKQojZGVmaW5lIHVmc19pbm90b2Nnb2ZmKHgpICgoeCkg
JSB1c3BpLT5zX2lwZykKI2RlZmluZSB1ZnNfaW5vdG9mc2JhKHgpICh1ZnNfY2dpbWluKHVmc19p
bm90b2NnKHgpKSArIHVmc19pbm90b2Nnb2ZmKHgpIC8gdXNwaS0+c19pbm9wZikKI2RlZmluZSB1
ZnNfaW5vdG9mc2JvKHgpICgoeCkgJSB1c3BpLT5zX2lub3BmKQoKCgoKCiNkZWZpbmUgdWZzX2R0
b2coZCkgKChkKSAvIHVzcGktPnNfZnBnKQojZGVmaW5lIHVmc19kdG9nZChkKSAoKGQpICUgdXNw
aS0+c19mcGcpCgoKCgojZGVmaW5lIHVmc19jYnRvY3lsbm8oYm5vKSAoKGJubykgKiB1c3BpLT5z
X25zcGYgLyB1c3BpLT5zX3NwYykKCiNkZWZpbmUgdWZzX2NidG9ycG9zKGJubykgKCgoKGJubykg
KiB1c3BpLT5zX25zcGYgJSB1c3BpLT5zX3NwYyAvIHVzcGktPnNfbnNlY3QgKiB1c3BpLT5zX3Ry
YWNrc2tldyArIChibm8pICogdXNwaS0+c19uc3BmICUgdXNwaS0+c19zcGMgJSB1c3BpLT5zX25z
ZWN0ICogdXNwaS0+c19pbnRlcmxlYXZlKSAlIHVzcGktPnNfbnNlY3QgKiB1c3BpLT5zX25ycG9z
KSAvIHVzcGktPnNfbnBzZWN0KQojIDIyMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC91ZnNfZnMuaCIKI2RlZmluZSB1ZnNfYmxrb2ZmKGxvYykgKChsb2MpICYgdXNwaS0+c19x
Ym1hc2spCiNkZWZpbmUgdWZzX2ZyYWdvZmYobG9jKSAoKGxvYykgJiB1c3BpLT5zX3FmbWFzaykK
I2RlZmluZSB1ZnNfbGJsa3Rvc2l6ZShibGspICgoYmxrKSA8PCB1c3BpLT5zX2JzaGlmdCkKI2Rl
ZmluZSB1ZnNfbGJsa25vKGxvYykgKChsb2MpID4+IHVzcGktPnNfYnNoaWZ0KQojZGVmaW5lIHVm
c19udW1mcmFncyhsb2MpICgobG9jKSA+PiB1c3BpLT5zX2ZzaGlmdCkKI2RlZmluZSB1ZnNfYmxr
cm91bmR1cChzaXplKSAoKChzaXplKSArIHVzcGktPnNfcWJtYXNrKSAmIHVzcGktPnNfYm1hc2sp
CiNkZWZpbmUgdWZzX2ZyYWdyb3VuZHVwKHNpemUpICgoKHNpemUpICsgdXNwaS0+c19xZm1hc2sp
ICYgdXNwaS0+c19mbWFzaykKI2RlZmluZSB1ZnNfZnJhZ3N0b2Jsa3MoZnJhZ3MpICgoZnJhZ3Mp
ID4+IHVzcGktPnNfZnBic2hpZnQpCiNkZWZpbmUgdWZzX2Jsa3N0b2ZyYWdzKGJsa3MpICgoYmxr
cykgPDwgdXNwaS0+c19mcGJzaGlmdCkKI2RlZmluZSB1ZnNfZnJhZ251bShmc2IpICgoZnNiKSAm
IHVzcGktPnNfZnBibWFzaykKI2RlZmluZSB1ZnNfYmxrbnVtKGZzYikgKChmc2IpICYgfnVzcGkt
PnNfZnBibWFzaykKCiNkZWZpbmUgVUZTX01BWE5BTUxFTiAyNTUKI2RlZmluZSBVRlNfTUFYTU5U
TEVOIDUxMgojZGVmaW5lIFVGU19NQVhDU0JVRlMgMzEKI2RlZmluZSBVRlNfTElOS19NQVggMzIw
MDAKCgoKCgojZGVmaW5lIFVGU19ESVJfUEFEIDQKI2RlZmluZSBVRlNfRElSX1JPVU5EIChVRlNf
RElSX1BBRCAtIDEpCiNkZWZpbmUgVUZTX0RJUl9SRUNfTEVOKG5hbWVfbGVuKSAoKChuYW1lX2xl
bikgKyAxICsgOCArIFVGU19ESVJfUk9VTkQpICYgflVGU19ESVJfUk9VTkQpCgpzdHJ1Y3QgdWZz
X3RpbWV2YWwgewogICAgICAgIF9fczMyIHR2X3NlYzsKICAgICAgICBfX3MzMiB0dl91c2VjOwp9
OwoKc3RydWN0IHVmc19kaXJfZW50cnkgewogICAgICAgIF9fdTMyIGRfaW5vOwogICAgICAgIF9f
dTE2IGRfcmVjbGVuOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIF9fdTE2IGRfbmFt
bGVuOwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgX191
OCBkX3R5cGU7CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTggZF9uYW1sZW47CiAgICAgICAg
ICAgICAgICB9IGRfNDQ7CiAgICAgICAgfSBkX3U7CiAgICAgICAgX191OCBkX25hbWVbMjU1ICsg
MV07Cn07CgpzdHJ1Y3QgdWZzX2NzdW0gewogICAgICAgIF9fdTMyIGNzX25kaXI7CiAgICAgICAg
X191MzIgY3NfbmJmcmVlOwogICAgICAgIF9fdTMyIGNzX25pZnJlZTsKICAgICAgICBfX3UzMiBj
c19uZmZyZWU7Cn07CgoKCgpzdHJ1Y3QgdWZzX3N1cGVyX2Jsb2NrIHsKICAgICAgICBfX3UzMiBm
c19saW5rOwogICAgICAgIF9fdTMyIGZzX3JsaW5rOwogICAgICAgIF9fdTMyIGZzX3NibGtubzsK
ICAgICAgICBfX3UzMiBmc19jYmxrbm87CiAgICAgICAgX191MzIgZnNfaWJsa25vOwogICAgICAg
IF9fdTMyIGZzX2RibGtubzsKICAgICAgICBfX3UzMiBmc19jZ29mZnNldDsKICAgICAgICBfX3Uz
MiBmc19jZ21hc2s7CiAgICAgICAgX191MzIgZnNfdGltZTsKICAgICAgICBfX3UzMiBmc19zaXpl
OwogICAgICAgIF9fdTMyIGZzX2RzaXplOwogICAgICAgIF9fdTMyIGZzX25jZzsKICAgICAgICBf
X3UzMiBmc19ic2l6ZTsKICAgICAgICBfX3UzMiBmc19mc2l6ZTsKICAgICAgICBfX3UzMiBmc19m
cmFnOwoKICAgICAgICBfX3UzMiBmc19taW5mcmVlOwogICAgICAgIF9fdTMyIGZzX3JvdGRlbGF5
OwogICAgICAgIF9fdTMyIGZzX3JwczsKCiAgICAgICAgX191MzIgZnNfYm1hc2s7CiAgICAgICAg
X191MzIgZnNfZm1hc2s7CiAgICAgICAgX191MzIgZnNfYnNoaWZ0OwogICAgICAgIF9fdTMyIGZz
X2ZzaGlmdDsKCiAgICAgICAgX191MzIgZnNfbWF4Y29udGlnOwogICAgICAgIF9fdTMyIGZzX21h
eGJwZzsKCiAgICAgICAgX191MzIgZnNfZnJhZ3NoaWZ0OwogICAgICAgIF9fdTMyIGZzX2ZzYnRv
ZGI7CiAgICAgICAgX191MzIgZnNfc2JzaXplOwogICAgICAgIF9fdTMyIGZzX2NzbWFzazsKICAg
ICAgICBfX3UzMiBmc19jc3NoaWZ0OwogICAgICAgIF9fdTMyIGZzX25pbmRpcjsKICAgICAgICBf
X3UzMiBmc19pbm9wYjsKICAgICAgICBfX3UzMiBmc19uc3BmOwoKICAgICAgICBfX3UzMiBmc19v
cHRpbTsKCiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgX191MzIgZnNfbnBzZWN0OwogICAgICAgICAgICAgICAgfSBmc19zdW47
CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBm
c19zdGF0ZTsKICAgICAgICAgICAgICAgIH0gZnNfc3VueDg2OwogICAgICAgIH0gZnNfdTE7CiAg
ICAgICAgX191MzIgZnNfaW50ZXJsZWF2ZTsKICAgICAgICBfX3UzMiBmc190cmFja3NrZXc7CgoK
CgogICAgICAgIF9fdTMyIGZzX2lkWzJdOwoKICAgICAgICBfX3UzMiBmc19jc2FkZHI7CiAgICAg
ICAgX191MzIgZnNfY3NzaXplOwogICAgICAgIF9fdTMyIGZzX2Nnc2l6ZTsKCiAgICAgICAgX191
MzIgZnNfbnRyYWs7CiAgICAgICAgX191MzIgZnNfbnNlY3Q7CiAgICAgICAgX191MzIgZnNfc3Bj
OwoKICAgICAgICBfX3UzMiBmc19uY3lsOwoKICAgICAgICBfX3UzMiBmc19jcGc7CiAgICAgICAg
X191MzIgZnNfaXBnOwogICAgICAgIF9fdTMyIGZzX2ZwZzsKCiAgICAgICAgc3RydWN0IHVmc19j
c3VtIGZzX2NzdG90YWw7CgogICAgICAgIF9fczggZnNfZm1vZDsKICAgICAgICBfX3M4IGZzX2Ns
ZWFuOwogICAgICAgIF9fczggZnNfcm9ubHk7CiAgICAgICAgX19zOCBmc19mbGFnczsKICAgICAg
ICBfX3M4IGZzX2ZzbW50WzUxMl07CgogICAgICAgIF9fdTMyIGZzX2Nncm90b3I7CiAgICAgICAg
X191MzIgZnNfY3NwWzMxXTsKICAgICAgICBfX3UzMiBmc19tYXhjbHVzdGVyOwogICAgICAgIF9f
dTMyIGZzX2NwYzsKICAgICAgICBfX3UxNiBmc19vcG9zdGJsWzE2XVs4XTsKICAgICAgICB1bmlv
biB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3Mz
MiBmc19zcGFyZWNvbls1M107CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3JlY2xh
aW07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3NwYXJlY29uMlsxXTsKICAgICAg
ICAgICAgICAgICAgICAgICAgX19zMzIgZnNfc3RhdGU7CiAgICAgICAgICAgICAgICAgICAgICAg
IF9fdTMyIGZzX3FibWFza1syXTsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNfcWZt
YXNrWzJdOwogICAgICAgICAgICAgICAgfSBmc19zdW47CiAgICAgICAgICAgICAgICBzdHJ1Y3Qg
ewogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19zcGFyZWNvbls1M107CiAgICAgICAg
ICAgICAgICAgICAgICAgIF9fczMyIGZzX3JlY2xhaW07CiAgICAgICAgICAgICAgICAgICAgICAg
IF9fczMyIGZzX3NwYXJlY29uMlsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNf
bnBzZWN0OwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiBmc19xYm1hc2tbMl07CiAgICAg
ICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FmbWFza1syXTsKICAgICAgICAgICAgICAgIH0g
ZnNfc3VueDg2OwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAg
ICAgX19zMzIgZnNfc3BhcmVjb25bNTBdOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBm
c19jb250aWdzdW1zaXplOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19tYXhzeW1s
aW5rbGVuOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19pbm9kZWZtdDsKICAgICAg
ICAgICAgICAgICAgICAgICAgX191MzIgZnNfbWF4ZmlsZXNpemVbMl07CiAgICAgICAgICAgICAg
ICAgICAgICAgIF9fdTMyIGZzX3FibWFza1syXTsKICAgICAgICAgICAgICAgICAgICAgICAgX191
MzIgZnNfcWZtYXNrWzJdOwogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19zdGF0ZTsK
ICAgICAgICAgICAgICAgIH0gZnNfNDQ7CiAgICAgICAgfSBmc191MjsKICAgICAgICBfX3MzMiBm
c19wb3N0Ymxmb3JtYXQ7CiAgICAgICAgX19zMzIgZnNfbnJwb3M7CiAgICAgICAgX19zMzIgZnNf
cG9zdGJsb2ZmOwogICAgICAgIF9fczMyIGZzX3JvdGJsb2ZmOwogICAgICAgIF9fczMyIGZzX21h
Z2ljOwogICAgICAgIF9fdTggZnNfc3BhY2VbMV07Cn07CgoKCgojZGVmaW5lIFVGU19PUFRUSU1F
IDAKI2RlZmluZSBVRlNfT1BUU1BBQ0UgMQoKCgoKI2RlZmluZSBVRlNfNDJQT1NUQkxGTVQgLTEK
I2RlZmluZSBVRlNfRFlOQU1JQ1BPU1RCTEZNVCAxCgoKCgojZGVmaW5lIGZzX2NzKGluZHgpIHUu
dWZzX3NiLnNfY3NwWyhpbmR4KSA+PiB1c3BpLT5zX2Nzc2hpZnRdWyhpbmR4KSAmIH51c3BpLT5z
X2NzbWFza10KIyA0MTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdWZzX2Zz
LmgiCiNkZWZpbmUgQ0dfTUFHSUMgMHgwOTAyNTUKI2RlZmluZSB1ZnNfY2dfY2hrbWFnaWModWNn
KSAoU1dBQjMyKCh1Y2cpLT5jZ19tYWdpYykgPT0gQ0dfTUFHSUMpCgoKCgpzdHJ1Y3QgdWZzX2N5
bGluZGVyX2dyb3VwIHsKICAgICAgICBfX3UzMiBjZ19saW5rOwogICAgICAgIF9fdTMyIGNnX21h
Z2ljOwogICAgICAgIF9fdTMyIGNnX3RpbWU7CiAgICAgICAgX191MzIgY2dfY2d4OwogICAgICAg
IF9fdTE2IGNnX25jeWw7CiAgICAgICAgX191MTYgY2dfbmlibGs7CiAgICAgICAgX191MzIgY2df
bmRibGs7CiAgICAgICAgc3RydWN0IHVmc19jc3VtIGNnX2NzOwogICAgICAgIF9fdTMyIGNnX3Jv
dG9yOwogICAgICAgIF9fdTMyIGNnX2Zyb3RvcjsKICAgICAgICBfX3UzMiBjZ19pcm90b3I7CiAg
ICAgICAgX191MzIgY2dfZnJzdW1bKDgxOTIgLyAxMDI0KV07CiAgICAgICAgX191MzIgY2dfYnRv
dG9mZjsKICAgICAgICBfX3UzMiBjZ19ib2ZmOwogICAgICAgIF9fdTMyIGNnX2l1c2Vkb2ZmOwog
ICAgICAgIF9fdTMyIGNnX2ZyZWVvZmY7CiAgICAgICAgX191MzIgY2dfbmV4dGZyZWVvZmY7CiAg
ICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgX191MzIgY2dfY2x1c3RlcnN1bW9mZjsKICAgICAgICAgICAgICAgICAgICAgICAgX191
MzIgY2dfY2x1c3Rlcm9mZjsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgY2dfbmNsdXN0
ZXJibGtzOwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiBjZ19zcGFyZWNvblsxM107CiAg
ICAgICAgICAgICAgICB9IGNnXzQ0OwogICAgICAgICAgICAgICAgX191MzIgY2dfc3BhcmVjb25b
MTZdOwogICAgICAgIH0gY2dfdTsKICAgICAgICBfX3U4IGNnX3NwYWNlWzFdOwoKfTsKCgoKCnN0
cnVjdCB1ZnNfaW5vZGUgewogICAgICAgIF9fdTE2IHVpX21vZGU7CiAgICAgICAgX191MTYgdWlf
bmxpbms7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgX191MTYgdWlfc3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgX191
MTYgdWlfc2dpZDsKICAgICAgICAgICAgICAgIH0gb2xkaWRzOwogICAgICAgICAgICAgICAgX191
MzIgdWlfaW51bWJlcjsKICAgICAgICAgICAgICAgIF9fdTMyIHVpX2F1dGhvcjsKICAgICAgICB9
IHVpX3UxOwogICAgICAgIF9fdTY0IHVpX3NpemU7CiAgICAgICAgc3RydWN0IHVmc190aW1ldmFs
IHVpX2F0aW1lOwogICAgICAgIHN0cnVjdCB1ZnNfdGltZXZhbCB1aV9tdGltZTsKICAgICAgICBz
dHJ1Y3QgdWZzX3RpbWV2YWwgdWlfY3RpbWU7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAg
ICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgdWlfZGJbMTJdOwogICAg
ICAgICAgICAgICAgICAgICAgICBfX3UzMiB1aV9pYlszXTsKICAgICAgICAgICAgICAgIH0gdWlf
YWRkcjsKICAgICAgICAgICAgICAgIF9fdTggdWlfc3ltbGlua1s0KigxMiArMyldOwogICAgICAg
IH0gdWlfdTI7CiAgICAgICAgX191MzIgdWlfZmxhZ3M7CiAgICAgICAgX191MzIgdWlfYmxvY2tz
OwogICAgICAgIF9fdTMyIHVpX2dlbjsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBz
dHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiB1aV9zaGFkb3c7CiAgICAgICAg
ICAgICAgICAgICAgICAgIF9fdTMyIHVpX3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgX191
MzIgdWlfZ2lkOwogICAgICAgICAgICAgICAgICAgICAgICBfX3UzMiB1aV9vZWZ0ZmxhZzsKICAg
ICAgICAgICAgICAgIH0gdWlfc3VuOwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgX191MzIgdWlfdWlkOwogICAgICAgICAgICAgICAgICAgICAgICBfX3Uz
MiB1aV9naWQ7CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIHVpX3NwYXJlWzJdOwogICAg
ICAgICAgICAgICAgfSB1aV80NDsKICAgICAgICAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIF9fdTMyIHVpX3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIg
dWlfZ2lkOwogICAgICAgICAgICAgICAgICAgICAgICBfX3UxNiB1aV9tb2RlaDsKICAgICAgICAg
ICAgICAgICAgICAgICAgX191MTYgdWlfc3BhcmU7CiAgICAgICAgICAgICAgICAgICAgICAgIF9f
dTMyIHVpX3RyYW5zOwogICAgICAgICAgICAgICAgfSB1aV9odXJkOwogICAgICAgIH0gdWlfdTM7
Cn07CgoKCiNkZWZpbmUgVUZTX1VGX1NFVFRBQkxFIDB4MDAwMGZmZmYKI2RlZmluZSBVRlNfVUZf
Tk9EVU1QIDB4MDAwMDAwMDEKI2RlZmluZSBVRlNfVUZfSU1NVVRBQkxFIDB4MDAwMDAwMDIKI2Rl
ZmluZSBVRlNfVUZfQVBQRU5EIDB4MDAwMDAwMDQKI2RlZmluZSBVRlNfVUZfT1BBUVVFIDB4MDAw
MDAwMDgKI2RlZmluZSBVRlNfVUZfTk9VTkxJTksgMHgwMDAwMDAxMAoKI2RlZmluZSBVRlNfU0Zf
U0VUVEFCTEUgMHhmZmZmMDAwMAojZGVmaW5lIFVGU19TRl9BUkNISVZFRCAweDAwMDEwMDAwCiNk
ZWZpbmUgVUZTX1NGX0lNTVVUQUJMRSAweDAwMDIwMDAwCiNkZWZpbmUgVUZTX1NGX0FQUEVORCAw
eDAwMDQwMDAwCiNkZWZpbmUgVUZTX1NGX05PVU5MSU5LIDB4MDAxMDAwMDAKCgoKCmV4dGVybiB2
b2lkIHVmc19mcmVlX2ZyYWdtZW50cyAoc3RydWN0IGlub2RlICosIHVuc2lnbmVkLCB1bnNpZ25l
ZCk7CmV4dGVybiB2b2lkIHVmc19mcmVlX2Jsb2NrcyAoc3RydWN0IGlub2RlICosIHVuc2lnbmVk
LCB1bnNpZ25lZCk7CmV4dGVybiB1bnNpZ25lZCB1ZnNfbmV3X2ZyYWdtZW50cyAoc3RydWN0IGlu
b2RlICosIHUzMiAqLCB1bnNpZ25lZCwgdW5zaWduZWQsIHVuc2lnbmVkLCBpbnQgKik7CgoKZXh0
ZXJuIHN0cnVjdCB1ZnNfY2dfcHJpdmF0ZV9pbmZvICogdWZzX2xvYWRfY3lsaW5kZXIgKHN0cnVj
dCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCk7CmV4dGVybiB2b2lkIHVmc19wdXRfY3lsaW5kZXIg
KHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1bnNpZ25lZCk7CgoKZXh0ZXJuIHN0cnVjdCBpbm9kZV9v
cGVyYXRpb25zIHVmc19kaXJfaW5vZGVfb3BlcmF0aW9uczsKZXh0ZXJuIGludCB1ZnNfY2hlY2tf
ZGlyX2VudHJ5IChjb25zdCBjaGFyICosIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgdWZzX2Rpcl9l
bnRyeSAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiwgdW5zaWduZWQgbG9uZyk7CgoKZXh0ZXJuIHN0
cnVjdCBpbm9kZV9vcGVyYXRpb25zIHVmc19maWxlX2lub2RlX29wZXJhdGlvbnM7CmV4dGVybiBz
dHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHVmc19maWxlX29wZXJhdGlvbnM7CgpleHRlcm4gc3RydWN0
IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyB1ZnNfYW9wczsKCgpleHRlcm4gdm9pZCB1ZnNfZnJl
ZV9pbm9kZSAoc3RydWN0IGlub2RlICppbm9kZSk7CmV4dGVybiBzdHJ1Y3QgaW5vZGUgKiB1ZnNf
bmV3X2lub2RlIChjb25zdCBzdHJ1Y3QgaW5vZGUgKiwgaW50LCBpbnQgKik7CgoKZXh0ZXJuIGlu
dCB1ZnNfZnJhZ19tYXAgKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gdm9pZCB1ZnNfcmVh
ZF9pbm9kZSAoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCB1ZnNfcHV0X2lub2RlIChzdHJ1
Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIHVmc193cml0ZV9pbm9kZSAoc3RydWN0IGlub2RlICos
IGludCk7CmV4dGVybiBpbnQgdWZzX3N5bmNfaW5vZGUgKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJu
IHZvaWQgdWZzX2RlbGV0ZV9pbm9kZSAoc3RydWN0IGlub2RlICopOwpleHRlcm4gc3RydWN0IGJ1
ZmZlcl9oZWFkICogdWZzX2dldGZyYWcgKHN0cnVjdCBpbm9kZSAqLCB1bnNpZ25lZCwgaW50LCBp
bnQgKik7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiB1ZnNfYnJlYWQgKHN0cnVjdCBpbm9k
ZSAqLCB1bnNpZ25lZCwgaW50LCBpbnQgKik7CgoKZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgdWZzX2Rpcl9vcGVyYXRpb25zOwoKCmV4dGVybiBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB1
ZnNfZnNfdHlwZTsKZXh0ZXJuIHZvaWQgdWZzX3dhcm5pbmcgKHN0cnVjdCBzdXBlcl9ibG9jayAq
LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKSBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0
IChwcmludGYsIDMsIDQpKSk7CmV4dGVybiB2b2lkIHVmc19lcnJvciAoc3RydWN0IHN1cGVyX2Js
b2NrICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pIF9fYXR0cmlidXRlX18gKChm
b3JtYXQgKHByaW50ZiwgMywgNCkpKTsKZXh0ZXJuIHZvaWQgdWZzX3BhbmljIChzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLikgX19hdHRyaWJ1dGVf
XyAoKGZvcm1hdCAocHJpbnRmLCAzLCA0KSkpOwpleHRlcm4gdm9pZCB1ZnNfd3JpdGVfc3VwZXIg
KHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKCgpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMg
dWZzX2Zhc3Rfc3ltbGlua19pbm9kZV9vcGVyYXRpb25zOwoKCmV4dGVybiB2b2lkIHVmc190cnVu
Y2F0ZSAoc3RydWN0IGlub2RlICopOwojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3Vmc19mc19zYi5oIiAyCgoKCgoKc3RydWN0IHVmc19idWZmZXJfaGVhZCB7CiAgICAg
ICAgdW5zaWduZWQgZnJhZ21lbnQ7CiAgICAgICAgdW5zaWduZWQgY291bnQ7CiAgICAgICAgc3Ry
dWN0IGJ1ZmZlcl9oZWFkICogYmhbKDgxOTIgLyAxMDI0KV07Cn07CgpzdHJ1Y3QgdWZzX2NnX3By
aXZhdGVfaW5mbyB7CiAgICAgICAgc3RydWN0IHVmc19jeWxpbmRlcl9ncm91cCB1Y2c7CiAgICAg
ICAgX191MzIgY19jZ3g7CiAgICAgICAgX191MTYgY19uY3lsOwogICAgICAgIF9fdTE2IGNfbmli
bGs7CiAgICAgICAgX191MzIgY19uZGJsazsKICAgICAgICBfX3UzMiBjX3JvdG9yOwogICAgICAg
IF9fdTMyIGNfZnJvdG9yOwogICAgICAgIF9fdTMyIGNfaXJvdG9yOwogICAgICAgIF9fdTMyIGNf
YnRvdG9mZjsKICAgICAgICBfX3UzMiBjX2JvZmY7CiAgICAgICAgX191MzIgY19pdXNlZG9mZjsK
ICAgICAgICBfX3UzMiBjX2ZyZWVvZmY7CiAgICAgICAgX191MzIgY19uZXh0ZnJlZW9mZjsKICAg
ICAgICBfX3UzMiBjX2NsdXN0ZXJzdW1vZmY7CiAgICAgICAgX191MzIgY19jbHVzdGVyb2ZmOwog
ICAgICAgIF9fdTMyIGNfbmNsdXN0ZXJibGtzOwp9OwoKc3RydWN0IHVmc19zYl9wcml2YXRlX2lu
Zm8gewogICAgICAgIHN0cnVjdCB1ZnNfYnVmZmVyX2hlYWQgc191Ymg7CiAgICAgICAgX191MzIg
c19zYmxrbm87CiAgICAgICAgX191MzIgc19jYmxrbm87CiAgICAgICAgX191MzIgc19pYmxrbm87
CiAgICAgICAgX191MzIgc19kYmxrbm87CiAgICAgICAgX191MzIgc19jZ29mZnNldDsKICAgICAg
ICBfX3UzMiBzX2NnbWFzazsKICAgICAgICBfX3UzMiBzX3NpemU7CiAgICAgICAgX191MzIgc19k
c2l6ZTsKICAgICAgICBfX3UzMiBzX25jZzsKICAgICAgICBfX3UzMiBzX2JzaXplOwogICAgICAg
IF9fdTMyIHNfZnNpemU7CiAgICAgICAgX191MzIgc19mcGI7CiAgICAgICAgX191MzIgc19taW5m
cmVlOwogICAgICAgIF9fdTMyIHNfYm1hc2s7CiAgICAgICAgX191MzIgc19mbWFzazsKICAgICAg
ICBfX3UzMiBzX2JzaGlmdDsKICAgICAgICBfX3UzMiBzX2ZzaGlmdDsKICAgICAgICBfX3UzMiBz
X2ZwYnNoaWZ0OwogICAgICAgIF9fdTMyIHNfZnNidG9kYjsKICAgICAgICBfX3UzMiBzX3Nic2l6
ZTsKICAgICAgICBfX3UzMiBzX2NzbWFzazsKICAgICAgICBfX3UzMiBzX2Nzc2hpZnQ7CiAgICAg
ICAgX191MzIgc19uaW5kaXI7CiAgICAgICAgX191MzIgc19pbm9wYjsKICAgICAgICBfX3UzMiBz
X25zcGY7CiAgICAgICAgX191MzIgc19ucHNlY3Q7CiAgICAgICAgX191MzIgc19pbnRlcmxlYXZl
OwogICAgICAgIF9fdTMyIHNfdHJhY2tza2V3OwogICAgICAgIF9fdTMyIHNfY3NhZGRyOwogICAg
ICAgIF9fdTMyIHNfY3NzaXplOwogICAgICAgIF9fdTMyIHNfY2dzaXplOwogICAgICAgIF9fdTMy
IHNfbnRyYWs7CiAgICAgICAgX191MzIgc19uc2VjdDsKICAgICAgICBfX3UzMiBzX3NwYzsKICAg
ICAgICBfX3UzMiBzX2lwZzsKICAgICAgICBfX3UzMiBzX2ZwZzsKICAgICAgICBfX3UzMiBzX2Nw
YzsKICAgICAgICBfX3MzMiBzX2NvbnRpZ3N1bXNpemU7CiAgICAgICAgX19zNjQgc19xYm1hc2s7
CiAgICAgICAgX19zNjQgc19xZm1hc2s7CiAgICAgICAgX19zMzIgc19wb3N0Ymxmb3JtYXQ7CiAg
ICAgICAgX19zMzIgc19ucnBvczsKICAgICAgICBfX3MzMiBzX3Bvc3RibG9mZjsKICAgICAgICBf
X3MzMiBzX3JvdGJsb2ZmOwoKICAgICAgICBfX3UzMiBzX2ZwYm1hc2s7CiAgICAgICAgX191MzIg
c19hcGI7CiAgICAgICAgX191MzIgc18yYXBiOwogICAgICAgIF9fdTMyIHNfM2FwYjsKICAgICAg
ICBfX3UzMiBzX2FwYm1hc2s7CiAgICAgICAgX191MzIgc19hcGJzaGlmdDsKICAgICAgICBfX3Uz
MiBzXzJhcGJzaGlmdDsKICAgICAgICBfX3UzMiBzXzNhcGJzaGlmdDsKICAgICAgICBfX3UzMiBz
X25zcGZzaGlmdDsKICAgICAgICBfX3UzMiBzX25zcGI7CiAgICAgICAgX191MzIgc19pbm9wZjsK
ICAgICAgICBfX3UzMiBzX3NiYmFzZTsKICAgICAgICBfX3UzMiBzX2JwZjsKICAgICAgICBfX3Uz
MiBzX2JwZnNoaWZ0OwogICAgICAgIF9fdTMyIHNfYnBmbWFzazsKCiAgICAgICAgX191MzIgc19t
YXhzeW1saW5rbGVuOwp9OwoKCiNkZWZpbmUgVUZTX01BWF9HUk9VUF9MT0FERUQgOAojZGVmaW5l
IFVGU19DR05PX0VNUFRZICgodW5zaWduZWQpLTEpCgpzdHJ1Y3QgdWZzX3NiX2luZm8gewogICAg
ICAgIHN0cnVjdCB1ZnNfc2JfcHJpdmF0ZV9pbmZvICogc191c3BpOwogICAgICAgIHN0cnVjdCB1
ZnNfY3N1bSAqIHNfY3NwWzMxXTsKICAgICAgICB1bnNpZ25lZCBzX3N3YWI7CiAgICAgICAgdW5z
aWduZWQgc19mbGFnczsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiogc191Y2c7CiAgICAg
ICAgc3RydWN0IHVmc19jZ19wcml2YXRlX2luZm8gKiBzX3VjcGlbOF07CiAgICAgICAgdW5zaWdu
ZWQgc19jZ25vWzhdOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNfY2dfbG9hZGVkOwogICAgICAg
IHVuc2lnbmVkIHNfbW91bnRfb3B0Owp9OwoKCgoKCgoKc3RydWN0IHVmc19zdXBlcl9ibG9ja19m
aXJzdCB7CiAgICAgICAgX191MzIgZnNfbGluazsKICAgICAgICBfX3UzMiBmc19ybGluazsKICAg
ICAgICBfX3UzMiBmc19zYmxrbm87CiAgICAgICAgX191MzIgZnNfY2Jsa25vOwogICAgICAgIF9f
dTMyIGZzX2libGtubzsKICAgICAgICBfX3UzMiBmc19kYmxrbm87CiAgICAgICAgX191MzIgZnNf
Y2dvZmZzZXQ7CiAgICAgICAgX191MzIgZnNfY2dtYXNrOwogICAgICAgIF9fdTMyIGZzX3RpbWU7
CiAgICAgICAgX191MzIgZnNfc2l6ZTsKICAgICAgICBfX3UzMiBmc19kc2l6ZTsKICAgICAgICBf
X3UzMiBmc19uY2c7CiAgICAgICAgX191MzIgZnNfYnNpemU7CiAgICAgICAgX191MzIgZnNfZnNp
emU7CiAgICAgICAgX191MzIgZnNfZnJhZzsKICAgICAgICBfX3UzMiBmc19taW5mcmVlOwogICAg
ICAgIF9fdTMyIGZzX3JvdGRlbGF5OwogICAgICAgIF9fdTMyIGZzX3JwczsKICAgICAgICBfX3Uz
MiBmc19ibWFzazsKICAgICAgICBfX3UzMiBmc19mbWFzazsKICAgICAgICBfX3UzMiBmc19ic2hp
ZnQ7CiAgICAgICAgX191MzIgZnNfZnNoaWZ0OwogICAgICAgIF9fdTMyIGZzX21heGNvbnRpZzsK
ICAgICAgICBfX3UzMiBmc19tYXhicGc7CiAgICAgICAgX191MzIgZnNfZnJhZ3NoaWZ0OwogICAg
ICAgIF9fdTMyIGZzX2ZzYnRvZGI7CiAgICAgICAgX191MzIgZnNfc2JzaXplOwogICAgICAgIF9f
dTMyIGZzX2NzbWFzazsKICAgICAgICBfX3UzMiBmc19jc3NoaWZ0OwogICAgICAgIF9fdTMyIGZz
X25pbmRpcjsKICAgICAgICBfX3UzMiBmc19pbm9wYjsKICAgICAgICBfX3UzMiBmc19uc3BmOwog
ICAgICAgIF9fdTMyIGZzX29wdGltOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIHN0
cnVjdCB7CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX25wc2VjdDsKICAgICAgICAg
ICAgICAgIH0gZnNfc3VuOwogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAg
ICAgICAgICAgX19zMzIgZnNfc3RhdGU7CiAgICAgICAgICAgICAgICB9IGZzX3N1bng4NjsKICAg
ICAgICB9IGZzX3UxOwogICAgICAgIF9fdTMyIGZzX2ludGVybGVhdmU7CiAgICAgICAgX191MzIg
ZnNfdHJhY2tza2V3OwogICAgICAgIF9fdTMyIGZzX2lkWzJdOwogICAgICAgIF9fdTMyIGZzX2Nz
YWRkcjsKICAgICAgICBfX3UzMiBmc19jc3NpemU7CiAgICAgICAgX191MzIgZnNfY2dzaXplOwog
ICAgICAgIF9fdTMyIGZzX250cmFrOwogICAgICAgIF9fdTMyIGZzX25zZWN0OwogICAgICAgIF9f
dTMyIGZzX3NwYzsKICAgICAgICBfX3UzMiBmc19uY3lsOwogICAgICAgIF9fdTMyIGZzX2NwZzsK
ICAgICAgICBfX3UzMiBmc19pcGc7CiAgICAgICAgX191MzIgZnNfZnBnOwogICAgICAgIHN0cnVj
dCB1ZnNfY3N1bSBmc19jc3RvdGFsOwogICAgICAgIF9fczggZnNfZm1vZDsKICAgICAgICBfX3M4
IGZzX2NsZWFuOwogICAgICAgIF9fczggZnNfcm9ubHk7CiAgICAgICAgX19zOCBmc19mbGFnczsK
ICAgICAgICBfX3M4IGZzX2ZzbW50WzUxMiAtIDIxMl07Cgp9OwoKc3RydWN0IHVmc19zdXBlcl9i
bG9ja19zZWNvbmQgewogICAgICAgIF9fczggZnNfZnNtbnRbMjEyXTsKICAgICAgICBfX3UzMiBm
c19jZ3JvdG9yOwogICAgICAgIF9fdTMyIGZzX2NzcFszMV07CiAgICAgICAgX191MzIgZnNfbWF4
Y2x1c3RlcjsKICAgICAgICBfX3UzMiBmc19jcGM7CiAgICAgICAgX191MTYgZnNfb3Bvc3RibFs4
Ml07Cn07CgpzdHJ1Y3QgdWZzX3N1cGVyX2Jsb2NrX3RoaXJkIHsKICAgICAgICBfX3UxNiBmc19v
cG9zdGJsWzQ2XTsKICAgICAgICB1bmlvbiB7CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAg
ICAgICAgICAgICAgICAgICAgICBfX3MzMiBmc19zcGFyZWNvbls1M107CiAgICAgICAgICAgICAg
ICAgICAgICAgIF9fczMyIGZzX3JlY2xhaW07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMy
IGZzX3NwYXJlY29uMlsxXTsKICAgICAgICAgICAgICAgICAgICAgICAgX19zMzIgZnNfc3RhdGU7
CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FibWFza1syXTsKICAgICAgICAgICAg
ICAgICAgICAgICAgX191MzIgZnNfcWZtYXNrWzJdOwogICAgICAgICAgICAgICAgfSBmc19zdW47
CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICBfX3MzMiBm
c19zcGFyZWNvbls1M107CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3JlY2xhaW07
CiAgICAgICAgICAgICAgICAgICAgICAgIF9fczMyIGZzX3NwYXJlY29uMlsxXTsKICAgICAgICAg
ICAgICAgICAgICAgICAgX191MzIgZnNfbnBzZWN0OwogICAgICAgICAgICAgICAgICAgICAgICBf
X3UzMiBmc19xYm1hc2tbMl07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FmbWFz
a1syXTsKICAgICAgICAgICAgICAgIH0gZnNfc3VueDg2OwogICAgICAgICAgICAgICAgc3RydWN0
IHsKICAgICAgICAgICAgICAgICAgICAgICAgX19zMzIgZnNfc3BhcmVjb25bNTBdOwogICAgICAg
ICAgICAgICAgICAgICAgICBfX3MzMiBmc19jb250aWdzdW1zaXplOwogICAgICAgICAgICAgICAg
ICAgICAgICBfX3MzMiBmc19tYXhzeW1saW5rbGVuOwogICAgICAgICAgICAgICAgICAgICAgICBf
X3MzMiBmc19pbm9kZWZtdDsKICAgICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNfbWF4Zmls
ZXNpemVbMl07CiAgICAgICAgICAgICAgICAgICAgICAgIF9fdTMyIGZzX3FibWFza1syXTsKICAg
ICAgICAgICAgICAgICAgICAgICAgX191MzIgZnNfcWZtYXNrWzJdOwogICAgICAgICAgICAgICAg
ICAgICAgICBfX3MzMiBmc19zdGF0ZTsKICAgICAgICAgICAgICAgIH0gZnNfNDQ7CiAgICAgICAg
fSBmc191MjsKICAgICAgICBfX3MzMiBmc19wb3N0Ymxmb3JtYXQ7CiAgICAgICAgX19zMzIgZnNf
bnJwb3M7CiAgICAgICAgX19zMzIgZnNfcG9zdGJsb2ZmOwogICAgICAgIF9fczMyIGZzX3JvdGJs
b2ZmOwogICAgICAgIF9fczMyIGZzX21hZ2ljOwogICAgICAgIF9fdTggZnNfc3BhY2VbMV07Cn07
CiMgNjUyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Vmc19mc19zYi5oIiAxCiMgMTAgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZWZzX2ZzX3NiLmgiCiNkZWZpbmUgX19F
RlNfRlNfU0JfSF9fCgoKI2RlZmluZSBFRlNfU1VQRVJfTUFHSUMgMHg0MTRBNTMKCgojZGVmaW5l
IEVGU19NQUdJQyAweDA3Mjk1OQojZGVmaW5lIEVGU19ORVdNQUdJQyAweDA3Mjk1YQoKI2RlZmlu
ZSBJU19FRlNfTUFHSUMoeCkgKCh4ID09IEVGU19NQUdJQykgfHwgKHggPT0gRUZTX05FV01BR0lD
KSkKCiNkZWZpbmUgRUZTX1NVUEVSIDEKI2RlZmluZSBFRlNfUk9PVElOT0RFIDIKCgpzdHJ1Y3Qg
ZWZzX3N1cGVyIHsKICAgICAgICBpbnQzMl90IGZzX3NpemU7CiAgICAgICAgaW50MzJfdCBmc19m
aXJzdGNnOwogICAgICAgIGludDMyX3QgZnNfY2dmc2l6ZTsKICAgICAgICBzaG9ydCBmc19jZ2lz
aXplOwogICAgICAgIHNob3J0IGZzX3NlY3RvcnM7CiAgICAgICAgc2hvcnQgZnNfaGVhZHM7CiAg
ICAgICAgc2hvcnQgZnNfbmNnOwogICAgICAgIHNob3J0IGZzX2RpcnR5OwogICAgICAgIGludDMy
X3QgZnNfdGltZTsKICAgICAgICBpbnQzMl90IGZzX21hZ2ljOwogICAgICAgIGNoYXIgZnNfZm5h
bWVbNl07CiAgICAgICAgY2hhciBmc19mcGFja1s2XTsKICAgICAgICBpbnQzMl90IGZzX2Jtc2l6
ZTsKICAgICAgICBpbnQzMl90IGZzX3RmcmVlOwogICAgICAgIGludDMyX3QgZnNfdGlub2RlOwog
ICAgICAgIGludDMyX3QgZnNfYm1ibG9jazsKICAgICAgICBpbnQzMl90IGZzX3JlcGxzYjsKICAg
ICAgICBpbnQzMl90IGZzX2xhc3RpYWxsb2M7CiAgICAgICAgY2hhciBmc19zcGFyZVsyMF07CiAg
ICAgICAgaW50MzJfdCBmc19jaGVja3N1bTsKfTsKCgpzdHJ1Y3QgZWZzX3NiX2luZm8gewogICAg
ICAgIGludDMyX3QgZnNfbWFnaWM7CiAgICAgICAgaW50MzJfdCBmc19zdGFydDsKICAgICAgICBp
bnQzMl90IGZpcnN0X2Jsb2NrOwogICAgICAgIGludDMyX3QgdG90YWxfYmxvY2tzOwogICAgICAg
IGludDMyX3QgZ3JvdXBfc2l6ZTsKICAgICAgICBpbnQzMl90IGRhdGFfZnJlZTsKICAgICAgICBp
bnQzMl90IGlub2RlX2ZyZWU7CiAgICAgICAgc2hvcnQgaW5vZGVfYmxvY2tzOwogICAgICAgIHNo
b3J0IHRvdGFsX2dyb3VwczsKfTsKIyA2NTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcm9t
ZnNfZnNfc2IuaCIgMQoKI2RlZmluZSBfX1JPTUZTX0ZTX1NCCgoKCnN0cnVjdCByb21mc19zYl9p
bmZvIHsKICAgICAgICB1bnNpZ25lZCBsb25nIHNfbWF4c2l6ZTsKfTsKIyA2NTQgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc21iX2ZzX3NiLmgiIDEKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zbWJfZnNfc2IuaCIKI2RlZmluZSBfU01CX0ZTX1NCCgoKCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTUgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc21iX2ZzX3NiLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYi5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvc21iLmgiCiNkZWZpbmUgX0xJTlVYX1NNQl9ICgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDEzICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYi5oIiAyCgplbnVtIHNtYl9wcm90b2NvbCB7
CiAgICAgICAgU01CX1BST1RPQ09MX05PTkUsCiAgICAgICAgU01CX1BST1RPQ09MX0NPUkUsCiAg
ICAgICAgU01CX1BST1RPQ09MX0NPUkVQTFVTLAogICAgICAgIFNNQl9QUk9UT0NPTF9MQU5NQU4x
LAogICAgICAgIFNNQl9QUk9UT0NPTF9MQU5NQU4yLAogICAgICAgIFNNQl9QUk9UT0NPTF9OVDEK
fTsKCmVudW0gc21iX2Nhc2VfaG5kbCB7CiAgICAgICAgU01CX0NBU0VfREVGQVVMVCwKICAgICAg
ICBTTUJfQ0FTRV9MT1dFUiwKICAgICAgICBTTUJfQ0FTRV9VUFBFUgp9OwoKc3RydWN0IHNtYl9k
c2thdHRyIHsKICAgICAgICBfX3UxNiB0b3RhbDsKICAgICAgICBfX3UxNiBhbGxvY2Jsb2NrczsK
ICAgICAgICBfX3UxNiBibG9ja3NpemU7CiAgICAgICAgX191MTYgZnJlZTsKfTsKCnN0cnVjdCBz
bWJfY29ubl9vcHQgewoKCiAgICAgICAgdW5zaWduZWQgaW50IGZkOwoKICAgICAgICBlbnVtIHNt
Yl9wcm90b2NvbCBwcm90b2NvbDsKICAgICAgICBlbnVtIHNtYl9jYXNlX2huZGwgY2FzZV9oYW5k
bGluZzsKCgoKICAgICAgICBfX3UzMiBtYXhfeG1pdDsKICAgICAgICBfX3UxNiBzZXJ2ZXJfdWlk
OwogICAgICAgIF9fdTE2IHRpZDsKCgogICAgICAgIF9fdTE2IHNlY21vZGU7CiAgICAgICAgX191
MTYgbWF4bXV4OwogICAgICAgIF9fdTE2IG1heHZjczsKICAgICAgICBfX3UxNiByYXdtb2RlOwog
ICAgICAgIF9fdTMyIHNlc3NrZXk7CgoKICAgICAgICBfX3UzMiBtYXhyYXc7CiAgICAgICAgX191
MzIgY2FwYWJpbGl0aWVzOwogICAgICAgIF9fczE2IHNlcnZlcnpvbmU7Cn07CgoKCiNkZWZpbmUg
U01CX05MU19NQVhOQU1FTEVOIDIwCnN0cnVjdCBzbWJfbmxzX2NvZGVwYWdlIHsKICAgICAgICBj
aGFyIGxvY2FsX25hbWVbMjBdOwogICAgICAgIGNoYXIgcmVtb3RlX25hbWVbMjBdOwp9OwoKCiNk
ZWZpbmUgU01CX01BWE5BTUVMRU4gMjU1CiNkZWZpbmUgU01CX01BWFBBVEhMRU4gMTAyNAoKCgoK
c3RydWN0IHNtYl9mYXR0ciB7CgogICAgICAgIF9fdTE2IGF0dHI7CgogICAgICAgIHVuc2lnbmVk
IGxvbmcgZl9pbm87CiAgICAgICAgdW1vZGVfdCBmX21vZGU7CiAgICAgICAgbmxpbmtfdCBmX25s
aW5rOwogICAgICAgIHVpZF90IGZfdWlkOwogICAgICAgIGdpZF90IGZfZ2lkOwogICAgICAgIGtk
ZXZfdCBmX3JkZXY7CiAgICAgICAgb2ZmX3QgZl9zaXplOwogICAgICAgIHRpbWVfdCBmX2F0aW1l
OwogICAgICAgIHRpbWVfdCBmX210aW1lOwogICAgICAgIHRpbWVfdCBmX2N0aW1lOwogICAgICAg
IHVuc2lnbmVkIGxvbmcgZl9ibGtzaXplOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZl9ibG9ja3M7
Cn07CgplbnVtIHNtYl9jb25uX3N0YXRlIHsKICAgICAgICBDT05OX1ZBTElELAogICAgICAgIENP
Tk5fSU5WQUxJRCwKCiAgICAgICAgQ09OTl9SRVRSSUVELAogICAgICAgIENPTk5fUkVUUllJTkcK
fTsKCiNkZWZpbmUgU01CX1NVUEVSX01BR0lDIDB4NTE3QgoKI2RlZmluZSBTTUJfSEVBREVSX0xF
TiAzNwoKCiNkZWZpbmUgU01CX0lOSVRJQUxfUEFDS0VUX1NJWkUgNDAwMAojZGVmaW5lIFNNQl9N
QVhfUEFDS0VUX1NJWkUgMzI3NjgKCgoKI2RlZmluZSBTTUJfVFJBTlMyX01BWF9QQVJBTSA2NAoj
IDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtYl9mc19zYi5oIiAyCgoK
I2RlZmluZSBzZXJ2ZXJfZnJvbV9pbm9kZShpbm9kZSkgKCYoaW5vZGUpLT5pX3NiLT51LnNtYmZz
X3NiKQojZGVmaW5lIHNlcnZlcl9mcm9tX2RlbnRyeShkZW50cnkpICgmKGRlbnRyeSktPmRfc2It
PnUuc21iZnNfc2IpCiNkZWZpbmUgU0Jfb2Yoc2VydmVyKSAoKHN0cnVjdCBzdXBlcl9ibG9jayAq
KSAoKGNoYXIgKikoc2VydmVyKSAtICh1bnNpZ25lZCBsb25nKSgmKChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKikwKS0+dS5zbWJmc19zYikpKQoKCnN0cnVjdCBzbWJfc2JfaW5mbyB7CiAgICAgICAgZW51
bSBzbWJfY29ubl9zdGF0ZSBzdGF0ZTsKICAgICAgICBzdHJ1Y3QgZmlsZSAqIHNvY2tfZmlsZTsK
CiAgICAgICAgc3RydWN0IHNtYl9tb3VudF9kYXRhX2tlcm5lbCAqbW50OwogICAgICAgIHVuc2ln
bmVkIGNoYXIgKnRlbXBfYnVmOwoKCgoKICAgICAgICB1bnNpZ25lZCBpbnQgZ2VuZXJhdGlvbjsK
ICAgICAgICBwaWRfdCBjb25uX3BpZDsKICAgICAgICBzdHJ1Y3Qgc21iX2Nvbm5fb3B0IG9wdDsK
CiAgICAgICAgc3RydWN0IHNlbWFwaG9yZSBzZW07CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3Qg
d2FpdDsKCiAgICAgICAgX191MzIgcGFja2V0X3NpemU7CiAgICAgICAgdW5zaWduZWQgY2hhciAq
IHBhY2tldDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCByY2xzOwogICAgICAgIHVuc2lnbmVkIHNo
b3J0IGVycjsKCgogICAgICAgIHZvaWQgKmRhdGFfcmVhZHk7CgoKICAgICAgICBzdHJ1Y3Qgbmxz
X3RhYmxlICpyZW1vdGVfbmxzOwogICAgICAgIHN0cnVjdCBubHNfdGFibGUgKmxvY2FsX25sczsK
CgoKCiAgICAgICAgY2hhciAqbmFtZV9idWY7CgogICAgICAgIGludCAoKmNvbnZlcnQpKGNoYXIg
KiwgaW50LCBjb25zdCBjaGFyICosIGludCwKICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
bmxzX3RhYmxlICosIHN0cnVjdCBubHNfdGFibGUgKik7Cn07CgoKc3RhdGljIGlubGluZSB2b2lk
CnNtYl9sb2NrX3NlcnZlcihzdHJ1Y3Qgc21iX3NiX2luZm8gKnNlcnZlcikKewogICAgICAgIGRv
d24oJihzZXJ2ZXItPnNlbSkpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKc21iX3VubG9ja19zZXJ2
ZXIoc3RydWN0IHNtYl9zYl9pbmZvICpzZXJ2ZXIpCnsKICAgICAgICB1cCgmKHNlcnZlci0+c2Vt
KSk7Cn0KIyA2NTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvaGZzX2ZzX3NiLmgiIDEKIyAx
MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9oZnNfZnNfc2IuaCIKI2RlZmlu
ZSBfTElOVVhfSEZTX0ZTX1NCX0gKCgpzdHJ1Y3QgaGZzX25hbWU7Cgp0eXBlZGVmIGludCAoKmhm
c19uYW1laW5fZm4pIChjaGFyICosIGNvbnN0IHN0cnVjdCBoZnNfbmFtZSAqKTsKdHlwZWRlZiB2
b2lkICgqaGZzX25hbWVvdXRfZm4pIChzdHJ1Y3QgaGZzX25hbWUgKiwgY29uc3QgY2hhciAqLCBp
bnQpOwp0eXBlZGVmIHZvaWQgKCpoZnNfaWZpbGxfZm4pIChzdHJ1Y3QgaW5vZGUgKiwgaW5vX3Qs
IGNvbnN0IGludCk7CgoKCgoKCnN0cnVjdCBoZnNfc2JfaW5mbyB7CiAgICAgICAgaW50IG1hZ2lj
OwogICAgICAgIHN0cnVjdCBoZnNfbWRiICpzX21kYjsKICAgICAgICBpbnQgc19xdWlldDsKCiAg
ICAgICAgaW50IHNfbG93ZXJjYXNlOwogICAgICAgIGludCBzX2FmcGQ7CiAgICAgICAgaW50IHNf
dmVyc2lvbjsKICAgICAgICBoZnNfbmFtZWluX2ZuIHNfbmFtZWluOwoKCiAgICAgICAgaGZzX25h
bWVvdXRfZm4gc19uYW1lb3V0OwoKCiAgICAgICAgaGZzX2lmaWxsX2ZuIHNfaWZpbGw7CgogICAg
ICAgIGNvbnN0IHN0cnVjdCBoZnNfbmFtZSAqc19yZXNlcnZlZDE7CiAgICAgICAgY29uc3Qgc3Ry
dWN0IGhmc19uYW1lICpzX3Jlc2VydmVkMjsKICAgICAgICBfX3UzMiBzX3R5cGU7CiAgICAgICAg
X191MzIgc19jcmVhdG9yOwogICAgICAgIHVtb2RlX3Qgc191bWFzazsKCiAgICAgICAgdWlkX3Qg
c191aWQ7CiAgICAgICAgZ2lkX3Qgc19naWQ7CiAgICAgICAgY2hhciBzX2NvbnY7Cn07CiMgNjU2
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2FkZnNfZnNfc2IuaCIgMQoKCgoKCgoKI2RlZmlu
ZSBfQURGU19GU19TQgoKCgoKc3RydWN0IGFkZnNfZGlzY21hcDsKc3RydWN0IGFkZnNfZGlyX29w
czsKCgoKCnN0cnVjdCBhZGZzX3NiX2luZm8gewogICAgICAgIHN0cnVjdCBhZGZzX2Rpc2NtYXAg
KnNfbWFwOwogICAgICAgIHN0cnVjdCBhZGZzX2Rpcl9vcHMgKnNfZGlyOwoKICAgICAgICB1aWRf
dCBzX3VpZDsKICAgICAgICBnaWRfdCBzX2dpZDsKICAgICAgICB1bW9kZV90IHNfb3duZXJfbWFz
azsKICAgICAgICB1bW9kZV90IHNfb3RoZXJfbWFzazsKCiAgICAgICAgX191MzIgc19pZHNfcGVy
X3pvbmU7CiAgICAgICAgX191MzIgc19pZGxlbjsKICAgICAgICBfX3UzMiBzX21hcF9zaXplOwog
ICAgICAgIHVuc2lnbmVkIGxvbmcgc19zaXplOwogICAgICAgIHNpZ25lZCBpbnQgc19tYXAyYmxr
OwogICAgICAgIHVuc2lnbmVkIGludCBzX2xvZzJzaGFyZXNpemU7CiAgICAgICAgdW5zaWduZWQg
aW50IHNfdmVyc2lvbjsKICAgICAgICB1bnNpZ25lZCBpbnQgc19uYW1lbGVuOwp9OwojIDY1NyAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzX3NiLmgiIDEKIyAxMiAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzX3NiLmgiCiNkZWZpbmUgX1FOWDRfRlNf
U0IKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzLmgiIDEK
IyAxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9xbng0X2ZzLmgiCiNkZWZp
bmUgX0xJTlVYX1FOWDRfRlNfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3FueHR5cGVzLmgiIDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9xbng0X2ZzLmgiIDIKCiNkZWZpbmUgUU5YNF9ST09UX0lOTyAxCgojZGVmaW5lIFFOWDRfTUFY
X1hUTlRTX1BFUl9YQkxLIDYwCgojZGVmaW5lIFFOWDRfRklMRV9VU0VEIDB4MDEKI2RlZmluZSBR
Tlg0X0ZJTEVfTU9ESUZJRUQgMHgwMgojZGVmaW5lIFFOWDRfRklMRV9CVVNZIDB4MDQKI2RlZmlu
ZSBRTlg0X0ZJTEVfTElOSyAweDA4CiNkZWZpbmUgUU5YNF9GSUxFX0lOT0RFIDB4MTAKI2RlZmlu
ZSBRTlg0X0ZJTEVfRlNZU0NMRUFOIDB4MjAKCiNkZWZpbmUgUU5YNF9JX01BUF9TTE9UUyA4CiNk
ZWZpbmUgUU5YNF9aX01BUF9TTE9UUyA2NAojZGVmaW5lIFFOWDRfU1VQRVJfTUFHSUMgMHgwMDJm
CiNkZWZpbmUgUU5YNF9WQUxJRF9GUyAweDAwMDEKI2RlZmluZSBRTlg0X0VSUk9SX0ZTIDB4MDAw
MgojZGVmaW5lIFFOWDRfQkxPQ0tfU0laRSAweDIwMAojZGVmaW5lIFFOWDRfQkxPQ0tfU0laRV9C
SVRTIDkKI2RlZmluZSBRTlg0X0RJUl9FTlRSWV9TSVpFIDB4MDQwCiNkZWZpbmUgUU5YNF9ESVJf
RU5UUllfU0laRV9CSVRTIDYKI2RlZmluZSBRTlg0X1hCTEtfRU5UUllfU0laRSAweDIwMAojZGVm
aW5lIFFOWDRfSU5PREVTX1BFUl9CTE9DSyAweDA4CgoKI2RlZmluZSBRTlg0X1NIT1JUX05BTUVf
TUFYIDE2CiNkZWZpbmUgUU5YNF9OQU1FX01BWCA0OAoKCgoKc3RydWN0IHFueDRfaW5vZGVfZW50
cnkgewogICAgICAgIGNoYXIgZGlfZm5hbWVbMTZdOwogICAgICAgIHFueDRfb2ZmX3QgZGlfc2l6
ZTsKICAgICAgICBxbng0X3h0bnRfdCBkaV9maXJzdF94dG50OwogICAgICAgIF9fdTMyIGRpX3hi
bGs7CiAgICAgICAgX19zMzIgZGlfZnRpbWU7CiAgICAgICAgX19zMzIgZGlfbXRpbWU7CiAgICAg
ICAgX19zMzIgZGlfYXRpbWU7CiAgICAgICAgX19zMzIgZGlfY3RpbWU7CiAgICAgICAgcW54NF9u
eHRudF90IGRpX251bV94dG50czsKICAgICAgICBxbng0X21vZGVfdCBkaV9tb2RlOwogICAgICAg
IHFueDRfbXVpZF90IGRpX3VpZDsKICAgICAgICBxbng0X21naWRfdCBkaV9naWQ7CiAgICAgICAg
cW54NF9ubGlua190IGRpX25saW5rOwogICAgICAgIF9fdTggZGlfemVyb1s0XTsKICAgICAgICBx
bng0X2Z0eXBlX3QgZGlfdHlwZTsKICAgICAgICBfX3U4IGRpX3N0YXR1czsKfTsKCnN0cnVjdCBx
bng0X2xpbmtfaW5mbyB7CiAgICAgICAgY2hhciBkbF9mbmFtZVs0OF07CiAgICAgICAgX191MzIg
ZGxfaW5vZGVfYmxrOwogICAgICAgIF9fdTggZGxfaW5vZGVfbmR4OwogICAgICAgIF9fdTggZGxf
c3BhcmVbMTBdOwogICAgICAgIF9fdTggZGxfc3RhdHVzOwp9OwoKc3RydWN0IHFueDRfeGJsayB7
CiAgICAgICAgX191MzIgeGJsa19uZXh0X3hibGs7CiAgICAgICAgX191MzIgeGJsa19wcmV2X3hi
bGs7CiAgICAgICAgX191OCB4YmxrX251bV94dG50czsKICAgICAgICBfX3U4IHhibGtfc3BhcmVb
M107CiAgICAgICAgX19zMzIgeGJsa19udW1fYmxvY2tzOwogICAgICAgIHFueDRfeHRudF90IHhi
bGtfeHRudHNbNjBdOwogICAgICAgIGNoYXIgeGJsa19zaWduYXR1cmVbOF07CiAgICAgICAgcW54
NF94dG50X3QgeGJsa19maXJzdF94dG50Owp9OwoKc3RydWN0IHFueDRfc3VwZXJfYmxvY2sgewog
ICAgICAgIHN0cnVjdCBxbng0X2lub2RlX2VudHJ5IFJvb3REaXI7CiAgICAgICAgc3RydWN0IHFu
eDRfaW5vZGVfZW50cnkgSW5vZGU7CiAgICAgICAgc3RydWN0IHFueDRfaW5vZGVfZW50cnkgQm9v
dDsKICAgICAgICBzdHJ1Y3QgcW54NF9pbm9kZV9lbnRyeSBBbHRCb290Owp9OwoKCgojZGVmaW5l
IFFOWDRfREVCVUcgMAoKCgoKI2RlZmluZSBRTlg0REVCVUcoWCkgKHZvaWQpIDAKCgpleHRlcm4g
c3RydWN0IGRlbnRyeSAqcW54NF9sb29rdXAoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50
cnkgKmRlbnRyeSk7CmV4dGVybiB1bnNpZ25lZCBsb25nIHFueDRfY291bnRfZnJlZV9ibG9ja3Mo
c3RydWN0IHN1cGVyX2Jsb2NrICpzYik7CmV4dGVybiB1bnNpZ25lZCBsb25nIHFueDRfYmxvY2tf
bWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIGxvbmcgaWJsb2NrKTsKCmV4dGVybiBzdHJ1Y3QgYnVm
ZmVyX2hlYWQgKnFueDRfZ2V0YmxrKHN0cnVjdCBpbm9kZSAqLCBpbnQsIGludCk7CmV4dGVybiBz
dHJ1Y3QgYnVmZmVyX2hlYWQgKnFueDRfYnJlYWQoc3RydWN0IGlub2RlICosIGludCwgaW50KTsK
CmV4dGVybiBpbnQgcW54NF9jcmVhdGUoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkg
KmRlbnRyeSwgaW50IG1vZGUpOwpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcW54NF9m
aWxlX2lub2RlX29wZXJhdGlvbnM7CmV4dGVybiBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyBxbng0
X2Rpcl9pbm9kZV9vcGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBxbng0
X2ZpbGVfb3BlcmF0aW9uczsKZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcW54NF9kaXJf
b3BlcmF0aW9uczsKZXh0ZXJuIGludCBxbng0X2lzX2ZyZWUoc3RydWN0IHN1cGVyX2Jsb2NrICpz
YiwgbG9uZyBibG9jayk7CmV4dGVybiBpbnQgcW54NF9zZXRfYml0bWFwKHN0cnVjdCBzdXBlcl9i
bG9jayAqc2IsIGxvbmcgYmxvY2ssIGludCBidXN5KTsKZXh0ZXJuIGludCBxbng0X2NyZWF0ZShz
dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGludCBtb2RlKTsKZXh0
ZXJuIHZvaWQgcW54NF90cnVuY2F0ZShzdHJ1Y3QgaW5vZGUgKmlub2RlKTsKZXh0ZXJuIHZvaWQg
cW54NF9mcmVlX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOwpleHRlcm4gaW50IHFueDRfdW5s
aW5rKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpOwpleHRlcm4gaW50
IHFueDRfcm1kaXIoc3RydWN0IGlub2RlICpkaXIsIHN0cnVjdCBkZW50cnkgKmRlbnRyeSk7CmV4
dGVybiBpbnQgcW54NF9zeW5jX2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBkZW50cnkg
KmRlbnRyeSwgaW50KTsKZXh0ZXJuIGludCBxbng0X3N5bmNfaW5vZGUoc3RydWN0IGlub2RlICpp
bm9kZSk7CmV4dGVybiBpbnQgcW54NF9nZXRfYmxvY2soc3RydWN0IGlub2RlICppbm9kZSwgbG9u
ZyBpYmxvY2ssIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsIGludCBjcmVhdGUpOwojIDE1ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3FueDRfZnNfc2IuaCIgMgoKCgoKCnN0cnVj
dCBxbng0X3NiX2luZm8gewogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqc2JfYnVmOwogICAg
ICAgIHN0cnVjdCBxbng0X3N1cGVyX2Jsb2NrICpzYjsKICAgICAgICB1bnNpZ25lZCBpbnQgVmVy
c2lvbjsKICAgICAgICBzdHJ1Y3QgcW54NF9pbm9kZV9lbnRyeSAqQml0TWFwOwp9OwojIDY1OCAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yZWlzZXJmc19mc19zYi5oIiAxCgoKCgojZGVmaW5l
IF9MSU5VWF9SRUlTRVJfRlNfU0IKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdHF1ZXVlLmgiIDEKIyAxNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC90cXVldWUuaCIKI2RlZmluZSBfTElOVVhfVFFVRVVFX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCiMgMTcgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvdHF1ZXVlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L2xpc3QuaCIgMQojIDE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3RxdWV1ZS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20v
Yml0b3BzLmgiIDEKIyAxOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90cXVl
dWUuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3N5c3RlbS5oIiAx
CiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHF1ZXVlLmgiIDIKIyAz
OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90cXVldWUuaCIKc3RydWN0IHRx
X3N0cnVjdCB7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OwogICAgICAgIHVuc2lnbmVk
IGxvbmcgc3luYzsKICAgICAgICB2b2lkICgqcm91dGluZSkodm9pZCAqKTsKICAgICAgICB2b2lk
ICpkYXRhOwp9OwoKCgoKI2RlZmluZSBQUkVQQVJFX1RRVUVVRShfdHEsIF9yb3V0aW5lLCBfZGF0
YSkgZG8geyAoX3RxKS0+cm91dGluZSA9IF9yb3V0aW5lOyAoX3RxKS0+ZGF0YSA9IF9kYXRhOyB9
IHdoaWxlICgwKQojIDU3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RxdWV1
ZS5oIgojZGVmaW5lIElOSVRfVFFVRVVFKF90cSwgX3JvdXRpbmUsIF9kYXRhKSBkbyB7IElOSVRf
TElTVF9IRUFEKCYoX3RxKS0+bGlzdCk7IChfdHEpLT5zeW5jID0gMDsgUFJFUEFSRV9UUVVFVUUo
KF90cSksIChfcm91dGluZSksIChfZGF0YSkpOyB9IHdoaWxlICgwKQoKCgoKCgp0eXBlZGVmIHN0
cnVjdCBsaXN0X2hlYWQgdGFza19xdWV1ZTsKCiNkZWZpbmUgREVDTEFSRV9UQVNLX1FVRVVFKHEp
IExJU1RfSEVBRChxKQojZGVmaW5lIFRRX0FDVElWRShxKSAoIWxpc3RfZW1wdHkoJnEpKQoKZXh0
ZXJuIHRhc2tfcXVldWUgdHFfdGltZXJfUnNtcF9mYTNlOWFjYywgdHFfaW1tZWRpYXRlX1JzbXBf
MGRhMGRjZDEsIHRxX2Rpc2tfUnNtcF81MzczZGJiNjsKIyA5NCAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC90cXVldWUuaCIKZXh0ZXJuIHNwaW5sb2NrX3QgdHF1ZXVlX2xvY2tf
UnNtcF9iN2EwYzBiNTsKCgoKCgpzdGF0aWMgaW5saW5lIGludCBxdWV1ZV90YXNrKHN0cnVjdCB0
cV9zdHJ1Y3QgKmJoX3BvaW50ZXIsIHRhc2tfcXVldWUgKmJoX2xpc3QpCnsKICAgICAgICBpbnQg
cmV0ID0gMDsKICAgICAgICBpZiAoIXRlc3RfYW5kX3NldF9iaXQoMCwmYmhfcG9pbnRlci0+c3lu
YykpIHsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgICAgICAgICAg
ICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fICgibW92ICUwPXBzcjs7IHJzbSBwc3IuaTs7IiA6
ICI9ciIgKGZsYWdzKSA6OiAibWVtb3J5Iik7IF9fYXNtX18gX192b2xhdGlsZV9fICggIm1vdiBh
ci5jY3YgPSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIxOlxuIiAibGQ0IHIyID0gWyUw
XVxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAiKHA3KSBici5jb25kLnNwbnQu
ZmV3IDFiIFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCByMjksIGFyLmNjdlxuIiAiOztc
biIgImNtcDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYlxu
IiAiOztcbiIgOjogInIiKCYoJnRxdWV1ZV9sb2NrX1JzbXBfYjdhMGMwYjUpLT5sb2NrKSA6ICJy
MiIsICJyMjkiLCAibWVtb3J5Iik7IH0gd2hpbGUgKDApOwogICAgICAgICAgICAgICAgbGlzdF9h
ZGRfdGFpbCgmYmhfcG9pbnRlci0+bGlzdCwgYmhfbGlzdCk7CiAgICAgICAgICAgICAgICBkbyB7
IGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKChzcGlubG9ja190
ICopICZ0cXVldWVfbG9ja19Sc21wX2I3YTBjMGI1KS0+bG9jayA9IDA7IH0gd2hpbGUgKDApOyBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIjs7IG1vdiBwc3IubD0lMDs7IHNybHouZCIgOjogInIiIChm
bGFncykgOiAibWVtb3J5Iik7IH0gd2hpbGUgKDApOwogICAgICAgICAgICAgICAgcmV0ID0gMTsK
ICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJldDsKfQoKCgoKCmV4dGVybiB2b2lkIF9fcnVuX3Rh
c2tfcXVldWVfUnNtcF8zODg5YjExYyh0YXNrX3F1ZXVlICpsaXN0KTsKCnN0YXRpYyBpbmxpbmUg
dm9pZCBydW5fdGFza19xdWV1ZSh0YXNrX3F1ZXVlICpsaXN0KQp7CiAgICAgICAgaWYgKCghbGlz
dF9lbXB0eSgmKmxpc3QpKSkKICAgICAgICAgICAgICAgIF9fcnVuX3Rhc2tfcXVldWVfUnNtcF8z
ODg5YjExYyhsaXN0KTsKfQojIDkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
cmVpc2VyZnNfZnNfc2IuaCIgMgoKCgoKCgoKI2RlZmluZSBSRUlTRVJGU19WRVJTSU9OXzIgMgoj
ZGVmaW5lIFVOU0VUX0hBU0ggMAoKI2RlZmluZSBURUFfSEFTSCAxCiNkZWZpbmUgWVVSQV9IQVNI
IDIKI2RlZmluZSBSNV9IQVNIIDMKI2RlZmluZSBERUZBVUxUX0hBU0ggUjVfSEFTSAoKCgpzdHJ1
Y3QgcmVpc2VyZnNfc3VwZXJfYmxvY2sKewogIF9fdTMyIHNfYmxvY2tfY291bnQ7CiAgX191MzIg
c19mcmVlX2Jsb2NrczsKICBfX3UzMiBzX3Jvb3RfYmxvY2s7CiAgX191MzIgc19qb3VybmFsX2Js
b2NrOwogIF9fdTMyIHNfam91cm5hbF9kZXY7CiMgNDMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvcmVpc2VyZnNfZnNfc2IuaCIKICBfX3UzMiBzX29yaWdfam91cm5hbF9zaXpl
OwogIF9fdTMyIHNfam91cm5hbF90cmFuc19tYXggOwogIF9fdTMyIHNfam91cm5hbF9ibG9ja19j
b3VudCA7CiAgX191MzIgc19qb3VybmFsX21heF9iYXRjaCA7CiAgX191MzIgc19qb3VybmFsX21h
eF9jb21taXRfYWdlIDsKICBfX3UzMiBzX2pvdXJuYWxfbWF4X3RyYW5zX2FnZSA7CiAgX191MTYg
c19ibG9ja3NpemU7CiAgX191MTYgc19vaWRfbWF4c2l6ZTsKICBfX3UxNiBzX29pZF9jdXJzaXpl
OwogIF9fdTE2IHNfc3RhdGU7CiAgY2hhciBzX21hZ2ljWzEyXTsKICBfX3UzMiBzX2hhc2hfZnVu
Y3Rpb25fY29kZTsKICBfX3UxNiBzX3RyZWVfaGVpZ2h0OwogIF9fdTE2IHNfYm1hcF9ucjsKICBf
X3UxNiBzX3ZlcnNpb247CgoKCgogIF9fdTE2IHNfcmVzZXJ2ZWQ7CiAgX191MzIgc19pbm9kZV9n
ZW5lcmF0aW9uOwogIGNoYXIgc191bnVzZWRbMTI0XSA7Cn0gX19hdHRyaWJ1dGVfXyAoKF9fcGFj
a2VkX18pKTsKCiNkZWZpbmUgU0JfU0laRSAoc2l6ZW9mKHN0cnVjdCByZWlzZXJmc19zdXBlcl9i
bG9jaykpCgoKc3RydWN0IHJlaXNlcmZzX3N1cGVyX2Jsb2NrX3YxCnsKICBfX3UzMiBzX2Jsb2Nr
X2NvdW50OwogIF9fdTMyIHNfZnJlZV9ibG9ja3M7CiAgX191MzIgc19yb290X2Jsb2NrOwogIF9f
dTMyIHNfam91cm5hbF9ibG9jazsKICBfX3UzMiBzX2pvdXJuYWxfZGV2OwogIF9fdTMyIHNfb3Jp
Z19qb3VybmFsX3NpemU7CiAgX191MzIgc19qb3VybmFsX3RyYW5zX21heCA7CiAgX191MzIgc19q
b3VybmFsX2Jsb2NrX2NvdW50IDsKICBfX3UzMiBzX2pvdXJuYWxfbWF4X2JhdGNoIDsKICBfX3Uz
MiBzX2pvdXJuYWxfbWF4X2NvbW1pdF9hZ2UgOwogIF9fdTMyIHNfam91cm5hbF9tYXhfdHJhbnNf
YWdlIDsKICBfX3UxNiBzX2Jsb2Nrc2l6ZTsKICBfX3UxNiBzX29pZF9tYXhzaXplOwogIF9fdTE2
IHNfb2lkX2N1cnNpemU7CiAgX191MTYgc19zdGF0ZTsKICBjaGFyIHNfbWFnaWNbMTZdOwogIF9f
dTE2IHNfdHJlZV9oZWlnaHQ7CiAgX191MTYgc19ibWFwX25yOwogIF9fdTMyIHNfcmVzZXJ2ZWQ7
Cn0gX19hdHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKTsKCiNkZWZpbmUgU0JfU0laRV9WMSAoc2l6
ZW9mKHN0cnVjdCByZWlzZXJmc19zdXBlcl9ibG9ja192MSkpCiMgMTIwICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3JlaXNlcmZzX2ZzX3NiLmgiCiNkZWZpbmUgSk9VUk5BTF9C
TE9DS19TSVpFIDQwOTYKI2RlZmluZSBKT1VSTkFMX01BWF9DTk9ERSAxNTAwCiNkZWZpbmUgSk9V
Uk5BTF9UUkFOU19NQVggMTAyNAojZGVmaW5lIEpPVVJOQUxfSEFTSF9TSVpFIDgxOTIKI2RlZmlu
ZSBKT1VSTkFMX05VTV9CSVRNQVBTIDUKI2RlZmluZSBKT1VSTkFMX0xJU1RfQ09VTlQgNjQKCgoK
I2RlZmluZSBCSF9KRGlydHkgMTYKI2RlZmluZSBCSF9KRGlydHlfd2FpdCAxOAojZGVmaW5lIEJI
X0pOZXcgMTkKCgoKCgoKI2RlZmluZSBCSF9KUHJlcGFyZWQgMjAKI2RlZmluZSBCSF9KUmVzdG9y
ZV9kaXJ0eSAyMgojIDE0OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9yZWlz
ZXJmc19mc19zYi5oIgpzdHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSB7CiAgc3RydWN0IGJ1
ZmZlcl9oZWFkICpiaCA7CiAga2Rldl90IGRldiA7CiAgdW5zaWduZWQgbG9uZyBibG9ja25yIDsK
ICBpbnQgc3RhdGUgOwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2xpc3QgKmpsaXN0IDsKICBz
dHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSAqbmV4dCA7CiAgc3RydWN0IHJlaXNlcmZzX2pv
dXJuYWxfY25vZGUgKnByZXYgOwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2Nub2RlICpocHJl
diA7CiAgc3RydWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUgKmhuZXh0IDsKfTsKCnN0cnVjdCBy
ZWlzZXJmc19iaXRtYXBfbm9kZSB7CiAgaW50IGlkIDsKICBjaGFyICpkYXRhIDsKICBzdHJ1Y3Qg
bGlzdF9oZWFkIGxpc3QgOwp9IDsKCnN0cnVjdCByZWlzZXJmc19saXN0X2JpdG1hcCB7CiAgc3Ry
dWN0IHJlaXNlcmZzX2pvdXJuYWxfbGlzdCAqam91cm5hbF9saXN0IDsKICBzdHJ1Y3QgcmVpc2Vy
ZnNfYml0bWFwX25vZGUgKipiaXRtYXBzIDsKfSA7CgoKCgpzdHJ1Y3QgcmVpc2VyZnNfdHJhbnNh
Y3Rpb25faGFuZGxlIHsKCiAgY2hhciAqdF9jYWxsZXIgOwogIGludCB0X2Jsb2Nrc19sb2dnZWQg
OwogIGludCB0X2Jsb2Nrc19hbGxvY2F0ZWQgOwogIHVuc2lnbmVkIGxvbmcgdF90cmFuc19pZCA7
CiAgc3RydWN0IHN1cGVyX2Jsb2NrICp0X3N1cGVyIDsKCgp9IDsKCgoKCgoKCnN0cnVjdCByZWlz
ZXJmc19qb3VybmFsX2xpc3QgewogIHVuc2lnbmVkIGxvbmcgal9zdGFydCA7CiAgdW5zaWduZWQg
bG9uZyBqX2xlbiA7CiAgYXRvbWljX3Qgal9ub256ZXJvbGVuIDsKICBhdG9taWNfdCBqX2NvbW1p
dF9sZWZ0IDsKICBhdG9taWNfdCBqX2ZsdXNoaW5nIDsKICBhdG9taWNfdCBqX2NvbW1pdF9mbHVz
aGluZyA7CiAgYXRvbWljX3Qgal9vbGRlcl9jb21taXRzX2RvbmUgOwogIHVuc2lnbmVkIGxvbmcg
al90cmFuc19pZCA7CiAgdGltZV90IGpfdGltZXN0YW1wIDsKICBzdHJ1Y3QgcmVpc2VyZnNfbGlz
dF9iaXRtYXAgKmpfbGlzdF9iaXRtYXAgOwogIHN0cnVjdCBidWZmZXJfaGVhZCAqal9jb21taXRf
YmggOwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2Nub2RlICpqX3JlYWxibG9jayA7CiAgc3Ry
dWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUgKmpfZnJlZWRsaXN0IDsKICB3YWl0X3F1ZXVlX2hl
YWRfdCBqX2NvbW1pdF93YWl0IDsKICB3YWl0X3F1ZXVlX2hlYWRfdCBqX2ZsdXNoX3dhaXQgOwp9
IDsKCnN0cnVjdCByZWlzZXJmc19wYWdlX2xpc3QgOwoKc3RydWN0IHJlaXNlcmZzX2pvdXJuYWwg
ewogIHN0cnVjdCBidWZmZXJfaGVhZCAqKiBqX2FwX2Jsb2NrcyA7CiAgc3RydWN0IHJlaXNlcmZz
X2pvdXJuYWxfY25vZGUgKmpfbGFzdCA7CiAgc3RydWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUg
KmpfZmlyc3QgOwoKICBpbnQgal9zdGF0ZSA7CiAgdW5zaWduZWQgbG9uZyBqX3RyYW5zX2lkIDsK
ICB1bnNpZ25lZCBsb25nIGpfbW91bnRfaWQgOwogIHVuc2lnbmVkIGxvbmcgal9zdGFydCA7CiAg
dW5zaWduZWQgbG9uZyBqX2xlbiA7CiAgdW5zaWduZWQgbG9uZyBqX2xlbl9hbGxvYyA7CiAgYXRv
bWljX3Qgal93Y291bnQgOwogIHVuc2lnbmVkIGxvbmcgal9iY291bnQgOwogIHVuc2lnbmVkIGxv
bmcgal9maXJzdF91bmZsdXNoZWRfb2Zmc2V0IDsKICB1bnNpZ25lZCBsb25nIGpfbGFzdF9mbHVz
aF90cmFuc19pZCA7CiAgc3RydWN0IGJ1ZmZlcl9oZWFkICpqX2hlYWRlcl9iaCA7CgoKCgogIHN0
cnVjdCByZWlzZXJmc19wYWdlX2xpc3QgKmpfZmx1c2hfcGFnZXMgOwogIHRpbWVfdCBqX3RyYW5z
X3N0YXJ0X3RpbWUgOwogIHdhaXRfcXVldWVfaGVhZF90IGpfd2FpdCA7CiAgYXRvbWljX3Qgal93
bG9jayA7CiAgd2FpdF9xdWV1ZV9oZWFkX3Qgal9qb2luX3dhaXQgOwogIGF0b21pY190IGpfamxv
Y2sgOwogIGludCBqX2pvdXJuYWxfbGlzdF9pbmRleCA7CiAgaW50IGpfbGlzdF9iaXRtYXBfaW5k
ZXggOwogIGludCBqX211c3Rfd2FpdCA7CiAgaW50IGpfbmV4dF9mdWxsX2ZsdXNoIDsKICBpbnQg
al9uZXh0X2FzeW5jX2ZsdXNoIDsKCiAgaW50IGpfY25vZGVfdXNlZCA7CiAgaW50IGpfY25vZGVf
ZnJlZSA7CgogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2Nub2RlICpqX2Nub2RlX2ZyZWVfbGlz
dCA7CiAgc3RydWN0IHJlaXNlcmZzX2pvdXJuYWxfY25vZGUgKmpfY25vZGVfZnJlZV9vcmlnIDsK
CiAgaW50IGpfZnJlZV9iaXRtYXBfbm9kZXMgOwogIGludCBqX3VzZWRfYml0bWFwX25vZGVzIDsK
ICBzdHJ1Y3QgbGlzdF9oZWFkIGpfYml0bWFwX25vZGVzIDsKICBzdHJ1Y3QgaW5vZGUgal9kdW1t
eV9pbm9kZSA7CiAgc3RydWN0IHJlaXNlcmZzX2xpc3RfYml0bWFwIGpfbGlzdF9iaXRtYXBbNV0g
OwogIHN0cnVjdCByZWlzZXJmc19qb3VybmFsX2xpc3Qgal9qb3VybmFsX2xpc3RbNjRdIDsKICBz
dHJ1Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSAqal9oYXNoX3RhYmxlWzgxOTJdIDsKICBzdHJ1
Y3QgcmVpc2VyZnNfam91cm5hbF9jbm9kZSAqal9saXN0X2hhc2hfdGFibGVbODE5Ml0gOwoKICBz
dHJ1Y3QgbGlzdF9oZWFkIGpfcHJlYWxsb2NfbGlzdDsKfTsKCiNkZWZpbmUgSk9VUk5BTF9ERVND
X01BR0lDICJSZUlzRXJMQiIKCgp0eXBlZGVmIF9fdTMyICgqaGFzaGZfdCkgKGNvbnN0IGNoYXIg
KiwgaW50KTsKCgpzdHJ1Y3QgcmVpc2VyZnNfc2JfaW5mbwp7CiAgICBzdHJ1Y3QgYnVmZmVyX2hl
YWQgKiBzX3NiaDsKCgogICAgc3RydWN0IHJlaXNlcmZzX3N1cGVyX2Jsb2NrICogc19yczsKICAg
IHN0cnVjdCBidWZmZXJfaGVhZCAqKiBzX2FwX2JpdG1hcDsKICAgIHN0cnVjdCByZWlzZXJmc19q
b3VybmFsICpzX2pvdXJuYWwgOwogICAgdW5zaWduZWQgc2hvcnQgc19tb3VudF9zdGF0ZTsKCgog
ICAgdm9pZCAoKmVuZF9pb19oYW5kbGVyKShzdHJ1Y3QgYnVmZmVyX2hlYWQgKiwgaW50KTsKICAg
IGhhc2hmX3Qgc19oYXNoX2Z1bmN0aW9uOwoKCiAgICB1bnNpZ25lZCBsb25nIHNfbW91bnRfb3B0
OwoKCgoKICAgIHdhaXRfcXVldWVfaGVhZF90IHNfd2FpdDsKCiAgICBhdG9taWNfdCBzX2dlbmVy
YXRpb25fY291bnRlcjsKCgoKICAgIGludCBzX2ttYWxsb2NzOwogICAgaW50IHNfZGlza19yZWFk
czsKICAgIGludCBzX2Rpc2tfd3JpdGVzOwogICAgaW50IHNfZml4X25vZGVzOwogICAgaW50IHNf
ZG9fYmFsYW5jZTsKICAgIGludCBzX3VubmVlZGVkX2xlZnRfbmVpZ2hib3I7CiAgICBpbnQgc19n
b29kX3NlYXJjaF9ieV9rZXlfcmVhZGE7CiAgICBpbnQgc19ibWFwczsKICAgIGludCBzX2JtYXBz
X3dpdGhvdXRfc2VhcmNoOwogICAgaW50IHNfZGlyZWN0MmluZGlyZWN0OwogICAgaW50IHNfaW5k
aXJlY3QyZGlyZWN0Owp9OwoKCiNkZWZpbmUgTk9UQUlMIDAKI2RlZmluZSBSRVBMQVlPTkxZIDMK
I2RlZmluZSBSRUlTRVJGU19OT0xPRyA0CiNkZWZpbmUgUkVJU0VSRlNfQ09OVkVSVCA1CiMgMzI1
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3JlaXNlcmZzX2ZzX3NiLmgiCiNk
ZWZpbmUgRk9SQ0VfVEVBX0hBU0ggNgojZGVmaW5lIEZPUkNFX1JVUEFTT1ZfSEFTSCA3CiNkZWZp
bmUgRk9SQ0VfUjVfSEFTSCA4CiNkZWZpbmUgRk9SQ0VfSEFTSF9ERVRFQ1QgOQoKCgoKCgojZGVm
aW5lIFJFSVNFUkZTX05PX0JPUkRFUiAxMQojZGVmaW5lIFJFSVNFUkZTX05PX1VOSEFTSEVEX1JF
TE9DQVRJT04gMTIKI2RlZmluZSBSRUlTRVJGU19IQVNIRURfUkVMT0NBVElPTiAxMwojZGVmaW5l
IFJFSVNFUkZTX1RFU1Q0IDE0CgojZGVmaW5lIFJFSVNFUkZTX1RFU1QxIDExCiNkZWZpbmUgUkVJ
U0VSRlNfVEVTVDIgMTIKI2RlZmluZSBSRUlTRVJGU19URVNUMyAxMwojZGVmaW5lIFJFSVNFUkZT
X1RFU1Q0IDE0CgojZGVmaW5lIHJlaXNlcmZzX3I1X2hhc2gocykgKChzKS0+dS5yZWlzZXJmc19z
Yi5zX21vdW50X29wdCAmICgxIDw8IEZPUkNFX1I1X0hBU0gpKQojZGVmaW5lIHJlaXNlcmZzX3J1
cGFzb3ZfaGFzaChzKSAoKHMpLT51LnJlaXNlcmZzX3NiLnNfbW91bnRfb3B0ICYgKDEgPDwgRk9S
Q0VfUlVQQVNPVl9IQVNIKSkKI2RlZmluZSByZWlzZXJmc190ZWFfaGFzaChzKSAoKHMpLT51LnJl
aXNlcmZzX3NiLnNfbW91bnRfb3B0ICYgKDEgPDwgRk9SQ0VfVEVBX0hBU0gpKQojZGVmaW5lIHJl
aXNlcmZzX2hhc2hfZGV0ZWN0KHMpICgocyktPnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAo
MSA8PCBGT1JDRV9IQVNIX0RFVEVDVCkpCiNkZWZpbmUgcmVpc2VyZnNfbm9fYm9yZGVyKHMpICgo
cyktPnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBSRUlTRVJGU19OT19CT1JERVIp
KQojZGVmaW5lIHJlaXNlcmZzX25vX3VuaGFzaGVkX3JlbG9jYXRpb24ocykgKChzKS0+dS5yZWlz
ZXJmc19zYi5zX21vdW50X29wdCAmICgxIDw8IFJFSVNFUkZTX05PX1VOSEFTSEVEX1JFTE9DQVRJ
T04pKQojZGVmaW5lIHJlaXNlcmZzX2hhc2hlZF9yZWxvY2F0aW9uKHMpICgocyktPnUucmVpc2Vy
ZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBSRUlTRVJGU19IQVNIRURfUkVMT0NBVElPTikpCiNk
ZWZpbmUgcmVpc2VyZnNfdGVzdDQocykgKChzKS0+dS5yZWlzZXJmc19zYi5zX21vdW50X29wdCAm
ICgxIDw8IFJFSVNFUkZTX1RFU1Q0KSkKCiNkZWZpbmUgZG9udF9oYXZlX3RhaWxzKHMpICgocykt
PnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBOT1RBSUwpKQojZGVmaW5lIHJlcGxh
eV9vbmx5KHMpICgocyktPnUucmVpc2VyZnNfc2Iuc19tb3VudF9vcHQgJiAoMSA8PCBSRVBMQVlP
TkxZKSkKI2RlZmluZSByZWlzZXJmc19kb250X2xvZyhzKSAoKHMpLT51LnJlaXNlcmZzX3NiLnNf
bW91bnRfb3B0ICYgKDEgPDwgUkVJU0VSRlNfTk9MT0cpKQojZGVmaW5lIG9sZF9mb3JtYXRfb25s
eShzKSAoKFNCX1ZFUlNJT04ocykgIT0gUkVJU0VSRlNfVkVSU0lPTl8yKSAmJiAhKChzKS0+dS5y
ZWlzZXJmc19zYi5zX21vdW50X29wdCAmICgxIDw8IFJFSVNFUkZTX0NPTlZFUlQpKSkKCgp2b2lk
IHJlaXNlcmZzX2ZpbGVfYnVmZmVyIChzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBiaCwgaW50IGxpc3Qp
OwppbnQgcmVpc2VyZnNfaXNfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzKSA7CmludCBqb3Vy
bmFsX21hcmtfZGlydHkoc3RydWN0IHJlaXNlcmZzX3RyYW5zYWN0aW9uX2hhbmRsZSAqLCBzdHJ1
Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkgOwppbnQgZmx1c2hfb2xk
X2NvbW1pdHMoc3RydWN0IHN1cGVyX2Jsb2NrICpzLCBpbnQpIDsKaW50IHNob3dfcmVpc2VyZnNf
bG9ja3Modm9pZCkgOwppbnQgcmVpc2VyZnNfcmVzaXplKHN0cnVjdCBzdXBlcl9ibG9jayAqLCB1
bnNpZ25lZCBsb25nKSA7CgojZGVmaW5lIENBUlJZX09OIDAKI2RlZmluZSBTQ0hFRFVMRV9PQ0NV
UlJFRCAxCgoKI2RlZmluZSBTQl9CVUZGRVJfV0lUSF9TQihzKSAoKHMpLT51LnJlaXNlcmZzX3Ni
LnNfc2JoKQojZGVmaW5lIFNCX0pPVVJOQUwocykgKChzKS0+dS5yZWlzZXJmc19zYi5zX2pvdXJu
YWwpCiNkZWZpbmUgU0JfSk9VUk5BTF9MSVNUKHMpIChTQl9KT1VSTkFMKHMpLT5qX2pvdXJuYWxf
bGlzdCkKI2RlZmluZSBTQl9KT1VSTkFMX0xJU1RfSU5ERVgocykgKFNCX0pPVVJOQUwocyktPmpf
am91cm5hbF9saXN0X2luZGV4KQojZGVmaW5lIFNCX0pPVVJOQUxfTEVOX0ZSRUUocykgKFNCX0pP
VVJOQUwocyktPmpfam91cm5hbF9sZW5fZnJlZSkKI2RlZmluZSBTQl9BUF9CSVRNQVAocykgKChz
KS0+dS5yZWlzZXJmc19zYi5zX2FwX2JpdG1hcCkKCgoKI2RlZmluZSBTQl9ESVNLX1NVUEVSX0JM
T0NLKHMpICgocyktPnUucmVpc2VyZnNfc2Iuc19ycykKI2RlZmluZSBTQl9CTE9DS19DT1VOVChz
KSBsZTMyX3RvX2NwdSAoKFNCX0RJU0tfU1VQRVJfQkxPQ0socyktPnNfYmxvY2tfY291bnQpKQoj
ZGVmaW5lIFNCX0ZSRUVfQkxPQ0tTKHMpIGxlMzJfdG9fY3B1ICgoU0JfRElTS19TVVBFUl9CTE9D
SyhzKS0+c19mcmVlX2Jsb2NrcykpCiNkZWZpbmUgU0JfUkVJU0VSRlNfTUFHSUMocykgKFNCX0RJ
U0tfU1VQRVJfQkxPQ0socyktPnNfbWFnaWMpCiNkZWZpbmUgU0JfUk9PVF9CTE9DSyhzKSBsZTMy
X3RvX2NwdSAoKFNCX0RJU0tfU1VQRVJfQkxPQ0socyktPnNfcm9vdF9ibG9jaykpCiNkZWZpbmUg
U0JfVFJFRV9IRUlHSFQocykgbGUxNl90b19jcHUgKChTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5z
X3RyZWVfaGVpZ2h0KSkKI2RlZmluZSBTQl9SRUlTRVJGU19TVEFURShzKSBsZTE2X3RvX2NwdSAo
KFNCX0RJU0tfU1VQRVJfQkxPQ0socyktPnNfc3RhdGUpKQojZGVmaW5lIFNCX1ZFUlNJT04ocykg
bGUxNl90b19jcHUgKChTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX3ZlcnNpb24pKQojZGVmaW5l
IFNCX0JNQVBfTlIocykgbGUxNl90b19jcHUgKChTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX2Jt
YXBfbnIpKQoKI2RlZmluZSBQVVRfU0JfQkxPQ0tfQ09VTlQocywgdmFsKSBkbyB7IFNCX0RJU0tf
U1VQRVJfQkxPQ0socyktPnNfYmxvY2tfY291bnQgPSBjcHVfdG9fbGUzMih2YWwpOyB9IHdoaWxl
ICgwKQojZGVmaW5lIFBVVF9TQl9GUkVFX0JMT0NLUyhzLCB2YWwpIGRvIHsgU0JfRElTS19TVVBF
Ul9CTE9DSyhzKS0+c19mcmVlX2Jsb2NrcyA9IGNwdV90b19sZTMyKHZhbCk7IH0gd2hpbGUgKDAp
CiNkZWZpbmUgUFVUX1NCX1JPT1RfQkxPQ0socywgdmFsKSBkbyB7IFNCX0RJU0tfU1VQRVJfQkxP
Q0socyktPnNfcm9vdF9ibG9jayA9IGNwdV90b19sZTMyKHZhbCk7IH0gd2hpbGUgKDApCiNkZWZp
bmUgUFVUX1NCX1RSRUVfSEVJR0hUKHMsIHZhbCkgZG8geyBTQl9ESVNLX1NVUEVSX0JMT0NLKHMp
LT5zX3RyZWVfaGVpZ2h0ID0gY3B1X3RvX2xlMTYodmFsKTsgfSB3aGlsZSAoMCkKI2RlZmluZSBQ
VVRfU0JfUkVJU0VSRlNfU1RBVEUocywgdmFsKSBkbyB7IFNCX0RJU0tfU1VQRVJfQkxPQ0socykt
PnNfc3RhdGUgPSBjcHVfdG9fbGUxNih2YWwpOyB9IHdoaWxlICgwKQojZGVmaW5lIFBVVF9TQl9W
RVJTSU9OKHMsIHZhbCkgZG8geyBTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX3ZlcnNpb24gPSBj
cHVfdG9fbGUxNih2YWwpOyB9IHdoaWxlICgwKQojZGVmaW5lIFBVVF9TQl9CTUFQX05SKHMsIHZh
bCkgZG8geyBTQl9ESVNLX1NVUEVSX0JMT0NLKHMpLT5zX2JtYXBfbnIgPSBjcHVfdG9fbGUxNiAo
dmFsKTsgfSB3aGlsZSAoMCkKIyA2NTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYmZzX2Zz
X3NiLmgiIDEKCgoKCgoKI2RlZmluZSBfTElOVVhfQkZTX0ZTX1NCCgoKCgpzdHJ1Y3QgYmZzX3Ni
X2luZm8gewogICAgICAgIHVuc2lnbmVkIGxvbmcgc2lfYmxvY2tzOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgc2lfZnJlZWI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaV9mcmVlaTsKICAgICAgICB1
bnNpZ25lZCBsb25nIHNpX2xmX2lvZmY7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaV9sZl9zYmxr
OwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2lfbGZfZWJsazsKICAgICAgICB1bnNpZ25lZCBsb25n
IHNpX2xhc3RpOwogICAgICAgIGNoYXIgKiBzaV9pbWFwOwogICAgICAgIHN0cnVjdCBidWZmZXJf
aGVhZCAqIHNpX3NiaDsKICAgICAgICBzdHJ1Y3QgYmZzX3N1cGVyX2Jsb2NrICogc2lfYmZzX3Ni
Owp9OwojIDY2MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC91ZGZfZnNfc2IuaCIgMQojIDE5
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3VkZl9mc19zYi5oIgojZGVmaW5l
IF9MSU5VWF9VREZfRlNfU0JfSAoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC92ZXJzaW9uLmgiIDEKI2RlZmluZSBVVFNfUkVMRUFTRSAiMi40LjciCiNkZWZpbmUgTElO
VVhfVkVSU0lPTl9DT0RFIDEzMjEwMwojZGVmaW5lIEtFUk5FTF9WRVJTSU9OKGEsIGIsIGMpICgo
KGEpIDw8IDE2KSArICgoYikgPDwgOCkgKyAoYykpCiMgMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvdWRmX2ZzX3NiLmgiIDIKCgojcHJhZ21hIHBhY2soMSkKCiNkZWZpbmUg
VURGX01BWF9CTE9DS19MT0FERUQgOAoKI2RlZmluZSBVREZfVFlQRTFfTUFQMTUgMHgxNTExVQoj
ZGVmaW5lIFVERl9WSVJUVUFMX01BUDE1IDB4MTUxMlUKI2RlZmluZSBVREZfVklSVFVBTF9NQVAy
MCAweDIwMTJVCiNkZWZpbmUgVURGX1NQQVJBQkxFX01BUDE1IDB4MTUyMlUKCnN0cnVjdCB1ZGZf
c3BhcmluZ19kYXRhCnsKICAgICAgICBfX3UxNiBzX3BhY2tldF9sZW47CiAgICAgICAgc3RydWN0
IGJ1ZmZlcl9oZWFkICpzX3NwYXJfbWFwWzRdOwp9OwoKc3RydWN0IHVkZl92aXJ0dWFsX2RhdGEK
ewogICAgICAgIF9fdTMyIHNfbnVtX2VudHJpZXM7CiAgICAgICAgX191MTYgc19zdGFydF9vZmZz
ZXQ7Cn07CgpzdHJ1Y3QgdWRmX2JpdG1hcAp7CiAgICAgICAgX191MzIgc19leHRMZW5ndGg7CiAg
ICAgICAgX191MzIgc19leHRQb3NpdGlvbjsKICAgICAgICBfX3UxNiBzX25yX2dyb3VwczsKICAg
ICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKipzX2Jsb2NrX2JpdG1hcDsKfTsKCnN0cnVjdCB1ZGZf
cGFydF9tYXAKewogICAgICAgIHVuaW9uCiAgICAgICAgewogICAgICAgICAgICAgICAgc3RydWN0
IHVkZl9iaXRtYXAgKnNfYml0bWFwOwogICAgICAgICAgICAgICAgc3RydWN0IGlub2RlICpzX3Rh
YmxlOwogICAgICAgIH0gc191c3BhY2U7CiAgICAgICAgdW5pb24KICAgICAgICB7CiAgICAgICAg
ICAgICAgICBzdHJ1Y3QgdWRmX2JpdG1hcCAqc19iaXRtYXA7CiAgICAgICAgICAgICAgICBzdHJ1
Y3QgaW5vZGUgKnNfdGFibGU7CiAgICAgICAgfSBzX2ZzcGFjZTsKICAgICAgICBfX3UzMiBzX3Bh
cnRpdGlvbl9yb290OwogICAgICAgIF9fdTMyIHNfcGFydGl0aW9uX2xlbjsKICAgICAgICBfX3Ux
NiBzX3BhcnRpdGlvbl90eXBlOwogICAgICAgIF9fdTE2IHNfcGFydGl0aW9uX251bTsKICAgICAg
ICB1bmlvbgogICAgICAgIHsKICAgICAgICAgICAgICAgIHN0cnVjdCB1ZGZfc3BhcmluZ19kYXRh
IHNfc3BhcmluZzsKICAgICAgICAgICAgICAgIHN0cnVjdCB1ZGZfdmlydHVhbF9kYXRhIHNfdmly
dHVhbDsKICAgICAgICB9IHNfdHlwZV9zcGVjaWZpYzsKICAgICAgICBfX3UzMiAoKnNfcGFydGl0
aW9uX2Z1bmMpKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MTYsIF9fdTMyKTsKICAg
ICAgICBfX3UxNiBzX3ZvbHVtZXNlcW51bTsKICAgICAgICBfX3UxNiBzX3BhcnRpdGlvbl9mbGFn
czsKfTsKCiNwcmFnbWEgcGFjaygpCgpzdHJ1Y3QgdWRmX3NiX2luZm8KewogICAgICAgIHN0cnVj
dCB1ZGZfcGFydF9tYXAgKnNfcGFydG1hcHM7CiAgICAgICAgX191OCBzX3ZvbGlkZW50WzMyXTsK
CgogICAgICAgIF9fdTE2IHNfcGFydGl0aW9uczsKICAgICAgICBfX3UxNiBzX3BhcnRpdGlvbjsK
CgogICAgICAgIF9fdTMyIHNfc2Vzc2lvbjsKICAgICAgICBfX3UzMiBzX2FuY2hvcls0XTsKICAg
ICAgICBfX3UzMiBzX2xhc3RibG9jazsKCiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpzX2x2
aWRiaDsKCgogICAgICAgIG1vZGVfdCBzX3VtYXNrOwogICAgICAgIGdpZF90IHNfZ2lkOwogICAg
ICAgIHVpZF90IHNfdWlkOwoKCiAgICAgICAgdGltZV90IHNfcmVjb3JkdGltZTsKCgogICAgICAg
IF9fdTE2IHNfc2VyaWFsbnVtOwoKCiAgICAgICAgX191MTYgc191ZGZyZXY7CgoKICAgICAgICBf
X3UzMiBzX2ZsYWdzOwoKCiAgICAgICAgc3RydWN0IG5sc190YWJsZSAqc19ubHNfbWFwOwoKCiAg
ICAgICAgc3RydWN0IGlub2RlICpzX3ZhdDsKfTsKIyA2NjEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvbmNwX2ZzX3NiLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L25jcF9mc19zYi5oIgojZGVmaW5lIF9OQ1BfRlNfU0IKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvbmNwX2ZzX3NiLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L25jcF9tb3VudC5oIiAxCiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9uY3BfbW91bnQuaCIKI2RlZmluZSBfTElOVVhfTkNQX01PVU5UX0gKCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTIgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbmNwX21vdW50LmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcC5oIiAxCiMgMTEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvbmNwLmgiCiNkZWZpbmUgX0xJTlVYX05DUF9ICgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDE0ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcC5oIiAyCgojZGVmaW5lIE5DUF9QVFlQRSAo
MHgxMSkKI2RlZmluZSBOQ1BfUE9SVCAoMHgwNDUxKQoKI2RlZmluZSBOQ1BfQUxMT0NfU0xPVF9S
RVFVRVNUICgweDExMTEpCiNkZWZpbmUgTkNQX1JFUVVFU1QgKDB4MjIyMikKI2RlZmluZSBOQ1Bf
REVBTExPQ19TTE9UX1JFUVVFU1QgKDB4NTU1NSkKCnN0cnVjdCBuY3BfcmVxdWVzdF9oZWFkZXIg
ewogICAgICAgIF9fdTE2IHR5cGUgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191
OCBzZXF1ZW5jZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5fbG93
IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTggdGFzayBfX2F0dHJpYnV0ZV9f
KChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5faGlnaCBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp
KTsKICAgICAgICBfX3U4IGZ1bmN0aW9uIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAg
IF9fdTggZGF0YVswXSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKfTsKCiNkZWZpbmUgTkNQX1JF
UExZICgweDMzMzMpCiNkZWZpbmUgTkNQX1BPU0lUSVZFX0FDSyAoMHg5OTk5KQoKc3RydWN0IG5j
cF9yZXBseV9oZWFkZXIgewogICAgICAgIF9fdTE2IHR5cGUgX19hdHRyaWJ1dGVfXygocGFja2Vk
KSk7CiAgICAgICAgX191OCBzZXF1ZW5jZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAg
ICBfX3U4IGNvbm5fbG93IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTggdGFz
ayBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5faGlnaCBfX2F0dHJp
YnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbXBsZXRpb25fY29kZSBfX2F0dHJpYnV0
ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IGNvbm5lY3Rpb25fc3RhdGUgX19hdHRyaWJ1dGVf
XygocGFja2VkKSk7CiAgICAgICAgX191OCBkYXRhWzBdIF9fYXR0cmlidXRlX18oKHBhY2tlZCkp
Owp9OwoKI2RlZmluZSBOQ1BfVk9MTkFNRV9MRU4gKDE2KQojZGVmaW5lIE5DUF9OVU1CRVJfT0Zf
Vk9MVU1FUyAoNjQpCnN0cnVjdCBuY3Bfdm9sdW1lX2luZm8gewogICAgICAgIF9fdTMyIHRvdGFs
X2Jsb2NrczsKICAgICAgICBfX3UzMiBmcmVlX2Jsb2NrczsKICAgICAgICBfX3UzMiBwdXJnZWFi
bGVfYmxvY2tzOwogICAgICAgIF9fdTMyIG5vdF95ZXRfcHVyZ2VhYmxlX2Jsb2NrczsKICAgICAg
ICBfX3UzMiB0b3RhbF9kaXJfZW50cmllczsKICAgICAgICBfX3UzMiBhdmFpbGFibGVfZGlyX2Vu
dHJpZXM7CiAgICAgICAgX191OCBzZWN0b3JzX3Blcl9ibG9jazsKICAgICAgICBjaGFyIHZvbHVt
ZV9uYW1lWygxNikgKyAxXTsKfTsKCiNkZWZpbmUgQVJfUkVBRCAobnRvaHMoMHgwMTAwKSkKI2Rl
ZmluZSBBUl9XUklURSAobnRvaHMoMHgwMjAwKSkKI2RlZmluZSBBUl9FWENMVVNJVkUgKG50b2hz
KDB4MjAwMCkpCgojZGVmaW5lIE5DUF9GSUxFX0lEX0xFTiA2CgoKI2RlZmluZSBOV19OU19ET1Mg
MAojZGVmaW5lIE5XX05TX01BQyAxCiNkZWZpbmUgTldfTlNfTkZTIDIKI2RlZmluZSBOV19OU19G
VEFNIDMKI2RlZmluZSBOV19OU19PUzIgNAoKCiNkZWZpbmUgUklNX05BTUUgKG50b2hsKDB4MDEw
MDAwMDBMKSkKI2RlZmluZSBSSU1fU1BBQ0VfQUxMT0NBVEVEIChudG9obCgweDAyMDAwMDAwTCkp
CiNkZWZpbmUgUklNX0FUVFJJQlVURVMgKG50b2hsKDB4MDQwMDAwMDBMKSkKI2RlZmluZSBSSU1f
REFUQV9TSVpFIChudG9obCgweDA4MDAwMDAwTCkpCiNkZWZpbmUgUklNX1RPVEFMX1NJWkUgKG50
b2hsKDB4MTAwMDAwMDBMKSkKI2RlZmluZSBSSU1fRVhUX0FUVFJfSU5GTyAobnRvaGwoMHgyMDAw
MDAwMEwpKQojZGVmaW5lIFJJTV9BUkNISVZFIChudG9obCgweDQwMDAwMDAwTCkpCiNkZWZpbmUg
UklNX01PRElGWSAobnRvaGwoMHg4MDAwMDAwMEwpKQojZGVmaW5lIFJJTV9DUkVBVElPTiAobnRv
aGwoMHgwMDAxMDAwMEwpKQojZGVmaW5lIFJJTV9PV05JTkdfTkFNRVNQQUNFIChudG9obCgweDAw
MDIwMDAwTCkpCiNkZWZpbmUgUklNX0RJUkVDVE9SWSAobnRvaGwoMHgwMDA0MDAwMEwpKQojZGVm
aW5lIFJJTV9SSUdIVFMgKG50b2hsKDB4MDAwODAwMDBMKSkKI2RlZmluZSBSSU1fQUxMIChudG9o
bCgweEZGMEYwMDAwTCkpCiNkZWZpbmUgUklNX0NPTVBSRVNTRURfSU5GTyAobnRvaGwoMHgwMDAw
MDA4MEwpKQoKCiNkZWZpbmUgT0NfTU9ERV9PUEVOIDB4MDEKI2RlZmluZSBPQ19NT0RFX1RSVU5D
QVRFIDB4MDIKI2RlZmluZSBPQ19NT0RFX1JFUExBQ0UgMHgwMgojZGVmaW5lIE9DX01PREVfQ1JF
QVRFIDB4MDgKCgojZGVmaW5lIE9DX0FDVElPTl9OT05FIDB4MDAKI2RlZmluZSBPQ19BQ1RJT05f
T1BFTiAweDAxCiNkZWZpbmUgT0NfQUNUSU9OX0NSRUFURSAweDAyCiNkZWZpbmUgT0NfQUNUSU9O
X1RSVU5DQVRFIDB4MDQKI2RlZmluZSBPQ19BQ1RJT05fUkVQTEFDRSAweDA0CgoKCiNkZWZpbmUg
QVJfUkVBRF9PTkxZIDB4MDAwMQojZGVmaW5lIEFSX1dSSVRFX09OTFkgMHgwMDAyCiNkZWZpbmUg
QVJfREVOWV9SRUFEIDB4MDAwNAojZGVmaW5lIEFSX0RFTllfV1JJVEUgMHgwMDA4CiNkZWZpbmUg
QVJfQ09NUEFUSUJJTElUWSAweDAwMTAKI2RlZmluZSBBUl9XUklURV9USFJPVUdIIDB4MDA0MAoj
ZGVmaW5lIEFSX09QRU5fQ09NUFJFU1NFRCAweDAxMDAKCgpzdHJ1Y3QgbndfaW5mb19zdHJ1Y3Qg
ewogICAgICAgIF9fdTMyIHNwYWNlQWxsb2MgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAg
ICAgX191MzIgYXR0cmlidXRlcyBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3Ux
NiBmbGFncyBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBkYXRhU3RyZWFt
U2l6ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiB0b3RhbFN0cmVhbVNp
emUgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgbnVtYmVyT2ZTdHJlYW1z
IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2IGNyZWF0aW9uVGltZSBfX2F0
dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UxNiBjcmVhdGlvbkRhdGUgX19hdHRyaWJ1
dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgY3JlYXRvcklEIF9fYXR0cmlidXRlX18oKHBh
Y2tlZCkpOwogICAgICAgIF9fdTE2IG1vZGlmeVRpbWUgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7
CiAgICAgICAgX191MTYgbW9kaWZ5RGF0ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAg
ICBfX3UzMiBtb2RpZmllcklEIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2
IGxhc3RBY2Nlc3NEYXRlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2IGFy
Y2hpdmVUaW1lIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTE2IGFyY2hpdmVE
YXRlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTMyIGFyY2hpdmVySUQgX19h
dHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgaW5oZXJpdGVkUmlnaHRzTWFzayBf
X2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBkaXJFbnROdW0gX19hdHRyaWJ1
dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgRG9zRGlyTnVtIF9fYXR0cmlidXRlX18oKHBh
Y2tlZCkpOwogICAgICAgIF9fdTMyIHZvbE51bWJlciBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsK
ICAgICAgICBfX3UzMiBFQURhdGFTaXplIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAg
IF9fdTMyIEVBS2V5Q291bnQgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIg
RUFLZXlTaXplIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTMyIE5TQ3JlYXRv
ciBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3U4IG5hbWVMZW4gX19hdHRyaWJ1
dGVfXygocGFja2VkKSk7CiAgICAgICAgX191OCBlbnRyeU5hbWVbMjU2XSBfX2F0dHJpYnV0ZV9f
KChwYWNrZWQpKTsKfTsKCgojZGVmaW5lIERNX0FUVFJJQlVURVMgKG50b2hsKDB4MDIwMDAwMDBM
KSkKI2RlZmluZSBETV9DUkVBVEVfREFURSAobnRvaGwoMHgwNDAwMDAwMEwpKQojZGVmaW5lIERN
X0NSRUFURV9USU1FIChudG9obCgweDA4MDAwMDAwTCkpCiNkZWZpbmUgRE1fQ1JFQVRPUl9JRCAo
bnRvaGwoMHgxMDAwMDAwMEwpKQojZGVmaW5lIERNX0FSQ0hJVkVfREFURSAobnRvaGwoMHgyMDAw
MDAwMEwpKQojZGVmaW5lIERNX0FSQ0hJVkVfVElNRSAobnRvaGwoMHg0MDAwMDAwMEwpKQojZGVm
aW5lIERNX0FSQ0hJVkVSX0lEIChudG9obCgweDgwMDAwMDAwTCkpCiNkZWZpbmUgRE1fTU9ESUZZ
X0RBVEUgKG50b2hsKDB4MDAwMTAwMDBMKSkKI2RlZmluZSBETV9NT0RJRllfVElNRSAobnRvaGwo
MHgwMDAyMDAwMEwpKQojZGVmaW5lIERNX01PRElGSUVSX0lEIChudG9obCgweDAwMDQwMDAwTCkp
CiNkZWZpbmUgRE1fTEFTVF9BQ0NFU1NfREFURSAobnRvaGwoMHgwMDA4MDAwMEwpKQojZGVmaW5l
IERNX0lOSEVSSVRFRF9SSUdIVFNfTUFTSyAobnRvaGwoMHgwMDEwMDAwMEwpKQojZGVmaW5lIERN
X01BWElNVU1fU1BBQ0UgKG50b2hsKDB4MDAyMDAwMDBMKSkKCnN0cnVjdCBud19tb2RpZnlfZG9z
X2luZm8gewogICAgICAgIF9fdTMyIGF0dHJpYnV0ZXMgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7
CiAgICAgICAgX191MTYgY3JlYXRpb25EYXRlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAg
ICAgIF9fdTE2IGNyZWF0aW9uVGltZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBf
X3UzMiBjcmVhdG9ySUQgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgbW9k
aWZ5RGF0ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAgICAgICBfX3UxNiBtb2RpZnlUaW1l
IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwogICAgICAgIF9fdTMyIG1vZGlmaWVySUQgX19hdHRy
aWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MTYgYXJjaGl2ZURhdGUgX19hdHRyaWJ1dGVf
XygocGFja2VkKSk7CiAgICAgICAgX191MTYgYXJjaGl2ZVRpbWUgX19hdHRyaWJ1dGVfXygocGFj
a2VkKSk7CiAgICAgICAgX191MzIgYXJjaGl2ZXJJRCBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsK
ICAgICAgICBfX3UxNiBsYXN0QWNjZXNzRGF0ZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsKICAg
ICAgICBfX3UxNiBpbmhlcml0YW5jZUdyYW50TWFzayBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsK
ICAgICAgICBfX3UxNiBpbmhlcml0YW5jZVJldm9rZU1hc2sgX19hdHRyaWJ1dGVfXygocGFja2Vk
KSk7CiAgICAgICAgX191MzIgbWF4aW11bVNwYWNlIF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwp9
OwoKc3RydWN0IG53X3NlYXJjaF9zZXF1ZW5jZSB7CiAgICAgICAgX191OCB2b2xOdW1iZXIgX19h
dHRyaWJ1dGVfXygocGFja2VkKSk7CiAgICAgICAgX191MzIgZGlyQmFzZSBfX2F0dHJpYnV0ZV9f
KChwYWNrZWQpKTsKICAgICAgICBfX3UzMiBzZXF1ZW5jZSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQp
KTsKfTsKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9uY3BfbW91bnQu
aCIgMgoKI2RlZmluZSBOQ1BfTU9VTlRfVkVSU0lPTiAzCgoKI2RlZmluZSBOQ1BfTU9VTlRfU09G
VCAweDAwMDEKI2RlZmluZSBOQ1BfTU9VTlRfSU5UUiAweDAwMDIKI2RlZmluZSBOQ1BfTU9VTlRf
U1RST05HIDB4MDAwNAojZGVmaW5lIE5DUF9NT1VOVF9OT19PUzIgMHgwMDA4CiNkZWZpbmUgTkNQ
X01PVU5UX05PX05GUyAweDAwMTAKI2RlZmluZSBOQ1BfTU9VTlRfRVhUUkFTIDB4MDAyMAojZGVm
aW5lIE5DUF9NT1VOVF9TWU1MSU5LUyAweDAwNDAKCnN0cnVjdCBuY3BfbW91bnRfZGF0YSB7CiAg
ICAgICAgaW50IHZlcnNpb247CiAgICAgICAgdW5zaWduZWQgaW50IG5jcF9mZDsKICAgICAgICBf
X2tlcm5lbF91aWRfdCBtb3VudGVkX3VpZDsKICAgICAgICBfX2tlcm5lbF9waWRfdCB3ZG9nX3Bp
ZDsKCiAgICAgICAgdW5zaWduZWQgY2hhciBtb3VudGVkX3ZvbFsoMTYpICsgMV07CiAgICAgICAg
dW5zaWduZWQgaW50IHRpbWVfb3V0OwoKICAgICAgICB1bnNpZ25lZCBpbnQgcmV0cnlfY291bnQ7
CiAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwoKICAgICAgICBfX2tlcm5lbF91aWRfdCB1aWQ7
CiAgICAgICAgX19rZXJuZWxfZ2lkX3QgZ2lkOwogICAgICAgIF9fa2VybmVsX21vZGVfdCBmaWxl
X21vZGU7CiAgICAgICAgX19rZXJuZWxfbW9kZV90IGRpcl9tb2RlOwp9OwoKI2RlZmluZSBOQ1Bf
TU9VTlRfVkVSU0lPTl9WNCAoNCkKCnN0cnVjdCBuY3BfbW91bnRfZGF0YV92NCB7CiAgICAgICAg
aW50IHZlcnNpb247CiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKCgogICAgICAgIHVuc2ln
bmVkIGxvbmcgbW91bnRlZF91aWQ7CgogICAgICAgIGxvbmcgd2RvZ19waWQ7CgogICAgICAgIHVu
c2lnbmVkIGludCBuY3BfZmQ7CiAgICAgICAgdW5zaWduZWQgaW50IHRpbWVfb3V0OwoKICAgICAg
ICB1bnNpZ25lZCBpbnQgcmV0cnlfY291bnQ7CgoKCiAgICAgICAgdW5zaWduZWQgbG9uZyB1aWQ7
CiAgICAgICAgdW5zaWduZWQgbG9uZyBnaWQ7CgogICAgICAgIHVuc2lnbmVkIGxvbmcgZmlsZV9t
b2RlOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZGlyX21vZGU7Cn07CgoKCnN0cnVjdCBuY3BfbW91
bnRfZGF0YV9rZXJuZWwgewogICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgICAgdW5z
aWduZWQgaW50IGludF9mbGFnczsKI2RlZmluZSBOQ1BfSU1PVU5UX0xPR0dFRElOX1BPU1NJQkxF
IDB4MDAwMQogX19rZXJuZWxfdWlkMzJfdCBtb3VudGVkX3VpZDsKICAgICAgICBfX2tlcm5lbF9w
aWRfdCB3ZG9nX3BpZDsKICAgICAgICB1bnNpZ25lZCBpbnQgbmNwX2ZkOwogICAgICAgIHVuc2ln
bmVkIGludCB0aW1lX291dDsKCiAgICAgICAgdW5zaWduZWQgaW50IHJldHJ5X2NvdW50OwogICAg
ICAgIHVuc2lnbmVkIGNoYXIgbW91bnRlZF92b2xbKDE2KSArIDFdOwogICAgICAgIF9fa2VybmVs
X3VpZDMyX3QgdWlkOwogICAgICAgIF9fa2VybmVsX2dpZDMyX3QgZ2lkOwogICAgICAgIF9fa2Vy
bmVsX21vZGVfdCBmaWxlX21vZGU7CiAgICAgICAgX19rZXJuZWxfbW9kZV90IGRpcl9tb2RlOwp9
OwojIDEzICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L25jcF9mc19zYi5oIiAy
CgoKCiNkZWZpbmUgTkNQX0RFRkFVTFRfT1BUSU9OUyAwCgpzdHJ1Y3QgbmNwX3NlcnZlciB7Cgog
ICAgICAgIHN0cnVjdCBuY3BfbW91bnRfZGF0YV9rZXJuZWwgbTsKCgoKICAgICAgICBfX3U4IG5h
bWVfc3BhY2VbKDY0KSArIDJdOwoKICAgICAgICBzdHJ1Y3QgZmlsZSAqbmNwX2ZpbHA7CgogICAg
ICAgIHU4IHNlcXVlbmNlOwogICAgICAgIHU4IHRhc2s7CiAgICAgICAgdTE2IGNvbm5lY3Rpb247
CgogICAgICAgIHU4IGNvbXBsZXRpb247CiAgICAgICAgdTggY29ubl9zdGF0dXM7CgoKCiAgICAg
ICAgaW50IGJ1ZmZlcl9zaXplOwoKICAgICAgICBpbnQgcmVwbHlfc2l6ZTsKCiAgICAgICAgaW50
IHBhY2tldF9zaXplOwogICAgICAgIHVuc2lnbmVkIGNoYXIgKnBhY2tldDsKCgogICAgICAgIGlu
dCBsb2NrOwogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgc2VtOwoKICAgICAgICBpbnQgY3VycmVu
dF9zaXplOwogICAgICAgIGludCBoYXNfc3ViZnVuY3Rpb247CiAgICAgICAgaW50IG5jcF9yZXBs
eV9zaXplOwoKICAgICAgICBpbnQgcm9vdF9zZXR1cGVkOwoKCiAgICAgICAgaW50IHNpZ25fd2Fu
dGVkOwogICAgICAgIGludCBzaWduX2FjdGl2ZTsKICAgICAgICBjaGFyIHNpZ25fcm9vdFs4XTsK
ICAgICAgICBjaGFyIHNpZ25fbGFzdFsxNl07CgoKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAg
ICAgICAgaW50IGF1dGhfdHlwZTsKICAgICAgICAgICAgICAgIHNpemVfdCBvYmplY3RfbmFtZV9s
ZW47CiAgICAgICAgICAgICAgICB2b2lkKiBvYmplY3RfbmFtZTsKICAgICAgICAgICAgICAgIGlu
dCBvYmplY3RfdHlwZTsKICAgICAgICB9IGF1dGg7CgogICAgICAgIHN0cnVjdCB7CiAgICAgICAg
ICAgICAgICBzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgdm9pZCogZGF0YTsKICAgICAgICB9
IHByaXY7CgoKICAgICAgICBzdHJ1Y3QgbmxzX3RhYmxlICpubHNfdm9sOwogICAgICAgIHN0cnVj
dCBubHNfdGFibGUgKm5sc19pbzsKCgogICAgICAgIGludCBkZW50cnlfdHRsOwoKCiAgICAgICAg
dW5zaWduZWQgaW50IGZsYWdzOwp9OwoKI2RlZmluZSBuY3Bfc2JfaW5mbyBuY3Bfc2VydmVyCgoj
ZGVmaW5lIE5DUF9GTEFHX1VURjggMQoKI2RlZmluZSBOQ1BfQ0xSX0ZMQUcoc2VydmVyLCBmbGFn
KSAoKHNlcnZlciktPmZsYWdzICY9IH4oZmxhZykpCiNkZWZpbmUgTkNQX1NFVF9GTEFHKHNlcnZl
ciwgZmxhZykgKChzZXJ2ZXIpLT5mbGFncyB8PSAoZmxhZykpCiNkZWZpbmUgTkNQX0lTX0ZMQUco
c2VydmVyLCBmbGFnKSAoKHNlcnZlciktPmZsYWdzICYgKGZsYWcpKQoKc3RhdGljIGlubGluZSBp
bnQgbmNwX2Nvbm5fdmFsaWQoc3RydWN0IG5jcF9zZXJ2ZXIgKnNlcnZlcikKewogICAgICAgIHJl
dHVybiAoKHNlcnZlci0+Y29ubl9zdGF0dXMgJiAweDExKSA9PSAwKTsKfQoKc3RhdGljIGlubGlu
ZSB2b2lkIG5jcF9pbnZhbGlkYXRlX2Nvbm4oc3RydWN0IG5jcF9zZXJ2ZXIgKnNlcnZlcikKewog
ICAgICAgIHNlcnZlci0+Y29ubl9zdGF0dXMgfD0gMHgwMTsKfQojIDY2MiAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC91c2JkZXZfZnNfc2IuaCIgMQpzdHJ1Y3QgdXNiZGV2X3NiX2luZm8gewog
ICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgc2xpc3Q7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBp
bGlzdDsKICAgICAgICB1aWRfdCBkZXZ1aWQ7CiAgICAgICAgZ2lkX3QgZGV2Z2lkOwogICAgICAg
IHVtb2RlX3QgZGV2bW9kZTsKICAgICAgICB1aWRfdCBidXN1aWQ7CiAgICAgICAgZ2lkX3QgYnVz
Z2lkOwogICAgICAgIHVtb2RlX3QgYnVzbW9kZTsKICAgICAgICB1aWRfdCBsaXN0dWlkOwogICAg
ICAgIGdpZF90IGxpc3RnaWQ7CiAgICAgICAgdW1vZGVfdCBsaXN0bW9kZTsKfTsKIyA2NjMgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY3JhbWZzX2ZzX3NiLmgiIDEKCiNkZWZpbmUgX0NSQU1G
U19GU19TQgoKCgoKc3RydWN0IGNyYW1mc19zYl9pbmZvIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgbG9uZyBtYWdpYzsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bG9uZyBzaXplOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGJsb2NrczsK
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmaWxlczsKICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKfTsKIyA2NjQgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMgoKZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgc3Vw
ZXJfYmxvY2tzOwoKI2RlZmluZSBzYl9lbnRyeShsaXN0KSBsaXN0X2VudHJ5KChsaXN0KSwgc3Ry
dWN0IHN1cGVyX2Jsb2NrLCBzX2xpc3QpCnN0cnVjdCBzdXBlcl9ibG9jayB7CiAgICAgICAgc3Ry
dWN0IGxpc3RfaGVhZCBzX2xpc3Q7CiAgICAgICAga2Rldl90IHNfZGV2OwogICAgICAgIHVuc2ln
bmVkIGxvbmcgc19ibG9ja3NpemU7CiAgICAgICAgdW5zaWduZWQgY2hhciBzX2Jsb2Nrc2l6ZV9i
aXRzOwogICAgICAgIHVuc2lnbmVkIGNoYXIgc19kaXJ0OwogICAgICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyBzX21heGJ5dGVzOwogICAgICAgIHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpzX3R5cGU7
CiAgICAgICAgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgKnNfb3A7CiAgICAgICAgc3RydWN0IGRx
dW90X29wZXJhdGlvbnMgKmRxX29wOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc19mbGFnczsKICAg
ICAgICB1bnNpZ25lZCBsb25nIHNfbWFnaWM7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqc19yb290
OwogICAgICAgIHN0cnVjdCByd19zZW1hcGhvcmUgc191bW91bnQ7CiAgICAgICAgc3RydWN0IHNl
bWFwaG9yZSBzX2xvY2s7CgogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgc19kaXJ0eTsKICAgICAg
ICBzdHJ1Y3QgbGlzdF9oZWFkIHNfbG9ja2VkX2lub2RlczsKICAgICAgICBzdHJ1Y3QgbGlzdF9o
ZWFkIHNfZmlsZXM7CgogICAgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKnNfYmRldjsKICAgICAg
ICBzdHJ1Y3QgbGlzdF9oZWFkIHNfbW91bnRzOwogICAgICAgIHN0cnVjdCBxdW90YV9tb3VudF9v
cHRpb25zIHNfZHF1b3Q7CgogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgICAgIHN0cnVjdCBt
aW5peF9zYl9pbmZvIG1pbml4X3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGV4dDJfc2JfaW5m
byBleHQyX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGhwZnNfc2JfaW5mbyBocGZzX3NiOwog
ICAgICAgICAgICAgICAgc3RydWN0IG50ZnNfc2JfaW5mbyBudGZzX3NiOwogICAgICAgICAgICAg
ICAgc3RydWN0IG1zZG9zX3NiX2luZm8gbXNkb3Nfc2I7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qg
aXNvZnNfc2JfaW5mbyBpc29mc19zYjsKICAgICAgICAgICAgICAgIHN0cnVjdCBuZnNfc2JfaW5m
byBuZnNfc2I7CiAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3lzdl9zYl9pbmZvIHN5c3Zfc2I7CiAg
ICAgICAgICAgICAgICBzdHJ1Y3QgYWZmc19zYl9pbmZvIGFmZnNfc2I7CiAgICAgICAgICAgICAg
ICBzdHJ1Y3QgdWZzX3NiX2luZm8gdWZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGVmc19z
Yl9pbmZvIGVmc19zYjsKICAgICAgICAgICAgICAgIHN0cnVjdCBzaG1lbV9zYl9pbmZvIHNobWVt
X3NiOwogICAgICAgICAgICAgICAgc3RydWN0IHJvbWZzX3NiX2luZm8gcm9tZnNfc2I7CiAgICAg
ICAgICAgICAgICBzdHJ1Y3Qgc21iX3NiX2luZm8gc21iZnNfc2I7CiAgICAgICAgICAgICAgICBz
dHJ1Y3QgaGZzX3NiX2luZm8gaGZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGFkZnNfc2Jf
aW5mbyBhZGZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IHFueDRfc2JfaW5mbyBxbng0X3Ni
OwogICAgICAgICAgICAgICAgc3RydWN0IHJlaXNlcmZzX3NiX2luZm8gcmVpc2VyZnNfc2I7CiAg
ICAgICAgICAgICAgICBzdHJ1Y3QgYmZzX3NiX2luZm8gYmZzX3NiOwogICAgICAgICAgICAgICAg
c3RydWN0IHVkZl9zYl9pbmZvIHVkZl9zYjsKICAgICAgICAgICAgICAgIHN0cnVjdCBuY3Bfc2Vy
dmVyIG5jcGZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IHVzYmRldl9zYl9pbmZvIHVzYmRl
dmZzX3NiOwogICAgICAgICAgICAgICAgc3RydWN0IGNyYW1mc19zYl9pbmZvIGNyYW1mc19zYjsK
ICAgICAgICAgICAgICAgIHZvaWQgKmdlbmVyaWNfc2JwOwogICAgICAgIH0gdTsKCgoKCiAgICAg
ICAgc3RydWN0IHNlbWFwaG9yZSBzX3Zmc19yZW5hbWVfc2VtOwojIDczMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIgogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgc19u
ZnNkX2ZyZWVfcGF0aF9zZW07Cn07CgoKCgpleHRlcm4gaW50IHZmc19jcmVhdGVfUnNtcF8wNGUy
N2Q0MChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBpbnQpOwpleHRlcm4gaW50IHZm
c19ta2Rpcl9Sc21wXzdiYTViMWJhKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICosIGlu
dCk7CmV4dGVybiBpbnQgdmZzX21rbm9kX1JzbXBfYjc1MmQ0NDYoc3RydWN0IGlub2RlICosIHN0
cnVjdCBkZW50cnkgKiwgaW50LCBkZXZfdCk7CmV4dGVybiBpbnQgdmZzX3N5bWxpbmtfUnNtcF9k
NzY2NWY3ZChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqLCBjb25zdCBjaGFyICopOwpl
eHRlcm4gaW50IHZmc19saW5rX1JzbXBfZWQzODM1MTQoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3Qg
aW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCB2ZnNfcm1kaXJfUnNtcF83OTYz
NmE5MChzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGRlbnRyeSAqKTsKZXh0ZXJuIGludCB2ZnNfdW5s
aW5rX1JzbXBfZmVmYTQ0NDcoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKik7CmV4dGVy
biBpbnQgdmZzX3JlbmFtZV9Sc21wXzQ2ZmM1N2IxKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVu
dHJ5ICosIHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZGVudHJ5ICopOwoKCgoKI2RlZmluZSBEVF9V
TktOT1dOIDAKI2RlZmluZSBEVF9GSUZPIDEKI2RlZmluZSBEVF9DSFIgMgojZGVmaW5lIERUX0RJ
UiA0CiNkZWZpbmUgRFRfQkxLIDYKI2RlZmluZSBEVF9SRUcgOAojZGVmaW5lIERUX0xOSyAxMAoj
ZGVmaW5lIERUX1NPQ0sgMTIKI2RlZmluZSBEVF9XSFQgMTQKCgoKCgoKCnR5cGVkZWYgaW50ICgq
ZmlsbGRpcl90KSh2b2lkICosIGNvbnN0IGNoYXIgKiwgaW50LCBvZmZfdCwgaW5vX3QsIHVuc2ln
bmVkKTsKCnN0cnVjdCBibG9ja19kZXZpY2Vfb3BlcmF0aW9ucyB7CiAgICAgICAgaW50ICgqb3Bl
bikgKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKICAgICAgICBpbnQgKCpyZWxlYXNl
KSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwogICAgICAgIGludCAoKmlvY3RsKSAo
c3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICosIHVuc2lnbmVkLCB1bnNpZ25lZCBsb25nKTsK
ICAgICAgICBpbnQgKCpjaGVja19tZWRpYV9jaGFuZ2UpIChrZGV2X3QpOwogICAgICAgIGludCAo
KnJldmFsaWRhdGUpIChrZGV2X3QpOwp9OwoKCgoKCgpzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHsK
ICAgICAgICBzdHJ1Y3QgbW9kdWxlICpvd25lcjsKICAgICAgICBsb2ZmX3QgKCpsbHNlZWspIChz
dHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIGludCk7CiAgICAgICAgc3NpemVfdCAoKnJlYWQpIChzdHJ1
Y3QgZmlsZSAqLCBjaGFyICosIHNpemVfdCwgbG9mZl90ICopOwogICAgICAgIHNzaXplX3QgKCp3
cml0ZSkgKHN0cnVjdCBmaWxlICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CiAg
ICAgICAgaW50ICgqcmVhZGRpcikgKHN0cnVjdCBmaWxlICosIHZvaWQgKiwgZmlsbGRpcl90KTsK
ICAgICAgICB1bnNpZ25lZCBpbnQgKCpwb2xsKSAoc3RydWN0IGZpbGUgKiwgc3RydWN0IHBvbGxf
dGFibGVfc3RydWN0ICopOwogICAgICAgIGludCAoKmlvY3RsKSAoc3RydWN0IGlub2RlICosIHN0
cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CiAgICAgICAgaW50ICgq
bW1hcCkgKHN0cnVjdCBmaWxlICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKTsKICAgICAgICBp
bnQgKCpvcGVuKSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBmaWxlICopOwogICAgICAgIGludCAo
KmZsdXNoKSAoc3RydWN0IGZpbGUgKik7CiAgICAgICAgaW50ICgqcmVsZWFzZSkgKHN0cnVjdCBp
bm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKICAgICAgICBpbnQgKCpmc3luYykgKHN0cnVjdCBmaWxl
ICosIHN0cnVjdCBkZW50cnkgKiwgaW50IGRhdGFzeW5jKTsKICAgICAgICBpbnQgKCpmYXN5bmMp
IChpbnQsIHN0cnVjdCBmaWxlICosIGludCk7CiAgICAgICAgaW50ICgqbG9jaykgKHN0cnVjdCBm
aWxlICosIGludCwgc3RydWN0IGZpbGVfbG9jayAqKTsKICAgICAgICBzc2l6ZV90ICgqcmVhZHYp
IChzdHJ1Y3QgZmlsZSAqLCBjb25zdCBzdHJ1Y3QgaW92ZWMgKiwgdW5zaWduZWQgbG9uZywgbG9m
Zl90ICopOwogICAgICAgIHNzaXplX3QgKCp3cml0ZXYpIChzdHJ1Y3QgZmlsZSAqLCBjb25zdCBz
dHJ1Y3QgaW92ZWMgKiwgdW5zaWduZWQgbG9uZywgbG9mZl90ICopOwogICAgICAgIHNzaXplX3Qg
KCpzZW5kcGFnZSkgKHN0cnVjdCBmaWxlICosIHN0cnVjdCBwYWdlICosIGludCwgc2l6ZV90LCBs
b2ZmX3QgKiwgaW50KTsKICAgICAgICB1bnNpZ25lZCBsb25nICgqZ2V0X3VubWFwcGVkX2FyZWFf
UnNtcF84YjNiNzkwZCkoc3RydWN0IGZpbGUgKiwgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9u
ZywgdW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7Cn07CgpzdHJ1Y3QgaW5vZGVfb3BlcmF0
aW9ucyB7CiAgICAgICAgaW50ICgqY3JlYXRlKSAoc3RydWN0IGlub2RlICosc3RydWN0IGRlbnRy
eSAqLGludCk7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqICgqbG9va3VwKSAoc3RydWN0IGlub2Rl
ICosc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICBpbnQgKCpsaW5rKSAoc3RydWN0IGRlbnRyeSAq
LHN0cnVjdCBpbm9kZSAqLHN0cnVjdCBkZW50cnkgKik7CiAgICAgICAgaW50ICgqdW5saW5rKSAo
c3RydWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICBpbnQgKCpzeW1saW5rKSAo
c3RydWN0IGlub2RlICosc3RydWN0IGRlbnRyeSAqLGNvbnN0IGNoYXIgKik7CiAgICAgICAgaW50
ICgqbWtkaXIpIChzdHJ1Y3QgaW5vZGUgKixzdHJ1Y3QgZGVudHJ5ICosaW50KTsKICAgICAgICBp
bnQgKCpybWRpcikgKHN0cnVjdCBpbm9kZSAqLHN0cnVjdCBkZW50cnkgKik7CiAgICAgICAgaW50
ICgqbWtub2QpIChzdHJ1Y3QgaW5vZGUgKixzdHJ1Y3QgZGVudHJ5ICosaW50LGludCk7CiAgICAg
ICAgaW50ICgqcmVuYW1lKSAoc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKiwKICAgICAg
ICAgICAgICAgICAgICAgICAgc3RydWN0IGlub2RlICosIHN0cnVjdCBkZW50cnkgKik7CiAgICAg
ICAgaW50ICgqcmVhZGxpbmspIChzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKixpbnQpOwogICAgICAg
IGludCAoKmZvbGxvd19saW5rKSAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgbmFtZWlkYXRhICop
OwogICAgICAgIHZvaWQgKCp0cnVuY2F0ZSkgKHN0cnVjdCBpbm9kZSAqKTsKICAgICAgICBpbnQg
KCpwZXJtaXNzaW9uX1JzbXBfOWIzNTQ0NTcpIChzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKICAgICAg
ICBpbnQgKCpyZXZhbGlkYXRlKSAoc3RydWN0IGRlbnRyeSAqKTsKICAgICAgICBpbnQgKCpzZXRh
dHRyKSAoc3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaWF0dHIgKik7CiAgICAgICAgaW50ICgqZ2V0
YXR0cikgKHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IGlhdHRyICopOwp9OwoKCgoKCnN0cnVjdCBz
dXBlcl9vcGVyYXRpb25zIHsKICAgICAgICB2b2lkICgqcmVhZF9pbm9kZSkgKHN0cnVjdCBpbm9k
ZSAqKTsKCgoKCgoKCiAgICAgICAgdm9pZCAoKnJlYWRfaW5vZGUyKSAoc3RydWN0IGlub2RlICos
IHZvaWQgKikgOwogICAgICAgIHZvaWQgKCpkaXJ0eV9pbm9kZSkgKHN0cnVjdCBpbm9kZSAqKTsK
ICAgICAgICB2b2lkICgqd3JpdGVfaW5vZGUpIChzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKICAgICAg
ICB2b2lkICgqcHV0X2lub2RlKSAoc3RydWN0IGlub2RlICopOwogICAgICAgIHZvaWQgKCpkZWxl
dGVfaW5vZGUpIChzdHJ1Y3QgaW5vZGUgKik7CiAgICAgICAgdm9pZCAoKnB1dF9zdXBlcikgKHN0
cnVjdCBzdXBlcl9ibG9jayAqKTsKICAgICAgICB2b2lkICgqd3JpdGVfc3VwZXIpIChzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKik7CiAgICAgICAgdm9pZCAoKndyaXRlX3N1cGVyX2xvY2tmcykgKHN0cnVj
dCBzdXBlcl9ibG9jayAqKTsKICAgICAgICB2b2lkICgqdW5sb2NrZnMpIChzdHJ1Y3Qgc3VwZXJf
YmxvY2sgKik7CiAgICAgICAgaW50ICgqc3RhdGZzKSAoc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0
cnVjdCBzdGF0ZnMgKik7CiAgICAgICAgaW50ICgqcmVtb3VudF9mcykgKHN0cnVjdCBzdXBlcl9i
bG9jayAqLCBpbnQgKiwgY2hhciAqKTsKICAgICAgICB2b2lkICgqY2xlYXJfaW5vZGVfUnNtcF8x
NWIxMmEzNykgKHN0cnVjdCBpbm9kZSAqKTsKICAgICAgICB2b2lkICgqdW1vdW50X2JlZ2luKSAo
c3RydWN0IHN1cGVyX2Jsb2NrICopOwojIDg3MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9mcy5oIgogICAgICAgIHN0cnVjdCBkZW50cnkgKiAoKmZoX3RvX2RlbnRyeSkoc3Ry
dWN0IHN1cGVyX2Jsb2NrICpzYiwgX191MzIgKmZoLCBpbnQgbGVuLCBpbnQgZmh0eXBlLCBpbnQg
cGFyZW50KTsKICAgICAgICBpbnQgKCpkZW50cnlfdG9fZmgpKHN0cnVjdCBkZW50cnkgKiwgX191
MzIgKmZoLCBpbnQgKmxlbnAsIGludCBuZWVkX3BhcmVudCk7Cn07CgoKI2RlZmluZSBJX0RJUlRZ
X1NZTkMgMQojZGVmaW5lIElfRElSVFlfREFUQVNZTkMgMgojZGVmaW5lIElfRElSVFlfUEFHRVMg
NAojZGVmaW5lIElfTE9DSyA4CiNkZWZpbmUgSV9GUkVFSU5HIDE2CiNkZWZpbmUgSV9DTEVBUiAz
MgoKI2RlZmluZSBJX0RJUlRZIChJX0RJUlRZX1NZTkMgfCBJX0RJUlRZX0RBVEFTWU5DIHwgSV9E
SVJUWV9QQUdFUykKCmV4dGVybiB2b2lkIF9fbWFya19pbm9kZV9kaXJ0eV9Sc21wX2ViMGYxNTVj
KHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpzdGF0aWMgaW5saW5lIHZvaWQgbWFya19pbm9kZV9kaXJ0
eShzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiAgICAgICAgX19tYXJrX2lub2RlX2RpcnR5X1JzbXBf
ZWIwZjE1NWMoaW5vZGUsICgxIHwgMiB8IDQpKTsKfQoKc3RhdGljIGlubGluZSB2b2lkIG1hcmtf
aW5vZGVfZGlydHlfc3luYyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiAgICAgICAgX19tYXJrX2lu
b2RlX2RpcnR5X1JzbXBfZWIwZjE1NWMoaW5vZGUsIDEpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQg
bWFya19pbm9kZV9kaXJ0eV9wYWdlcyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQp7CiAgICAgICAgX19t
YXJrX2lub2RlX2RpcnR5X1JzbXBfZWIwZjE1NWMoaW5vZGUsIDQpOwp9CgpzdHJ1Y3QgZHF1b3Rf
b3BlcmF0aW9ucyB7CiAgICAgICAgdm9pZCAoKmluaXRpYWxpemUpIChzdHJ1Y3QgaW5vZGUgKiwg
c2hvcnQpOwogICAgICAgIHZvaWQgKCpkcm9wKSAoc3RydWN0IGlub2RlICopOwogICAgICAgIGlu
dCAoKmFsbG9jX2Jsb2NrKSAoY29uc3Qgc3RydWN0IGlub2RlICosIHVuc2lnbmVkIGxvbmcsIGNo
YXIpOwogICAgICAgIGludCAoKmFsbG9jX2lub2RlKSAoY29uc3Qgc3RydWN0IGlub2RlICosIHVu
c2lnbmVkIGxvbmcpOwogICAgICAgIHZvaWQgKCpmcmVlX2Jsb2NrKSAoY29uc3Qgc3RydWN0IGlu
b2RlICosIHVuc2lnbmVkIGxvbmcpOwogICAgICAgIHZvaWQgKCpmcmVlX2lub2RlKSAoY29uc3Qg
c3RydWN0IGlub2RlICosIHVuc2lnbmVkIGxvbmcpOwogICAgICAgIGludCAoKnRyYW5zZmVyKSAo
c3RydWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaWF0dHIgKik7Cn07CgpzdHJ1Y3QgZmlsZV9zeXN0ZW1f
dHlwZSB7CiAgICAgICAgY29uc3QgY2hhciAqbmFtZTsKICAgICAgICBpbnQgZnNfZmxhZ3M7CiAg
ICAgICAgc3RydWN0IHN1cGVyX2Jsb2NrICooKnJlYWRfc3VwZXIpIChzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKiwgdm9pZCAqLCBpbnQpOwogICAgICAgIHN0cnVjdCBtb2R1bGUgKm93bmVyOwogICAgICAg
IHN0cnVjdCB2ZnNtb3VudCAqa2Vybl9tbnQ7CiAgICAgICAgc3RydWN0IGZpbGVfc3lzdGVtX3R5
cGUgKiBuZXh0Owp9OwoKI2RlZmluZSBERUNMQVJFX0ZTVFlQRSh2YXIsIHR5cGUsIHJlYWQsIGZs
YWdzKSBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB2YXIgPSB7IG5hbWU6IHR5cGUsIHJlYWRfc3Vw
ZXI6IHJlYWQsIGZzX2ZsYWdzOiBmbGFncywgb3duZXI6IFRISVNfTU9EVUxFLCB9CgoKCgoKCgoj
ZGVmaW5lIERFQ0xBUkVfRlNUWVBFX0RFVih2YXIsIHR5cGUsIHJlYWQpIERFQ0xBUkVfRlNUWVBF
KHZhcix0eXBlLHJlYWQsRlNfUkVRVUlSRVNfREVWKQoKCgojZGVmaW5lIGZvcHNfZ2V0KGZvcHMp
ICgoKGZvcHMpICYmIChmb3BzKS0+b3duZXIpID8gKCB0cnlfaW5jX21vZF9jb3VudCgoZm9wcykt
Pm93bmVyKSA/IChmb3BzKSA6IE5VTEwgKSA6IChmb3BzKSkKCgoKCiNkZWZpbmUgZm9wc19wdXQo
Zm9wcykgZG8geyBpZiAoKGZvcHMpICYmIChmb3BzKS0+b3duZXIpIF9fTU9EX0RFQ19VU0VfQ09V
TlQoKGZvcHMpLT5vd25lcik7IH0gd2hpbGUoMCkKCgoKCgpleHRlcm4gaW50IHJlZ2lzdGVyX2Zp
bGVzeXN0ZW1fUnNtcF81NmI2NjdmNChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqKTsKZXh0ZXJu
IGludCB1bnJlZ2lzdGVyX2ZpbGVzeXN0ZW1fUnNtcF8wYWIyMGEyNChzdHJ1Y3QgZmlsZV9zeXN0
ZW1fdHlwZSAqKTsKZXh0ZXJuIHN0cnVjdCB2ZnNtb3VudCAqa2Vybl9tb3VudF9Sc21wX2M0OTBh
MDY0KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICopOwpleHRlcm4gaW50IG1heV91bW91bnRfUnNt
cF9iMzc3M2YxZShzdHJ1Y3QgdmZzbW91bnQgKik7CmV4dGVybiBsb25nIGRvX21vdW50KGNoYXIg
KiwgY2hhciAqLCBjaGFyICosIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7CgojZGVmaW5lIGtlcm5f
dW1vdW50IG1udHB1dAoKZXh0ZXJuIGludCB2ZnNfc3RhdGZzX1JzbXBfN2EzMTBlMmUoc3RydWN0
IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBzdGF0ZnMgKik7CgoKCgojZGVmaW5lIExPQ0tfVVNFX0NM
TlQgMQoKI2RlZmluZSBGTE9DS19WRVJJRllfUkVBRCAxCiNkZWZpbmUgRkxPQ0tfVkVSSUZZX1dS
SVRFIDIKCmV4dGVybiBpbnQgbG9ja3NfbWFuZGF0b3J5X2xvY2tlZChzdHJ1Y3QgaW5vZGUgKik7
CmV4dGVybiBpbnQgbG9ja3NfbWFuZGF0b3J5X2FyZWFfUnNtcF83OWFiYjczMChpbnQsIHN0cnVj
dCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QsIHNpemVfdCk7CgoKCgoKI2RlZmluZSBN
QU5EQVRPUllfTE9DSyhpbm9kZSkgKElTX01BTkRMT0NLKGlub2RlKSAmJiAoKGlub2RlKS0+aV9t
b2RlICYgKFNfSVNHSUQgfCBTX0lYR1JQKSkgPT0gU19JU0dJRCkKCgpzdGF0aWMgaW5saW5lIGlu
dCBsb2Nrc192ZXJpZnlfbG9ja2VkKHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsKICAgICAgICBpZiAo
KCgoaW5vZGUpLT5pX3NiLT5zX2ZsYWdzICYgKDY0KSkgJiYgKChpbm9kZSktPmlfbW9kZSAmICgw
MDAyMDAwIHwgMDAwMTApKSA9PSAwMDAyMDAwKSkKICAgICAgICAgICAgICAgIHJldHVybiBsb2Nr
c19tYW5kYXRvcnlfbG9ja2VkKGlub2RlKTsKICAgICAgICByZXR1cm4gMDsKfQoKc3RhdGljIGlu
bGluZSBpbnQgbG9ja3NfdmVyaWZ5X2FyZWEoaW50IHJlYWRfd3JpdGUsIHN0cnVjdCBpbm9kZSAq
aW5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmaWxlICpm
aWxwLCBsb2ZmX3Qgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgY291bnQpCnsKICAgICAgICBpZiAoaW5vZGUtPmlfZmxvY2sgJiYgKCgoaW5vZGUpLT5p
X3NiLT5zX2ZsYWdzICYgKDY0KSkgJiYgKChpbm9kZSktPmlfbW9kZSAmICgwMDAyMDAwIHwgMDAw
MTApKSA9PSAwMDAyMDAwKSkKICAgICAgICAgICAgICAgIHJldHVybiBsb2Nrc19tYW5kYXRvcnlf
YXJlYV9Sc21wXzc5YWJiNzMwKHJlYWRfd3JpdGUsIGlub2RlLCBmaWxwLCBvZmZzZXQsIGNvdW50
KTsKICAgICAgICByZXR1cm4gMDsKfQoKc3RhdGljIGlubGluZSBpbnQgbG9ja3NfdmVyaWZ5X3Ry
dW5jYXRlKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cnVjdCBmaWxlICpmaWxwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsb2ZmX3Qgc2l6ZSkKewogICAgICAgIGlmIChpbm9kZS0+aV9mbG9jayAmJiAoKChpbm9k
ZSktPmlfc2ItPnNfZmxhZ3MgJiAoNjQpKSAmJiAoKGlub2RlKS0+aV9tb2RlICYgKDAwMDIwMDAg
fCAwMDAxMCkpID09IDAwMDIwMDApKQogICAgICAgICAgICAgICAgcmV0dXJuIGxvY2tzX21hbmRh
dG9yeV9hcmVhX1JzbXBfNzlhYmI3MzAoCiAgICAgICAgICAgICAgICAgICAgICAgIDIsIGlub2Rl
LCBmaWxwLAogICAgICAgICAgICAgICAgICAgICAgICBzaXplIDwgaW5vZGUtPmlfc2l6ZSA/IHNp
emUgOiBpbm9kZS0+aV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAoc2l6ZSA8IGlub2Rl
LT5pX3NpemUgPyBpbm9kZS0+aV9zaXplIC0gc2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAg
OiBzaXplIC0gaW5vZGUtPmlfc2l6ZSkKICAgICAgICAgICAgICAgICk7CiAgICAgICAgcmV0dXJu
IDA7Cn0KCmV4dGVybiBpbmxpbmUgaW50IGdldF9sZWFzZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB1
bnNpZ25lZCBpbnQgbW9kZSkKewogICAgICAgIGlmIChpbm9kZS0+aV9mbG9jayAmJiAoaW5vZGUt
PmlfZmxvY2stPmZsX2ZsYWdzICYgMzIpKQogICAgICAgICAgICAgICAgcmV0dXJuIF9fZ2V0X2xl
YXNlX1JzbXBfODExYzVhODkoaW5vZGUsIG1vZGUpOwogICAgICAgIHJldHVybiAwOwp9CgoKCiBf
X2F0dHJpYnV0ZV9fKChzeXNjYWxsX2xpbmthZ2UpKSBsb25nIHN5c19vcGVuKGNvbnN0IGNoYXIg
KiwgaW50LCBpbnQpOwogX19hdHRyaWJ1dGVfXygoc3lzY2FsbF9saW5rYWdlKSkgbG9uZyBzeXNf
Y2xvc2VfUnNtcF9kZTc2ZTdiYyh1bnNpZ25lZCBpbnQpOwpleHRlcm4gaW50IGRvX3RydW5jYXRl
KHN0cnVjdCBkZW50cnkgKiwgbG9mZl90IHN0YXJ0KTsKCmV4dGVybiBzdHJ1Y3QgZmlsZSAqZmls
cF9vcGVuX1JzbXBfZDc5MGRjYTQoY29uc3QgY2hhciAqLCBpbnQsIGludCk7CmV4dGVybiBzdHJ1
Y3QgZmlsZSAqIGRlbnRyeV9vcGVuX1JzbXBfOTY5ZWI4NDcoc3RydWN0IGRlbnRyeSAqLCBzdHJ1
Y3QgdmZzbW91bnQgKiwgaW50KTsKZXh0ZXJuIGludCBmaWxwX2Nsb3NlX1JzbXBfMTE5ZWJiY2Io
c3RydWN0IGZpbGUgKiwgZmxfb3duZXJfdCBpZCk7CmV4dGVybiBjaGFyICogZ2V0bmFtZV9Sc21w
XzdjNjBkNjZlKGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIHZvaWQgdmZzX2NhY2hlc19pbml0KHVu
c2lnbmVkIGxvbmcpOwoKI2RlZmluZSBfX2dldG5hbWUoKSBrbWVtX2NhY2hlX2FsbG9jKG5hbWVz
X2NhY2hlcCwgU0xBQl9LRVJORUwpCiNkZWZpbmUgcHV0bmFtZShuYW1lKSBrbWVtX2NhY2hlX2Zy
ZWUobmFtZXNfY2FjaGVwLCAodm9pZCAqKShuYW1lKSkKCmVudW0ge0JERVZfRklMRSwgQkRFVl9T
V0FQLCBCREVWX0ZTLCBCREVWX1JBV307CmV4dGVybiBpbnQgcmVnaXN0ZXJfYmxrZGV2X1JzbXBf
NWY5ZmI5ZTkodW5zaWduZWQgaW50LCBjb25zdCBjaGFyICosIHN0cnVjdCBibG9ja19kZXZpY2Vf
b3BlcmF0aW9ucyAqKTsKZXh0ZXJuIGludCB1bnJlZ2lzdGVyX2Jsa2Rldl9Sc21wX2VhYzFjNGFm
KHVuc2lnbmVkIGludCwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIHN0cnVjdCBibG9ja19kZXZpY2Ug
KmJkZ2V0X1JzbXBfOWYxMTA4NWEoZGV2X3QpOwpleHRlcm4gdm9pZCBiZHB1dF9Sc21wXzY5YTA3
YmNkKHN0cnVjdCBibG9ja19kZXZpY2UgKik7CmV4dGVybiBzdHJ1Y3QgY2hhcl9kZXZpY2UgKmNk
Z2V0X1JzbXBfZDY3Mzk1MDMoZGV2X3QpOwpleHRlcm4gdm9pZCBjZHB1dF9Sc21wX2VjNWQ1OGJk
KHN0cnVjdCBjaGFyX2RldmljZSAqKTsKZXh0ZXJuIGludCBibGtkZXZfb3Blbl9Sc21wXzdhZmMx
MDlmKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKZXh0ZXJuIHN0cnVjdCBmaWxlX29w
ZXJhdGlvbnMgZGVmX2Jsa19mb3BzX1JzbXBfNzRlYjRhNmE7CmV4dGVybiBzdHJ1Y3QgZmlsZV9v
cGVyYXRpb25zIGRlZl9maWZvX2ZvcHM7CmV4dGVybiBpbnQgaW9jdGxfYnlfYmRldl9Sc21wXzAz
NmMwOTk4KHN0cnVjdCBibG9ja19kZXZpY2UgKiwgdW5zaWduZWQsIHVuc2lnbmVkIGxvbmcpOwpl
eHRlcm4gaW50IGJsa2Rldl9nZXRfUnNtcF8yZDgyZjMzZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICos
IG1vZGVfdCwgdW5zaWduZWQsIGludCk7CmV4dGVybiBpbnQgYmxrZGV2X3B1dF9Sc21wXzRkOWZm
NTUxKHN0cnVjdCBibG9ja19kZXZpY2UgKiwgaW50KTsKCgpleHRlcm4gY29uc3Qgc3RydWN0IGJs
b2NrX2RldmljZV9vcGVyYXRpb25zICpnZXRfYmxrZm9wcyh1bnNpZ25lZCBpbnQpOwpleHRlcm4g
aW50IHJlZ2lzdGVyX2NocmRldl9Sc21wXzhlNzA5ZTMzKHVuc2lnbmVkIGludCwgY29uc3QgY2hh
ciAqLCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICopOwpleHRlcm4gaW50IHVucmVnaXN0ZXJfY2hy
ZGV2X1JzbXBfYzE5MmQ0OTEodW5zaWduZWQgaW50LCBjb25zdCBjaGFyICopOwpleHRlcm4gaW50
IGNocmRldl9vcGVuKHN0cnVjdCBpbm9kZSAqLCBzdHJ1Y3QgZmlsZSAqKTsKZXh0ZXJuIGNvbnN0
IGNoYXIgKiBiZGV2bmFtZV9Sc21wX2QwNDc4MmU2KGtkZXZfdCk7CmV4dGVybiBjb25zdCBjaGFy
ICogY2Rldm5hbWVfUnNtcF85NzU0NzQxZChrZGV2X3QpOwpleHRlcm4gY29uc3QgY2hhciAqIGtk
ZXZuYW1lX1JzbXBfYzI1OGM5MDYoa2Rldl90KTsKZXh0ZXJuIHZvaWQgaW5pdF9zcGVjaWFsX2lu
b2RlX1JzbXBfYjBkZTdlNDcoc3RydWN0IGlub2RlICosIHVtb2RlX3QsIGludCk7CgoKZXh0ZXJu
IHZvaWQgbWFrZV9iYWRfaW5vZGVfUnNtcF9kNjlkZDU4MihzdHJ1Y3QgaW5vZGUgKik7CmV4dGVy
biBpbnQgaXNfYmFkX2lub2RlX1JzbXBfZjQ4OGM0ZTEoc3RydWN0IGlub2RlICopOwoKZXh0ZXJu
IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcmVhZF9maWZvX2ZvcHM7CmV4dGVybiBzdHJ1Y3QgZmls
ZV9vcGVyYXRpb25zIHdyaXRlX2ZpZm9fZm9wczsKZXh0ZXJuIHN0cnVjdCBmaWxlX29wZXJhdGlv
bnMgcmR3cl9maWZvX2ZvcHM7CmV4dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJlYWRfcGlw
ZV9mb3BzOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB3cml0ZV9waXBlX2ZvcHM7CmV4
dGVybiBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJkd3JfcGlwZV9mb3BzOwoKZXh0ZXJuIGludCBm
c19tYXlfcmVtb3VudF9ybyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CgpleHRlcm4gaW50IHRyeV90
b19mcmVlX2J1ZmZlcnMoc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQgaW50KTsKZXh0ZXJuIHZvaWQg
cmVmaWxlX2J1ZmZlcl9Sc21wXzljYWE0OGJmKHN0cnVjdCBidWZmZXJfaGVhZCAqIGJ1Zik7CmV4
dGVybiB2b2lkIGVuZF9idWZmZXJfaW9fc3luYyhzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoLCBpbnQg
dXB0b2RhdGUpOwoKCmV4dGVybiB2b2lkIHNldF9idWZmZXJfYXN5bmNfaW9fUnNtcF8xMDQ3ZTg4
NShzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKSA7CgojZGVmaW5lIEJVRl9DTEVBTiAwCiNkZWZpbmUg
QlVGX0xPQ0tFRCAxCiNkZWZpbmUgQlVGX0RJUlRZIDIKI2RlZmluZSBCVUZfUFJPVEVDVEVEIDMK
I2RlZmluZSBOUl9MSVNUIDQKCnN0YXRpYyBpbmxpbmUgdm9pZCBnZXRfYmgoc3RydWN0IGJ1ZmZl
cl9oZWFkICogYmgpCnsKICAgICAgICAoKF9fYnVpbHRpbl9jb25zdGFudF9wKCgxKSkgJiYgKCAo
KDEpID09IDEpIHx8ICgoMSkgPT0gNCkgfHwgKCgxKSA9PSA4KSB8fCAoKDEpID09IDE2KSB8fCAo
KDEpID09IC0xKSB8fCAoKDEpID09IC00KSB8fCAoKDEpID09IC04KSB8fCAoKDEpID09IC0xNikp
KSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigmKCgoJihiaCktPmJfY291
bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCYoYmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKTsg
c3dpdGNoICgoMSkpIHsgY2FzZSAtMTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCYoYmgpLT5i
X2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi
ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl
dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikg
OiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2Fu
ZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCYo
YmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVf
XyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAi
aSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo
IiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIo
LTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRj
aF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYo
KCgmKGJoKS0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0
aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92
KSwgImkiKC00KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxl
X18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwg
ImkiKC00KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRf
ZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtMTogKHsgc3dpdGNoIChzaXplb2Yo
KigmKCgoJihiaCktPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192
b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy
IihfdiksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xh
dGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihf
diksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9p
YTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChzaXpl
b2YoKigmKCgoJihiaCktPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3Zv
bGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIi
KF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3Jf
aWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7IHN3aXRjaCAoc2l6
ZW9mKCooJigoKCYoYmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192
b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy
IihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9y
X2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSA4OiAoeyBzd2l0Y2ggKHNp
emVvZigqKCYoKCgmKGJoKS0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21f
XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp
IDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi
ciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv
cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTY6ICh7IHN3aXRjaCAo
c2l6ZW9mKCooJigoKCYoYmgpLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBkZWZhdWx0OiBfdG1wID0g
X19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgYnJlYWs7IH0gKF9fdHlw
ZW9mX18oKiYoKCgmKGJoKS0+Yl9jb3VudCkpKS0+Y291bnRlcikpIChfdG1wICsgKCgxKSkpOyB9
KSA6IGlhNjRfYXRvbWljX2FkZCgoMSksICgoJihiaCktPmJfY291bnQpKSkpOwp9CgpzdGF0aWMg
aW5saW5lIHZvaWQgcHV0X2JoKHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCnsKICAgICAgICBfX2Fz
bV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9yeSIpOwogICAgICAgICgoX19idWlsdGluX2Nv
bnN0YW50X3AoKDEpKSAmJiAoICgoMSkgPT0gMSkgfHwgKCgxKSA9PSA0KSB8fCAoKDEpID09IDgp
IHx8ICgoMSkgPT0gMTYpIHx8ICgoMSkgPT0gLTEpIHx8ICgoMSkgPT0gLTQpIHx8ICgoMSkgPT0g
LTgpIHx8ICgoMSkgPT0gLTE2KSkpID8gKHsgX191NjQgX3RtcDsgdm9sYXRpbGUgX190eXBlb2Zf
XygqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCZiaC0+Yl9jb3Vu
dCkpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgoMSkpKSB7IGNhc2UgLTE2OiAoeyBzd2l0Y2ggKHNp
emVvZigqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAi
ciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf
Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgoJmJoLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC00OiAoeyBzd2l0
Y2ggKHNpemVvZigqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIigtNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTE6ICh7IHN3
aXRjaCAoc2l6ZW9mKCooJigoKCZiaC0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90
bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxOiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1y
IihfdG1wKSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90
bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf
c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7IHN3
aXRjaCAoc2l6ZW9mKCooJigoKCZiaC0+Yl9jb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgODogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgoJmJoLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo
X3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3Np
emVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxNjogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgoJmJoLT5iX2NvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo
X3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf
c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBkZWZhdWx0OiBfdG1w
ID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgYnJlYWs7IH0gKF9f
dHlwZW9mX18oKiYoKCgmYmgtPmJfY291bnQpKSktPmNvdW50ZXIpKSAoX3RtcCArICgtKCgxKSkp
KTsgfSkgOiBpYTY0X2F0b21pY19zdWIoKDEpLCAoKCZiaC0+Yl9jb3VudCkpKSk7Cn0KCgoKCnN0
YXRpYyBpbmxpbmUgdm9pZCBtYXJrX2J1ZmZlcl91cHRvZGF0ZShzdHJ1Y3QgYnVmZmVyX2hlYWQg
KiBiaCwgaW50IG9uKQp7CiAgICAgICAgaWYgKG9uKQogICAgICAgICAgICAgICAgc2V0X2JpdChC
SF9VcHRvZGF0ZSwgJmJoLT5iX3N0YXRlKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBj
bGVhcl9iaXQoQkhfVXB0b2RhdGUsICZiaC0+Yl9zdGF0ZSk7Cn0KCiNkZWZpbmUgYXRvbWljX3Nl
dF9idWZmZXJfY2xlYW4oYmgpIHRlc3RfYW5kX2NsZWFyX2JpdChCSF9EaXJ0eSwgJihiaCktPmJf
c3RhdGUpCgpzdGF0aWMgaW5saW5lIHZvaWQgX19tYXJrX2J1ZmZlcl9jbGVhbihzdHJ1Y3QgYnVm
ZmVyX2hlYWQgKmJoKQp7CiAgICAgICAgcmVmaWxlX2J1ZmZlcl9Sc21wXzljYWE0OGJmKGJoKTsK
fQoKc3RhdGljIGlubGluZSB2b2lkIG1hcmtfYnVmZmVyX2NsZWFuKHN0cnVjdCBidWZmZXJfaGVh
ZCAqIGJoKQp7CiAgICAgICAgaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChCSF9EaXJ0eSwgJihiaCkt
PmJfc3RhdGUpKQogICAgICAgICAgICAgICAgX19tYXJrX2J1ZmZlcl9jbGVhbihiaCk7Cn0KCiNk
ZWZpbmUgYXRvbWljX3NldF9idWZmZXJfcHJvdGVjdGVkKGJoKSB0ZXN0X2FuZF9zZXRfYml0KEJI
X1Byb3RlY3RlZCwgJihiaCktPmJfc3RhdGUpCgpzdGF0aWMgaW5saW5lIHZvaWQgX19tYXJrX2J1
ZmZlcl9wcm90ZWN0ZWQoc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCkKewogICAgICAgIHJlZmlsZV9i
dWZmZXJfUnNtcF85Y2FhNDhiZihiaCk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBtYXJrX2J1ZmZl
cl9wcm90ZWN0ZWQoc3RydWN0IGJ1ZmZlcl9oZWFkICogYmgpCnsKICAgICAgICBpZiAoIXRlc3Rf
YW5kX3NldF9iaXQoQkhfUHJvdGVjdGVkLCAmKGJoKS0+Yl9zdGF0ZSkpCiAgICAgICAgICAgICAg
ICBfX21hcmtfYnVmZmVyX3Byb3RlY3RlZChiaCk7Cn0KCmV4dGVybiB2b2lkIF9fbWFya19idWZm
ZXJfZGlydHlfUnNtcF9jMWEzZjRhYihzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoKTsKZXh0ZXJuIHZv
aWQgbWFya19idWZmZXJfZGlydHlfUnNtcF8zMzU3YmViYyhzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJo
KTsKCiNkZWZpbmUgYXRvbWljX3NldF9idWZmZXJfZGlydHkoYmgpIHRlc3RfYW5kX3NldF9iaXQo
QkhfRGlydHksICYoYmgpLT5iX3N0YXRlKQoKCgoKCgoKc3RhdGljIGlubGluZSB2b2lkIGJ1ZmZl
cl9JT19lcnJvcihzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBiaCkKewogICAgICAgIG1hcmtfYnVmZmVy
X2NsZWFuKGJoKTsKCgoKICAgICAgICBiaC0+Yl9lbmRfaW8oYmgsIDApOwp9CgpleHRlcm4gdm9p
ZCBidWZmZXJfaW5zZXJ0X2lub2RlX3F1ZXVlX1JzbXBfODljMmE1Nzcoc3RydWN0IGJ1ZmZlcl9o
ZWFkICosIHN0cnVjdCBpbm9kZSAqKTsKc3RhdGljIGlubGluZSB2b2lkIG1hcmtfYnVmZmVyX2Rp
cnR5X2lub2RlKHN0cnVjdCBidWZmZXJfaGVhZCAqYmgsIHN0cnVjdCBpbm9kZSAqaW5vZGUpCnsK
ICAgICAgICBtYXJrX2J1ZmZlcl9kaXJ0eV9Sc21wXzMzNTdiZWJjKGJoKTsKICAgICAgICBidWZm
ZXJfaW5zZXJ0X2lub2RlX3F1ZXVlX1JzbXBfODljMmE1NzcoYmgsIGlub2RlKTsKfQoKZXh0ZXJu
IHZvaWQgYmFsYW5jZV9kaXJ0eShrZGV2X3QpOwpleHRlcm4gaW50IGNoZWNrX2Rpc2tfY2hhbmdl
X1JzbXBfMTFkNDA3NmQoa2Rldl90KTsKZXh0ZXJuIGludCBpbnZhbGlkYXRlX2lub2Rlc19Sc21w
X2QxZjY2ZTkyKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJuIGludCBpbnZhbGlkYXRlX2Rl
dmljZV9Sc21wXzI1YTRiMGIyKGtkZXZfdCwgaW50KTsKZXh0ZXJuIHZvaWQgaW52YWxpZGF0ZV9p
bm9kZV9wYWdlc19Sc21wXzRjZjUxYzAzKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgaW52
YWxpZGF0ZV9pbm9kZV9idWZmZXJzKHN0cnVjdCBpbm9kZSAqKTsKI2RlZmluZSBpbnZhbGlkYXRl
X2J1ZmZlcnMoZGV2KSBfX2ludmFsaWRhdGVfYnVmZmVycygoZGV2KSwgMCkKI2RlZmluZSBkZXN0
cm95X2J1ZmZlcnMoZGV2KSBfX2ludmFsaWRhdGVfYnVmZmVycygoZGV2KSwgMSkKZXh0ZXJuIHZv
aWQgX19pbnZhbGlkYXRlX2J1ZmZlcnNfUnNtcF85OGY1MTUzOChrZGV2X3QgZGV2LCBpbnQpOwpl
eHRlcm4gdm9pZCBzeW5jX2lub2RlcyhrZGV2X3QpOwpleHRlcm4gdm9pZCBzeW5jX3VubG9ja2Vk
X2lub2Rlcyh2b2lkKTsKZXh0ZXJuIHZvaWQgd3JpdGVfaW5vZGVfbm93X1JzbXBfZWY0Y2RiY2Mo
c3RydWN0IGlub2RlICosIGludCk7CmV4dGVybiB2b2lkIHN5bmNfZGV2X1JzbXBfZmMwYjBmNDko
a2Rldl90KTsKZXh0ZXJuIGludCBmc3luY19kZXZfUnNtcF84ZWExMjhlMihrZGV2X3QpOwpleHRl
cm4gaW50IGZzeW5jX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJuIHZvaWQgc3lu
Y19pbm9kZXNfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICopOwpleHRlcm4gaW50IGZzeW5jX2lub2Rl
X2J1ZmZlcnNfUnNtcF8zZjFkZWMzYihzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbnQgb3N5bmNf
aW5vZGVfYnVmZmVycyhzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbnQgaW5vZGVfaGFzX2J1ZmZl
cnMoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCBmaWxlbWFwX2ZkYXRhc3luY19Sc21wXzM1
YWI4ZTA0KHN0cnVjdCBhZGRyZXNzX3NwYWNlICopOwpleHRlcm4gdm9pZCBmaWxlbWFwX2ZkYXRh
d2FpdF9Sc21wX2Q2NGRkZjMzKHN0cnVjdCBhZGRyZXNzX3NwYWNlICopOwpleHRlcm4gdm9pZCBz
eW5jX3N1cGVycyhrZGV2X3QpOwpleHRlcm4gaW50IGJtYXBfUnNtcF8xNGVkNmJkZihzdHJ1Y3Qg
aW5vZGUgKiwgaW50KTsKZXh0ZXJuIGludCBub3RpZnlfY2hhbmdlX1JzbXBfYmI5Nzg2Njgoc3Ry
dWN0IGRlbnRyeSAqLCBzdHJ1Y3QgaWF0dHIgKik7CmV4dGVybiBpbnQgcGVybWlzc2lvbl9Sc21w
XzliMzU0NDU3KHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gaW50IHZmc19wZXJtaXNzaW9u
X1JzbXBfNTcwMzk5ZGYoc3RydWN0IGlub2RlICosIGludCk7CmV4dGVybiBpbnQgZ2V0X3dyaXRl
X2FjY2Vzc19Sc21wXzc3N2JjZjc5KHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIGludCBkZW55X3dy
aXRlX2FjY2VzcyhzdHJ1Y3QgZmlsZSAqKTsKc3RhdGljIGlubGluZSB2b2lkIHB1dF93cml0ZV9h
Y2Nlc3Moc3RydWN0IGlub2RlICogaW5vZGUpCnsKICAgICAgICAoKF9fYnVpbHRpbl9jb25zdGFu
dF9wKCgxKSkgJiYgKCAoKDEpID09IDEpIHx8ICgoMSkgPT0gNCkgfHwgKCgxKSA9PSA4KSB8fCAo
KDEpID09IDE2KSB8fCAoKDEpID09IC0xKSB8fCAoKDEpID09IC00KSB8fCAoKDEpID09IC04KSB8
fCAoKDEpID09IC0xNikpKSA/ICh7IF9fdTY0IF90bXA7IHZvbGF0aWxlIF9fdHlwZW9mX18oKigm
KCgoJmlub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSAqX3YgPSAoJigoKCZpbm9kZS0+
aV93cml0ZWNvdW50KSkpLT5jb3VudGVyKTsgc3dpdGNoICgtKCgxKSkpIHsgY2FzZSAtMTY6ICh7
IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3VudGVyKSkp
IHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFd
LCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7
IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwl
MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC0xNikgOiAibWVtb3J5Iik7IGJyZWFrOyBk
ZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7
IGNhc2UgLTg6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkp
LT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0
LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9y
eSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJl
bCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTgpIDogIm1lbW9yeSIp
OyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0g
fSk7IGJyZWFrOyBjYXNlIC00OiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmaW5vZGUtPmlfd3Jp
dGVjb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIi
ImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00
KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl
dGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKC00KSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5k
X2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtMTogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmlu
b2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xh
dGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihf
diksICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGls
ZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiks
ICJpIigtMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0
X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgMTogKHsgc3dpdGNoIChzaXplb2Yo
KigmKCgoJmlub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIigxKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21fXyBf
X3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDog
InIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9m
b3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDQ6ICh7IHN3aXRjaCAo
c2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0
OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9
ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoNCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSA4OiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCgmaW5vZGUtPmlfd3JpdGVjb3VudCkpKS0+Y291bnRlcikpKSB7
IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwl
MiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDgpIDogIm1lbW9yeSIpOyBicmVhazsgY2Fz
ZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6
ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0
OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2Ug
MTY6ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZpbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3Vu
dGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAl
MD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBi
cmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1b
JTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMTYpIDogIm1lbW9yeSIpOyBicmVh
azsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJy
ZWFrOyBkZWZhdWx0OiBfdG1wID0gX19iYWRfaW5jcmVtZW50X2Zvcl9pYTY0X2ZldGNoX2FuZF9h
ZGQoKTsgYnJlYWs7IH0gKF9fdHlwZW9mX18oKiYoKCgmaW5vZGUtPmlfd3JpdGVjb3VudCkpKS0+
Y291bnRlcikpIChfdG1wICsgKC0oKDEpKSkpOyB9KSA6IGlhNjRfYXRvbWljX3N1YigoMSksICgo
Jmlub2RlLT5pX3dyaXRlY291bnQpKSkpOwp9CnN0YXRpYyBpbmxpbmUgdm9pZCBhbGxvd193cml0
ZV9hY2Nlc3Moc3RydWN0IGZpbGUgKmZpbGUpCnsKICAgICAgICBpZiAoZmlsZSkKICAgICAgICAg
ICAgICAgICgoX19idWlsdGluX2NvbnN0YW50X3AoKDEpKSAmJiAoICgoMSkgPT0gMSkgfHwgKCgx
KSA9PSA0KSB8fCAoKDEpID09IDgpIHx8ICgoMSkgPT0gMTYpIHx8ICgoMSkgPT0gLTEpIHx8ICgo
MSkgPT0gLTQpIHx8ICgoMSkgPT0gLTgpIHx8ICgoMSkgPT0gLTE2KSkpID8gKHsgX191NjQgX3Rt
cDsgdm9sYXRpbGUgX190eXBlb2ZfXygqKCYoKCgmZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlf
d3JpdGVjb3VudCkpKS0+Y291bnRlcikpICpfdiA9ICgmKCgoJmZpbGUtPmZfZGVudHJ5LT5kX2lu
b2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpOyBzd2l0Y2ggKCgxKSkgeyBjYXNlIC0xNjog
KHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZpbGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3dyaXRl
Y291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJm
ZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIigtMTYp
IDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0
Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTE2KSA6
ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5k
X2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZp
bGUtPmZfZGVudHJ5LT5kX2lub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNl
IDQ6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDog
Ij1yIihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6
IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1y
IihfdG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBf
X2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6
ICh7IHN3aXRjaCAoc2l6ZW9mKCooJigoKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV93cml0
ZWNvdW50KSkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIi
ZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQp
IDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0
Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDog
Im1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRf
YWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0xOiAoeyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmZmls
ZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfd3JpdGVjb3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2Ug
NDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAi
PXIiKF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9f
YmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxOiAo
eyBzd2l0Y2ggKHNpemVvZigqKCYoKCgmZmlsZS0+Zl9kZW50cnktPmRfaW5vZGUtPmlfd3JpdGVj
b3VudCkpKS0+Y291bnRlcikpKSB7IGNhc2UgNDogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZl
dGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXApIDogInIiKF92KSwgImkiKDEpIDog
Im1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hh
ZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVt
b3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQo
KTsgfSB9KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZpbGUtPmZf
ZGVudHJ5LT5kX2lub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21f
XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp
IDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRj
aCAoc2l6ZW9mKCooJigoKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV93cml0ZWNvdW50KSkp
LT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0
LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5
Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVs
ICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsg
YnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0p
OyBicmVhazsgY2FzZSAxNjogKHsgc3dpdGNoIChzaXplb2YoKigmKCgoJmZpbGUtPmZfZGVudHJ5
LT5kX2lub2RlLT5pX3dyaXRlY291bnQpKSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18gX192
b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6ICJy
IihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXplX2Zv
cl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGRlZmF1bHQ6IF90bXAgPSBfX2Jh
ZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVhazsgfSAoX190eXBlb2Zf
XygqJigoKCZmaWxlLT5mX2RlbnRyeS0+ZF9pbm9kZS0+aV93cml0ZWNvdW50KSkpLT5jb3VudGVy
KSkgKF90bXAgKyAoKDEpKSk7IH0pIDogaWE2NF9hdG9taWNfYWRkKCgxKSwgKCgmZmlsZS0+Zl9k
ZW50cnktPmRfaW5vZGUtPmlfd3JpdGVjb3VudCkpKSk7Cn0KZXh0ZXJuIGludCBkb19waXBlKGlu
dCAqKTsKCmV4dGVybiBpbnQgb3Blbl9uYW1laShjb25zdCBjaGFyICosIGludCwgaW50LCBzdHJ1
Y3QgbmFtZWlkYXRhICopOwoKZXh0ZXJuIGludCBrZXJuZWxfcmVhZF9Sc21wX2Q5ZjM2NWVmKHN0
cnVjdCBmaWxlICosIHVuc2lnbmVkIGxvbmcsIGNoYXIgKiwgdW5zaWduZWQgbG9uZyk7CmV4dGVy
biBzdHJ1Y3QgZmlsZSAqIG9wZW5fZXhlY19Sc21wX2M1ODkyNDYxKGNvbnN0IGNoYXIgKik7CgoK
ZXh0ZXJuIGludCBpc19zdWJkaXJfUnNtcF8wYThjZDkwNChzdHJ1Y3QgZGVudHJ5ICosIHN0cnVj
dCBkZW50cnkgKik7CmV4dGVybiBpbm9fdCBmaW5kX2lub2RlX251bWJlcl9Sc21wX2Y1ZTRlZDQw
KHN0cnVjdCBkZW50cnkgKiwgc3RydWN0IHFzdHIgKik7CiMgMTIwNSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIgpzdGF0aWMgaW5saW5lIHZvaWQgKkVSUl9QVFIobG9u
ZyBlcnJvcikKewogICAgICAgIHJldHVybiAodm9pZCAqKSBlcnJvcjsKfQoKc3RhdGljIGlubGlu
ZSBsb25nIFBUUl9FUlIoY29uc3Qgdm9pZCAqcHRyKQp7CiAgICAgICAgcmV0dXJuIChsb25nKSBw
dHI7Cn0KCnN0YXRpYyBpbmxpbmUgbG9uZyBJU19FUlIoY29uc3Qgdm9pZCAqcHRyKQp7CiAgICAg
ICAgcmV0dXJuICh1bnNpZ25lZCBsb25nKXB0ciA+ICh1bnNpZ25lZCBsb25nKS0xMDAwTDsKfQoj
IDEyMjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIKI2RlZmluZSBM
T09LVVBfRk9MTE9XICgxKQojZGVmaW5lIExPT0tVUF9ESVJFQ1RPUlkgKDIpCiNkZWZpbmUgTE9P
S1VQX0NPTlRJTlVFICg0KQojZGVmaW5lIExPT0tVUF9QT1NJVElWRSAoOCkKI2RlZmluZSBMT09L
VVBfUEFSRU5UICgxNikKI2RlZmluZSBMT09LVVBfTk9BTFQgKDMyKQoKCgplbnVtIHtMQVNUX05P
Uk0sIExBU1RfUk9PVCwgTEFTVF9ET1QsIExBU1RfRE9URE9ULCBMQVNUX0JJTkR9OwojIDEyNDcg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIKdHlwZWRlZiBzdHJ1Y3Qg
ewogICAgICAgIHNpemVfdCB3cml0dGVuOwogICAgICAgIHNpemVfdCBjb3VudDsKICAgICAgICBj
aGFyICogYnVmOwogICAgICAgIGludCBlcnJvcjsKfSByZWFkX2Rlc2NyaXB0b3JfdDsKCnR5cGVk
ZWYgaW50ICgqcmVhZF9hY3Rvcl90KShyZWFkX2Rlc2NyaXB0b3JfdCAqLCBzdHJ1Y3QgcGFnZSAq
LCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKCgpleHRlcm4gbG9mZl90IGRlZmF1bHRf
bGxzZWVrX1JzbXBfZDJiYTIwNGIoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGlu
dCBvcmlnaW4pOwoKZXh0ZXJuIGludCBfX3VzZXJfd2Fsa19Sc21wX2IzZDQxNzE0KGNvbnN0IGNo
YXIgKiwgdW5zaWduZWQsIHN0cnVjdCBuYW1laWRhdGEgKik7CmV4dGVybiBpbnQgcGF0aF9pbml0
X1JzbXBfMDU0OWM0NmIoY29uc3QgY2hhciAqLCB1bnNpZ25lZCwgc3RydWN0IG5hbWVpZGF0YSAq
KTsKZXh0ZXJuIGludCBwYXRoX3dhbGtfUnNtcF9kMGFhOTViZShjb25zdCBjaGFyICosIHN0cnVj
dCBuYW1laWRhdGEgKik7CmV4dGVybiB2b2lkIHBhdGhfcmVsZWFzZV9Sc21wXzJjMTQ4M2FjKHN0
cnVjdCBuYW1laWRhdGEgKik7CmV4dGVybiBpbnQgZm9sbG93X2Rvd25fUnNtcF81YWUwM2U0Nihz
dHJ1Y3QgdmZzbW91bnQgKiosIHN0cnVjdCBkZW50cnkgKiopOwpleHRlcm4gaW50IGZvbGxvd191
cF9Sc21wX2FkZTNhN2EyKHN0cnVjdCB2ZnNtb3VudCAqKiwgc3RydWN0IGRlbnRyeSAqKik7CmV4
dGVybiBzdHJ1Y3QgZGVudHJ5ICogbG9va3VwX29uZV9sZW5fUnNtcF9hMDA1ZDJkZChjb25zdCBj
aGFyICosIHN0cnVjdCBkZW50cnkgKiwgaW50KTsKZXh0ZXJuIHN0cnVjdCBkZW50cnkgKiBsb29r
dXBfaGFzaF9Sc21wX2U0MGM4NWFmKHN0cnVjdCBxc3RyICosIHN0cnVjdCBkZW50cnkgKik7CiNk
ZWZpbmUgdXNlcl9wYXRoX3dhbGsobmFtZSwgbmQpIF9fdXNlcl93YWxrKG5hbWUsIExPT0tVUF9G
T0xMT1d8TE9PS1VQX1BPU0lUSVZFLCBuZCkKI2RlZmluZSB1c2VyX3BhdGhfd2Fsa19saW5rKG5h
bWUsIG5kKSBfX3VzZXJfd2FsayhuYW1lLCBMT09LVVBfUE9TSVRJVkUsIG5kKQoKZXh0ZXJuIHZv
aWQgaXB1dF9Sc21wXzVlZGJhNjJkKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgZm9yY2Vf
ZGVsZXRlX1JzbXBfYzVlMWExNTQoc3RydWN0IGlub2RlICopOwpleHRlcm4gc3RydWN0IGlub2Rl
ICogaWdyYWJfUnNtcF8yZDQzZTRhMyhzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiBpbm9fdCBpdW5p
cXVlX1JzbXBfMmRmN2UyMWIoc3RydWN0IHN1cGVyX2Jsb2NrICosIGlub190KTsKCnR5cGVkZWYg
aW50ICgqZmluZF9pbm9kZV90KShzdHJ1Y3QgaW5vZGUgKiwgdW5zaWduZWQgbG9uZywgdm9pZCAq
KTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAqIGlnZXQ0X1JzbXBfMTExY2M4YTEoc3RydWN0IHN1cGVy
X2Jsb2NrICosIHVuc2lnbmVkIGxvbmcsIGZpbmRfaW5vZGVfdCwgdm9pZCAqKTsKc3RhdGljIGlu
bGluZSBzdHJ1Y3QgaW5vZGUgKmlnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQg
bG9uZyBpbm8pCnsKICAgICAgICByZXR1cm4gaWdldDRfUnNtcF8xMTFjYzhhMShzYiwgaW5vLCAo
KHZvaWQgKikwKSwgKCh2b2lkICopMCkpOwp9CgpleHRlcm4gdm9pZCBjbGVhcl9pbm9kZV9Sc21w
XzE1YjEyYTM3KHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHN0cnVjdCBpbm9kZSAqIGdldF9lbXB0
eV9pbm9kZV9Sc21wXzJiOWE3ZGVkKHZvaWQpOwpzdGF0aWMgaW5saW5lIHN0cnVjdCBpbm9kZSAq
IG5ld19pbm9kZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7CiAgICAgICAgc3RydWN0IGlub2Rl
ICppbm9kZSA9IGdldF9lbXB0eV9pbm9kZV9Sc21wXzJiOWE3ZGVkKCk7CiAgICAgICAgaWYgKGlu
b2RlKSB7CiAgICAgICAgICAgICAgICBpbm9kZS0+aV9zYiA9IHNiOwogICAgICAgICAgICAgICAg
aW5vZGUtPmlfZGV2ID0gc2ItPnNfZGV2OwogICAgICAgIH0KICAgICAgICByZXR1cm4gaW5vZGU7
Cn0KZXh0ZXJuIHZvaWQgcmVtb3ZlX3N1aWQoc3RydWN0IGlub2RlICppbm9kZSk7CgpleHRlcm4g
dm9pZCBpbnNlcnRfaW5vZGVfaGFzaF9Sc21wXzVjNjRiMWY4KHN0cnVjdCBpbm9kZSAqKTsKZXh0
ZXJuIHZvaWQgcmVtb3ZlX2lub2RlX2hhc2hfUnNtcF9mYjgyNGUxMShzdHJ1Y3QgaW5vZGUgKik7
CmV4dGVybiBzdHJ1Y3QgZmlsZSAqIGdldF9lbXB0eV9maWxwX1JzbXBfMTkzMjVkODIodm9pZCk7
CmV4dGVybiB2b2lkIGZpbGVfbW92ZShzdHJ1Y3QgZmlsZSAqZiwgc3RydWN0IGxpc3RfaGVhZCAq
bGlzdCk7CmV4dGVybiB2b2lkIGZpbGVfbW92ZXRvX1JzbXBfYzgzYTRkYWMoc3RydWN0IGZpbGUg
Km5ldywgc3RydWN0IGZpbGUgKm9sZCk7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBnZXRf
aGFzaF90YWJsZV9Sc21wXzNhZTM2ZmVhKGtkZXZfdCwgaW50LCBpbnQpOwpleHRlcm4gc3RydWN0
IGJ1ZmZlcl9oZWFkICogZ2V0YmxrX1JzbXBfNDlhMWEzNTIoa2Rldl90LCBpbnQsIGludCk7CmV4
dGVybiB2b2lkIGxsX3J3X2Jsb2NrX1JzbXBfNGMyNWU5NWIoaW50LCBpbnQsIHN0cnVjdCBidWZm
ZXJfaGVhZCAqIGJoW10pOwpleHRlcm4gdm9pZCBzdWJtaXRfYmhfUnNtcF9lZmExNzQ4MShpbnQs
IHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKZXh0ZXJuIGludCBpc19yZWFkX29ubHlfUnNtcF83NDAy
NzRjYShrZGV2X3QpOwpleHRlcm4gdm9pZCBfX2JyZWxzZV9Sc21wXzg2NThlN2ZmKHN0cnVjdCBi
dWZmZXJfaGVhZCAqKTsKc3RhdGljIGlubGluZSB2b2lkIGJyZWxzZShzdHJ1Y3QgYnVmZmVyX2hl
YWQgKmJ1ZikKewogICAgICAgIGlmIChidWYpCiAgICAgICAgICAgICAgICBfX2JyZWxzZV9Sc21w
Xzg2NThlN2ZmKGJ1Zik7Cn0KZXh0ZXJuIHZvaWQgX19iZm9yZ2V0X1JzbXBfNmUwNTJiODcoc3Ry
dWN0IGJ1ZmZlcl9oZWFkICopOwpzdGF0aWMgaW5saW5lIHZvaWQgYmZvcmdldChzdHJ1Y3QgYnVm
ZmVyX2hlYWQgKmJ1ZikKewogICAgICAgIGlmIChidWYpCiAgICAgICAgICAgICAgICBfX2Jmb3Jn
ZXRfUnNtcF82ZTA1MmI4NyhidWYpOwp9CmV4dGVybiB2b2lkIHNldF9ibG9ja3NpemVfUnNtcF9h
ODQyNzIyYShrZGV2X3QsIGludCk7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiBicmVhZF9S
c21wXzA5OWE5OTgzKGtkZXZfdCwgaW50LCBpbnQpOwpleHRlcm4gdm9pZCB3YWtldXBfYmRmbHVz
aChpbnQgd2FpdCk7CgpleHRlcm4gaW50IGJyd19wYWdlX1JzbXBfMjBkYzYzNWMoaW50LCBzdHJ1
Y3QgcGFnZSAqLCBrZGV2X3QsIGludCBbXSwgaW50KTsKCnR5cGVkZWYgaW50IChnZXRfYmxvY2tf
dCkoc3RydWN0IGlub2RlKixsb25nLHN0cnVjdCBidWZmZXJfaGVhZCosaW50KTsKCgpleHRlcm4g
aW50IGJsb2NrX2ZsdXNocGFnZShzdHJ1Y3QgcGFnZSAqLCB1bnNpZ25lZCBsb25nKTsKZXh0ZXJu
IGludCBibG9ja19zeW1saW5rX1JzbXBfNDY1MzY5OTIoc3RydWN0IGlub2RlICosIGNvbnN0IGNo
YXIgKiwgaW50KTsKZXh0ZXJuIGludCBibG9ja193cml0ZV9mdWxsX3BhZ2VfUnNtcF83M2RjNTU2
ZihzdHJ1Y3QgcGFnZSosIGdldF9ibG9ja190Kik7CmV4dGVybiBpbnQgYmxvY2tfcmVhZF9mdWxs
X3BhZ2VfUnNtcF9kMGI0ZDJkMShzdHJ1Y3QgcGFnZSosIGdldF9ibG9ja190Kik7CmV4dGVybiBp
bnQgYmxvY2tfcHJlcGFyZV93cml0ZV9Sc21wX2RkNTdiZjZkKHN0cnVjdCBwYWdlKiwgdW5zaWdu
ZWQsIHVuc2lnbmVkLCBnZXRfYmxvY2tfdCopOwpleHRlcm4gaW50IGNvbnRfcHJlcGFyZV93cml0
ZV9Sc21wXzMzZGJiYjBhKHN0cnVjdCBwYWdlKiwgdW5zaWduZWQsIHVuc2lnbmVkLCBnZXRfYmxv
Y2tfdCosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyAqKTsK
ZXh0ZXJuIGludCBibG9ja19zeW5jX3BhZ2VfUnNtcF84YTI1ZjI5NihzdHJ1Y3QgcGFnZSAqKTsK
CmludCBnZW5lcmljX2Jsb2NrX2JtYXBfUnNtcF8wMTlhZGQ5YyhzdHJ1Y3QgYWRkcmVzc19zcGFj
ZSAqLCBsb25nLCBnZXRfYmxvY2tfdCAqKTsKaW50IGdlbmVyaWNfY29tbWl0X3dyaXRlX1JzbXBf
Mzc3MzZjOTEoc3RydWN0IGZpbGUgKiwgc3RydWN0IHBhZ2UgKiwgdW5zaWduZWQsIHVuc2lnbmVk
KTsKaW50IGJsb2NrX3RydW5jYXRlX3BhZ2VfUnNtcF85ZmM1Y2M0NChzdHJ1Y3QgYWRkcmVzc19z
cGFjZSAqLCBsb2ZmX3QsIGdldF9ibG9ja190ICopOwoKZXh0ZXJuIGludCB3YWl0Zm9yX29uZV9w
YWdlX1JzbXBfOGVmNmMzNTkoc3RydWN0IHBhZ2UqKTsKZXh0ZXJuIGludCBnZW5lcmljX2ZpbGVf
bW1hcF9Sc21wX2I2NzkxMWM5KHN0cnVjdCBmaWxlICosIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq
KTsKZXh0ZXJuIGludCBmaWxlX3JlYWRfYWN0b3IocmVhZF9kZXNjcmlwdG9yX3QgKiBkZXNjLCBz
dHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2lnbmVkIGxvbmcgc2l6
ZSk7CmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfZmlsZV9yZWFkX1JzbXBfMTFjODdlZmYoc3RydWN0
IGZpbGUgKiwgY2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHNzaXplX3QgZ2VuZXJp
Y19maWxlX3dyaXRlX1JzbXBfZmIxNzg2MzYoc3RydWN0IGZpbGUgKiwgY29uc3QgY2hhciAqLCBz
aXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHZvaWQgZG9fZ2VuZXJpY19maWxlX3JlYWRfUnNtcF9m
YTc5MGE2ZShzdHJ1Y3QgZmlsZSAqLCBsb2ZmX3QgKiwgcmVhZF9kZXNjcmlwdG9yX3QgKiwgcmVh
ZF9hY3Rvcl90KTsKCmV4dGVybiBzc2l6ZV90IGdlbmVyaWNfcmVhZF9kaXJfUnNtcF80ZjZlOGQz
MChzdHJ1Y3QgZmlsZSAqLCBjaGFyICosIHNpemVfdCwgbG9mZl90ICopOwoKZXh0ZXJuIHN0cnVj
dCBmaWxlX29wZXJhdGlvbnMgZ2VuZXJpY19yb19mb3BzX1JzbXBfYzA5MTkxNmU7CgpleHRlcm4g
aW50IHZmc19yZWFkbGlua19Sc21wXzcxNWMzMTQxKHN0cnVjdCBkZW50cnkgKiwgY2hhciAqLCBp
bnQsIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgdmZzX2ZvbGxvd19saW5rX1JzbXBfYTRmY2Rk
ZjYoc3RydWN0IG5hbWVpZGF0YSAqLCBjb25zdCBjaGFyICopOwpleHRlcm4gaW50IHBhZ2VfcmVh
ZGxpbmtfUnNtcF85ZDQ5NTJlNyhzdHJ1Y3QgZGVudHJ5ICosIGNoYXIgKiwgaW50KTsKZXh0ZXJu
IGludCBwYWdlX2ZvbGxvd19saW5rX1JzbXBfZjliYmMwYjkoc3RydWN0IGRlbnRyeSAqLCBzdHJ1
Y3QgbmFtZWlkYXRhICopOwpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMgcGFnZV9zeW1s
aW5rX2lub2RlX29wZXJhdGlvbnNfUnNtcF9iYzA5NjI4NDsKCmV4dGVybiBpbnQgdmZzX3JlYWRk
aXJfUnNtcF83ZTg0YTY1MihzdHJ1Y3QgZmlsZSAqLCBmaWxsZGlyX3QsIHZvaWQgKik7CmV4dGVy
biBpbnQgZGNhY2hlX3JlYWRkaXJfUnNtcF9iNDM3MDE2NihzdHJ1Y3QgZmlsZSAqLCB2b2lkICos
IGZpbGxkaXJfdCk7CgpleHRlcm4gc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgKmdldF9mc190eXBl
X1JzbXBfYTM3ZDQ1ZjIoY29uc3QgY2hhciAqbmFtZSk7CmV4dGVybiBzdHJ1Y3Qgc3VwZXJfYmxv
Y2sgKmdldF9zdXBlcl9Sc21wXzg1MTMyZjNiKGtkZXZfdCk7CnN0YXRpYyBpbmxpbmUgaW50IGlz
X21vdW50ZWQoa2Rldl90IGRldikKewogICAgICAgIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBn
ZXRfc3VwZXJfUnNtcF84NTEzMmYzYihkZXYpOwogICAgICAgIGlmIChzYikgewoKICAgICAgICAg
ICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMDsKfQp1bnNpZ25lZCBs
b25nIGdlbmVyYXRlX2NsdXN0ZXIoa2Rldl90LCBpbnQgYltdLCBpbnQpOwp1bnNpZ25lZCBsb25n
IGdlbmVyYXRlX2NsdXN0ZXJfc3dhYjMyKGtkZXZfdCwgaW50IGJbXSwgaW50KTsKZXh0ZXJuIGtk
ZXZfdCBST09UX0RFVl9Sc21wX2IzMjQ5NmU4OwpleHRlcm4gY2hhciByb290X2RldmljZV9uYW1l
W107CgoKZXh0ZXJuIHZvaWQgc2hvd19idWZmZXJzKHZvaWQpOwpleHRlcm4gdm9pZCBtb3VudF9y
b290KHZvaWQpOwoKCgoKCgpleHRlcm4gc3NpemVfdCBjaGFyX3JlYWQoc3RydWN0IGZpbGUgKiwg
Y2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKZXh0ZXJuIHNzaXplX3QgYmxvY2tfcmVhZF9Sc21w
XzEzZDA2NTBhKHN0cnVjdCBmaWxlICosIGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmV4dGVy
biBpbnQgcmVhZF9haGVhZF9Sc21wXzBhYmI3YjA3W107CgpleHRlcm4gc3NpemVfdCBjaGFyX3dy
aXRlKHN0cnVjdCBmaWxlICosIGNvbnN0IGNoYXIgKiwgc2l6ZV90LCBsb2ZmX3QgKik7CmV4dGVy
biBzc2l6ZV90IGJsb2NrX3dyaXRlX1JzbXBfNWVkOTc1ZDgoc3RydWN0IGZpbGUgKiwgY29uc3Qg
Y2hhciAqLCBzaXplX3QsIGxvZmZfdCAqKTsKCmV4dGVybiBpbnQgZmlsZV9mc3luY19Sc21wXzE3
MGVjMzE3KHN0cnVjdCBmaWxlICosIHN0cnVjdCBkZW50cnkgKiwgaW50KTsKZXh0ZXJuIGludCBn
ZW5lcmljX2J1ZmZlcl9mZGF0YXN5bmNfUnNtcF8zYmE0NjJjNChzdHJ1Y3QgaW5vZGUgKmlub2Rl
LCB1bnNpZ25lZCBsb25nIHN0YXJ0X2lkeCwgdW5zaWduZWQgbG9uZyBlbmRfaWR4KTsKZXh0ZXJu
IGludCBnZW5lcmljX29zeW5jX2lub2RlKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwoKZXh0ZXJuIGlu
dCBpbm9kZV9jaGFuZ2Vfb2tfUnNtcF80MDRkMGM1NyhzdHJ1Y3QgaW5vZGUgKiwgc3RydWN0IGlh
dHRyICopOwpleHRlcm4gdm9pZCBpbm9kZV9zZXRhdHRyX1JzbXBfODBhMmNlYjgoc3RydWN0IGlu
b2RlICosIHN0cnVjdCBpYXR0ciAqKTsKIyAxNDE3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2ZzLmgiCnN0YXRpYyBpbmxpbmUgc3RydWN0IGRlbnRyeSAqbG9ja19wYXJlbnQo
c3RydWN0IGRlbnRyeSAqZGVudHJ5KQp7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqZGlyID0gZGdl
dChkZW50cnktPmRfcGFyZW50KTsKCiAgICAgICAgZG93bigmZGlyLT5kX2lub2RlLT5pX3NlbSk7
CiAgICAgICAgcmV0dXJuIGRpcjsKfQoKc3RhdGljIGlubGluZSBzdHJ1Y3QgZGVudHJ5ICpnZXRf
cGFyZW50KHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogICAgICAgIHJldHVybiBkZ2V0KGRlbnRy
eS0+ZF9wYXJlbnQpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgdW5sb2NrX2RpcihzdHJ1Y3QgZGVu
dHJ5ICpkaXIpCnsKICAgICAgICB1cCgmZGlyLT5kX2lub2RlLT5pX3NlbSk7CiAgICAgICAgZHB1
dF9Sc21wXzU3NGU2YmEzKGRpcik7Cn0KCgoKCgpzdGF0aWMgaW5saW5lIHZvaWQgZG91YmxlX2Rv
d24oc3RydWN0IHNlbWFwaG9yZSAqczEsIHN0cnVjdCBzZW1hcGhvcmUgKnMyKQp7CiAgICAgICAg
aWYgKHMxICE9IHMyKSB7CiAgICAgICAgICAgICAgICBpZiAoKHVuc2lnbmVkIGxvbmcpIHMxIDwg
KHVuc2lnbmVkIGxvbmcpIHMyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZW1h
cGhvcmUgKnRtcCA9IHMyOwogICAgICAgICAgICAgICAgICAgICAgICBzMiA9IHMxOyBzMSA9IHRt
cDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGRvd24oczEpOwogICAgICAgIH0K
ICAgICAgICBkb3duKHMyKTsKfQojIDE0NjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvZnMuaCIKc3RhdGljIGlubGluZSB2b2lkIHRyaXBsZV9kb3duKHN0cnVjdCBzZW1hcGhv
cmUgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNlbWFwaG9yZSAq
czIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlICpzMykK
ewogICAgICAgIGlmIChzMSAhPSBzMikgewogICAgICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBs
b25nKSBzMSA8ICh1bnNpZ25lZCBsb25nKSBzMikgewogICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoKHVuc2lnbmVkIGxvbmcpIHMxIDwgKHVuc2lnbmVkIGxvbmcpIHMzKSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNlbWFwaG9yZSAqdG1wID0gczM7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgczMgPSBzMTsgczEgPSB0bXA7CiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBsb25nKSBz
MSA8ICh1bnNpZ25lZCBsb25nKSBzMikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cnVjdCBzZW1hcGhvcmUgKnRtcCA9IHMyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHMyID0gczE7IHMxID0gdG1wOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHVuc2lnbmVkIGxv
bmcpIHMxIDwgKHVuc2lnbmVkIGxvbmcpIHMzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RydWN0IHNlbWFwaG9yZSAqdG1wID0gczM7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgczMgPSBzMTsgczEgPSB0bXA7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKCh1bnNpZ25lZCBsb25nKSBzMiA8ICh1bnNpZ25lZCBs
b25nKSBzMykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZW1hcGhv
cmUgKnRtcCA9IHMzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMzID0gczI7IHMy
ID0gdG1wOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICBkb3duKHMxKTsKICAgICAgICB9IGVsc2UgaWYgKCh1bnNpZ25lZCBsb25nKSBz
MiA8ICh1bnNpZ25lZCBsb25nKSBzMykgewogICAgICAgICAgICAgICAgc3RydWN0IHNlbWFwaG9y
ZSAqdG1wID0gczM7CiAgICAgICAgICAgICAgICBzMyA9IHMyOyBzMiA9IHRtcDsKICAgICAgICB9
CiAgICAgICAgZG93bihzMik7CiAgICAgICAgZG93bihzMyk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9p
ZCBkb3VibGVfdXAoc3RydWN0IHNlbWFwaG9yZSAqczEsIHN0cnVjdCBzZW1hcGhvcmUgKnMyKQp7
CiAgICAgICAgdXAoczEpOwogICAgICAgIGlmIChzMSAhPSBzMikKICAgICAgICAgICAgICAgIHVw
KHMyKTsKfQoKc3RhdGljIGlubGluZSB2b2lkIHRyaXBsZV91cChzdHJ1Y3Qgc2VtYXBob3JlICpz
MSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlICpzMiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VtYXBob3JlICpzMykKewogICAgICAg
IHVwKHMxKTsKICAgICAgICBpZiAoczEgIT0gczIpCiAgICAgICAgICAgICAgICB1cChzMik7CiAg
ICAgICAgdXAoczMpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgZG91YmxlX2xvY2soc3RydWN0IGRl
bnRyeSAqZDEsIHN0cnVjdCBkZW50cnkgKmQyKQp7CiAgICAgICAgZG91YmxlX2Rvd24oJmQxLT5k
X2lub2RlLT5pX3NlbSwgJmQyLT5kX2lub2RlLT5pX3NlbSk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9p
ZCBkb3VibGVfdW5sb2NrKHN0cnVjdCBkZW50cnkgKmQxLCBzdHJ1Y3QgZGVudHJ5ICpkMikKewog
ICAgICAgIGRvdWJsZV91cCgmZDEtPmRfaW5vZGUtPmlfc2VtLCZkMi0+ZF9pbm9kZS0+aV9zZW0p
OwogICAgICAgIGRwdXRfUnNtcF81NzRlNmJhMyhkMSk7CiAgICAgICAgZHB1dF9Sc21wXzU3NGU2
YmEzKGQyKTsKfQojIDE2ICJmcy91ZGYvdWRmZGVjbC5oIiAyCgoKCgoKCgojZGVmaW5lIHVkZl9m
aXhlZF90b192YXJpYWJsZSh4KSAoICggKCAoeCkgPj4gNSApICogMzkgKSArICggKHgpICYgMHgw
MDAwMDAxRiApICkKI2RlZmluZSB1ZGZfdmFyaWFibGVfdG9fZml4ZWQoeCkgKCAoICggKHgpIC8g
MzkgKSA8PCA1ICkgKyAoICh4KSAlIDM5ICkgKQoKI2RlZmluZSBDVVJSRU5UX1VUSU1FICh4dGlt
ZS50dl91c2VjKQoKI2RlZmluZSB1ZGZfZmlsZV9lbnRyeV9hbGxvY19vZmZzZXQoaW5vZGUpICgo
VURGX0lfRVhURU5ERURfRkUoaW5vZGUpID8gc2l6ZW9mKHN0cnVjdCBFeHRlbmRlZEZpbGVFbnRy
eSkgOiBzaXplb2Yoc3RydWN0IEZpbGVFbnRyeSkpICsgVURGX0lfTEVORUFUVFIoaW5vZGUpKQoK
CgoKI2RlZmluZSB1ZGZfZXh0MF9vZmZzZXQoaW5vZGUpIChVREZfSV9BTExPQ1RZUEUoaW5vZGUp
ID09IElDQl9GTEFHX0FEX0lOX0lDQiA/IHVkZl9maWxlX2VudHJ5X2FsbG9jX29mZnNldChpbm9k
ZSkgOiAwKQoKCgojZGVmaW5lIHVkZl9nZXRfbGJfcGJsb2NrKHNiLCBsb2MsIG9mZnNldCkgdWRm
X2dldF9wYmxvY2soKHNiKSwgKGxvYykubG9naWNhbEJsb2NrTnVtLCAobG9jKS5wYXJ0aXRpb25S
ZWZlcmVuY2VOdW0sIChvZmZzZXQpKQojIDQ5ICJmcy91ZGYvdWRmZGVjbC5oIgpzdHJ1Y3QgZGVu
dHJ5OwpzdHJ1Y3QgaW5vZGU7CnN0cnVjdCB0YXNrX3N0cnVjdDsKc3RydWN0IGJ1ZmZlcl9oZWFk
OwpzdHJ1Y3Qgc3VwZXJfYmxvY2s7CgpleHRlcm4gc3RydWN0IGlub2RlX29wZXJhdGlvbnMgdWRm
X2Rpcl9pbm9kZV9vcGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1ZGZf
ZGlyX29wZXJhdGlvbnM7CmV4dGVybiBzdHJ1Y3QgaW5vZGVfb3BlcmF0aW9ucyB1ZGZfZmlsZV9p
bm9kZV9vcGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1ZGZfZmlsZV9v
cGVyYXRpb25zOwpleHRlcm4gc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyB1ZGZfYW9w
czsKZXh0ZXJuIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgdWRmX2FkaW5pY2JfYW9w
czsKZXh0ZXJuIHN0cnVjdCBhZGRyZXNzX3NwYWNlX29wZXJhdGlvbnMgdWRmX3N5bWxpbmtfYW9w
czsKCnN0cnVjdCB1ZGZfZmlsZWlkZW50X2JoCnsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQg
KnNiaDsKICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmViaDsKICAgICAgICBpbnQgc29mZnNl
dDsKICAgICAgICBpbnQgZW9mZnNldDsKfTsKCgoKc3RydWN0IHVkZl9kaXJlY3RvcnlfcmVjb3Jk
CnsKICAgICAgICBfX3UzMiBkX3BhcmVudDsKICAgICAgICBfX3UzMiBkX2lub2RlOwogICAgICAg
IF9fdTMyIGRfbmFtZVsyNTVdOwp9OwoKCnN0cnVjdCB1ZGZfdmRzX3JlY29yZAp7CiAgICAgICAg
X191MzIgYmxvY2s7CiAgICAgICAgX191MzIgdm9sRGVzY1NlcU51bTsKfTsKCnN0cnVjdCBrdG0K
ewogICAgICAgIGludCB0bV9zZWM7CiAgICAgICAgaW50IHRtX21pbjsKICAgICAgICBpbnQgdG1f
aG91cjsKICAgICAgICBpbnQgdG1fbWRheTsKICAgICAgICBpbnQgdG1fbW9uOwogICAgICAgIGlu
dCB0bV95ZWFyOwogICAgICAgIGludCB0bV9pc2RzdDsKfTsKCnN0cnVjdCB1c3RyCnsKICAgICAg
ICBfX3U4IHVfY21wSUQ7CiAgICAgICAgX191OCB1X25hbWVbMjU1XTsKICAgICAgICBfX3U4IHVf
bGVuOwogICAgICAgIF9fdTggcGFkZGluZzsKICAgICAgICB1bnNpZ25lZCBsb25nIHVfaGFzaDsK
fTsKCgoKCmV4dGVybiB2b2lkIHVkZl9lcnJvcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgY29uc3Qg
Y2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7CmV4dGVybiB2b2lkIHVkZl93YXJuaW5nKHN0cnVj
dCBzdXBlcl9ibG9jayAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKCgpleHRl
cm4gaW50IHVkZl93cml0ZV9maShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgRmlsZUlkZW50
RGVzYyAqLCBzdHJ1Y3QgRmlsZUlkZW50RGVzYyAqLCBzdHJ1Y3QgdWRmX2ZpbGVpZGVudF9iaCAq
LCBfX3U4ICosIF9fdTggKik7CgoKZXh0ZXJuIGludCB1ZGZfaW9jdGwoc3RydWN0IGlub2RlICos
IHN0cnVjdCBmaWxlICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgbG9uZyk7CgoKZXh0ZXJuIHN0
cnVjdCBpbm9kZSAqdWRmX2lnZXQoc3RydWN0IHN1cGVyX2Jsb2NrICosIGxiX2FkZHIpOwpleHRl
cm4gaW50IHVkZl9zeW5jX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHZvaWQgdWRmX2V4
cGFuZF9maWxlX2FkaW5pY2Ioc3RydWN0IGlub2RlICosIGludCwgaW50ICopOwpleHRlcm4gc3Ry
dWN0IGJ1ZmZlcl9oZWFkICogdWRmX2V4cGFuZF9kaXJfYWRpbmljYihzdHJ1Y3QgaW5vZGUgKiwg
aW50ICosIGludCAqKTsKZXh0ZXJuIHN0cnVjdCBidWZmZXJfaGVhZCAqIHVkZl9nZXRibGsoc3Ry
dWN0IGlub2RlICosIGxvbmcsIGludCwgaW50ICopOwpleHRlcm4gc3RydWN0IGJ1ZmZlcl9oZWFk
ICogdWRmX2JyZWFkKHN0cnVjdCBpbm9kZSAqLCBpbnQsIGludCwgaW50ICopOwpleHRlcm4gdm9p
ZCB1ZGZfdHJ1bmNhdGUoc3RydWN0IGlub2RlICopOwpleHRlcm4gdm9pZCB1ZGZfcmVhZF9pbm9k
ZShzdHJ1Y3QgaW5vZGUgKik7CmV4dGVybiB2b2lkIHVkZl9wdXRfaW5vZGUoc3RydWN0IGlub2Rl
ICopOwpleHRlcm4gdm9pZCB1ZGZfZGVsZXRlX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJu
IHZvaWQgdWRmX3dyaXRlX2lub2RlKHN0cnVjdCBpbm9kZSAqLCBpbnQpOwpleHRlcm4gbG9uZyB1
ZGZfYmxvY2tfbWFwKHN0cnVjdCBpbm9kZSAqLCBsb25nKTsKZXh0ZXJuIGludCBpbm9kZV9ibWFw
KHN0cnVjdCBpbm9kZSAqLCBpbnQsIGxiX2FkZHIgKiwgX191MzIgKiwgbGJfYWRkciAqLCBfX3Uz
MiAqLCBfX3UzMiAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiopOwpleHRlcm4gaW50IHVkZl9hZGRf
YWV4dChzdHJ1Y3QgaW5vZGUgKiwgbGJfYWRkciAqLCBpbnQgKiwgbGJfYWRkciwgX191MzIsIHN0
cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfd3JpdGVfYWV4dChzdHJ1
Y3QgaW5vZGUgKiwgbGJfYWRkciwgaW50ICosIGxiX2FkZHIsIF9fdTMyLCBzdHJ1Y3QgYnVmZmVy
X2hlYWQgKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfaW5zZXJ0X2FleHQoc3RydWN0IGlub2RlICos
IGxiX2FkZHIsIGludCwgbGJfYWRkciwgX191MzIsIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKZXh0
ZXJuIGludCB1ZGZfZGVsZXRlX2FleHQoc3RydWN0IGlub2RlICosIGxiX2FkZHIsIGludCwgbGJf
YWRkciwgX191MzIsIHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKZXh0ZXJuIGludCB1ZGZfbmV4dF9h
ZXh0KHN0cnVjdCBpbm9kZSAqLCBsYl9hZGRyICosIGludCAqLCBsYl9hZGRyICosIF9fdTMyICos
IHN0cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfY3VycmVudF9hZXh0
KHN0cnVjdCBpbm9kZSAqLCBsYl9hZGRyICosIGludCAqLCBsYl9hZGRyICosIF9fdTMyICosIHN0
cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50KTsKZXh0ZXJuIHZvaWQgdWRmX2Rpc2NhcmRfcHJlYWxs
b2Moc3RydWN0IGlub2RlICopOwoKCmV4dGVybiBpbnQgdWRmX3JlYWRfdGFnZ2VkX2RhdGEoY2hh
ciAqLCBpbnQgc2l6ZSwgaW50IGZkLCBpbnQgYmxvY2ssIGludCBwYXJ0cmVmKTsKZXh0ZXJuIHN0
cnVjdCBidWZmZXJfaGVhZCAqdWRmX3RnZXRibGsoc3RydWN0IHN1cGVyX2Jsb2NrICosIGludCwg
aW50KTsKZXh0ZXJuIHN0cnVjdCBidWZmZXJfaGVhZCAqdWRmX3RyZWFkKHN0cnVjdCBzdXBlcl9i
bG9jayAqLCBpbnQsIGludCk7CmV4dGVybiBzdHJ1Y3QgR2VuZXJpY0F0dHJGb3JtYXQgKnVkZl9h
ZGRfZXh0ZW5kZWRhdHRyKHN0cnVjdCBpbm9kZSAqLCBfX3UzMiwgX191MzIsIF9fdTgsIHN0cnVj
dCBidWZmZXJfaGVhZCAqKik7CmV4dGVybiBzdHJ1Y3QgR2VuZXJpY0F0dHJGb3JtYXQgKnVkZl9n
ZXRfZXh0ZW5kZWRhdHRyKHN0cnVjdCBpbm9kZSAqLCBfX3UzMiwgX191OCwgc3RydWN0IGJ1ZmZl
cl9oZWFkICoqKTsKZXh0ZXJuIHN0cnVjdCBidWZmZXJfaGVhZCAqdWRmX3JlYWRfdGFnZ2VkKHN0
cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MzIsIF9fdTE2ICopOwpleHRlcm4gc3RydWN0
IGJ1ZmZlcl9oZWFkICp1ZGZfcmVhZF9wdGFnZ2VkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBsYl9h
ZGRyLCBfX3UzMiwgX191MTYgKik7CmV4dGVybiBzdHJ1Y3QgYnVmZmVyX2hlYWQgKnVkZl9yZWFk
X3VudGFnZ2VkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MzIpOwpleHRlcm4gdm9p
ZCB1ZGZfcmVsZWFzZV9kYXRhKHN0cnVjdCBidWZmZXJfaGVhZCAqKTsKCgpleHRlcm4gdW5zaWdu
ZWQgaW50IHVkZl9nZXRfbGFzdF9zZXNzaW9uKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKZXh0ZXJu
IHVuc2lnbmVkIGludCB1ZGZfZ2V0X2xhc3RfYmxvY2soc3RydWN0IHN1cGVyX2Jsb2NrICopOwoK
CmV4dGVybiBfX3UzMiB1ZGZfZ2V0X3BibG9jayhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgX191MzIs
IF9fdTE2LCBfX3UzMik7CmV4dGVybiBfX3UzMiB1ZGZfZ2V0X3BibG9ja192aXJ0MTUoc3RydWN0
IHN1cGVyX2Jsb2NrICosIF9fdTMyLCBfX3UxNiwgX191MzIpOwpleHRlcm4gX191MzIgdWRmX2dl
dF9wYmxvY2tfdmlydDIwKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBfX3UzMiwgX191MTYsIF9fdTMy
KTsKZXh0ZXJuIF9fdTMyIHVkZl9nZXRfcGJsb2NrX3NwYXIxNShzdHJ1Y3Qgc3VwZXJfYmxvY2sg
KiwgX191MzIsIF9fdTE2LCBfX3UzMik7CmV4dGVybiBpbnQgdWRmX3JlbG9jYXRlX2Jsb2Nrcyhz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgbG9uZywgbG9uZyAqKTsKCgpleHRlcm4gaW50IHVkZl9nZXRf
ZmlsZW5hbWUoc3RydWN0IHN1cGVyX2Jsb2NrICosIF9fdTggKiwgX191OCAqLCBpbnQpOwoKCmV4
dGVybiB2b2lkIHVkZl9mcmVlX2lub2RlKHN0cnVjdCBpbm9kZSAqKTsKZXh0ZXJuIHN0cnVjdCBp
bm9kZSAqIHVkZl9uZXdfaW5vZGUgKGNvbnN0IHN0cnVjdCBpbm9kZSAqLCBpbnQsIGludCAqKTsK
CgpleHRlcm4gdm9pZCB1ZGZfdHJ1bmNhdGVfZXh0ZW50cyhzdHJ1Y3QgaW5vZGUgKik7CgoKZXh0
ZXJuIHZvaWQgdWRmX2ZyZWVfYmxvY2tzKGNvbnN0IHN0cnVjdCBpbm9kZSAqLCBsYl9hZGRyLCBf
X3UzMiwgX191MzIpOwpleHRlcm4gaW50IHVkZl9wcmVhbGxvY19ibG9ja3MoY29uc3Qgc3RydWN0
IGlub2RlICosIF9fdTE2LCBfX3UzMiwgX191MzIpOwpleHRlcm4gaW50IHVkZl9uZXdfYmxvY2so
Y29uc3Qgc3RydWN0IGlub2RlICosIF9fdTE2LCBfX3UzMiwgaW50ICopOwoKCmV4dGVybiBpbnQg
dWRmX2ZzeW5jX2ZpbGUoc3RydWN0IGZpbGUgKiwgc3RydWN0IGRlbnRyeSAqLCBpbnQpOwpleHRl
cm4gaW50IHVkZl9mc3luY19pbm9kZShzdHJ1Y3QgaW5vZGUgKiwgaW50KTsKCgpleHRlcm4gX191
OCAqIHVkZl9maWxlYWRfcmVhZChzdHJ1Y3QgaW5vZGUgKiwgX191OCAqLCBfX3U4LCBsYl9hZGRy
LCBpbnQgKiwgaW50ICosIHN0cnVjdCBidWZmZXJfaGVhZCAqKiwgaW50ICopOwpleHRlcm4gc3Ry
dWN0IEZpbGVJZGVudERlc2MgKiB1ZGZfZmlsZWlkZW50X3JlYWQoc3RydWN0IGlub2RlICosIGxv
ZmZfdCAqLCBzdHJ1Y3QgdWRmX2ZpbGVpZGVudF9iaCAqLCBzdHJ1Y3QgRmlsZUlkZW50RGVzYyAq
LCBsYl9hZGRyICosIF9fdTMyICosIGxiX2FkZHIgKiwgX191MzIgKiwgX191MzIgKiwgc3RydWN0
IGJ1ZmZlcl9oZWFkICoqKTsKCgoKCgoKZXh0ZXJuIGludCB1ZGZfdXN0cl90b19kY2hhcnMoX191
OCAqLCBjb25zdCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwpleHRlcm4gaW50IHVkZl91c3RyX3RvX2No
YXIoX191OCAqLCBjb25zdCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwpleHRlcm4gaW50IHVkZl91c3Ry
X3RvX2RzdHJpbmcoZHN0cmluZyAqLCBjb25zdCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwpleHRlcm4g
aW50IHVkZl9kY2hhcnNfdG9fdXN0cihzdHJ1Y3QgdXN0ciAqLCBjb25zdCBfX3U4ICosIGludCk7
CmV4dGVybiBpbnQgdWRmX2NoYXJfdG9fdXN0cihzdHJ1Y3QgdXN0ciAqLCBjb25zdCBfX3U4ICos
IGludCk7CmV4dGVybiBpbnQgdWRmX2RzdHJpbmdfdG9fdXN0cihzdHJ1Y3QgdXN0ciAqLCBjb25z
dCBkc3RyaW5nICosIGludCk7CmV4dGVybiBpbnQgdWRmX3RyYW5zbGF0ZV90b19saW51eChfX3U4
ICosIF9fdTggKiwgaW50LCBfX3U4ICosIGludCk7CmV4dGVybiBpbnQgdWRmX2J1aWxkX3VzdHIo
c3RydWN0IHVzdHIgKiwgZHN0cmluZyAqLCBpbnQpOwpleHRlcm4gaW50IHVkZl9idWlsZF91c3Ry
X2V4YWN0KHN0cnVjdCB1c3RyICosIGRzdHJpbmcgKiwgaW50KTsKZXh0ZXJuIGludCB1ZGZfQ1Mw
dG9VVEY4KHN0cnVjdCB1c3RyICosIHN0cnVjdCB1c3RyICopOwpleHRlcm4gaW50IHVkZl9VVEY4
dG9DUzAoZHN0cmluZyAqLCBzdHJ1Y3QgdXN0ciAqLCBpbnQpOwoKZXh0ZXJuIGludCB1ZGZfQ1Mw
dG9OTFMoc3RydWN0IG5sc190YWJsZSAqLCBzdHJ1Y3QgdXN0ciAqLCBzdHJ1Y3QgdXN0ciAqKTsK
ZXh0ZXJuIGludCB1ZGZfTkxTdG9DUzAoc3RydWN0IG5sc190YWJsZSAqLCBkc3RyaW5nICosIHN0
cnVjdCB1c3RyICosIGludCk7CgoKCmV4dGVybiBfX3UxNiB1ZGZfY3JjKF9fdTggKiwgX191MzIs
IF9fdTE2KTsKCgpleHRlcm4gX191MzIgdWRmNjRfbG93MzIoX191NjQpOwpleHRlcm4gX191MzIg
dWRmNjRfaGlnaDMyKF9fdTY0KTsKZXh0ZXJuIHZvaWQgdWRmX3VwZGF0ZV90YWcoY2hhciAqLCBp
bnQpOwpleHRlcm4gdm9pZCB1ZGZfbmV3X3RhZyhjaGFyICosIF9fdTE2LCBfX3UxNiwgX191MTYs
IF9fdTMyLCBpbnQpOwoKCmV4dGVybiB0aW1lX3QgKnVkZl9zdGFtcF90b190aW1lKHRpbWVfdCAq
LCBsb25nICosIHRpbWVzdGFtcCk7CmV4dGVybiB0aW1lc3RhbXAgKnVkZl90aW1lX3RvX3N0YW1w
KHRpbWVzdGFtcCAqLCB0aW1lX3QsIGxvbmcpOwpleHRlcm4gdGltZV90IHVkZl9jb252ZXJ0dGlt
ZSAoc3RydWN0IGt0bSAqKTsKCgpleHRlcm4gc3RydWN0IEZpbGVJZGVudERlc2MgKiB1ZGZfZ2V0
X2ZpbGVpZGVudCh2b2lkICogYnVmZmVyLCBpbnQgYnVmc2l6ZSwgaW50ICogb2Zmc2V0KTsKZXh0
ZXJuIGV4dGVudF9hZCAqIHVkZl9nZXRfZmlsZWV4dGVudCh2b2lkICogYnVmZmVyLCBpbnQgYnVm
c2l6ZSwgaW50ICogb2Zmc2V0KTsKZXh0ZXJuIGxvbmdfYWQgKiB1ZGZfZ2V0X2ZpbGVsb25nYWQo
dm9pZCAqIGJ1ZmZlciwgaW50IGJ1ZnNpemUsIGludCAqIG9mZnNldCwgaW50KTsKZXh0ZXJuIHNo
b3J0X2FkICogdWRmX2dldF9maWxlc2hvcnRhZCh2b2lkICogYnVmZmVyLCBpbnQgYnVmc2l6ZSwg
aW50ICogb2Zmc2V0LCBpbnQpOwpleHRlcm4gX191OCAqIHVkZl9nZXRfZmlsZWFkKHN0cnVjdCBG
aWxlRW50cnkgKiwgX191OCAqLCBpbnQsIGludCwgaW50LCBpbnQgKik7CiMgNDcgImZzL3VkZi9z
dXBlci5jIiAyCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmln
LmgiIDEKIyA0OSAiZnMvdWRmL3N1cGVyLmMiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3ZlcnNpb24uaCIgMQojZGVmaW5lIFVUU19SRUxFQVNFICIyLjQuNyIKI2Rl
ZmluZSBMSU5VWF9WRVJTSU9OX0NPREUgMTMyMTAzCiNkZWZpbmUgS0VSTkVMX1ZFUlNJT04oYSwg
YiwgYykgKCgoYSkgPDwgMTYpICsgKChiKSA8PCA4KSArIChjKSkKIyA1MCAiZnMvdWRmL3N1cGVy
LmMiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oIiAx
CgojZGVmaW5lIF9MSU5VWF9CTEtERVZfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L21ham9yLmgiIDEKCiNkZWZpbmUgX0xJTlVYX01BSk9SX0gKIyAxNSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tYWpvci5oIgojZGVmaW5lIE1BWF9DSFJERVYg
MjU1CiNkZWZpbmUgTUFYX0JMS0RFViAyNTUKCiNkZWZpbmUgVU5OQU1FRF9NQUpPUiAwCiNkZWZp
bmUgTUVNX01BSk9SIDEKI2RlZmluZSBSQU1ESVNLX01BSk9SIDEKI2RlZmluZSBGTE9QUFlfTUFK
T1IgMgojZGVmaW5lIFBUWV9NQVNURVJfTUFKT1IgMgojZGVmaW5lIElERTBfTUFKT1IgMwojZGVm
aW5lIFBUWV9TTEFWRV9NQUpPUiAzCiNkZWZpbmUgSERfTUFKT1IgSURFMF9NQUpPUgojZGVmaW5l
IFRUWV9NQUpPUiA0CiNkZWZpbmUgVFRZQVVYX01BSk9SIDUKI2RlZmluZSBMUF9NQUpPUiA2CiNk
ZWZpbmUgVkNTX01BSk9SIDcKI2RlZmluZSBMT09QX01BSk9SIDcKI2RlZmluZSBTQ1NJX0RJU0sw
X01BSk9SIDgKI2RlZmluZSBTQ1NJX1RBUEVfTUFKT1IgOQojZGVmaW5lIE1EX01BSk9SIDkKI2Rl
ZmluZSBNSVNDX01BSk9SIDEwCiNkZWZpbmUgU0NTSV9DRFJPTV9NQUpPUiAxMQojZGVmaW5lIFFJ
QzAyX1RBUEVfTUFKT1IgMTIKI2RlZmluZSBYVF9ESVNLX01BSk9SIDEzCiNkZWZpbmUgU09VTkRf
TUFKT1IgMTQKI2RlZmluZSBDRFUzMUFfQ0RST01fTUFKT1IgMTUKI2RlZmluZSBKT1lTVElDS19N
QUpPUiAxNQojZGVmaW5lIEdPTERTVEFSX0NEUk9NX01BSk9SIDE2CiNkZWZpbmUgT1BUSUNTX0NE
Uk9NX01BSk9SIDE3CiNkZWZpbmUgU0FOWU9fQ0RST01fTUFKT1IgMTgKI2RlZmluZSBDWUNMQURF
U19NQUpPUiAxOQojZGVmaW5lIENZQ0xBREVTQVVYX01BSk9SIDIwCiNkZWZpbmUgTUlUU1VNSV9Y
X0NEUk9NX01BSk9SIDIwCiNkZWZpbmUgTUZNX0FDT1JOX01BSk9SIDIxCiNkZWZpbmUgU0NTSV9H
RU5FUklDX01BSk9SIDIxCiNkZWZpbmUgWjg1MzBfTUFKT1IgMzQKI2RlZmluZSBESUdJX01BSk9S
IDIzCiNkZWZpbmUgSURFMV9NQUpPUiAyMgojZGVmaW5lIERJR0lDVV9NQUpPUiAyMgojZGVmaW5l
IE1JVFNVTUlfQ0RST01fTUFKT1IgMjMKI2RlZmluZSBDRFU1MzVfQ0RST01fTUFKT1IgMjQKI2Rl
ZmluZSBTVExfU0VSSUFMTUFKT1IgMjQKI2RlZmluZSBNQVRTVVNISVRBX0NEUk9NX01BSk9SIDI1
CiNkZWZpbmUgU1RMX0NBTExPVVRNQUpPUiAyNQojZGVmaW5lIE1BVFNVU0hJVEFfQ0RST00yX01B
Sk9SIDI2CiNkZWZpbmUgUUlDMTE3X1RBUEVfTUFKT1IgMjcKI2RlZmluZSBNQVRTVVNISVRBX0NE
Uk9NM19NQUpPUiAyNwojZGVmaW5lIE1BVFNVU0hJVEFfQ0RST000X01BSk9SIDI4CiNkZWZpbmUg
U1RMX1NJT01FTU1BSk9SIDI4CiNkZWZpbmUgQUNTSV9NQUpPUiAyOAojZGVmaW5lIEFaVEVDSF9D
RFJPTV9NQUpPUiAyOQojZGVmaW5lIEdSQVBIREVWX01BSk9SIDI5CiNkZWZpbmUgU0hNSVFfTUFK
T1IgODUKI2RlZmluZSBDTTIwNl9DRFJPTV9NQUpPUiAzMgojZGVmaW5lIElERTJfTUFKT1IgMzMK
I2RlZmluZSBJREUzX01BSk9SIDM0CiNkZWZpbmUgWFBSQU1fTUFKT1IgMzUKCiNkZWZpbmUgTkVU
TElOS19NQUpPUiAzNgojZGVmaW5lIFBTMkVTRElfTUFKT1IgMzYKI2RlZmluZSBJREVUQVBFX01B
Sk9SIDM3CiNkZWZpbmUgWjJSQU1fTUFKT1IgMzcKI2RlZmluZSBBUEJMT0NLX01BSk9SIDM4CiNk
ZWZpbmUgRERWX01BSk9SIDM5CiNkZWZpbmUgTkJEX01BSk9SIDQzCiNkZWZpbmUgUklTQ09NOF9O
T1JNQUxfTUFKT1IgNDgKI2RlZmluZSBEQUM5NjBfTUFKT1IgNDgKI2RlZmluZSBSSVNDT004X0NB
TExPVVRfTUFKT1IgNDkKI2RlZmluZSBNS0lTU19NQUpPUiA1NQojZGVmaW5lIERTUDU2S19NQUpP
UiA1NQoKI2RlZmluZSBJREU0X01BSk9SIDU2CiNkZWZpbmUgSURFNV9NQUpPUiA1NwoKI2RlZmlu
ZSBMVk1fQkxLX01BSk9SIDU4CgojZGVmaW5lIFNDU0lfRElTSzFfTUFKT1IgNjUKI2RlZmluZSBT
Q1NJX0RJU0syX01BSk9SIDY2CiNkZWZpbmUgU0NTSV9ESVNLM19NQUpPUiA2NwojZGVmaW5lIFND
U0lfRElTSzRfTUFKT1IgNjgKI2RlZmluZSBTQ1NJX0RJU0s1X01BSk9SIDY5CiNkZWZpbmUgU0NT
SV9ESVNLNl9NQUpPUiA3MAojZGVmaW5lIFNDU0lfRElTSzdfTUFKT1IgNzEKCgojZGVmaW5lIENP
TVBBUV9TTUFSVDJfTUFKT1IgNzIKI2RlZmluZSBDT01QQVFfU01BUlQyX01BSk9SMSA3MwojZGVm
aW5lIENPTVBBUV9TTUFSVDJfTUFKT1IyIDc0CiNkZWZpbmUgQ09NUEFRX1NNQVJUMl9NQUpPUjMg
NzUKI2RlZmluZSBDT01QQVFfU01BUlQyX01BSk9SNCA3NgojZGVmaW5lIENPTVBBUV9TTUFSVDJf
TUFKT1I1IDc3CiNkZWZpbmUgQ09NUEFRX1NNQVJUMl9NQUpPUjYgNzgKI2RlZmluZSBDT01QQVFf
U01BUlQyX01BSk9SNyA3OQoKI2RlZmluZSBTUEVDSUFMSVhfTk9STUFMX01BSk9SIDc1CiNkZWZp
bmUgU1BFQ0lBTElYX0NBTExPVVRfTUFKT1IgNzYKCiNkZWZpbmUgQ09NUEFRX0NJU1NfTUFKT1Ig
MTA0CiNkZWZpbmUgQ09NUEFRX0NJU1NfTUFKT1IxIDEwNQojZGVmaW5lIENPTVBBUV9DSVNTX01B
Sk9SMiAxMDYKI2RlZmluZSBDT01QQVFfQ0lTU19NQUpPUjMgMTA3CiNkZWZpbmUgQ09NUEFRX0NJ
U1NfTUFKT1I0IDEwOAojZGVmaW5lIENPTVBBUV9DSVNTX01BSk9SNSAxMDkKI2RlZmluZSBDT01Q
QVFfQ0lTU19NQUpPUjYgMTEwCiNkZWZpbmUgQ09NUEFRX0NJU1NfTUFKT1I3IDExMQoKI2RlZmlu
ZSBEQVNEX01BSk9SIDk0CgojZGVmaW5lIE1ESVNLX01BSk9SIDk1CgojZGVmaW5lIEkyT19NQUpP
UiA4MAoKI2RlZmluZSBJREU2X01BSk9SIDg4CiNkZWZpbmUgSURFN19NQUpPUiA4OQojZGVmaW5l
IElERThfTUFKT1IgOTAKI2RlZmluZSBJREU5X01BSk9SIDkxCgojZGVmaW5lIFVCRF9NQUpPUiA5
OAoKI2RlZmluZSBBVVJPUkFfTUFKT1IgNzkKCiNkZWZpbmUgSlNGRF9NQUpPUiA5OQoKI2RlZmlu
ZSBQSE9ORV9NQUpPUiAxMDAKCiNkZWZpbmUgTFZNX0NIQVJfTUFKT1IgMTA5CgojZGVmaW5lIFJU
Rl9NQUpPUiAxNTAKI2RlZmluZSBSQVdfTUFKT1IgMTYyCgojZGVmaW5lIFVTQl9BQ01fTUFKT1Ig
MTY2CiNkZWZpbmUgVVNCX0FDTV9BVVhfTUFKT1IgMTY3CiNkZWZpbmUgVVNCX0NIQVJfTUFKT1Ig
MTgwCgojZGVmaW5lIFVOSVg5OF9QVFlfTUFTVEVSX01BSk9SIDEyOAojZGVmaW5lIFVOSVg5OF9Q
VFlfTUFKT1JfQ09VTlQgOAojZGVmaW5lIFVOSVg5OF9QVFlfU0xBVkVfTUFKT1IgKFVOSVg5OF9Q
VFlfTUFTVEVSX01BSk9SK1VOSVg5OF9QVFlfTUFKT1JfQ09VTlQpCgojZGVmaW5lIFZYVk1fTUFK
T1IgMTk5CiNkZWZpbmUgVlhTUEVDX01BSk9SIDIwMAojZGVmaW5lIFZYRE1QX01BSk9SIDIwMQoK
I2RlZmluZSBNU1JfTUFKT1IgMjAyCiNkZWZpbmUgQ1BVSURfTUFKT1IgMjAzCgojZGVmaW5lIE9T
U1RfTUFKT1IgMjA2CgojZGVmaW5lIElCTV9UVFkzMjcwX01BSk9SIDIyNwojZGVmaW5lIElCTV9G
UzMyNzBfTUFKT1IgMjI4CgoKCgoKI2RlZmluZSBTQ1NJX0RJU0tfTUFKT1IoTSkgKChNKSA9PSBT
Q1NJX0RJU0swX01BSk9SIHx8ICgoTSkgPj0gU0NTSV9ESVNLMV9NQUpPUiAmJiAoTSkgPD0gU0NT
SV9ESVNLN19NQUpPUikpCgoKI2RlZmluZSBTQ1NJX0JMS19NQUpPUihNKSAoU0NTSV9ESVNLX01B
Sk9SKE0pIHx8IChNKSA9PSBTQ1NJX0NEUk9NX01BSk9SKQoKCgpzdGF0aWMgX19pbmxpbmVfXyBp
bnQgc2NzaV9ibGtfbWFqb3IoaW50IG0pIHsKICAgICAgICByZXR1cm4gKCgobSkgPT0gOCB8fCAo
KG0pID49IDY1ICYmIChtKSA8PSA3MSkpIHx8IChtKSA9PSAxMSk7Cn0KIyA1ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Jsa2Rldi5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAxCgojZGVmaW5lIF9MSU5VWF9TQ0hFRF9ICgoj
IDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhcmFtLmgiIDEKIyA1ICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCmV4dGVybiB1bnNpZ25l
ZCBsb25nIGV2ZW50X1JzbXBfN2IxNmMzNDQ7CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L2JpbmZtdHMuaCIgMQoKI2RlZmluZSBfTElOVVhfQklORk1UU19ICgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcHRyYWNlLmgiIDEKCiNkZWZpbmUgX0xJTlVYX1BUUkFD
RV9ICgoKCgoKI2RlZmluZSBQVFJBQ0VfVFJBQ0VNRSAwCiNkZWZpbmUgUFRSQUNFX1BFRUtURVhU
IDEKI2RlZmluZSBQVFJBQ0VfUEVFS0RBVEEgMgojZGVmaW5lIFBUUkFDRV9QRUVLVVNSIDMKI2Rl
ZmluZSBQVFJBQ0VfUE9LRVRFWFQgNAojZGVmaW5lIFBUUkFDRV9QT0tFREFUQSA1CiNkZWZpbmUg
UFRSQUNFX1BPS0VVU1IgNgojZGVmaW5lIFBUUkFDRV9DT05UIDcKI2RlZmluZSBQVFJBQ0VfS0lM
TCA4CiNkZWZpbmUgUFRSQUNFX1NJTkdMRVNURVAgOQoKI2RlZmluZSBQVFJBQ0VfQVRUQUNIIDB4
MTAKI2RlZmluZSBQVFJBQ0VfREVUQUNIIDB4MTEKCiNkZWZpbmUgUFRSQUNFX1NZU0NBTEwgMjQK
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHRyYWNlLmgiIDEKIyAyNSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9wdHJhY2UuaCIgMgojIDUgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYmluZm10cy5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiIDEKIyAxNCAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiCiNkZWZpbmUgX0xJTlVYX0NB
UEFCSUxJVFlfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVz
LmgiIDEKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2ZzLmgiIDEKIyAx
OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiIDIKIyAz
MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmlsaXR5LmgiCiNkZWZp
bmUgX0xJTlVYX0NBUEFCSUxJVFlfVkVSU0lPTiAweDE5OTgwMzMwCgp0eXBlZGVmIHN0cnVjdCBf
X3VzZXJfY2FwX2hlYWRlcl9zdHJ1Y3QgewogICAgICAgIF9fdTMyIHZlcnNpb247CiAgICAgICAg
aW50IHBpZDsKfSAqY2FwX3VzZXJfaGVhZGVyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBfX3VzZXJfY2Fw
X2RhdGFfc3RydWN0IHsKICAgICAgICBfX3UzMiBlZmZlY3RpdmU7CiAgICAgICAgX191MzIgcGVy
bWl0dGVkOwogICAgICAgIF9fdTMyIGluaGVyaXRhYmxlOwp9ICpjYXBfdXNlcl9kYXRhX3Q7CiMg
NTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgp0eXBl
ZGVmIF9fdTMyIGtlcm5lbF9jYXBfdDsKCgoKI2RlZmluZSBfVVNFUl9DQVBfSEVBREVSX1NJWkUg
KDIqc2l6ZW9mKF9fdTMyKSkKI2RlZmluZSBfS0VSTkVMX0NBUF9UX1NJWkUgKHNpemVvZihrZXJu
ZWxfY2FwX3QpKQojIDczICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NhcGFi
aWxpdHkuaCIKI2RlZmluZSBDQVBfQ0hPV04gMAoKCgoKCiNkZWZpbmUgQ0FQX0RBQ19PVkVSUklE
RSAxCgoKCgoKI2RlZmluZSBDQVBfREFDX1JFQURfU0VBUkNIIDIKCgoKCgojZGVmaW5lIENBUF9G
T1dORVIgMwojIDEwMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYXBhYmls
aXR5LmgiCiNkZWZpbmUgQ0FQX0ZTRVRJRCA0CgoKCiNkZWZpbmUgQ0FQX0ZTX01BU0sgMHgxZgoK
CgoKCiNkZWZpbmUgQ0FQX0tJTEwgNQoKCgoKCiNkZWZpbmUgQ0FQX1NFVEdJRCA2CgoKCgojZGVm
aW5lIENBUF9TRVRVSUQgNwojIDEzMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9jYXBhYmlsaXR5LmgiCiNkZWZpbmUgQ0FQX1NFVFBDQVAgOAoKCgojZGVmaW5lIENBUF9MSU5V
WF9JTU1VVEFCTEUgOQoKCgoKI2RlZmluZSBDQVBfTkVUX0JJTkRfU0VSVklDRSAxMAoKCgojZGVm
aW5lIENBUF9ORVRfQlJPQURDQVNUIDExCiMgMTYwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2NhcGFiaWxpdHkuaCIKI2RlZmluZSBDQVBfTkVUX0FETUlOIDEyCgoKCgojZGVm
aW5lIENBUF9ORVRfUkFXIDEzCgoKCgoKI2RlZmluZSBDQVBfSVBDX0xPQ0sgMTQKCgoKI2RlZmlu
ZSBDQVBfSVBDX09XTkVSIDE1CgoKCiNkZWZpbmUgQ0FQX1NZU19NT0RVTEUgMTYKCgoKCiNkZWZp
bmUgQ0FQX1NZU19SQVdJTyAxNwoKCgojZGVmaW5lIENBUF9TWVNfQ0hST09UIDE4CgoKCiNkZWZp
bmUgQ0FQX1NZU19QVFJBQ0UgMTkKCgoKI2RlZmluZSBDQVBfU1lTX1BBQ0NUIDIwCiMgMjM1ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NhcGFiaWxpdHkuaCIKI2RlZmluZSBD
QVBfU1lTX0FETUlOIDIxCgoKCiNkZWZpbmUgQ0FQX1NZU19CT09UIDIyCgoKCgoKCgojZGVmaW5l
IENBUF9TWVNfTklDRSAyMwojIDI1OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9jYXBhYmlsaXR5LmgiCiNkZWZpbmUgQ0FQX1NZU19SRVNPVVJDRSAyNAoKCgoKCiNkZWZpbmUg
Q0FQX1NZU19USU1FIDI1CgoKCgojZGVmaW5lIENBUF9TWVNfVFRZX0NPTkZJRyAyNgoKCgojZGVm
aW5lIENBUF9NS05PRCAyNwoKCgojZGVmaW5lIENBUF9MRUFTRSAyOAoKCgoKCmV4dGVybiBrZXJu
ZWxfY2FwX3QgY2FwX2JzZXRfUnNtcF81OWFiNDA4MDsKIyAyOTcgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvY2FwYWJpbGl0eS5oIgojZGVmaW5lIHRvX2NhcF90KHgpICh4KQoj
ZGVmaW5lIGNhcF90KHgpICh4KQoKCgojZGVmaW5lIENBUF9FTVBUWV9TRVQgdG9fY2FwX3QoMCkK
I2RlZmluZSBDQVBfRlVMTF9TRVQgdG9fY2FwX3QofjApCiNkZWZpbmUgQ0FQX0lOSVRfRUZGX1NF
VCB0b19jYXBfdCh+MCAmIH5DQVBfVE9fTUFTSyhDQVBfU0VUUENBUCkpCiNkZWZpbmUgQ0FQX0lO
SVRfSU5IX1NFVCB0b19jYXBfdCgwKQoKI2RlZmluZSBDQVBfVE9fTUFTSyh4KSAoMSA8PCAoeCkp
CiNkZWZpbmUgY2FwX3JhaXNlKGMsIGZsYWcpIChjYXBfdChjKSB8PSBDQVBfVE9fTUFTSyhmbGFn
KSkKI2RlZmluZSBjYXBfbG93ZXIoYywgZmxhZykgKGNhcF90KGMpICY9IH5DQVBfVE9fTUFTSyhm
bGFnKSkKI2RlZmluZSBjYXBfcmFpc2VkKGMsIGZsYWcpIChjYXBfdChjKSAmIENBUF9UT19NQVNL
KGZsYWcpKQoKc3RhdGljIGlubGluZSBrZXJuZWxfY2FwX3QgY2FwX2NvbWJpbmUoa2VybmVsX2Nh
cF90IGEsIGtlcm5lbF9jYXBfdCBiKQp7CiAgICAga2VybmVsX2NhcF90IGRlc3Q7CiAgICAgKGRl
c3QpID0gKGEpIHwgKGIpOwogICAgIHJldHVybiBkZXN0Owp9CgpzdGF0aWMgaW5saW5lIGtlcm5l
bF9jYXBfdCBjYXBfaW50ZXJzZWN0KGtlcm5lbF9jYXBfdCBhLCBrZXJuZWxfY2FwX3QgYikKewog
ICAgIGtlcm5lbF9jYXBfdCBkZXN0OwogICAgIChkZXN0KSA9IChhKSAmIChiKTsKICAgICByZXR1
cm4gZGVzdDsKfQoKc3RhdGljIGlubGluZSBrZXJuZWxfY2FwX3QgY2FwX2Ryb3Aoa2VybmVsX2Nh
cF90IGEsIGtlcm5lbF9jYXBfdCBkcm9wKQp7CiAgICAga2VybmVsX2NhcF90IGRlc3Q7CiAgICAg
KGRlc3QpID0gKGEpICYgfihkcm9wKTsKICAgICByZXR1cm4gZGVzdDsKfQoKc3RhdGljIGlubGlu
ZSBrZXJuZWxfY2FwX3QgY2FwX2ludmVydChrZXJuZWxfY2FwX3QgYykKewogICAgIGtlcm5lbF9j
YXBfdCBkZXN0OwogICAgIChkZXN0KSA9IH4oYyk7CiAgICAgcmV0dXJuIGRlc3Q7Cn0KCiNkZWZp
bmUgY2FwX2lzY2xlYXIoYykgKCFjYXBfdChjKSkKI2RlZmluZSBjYXBfaXNzdWJzZXQoYSwgc2V0
KSAoIShjYXBfdChhKSAmIH5jYXBfdChzZXQpKSkKCiNkZWZpbmUgY2FwX2NsZWFyKGMpIGRvIHsg
Y2FwX3QoYykgPSAwOyB9IHdoaWxlKDApCiNkZWZpbmUgY2FwX3NldF9mdWxsKGMpIGRvIHsgY2Fw
X3QoYykgPSB+MDsgfSB3aGlsZSgwKQojZGVmaW5lIGNhcF9tYXNrKGMsIG1hc2spIGRvIHsgY2Fw
X3QoYykgJj0gY2FwX3QobWFzayk7IH0gd2hpbGUoMCkKCiNkZWZpbmUgY2FwX2lzX2ZzX2NhcChj
KSAoQ0FQX1RPX01BU0soYykgJiBDQVBfRlNfTUFTSykKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2JpbmZtdHMuaCIgMgoKCgoKCgojZGVmaW5lIE1BWF9BUkdfUEFHRVMg
MzIKCgojZGVmaW5lIEJJTlBSTV9CVUZfU0laRSAxMjgKCgoKCgoKc3RydWN0IGxpbnV4X2JpbnBy
bXsKICAgICAgICBjaGFyIGJ1ZlsxMjhdOwogICAgICAgIHN0cnVjdCBwYWdlICpwYWdlWzMyXTsK
ICAgICAgICB1bnNpZ25lZCBsb25nIHA7CiAgICAgICAgaW50IHNoX2Jhbmc7CiAgICAgICAgc3Ry
dWN0IGZpbGUgKiBmaWxlOwogICAgICAgIGludCBlX3VpZCwgZV9naWQ7CiAgICAgICAga2VybmVs
X2NhcF90IGNhcF9pbmhlcml0YWJsZSwgY2FwX3Blcm1pdHRlZCwgY2FwX2VmZmVjdGl2ZTsKICAg
ICAgICBpbnQgYXJnYywgZW52YzsKICAgICAgICBjaGFyICogZmlsZW5hbWU7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBsb2FkZXIsIGV4ZWM7Cn07CgoKCgoKc3RydWN0IGxpbnV4X2JpbmZtdCB7CiAg
ICAgICAgc3RydWN0IGxpbnV4X2JpbmZtdCAqIG5leHQ7CiAgICAgICAgc3RydWN0IG1vZHVsZSAq
bW9kdWxlOwogICAgICAgIGludCAoKmxvYWRfYmluYXJ5KShzdHJ1Y3QgbGludXhfYmlucHJtICos
IHN0cnVjdCBwdF9yZWdzICogcmVncyk7CiAgICAgICAgaW50ICgqbG9hZF9zaGxpYikoc3RydWN0
IGZpbGUgKik7CiAgICAgICAgaW50ICgqY29yZV9kdW1wKShsb25nIHNpZ25yLCBzdHJ1Y3QgcHRf
cmVncyAqIHJlZ3MsIHN0cnVjdCBmaWxlICogZmlsZSk7CiAgICAgICAgdW5zaWduZWQgbG9uZyBt
aW5fY29yZWR1bXA7Cn07CgpleHRlcm4gaW50IHJlZ2lzdGVyX2JpbmZtdF9Sc21wXzhhMzI5Mzc4
KHN0cnVjdCBsaW51eF9iaW5mbXQgKik7CmV4dGVybiBpbnQgdW5yZWdpc3Rlcl9iaW5mbXRfUnNt
cF8yODMyMmNmMChzdHJ1Y3QgbGludXhfYmluZm10ICopOwoKZXh0ZXJuIGludCBwcmVwYXJlX2Jp
bnBybV9Sc21wXzZiZWQ3OWI5KHN0cnVjdCBsaW51eF9iaW5wcm0gKik7CmV4dGVybiB2b2lkIHJl
bW92ZV9hcmdfemVyb19Sc21wXzMyMGFiNGVhKHN0cnVjdCBsaW51eF9iaW5wcm0gKik7CmV4dGVy
biBpbnQgc2VhcmNoX2JpbmFyeV9oYW5kbGVyX1JzbXBfMjQ1YmZmODYoc3RydWN0IGxpbnV4X2Jp
bnBybSAqLHN0cnVjdCBwdF9yZWdzICopOwpleHRlcm4gaW50IGZsdXNoX29sZF9leGVjX1JzbXBf
NGU2NDA1YTgoc3RydWN0IGxpbnV4X2JpbnBybSAqIGJwcm0pOwpleHRlcm4gaW50IHNldHVwX2Fy
Z19wYWdlc19Sc21wX2RhYmJiZjZmKHN0cnVjdCBsaW51eF9iaW5wcm0gKiBicHJtKTsKZXh0ZXJu
IGludCBjb3B5X3N0cmluZ3MoaW50IGFyZ2MsY2hhciAqKiBhcmd2LHN0cnVjdCBsaW51eF9iaW5w
cm0gKmJwcm0pOwpleHRlcm4gaW50IGNvcHlfc3RyaW5nc19rZXJuZWxfUnNtcF8xNzkzODQzZShp
bnQgYXJnYyxjaGFyICoqIGFyZ3Ysc3RydWN0IGxpbnV4X2JpbnBybSAqYnBybSk7CmV4dGVybiB2
b2lkIGNvbXB1dGVfY3JlZHNfUnNtcF9kYjNkZTg3ZShzdHJ1Y3QgbGludXhfYmlucHJtICpiaW5w
cm0pOwpleHRlcm4gaW50IGRvX2NvcmVkdW1wKGxvbmcgc2lnbnIsIHN0cnVjdCBwdF9yZWdzICog
cmVncyk7CmV4dGVybiB2b2lkIHNldF9iaW5mbXRfUnNtcF81YjM4NjI1YyhzdHJ1Y3QgbGludXhf
YmluZm10ICpuZXcpOwojIDEwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Nj
aGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3BlcnNvbmFs
aXR5LmgiIDEKCiNkZWZpbmUgX1BFUlNPTkFMSVRZX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9saW5rYWdlLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3BlcnNvbmFsaXR5LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3B0cmFjZS5oIiAxCiMgNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9wZXJzb25hbGl0eS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vY3VycmVudC5oIiAxCiMgNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9wZXJzb25hbGl0eS5oIiAyCgoKI2RlZmluZSBTVElDS1lfVElNRU9VVFMgMHg0MDAwMDAwCiNk
ZWZpbmUgV0hPTEVfU0VDT05EUyAweDIwMDAwMDAKI2RlZmluZSBBRERSX0xJTUlUXzMyQklUIDB4
MDgwMDAwMAoKCgoKI2RlZmluZSBQRVJfTUFTSyAoMHgwMGZmKQojZGVmaW5lIFBFUl9MSU5VWCAo
MHgwMDAwKQojZGVmaW5lIFBFUl9MSU5VWF8zMkJJVCAoMHgwMDAwIHwgQUREUl9MSU1JVF8zMkJJ
VCkKI2RlZmluZSBQRVJfU1ZSNCAoMHgwMDAxIHwgU1RJQ0tZX1RJTUVPVVRTKQojZGVmaW5lIFBF
Ul9TVlIzICgweDAwMDIgfCBTVElDS1lfVElNRU9VVFMpCiNkZWZpbmUgUEVSX1NDT1NWUjMgKDB4
MDAwMyB8IFNUSUNLWV9USU1FT1VUUyB8IFdIT0xFX1NFQ09ORFMpCiNkZWZpbmUgUEVSX1dZU0VW
Mzg2ICgweDAwMDQgfCBTVElDS1lfVElNRU9VVFMpCiNkZWZpbmUgUEVSX0lTQ1I0ICgweDAwMDUg
fCBTVElDS1lfVElNRU9VVFMpCiNkZWZpbmUgUEVSX0JTRCAoMHgwMDA2KQojZGVmaW5lIFBFUl9T
VU5PUyAoUEVSX0JTRCB8IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfWEVOSVggKDB4MDAw
NyB8IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfTElOVVgzMiAoMHgwMDA4KQojZGVmaW5l
IFBFUl9JUklYMzIgKDB4MDAwOSB8IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfSVJJWE4z
MiAoMHgwMDBhIHwgU1RJQ0tZX1RJTUVPVVRTKQojZGVmaW5lIFBFUl9JUklYNjQgKDB4MDAwYiB8
IFNUSUNLWV9USU1FT1VUUykKI2RlZmluZSBQRVJfUklTQ09TICgweDAwMGMpCiNkZWZpbmUgUEVS
X1NPTEFSSVMgKDB4MDAwZCB8IFNUSUNLWV9USU1FT1VUUykKCgp0eXBlZGVmIHZvaWQgKCpsY2Fs
bDdfZnVuYykoaW50LCBzdHJ1Y3QgcHRfcmVncyAqKTsKCgoKCgoKCnN0cnVjdCBleGVjX2RvbWFp
biB7CiAgICAgICAgY29uc3QgY2hhciAqbmFtZTsKICAgICAgICBsY2FsbDdfZnVuYyBoYW5kbGVy
OwogICAgICAgIHVuc2lnbmVkIGNoYXIgcGVyc19sb3csIHBlcnNfaGlnaDsKICAgICAgICB1bnNp
Z25lZCBsb25nICogc2lnbmFsX21hcDsKICAgICAgICB1bnNpZ25lZCBsb25nICogc2lnbmFsX2lu
dm1hcDsKICAgICAgICBzdHJ1Y3QgbW9kdWxlICogbW9kdWxlOwogICAgICAgIHN0cnVjdCBleGVj
X2RvbWFpbiAqbmV4dDsKfTsKCmV4dGVybiBzdHJ1Y3QgZXhlY19kb21haW4gZGVmYXVsdF9leGVj
X2RvbWFpbjsKCmV4dGVybiBpbnQgcmVnaXN0ZXJfZXhlY19kb21haW5fUnNtcF83MDFmMDI0Yihz
dHJ1Y3QgZXhlY19kb21haW4gKml0KTsKZXh0ZXJuIGludCB1bnJlZ2lzdGVyX2V4ZWNfZG9tYWlu
X1JzbXBfNWY0MDZhNGEoc3RydWN0IGV4ZWNfZG9tYWluICppdCk7CiNkZWZpbmUgcHV0X2V4ZWNf
ZG9tYWluKGl0KSBpZiAoaXQgJiYgaXQtPm1vZHVsZSkgX19NT0RfREVDX1VTRV9DT1VOVChpdC0+
bW9kdWxlKTsKCiNkZWZpbmUgZ2V0X2V4ZWNfZG9tYWluKGl0KSBpZiAoaXQgJiYgaXQtPm1vZHVs
ZSkgX19NT0RfSU5DX1VTRV9DT1VOVChpdC0+bW9kdWxlKTsKCmV4dGVybiB2b2lkIF9fc2V0X3Bl
cnNvbmFsaXR5X1JzbXBfN2Q2NzhiNjkodW5zaWduZWQgbG9uZyBwZXJzb25hbGl0eSk7CiNkZWZp
bmUgc2V0X3BlcnNvbmFsaXR5KHBlcnMpIGRvIHsgaWYgKGN1cnJlbnQtPnBlcnNvbmFsaXR5ICE9
IHBlcnMpIF9fc2V0X3BlcnNvbmFsaXR5KHBlcnMpOyB9IHdoaWxlICgwKQoKCgogX19hdHRyaWJ1
dGVfXygoc3lzY2FsbF9saW5rYWdlKSkgbG9uZyBzeXNfcGVyc29uYWxpdHkodW5zaWduZWQgbG9u
ZyBwZXJzb25hbGl0eSk7CiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
c2NoZWQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGhyZWFk
cy5oIiAxCiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgva2VybmVsLmgiIDEKIyAx
MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90eXBlcy5oIiAxCiMgMTQgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXMuaCIgMQoKI2RlZmluZSBfTElOVVhfVElNRVNfSAoK
c3RydWN0IHRtcyB7CiAgICAgICAgY2xvY2tfdCB0bXNfdXRpbWU7CiAgICAgICAgY2xvY2tfdCB0
bXNfc3RpbWU7CiAgICAgICAgY2xvY2tfdCB0bXNfY3V0aW1lOwogICAgICAgIGNsb2NrX3QgdG1z
X2NzdGltZTsKfTsKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hl
ZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1leC5oIiAx
CiMgNTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXguaCIKI2RlZmlu
ZSBfTElOVVhfVElNRVhfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9w
YXJhbS5oIiAxCiMgNTUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXgu
aCIgMgojIDc2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RpbWV4LmgiCiNk
ZWZpbmUgU0hJRlRfSFogMTAKIyA5MiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC90aW1leC5oIgojZGVmaW5lIFNISUZUX0tHIDYKI2RlZmluZSBTSElGVF9LRiAxNgojZGVmaW5l
IFNISUZUX0tIIDIKI2RlZmluZSBNQVhUQyA2CiMgMTExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3RpbWV4LmgiCiNkZWZpbmUgU0hJRlRfU0NBTEUgMjIKI2RlZmluZSBTSElG
VF9VUERBVEUgKFNISUZUX0tHICsgTUFYVEMpCiNkZWZpbmUgU0hJRlRfVVNFQyAxNgojZGVmaW5l
IEZJTkVVU0VDICgxTCA8PCBTSElGVF9TQ0FMRSkKCiNkZWZpbmUgTUFYUEhBU0UgNTEyMDAwTAoj
ZGVmaW5lIE1BWEZSRVEgKDUxMkwgPDwgU0hJRlRfVVNFQykKI2RlZmluZSBNQVhUSU1FICgyMDBM
IDw8IFBQU19BVkcpCiNkZWZpbmUgTUlOU0VDIDE2TAojZGVmaW5lIE1BWFNFQyAxMjAwTAojZGVm
aW5lIE5UUF9QSEFTRV9MSU1JVCAoTUFYUEhBU0UgPDwgNSkKIyAxNDMgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdGltZXguaCIKI2RlZmluZSBQUFNfQVZHIDIKI2RlZmluZSBQ
UFNfU0hJRlQgMgojZGVmaW5lIFBQU19TSElGVE1BWCA4CiNkZWZpbmUgUFBTX1ZBTElEIDEyMAoj
ZGVmaW5lIE1BWEdMSVRDSCAzMAoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2FzbS90aW1leC5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9USU1FWF9ICiMgMTMgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3RpbWV4LmgiCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBj
eWNsZXNfdDsKCnN0YXRpYyBpbmxpbmUgY3ljbGVzX3QKZ2V0X2N5Y2xlcyAodm9pZCkKewogICAg
ICAgIGN5Y2xlc190IHJldDsKCiAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgJTA9
YXIuaXRjIiA6ICI9ciIocmV0KSk7CiAgICAgICAgcmV0dXJuIHJldDsKfQojIDE1MyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1leC5oIiAyCgoKI2RlZmluZSBMQVRDSCAo
KENMT0NLX1RJQ0tfUkFURSArIEhaLzIpIC8gSFopCgoKCgoKc3RydWN0IHRpbWV4IHsKICAgICAg
ICB1bnNpZ25lZCBpbnQgbW9kZXM7CiAgICAgICAgbG9uZyBvZmZzZXQ7CiAgICAgICAgbG9uZyBm
cmVxOwogICAgICAgIGxvbmcgbWF4ZXJyb3I7CiAgICAgICAgbG9uZyBlc3RlcnJvcjsKICAgICAg
ICBpbnQgc3RhdHVzOwogICAgICAgIGxvbmcgY29uc3RhbnQ7CiAgICAgICAgbG9uZyBwcmVjaXNp
b247CiAgICAgICAgbG9uZyB0b2xlcmFuY2U7CgoKICAgICAgICBzdHJ1Y3QgdGltZXZhbCB0aW1l
OwogICAgICAgIGxvbmcgdGljazsKCiAgICAgICAgbG9uZyBwcHNmcmVxOwogICAgICAgIGxvbmcg
aml0dGVyOwogICAgICAgIGludCBzaGlmdDsKICAgICAgICBsb25nIHN0YWJpbDsKICAgICAgICBs
b25nIGppdGNudDsKICAgICAgICBsb25nIGNhbGNudDsKICAgICAgICBsb25nIGVycmNudDsKICAg
ICAgICBsb25nIHN0YmNudDsKCiAgICAgICAgaW50IDozMjsgaW50IDozMjsgaW50IDozMjsgaW50
IDozMjsKICAgICAgICBpbnQgOjMyOyBpbnQgOjMyOyBpbnQgOjMyOyBpbnQgOjMyOwogICAgICAg
IGludCA6MzI7IGludCA6MzI7IGludCA6MzI7IGludCA6MzI7Cn07CgoKCgojZGVmaW5lIEFESl9P
RkZTRVQgMHgwMDAxCiNkZWZpbmUgQURKX0ZSRVFVRU5DWSAweDAwMDIKI2RlZmluZSBBREpfTUFY
RVJST1IgMHgwMDA0CiNkZWZpbmUgQURKX0VTVEVSUk9SIDB4MDAwOAojZGVmaW5lIEFESl9TVEFU
VVMgMHgwMDEwCiNkZWZpbmUgQURKX1RJTUVDT05TVCAweDAwMjAKI2RlZmluZSBBREpfVElDSyAw
eDQwMDAKI2RlZmluZSBBREpfT0ZGU0VUX1NJTkdMRVNIT1QgMHg4MDAxCgoKI2RlZmluZSBNT0Rf
T0ZGU0VUIEFESl9PRkZTRVQKI2RlZmluZSBNT0RfRlJFUVVFTkNZIEFESl9GUkVRVUVOQ1kKI2Rl
ZmluZSBNT0RfTUFYRVJST1IgQURKX01BWEVSUk9SCiNkZWZpbmUgTU9EX0VTVEVSUk9SIEFESl9F
U1RFUlJPUgojZGVmaW5lIE1PRF9TVEFUVVMgQURKX1NUQVRVUwojZGVmaW5lIE1PRF9USU1FQ09O
U1QgQURKX1RJTUVDT05TVAojZGVmaW5lIE1PRF9DTEtCIEFESl9USUNLCiNkZWZpbmUgTU9EX0NM
S0EgQURKX09GRlNFVF9TSU5HTEVTSE9UCgoKCgoKI2RlZmluZSBTVEFfUExMIDB4MDAwMQojZGVm
aW5lIFNUQV9QUFNGUkVRIDB4MDAwMgojZGVmaW5lIFNUQV9QUFNUSU1FIDB4MDAwNAojZGVmaW5l
IFNUQV9GTEwgMHgwMDA4CgojZGVmaW5lIFNUQV9JTlMgMHgwMDEwCiNkZWZpbmUgU1RBX0RFTCAw
eDAwMjAKI2RlZmluZSBTVEFfVU5TWU5DIDB4MDA0MAojZGVmaW5lIFNUQV9GUkVRSE9MRCAweDAw
ODAKCiNkZWZpbmUgU1RBX1BQU1NJR05BTCAweDAxMDAKI2RlZmluZSBTVEFfUFBTSklUVEVSIDB4
MDIwMAojZGVmaW5lIFNUQV9QUFNXQU5ERVIgMHgwNDAwCiNkZWZpbmUgU1RBX1BQU0VSUk9SIDB4
MDgwMAoKI2RlZmluZSBTVEFfQ0xPQ0tFUlIgMHgxMDAwCgojZGVmaW5lIFNUQV9ST05MWSAoU1RB
X1BQU1NJR05BTCB8IFNUQV9QUFNKSVRURVIgfCBTVEFfUFBTV0FOREVSIHwgU1RBX1BQU0VSUk9S
IHwgU1RBX0NMT0NLRVJSKQoKCgoKCiNkZWZpbmUgVElNRV9PSyAwCiNkZWZpbmUgVElNRV9JTlMg
MQojZGVmaW5lIFRJTUVfREVMIDIKI2RlZmluZSBUSU1FX09PUCAzCiNkZWZpbmUgVElNRV9XQUlU
IDQKI2RlZmluZSBUSU1FX0VSUk9SIDUKI2RlZmluZSBUSU1FX0JBRCBUSU1FX0VSUk9SCgoKCgoK
CgpleHRlcm4gbG9uZyB0aWNrOwpleHRlcm4gaW50IHRpY2thZGo7CgoKCgpleHRlcm4gaW50IHRp
bWVfc3RhdGU7CmV4dGVybiBpbnQgdGltZV9zdGF0dXM7CmV4dGVybiBsb25nIHRpbWVfb2Zmc2V0
OwpleHRlcm4gbG9uZyB0aW1lX2NvbnN0YW50OwpleHRlcm4gbG9uZyB0aW1lX3RvbGVyYW5jZTsK
ZXh0ZXJuIGxvbmcgdGltZV9wcmVjaXNpb247CmV4dGVybiBsb25nIHRpbWVfbWF4ZXJyb3I7CmV4
dGVybiBsb25nIHRpbWVfZXN0ZXJyb3I7CgpleHRlcm4gbG9uZyB0aW1lX3BoYXNlOwpleHRlcm4g
bG9uZyB0aW1lX2ZyZXE7CmV4dGVybiBsb25nIHRpbWVfYWRqOwpleHRlcm4gbG9uZyB0aW1lX3Jl
ZnRpbWU7CgpleHRlcm4gbG9uZyB0aW1lX2FkanVzdDsKCgpleHRlcm4gbG9uZyBwcHNfb2Zmc2V0
OwpleHRlcm4gbG9uZyBwcHNfaml0dGVyOwpleHRlcm4gbG9uZyBwcHNfZnJlcTsKZXh0ZXJuIGxv
bmcgcHBzX3N0YWJpbDsKZXh0ZXJuIGxvbmcgcHBzX3ZhbGlkOwoKCmV4dGVybiBpbnQgcHBzX3No
aWZ0OwpleHRlcm4gbG9uZyBwcHNfaml0Y250OwpleHRlcm4gbG9uZyBwcHNfY2FsY250OwpleHRl
cm4gbG9uZyBwcHNfZXJyY250OwpleHRlcm4gbG9uZyBwcHNfc3RiY250OwojIDE2ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDEKIyAxOCAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vc2VtYXBob3JlLmgiIDEKIyAxOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20v
cGFnZS5oIiAxCiMgMjAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQu
aCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0cmFjZS5oIiAxCiMg
MjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21tdS5oIiAxCgojZGVmaW5lIF9fTU1VX0gK
Cgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbW1fY29udGV4dF90OwojIDIyICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9zbXAuaCIgMQoKI2RlZmluZSBfX0xJTlVYX1NNUF9ICgoKCgoKCiMg
MSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDEwICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtcC5oIiAyCgoKCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMQojIDE0ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtcC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vc21wLmgiIDEKIyAxMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vc21wLmgiCiNkZWZpbmUgX0FTTV9JQTY0X1NNUF9ICgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vc21wLmgiIDIKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2luaXQuaCIgMQoKI2RlZmluZSBfTElOVVhfSU5JVF9ICgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L2luaXQuaCIgMgojIDExNiAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9pbml0LmgiCiNkZWZpbmUgX19pbml0CiNkZWZpbmUgX19leGl0CiNk
ZWZpbmUgX19pbml0ZGF0YQojZGVmaW5lIF9fZXhpdGRhdGEKI2RlZmluZSBfX2luaXRjYWxsKGZu
KQoKI2RlZmluZSBfX0lOSVQKI2RlZmluZSBfX0ZJTklUCiNkZWZpbmUgX19JTklUREFUQQoKCgoK
Cgp0eXBlZGVmIGludCAoKl9faW5pdF9tb2R1bGVfZnVuY190KSh2b2lkKTsKdHlwZWRlZiB2b2lk
ICgqX19jbGVhbnVwX21vZHVsZV9mdW5jX3QpKHZvaWQpOwojZGVmaW5lIG1vZHVsZV9pbml0KHgp
IGludCBpbml0X21vZHVsZSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChhbGlhcygjeCkpKTsgZXh0ZXJu
IGlubGluZSBfX2luaXRfbW9kdWxlX2Z1bmNfdCBfX2luaXRfbW9kdWxlX2lubGluZSh2b2lkKSB7
IHJldHVybiB4OyB9CgoKCiNkZWZpbmUgbW9kdWxlX2V4aXQoeCkgdm9pZCBjbGVhbnVwX21vZHVs
ZSh2b2lkKSBfX2F0dHJpYnV0ZV9fKChhbGlhcygjeCkpKTsgZXh0ZXJuIGlubGluZSBfX2NsZWFu
dXBfbW9kdWxlX2Z1bmNfdCBfX2NsZWFudXBfbW9kdWxlX2lubGluZSh2b2lkKSB7IHJldHVybiB4
OyB9CgoKCgojZGVmaW5lIF9fc2V0dXAoc3RyLCBmdW5jKQoKCgoKI2RlZmluZSBfX2RldmluaXQK
I2RlZmluZSBfX2RldmluaXRkYXRhCiNkZWZpbmUgX19kZXZleGl0CiNkZWZpbmUgX19kZXZleGl0
ZGF0YQojIDE3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zbXAuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGhyZWFkcy5oIiAxCiMgMTggIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NtcC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMQojIDE5ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2FzbS9zbXAuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9pby5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9JT19ICiMgMjMgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvLmgiCiNkZWZpbmUgX19TTE9XX0RPV05fSU8gZG8geyB9
IHdoaWxlICgwKQojZGVmaW5lIFNMT1dfRE9XTl9JTyBkbyB7IH0gd2hpbGUgKDApCgojZGVmaW5l
IF9fSUE2NF9VTkNBQ0hFRF9PRkZTRVQgMHhjMDAwMDAwMDAwMDAwMDAwCgojZGVmaW5lIElPX1NQ
QUNFX0xJTUlUIDB4ZmZmZgoKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L21hY2h2ZWMuaCIgMQojIDExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9tYWNo
dmVjLmgiCiNkZWZpbmUgX0FTTV9JQTY0X01BQ0hWRUNfSAoKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvYXNtL21hY2h2ZWMuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvdHlwZXMuaCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz
bS9tYWNodmVjLmgiIDIKCgpzdHJ1Y3QgcGNpX2RldjsKc3RydWN0IHB0X3JlZ3M7CnN0cnVjdCBz
Y2F0dGVybGlzdDsKc3RydWN0IGlycV9kZXNjOwoKdHlwZWRlZiB2b2lkIGlhNjRfbXZfc2V0dXBf
dCAoY2hhciAqKik7CnR5cGVkZWYgdm9pZCBpYTY0X212X2lycV9pbml0X3QgKHZvaWQpOwp0eXBl
ZGVmIHZvaWQgaWE2NF9tdl9wY2lfZml4dXBfdCAoaW50KTsKdHlwZWRlZiB1bnNpZ25lZCBsb25n
IGlhNjRfbXZfbWFwX25yX3QgKHVuc2lnbmVkIGxvbmcpOwp0eXBlZGVmIHZvaWQgaWE2NF9tdl9t
Y2FfaW5pdF90ICh2b2lkKTsKdHlwZWRlZiB2b2lkIGlhNjRfbXZfbWNhX2hhbmRsZXJfdCAodm9p
ZCk7CnR5cGVkZWYgdm9pZCBpYTY0X212X2NtY2lfaGFuZGxlcl90IChpbnQsIHZvaWQgKiwgc3Ry
dWN0IHB0X3JlZ3MgKik7CnR5cGVkZWYgdm9pZCBpYTY0X212X2xvZ19wcmludF90ICh2b2lkKTsK
dHlwZWRlZiB2b2lkIGlhNjRfbXZfc2VuZF9pcGlfdCAoaW50LCBpbnQsIGludCwgaW50KTsKdHlw
ZWRlZiBzdHJ1Y3QgaXJxX2Rlc2MgKmlhNjRfbXZfaXJxX2Rlc2MgKHVuc2lnbmVkIGludCk7CnR5
cGVkZWYgdTggaWE2NF9tdl9pcnFfdG9fdmVjdG9yICh1OCk7CnR5cGVkZWYgdW5zaWduZWQgaW50
IGlhNjRfbXZfbG9jYWxfdmVjdG9yX3RvX2lycSAodTggdmVjdG9yKTsKCgp0eXBlZGVmIHZvaWQg
aWE2NF9tdl9wY2lfZG1hX2luaXQgKHZvaWQpOwp0eXBlZGVmIHZvaWQgKmlhNjRfbXZfcGNpX2Fs
bG9jX2NvbnNpc3RlbnQgKHN0cnVjdCBwY2lfZGV2ICosIHNpemVfdCwgZG1hX2FkZHJfdCAqKTsK
dHlwZWRlZiB2b2lkIGlhNjRfbXZfcGNpX2ZyZWVfY29uc2lzdGVudCAoc3RydWN0IHBjaV9kZXYg
Kiwgc2l6ZV90LCB2b2lkICosIGRtYV9hZGRyX3QpOwp0eXBlZGVmIGRtYV9hZGRyX3QgaWE2NF9t
dl9wY2lfbWFwX3NpbmdsZSAoc3RydWN0IHBjaV9kZXYgKiwgdm9pZCAqLCBzaXplX3QsIGludCk7
CnR5cGVkZWYgdm9pZCBpYTY0X212X3BjaV91bm1hcF9zaW5nbGUgKHN0cnVjdCBwY2lfZGV2ICos
IGRtYV9hZGRyX3QsIHNpemVfdCwgaW50KTsKdHlwZWRlZiBpbnQgaWE2NF9tdl9wY2lfbWFwX3Nn
IChzdHJ1Y3QgcGNpX2RldiAqLCBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKiwgaW50LCBpbnQpOwp0eXBl
ZGVmIHZvaWQgaWE2NF9tdl9wY2lfdW5tYXBfc2cgKHN0cnVjdCBwY2lfZGV2ICosIHN0cnVjdCBz
Y2F0dGVybGlzdCAqLCBpbnQsIGludCk7CnR5cGVkZWYgdm9pZCBpYTY0X212X3BjaV9kbWFfc3lu
Y19zaW5nbGUgKHN0cnVjdCBwY2lfZGV2ICosIGRtYV9hZGRyX3QsIHNpemVfdCwgaW50KTsKdHlw
ZWRlZiB2b2lkIGlhNjRfbXZfcGNpX2RtYV9zeW5jX3NnIChzdHJ1Y3QgcGNpX2RldiAqLCBzdHJ1
Y3Qgc2NhdHRlcmxpc3QgKiwgaW50LCBpbnQpOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaWE2NF9t
dl9wY2lfZG1hX2FkZHJlc3MgKHN0cnVjdCBzY2F0dGVybGlzdCAqKTsKIyA1NSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vbWFjaHZlYy5oIgp0eXBlZGVmIHVuc2lnbmVkIGludCBp
YTY0X212X2luYl90ICh1bnNpZ25lZCBsb25nKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgaWE2NF9t
dl9pbndfdCAodW5zaWduZWQgbG9uZyk7CnR5cGVkZWYgdW5zaWduZWQgaW50IGlhNjRfbXZfaW5s
X3QgKHVuc2lnbmVkIGxvbmcpOwp0eXBlZGVmIHZvaWQgaWE2NF9tdl9vdXRiX3QgKHVuc2lnbmVk
IGNoYXIsIHVuc2lnbmVkIGxvbmcpOwp0eXBlZGVmIHZvaWQgaWE2NF9tdl9vdXR3X3QgKHVuc2ln
bmVkIHNob3J0LCB1bnNpZ25lZCBsb25nKTsKdHlwZWRlZiB2b2lkIGlhNjRfbXZfb3V0bF90ICh1
bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGxvbmcpOwoKZXh0ZXJuIHZvaWQgbWFjaHZlY19ub29wICh2
b2lkKTsKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vbWFjaHZlY19k
aWcuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfTUFDSFZFQ19ESUdfaAoKZXh0ZXJuIGlhNjRfbXZf
c2V0dXBfdCBkaWdfc2V0dXA7CmV4dGVybiBpYTY0X212X2lycV9pbml0X3QgZGlnX2lycV9pbml0
OwpleHRlcm4gaWE2NF9tdl9wY2lfZml4dXBfdCBpb3NhcGljX3BjaV9maXh1cDsKZXh0ZXJuIGlh
NjRfbXZfbWFwX25yX3QgbWFwX25yX2RlbnNlOwojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9tYWNodmVjX2RpZy5oIgojZGVmaW5lIHBsYXRmb3JtX25hbWUgImRpZyIKI2Rl
ZmluZSBwbGF0Zm9ybV9zZXR1cCBkaWdfc2V0dXAKI2RlZmluZSBwbGF0Zm9ybV9pcnFfaW5pdCBk
aWdfaXJxX2luaXQKI2RlZmluZSBwbGF0Zm9ybV9wY2lfZml4dXAgaW9zYXBpY19wY2lfZml4dXAK
I2RlZmluZSBwbGF0Zm9ybV9tYXBfbnIgbWFwX25yX2RlbnNlCiMgNjggIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvYXNtL21hY2h2ZWMuaCIgMgojIDE4MSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vbWFjaHZlYy5oIgpleHRlcm4gaWE2NF9tdl9wY2lfZG1hX2luaXQgc3dp
b3RsYl9pbml0X1JzbXBfY2NkNzE4OTA7CmV4dGVybiBpYTY0X212X3BjaV9hbGxvY19jb25zaXN0
ZW50IHN3aW90bGJfYWxsb2NfY29uc2lzdGVudF9Sc21wXzAxZjZkMDYxOwpleHRlcm4gaWE2NF9t
dl9wY2lfZnJlZV9jb25zaXN0ZW50IHN3aW90bGJfZnJlZV9jb25zaXN0ZW50X1JzbXBfYzkwNWVm
Mzk7CmV4dGVybiBpYTY0X212X3BjaV9tYXBfc2luZ2xlIHN3aW90bGJfbWFwX3NpbmdsZV9Sc21w
XzYwOTU1MDJkOwpleHRlcm4gaWE2NF9tdl9wY2lfdW5tYXBfc2luZ2xlIHN3aW90bGJfdW5tYXBf
c2luZ2xlX1JzbXBfZTYwMzUxYTM7CmV4dGVybiBpYTY0X212X3BjaV9tYXBfc2cgc3dpb3RsYl9t
YXBfc2dfUnNtcF9iYTEzMjA0MjsKZXh0ZXJuIGlhNjRfbXZfcGNpX3VubWFwX3NnIHN3aW90bGJf
dW5tYXBfc2dfUnNtcF8wOTUyZmZjNTsKZXh0ZXJuIGlhNjRfbXZfcGNpX2RtYV9zeW5jX3Npbmds
ZSBzd2lvdGxiX3N5bmNfc2luZ2xlX1JzbXBfNzkyYzMxMWY7CmV4dGVybiBpYTY0X212X3BjaV9k
bWFfc3luY19zZyBzd2lvdGxiX3N5bmNfc2dfUnNtcF83MzNjNzM4MzsKZXh0ZXJuIGlhNjRfbXZf
cGNpX2RtYV9hZGRyZXNzIHN3aW90bGJfZG1hX2FkZHJlc3NfUnNtcF9kMzk1MzFlZjsKIyAyMDMg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21hY2h2ZWMuaCIKI2RlZmluZSBwbGF0
Zm9ybV9tY2FfaW5pdCAoKGlhNjRfbXZfbWNhX2luaXRfdCAqKSBtYWNodmVjX25vb3ApCgoKI2Rl
ZmluZSBwbGF0Zm9ybV9tY2FfaGFuZGxlciAoKGlhNjRfbXZfbWNhX2hhbmRsZXJfdCAqKSBtYWNo
dmVjX25vb3ApCgoKI2RlZmluZSBwbGF0Zm9ybV9jbWNpX2hhbmRsZXIgKChpYTY0X212X2NtY2lf
aGFuZGxlcl90ICopIG1hY2h2ZWNfbm9vcCkKCgojZGVmaW5lIHBsYXRmb3JtX2xvZ19wcmludCAo
KGlhNjRfbXZfbG9nX3ByaW50X3QgKikgbWFjaHZlY19ub29wKQoKCgoKCiNkZWZpbmUgcGxhdGZv
cm1fc2VuZF9pcGkgaWE2NF9zZW5kX2lwaQoKCiNkZWZpbmUgcGxhdGZvcm1fcGNpX2RtYV9pbml0
IHN3aW90bGJfaW5pdAoKCiNkZWZpbmUgcGxhdGZvcm1fcGNpX2FsbG9jX2NvbnNpc3RlbnQgc3dp
b3RsYl9hbGxvY19jb25zaXN0ZW50CgoKI2RlZmluZSBwbGF0Zm9ybV9wY2lfZnJlZV9jb25zaXN0
ZW50IHN3aW90bGJfZnJlZV9jb25zaXN0ZW50CgoKI2RlZmluZSBwbGF0Zm9ybV9wY2lfbWFwX3Np
bmdsZSBzd2lvdGxiX21hcF9zaW5nbGUKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV91bm1hcF9zaW5n
bGUgc3dpb3RsYl91bm1hcF9zaW5nbGUKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV9tYXBfc2cgc3dp
b3RsYl9tYXBfc2cKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV91bm1hcF9zZyBzd2lvdGxiX3VubWFw
X3NnCgoKI2RlZmluZSBwbGF0Zm9ybV9wY2lfZG1hX3N5bmNfc2luZ2xlIHN3aW90bGJfc3luY19z
aW5nbGUKCgojZGVmaW5lIHBsYXRmb3JtX3BjaV9kbWFfc3luY19zZyBzd2lvdGxiX3N5bmNfc2cK
CgojZGVmaW5lIHBsYXRmb3JtX3BjaV9kbWFfYWRkcmVzcyBzd2lvdGxiX2RtYV9hZGRyZXNzCgoK
I2RlZmluZSBwbGF0Zm9ybV9pcnFfZGVzYyBfX2lhNjRfaXJxX2Rlc2MKCgojZGVmaW5lIHBsYXRm
b3JtX2lycV90b192ZWN0b3IgX19pYTY0X2lycV90b192ZWN0b3IKCgojZGVmaW5lIHBsYXRmb3Jt
X2xvY2FsX3ZlY3Rvcl90b19pcnEgX19pYTY0X2xvY2FsX3ZlY3Rvcl90b19pcnEKCgojZGVmaW5l
IHBsYXRmb3JtX2luYiBfX2lhNjRfaW5iCgoKI2RlZmluZSBwbGF0Zm9ybV9pbncgX19pYTY0X2lu
dwoKCiNkZWZpbmUgcGxhdGZvcm1faW5sIF9faWE2NF9pbmwKCgojZGVmaW5lIHBsYXRmb3JtX291
dGIgX19pYTY0X291dGIKCgojZGVmaW5lIHBsYXRmb3JtX291dHcgX19pYTY0X291dHcKCgojZGVm
aW5lIHBsYXRmb3JtX291dGwgX19pYTY0X291dGwKIyAzMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vaW8uaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3BhZ2UuaCIgMQojIDM0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9pby5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDEKIyAzNSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vaW8uaCIgMgoKCgoKc3RhdGljIGlubGlu
ZSB1bnNpZ25lZCBsb25nCnZpcnRfdG9fcGh5cyAodm9sYXRpbGUgdm9pZCAqYWRkcmVzcykKewog
ICAgICAgIHJldHVybiAodW5zaWduZWQgbG9uZykgYWRkcmVzcyAtIDB4ZTAwMDAwMDAwMDAwMDAw
MDsKfQoKc3RhdGljIGlubGluZSB2b2lkKgpwaHlzX3RvX3ZpcnQodW5zaWduZWQgbG9uZyBhZGRy
ZXNzKQp7CiAgICAgICAgcmV0dXJuICh2b2lkICopIChhZGRyZXNzICsgMHhlMDAwMDAwMDAwMDAw
MDAwKTsKfQoKCgoKCiNkZWZpbmUgYnVzX3RvX3ZpcnQgcGh5c190b192aXJ0CiNkZWZpbmUgdmly
dF90b19idXMgdmlydF90b19waHlzCgoKCgoKCgojZGVmaW5lIF9faWE2NF9tZl9hKCkgX19hc21f
XyBfX3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpCgpzdGF0aWMgaW5saW5lIGNvbnN0
IHVuc2lnbmVkIGxvbmcKX19pYTY0X2dldF9pb19wb3J0X2Jhc2UgKHZvaWQpCnsKICAgICAgICBl
eHRlcm4gdW5zaWduZWQgbG9uZyBpYTY0X2lvYmFzZV9Sc21wXzA4ZTZiMDA3OwoKICAgICAgICBy
ZXR1cm4gaWE2NF9pb2Jhc2VfUnNtcF8wOGU2YjAwNzsKfQoKc3RhdGljIGlubGluZSB2b2lkKgpf
X2lhNjRfbWtfaW9fYWRkciAodW5zaWduZWQgbG9uZyBwb3J0KQp7CiAgICAgICAgY29uc3QgdW5z
aWduZWQgbG9uZyBpb19iYXNlID0gX19pYTY0X2dldF9pb19wb3J0X2Jhc2UoKTsKICAgICAgICB1
bnNpZ25lZCBsb25nIGFkZHI7CgogICAgICAgIGFkZHIgPSBpb19iYXNlIHwgKChwb3J0ID4+IDIp
IDw8IDEyKSB8IChwb3J0ICYgMHhmZmYpOwogICAgICAgIHJldHVybiAodm9pZCAqKSBhZGRyOwp9
CiMgOTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvLmgiCnN0YXRpYyBpbmxp
bmUgdW5zaWduZWQgaW50Cl9faWE2NF9pbmIgKHVuc2lnbmVkIGxvbmcgcG9ydCkKewogICAgICAg
IHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihwb3J0KTsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIHJldDsKCiAgICAgICAgcmV0ID0gKmFkZHI7CiAgICAgICAg
X19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwogICAgICAgIHJldHVy
biByZXQ7Cn0KCnN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50Cl9faWE2NF9pbncgKHVuc2lnbmVk
IGxvbmcgcG9ydCkKewogICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIHNob3J0ICphZGRyID0gX19p
YTY0X21rX2lvX2FkZHIocG9ydCk7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgcmV0OwoKICAgICAg
ICByZXQgPSAqYWRkcjsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6OiAi
bWVtb3J5Iik7CiAgICAgICAgcmV0dXJuIHJldDsKfQoKc3RhdGljIGlubGluZSB1bnNpZ25lZCBp
bnQKX19pYTY0X2lubCAodW5zaWduZWQgbG9uZyBwb3J0KQp7CiAgICAgICAgdm9sYXRpbGUgdW5z
aWduZWQgaW50ICphZGRyID0gX19pYTY0X21rX2lvX2FkZHIocG9ydCk7CiAgICAgICAgdW5zaWdu
ZWQgaW50IHJldDsKCiAgICAgICAgcmV0ID0gKmFkZHI7CiAgICAgICAgX19hc21fXyBfX3ZvbGF0
aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwogICAgICAgIHJldHVybiByZXQ7Cn0KCnN0YXRp
YyBpbmxpbmUgdm9pZApfX2lhNjRfb3V0YiAodW5zaWduZWQgY2hhciB2YWwsIHVuc2lnbmVkIGxv
bmcgcG9ydCkKewogICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmFkZHIgPSBfX2lhNjRf
bWtfaW9fYWRkcihwb3J0KTsKCiAgICAgICAgKmFkZHIgPSB2YWw7CiAgICAgICAgX19hc21fXyBf
X3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQK
X19pYTY0X291dHcgKHVuc2lnbmVkIHNob3J0IHZhbCwgdW5zaWduZWQgbG9uZyBwb3J0KQp7CiAg
ICAgICAgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihw
b3J0KTsKCiAgICAgICAgKmFkZHIgPSB2YWw7CiAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18g
KCJtZi5hIiA6OjogIm1lbW9yeSIpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKX19pYTY0X291dGwg
KHVuc2lnbmVkIGludCB2YWwsIHVuc2lnbmVkIGxvbmcgcG9ydCkKewogICAgICAgIHZvbGF0aWxl
IHVuc2lnbmVkIGludCAqYWRkciA9IF9faWE2NF9ta19pb19hZGRyKHBvcnQpOwoKICAgICAgICAq
YWRkciA9IHZhbDsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6OiAibWVt
b3J5Iik7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX2luc2IgKHVuc2lnbmVkIGxvbmcgcG9ydCwg
dm9pZCAqZHN0LCB1bnNpZ25lZCBsb25nIGNvdW50KQp7CiAgICAgICAgdW5zaWduZWQgY2hhciAq
ZHAgPSBkc3Q7CgogICAgICAgIGlmIChfX2lhNjRfaW5iID09IF9faWE2NF9pbmIpIHsKICAgICAg
ICAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRk
cihwb3J0KTsKCiAgICAgICAgICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6
OiAibWVtb3J5Iik7CiAgICAgICAgICAgICAgICB3aGlsZSAoY291bnQtLSkKICAgICAgICAgICAg
ICAgICAgICAgICAgKmRwKysgPSAqYWRkcjsKICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xh
dGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICAqZHArKyA9IF9faWE2
NF9pbmIocG9ydCk7CiAgICAgICAgcmV0dXJuOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKX19pbnN3
ICh1bnNpZ25lZCBsb25nIHBvcnQsIHZvaWQgKmRzdCwgdW5zaWduZWQgbG9uZyBjb3VudCkKewog
ICAgICAgIHVuc2lnbmVkIHNob3J0ICpkcCA9IGRzdDsKCiAgICAgICAgaWYgKF9faWE2NF9pbncg
PT0gX19pYTY0X2ludykgewogICAgICAgICAgICAgICAgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQg
KmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihwb3J0KTsKCiAgICAgICAgICAgICAgICBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIm1mLmEiIDo6OiAibWVtb3J5Iik7CiAgICAgICAgICAgICAgICB3aGls
ZSAoY291bnQtLSkKICAgICAgICAgICAgICAgICAgICAgICAgKmRwKysgPSAqYWRkcjsKICAgICAg
ICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAg
ICAgICAgICAgICAqZHArKyA9IF9faWE2NF9pbncocG9ydCk7CiAgICAgICAgcmV0dXJuOwp9Cgpz
dGF0aWMgaW5saW5lIHZvaWQKX19pbnNsICh1bnNpZ25lZCBsb25nIHBvcnQsIHZvaWQgKmRzdCwg
dW5zaWduZWQgbG9uZyBjb3VudCkKewogICAgICAgIHVuc2lnbmVkIGludCAqZHAgPSBkc3Q7Cgog
ICAgICAgIGlmIChfX2lhNjRfaW5sID09IF9faWE2NF9pbmwpIHsKICAgICAgICAgICAgICAgIHZv
bGF0aWxlIHVuc2lnbmVkIGludCAqYWRkciA9IF9faWE2NF9ta19pb19hZGRyKHBvcnQpOwoKICAg
ICAgICAgICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsK
ICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICAq
ZHArKyA9ICphZGRyOwogICAgICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZi5h
IiA6OjogIm1lbW9yeSIpOwogICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgd2hpbGUgKGNv
dW50LS0pCiAgICAgICAgICAgICAgICAgICAgICAgICpkcCsrID0gX19pYTY0X2lubChwb3J0KTsK
ICAgICAgICByZXR1cm47Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX291dHNiICh1bnNpZ25lZCBs
b25nIHBvcnQsIGNvbnN0IHZvaWQgKnNyYywgdW5zaWduZWQgbG9uZyBjb3VudCkKewogICAgICAg
IGNvbnN0IHVuc2lnbmVkIGNoYXIgKnNwID0gc3JjOwoKICAgICAgICBpZiAoX19pYTY0X291dGIg
PT0gX19pYTY0X291dGIpIHsKICAgICAgICAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIg
KmFkZHIgPSBfX2lhNjRfbWtfaW9fYWRkcihwb3J0KTsKCiAgICAgICAgICAgICAgICB3aGlsZSAo
Y291bnQtLSkKICAgICAgICAgICAgICAgICAgICAgICAgKmFkZHIgPSAqc3ArKzsKICAgICAgICAg
ICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAg
ICAgICAgICBfX2lhNjRfb3V0Yigqc3ArKywgcG9ydCk7CiAgICAgICAgcmV0dXJuOwp9CgpzdGF0
aWMgaW5saW5lIHZvaWQKX19vdXRzdyAodW5zaWduZWQgbG9uZyBwb3J0LCBjb25zdCB2b2lkICpz
cmMsIHVuc2lnbmVkIGxvbmcgY291bnQpCnsKICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAq
c3AgPSBzcmM7CgogICAgICAgIGlmIChfX2lhNjRfb3V0dyA9PSBfX2lhNjRfb3V0dykgewogICAg
ICAgICAgICAgICAgdm9sYXRpbGUgdW5zaWduZWQgc2hvcnQgKmFkZHIgPSBfX2lhNjRfbWtfaW9f
YWRkcihwb3J0KTsKCiAgICAgICAgICAgICAgICB3aGlsZSAoY291bnQtLSkKICAgICAgICAgICAg
ICAgICAgICAgICAgKmFkZHIgPSAqc3ArKzsKICAgICAgICAgICAgICAgIF9fYXNtX18gX192b2xh
dGlsZV9fICgibWYuYSIgOjo6ICJtZW1vcnkiKTsKICAgICAgICB9IGVsc2UKICAgICAgICAgICAg
ICAgIHdoaWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICBfX2lhNjRfb3V0dygq
c3ArKywgcG9ydCk7CiAgICAgICAgcmV0dXJuOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKX19vdXRz
bCAodW5zaWduZWQgbG9uZyBwb3J0LCB2b2lkICpzcmMsIHVuc2lnbmVkIGxvbmcgY291bnQpCnsK
ICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgKnNwID0gc3JjOwoKICAgICAgICBpZiAoX19pYTY0
X291dGwgPT0gX19pYTY0X291dGwpIHsKICAgICAgICAgICAgICAgIHZvbGF0aWxlIHVuc2lnbmVk
IGludCAqYWRkciA9IF9faWE2NF9ta19pb19hZGRyKHBvcnQpOwoKICAgICAgICAgICAgICAgIHdo
aWxlIChjb3VudC0tKQogICAgICAgICAgICAgICAgICAgICAgICAqYWRkciA9ICpzcCsrOwogICAg
ICAgICAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtZi5hIiA6OjogIm1lbW9yeSIpOwog
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgd2hpbGUgKGNvdW50LS0pCiAgICAgICAgICAg
ICAgICAgICAgICAgIF9faWE2NF9vdXRsKCpzcCsrLCBwb3J0KTsKICAgICAgICByZXR1cm47Cn0K
CgoKCgoKI2RlZmluZSBfX2luYiBwbGF0Zm9ybV9pbmIKI2RlZmluZSBfX2ludyBwbGF0Zm9ybV9p
bncKI2RlZmluZSBfX2lubCBwbGF0Zm9ybV9pbmwKI2RlZmluZSBfX291dGIgcGxhdGZvcm1fb3V0
YgojZGVmaW5lIF9fb3V0dyBwbGF0Zm9ybV9vdXR3CiNkZWZpbmUgX19vdXRsIHBsYXRmb3JtX291
dGwKCiNkZWZpbmUgaW5iIF9faW5iCiNkZWZpbmUgaW53IF9faW53CiNkZWZpbmUgaW5sIF9faW5s
CiNkZWZpbmUgaW5zYiBfX2luc2IKI2RlZmluZSBpbnN3IF9faW5zdwojZGVmaW5lIGluc2wgX19p
bnNsCiNkZWZpbmUgb3V0YiBfX291dGIKI2RlZmluZSBvdXR3IF9fb3V0dwojZGVmaW5lIG91dGwg
X19vdXRsCiNkZWZpbmUgb3V0c2IgX19vdXRzYgojZGVmaW5lIG91dHN3IF9fb3V0c3cKI2RlZmlu
ZSBvdXRzbCBfX291dHNsCgoKCgpzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIKX19yZWFkYiAo
dm9pZCAqYWRkcikKewogICAgICAgIHJldHVybiAqKHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgKilh
ZGRyOwp9CgpzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHNob3J0Cl9fcmVhZHcgKHZvaWQgKmFkZHIp
CnsKICAgICAgICByZXR1cm4gKih2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKWFkZHI7Cn0KCnN0
YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50Cl9fcmVhZGwgKHZvaWQgKmFkZHIpCnsKICAgICAgICBy
ZXR1cm4gKih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKikgYWRkcjsKfQoKc3RhdGljIGlubGluZSB1
bnNpZ25lZCBsb25nCl9fcmVhZHEgKHZvaWQgKmFkZHIpCnsKICAgICAgICByZXR1cm4gKih2b2xh
dGlsZSB1bnNpZ25lZCBsb25nICopIGFkZHI7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX3dyaXRl
YiAodW5zaWduZWQgY2hhciB2YWwsIHZvaWQgKmFkZHIpCnsKICAgICAgICAqKHZvbGF0aWxlIHVu
c2lnbmVkIGNoYXIgKikgYWRkciA9IHZhbDsKfQoKc3RhdGljIGlubGluZSB2b2lkCl9fd3JpdGV3
ICh1bnNpZ25lZCBzaG9ydCB2YWwsIHZvaWQgKmFkZHIpCnsKICAgICAgICAqKHZvbGF0aWxlIHVu
c2lnbmVkIHNob3J0ICopIGFkZHIgPSB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX3dyaXRl
bCAodW5zaWduZWQgaW50IHZhbCwgdm9pZCAqYWRkcikKewogICAgICAgICoodm9sYXRpbGUgdW5z
aWduZWQgaW50ICopIGFkZHIgPSB2YWw7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApfX3dyaXRlcSAo
dW5zaWduZWQgbG9uZyB2YWwsIHZvaWQgKmFkZHIpCnsKICAgICAgICAqKHZvbGF0aWxlIHVuc2ln
bmVkIGxvbmcgKikgYWRkciA9IHZhbDsKfQoKI2RlZmluZSByZWFkYihhKSBfX3JlYWRiKCh2b2lk
ICopKGEpKQojZGVmaW5lIHJlYWR3KGEpIF9fcmVhZHcoKHZvaWQgKikoYSkpCiNkZWZpbmUgcmVh
ZGwoYSkgX19yZWFkbCgodm9pZCAqKShhKSkKI2RlZmluZSByZWFkcShhKSBfX3JlYWRxKCh2b2lk
ICopKGEpKQojZGVmaW5lIF9fcmF3X3JlYWRiIHJlYWRiCiNkZWZpbmUgX19yYXdfcmVhZHcgcmVh
ZHcKI2RlZmluZSBfX3Jhd19yZWFkbCByZWFkbAojZGVmaW5lIF9fcmF3X3JlYWRxIHJlYWRxCiNk
ZWZpbmUgd3JpdGViKHYsIGEpIF9fd3JpdGViKCh2KSwgKHZvaWQgKikgKGEpKQojZGVmaW5lIHdy
aXRldyh2LCBhKSBfX3dyaXRldygodiksICh2b2lkICopIChhKSkKI2RlZmluZSB3cml0ZWwodiwg
YSkgX193cml0ZWwoKHYpLCAodm9pZCAqKSAoYSkpCiNkZWZpbmUgd3JpdGVxKHYsIGEpIF9fd3Jp
dGVxKCh2KSwgKHZvaWQgKikgKGEpKQojZGVmaW5lIF9fcmF3X3dyaXRlYiB3cml0ZWIKI2RlZmlu
ZSBfX3Jhd193cml0ZXcgd3JpdGV3CiNkZWZpbmUgX19yYXdfd3JpdGVsIHdyaXRlbAojZGVmaW5l
IF9fcmF3X3dyaXRlcSB3cml0ZXEKCgojZGVmaW5lIGluYl9wIGluYgoKCiNkZWZpbmUgaW53X3Ag
aW53CgoKI2RlZmluZSBpbmxfcCBpbmwKCgoKI2RlZmluZSBvdXRiX3Agb3V0YgoKCiNkZWZpbmUg
b3V0d19wIG91dHcKCgojZGVmaW5lIG91dGxfcCBvdXRsCiMgMzc2ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2FzbS9pby5oIgpzdGF0aWMgaW5saW5lIHZvaWQgKgppb3JlbWFwICh1bnNp
Z25lZCBsb25nIG9mZnNldCwgdW5zaWduZWQgbG9uZyBzaXplKQp7CiAgICAgICAgcmV0dXJuICh2
b2lkICopICgweGMwMDAwMDAwMDAwMDAwMDAgfCAob2Zmc2V0KSk7Cn0KCnN0YXRpYyBpbmxpbmUg
dm9pZAppb3VubWFwICh2b2lkICphZGRyKQp7Cn0KCiNkZWZpbmUgaW9yZW1hcF9ub2NhY2hlKG8s
IHMpIGlvcmVtYXAobyxzKQoKCgoKCgpleHRlcm4gdm9pZCBfX2lhNjRfbWVtY3B5X2Zyb21pb19S
c21wX2FjNGY1YTNjICh2b2lkICosIHVuc2lnbmVkIGxvbmcsIGxvbmcpOwpleHRlcm4gdm9pZCBf
X2lhNjRfbWVtY3B5X3RvaW9fUnNtcF82NGUwODBkYyAodW5zaWduZWQgbG9uZywgdm9pZCAqLCBs
b25nKTsKZXh0ZXJuIHZvaWQgX19pYTY0X21lbXNldF9jX2lvX1JzbXBfYmZmNzBjODggKHVuc2ln
bmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIGxvbmcpOwoKI2RlZmluZSBtZW1jcHlfZnJvbWlvKHRv
LCBmcm9tLCBsZW4pIF9faWE2NF9tZW1jcHlfZnJvbWlvKCh0byksKHVuc2lnbmVkIGxvbmcpKGZy
b20pLChsZW4pKQoKI2RlZmluZSBtZW1jcHlfdG9pbyh0bywgZnJvbSwgbGVuKSBfX2lhNjRfbWVt
Y3B5X3RvaW8oKHVuc2lnbmVkIGxvbmcpKHRvKSwoZnJvbSksKGxlbikpCgojZGVmaW5lIG1lbXNl
dF9pbyhhZGRyLCBjLCBsZW4pIF9faWE2NF9tZW1zZXRfY19pbygodW5zaWduZWQgbG9uZykoYWRk
ciksMHgwMTAxMDEwMTAxMDEwMTAxVUwqKHU4KShjKSwobGVuKSkKIyAyMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vc21wLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMQojIDIyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9zbXAuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3B0
cmFjZS5oIiAxCiMgMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NtcC5oIiAy
CgojZGVmaW5lIFhUUF9PRkZTRVQgMHgxZTAwMDgKCiNkZWZpbmUgU01QX0lSUV9SRURJUkVDVElP
TiAoMSA8PCAwKQojZGVmaW5lIFNNUF9JUElfUkVESVJFQ1RJT04gKDEgPDwgMSkKCiNkZWZpbmUg
c21wX3Byb2Nlc3Nvcl9pZCgpIChjdXJyZW50LT5wcm9jZXNzb3IpCgpleHRlcm4gc3RydWN0IHNt
cF9ib290X2RhdGEgewogICAgICAgIGludCBjcHVfY291bnQ7CiAgICAgICAgaW50IGNwdV9waHlz
X2lkWzMyXTsKfSBzbXBfYm9vdF9kYXRhIDsKCmV4dGVybiBjaGFyIG5vX2ludF9yb3V0aW5nIDsK
CmV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGNwdV9vbmxpbmVfbWFwX1JzbXBfNTcxYjZh
ODk7CmV4dGVybiB1bnNpZ25lZCBsb25nIGlwaV9iYXNlX2FkZHI7CmV4dGVybiB1bnNpZ25lZCBj
aGFyIHNtcF9pbnRfcmVkaXJlY3Q7CmV4dGVybiBpbnQgc21wX251bV9jcHVzX1JzbXBfM2I4NjMz
NGQ7CgpleHRlcm4gdm9sYXRpbGUgaW50IGlhNjRfY3B1X3RvX3NhcGljaWRfUnNtcF9lNTJkNzU1
ZltdOwojZGVmaW5lIGNwdV9waHlzaWNhbF9pZChpKSBpYTY0X2NwdV90b19zYXBpY2lkW2ldCiNk
ZWZpbmUgY3B1X251bWJlcl9tYXAoaSkgKGkpCiNkZWZpbmUgY3B1X2xvZ2ljYWxfbWFwKGkpIChp
KQoKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgYXBfd2FrZXVwX3ZlY3RvcjsKCgoKCgpzdGF0aWMgaW5s
aW5lIGludApjcHVfbG9naWNhbF9pZCAoaW50IGNwdWlkKQp7CiAgICAgICAgaW50IGk7CgogICAg
ICAgIGZvciAoaSA9IDA7IGkgPCBzbXBfbnVtX2NwdXNfUnNtcF8zYjg2MzM0ZDsgKytpKQogICAg
ICAgICAgICAgICAgaWYgKGlhNjRfY3B1X3RvX3NhcGljaWRfUnNtcF9lNTJkNzU1ZltpXSA9PSAo
X191MzIpIGNwdWlkKQogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICByZXR1
cm4gaTsKfQojIDcyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zbXAuaCIKc3Rh
dGljIGlubGluZSB2b2lkCm1pbl94dHAgKHZvaWQpCnsKICAgICAgICBpZiAoc21wX2ludF9yZWRp
cmVjdCAmICgxIDw8IDApKQogICAgICAgICAgICAgICAgX193cml0ZWIoKDB4MDApLCAodm9pZCAq
KSAoaXBpX2Jhc2VfYWRkciB8IDB4MWUwMDA4KSk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApub3Jt
YWxfeHRwICh2b2lkKQp7CiAgICAgICAgaWYgKHNtcF9pbnRfcmVkaXJlY3QgJiAoMSA8PCAwKSkK
ICAgICAgICAgICAgICAgIF9fd3JpdGViKCgweDA4KSwgKHZvaWQgKikgKGlwaV9iYXNlX2FkZHIg
fCAweDFlMDAwOCkpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKbWF4X3h0cCAodm9pZCkKewogICAg
ICAgIGlmIChzbXBfaW50X3JlZGlyZWN0ICYgKDEgPDwgMCkpCiAgICAgICAgICAgICAgICBfX3dy
aXRlYigoMHgwZiksICh2b2lkICopIChpcGlfYmFzZV9hZGRyIHwgMHgxZTAwMDgpKTsKfQoKc3Rh
dGljIGlubGluZSB1bnNpZ25lZCBpbnQKaGFyZF9zbXBfcHJvY2Vzc29yX2lkICh2b2lkKQp7CiAg
ICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgbG9uZyByZXNlcnZlZCA6IDE2OwogICAgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBsb25nIGVpZCA6IDg7CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGxvbmcgaWQgOiA4OwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGlnbm9y
ZWQgOiAzMjsKICAgICAgICAgICAgICAgIH0gZjsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv
bmcgYml0czsKICAgICAgICB9IGxpZDsKCiAgICAgICAgbGlkLmJpdHMgPSBpYTY0X2dldF9saWQo
KTsKICAgICAgICByZXR1cm4gbGlkLmYuaWQgPDwgOCB8IGxpZC5mLmVpZDsKfQoKI2RlZmluZSBO
T19QUk9DX0lEICgtMSkKI2RlZmluZSBQUk9DX0NIQU5HRV9QRU5BTFRZIDIwCgpleHRlcm4gdm9p
ZCBpbml0X3NtcF9jb25maWcgKHZvaWQpOwpleHRlcm4gdm9pZCBzbXBfZG9fdGltZXIgKHN0cnVj
dCBwdF9yZWdzICpyZWdzKTsKCmV4dGVybiBpbnQgc21wX2NhbGxfZnVuY3Rpb25fc2luZ2xlX1Jz
bXBfYWY3ZTY4MDEgKGludCBjcHVpZCwgdm9pZCAoKmZ1bmMpICh2b2lkICppbmZvKSwgdm9pZCAq
aW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXRyeSwgaW50
IHdhaXQpOwojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NtcC5oIiAy
CiMgMjQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc21wLmgiCmV4dGVybiB2
b2lkIHNtcF9zZW5kX3N0b3Aodm9pZCk7CgoKCgpleHRlcm4gdm9pZCBzbXBfc2VuZF9yZXNjaGVk
dWxlKGludCBjcHUpOwoKCgoKCmV4dGVybiB2b2lkIHNtcF9ib290X2NwdXModm9pZCk7CgoKCgpl
eHRlcm4gdm9pZCBzbXBfY2FsbGluKHZvaWQpOwoKCgoKZXh0ZXJuIHZvaWQgc21wX2NvbW1lbmNl
KHZvaWQpOwoKCgoKZXh0ZXJuIGludCBzbXBfY2FsbF9mdW5jdGlvbl9Sc21wXzAwMTRiZmQxICh2
b2lkICgqZnVuYykgKHZvaWQgKmluZm8pLCB2b2lkICppbmZvLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgcmV0cnksIGludCB3YWl0KTsKCgoKCmV4dGVybiB2b2xhdGlsZSBpbnQg
c21wX3RocmVhZHNfcmVhZHk7CgpleHRlcm4gaW50IHNtcF9udW1fY3B1c19Sc21wXzNiODYzMzRk
OwoKZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgc21wX21zZ19kYXRhOwpleHRlcm4gdm9s
YXRpbGUgaW50IHNtcF9zcmNfY3B1OwpleHRlcm4gdm9sYXRpbGUgaW50IHNtcF9tc2dfaWQ7Cgoj
ZGVmaW5lIE1TR19BTExfQlVUX1NFTEYgMHg4MDAwCiNkZWZpbmUgTVNHX0FMTCAweDgwMDEKCiNk
ZWZpbmUgTVNHX0lOVkFMSURBVEVfVExCIDB4MDAwMQojZGVmaW5lIE1TR19TVE9QX0NQVSAweDAw
MDIKCgojZGVmaW5lIE1TR19SRVNDSEVEVUxFIDB4MDAwMwojZGVmaW5lIE1TR19DQUxMX0ZVTkNU
SU9OIDB4MDAwNAojIDI0ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVk
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eS5oIiAxCgoj
ZGVmaW5lIF9MSU5VWF9UVFlfSAojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3R0eS5oIgojZGVmaW5lIE1JTl9OUl9DT05TT0xFUyAxCiNkZWZpbmUgTUFYX05SX0NPTlNP
TEVTIDYzCiNkZWZpbmUgTUFYX05SX1VTRVJfQ09OU09MRVMgNjMKCgoKCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDIwICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9mcy5oIiAxCiMgMjEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdHR5LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21h
am9yLmgiIDEKIyAyMiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHkuaCIg
MgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGVybWlvcy5oIiAxCgoj
ZGVmaW5lIF9MSU5VWF9URVJNSU9TX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC90eXBlcy5oIiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC90ZXJtaW9zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJt
aW9zLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1RFUk1JT1NfSAojIDExICIvdXNyL2xvY2FsL3Ny
Yy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vdGVybWJpdHMuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfVEVSTUJJVFNfSAoj
IDExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtYml0cy5oIgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcG9zaXhfdHlwZXMuaCIgMQojIDEyICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtYml0cy5oIiAyCgp0eXBlZGVmIHVu
c2lnbmVkIGNoYXIgY2NfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgc3BlZWRfdDsKdHlwZWRlZiB1
bnNpZ25lZCBpbnQgdGNmbGFnX3Q7CgojZGVmaW5lIE5DQ1MgMTkKc3RydWN0IHRlcm1pb3Mgewog
ICAgICAgIHRjZmxhZ190IGNfaWZsYWc7CiAgICAgICAgdGNmbGFnX3QgY19vZmxhZzsKICAgICAg
ICB0Y2ZsYWdfdCBjX2NmbGFnOwogICAgICAgIHRjZmxhZ190IGNfbGZsYWc7CiAgICAgICAgY2Nf
dCBjX2xpbmU7CiAgICAgICAgY2NfdCBjX2NjWzE5XTsKfTsKCgojZGVmaW5lIFZJTlRSIDAKI2Rl
ZmluZSBWUVVJVCAxCiNkZWZpbmUgVkVSQVNFIDIKI2RlZmluZSBWS0lMTCAzCiNkZWZpbmUgVkVP
RiA0CiNkZWZpbmUgVlRJTUUgNQojZGVmaW5lIFZNSU4gNgojZGVmaW5lIFZTV1RDIDcKI2RlZmlu
ZSBWU1RBUlQgOAojZGVmaW5lIFZTVE9QIDkKI2RlZmluZSBWU1VTUCAxMAojZGVmaW5lIFZFT0wg
MTEKI2RlZmluZSBWUkVQUklOVCAxMgojZGVmaW5lIFZESVNDQVJEIDEzCiNkZWZpbmUgVldFUkFT
RSAxNAojZGVmaW5lIFZMTkVYVCAxNQojZGVmaW5lIFZFT0wyIDE2CgoKI2RlZmluZSBJR05CUksg
MDAwMDAwMQojZGVmaW5lIEJSS0lOVCAwMDAwMDAyCiNkZWZpbmUgSUdOUEFSIDAwMDAwMDQKI2Rl
ZmluZSBQQVJNUksgMDAwMDAxMAojZGVmaW5lIElOUENLIDAwMDAwMjAKI2RlZmluZSBJU1RSSVAg
MDAwMDA0MAojZGVmaW5lIElOTENSIDAwMDAxMDAKI2RlZmluZSBJR05DUiAwMDAwMjAwCiNkZWZp
bmUgSUNSTkwgMDAwMDQwMAojZGVmaW5lIElVQ0xDIDAwMDEwMDAKI2RlZmluZSBJWE9OIDAwMDIw
MDAKI2RlZmluZSBJWEFOWSAwMDA0MDAwCiNkZWZpbmUgSVhPRkYgMDAxMDAwMAojZGVmaW5lIElN
QVhCRUwgMDAyMDAwMAoKCiNkZWZpbmUgT1BPU1QgMDAwMDAwMQojZGVmaW5lIE9MQ1VDIDAwMDAw
MDIKI2RlZmluZSBPTkxDUiAwMDAwMDA0CiNkZWZpbmUgT0NSTkwgMDAwMDAxMAojZGVmaW5lIE9O
T0NSIDAwMDAwMjAKI2RlZmluZSBPTkxSRVQgMDAwMDA0MAojZGVmaW5lIE9GSUxMIDAwMDAxMDAK
I2RlZmluZSBPRkRFTCAwMDAwMjAwCiNkZWZpbmUgTkxETFkgMDAwMDQwMAojZGVmaW5lIE5MMCAw
MDAwMDAwCiNkZWZpbmUgTkwxIDAwMDA0MDAKI2RlZmluZSBDUkRMWSAwMDAzMDAwCiNkZWZpbmUg
Q1IwIDAwMDAwMDAKI2RlZmluZSBDUjEgMDAwMTAwMAojZGVmaW5lIENSMiAwMDAyMDAwCiNkZWZp
bmUgQ1IzIDAwMDMwMDAKI2RlZmluZSBUQUJETFkgMDAxNDAwMAojZGVmaW5lIFRBQjAgMDAwMDAw
MAojZGVmaW5lIFRBQjEgMDAwNDAwMAojZGVmaW5lIFRBQjIgMDAxMDAwMAojZGVmaW5lIFRBQjMg
MDAxNDAwMAojZGVmaW5lIFhUQUJTIDAwMTQwMDAKI2RlZmluZSBCU0RMWSAwMDIwMDAwCiNkZWZp
bmUgQlMwIDAwMDAwMDAKI2RlZmluZSBCUzEgMDAyMDAwMAojZGVmaW5lIFZURExZIDAwNDAwMDAK
I2RlZmluZSBWVDAgMDAwMDAwMAojZGVmaW5lIFZUMSAwMDQwMDAwCiNkZWZpbmUgRkZETFkgMDEw
MDAwMAojZGVmaW5lIEZGMCAwMDAwMDAwCiNkZWZpbmUgRkYxIDAxMDAwMDAKCgojZGVmaW5lIENC
QVVEIDAwMTAwMTcKI2RlZmluZSBCMCAwMDAwMDAwCiNkZWZpbmUgQjUwIDAwMDAwMDEKI2RlZmlu
ZSBCNzUgMDAwMDAwMgojZGVmaW5lIEIxMTAgMDAwMDAwMwojZGVmaW5lIEIxMzQgMDAwMDAwNAoj
ZGVmaW5lIEIxNTAgMDAwMDAwNQojZGVmaW5lIEIyMDAgMDAwMDAwNgojZGVmaW5lIEIzMDAgMDAw
MDAwNwojZGVmaW5lIEI2MDAgMDAwMDAxMAojZGVmaW5lIEIxMjAwIDAwMDAwMTEKI2RlZmluZSBC
MTgwMCAwMDAwMDEyCiNkZWZpbmUgQjI0MDAgMDAwMDAxMwojZGVmaW5lIEI0ODAwIDAwMDAwMTQK
I2RlZmluZSBCOTYwMCAwMDAwMDE1CiNkZWZpbmUgQjE5MjAwIDAwMDAwMTYKI2RlZmluZSBCMzg0
MDAgMDAwMDAxNwojZGVmaW5lIEVYVEEgQjE5MjAwCiNkZWZpbmUgRVhUQiBCMzg0MDAKI2RlZmlu
ZSBDU0laRSAwMDAwMDYwCiNkZWZpbmUgQ1M1IDAwMDAwMDAKI2RlZmluZSBDUzYgMDAwMDAyMAoj
ZGVmaW5lIENTNyAwMDAwMDQwCiNkZWZpbmUgQ1M4IDAwMDAwNjAKI2RlZmluZSBDU1RPUEIgMDAw
MDEwMAojZGVmaW5lIENSRUFEIDAwMDAyMDAKI2RlZmluZSBQQVJFTkIgMDAwMDQwMAojZGVmaW5l
IFBBUk9ERCAwMDAxMDAwCiNkZWZpbmUgSFVQQ0wgMDAwMjAwMAojZGVmaW5lIENMT0NBTCAwMDA0
MDAwCiNkZWZpbmUgQ0JBVURFWCAwMDEwMDAwCiNkZWZpbmUgQjU3NjAwIDAwMTAwMDEKI2RlZmlu
ZSBCMTE1MjAwIDAwMTAwMDIKI2RlZmluZSBCMjMwNDAwIDAwMTAwMDMKI2RlZmluZSBCNDYwODAw
IDAwMTAwMDQKI2RlZmluZSBCNTAwMDAwIDAwMTAwMDUKI2RlZmluZSBCNTc2MDAwIDAwMTAwMDYK
I2RlZmluZSBCOTIxNjAwIDAwMTAwMDcKI2RlZmluZSBCMTAwMDAwMCAwMDEwMDEwCiNkZWZpbmUg
QjExNTIwMDAgMDAxMDAxMQojZGVmaW5lIEIxNTAwMDAwIDAwMTAwMTIKI2RlZmluZSBCMjAwMDAw
MCAwMDEwMDEzCiNkZWZpbmUgQjI1MDAwMDAgMDAxMDAxNAojZGVmaW5lIEIzMDAwMDAwIDAwMTAw
MTUKI2RlZmluZSBCMzUwMDAwMCAwMDEwMDE2CiNkZWZpbmUgQjQwMDAwMDAgMDAxMDAxNwojZGVm
aW5lIENJQkFVRCAwMDIwMDM2MDAwMDAKI2RlZmluZSBDTVNQQVIgMDEwMDAwMDAwMDAwCiNkZWZp
bmUgQ1JUU0NUUyAwMjAwMDAwMDAwMDAKCgojZGVmaW5lIElTSUcgMDAwMDAwMQojZGVmaW5lIElD
QU5PTiAwMDAwMDAyCiNkZWZpbmUgWENBU0UgMDAwMDAwNAojZGVmaW5lIEVDSE8gMDAwMDAxMAoj
ZGVmaW5lIEVDSE9FIDAwMDAwMjAKI2RlZmluZSBFQ0hPSyAwMDAwMDQwCiNkZWZpbmUgRUNIT05M
IDAwMDAxMDAKI2RlZmluZSBOT0ZMU0ggMDAwMDIwMAojZGVmaW5lIFRPU1RPUCAwMDAwNDAwCiNk
ZWZpbmUgRUNIT0NUTCAwMDAxMDAwCiNkZWZpbmUgRUNIT1BSVCAwMDAyMDAwCiNkZWZpbmUgRUNI
T0tFIDAwMDQwMDAKI2RlZmluZSBGTFVTSE8gMDAxMDAwMAojZGVmaW5lIFBFTkRJTiAwMDQwMDAw
CiNkZWZpbmUgSUVYVEVOIDAxMDAwMDAKCgojZGVmaW5lIFRDT09GRiAwCiNkZWZpbmUgVENPT04g
MQojZGVmaW5lIFRDSU9GRiAyCiNkZWZpbmUgVENJT04gMwoKCiNkZWZpbmUgVENJRkxVU0ggMAoj
ZGVmaW5lIFRDT0ZMVVNIIDEKI2RlZmluZSBUQ0lPRkxVU0ggMgoKCiNkZWZpbmUgVENTQU5PVyAw
CiNkZWZpbmUgVENTQURSQUlOIDEKI2RlZmluZSBUQ1NBRkxVU0ggMgojIDEyICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2FzbS9pb2N0bHMuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfSU9DVExTX0gK
CgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9pb2N0bC5oIiAxCiMg
MTAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lvY3Rscy5oIiAyCgoKCiNkZWZp
bmUgVENHRVRTIDB4NTQwMQojZGVmaW5lIFRDU0VUUyAweDU0MDIKI2RlZmluZSBUQ1NFVFNXIDB4
NTQwMwojZGVmaW5lIFRDU0VUU0YgMHg1NDA0CiNkZWZpbmUgVENHRVRBIDB4NTQwNQojZGVmaW5l
IFRDU0VUQSAweDU0MDYKI2RlZmluZSBUQ1NFVEFXIDB4NTQwNwojZGVmaW5lIFRDU0VUQUYgMHg1
NDA4CiNkZWZpbmUgVENTQlJLIDB4NTQwOQojZGVmaW5lIFRDWE9OQyAweDU0MEEKI2RlZmluZSBU
Q0ZMU0ggMHg1NDBCCiNkZWZpbmUgVElPQ0VYQ0wgMHg1NDBDCiNkZWZpbmUgVElPQ05YQ0wgMHg1
NDBECiNkZWZpbmUgVElPQ1NDVFRZIDB4NTQwRQojZGVmaW5lIFRJT0NHUEdSUCAweDU0MEYKI2Rl
ZmluZSBUSU9DU1BHUlAgMHg1NDEwCiNkZWZpbmUgVElPQ09VVFEgMHg1NDExCiNkZWZpbmUgVElP
Q1NUSSAweDU0MTIKI2RlZmluZSBUSU9DR1dJTlNaIDB4NTQxMwojZGVmaW5lIFRJT0NTV0lOU1og
MHg1NDE0CiNkZWZpbmUgVElPQ01HRVQgMHg1NDE1CiNkZWZpbmUgVElPQ01CSVMgMHg1NDE2CiNk
ZWZpbmUgVElPQ01CSUMgMHg1NDE3CiNkZWZpbmUgVElPQ01TRVQgMHg1NDE4CiNkZWZpbmUgVElP
Q0dTT0ZUQ0FSIDB4NTQxOQojZGVmaW5lIFRJT0NTU09GVENBUiAweDU0MUEKI2RlZmluZSBGSU9O
UkVBRCAweDU0MUIKI2RlZmluZSBUSU9DSU5RIEZJT05SRUFECiNkZWZpbmUgVElPQ0xJTlVYIDB4
NTQxQwojZGVmaW5lIFRJT0NDT05TIDB4NTQxRAojZGVmaW5lIFRJT0NHU0VSSUFMIDB4NTQxRQoj
ZGVmaW5lIFRJT0NTU0VSSUFMIDB4NTQxRgojZGVmaW5lIFRJT0NQS1QgMHg1NDIwCiNkZWZpbmUg
RklPTkJJTyAweDU0MjEKI2RlZmluZSBUSU9DTk9UVFkgMHg1NDIyCiNkZWZpbmUgVElPQ1NFVEQg
MHg1NDIzCiNkZWZpbmUgVElPQ0dFVEQgMHg1NDI0CiNkZWZpbmUgVENTQlJLUCAweDU0MjUKI2Rl
ZmluZSBUSU9DVFRZR1NUUlVDVCAweDU0MjYKI2RlZmluZSBUSU9DU0JSSyAweDU0MjcKI2RlZmlu
ZSBUSU9DQ0JSSyAweDU0MjgKI2RlZmluZSBUSU9DR1NJRCAweDU0MjkKI2RlZmluZSBUSU9DR1BU
TiBfSU9SKCdUJywweDMwLCB1bnNpZ25lZCBpbnQpCiNkZWZpbmUgVElPQ1NQVExDSyBfSU9XKCdU
JywweDMxLCBpbnQpCgojZGVmaW5lIEZJT05DTEVYIDB4NTQ1MAojZGVmaW5lIEZJT0NMRVggMHg1
NDUxCiNkZWZpbmUgRklPQVNZTkMgMHg1NDUyCiNkZWZpbmUgVElPQ1NFUkNPTkZJRyAweDU0NTMK
I2RlZmluZSBUSU9DU0VSR1dJTEQgMHg1NDU0CiNkZWZpbmUgVElPQ1NFUlNXSUxEIDB4NTQ1NQoj
ZGVmaW5lIFRJT0NHTENLVFJNSU9TIDB4NTQ1NgojZGVmaW5lIFRJT0NTTENLVFJNSU9TIDB4NTQ1
NwojZGVmaW5lIFRJT0NTRVJHU1RSVUNUIDB4NTQ1OAojZGVmaW5lIFRJT0NTRVJHRVRMU1IgMHg1
NDU5CiNkZWZpbmUgVElPQ1NFUkdFVE1VTFRJIDB4NTQ1QQojZGVmaW5lIFRJT0NTRVJTRVRNVUxU
SSAweDU0NUIKCiNkZWZpbmUgVElPQ01JV0FJVCAweDU0NUMKI2RlZmluZSBUSU9DR0lDT1VOVCAw
eDU0NUQKI2RlZmluZSBUSU9DR0hBWUVTRVNQIDB4NTQ1RQojZGVmaW5lIFRJT0NTSEFZRVNFU1Ag
MHg1NDVGCgoKI2RlZmluZSBUSU9DUEtUX0RBVEEgMAojZGVmaW5lIFRJT0NQS1RfRkxVU0hSRUFE
IDEKI2RlZmluZSBUSU9DUEtUX0ZMVVNIV1JJVEUgMgojZGVmaW5lIFRJT0NQS1RfU1RPUCA0CiNk
ZWZpbmUgVElPQ1BLVF9TVEFSVCA4CiNkZWZpbmUgVElPQ1BLVF9OT1NUT1AgMTYKI2RlZmluZSBU
SU9DUEtUX0RPU1RPUCAzMgoKI2RlZmluZSBUSU9DU0VSX1RFTVQgMHgwMQojIDEzICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiIDIKCnN0cnVjdCB3aW5zaXplIHsK
ICAgICAgICB1bnNpZ25lZCBzaG9ydCB3c19yb3c7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgd3Nf
Y29sOwogICAgICAgIHVuc2lnbmVkIHNob3J0IHdzX3hwaXhlbDsKICAgICAgICB1bnNpZ25lZCBz
aG9ydCB3c195cGl4ZWw7Cn07CgojZGVmaW5lIE5DQyA4CnN0cnVjdCB0ZXJtaW8gewogICAgICAg
IHVuc2lnbmVkIHNob3J0IGNfaWZsYWc7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgY19vZmxhZzsK
ICAgICAgICB1bnNpZ25lZCBzaG9ydCBjX2NmbGFnOwogICAgICAgIHVuc2lnbmVkIHNob3J0IGNf
bGZsYWc7CiAgICAgICAgdW5zaWduZWQgY2hhciBjX2xpbmU7CiAgICAgICAgdW5zaWduZWQgY2hh
ciBjX2NjWzhdOwp9OwoKCiNkZWZpbmUgVElPQ01fTEUgMHgwMDEKI2RlZmluZSBUSU9DTV9EVFIg
MHgwMDIKI2RlZmluZSBUSU9DTV9SVFMgMHgwMDQKI2RlZmluZSBUSU9DTV9TVCAweDAwOAojZGVm
aW5lIFRJT0NNX1NSIDB4MDEwCiNkZWZpbmUgVElPQ01fQ1RTIDB4MDIwCiNkZWZpbmUgVElPQ01f
Q0FSIDB4MDQwCiNkZWZpbmUgVElPQ01fUk5HIDB4MDgwCiNkZWZpbmUgVElPQ01fRFNSIDB4MTAw
CiNkZWZpbmUgVElPQ01fQ0QgVElPQ01fQ0FSCiNkZWZpbmUgVElPQ01fUkkgVElPQ01fUk5HCiNk
ZWZpbmUgVElPQ01fT1VUMSAweDIwMDAKI2RlZmluZSBUSU9DTV9PVVQyIDB4NDAwMAojZGVmaW5l
IFRJT0NNX0xPT1AgMHg4MDAwCgoKCgojZGVmaW5lIE5fVFRZIDAKI2RlZmluZSBOX1NMSVAgMQoj
ZGVmaW5lIE5fTU9VU0UgMgojZGVmaW5lIE5fUFBQIDMKI2RlZmluZSBOX1NUUklQIDQKI2RlZmlu
ZSBOX0FYMjUgNQojZGVmaW5lIE5fWDI1IDYKI2RlZmluZSBOXzZQQUNLIDcKI2RlZmluZSBOX01B
U0MgOAojZGVmaW5lIE5fUjM5NjQgOQojZGVmaW5lIE5fUFJPRklCVVNfRkRMIDEwCiNkZWZpbmUg
Tl9JUkRBIDExCiNkZWZpbmUgTl9TTVNCTE9DSyAxMgojZGVmaW5lIE5fSERMQyAxMwojZGVmaW5l
IE5fU1lOQ19QUFAgMTQKI2RlZmluZSBOX0hDSSAxNQojIDc1ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2FzbS90ZXJtaW9zLmgiCiNkZWZpbmUgSU5JVF9DX0NDICJcMDAzXDAzNFwxNzdc
MDI1XDAwNFwwXDFcMFwwMjFcMDIzXDAzMlwwXDAyMlwwMTdcMDI3XDAyNlwwIgoKCgoKI2RlZmlu
ZSBTRVRfTE9XX1RFUk1JT1NfQklUUyh0ZXJtaW9zLCB0ZXJtaW8sIHgpIHsgdW5zaWduZWQgc2hv
cnQgX190bXA7IGdldF91c2VyKF9fdG1wLCYodGVybWlvKS0+eCk7ICoodW5zaWduZWQgc2hvcnQg
KikgJih0ZXJtaW9zKS0+eCA9IF9fdG1wOyB9CgoKCgoKI2RlZmluZSB1c2VyX3Rlcm1pb190b19r
ZXJuZWxfdGVybWlvcyh0ZXJtaW9zLCB0ZXJtaW8pICh7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRl
cm1pb3MsIHRlcm1pbywgY19pZmxhZyk7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRlcm1pb3MsIHRl
cm1pbywgY19vZmxhZyk7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRlcm1pb3MsIHRlcm1pbywgY19j
ZmxhZyk7IFNFVF9MT1dfVEVSTUlPU19CSVRTKHRlcm1pb3MsIHRlcm1pbywgY19sZmxhZyk7IGNv
cHlfZnJvbV91c2VyKCh0ZXJtaW9zKS0+Y19jYywgKHRlcm1pbyktPmNfY2MsIE5DQyk7IH0pCiMg
OTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Rlcm1pb3MuaCIKI2RlZmluZSBr
ZXJuZWxfdGVybWlvc190b191c2VyX3Rlcm1pbyh0ZXJtaW8sIHRlcm1pb3MpICh7IHB1dF91c2Vy
KCh0ZXJtaW9zKS0+Y19pZmxhZywgJih0ZXJtaW8pLT5jX2lmbGFnKTsgcHV0X3VzZXIoKHRlcm1p
b3MpLT5jX29mbGFnLCAmKHRlcm1pbyktPmNfb2ZsYWcpOyBwdXRfdXNlcigodGVybWlvcyktPmNf
Y2ZsYWcsICYodGVybWlvKS0+Y19jZmxhZyk7IHB1dF91c2VyKCh0ZXJtaW9zKS0+Y19sZmxhZywg
Jih0ZXJtaW8pLT5jX2xmbGFnKTsgcHV0X3VzZXIoKHRlcm1pb3MpLT5jX2xpbmUsICYodGVybWlv
KS0+Y19saW5lKTsgY29weV90b191c2VyKCh0ZXJtaW8pLT5jX2NjLCAodGVybWlvcyktPmNfY2Ms
IE5DQyk7IH0pCiMgMTA4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90ZXJtaW9z
LmgiCiNkZWZpbmUgdXNlcl90ZXJtaW9zX3RvX2tlcm5lbF90ZXJtaW9zKGssIHUpIGNvcHlfZnJv
bV91c2VyKGssIHUsIHNpemVvZihzdHJ1Y3QgdGVybWlvcykpCiNkZWZpbmUga2VybmVsX3Rlcm1p
b3NfdG9fdXNlcl90ZXJtaW9zKHUsIGspIGNvcHlfdG9fdXNlcih1LCBrLCBzaXplb2Yoc3RydWN0
IHRlcm1pb3MpKQojIDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdGVybWlv
cy5oIiAyCiMgMjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5LmgiIDIK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3RxdWV1ZS5oIiAxCiMgMjQg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5LmgiIDIKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eV9kcml2ZXIuaCIgMQoKI2RlZmluZSBfTElO
VVhfVFRZX0RSSVZFUl9ICiMgMTE4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L3R0eV9kcml2ZXIuaCIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Zz
LmgiIDEKIyAxMTkgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5X2RyaXZl
ci5oIiAyCgpzdHJ1Y3QgdHR5X2RyaXZlciB7CiAgICAgICAgaW50IG1hZ2ljOwogICAgICAgIGNv
bnN0IGNoYXIgKmRyaXZlcl9uYW1lOwogICAgICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgICAgICAg
aW50IG5hbWVfYmFzZTsKICAgICAgICBzaG9ydCBtYWpvcjsKICAgICAgICBzaG9ydCBtaW5vcl9z
dGFydDsKICAgICAgICBzaG9ydCBudW07CiAgICAgICAgc2hvcnQgdHlwZTsKICAgICAgICBzaG9y
dCBzdWJ0eXBlOwogICAgICAgIHN0cnVjdCB0ZXJtaW9zIGluaXRfdGVybWlvczsKICAgICAgICBp
bnQgZmxhZ3M7CiAgICAgICAgaW50ICpyZWZjb3VudDsKICAgICAgICBzdHJ1Y3QgcHJvY19kaXJf
ZW50cnkgKnByb2NfZW50cnk7CiAgICAgICAgc3RydWN0IHR0eV9kcml2ZXIgKm90aGVyOwoKCgoK
ICAgICAgICBzdHJ1Y3QgdHR5X3N0cnVjdCAqKnRhYmxlOwogICAgICAgIHN0cnVjdCB0ZXJtaW9z
ICoqdGVybWlvczsKICAgICAgICBzdHJ1Y3QgdGVybWlvcyAqKnRlcm1pb3NfbG9ja2VkOwogICAg
ICAgIHZvaWQgKmRyaXZlcl9zdGF0ZTsKCgoKCgogICAgICAgIGludCAoKm9wZW4pKHN0cnVjdCB0
dHlfc3RydWN0ICogdHR5LCBzdHJ1Y3QgZmlsZSAqIGZpbHApOwogICAgICAgIHZvaWQgKCpjbG9z
ZSkoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHksIHN0cnVjdCBmaWxlICogZmlscCk7CiAgICAgICAg
aW50ICgqd3JpdGUpKHN0cnVjdCB0dHlfc3RydWN0ICogdHR5LCBpbnQgZnJvbV91c2VyLAogICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgY291bnQpOwog
ICAgICAgIHZvaWQgKCpwdXRfY2hhcikoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgdW5zaWduZWQg
Y2hhciBjaCk7CiAgICAgICAgdm9pZCAoKmZsdXNoX2NoYXJzKShzdHJ1Y3QgdHR5X3N0cnVjdCAq
dHR5KTsKICAgICAgICBpbnQgKCp3cml0ZV9yb29tKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsK
ICAgICAgICBpbnQgKCpjaGFyc19pbl9idWZmZXIpKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpOwog
ICAgICAgIGludCAoKmlvY3RsKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBzdHJ1Y3QgZmlsZSAq
IGZpbGUsCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9u
ZyBhcmcpOwogICAgICAgIHZvaWQgKCpzZXRfdGVybWlvcykoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0
eSwgc3RydWN0IHRlcm1pb3MgKiBvbGQpOwogICAgICAgIHZvaWQgKCp0aHJvdHRsZSkoc3RydWN0
IHR0eV9zdHJ1Y3QgKiB0dHkpOwogICAgICAgIHZvaWQgKCp1bnRocm90dGxlKShzdHJ1Y3QgdHR5
X3N0cnVjdCAqIHR0eSk7CiAgICAgICAgdm9pZCAoKnN0b3ApKHN0cnVjdCB0dHlfc3RydWN0ICp0
dHkpOwogICAgICAgIHZvaWQgKCpzdGFydCkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAg
ICAgdm9pZCAoKmhhbmd1cCkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAgICAgdm9pZCAo
KmJyZWFrX2N0bCkoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwgaW50IHN0YXRlKTsKICAgICAgICB2
b2lkICgqZmx1c2hfYnVmZmVyKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsKICAgICAgICB2b2lk
ICgqc2V0X2xkaXNjKShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsKICAgICAgICB2b2lkICgqd2Fp
dF91bnRpbF9zZW50KShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBpbnQgdGltZW91dCk7CiAgICAg
ICAgdm9pZCAoKnNlbmRfeGNoYXIpKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGNoYXIgY2gpOwog
ICAgICAgIGludCAoKnJlYWRfcHJvYykoY2hhciAqcGFnZSwgY2hhciAqKnN0YXJ0LCBvZmZfdCBv
ZmYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvdW50LCBpbnQgKmVvZiwgdm9pZCAq
ZGF0YSk7CiAgICAgICAgaW50ICgqd3JpdGVfcHJvYykoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0
IGNoYXIgKmJ1ZmZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGNv
dW50LCB2b2lkICpkYXRhKTsKCgoKCiAgICAgICAgc3RydWN0IHR0eV9kcml2ZXIgKm5leHQ7CiAg
ICAgICAgc3RydWN0IHR0eV9kcml2ZXIgKnByZXY7Cn07CgoKI2RlZmluZSBUVFlfRFJJVkVSX01B
R0lDIDB4NTQwMgojIDIwNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHlf
ZHJpdmVyLmgiCiNkZWZpbmUgVFRZX0RSSVZFUl9JTlNUQUxMRUQgMHgwMDAxCiNkZWZpbmUgVFRZ
X0RSSVZFUl9SRVNFVF9URVJNSU9TIDB4MDAwMgojZGVmaW5lIFRUWV9EUklWRVJfUkVBTF9SQVcg
MHgwMDA0CiNkZWZpbmUgVFRZX0RSSVZFUl9OT19ERVZGUyAweDAwMDgKCgojZGVmaW5lIFRUWV9E
UklWRVJfVFlQRV9TWVNURU0gMHgwMDAxCiNkZWZpbmUgVFRZX0RSSVZFUl9UWVBFX0NPTlNPTEUg
MHgwMDAyCiNkZWZpbmUgVFRZX0RSSVZFUl9UWVBFX1NFUklBTCAweDAwMDMKI2RlZmluZSBUVFlf
RFJJVkVSX1RZUEVfUFRZIDB4MDAwNAojZGVmaW5lIFRUWV9EUklWRVJfVFlQRV9TQ0MgMHgwMDA1
CiNkZWZpbmUgVFRZX0RSSVZFUl9UWVBFX1NZU0NPTlMgMHgwMDA2CgoKI2RlZmluZSBTWVNURU1f
VFlQRV9UVFkgMHgwMDAxCiNkZWZpbmUgU1lTVEVNX1RZUEVfQ09OU09MRSAweDAwMDIKI2RlZmlu
ZSBTWVNURU1fVFlQRV9TWVNDT05TIDB4MDAwMwojZGVmaW5lIFNZU1RFTV9UWVBFX1NZU1BUTVgg
MHgwMDA0CgoKI2RlZmluZSBQVFlfVFlQRV9NQVNURVIgMHgwMDAxCiNkZWZpbmUgUFRZX1RZUEVf
U0xBVkUgMHgwMDAyCgoKI2RlZmluZSBTRVJJQUxfVFlQRV9OT1JNQUwgMQojZGVmaW5lIFNFUklB
TF9UWVBFX0NBTExPVVQgMgojIDI1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L3R0eS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHlfbGRp
c2MuaCIgMQoKI2RlZmluZSBfTElOVVhfVFRZX0xESVNDX0gKIyAxMDAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvdHR5X2xkaXNjLmgiCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9mcy5oIiAxCiMgMTAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3R0eV9sZGlzYy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC93YWl0LmgiIDEKIyAxMDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGlu
dXgvdHR5X2xkaXNjLmgiIDIKCnN0cnVjdCB0dHlfbGRpc2MgewogICAgICAgIGludCBtYWdpYzsK
ICAgICAgICBjaGFyICpuYW1lOwogICAgICAgIGludCBudW07CiAgICAgICAgaW50IGZsYWdzOwoK
CgogICAgICAgIGludCAoKm9wZW4pKHN0cnVjdCB0dHlfc3RydWN0ICopOwogICAgICAgIHZvaWQg
KCpjbG9zZSkoc3RydWN0IHR0eV9zdHJ1Y3QgKik7CiAgICAgICAgdm9pZCAoKmZsdXNoX2J1ZmZl
cikoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAgICAgc3NpemVfdCAoKmNoYXJzX2luX2J1
ZmZlcikoc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSk7CiAgICAgICAgc3NpemVfdCAoKnJlYWQpKHN0
cnVjdCB0dHlfc3RydWN0ICogdHR5LCBzdHJ1Y3QgZmlsZSAqIGZpbGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKiBidWYsIHNpemVfdCBucik7CiAgICAgICAgc3NpemVf
dCAoKndyaXRlKShzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSwgc3RydWN0IGZpbGUgKiBmaWxlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqIGJ1Ziwgc2l6ZV90
IG5yKTsKICAgICAgICBpbnQgKCppb2N0bCkoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHksIHN0cnVj
dCBmaWxlICogZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjbWQs
IHVuc2lnbmVkIGxvbmcgYXJnKTsKICAgICAgICB2b2lkICgqc2V0X3Rlcm1pb3MpKHN0cnVjdCB0
dHlfc3RydWN0ICp0dHksIHN0cnVjdCB0ZXJtaW9zICogb2xkKTsKICAgICAgICB1bnNpZ25lZCBp
bnQgKCpwb2xsKShzdHJ1Y3QgdHR5X3N0cnVjdCAqLCBzdHJ1Y3QgZmlsZSAqLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwb2xsX3RhYmxlX3N0cnVjdCAqKTsKCgoKCiAgICAg
ICAgdm9pZCAoKnJlY2VpdmVfYnVmKShzdHJ1Y3QgdHR5X3N0cnVjdCAqLCBjb25zdCB1bnNpZ25l
ZCBjaGFyICpjcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmZwLCBpbnQg
Y291bnQpOwogICAgICAgIGludCAoKnJlY2VpdmVfcm9vbSkoc3RydWN0IHR0eV9zdHJ1Y3QgKik7
CiAgICAgICAgdm9pZCAoKndyaXRlX3dha2V1cCkoc3RydWN0IHR0eV9zdHJ1Y3QgKik7Cn07Cgoj
ZGVmaW5lIFRUWV9MRElTQ19NQUdJQyAweDU0MDMKCiNkZWZpbmUgTERJU0NfRkxBR19ERUZJTkVE
IDB4MDAwMDAwMDEKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHku
aCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zeXN0ZW0uaCIgMQoj
IDI4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R0eS5oIiAyCiMgMzYgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHR5LmgiCiNkZWZpbmUgTlJfUFRZUyAy
NTYKI2RlZmluZSBOUl9MRElTQ1MgMTYKCgoKCgoKCiNkZWZpbmUgVU5JWDk4X05SX01BSk9SUyAo
KENPTkZJR19VTklYOThfUFRZX0NPVU5UK05SX1BUWVMtMSkvTlJfUFRZUykKIyA1OSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHkuaCIKc3RydWN0IHNjcmVlbl9pbmZvIHsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIG9yaWdfeDsKICAgICAgICB1bnNpZ25lZCBjaGFyIG9yaWdf
eTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBkb250dXNlMTsKICAgICAgICB1bnNpZ25lZCBzaG9y
dCBvcmlnX3ZpZGVvX3BhZ2U7CiAgICAgICAgdW5zaWduZWQgY2hhciBvcmlnX3ZpZGVvX21vZGU7
CiAgICAgICAgdW5zaWduZWQgY2hhciBvcmlnX3ZpZGVvX2NvbHM7CiAgICAgICAgdW5zaWduZWQg
c2hvcnQgdW51c2VkMjsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBvcmlnX3ZpZGVvX2VnYV9ieDsK
ICAgICAgICB1bnNpZ25lZCBzaG9ydCB1bnVzZWQzOwogICAgICAgIHVuc2lnbmVkIGNoYXIgb3Jp
Z192aWRlb19saW5lczsKICAgICAgICB1bnNpZ25lZCBjaGFyIG9yaWdfdmlkZW9faXNWR0E7CiAg
ICAgICAgdW5zaWduZWQgc2hvcnQgb3JpZ192aWRlb19wb2ludHM7CgoKICAgICAgICB1bnNpZ25l
ZCBzaG9ydCBsZmJfd2lkdGg7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgbGZiX2hlaWdodDsKICAg
ICAgICB1bnNpZ25lZCBzaG9ydCBsZmJfZGVwdGg7CiAgICAgICAgdW5zaWduZWQgbG9uZyBsZmJf
YmFzZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGxmYl9zaXplOwogICAgICAgIHVuc2lnbmVkIHNo
b3J0IGRvbnR1c2UyLCBkb250dXNlMzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBsZmJfbGluZWxl
bmd0aDsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJlZF9zaXplOwogICAgICAgIHVuc2lnbmVkIGNo
YXIgcmVkX3BvczsKICAgICAgICB1bnNpZ25lZCBjaGFyIGdyZWVuX3NpemU7CiAgICAgICAgdW5z
aWduZWQgY2hhciBncmVlbl9wb3M7CiAgICAgICAgdW5zaWduZWQgY2hhciBibHVlX3NpemU7CiAg
ICAgICAgdW5zaWduZWQgY2hhciBibHVlX3BvczsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJzdmRf
c2l6ZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJzdmRfcG9zOwogICAgICAgIHVuc2lnbmVkIHNo
b3J0IHZlc2FwbV9zZWc7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgdmVzYXBtX29mZjsKICAgICAg
ICB1bnNpZ25lZCBzaG9ydCBwYWdlczsKCn07CgpleHRlcm4gc3RydWN0IHNjcmVlbl9pbmZvIHNj
cmVlbl9pbmZvOwoKI2RlZmluZSBPUklHX1ggKHNjcmVlbl9pbmZvLm9yaWdfeCkKI2RlZmluZSBP
UklHX1kgKHNjcmVlbl9pbmZvLm9yaWdfeSkKI2RlZmluZSBPUklHX1ZJREVPX01PREUgKHNjcmVl
bl9pbmZvLm9yaWdfdmlkZW9fbW9kZSkKI2RlZmluZSBPUklHX1ZJREVPX0NPTFMgKHNjcmVlbl9p
bmZvLm9yaWdfdmlkZW9fY29scykKI2RlZmluZSBPUklHX1ZJREVPX0VHQV9CWCAoc2NyZWVuX2lu
Zm8ub3JpZ192aWRlb19lZ2FfYngpCiNkZWZpbmUgT1JJR19WSURFT19MSU5FUyAoc2NyZWVuX2lu
Zm8ub3JpZ192aWRlb19saW5lcykKI2RlZmluZSBPUklHX1ZJREVPX0lTVkdBIChzY3JlZW5faW5m
by5vcmlnX3ZpZGVvX2lzVkdBKQojZGVmaW5lIE9SSUdfVklERU9fUE9JTlRTIChzY3JlZW5faW5m
by5vcmlnX3ZpZGVvX3BvaW50cykKCiNkZWZpbmUgVklERU9fVFlQRV9NREEgMHgxMAojZGVmaW5l
IFZJREVPX1RZUEVfQ0dBIDB4MTEKI2RlZmluZSBWSURFT19UWVBFX0VHQU0gMHgyMAojZGVmaW5l
IFZJREVPX1RZUEVfRUdBQyAweDIxCiNkZWZpbmUgVklERU9fVFlQRV9WR0FDIDB4MjIKI2RlZmlu
ZSBWSURFT19UWVBFX1ZMRkIgMHgyMwoKI2RlZmluZSBWSURFT19UWVBFX1BJQ0FfUzMgMHgzMAoj
ZGVmaW5lIFZJREVPX1RZUEVfTUlQU19HMzY0IDB4MzEKI2RlZmluZSBWSURFT19UWVBFX1NOSV9S
TSAweDMyCiNkZWZpbmUgVklERU9fVFlQRV9TR0kgMHgzMwoKI2RlZmluZSBWSURFT19UWVBFX1RH
QUMgMHg0MAoKI2RlZmluZSBWSURFT19UWVBFX1NVTiAweDUwCiNkZWZpbmUgVklERU9fVFlQRV9T
VU5QQ0kgMHg1MQoKI2RlZmluZSBWSURFT19UWVBFX1BNQUMgMHg2MAoKCgoKCgojZGVmaW5lIF9f
RElTQUJMRURfQ0hBUiAnXDAnCgoKCgoKCiNkZWZpbmUgVFRZX0ZMSVBCVUZfU0laRSA1MTIKCnN0
cnVjdCB0dHlfZmxpcF9idWZmZXIgewogICAgICAgIHN0cnVjdCB0cV9zdHJ1Y3QgdHF1ZXVlOwog
ICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgcHR5X3NlbTsKICAgICAgICBjaGFyICpjaGFyX2J1Zl9w
dHI7CiAgICAgICAgdW5zaWduZWQgY2hhciAqZmxhZ19idWZfcHRyOwogICAgICAgIGludCBjb3Vu
dDsKICAgICAgICBpbnQgYnVmX251bTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGNoYXJfYnVmWzIq
NTEyXTsKICAgICAgICBjaGFyIGZsYWdfYnVmWzIqNTEyXTsKICAgICAgICB1bnNpZ25lZCBjaGFy
IHNsb3BbNF07Cn07CgoKCiNkZWZpbmUgUFRZX0JVRl9TSVpFIDQqVFRZX0ZMSVBCVUZfU0laRQoK
CgoKCiNkZWZpbmUgVFRZX05PUk1BTCAwCiNkZWZpbmUgVFRZX0JSRUFLIDEKI2RlZmluZSBUVFlf
RlJBTUUgMgojZGVmaW5lIFRUWV9QQVJJVFkgMwojZGVmaW5lIFRUWV9PVkVSUlVOIDQKCiNkZWZp
bmUgSU5UUl9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZJTlRSXSkKI2RlZmluZSBR
VUlUX0NIQVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2NbVlFVSVRdKQojZGVmaW5lIEVSQVNF
X0NIQVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2NbVkVSQVNFXSkKI2RlZmluZSBLSUxMX0NI
QVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2NbVktJTExdKQojZGVmaW5lIEVPRl9DSEFSKHR0
eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZFT0ZdKQojZGVmaW5lIFRJTUVfQ0hBUih0dHkpICgo
dHR5KS0+dGVybWlvcy0+Y19jY1tWVElNRV0pCiNkZWZpbmUgTUlOX0NIQVIodHR5KSAoKHR0eSkt
PnRlcm1pb3MtPmNfY2NbVk1JTl0pCiNkZWZpbmUgU1dUQ19DSEFSKHR0eSkgKCh0dHkpLT50ZXJt
aW9zLT5jX2NjW1ZTV1RDXSkKI2RlZmluZSBTVEFSVF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9z
LT5jX2NjW1ZTVEFSVF0pCiNkZWZpbmUgU1RPUF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5j
X2NjW1ZTVE9QXSkKI2RlZmluZSBTVVNQX0NIQVIodHR5KSAoKHR0eSktPnRlcm1pb3MtPmNfY2Nb
VlNVU1BdKQojZGVmaW5lIEVPTF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZFT0xd
KQojZGVmaW5lIFJFUFJJTlRfQ0hBUih0dHkpICgodHR5KS0+dGVybWlvcy0+Y19jY1tWUkVQUklO
VF0pCiNkZWZpbmUgRElTQ0FSRF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZESVND
QVJEXSkKI2RlZmluZSBXRVJBU0VfQ0hBUih0dHkpICgodHR5KS0+dGVybWlvcy0+Y19jY1tWV0VS
QVNFXSkKI2RlZmluZSBMTkVYVF9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZMTkVY
VF0pCiNkZWZpbmUgRU9MMl9DSEFSKHR0eSkgKCh0dHkpLT50ZXJtaW9zLT5jX2NjW1ZFT0wyXSkK
CiNkZWZpbmUgX0lfRkxBRyh0dHksIGYpICgodHR5KS0+dGVybWlvcy0+Y19pZmxhZyAmIChmKSkK
I2RlZmluZSBfT19GTEFHKHR0eSwgZikgKCh0dHkpLT50ZXJtaW9zLT5jX29mbGFnICYgKGYpKQoj
ZGVmaW5lIF9DX0ZMQUcodHR5LCBmKSAoKHR0eSktPnRlcm1pb3MtPmNfY2ZsYWcgJiAoZikpCiNk
ZWZpbmUgX0xfRkxBRyh0dHksIGYpICgodHR5KS0+dGVybWlvcy0+Y19sZmxhZyAmIChmKSkKCiNk
ZWZpbmUgSV9JR05CUksodHR5KSBfSV9GTEFHKCh0dHkpLElHTkJSSykKI2RlZmluZSBJX0JSS0lO
VCh0dHkpIF9JX0ZMQUcoKHR0eSksQlJLSU5UKQojZGVmaW5lIElfSUdOUEFSKHR0eSkgX0lfRkxB
RygodHR5KSxJR05QQVIpCiNkZWZpbmUgSV9QQVJNUksodHR5KSBfSV9GTEFHKCh0dHkpLFBBUk1S
SykKI2RlZmluZSBJX0lOUENLKHR0eSkgX0lfRkxBRygodHR5KSxJTlBDSykKI2RlZmluZSBJX0lT
VFJJUCh0dHkpIF9JX0ZMQUcoKHR0eSksSVNUUklQKQojZGVmaW5lIElfSU5MQ1IodHR5KSBfSV9G
TEFHKCh0dHkpLElOTENSKQojZGVmaW5lIElfSUdOQ1IodHR5KSBfSV9GTEFHKCh0dHkpLElHTkNS
KQojZGVmaW5lIElfSUNSTkwodHR5KSBfSV9GTEFHKCh0dHkpLElDUk5MKQojZGVmaW5lIElfSVVD
TEModHR5KSBfSV9GTEFHKCh0dHkpLElVQ0xDKQojZGVmaW5lIElfSVhPTih0dHkpIF9JX0ZMQUco
KHR0eSksSVhPTikKI2RlZmluZSBJX0lYQU5ZKHR0eSkgX0lfRkxBRygodHR5KSxJWEFOWSkKI2Rl
ZmluZSBJX0lYT0ZGKHR0eSkgX0lfRkxBRygodHR5KSxJWE9GRikKI2RlZmluZSBJX0lNQVhCRUwo
dHR5KSBfSV9GTEFHKCh0dHkpLElNQVhCRUwpCgojZGVmaW5lIE9fT1BPU1QodHR5KSBfT19GTEFH
KCh0dHkpLE9QT1NUKQojZGVmaW5lIE9fT0xDVUModHR5KSBfT19GTEFHKCh0dHkpLE9MQ1VDKQoj
ZGVmaW5lIE9fT05MQ1IodHR5KSBfT19GTEFHKCh0dHkpLE9OTENSKQojZGVmaW5lIE9fT0NSTkwo
dHR5KSBfT19GTEFHKCh0dHkpLE9DUk5MKQojZGVmaW5lIE9fT05PQ1IodHR5KSBfT19GTEFHKCh0
dHkpLE9OT0NSKQojZGVmaW5lIE9fT05MUkVUKHR0eSkgX09fRkxBRygodHR5KSxPTkxSRVQpCiNk
ZWZpbmUgT19PRklMTCh0dHkpIF9PX0ZMQUcoKHR0eSksT0ZJTEwpCiNkZWZpbmUgT19PRkRFTCh0
dHkpIF9PX0ZMQUcoKHR0eSksT0ZERUwpCiNkZWZpbmUgT19OTERMWSh0dHkpIF9PX0ZMQUcoKHR0
eSksTkxETFkpCiNkZWZpbmUgT19DUkRMWSh0dHkpIF9PX0ZMQUcoKHR0eSksQ1JETFkpCiNkZWZp
bmUgT19UQUJETFkodHR5KSBfT19GTEFHKCh0dHkpLFRBQkRMWSkKI2RlZmluZSBPX0JTRExZKHR0
eSkgX09fRkxBRygodHR5KSxCU0RMWSkKI2RlZmluZSBPX1ZURExZKHR0eSkgX09fRkxBRygodHR5
KSxWVERMWSkKI2RlZmluZSBPX0ZGRExZKHR0eSkgX09fRkxBRygodHR5KSxGRkRMWSkKCiNkZWZp
bmUgQ19CQVVEKHR0eSkgX0NfRkxBRygodHR5KSxDQkFVRCkKI2RlZmluZSBDX0NTSVpFKHR0eSkg
X0NfRkxBRygodHR5KSxDU0laRSkKI2RlZmluZSBDX0NTVE9QQih0dHkpIF9DX0ZMQUcoKHR0eSks
Q1NUT1BCKQojZGVmaW5lIENfQ1JFQUQodHR5KSBfQ19GTEFHKCh0dHkpLENSRUFEKQojZGVmaW5l
IENfUEFSRU5CKHR0eSkgX0NfRkxBRygodHR5KSxQQVJFTkIpCiNkZWZpbmUgQ19QQVJPREQodHR5
KSBfQ19GTEFHKCh0dHkpLFBBUk9ERCkKI2RlZmluZSBDX0hVUENMKHR0eSkgX0NfRkxBRygodHR5
KSxIVVBDTCkKI2RlZmluZSBDX0NMT0NBTCh0dHkpIF9DX0ZMQUcoKHR0eSksQ0xPQ0FMKQojZGVm
aW5lIENfQ0lCQVVEKHR0eSkgX0NfRkxBRygodHR5KSxDSUJBVUQpCiNkZWZpbmUgQ19DUlRTQ1RT
KHR0eSkgX0NfRkxBRygodHR5KSxDUlRTQ1RTKQoKI2RlZmluZSBMX0lTSUcodHR5KSBfTF9GTEFH
KCh0dHkpLElTSUcpCiNkZWZpbmUgTF9JQ0FOT04odHR5KSBfTF9GTEFHKCh0dHkpLElDQU5PTikK
I2RlZmluZSBMX1hDQVNFKHR0eSkgX0xfRkxBRygodHR5KSxYQ0FTRSkKI2RlZmluZSBMX0VDSE8o
dHR5KSBfTF9GTEFHKCh0dHkpLEVDSE8pCiNkZWZpbmUgTF9FQ0hPRSh0dHkpIF9MX0ZMQUcoKHR0
eSksRUNIT0UpCiNkZWZpbmUgTF9FQ0hPSyh0dHkpIF9MX0ZMQUcoKHR0eSksRUNIT0spCiNkZWZp
bmUgTF9FQ0hPTkwodHR5KSBfTF9GTEFHKCh0dHkpLEVDSE9OTCkKI2RlZmluZSBMX05PRkxTSCh0
dHkpIF9MX0ZMQUcoKHR0eSksTk9GTFNIKQojZGVmaW5lIExfVE9TVE9QKHR0eSkgX0xfRkxBRygo
dHR5KSxUT1NUT1ApCiNkZWZpbmUgTF9FQ0hPQ1RMKHR0eSkgX0xfRkxBRygodHR5KSxFQ0hPQ1RM
KQojZGVmaW5lIExfRUNIT1BSVCh0dHkpIF9MX0ZMQUcoKHR0eSksRUNIT1BSVCkKI2RlZmluZSBM
X0VDSE9LRSh0dHkpIF9MX0ZMQUcoKHR0eSksRUNIT0tFKQojZGVmaW5lIExfRkxVU0hPKHR0eSkg
X0xfRkxBRygodHR5KSxGTFVTSE8pCiNkZWZpbmUgTF9QRU5ESU4odHR5KSBfTF9GTEFHKCh0dHkp
LFBFTkRJTikKI2RlZmluZSBMX0lFWFRFTih0dHkpIF9MX0ZMQUcoKHR0eSksSUVYVEVOKQojIDI1
OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90dHkuaCIKc3RydWN0IHR0eV9z
dHJ1Y3QgewogICAgICAgIGludCBtYWdpYzsKICAgICAgICBzdHJ1Y3QgdHR5X2RyaXZlciBkcml2
ZXI7CiAgICAgICAgc3RydWN0IHR0eV9sZGlzYyBsZGlzYzsKICAgICAgICBzdHJ1Y3QgdGVybWlv
cyAqdGVybWlvcywgKnRlcm1pb3NfbG9ja2VkOwogICAgICAgIGludCBwZ3JwOwogICAgICAgIGlu
dCBzZXNzaW9uOwogICAgICAgIGtkZXZfdCBkZXZpY2U7CiAgICAgICAgdW5zaWduZWQgbG9uZyBm
bGFnczsKICAgICAgICBpbnQgY291bnQ7CiAgICAgICAgc3RydWN0IHdpbnNpemUgd2luc2l6ZTsK
ICAgICAgICB1bnNpZ25lZCBjaGFyIHN0b3BwZWQ6MSwgaHdfc3RvcHBlZDoxLCBmbG93X3N0b3Bw
ZWQ6MSwgcGFja2V0OjE7CiAgICAgICAgdW5zaWduZWQgY2hhciBsb3dfbGF0ZW5jeToxLCB3YXJu
ZWQ6MTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGN0cmxfc3RhdHVzOwoKICAgICAgICBzdHJ1Y3Qg
dHR5X3N0cnVjdCAqbGluazsKICAgICAgICBzdHJ1Y3QgZmFzeW5jX3N0cnVjdCAqZmFzeW5jOwog
ICAgICAgIHN0cnVjdCB0dHlfZmxpcF9idWZmZXIgZmxpcDsKICAgICAgICBpbnQgbWF4X2ZsaXBf
Y250OwogICAgICAgIGludCBhbHRfc3BlZWQ7CiAgICAgICAgd2FpdF9xdWV1ZV9oZWFkX3Qgd3Jp
dGVfd2FpdDsKICAgICAgICB3YWl0X3F1ZXVlX2hlYWRfdCByZWFkX3dhaXQ7CiAgICAgICAgc3Ry
dWN0IHRxX3N0cnVjdCB0cV9oYW5ndXA7CiAgICAgICAgdm9pZCAqZGlzY19kYXRhOwogICAgICAg
IHZvaWQgKmRyaXZlcl9kYXRhOwogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgdHR5X2ZpbGVzOwoK
I2RlZmluZSBOX1RUWV9CVUZfU0laRSA0MDk2CgoKCgoKICAgICAgICB1bnNpZ25lZCBpbnQgY29s
dW1uOwogICAgICAgIHVuc2lnbmVkIGNoYXIgbG5leHQ6MSwgZXJhc2luZzoxLCByYXc6MSwgcmVh
bF9yYXc6MSwgaWNhbm9uOjE7CiAgICAgICAgdW5zaWduZWQgY2hhciBjbG9zaW5nOjE7CiAgICAg
ICAgdW5zaWduZWQgc2hvcnQgbWluaW11bV90b193YWtlOwogICAgICAgIHVuc2lnbmVkIG92ZXJy
dW5fdGltZTsKICAgICAgICBpbnQgbnVtX292ZXJydW47CiAgICAgICAgdW5zaWduZWQgbG9uZyBw
cm9jZXNzX2NoYXJfbWFwWzI1Ni8oOCpzaXplb2YodW5zaWduZWQgbG9uZykpXTsKICAgICAgICBj
aGFyICpyZWFkX2J1ZjsKICAgICAgICBpbnQgcmVhZF9oZWFkOwogICAgICAgIGludCByZWFkX3Rh
aWw7CiAgICAgICAgaW50IHJlYWRfY250OwogICAgICAgIHVuc2lnbmVkIGxvbmcgcmVhZF9mbGFn
c1s0MDk2Lyg4KnNpemVvZih1bnNpZ25lZCBsb25nKSldOwogICAgICAgIGludCBjYW5vbl9kYXRh
OwogICAgICAgIHVuc2lnbmVkIGxvbmcgY2Fub25faGVhZDsKICAgICAgICB1bnNpZ25lZCBpbnQg
Y2Fub25fY29sdW1uOwogICAgICAgIHN0cnVjdCBzZW1hcGhvcmUgYXRvbWljX3JlYWQ7CiAgICAg
ICAgc3RydWN0IHNlbWFwaG9yZSBhdG9taWNfd3JpdGU7CiAgICAgICAgc3BpbmxvY2tfdCByZWFk
X2xvY2s7CgogICAgICAgIHN0cnVjdCB0cV9zdHJ1Y3QgU0FLX3RxOwp9OwoKCiNkZWZpbmUgVFRZ
X01BR0lDIDB4NTQwMQojIDMyNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90
dHkuaCIKI2RlZmluZSBUVFlfVEhST1RUTEVEIDAKI2RlZmluZSBUVFlfSU9fRVJST1IgMQojZGVm
aW5lIFRUWV9PVEhFUl9DTE9TRUQgMgojZGVmaW5lIFRUWV9FWENMVVNJVkUgMwojZGVmaW5lIFRU
WV9ERUJVRyA0CiNkZWZpbmUgVFRZX0RPX1dSSVRFX1dBS0VVUCA1CiNkZWZpbmUgVFRZX1BVU0gg
NgojZGVmaW5lIFRUWV9DTE9TSU5HIDcKI2RlZmluZSBUVFlfRE9OVF9GTElQIDgKI2RlZmluZSBU
VFlfSFdfQ09PS19PVVQgMTQKI2RlZmluZSBUVFlfSFdfQ09PS19JTiAxNQojZGVmaW5lIFRUWV9Q
VFlfTE9DSyAxNgojZGVmaW5lIFRUWV9OT19XUklURV9TUExJVCAxNwoKI2RlZmluZSBUVFlfV1JJ
VEVfRkxVU0godHR5KSB0dHlfd3JpdGVfZmx1c2goKHR0eSkpCgpleHRlcm4gdm9pZCB0dHlfd3Jp
dGVfZmx1c2goc3RydWN0IHR0eV9zdHJ1Y3QgKik7CgpleHRlcm4gc3RydWN0IHRlcm1pb3MgdHR5
X3N0ZF90ZXJtaW9zX1JzbXBfODlhYzUyNTQ7CmV4dGVybiBzdHJ1Y3QgdHR5X3N0cnVjdCAqIHJl
ZGlyZWN0OwpleHRlcm4gc3RydWN0IHR0eV9sZGlzYyBsZGlzY3NbXTsKZXh0ZXJuIGludCBmZ19j
b25zb2xlX1JzbXBfNGU2ZThlYTcsIGxhc3RfY29uc29sZSwgd2FudF9jb25zb2xlOwoKZXh0ZXJu
IGludCBrbXNnX3JlZGlyZWN0OwoKZXh0ZXJuIHZvaWQgY29uX2luaXQodm9pZCk7CmV4dGVybiB2
b2lkIGNvbnNvbGVfaW5pdCh2b2lkKTsKCmV4dGVybiBpbnQgbHBfaW5pdCh2b2lkKTsKZXh0ZXJu
IGludCBwdHlfaW5pdCh2b2lkKTsKZXh0ZXJuIHZvaWQgdHR5X2luaXQodm9pZCk7CmV4dGVybiBp
bnQgbXhzZXJfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBtb3hhX2luaXQodm9pZCk7CmV4dGVybiBp
bnQgaXAyX2luaXQodm9pZCk7CmV4dGVybiBpbnQgcGN4ZV9pbml0KHZvaWQpOwpleHRlcm4gaW50
IHBjX2luaXQodm9pZCk7CmV4dGVybiBpbnQgdmNzX2luaXQodm9pZCk7CmV4dGVybiBpbnQgcnBf
aW5pdCh2b2lkKTsKZXh0ZXJuIGludCBjeV9pbml0KHZvaWQpOwpleHRlcm4gaW50IHN0bF9pbml0
KHZvaWQpOwpleHRlcm4gaW50IHN0bGlfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBzcGVjaWFsaXhf
aW5pdCh2b2lkKTsKZXh0ZXJuIGludCBlc3BzZXJpYWxfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBt
YWNzZXJpYWxfaW5pdCh2b2lkKTsKZXh0ZXJuIGludCBhMjIzMmJvYXJkX2luaXQodm9pZCk7Cgpl
eHRlcm4gaW50IHR0eV9wYXJhbm9pYV9jaGVjayhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5LCBrZGV2
X3QgZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyb3V0
aW5lKTsKZXh0ZXJuIGNoYXIgKnR0eV9uYW1lKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGNoYXIg
KmJ1Zik7CmV4dGVybiB2b2lkIHR0eV93YWl0X3VudGlsX3NlbnRfUnNtcF9mZGNiMjQ1ZihzdHJ1
Y3QgdHR5X3N0cnVjdCAqIHR0eSwgbG9uZyB0aW1lb3V0KTsKZXh0ZXJuIGludCB0dHlfY2hlY2tf
Y2hhbmdlX1JzbXBfODQ4YTdiZjAoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0dHkpOwpleHRlcm4gdm9p
ZCBzdG9wX3R0eShzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSk7CmV4dGVybiB2b2lkIHN0YXJ0X3R0
eShzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSk7CmV4dGVybiBpbnQgdHR5X3JlZ2lzdGVyX2xkaXNj
X1JzbXBfODY5YzA4YjUoaW50IGRpc2MsIHN0cnVjdCB0dHlfbGRpc2MgKm5ld19sZGlzYyk7CmV4
dGVybiBpbnQgdHR5X3JlZ2lzdGVyX2RyaXZlcl9Sc21wXzRhMDZlZDNmKHN0cnVjdCB0dHlfZHJp
dmVyICpkcml2ZXIpOwpleHRlcm4gaW50IHR0eV91bnJlZ2lzdGVyX2RyaXZlcl9Sc21wXzJmYWU0
YWI1KHN0cnVjdCB0dHlfZHJpdmVyICpkcml2ZXIpOwpleHRlcm4gdm9pZCB0dHlfcmVnaXN0ZXJf
ZGV2ZnNfUnNtcF8yNzFmMTIzNCAoc3RydWN0IHR0eV9kcml2ZXIgKmRyaXZlciwgdW5zaWduZWQg
aW50IGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG1pbm9y
KTsKZXh0ZXJuIHZvaWQgdHR5X3VucmVnaXN0ZXJfZGV2ZnNfUnNtcF8wMDhhN2E0MiAoc3RydWN0
IHR0eV9kcml2ZXIgKmRyaXZlciwgdW5zaWduZWQgbWlub3IpOwpleHRlcm4gaW50IHR0eV9yZWFk
X3Jhd19kYXRhKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIHVuc2lnbmVkIGNoYXIgKmJ1ZnAsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ1Zmxlbik7CmV4dGVybiB2b2lkIHR0eV93
cml0ZV9tZXNzYWdlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHksIGNoYXIgKm1zZyk7CgpleHRlcm4g
aW50IGlzX29ycGhhbmVkX3BncnAoaW50IHBncnApOwpleHRlcm4gaW50IGlzX2lnbm9yZWQoaW50
IHNpZyk7CmV4dGVybiBpbnQgdHR5X3NpZ25hbChpbnQgc2lnLCBzdHJ1Y3QgdHR5X3N0cnVjdCAq
dHR5KTsKZXh0ZXJuIHZvaWQgdHR5X2hhbmd1cF9Sc21wX2ZlYWU0NjVmKHN0cnVjdCB0dHlfc3Ry
dWN0ICogdHR5KTsKZXh0ZXJuIHZvaWQgdHR5X3ZoYW5ndXAoc3RydWN0IHR0eV9zdHJ1Y3QgKiB0
dHkpOwpleHRlcm4gdm9pZCB0dHlfdW5oYW5ndXAoc3RydWN0IGZpbGUgKmZpbHApOwpleHRlcm4g
aW50IHR0eV9odW5nX3VwX3BfUnNtcF8xNzdkNGI3OChzdHJ1Y3QgZmlsZSAqIGZpbHApOwpleHRl
cm4gdm9pZCBkb19TQUtfUnNtcF9lMmJhYzdjYyhzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KTsKZXh0
ZXJuIHZvaWQgZGlzYXNzb2NpYXRlX2N0dHkoaW50IHByaXYpOwpleHRlcm4gdm9pZCB0dHlfZmxp
cF9idWZmZXJfcHVzaF9Sc21wXzA0Njk3NDcyKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpOwpleHRl
cm4gaW50IHR0eV9nZXRfYmF1ZF9yYXRlX1JzbXBfNTBkZTg3Y2Eoc3RydWN0IHR0eV9zdHJ1Y3Qg
KnR0eSk7CgoKZXh0ZXJuIHN0cnVjdCB0dHlfbGRpc2MgdHR5X2xkaXNjX05fVFRZOwoKCmV4dGVy
biBpbnQgbl90dHlfaW9jdGxfUnNtcF83NmUyMGI3MChzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSwg
c3RydWN0IGZpbGUgKiBmaWxlLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBj
bWQsIHVuc2lnbmVkIGxvbmcgYXJnKTsKCgoKZXh0ZXJuIHZvaWQgc2VyaWFsX2NvbnNvbGVfaW5p
dCh2b2lkKTsKCgoKZXh0ZXJuIGludCBwY3hlX29wZW4oc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSwg
c3RydWN0IGZpbGUgKmZpbHApOwoKCgpleHRlcm4gdm9pZCBjb25zb2xlX3ByaW50X1JzbXBfYjcx
NGE5ODEoY29uc3QgY2hhciAqKTsKCgoKZXh0ZXJuIGludCB2dF9pb2N0bChzdHJ1Y3QgdHR5X3N0
cnVjdCAqdHR5LCBzdHJ1Y3QgZmlsZSAqIGZpbGUsCiAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpOwojIDI1ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3NlbS5oIiAxCgojZGVmaW5lIF9MSU5VWF9TRU1fSAoKIyAxICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2lwYy5oIiAxCgojZGVmaW5lIF9MSU5VWF9JUENfSAoK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyA1ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2lwYy5oIiAyCgojZGVmaW5lIElQQ19Q
UklWQVRFICgoX19rZXJuZWxfa2V5X3QpIDApCgoKc3RydWN0IGlwY19wZXJtCnsKICAgICAgICBf
X2tlcm5lbF9rZXlfdCBrZXk7CiAgICAgICAgX19rZXJuZWxfdWlkX3QgdWlkOwogICAgICAgIF9f
a2VybmVsX2dpZF90IGdpZDsKICAgICAgICBfX2tlcm5lbF91aWRfdCBjdWlkOwogICAgICAgIF9f
a2VybmVsX2dpZF90IGNnaWQ7CiAgICAgICAgX19rZXJuZWxfbW9kZV90IG1vZGU7CiAgICAgICAg
dW5zaWduZWQgc2hvcnQgc2VxOwp9OwoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vaXBjYnVmLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X0lQQ0JVRl9ICiMgMTQgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2lwY2J1Zi5oIgpzdHJ1Y3QgaXBjNjRfcGVybQp7
CiAgICAgICAgX19rZXJuZWxfa2V5X3Qga2V5OwogICAgICAgIF9fa2VybmVsX3VpZF90IHVpZDsK
ICAgICAgICBfX2tlcm5lbF9naWRfdCBnaWQ7CiAgICAgICAgX19rZXJuZWxfdWlkX3QgY3VpZDsK
ICAgICAgICBfX2tlcm5lbF9naWRfdCBjZ2lkOwogICAgICAgIF9fa2VybmVsX21vZGVfdCBtb2Rl
OwogICAgICAgIHVuc2lnbmVkIHNob3J0IHNlcTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBfX3Bh
ZDE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBfX3VudXNlZDE7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBfX3VudXNlZDI7Cn07CiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
aXBjLmgiIDIKCgojZGVmaW5lIElQQ19DUkVBVCAwMDAwMTAwMAojZGVmaW5lIElQQ19FWENMIDAw
MDAyMDAwCiNkZWZpbmUgSVBDX05PV0FJVCAwMDAwNDAwMAoKCgoKI2RlZmluZSBJUENfRElQQyAw
MDAxMDAwMAojZGVmaW5lIElQQ19PV04gMDAwMjAwMDAKCgoKCgojZGVmaW5lIElQQ19STUlEIDAK
I2RlZmluZSBJUENfU0VUIDEKI2RlZmluZSBJUENfU1RBVCAyCiNkZWZpbmUgSVBDX0lORk8gMwoK
CgoKCiNkZWZpbmUgSVBDX09MRCAwCgojZGVmaW5lIElQQ182NCAweDAxMDAKCgoKCiNkZWZpbmUg
SVBDTU5JIDMyNzY4CgoKc3RydWN0IGtlcm5faXBjX3Blcm0KewogICAgICAgIGtleV90IGtleTsK
ICAgICAgICB1aWRfdCB1aWQ7CiAgICAgICAgZ2lkX3QgZ2lkOwogICAgICAgIHVpZF90IGN1aWQ7
CiAgICAgICAgZ2lkX3QgY2dpZDsKICAgICAgICBtb2RlX3QgbW9kZTsKICAgICAgICB1bnNpZ25l
ZCBsb25nIHNlcTsKfTsKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Nl
bS5oIiAyCgoKI2RlZmluZSBTRU1fVU5ETyAweDEwMDAKCgojZGVmaW5lIEdFVFBJRCAxMQojZGVm
aW5lIEdFVFZBTCAxMgojZGVmaW5lIEdFVEFMTCAxMwojZGVmaW5lIEdFVE5DTlQgMTQKI2RlZmlu
ZSBHRVRaQ05UIDE1CiNkZWZpbmUgU0VUVkFMIDE2CiNkZWZpbmUgU0VUQUxMIDE3CgoKI2RlZmlu
ZSBTRU1fU1RBVCAxOAojZGVmaW5lIFNFTV9JTkZPIDE5CgoKc3RydWN0IHNlbWlkX2RzIHsKICAg
ICAgICBzdHJ1Y3QgaXBjX3Blcm0gc2VtX3Blcm07CiAgICAgICAgX19rZXJuZWxfdGltZV90IHNl
bV9vdGltZTsKICAgICAgICBfX2tlcm5lbF90aW1lX3Qgc2VtX2N0aW1lOwogICAgICAgIHN0cnVj
dCBzZW0gKnNlbV9iYXNlOwogICAgICAgIHN0cnVjdCBzZW1fcXVldWUgKnNlbV9wZW5kaW5nOwog
ICAgICAgIHN0cnVjdCBzZW1fcXVldWUgKipzZW1fcGVuZGluZ19sYXN0OwogICAgICAgIHN0cnVj
dCBzZW1fdW5kbyAqdW5kbzsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzZW1fbnNlbXM7Cn07CgoK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zZW1idWYuaCIgMQoKI2RlZmlu
ZSBfQVNNX0lBNjRfU0VNQlVGX0gKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vc2VtYnVmLmgiCnN0cnVjdCBzZW1pZDY0X2RzIHsKICAgICAgICBzdHJ1Y3QgaXBjNjRfcGVy
bSBzZW1fcGVybTsKICAgICAgICBfX2tlcm5lbF90aW1lX3Qgc2VtX290aW1lOwogICAgICAgIF9f
a2VybmVsX3RpbWVfdCBzZW1fY3RpbWU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzZW1fbnNlbXM7
CiAgICAgICAgdW5zaWduZWQgbG9uZyBfX3VudXNlZDE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBf
X3VudXNlZDI7Cn07CiMgMzYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2Vt
LmgiIDIKCgpzdHJ1Y3Qgc2VtYnVmIHsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBzZW1fbnVtOwog
ICAgICAgIHNob3J0IHNlbV9vcDsKICAgICAgICBzaG9ydCBzZW1fZmxnOwp9OwoKCnVuaW9uIHNl
bXVuIHsKICAgICAgICBpbnQgdmFsOwogICAgICAgIHN0cnVjdCBzZW1pZF9kcyAqYnVmOwogICAg
ICAgIHVuc2lnbmVkIHNob3J0ICphcnJheTsKICAgICAgICBzdHJ1Y3Qgc2VtaW5mbyAqX19idWY7
CiAgICAgICAgdm9pZCAqX19wYWQ7Cn07CgpzdHJ1Y3Qgc2VtaW5mbyB7CiAgICAgICAgaW50IHNl
bW1hcDsKICAgICAgICBpbnQgc2VtbW5pOwogICAgICAgIGludCBzZW1tbnM7CiAgICAgICAgaW50
IHNlbW1udTsKICAgICAgICBpbnQgc2VtbXNsOwogICAgICAgIGludCBzZW1vcG07CiAgICAgICAg
aW50IHNlbXVtZTsKICAgICAgICBpbnQgc2VtdXN6OwogICAgICAgIGludCBzZW12bXg7CiAgICAg
ICAgaW50IHNlbWFlbTsKfTsKCiNkZWZpbmUgU0VNTU5JIDEyOAojZGVmaW5lIFNFTU1TTCAyNTAK
I2RlZmluZSBTRU1NTlMgKFNFTU1OSSpTRU1NU0wpCiNkZWZpbmUgU0VNT1BNIDMyCiNkZWZpbmUg
U0VNVk1YIDMyNzY3CgoKI2RlZmluZSBTRU1VTUUgU0VNT1BNCiNkZWZpbmUgU0VNTU5VIFNFTU1O
UwojZGVmaW5lIFNFTUFFTSAoU0VNVk1YID4+IDEpCiNkZWZpbmUgU0VNTUFQIFNFTU1OUwojZGVm
aW5lIFNFTVVTWiAyMAoKCgoKc3RydWN0IHNlbSB7CiAgICAgICAgaW50IHNlbXZhbDsKICAgICAg
ICBpbnQgc2VtcGlkOwp9OwoKCnN0cnVjdCBzZW1fYXJyYXkgewogICAgICAgIHN0cnVjdCBrZXJu
X2lwY19wZXJtIHNlbV9wZXJtOwogICAgICAgIHRpbWVfdCBzZW1fb3RpbWU7CiAgICAgICAgdGlt
ZV90IHNlbV9jdGltZTsKICAgICAgICBzdHJ1Y3Qgc2VtICpzZW1fYmFzZTsKICAgICAgICBzdHJ1
Y3Qgc2VtX3F1ZXVlICpzZW1fcGVuZGluZzsKICAgICAgICBzdHJ1Y3Qgc2VtX3F1ZXVlICoqc2Vt
X3BlbmRpbmdfbGFzdDsKICAgICAgICBzdHJ1Y3Qgc2VtX3VuZG8gKnVuZG87CiAgICAgICAgdW5z
aWduZWQgbG9uZyBzZW1fbnNlbXM7Cn07CgoKc3RydWN0IHNlbV9xdWV1ZSB7CiAgICAgICAgc3Ry
dWN0IHNlbV9xdWV1ZSAqIG5leHQ7CiAgICAgICAgc3RydWN0IHNlbV9xdWV1ZSAqKiBwcmV2Owog
ICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCogc2xlZXBlcjsKICAgICAgICBzdHJ1Y3Qgc2VtX3Vu
ZG8gKiB1bmRvOwogICAgICAgIGludCBwaWQ7CiAgICAgICAgaW50IHN0YXR1czsKICAgICAgICBz
dHJ1Y3Qgc2VtX2FycmF5ICogc21hOwogICAgICAgIGludCBpZDsKICAgICAgICBzdHJ1Y3Qgc2Vt
YnVmICogc29wczsKICAgICAgICBpbnQgbnNvcHM7CiAgICAgICAgaW50IGFsdGVyOwp9OwoKCgoK
c3RydWN0IHNlbV91bmRvIHsKICAgICAgICBzdHJ1Y3Qgc2VtX3VuZG8gKiBwcm9jX25leHQ7CiAg
ICAgICAgc3RydWN0IHNlbV91bmRvICogaWRfbmV4dDsKICAgICAgICBpbnQgc2VtaWQ7CiAgICAg
ICAgc2hvcnQgKiBzZW1hZGo7Cn07CgogX19hdHRyaWJ1dGVfXygoc3lzY2FsbF9saW5rYWdlKSkg
bG9uZyBzeXNfc2VtZ2V0IChrZXlfdCBrZXksIGludCBuc2VtcywgaW50IHNlbWZsZyk7CiBfX2F0
dHJpYnV0ZV9fKChzeXNjYWxsX2xpbmthZ2UpKSBsb25nIHN5c19zZW1vcCAoaW50IHNlbWlkLCBz
dHJ1Y3Qgc2VtYnVmICpzb3BzLCB1bnNpZ25lZCBuc29wcyk7CiBfX2F0dHJpYnV0ZV9fKChzeXNj
YWxsX2xpbmthZ2UpKSBsb25nIHN5c19zZW1jdGwgKGludCBzZW1pZCwgaW50IHNlbW51bSwgaW50
IGNtZCwgdW5pb24gc2VtdW4gYXJnKTsKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9zaWduYWwuaCIgMQoKI2RlZmluZSBfTElOVVhfU0lHTkFMX0gKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnbmFsLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NJR05B
TF9ICiMgMTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3NpZ25hbC5oIgojZGVm
aW5lIFNJR0hVUCAxCiNkZWZpbmUgU0lHSU5UIDIKI2RlZmluZSBTSUdRVUlUIDMKI2RlZmluZSBT
SUdJTEwgNAojZGVmaW5lIFNJR1RSQVAgNQojZGVmaW5lIFNJR0FCUlQgNgojZGVmaW5lIFNJR0lP
VCA2CiNkZWZpbmUgU0lHQlVTIDcKI2RlZmluZSBTSUdGUEUgOAojZGVmaW5lIFNJR0tJTEwgOQoj
ZGVmaW5lIFNJR1VTUjEgMTAKI2RlZmluZSBTSUdTRUdWIDExCiNkZWZpbmUgU0lHVVNSMiAxMgoj
ZGVmaW5lIFNJR1BJUEUgMTMKI2RlZmluZSBTSUdBTFJNIDE0CiNkZWZpbmUgU0lHVEVSTSAxNQoj
ZGVmaW5lIFNJR1NUS0ZMVCAxNgojZGVmaW5lIFNJR0NITEQgMTcKI2RlZmluZSBTSUdDT05UIDE4
CiNkZWZpbmUgU0lHU1RPUCAxOQojZGVmaW5lIFNJR1RTVFAgMjAKI2RlZmluZSBTSUdUVElOIDIx
CiNkZWZpbmUgU0lHVFRPVSAyMgojZGVmaW5lIFNJR1VSRyAyMwojZGVmaW5lIFNJR1hDUFUgMjQK
I2RlZmluZSBTSUdYRlNaIDI1CiNkZWZpbmUgU0lHVlRBTFJNIDI2CiNkZWZpbmUgU0lHUFJPRiAy
NwojZGVmaW5lIFNJR1dJTkNIIDI4CiNkZWZpbmUgU0lHSU8gMjkKI2RlZmluZSBTSUdQT0xMIFNJ
R0lPCgoKCiNkZWZpbmUgU0lHUFdSIDMwCiNkZWZpbmUgU0lHU1lTIDMxCgojZGVmaW5lIFNJR1VO
VVNFRCAzMQoKCiNkZWZpbmUgU0lHUlRNSU4gMzIKI2RlZmluZSBTSUdSVE1BWCAoX05TSUctMSkK
IyA2OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnbmFsLmgiCiNkZWZpbmUg
U0FfTk9DTERTVE9QIDB4MDAwMDAwMDEKI2RlZmluZSBTQV9OT0NMRFdBSVQgMHgwMDAwMDAwMgoj
ZGVmaW5lIFNBX1NJR0lORk8gMHgwMDAwMDAwNAojZGVmaW5lIFNBX09OU1RBQ0sgMHgwODAwMDAw
MAojZGVmaW5lIFNBX1JFU1RBUlQgMHgxMDAwMDAwMAojZGVmaW5lIFNBX05PREVGRVIgMHg0MDAw
MDAwMAojZGVmaW5lIFNBX1JFU0VUSEFORCAweDgwMDAwMDAwCgojZGVmaW5lIFNBX05PTUFTSyBT
QV9OT0RFRkVSCiNkZWZpbmUgU0FfT05FU0hPVCBTQV9SRVNFVEhBTkQKI2RlZmluZSBTQV9JTlRF
UlJVUFQgMHgyMDAwMDAwMAoKI2RlZmluZSBTQV9SRVNUT1JFUiAweDA0MDAwMDAwCgoKCgojZGVm
aW5lIFNTX09OU1RBQ0sgMQojZGVmaW5lIFNTX0RJU0FCTEUgMgoKI2RlZmluZSBNSU5TSUdTVEtT
WiAyMDQ4CiNkZWZpbmUgU0lHU1RLU1ogODE5MgoKCgojZGVmaW5lIF9OU0lHIDY0CiNkZWZpbmUg
X05TSUdfQlBXIDY0CiNkZWZpbmUgX05TSUdfV09SRFMgKF9OU0lHIC8gX05TSUdfQlBXKQojIDEw
NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnbmFsLmgiCiNkZWZpbmUgU0Ff
UFJPQkUgU0FfT05FU0hPVAojZGVmaW5lIFNBX1NBTVBMRV9SQU5ET00gU0FfUkVTVEFSVAojZGVm
aW5lIFNBX1NISVJRIDB4MDQwMDAwMDAKCgoKI2RlZmluZSBTSUdfQkxPQ0sgMAojZGVmaW5lIFNJ
R19VTkJMT0NLIDEKI2RlZmluZSBTSUdfU0VUTUFTSyAyCgojZGVmaW5lIFNJR19ERkwgKChfX3Np
Z2hhbmRsZXJfdCkwKQojZGVmaW5lIFNJR19JR04gKChfX3NpZ2hhbmRsZXJfdCkxKQojZGVmaW5l
IFNJR19FUlIgKChfX3NpZ2hhbmRsZXJfdCktMSkKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3R5cGVzLmgiIDEKIyAxMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvYXNtL3NpZ25hbC5oIiAyCgoKc3RydWN0IHNpZ2luZm87CgoKdHlwZWRlZiB2b2lkICgq
X19zaWdoYW5kbGVyX3QpKGludCk7Cgp0eXBlZGVmIHN0cnVjdCBzaWdhbHRzdGFjayB7CiAgICAg
ICAgdm9pZCAqc3Nfc3A7CiAgICAgICAgaW50IHNzX2ZsYWdzOwogICAgICAgIHNpemVfdCBzc19z
aXplOwp9IHN0YWNrX3Q7CgoKCgoKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBvbGRfc2lnc2V0X3Q7
Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaWdbKDY0IC8gNjQpXTsK
fSBzaWdzZXRfdDsKCnN0cnVjdCBzaWdhY3Rpb24gewogICAgICAgIF9fc2lnaGFuZGxlcl90IHNh
X2hhbmRsZXI7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzYV9mbGFnczsKICAgICAgICBzaWdzZXRf
dCBzYV9tYXNrOwp9OwoKc3RydWN0IGtfc2lnYWN0aW9uIHsKICAgICAgICBzdHJ1Y3Qgc2lnYWN0
aW9uIHNhOwp9OwoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWdjb250
ZXh0LmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NJR0NPTlRFWFRfSAoKCgoKCgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2ZwdS5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvYXNtL3NpZ2NvbnRleHQuaCIgMgoKI2RlZmluZSBJQTY0X1NDX0ZMQUdf
T05TVEFDS19CSVQgMQojZGVmaW5lIElBNjRfU0NfRkxBR19JTl9TWVNDQUxMX0JJVCAxCiNkZWZp
bmUgSUE2NF9TQ19GTEFHX0ZQSF9WQUxJRF9CSVQgMgoKI2RlZmluZSBJQTY0X1NDX0ZMQUdfT05T
VEFDSyAoMSA8PCBJQTY0X1NDX0ZMQUdfT05TVEFDS19CSVQpCiNkZWZpbmUgSUE2NF9TQ19GTEFH
X0lOX1NZU0NBTEwgKDEgPDwgSUE2NF9TQ19GTEFHX0lOX1NZU0NBTExfQklUKQojZGVmaW5lIElB
NjRfU0NfRkxBR19GUEhfVkFMSUQgKDEgPDwgSUE2NF9TQ19GTEFHX0ZQSF9WQUxJRF9CSVQpCgoK
CnN0cnVjdCBzaWdjb250ZXh0IHsKICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2ZsYWdzOwogICAg
ICAgIHVuc2lnbmVkIGxvbmcgc2NfbmF0OwogICAgICAgIHN0YWNrX3Qgc2Nfc3RhY2s7CgogICAg
ICAgIHVuc2lnbmVkIGxvbmcgc2NfaXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19jZm07CiAg
ICAgICAgdW5zaWduZWQgbG9uZyBzY191bTsKICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2FyX3Jz
YzsKICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2FyX2JzcDsKICAgICAgICB1bnNpZ25lZCBsb25n
IHNjX2FyX3JuYXQ7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19hcl9jY3Y7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBzY19hcl91bmF0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2NfYXJfZnBzcjsK
ICAgICAgICB1bnNpZ25lZCBsb25nIHNjX2FyX3BmczsKICAgICAgICB1bnNpZ25lZCBsb25nIHNj
X2FyX2xjOwogICAgICAgIHVuc2lnbmVkIGxvbmcgc2NfcHI7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBzY19icls4XTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19nclszMl07CiAgICAgICAgc3Ry
dWN0IGlhNjRfZnByZWcgc2NfZnJbMTI4XTsKCiAgICAgICAgdW5zaWduZWQgbG9uZyBzY19yc3Zk
WzE2XTsKCgoKCgogICAgICAgIHNpZ3NldF90IHNjX21hc2s7Cn07CiMgMTU3ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWduYWwuaCIgMgojIDUgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc2lnbmFsLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS9zaWdpbmZvLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1NJR0lORk9fSAoKCgoK
CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvdHlwZXMuaCIgMQojIDEw
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWdpbmZvLmgiIDIKCnR5cGVkZWYg
dW5pb24gc2lndmFsIHsKICAgICAgICBpbnQgc2l2YWxfaW50OwogICAgICAgIHZvaWQgKnNpdmFs
X3B0cjsKfSBzaWd2YWxfdDsKCiNkZWZpbmUgU0lfTUFYX1NJWkUgMTI4CiNkZWZpbmUgU0lfUEFE
X1NJWkUgKChTSV9NQVhfU0laRS9zaXplb2YoaW50KSkgLSA0KQoKdHlwZWRlZiBzdHJ1Y3Qgc2ln
aW5mbyB7CiAgICAgICAgaW50IHNpX3NpZ25vOwogICAgICAgIGludCBzaV9lcnJubzsKICAgICAg
ICBpbnQgc2lfY29kZTsKICAgICAgICBpbnQgX19wYWQwOwoKICAgICAgICB1bmlvbiB7CiAgICAg
ICAgICAgICAgICBpbnQgX3BhZFsoKDEyOC9zaXplb2YoaW50KSkgLSA0KV07CgoKICAgICAgICAg
ICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBpZF90IF9waWQ7CiAgICAg
ICAgICAgICAgICAgICAgICAgIHVpZF90IF91aWQ7CiAgICAgICAgICAgICAgICB9IF9raWxsOwoK
CiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBpbnQgX3RpbWVyMTsKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF90aW1l
cjI7CiAgICAgICAgICAgICAgICB9IF90aW1lcjsKCgogICAgICAgICAgICAgICAgc3RydWN0IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgcGlkX3QgX3BpZDsKICAgICAgICAgICAgICAgICAgICAg
ICAgdWlkX3QgX3VpZDsKICAgICAgICAgICAgICAgICAgICAgICAgc2lndmFsX3QgX3NpZ3ZhbDsK
ICAgICAgICAgICAgICAgIH0gX3J0OwoKCiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAg
ICAgICAgICAgICAgICAgICBwaWRfdCBfcGlkOwogICAgICAgICAgICAgICAgICAgICAgICB1aWRf
dCBfdWlkOwogICAgICAgICAgICAgICAgICAgICAgICBpbnQgX3N0YXR1czsKICAgICAgICAgICAg
ICAgICAgICAgICAgY2xvY2tfdCBfdXRpbWU7CiAgICAgICAgICAgICAgICAgICAgICAgIGNsb2Nr
X3QgX3N0aW1lOwogICAgICAgICAgICAgICAgfSBfc2lnY2hsZDsKCgogICAgICAgICAgICAgICAg
c3RydWN0IHsKICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqX2FkZHI7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGludCBfaW1tOwogICAgICAgICAgICAgICAgICAgICAgICBpbnQgX3BhZDA7
CiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgX2lzcjsKICAgICAgICAgICAg
ICAgIH0gX3NpZ2ZhdWx0OwoKCiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAg
ICAgICAgICAgICBsb25nIF9iYW5kOwogICAgICAgICAgICAgICAgICAgICAgICBpbnQgX2ZkOwog
ICAgICAgICAgICAgICAgfSBfc2lncG9sbDsKCiAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAg
ICAgICAgICAgICAgICAgICAgICBwaWRfdCBfcGlkOwogICAgICAgICAgICAgICAgICAgICAgICB1
aWRfdCBfdWlkOwogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIF9wZm1fb3Zm
bF9jb3VudGVyczsKICAgICAgICAgICAgICAgIH0gX3NpZ3Byb2Y7CiAgICAgICAgfSBfc2lmaWVs
ZHM7Cn0gc2lnaW5mb190OwoKCgoKI2RlZmluZSBzaV9waWQgX3NpZmllbGRzLl9raWxsLl9waWQK
I2RlZmluZSBzaV91aWQgX3NpZmllbGRzLl9raWxsLl91aWQKI2RlZmluZSBzaV9zdGF0dXMgX3Np
ZmllbGRzLl9zaWdjaGxkLl9zdGF0dXMKI2RlZmluZSBzaV91dGltZSBfc2lmaWVsZHMuX3NpZ2No
bGQuX3V0aW1lCiNkZWZpbmUgc2lfc3RpbWUgX3NpZmllbGRzLl9zaWdjaGxkLl9zdGltZQojZGVm
aW5lIHNpX3ZhbHVlIF9zaWZpZWxkcy5fcnQuX3NpZ3ZhbAojZGVmaW5lIHNpX2ludCBfc2lmaWVs
ZHMuX3J0Ll9zaWd2YWwuc2l2YWxfaW50CiNkZWZpbmUgc2lfcHRyIF9zaWZpZWxkcy5fcnQuX3Np
Z3ZhbC5zaXZhbF9wdHIKI2RlZmluZSBzaV9hZGRyIF9zaWZpZWxkcy5fc2lnZmF1bHQuX2FkZHIK
I2RlZmluZSBzaV9pbW0gX3NpZmllbGRzLl9zaWdmYXVsdC5faW1tCiNkZWZpbmUgc2lfaXNyIF9z
aWZpZWxkcy5fc2lnZmF1bHQuX2lzcgojZGVmaW5lIHNpX2JhbmQgX3NpZmllbGRzLl9zaWdwb2xs
Ll9iYW5kCiNkZWZpbmUgc2lfZmQgX3NpZmllbGRzLl9zaWdwb2xsLl9mZAojZGVmaW5lIHNpX3Bm
bV9vdmZsIF9zaWZpZWxkcy5fc2lncHJvZi5fcGZtX292ZmxfY291bnRlcnMKCgoKCgoKI2RlZmlu
ZSBfX1NJX01BU0sgMHhmZmZmMDAwMAojZGVmaW5lIF9fU0lfS0lMTCAoMCA8PCAxNikKI2RlZmlu
ZSBfX1NJX1RJTUVSICgxIDw8IDE2KQojZGVmaW5lIF9fU0lfUE9MTCAoMiA8PCAxNikKI2RlZmlu
ZSBfX1NJX0ZBVUxUICgzIDw8IDE2KQojZGVmaW5lIF9fU0lfQ0hMRCAoNCA8PCAxNikKI2RlZmlu
ZSBfX1NJX1JUICg1IDw8IDE2KQojZGVmaW5lIF9fU0lfUFJPRiAoNiA8PCAxNikKI2RlZmluZSBf
X1NJX0NPREUoVCwgTikgKChUKSA8PCAxNiB8ICgoTikgJiAweGZmZmYpKQojIDEyMCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnaW5mby5oIgojZGVmaW5lIFNJX1VTRVIgMAoj
ZGVmaW5lIFNJX0tFUk5FTCAweDgwCiNkZWZpbmUgU0lfUVVFVUUgLTEKI2RlZmluZSBTSV9USU1F
UiBfX1NJX0NPREUoX19TSV9USU1FUiwtMikKI2RlZmluZSBTSV9NRVNHUSAtMwojZGVmaW5lIFNJ
X0FTWU5DSU8gLTQKI2RlZmluZSBTSV9TSUdJTyAtNQoKI2RlZmluZSBTSV9GUk9NVVNFUihzaXB0
cikgKChzaXB0ciktPnNpX2NvZGUgPD0gMCkKI2RlZmluZSBTSV9GUk9NS0VSTkVMKHNpcHRyKSAo
KHNpcHRyKS0+c2lfY29kZSA+IDApCgoKCgojZGVmaW5lIElMTF9JTExPUEMgKF9fU0lfRkFVTFR8
MSkKI2RlZmluZSBJTExfSUxMT1BOIChfX1NJX0ZBVUxUfDIpCiNkZWZpbmUgSUxMX0lMTEFEUiAo
X19TSV9GQVVMVHwzKQojZGVmaW5lIElMTF9JTExUUlAgKF9fU0lfRkFVTFR8NCkKI2RlZmluZSBJ
TExfUFJWT1BDIChfX1NJX0ZBVUxUfDUpCiNkZWZpbmUgSUxMX1BSVlJFRyAoX19TSV9GQVVMVHw2
KQojZGVmaW5lIElMTF9DT1BST0MgKF9fU0lfRkFVTFR8NykKI2RlZmluZSBJTExfQkFEU1RLIChf
X1NJX0ZBVUxUfDgpCiNkZWZpbmUgSUxMX0JBRElBRERSIChfX1NJX0ZBVUxUfDkpCiNkZWZpbmUg
X19JTExfQlJFQUsgKF9fU0lfRkFVTFR8MTApCiNkZWZpbmUgTlNJR0lMTCAxMAoKCgoKI2RlZmlu
ZSBGUEVfSU5URElWIChfX1NJX0ZBVUxUfDEpCiNkZWZpbmUgRlBFX0lOVE9WRiAoX19TSV9GQVVM
VHwyKQojZGVmaW5lIEZQRV9GTFRESVYgKF9fU0lfRkFVTFR8MykKI2RlZmluZSBGUEVfRkxUT1ZG
IChfX1NJX0ZBVUxUfDQpCiNkZWZpbmUgRlBFX0ZMVFVORCAoX19TSV9GQVVMVHw1KQojZGVmaW5l
IEZQRV9GTFRSRVMgKF9fU0lfRkFVTFR8NikKI2RlZmluZSBGUEVfRkxUSU5WIChfX1NJX0ZBVUxU
fDcpCiNkZWZpbmUgRlBFX0ZMVFNVQiAoX19TSV9GQVVMVHw4KQojZGVmaW5lIF9fRlBFX0RFQ09W
RiAoX19TSV9GQVVMVHw5KQojZGVmaW5lIF9fRlBFX0RFQ0RJViAoX19TSV9GQVVMVHwxMCkKI2Rl
ZmluZSBfX0ZQRV9ERUNFUlIgKF9fU0lfRkFVTFR8MTEpCiNkZWZpbmUgX19GUEVfSU5WQVNDIChf
X1NJX0ZBVUxUfDEyKQojZGVmaW5lIF9fRlBFX0lOVkRFQyAoX19TSV9GQVVMVHwxMykKI2RlZmlu
ZSBOU0lHRlBFIDEzCgoKCgojZGVmaW5lIFNFR1ZfTUFQRVJSIChfX1NJX0ZBVUxUfDEpCiNkZWZp
bmUgU0VHVl9BQ0NFUlIgKF9fU0lfRkFVTFR8MikKI2RlZmluZSBfX1NFR1ZfUFNUS09WRiAoX19T
SV9GQVVMVHwzKQojZGVmaW5lIE5TSUdTRUdWIDMKCgoKCiNkZWZpbmUgQlVTX0FEUkFMTiAoX19T
SV9GQVVMVHwxKQojZGVmaW5lIEJVU19BRFJFUlIgKF9fU0lfRkFVTFR8MikKI2RlZmluZSBCVVNf
T0JKRVJSIChfX1NJX0ZBVUxUfDMpCiNkZWZpbmUgTlNJR0JVUyAzCgoKCgojZGVmaW5lIFRSQVBf
QlJLUFQgKF9fU0lfRkFVTFR8MSkKI2RlZmluZSBUUkFQX1RSQUNFIChfX1NJX0ZBVUxUfDIpCiNk
ZWZpbmUgVFJBUF9CUkFOQ0ggKF9fU0lfRkFVTFR8MykKI2RlZmluZSBUUkFQX0hXQktQVCAoX19T
SV9GQVVMVHw0KQojZGVmaW5lIE5TSUdUUkFQIDQKCgoKCiNkZWZpbmUgQ0xEX0VYSVRFRCAoX19T
SV9DSExEfDEpCiNkZWZpbmUgQ0xEX0tJTExFRCAoX19TSV9DSExEfDIpCiNkZWZpbmUgQ0xEX0RV
TVBFRCAoX19TSV9DSExEfDMpCiNkZWZpbmUgQ0xEX1RSQVBQRUQgKF9fU0lfQ0hMRHw0KQojZGVm
aW5lIENMRF9TVE9QUEVEIChfX1NJX0NITER8NSkKI2RlZmluZSBDTERfQ09OVElOVUVEIChfX1NJ
X0NITER8NikKI2RlZmluZSBOU0lHQ0hMRCA2CgoKCgojZGVmaW5lIFBPTExfSU4gKF9fU0lfUE9M
THwxKQojZGVmaW5lIFBPTExfT1VUIChfX1NJX1BPTEx8MikKI2RlZmluZSBQT0xMX01TRyAoX19T
SV9QT0xMfDMpCiNkZWZpbmUgUE9MTF9FUlIgKF9fU0lfUE9MTHw0KQojZGVmaW5lIFBPTExfUFJJ
IChfX1NJX1BPTEx8NSkKI2RlZmluZSBQT0xMX0hVUCAoX19TSV9QT0xMfDYpCiNkZWZpbmUgTlNJ
R1BPTEwgNgoKCgoKI2RlZmluZSBQUk9GX09WRkwgKF9fU0lfUFJPRnwxKQojIDIyMyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc2lnaW5mby5oIgojZGVmaW5lIFNJR0VWX1NJR05B
TCAwCiNkZWZpbmUgU0lHRVZfTk9ORSAxCiNkZWZpbmUgU0lHRVZfVEhSRUFEIDIKCiNkZWZpbmUg
U0lHRVZfTUFYX1NJWkUgNjQKI2RlZmluZSBTSUdFVl9QQURfU0laRSAoKFNJR0VWX01BWF9TSVpF
L3NpemVvZihpbnQpKSAtIDQpCgp0eXBlZGVmIHN0cnVjdCBzaWdldmVudCB7CiAgICAgICAgc2ln
dmFsX3Qgc2lnZXZfdmFsdWU7CiAgICAgICAgaW50IHNpZ2V2X3NpZ25vOwogICAgICAgIGludCBz
aWdldl9ub3RpZnk7CiAgICAgICAgdW5pb24gewogICAgICAgICAgICAgICAgaW50IF9wYWRbKCg2
NC9zaXplb2YoaW50KSkgLSA0KV07CgogICAgICAgICAgICAgICAgc3RydWN0IHsKICAgICAgICAg
ICAgICAgICAgICAgICAgdm9pZCAoKl9mdW5jdGlvbikoc2lndmFsX3QpOwogICAgICAgICAgICAg
ICAgICAgICAgICB2b2lkICpfYXR0cmlidXRlOwogICAgICAgICAgICAgICAgfSBfc2lnZXZfdGhy
ZWFkOwogICAgICAgIH0gX3NpZ2V2X3VuOwp9IHNpZ2V2ZW50X3Q7CgojZGVmaW5lIHNpZ2V2X25v
dGlmeV9mdW5jdGlvbiBfc2lnZXZfdW4uX3NpZ2V2X3RocmVhZC5fZnVuY3Rpb24KI2RlZmluZSBz
aWdldl9ub3RpZnlfYXR0cmlidXRlcyBfc2lnZXZfdW4uX3NpZ2V2X3RocmVhZC5fYXR0cmlidXRl
CgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAxCiMg
MjQ5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9zaWdpbmZvLmgiIDIKCnN0YXRp
YyBpbmxpbmUgdm9pZApjb3B5X3NpZ2luZm8gKHNpZ2luZm9fdCAqdG8sIHNpZ2luZm9fdCAqZnJv
bSkKewogICAgICAgIGlmIChmcm9tLT5zaV9jb2RlIDwgMCkKICAgICAgICAgICAgICAgIG1lbWNw
eSh0bywgZnJvbSwgc2l6ZW9mKHNpZ2luZm9fdCkpOwogICAgICAgIGVsc2UKCiAgICAgICAgICAg
ICAgICBtZW1jcHkodG8sIGZyb20sIDMqc2l6ZW9mKGludCkgKyBzaXplb2YoZnJvbS0+X3NpZmll
bGRzLl9zaWdjaGxkKSk7Cn0KCmV4dGVybiBpbnQgY29weV9zaWdpbmZvX3RvX3VzZXIoc2lnaW5m
b190ICp0bywgc2lnaW5mb190ICpmcm9tKTsKZXh0ZXJuIGludCBjb3B5X3NpZ2luZm9fZnJvbV91
c2VyKHNpZ2luZm9fdCAqdG8sIHNpZ2luZm9fdCAqZnJvbSk7CiMgNiAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9zaWduYWwuaCIgMgoKCgoKCgpzdHJ1Y3Qgc2lncXVldWUgewog
ICAgICAgIHN0cnVjdCBzaWdxdWV1ZSAqbmV4dDsKICAgICAgICBzaWdpbmZvX3QgaW5mbzsKfTsK
CnN0cnVjdCBzaWdwZW5kaW5nIHsKICAgICAgICBzdHJ1Y3Qgc2lncXVldWUgKmhlYWQsICoqdGFp
bDsKICAgICAgICBzaWdzZXRfdCBzaWduYWw7Cn07CgoKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEKIyAyOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9zaWduYWwuaCIgMgoKCgpzdGF0aWMgaW5saW5lIHZvaWQgc2lnYWRkc2V0
KHNpZ3NldF90ICpzZXQsIGludCBfc2lnKQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzaWcgPSBf
c2lnIC0gMTsKICAgICAgICBpZiAoKDY0IC8gNjQpID09IDEpCiAgICAgICAgICAgICAgICBzZXQt
PnNpZ1swXSB8PSAxVUwgPDwgc2lnOwogICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHNldC0+
c2lnW3NpZyAvIDY0XSB8PSAxVUwgPDwgKHNpZyAlIDY0KTsKfQoKc3RhdGljIGlubGluZSB2b2lk
IHNpZ2RlbHNldChzaWdzZXRfdCAqc2V0LCBpbnQgX3NpZykKewogICAgICAgIHVuc2lnbmVkIGxv
bmcgc2lnID0gX3NpZyAtIDE7CiAgICAgICAgaWYgKCg2NCAvIDY0KSA9PSAxKQogICAgICAgICAg
ICAgICAgc2V0LT5zaWdbMF0gJj0gfigxVUwgPDwgc2lnKTsKICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICBzZXQtPnNpZ1tzaWcgLyA2NF0gJj0gfigxVUwgPDwgKHNpZyAlIDY0KSk7Cn0KCnN0
YXRpYyBpbmxpbmUgaW50IHNpZ2lzbWVtYmVyKHNpZ3NldF90ICpzZXQsIGludCBfc2lnKQp7CiAg
ICAgICAgdW5zaWduZWQgbG9uZyBzaWcgPSBfc2lnIC0gMTsKICAgICAgICBpZiAoKDY0IC8gNjQp
ID09IDEpCiAgICAgICAgICAgICAgICByZXR1cm4gMSAmIChzZXQtPnNpZ1swXSA+PiBzaWcpOwog
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHJldHVybiAxICYgKHNldC0+c2lnW3NpZyAvIDY0
XSA+PiAoc2lnICUgNjQpKTsKfQoKc3RhdGljIGlubGluZSBpbnQgc2lnZmluZGlud29yZCh1bnNp
Z25lZCBsb25nIHdvcmQpCnsKICAgICAgICByZXR1cm4gZmZ6KH53b3JkKTsKfQoKI2RlZmluZSBz
aWdtYXNrKHNpZykgKDFVTCA8PCAoKHNpZykgLSAxKSkKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9zdHJpbmcuaCIgMQojIDY5ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3NpZ25hbC5oIiAyCgojZGVmaW5lIF9TSUdfU0VUX0JJTk9QKG5hbWUs
IG9wKSBzdGF0aWMgaW5saW5lIHZvaWQgbmFtZShzaWdzZXRfdCAqciwgY29uc3Qgc2lnc2V0X3Qg
KmEsIGNvbnN0IHNpZ3NldF90ICpiKSB7IHVuc2lnbmVkIGxvbmcgYTAsIGExLCBhMiwgYTMsIGIw
LCBiMSwgYjIsIGIzOyB1bnNpZ25lZCBsb25nIGk7IGZvciAoaSA9IDA7IGkgPCBfTlNJR19XT1JE
Uy80OyArK2kpIHsgYTAgPSBhLT5zaWdbNCppKzBdOyBhMSA9IGEtPnNpZ1s0KmkrMV07IGEyID0g
YS0+c2lnWzQqaSsyXTsgYTMgPSBhLT5zaWdbNCppKzNdOyBiMCA9IGItPnNpZ1s0KmkrMF07IGIx
ID0gYi0+c2lnWzQqaSsxXTsgYjIgPSBiLT5zaWdbNCppKzJdOyBiMyA9IGItPnNpZ1s0KmkrM107
IHItPnNpZ1s0KmkrMF0gPSBvcChhMCwgYjApOyByLT5zaWdbNCppKzFdID0gb3AoYTEsIGIxKTsg
ci0+c2lnWzQqaSsyXSA9IG9wKGEyLCBiMik7IHItPnNpZ1s0KmkrM10gPSBvcChhMywgYjMpOyB9
IHN3aXRjaCAoX05TSUdfV09SRFMgJSA0KSB7IGNhc2UgMzogYTAgPSBhLT5zaWdbNCppKzBdOyBh
MSA9IGEtPnNpZ1s0KmkrMV07IGEyID0gYS0+c2lnWzQqaSsyXTsgYjAgPSBiLT5zaWdbNCppKzBd
OyBiMSA9IGItPnNpZ1s0KmkrMV07IGIyID0gYi0+c2lnWzQqaSsyXTsgci0+c2lnWzQqaSswXSA9
IG9wKGEwLCBiMCk7IHItPnNpZ1s0KmkrMV0gPSBvcChhMSwgYjEpOyByLT5zaWdbNCppKzJdID0g
b3AoYTIsIGIyKTsgYnJlYWs7IGNhc2UgMjogYTAgPSBhLT5zaWdbNCppKzBdOyBhMSA9IGEtPnNp
Z1s0KmkrMV07IGIwID0gYi0+c2lnWzQqaSswXTsgYjEgPSBiLT5zaWdbNCppKzFdOyByLT5zaWdb
NCppKzBdID0gb3AoYTAsIGIwKTsgci0+c2lnWzQqaSsxXSA9IG9wKGExLCBiMSk7IGJyZWFrOyBj
YXNlIDE6IGEwID0gYS0+c2lnWzQqaSswXTsgYjAgPSBiLT5zaWdbNCppKzBdOyByLT5zaWdbNCpp
KzBdID0gb3AoYTAsIGIwKTsgYnJlYWs7IH0gfQojIDEwNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9zaWduYWwuaCIKI2RlZmluZSBfc2lnX29yKHgsIHkpICgoeCkgfCAoeSkp
CnN0YXRpYyBpbmxpbmUgdm9pZCBzaWdvcnNldHMoc2lnc2V0X3QgKnIsIGNvbnN0IHNpZ3NldF90
ICphLCBjb25zdCBzaWdzZXRfdCAqYikgeyB1bnNpZ25lZCBsb25nIGEwLCBhMSwgYTIsIGEzLCBi
MCwgYjEsIGIyLCBiMzsgdW5zaWduZWQgbG9uZyBpOyBmb3IgKGkgPSAwOyBpIDwgKDY0IC8gNjQp
LzQ7ICsraSkgeyBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQqaSsxXTsgYTIgPSBh
LT5zaWdbNCppKzJdOyBhMyA9IGEtPnNpZ1s0KmkrM107IGIwID0gYi0+c2lnWzQqaSswXTsgYjEg
PSBiLT5zaWdbNCppKzFdOyBiMiA9IGItPnNpZ1s0KmkrMl07IGIzID0gYi0+c2lnWzQqaSszXTsg
ci0+c2lnWzQqaSswXSA9ICgoYTApIHwgKGIwKSk7IHItPnNpZ1s0KmkrMV0gPSAoKGExKSB8IChi
MSkpOyByLT5zaWdbNCppKzJdID0gKChhMikgfCAoYjIpKTsgci0+c2lnWzQqaSszXSA9ICgoYTMp
IHwgKGIzKSk7IH0gc3dpdGNoICgoNjQgLyA2NCkgJSA0KSB7IGNhc2UgMzogYTAgPSBhLT5zaWdb
NCppKzBdOyBhMSA9IGEtPnNpZ1s0KmkrMV07IGEyID0gYS0+c2lnWzQqaSsyXTsgYjAgPSBiLT5z
aWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IGIyID0gYi0+c2lnWzQqaSsyXTsgci0+c2ln
WzQqaSswXSA9ICgoYTApIHwgKGIwKSk7IHItPnNpZ1s0KmkrMV0gPSAoKGExKSB8IChiMSkpOyBy
LT5zaWdbNCppKzJdID0gKChhMikgfCAoYjIpKTsgYnJlYWs7IGNhc2UgMjogYTAgPSBhLT5zaWdb
NCppKzBdOyBhMSA9IGEtPnNpZ1s0KmkrMV07IGIwID0gYi0+c2lnWzQqaSswXTsgYjEgPSBiLT5z
aWdbNCppKzFdOyByLT5zaWdbNCppKzBdID0gKChhMCkgfCAoYjApKTsgci0+c2lnWzQqaSsxXSA9
ICgoYTEpIHwgKGIxKSk7IGJyZWFrOyBjYXNlIDE6IGEwID0gYS0+c2lnWzQqaSswXTsgYjAgPSBi
LT5zaWdbNCppKzBdOyByLT5zaWdbNCppKzBdID0gKChhMCkgfCAoYjApKTsgYnJlYWs7IH0gfQoK
I2RlZmluZSBfc2lnX2FuZCh4LCB5KSAoKHgpICYgKHkpKQpzdGF0aWMgaW5saW5lIHZvaWQgc2ln
YW5kc2V0cyhzaWdzZXRfdCAqciwgY29uc3Qgc2lnc2V0X3QgKmEsIGNvbnN0IHNpZ3NldF90ICpi
KSB7IHVuc2lnbmVkIGxvbmcgYTAsIGExLCBhMiwgYTMsIGIwLCBiMSwgYjIsIGIzOyB1bnNpZ25l
ZCBsb25nIGk7IGZvciAoaSA9IDA7IGkgPCAoNjQgLyA2NCkvNDsgKytpKSB7IGEwID0gYS0+c2ln
WzQqaSswXTsgYTEgPSBhLT5zaWdbNCppKzFdOyBhMiA9IGEtPnNpZ1s0KmkrMl07IGEzID0gYS0+
c2lnWzQqaSszXTsgYjAgPSBiLT5zaWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IGIyID0g
Yi0+c2lnWzQqaSsyXTsgYjMgPSBiLT5zaWdbNCppKzNdOyByLT5zaWdbNCppKzBdID0gKChhMCkg
JiAoYjApKTsgci0+c2lnWzQqaSsxXSA9ICgoYTEpICYgKGIxKSk7IHItPnNpZ1s0KmkrMl0gPSAo
KGEyKSAmIChiMikpOyByLT5zaWdbNCppKzNdID0gKChhMykgJiAoYjMpKTsgfSBzd2l0Y2ggKCg2
NCAvIDY0KSAlIDQpIHsgY2FzZSAzOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQq
aSsxXTsgYTIgPSBhLT5zaWdbNCppKzJdOyBiMCA9IGItPnNpZ1s0KmkrMF07IGIxID0gYi0+c2ln
WzQqaSsxXTsgYjIgPSBiLT5zaWdbNCppKzJdOyByLT5zaWdbNCppKzBdID0gKChhMCkgJiAoYjAp
KTsgci0+c2lnWzQqaSsxXSA9ICgoYTEpICYgKGIxKSk7IHItPnNpZ1s0KmkrMl0gPSAoKGEyKSAm
IChiMikpOyBicmVhazsgY2FzZSAyOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQq
aSsxXTsgYjAgPSBiLT5zaWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IHItPnNpZ1s0Kmkr
MF0gPSAoKGEwKSAmIChiMCkpOyByLT5zaWdbNCppKzFdID0gKChhMSkgJiAoYjEpKTsgYnJlYWs7
IGNhc2UgMTogYTAgPSBhLT5zaWdbNCppKzBdOyBiMCA9IGItPnNpZ1s0KmkrMF07IHItPnNpZ1s0
KmkrMF0gPSAoKGEwKSAmIChiMCkpOyBicmVhazsgfSB9CgojZGVmaW5lIF9zaWdfbmFuZCh4LCB5
KSAoKHgpICYgfih5KSkKc3RhdGljIGlubGluZSB2b2lkIHNpZ25hbmRzZXRzKHNpZ3NldF90ICpy
LCBjb25zdCBzaWdzZXRfdCAqYSwgY29uc3Qgc2lnc2V0X3QgKmIpIHsgdW5zaWduZWQgbG9uZyBh
MCwgYTEsIGEyLCBhMywgYjAsIGIxLCBiMiwgYjM7IHVuc2lnbmVkIGxvbmcgaTsgZm9yIChpID0g
MDsgaSA8ICg2NCAvIDY0KS80OyArK2kpIHsgYTAgPSBhLT5zaWdbNCppKzBdOyBhMSA9IGEtPnNp
Z1s0KmkrMV07IGEyID0gYS0+c2lnWzQqaSsyXTsgYTMgPSBhLT5zaWdbNCppKzNdOyBiMCA9IGIt
PnNpZ1s0KmkrMF07IGIxID0gYi0+c2lnWzQqaSsxXTsgYjIgPSBiLT5zaWdbNCppKzJdOyBiMyA9
IGItPnNpZ1s0KmkrM107IHItPnNpZ1s0KmkrMF0gPSAoKGEwKSAmIH4oYjApKTsgci0+c2lnWzQq
aSsxXSA9ICgoYTEpICYgfihiMSkpOyByLT5zaWdbNCppKzJdID0gKChhMikgJiB+KGIyKSk7IHIt
PnNpZ1s0KmkrM10gPSAoKGEzKSAmIH4oYjMpKTsgfSBzd2l0Y2ggKCg2NCAvIDY0KSAlIDQpIHsg
Y2FzZSAzOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQqaSsxXTsgYTIgPSBhLT5z
aWdbNCppKzJdOyBiMCA9IGItPnNpZ1s0KmkrMF07IGIxID0gYi0+c2lnWzQqaSsxXTsgYjIgPSBi
LT5zaWdbNCppKzJdOyByLT5zaWdbNCppKzBdID0gKChhMCkgJiB+KGIwKSk7IHItPnNpZ1s0Kmkr
MV0gPSAoKGExKSAmIH4oYjEpKTsgci0+c2lnWzQqaSsyXSA9ICgoYTIpICYgfihiMikpOyBicmVh
azsgY2FzZSAyOiBhMCA9IGEtPnNpZ1s0KmkrMF07IGExID0gYS0+c2lnWzQqaSsxXTsgYjAgPSBi
LT5zaWdbNCppKzBdOyBiMSA9IGItPnNpZ1s0KmkrMV07IHItPnNpZ1s0KmkrMF0gPSAoKGEwKSAm
IH4oYjApKTsgci0+c2lnWzQqaSsxXSA9ICgoYTEpICYgfihiMSkpOyBicmVhazsgY2FzZSAxOiBh
MCA9IGEtPnNpZ1s0KmkrMF07IGIwID0gYi0+c2lnWzQqaSswXTsgci0+c2lnWzQqaSswXSA9ICgo
YTApICYgfihiMCkpOyBicmVhazsgfSB9CgojdW5kZWYgX1NJR19TRVRfQklOT1AKI3VuZGVmIF9z
aWdfb3IKI3VuZGVmIF9zaWdfYW5kCiN1bmRlZiBfc2lnX25hbmQKCiNkZWZpbmUgX1NJR19TRVRf
T1AobmFtZSwgb3ApIHN0YXRpYyBpbmxpbmUgdm9pZCBuYW1lKHNpZ3NldF90ICpzZXQpIHsgdW5z
aWduZWQgbG9uZyBpOyBmb3IgKGkgPSAwOyBpIDwgX05TSUdfV09SRFMvNDsgKytpKSB7IHNldC0+
c2lnWzQqaSswXSA9IG9wKHNldC0+c2lnWzQqaSswXSk7IHNldC0+c2lnWzQqaSsxXSA9IG9wKHNl
dC0+c2lnWzQqaSsxXSk7IHNldC0+c2lnWzQqaSsyXSA9IG9wKHNldC0+c2lnWzQqaSsyXSk7IHNl
dC0+c2lnWzQqaSszXSA9IG9wKHNldC0+c2lnWzQqaSszXSk7IH0gc3dpdGNoIChfTlNJR19XT1JE
UyAlIDQpIHsgY2FzZSAzOiBzZXQtPnNpZ1s0KmkrMl0gPSBvcChzZXQtPnNpZ1s0KmkrMl0pOyBj
YXNlIDI6IHNldC0+c2lnWzQqaSsxXSA9IG9wKHNldC0+c2lnWzQqaSsxXSk7IGNhc2UgMTogc2V0
LT5zaWdbNCppKzBdID0gb3Aoc2V0LT5zaWdbNCppKzBdKTsgfSB9CiMgMTM5ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NpZ25hbC5oIgojZGVmaW5lIF9zaWdfbm90KHgpICh+
KHgpKQpzdGF0aWMgaW5saW5lIHZvaWQgc2lnbm90c2V0KHNpZ3NldF90ICpzZXQpIHsgdW5zaWdu
ZWQgbG9uZyBpOyBmb3IgKGkgPSAwOyBpIDwgKDY0IC8gNjQpLzQ7ICsraSkgeyBzZXQtPnNpZ1s0
KmkrMF0gPSAofihzZXQtPnNpZ1s0KmkrMF0pKTsgc2V0LT5zaWdbNCppKzFdID0gKH4oc2V0LT5z
aWdbNCppKzFdKSk7IHNldC0+c2lnWzQqaSsyXSA9ICh+KHNldC0+c2lnWzQqaSsyXSkpOyBzZXQt
PnNpZ1s0KmkrM10gPSAofihzZXQtPnNpZ1s0KmkrM10pKTsgfSBzd2l0Y2ggKCg2NCAvIDY0KSAl
IDQpIHsgY2FzZSAzOiBzZXQtPnNpZ1s0KmkrMl0gPSAofihzZXQtPnNpZ1s0KmkrMl0pKTsgY2Fz
ZSAyOiBzZXQtPnNpZ1s0KmkrMV0gPSAofihzZXQtPnNpZ1s0KmkrMV0pKTsgY2FzZSAxOiBzZXQt
PnNpZ1s0KmkrMF0gPSAofihzZXQtPnNpZ1s0KmkrMF0pKTsgfSB9CgojdW5kZWYgX1NJR19TRVRf
T1AKI3VuZGVmIF9zaWdfbm90CgpzdGF0aWMgaW5saW5lIHZvaWQgc2lnZW1wdHlzZXQoc2lnc2V0
X3QgKnNldCkKewogICAgICAgIHN3aXRjaCAoKDY0IC8gNjQpKSB7CiAgICAgICAgZGVmYXVsdDoK
ICAgICAgICAgICAgICAgIG1lbXNldChzZXQsIDAsIHNpemVvZihzaWdzZXRfdCkpOwogICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyOiBzZXQtPnNpZ1sxXSA9IDA7CiAgICAgICAg
Y2FzZSAxOiBzZXQtPnNpZ1swXSA9IDA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9
Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBzaWdmaWxsc2V0KHNpZ3NldF90ICpzZXQpCnsKICAgICAg
ICBzd2l0Y2ggKCg2NCAvIDY0KSkgewogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICBt
ZW1zZXQoc2V0LCAtMSwgc2l6ZW9mKHNpZ3NldF90KSk7CiAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICBjYXNlIDI6IHNldC0+c2lnWzFdID0gLTE7CiAgICAgICAgY2FzZSAxOiBzZXQtPnNp
Z1swXSA9IC0xOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQp9CgpleHRlcm4gY2hh
ciAqIHJlbmRlcl9zaWdzZXRfdChzaWdzZXRfdCAqc2V0LCBjaGFyICpidWZmZXIpOwoKCgpzdGF0
aWMgaW5saW5lIHZvaWQgc2lnYWRkc2V0bWFzayhzaWdzZXRfdCAqc2V0LCB1bnNpZ25lZCBsb25n
IG1hc2spCnsKICAgICAgICBzZXQtPnNpZ1swXSB8PSBtYXNrOwp9CgpzdGF0aWMgaW5saW5lIHZv
aWQgc2lnZGVsc2V0bWFzayhzaWdzZXRfdCAqc2V0LCB1bnNpZ25lZCBsb25nIG1hc2spCnsKICAg
ICAgICBzZXQtPnNpZ1swXSAmPSB+bWFzazsKfQoKc3RhdGljIGlubGluZSBpbnQgc2lndGVzdHNl
dG1hc2soc2lnc2V0X3QgKnNldCwgdW5zaWduZWQgbG9uZyBtYXNrKQp7CiAgICAgICAgcmV0dXJu
IChzZXQtPnNpZ1swXSAmIG1hc2spICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBzaWdpbml0
c2V0KHNpZ3NldF90ICpzZXQsIHVuc2lnbmVkIGxvbmcgbWFzaykKewogICAgICAgIHNldC0+c2ln
WzBdID0gbWFzazsKICAgICAgICBzd2l0Y2ggKCg2NCAvIDY0KSkgewogICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICAgICBtZW1zZXQoJnNldC0+c2lnWzFdLCAwLCBzaXplb2YobG9uZykqKCg2
NCAvIDY0KS0xKSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDI6IHNldC0+
c2lnWzFdID0gMDsKICAgICAgICBjYXNlIDE6IDsKICAgICAgICB9Cn0KCnN0YXRpYyBpbmxpbmUg
dm9pZCBzaWdpbml0c2V0aW52KHNpZ3NldF90ICpzZXQsIHVuc2lnbmVkIGxvbmcgbWFzaykKewog
ICAgICAgIHNldC0+c2lnWzBdID0gfm1hc2s7CiAgICAgICAgc3dpdGNoICgoNjQgLyA2NCkpIHsK
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgbWVtc2V0KCZzZXQtPnNpZ1sxXSwgLTEs
IHNpemVvZihsb25nKSooKDY0IC8gNjQpLTEpKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgIGNhc2UgMjogc2V0LT5zaWdbMV0gPSAtMTsKICAgICAgICBjYXNlIDE6IDsKICAgICAgICB9
Cn0KCgoKc3RhdGljIGlubGluZSB2b2lkIGluaXRfc2lncGVuZGluZyhzdHJ1Y3Qgc2lncGVuZGlu
ZyAqc2lnKQp7CiAgICAgICAgc2lnZW1wdHlzZXQoJnNpZy0+c2lnbmFsKTsKICAgICAgICBzaWct
PmhlYWQgPSAoKHZvaWQgKikwKTsKICAgICAgICBzaWctPnRhaWwgPSAmc2lnLT5oZWFkOwp9Cgpl
eHRlcm4gbG9uZyBkb19zaWdwZW5kaW5nKHZvaWQgKiwgdW5zaWduZWQgbG9uZyk7CiMgMjcgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIgMgojIDEgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2VjdXJlYml0cy5oIiAxCgojZGVmaW5lIF9MSU5V
WF9TRUNVUkVCSVRTX0ggMQoKI2RlZmluZSBTRUNVUkVCSVRTX0RFRkFVTFQgMHgwMDAwMDAwMAoK
ZXh0ZXJuIHVuc2lnbmVkIHNlY3VyZWJpdHNfUnNtcF9hYmU3NzQ4NDsKCgoKCgoKCiNkZWZpbmUg
U0VDVVJFX05PUk9PVCAwCgoKCgojZGVmaW5lIFNFQ1VSRV9OT19TRVRVSURfRklYVVAgMgoKCgoK
CgojZGVmaW5lIGlzc2VjdXJlKFgpICggKDEgPDwgKFgrMSkpICYgU0VDVVJFQklUU19ERUZBVUxU
ID8gKDEgPDwgKFgpKSAmIFNFQ1VSRUJJVFNfREVGQVVMVCA6ICgxIDw8IChYKSkgJiBzZWN1cmVi
aXRzICkKIyAyOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAy
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mc19zdHJ1Y3QuaCIgMQoK
I2RlZmluZSBfTElOVVhfRlNfU1RSVUNUX0gKCgpzdHJ1Y3QgZnNfc3RydWN0IHsKICAgICAgICBh
dG9taWNfdCBjb3VudDsKICAgICAgICByd2xvY2tfdCBsb2NrOwogICAgICAgIGludCB1bWFzazsK
ICAgICAgICBzdHJ1Y3QgZGVudHJ5ICogcm9vdCwgKiBwd2QsICogYWx0cm9vdDsKICAgICAgICBz
dHJ1Y3QgdmZzbW91bnQgKiByb290bW50LCAqIHB3ZG1udCwgKiBhbHRyb290bW50Owp9OwoKI2Rl
ZmluZSBJTklUX0ZTIHsgQVRPTUlDX0lOSVQoMSksIFJXX0xPQ0tfVU5MT0NLRUQsIDAwMjIsIE5V
TEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfQoKCgoKCgpleHRlcm4gdm9pZCBleGl0
X2ZzX1JzbXBfZGM1MzZmNTIoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBzZXRf
ZnNfYWx0cm9vdCh2b2lkKTsKCgoKCgoKc3RhdGljIGlubGluZSB2b2lkIHNldF9mc19yb290KHN0
cnVjdCBmc19zdHJ1Y3QgKmZzLAogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqbW50LAogICAgICAg
IHN0cnVjdCBkZW50cnkgKmRlbnRyeSkKewogICAgICAgIHN0cnVjdCBkZW50cnkgKm9sZF9yb290
OwogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqb2xkX3Jvb3RtbnQ7CiAgICAgICAgZG8geyBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoICJtb3YgYXIuY2N2ID0gcjBcbiIgIm1vdmwgcjI5ID0gMHg4MDAw
MDAwMFxuIiAiOztcbiIgIjE6XG4iICJsZDQgcjIgPSBbJTBdXG4iICI7O1xuIiAiY21wNC5lcSBw
MCxwNyA9IHIwLHIyXG4iICIocDcpIGJyLmNvbmQuc3BudC5mZXcgMWIgXG4iICIiImNtcHhjaGc0
LmFjcSByMiA9IFslMF0sIHIyOSwgYXIuY2N2XG4iICI7O1xuIiAiY21wNC5lcSBwMCxwNyA9IHIw
LCByMlxuIiAiKHA3KSBici5jb25kLnNwbnQuZmV3IDFiXG4iICI7O1xuIiA6OiAiciIoJmZzLT5s
b2NrKSA6ICJyMiIsICJyMjkiLCAibWVtb3J5Iik7IH0gd2hpbGUoMCk7CiAgICAgICAgb2xkX3Jv
b3QgPSBmcy0+cm9vdDsKICAgICAgICBvbGRfcm9vdG1udCA9IGZzLT5yb290bW50OwogICAgICAg
IGZzLT5yb290bW50ID0gbW50Z2V0KG1udCk7CiAgICAgICAgZnMtPnJvb3QgPSBkZ2V0KGRlbnRy
eSk7CiAgICAgICAgKHtjbGVhcl9iaXQoMzEsICgmZnMtPmxvY2spKTsgX19hc21fXyBfX3ZvbGF0
aWxlX18gKCJtZiIgOjo6ICJtZW1vcnkiKTt9KTsKICAgICAgICBpZiAob2xkX3Jvb3QpIHsKICAg
ICAgICAgICAgICAgIGRwdXRfUnNtcF81NzRlNmJhMyhvbGRfcm9vdCk7CiAgICAgICAgICAgICAg
ICBtbnRwdXQob2xkX3Jvb3RtbnQpOwogICAgICAgIH0KfQoKCgoKCgpzdGF0aWMgaW5saW5lIHZv
aWQgc2V0X2ZzX3B3ZChzdHJ1Y3QgZnNfc3RydWN0ICpmcywKICAgICAgICBzdHJ1Y3QgdmZzbW91
bnQgKm1udCwKICAgICAgICBzdHJ1Y3QgZGVudHJ5ICpkZW50cnkpCnsKICAgICAgICBzdHJ1Y3Qg
ZGVudHJ5ICpvbGRfcHdkOwogICAgICAgIHN0cnVjdCB2ZnNtb3VudCAqb2xkX3B3ZG1udDsKICAg
ICAgICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fICggIm1vdiBhci5jY3YgPSByMFxuIiAibW92
bCByMjkgPSAweDgwMDAwMDAwXG4iICI7O1xuIiAiMTpcbiIgImxkNCByMiA9IFslMF1cbiIgIjs7
XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAscjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYiBc
biIgIiIiY21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5LCBhci5jY3ZcbiIgIjs7XG4iICJjbXA0
LmVxIHAwLHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNvbmQuc3BudC5mZXcgMWJcbiIgIjs7XG4i
IDo6ICJyIigmZnMtPmxvY2spIDogInIyIiwgInIyOSIsICJtZW1vcnkiKTsgfSB3aGlsZSgwKTsK
ICAgICAgICBvbGRfcHdkID0gZnMtPnB3ZDsKICAgICAgICBvbGRfcHdkbW50ID0gZnMtPnB3ZG1u
dDsKICAgICAgICBmcy0+cHdkbW50ID0gbW50Z2V0KG1udCk7CiAgICAgICAgZnMtPnB3ZCA9IGRn
ZXQoZGVudHJ5KTsKICAgICAgICAoe2NsZWFyX2JpdCgzMSwgKCZmcy0+bG9jaykpOyBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIm1mIiA6OjogIm1lbW9yeSIpO30pOwogICAgICAgIGlmIChvbGRfcHdk
KSB7CiAgICAgICAgICAgICAgICBkcHV0X1JzbXBfNTc0ZTZiYTMob2xkX3B3ZCk7CiAgICAgICAg
ICAgICAgICBtbnRwdXQob2xkX3B3ZG1udCk7CiAgICAgICAgfQp9CgpzdHJ1Y3QgZnNfc3RydWN0
ICpjb3B5X2ZzX3N0cnVjdChzdHJ1Y3QgZnNfc3RydWN0ICpvbGQpOwp2b2lkIHB1dF9mc19zdHJ1
Y3Qoc3RydWN0IGZzX3N0cnVjdCAqZnMpOwojIDI5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3NjaGVkLmgiIDIKCgoKCiNkZWZpbmUgQ1NJR05BTCAweDAwMDAwMGZmCiNkZWZp
bmUgQ0xPTkVfVk0gMHgwMDAwMDEwMAojZGVmaW5lIENMT05FX0ZTIDB4MDAwMDAyMDAKI2RlZmlu
ZSBDTE9ORV9GSUxFUyAweDAwMDAwNDAwCiNkZWZpbmUgQ0xPTkVfU0lHSEFORCAweDAwMDAwODAw
CiNkZWZpbmUgQ0xPTkVfUElEIDB4MDAwMDEwMDAKI2RlZmluZSBDTE9ORV9QVFJBQ0UgMHgwMDAw
MjAwMAojZGVmaW5lIENMT05FX1ZGT1JLIDB4MDAwMDQwMDAKI2RlZmluZSBDTE9ORV9QQVJFTlQg
MHgwMDAwODAwMAojZGVmaW5lIENMT05FX1RIUkVBRCAweDAwMDEwMDAwCgojZGVmaW5lIENMT05F
X1NJR05BTCAoQ0xPTkVfU0lHSEFORCB8IENMT05FX1RIUkVBRCkKIyA1NiAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIgpleHRlcm4gdW5zaWduZWQgbG9uZyBhdmVu
cnVuW107CgojZGVmaW5lIEZTSElGVCAxMQojZGVmaW5lIEZJWEVEXzEgKDE8PEZTSElGVCkKI2Rl
ZmluZSBMT0FEX0ZSRVEgKDUqSFopCiNkZWZpbmUgRVhQXzEgMTg4NAojZGVmaW5lIEVYUF81IDIw
MTQKI2RlZmluZSBFWFBfMTUgMjAzNwoKI2RlZmluZSBDQUxDX0xPQUQobG9hZCwgZXhwLCBuKSBs
b2FkICo9IGV4cDsgbG9hZCArPSBuKihGSVhFRF8xLWV4cCk7IGxvYWQgPj49IEZTSElGVDsKCgoK
CiNkZWZpbmUgQ1RfVE9fU0VDUyh4KSAoKHgpIC8gSFopCiNkZWZpbmUgQ1RfVE9fVVNFQ1MoeCkg
KCgoeCkgJSBIWikgKiAxMDAwMDAwL0haKQoKZXh0ZXJuIGludCBucl9ydW5uaW5nX1JzbXBfY2Ez
YzZkNzgsIG5yX3RocmVhZHM7CmV4dGVybiBpbnQgbGFzdF9waWQ7CgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZnMuaCIgMQojIDc3ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3RpbWUuaCIgMQojIDc4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Bh
cmFtLmgiIDEKCiNkZWZpbmUgX0xJTlVYX1BBUkFNX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vcGFyYW0uaCIgMQojIDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvcGFyYW0uaCIgMgojIDc5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3NjaGVkLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Jl
c291cmNlLmgiIDEKCiNkZWZpbmUgX0xJTlVYX1JFU09VUkNFX0gKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3Jlc291cmNlLmgiIDIKIyAxNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9yZXNvdXJjZS5oIgojZGVmaW5lIFJVU0FHRV9TRUxGIDAKI2RlZmluZSBS
VVNBR0VfQ0hJTERSRU4gKC0xKQojZGVmaW5lIFJVU0FHRV9CT1RIICgtMikKCnN0cnVjdCBydXNh
Z2UgewogICAgICAgIHN0cnVjdCB0aW1ldmFsIHJ1X3V0aW1lOwogICAgICAgIHN0cnVjdCB0aW1l
dmFsIHJ1X3N0aW1lOwogICAgICAgIGxvbmcgcnVfbWF4cnNzOwogICAgICAgIGxvbmcgcnVfaXhy
c3M7CiAgICAgICAgbG9uZyBydV9pZHJzczsKICAgICAgICBsb25nIHJ1X2lzcnNzOwogICAgICAg
IGxvbmcgcnVfbWluZmx0OwogICAgICAgIGxvbmcgcnVfbWFqZmx0OwogICAgICAgIGxvbmcgcnVf
bnN3YXA7CiAgICAgICAgbG9uZyBydV9pbmJsb2NrOwogICAgICAgIGxvbmcgcnVfb3VibG9jazsK
ICAgICAgICBsb25nIHJ1X21zZ3NuZDsKICAgICAgICBsb25nIHJ1X21zZ3JjdjsKICAgICAgICBs
b25nIHJ1X25zaWduYWxzOwogICAgICAgIGxvbmcgcnVfbnZjc3c7CiAgICAgICAgbG9uZyBydV9u
aXZjc3c7Cn07CgpzdHJ1Y3QgcmxpbWl0IHsKICAgICAgICB1bnNpZ25lZCBsb25nIHJsaW1fY3Vy
OwogICAgICAgIHVuc2lnbmVkIGxvbmcgcmxpbV9tYXg7Cn07CgojZGVmaW5lIFBSSU9fTUlOICgt
MjApCiNkZWZpbmUgUFJJT19NQVggMjAKCiNkZWZpbmUgUFJJT19QUk9DRVNTIDAKI2RlZmluZSBQ
UklPX1BHUlAgMQojZGVmaW5lIFBSSU9fVVNFUiAyCgoKCgoKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2FzbS9yZXNvdXJjZS5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9SRVNPVVJD
RV9ICiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3Jlc291cmNlLmgiCiNk
ZWZpbmUgUkxJTUlUX0NQVSAwCiNkZWZpbmUgUkxJTUlUX0ZTSVpFIDEKI2RlZmluZSBSTElNSVRf
REFUQSAyCiNkZWZpbmUgUkxJTUlUX1NUQUNLIDMKI2RlZmluZSBSTElNSVRfQ09SRSA0CiNkZWZp
bmUgUkxJTUlUX1JTUyA1CiNkZWZpbmUgUkxJTUlUX05QUk9DIDYKI2RlZmluZSBSTElNSVRfTk9G
SUxFIDcKI2RlZmluZSBSTElNSVRfTUVNTE9DSyA4CiNkZWZpbmUgUkxJTUlUX0FTIDkKI2RlZmlu
ZSBSTElNSVRfTE9DS1MgMTAKCiNkZWZpbmUgUkxJTV9OTElNSVRTIDExCgoKCgoKI2RlZmluZSBS
TElNX0lORklOSVRZICh+MFVMKQoKCgojZGVmaW5lIElOSVRfUkxJTUlUUyB7IHsgUkxJTV9JTkZJ
TklUWSwgUkxJTV9JTkZJTklUWSB9LCB7IFJMSU1fSU5GSU5JVFksIFJMSU1fSU5GSU5JVFkgfSwg
eyBSTElNX0lORklOSVRZLCBSTElNX0lORklOSVRZIH0sIHsgX1NUS19MSU0sIFJMSU1fSU5GSU5J
VFkgfSwgeyAwLCBSTElNX0lORklOSVRZIH0sIHsgUkxJTV9JTkZJTklUWSwgUkxJTV9JTkZJTklU
WSB9LCB7IDAsIDAgfSwgeyBJTlJfT1BFTiwgSU5SX09QRU4gfSwgeyBSTElNX0lORklOSVRZLCBS
TElNX0lORklOSVRZIH0sIHsgUkxJTV9JTkZJTklUWSwgUkxJTV9JTkZJTklUWSB9LCB7IFJMSU1f
SU5GSU5JVFksIFJMSU1fSU5GSU5JVFkgfSwgfQojIDU3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3Jlc291cmNlLmgiIDIKIyA4MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9zY2hlZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC90aW1lci5oIiAxCgojZGVmaW5lIF9MSU5VWF9USU1FUl9ICgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA1ICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L3RpbWVyLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L2xpc3QuaCIgMQojIDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvdGltZXIuaCIgMgojIDE2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L3RpbWVyLmgiCnN0cnVjdCB0aW1lcl9saXN0IHsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxp
c3Q7CiAgICAgICAgdW5zaWduZWQgbG9uZyBleHBpcmVzOwogICAgICAgIHVuc2lnbmVkIGxvbmcg
ZGF0YTsKICAgICAgICB2b2lkICgqZnVuY3Rpb24pKHVuc2lnbmVkIGxvbmcpOwp9OwoKZXh0ZXJu
IHZvaWQgYWRkX3RpbWVyX1JzbXBfYTE5ZWFjZjgoc3RydWN0IHRpbWVyX2xpc3QgKiB0aW1lcik7
CmV4dGVybiBpbnQgZGVsX3RpbWVyX1JzbXBfZmM2MmYxNmQoc3RydWN0IHRpbWVyX2xpc3QgKiB0
aW1lcik7CgoKZXh0ZXJuIGludCBkZWxfdGltZXJfc3luY19Sc21wX2RhZmYyNjZhKHN0cnVjdCB0
aW1lcl9saXN0ICogdGltZXIpOwpleHRlcm4gdm9pZCBzeW5jX3RpbWVycyh2b2lkKTsKIyA0MSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lci5oIgppbnQgbW9kX3RpbWVy
X1JzbXBfMWYxM2QzMDkoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyLCB1bnNpZ25lZCBsb25nIGV4
cGlyZXMpOwoKZXh0ZXJuIHZvaWQgaXRfcmVhbF9mbih1bnNpZ25lZCBsb25nKTsKCnN0YXRpYyBp
bmxpbmUgdm9pZCBpbml0X3RpbWVyKHN0cnVjdCB0aW1lcl9saXN0ICogdGltZXIpCnsKICAgICAg
ICB0aW1lci0+bGlzdC5uZXh0ID0gdGltZXItPmxpc3QucHJldiA9ICgodm9pZCAqKTApOwp9Cgpz
dGF0aWMgaW5saW5lIGludCB0aW1lcl9wZW5kaW5nIChjb25zdCBzdHJ1Y3QgdGltZXJfbGlzdCAq
IHRpbWVyKQp7CiAgICAgICAgcmV0dXJuIHRpbWVyLT5saXN0Lm5leHQgIT0gKCh2b2lkICopMCk7
Cn0KIyA2NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC90aW1lci5oIgojZGVm
aW5lIHRpbWVfYWZ0ZXIoYSwgYikgKChsb25nKShiKSAtIChsb25nKShhKSA8IDApCiNkZWZpbmUg
dGltZV9iZWZvcmUoYSwgYikgdGltZV9hZnRlcihiLGEpCgojZGVmaW5lIHRpbWVfYWZ0ZXJfZXEo
YSwgYikgKChsb25nKShhKSAtIChsb25nKShiKSA+PSAwKQojZGVmaW5lIHRpbWVfYmVmb3JlX2Vx
KGEsIGIpIHRpbWVfYWZ0ZXJfZXEoYixhKQojIDgxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3NjaGVkLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vcHJvY2Vzc29yLmgiIDEKIyA4MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9zY2hlZC5oIiAyCgojZGVmaW5lIFRBU0tfUlVOTklORyAwCiNkZWZpbmUgVEFTS19JTlRFUlJV
UFRJQkxFIDEKI2RlZmluZSBUQVNLX1VOSU5URVJSVVBUSUJMRSAyCiNkZWZpbmUgVEFTS19aT01C
SUUgNAojZGVmaW5lIFRBU0tfU1RPUFBFRCA4CgojZGVmaW5lIF9fc2V0X3Rhc2tfc3RhdGUodHNr
LCBzdGF0ZV92YWx1ZSkgZG8geyAodHNrKS0+c3RhdGUgPSAoc3RhdGVfdmFsdWUpOyB9IHdoaWxl
ICgwKQoKCiNkZWZpbmUgc2V0X3Rhc2tfc3RhdGUodHNrLCBzdGF0ZV92YWx1ZSkgc2V0X21iKCh0
c2spLT5zdGF0ZSwgKHN0YXRlX3ZhbHVlKSkKCgoKCgoKI2RlZmluZSBfX3NldF9jdXJyZW50X3N0
YXRlKHN0YXRlX3ZhbHVlKSBkbyB7IGN1cnJlbnQtPnN0YXRlID0gKHN0YXRlX3ZhbHVlKTsgfSB3
aGlsZSAoMCkKCgojZGVmaW5lIHNldF9jdXJyZW50X3N0YXRlKHN0YXRlX3ZhbHVlKSBzZXRfbWIo
Y3VycmVudC0+c3RhdGUsIChzdGF0ZV92YWx1ZSkpCiMgMTEzICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUgU0NIRURfT1RIRVIgMAojZGVmaW5lIFND
SEVEX0ZJRk8gMQojZGVmaW5lIFNDSEVEX1JSIDIKCgoKCgojZGVmaW5lIFNDSEVEX1lJRUxEIDB4
MTAKCnN0cnVjdCBzY2hlZF9wYXJhbSB7CiAgICAgICAgaW50IHNjaGVkX3ByaW9yaXR5Owp9OwoK
c3RydWN0IGNvbXBsZXRpb247CgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9zcGlubG9jay5oIiAxCiMgMTMyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L3NjaGVkLmgiIDIKCgoKCgoKCmV4dGVybiByd2xvY2tfdCB0YXNrbGlzdF9sb2NrX1JzbXBf
ZWJjOTM1NzQ7CmV4dGVybiBzcGlubG9ja190IHJ1bnF1ZXVlX2xvY2s7CmV4dGVybiBzcGlubG9j
a190IG1tbGlzdF9sb2NrOwoKZXh0ZXJuIHZvaWQgc2NoZWRfaW5pdCh2b2lkKTsKZXh0ZXJuIHZv
aWQgaW5pdF9pZGxlKHZvaWQpOwpleHRlcm4gdm9pZCBzaG93X3N0YXRlKHZvaWQpOwpleHRlcm4g
dm9pZCBjcHVfaW5pdCAodm9pZCk7CmV4dGVybiB2b2lkIHRyYXBfaW5pdCh2b2lkKTsKZXh0ZXJu
IHZvaWQgdXBkYXRlX3Byb2Nlc3NfdGltZXMoaW50IHVzZXIpOwpleHRlcm4gdm9pZCB1cGRhdGVf
b25lX3Byb2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1bnNpZ25lZCBsb25nIHVzZXIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN5c3RlbSwgaW50IGNw
dSk7CgojZGVmaW5lIE1BWF9TQ0hFRFVMRV9USU1FT1VUIExPTkdfTUFYCmV4dGVybiBzaWduZWQg
bG9uZyBzY2hlZHVsZV90aW1lb3V0X1JzbXBfZDYyYzgzM2Yoc2lnbmVkIGxvbmcgdGltZW91dCk7
CiBfX2F0dHJpYnV0ZV9fKChzeXNjYWxsX2xpbmthZ2UpKSB2b2lkIHNjaGVkdWxlX1JzbXBfYTQ0
ZmZmYzEodm9pZCk7CgpleHRlcm4gaW50IHNjaGVkdWxlX3Rhc2tfUnNtcF8yZDZjM2QwNChzdHJ1
Y3QgdHFfc3RydWN0ICp0YXNrKTsKZXh0ZXJuIHZvaWQgZmx1c2hfc2NoZWR1bGVkX3Rhc2tzX1Jz
bXBfN2MzMjQyYjQodm9pZCk7CmV4dGVybiBpbnQgc3RhcnRfY29udGV4dF90aHJlYWQodm9pZCk7
CmV4dGVybiBpbnQgY3VycmVudF9pc19rZXZlbnRkKHZvaWQpOwoKCgoKCiNkZWZpbmUgTlJfT1BF
Tl9ERUZBVUxUIEJJVFNfUEVSX0xPTkcKCgoKCnN0cnVjdCBmaWxlc19zdHJ1Y3QgewogICAgICAg
IGF0b21pY190IGNvdW50OwogICAgICAgIHJ3bG9ja190IGZpbGVfbG9jazsKICAgICAgICBpbnQg
bWF4X2ZkczsKICAgICAgICBpbnQgbWF4X2Zkc2V0OwogICAgICAgIGludCBuZXh0X2ZkOwogICAg
ICAgIHN0cnVjdCBmaWxlICoqIGZkOwogICAgICAgIGZkX3NldCAqY2xvc2Vfb25fZXhlYzsKICAg
ICAgICBmZF9zZXQgKm9wZW5fZmRzOwogICAgICAgIGZkX3NldCBjbG9zZV9vbl9leGVjX2luaXQ7
CiAgICAgICAgZmRfc2V0IG9wZW5fZmRzX2luaXQ7CiAgICAgICAgc3RydWN0IGZpbGUgKiBmZF9h
cnJheVs2NF07Cn07CgojZGVmaW5lIElOSVRfRklMRVMgeyBjb3VudDogQVRPTUlDX0lOSVQoMSks
IGZpbGVfbG9jazogUldfTE9DS19VTkxPQ0tFRCwgbWF4X2ZkczogTlJfT1BFTl9ERUZBVUxULCBt
YXhfZmRzZXQ6IF9fRkRfU0VUU0laRSwgbmV4dF9mZDogMCwgZmQ6ICZpbml0X2ZpbGVzLmZkX2Fy
cmF5WzBdLCBjbG9zZV9vbl9leGVjOiAmaW5pdF9maWxlcy5jbG9zZV9vbl9leGVjX2luaXQsIG9w
ZW5fZmRzOiAmaW5pdF9maWxlcy5vcGVuX2Zkc19pbml0LCBjbG9zZV9vbl9leGVjX2luaXQ6IHsg
eyAwLCB9IH0sIG9wZW5fZmRzX2luaXQ6IHsgeyAwLCB9IH0sIGZkX2FycmF5OiB7IE5VTEwsIH0g
fQojIDIwMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIgojZGVm
aW5lIE1BWF9NQVBfQ09VTlQgKDY1NTM2KQoKCiNkZWZpbmUgQVZMX01JTl9NQVBfQ09VTlQgMzIK
CnN0cnVjdCBtbV9zdHJ1Y3QgewogICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIG1tYXA7
CiAgICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICogbW1hcF9hdmw7CiAgICAgICAgc3RydWN0
IHZtX2FyZWFfc3RydWN0ICogbW1hcF9jYWNoZTsKICAgICAgICBwZ2RfdCAqIHBnZDsKICAgICAg
ICBhdG9taWNfdCBtbV91c2VyczsKICAgICAgICBhdG9taWNfdCBtbV9jb3VudDsKICAgICAgICBp
bnQgbWFwX2NvdW50OwogICAgICAgIHN0cnVjdCByd19zZW1hcGhvcmUgbW1hcF9zZW07CiAgICAg
ICAgc3BpbmxvY2tfdCBwYWdlX3RhYmxlX2xvY2s7CgogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQg
bW1saXN0OwoKCgoKICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2NvZGUsIGVuZF9jb2RlLCBz
dGFydF9kYXRhLCBlbmRfZGF0YTsKICAgICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2JyaywgYnJr
LCBzdGFydF9zdGFjazsKICAgICAgICB1bnNpZ25lZCBsb25nIGFyZ19zdGFydCwgYXJnX2VuZCwg
ZW52X3N0YXJ0LCBlbnZfZW5kOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcnNzLCB0b3RhbF92bSwg
bG9ja2VkX3ZtOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZGVmX2ZsYWdzOwogICAgICAgIHVuc2ln
bmVkIGxvbmcgY3B1X3ZtX21hc2s7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzd2FwX2FkZHJlc3M7
CgogICAgICAgIHVuc2lnbmVkIGR1bXBhYmxlOjE7CgoKICAgICAgICBtbV9jb250ZXh0X3QgY29u
dGV4dDsKfTsKCmV4dGVybiBpbnQgbW1saXN0X25yOwoKI2RlZmluZSBJTklUX01NKG5hbWUpIHsg
bW1hcDogJmluaXRfbW1hcCwgbW1hcF9hdmw6IE5VTEwsIG1tYXBfY2FjaGU6IE5VTEwsIHBnZDog
c3dhcHBlcl9wZ19kaXIsIG1tX3VzZXJzOiBBVE9NSUNfSU5JVCgyKSwgbW1fY291bnQ6IEFUT01J
Q19JTklUKDEpLCBtYXBfY291bnQ6IDEsIG1tYXBfc2VtOiBfX1JXU0VNX0lOSVRJQUxJWkVSKG5h
bWUubW1hcF9zZW0pLCBwYWdlX3RhYmxlX2xvY2s6IFNQSU5fTE9DS19VTkxPQ0tFRCwgbW1saXN0
OiBMSVNUX0hFQURfSU5JVChuYW1lLm1tbGlzdCksIH0KIyAyNTEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3RydWN0IHNpZ25hbF9zdHJ1Y3QgewogICAgICAg
IGF0b21pY190IGNvdW50OwogICAgICAgIHN0cnVjdCBrX3NpZ2FjdGlvbiBhY3Rpb25bNjRdOwog
ICAgICAgIHNwaW5sb2NrX3Qgc2lnbG9jazsKfTsKCgojZGVmaW5lIElOSVRfU0lHTkFMUyB7IGNv
dW50OiBBVE9NSUNfSU5JVCgxKSwgYWN0aW9uOiB7IHt7MCx9fSwgfSwgc2lnbG9jazogU1BJTl9M
T0NLX1VOTE9DS0VEIH0KIyAyNjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
c2NoZWQuaCIKc3RydWN0IHVzZXJfc3RydWN0IHsKICAgICAgICBhdG9taWNfdCBfX2NvdW50Owog
ICAgICAgIGF0b21pY190IHByb2Nlc3NlczsKICAgICAgICBhdG9taWNfdCBmaWxlczsKCgogICAg
ICAgIHN0cnVjdCB1c2VyX3N0cnVjdCAqbmV4dCwgKipwcHJldjsKICAgICAgICB1aWRfdCB1aWQ7
Cn07CgojZGVmaW5lIGdldF9jdXJyZW50X3VzZXIoKSAoeyBzdHJ1Y3QgdXNlcl9zdHJ1Y3QgKl9f
dXNlciA9IGN1cnJlbnQtPnVzZXI7IGF0b21pY19pbmMoJl9fdXNlci0+X19jb3VudCk7IF9fdXNl
cjsgfSkKCgoKCmV4dGVybiBzdHJ1Y3QgdXNlcl9zdHJ1Y3Qgcm9vdF91c2VyOwojZGVmaW5lIElO
SVRfVVNFUiAoJnJvb3RfdXNlcikKCnN0cnVjdCB0YXNrX3N0cnVjdCB7CgoKCiAgICAgICAgdm9s
YXRpbGUgbG9uZyBzdGF0ZTsKICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgICAgIGlu
dCBzaWdwZW5kaW5nOwogICAgICAgIG1tX3NlZ21lbnRfdCBhZGRyX2xpbWl0OwoKCgogICAgICAg
IHN0cnVjdCBleGVjX2RvbWFpbiAqZXhlY19kb21haW47CiAgICAgICAgdm9sYXRpbGUgbG9uZyBu
ZWVkX3Jlc2NoZWQ7CiAgICAgICAgdW5zaWduZWQgbG9uZyBwdHJhY2U7CgogICAgICAgIGludCBs
b2NrX2RlcHRoOwoKCgoKCgogICAgICAgIGxvbmcgY291bnRlcjsKICAgICAgICBsb25nIG5pY2U7
CiAgICAgICAgdW5zaWduZWQgbG9uZyBwb2xpY3k7CiAgICAgICAgc3RydWN0IG1tX3N0cnVjdCAq
bW07CiAgICAgICAgaW50IGhhc19jcHUsIHByb2Nlc3NvcjsKICAgICAgICB1bnNpZ25lZCBsb25n
IGNwdXNfYWxsb3dlZDsKCgoKCiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBydW5fbGlzdDsKICAg
ICAgICB1bnNpZ25lZCBsb25nIHNsZWVwX3RpbWU7CgogICAgICAgIHN0cnVjdCB0YXNrX3N0cnVj
dCAqbmV4dF90YXNrLCAqcHJldl90YXNrOwogICAgICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKmFjdGl2
ZV9tbTsKCgogICAgICAgIHN0cnVjdCBsaW51eF9iaW5mbXQgKmJpbmZtdDsKICAgICAgICBpbnQg
ZXhpdF9jb2RlLCBleGl0X3NpZ25hbDsKICAgICAgICBpbnQgcGRlYXRoX3NpZ25hbDsKCiAgICAg
ICAgdW5zaWduZWQgbG9uZyBwZXJzb25hbGl0eTsKICAgICAgICBpbnQgZGlkX2V4ZWM6MTsKICAg
ICAgICBwaWRfdCBwaWQ7CiAgICAgICAgcGlkX3QgcGdycDsKICAgICAgICBwaWRfdCB0dHlfb2xk
X3BncnA7CiAgICAgICAgcGlkX3Qgc2Vzc2lvbjsKICAgICAgICBwaWRfdCB0Z2lkOwoKICAgICAg
ICBpbnQgbGVhZGVyOwoKCgoKCiAgICAgICAgc3RydWN0IHRhc2tfc3RydWN0ICpwX29wcHRyLCAq
cF9wcHRyLCAqcF9jcHRyLCAqcF95c3B0ciwgKnBfb3NwdHI7CiAgICAgICAgc3RydWN0IGxpc3Rf
aGVhZCB0aHJlYWRfZ3JvdXA7CgoKICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBpZGhhc2hf
bmV4dDsKICAgICAgICBzdHJ1Y3QgdGFza19zdHJ1Y3QgKipwaWRoYXNoX3BwcmV2OwoKICAgICAg
ICB3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0X2NobGRleGl0OwogICAgICAgIHN0cnVjdCBjb21wbGV0
aW9uICp2Zm9ya19kb25lOwogICAgICAgIHVuc2lnbmVkIGxvbmcgcnRfcHJpb3JpdHk7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyBpdF9yZWFsX3ZhbHVlLCBpdF9wcm9mX3ZhbHVlLCBpdF92aXJ0X3Zh
bHVlOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaXRfcmVhbF9pbmNyLCBpdF9wcm9mX2luY3IsIGl0
X3ZpcnRfaW5jcjsKICAgICAgICBzdHJ1Y3QgdGltZXJfbGlzdCByZWFsX3RpbWVyOwogICAgICAg
IHN0cnVjdCB0bXMgdGltZXM7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydF90aW1lOwogICAg
ICAgIGxvbmcgcGVyX2NwdV91dGltZVszMl0sIHBlcl9jcHVfc3RpbWVbMzJdOwoKICAgICAgICB1
bnNpZ25lZCBsb25nIG1pbl9mbHQsIG1hal9mbHQsIG5zd2FwLCBjbWluX2ZsdCwgY21hal9mbHQs
IGNuc3dhcDsKICAgICAgICBpbnQgc3dhcHBhYmxlOjE7CgogICAgICAgIHVpZF90IHVpZCxldWlk
LHN1aWQsZnN1aWQ7CiAgICAgICAgZ2lkX3QgZ2lkLGVnaWQsc2dpZCxmc2dpZDsKICAgICAgICBp
bnQgbmdyb3VwczsKICAgICAgICBnaWRfdCBncm91cHNbMzJdOwogICAgICAgIGtlcm5lbF9jYXBf
dCBjYXBfZWZmZWN0aXZlLCBjYXBfaW5oZXJpdGFibGUsIGNhcF9wZXJtaXR0ZWQ7CiAgICAgICAg
aW50IGtlZXBfY2FwYWJpbGl0aWVzOjE7CiAgICAgICAgc3RydWN0IHVzZXJfc3RydWN0ICp1c2Vy
OwoKICAgICAgICBzdHJ1Y3QgcmxpbWl0IHJsaW1bMTFdOwogICAgICAgIHVuc2lnbmVkIHNob3J0
IHVzZWRfbWF0aDsKICAgICAgICBjaGFyIGNvbW1bMTZdOwoKICAgICAgICBpbnQgbGlua19jb3Vu
dDsKICAgICAgICBzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5OwogICAgICAgIHVuc2lnbmVkIGludCBs
b2NrczsKCiAgICAgICAgc3RydWN0IHNlbV91bmRvICpzZW11bmRvOwogICAgICAgIHN0cnVjdCBz
ZW1fcXVldWUgKnNlbXNsZWVwaW5nOwoKICAgICAgICBzdHJ1Y3QgdGhyZWFkX3N0cnVjdCB0aHJl
YWQ7CgogICAgICAgIHN0cnVjdCBmc19zdHJ1Y3QgKmZzOwoKICAgICAgICBzdHJ1Y3QgZmlsZXNf
c3RydWN0ICpmaWxlczsKCiAgICAgICAgc3BpbmxvY2tfdCBzaWdtYXNrX2xvY2s7CiAgICAgICAg
c3RydWN0IHNpZ25hbF9zdHJ1Y3QgKnNpZzsKCiAgICAgICAgc2lnc2V0X3QgYmxvY2tlZDsKICAg
ICAgICBzdHJ1Y3Qgc2lncGVuZGluZyBwZW5kaW5nOwoKICAgICAgICB1bnNpZ25lZCBsb25nIHNh
c19zc19zcDsKICAgICAgICBzaXplX3Qgc2FzX3NzX3NpemU7CiAgICAgICAgaW50ICgqbm90aWZp
ZXIpKHZvaWQgKnByaXYpOwogICAgICAgIHZvaWQgKm5vdGlmaWVyX2RhdGE7CiAgICAgICAgc2ln
c2V0X3QgKm5vdGlmaWVyX21hc2s7CgoKICAgICAgICB1MzIgcGFyZW50X2V4ZWNfaWQ7CiAgICAg
ICAgdTMyIHNlbGZfZXhlY19pZDsKCiAgICAgICAgc3BpbmxvY2tfdCBhbGxvY19sb2NrOwp9OwoK
CgoKI2RlZmluZSBQRl9BTElHTldBUk4gMHgwMDAwMDAwMQoKI2RlZmluZSBQRl9TVEFSVElORyAw
eDAwMDAwMDAyCiNkZWZpbmUgUEZfRVhJVElORyAweDAwMDAwMDA0CiNkZWZpbmUgUEZfRk9SS05P
RVhFQyAweDAwMDAwMDQwCiNkZWZpbmUgUEZfU1VQRVJQUklWIDB4MDAwMDAxMDAKI2RlZmluZSBQ
Rl9EVU1QQ09SRSAweDAwMDAwMjAwCiNkZWZpbmUgUEZfU0lHTkFMRUQgMHgwMDAwMDQwMAojZGVm
aW5lIFBGX01FTUFMTE9DIDB4MDAwMDA4MDAKCiNkZWZpbmUgUEZfVVNFREZQVSAweDAwMTAwMDAw
CgoKCgoKI2RlZmluZSBQVF9QVFJBQ0VEIDB4MDAwMDAwMDEKI2RlZmluZSBQVF9UUkFDRVNZUyAw
eDAwMDAwMDAyCiNkZWZpbmUgUFRfRFRSQUNFIDB4MDAwMDAwMDQKI2RlZmluZSBQVF9UUkFDRVNZ
U0dPT0QgMHgwMDAwMDAwOAoKCgoKCiNkZWZpbmUgX1NUS19MSU0gKDgqMTAyNCoxMDI0KQoKI2Rl
ZmluZSBERUZfQ09VTlRFUiAoMTAqSFovMTAwKQojZGVmaW5lIE1BWF9DT1VOVEVSICgyMCpIWi8x
MDApCiNkZWZpbmUgREVGX05JQ0UgKDApCgoKCgoKI2RlZmluZSBJTklUX1RBU0sodHNrKSB7IHN0
YXRlOiAwLCBmbGFnczogMCwgc2lncGVuZGluZzogMCwgYWRkcl9saW1pdDogS0VSTkVMX0RTLCBl
eGVjX2RvbWFpbjogJmRlZmF1bHRfZXhlY19kb21haW4sIGxvY2tfZGVwdGg6IC0xLCBjb3VudGVy
OiBERUZfQ09VTlRFUiwgbmljZTogREVGX05JQ0UsIHBvbGljeTogU0NIRURfT1RIRVIsIG1tOiBO
VUxMLCBhY3RpdmVfbW06ICZpbml0X21tLCBjcHVzX2FsbG93ZWQ6IC0xLCBydW5fbGlzdDogTElT
VF9IRUFEX0lOSVQodHNrLnJ1bl9saXN0KSwgbmV4dF90YXNrOiAmdHNrLCBwcmV2X3Rhc2s6ICZ0
c2ssIHBfb3BwdHI6ICZ0c2ssIHBfcHB0cjogJnRzaywgdGhyZWFkX2dyb3VwOiBMSVNUX0hFQURf
SU5JVCh0c2sudGhyZWFkX2dyb3VwKSwgd2FpdF9jaGxkZXhpdDogX19XQUlUX1FVRVVFX0hFQURf
SU5JVElBTElaRVIodHNrLndhaXRfY2hsZGV4aXQpLCByZWFsX3RpbWVyOiB7IGZ1bmN0aW9uOiBp
dF9yZWFsX2ZuIH0sIGNhcF9lZmZlY3RpdmU6IENBUF9JTklUX0VGRl9TRVQsIGNhcF9pbmhlcml0
YWJsZTogQ0FQX0lOSVRfSU5IX1NFVCwgY2FwX3Blcm1pdHRlZDogQ0FQX0ZVTExfU0VULCBrZWVw
X2NhcGFiaWxpdGllczogMCwgcmxpbTogSU5JVF9STElNSVRTLCB1c2VyOiBJTklUX1VTRVIsIGNv
bW06ICJzd2FwcGVyIiwgdGhyZWFkOiBJTklUX1RIUkVBRCwgZnM6ICZpbml0X2ZzLCBmaWxlczog
JmluaXRfZmlsZXMsIHNpZ21hc2tfbG9jazogU1BJTl9MT0NLX1VOTE9DS0VELCBzaWc6ICZpbml0
X3NpZ25hbHMsIHBlbmRpbmc6IHsgTlVMTCwgJnRzay5wZW5kaW5nLmhlYWQsIHt7MH19fSwgYmxv
Y2tlZDoge3swfX0sIGFsbG9jX2xvY2s6IFNQSU5fTE9DS19VTkxPQ0tFRCB9CiMgNDkwICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCnVuaW9uIHRhc2tfdW5pb24g
ewogICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCB0YXNrOwogICAgICAgIHVuc2lnbmVkIGxvbmcg
c3RhY2tbKCgxIDw8IDEpKigxVUwgPDwgMTQpKS9zaXplb2YobG9uZyldOwp9OwoKZXh0ZXJuIHVu
aW9uIHRhc2tfdW5pb24gaW5pdF90YXNrX3VuaW9uX1JzbXBfY2U0ODE5MDQ7CgpleHRlcm4gc3Ry
dWN0IG1tX3N0cnVjdCBpbml0X21tX1JzbXBfMzlkNTZlZDk7CmV4dGVybiBzdHJ1Y3QgdGFza19z
dHJ1Y3QgKmluaXRfdGFza3NbMzJdOwoKCiNkZWZpbmUgUElESEFTSF9TWiAoNDA5NiA+PiAyKQpl
eHRlcm4gc3RydWN0IHRhc2tfc3RydWN0ICpwaWRoYXNoX1JzbXBfYjQ4ZTA5NmNbKDQwOTYgPj4g
MildOwoKI2RlZmluZSBwaWRfaGFzaGZuKHgpICgoKCh4KSA+PiA4KSBeICh4KSkgJiAoUElESEFT
SF9TWiAtIDEpKQoKc3RhdGljIGlubGluZSB2b2lkIGhhc2hfcGlkKHN0cnVjdCB0YXNrX3N0cnVj
dCAqcCkKewogICAgICAgIHN0cnVjdCB0YXNrX3N0cnVjdCAqKmh0YWJsZSA9ICZwaWRoYXNoX1Jz
bXBfYjQ4ZTA5NmNbKCgoKHAtPnBpZCkgPj4gOCkgXiAocC0+cGlkKSkgJiAoKDQwOTYgPj4gMikg
LSAxKSldOwoKICAgICAgICBpZigocC0+cGlkaGFzaF9uZXh0ID0gKmh0YWJsZSkgIT0gKCh2b2lk
ICopMCkpCiAgICAgICAgICAgICAgICAoKmh0YWJsZSktPnBpZGhhc2hfcHByZXYgPSAmcC0+cGlk
aGFzaF9uZXh0OwogICAgICAgICpodGFibGUgPSBwOwogICAgICAgIHAtPnBpZGhhc2hfcHByZXYg
PSBodGFibGU7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCB1bmhhc2hfcGlkKHN0cnVjdCB0YXNrX3N0
cnVjdCAqcCkKewogICAgICAgIGlmKHAtPnBpZGhhc2hfbmV4dCkKICAgICAgICAgICAgICAgIHAt
PnBpZGhhc2hfbmV4dC0+cGlkaGFzaF9wcHJldiA9IHAtPnBpZGhhc2hfcHByZXY7CiAgICAgICAg
KnAtPnBpZGhhc2hfcHByZXYgPSBwLT5waWRoYXNoX25leHQ7Cn0KCnN0YXRpYyBpbmxpbmUgc3Ry
dWN0IHRhc2tfc3RydWN0ICpmaW5kX3Rhc2tfYnlfcGlkKGludCBwaWQpCnsKICAgICAgICBzdHJ1
Y3QgdGFza19zdHJ1Y3QgKnAsICoqaHRhYmxlID0gJnBpZGhhc2hfUnNtcF9iNDhlMDk2Y1soKCgo
cGlkKSA+PiA4KSBeIChwaWQpKSAmICgoNDA5NiA+PiAyKSAtIDEpKV07CgogICAgICAgIGZvcihw
ID0gKmh0YWJsZTsgcCAmJiBwLT5waWQgIT0gcGlkOyBwID0gcC0+cGlkaGFzaF9uZXh0KQogICAg
ICAgICAgICAgICAgOwoKICAgICAgICByZXR1cm4gcDsKfQoKCmV4dGVybiBzdHJ1Y3QgdXNlcl9z
dHJ1Y3QgKiBhbGxvY191aWQodWlkX3QpOwpleHRlcm4gdm9pZCBmcmVlX3VpZChzdHJ1Y3QgdXNl
cl9zdHJ1Y3QgKik7CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2N1cnJl
bnQuaCIgMQojIDUzOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5o
IiAyCgpleHRlcm4gdW5zaWduZWQgbG9uZyB2b2xhdGlsZSBqaWZmaWVzX1JzbXBfMGRhMDJkNjc7
CmV4dGVybiB1bnNpZ25lZCBsb25nIGl0aW1lcl90aWNrczsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
aXRpbWVyX25leHQ7CmV4dGVybiBzdHJ1Y3QgdGltZXZhbCB4dGltZV9Sc21wX2YzMWRkZjgzOwpl
eHRlcm4gdm9pZCBkb190aW1lcihzdHJ1Y3QgcHRfcmVncyAqKTsKCmV4dGVybiB1bnNpZ25lZCBp
bnQgKiBwcm9mX2J1ZmZlcjsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcHJvZl9sZW47CmV4dGVybiB1
bnNpZ25lZCBsb25nIHByb2Zfc2hpZnQ7CgojZGVmaW5lIENVUlJFTlRfVElNRSAoeHRpbWUudHZf
c2VjKQoKZXh0ZXJuIHZvaWQgX193YWtlX3VwX1JzbXBfNjlkZGJmMTUod2FpdF9xdWV1ZV9oZWFk
X3QgKnEsIHVuc2lnbmVkIGludCBtb2RlLCBpbnQgbnIpOwpleHRlcm4gdm9pZCBfX3dha2VfdXBf
c3luYyh3YWl0X3F1ZXVlX2hlYWRfdCAqcSwgdW5zaWduZWQgaW50IG1vZGUsIGludCBucik7CmV4
dGVybiB2b2lkIHNsZWVwX29uX1JzbXBfOGVhMjMxZmIod2FpdF9xdWV1ZV9oZWFkX3QgKnEpOwpl
eHRlcm4gbG9uZyBzbGVlcF9vbl90aW1lb3V0X1JzbXBfNTY0NTBiM2Uod2FpdF9xdWV1ZV9oZWFk
X3QgKnEsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwoKZXh0ZXJuIHZvaWQgaW50ZXJydXB0aWJsZV9z
bGVlcF9vbl9Sc21wXzQ4NGM1ZGI2KHdhaXRfcXVldWVfaGVhZF90ICpxKTsKZXh0ZXJuIGxvbmcg
aW50ZXJydXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0X1JzbXBfMzJhMDhjZDMod2FpdF9xdWV1ZV9o
ZWFkX3QgKnEsIHNpZ25lZCBsb25nIHRpbWVvdXQpOwoKZXh0ZXJuIGludCB3YWtlX3VwX3Byb2Nl
c3NfUnNtcF81NTBkODRhNShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiB0c2spOwoKI2RlZmluZSB3YWtl
X3VwKHgpIF9fd2FrZV91cCgoeCksVEFTS19VTklOVEVSUlVQVElCTEUgfCBUQVNLX0lOVEVSUlVQ
VElCTEUsIDEpCiNkZWZpbmUgd2FrZV91cF9ucih4LCBucikgX193YWtlX3VwKCh4KSxUQVNLX1VO
SU5URVJSVVBUSUJMRSB8IFRBU0tfSU5URVJSVVBUSUJMRSwgbnIpCiNkZWZpbmUgd2FrZV91cF9h
bGwoeCkgX193YWtlX3VwKCh4KSxUQVNLX1VOSU5URVJSVVBUSUJMRSB8IFRBU0tfSU5URVJSVVBU
SUJMRSwgMCkKI2RlZmluZSB3YWtlX3VwX3N5bmMoeCkgX193YWtlX3VwX3N5bmMoKHgpLFRBU0tf
VU5JTlRFUlJVUFRJQkxFIHwgVEFTS19JTlRFUlJVUFRJQkxFLCAxKQojZGVmaW5lIHdha2VfdXBf
c3luY19ucih4LCBucikgX193YWtlX3VwX3N5bmMoKHgpLFRBU0tfVU5JTlRFUlJVUFRJQkxFIHwg
VEFTS19JTlRFUlJVUFRJQkxFLCBucikKI2RlZmluZSB3YWtlX3VwX2ludGVycnVwdGlibGUoeCkg
X193YWtlX3VwKCh4KSxUQVNLX0lOVEVSUlVQVElCTEUsIDEpCiNkZWZpbmUgd2FrZV91cF9pbnRl
cnJ1cHRpYmxlX25yKHgsIG5yKSBfX3dha2VfdXAoKHgpLFRBU0tfSU5URVJSVVBUSUJMRSwgbnIp
CiNkZWZpbmUgd2FrZV91cF9pbnRlcnJ1cHRpYmxlX2FsbCh4KSBfX3dha2VfdXAoKHgpLFRBU0tf
SU5URVJSVVBUSUJMRSwgMCkKI2RlZmluZSB3YWtlX3VwX2ludGVycnVwdGlibGVfc3luYyh4KSBf
X3dha2VfdXBfc3luYygoeCksVEFTS19JTlRFUlJVUFRJQkxFLCAxKQojZGVmaW5lIHdha2VfdXBf
aW50ZXJydXB0aWJsZV9zeW5jX25yKHgpIF9fd2FrZV91cF9zeW5jKCh4KSxUQVNLX0lOVEVSUlVQ
VElCTEUsIG5yKQogX19hdHRyaWJ1dGVfXygoc3lzY2FsbF9saW5rYWdlKSkgbG9uZyBzeXNfd2Fp
dDQocGlkX3QgcGlkLHVuc2lnbmVkIGludCAqIHN0YXRfYWRkciwgaW50IG9wdGlvbnMsIHN0cnVj
dCBydXNhZ2UgKiBydSk7CgpleHRlcm4gaW50IGluX2dyb3VwX3BfUnNtcF8zMWViYWRjZChnaWRf
dCk7CmV4dGVybiBpbnQgaW5fZWdyb3VwX3BfUnNtcF80MmE0YmRmMihnaWRfdCk7CgpleHRlcm4g
dm9pZCBwcm9jX2NhY2hlc19pbml0KHZvaWQpOwpleHRlcm4gdm9pZCBmbHVzaF9zaWduYWxzX1Jz
bXBfZmVhZjkxN2Qoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBmbHVzaF9zaWdu
YWxfaGFuZGxlcnMoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gaW50IGRlcXVldWVfc2ln
bmFsX1JzbXBfNjcyYTgxMGEoc2lnc2V0X3QgKiwgc2lnaW5mb190ICopOwpleHRlcm4gdm9pZCBi
bG9ja19hbGxfc2lnbmFsc19Sc21wXzRlZGQ3MmY3KGludCAoKm5vdGlmaWVyKSh2b2lkICpwcml2
KSwgdm9pZCAqcHJpdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnc2V0X3QgKm1h
c2spOwpleHRlcm4gdm9pZCB1bmJsb2NrX2FsbF9zaWduYWxzX1JzbXBfMGEyNDg3ZTAodm9pZCk7
CmV4dGVybiBpbnQgc2VuZF9zaWdfaW5mb19Sc21wX2ViZTg1MmE4KGludCwgc3RydWN0IHNpZ2lu
Zm8gKiwgc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gaW50IGZvcmNlX3NpZ19pbmZvX1Jz
bXBfY2MyYjQyZTEoaW50LCBzdHJ1Y3Qgc2lnaW5mbyAqLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7
CmV4dGVybiBpbnQga2lsbF9wZ19pbmZvX1JzbXBfYWM3YzgwMDYoaW50LCBzdHJ1Y3Qgc2lnaW5m
byAqLCBwaWRfdCk7CmV4dGVybiBpbnQga2lsbF9zbF9pbmZvX1JzbXBfNzcxMzA5MWQoaW50LCBz
dHJ1Y3Qgc2lnaW5mbyAqLCBwaWRfdCk7CmV4dGVybiBpbnQga2lsbF9wcm9jX2luZm9fUnNtcF9j
ZTE3ZTc5MyhpbnQsIHN0cnVjdCBzaWdpbmZvICosIHBpZF90KTsKZXh0ZXJuIHZvaWQgbm90aWZ5
X3BhcmVudF9Sc21wX2U3NmFmMTQzKHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBpbnQpOwpleHRlcm4g
dm9pZCBkb19ub3RpZnlfcGFyZW50KHN0cnVjdCB0YXNrX3N0cnVjdCAqLCBpbnQpOwpleHRlcm4g
dm9pZCBmb3JjZV9zaWdfUnNtcF82NTVjY2JhYShpbnQsIHN0cnVjdCB0YXNrX3N0cnVjdCAqKTsK
ZXh0ZXJuIGludCBzZW5kX3NpZ19Sc21wXzkzMzZkZDAxKGludCwgc3RydWN0IHRhc2tfc3RydWN0
ICosIGludCk7CmV4dGVybiBpbnQga2lsbF9wZ19Sc21wXzM4ZjI5NzE5KHBpZF90LCBpbnQsIGlu
dCk7CmV4dGVybiBpbnQga2lsbF9zbF9Sc21wX2ZiYTEyZmQwKHBpZF90LCBpbnQsIGludCk7CmV4
dGVybiBpbnQga2lsbF9wcm9jX1JzbXBfOTMyZGE2N2UocGlkX3QsIGludCwgaW50KTsKZXh0ZXJu
IGludCBkb19zaWdhY3Rpb24oaW50LCBjb25zdCBzdHJ1Y3Qga19zaWdhY3Rpb24gKiwgc3RydWN0
IGtfc2lnYWN0aW9uICopOwpleHRlcm4gaW50IGRvX3NpZ2FsdHN0YWNrKGNvbnN0IHN0YWNrX3Qg
Kiwgc3RhY2tfdCAqLCB1bnNpZ25lZCBsb25nKTsKCnN0YXRpYyBpbmxpbmUgaW50IHNpZ25hbF9w
ZW5kaW5nKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCkKewogICAgICAgIHJldHVybiAocC0+c2lncGVu
ZGluZyAhPSAwKTsKfQoKCgoKCnN0YXRpYyBpbmxpbmUgaW50IGhhc19wZW5kaW5nX3NpZ25hbHMo
c2lnc2V0X3QgKnNpZ25hbCwgc2lnc2V0X3QgKmJsb2NrZWQpCnsKICAgICAgICB1bnNpZ25lZCBs
b25nIHJlYWR5OwogICAgICAgIGxvbmcgaTsKCiAgICAgICAgc3dpdGNoICgoNjQgLyA2NCkpIHsK
ICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgZm9yIChpID0gKDY0IC8gNjQpLCByZWFk
eSA9IDA7IC0taSA+PSAwIDspCiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWR5IHw9IHNpZ25h
bC0+c2lnW2ldICZ+IGJsb2NrZWQtPnNpZ1tpXTsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAg
ICAgICBjYXNlIDQ6IHJlYWR5ID0gc2lnbmFsLT5zaWdbM10gJn4gYmxvY2tlZC0+c2lnWzNdOwog
ICAgICAgICAgICAgICAgcmVhZHkgfD0gc2lnbmFsLT5zaWdbMl0gJn4gYmxvY2tlZC0+c2lnWzJd
OwogICAgICAgICAgICAgICAgcmVhZHkgfD0gc2lnbmFsLT5zaWdbMV0gJn4gYmxvY2tlZC0+c2ln
WzFdOwogICAgICAgICAgICAgICAgcmVhZHkgfD0gc2lnbmFsLT5zaWdbMF0gJn4gYmxvY2tlZC0+
c2lnWzBdOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgMjogcmVhZHkgPSBz
aWduYWwtPnNpZ1sxXSAmfiBibG9ja2VkLT5zaWdbMV07CiAgICAgICAgICAgICAgICByZWFkeSB8
PSBzaWduYWwtPnNpZ1swXSAmfiBibG9ja2VkLT5zaWdbMF07CiAgICAgICAgICAgICAgICBicmVh
azsKCiAgICAgICAgY2FzZSAxOiByZWFkeSA9IHNpZ25hbC0+c2lnWzBdICZ+IGJsb2NrZWQtPnNp
Z1swXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlYWR5ICE9IDA7Cn0KCgoKCgpzdGF0aWMg
aW5saW5lIHZvaWQgcmVjYWxjX3NpZ3BlbmRpbmdfUnNtcF83Njk4N2IxZihzdHJ1Y3QgdGFza19z
dHJ1Y3QgKnQpCnsKICAgICAgICB0LT5zaWdwZW5kaW5nID0gaGFzX3BlbmRpbmdfc2lnbmFscygm
dC0+cGVuZGluZy5zaWduYWwsICZ0LT5ibG9ja2VkKTsKfQoKCgpzdGF0aWMgaW5saW5lIGludCBv
bl9zaWdfc3RhY2sodW5zaWduZWQgbG9uZyBzcCkKewogICAgICAgIHJldHVybiAoc3AgLSBjdXJy
ZW50LT5zYXNfc3Nfc3AgPCBjdXJyZW50LT5zYXNfc3Nfc2l6ZSk7Cn0KCnN0YXRpYyBpbmxpbmUg
aW50IHNhc19zc19mbGFncyh1bnNpZ25lZCBsb25nIHNwKQp7CiAgICAgICAgcmV0dXJuIChjdXJy
ZW50LT5zYXNfc3Nfc2l6ZSA9PSAwID8gMgogICAgICAgICAgICAgICAgOiBvbl9zaWdfc3RhY2so
c3ApID8gMSA6IDApOwp9CgpleHRlcm4gaW50IHJlcXVlc3RfaXJxX1JzbXBfYWJiNzZhMjcodW5z
aWduZWQgaW50LAogICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCpoYW5kbGVyKShpbnQsIHZv
aWQgKiwgc3RydWN0IHB0X3JlZ3MgKiksCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bG9uZywgY29uc3QgY2hhciAqLCB2b2lkICopOwpleHRlcm4gdm9pZCBmcmVlX2lycV9Sc21wX2Yy
MGRhYmQ4KHVuc2lnbmVkIGludCwgdm9pZCAqKTsKIyA2NzQgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvc2NoZWQuaCIKc3RhdGljIGlubGluZSBpbnQgc3VzZXIodm9pZCkKewog
ICAgICAgIGlmICghKCAoMSA8PCAoMCArMSkpICYgMHgwMDAwMDAwMCA/ICgxIDw8ICgwKSkgJiAw
eDAwMDAwMDAwIDogKDEgPDwgKDApKSAmIHNlY3VyZWJpdHNfUnNtcF9hYmU3NzQ4NCApICYmIGN1
cnJlbnQtPmV1aWQgPT0gMCkgewogICAgICAgICAgICAgICAgY3VycmVudC0+ZmxhZ3MgfD0gMHgw
MDAwMDEwMDsKICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICByZXR1
cm4gMDsKfQoKc3RhdGljIGlubGluZSBpbnQgZnN1c2VyKHZvaWQpCnsKICAgICAgICBpZiAoISgg
KDEgPDwgKDAgKzEpKSAmIDB4MDAwMDAwMDAgPyAoMSA8PCAoMCkpICYgMHgwMDAwMDAwMCA6ICgx
IDw8ICgwKSkgJiBzZWN1cmViaXRzX1JzbXBfYWJlNzc0ODQgKSAmJiBjdXJyZW50LT5mc3VpZCA9
PSAwKSB7CiAgICAgICAgICAgICAgICBjdXJyZW50LT5mbGFncyB8PSAweDAwMDAwMTAwOwogICAg
ICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQogICAgICAgIHJldHVybiAwOwp9CgoKCgoK
CgpzdGF0aWMgaW5saW5lIGludCBjYXBhYmxlKGludCBjYXApCnsKCiAgICAgICAgaWYgKCgoY3Vy
cmVudC0+Y2FwX2VmZmVjdGl2ZSkgJiAoMSA8PCAoY2FwKSkpKQoKCgogICAgICAgIHsKICAgICAg
ICAgICAgICAgIGN1cnJlbnQtPmZsYWdzIHw9IDB4MDAwMDAxMDA7CiAgICAgICAgICAgICAgICBy
ZXR1cm4gMTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIDA7Cn0KCgoKCmV4dGVybiBzdHJ1Y3Qg
bW1fc3RydWN0ICogbW1fYWxsb2Modm9pZCk7CgpleHRlcm4gc3RydWN0IG1tX3N0cnVjdCAqIHN0
YXJ0X2xhenlfdGxiKHZvaWQpOwpleHRlcm4gdm9pZCBlbmRfbGF6eV90bGIoc3RydWN0IG1tX3N0
cnVjdCAqbW0pOwoKCmV4dGVybiBpbmxpbmUgdm9pZCBfX21tZHJvcChzdHJ1Y3QgbW1fc3RydWN0
ICopOwpzdGF0aWMgaW5saW5lIHZvaWQgbW1kcm9wKHN0cnVjdCBtbV9zdHJ1Y3QgKiBtbSkKewog
ICAgICAgIGlmICgoKChfX2J1aWx0aW5fY29uc3RhbnRfcCgxKSAmJiAoICgxID09IDEpIHx8ICgx
ID09IDQpIHx8ICgxID09IDgpIHx8ICgxID09IDE2KSB8fCAoMSA9PSAtMSkgfHwgKDEgPT0gLTQp
IHx8ICgxID09IC04KSB8fCAoMSA9PSAtMTYpKSkgPyAoeyBfX3U2NCBfdG1wOyB2b2xhdGlsZSBf
X3R5cGVvZl9fKCooJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkgKl92ID0gKCYoKCZtbS0+
bW1fY291bnQpKS0+Y291bnRlcik7IHN3aXRjaCAoLSgxKSkgeyBjYXNlIC0xNjogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIigtMTYpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2FzbV9f
IF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3RtcCkg
OiAiciIoX3YpLCAiaSIoLTE2KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3Np
emVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAtODogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIigtOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgLTQ6ICh7IHN3
aXRjaCAoc2l6ZW9mKCooJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIo
X3RtcCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoLTQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRf
c2l6ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIC0xOiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCZtbS0+bW1fY291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19h
c21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90
bXApIDogInIiKF92KSwgImkiKC0xKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFk
X3NpemVfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxOiAoeyBz
d2l0Y2ggKHNpemVvZigqKCYoKCZtbS0+bW1fY291bnQpKS0+Y291bnRlcikpKSB7IGNhc2UgNDog
X19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkNC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIi
KF90bXApIDogInIiKF92KSwgImkiKDEpIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSA4OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ4LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoMSkgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9z
aXplX2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGNhc2UgNDogKHsgc3dp
dGNoIChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihf
dG1wKSA6ICJyIihfdiksICJpIig0KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNhc2UgODogX19hc21f
XyBfX3ZvbGF0aWxlX18gKCIiImZldGNoYWRkOC5yZWwgJTA9WyUxXSwlMiIgOiAiPXIiKF90bXAp
IDogInIiKF92KSwgImkiKDQpIDogIm1lbW9yeSIpOyBicmVhazsgZGVmYXVsdDogX19iYWRfc2l6
ZV9mb3JfaWE2NF9mZXRjaF9hbmRfYWRkKCk7IH0gfSk7IGJyZWFrOyBjYXNlIDg6ICh7IHN3aXRj
aCAoc2l6ZW9mKCooJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkpIHsgY2FzZSA0OiBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIiZmV0Y2hhZGQ0LnJlbCAlMD1bJTFdLCUyIiA6ICI9ciIoX3Rt
cCkgOiAiciIoX3YpLCAiaSIoOCkgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIig4KSA6ICJtZW1vcnkiKTsgYnJlYWs7IGRlZmF1bHQ6IF9fYmFkX3NpemVf
Zm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyB9IH0pOyBicmVhazsgY2FzZSAxNjogKHsgc3dpdGNo
IChzaXplb2YoKigmKCgmbW0tPm1tX2NvdW50KSktPmNvdW50ZXIpKSkgeyBjYXNlIDQ6IF9fYXNt
X18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1w
KSA6ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDg6IF9fYXNtX18g
X192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDgucmVsICUwPVslMV0sJTIiIDogIj1yIihfdG1wKSA6
ICJyIihfdiksICJpIigxNikgOiAibWVtb3J5Iik7IGJyZWFrOyBkZWZhdWx0OiBfX2JhZF9zaXpl
X2Zvcl9pYTY0X2ZldGNoX2FuZF9hZGQoKTsgfSB9KTsgYnJlYWs7IGRlZmF1bHQ6IF90bXAgPSBf
X2JhZF9pbmNyZW1lbnRfZm9yX2lhNjRfZmV0Y2hfYW5kX2FkZCgpOyBicmVhazsgfSAoX190eXBl
b2ZfXygqJigoJm1tLT5tbV9jb3VudCkpLT5jb3VudGVyKSkgKF90bXAgKyAoLSgxKSkpOyB9KSA6
IGlhNjRfYXRvbWljX3N1YigxLCAoJm1tLT5tbV9jb3VudCkpKSA9PSAwKSkKICAgICAgICAgICAg
ICAgIF9fbW1kcm9wKG1tKTsKfQoKCmV4dGVybiB2b2lkIG1tcHV0KHN0cnVjdCBtbV9zdHJ1Y3Qg
Kik7CgpleHRlcm4gdm9pZCBtbV9yZWxlYXNlKHZvaWQpOwoKCgoKZXh0ZXJuIHN0cnVjdCBmaWxl
ICoqIGFsbG9jX2ZkX2FycmF5KGludCk7CmV4dGVybiBpbnQgZXhwYW5kX2ZkX2FycmF5KHN0cnVj
dCBmaWxlc19zdHJ1Y3QgKiwgaW50IG5yKTsKZXh0ZXJuIHZvaWQgZnJlZV9mZF9hcnJheShzdHJ1
Y3QgZmlsZSAqKiwgaW50KTsKCmV4dGVybiBmZF9zZXQgKmFsbG9jX2Zkc2V0KGludCk7CmV4dGVy
biBpbnQgZXhwYW5kX2Zkc2V0KHN0cnVjdCBmaWxlc19zdHJ1Y3QgKiwgaW50IG5yKTsKZXh0ZXJu
IHZvaWQgZnJlZV9mZHNldChmZF9zZXQgKiwgaW50KTsKCmV4dGVybiBpbnQgY29weV90aHJlYWQo
aW50LCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nLCBzdHJ1Y3Qg
dGFza19zdHJ1Y3QgKiwgc3RydWN0IHB0X3JlZ3MgKik7CmV4dGVybiB2b2lkIGZsdXNoX3RocmVh
ZCh2b2lkKTsKZXh0ZXJuIHZvaWQgZXhpdF90aHJlYWQodm9pZCk7CgpleHRlcm4gdm9pZCBleGl0
X21tX1JzbXBfODZkMjQ3MTgoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBleGl0
X2ZpbGVzX1JzbXBfODBhYTUzMzgoc3RydWN0IHRhc2tfc3RydWN0ICopOwpleHRlcm4gdm9pZCBl
eGl0X3NpZ2hhbmRfUnNtcF81ZDE3OWE0OChzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CgpleHRlcm4g
dm9pZCBkYWVtb25pemVfUnNtcF9kNjZhMzU0YSh2b2lkKTsKCmV4dGVybiBpbnQgZG9fZXhlY3Zl
X1JzbXBfZGUxOWYwM2IoY2hhciAqLCBjaGFyICoqLCBjaGFyICoqLCBzdHJ1Y3QgcHRfcmVncyAq
KTsKZXh0ZXJuIGludCBkb19mb3JrKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcsIHN0cnVj
dCBwdF9yZWdzICosIHVuc2lnbmVkIGxvbmcpOwoKZXh0ZXJuIHZvaWQgYWRkX3dhaXRfcXVldWVf
UnNtcF83Njg4NDJlNyh3YWl0X3F1ZXVlX2hlYWRfdCAqcSwgd2FpdF9xdWV1ZV90ICogd2FpdCk7
CmV4dGVybiB2b2lkIGFkZF93YWl0X3F1ZXVlX2V4Y2x1c2l2ZV9Sc21wXzAwMjg3Yzk5KHdhaXRf
cXVldWVfaGVhZF90ICpxLCB3YWl0X3F1ZXVlX3QgKiB3YWl0KTsKZXh0ZXJuIHZvaWQgcmVtb3Zl
X3dhaXRfcXVldWVfUnNtcF8xMzNhYWVkOCh3YWl0X3F1ZXVlX2hlYWRfdCAqcSwgd2FpdF9xdWV1
ZV90ICogd2FpdCk7CgojZGVmaW5lIF9fd2FpdF9ldmVudCh3cSwgY29uZGl0aW9uKSBkbyB7IHdh
aXRfcXVldWVfdCBfX3dhaXQ7IGluaXRfd2FpdHF1ZXVlX2VudHJ5KCZfX3dhaXQsIGN1cnJlbnQp
OyBhZGRfd2FpdF9xdWV1ZSgmd3EsICZfX3dhaXQpOyBmb3IgKDs7KSB7IHNldF9jdXJyZW50X3N0
YXRlKFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsgaWYgKGNvbmRpdGlvbikgYnJlYWs7IHNjaGVkdWxl
KCk7IH0gY3VycmVudC0+c3RhdGUgPSBUQVNLX1JVTk5JTkc7IHJlbW92ZV93YWl0X3F1ZXVlKCZ3
cSwgJl9fd2FpdCk7IH0gd2hpbGUgKDApCiMgNzc3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUgd2FpdF9ldmVudCh3cSwgY29uZGl0aW9uKSBkbyB7
IGlmIChjb25kaXRpb24pIGJyZWFrOyBfX3dhaXRfZXZlbnQod3EsIGNvbmRpdGlvbik7IH0gd2hp
bGUgKDApCgoKCgoKCiNkZWZpbmUgX193YWl0X2V2ZW50X2ludGVycnVwdGlibGUod3EsIGNvbmRp
dGlvbiwgcmV0KSBkbyB7IHdhaXRfcXVldWVfdCBfX3dhaXQ7IGluaXRfd2FpdHF1ZXVlX2VudHJ5
KCZfX3dhaXQsIGN1cnJlbnQpOyBhZGRfd2FpdF9xdWV1ZSgmd3EsICZfX3dhaXQpOyBmb3IgKDs7
KSB7IHNldF9jdXJyZW50X3N0YXRlKFRBU0tfSU5URVJSVVBUSUJMRSk7IGlmIChjb25kaXRpb24p
IGJyZWFrOyBpZiAoIXNpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7IHNjaGVkdWxlKCk7IGNvbnRp
bnVlOyB9IHJldCA9IC1FUkVTVEFSVFNZUzsgYnJlYWs7IH0gY3VycmVudC0+c3RhdGUgPSBUQVNL
X1JVTk5JTkc7IHJlbW92ZV93YWl0X3F1ZXVlKCZ3cSwgJl9fd2FpdCk7IH0gd2hpbGUgKDApCiMg
ODA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUg
d2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKHdxLCBjb25kaXRpb24pICh7IGludCBfX3JldCA9IDA7
IGlmICghKGNvbmRpdGlvbikpIF9fd2FpdF9ldmVudF9pbnRlcnJ1cHRpYmxlKHdxLCBjb25kaXRp
b24sIF9fcmV0KTsgX19yZXQ7IH0pCgoKCgoKCgojZGVmaW5lIFJFTU9WRV9MSU5LUyhwKSBkbyB7
IChwKS0+bmV4dF90YXNrLT5wcmV2X3Rhc2sgPSAocCktPnByZXZfdGFzazsgKHApLT5wcmV2X3Rh
c2stPm5leHRfdGFzayA9IChwKS0+bmV4dF90YXNrOyBpZiAoKHApLT5wX29zcHRyKSAocCktPnBf
b3NwdHItPnBfeXNwdHIgPSAocCktPnBfeXNwdHI7IGlmICgocCktPnBfeXNwdHIpIChwKS0+cF95
c3B0ci0+cF9vc3B0ciA9IChwKS0+cF9vc3B0cjsgZWxzZSAocCktPnBfcHB0ci0+cF9jcHRyID0g
KHApLT5wX29zcHRyOyB9IHdoaWxlICgwKQojIDgyNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9zY2hlZC5oIgojZGVmaW5lIFNFVF9MSU5LUyhwKSBkbyB7IChwKS0+bmV4dF90
YXNrID0gJmluaXRfdGFzazsgKHApLT5wcmV2X3Rhc2sgPSBpbml0X3Rhc2sucHJldl90YXNrOyBp
bml0X3Rhc2sucHJldl90YXNrLT5uZXh0X3Rhc2sgPSAocCk7IGluaXRfdGFzay5wcmV2X3Rhc2sg
PSAocCk7IChwKS0+cF95c3B0ciA9IE5VTEw7IGlmICgoKHApLT5wX29zcHRyID0gKHApLT5wX3Bw
dHItPnBfY3B0cikgIT0gTlVMTCkgKHApLT5wX29zcHRyLT5wX3lzcHRyID0gcDsgKHApLT5wX3Bw
dHItPnBfY3B0ciA9IHA7IH0gd2hpbGUgKDApCiMgODM1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L3NjaGVkLmgiCiNkZWZpbmUgZm9yX2VhY2hfdGFzayhwKSBmb3IgKHAgPSAm
aW5pdF90YXNrIDsgKHAgPSBwLT5uZXh0X3Rhc2spICE9ICZpbml0X3Rhc2sgOyApCgoKI2RlZmlu
ZSBuZXh0X3RocmVhZChwKSBsaXN0X2VudHJ5KChwKS0+dGhyZWFkX2dyb3VwLm5leHQsIHN0cnVj
dCB0YXNrX3N0cnVjdCwgdGhyZWFkX2dyb3VwKQoKCnN0YXRpYyBpbmxpbmUgdm9pZCBkZWxfZnJv
bV9ydW5xdWV1ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKiBwKQp7CiAgICAgICAgbnJfcnVubmluZ19S
c21wX2NhM2M2ZDc4LS07CiAgICAgICAgcC0+c2xlZXBfdGltZSA9IGppZmZpZXNfUnNtcF8wZGEw
MmQ2NzsKICAgICAgICBsaXN0X2RlbCgmcC0+cnVuX2xpc3QpOwogICAgICAgIHAtPnJ1bl9saXN0
Lm5leHQgPSAoKHZvaWQgKikwKTsKfQoKc3RhdGljIGlubGluZSBpbnQgdGFza19vbl9ydW5xdWV1
ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCnsKICAgICAgICByZXR1cm4gKHAtPnJ1bl9saXN0Lm5l
eHQgIT0gKCh2b2lkICopMCkpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgdW5oYXNoX3Byb2Nlc3Mo
c3RydWN0IHRhc2tfc3RydWN0ICpwKQp7CiAgICAgICAgaWYgKHRhc2tfb25fcnVucXVldWUocCkp
IGRvIHsgcHJpbnRrX1JzbXBfODI3ZDU4MDcoImtlcm5lbCBCVUcgYXQgJXM6JWQhXG4iLCAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiwgODU2KTsgKihpbnQgKikw
PTA7IH0gd2hpbGUgKDApOwogICAgICAgIGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18gKCI7OyBy
c20gcHNyLmk7OyIgOjo6ICJtZW1vcnkiKTsgZG8geyBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoICJt
b3YgYXIuY2N2ID0gcjBcbiIgIm1vdmwgcjI5ID0gMHg4MDAwMDAwMFxuIiAiOztcbiIgIjE6XG4i
ICJsZDQgcjIgPSBbJTBdXG4iICI7O1xuIiAiY21wNC5lcSBwMCxwNyA9IHIwLHIyXG4iICIocDcp
IGJyLmNvbmQuc3BudC5mZXcgMWIgXG4iICIiImNtcHhjaGc0LmFjcSByMiA9IFslMF0sIHIyOSwg
YXIuY2N2XG4iICI7O1xuIiAiY21wNC5lcSBwMCxwNyA9IHIwLCByMlxuIiAiKHA3KSBici5jb25k
LnNwbnQuZmV3IDFiXG4iICI7O1xuIiA6OiAiciIoJnRhc2tsaXN0X2xvY2tfUnNtcF9lYmM5MzU3
NCkgOiAicjIiLCAicjI5IiwgIm1lbW9yeSIpOyB9IHdoaWxlKDApOyB9IHdoaWxlICgwKTsKICAg
ICAgICBucl90aHJlYWRzLS07CiAgICAgICAgdW5oYXNoX3BpZChwKTsKICAgICAgICBkbyB7IChw
KS0+bmV4dF90YXNrLT5wcmV2X3Rhc2sgPSAocCktPnByZXZfdGFzazsgKHApLT5wcmV2X3Rhc2st
Pm5leHRfdGFzayA9IChwKS0+bmV4dF90YXNrOyBpZiAoKHApLT5wX29zcHRyKSAocCktPnBfb3Nw
dHItPnBfeXNwdHIgPSAocCktPnBfeXNwdHI7IGlmICgocCktPnBfeXNwdHIpIChwKS0+cF95c3B0
ci0+cF9vc3B0ciA9IChwKS0+cF9vc3B0cjsgZWxzZSAocCktPnBfcHB0ci0+cF9jcHRyID0gKHAp
LT5wX29zcHRyOyB9IHdoaWxlICgwKTsKICAgICAgICBsaXN0X2RlbCgmcC0+dGhyZWFkX2dyb3Vw
KTsKICAgICAgICBkbyB7ICh7Y2xlYXJfYml0KDMxLCAoJnRhc2tsaXN0X2xvY2tfUnNtcF9lYmM5
MzU3NCkpOyBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIm1mIiA6OjogIm1lbW9yeSIpO30pOyBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIjs7IHNzbSBwc3IuaTs7IHNybHouZCIgOjo6ICJtZW1vcnkiKTsg
fSB3aGlsZSAoMCk7Cn0KCgpzdGF0aWMgaW5saW5lIHZvaWQgdGFza19sb2NrKHN0cnVjdCB0YXNr
X3N0cnVjdCAqcCkKewogICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICggIm1vdiBhci5jY3Yg
PSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIxOlxuIiAibGQ0IHIyID0gWyUwXVxuIiAi
OztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAiKHA3KSBici5jb25kLnNwbnQuZmV3IDFi
IFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCByMjksIGFyLmNjdlxuIiAiOztcbiIgImNt
cDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYlxuIiAiOztc
biIgOjogInIiKCYoJnAtPmFsbG9jX2xvY2spLT5sb2NrKSA6ICJyMiIsICJyMjkiLCAibWVtb3J5
Iik7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCB0YXNrX3VubG9jayhzdHJ1Y3QgdGFza19zdHJ1Y3Qg
KnApCnsKICAgICAgICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7
ICgoc3BpbmxvY2tfdCAqKSAmcC0+YWxsb2NfbG9jayktPmxvY2sgPSAwOyB9IHdoaWxlICgwKTsK
fQoKCnN0YXRpYyBpbmxpbmUgY2hhciAqIGRfcGF0aChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHN0
cnVjdCB2ZnNtb3VudCAqdmZzbW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
YXIgKmJ1ZiwgaW50IGJ1ZmxlbikKewogICAgICAgIGNoYXIgKnJlczsKICAgICAgICBzdHJ1Y3Qg
dmZzbW91bnQgKnJvb3RtbnQ7CiAgICAgICAgc3RydWN0IGRlbnRyeSAqcm9vdDsKICAgICAgICBk
byB7IGludCB0bXAgPSAwOyBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIjE6XHQiIiIiZmV0Y2hhZGQ0
LmFjcSAlMCA9IFslMV0sIDFcbiIgIjs7XG4iICJ0Yml0Lm56IHA2LHAwID0gJTAsIDMxXG4iICIo
cDYpIGJyLmNvbmQuc3B0ay5mZXcgMmZcbiIgIi5zZWN0aW9uIC50ZXh0LmxvY2ssXCJheFwiXG4i
ICIyOlx0IiIiImZldGNoYWRkNC5yZWwgJTAgPSBbJTFdLCAtMVxuIiAiOztcbiIgIjM6XHRsZDQu
YWNxICUwID0gWyUxXVxuIiAiOztcbiIgInRiaXQubnogcDYscDAgPSAlMCwgMzFcbiIgIihwNikg
YnIuY29uZC5zcHRrLmZldyAzYlxuIiAiYnIuY29uZC5zcHRrLmZldyAxYlxuIiAiOztcbiIgIi5w
cmV2aW91c1xuIiA6ICI9JnIiICh0bXApIDogInIiICgmY3VycmVudC0+ZnMtPmxvY2spOiAibWVt
b3J5Iik7IH0gd2hpbGUoMCk7CiAgICAgICAgcm9vdG1udCA9IG1udGdldChjdXJyZW50LT5mcy0+
cm9vdG1udCk7CiAgICAgICAgcm9vdCA9IGRnZXQoY3VycmVudC0+ZnMtPnJvb3QpOwogICAgICAg
IGRvIHsgaW50IHRtcCA9IDA7IF9fYXNtX18gX192b2xhdGlsZV9fICgiIiJmZXRjaGFkZDQucmVs
ICUwID0gWyUxXSwgLTFcbiIgOiAiPXIiICh0bXApIDogInIiICgmY3VycmVudC0+ZnMtPmxvY2sp
IDogIm1lbW9yeSIpOyB9IHdoaWxlKDApOwogICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgg
Im1vdiBhci5jY3YgPSByMFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIxOlxuIiAibGQ0IHIy
ID0gWyUwXVxuIiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAiKHA3KSBici5jb25k
LnNwbnQuZmV3IDFiIFxuIiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCByMjksIGFyLmNjdlxu
IiAiOztcbiIgImNtcDQuZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZl
dyAxYlxuIiAiOztcbiIgOjogInIiKCYoJmRjYWNoZV9sb2NrX1JzbXBfZjdjMzJjYTEpLT5sb2Nr
KSA6ICJyMiIsICJyMjkiLCAibWVtb3J5Iik7CiAgICAgICAgcmVzID0gX19kX3BhdGhfUnNtcF9h
ZjFkN2JmZihkZW50cnksIHZmc21udCwgcm9vdCwgcm9vdG1udCwgYnVmLCBidWZsZW4pOwogICAg
ICAgIGRvIHsgX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKTsgKChzcGlubG9j
a190ICopICZkY2FjaGVfbG9ja19Sc21wX2Y3YzMyY2ExKS0+bG9jayA9IDA7IH0gd2hpbGUgKDAp
OwogICAgICAgIGRwdXRfUnNtcF81NzRlNmJhMyhyb290KTsKICAgICAgICBtbnRwdXQocm9vdG1u
dCk7CiAgICAgICAgcmV0dXJuIHJlczsKfQojIDYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvYmxrZGV2LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2dlbmhkLmgiIDEKCiNkZWZpbmUgX0xJTlVYX0dFTkhEX0gKIyAxMiAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9nZW5oZC5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9nZW5oZC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC90eXBlcy5oIiAxCiMgMTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
Z2VuaGQuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbWFqb3Iu
aCIgMQojIDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2dlbmhkLmgiIDIK
CgoKCgoKCiNkZWZpbmUgRE9TX0VYVEVOREVEX1BBUlRJVElPTiA1CiNkZWZpbmUgTElOVVhfRVhU
RU5ERURfUEFSVElUSU9OIDB4ODUKI2RlZmluZSBXSU45OF9FWFRFTkRFRF9QQVJUSVRJT04gMHgw
ZgoKI2RlZmluZSBMSU5VWF9TV0FQX1BBUlRJVElPTiAweDgyCiNkZWZpbmUgTElOVVhfUkFJRF9Q
QVJUSVRJT04gMHhmZAoKCgoKCiNkZWZpbmUgRE02X1BBUlRJVElPTiAweDU0CiNkZWZpbmUgRVpE
X1BBUlRJVElPTiAweDU1CiNkZWZpbmUgRE02X0FVWDFQQVJUSVRJT04gMHg1MQojZGVmaW5lIERN
Nl9BVVgzUEFSVElUSU9OIDB4NTMKCnN0cnVjdCBwYXJ0aXRpb24gewogICAgICAgIHVuc2lnbmVk
IGNoYXIgYm9vdF9pbmQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBoZWFkOwogICAgICAgIHVuc2ln
bmVkIGNoYXIgc2VjdG9yOwogICAgICAgIHVuc2lnbmVkIGNoYXIgY3lsOwogICAgICAgIHVuc2ln
bmVkIGNoYXIgc3lzX2luZDsKICAgICAgICB1bnNpZ25lZCBjaGFyIGVuZF9oZWFkOwogICAgICAg
IHVuc2lnbmVkIGNoYXIgZW5kX3NlY3RvcjsKICAgICAgICB1bnNpZ25lZCBjaGFyIGVuZF9jeWw7
CiAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0X3NlY3Q7CiAgICAgICAgdW5zaWduZWQgaW50IG5y
X3NlY3RzOwp9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOwoKCiMgMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9kZXZmc19mc19rZXJuZWwuaCIgMQoKI2RlZmluZSBfTElOVVhf
REVWRlNfRlNfS0VSTkVMX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9mcy5oIiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9kZXZmc19m
c19rZXJuZWwuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29u
ZmlnLmgiIDEKIyA2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2RldmZzX2Zz
X2tlcm5lbC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9sb2Nr
cy5oIiAxCgojZGVmaW5lIF9MSU5VWF9MT0NLU19ICgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L21tLmgiIDEKCiNkZWZpbmUgX0xJTlVYX01NX0gKCiMgMSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAxCiMgNSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tbS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9lcnJuby5oIiAxCiMgNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tbS5oIiAyCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9jb25maWcuaCIgMQojIDEwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21t
LmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0cmluZy5oIiAx
CiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTIgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDEKCiNkZWZpbmUgX0xJTlVYX01NWk9ORV9ICgoK
CgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA4
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21tem9uZS5oIiAyCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5oIiAxCiMgOSAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tbXpvbmUuaCIgMgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbGlzdC5oIiAxCiMgMTAgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvbW16b25lLmgiIDIKCgoKCgojZGVmaW5lIE1BWF9PUkRFUiAxMAoK
dHlwZWRlZiBzdHJ1Y3QgZnJlZV9hcmVhX3N0cnVjdCB7CiAgICAgICAgc3RydWN0IGxpc3RfaGVh
ZCBmcmVlX2xpc3Q7CiAgICAgICAgdW5zaWduZWQgbG9uZyAqbWFwOwp9IGZyZWVfYXJlYV90OwoK
c3RydWN0IHBnbGlzdF9kYXRhOwojIDMyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L21tem9uZS5oIgp0eXBlZGVmIHN0cnVjdCB6b25lX3N0cnVjdCB7CgoKCiAgICAgICAgc3Bp
bmxvY2tfdCBsb2NrOwogICAgICAgIHVuc2lnbmVkIGxvbmcgZnJlZV9wYWdlc19Sc21wX2I1MTM2
NTA2OwogICAgICAgIHVuc2lnbmVkIGxvbmcgaW5hY3RpdmVfY2xlYW5fcGFnZXM7CiAgICAgICAg
dW5zaWduZWQgbG9uZyBpbmFjdGl2ZV9kaXJ0eV9wYWdlczsKICAgICAgICB1bnNpZ25lZCBsb25n
IHBhZ2VzX21pbiwgcGFnZXNfbG93LCBwYWdlc19oaWdoOwoKCgoKICAgICAgICBzdHJ1Y3QgbGlz
dF9oZWFkIGluYWN0aXZlX2NsZWFuX2xpc3Q7CiAgICAgICAgZnJlZV9hcmVhX3QgZnJlZV9hcmVh
WzEwXTsKCgoKCiAgICAgICAgc3RydWN0IHBnbGlzdF9kYXRhICp6b25lX3BnZGF0OwogICAgICAg
IHN0cnVjdCBwYWdlICp6b25lX21lbV9tYXA7CiAgICAgICAgdW5zaWduZWQgbG9uZyB6b25lX3N0
YXJ0X3BhZGRyOwogICAgICAgIHVuc2lnbmVkIGxvbmcgem9uZV9zdGFydF9tYXBucjsKCgoKCiAg
ICAgICAgY2hhciAqbmFtZTsKICAgICAgICB1bnNpZ25lZCBsb25nIHNpemU7Cn0gem9uZV90OwoK
I2RlZmluZSBaT05FX0RNQSAwCiNkZWZpbmUgWk9ORV9OT1JNQUwgMQojZGVmaW5lIFpPTkVfSElH
SE1FTSAyCiNkZWZpbmUgTUFYX05SX1pPTkVTIDMKIyA3OSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tbXpvbmUuaCIKdHlwZWRlZiBzdHJ1Y3Qgem9uZWxpc3Rfc3RydWN0IHsK
ICAgICAgICB6b25lX3QgKiB6b25lcyBbMyArMV07Cn0gem9uZWxpc3RfdDsKCiNkZWZpbmUgR0ZQ
X1pPTkVNQVNLIDB4MGYKIyA5NiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
bXpvbmUuaCIKc3RydWN0IGJvb3RtZW1fZGF0YTsKdHlwZWRlZiBzdHJ1Y3QgcGdsaXN0X2RhdGEg
ewogICAgICAgIHpvbmVfdCBub2RlX3pvbmVzWzNdOwogICAgICAgIHpvbmVsaXN0X3Qgbm9kZV96
b25lbGlzdHNbMHgwZiArMV07CiAgICAgICAgc3RydWN0IHBhZ2UgKm5vZGVfbWVtX21hcDsKICAg
ICAgICB1bnNpZ25lZCBsb25nICp2YWxpZF9hZGRyX2JpdG1hcDsKICAgICAgICBzdHJ1Y3QgYm9v
dG1lbV9kYXRhICpiZGF0YTsKICAgICAgICB1bnNpZ25lZCBsb25nIG5vZGVfc3RhcnRfcGFkZHI7
CiAgICAgICAgdW5zaWduZWQgbG9uZyBub2RlX3N0YXJ0X21hcG5yOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgbm9kZV9zaXplOwogICAgICAgIGludCBub2RlX2lkOwogICAgICAgIHN0cnVjdCBwZ2xp
c3RfZGF0YSAqbm9kZV9uZXh0Owp9IHBnX2RhdGFfdDsKCmV4dGVybiBpbnQgbnVtbm9kZXM7CmV4
dGVybiBwZ19kYXRhX3QgKnBnZGF0X2xpc3Q7CgojZGVmaW5lIG1lbWNsYXNzKHBnem9uZSwgdHpv
bmUpICgoKHBnem9uZSktPnpvbmVfcGdkYXQgPT0gKHR6b25lKS0+em9uZV9wZ2RhdCkgJiYgKChw
Z3pvbmUpIDw9ICh0em9uZSkpKQoKCgoKCgpzdHJ1Y3QgcGFnZTsKZXh0ZXJuIHZvaWQgc2hvd19m
cmVlX2FyZWFzX2NvcmUocGdfZGF0YV90ICpwZ2RhdCk7CmV4dGVybiB2b2lkIGZyZWVfYXJlYV9p
bml0X2NvcmUoaW50IG5pZCwgcGdfZGF0YV90ICpwZ2RhdCwgc3RydWN0IHBhZ2UgKipnbWFwLAog
IHVuc2lnbmVkIGxvbmcgKnpvbmVzX3NpemUsIHVuc2lnbmVkIGxvbmcgcGFkZHIsIHVuc2lnbmVk
IGxvbmcgKnpob2xlc19zaXplLAogIHN0cnVjdCBwYWdlICpwbWFwKTsKCmV4dGVybiBwZ19kYXRh
X3QgY29udGlnX3BhZ2VfZGF0YTsKCgoKI2RlZmluZSBOT0RFX0RBVEEobmlkKSAoJmNvbnRpZ19w
YWdlX2RhdGEpCiNkZWZpbmUgTk9ERV9NRU1fTUFQKG5pZCkgbWVtX21hcAoKCgoKCgoKI2RlZmlu
ZSBNQVBfQUxJR04oeCkgKCgoKHgpICUgc2l6ZW9mKG1lbV9tYXBfdCkpID09IDApID8gKHgpIDog
KCh4KSArIHNpemVvZihtZW1fbWFwX3QpIC0gKCh4KSAlIHNpemVvZihtZW1fbWFwX3QpKSkpCiMg
MTMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc3dhcC5oIiAxCgojZGVmaW5lIF9MSU5VWF9T
V0FQX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zcGlubG9jay5o
IiAxCiMgNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zd2FwLmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wYWdlLmgiIDEKIyA2ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N3YXAuaCIgMgoKI2RlZmluZSBTV0FQX0ZMQUdf
UFJFRkVSIDB4ODAwMAojZGVmaW5lIFNXQVBfRkxBR19QUklPX01BU0sgMHg3ZmZmCiNkZWZpbmUg
U1dBUF9GTEFHX1BSSU9fU0hJRlQgMAoKI2RlZmluZSBNQVhfU1dBUEZJTEVTIDgKIyAyNSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zd2FwLmgiCnVuaW9uIHN3YXBfaGVhZGVy
IHsKICAgICAgICBzdHJ1Y3QKICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGFyIHJlc2VydmVk
WygxVUwgPDwgMTQpIC0gMTBdOwogICAgICAgICAgICAgICAgY2hhciBtYWdpY1sxMF07CiAgICAg
ICAgfSBtYWdpYzsKICAgICAgICBzdHJ1Y3QKICAgICAgICB7CiAgICAgICAgICAgICAgICBjaGFy
IGJvb3RiaXRzWzEwMjRdOwogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZlcnNpb247CiAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGFzdF9wYWdlOwogICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IG5yX2JhZHBhZ2VzOwogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZGRp
bmdbMTI1XTsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBiYWRwYWdlc1sxXTsKICAgICAg
ICB9IGluZm87Cn07CgoKCgoKCiNkZWZpbmUgX19zd2Fwb2Zmc2V0KHgpICgodW5zaWduZWQgbG9u
ZykmKCh1bmlvbiBzd2FwX2hlYWRlciAqKTApLT54KQojZGVmaW5lIE1BWF9TV0FQX0JBRFBBR0VT
ICgoX19zd2Fwb2Zmc2V0KG1hZ2ljLm1hZ2ljKSAtIF9fc3dhcG9mZnNldChpbmZvLmJhZHBhZ2Vz
KSkgLyBzaXplb2YoaW50KSkKCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L2F0b21pYy5oIiAxCiMgNTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc3dh
cC5oIiAyCgojZGVmaW5lIFNXUF9VU0VEIDEKI2RlZmluZSBTV1BfV1JJVEVPSyAzCgojZGVmaW5l
IFNXQVBfQ0xVU1RFUl9NQVggMzIKCiNkZWZpbmUgU1dBUF9NQVBfTUFYIDB4N2ZmZgojZGVmaW5l
IFNXQVBfTUFQX0JBRCAweDgwMDAKCgoKCnN0cnVjdCBzd2FwX2luZm9fc3RydWN0IHsKICAgICAg
ICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAgICAga2Rldl90IHN3YXBfZGV2aWNlOwogICAgICAg
IHNwaW5sb2NrX3Qgc2Rldl9sb2NrOwogICAgICAgIHN0cnVjdCBkZW50cnkgKiBzd2FwX2ZpbGU7
CiAgICAgICAgc3RydWN0IHZmc21vdW50ICpzd2FwX3Zmc21udDsKICAgICAgICB1bnNpZ25lZCBz
aG9ydCAqIHN3YXBfbWFwOwogICAgICAgIHVuc2lnbmVkIGludCBsb3dlc3RfYml0OwogICAgICAg
IHVuc2lnbmVkIGludCBoaWdoZXN0X2JpdDsKICAgICAgICB1bnNpZ25lZCBpbnQgY2x1c3Rlcl9u
ZXh0OwogICAgICAgIHVuc2lnbmVkIGludCBjbHVzdGVyX25yOwogICAgICAgIGludCBwcmlvOwog
ICAgICAgIGludCBwYWdlczsKICAgICAgICB1bnNpZ25lZCBsb25nIG1heDsKICAgICAgICBpbnQg
bmV4dDsKfTsKCmV4dGVybiBpbnQgbnJfc3dhcF9wYWdlczsKZXh0ZXJuIHVuc2lnbmVkIGludCBu
cl9mcmVlX3BhZ2VzKHZvaWQpOwpleHRlcm4gdW5zaWduZWQgaW50IG5yX2luYWN0aXZlX2NsZWFu
X3BhZ2VzKHZvaWQpOwpleHRlcm4gdW5zaWduZWQgaW50IG5yX2ZyZWVfYnVmZmVyX3BhZ2VzKHZv
aWQpOwpleHRlcm4gaW50IG5yX2FjdGl2ZV9wYWdlczsKZXh0ZXJuIGludCBucl9pbmFjdGl2ZV9k
aXJ0eV9wYWdlczsKZXh0ZXJuIGF0b21pY190IG5yX2FzeW5jX3BhZ2VzX1JzbXBfYWIzN2FjNTg7
CmV4dGVybiBzdHJ1Y3QgYWRkcmVzc19zcGFjZSBzd2FwcGVyX3NwYWNlOwpleHRlcm4gYXRvbWlj
X3QgcGFnZV9jYWNoZV9zaXplOwpleHRlcm4gYXRvbWljX3QgYnVmZmVybWVtX3BhZ2VzOwpleHRl
cm4gc3BpbmxvY2tfdCBwYWdlY2FjaGVfbG9jazsKZXh0ZXJuIHZvaWQgX19yZW1vdmVfaW5vZGVf
cGFnZShzdHJ1Y3QgcGFnZSAqKTsKCgpzdHJ1Y3QgdGFza19zdHJ1Y3Q7CnN0cnVjdCB2bV9hcmVh
X3N0cnVjdDsKc3RydWN0IHN5c2luZm87CgpzdHJ1Y3Qgem9uZV90OwoKCmV4dGVybiBpbnQgbWVt
b3J5X3ByZXNzdXJlOwpleHRlcm4gdm9pZCBhZ2VfcGFnZV91cChzdHJ1Y3QgcGFnZSAqKTsKZXh0
ZXJuIHZvaWQgYWdlX3BhZ2VfdXBfbm9sb2NrKHN0cnVjdCBwYWdlICopOwpleHRlcm4gdm9pZCBh
Z2VfcGFnZV9kb3duKHN0cnVjdCBwYWdlICopOwpleHRlcm4gdm9pZCBhZ2VfcGFnZV9kb3duX25v
bG9jayhzdHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIHZvaWQgYWdlX3BhZ2VfZG93bl9hZ2Vvbmx5KHN0
cnVjdCBwYWdlICopOwpleHRlcm4gdm9pZCBkZWFjdGl2YXRlX3BhZ2VfUnNtcF9mMjY0ODI0OChz
dHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIHZvaWQgZGVhY3RpdmF0ZV9wYWdlX25vbG9jayhzdHJ1Y3Qg
cGFnZSAqKTsKZXh0ZXJuIHZvaWQgYWN0aXZhdGVfcGFnZShzdHJ1Y3QgcGFnZSAqKTsKZXh0ZXJu
IHZvaWQgYWN0aXZhdGVfcGFnZV9ub2xvY2soc3RydWN0IHBhZ2UgKik7CmV4dGVybiB2b2lkIGxy
dV9jYWNoZV9hZGQoc3RydWN0IHBhZ2UgKik7CmV4dGVybiB2b2lkIF9fbHJ1X2NhY2hlX2RlbChz
dHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIHZvaWQgbHJ1X2NhY2hlX2RlbChzdHJ1Y3QgcGFnZSAqKTsK
ZXh0ZXJuIHZvaWQgcmVjYWxjdWxhdGVfdm1fc3RhdHModm9pZCk7CmV4dGVybiB2b2lkIHN3YXBf
c2V0dXAodm9pZCk7CgoKZXh0ZXJuIHN0cnVjdCBwYWdlICogcmVjbGFpbV9wYWdlKHpvbmVfdCAq
KTsKZXh0ZXJuIHdhaXRfcXVldWVfaGVhZF90IGtzd2FwZF93YWl0OwpleHRlcm4gd2FpdF9xdWV1
ZV9oZWFkX3Qga3JlY2xhaW1kX3dhaXQ7CmV4dGVybiBpbnQgcGFnZV9sYXVuZGVyKGludCwgaW50
KTsKZXh0ZXJuIGludCBmcmVlX3Nob3J0YWdlKHZvaWQpOwpleHRlcm4gaW50IGluYWN0aXZlX3No
b3J0YWdlKHZvaWQpOwpleHRlcm4gdm9pZCB3YWtldXBfa3N3YXBkKHZvaWQpOwpleHRlcm4gaW50
IHRyeV90b19mcmVlX3BhZ2VzKHVuc2lnbmVkIGludCBnZnBfbWFzayk7CgoKZXh0ZXJuIHZvaWQg
cndfc3dhcF9wYWdlKGludCwgc3RydWN0IHBhZ2UgKik7CmV4dGVybiB2b2lkIHJ3X3N3YXBfcGFn
ZV9ub2xvY2soaW50LCBzd3BfZW50cnlfdCwgY2hhciAqKTsKCgoKCmV4dGVybiB2b2lkIHNob3df
c3dhcF9jYWNoZV9pbmZvKHZvaWQpOwpleHRlcm4gdm9pZCBhZGRfdG9fc3dhcF9jYWNoZShzdHJ1
Y3QgcGFnZSAqLCBzd3BfZW50cnlfdCk7CmV4dGVybiBpbnQgc3dhcF9jaGVja19lbnRyeSh1bnNp
Z25lZCBsb25nKTsKZXh0ZXJuIHN0cnVjdCBwYWdlICogbG9va3VwX3N3YXBfY2FjaGUoc3dwX2Vu
dHJ5X3QpOwpleHRlcm4gc3RydWN0IHBhZ2UgKiByZWFkX3N3YXBfY2FjaGVfYXN5bmMoc3dwX2Vu
dHJ5X3QpOwoKCmV4dGVybiBpbnQgb3V0X29mX21lbW9yeSh2b2lkKTsKZXh0ZXJuIHZvaWQgb29t
X2tpbGwodm9pZCk7CgoKCgpleHRlcm4gdm9pZCBfX2RlbGV0ZV9mcm9tX3N3YXBfY2FjaGUoc3Ry
dWN0IHBhZ2UgKnBhZ2UpOwpleHRlcm4gdm9pZCBkZWxldGVfZnJvbV9zd2FwX2NhY2hlKHN0cnVj
dCBwYWdlICpwYWdlKTsKZXh0ZXJuIHZvaWQgZGVsZXRlX2Zyb21fc3dhcF9jYWNoZV9ub2xvY2so
c3RydWN0IHBhZ2UgKnBhZ2UpOwpleHRlcm4gdm9pZCBmcmVlX3BhZ2VfYW5kX3N3YXBfY2FjaGUo
c3RydWN0IHBhZ2UgKnBhZ2UpOwoKCmV4dGVybiB1bnNpZ25lZCBpbnQgbnJfc3dhcGZpbGVzOwpl
eHRlcm4gc3RydWN0IHN3YXBfaW5mb19zdHJ1Y3Qgc3dhcF9pbmZvW107CmV4dGVybiBpbnQgaXNf
c3dhcF9wYXJ0aXRpb24oa2Rldl90KTsKZXh0ZXJuIHZvaWQgc2lfc3dhcGluZm8oc3RydWN0IHN5
c2luZm8gKik7CmV4dGVybiBzd3BfZW50cnlfdCBfX2dldF9zd2FwX3BhZ2UodW5zaWduZWQgc2hv
cnQpOwpleHRlcm4gdm9pZCBnZXRfc3dhcGhhbmRsZV9pbmZvKHN3cF9lbnRyeV90LCB1bnNpZ25l
ZCBsb25nICosIGtkZXZfdCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RydWN0IGlub2RlICoqKTsKZXh0ZXJuIGludCBzd2FwX2R1cGxpY2F0ZShzd3BfZW50cnlf
dCk7CmV4dGVybiBpbnQgc3dhcF9jb3VudChzdHJ1Y3QgcGFnZSAqKTsKZXh0ZXJuIGludCB2YWxp
ZF9zd2FwaGFuZGxlcyhzd3BfZW50cnlfdCwgdW5zaWduZWQgbG9uZyAqKTsKI2RlZmluZSBnZXRf
c3dhcF9wYWdlKCkgX19nZXRfc3dhcF9wYWdlKDEpCmV4dGVybiB2b2lkIF9fc3dhcF9mcmVlKHN3
cF9lbnRyeV90LCB1bnNpZ25lZCBzaG9ydCk7CiNkZWZpbmUgc3dhcF9mcmVlKGVudHJ5KSBfX3N3
YXBfZnJlZSgoZW50cnkpLCAxKQpzdHJ1Y3Qgc3dhcF9saXN0X3QgewogICAgICAgIGludCBoZWFk
OwogICAgICAgIGludCBuZXh0Owp9OwpleHRlcm4gc3RydWN0IHN3YXBfbGlzdF90IHN3YXBfbGlz
dDsKIF9fYXR0cmlidXRlX18oKHN5c2NhbGxfbGlua2FnZSkpIGxvbmcgc3lzX3N3YXBvZmYoY29u
c3QgY2hhciAqKTsKIF9fYXR0cmlidXRlX18oKHN5c2NhbGxfbGlua2FnZSkpIGxvbmcgc3lzX3N3
YXBvbihjb25zdCBjaGFyICosIGludCk7CgojZGVmaW5lIFNXQVBfQ0FDSEVfSU5GTwoKCmV4dGVy
biB1bnNpZ25lZCBsb25nIHN3YXBfY2FjaGVfYWRkX3RvdGFsOwpleHRlcm4gdW5zaWduZWQgbG9u
ZyBzd2FwX2NhY2hlX2RlbF90b3RhbDsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgc3dhcF9jYWNoZV9m
aW5kX3RvdGFsOwpleHRlcm4gdW5zaWduZWQgbG9uZyBzd2FwX2NhY2hlX2ZpbmRfc3VjY2VzczsK
CgpleHRlcm4gc3BpbmxvY2tfdCBwYWdlbWFwX2xydV9sb2NrOwoKCgoKCgojZGVmaW5lIFBBR0Vf
QUdFX1NUQVJUIDIKI2RlZmluZSBQQUdFX0FHRV9BRFYgMwojZGVmaW5lIFBBR0VfQUdFX01BWCA2
NAoKCgoKCiNkZWZpbmUgREVCVUdfQUREX1BBR0UgaWYgKFBhZ2VBY3RpdmUocGFnZSkgfHwgUGFn
ZUluYWN0aXZlRGlydHkocGFnZSkgfHwgUGFnZUluYWN0aXZlQ2xlYW4ocGFnZSkpIEJVRygpOwoK
CgojZGVmaW5lIFpFUk9fUEFHRV9CVUcgaWYgKHBhZ2VfY291bnQocGFnZSkgPT0gMCkgQlVHKCk7
CgoKI2RlZmluZSBhZGRfcGFnZV90b19hY3RpdmVfbGlzdChwYWdlKSB7IERFQlVHX0FERF9QQUdF
IFpFUk9fUEFHRV9CVUcgU2V0UGFnZUFjdGl2ZShwYWdlKTsgbGlzdF9hZGQoJihwYWdlKS0+bHJ1
LCAmYWN0aXZlX2xpc3QpOyBucl9hY3RpdmVfcGFnZXMrKzsgfQoKCgoKCgoKI2RlZmluZSBhZGRf
cGFnZV90b19pbmFjdGl2ZV9kaXJ0eV9saXN0KHBhZ2UpIHsgREVCVUdfQUREX1BBR0UgWkVST19Q
QUdFX0JVRyBTZXRQYWdlSW5hY3RpdmVEaXJ0eShwYWdlKTsgbGlzdF9hZGQoJihwYWdlKS0+bHJ1
LCAmaW5hY3RpdmVfZGlydHlfbGlzdCk7IG5yX2luYWN0aXZlX2RpcnR5X3BhZ2VzKys7IHBhZ2Ut
PnpvbmUtPmluYWN0aXZlX2RpcnR5X3BhZ2VzKys7IH0KIyAyMjMgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvc3dhcC5oIgojZGVmaW5lIGFkZF9wYWdlX3RvX2luYWN0aXZlX2Ns
ZWFuX2xpc3QocGFnZSkgeyBERUJVR19BRERfUEFHRSBaRVJPX1BBR0VfQlVHIFNldFBhZ2VJbmFj
dGl2ZUNsZWFuKHBhZ2UpOyBsaXN0X2FkZCgmKHBhZ2UpLT5scnUsICZwYWdlLT56b25lLT5pbmFj
dGl2ZV9jbGVhbl9saXN0KTsgcGFnZS0+em9uZS0+aW5hY3RpdmVfY2xlYW5fcGFnZXMrKzsgfQoK
CgoKCgoKI2RlZmluZSBkZWxfcGFnZV9mcm9tX2FjdGl2ZV9saXN0KHBhZ2UpIHsgbGlzdF9kZWwo
JihwYWdlKS0+bHJ1KTsgQ2xlYXJQYWdlQWN0aXZlKHBhZ2UpOyBucl9hY3RpdmVfcGFnZXMtLTsg
REVCVUdfQUREX1BBR0UgWkVST19QQUdFX0JVRyB9CgoKCgoKCgojZGVmaW5lIGRlbF9wYWdlX2Zy
b21faW5hY3RpdmVfZGlydHlfbGlzdChwYWdlKSB7IGxpc3RfZGVsKCYocGFnZSktPmxydSk7IENs
ZWFyUGFnZUluYWN0aXZlRGlydHkocGFnZSk7IG5yX2luYWN0aXZlX2RpcnR5X3BhZ2VzLS07IHBh
Z2UtPnpvbmUtPmluYWN0aXZlX2RpcnR5X3BhZ2VzLS07IERFQlVHX0FERF9QQUdFIFpFUk9fUEFH
RV9CVUcgfQojIDI0OCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zd2FwLmgi
CiNkZWZpbmUgZGVsX3BhZ2VfZnJvbV9pbmFjdGl2ZV9jbGVhbl9saXN0KHBhZ2UpIHsgbGlzdF9k
ZWwoJihwYWdlKS0+bHJ1KTsgQ2xlYXJQYWdlSW5hY3RpdmVDbGVhbihwYWdlKTsgcGFnZS0+em9u
ZS0+aW5hY3RpdmVfY2xlYW5fcGFnZXMtLTsgREVCVUdfQUREX1BBR0UgWkVST19QQUdFX0JVRyB9
CiMgMjYyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N3YXAuaCIKI2RlZmlu
ZSBJTkFDVElWRV9TSElGVCA2CiNkZWZpbmUgaW5hY3RpdmVfbWluKGEsIGIpICgoYSkgPCAoYikg
PyAoYSkgOiAoYikpCiNkZWZpbmUgaW5hY3RpdmVfdGFyZ2V0IGluYWN0aXZlX21pbigobWVtb3J5
X3ByZXNzdXJlID4+IElOQUNUSVZFX1NISUZUKSwgKG51bV9waHlzcGFnZXMgLyA0KSkKIyAyODEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc3dhcC5oIgojZGVmaW5lIHBhZ2Vf
cmFtZGlzayhwYWdlKSAocGFnZS0+YnVmZmVycyAmJiAoTUFKT1IocGFnZS0+YnVmZmVycy0+Yl9k
ZXYpID09IFJBTURJU0tfTUFKT1IpKQoKCmV4dGVybiBzcGlubG9ja190IHN3YXBsb2NrOwoKI2Rl
ZmluZSBzd2FwX2xpc3RfbG9jaygpIHNwaW5fbG9jaygmc3dhcGxvY2spCiNkZWZpbmUgc3dhcF9s
aXN0X3VubG9jaygpIHNwaW5fdW5sb2NrKCZzd2FwbG9jaykKI2RlZmluZSBzd2FwX2RldmljZV9s
b2NrKHApIHNwaW5fbG9jaygmcC0+c2Rldl9sb2NrKQojZGVmaW5lIHN3YXBfZGV2aWNlX3VubG9j
ayhwKSBzcGluX3VubG9jaygmcC0+c2Rldl9sb2NrKQoKZXh0ZXJuIHZvaWQgc2htZW1fdW51c2Uo
c3dwX2VudHJ5X3QgZW50cnksIHN0cnVjdCBwYWdlICpwYWdlKTsKIyAxNCAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9saW51eC9tbS5oIiAyCgpleHRlcm4gdW5zaWduZWQgbG9uZyBtYXhf
bWFwbnJfUnNtcF8wMTEzOWZmYzsKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbnVtX3BoeXNwYWdlc19S
c21wXzA5NDhjZGU5OwpleHRlcm4gdm9pZCAqIGhpZ2hfbWVtb3J5X1JzbXBfOGE3ZDFjMzE7CmV4
dGVybiBpbnQgcGFnZV9jbHVzdGVyOwoKZXh0ZXJuIHN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlX2xp
c3Q7CmV4dGVybiBzdHJ1Y3QgbGlzdF9oZWFkIGluYWN0aXZlX2RpcnR5X2xpc3Q7CgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIgMQojIDI0ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21tLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDEKCiNkZWZpbmUgX0FTTV9JQTY0X1BHVEFCTEVfSAoj
IDE1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiCiMgMSAiL3Vz
ci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jb25maWcuaCIgMQojIDE2ICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDIKCiMgMSAiL3Vzci9sb2NhbC9z
cmMvYnVpbGQvaW5jbHVkZS9hc20vbW1hbi5oIiAxCgojZGVmaW5lIF9BU01fSUE2NF9NTUFOX0gK
CgoKCgoKI2RlZmluZSBQUk9UX1JFQUQgMHgxCiNkZWZpbmUgUFJPVF9XUklURSAweDIKI2RlZmlu
ZSBQUk9UX0VYRUMgMHg0CiNkZWZpbmUgUFJPVF9OT05FIDB4MAoKI2RlZmluZSBNQVBfU0hBUkVE
IDB4MDEKI2RlZmluZSBNQVBfUFJJVkFURSAweDAyCiNkZWZpbmUgTUFQX1RZUEUgMHgwZgojZGVm
aW5lIE1BUF9GSVhFRCAweDEwCiNkZWZpbmUgTUFQX0FOT05ZTU9VUyAweDIwCgojZGVmaW5lIE1B
UF9HUk9XU0RPV04gMHgwMTAwCiNkZWZpbmUgTUFQX0dST1dTVVAgMHgwMjAwCiNkZWZpbmUgTUFQ
X0RFTllXUklURSAweDA4MDAKI2RlZmluZSBNQVBfRVhFQ1VUQUJMRSAweDEwMDAKI2RlZmluZSBN
QVBfTE9DS0VEIDB4MjAwMAojZGVmaW5lIE1BUF9OT1JFU0VSVkUgMHg0MDAwCiNkZWZpbmUgTUFQ
X1dSSVRFQ09NQklORUQgMHgxMDAwMAojZGVmaW5lIE1BUF9OT05DQUNIRUQgMHgyMDAwMAoKI2Rl
ZmluZSBNU19BU1lOQyAxCiNkZWZpbmUgTVNfSU5WQUxJREFURSAyCiNkZWZpbmUgTVNfU1lOQyA0
CgojZGVmaW5lIE1DTF9DVVJSRU5UIDEKI2RlZmluZSBNQ0xfRlVUVVJFIDIKCiNkZWZpbmUgTUFE
Vl9OT1JNQUwgMHgwCiNkZWZpbmUgTUFEVl9SQU5ET00gMHgxCiNkZWZpbmUgTUFEVl9TRVFVRU5U
SUFMIDB4MgojZGVmaW5lIE1BRFZfV0lMTE5FRUQgMHgzCiNkZWZpbmUgTUFEVl9ET05UTkVFRCAw
eDQKCgojZGVmaW5lIE1BUF9BTk9OIE1BUF9BTk9OWU1PVVMKI2RlZmluZSBNQVBfRklMRSAwCiMg
MTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIgMgojIDEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BhZ2UuaCIgMQojIDE5ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMQojIDIwICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2FzbS9zeXN0ZW0uaCIgMQojIDIxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2Fz
bS9wZ3RhYmxlLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS90eXBl
cy5oIiAxCiMgMjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIg
MgoKI2RlZmluZSBJQTY0X01BWF9QSFlTX0JJVFMgNTAKCgoKCgoKI2RlZmluZSBfUEFHRV9QX0JJ
VCAwCiNkZWZpbmUgX1BBR0VfQV9CSVQgNQojZGVmaW5lIF9QQUdFX0RfQklUIDYKCiNkZWZpbmUg
X1BBR0VfUCAoMSA8PCBfUEFHRV9QX0JJVCkKI2RlZmluZSBfUEFHRV9NQV9XQiAoMHgwIDw8IDIp
CiNkZWZpbmUgX1BBR0VfTUFfVUMgKDB4NCA8PCAyKQojZGVmaW5lIF9QQUdFX01BX1VDRSAoMHg1
IDw8IDIpCiNkZWZpbmUgX1BBR0VfTUFfV0MgKDB4NiA8PCAyKQojZGVmaW5lIF9QQUdFX01BX05B
VCAoMHg3IDw8IDIpCiNkZWZpbmUgX1BBR0VfTUFfTUFTSyAoMHg3IDw8IDIpCiNkZWZpbmUgX1BB
R0VfUExfMCAoMCA8PCA3KQojZGVmaW5lIF9QQUdFX1BMXzEgKDEgPDwgNykKI2RlZmluZSBfUEFH
RV9QTF8yICgyIDw8IDcpCiNkZWZpbmUgX1BBR0VfUExfMyAoMyA8PCA3KQojZGVmaW5lIF9QQUdF
X1BMX01BU0sgKDMgPDwgNykKI2RlZmluZSBfUEFHRV9BUl9SICgwIDw8IDkpCiNkZWZpbmUgX1BB
R0VfQVJfUlggKDEgPDwgOSkKI2RlZmluZSBfUEFHRV9BUl9SVyAoMiA8PCA5KQojZGVmaW5lIF9Q
QUdFX0FSX1JXWCAoMyA8PCA5KQojZGVmaW5lIF9QQUdFX0FSX1JfUlcgKDQgPDwgOSkKI2RlZmlu
ZSBfUEFHRV9BUl9SWF9SV1ggKDUgPDwgOSkKI2RlZmluZSBfUEFHRV9BUl9SV1hfUlcgKDYgPDwg
OSkKI2RlZmluZSBfUEFHRV9BUl9YX1JYICg3IDw8IDkpCiNkZWZpbmUgX1BBR0VfQVJfTUFTSyAo
NyA8PCA5KQojZGVmaW5lIF9QQUdFX0FSX1NISUZUIDkKI2RlZmluZSBfUEFHRV9BICgxIDw8IF9Q
QUdFX0FfQklUKQojZGVmaW5lIF9QQUdFX0QgKDEgPDwgX1BBR0VfRF9CSVQpCiNkZWZpbmUgX1BB
R0VfUFBOX01BU0sgKCgoX19JQTY0X1VMKDEpIDw8IElBNjRfTUFYX1BIWVNfQklUUykgLSAxKSAm
IH4weGZmZlVMKQojZGVmaW5lIF9QQUdFX0VEIChfX0lBNjRfVUwoMSkgPDwgNTIpCiNkZWZpbmUg
X1BBR0VfUFJPVE5PTkUgKF9fSUE2NF9VTCgxKSA8PCA2MykKCiNkZWZpbmUgX1BGTl9NQVNLIF9Q
QUdFX1BQTl9NQVNLCiNkZWZpbmUgX1BBR0VfQ0hHX01BU0sgKF9QRk5fTUFTSyB8IF9QQUdFX0Eg
fCBfUEFHRV9EKQoKI2RlZmluZSBfUEFHRV9TSVpFXzRLIDEyCiNkZWZpbmUgX1BBR0VfU0laRV84
SyAxMwojZGVmaW5lIF9QQUdFX1NJWkVfMTZLIDE0CiNkZWZpbmUgX1BBR0VfU0laRV82NEsgMTYK
I2RlZmluZSBfUEFHRV9TSVpFXzI1NksgMTgKI2RlZmluZSBfUEFHRV9TSVpFXzFNIDIwCiNkZWZp
bmUgX1BBR0VfU0laRV80TSAyMgojZGVmaW5lIF9QQUdFX1NJWkVfMTZNIDI0CiNkZWZpbmUgX1BB
R0VfU0laRV82NE0gMjYKI2RlZmluZSBfUEFHRV9TSVpFXzI1Nk0gMjgKCiNkZWZpbmUgX19BQ0NF
U1NfQklUUyBfUEFHRV9FRCB8IF9QQUdFX0EgfCBfUEFHRV9QIHwgX1BBR0VfTUFfV0IKI2RlZmlu
ZSBfX0RJUlRZX0JJVFNfTk9fRUQgX1BBR0VfQSB8IF9QQUdFX1AgfCBfUEFHRV9EIHwgX1BBR0Vf
TUFfV0IKI2RlZmluZSBfX0RJUlRZX0JJVFMgX1BBR0VfRUQgfCBfX0RJUlRZX0JJVFNfTk9fRUQK
CgoKCgoKI2RlZmluZSBQR0RJUl9TSElGVCAoUEFHRV9TSElGVCArIDIqKFBBR0VfU0hJRlQtMykp
CiNkZWZpbmUgUEdESVJfU0laRSAoX19JQTY0X1VMKDEpIDw8IFBHRElSX1NISUZUKQojZGVmaW5l
IFBHRElSX01BU0sgKH4oUEdESVJfU0laRS0xKSkKI2RlZmluZSBQVFJTX1BFUl9QR0QgKF9fSUE2
NF9VTCgxKSA8PCAoUEFHRV9TSElGVC0zKSkKI2RlZmluZSBVU0VSX1BUUlNfUEVSX1BHRCAoNSpQ
VFJTX1BFUl9QR0QvOCkKI2RlZmluZSBGSVJTVF9VU0VSX1BHRF9OUiAwCgoKCgoKCgojZGVmaW5l
IFBNRF9TSElGVCAoUEFHRV9TSElGVCArIChQQUdFX1NISUZULTMpKQojZGVmaW5lIFBNRF9TSVpF
IChfX0lBNjRfVUwoMSkgPDwgUE1EX1NISUZUKQojZGVmaW5lIFBNRF9NQVNLICh+KFBNRF9TSVpF
LTEpKQojZGVmaW5lIFBUUlNfUEVSX1BNRCAoX19JQTY0X1VMKDEpIDw8IChQQUdFX1NISUZULTMp
KQoKCgoKI2RlZmluZSBQVFJTX1BFUl9QVEUgKF9fSUE2NF9VTCgxKSA8PCAoUEFHRV9TSElGVC0z
KSkKIyAxMTggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIKI2Rl
ZmluZSBQQUdFX05PTkUgX19wZ3Byb3QoX1BBR0VfUFJPVE5PTkUgfCBfUEFHRV9BKQojZGVmaW5l
IFBBR0VfU0hBUkVEIF9fcGdwcm90KF9fQUNDRVNTX0JJVFMgfCBfUEFHRV9QTF8zIHwgX1BBR0Vf
QVJfUlcpCiNkZWZpbmUgUEFHRV9SRUFET05MWSBfX3BncHJvdChfX0FDQ0VTU19CSVRTIHwgX1BB
R0VfUExfMyB8IF9QQUdFX0FSX1IpCiNkZWZpbmUgUEFHRV9DT1BZIF9fcGdwcm90KF9fQUNDRVNT
X0JJVFMgfCBfUEFHRV9QTF8zIHwgX1BBR0VfQVJfUikKI2RlZmluZSBQQUdFX0dBVEUgX19wZ3By
b3QoX19BQ0NFU1NfQklUUyB8IF9QQUdFX1BMXzAgfCBfUEFHRV9BUl9YX1JYKQojZGVmaW5lIFBB
R0VfS0VSTkVMIF9fcGdwcm90KF9fRElSVFlfQklUUyB8IF9QQUdFX1BMXzAgfCBfUEFHRV9BUl9S
V1gpCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vYml0b3BzLmgiIDEK
IyAxMjggIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BndGFibGUuaCIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgiIDEKCiNkZWZp
bmUgX0FTTV9JQTY0X01NVV9DT05URVhUX0gKIyAyMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vbW11X2NvbnRleHQuaCIKI2RlZmluZSBJQTY0X1JFR0lPTl9JRF9LRVJORUwgMAoK
I2RlZmluZSBpYTY0X3JpZChjdHgsIGFkZHIpICgoKGN0eCkgPDwgMykgfCAoYWRkciA+PiA2MSkp
CgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9zY2hlZC5oIiAxCiMg
MjcgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL21tdV9jb250ZXh0LmgiIDIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3NwaW5sb2NrLmgiIDEKIyAyOCAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vbW11X2NvbnRleHQuaCIgMgoKIyAxICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCIgMQojIDMwICIvdXNy
L2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9tbXVfY29udGV4dC5oIiAyCgpzdHJ1Y3QgaWE2
NF9jdHggewogICAgICAgIHNwaW5sb2NrX3QgbG9jazsKICAgICAgICB1bnNpZ25lZCBpbnQgbmV4
dDsKICAgICAgICB1bnNpZ25lZCBpbnQgbGltaXQ7CiAgICAgICAgdW5zaWduZWQgaW50IG1heF9j
dHg7Cn07CgpleHRlcm4gc3RydWN0IGlhNjRfY3R4IGlhNjRfY3R4OwoKZXh0ZXJuIHZvaWQgd3Jh
cF9tbXVfY29udGV4dCAoc3RydWN0IG1tX3N0cnVjdCAqbW0pOwoKc3RhdGljIGlubGluZSB2b2lk
CmVudGVyX2xhenlfdGxiIChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IHRhc2tfc3RydWN0
ICp0c2ssIHVuc2lnbmVkIGNwdSkKewp9CgpzdGF0aWMgaW5saW5lIHZvaWQKZ2V0X25ld19tbXVf
Y29udGV4dCAoc3RydWN0IG1tX3N0cnVjdCAqbW0pCnsKICAgICAgICBfX2FzbV9fIF9fdm9sYXRp
bGVfXyAoICJtb3YgYXIuY2N2ID0gcjBcbiIgIm1vdiByMjkgPSAxXG4iICI7O1xuIiAiMTpcbiIg
ImxkNCByMiA9IFslMF1cbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAscjJcbiIgIihwNykg
YnIuY29uZC5zcG50LmZldyAxYiBcbiIgIiIiY21weGNoZzQuYWNxIHIyID0gWyUwXSwgcjI5LCBh
ci5jY3ZcbiIgIjs7XG4iICJjbXA0LmVxIHAwLHA3ID0gcjAsIHIyXG4iICIocDcpIGJyLmNvbmQu
c3BudC5mZXcgMWJcbiIgIjs7XG4iIDo6ICJyIigmKCZpYTY0X2N0eC5sb2NrKS0+bG9jaykgOiAi
cjIiLCAicjI5IiwgIm1lbW9yeSIpOwogICAgICAgIHsKICAgICAgICAgICAgICAgIGlmIChpYTY0
X2N0eC5uZXh0ID49IGlhNjRfY3R4LmxpbWl0KQogICAgICAgICAgICAgICAgICAgICAgICB3cmFw
X21tdV9jb250ZXh0KG1tKTsKICAgICAgICAgICAgICAgIG1tLT5jb250ZXh0ID0gaWE2NF9jdHgu
bmV4dCsrOwogICAgICAgIH0KICAgICAgICBkbyB7IF9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6
IDoibWVtb3J5Iik7ICgoc3BpbmxvY2tfdCAqKSAmaWE2NF9jdHgubG9jayktPmxvY2sgPSAwOyB9
IHdoaWxlICgwKTsKCn0KCnN0YXRpYyBpbmxpbmUgdm9pZApnZXRfbW11X2NvbnRleHQgKHN0cnVj
dCBtbV9zdHJ1Y3QgKm1tKQp7CgogICAgICAgIGlmIChtbS0+Y29udGV4dCA9PSAwKQogICAgICAg
ICAgICAgICAgZ2V0X25ld19tbXVfY29udGV4dChtbSk7Cn0KCnN0YXRpYyBpbmxpbmUgaW50Cmlu
aXRfbmV3X2NvbnRleHQgKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IG1tX3N0cnVjdCAq
bW0pCnsKICAgICAgICBtbS0+Y29udGV4dCA9IDA7CiAgICAgICAgcmV0dXJuIDA7Cn0KCnN0YXRp
YyBpbmxpbmUgdm9pZApkZXN0cm95X2NvbnRleHQgKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQp7Cgp9
CgpzdGF0aWMgaW5saW5lIHZvaWQKcmVsb2FkX2NvbnRleHQgKHN0cnVjdCBtbV9zdHJ1Y3QgKm1t
KQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyByaWQ7CiAgICAgICAgdW5zaWduZWQgbG9uZyByaWRf
aW5jciA9IDA7CiAgICAgICAgdW5zaWduZWQgbG9uZyBycjAsIHJyMSwgcnIyLCBycjMsIHJyNDsK
CiAgICAgICAgcmlkID0gbW0tPmNvbnRleHQgPDwgMzsKICAgICAgICByaWRfaW5jciA9IDEgPDwg
ODsKCgogICAgICAgIHJyMCA9IChyaWQgPDwgOCkgfCAoMTQgPDwgMikgfCAxOwogICAgICAgIHJy
MSA9IHJyMCArIDEqcmlkX2luY3I7CiAgICAgICAgcnIyID0gcnIwICsgMipyaWRfaW5jcjsKICAg
ICAgICBycjMgPSBycjAgKyAzKnJpZF9pbmNyOwogICAgICAgIHJyNCA9IHJyMCArIDQqcmlkX2lu
Y3I7CiAgICAgICAgaWE2NF9zZXRfcnIoMHgwMDAwMDAwMDAwMDAwMDAwLCBycjApOwogICAgICAg
IGlhNjRfc2V0X3JyKDB4MjAwMDAwMDAwMDAwMDAwMCwgcnIxKTsKICAgICAgICBpYTY0X3NldF9y
cigweDQwMDAwMDAwMDAwMDAwMDAsIHJyMik7CiAgICAgICAgaWE2NF9zZXRfcnIoMHg2MDAwMDAw
MDAwMDAwMDAwLCBycjMpOwogICAgICAgIGlhNjRfc2V0X3JyKDB4ODAwMDAwMDAwMDAwMDAwMCwg
cnI0KTsKICAgICAgICBpYTY0X2luc25fZ3JvdXBfYmFycmllcigpOwogICAgICAgIGlhNjRfc3Js
el9pKCk7CiAgICAgICAgaWE2NF9pbnNuX2dyb3VwX2JhcnJpZXIoKTsKfQoKCgoKc3RhdGljIGlu
bGluZSB2b2lkCmFjdGl2YXRlX21tIChzdHJ1Y3QgbW1fc3RydWN0ICpwcmV2LCBzdHJ1Y3QgbW1f
c3RydWN0ICpuZXh0KQp7CgoKCgogICAgICAgIGlhNjRfc2V0X2tyKDcsICh7aWE2NF92YSBfdjsg
X3YubCA9IChsb25nKSAobmV4dC0+cGdkKTsgX3YuZi5yZWcgPSAwOyBfdi5sO30pKTsKICAgICAg
ICBnZXRfbW11X2NvbnRleHQobmV4dCk7CiAgICAgICAgcmVsb2FkX2NvbnRleHQobmV4dCk7Cn0K
CiNkZWZpbmUgc3dpdGNoX21tKHByZXZfbW0sIG5leHRfbW0sIG5leHRfdGFzaywgY3B1KSBhY3Rp
dmF0ZV9tbShwcmV2X21tLCBuZXh0X21tKQojIDEyOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vcGd0YWJsZS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vcHJvY2Vzc29yLmgiIDEKIyAxMzAgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3BndGFibGUuaCIgMgojIDE0MCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcGd0
YWJsZS5oIgojZGVmaW5lIF9fUDAwMCBQQUdFX05PTkUKI2RlZmluZSBfX1AwMDEgUEFHRV9SRUFE
T05MWQojZGVmaW5lIF9fUDAxMCBQQUdFX1JFQURPTkxZCiNkZWZpbmUgX19QMDExIFBBR0VfUkVB
RE9OTFkKI2RlZmluZSBfX1AxMDAgX19wZ3Byb3QoX19BQ0NFU1NfQklUUyB8IF9QQUdFX1BMXzMg
fCBfUEFHRV9BUl9YX1JYKQojZGVmaW5lIF9fUDEwMSBfX3BncHJvdChfX0FDQ0VTU19CSVRTIHwg
X1BBR0VfUExfMyB8IF9QQUdFX0FSX1JYKQojZGVmaW5lIF9fUDExMCBQQUdFX0NPUFkKI2RlZmlu
ZSBfX1AxMTEgUEFHRV9DT1BZCgojZGVmaW5lIF9fUzAwMCBQQUdFX05PTkUKI2RlZmluZSBfX1Mw
MDEgUEFHRV9SRUFET05MWQojZGVmaW5lIF9fUzAxMCBQQUdFX1NIQVJFRAojZGVmaW5lIF9fUzAx
MSBQQUdFX1NIQVJFRAojZGVmaW5lIF9fUzEwMCBfX3BncHJvdChfX0FDQ0VTU19CSVRTIHwgX1BB
R0VfUExfMyB8IF9QQUdFX0FSX1hfUlgpCiNkZWZpbmUgX19TMTAxIF9fcGdwcm90KF9fQUNDRVNT
X0JJVFMgfCBfUEFHRV9QTF8zIHwgX1BBR0VfQVJfUlgpCiNkZWZpbmUgX19TMTEwIF9fcGdwcm90
KF9fQUNDRVNTX0JJVFMgfCBfUEFHRV9QTF8zIHwgX1BBR0VfQVJfUlcpCiNkZWZpbmUgX19TMTEx
IF9fcGdwcm90KF9fQUNDRVNTX0JJVFMgfCBfUEFHRV9QTF8zIHwgX1BBR0VfQVJfUlcpCgojZGVm
aW5lIHBnZF9FUlJPUihlKSBwcmludGsoIiVzOiVkOiBiYWQgcGdkICUwMTZseC5cbiIsIF9fRklM
RV9fLCBfX0xJTkVfXywgcGdkX3ZhbChlKSkKI2RlZmluZSBwbWRfRVJST1IoZSkgcHJpbnRrKCIl
czolZDogYmFkIHBtZCAlMDE2bHguXG4iLCBfX0ZJTEVfXywgX19MSU5FX18sIHBtZF92YWwoZSkp
CiNkZWZpbmUgcHRlX0VSUk9SKGUpIHByaW50aygiJXM6JWQ6IGJhZCBwdGUgJTAxNmx4LlxuIiwg
X19GSUxFX18sIF9fTElORV9fLCBwdGVfdmFsKGUpKQojIDE3MiAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vcGd0YWJsZS5oIgojZGVmaW5lIHBhZ2VfYWRkcmVzcyhwYWdlKSAoKHBh
Z2UpLT52aXJ0dWFsKQoKCnN0YXRpYyBpbmxpbmUgbG9uZwppYTY0X3BoeXNfYWRkcl92YWxpZCAo
dW5zaWduZWQgbG9uZyBhZGRyKQp7CiAgICAgICAgcmV0dXJuIChhZGRyICYgKCgoc3RydWN0IGNw
dWluZm9faWE2NCAqKSAoMHhhMDAwMDAwMDAwMDAwMDAwICsgMiooMVVMIDw8IDE0KSkpLT51bmlt
cGxfcGFfbWFzaykpID09IDA7Cn0KIyAxOTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
YXNtL3BndGFibGUuaCIKI2RlZmluZSBrZXJuX2FkZHJfdmFsaWQoYWRkcikgKDEpCiMgMjA1ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiCiNkZWZpbmUgc2V0X3B0
ZShwdGVwLCBwdGV2YWwpICgqKHB0ZXApID0gKHB0ZXZhbCkpCgojZGVmaW5lIFJHTl9TSVpFICgx
VUwgPDwgNjEpCiNkZWZpbmUgUkdOX01BUF9MSU1JVCAoKDFVTCA8PCAoNCpQQUdFX1NISUZUIC0g
MTIpKSAtIFBBR0VfU0laRSkKI2RlZmluZSBSR05fS0VSTkVMIDcKCiNkZWZpbmUgVk1BTExPQ19T
VEFSVCAoMHhhMDAwMDAwMDAwMDAwMDAwICsgMypQQUdFX1NJWkUpCiNkZWZpbmUgVk1BTExPQ19W
TUFERFIoeCkgKCh1bnNpZ25lZCBsb25nKSh4KSkKI2RlZmluZSBWTUFMTE9DX0VORCAoMHhhMDAw
MDAwMDAwMDAwMDAwICsgKDFVTCA8PCAoNCpQQUdFX1NISUZUIC0gOSkpKQoKCgoKCiNkZWZpbmUg
bWtfcHRlKHBhZ2UsIHBncHJvdCkgKHsgcHRlX3QgX19wdGU7IHB0ZV92YWwoX19wdGUpID0gKChw
YWdlIC0gbWVtX21hcCkgPDwgUEFHRV9TSElGVCkgfCBwZ3Byb3RfdmFsKHBncHJvdCk7IF9fcHRl
OyB9KQojIDIyOCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcGd0YWJsZS5oIgoj
ZGVmaW5lIG1rX3B0ZV9waHlzKHBoeXNwYWdlLCBwZ3Byb3QpICh7IHB0ZV90IF9fcHRlOyBwdGVf
dmFsKF9fcHRlKSA9IHBoeXNwYWdlICsgcGdwcm90X3ZhbChwZ3Byb3QpOyBfX3B0ZTsgfSkKCgoj
ZGVmaW5lIHB0ZV9tb2RpZnkoX3B0ZSwgbmV3cHJvdCkgKF9fcHRlKChwdGVfdmFsKF9wdGUpICYg
X1BBR0VfQ0hHX01BU0spIHwgcGdwcm90X3ZhbChuZXdwcm90KSkpCgoKI2RlZmluZSBwYWdlX3B0
ZV9wcm90KHBhZ2UsIHByb3QpIG1rX3B0ZShwYWdlLCBwcm90KQojZGVmaW5lIHBhZ2VfcHRlKHBh
Z2UpIHBhZ2VfcHRlX3Byb3QocGFnZSwgX19wZ3Byb3QoMCkpCgojZGVmaW5lIHB0ZV9ub25lKHB0
ZSkgKCFwdGVfdmFsKHB0ZSkpCiNkZWZpbmUgcHRlX3ByZXNlbnQocHRlKSAocHRlX3ZhbChwdGUp
ICYgKF9QQUdFX1AgfCBfUEFHRV9QUk9UTk9ORSkpCiNkZWZpbmUgcHRlX2NsZWFyKHB0ZSkgKHB0
ZV92YWwoKihwdGUpKSA9IDBVTCkKCiNkZWZpbmUgcHRlX3BhZ2UocHRlKSAobWVtX21hcCArICh1
bnNpZ25lZCBsb25nKSAoKHB0ZV92YWwocHRlKSAmIF9QRk5fTUFTSykgPj4gUEFHRV9TSElGVCkp
CgojZGVmaW5lIHBtZF9ub25lKHBtZCkgKCFwbWRfdmFsKHBtZCkpCiNkZWZpbmUgcG1kX2JhZChw
bWQpICghaWE2NF9waHlzX2FkZHJfdmFsaWQocG1kX3ZhbChwbWQpKSkKI2RlZmluZSBwbWRfcHJl
c2VudChwbWQpIChwbWRfdmFsKHBtZCkgIT0gMFVMKQojZGVmaW5lIHBtZF9jbGVhcihwbWRwKSAo
cG1kX3ZhbCgqKHBtZHApKSA9IDBVTCkKI2RlZmluZSBwbWRfcGFnZShwbWQpICgodW5zaWduZWQg
bG9uZykgX192YShwbWRfdmFsKHBtZCkgJiBfUEZOX01BU0spKQoKI2RlZmluZSBwZ2Rfbm9uZShw
Z2QpICghcGdkX3ZhbChwZ2QpKQojZGVmaW5lIHBnZF9iYWQocGdkKSAoIWlhNjRfcGh5c19hZGRy
X3ZhbGlkKHBnZF92YWwocGdkKSkpCiNkZWZpbmUgcGdkX3ByZXNlbnQocGdkKSAocGdkX3ZhbChw
Z2QpICE9IDBVTCkKI2RlZmluZSBwZ2RfY2xlYXIocGdkcCkgKHBnZF92YWwoKihwZ2RwKSkgPSAw
VUwpCiNkZWZpbmUgcGdkX3BhZ2UocGdkKSAoKHVuc2lnbmVkIGxvbmcpIF9fdmEocGdkX3ZhbChw
Z2QpICYgX1BGTl9NQVNLKSkKCgoKCiNkZWZpbmUgcHRlX3JlYWQocHRlKSAoKChwdGVfdmFsKHB0
ZSkgJiBfUEFHRV9BUl9NQVNLKSA+PiBfUEFHRV9BUl9TSElGVCkgPCA2KQojZGVmaW5lIHB0ZV93
cml0ZShwdGUpICgodW5zaWduZWQpICgoKHB0ZV92YWwocHRlKSAmIF9QQUdFX0FSX01BU0spID4+
IF9QQUdFX0FSX1NISUZUKSAtIDIpIDw9IDQpCiNkZWZpbmUgcHRlX2V4ZWMocHRlKSAoKHB0ZV92
YWwocHRlKSAmIF9QQUdFX0FSX1JYKSAhPSAwKQojZGVmaW5lIHB0ZV9kaXJ0eShwdGUpICgocHRl
X3ZhbChwdGUpICYgX1BBR0VfRCkgIT0gMCkKI2RlZmluZSBwdGVfeW91bmcocHRlKSAoKHB0ZV92
YWwocHRlKSAmIF9QQUdFX0EpICE9IDApCgoKCgojZGVmaW5lIHB0ZV93cnByb3RlY3QocHRlKSAo
X19wdGUocHRlX3ZhbChwdGUpICYgfl9QQUdFX0FSX1JXKSkKI2RlZmluZSBwdGVfbWt3cml0ZShw
dGUpIChfX3B0ZShwdGVfdmFsKHB0ZSkgfCBfUEFHRV9BUl9SVykpCiNkZWZpbmUgcHRlX21rZXhl
YyhwdGUpIChfX3B0ZShwdGVfdmFsKHB0ZSkgfCBfUEFHRV9BUl9SWCkpCiNkZWZpbmUgcHRlX21r
b2xkKHB0ZSkgKF9fcHRlKHB0ZV92YWwocHRlKSAmIH5fUEFHRV9BKSkKI2RlZmluZSBwdGVfbWt5
b3VuZyhwdGUpIChfX3B0ZShwdGVfdmFsKHB0ZSkgfCBfUEFHRV9BKSkKI2RlZmluZSBwdGVfbWtj
bGVhbihwdGUpIChfX3B0ZShwdGVfdmFsKHB0ZSkgJiB+X1BBR0VfRCkpCiNkZWZpbmUgcHRlX21r
ZGlydHkocHRlKSAoX19wdGUocHRlX3ZhbChwdGUpIHwgX1BBR0VfRCkpCgoKCgoKCgojZGVmaW5l
IHBncHJvdF9ub25jYWNoZWQocHJvdCkgX19wZ3Byb3QoKHBncHJvdF92YWwocHJvdCkgJiB+X1BB
R0VfTUFfTUFTSykgfCBfUEFHRV9NQV9VQykKIyAyOTQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvYXNtL3BndGFibGUuaCIKI2RlZmluZSBwZ3Byb3Rfd3JpdGVjb21iaW5lKHByb3QpIF9f
cGdwcm90KChwZ3Byb3RfdmFsKHByb3QpICYgfl9QQUdFX01BX01BU0spIHwgX1BBR0VfTUFfV0Mp
CgoKCgoKc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCnJnbl9pbmRleCAodW5zaWduZWQgbG9u
ZyBhZGRyZXNzKQp7CiAgICAgICAgaWE2NF92YSBhOwoKICAgICAgICBhLmwgPSBhZGRyZXNzOwog
ICAgICAgIHJldHVybiBhLmYucmVnOwp9CgoKCgpzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcK
cmduX29mZnNldCAodW5zaWduZWQgbG9uZyBhZGRyZXNzKQp7CiAgICAgICAgaWE2NF92YSBhOwoK
ICAgICAgICBhLmwgPSBhZGRyZXNzOwogICAgICAgIHJldHVybiBhLmYub2ZmOwp9CgpzdGF0aWMg
aW5saW5lIHVuc2lnbmVkIGxvbmcKcGdkX2luZGV4ICh1bnNpZ25lZCBsb25nIGFkZHJlc3MpCnsK
ICAgICAgICB1bnNpZ25lZCBsb25nIHJlZ2lvbiA9IGFkZHJlc3MgPj4gNjE7CiAgICAgICAgdW5z
aWduZWQgbG9uZyBsMWluZGV4ID0gKGFkZHJlc3MgPj4gKDE0ICsgMiooMTQgLTMpKSkgJiAoKCgo
KHVuc2lnbmVkIGxvbmcpKDEpKSA8PCAoMTQgLTMpKSA+PiAzKSAtIDEpOwoKICAgICAgICByZXR1
cm4gKHJlZ2lvbiA8PCAoMTQgLSA2KSkgfCBsMWluZGV4Owp9CgoKCnN0YXRpYyBpbmxpbmUgcGdk
X3QqCnBnZF9vZmZzZXQgKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHJl
c3MpCnsKICAgICAgICByZXR1cm4gbW0tPnBnZCArIHBnZF9pbmRleChhZGRyZXNzKTsKfQoKCgoj
ZGVmaW5lIHBnZF9vZmZzZXRfayhhZGRyKSAoaW5pdF9tbS5wZ2QgKyAoKChhZGRyKSA+PiBQR0RJ
Ul9TSElGVCkgJiAoUFRSU19QRVJfUEdEIC0gMSkpKQoKCgojZGVmaW5lIHBtZF9vZmZzZXQoZGly
LCBhZGRyKSAoKHBtZF90ICopIHBnZF9wYWdlKCooZGlyKSkgKyAoKChhZGRyKSA+PiBQTURfU0hJ
RlQpICYgKFBUUlNfUEVSX1BNRCAtIDEpKSkKCgoKI2RlZmluZSBwdGVfb2Zmc2V0KGRpciwgYWRk
cikgKChwdGVfdCAqKSBwbWRfcGFnZSgqKGRpcikpICsgKCgoYWRkcikgPj4gUEFHRV9TSElGVCkg
JiAoUFRSU19QRVJfUFRFIC0gMSkpKQoKCgoKc3RhdGljIGlubGluZSBpbnQKcHRlcF90ZXN0X2Fu
ZF9jbGVhcl95b3VuZyAocHRlX3QgKnB0ZXApCnsKCiAgICAgICAgcmV0dXJuIHRlc3RfYW5kX2Ns
ZWFyX2JpdCg1LCBwdGVwKTsKCgoKCgoKCn0KCnN0YXRpYyBpbmxpbmUgaW50CnB0ZXBfdGVzdF9h
bmRfY2xlYXJfZGlydHkgKHB0ZV90ICpwdGVwKQp7CgogICAgICAgIHJldHVybiB0ZXN0X2FuZF9j
bGVhcl9iaXQoNiwgcHRlcCk7CgoKCgoKCgp9CgpzdGF0aWMgaW5saW5lIHB0ZV90CnB0ZXBfZ2V0
X2FuZF9jbGVhciAocHRlX3QgKnB0ZXApCnsKCiAgICAgICAgcmV0dXJuICgocHRlX3QpIHsgKCgo
X190eXBlb2ZfXygqKChsb25nICopIHB0ZXApKSkgX194Y2hnICgodW5zaWduZWQgbG9uZykgKDAp
LCAoKGxvbmcgKikgcHRlcCksIHNpemVvZigqKChsb25nICopIHB0ZXApKSkpKSB9ICk7CgoKCgoK
fQoKc3RhdGljIGlubGluZSB2b2lkCnB0ZXBfc2V0X3dycHJvdGVjdCAocHRlX3QgKnB0ZXApCnsK
CiAgICAgICAgdW5zaWduZWQgbG9uZyBuZXcsIG9sZDsKCiAgICAgICAgZG8gewogICAgICAgICAg
ICAgICAgb2xkID0gKCgqcHRlcCkucHRlKTsKICAgICAgICAgICAgICAgIG5ldyA9ICgoKCgocHRl
X3QpIHsgKCgoKChwdGVfdCkgeyAob2xkKSB9ICkpLnB0ZSkgJiB+KDIgPDwgOSkpIH0gKSkpLnB0
ZSk7CiAgICAgICAgfSB3aGlsZSAoKHsgX190eXBlb2ZfXygoKHVuc2lnbmVkIGxvbmcgKikgcHRl
cCkpIF9wXyA9ICgoKHVuc2lnbmVkIGxvbmcgKikgcHRlcCkpOyBfX3R5cGVvZl9fKChuZXcpKSBf
bl8gPSAoKG5ldykpOyBfX3U2NCBfb18sIF9yXzsgc3dpdGNoIChzaXplb2YoKigodW5zaWduZWQg
bG9uZyAqKSBwdGVwKSkpIHsgY2FzZSAxOiBfb18gPSAoX191OCApIChsb25nKSAoKG9sZCkpOyBi
cmVhazsgY2FzZSAyOiBfb18gPSAoX191MTYpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA0
OiBfb18gPSAoX191MzIpIChsb25nKSAoKG9sZCkpOyBicmVhazsgY2FzZSA4OiBfb18gPSAoX191
NjQpIChsb25nKSAoKG9sZCkpOyBicmVhazsgZGVmYXVsdDogYnJlYWs7IH0gX19hc21fXyBfX3Zv
bGF0aWxlX18gKCJtb3YgYXIuY2N2PSUwOzsiIDo6ICJyTyIoX29fKSk7IHN3aXRjaCAoc2l6ZW9m
KCooKHVuc2lnbmVkIGxvbmcgKikgcHRlcCkpKSB7IGNhc2UgMTogX19hc21fXyBfX3ZvbGF0aWxl
X18gKCIiImNtcHhjaGcxLiIiYWNxIiIgJTA9WyUxXSwlMixhci5jY3YiIDogIj1yIihfcl8pIDog
InIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBicmVhazsgY2FzZSAyOiBfX2FzbV9fIF9f
dm9sYXRpbGVfXyAoIiIiY21weGNoZzIuIiJhY3EiIiAlMD1bJTFdLCUyLGFyLmNjdiIgOiAiPXIi
KF9yXykgOiAiciIoX3BfKSwgInIiKF9uXykgOiAibWVtb3J5Iik7IGJyZWFrOyBjYXNlIDQ6IF9f
YXNtX18gX192b2xhdGlsZV9fICgiIiJjbXB4Y2hnNC4iImFjcSIiICUwPVslMV0sJTIsYXIuY2N2
IiA6ICI9ciIoX3JfKSA6ICJyIihfcF8pLCAiciIoX25fKSA6ICJtZW1vcnkiKTsgYnJlYWs7IGNh
c2UgODogX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiImNtcHhjaGc4LiIiYWNxIiIgJTA9WyUxXSwl
Mixhci5jY3YiIDogIj1yIihfcl8pIDogInIiKF9wXyksICJyIihfbl8pIDogIm1lbW9yeSIpOyBi
cmVhazsgZGVmYXVsdDogX3JfID0gX19jbXB4Y2hnX2NhbGxlZF93aXRoX2JhZF9wb2ludGVyKCk7
IGJyZWFrOyB9IChfX3R5cGVvZl9fKChvbGQpKSkgX3JfOyB9KSAhPSBvbGQpOwoKCgoKfQoKc3Rh
dGljIGlubGluZSB2b2lkCnB0ZXBfbWtkaXJ0eSAocHRlX3QgKnB0ZXApCnsKCiAgICAgICAgc2V0
X2JpdCg2LCBwdGVwKTsKCgoKCn0KCnN0YXRpYyBpbmxpbmUgaW50CnB0ZV9zYW1lIChwdGVfdCBh
LCBwdGVfdCBiKQp7CiAgICAgICAgcmV0dXJuICgoYSkucHRlKSA9PSAoKGIpLnB0ZSk7Cn0KCgoK
CgpzdGF0aWMgaW5saW5lIGludAppc193cml0ZV9hY2Nlc3MgKGludCBhY2Nlc3NfdHlwZSkKewog
ICAgICAgIHJldHVybiAoYWNjZXNzX3R5cGUgJiAweDIpOwp9CgpzdGF0aWMgaW5saW5lIGludApp
c19leGVjX2FjY2VzcyAoaW50IGFjY2Vzc190eXBlKQp7CiAgICAgICAgcmV0dXJuIChhY2Nlc3Nf
dHlwZSAmIDB4NCk7Cn0KCmV4dGVybiBwZ2RfdCBzd2FwcGVyX3BnX2RpclsoKCh1bnNpZ25lZCBs
b25nKSgxKSkgPDwgKDE0IC0zKSldOwpleHRlcm4gdm9pZCBwYWdpbmdfaW5pdCAodm9pZCk7Cgoj
ZGVmaW5lIFNXUF9UWVBFKGVudHJ5KSAoKChlbnRyeSkudmFsID4+IDEpICYgMHhmZikKI2RlZmlu
ZSBTV1BfT0ZGU0VUKGVudHJ5KSAoKChlbnRyeSkudmFsIDw8IDEpID4+IDEwKQojZGVmaW5lIFNX
UF9FTlRSWSh0eXBlLCBvZmZzZXQpICgoc3dwX2VudHJ5X3QpIHsgKCh0eXBlKSA8PCAxKSB8ICgo
bG9uZykgKG9mZnNldCkgPDwgOSkgfSkKI2RlZmluZSBwdGVfdG9fc3dwX2VudHJ5KHB0ZSkgKChz
d3BfZW50cnlfdCkgeyBwdGVfdmFsKHB0ZSkgfSkKI2RlZmluZSBzd3BfZW50cnlfdG9fcHRlKHgp
ICgocHRlX3QpIHsgKHgpLnZhbCB9KQoKCiNkZWZpbmUgUGFnZVNraXAocGFnZSkgKDApCgojZGVm
aW5lIGlvX3JlbWFwX3BhZ2VfcmFuZ2UgcmVtYXBfcGFnZV9yYW5nZQoKCgoKCmV4dGVybiB1bnNp
Z25lZCBsb25nIGVtcHR5X3plcm9fcGFnZVsoMVVMIDw8IDE0KS9zaXplb2YodW5zaWduZWQgbG9u
ZyldOwojZGVmaW5lIFpFUk9fUEFHRSh2YWRkcikgKHZpcnRfdG9fcGFnZShlbXB0eV96ZXJvX3Bh
Z2UpKQoKCiNkZWZpbmUgSEFWRV9BUkNIX1VOTUFQUEVEX0FSRUEKCgoKCgoKCiNkZWZpbmUgS0VS
TkVMX1BHX1NISUZUIF9QQUdFX1NJWkVfNjRNCiNkZWZpbmUgS0VSTkVMX1BHX1NJWkUgKDEgPDwg
S0VSTkVMX1BHX1NISUZUKQojZGVmaW5lIEtFUk5FTF9QR19OVU0gKChLRVJORUxfU1RBUlQgLSBQ
QUdFX09GRlNFVCkgLyBLRVJORUxfUEdfU0laRSkKIyAyNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9tbS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vYXRvbWljLmgiIDEKIyAyNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9t
bS5oIiAyCiMgNDIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIKc3Ry
dWN0IHZtX2FyZWFfc3RydWN0IHsKICAgICAgICBzdHJ1Y3QgbW1fc3RydWN0ICogdm1fbW07CiAg
ICAgICAgdW5zaWduZWQgbG9uZyB2bV9zdGFydDsKICAgICAgICB1bnNpZ25lZCBsb25nIHZtX2Vu
ZDsKCgogICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1fbmV4dDsKCiAgICAgICAgcGdw
cm90X3Qgdm1fcGFnZV9wcm90OwogICAgICAgIHVuc2lnbmVkIGxvbmcgdm1fZmxhZ3M7CgoKICAg
ICAgICBzaG9ydCB2bV9hdmxfaGVpZ2h0OwogICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAq
IHZtX2F2bF9sZWZ0OwogICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtX2F2bF9yaWdo
dDsKCgoKCgoKICAgICAgICBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtX25leHRfc2hhcmU7CiAg
ICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICoqdm1fcHByZXZfc2hhcmU7CgoKICAgICAgICBz
dHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgKiB2bV9vcHM7CgoKICAgICAgICB1bnNpZ25lZCBs
b25nIHZtX3Bnb2ZmOwoKICAgICAgICBzdHJ1Y3QgZmlsZSAqIHZtX2ZpbGU7CiAgICAgICAgdW5z
aWduZWQgbG9uZyB2bV9yYWVuZDsKICAgICAgICB2b2lkICogdm1fcHJpdmF0ZV9kYXRhOwp9OwoK
CgoKI2RlZmluZSBWTV9SRUFEIDB4MDAwMDAwMDEKI2RlZmluZSBWTV9XUklURSAweDAwMDAwMDAy
CiNkZWZpbmUgVk1fRVhFQyAweDAwMDAwMDA0CiNkZWZpbmUgVk1fU0hBUkVEIDB4MDAwMDAwMDgK
CiNkZWZpbmUgVk1fTUFZUkVBRCAweDAwMDAwMDEwCiNkZWZpbmUgVk1fTUFZV1JJVEUgMHgwMDAw
MDAyMAojZGVmaW5lIFZNX01BWUVYRUMgMHgwMDAwMDA0MAojZGVmaW5lIFZNX01BWVNIQVJFIDB4
MDAwMDAwODAKCiNkZWZpbmUgVk1fR1JPV1NET1dOIDB4MDAwMDAxMDAKI2RlZmluZSBWTV9HUk9X
U1VQIDB4MDAwMDAyMDAKI2RlZmluZSBWTV9TSE0gMHgwMDAwMDQwMAojZGVmaW5lIFZNX0RFTllX
UklURSAweDAwMDAwODAwCgojZGVmaW5lIFZNX0VYRUNVVEFCTEUgMHgwMDAwMTAwMAojZGVmaW5l
IFZNX0xPQ0tFRCAweDAwMDAyMDAwCiNkZWZpbmUgVk1fSU8gMHgwMDAwNDAwMAoKCiNkZWZpbmUg
Vk1fU0VRX1JFQUQgMHgwMDAwODAwMAojZGVmaW5lIFZNX1JBTkRfUkVBRCAweDAwMDEwMDAwCgoj
ZGVmaW5lIFZNX0RPTlRDT1BZIDB4MDAwMjAwMDAKI2RlZmluZSBWTV9ET05URVhQQU5EIDB4MDAw
NDAwMDAKI2RlZmluZSBWTV9SRVNFUlZFRCAweDAwMDgwMDAwCiNkZWZpbmUgVk1fV1JJVEVDT01C
SU5FRCAweDAwMTAwMDAwCiNkZWZpbmUgVk1fTk9OQ0FDSEVEIDB4MDAyMDAwMDAKCiNkZWZpbmUg
Vk1fU1RBQ0tfRkxBR1MgMHgwMDAwMDE3NwoKI2RlZmluZSBWTV9SRUFESElOVE1BU0sgKFZNX1NF
UV9SRUFEIHwgVk1fUkFORF9SRUFEKQojZGVmaW5lIFZNX0NsZWFyUmVhZEhpbnQodikgKHYpLT52
bV9mbGFncyAmPSB+Vk1fUkVBREhJTlRNQVNLCiNkZWZpbmUgVk1fTm9ybWFsUmVhZEhpbnQodikg
KCEoKHYpLT52bV9mbGFncyAmIFZNX1JFQURISU5UTUFTSykpCiNkZWZpbmUgVk1fU2VxdWVudGlh
bFJlYWRIaW50KHYpICgodiktPnZtX2ZsYWdzICYgVk1fU0VRX1JFQUQpCiNkZWZpbmUgVk1fUmFu
ZG9tUmVhZEhpbnQodikgKCh2KS0+dm1fZmxhZ3MgJiBWTV9SQU5EX1JFQUQpCgoKCgoKZXh0ZXJu
IHBncHJvdF90IHByb3RlY3Rpb25fbWFwWzE2XTsKCgoKCgoKCnN0cnVjdCB2bV9vcGVyYXRpb25z
X3N0cnVjdCB7CiAgICAgICAgdm9pZCAoKm9wZW4pKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIGFy
ZWEpOwogICAgICAgIHZvaWQgKCpjbG9zZSkoc3RydWN0IHZtX2FyZWFfc3RydWN0ICogYXJlYSk7
CiAgICAgICAgc3RydWN0IHBhZ2UgKiAoKm5vcGFnZSkoc3RydWN0IHZtX2FyZWFfc3RydWN0ICog
YXJlYSwgdW5zaWduZWQgbG9uZyBhZGRyZXNzLCBpbnQgd3JpdGVfYWNjZXNzKTsKfTsKIyAxNTAg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIKdHlwZWRlZiBzdHJ1Y3Qg
cGFnZSB7CiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0OwogICAgICAgIHN0cnVjdCBhZGRy
ZXNzX3NwYWNlICptYXBwaW5nOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaW5kZXg7CiAgICAgICAg
c3RydWN0IHBhZ2UgKm5leHRfaGFzaDsKCiAgICAgICAgYXRvbWljX3QgY291bnQ7CiAgICAgICAg
dW5zaWduZWQgbG9uZyBmbGFnczsKCiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBscnU7CgogICAg
ICAgIHVuc2lnbmVkIGxvbmcgYWdlOwogICAgICAgIHdhaXRfcXVldWVfaGVhZF90IHdhaXQ7CiAg
ICAgICAgc3RydWN0IHBhZ2UgKipwcHJldl9oYXNoOwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVh
ZCAqIGJ1ZmZlcnM7CiAgICAgICAgdm9pZCAqdmlydHVhbDsKCiAgICAgICAgc3RydWN0IHpvbmVf
c3RydWN0ICp6b25lOwp9IG1lbV9tYXBfdDsKIyAxODIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2lu
Y2x1ZGUvbGludXgvbW0uaCIKI2RlZmluZSBnZXRfcGFnZShwKSBhdG9taWNfaW5jKCYocCktPmNv
dW50KQojZGVmaW5lIHB1dF9wYWdlKHApIF9fZnJlZV9wYWdlKHApCiNkZWZpbmUgcHV0X3BhZ2Vf
dGVzdHplcm8ocCkgYXRvbWljX2RlY19hbmRfdGVzdCgmKHApLT5jb3VudCkKI2RlZmluZSBwYWdl
X2NvdW50KHApIGF0b21pY19yZWFkKCYocCktPmNvdW50KQojZGVmaW5lIHNldF9wYWdlX2NvdW50
KHAsIHYpIGF0b21pY19zZXQoJihwKS0+Y291bnQsIHYpCiMgMjczICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L21tLmgiCiNkZWZpbmUgUEdfbG9ja2VkIDAKI2RlZmluZSBQR19l
cnJvciAxCiNkZWZpbmUgUEdfcmVmZXJlbmNlZCAyCiNkZWZpbmUgUEdfdXB0b2RhdGUgMwojZGVm
aW5lIFBHX2RpcnR5IDQKI2RlZmluZSBQR19kZWNyX2FmdGVyIDUKI2RlZmluZSBQR19hY3RpdmUg
NgojZGVmaW5lIFBHX2luYWN0aXZlX2RpcnR5IDcKI2RlZmluZSBQR19zbGFiIDgKI2RlZmluZSBQ
R19zd2FwX2NhY2hlIDkKI2RlZmluZSBQR19za2lwIDEwCiNkZWZpbmUgUEdfaW5hY3RpdmVfY2xl
YW4gMTEKI2RlZmluZSBQR19oaWdobWVtIDEyCiNkZWZpbmUgUEdfY2hlY2tlZCAxMwoKI2RlZmlu
ZSBQR19hcmNoXzEgMzAKI2RlZmluZSBQR19yZXNlcnZlZCAzMQoKCiNkZWZpbmUgUGFnZV9VcHRv
ZGF0ZShwYWdlKSB0ZXN0X2JpdChQR191cHRvZGF0ZSwgJihwYWdlKS0+ZmxhZ3MpCiNkZWZpbmUg
U2V0UGFnZVVwdG9kYXRlKHBhZ2UpIHNldF9iaXQoUEdfdXB0b2RhdGUsICYocGFnZSktPmZsYWdz
KQojZGVmaW5lIENsZWFyUGFnZVVwdG9kYXRlKHBhZ2UpIGNsZWFyX2JpdChQR191cHRvZGF0ZSwg
JihwYWdlKS0+ZmxhZ3MpCiNkZWZpbmUgUGFnZURpcnR5KHBhZ2UpIHRlc3RfYml0KFBHX2RpcnR5
LCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBTZXRQYWdlRGlydHkocGFnZSkgc2V0X2JpdChQR19k
aXJ0eSwgJihwYWdlKS0+ZmxhZ3MpCiNkZWZpbmUgQ2xlYXJQYWdlRGlydHkocGFnZSkgY2xlYXJf
Yml0KFBHX2RpcnR5LCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBQYWdlTG9ja2VkKHBhZ2UpIHRl
c3RfYml0KFBHX2xvY2tlZCwgJihwYWdlKS0+ZmxhZ3MpCiNkZWZpbmUgTG9ja1BhZ2UocGFnZSkg
c2V0X2JpdChQR19sb2NrZWQsICYocGFnZSktPmZsYWdzKQojZGVmaW5lIFRyeUxvY2tQYWdlKHBh
Z2UpIHRlc3RfYW5kX3NldF9iaXQoUEdfbG9ja2VkLCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBQ
YWdlQ2hlY2tlZChwYWdlKSB0ZXN0X2JpdChQR19jaGVja2VkLCAmKHBhZ2UpLT5mbGFncykKI2Rl
ZmluZSBTZXRQYWdlQ2hlY2tlZChwYWdlKSBzZXRfYml0KFBHX2NoZWNrZWQsICYocGFnZSktPmZs
YWdzKQoKZXh0ZXJuIHZvaWQgX19zZXRfcGFnZV9kaXJ0eShzdHJ1Y3QgcGFnZSAqKTsKCnN0YXRp
YyBpbmxpbmUgdm9pZCBzZXRfcGFnZV9kaXJ0eShzdHJ1Y3QgcGFnZSAqIHBhZ2UpCnsKICAgICAg
ICBpZiAoIXRlc3RfYW5kX3NldF9iaXQoNCwgJnBhZ2UtPmZsYWdzKSkKICAgICAgICAgICAgICAg
IF9fc2V0X3BhZ2VfZGlydHkocGFnZSk7Cn0KCgoKCgoKCiNkZWZpbmUgVW5sb2NrUGFnZShwYWdl
KSBkbyB7IHNtcF9tYl9fYmVmb3JlX2NsZWFyX2JpdCgpOyBpZiAoIXRlc3RfYW5kX2NsZWFyX2Jp
dChQR19sb2NrZWQsICYocGFnZSktPmZsYWdzKSkgQlVHKCk7IHNtcF9tYl9fYWZ0ZXJfY2xlYXJf
Yml0KCk7IGlmICh3YWl0cXVldWVfYWN0aXZlKCYocGFnZSktPndhaXQpKSB3YWtlX3VwKCYocGFn
ZSktPndhaXQpOyB9IHdoaWxlICgwKQoKCgoKCgojZGVmaW5lIFBhZ2VFcnJvcihwYWdlKSB0ZXN0
X2JpdChQR19lcnJvciwgJihwYWdlKS0+ZmxhZ3MpCiNkZWZpbmUgU2V0UGFnZUVycm9yKHBhZ2Up
IHNldF9iaXQoUEdfZXJyb3IsICYocGFnZSktPmZsYWdzKQojZGVmaW5lIENsZWFyUGFnZUVycm9y
KHBhZ2UpIGNsZWFyX2JpdChQR19lcnJvciwgJihwYWdlKS0+ZmxhZ3MpCiNkZWZpbmUgUGFnZVJl
ZmVyZW5jZWQocGFnZSkgdGVzdF9iaXQoUEdfcmVmZXJlbmNlZCwgJihwYWdlKS0+ZmxhZ3MpCiNk
ZWZpbmUgU2V0UGFnZVJlZmVyZW5jZWQocGFnZSkgc2V0X2JpdChQR19yZWZlcmVuY2VkLCAmKHBh
Z2UpLT5mbGFncykKI2RlZmluZSBDbGVhclBhZ2VSZWZlcmVuY2VkKHBhZ2UpIGNsZWFyX2JpdChQ
R19yZWZlcmVuY2VkLCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBQYWdlVGVzdGFuZENsZWFyUmVm
ZXJlbmNlZChwYWdlKSB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfcmVmZXJlbmNlZCwgJihwYWdlKS0+
ZmxhZ3MpCiNkZWZpbmUgUGFnZURlY3JBZnRlcihwYWdlKSB0ZXN0X2JpdChQR19kZWNyX2FmdGVy
LCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBTZXRQYWdlRGVjckFmdGVyKHBhZ2UpIHNldF9iaXQo
UEdfZGVjcl9hZnRlciwgJihwYWdlKS0+ZmxhZ3MpCiNkZWZpbmUgUGFnZVRlc3RhbmRDbGVhckRl
Y3JBZnRlcihwYWdlKSB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfZGVjcl9hZnRlciwgJihwYWdlKS0+
ZmxhZ3MpCiNkZWZpbmUgUGFnZVNsYWIocGFnZSkgdGVzdF9iaXQoUEdfc2xhYiwgJihwYWdlKS0+
ZmxhZ3MpCiNkZWZpbmUgUGFnZVN3YXBDYWNoZShwYWdlKSB0ZXN0X2JpdChQR19zd2FwX2NhY2hl
LCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBQYWdlUmVzZXJ2ZWQocGFnZSkgdGVzdF9iaXQoUEdf
cmVzZXJ2ZWQsICYocGFnZSktPmZsYWdzKQoKI2RlZmluZSBQYWdlU2V0U2xhYihwYWdlKSBzZXRf
Yml0KFBHX3NsYWIsICYocGFnZSktPmZsYWdzKQojZGVmaW5lIFBhZ2VTZXRTd2FwQ2FjaGUocGFn
ZSkgc2V0X2JpdChQR19zd2FwX2NhY2hlLCAmKHBhZ2UpLT5mbGFncykKCiNkZWZpbmUgUGFnZVRl
c3RhbmRTZXRTd2FwQ2FjaGUocGFnZSkgdGVzdF9hbmRfc2V0X2JpdChQR19zd2FwX2NhY2hlLCAm
KHBhZ2UpLT5mbGFncykKCiNkZWZpbmUgUGFnZUNsZWFyU2xhYihwYWdlKSBjbGVhcl9iaXQoUEdf
c2xhYiwgJihwYWdlKS0+ZmxhZ3MpCiNkZWZpbmUgUGFnZUNsZWFyU3dhcENhY2hlKHBhZ2UpIGNs
ZWFyX2JpdChQR19zd2FwX2NhY2hlLCAmKHBhZ2UpLT5mbGFncykKCiNkZWZpbmUgUGFnZVRlc3Rh
bmRDbGVhclN3YXBDYWNoZShwYWdlKSB0ZXN0X2FuZF9jbGVhcl9iaXQoUEdfc3dhcF9jYWNoZSwg
JihwYWdlKS0+ZmxhZ3MpCgojZGVmaW5lIFBhZ2VBY3RpdmUocGFnZSkgdGVzdF9iaXQoUEdfYWN0
aXZlLCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBTZXRQYWdlQWN0aXZlKHBhZ2UpIHNldF9iaXQo
UEdfYWN0aXZlLCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBDbGVhclBhZ2VBY3RpdmUocGFnZSkg
Y2xlYXJfYml0KFBHX2FjdGl2ZSwgJihwYWdlKS0+ZmxhZ3MpCgojZGVmaW5lIFBhZ2VJbmFjdGl2
ZURpcnR5KHBhZ2UpIHRlc3RfYml0KFBHX2luYWN0aXZlX2RpcnR5LCAmKHBhZ2UpLT5mbGFncykK
I2RlZmluZSBTZXRQYWdlSW5hY3RpdmVEaXJ0eShwYWdlKSBzZXRfYml0KFBHX2luYWN0aXZlX2Rp
cnR5LCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBDbGVhclBhZ2VJbmFjdGl2ZURpcnR5KHBhZ2Up
IGNsZWFyX2JpdChQR19pbmFjdGl2ZV9kaXJ0eSwgJihwYWdlKS0+ZmxhZ3MpCgojZGVmaW5lIFBh
Z2VJbmFjdGl2ZUNsZWFuKHBhZ2UpIHRlc3RfYml0KFBHX2luYWN0aXZlX2NsZWFuLCAmKHBhZ2Up
LT5mbGFncykKI2RlZmluZSBTZXRQYWdlSW5hY3RpdmVDbGVhbihwYWdlKSBzZXRfYml0KFBHX2lu
YWN0aXZlX2NsZWFuLCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBDbGVhclBhZ2VJbmFjdGl2ZUNs
ZWFuKHBhZ2UpIGNsZWFyX2JpdChQR19pbmFjdGl2ZV9jbGVhbiwgJihwYWdlKS0+ZmxhZ3MpCgoK
CgojZGVmaW5lIFBhZ2VIaWdoTWVtKHBhZ2UpIDAKCgojZGVmaW5lIFNldFBhZ2VSZXNlcnZlZChw
YWdlKSBzZXRfYml0KFBHX3Jlc2VydmVkLCAmKHBhZ2UpLT5mbGFncykKI2RlZmluZSBDbGVhclBh
Z2VSZXNlcnZlZChwYWdlKSBjbGVhcl9iaXQoUEdfcmVzZXJ2ZWQsICYocGFnZSktPmZsYWdzKQoK
CgoKI2RlZmluZSBOT1BBR0VfU0lHQlVTIChOVUxMKQojZGVmaW5lIE5PUEFHRV9PT00gKChzdHJ1
Y3QgcGFnZSAqKSAoLTEpKQoKCmV4dGVybiBtZW1fbWFwX3QgKiBtZW1fbWFwX1JzbXBfOGZhOWNh
MTE7CgoKCgoKCgpleHRlcm4gc3RydWN0IHBhZ2UgKiBfYWxsb2NfcGFnZXNfUnNtcF82OWVjNTMy
Mih1bnNpZ25lZCBpbnQgZ2ZwX21hc2ssIHVuc2lnbmVkIGxvbmcgb3JkZXIpOwpleHRlcm4gc3Ry
dWN0IHBhZ2UgKiBfX2FsbG9jX3BhZ2VzX1JzbXBfNDg1NWFhNDAodW5zaWduZWQgaW50IGdmcF9t
YXNrLCB1bnNpZ25lZCBsb25nIG9yZGVyLCB6b25lbGlzdF90ICp6b25lbGlzdCk7CmV4dGVybiBz
dHJ1Y3QgcGFnZSAqIGFsbG9jX3BhZ2VzX25vZGVfUnNtcF85YjZlYTNjYShpbnQgbmlkLCBpbnQg
Z2ZwX21hc2ssIHVuc2lnbmVkIGxvbmcgb3JkZXIpOwoKc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFn
ZSAqIGFsbG9jX3BhZ2VzKGludCBnZnBfbWFzaywgdW5zaWduZWQgbG9uZyBvcmRlcikKewoKCgog
ICAgICAgIGlmIChvcmRlciA+PSAxMCkKICAgICAgICAgICAgICAgIHJldHVybiAoKHZvaWQgKikw
KTsKICAgICAgICByZXR1cm4gX2FsbG9jX3BhZ2VzX1JzbXBfNjllYzUzMjIoZ2ZwX21hc2ssIG9y
ZGVyKTsKfQoKI2RlZmluZSBhbGxvY19wYWdlKGdmcF9tYXNrKSBhbGxvY19wYWdlcyhnZnBfbWFz
aywgMCkKCmV4dGVybiB1bnNpZ25lZCBsb25nIF9fZ2V0X2ZyZWVfcGFnZXNfUnNtcF8xOWQ5YWM0
MChpbnQgZ2ZwX21hc2ssIHVuc2lnbmVkIGxvbmcgb3JkZXIpOwpleHRlcm4gdW5zaWduZWQgbG9u
ZyBnZXRfemVyb2VkX3BhZ2VfUnNtcF8zZmFkNmE1NyhpbnQgZ2ZwX21hc2spOwoKI2RlZmluZSBf
X2dldF9mcmVlX3BhZ2UoZ2ZwX21hc2spIF9fZ2V0X2ZyZWVfcGFnZXMoKGdmcF9tYXNrKSwwKQoK
CiNkZWZpbmUgX19nZXRfZG1hX3BhZ2VzKGdmcF9tYXNrLCBvcmRlcikgX19nZXRfZnJlZV9wYWdl
cygoZ2ZwX21hc2spIHwgR0ZQX0RNQSwob3JkZXIpKQoKCgoKCiNkZWZpbmUgZ2V0X2ZyZWVfcGFn
ZSBnZXRfemVyb2VkX3BhZ2UKCgoKCmV4dGVybiB2b2lkIF9fZnJlZV9wYWdlc19Sc21wXzk2N2M0
NDY1KHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIG9yZGVyKTsKZXh0ZXJuIHZvaWQg
ZnJlZV9wYWdlc19Sc21wX2I1MTM2NTA2KHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9u
ZyBvcmRlcik7CgojZGVmaW5lIF9fZnJlZV9wYWdlKHBhZ2UpIF9fZnJlZV9wYWdlcygocGFnZSks
IDApCiNkZWZpbmUgZnJlZV9wYWdlKGFkZHIpIGZyZWVfcGFnZXMoKGFkZHIpLDApCgpleHRlcm4g
dm9pZCBzaG93X2ZyZWVfYXJlYXModm9pZCk7CmV4dGVybiB2b2lkIHNob3dfZnJlZV9hcmVhc19u
b2RlKHBnX2RhdGFfdCAqcGdkYXQpOwoKZXh0ZXJuIHZvaWQgY2xlYXJfcGFnZV90YWJsZXMoc3Ry
dWN0IG1tX3N0cnVjdCAqLCB1bnNpZ25lZCBsb25nLCBpbnQpOwoKc3RydWN0IHBhZ2UgKiBzaG1l
bV9ub3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICogdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJl
c3MsIGludCBub19zaGFyZSk7CnN0cnVjdCBmaWxlICpzaG1lbV9maWxlX3NldHVwX1JzbXBfNGIw
NDA1ZjgoY2hhciAqIG5hbWUsIGxvZmZfdCBzaXplKTsKZXh0ZXJuIHZvaWQgc2htZW1fbG9jayhz
dHJ1Y3QgZmlsZSAqIGZpbGUsIGludCBsb2NrKTsKZXh0ZXJuIGludCBzaG1lbV96ZXJvX3NldHVw
KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqKTsKCmV4dGVybiB2b2lkIHphcF9wYWdlX3JhbmdlKHN0
cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIHVuc2lnbmVkIGxvbmcg
c2l6ZSk7CmV4dGVybiBpbnQgY29weV9wYWdlX3JhbmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKmRzdCwg
c3RydWN0IG1tX3N0cnVjdCAqc3JjLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CmV4dGVy
biBpbnQgcmVtYXBfcGFnZV9yYW5nZV9Sc21wXzY5ZDAxZTczKHVuc2lnbmVkIGxvbmcgZnJvbSwg
dW5zaWduZWQgbG9uZyB0bywgdW5zaWduZWQgbG9uZyBzaXplLCBwZ3Byb3RfdCBwcm90KTsKZXh0
ZXJuIGludCB6ZXJvbWFwX3BhZ2VfcmFuZ2UodW5zaWduZWQgbG9uZyBmcm9tLCB1bnNpZ25lZCBs
b25nIHNpemUsIHBncHJvdF90IHByb3QpOwoKZXh0ZXJuIHZvaWQgdm10cnVuY2F0ZV9Sc21wX2E2
NTFhMTE3KHN0cnVjdCBpbm9kZSAqIGlub2RlLCBsb2ZmX3Qgb2Zmc2V0KTsKZXh0ZXJuIHBtZF90
ICpfX3BtZF9hbGxvYyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCwgdW5zaWduZWQg
bG9uZyBhZGRyZXNzKTsKZXh0ZXJuIHB0ZV90ICpwdGVfYWxsb2Moc3RydWN0IG1tX3N0cnVjdCAq
bW0sIHBtZF90ICpwbWQsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcyk7CmV4dGVybiBpbnQgaGFuZGxl
X21tX2ZhdWx0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1h
LCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsIGludCB3cml0ZV9hY2Nlc3MpOwpleHRlcm4gaW50IG1h
a2VfcGFnZXNfcHJlc2VudCh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kKTsK
ZXh0ZXJuIGludCBhY2Nlc3NfcHJvY2Vzc192bShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywgdW5z
aWduZWQgbG9uZyBhZGRyLCB2b2lkICpidWYsIGludCBsZW4sIGludCB3cml0ZSk7CmV4dGVybiBp
bnQgcHRyYWNlX3JlYWRkYXRhKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCB1bnNpZ25lZCBsb25n
IHNyYywgY2hhciAqZHN0LCBpbnQgbGVuKTsKZXh0ZXJuIGludCBwdHJhY2Vfd3JpdGVkYXRhKHN0
cnVjdCB0YXNrX3N0cnVjdCAqdHNrLCBjaGFyICogc3JjLCB1bnNpZ25lZCBsb25nIGRzdCwgaW50
IGxlbik7CmV4dGVybiBpbnQgcHRyYWNlX2F0dGFjaChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzayk7
CgoKCgoKCnN0YXRpYyBpbmxpbmUgcG1kX3QgKnBtZF9hbGxvYyhzdHJ1Y3QgbW1fc3RydWN0ICpt
bSwgcGdkX3QgKnBnZCwgdW5zaWduZWQgbG9uZyBhZGRyZXNzKQp7CiAgICAgICAgaWYgKCEoKCgq
cGdkKS5wZ2QpICE9IDBVTCkpCiAgICAgICAgICAgICAgICByZXR1cm4gX19wbWRfYWxsb2MobW0s
IHBnZCwgYWRkcmVzcyk7CiAgICAgICAgcmV0dXJuICgocG1kX3QgKikgKCh1bnNpZ25lZCBsb25n
KSAoe2lhNjRfdmEgX3Y7IF92LmwgPSAobG9uZykgKCgoKihwZ2QpKS5wZ2QpICYgKCgoKCh1bnNp
Z25lZCBsb25nKSgxKSkgPDwgNTApIC0gMSkgJiB+MHhmZmZVTCkpOyBfdi5mLnJlZyA9IC0xOyBf
di5wO30pKSArICgoKGFkZHJlc3MpID4+ICgxNCArICgxNCAtMykpKSAmICgoKCh1bnNpZ25lZCBs
b25nKSgxKSkgPDwgKDE0IC0zKSkgLSAxKSkpOwp9CgpleHRlcm4gaW50IHBndF9jYWNoZV93YXRl
clsyXTsKZXh0ZXJuIGludCBjaGVja19wZ3RfY2FjaGUodm9pZCk7CgpleHRlcm4gdm9pZCBmcmVl
X2FyZWFfaW5pdCh1bnNpZ25lZCBsb25nICogem9uZXNfc2l6ZSk7CmV4dGVybiB2b2lkIGZyZWVf
YXJlYV9pbml0X25vZGUoaW50IG5pZCwgcGdfZGF0YV90ICpwZ2RhdCwgc3RydWN0IHBhZ2UgKnBt
YXAsCiAgICAgICAgdW5zaWduZWQgbG9uZyAqIHpvbmVzX3NpemUsIHVuc2lnbmVkIGxvbmcgem9u
ZV9zdGFydF9wYWRkciwKICAgICAgICB1bnNpZ25lZCBsb25nICp6aG9sZXNfc2l6ZSk7CmV4dGVy
biB2b2lkIG1lbV9pbml0KHZvaWQpOwpleHRlcm4gdm9pZCBzaG93X21lbSh2b2lkKTsKZXh0ZXJu
IHZvaWQgc2lfbWVtaW5mb19Sc21wX2IzYTMwN2M2KHN0cnVjdCBzeXNpbmZvICogdmFsKTsKZXh0
ZXJuIHZvaWQgc3dhcGluX3JlYWRhaGVhZChzd3BfZW50cnlfdCk7CgoKCgoKc3RhdGljIGlubGlu
ZSBpbnQgZXhjbHVzaXZlX3N3YXBfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkKewogICAgICAgIHVu
c2lnbmVkIGludCBjb3VudDsKCiAgICAgICAgaWYgKCF0ZXN0X2JpdCgwLCAmKHBhZ2UpLT5mbGFn
cykpCiAgICAgICAgICAgICAgICBkbyB7IHByaW50a19Sc21wXzgyN2Q1ODA3KCJrZXJuZWwgQlVH
IGF0ICVzOiVkIVxuIiwgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW0uaCIs
IDQ4Mik7ICooaW50ICopMD0wOyB9IHdoaWxlICgwKTsKICAgICAgICBpZiAoIXRlc3RfYml0KDks
ICYocGFnZSktPmZsYWdzKSkKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIGNvdW50
ID0gKCgmKHBhZ2UpLT5jb3VudCktPmNvdW50ZXIpIC0gISFwYWdlLT5idWZmZXJzOwogICAgICAg
IGNvdW50ICs9IHN3YXBfY291bnQocGFnZSk7CiAgICAgICAgcmV0dXJuIGNvdW50ID09IDM7Cn0K
CgpleHRlcm4gdm9pZCBsb2NrX3ZtYV9tYXBwaW5ncyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKik7
CmV4dGVybiB2b2lkIHVubG9ja192bWFfbWFwcGluZ3Moc3RydWN0IHZtX2FyZWFfc3RydWN0ICop
OwpleHRlcm4gdm9pZCBpbnNlcnRfdm1fc3RydWN0KHN0cnVjdCBtbV9zdHJ1Y3QgKiwgc3RydWN0
IHZtX2FyZWFfc3RydWN0ICopOwpleHRlcm4gdm9pZCBfX2luc2VydF92bV9zdHJ1Y3Qoc3RydWN0
IG1tX3N0cnVjdCAqLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKik7CmV4dGVybiB2b2lkIGJ1aWxk
X21tYXBfYXZsKHN0cnVjdCBtbV9zdHJ1Y3QgKik7CmV4dGVybiB2b2lkIGV4aXRfbW1hcChzdHJ1
Y3QgbW1fc3RydWN0ICopOwoKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgZ2V0X3VubWFwcGVkX2FyZWFf
UnNtcF84YjNiNzkwZChzdHJ1Y3QgZmlsZSAqLCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25n
LCB1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKCmV4dGVybiB1bnNpZ25lZCBsb25nIGRv
X21tYXBfcGdvZmZfUnNtcF9lM2E5MDM0MChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgbG9u
ZyBhZGRyLAogICAgICAgIHVuc2lnbmVkIGxvbmcgbGVuLCB1bnNpZ25lZCBsb25nIHByb3QsCiAg
ICAgICAgdW5zaWduZWQgbG9uZyBmbGFnLCB1bnNpZ25lZCBsb25nIHBnb2ZmKTsKCnN0YXRpYyBp
bmxpbmUgdW5zaWduZWQgbG9uZyBkb19tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBs
b25nIGFkZHIsCiAgICAgICAgdW5zaWduZWQgbG9uZyBsZW4sIHVuc2lnbmVkIGxvbmcgcHJvdCwK
ICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWcsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQp7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyByZXQgPSAtMjI7CiAgICAgICAgaWYgKChvZmZzZXQgKyAoKChsZW4p
ICsgKDFVTCA8PCAxNCkgLSAxKSAmICh+KCgxVUwgPDwgMTQpIC0gMSkpKSkgPCBvZmZzZXQpCiAg
ICAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICBpZiAoIShvZmZzZXQgJiB+KH4oKDFVTCA8
PCAxNCkgLSAxKSkpKQogICAgICAgICAgICAgICAgcmV0ID0gZG9fbW1hcF9wZ29mZl9Sc21wX2Uz
YTkwMzQwKGZpbGUsIGFkZHIsIGxlbiwgcHJvdCwgZmxhZywgb2Zmc2V0ID4+IDE0KTsKb3V0Ogog
ICAgICAgIHJldHVybiByZXQ7Cn0KCmV4dGVybiBpbnQgZG9fbXVubWFwX1JzbXBfYjBhNTIwMDco
c3RydWN0IG1tX3N0cnVjdCAqLCB1bnNpZ25lZCBsb25nLCBzaXplX3QpOwoKZXh0ZXJuIHVuc2ln
bmVkIGxvbmcgZG9fYnJrX1JzbXBfOWVlY2RlMTYodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9u
Zyk7CgpzdHJ1Y3Qgem9uZV90OwoKZXh0ZXJuIHZvaWQgcmVtb3ZlX2lub2RlX3BhZ2Uoc3RydWN0
IHBhZ2UgKik7CmV4dGVybiB1bnNpZ25lZCBsb25nIHBhZ2VfdW51c2Uoc3RydWN0IHBhZ2UgKik7
CmV4dGVybiB2b2lkIHRydW5jYXRlX2lub2RlX3BhZ2VzX1JzbXBfYWUyODY0NmQoc3RydWN0IGFk
ZHJlc3Nfc3BhY2UgKiwgbG9mZl90KTsKCgpleHRlcm4gaW50IGZpbGVtYXBfc3luY19Sc21wXzdj
M2FmZTMyKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqLCB1bnNpZ25lZCBsb25nLCBzaXplX3QsIHVu
c2lnbmVkIGludCk7CmV4dGVybiBzdHJ1Y3QgcGFnZSAqZmlsZW1hcF9ub3BhZ2VfUnNtcF8xZTVh
YTc1ZChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiwgdW5zaWduZWQgbG9uZywgaW50KTsKCgoKCgoj
ZGVmaW5lIF9fR0ZQX0RNQSAweDAxCiNkZWZpbmUgX19HRlBfSElHSE1FTSAweDAyCgoKI2RlZmlu
ZSBfX0dGUF9XQUlUIDB4MTAKI2RlZmluZSBfX0dGUF9ISUdIIDB4MjAKI2RlZmluZSBfX0dGUF9J
TyAweDQwCiNkZWZpbmUgX19HRlBfRlMgMHg4MAoKI2RlZmluZSBHRlBfTk9JTyAoX19HRlBfSElH
SCB8IF9fR0ZQX1dBSVQpCiNkZWZpbmUgR0ZQX05PRlMgKF9fR0ZQX0hJR0ggfCBfX0dGUF9XQUlU
IHwgX19HRlBfSU8pCiNkZWZpbmUgR0ZQX0FUT01JQyAoX19HRlBfSElHSCkKI2RlZmluZSBHRlBf
VVNFUiAoIF9fR0ZQX1dBSVQgfCBfX0dGUF9JTyB8IF9fR0ZQX0ZTKQojZGVmaW5lIEdGUF9ISUdI
VVNFUiAoIF9fR0ZQX1dBSVQgfCBfX0dGUF9JTyB8IF9fR0ZQX0ZTIHwgX19HRlBfSElHSE1FTSkK
I2RlZmluZSBHRlBfS0VSTkVMIChfX0dGUF9ISUdIIHwgX19HRlBfV0FJVCB8IF9fR0ZQX0lPIHwg
X19HRlBfRlMpCiNkZWZpbmUgR0ZQX05GUyAoX19HRlBfSElHSCB8IF9fR0ZQX1dBSVQgfCBfX0dG
UF9JTyB8IF9fR0ZQX0ZTKQojZGVmaW5lIEdGUF9LU1dBUEQgKCBfX0dGUF9JTyB8IF9fR0ZQX0ZT
KQoKCgoKI2RlZmluZSBHRlBfRE1BIF9fR0ZQX0RNQQoKCgpzdGF0aWMgaW5saW5lIGludCBleHBh
bmRfc3RhY2soc3RydWN0IHZtX2FyZWFfc3RydWN0ICogdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJl
c3MpCnsKICAgICAgICB1bnNpZ25lZCBsb25nIGdyb3c7CgogICAgICAgIGFkZHJlc3MgJj0gKH4o
KDFVTCA8PCAxNCkgLSAxKSk7CiAgICAgICAgZ3JvdyA9ICh2bWEtPnZtX3N0YXJ0IC0gYWRkcmVz
cykgPj4gMTQ7CiAgICAgICAgaWYgKHZtYS0+dm1fZW5kIC0gYWRkcmVzcyA+IGN1cnJlbnQtPnJs
aW1bM10ucmxpbV9jdXIgfHwKICAgICAgICAgICAgKCh2bWEtPnZtX21tLT50b3RhbF92bSArIGdy
b3cpIDw8IDE0KSA+IGN1cnJlbnQtPnJsaW1bOV0ucmxpbV9jdXIpCiAgICAgICAgICAgICAgICBy
ZXR1cm4gLTEyOwogICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fICggIm1vdiBhci5jY3YgPSBy
MFxuIiAibW92IHIyOSA9IDFcbiIgIjs7XG4iICIxOlxuIiAibGQ0IHIyID0gWyUwXVxuIiAiOztc
biIgImNtcDQuZXEgcDAscDcgPSByMCxyMlxuIiAiKHA3KSBici5jb25kLnNwbnQuZmV3IDFiIFxu
IiAiIiJjbXB4Y2hnNC5hY3EgcjIgPSBbJTBdLCByMjksIGFyLmNjdlxuIiAiOztcbiIgImNtcDQu
ZXEgcDAscDcgPSByMCwgcjJcbiIgIihwNykgYnIuY29uZC5zcG50LmZldyAxYlxuIiAiOztcbiIg
OjogInIiKCYoJnZtYS0+dm1fbW0tPnBhZ2VfdGFibGVfbG9jayktPmxvY2spIDogInIyIiwgInIy
OSIsICJtZW1vcnkiKTsKICAgICAgICB2bWEtPnZtX3N0YXJ0ID0gYWRkcmVzczsKICAgICAgICB2
bWEtPnZtX3Bnb2ZmIC09IGdyb3c7CiAgICAgICAgdm1hLT52bV9tbS0+dG90YWxfdm0gKz0gZ3Jv
dzsKICAgICAgICBpZiAodm1hLT52bV9mbGFncyAmIDB4MDAwMDIwMDApCiAgICAgICAgICAgICAg
ICB2bWEtPnZtX21tLT5sb2NrZWRfdm0gKz0gZ3JvdzsKICAgICAgICBkbyB7IF9fYXNtX18gX192
b2xhdGlsZV9fKCIiOiA6IDoibWVtb3J5Iik7ICgoc3BpbmxvY2tfdCAqKSAmdm1hLT52bV9tbS0+
cGFnZV90YWJsZV9sb2NrKS0+bG9jayA9IDA7IH0gd2hpbGUgKDApOwogICAgICAgIHJldHVybiAw
Owp9CgoKZXh0ZXJuIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIGZpbmRfdm1hX1JzbXBfOWFlMjVl
ZDIoc3RydWN0IG1tX3N0cnVjdCAqIG1tLCB1bnNpZ25lZCBsb25nIGFkZHIpOwpleHRlcm4gc3Ry
dWN0IHZtX2FyZWFfc3RydWN0ICogZmluZF92bWFfcHJldihzdHJ1Y3QgbW1fc3RydWN0ICogbW0s
IHVuc2lnbmVkIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICoqcHByZXYpOwoKCgpzdGF0aWMgaW5saW5l
IHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIGZpbmRfdm1hX2ludGVyc2VjdGlvbihzdHJ1Y3QgbW1f
c3RydWN0ICogbW0sIHVuc2lnbmVkIGxvbmcgc3RhcnRfYWRkciwgdW5zaWduZWQgbG9uZyBlbmRf
YWRkcikKewogICAgICAgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqIHZtYSA9IGZpbmRfdm1hX1Jz
bXBfOWFlMjVlZDIobW0sc3RhcnRfYWRkcik7CgogICAgICAgIGlmICh2bWEgJiYgZW5kX2FkZHIg
PD0gdm1hLT52bV9zdGFydCkKICAgICAgICAgICAgICAgIHZtYSA9ICgodm9pZCAqKTApOwogICAg
ICAgIHJldHVybiB2bWE7Cn0KCmV4dGVybiBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmZpbmRfZXh0
ZW5kX3ZtYShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyKTsKIyA2ICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2xvY2tzLmgiIDIKCgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcGFnZW1hcC5oIiAxCgojZGVmaW5lIF9MSU5V
WF9QQUdFTUFQX0gKCgoKCgoKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tbS5oIiAxCiMgMTEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcGFnZW1h
cC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9mcy5oIiAxCiMg
MTIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcGFnZW1hcC5oIiAyCiMgMSAi
L3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9saXN0LmgiIDEKIyAxMyAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9wYWdlbWFwLmgiIDIKCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vc3lzdGVtLmgiIDEKIyAxNSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9wYWdlbWFwLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmgiIDEKIyAxNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9saW51eC9wYWdlbWFwLmgiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L2hpZ2htZW0uaCIgMQoKI2RlZmluZSBfTElOVVhfSElHSE1FTV9ICgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyA1ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2hpZ2htZW0uaCIgMgojIDEgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvYXNtL3BnYWxsb2MuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfUEdBTExP
Q19ICiMgMTYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BnYWxsb2MuaCIKIyAx
ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2NvbmZpZy5oIiAxCiMgMTcgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BnYWxsb2MuaCIgMgoKIyAxICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21tLmgiIDEKIyAxOSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9hc20vcGdhbGxvYy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC90aHJlYWRzLmgiIDEKIyAyMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vcGdhbGxvYy5oIiAyCgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
YXNtL21tdV9jb250ZXh0LmgiIDEKIyAyMiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9h
c20vcGdhbGxvYy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcHJv
Y2Vzc29yLmgiIDEKIyAyMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vcGdhbGxv
Yy5oIiAyCiMgMzEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3BnYWxsb2MuaCIK
I2RlZmluZSBwZ2RfcXVpY2tsaXN0IChsb2NhbF9jcHVfZGF0YS0+cGdkX3F1aWNrKQojZGVmaW5l
IHBtZF9xdWlja2xpc3QgKGxvY2FsX2NwdV9kYXRhLT5wbWRfcXVpY2spCiNkZWZpbmUgcHRlX3F1
aWNrbGlzdCAobG9jYWxfY3B1X2RhdGEtPnB0ZV9xdWljaykKI2RlZmluZSBwZ3RhYmxlX2NhY2hl
X3NpemUgKGxvY2FsX2NwdV9kYXRhLT5wZ3RhYmxlX2NhY2hlX3N6KQoKc3RhdGljIGlubGluZSBw
Z2RfdCoKcGdkX2FsbG9jX29uZV9mYXN0IChzdHJ1Y3QgbW1fc3RydWN0ICptbSkKewogICAgICAg
IHVuc2lnbmVkIGxvbmcgKnJldCA9ICgoKHN0cnVjdCBjcHVpbmZvX2lhNjQgKikgKDB4YTAwMDAw
MDAwMDAwMDAwMCArIDIqKDFVTCA8PCAxNCkpKS0+cGdkX3F1aWNrKTsKCiAgICAgICAgaWYgKF9f
YnVpbHRpbl9leHBlY3QocmV0ICE9ICgodm9pZCAqKTApLCAxKSkgewogICAgICAgICAgICAgICAg
KCgoc3RydWN0IGNwdWluZm9faWE2NCAqKSAoMHhhMDAwMDAwMDAwMDAwMDAwICsgMiooMVVMIDw8
IDE0KSkpLT5wZ2RfcXVpY2spID0gKHVuc2lnbmVkIGxvbmcgKikoKnJldCk7CiAgICAgICAgICAg
ICAgICByZXRbMF0gPSAwOwogICAgICAgICAgICAgICAgLS0oKChzdHJ1Y3QgY3B1aW5mb19pYTY0
ICopICgweGEwMDAwMDAwMDAwMDAwMDAgKyAyKigxVUwgPDwgMTQpKSktPnBndGFibGVfY2FjaGVf
c3opOwogICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgcmV0ID0gKCh2b2lkICopMCk7CiAg
ICAgICAgcmV0dXJuIChwZ2RfdCAqKSByZXQ7Cn0KCnN0YXRpYyBpbmxpbmUgcGdkX3QqCnBnZF9h
bGxvYyAoc3RydWN0IG1tX3N0cnVjdCAqbW0pCnsKCiAgICAgICAgcGdkX3QgKnBnZCA9IHBnZF9h
bGxvY19vbmVfZmFzdChtbSk7CgogICAgICAgIGlmIChfX2J1aWx0aW5fZXhwZWN0KHBnZCA9PSAo
KHZvaWQgKikwKSwgMCkpIHsKICAgICAgICAgICAgICAgIHBnZCA9IChwZ2RfdCAqKV9fZ2V0X2Zy
ZWVfcGFnZXNfUnNtcF8xOWQ5YWM0MCgoKDB4MjAgfCAweDEwIHwgMHg0MCB8IDB4ODApKSwwKTsK
ICAgICAgICAgICAgICAgIGlmIChfX2J1aWx0aW5fZXhwZWN0KHBnZCAhPSAoKHZvaWQgKikwKSwg
MSkpCiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyX3BhZ2VfUnNtcF8zZDllZTlmMChwZ2Qp
OwogICAgICAgIH0KICAgICAgICByZXR1cm4gcGdkOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKcGdk
X2ZyZWUgKHBnZF90ICpwZ2QpCnsKICAgICAgICAqKHVuc2lnbmVkIGxvbmcgKilwZ2QgPSAodW5z
aWduZWQgbG9uZykgKCgoc3RydWN0IGNwdWluZm9faWE2NCAqKSAoMHhhMDAwMDAwMDAwMDAwMDAw
ICsgMiooMVVMIDw8IDE0KSkpLT5wZ2RfcXVpY2spOwogICAgICAgICgoKHN0cnVjdCBjcHVpbmZv
X2lhNjQgKikgKDB4YTAwMDAwMDAwMDAwMDAwMCArIDIqKDFVTCA8PCAxNCkpKS0+cGdkX3F1aWNr
KSA9ICh1bnNpZ25lZCBsb25nICopIHBnZDsKICAgICAgICArKygoKHN0cnVjdCBjcHVpbmZvX2lh
NjQgKikgKDB4YTAwMDAwMDAwMDAwMDAwMCArIDIqKDFVTCA8PCAxNCkpKS0+cGd0YWJsZV9jYWNo
ZV9zeik7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZApwZ2RfcG9wdWxhdGUgKHN0cnVjdCBtbV9zdHJ1
Y3QgKm1tLCBwZ2RfdCAqcGdkX2VudHJ5LCBwbWRfdCAqcG1kKQp7CiAgICAgICAgKCgqcGdkX2Vu
dHJ5KS5wZ2QpID0gKHtpYTY0X3ZhIF92OyBfdi5sID0gKGxvbmcpIChwbWQpOyBfdi5mLnJlZyA9
IDA7IF92Lmw7fSk7Cn0KCgpzdGF0aWMgaW5saW5lIHBtZF90KgpwbWRfYWxsb2Nfb25lX2Zhc3Qg
KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGFkZHIpCnsKICAgICAgICB1bnNp
Z25lZCBsb25nICpyZXQgPSAodW5zaWduZWQgbG9uZyAqKSgoKHN0cnVjdCBjcHVpbmZvX2lhNjQg
KikgKDB4YTAwMDAwMDAwMDAwMDAwMCArIDIqKDFVTCA8PCAxNCkpKS0+cG1kX3F1aWNrKTsKCiAg
ICAgICAgaWYgKF9fYnVpbHRpbl9leHBlY3QocmV0ICE9ICgodm9pZCAqKTApLCAxKSkgewogICAg
ICAgICAgICAgICAgKCgoc3RydWN0IGNwdWluZm9faWE2NCAqKSAoMHhhMDAwMDAwMDAwMDAwMDAw
ICsgMiooMVVMIDw8IDE0KSkpLT5wbWRfcXVpY2spID0gKHVuc2lnbmVkIGxvbmcgKikoKnJldCk7
CiAgICAgICAgICAgICAgICByZXRbMF0gPSAwOwogICAgICAgICAgICAgICAgLS0oKChzdHJ1Y3Qg
Y3B1aW5mb19pYTY0ICopICgweGEwMDAwMDAwMDAwMDAwMDAgKyAyKigxVUwgPDwgMTQpKSktPnBn
dGFibGVfY2FjaGVfc3opOwogICAgICAgIH0KICAgICAgICByZXR1cm4gKHBtZF90ICopcmV0Owp9
CgpzdGF0aWMgaW5saW5lIHBtZF90KgpwbWRfYWxsb2Nfb25lIChzdHJ1Y3QgbW1fc3RydWN0ICpt
bSwgdW5zaWduZWQgbG9uZyBhZGRyKQp7CiAgICAgICAgcG1kX3QgKnBtZCA9IChwbWRfdCAqKSBf
X2dldF9mcmVlX3BhZ2VzX1JzbXBfMTlkOWFjNDAoKCgweDIwIHwgMHgxMCB8IDB4NDAgfCAweDgw
KSksMCk7CgogICAgICAgIGlmIChfX2J1aWx0aW5fZXhwZWN0KHBtZCAhPSAoKHZvaWQgKikwKSwg
MSkpCiAgICAgICAgICAgICAgICBjbGVhcl9wYWdlX1JzbXBfM2Q5ZWU5ZjAocG1kKTsKICAgICAg
ICByZXR1cm4gcG1kOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKcG1kX2ZyZWUgKHBtZF90ICpwbWQp
CnsKICAgICAgICAqKHVuc2lnbmVkIGxvbmcgKilwbWQgPSAodW5zaWduZWQgbG9uZykgKCgoc3Ry
dWN0IGNwdWluZm9faWE2NCAqKSAoMHhhMDAwMDAwMDAwMDAwMDAwICsgMiooMVVMIDw8IDE0KSkp
LT5wbWRfcXVpY2spOwogICAgICAgICgoKHN0cnVjdCBjcHVpbmZvX2lhNjQgKikgKDB4YTAwMDAw
MDAwMDAwMDAwMCArIDIqKDFVTCA8PCAxNCkpKS0+cG1kX3F1aWNrKSA9ICh1bnNpZ25lZCBsb25n
ICopIHBtZDsKICAgICAgICArKygoKHN0cnVjdCBjcHVpbmZvX2lhNjQgKikgKDB4YTAwMDAwMDAw
MDAwMDAwMCArIDIqKDFVTCA8PCAxNCkpKS0+cGd0YWJsZV9jYWNoZV9zeik7Cn0KCnN0YXRpYyBp
bmxpbmUgdm9pZApwbWRfcG9wdWxhdGUgKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBwbWRfdCAqcG1k
X2VudHJ5LCBwdGVfdCAqcHRlKQp7CiAgICAgICAgKCgqcG1kX2VudHJ5KS5wbWQpID0gKHtpYTY0
X3ZhIF92OyBfdi5sID0gKGxvbmcpIChwdGUpOyBfdi5mLnJlZyA9IDA7IF92Lmw7fSk7Cn0KCnN0
YXRpYyBpbmxpbmUgcHRlX3QqCnB0ZV9hbGxvY19vbmVfZmFzdCAoc3RydWN0IG1tX3N0cnVjdCAq
bW0sIHVuc2lnbmVkIGxvbmcgYWRkcikKewogICAgICAgIHVuc2lnbmVkIGxvbmcgKnJldCA9ICh1
bnNpZ25lZCBsb25nICopKCgoc3RydWN0IGNwdWluZm9faWE2NCAqKSAoMHhhMDAwMDAwMDAwMDAw
MDAwICsgMiooMVVMIDw8IDE0KSkpLT5wdGVfcXVpY2spOwoKICAgICAgICBpZiAoX19idWlsdGlu
X2V4cGVjdChyZXQgIT0gKCh2b2lkICopMCksIDEpKSB7CiAgICAgICAgICAgICAgICAoKChzdHJ1
Y3QgY3B1aW5mb19pYTY0ICopICgweGEwMDAwMDAwMDAwMDAwMDAgKyAyKigxVUwgPDwgMTQpKSkt
PnB0ZV9xdWljaykgPSAodW5zaWduZWQgbG9uZyAqKSgqcmV0KTsKICAgICAgICAgICAgICAgIHJl
dFswXSA9IDA7CiAgICAgICAgICAgICAgICAtLSgoKHN0cnVjdCBjcHVpbmZvX2lhNjQgKikgKDB4
YTAwMDAwMDAwMDAwMDAwMCArIDIqKDFVTCA8PCAxNCkpKS0+cGd0YWJsZV9jYWNoZV9zeik7CiAg
ICAgICAgfQogICAgICAgIHJldHVybiAocHRlX3QgKilyZXQ7Cn0KCgpzdGF0aWMgaW5saW5lIHB0
ZV90KgpwdGVfYWxsb2Nfb25lIChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBh
ZGRyKQp7CiAgICAgICAgcHRlX3QgKnB0ZSA9IChwdGVfdCAqKSBfX2dldF9mcmVlX3BhZ2VzX1Jz
bXBfMTlkOWFjNDAoKCgweDIwIHwgMHgxMCB8IDB4NDAgfCAweDgwKSksMCk7CgogICAgICAgIGlm
IChfX2J1aWx0aW5fZXhwZWN0KHB0ZSAhPSAoKHZvaWQgKikwKSwgMSkpCiAgICAgICAgICAgICAg
ICBjbGVhcl9wYWdlX1JzbXBfM2Q5ZWU5ZjAocHRlKTsKICAgICAgICByZXR1cm4gcHRlOwp9Cgpz
dGF0aWMgaW5saW5lIHZvaWQKcHRlX2ZyZWUgKHB0ZV90ICpwdGUpCnsKICAgICAgICAqKHVuc2ln
bmVkIGxvbmcgKilwdGUgPSAodW5zaWduZWQgbG9uZykgKCgoc3RydWN0IGNwdWluZm9faWE2NCAq
KSAoMHhhMDAwMDAwMDAwMDAwMDAwICsgMiooMVVMIDw8IDE0KSkpLT5wdGVfcXVpY2spOwogICAg
ICAgICgoKHN0cnVjdCBjcHVpbmZvX2lhNjQgKikgKDB4YTAwMDAwMDAwMDAwMDAwMCArIDIqKDFV
TCA8PCAxNCkpKS0+cHRlX3F1aWNrKSA9ICh1bnNpZ25lZCBsb25nICopIHB0ZTsKICAgICAgICAr
KygoKHN0cnVjdCBjcHVpbmZvX2lhNjQgKikgKDB4YTAwMDAwMDAwMDAwMDAwMCArIDIqKDFVTCA8
PCAxNCkpKS0+cGd0YWJsZV9jYWNoZV9zeik7Cn0KCmV4dGVybiBpbnQgZG9fY2hlY2tfcGd0X2Nh
Y2hlIChpbnQsIGludCk7CiMgMTU5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9w
Z2FsbG9jLmgiCmV4dGVybiB2b2lkIF9fZmx1c2hfdGxiX2FsbCAodm9pZCk7CgoKICBleHRlcm4g
dm9pZCBzbXBfZmx1c2hfdGxiX2FsbF9Sc21wXzAwZDRlN2RlICh2b2lkKTsKI2RlZmluZSBmbHVz
aF90bGJfYWxsKCkgc21wX2ZsdXNoX3RsYl9hbGwoKQoKCgoKCgoKZXh0ZXJuIHNwaW5sb2NrX3Qg
cHRjZ19sb2NrOwoKCgoKc3RhdGljIGlubGluZSB2b2lkCmZsdXNoX3RsYl9tbSAoc3RydWN0IG1t
X3N0cnVjdCAqbW0pCnsKICAgICAgICBpZiAobW0pIHsKICAgICAgICAgICAgICAgIG1tLT5jb250
ZXh0ID0gMDsKICAgICAgICAgICAgICAgIGlmIChtbSA9PSBjdXJyZW50LT5hY3RpdmVfbW0pIHsK
CiAgICAgICAgICAgICAgICAgICAgICAgIGdldF9uZXdfbW11X2NvbnRleHQobW0pOwogICAgICAg
ICAgICAgICAgICAgICAgICByZWxvYWRfY29udGV4dChtbSk7CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgfQp9CgpleHRlcm4gdm9pZCBmbHVzaF90bGJfcmFuZ2UgKHN0cnVjdCBtbV9zdHJ1Y3Qg
Km1tLCB1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7CgoKCgpzdGF0aWMg
aW5saW5lIHZvaWQKZmx1c2hfdGxiX3BhZ2UgKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1
bnNpZ25lZCBsb25nIGFkZHIpCnsKCiAgICAgICAgZmx1c2hfdGxiX3JhbmdlKHZtYS0+dm1fbW0s
IChhZGRyICYgKH4oKDFVTCA8PCAxNCkgLSAxKSkpLCAoYWRkciAmICh+KCgxVUwgPDwgMTQpIC0g
MSkpKSArICgxVUwgPDwgMTQpKTsKCgoKCn0KCgoKCgpzdGF0aWMgaW5saW5lIHZvaWQKZmx1c2hf
dGxiX3BndGFibGVzIChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgdW5zaWduZWQgbG9uZyBzdGFydCwg
dW5zaWduZWQgbG9uZyBlbmQpCnsKICAgICAgICBpZiAocmduX2luZGV4KHN0YXJ0KSAhPSByZ25f
aW5kZXgoZW5kKSkKICAgICAgICAgICAgICAgIHByaW50a19Sc21wXzgyN2Q1ODA3KCJmbHVzaF90
bGJfcGd0YWJsZXM6IGNhbid0IGZsdXNoIGFjcm9zcyByZWdpb25zISFcbiIpOwogICAgICAgIGZs
dXNoX3RsYl9yYW5nZShtbSwgaWE2NF90aGFzaChzdGFydCksIGlhNjRfdGhhc2goZW5kKSk7Cn0K
CgoKCgoKCiNkZWZpbmUgZmx1c2hfY2FjaGVfYWxsKCkgZG8geyB9IHdoaWxlICgwKQojZGVmaW5l
IGZsdXNoX2NhY2hlX21tKG1tKSBkbyB7IH0gd2hpbGUgKDApCiNkZWZpbmUgZmx1c2hfY2FjaGVf
cmFuZ2UobW0sIHN0YXJ0LCBlbmQpIGRvIHsgfSB3aGlsZSAoMCkKI2RlZmluZSBmbHVzaF9jYWNo
ZV9wYWdlKHZtYSwgdm1hZGRyKSBkbyB7IH0gd2hpbGUgKDApCiNkZWZpbmUgZmx1c2hfcGFnZV90
b19yYW0ocGFnZSkgZG8geyB9IHdoaWxlICgwKQoKZXh0ZXJuIHZvaWQgZmx1c2hfaWNhY2hlX3Jh
bmdlICh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCk7CgpzdGF0aWMgaW5s
aW5lIHZvaWQKZmx1c2hfZGNhY2hlX3BhZ2UgKHN0cnVjdCBwYWdlICpwYWdlKQp7CiAgICAgICAg
Y2xlYXJfYml0KDMwLCAmcGFnZS0+ZmxhZ3MpOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQKY2xlYXJf
dXNlcl9wYWdlICh2b2lkICphZGRyLCB1bnNpZ25lZCBsb25nIHZhZGRyLCBzdHJ1Y3QgcGFnZSAq
cGFnZSkKewogICAgICAgIGNsZWFyX3BhZ2VfUnNtcF8zZDllZTlmMChhZGRyKTsKICAgICAgICBm
bHVzaF9kY2FjaGVfcGFnZShwYWdlKTsKfQoKc3RhdGljIGlubGluZSB2b2lkCmNvcHlfdXNlcl9w
YWdlICh2b2lkICp0bywgdm9pZCAqZnJvbSwgdW5zaWduZWQgbG9uZyB2YWRkciwgc3RydWN0IHBh
Z2UgKnBhZ2UpCnsKICAgICAgICBjb3B5X3BhZ2UodG8sIGZyb20pOwogICAgICAgIGZsdXNoX2Rj
YWNoZV9wYWdlKHBhZ2UpOwp9CgoKCgoKCnN0YXRpYyBpbmxpbmUgdm9pZAp1cGRhdGVfbW11X2Nh
Y2hlIChzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyB2YWRkciwgcHRl
X3QgcHRlKQp7CiAgICAgICAgdW5zaWduZWQgbG9uZyBhZGRyOwogICAgICAgIHN0cnVjdCBwYWdl
ICpwYWdlOwoKICAgICAgICBpZiAoISgoKChwdGUpLnB0ZSkgJiAoMSA8PCA5KSkgIT0gMCkpCiAg
ICAgICAgICAgICAgICByZXR1cm47CgogICAgICAgIHBhZ2UgPSAobWVtX21hcF9Sc21wXzhmYTlj
YTExICsgKHVuc2lnbmVkIGxvbmcpICgoKChwdGUpLnB0ZSkgJiAoKCgoKHVuc2lnbmVkIGxvbmcp
KDEpKSA8PCA1MCkgLSAxKSAmIH4weGZmZlVMKSkgPj4gMTQpKTsKCiAgICAgICAgYWRkciA9ICh1
bnNpZ25lZCBsb25nKSAoKHBhZ2UpLT52aXJ0dWFsKTsKCiAgICAgICAgaWYgKHRlc3RfYml0KDMw
LCAmcGFnZS0+ZmxhZ3MpKQogICAgICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICBmbHVzaF9p
Y2FjaGVfcmFuZ2UoYWRkciwgYWRkciArICgxVUwgPDwgMTQpKTsKICAgICAgICBzZXRfYml0KDMw
LCAmcGFnZS0+ZmxhZ3MpOwp9CiMgNiAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9oaWdobWVtLmgiIDIKIyAzMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9o
aWdobWVtLmgiCnN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IG5yX2ZyZWVfaGlnaHBhZ2VzKHZv
aWQpIHsgcmV0dXJuIDA7IH0KCnN0YXRpYyBpbmxpbmUgdm9pZCAqa21hcChzdHJ1Y3QgcGFnZSAq
cGFnZSkgeyByZXR1cm4gKChwYWdlKS0+dmlydHVhbCk7IH0KCiNkZWZpbmUga3VubWFwKHBhZ2Up
IGRvIHsgfSB3aGlsZSAoMCkKCiNkZWZpbmUga21hcF9hdG9taWMocGFnZSwgaWR4KSBrbWFwKHBh
Z2UpCiNkZWZpbmUga3VubWFwX2F0b21pYyhwYWdlLCBpZHgpIGt1bm1hcChwYWdlKQoKI2RlZmlu
ZSBiaF9rbWFwKGJoKSAoKGJoKS0+Yl9kYXRhKQojZGVmaW5lIGJoX2t1bm1hcChiaCkgZG8geyB9
IHdoaWxlICgwKQoKCgoKc3RhdGljIGlubGluZSB2b2lkIGNsZWFyX3VzZXJfaGlnaHBhZ2Uoc3Ry
dWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdmFkZHIpCnsKICAgICAgICBjbGVhcl91c2Vy
X3BhZ2Uoa21hcChwYWdlKSwgdmFkZHIsIHBhZ2UpOwogICAgICAgIGRvIHsgfSB3aGlsZSAoMCk7
Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBjbGVhcl9oaWdocGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkK
ewogICAgICAgIGNsZWFyX3BhZ2VfUnNtcF8zZDllZTlmMChrbWFwKHBhZ2UpKTsKICAgICAgICBk
byB7IH0gd2hpbGUgKDApOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgbWVtY2xlYXJfaGlnaHBhZ2Uo
c3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvZmZzZXQsIHVuc2lnbmVkIGludCBzaXpl
KQp7CiAgICAgICAgY2hhciAqa2FkZHI7CgogICAgICAgIGlmIChvZmZzZXQgKyBzaXplID4gKDFV
TCA8PCAxNCkpCiAgICAgICAgICAgICAgICBkbyB7IHByaW50a19Sc21wXzgyN2Q1ODA3KCJrZXJu
ZWwgQlVHIGF0ICVzOiVkIVxuIiwgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgv
aGlnaG1lbS5oIiwgNjMpOyAqKGludCAqKTA9MDsgfSB3aGlsZSAoMCk7CiAgICAgICAga2FkZHIg
PSBrbWFwKHBhZ2UpOwogICAgICAgIG1lbXNldChrYWRkciArIG9mZnNldCwgMCwgc2l6ZSk7CiAg
ICAgICAgZG8geyB9IHdoaWxlICgwKTsKfQoKCgoKc3RhdGljIGlubGluZSB2b2lkIG1lbWNsZWFy
X2hpZ2hwYWdlX2ZsdXNoKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LCB1
bnNpZ25lZCBpbnQgc2l6ZSkKewogICAgICAgIGNoYXIgKmthZGRyOwoKICAgICAgICBpZiAob2Zm
c2V0ICsgc2l6ZSA+ICgxVUwgPDwgMTQpKQogICAgICAgICAgICAgICAgZG8geyBwcmludGtfUnNt
cF84MjdkNTgwNygia2VybmVsIEJVRyBhdCAlczolZCFcbiIsICIvdXNyL2xvY2FsL3NyYy9idWls
ZC9pbmNsdWRlL2xpbnV4L2hpZ2htZW0uaCIsIDc3KTsgKihpbnQgKikwPTA7IH0gd2hpbGUgKDAp
OwogICAgICAgIGthZGRyID0ga21hcChwYWdlKTsKICAgICAgICBtZW1zZXQoa2FkZHIgKyBvZmZz
ZXQsIDAsIHNpemUpOwogICAgICAgIGRvIHsgfSB3aGlsZSAoMCk7CiAgICAgICAgZG8geyB9IHdo
aWxlICgwKTsKfQoKc3RhdGljIGlubGluZSB2b2lkIGNvcHlfdXNlcl9oaWdocGFnZShzdHJ1Y3Qg
cGFnZSAqdG8sIHN0cnVjdCBwYWdlICpmcm9tLCB1bnNpZ25lZCBsb25nIHZhZGRyKQp7CiAgICAg
ICAgY2hhciAqdmZyb20sICp2dG87CgogICAgICAgIHZmcm9tID0ga21hcChmcm9tKTsKICAgICAg
ICB2dG8gPSBrbWFwKHRvKTsKICAgICAgICBjb3B5X3VzZXJfcGFnZSh2dG8sIHZmcm9tLCB2YWRk
ciwgdG8pOwogICAgICAgIGRvIHsgfSB3aGlsZSAoMCk7CiAgICAgICAgZG8geyB9IHdoaWxlICgw
KTsKfQoKc3RhdGljIGlubGluZSB2b2lkIGNvcHlfaGlnaHBhZ2Uoc3RydWN0IHBhZ2UgKnRvLCBz
dHJ1Y3QgcGFnZSAqZnJvbSkKewogICAgICAgIGNoYXIgKnZmcm9tLCAqdnRvOwoKICAgICAgICB2
ZnJvbSA9IGttYXAoZnJvbSk7CiAgICAgICAgdnRvID0ga21hcCh0byk7CiAgICAgICAgY29weV9w
YWdlKHZ0bywgdmZyb20pOwogICAgICAgIGRvIHsgfSB3aGlsZSAoMCk7CiAgICAgICAgZG8geyB9
IHdoaWxlICgwKTsKfQojIDE3ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3Bh
Z2VtYXAuaCIgMgojIDI2ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3BhZ2Vt
YXAuaCIKI2RlZmluZSBQQUdFX0NBQ0hFX1NISUZUIFBBR0VfU0hJRlQKI2RlZmluZSBQQUdFX0NB
Q0hFX1NJWkUgUEFHRV9TSVpFCiNkZWZpbmUgUEFHRV9DQUNIRV9NQVNLIFBBR0VfTUFTSwojZGVm
aW5lIFBBR0VfQ0FDSEVfQUxJR04oYWRkcikgKCgoYWRkcikrUEFHRV9DQUNIRV9TSVpFLTEpJlBB
R0VfQ0FDSEVfTUFTSykKCiNkZWZpbmUgcGFnZV9jYWNoZV9nZXQoeCkgZ2V0X3BhZ2UoeCkKI2Rl
ZmluZSBwYWdlX2NhY2hlX2ZyZWUoeCkgX19mcmVlX3BhZ2UoeCkKI2RlZmluZSBwYWdlX2NhY2hl
X3JlbGVhc2UoeCkgX19mcmVlX3BhZ2UoeCkKCnN0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2UgKnBh
Z2VfY2FjaGVfYWxsb2Moc3RydWN0IGFkZHJlc3Nfc3BhY2UgKngpCnsKICAgICAgICByZXR1cm4g
YWxsb2NfcGFnZXMoeC0+Z2ZwX21hc2ssIDApOwp9CgoKCgojZGVmaW5lIHBhZ2VfY2FjaGVfZW50
cnkoeCkgdmlydF90b19wYWdlKHgpCgpleHRlcm4gdW5zaWduZWQgaW50IHBhZ2VfaGFzaF9iaXRz
X1JzbXBfMDQ5MjViNGU7CiNkZWZpbmUgUEFHRV9IQVNIX0JJVFMgKHBhZ2VfaGFzaF9iaXRzKQoj
ZGVmaW5lIFBBR0VfSEFTSF9TSVpFICgxIDw8IFBBR0VfSEFTSF9CSVRTKQoKZXh0ZXJuIGF0b21p
Y190IHBhZ2VfY2FjaGVfc2l6ZTsKZXh0ZXJuIHN0cnVjdCBwYWdlICoqcGFnZV9oYXNoX3RhYmxl
X1JzbXBfMDc0YmFhN2M7CgpleHRlcm4gdm9pZCBwYWdlX2NhY2hlX2luaXQodW5zaWduZWQgbG9u
Zyk7CiMgNjMgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvcGFnZW1hcC5oIgpl
eHRlcm4gaW5saW5lIHVuc2lnbmVkIGxvbmcgX3BhZ2VfaGFzaGZuKHN0cnVjdCBhZGRyZXNzX3Nw
YWNlICogbWFwcGluZywgdW5zaWduZWQgbG9uZyBpbmRleCkKewojZGVmaW5lIGkgKCgodW5zaWdu
ZWQgbG9uZykgbWFwcGluZykvKHNpemVvZihzdHJ1Y3QgaW5vZGUpICYgfiAoc2l6ZW9mKHN0cnVj
dCBpbm9kZSkgLSAxKSkpCiNkZWZpbmUgcyh4KSAoKHgpKygoeCk+PlBBR0VfSEFTSF9CSVRTKSkK
IHJldHVybiAoKCgoKHVuc2lnbmVkIGxvbmcpIG1hcHBpbmcpLyhzaXplb2Yoc3RydWN0IGlub2Rl
KSAmIH4gKHNpemVvZihzdHJ1Y3QgaW5vZGUpIC0gMSkpKStpbmRleCkrKCgoKCh1bnNpZ25lZCBs
b25nKSBtYXBwaW5nKS8oc2l6ZW9mKHN0cnVjdCBpbm9kZSkgJiB+IChzaXplb2Yoc3RydWN0IGlu
b2RlKSAtIDEpKSkraW5kZXgpPj4ocGFnZV9oYXNoX2JpdHNfUnNtcF8wNDkyNWI0ZSkpKSAmICgo
MSA8PCAocGFnZV9oYXNoX2JpdHNfUnNtcF8wNDkyNWI0ZSkpLTEpOwojdW5kZWYgaQojdW5kZWYg
cwp9CgojZGVmaW5lIHBhZ2VfaGFzaChtYXBwaW5nLCBpbmRleCkgKHBhZ2VfaGFzaF90YWJsZStf
cGFnZV9oYXNoZm4obWFwcGluZyxpbmRleCkpCgpleHRlcm4gc3RydWN0IHBhZ2UgKiBfX2ZpbmRf
Z2V0X3BhZ2Uoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG9mZnNldCwgc3RydWN0IHBhZ2UgKipo
YXNoKTsKZXh0ZXJuIHN0cnVjdCBwYWdlICogX19maW5kX2xvY2tfcGFnZV9Sc21wX2FmYjljYTg0
IChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqIG1hcHBpbmcsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgbG9uZyBpbmRleCwgc3RydWN0IHBhZ2UgKipoYXNoKTsKZXh0ZXJu
IHZvaWQgbG9ja19wYWdlX1JzbXBfN2M1ZjEzYWIoc3RydWN0IHBhZ2UgKnBhZ2UpOwojZGVmaW5l
IGZpbmRfbG9ja19wYWdlKG1hcHBpbmcsIGluZGV4KSBfX2ZpbmRfbG9ja19wYWdlKG1hcHBpbmcs
IGluZGV4LCBwYWdlX2hhc2gobWFwcGluZywgaW5kZXgpKQoKCmV4dGVybiBzdHJ1Y3QgcGFnZSAq
IF9fZmluZF9nZXRfc3dhcGNhY2hlX3BhZ2UgKHN0cnVjdCBhZGRyZXNzX3NwYWNlICogbWFwcGlu
ZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGluZGV4LCBz
dHJ1Y3QgcGFnZSAqKmhhc2gpOwojZGVmaW5lIGZpbmRfZ2V0X3N3YXBjYWNoZV9wYWdlKG1hcHBp
bmcsIGluZGV4KSBfX2ZpbmRfZ2V0X3N3YXBjYWNoZV9wYWdlKG1hcHBpbmcsIGluZGV4LCBwYWdl
X2hhc2gobWFwcGluZywgaW5kZXgpKQoKCmV4dGVybiB2b2lkIF9fYWRkX3BhZ2VfdG9faGFzaF9x
dWV1ZShzdHJ1Y3QgcGFnZSAqIHBhZ2UsIHN0cnVjdCBwYWdlICoqcCk7CgpleHRlcm4gdm9pZCBh
ZGRfdG9fcGFnZV9jYWNoZShzdHJ1Y3QgcGFnZSAqIHBhZ2UsIHN0cnVjdCBhZGRyZXNzX3NwYWNl
ICptYXBwaW5nLCB1bnNpZ25lZCBsb25nIGluZGV4KTsKZXh0ZXJuIHZvaWQgYWRkX3RvX3BhZ2Vf
Y2FjaGVfbG9ja2VkKHN0cnVjdCBwYWdlICogcGFnZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h
cHBpbmcsIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwoKZXh0ZXJuIHZvaWQgX19fd2FpdF9vbl9wYWdl
X1JzbXBfMDRkNGJkMDIoc3RydWN0IHBhZ2UgKik7CgpleHRlcm4gaW5saW5lIHZvaWQgd2FpdF9v
bl9wYWdlKHN0cnVjdCBwYWdlICogcGFnZSkKewogICAgICAgIGlmICh0ZXN0X2JpdCgwLCAmKHBh
Z2UpLT5mbGFncykpCiAgICAgICAgICAgICAgICBfX193YWl0X29uX3BhZ2VfUnNtcF8wNGQ0YmQw
MihwYWdlKTsKfQoKZXh0ZXJuIHN0cnVjdCBwYWdlICogZ3JhYl9jYWNoZV9wYWdlX1JzbXBfMzk4
MDlhZTEgKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIHVuc2lnbmVkIGxvbmcpOwoKdHlwZWRlZiBp
bnQgZmlsbGVyX3Qodm9pZCAqLCBzdHJ1Y3QgcGFnZSopOwoKZXh0ZXJuIHN0cnVjdCBwYWdlICpy
ZWFkX2NhY2hlX3BhZ2VfUnNtcF82ODBhMGU4OChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCB1bnNp
Z25lZCBsb25nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGxlcl90ICosIHZv
aWQgKik7CiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9sb2Nrcy5oIiAy
CgoKCgoKCmV4dGVybiB2b2lkIF9fd2FpdF9vbl9idWZmZXJfUnNtcF80NmM4ZjNlZChzdHJ1Y3Qg
YnVmZmVyX2hlYWQgKik7CgpleHRlcm4gaW5saW5lIHZvaWQgd2FpdF9vbl9idWZmZXIoc3RydWN0
IGJ1ZmZlcl9oZWFkICogYmgpCnsKICAgICAgICBpZiAodGVzdF9iaXQoQkhfTG9jaywgJmJoLT5i
X3N0YXRlKSkKICAgICAgICAgICAgICAgIF9fd2FpdF9vbl9idWZmZXJfUnNtcF80NmM4ZjNlZChi
aCk7Cn0KCmV4dGVybiBpbmxpbmUgdm9pZCBsb2NrX2J1ZmZlcihzdHJ1Y3QgYnVmZmVyX2hlYWQg
KiBiaCkKewogICAgICAgIHdoaWxlICh0ZXN0X2FuZF9zZXRfYml0KEJIX0xvY2ssICZiaC0+Yl9z
dGF0ZSkpCiAgICAgICAgICAgICAgICBfX3dhaXRfb25fYnVmZmVyX1JzbXBfNDZjOGYzZWQoYmgp
Owp9CgpleHRlcm4gdm9pZCB1bmxvY2tfYnVmZmVyX1JzbXBfNDEwODBiMTcoc3RydWN0IGJ1ZmZl
cl9oZWFkICpiaCk7CgoKCgoKCgpleHRlcm4gaW5saW5lIHZvaWQgbG9ja19zdXBlcihzdHJ1Y3Qg
c3VwZXJfYmxvY2sgKiBzYikKewogICAgICAgIGRvd24oJnNiLT5zX2xvY2spOwp9CgpleHRlcm4g
aW5saW5lIHZvaWQgdW5sb2NrX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqIHNiKQp7CiAgICAg
ICAgdXAoJnNiLT5zX2xvY2spOwp9CiMgNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9kZXZmc19mc19rZXJuZWwuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgva2Rldl90LmgiIDEKIyA4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2RldmZzX2ZzX2tlcm5lbC5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC90eXBlcy5oIiAxCiMgOSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9kZXZmc19mc19rZXJuZWwuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2FzbS9zZW1hcGhvcmUuaCIgMQojIDExICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xp
bnV4L2RldmZzX2ZzX2tlcm5lbC5oIiAyCgojZGVmaW5lIERFVkZTX1NVUEVSX01BR0lDIDB4MTM3
MwoKI2RlZmluZSBJU19ERVZGU19JTk9ERShpbm9kZSkgKERFVkZTX1NVUEVSX01BR0lDID09IChp
bm9kZSktPmlfc2ItPnNfbWFnaWMpCgojZGVmaW5lIERFVkZTX01JTk9SKGlub2RlKSAoe3Vuc2ln
bmVkIGludCBtOyAoKGlub2RlKS0+aV9zYiAmJiAoKGlub2RlKS0+aV9zYi0+c19tYWdpYz09REVW
RlNfU1VQRVJfTUFHSUMpICYmIChkZXZmc19nZXRfbWFqX21pbihkZXZmc19nZXRfaGFuZGxlX2Zy
b21faW5vZGUoKGlub2RlKSksTlVMTCwmbSk9PTApICkgPyBtIDogTUlOT1IoKGlub2RlKS0+cl9k
ZXYpOyB9KQoKCgoKCgoKI2RlZmluZSBERVZGU19GTF9OT05FIDB4MDAwCgojZGVmaW5lIERFVkZT
X0ZMX0FVVE9fT1dORVIgMHgwMDEKCgoKCgoKI2RlZmluZSBERVZGU19GTF9TSE9XX1VOUkVHIDB4
MDAyCgojZGVmaW5lIERFVkZTX0ZMX0hJREUgMHgwMDQKI2RlZmluZSBERVZGU19GTF9BVVRPX0RF
Vk5VTSAweDAwOAoKI2RlZmluZSBERVZGU19GTF9BT1BFTl9OT1RJRlkgMHgwMTAKCiNkZWZpbmUg
REVWRlNfRkxfUkVNT1ZBQkxFIDB4MDIwCiNkZWZpbmUgREVWRlNfRkxfV0FJVCAweDA0MAojZGVm
aW5lIERFVkZTX0ZMX05PX1BFUlNJU1RFTkNFIDB4MDgwCiNkZWZpbmUgREVWRlNfRkxfQ1VSUkVO
VF9PV05FUiAweDEwMAojZGVmaW5lIERFVkZTX0ZMX0RFRkFVTFQgREVWRlNfRkxfTk9ORQoKCiNk
ZWZpbmUgREVWRlNfU1BFQ0lBTF9DSFIgMAojZGVmaW5lIERFVkZTX1NQRUNJQUxfQkxLIDEKCnR5
cGVkZWYgc3RydWN0IGRldmZzX2VudHJ5ICogZGV2ZnNfaGFuZGxlX3Q7CgoKCgoKI2RlZmluZSBS
T09UX0RFVklDRV9OQU1FIHJvb3RfZGV2aWNlX25hbWUKIyAxMzIgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvZGV2ZnNfZnNfa2VybmVsLmgiCnN0cnVjdCB1bmlxdWVfbnVtc3Bh
Y2UKewogICAgY2hhciBkdW1teTsKfTsKCiNkZWZpbmUgVU5JUVVFX05VTUJFUlNQQUNFX0lOSVRJ
QUxJU0VSIHswfQoKc3RhdGljIGlubGluZSBkZXZmc19oYW5kbGVfdCBkZXZmc19yZWdpc3Rlcl9S
c21wXzY2MGViYzA3IChkZXZmc19oYW5kbGVfdCBkaXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1ham9yLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg
bWlub3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVtb2Rl
X3QgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9p
ZCAqb3BzLCB2b2lkICppbmZvKQp7CiAgICByZXR1cm4gKCh2b2lkICopMCk7Cn0Kc3RhdGljIGlu
bGluZSB2b2lkIGRldmZzX3VucmVnaXN0ZXJfUnNtcF81YjBjODVlYyAoZGV2ZnNfaGFuZGxlX3Qg
ZGUpCnsKICAgIHJldHVybjsKfQpzdGF0aWMgaW5saW5lIGludCBkZXZmc19ta19zeW1saW5rX1Jz
bXBfM2Y2YmI1MTIgKGRldmZzX2hhbmRsZV90IGRpciwgY29uc3QgY2hhciAqbmFtZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLCBjb25zdCBj
aGFyICpsaW5rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZmc19oYW5k
bGVfdCAqaGFuZGxlLCB2b2lkICppbmZvKQp7CiAgICByZXR1cm4gMDsKfQpzdGF0aWMgaW5saW5l
IGRldmZzX2hhbmRsZV90IGRldmZzX21rX2Rpcl9Sc21wX2M3NGVmMzc0IChkZXZmc19oYW5kbGVf
dCBkaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj
aGFyICpuYW1lLCB2b2lkICppbmZvKQp7CiAgICByZXR1cm4gKCh2b2lkICopMCk7Cn0Kc3RhdGlj
IGlubGluZSBkZXZmc19oYW5kbGVfdCBkZXZmc19maW5kX2hhbmRsZV9Sc21wXzZhNGFkZDQxIChk
ZXZmc19oYW5kbGVfdCBkaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtYWpvciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1pbm9yLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIHR5cGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0cmF2ZXJzZV9z
eW1saW5rcykKewogICAgcmV0dXJuICgodm9pZCAqKTApOwp9CnN0YXRpYyBpbmxpbmUgaW50IGRl
dmZzX2dldF9mbGFnc19Sc21wXzhhNzEzYjVlIChkZXZmc19oYW5kbGVfdCBkZSwgdW5zaWduZWQg
aW50ICpmbGFncykKewogICAgcmV0dXJuIDA7Cn0Kc3RhdGljIGlubGluZSBpbnQgZGV2ZnNfc2V0
X2ZsYWdzX1JzbXBfN2NlYzg1MTUgKGRldmZzX2hhbmRsZV90IGRlLCB1bnNpZ25lZCBpbnQgZmxh
Z3MpCnsKICAgIHJldHVybiAwOwp9CnN0YXRpYyBpbmxpbmUgaW50IGRldmZzX2dldF9tYWpfbWlu
X1JzbXBfNjRiMjJiNWQgKGRldmZzX2hhbmRsZV90IGRlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICptYWpvciwgdW5zaWduZWQgaW50ICptaW5vcikK
ewogICAgcmV0dXJuIDA7Cn0Kc3RhdGljIGlubGluZSBkZXZmc19oYW5kbGVfdCBkZXZmc19nZXRf
aGFuZGxlX2Zyb21faW5vZGVfUnNtcF8yNWFjOGY3ZCAoc3RydWN0IGlub2RlICppbm9kZSkKewog
ICAgcmV0dXJuICgodm9pZCAqKTApOwp9CnN0YXRpYyBpbmxpbmUgaW50IGRldmZzX2dlbmVyYXRl
X3BhdGhfUnNtcF9mYTg3MDdiMSAoZGV2ZnNfaGFuZGxlX3QgZGUsIGNoYXIgKnBhdGgsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBidWZsZW4pCnsKICAgIHJldHVy
biAtMzg7Cn0Kc3RhdGljIGlubGluZSB2b2lkICpkZXZmc19nZXRfb3BzX1JzbXBfMzc4ZDA3ZmQg
KGRldmZzX2hhbmRsZV90IGRlKQp7CiAgICByZXR1cm4gKCh2b2lkICopMCk7Cn0Kc3RhdGljIGlu
bGluZSBpbnQgZGV2ZnNfc2V0X2ZpbGVfc2l6ZV9Sc21wXzk2NjMwYzk4IChkZXZmc19oYW5kbGVf
dCBkZSwgdW5zaWduZWQgbG9uZyBzaXplKQp7CiAgICByZXR1cm4gLTM4Owp9CnN0YXRpYyBpbmxp
bmUgdm9pZCAqZGV2ZnNfZ2V0X2luZm9fUnNtcF9lNzY1M2Y2MCAoZGV2ZnNfaGFuZGxlX3QgZGUp
CnsKICAgIHJldHVybiAoKHZvaWQgKikwKTsKfQpzdGF0aWMgaW5saW5lIGludCBkZXZmc19zZXRf
aW5mb19Sc21wXzk2ODkxM2NkIChkZXZmc19oYW5kbGVfdCBkZSwgdm9pZCAqaW5mbykKewogICAg
cmV0dXJuIDA7Cn0Kc3RhdGljIGlubGluZSBkZXZmc19oYW5kbGVfdCBkZXZmc19nZXRfcGFyZW50
X1JzbXBfYWE0Yjg1MzcgKGRldmZzX2hhbmRsZV90IGRlKQp7CiAgICByZXR1cm4gKCh2b2lkICop
MCk7Cn0Kc3RhdGljIGlubGluZSBkZXZmc19oYW5kbGVfdCBkZXZmc19nZXRfZmlyc3RfY2hpbGRf
UnNtcF9mY2I5MjJiNiAoZGV2ZnNfaGFuZGxlX3QgZGUpCnsKICAgIHJldHVybiAoKHZvaWQgKikw
KTsKfQpzdGF0aWMgaW5saW5lIGRldmZzX2hhbmRsZV90IGRldmZzX2dldF9uZXh0X3NpYmxpbmdf
UnNtcF8yNzhkZGU2NyAoZGV2ZnNfaGFuZGxlX3QgZGUpCnsKICAgIHJldHVybiAoKHZvaWQgKikw
KTsKfQpzdGF0aWMgaW5saW5lIHZvaWQgZGV2ZnNfYXV0b191bnJlZ2lzdGVyX1JzbXBfNThkMjRl
YzMgKGRldmZzX2hhbmRsZV90IG1hc3RlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGV2ZnNfaGFuZGxlX3Qgc2xhdmUpCnsKICAgIHJldHVybjsKfQpzdGF0aWMg
aW5saW5lIGRldmZzX2hhbmRsZV90IGRldmZzX2dldF91bnJlZ2lzdGVyX3NsYXZlX1JzbXBfYjkx
YThmZjAgKGRldmZzX2hhbmRsZV90IG1hc3RlcikKewogICAgcmV0dXJuICgodm9pZCAqKTApOwp9
CnN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqZGV2ZnNfZ2V0X25hbWVfUnNtcF8zYmE0YTFjNSAo
ZGV2ZnNfaGFuZGxlX3QgZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGludCAqbmFtZWxlbikKewogICAgcmV0dXJuICgodm9pZCAqKTApOwp9CnN0
YXRpYyBpbmxpbmUgaW50IGRldmZzX3JlZ2lzdGVyX2NocmRldl9Sc21wX2VlZmEwZjM2ICh1bnNp
Z25lZCBpbnQgbWFqb3IsIGNvbnN0IGNoYXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZm9wcykKewogICAgcmV0
dXJuIHJlZ2lzdGVyX2NocmRldl9Sc21wXzhlNzA5ZTMzIChtYWpvciwgbmFtZSwgZm9wcyk7Cn0K
c3RhdGljIGlubGluZSBpbnQgZGV2ZnNfcmVnaXN0ZXJfYmxrZGV2X1JzbXBfZTkzZDMzOTAgKHVu
c2lnbmVkIGludCBtYWpvciwgY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYmxvY2tfZGV2aWNlX29wZXJhdGlvbnMgKmJkb3Bz
KQp7CiAgICByZXR1cm4gcmVnaXN0ZXJfYmxrZGV2X1JzbXBfNWY5ZmI5ZTkgKG1ham9yLCBuYW1l
LCBiZG9wcyk7Cn0Kc3RhdGljIGlubGluZSBpbnQgZGV2ZnNfdW5yZWdpc3Rlcl9jaHJkZXZfUnNt
cF83N2YzZTBjZSAodW5zaWduZWQgaW50IG1ham9yLGNvbnN0IGNoYXIgKm5hbWUpCnsKICAgIHJl
dHVybiB1bnJlZ2lzdGVyX2NocmRldl9Sc21wX2MxOTJkNDkxIChtYWpvciwgbmFtZSk7Cn0Kc3Rh
dGljIGlubGluZSBpbnQgZGV2ZnNfdW5yZWdpc3Rlcl9ibGtkZXZfUnNtcF81Y2EwZjBmMCAodW5z
aWduZWQgaW50IG1ham9yLGNvbnN0IGNoYXIgKm5hbWUpCnsKICAgIHJldHVybiB1bnJlZ2lzdGVy
X2Jsa2Rldl9Sc21wX2VhYzFjNGFmIChtYWpvciwgbmFtZSk7Cn0KCnN0YXRpYyBpbmxpbmUgdm9p
ZCBkZXZmc19yZWdpc3Rlcl90YXBlX1JzbXBfYjhkNjE4ZTggKGRldmZzX2hhbmRsZV90IGRlKQp7
CiAgICByZXR1cm47Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBkZXZmc19yZWdpc3Rlcl9zZXJpZXNf
UnNtcF8zYWYxYzY2MCAoZGV2ZnNfaGFuZGxlX3QgZGlyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb3JtYXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBudW1fZW50cmllcywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbWFq
b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu
dCBtaW5vcl9zdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW1vZGVfdCBtb2RlLCB2b2lkICpvcHMsIHZvaWQgKmluZm8pCnsKICAgIHJldHVybjsKfQoKc3Rh
dGljIGlubGluZSBpbnQgZGV2ZnNfYWxsb2NfbWFqb3JfUnNtcF8xOTBlM2JiYyAoY2hhciB0eXBl
KQp7CiAgICByZXR1cm4gLTE7Cn0KCnN0YXRpYyBpbmxpbmUgdm9pZCBkZXZmc19kZWFsbG9jX21h
am9yX1JzbXBfY2U5ZGU0MWQgKGNoYXIgdHlwZSwgaW50IG1ham9yKQp7CiAgICByZXR1cm47Cn0K
CnN0YXRpYyBpbmxpbmUga2Rldl90IGRldmZzX2FsbG9jX2Rldm51bV9Sc21wXzBiMzVjNTdmIChj
aGFyIHR5cGUpCnsKICAgIHJldHVybiAwOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgZGV2ZnNfZGVh
bGxvY19kZXZudW1fUnNtcF83NGU4NTZlOSAoY2hhciB0eXBlLCBrZGV2X3QgZGV2bnVtKQp7CiAg
ICByZXR1cm47Cn0KCnN0YXRpYyBpbmxpbmUgaW50IGRldmZzX2FsbG9jX3VuaXF1ZV9udW1iZXJf
UnNtcF80NDRmNDEyZCAoc3RydWN0IHVuaXF1ZV9udW1zcGFjZSAqc3BhY2UpCnsKICAgIHJldHVy
biAtMTsKfQoKc3RhdGljIGlubGluZSB2b2lkIGRldmZzX2RlYWxsb2NfdW5pcXVlX251bWJlcl9S
c21wXzliZjNmZjA4IChzdHJ1Y3QgdW5pcXVlX251bXNwYWNlICpzcGFjZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bWJlcikKewogICAgcmV0
dXJuOwp9CgpzdGF0aWMgaW5saW5lIHZvaWQgbW91bnRfZGV2ZnNfZnMgKHZvaWQpCnsKICAgIHJl
dHVybjsKfQpzdGF0aWMgaW5saW5lIHZvaWQgZGV2ZnNfbWFrZV9yb290IChjb25zdCBjaGFyICpu
YW1lKQp7CiAgICByZXR1cm47Cn0KIyA1MyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9nZW5oZC5oIiAyCgpzdHJ1Y3QgaGRfc3RydWN0IHsKICAgICAgICBsb25nIHN0YXJ0X3Nl
Y3Q7CiAgICAgICAgbG9uZyBucl9zZWN0czsKICAgICAgICBkZXZmc19oYW5kbGVfdCBkZTsKICAg
ICAgICBpbnQgbnVtYmVyOwoKCgp9OwoKI2RlZmluZSBHRU5IRF9GTF9SRU1PVkFCTEUgMQoKc3Ry
dWN0IGdlbmRpc2sgewogICAgICAgIGludCBtYWpvcjsKICAgICAgICBjb25zdCBjaGFyICptYWpv
cl9uYW1lOwogICAgICAgIGludCBtaW5vcl9zaGlmdDsKCiAgICAgICAgaW50IG1heF9wOwoKICAg
ICAgICBzdHJ1Y3QgaGRfc3RydWN0ICpwYXJ0OwogICAgICAgIGludCAqc2l6ZXM7CiAgICAgICAg
aW50IG5yX3JlYWw7CgogICAgICAgIHZvaWQgKnJlYWxfZGV2aWNlczsKICAgICAgICBzdHJ1Y3Qg
Z2VuZGlzayAqbmV4dDsKICAgICAgICBzdHJ1Y3QgYmxvY2tfZGV2aWNlX29wZXJhdGlvbnMgKmZv
cHM7CgogICAgICAgIGRldmZzX2hhbmRsZV90ICpkZV9hcnI7CiAgICAgICAgY2hhciAqZmxhZ3M7
Cn07CiMgMjQwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2dlbmhkLmgiCmV4
dGVybiBzdHJ1Y3QgZ2VuZGlzayAqZ2VuZGlza19oZWFkX1JzbXBfZDVkN2MwMzE7CgpjaGFyICpk
aXNrX25hbWVfUnNtcF9mNDg0NzEwMyAoc3RydWN0IGdlbmRpc2sgKmhkLCBpbnQgbWlub3IsIGNo
YXIgKmJ1Zik7CgpleHRlcm4gdm9pZCBkZXZmc19yZWdpc3Rlcl9wYXJ0aXRpb25zX1JzbXBfNDgy
OWY0NTIgKHN0cnVjdCBnZW5kaXNrICpkZXYsIGludCBtaW5vciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IHVucmVnaXN0ZXIpOwoKCgoKCgpzdGF0aWMgaW5saW5l
IHVuc2lnbmVkIGludCBkaXNrX2luZGV4IChrZGV2X3QgZGV2KQp7CiAgICAgICAgaW50IG1ham9y
ID0gKCh1bnNpZ25lZCBpbnQpICgoZGV2KSA+PiA4KSk7CiAgICAgICAgaW50IG1pbm9yID0gKCh1
bnNpZ25lZCBpbnQpICgoZGV2KSAmICgoMVUgPDwgOCkgLSAxKSkpOwogICAgICAgIHVuc2lnbmVk
IGludCBpbmRleDsKCiAgICAgICAgc3dpdGNoIChtYWpvcikgewogICAgICAgICAgICAgICAgY2Fz
ZSA0OCArMDoKICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSAobWlub3IgJiAweDAwZjgp
ID4+IDM7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2Fz
ZSA4OgogICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IChtaW5vciAmIDB4MDBmMCkgPj4g
NDsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDM6
CiAgICAgICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9
IChtaW5vciAmIDB4MDA0MCkgPj4gNjsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICBjYXNlIDIyOgogICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9ICgo
bWlub3IgJiAweDAwNDApID4+IDYpICsgMjsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
MDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGluZGV4Owp9CiMgNyAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9ibGtkZXYuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvdHF1ZXVlLmgiIDEKIyA4ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNs
dWRlL2xpbnV4L2Jsa2Rldi5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9s
aW51eC9saXN0LmgiIDEKIyA5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Js
a2Rldi5oIiAyCgpzdHJ1Y3QgcmVxdWVzdF9xdWV1ZTsKdHlwZWRlZiBzdHJ1Y3QgcmVxdWVzdF9x
dWV1ZSByZXF1ZXN0X3F1ZXVlX3Q7CnN0cnVjdCBlbGV2YXRvcl9zOwp0eXBlZGVmIHN0cnVjdCBl
bGV2YXRvcl9zIGVsZXZhdG9yX3Q7CgoKCgoKCgpzdHJ1Y3QgcmVxdWVzdCB7CiAgICAgICAgc3Ry
dWN0IGxpc3RfaGVhZCBxdWV1ZTsKICAgICAgICBpbnQgZWxldmF0b3Jfc2VxdWVuY2U7CiAgICAg
ICAgc3RydWN0IGxpc3RfaGVhZCB0YWJsZTsKCiAgICAgICAgdm9sYXRpbGUgaW50IHJxX3N0YXR1
czsKI2RlZmluZSBSUV9JTkFDVElWRSAoLTEpCiNkZWZpbmUgUlFfQUNUSVZFIDEKI2RlZmluZSBS
UV9TQ1NJX0JVU1kgMHhmZmZmCiNkZWZpbmUgUlFfU0NTSV9ET05FIDB4ZmZmZQojZGVmaW5lIFJR
X1NDU0lfRElTQ09OTkVDVElORyAweGZmZTAKCiAgICAgICAga2Rldl90IHJxX2RldjsKICAgICAg
ICBpbnQgY21kOwogICAgICAgIGludCBlcnJvcnM7CiAgICAgICAgdW5zaWduZWQgbG9uZyBzZWN0
b3I7CiAgICAgICAgdW5zaWduZWQgbG9uZyBucl9zZWN0b3JzOwogICAgICAgIHVuc2lnbmVkIGxv
bmcgaGFyZF9zZWN0b3IsIGhhcmRfbnJfc2VjdG9yczsKICAgICAgICB1bnNpZ25lZCBpbnQgbnJf
c2VnbWVudHM7CiAgICAgICAgdW5zaWduZWQgaW50IG5yX2h3X3NlZ21lbnRzOwogICAgICAgIHVu
c2lnbmVkIGxvbmcgY3VycmVudF9ucl9zZWN0b3JzOwogICAgICAgIHZvaWQgKiBzcGVjaWFsOwog
ICAgICAgIGNoYXIgKiBidWZmZXI7CiAgICAgICAgc3RydWN0IGNvbXBsZXRpb24gKiB3YWl0aW5n
OwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqIGJoOwogICAgICAgIHN0cnVjdCBidWZmZXJf
aGVhZCAqIGJodGFpbDsKICAgICAgICByZXF1ZXN0X3F1ZXVlX3QgKnE7Cn07CgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvZWxldmF0b3IuaCIgMQoKI2RlZmluZSBfTElO
VVhfRUxFVkFUT1JfSAoKdHlwZWRlZiB2b2lkIChlbGV2YXRvcl9mbikgKHN0cnVjdCByZXF1ZXN0
ICosIGVsZXZhdG9yX3QgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBsaXN0
X2hlYWQgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKiwg
aW50KTsKCnR5cGVkZWYgaW50IChlbGV2YXRvcl9tZXJnZV9mbikgKHJlcXVlc3RfcXVldWVfdCAq
LCBzdHJ1Y3QgcmVxdWVzdCAqKiwgc3RydWN0IGxpc3RfaGVhZCAqLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiwgaW50LCBpbnQpOwoKdHlwZWRl
ZiB2b2lkIChlbGV2YXRvcl9tZXJnZV9jbGVhbnVwX2ZuKSAocmVxdWVzdF9xdWV1ZV90ICosIHN0
cnVjdCByZXF1ZXN0ICosIGludCk7Cgp0eXBlZGVmIHZvaWQgKGVsZXZhdG9yX21lcmdlX3JlcV9m
bikgKHN0cnVjdCByZXF1ZXN0ICosIHN0cnVjdCByZXF1ZXN0ICopOwoKc3RydWN0IGVsZXZhdG9y
X3MKewogICAgICAgIGludCByZWFkX2xhdGVuY3k7CiAgICAgICAgaW50IHdyaXRlX2xhdGVuY3k7
CgogICAgICAgIGVsZXZhdG9yX21lcmdlX2ZuICplbGV2YXRvcl9tZXJnZV9mbjsKICAgICAgICBl
bGV2YXRvcl9tZXJnZV9jbGVhbnVwX2ZuICplbGV2YXRvcl9tZXJnZV9jbGVhbnVwX2ZuOwogICAg
ICAgIGVsZXZhdG9yX21lcmdlX3JlcV9mbiAqZWxldmF0b3JfbWVyZ2VfcmVxX2ZuOwoKICAgICAg
ICB1bnNpZ25lZCBpbnQgcXVldWVfSUQ7Cn07CgppbnQgZWxldmF0b3Jfbm9vcF9tZXJnZShyZXF1
ZXN0X3F1ZXVlX3QgKiwgc3RydWN0IHJlcXVlc3QgKiosIHN0cnVjdCBsaXN0X2hlYWQgKiwgc3Ry
dWN0IGJ1ZmZlcl9oZWFkICosIGludCwgaW50KTsKdm9pZCBlbGV2YXRvcl9ub29wX21lcmdlX2Ns
ZWFudXAocmVxdWVzdF9xdWV1ZV90ICosIHN0cnVjdCByZXF1ZXN0ICosIGludCk7CnZvaWQgZWxl
dmF0b3Jfbm9vcF9tZXJnZV9yZXEoc3RydWN0IHJlcXVlc3QgKiwgc3RydWN0IHJlcXVlc3QgKik7
CgppbnQgZWxldmF0b3JfbGludXNfbWVyZ2UocmVxdWVzdF9xdWV1ZV90ICosIHN0cnVjdCByZXF1
ZXN0ICoqLCBzdHJ1Y3QgbGlzdF9oZWFkICosIHN0cnVjdCBidWZmZXJfaGVhZCAqLCBpbnQsIGlu
dCk7CnZvaWQgZWxldmF0b3JfbGludXNfbWVyZ2VfY2xlYW51cChyZXF1ZXN0X3F1ZXVlX3QgKiwg
c3RydWN0IHJlcXVlc3QgKiwgaW50KTsKdm9pZCBlbGV2YXRvcl9saW51c19tZXJnZV9yZXEoc3Ry
dWN0IHJlcXVlc3QgKiwgc3RydWN0IHJlcXVlc3QgKik7Cgp0eXBlZGVmIHN0cnVjdCBibGtlbHZf
aW9jdGxfYXJnX3MgewogICAgICAgIGludCBxdWV1ZV9JRDsKICAgICAgICBpbnQgcmVhZF9sYXRl
bmN5OwogICAgICAgIGludCB3cml0ZV9sYXRlbmN5OwogICAgICAgIGludCBtYXhfYm9tYl9zZWdt
ZW50czsKfSBibGtlbHZfaW9jdGxfYXJnX3Q7CgojZGVmaW5lIEJMS0VMVkdFVCBfSU9SKDB4MTIs
MTA2LHNpemVvZihibGtlbHZfaW9jdGxfYXJnX3QpKQojZGVmaW5lIEJMS0VMVlNFVCBfSU9XKDB4
MTIsMTA3LHNpemVvZihibGtlbHZfaW9jdGxfYXJnX3QpKQoKZXh0ZXJuIGludCBibGtlbHZnZXRf
aW9jdGwoZWxldmF0b3JfdCAqLCBibGtlbHZfaW9jdGxfYXJnX3QgKik7CmV4dGVybiBpbnQgYmxr
ZWx2c2V0X2lvY3RsKGVsZXZhdG9yX3QgKiwgY29uc3QgYmxrZWx2X2lvY3RsX2FyZ190ICopOwoK
ZXh0ZXJuIHZvaWQgZWxldmF0b3JfaW5pdChlbGV2YXRvcl90ICosIGVsZXZhdG9yX3QpOwoKCgoK
I2RlZmluZSBFTEVWQVRPUl9OT19NRVJHRSAwCiNkZWZpbmUgRUxFVkFUT1JfRlJPTlRfTUVSR0Ug
MQojZGVmaW5lIEVMRVZBVE9SX0JBQ0tfTUVSR0UgMgoKCgoKCgoKI2RlZmluZSBJTl9PUkRFUihz
MSwgczIpICgoKChzMSktPnJxX2RldiA9PSAoczIpLT5ycV9kZXYgJiYgKHMxKS0+c2VjdG9yIDwg
KHMyKS0+c2VjdG9yKSkgfHwgKHMxKS0+cnFfZGV2IDwgKHMyKS0+cnFfZGV2KQoKCgoKI2RlZmlu
ZSBCSFJRX0lOX09SREVSKGJoLCBycSkgKCgoKGJoKS0+Yl9yZGV2ID09IChycSktPnJxX2RldiAm
JiAoYmgpLT5iX3JzZWN0b3IgPCAocnEpLT5zZWN0b3IpKSB8fCAoYmgpLT5iX3JkZXYgPCAocnEp
LT5ycV9kZXYpCgoKCgpzdGF0aWMgaW5saW5lIGludCBlbGV2YXRvcl9yZXF1ZXN0X2xhdGVuY3ko
ZWxldmF0b3JfdCAqIGVsZXZhdG9yLCBpbnQgcncpCnsKICAgICAgICBpbnQgbGF0ZW5jeTsKCiAg
ICAgICAgbGF0ZW5jeSA9IGVsZXZhdG9yLT5yZWFkX2xhdGVuY3k7CiAgICAgICAgaWYgKHJ3ICE9
IDApCiAgICAgICAgICAgICAgICBsYXRlbmN5ID0gZWxldmF0b3ItPndyaXRlX2xhdGVuY3k7Cgog
ICAgICAgIHJldHVybiBsYXRlbmN5Owp9CgojZGVmaW5lIEVMRVZBVE9SX05PT1AgKChlbGV2YXRv
cl90KSB7IDAsIDAsIGVsZXZhdG9yX25vb3BfbWVyZ2UsIGVsZXZhdG9yX25vb3BfbWVyZ2VfY2xl
YW51cCwgZWxldmF0b3Jfbm9vcF9tZXJnZV9yZXEsIH0pCiMgOTQgIi91c3IvbG9jYWwvc3JjL2J1
aWxkL2luY2x1ZGUvbGludXgvZWxldmF0b3IuaCIKI2RlZmluZSBFTEVWQVRPUl9MSU5VUyAoKGVs
ZXZhdG9yX3QpIHsgODE5MiwgMTYzODQsIGVsZXZhdG9yX2xpbnVzX21lcmdlLCBlbGV2YXRvcl9s
aW51c19tZXJnZV9jbGVhbnVwLCBlbGV2YXRvcl9saW51c19tZXJnZV9yZXEsIH0pCiMgNTEgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvYmxrZGV2LmgiIDIKCnR5cGVkZWYgaW50
IChtZXJnZV9yZXF1ZXN0X2ZuKSAocmVxdWVzdF9xdWV1ZV90ICpxLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0cnVjdCByZXF1ZXN0ICpyZXEsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQpOwp0eXBlZGVmIGludCAobWVyZ2VfcmVxdWVzdHNfZm4pIChyZXF1ZXN0
X3F1ZXVlX3QgKnEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByZXF1
ZXN0ICpyZXEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByZXF1ZXN0
ICpyZXEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQpOwp0eXBlZGVmIHZv
aWQgKHJlcXVlc3RfZm5fcHJvYykgKHJlcXVlc3RfcXVldWVfdCAqcSk7CnR5cGVkZWYgcmVxdWVz
dF9xdWV1ZV90ICogKHF1ZXVlX3Byb2MpIChrZGV2X3QgZGV2KTsKdHlwZWRlZiBpbnQgKG1ha2Vf
cmVxdWVzdF9mbikgKHJlcXVlc3RfcXVldWVfdCAqcSwgaW50IHJ3LCBzdHJ1Y3QgYnVmZmVyX2hl
YWQgKmJoKTsKdHlwZWRlZiB2b2lkIChwbHVnX2RldmljZV9mbikgKHJlcXVlc3RfcXVldWVfdCAq
cSwga2Rldl90IGRldmljZSk7CnR5cGVkZWYgdm9pZCAodW5wbHVnX2RldmljZV9mbikgKHZvaWQg
KnEpOwoKCgoKCiNkZWZpbmUgUVVFVUVfTlJfUkVRVUVTVFMgODE5MgoKc3RydWN0IHJlcXVlc3Rf
cXVldWUKewoKCgogICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgcmVxdWVzdF9mcmVlbGlzdFsyXTsK
ICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIHBlbmRpbmdfZnJlZWxpc3RbMl07CiAgICAgICAgaW50
IHBlbmRpbmdfZnJlZVsyXTsKCgoKCiAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBxdWV1ZV9oZWFk
OwogICAgICAgIGVsZXZhdG9yX3QgZWxldmF0b3I7CgogICAgICAgIHJlcXVlc3RfZm5fcHJvYyAq
IHJlcXVlc3RfZm47CiAgICAgICAgbWVyZ2VfcmVxdWVzdF9mbiAqIGJhY2tfbWVyZ2VfZm47CiAg
ICAgICAgbWVyZ2VfcmVxdWVzdF9mbiAqIGZyb250X21lcmdlX2ZuOwogICAgICAgIG1lcmdlX3Jl
cXVlc3RzX2ZuICogbWVyZ2VfcmVxdWVzdHNfZm47CiAgICAgICAgbWFrZV9yZXF1ZXN0X2ZuICog
bWFrZV9yZXF1ZXN0X2ZuOwogICAgICAgIHBsdWdfZGV2aWNlX2ZuICogcGx1Z19kZXZpY2VfZm47
CgoKCgogICAgICAgIHZvaWQgKiBxdWV1ZWRhdGE7CgoKCgogICAgICAgIHN0cnVjdCB0cV9zdHJ1
Y3QgcGx1Z190cTsKCgoKCiAgICAgICAgY2hhciBwbHVnZ2VkOwoKCgoKCiAgICAgICAgY2hhciBo
ZWFkX2FjdGl2ZTsKCgoKCgogICAgICAgIHNwaW5sb2NrX3QgcXVldWVfbG9jazsKCgoKCiAgICAg
ICAgd2FpdF9xdWV1ZV9oZWFkX3Qgd2FpdF9mb3JfcmVxdWVzdDsKfTsKCnN0cnVjdCBibGtfZGV2
X3N0cnVjdCB7CgoKCiAgICAgICAgcmVxdWVzdF9xdWV1ZV90IHJlcXVlc3RfcXVldWU7CiAgICAg
ICAgcXVldWVfcHJvYyAqcXVldWU7CiAgICAgICAgdm9pZCAqZGF0YTsKfTsKCnN0cnVjdCBzZWNf
c2l6ZSB7CiAgICAgICAgdW5zaWduZWQgYmxvY2tfc2l6ZTsKICAgICAgICB1bnNpZ25lZCBibG9j
a19zaXplX2JpdHM7Cn07CgoKCgoKCgojZGVmaW5lIEJMS19ERUZBVUxUX1FVRVVFKF9NQUpPUikg
JmJsa19kZXZbX01BSk9SXS5yZXF1ZXN0X3F1ZXVlCgpleHRlcm4gc3RydWN0IHNlY19zaXplICog
YmxrX3NlY1syNTVdOwpleHRlcm4gc3RydWN0IGJsa19kZXZfc3RydWN0IGJsa19kZXZfUnNtcF9m
MTRjNGUyYlsyNTVdOwpleHRlcm4gdm9pZCBncm9rX3BhcnRpdGlvbnNfUnNtcF9jNWI1ZDhiYyhz
dHJ1Y3QgZ2VuZGlzayAqZGV2LCBpbnQgZHJpdmUsIHVuc2lnbmVkIG1pbm9ycywgbG9uZyBzaXpl
KTsKZXh0ZXJuIHZvaWQgcmVnaXN0ZXJfZGlza19Sc21wXzlmMDE4YzQyKHN0cnVjdCBnZW5kaXNr
ICpkZXYsIGtkZXZfdCBmaXJzdCwgdW5zaWduZWQgbWlub3JzLCBzdHJ1Y3QgYmxvY2tfZGV2aWNl
X29wZXJhdGlvbnMgKm9wcywgbG9uZyBzaXplKTsKZXh0ZXJuIHZvaWQgZ2VuZXJpY19tYWtlX3Jl
cXVlc3RfUnNtcF8yNGIzZjNhYShpbnQgcncsIHN0cnVjdCBidWZmZXJfaGVhZCAqIGJoKTsKZXh0
ZXJuIHJlcXVlc3RfcXVldWVfdCAqYmxrX2dldF9xdWV1ZV9Sc21wXzYyZmQyMzgzKGtkZXZfdCBk
ZXYpOwpleHRlcm4gaW5saW5lIHJlcXVlc3RfcXVldWVfdCAqX19ibGtfZ2V0X3F1ZXVlX1JzbXBf
NmVkMmM5ZjEoa2Rldl90IGRldik7CmV4dGVybiB2b2lkIGJsa2Rldl9yZWxlYXNlX3JlcXVlc3Rf
UnNtcF9hNWRkMTVjYyhzdHJ1Y3QgcmVxdWVzdCAqKTsKCgoKCmV4dGVybiB2b2lkIGJsa19pbml0
X3F1ZXVlX1JzbXBfMWRmNDc0MzgocmVxdWVzdF9xdWV1ZV90ICosIHJlcXVlc3RfZm5fcHJvYyAq
KTsKZXh0ZXJuIHZvaWQgYmxrX2NsZWFudXBfcXVldWVfUnNtcF84ZDIwYTcxNihyZXF1ZXN0X3F1
ZXVlX3QgKik7CmV4dGVybiB2b2lkIGJsa19xdWV1ZV9oZWFkYWN0aXZlX1JzbXBfMzlkMTcyYTIo
cmVxdWVzdF9xdWV1ZV90ICosIGludCk7CmV4dGVybiB2b2lkIGJsa19xdWV1ZV9tYWtlX3JlcXVl
c3RfUnNtcF80ZTJiMGI1NShyZXF1ZXN0X3F1ZXVlX3QgKiwgbWFrZV9yZXF1ZXN0X2ZuICopOwpl
eHRlcm4gdm9pZCBnZW5lcmljX3VucGx1Z19kZXZpY2VfUnNtcF9hMmI4MDc1ZSh2b2lkICopOwoK
ZXh0ZXJuIGludCAqIGJsa19zaXplX1JzbXBfYTJlMGEwODJbMjU1XTsKCmV4dGVybiBpbnQgKiBi
bGtzaXplX3NpemVfUnNtcF8yZjMwYjRiNlsyNTVdOwoKZXh0ZXJuIGludCAqIGhhcmRzZWN0X3Np
emVfUnNtcF9jNWY1NjBkOFsyNTVdOwoKZXh0ZXJuIGludCAqIG1heF9yZWFkYWhlYWRfUnNtcF8z
ZTU0ODBhNFsyNTVdOwoKZXh0ZXJuIGludCAqIG1heF9zZWN0b3JzX1JzbXBfNmJmNThlMzNbMjU1
XTsKCmV4dGVybiBpbnQgKiBtYXhfc2VnbWVudHNbMjU1XTsKCmV4dGVybiBhdG9taWNfdCBxdWV1
ZWRfc2VjdG9yc19Sc21wX2MwNDZlOTZiOwoKI2RlZmluZSBNQVhfU0VHTUVOVFMgMTI4CiNkZWZp
bmUgTUFYX1NFQ1RPUlMgMjU1CgojZGVmaW5lIFBhZ2VBbGlnblNpemUoc2l6ZSkgKCgoc2l6ZSkg
KyBQQUdFX1NJWkUgLTEpICYgUEFHRV9NQVNLKQoKCiNkZWZpbmUgTUFYX1JFQURBSEVBRCAzMQoj
ZGVmaW5lIE1JTl9SRUFEQUhFQUQgMwoKI2RlZmluZSBibGtkZXZfZW50cnlfdG9fcmVxdWVzdChl
bnRyeSkgbGlzdF9lbnRyeSgoZW50cnkpLCBzdHJ1Y3QgcmVxdWVzdCwgcXVldWUpCiNkZWZpbmUg
YmxrZGV2X2VudHJ5X25leHRfcmVxdWVzdChlbnRyeSkgYmxrZGV2X2VudHJ5X3RvX3JlcXVlc3Qo
KGVudHJ5KS0+bmV4dCkKI2RlZmluZSBibGtkZXZfZW50cnlfcHJldl9yZXF1ZXN0KGVudHJ5KSBi
bGtkZXZfZW50cnlfdG9fcmVxdWVzdCgoZW50cnkpLT5wcmV2KQojZGVmaW5lIGJsa2Rldl9uZXh0
X3JlcXVlc3QocmVxKSBibGtkZXZfZW50cnlfdG9fcmVxdWVzdCgocmVxKS0+cXVldWUubmV4dCkK
I2RlZmluZSBibGtkZXZfcHJldl9yZXF1ZXN0KHJlcSkgYmxrZGV2X2VudHJ5X3RvX3JlcXVlc3Qo
KHJlcSktPnF1ZXVlLnByZXYpCgpleHRlcm4gdm9pZCBkcml2ZV9zdGF0X2FjY3QgKGtkZXZfdCBk
ZXYsIGludCBydywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGxvbmcgbnJfc2VjdG9ycywgaW50IG5ld19pbyk7CgpzdGF0aWMgaW5saW5lIGludCBnZXRf
aGFyZHNlY3Rfc2l6ZShrZGV2X3QgZGV2KQp7CiAgICAgICAgZXh0ZXJuIGludCAqaGFyZHNlY3Rf
c2l6ZV9Sc21wX2M1ZjU2MGQ4W107CiAgICAgICAgaWYgKGhhcmRzZWN0X3NpemVfUnNtcF9jNWY1
NjBkOFsoKHVuc2lnbmVkIGludCkgKChkZXYpID4+IDgpKV0gIT0gKCh2b2lkICopMCkpCiAgICAg
ICAgICAgICAgICByZXR1cm4gaGFyZHNlY3Rfc2l6ZV9Sc21wX2M1ZjU2MGQ4WygodW5zaWduZWQg
aW50KSAoKGRldikgPj4gOCkpXVsoKHVuc2lnbmVkIGludCkgKChkZXYpICYgKCgxVSA8PCA4KSAt
IDEpKSldOwogICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHJldHVybiA1MTI7Cn0KCiNkZWZp
bmUgYmxrX2ZpbmlzaGVkX2lvKG5zZWN0cykgYXRvbWljX3N1Yihuc2VjdHMsICZxdWV1ZWRfc2Vj
dG9ycyk7IGlmIChhdG9taWNfcmVhZCgmcXVldWVkX3NlY3RvcnMpIDwgMCkgeyBwcmludGsoImJs
b2NrOiBxdWV1ZWRfc2VjdG9ycyA8IDBcbiIpOyBhdG9taWNfc2V0KCZxdWV1ZWRfc2VjdG9ycywg
MCk7IH0KCgoKCgoKI2RlZmluZSBibGtfc3RhcnRlZF9pbyhuc2VjdHMpIGF0b21pY19hZGQobnNl
Y3RzLCAmcXVldWVkX3NlY3RvcnMpOwojIDUxICJmcy91ZGYvc3VwZXIuYyIgMgojIDEgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2xhYi5oIiAxCgoKCgoKCgojZGVmaW5lIF9M
SU5VWF9TTEFCX0gKCgoKdHlwZWRlZiBzdHJ1Y3Qga21lbV9jYWNoZV9zIGttZW1fY2FjaGVfdDsK
CiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9tbS5oIiAxCiMgMTUgIi91
c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCiMgMSAiL3Vzci9sb2Nh
bC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jYWNoZS5oIiAxCiMgMTYgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvc2xhYi5oIiAyCgoKI2RlZmluZSBTTEFCX05PRlMgR0ZQX05P
RlMKI2RlZmluZSBTTEFCX05PSU8gR0ZQX05PSU8KI2RlZmluZSBTTEFCX0FUT01JQyBHRlBfQVRP
TUlDCiNkZWZpbmUgU0xBQl9VU0VSIEdGUF9VU0VSCiNkZWZpbmUgU0xBQl9LRVJORUwgR0ZQX0tF
Uk5FTAojZGVmaW5lIFNMQUJfTkZTIEdGUF9ORlMKI2RlZmluZSBTTEFCX0RNQSBHRlBfRE1BCgoj
ZGVmaW5lIFNMQUJfTEVWRUxfTUFTSyAoX19HRlBfV0FJVHxfX0dGUF9ISUdIfF9fR0ZQX0lPfF9f
R0ZQX0ZTKQojZGVmaW5lIFNMQUJfTk9fR1JPVyAweDAwMDAxMDAwVUwKCgoKCgojZGVmaW5lIFNM
QUJfREVCVUdfRlJFRSAweDAwMDAwMTAwVUwKI2RlZmluZSBTTEFCX0RFQlVHX0lOSVRJQUwgMHgw
MDAwMDIwMFVMCiNkZWZpbmUgU0xBQl9SRURfWk9ORSAweDAwMDAwNDAwVUwKI2RlZmluZSBTTEFC
X1BPSVNPTiAweDAwMDAwODAwVUwKI2RlZmluZSBTTEFCX05PX1JFQVAgMHgwMDAwMTAwMFVMCiNk
ZWZpbmUgU0xBQl9IV0NBQ0hFX0FMSUdOIDB4MDAwMDIwMDBVTAojZGVmaW5lIFNMQUJfQ0FDSEVf
RE1BIDB4MDAwMDQwMDBVTAoKCiNkZWZpbmUgU0xBQl9DVE9SX0NPTlNUUlVDVE9SIDB4MDAxVUwK
I2RlZmluZSBTTEFCX0NUT1JfQVRPTUlDIDB4MDAyVUwKI2RlZmluZSBTTEFCX0NUT1JfVkVSSUZZ
IDB4MDA0VUwKCgpleHRlcm4gdm9pZCBrbWVtX2NhY2hlX2luaXQodm9pZCk7CmV4dGVybiB2b2lk
IGttZW1fY2FjaGVfc2l6ZXNfaW5pdCh2b2lkKTsKCmV4dGVybiBrbWVtX2NhY2hlX3QgKmttZW1f
ZmluZF9nZW5lcmFsX2NhY2hlcF9Sc21wX2ExY2M5N2NmKHNpemVfdCwgaW50IGdmcGZsYWdzKTsK
ZXh0ZXJuIGttZW1fY2FjaGVfdCAqa21lbV9jYWNoZV9jcmVhdGVfUnNtcF9hYjUyYzczMShjb25z
dCBjaGFyICosIHNpemVfdCwgc2l6ZV90LCB1bnNpZ25lZCBsb25nLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqKSh2b2lkICosIGttZW1fY2FjaGVfdCAqLCB1
bnNpZ25lZCBsb25nKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9p
ZCAoKikodm9pZCAqLCBrbWVtX2NhY2hlX3QgKiwgdW5zaWduZWQgbG9uZykpOwpleHRlcm4gaW50
IGttZW1fY2FjaGVfZGVzdHJveV9Sc21wX2RmODNjNjkyKGttZW1fY2FjaGVfdCAqKTsKZXh0ZXJu
IGludCBrbWVtX2NhY2hlX3Nocmlua19Sc21wXzEyZjdjZjA0KGttZW1fY2FjaGVfdCAqKTsKZXh0
ZXJuIHZvaWQgKmttZW1fY2FjaGVfYWxsb2NfUnNtcF83NTgxMDk1NihrbWVtX2NhY2hlX3QgKiwg
aW50KTsKZXh0ZXJuIHZvaWQga21lbV9jYWNoZV9mcmVlX1JzbXBfODkxZjI2ODYoa21lbV9jYWNo
ZV90ICosIHZvaWQgKik7CgpleHRlcm4gdm9pZCAqa21hbGxvY19Sc21wXzZmNmMxY2Y3KHNpemVf
dCwgaW50KTsKZXh0ZXJuIHZvaWQga2ZyZWVfUnNtcF8wMzdhMGNiYShjb25zdCB2b2lkICopOwoK
ZXh0ZXJuIHZvaWQga21lbV9jYWNoZV9yZWFwKGludCk7CmV4dGVybiBpbnQgc2xhYmluZm9fcmVh
ZF9wcm9jKGNoYXIgKnBhZ2UsIGNoYXIgKipzdGFydCwgb2ZmX3Qgb2ZmLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnQgY291bnQsIGludCAqZW9mLCB2b2lkICpkYXRhKTsKZXh0
ZXJuIGludCBzbGFiaW5mb193cml0ZV9wcm9jKHN0cnVjdCBmaWxlICpmaWxlLCBjb25zdCBjaGFy
ICpidWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgY291bnQs
IHZvaWQgKmRhdGEpOwoKCmV4dGVybiBrbWVtX2NhY2hlX3QgKnZtX2FyZWFfY2FjaGVwOwpleHRl
cm4ga21lbV9jYWNoZV90ICptbV9jYWNoZXA7CmV4dGVybiBrbWVtX2NhY2hlX3QgKm5hbWVzX2Nh
Y2hlcF9Sc21wX2QyNTQ2OWI0OwpleHRlcm4ga21lbV9jYWNoZV90ICpmaWxlc19jYWNoZXA7CmV4
dGVybiBrbWVtX2NhY2hlX3QgKmZpbHBfY2FjaGVwOwpleHRlcm4ga21lbV9jYWNoZV90ICpkcXVv
dF9jYWNoZXA7CmV4dGVybiBrbWVtX2NhY2hlX3QgKmJoX2NhY2hlcF9Sc21wX2RjYzBiYjM3Owpl
eHRlcm4ga21lbV9jYWNoZV90ICpmc19jYWNoZXA7CmV4dGVybiBrbWVtX2NhY2hlX3QgKnNpZ2Fj
dF9jYWNoZXA7CiMgNTIgImZzL3VkZi9zdXBlci5jIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9saW51eC9rZXJuZWwuaCIgMQojIDUzICJmcy91ZGYvc3VwZXIuYyIgMgojIDEg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbG9ja3MuaCIgMQojIDU0ICJmcy91
ZGYvc3VwZXIuYyIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9k
dWxlLmgiIDEKCgoKCgoKCiNkZWZpbmUgX0xJTlVYX01PRFVMRV9ICgojIDEgIi91c3IvbG9jYWwv
c3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY29uZmlnLmgiIDEKIyAxMSAiL3Vzci9sb2NhbC9zcmMv
YnVpbGQvaW5jbHVkZS9saW51eC9tb2R1bGUuaCIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxk
L2luY2x1ZGUvbGludXgvc3BpbmxvY2suaCIgMQojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2xpbnV4L21vZHVsZS5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9saXN0LmgiIDEKIyAxMyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51
eC9tb2R1bGUuaCIgMgojIDI1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21v
ZHVsZS5oIgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL2F0b21pYy5oIiAx
CiMgMjYgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlLmgiIDIKCgpz
dHJ1Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5OwoKCnN0cnVjdCBrZXJuZWxfc3ltCnsKICAgICAg
ICB1bnNpZ25lZCBsb25nIHZhbHVlOwogICAgICAgIGNoYXIgbmFtZVs2MF07Cn07CgpzdHJ1Y3Qg
bW9kdWxlX3N5bWJvbAp7CiAgICAgICAgdW5zaWduZWQgbG9uZyB2YWx1ZTsKICAgICAgICBjb25z
dCBjaGFyICpuYW1lOwp9OwoKc3RydWN0IG1vZHVsZV9yZWYKewogICAgICAgIHN0cnVjdCBtb2R1
bGUgKmRlcDsKICAgICAgICBzdHJ1Y3QgbW9kdWxlICpyZWY7CiAgICAgICAgc3RydWN0IG1vZHVs
ZV9yZWYgKm5leHRfcmVmOwp9OwoKCnN0cnVjdCBtb2R1bGVfcGVyc2lzdDsKCnN0cnVjdCBtb2R1
bGUKewogICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZV9vZl9zdHJ1Y3Q7CiAgICAgICAgc3RydWN0
IG1vZHVsZSAqbmV4dDsKICAgICAgICBjb25zdCBjaGFyICpuYW1lOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgc2l6ZTsKCiAgICAgICAgdW5pb24KICAgICAgICB7CiAgICAgICAgICAgICAgICBhdG9t
aWNfdCB1c2Vjb3VudDsKICAgICAgICAgICAgICAgIGxvbmcgcGFkOwogICAgICAgIH0gdWM7Cgog
ICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CgogICAgICAgIHVuc2lnbmVkIG5zeW1zOwogICAg
ICAgIHVuc2lnbmVkIG5kZXBzOwoKICAgICAgICBzdHJ1Y3QgbW9kdWxlX3N5bWJvbCAqc3ltczsK
ICAgICAgICBzdHJ1Y3QgbW9kdWxlX3JlZiAqZGVwczsKICAgICAgICBzdHJ1Y3QgbW9kdWxlX3Jl
ZiAqcmVmczsKICAgICAgICBpbnQgKCppbml0KSh2b2lkKTsKICAgICAgICB2b2lkICgqY2xlYW51
cCkodm9pZCk7CiAgICAgICAgY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqZXhf
dGFibGVfc3RhcnQ7CiAgICAgICAgY29uc3Qgc3RydWN0IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAq
ZXhfdGFibGVfZW5kOwoKCgoKCgogICAgICAgIGNvbnN0IHN0cnVjdCBtb2R1bGVfcGVyc2lzdCAq
cGVyc2lzdF9zdGFydDsKICAgICAgICBjb25zdCBzdHJ1Y3QgbW9kdWxlX3BlcnNpc3QgKnBlcnNp
c3RfZW5kOwogICAgICAgIGludCAoKmNhbl91bmxvYWQpKHZvaWQpOwogICAgICAgIGludCBydW5z
aXplOwogICAgICAgIGNvbnN0IGNoYXIgKmthbGxzeW1zX3N0YXJ0OwogICAgICAgIGNvbnN0IGNo
YXIgKmthbGxzeW1zX2VuZDsKICAgICAgICBjb25zdCBjaGFyICphcmNoZGF0YV9zdGFydDsKICAg
ICAgICBjb25zdCBjaGFyICphcmNoZGF0YV9lbmQ7CiAgICAgICAgY29uc3QgY2hhciAqa2VybmVs
X2RhdGE7Cn07CgpzdHJ1Y3QgbW9kdWxlX2luZm8KewogICAgICAgIHVuc2lnbmVkIGxvbmcgYWRk
cjsKICAgICAgICB1bnNpZ25lZCBsb25nIHNpemU7CiAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFn
czsKICAgICAgICBsb25nIHVzZWNvdW50Owp9OwoKCgojZGVmaW5lIE1PRF9VTklOSVRJQUxJWkVE
IDAKI2RlZmluZSBNT0RfUlVOTklORyAxCiNkZWZpbmUgTU9EX0RFTEVURUQgMgojZGVmaW5lIE1P
RF9BVVRPQ0xFQU4gNAojZGVmaW5lIE1PRF9WSVNJVEVEIDgKI2RlZmluZSBNT0RfVVNFRF9PTkNF
IDE2CiNkZWZpbmUgTU9EX0pVU1RfRlJFRUQgMzIKI2RlZmluZSBNT0RfSU5JVElBTElaSU5HIDY0
CgoKCiNkZWZpbmUgUU1fTU9EVUxFUyAxCiNkZWZpbmUgUU1fREVQUyAyCiNkZWZpbmUgUU1fUkVG
UyAzCiNkZWZpbmUgUU1fU1lNQk9MUyA0CiNkZWZpbmUgUU1fSU5GTyA1CgoKI2RlZmluZSBNT0Rf
Q0FOX1FVRVJZKG1vZCkgKCgobW9kKS0+ZmxhZ3MgJiAoTU9EX1JVTk5JTkcgfCBNT0RfSU5JVElB
TElaSU5HKSkgJiYgISgobW9kKS0+ZmxhZ3MgJiBNT0RfREVMRVRFRCkpCgoKCgoKI2RlZmluZSBt
b2RfbWVtYmVyX3ByZXNlbnQobW9kLCBtZW1iZXIpICgodW5zaWduZWQgbG9uZykoJigoc3RydWN0
IG1vZHVsZSAqKTBMKS0+bWVtYmVyICsgMSkgPD0gKG1vZCktPnNpemVfb2Zfc3RydWN0KQoKCgoK
I2RlZmluZSBtb2RfYm91bmQocCwgbiwgbSkgKCh1bnNpZ25lZCBsb25nKShwKSA+PSAoKHVuc2ln
bmVkIGxvbmcpKG0pICsgKChtKS0+c2l6ZV9vZl9zdHJ1Y3QpKSAmJiAodW5zaWduZWQgbG9uZyko
KHApKyhuKSkgPD0gKHVuc2lnbmVkIGxvbmcpKG0pICsgKG0pLT5zaXplKQoKCgoKI2RlZmluZSBH
RVRfVVNFX0NPVU5UKG1vZHVsZSkgKGF0b21pY19yZWFkKCYobW9kdWxlKS0+dWMudXNlY291bnQp
KQoKCgojZGVmaW5lIF9fTU9EX0lOQ19VU0VfQ09VTlQobW9kKSAoYXRvbWljX2luYygmKG1vZCkt
PnVjLnVzZWNvdW50KSwgKG1vZCktPmZsYWdzIHw9IE1PRF9WSVNJVEVEfE1PRF9VU0VEX09OQ0Up
CgojZGVmaW5lIF9fTU9EX0RFQ19VU0VfQ09VTlQobW9kKSAoYXRvbWljX2RlYygmKG1vZCktPnVj
LnVzZWNvdW50KSwgKG1vZCktPmZsYWdzIHw9IE1PRF9WSVNJVEVEKQoKI2RlZmluZSBfX01PRF9J
Tl9VU0UobW9kKSAobW9kX21lbWJlcl9wcmVzZW50KChtb2QpLCBjYW5fdW5sb2FkKSAmJiAobW9k
KS0+Y2FuX3VubG9hZCA/IChtb2QpLT5jYW5fdW5sb2FkKCkgOiBhdG9taWNfcmVhZCgmKG1vZCkt
PnVjLnVzZWNvdW50KSkKCgoKCgojZGVmaW5lIF9fTU9EVUxFX1NUUklOR18xKHgpICN4CiNkZWZp
bmUgX19NT0RVTEVfU1RSSU5HKHgpIF9fTU9EVUxFX1NUUklOR18xKHgpCiMgMTcyICIvdXNyL2xv
Y2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZS5oIgojZGVmaW5lIEhBVkVfSU5URVJf
TU9EVUxFCmV4dGVybiB2b2lkIGludGVyX21vZHVsZV9yZWdpc3Rlcl9Sc21wX2RiZDNhYzAxKGNv
bnN0IGNoYXIgKiwgc3RydWN0IG1vZHVsZSAqLCBjb25zdCB2b2lkICopOwpleHRlcm4gdm9pZCBp
bnRlcl9tb2R1bGVfdW5yZWdpc3Rlcl9Sc21wXzdhOWU4NDVlKGNvbnN0IGNoYXIgKik7CmV4dGVy
biBjb25zdCB2b2lkICppbnRlcl9tb2R1bGVfZ2V0X1JzbXBfZjZhMGNlMjQoY29uc3QgY2hhciAq
KTsKZXh0ZXJuIGNvbnN0IHZvaWQgKmludGVyX21vZHVsZV9nZXRfcmVxdWVzdF9Sc21wX2I2OWY4
MjZiKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIHZvaWQgaW50ZXJfbW9kdWxl
X3B1dF9Sc21wXzZiOTlmN2Q4KGNvbnN0IGNoYXIgKik7CgpzdHJ1Y3QgaW50ZXJfbW9kdWxlX2Vu
dHJ5IHsKICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CiAgICAgICAgY29uc3QgY2hhciAq
aW1fbmFtZTsKICAgICAgICBzdHJ1Y3QgbW9kdWxlICpvd25lcjsKICAgICAgICBjb25zdCB2b2lk
ICp1c2VyZGF0YTsKfTsKCmV4dGVybiBpbnQgdHJ5X2luY19tb2RfY291bnRfUnNtcF9lYWQyMDJm
MyhzdHJ1Y3QgbW9kdWxlICptb2QpOwojIDE5NSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9tb2R1bGUuaCIKI2RlZmluZSBNT0RVTEVfQVVUSE9SKG5hbWUpIGNvbnN0IGNoYXIg
X19tb2R1bGVfYXV0aG9yW10gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLm1vZGluZm8iKSkpID0g
ImF1dGhvcj0iIG5hbWUKCgoKI2RlZmluZSBNT0RVTEVfREVTQ1JJUFRJT04oZGVzYykgY29uc3Qg
Y2hhciBfX21vZHVsZV9kZXNjcmlwdGlvbltdIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oIi5tb2Rp
bmZvIikpKSA9ICJkZXNjcmlwdGlvbj0iIGRlc2MKCgoKCgojZGVmaW5lIE1PRFVMRV9TVVBQT1JU
RURfREVWSUNFKGRldikgY29uc3QgY2hhciBfX21vZHVsZV9kZXZpY2VbXSBfX2F0dHJpYnV0ZV9f
KChzZWN0aW9uKCIubW9kaW5mbyIpKSkgPSAiZGV2aWNlPSIgZGV2CiMgMjIyICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZS5oIgojZGVmaW5lIE1PRFVMRV9QQVJNKHZh
ciwgdHlwZSkgY29uc3QgY2hhciBfX21vZHVsZV9wYXJtXyAjIyB2YXJbXSBfX2F0dHJpYnV0ZV9f
KChzZWN0aW9uKCIubW9kaW5mbyIpKSkgPSAicGFybV8iIF9fTU9EVUxFX1NUUklORyh2YXIpICI9
IiB0eXBlCgoKCgojZGVmaW5lIE1PRFVMRV9QQVJNX0RFU0ModmFyLCBkZXNjKSBjb25zdCBjaGFy
IF9fbW9kdWxlX3Bhcm1fZGVzY18gIyMgdmFyW10gX19hdHRyaWJ1dGVfXygoc2VjdGlvbigiLm1v
ZGluZm8iKSkpID0gInBhcm1fZGVzY18iIF9fTU9EVUxFX1NUUklORyh2YXIpICI9IiBkZXNjCiMg
MjQ1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L21vZHVsZS5oIgojZGVmaW5l
IE1PRFVMRV9HRU5FUklDX1RBQkxFKGd0eXBlLCBuYW1lKSBzdGF0aWMgY29uc3QgdW5zaWduZWQg
bG9uZyBfX21vZHVsZV8gIyMgZ3R5cGUgIyMgX3NpemUgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkp
ID0gc2l6ZW9mKHN0cnVjdCBndHlwZSAjIyBfaWQpOyBzdGF0aWMgY29uc3Qgc3RydWN0IGd0eXBl
ICMjIF9pZCAqIF9fbW9kdWxlXyAjIyBndHlwZSAjIyBfdGFibGUgX19hdHRyaWJ1dGVfXyAoKHVu
dXNlZCkpID0gbmFtZQoKCgoKI2RlZmluZSBNT0RVTEVfREVWSUNFX1RBQkxFKHR5cGUsIG5hbWUp
IE1PRFVMRV9HRU5FUklDX1RBQkxFKHR5cGUgIyMgX2RldmljZSxuYW1lKQoKCgpleHRlcm4gc3Ry
dWN0IG1vZHVsZSBfX3RoaXNfbW9kdWxlOwoKI2RlZmluZSBUSElTX01PRFVMRSAoJl9fdGhpc19t
b2R1bGUpCiNkZWZpbmUgTU9EX0lOQ19VU0VfQ09VTlQgX19NT0RfSU5DX1VTRV9DT1VOVChUSElT
X01PRFVMRSkKI2RlZmluZSBNT0RfREVDX1VTRV9DT1VOVCBfX01PRF9ERUNfVVNFX0NPVU5UKFRI
SVNfTU9EVUxFKQojZGVmaW5lIE1PRF9JTl9VU0UgX19NT0RfSU5fVVNFKFRISVNfTU9EVUxFKQoK
IyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3ZlcnNpb24uaCIgMQojZGVm
aW5lIFVUU19SRUxFQVNFICIyLjQuNyIKI2RlZmluZSBMSU5VWF9WRVJTSU9OX0NPREUgMTMyMTAz
CiNkZWZpbmUgS0VSTkVMX1ZFUlNJT04oYSwgYiwgYykgKCgoYSkgPDwgMTYpICsgKChiKSA8PCA4
KSArIChjKSkKIyAyNjIgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxl
LmgiIDIKc3RhdGljIGNvbnN0IGNoYXIgX19tb2R1bGVfa2VybmVsX3ZlcnNpb25bXSBfX2F0dHJp
YnV0ZV9fKChzZWN0aW9uKCIubW9kaW5mbyIpKSkgPQoia2VybmVsX3ZlcnNpb249IiAiMi40Ljci
OwoKc3RhdGljIGNvbnN0IGNoYXIgX19tb2R1bGVfdXNpbmdfY2hlY2tzdW1zW10gX19hdHRyaWJ1
dGVfXygoc2VjdGlvbigiLm1vZGluZm8iKSkpID0KInVzaW5nX2NoZWNrc3Vtcz0xIjsKIyAzMTkg
Ii91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvbW9kdWxlLmgiCiNkZWZpbmUgX19F
WFBPUlRfU1lNQk9MKHN5bSwgc3RyKSBjb25zdCBjaGFyIF9fa3N0cnRhYl8gIyMgc3ltW10gX19h
dHRyaWJ1dGVfXygoc2VjdGlvbigiLmtzdHJ0YWIiKSkpID0gc3RyOyBjb25zdCBzdHJ1Y3QgbW9k
dWxlX3N5bWJvbCBfX2tzeW10YWJfICMjIHN5bSBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCJfX2tz
eW10YWIiKSkpID0geyAodW5zaWduZWQgbG9uZykmc3ltLCBfX2tzdHJ0YWJfICMjIHN5bSB9CgoK
CgoKCgojZGVmaW5lIEVYUE9SVF9TWU1CT0wodmFyKSBfX0VYUE9SVF9TWU1CT0wodmFyLCBfX01P
RFVMRV9TVFJJTkcodmFyKSkKCgoKCiNkZWZpbmUgRVhQT1JUX1NZTUJPTF9OT1ZFUlModmFyKSBf
X0VYUE9SVF9TWU1CT0wodmFyLCBfX01PRFVMRV9TVFJJTkcodmFyKSkKCgoKCgojZGVmaW5lIEVY
UE9SVF9OT19TWU1CT0xTIF9fYXNtX18oIi5zZWN0aW9uIF9fa3N5bXRhYlxuLnByZXZpb3VzIikK
CgoKCgojZGVmaW5lIFNFVF9NT0RVTEVfT1dORVIoc29tZV9zdHJ1Y3QpIGRvIHsgKHNvbWVfc3Ry
dWN0KS0+b3duZXIgPSBUSElTX01PRFVMRTsgfSB3aGlsZSAoMCkKIyA1NSAiZnMvdWRmL3N1cGVy
LmMiIDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L3N0YXQuaCIgMQoj
IDU2ICJmcy91ZGYvc3VwZXIuYyIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUv
bGludXgvY2Ryb20uaCIgMQojIDEyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L2Nkcm9tLmgiCiNkZWZpbmUgX0xJTlVYX0NEUk9NX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVp
bGQvaW5jbHVkZS9hc20vYnl0ZW9yZGVyLmgiIDEKIyAxNSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9saW51eC9jZHJvbS5oIiAyCiMgNDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1
ZGUvbGludXgvY2Ryb20uaCIKI2RlZmluZSBFRFJJVkVfQ0FOVF9ET19USElTIEVPUE5PVFNVUFAK
CgoKCgoKI2RlZmluZSBDRFJPTVBBVVNFIDB4NTMwMQojZGVmaW5lIENEUk9NUkVTVU1FIDB4NTMw
MgojZGVmaW5lIENEUk9NUExBWU1TRiAweDUzMDMKI2RlZmluZSBDRFJPTVBMQVlUUktJTkQgMHg1
MzA0CgojZGVmaW5lIENEUk9NUkVBRFRPQ0hEUiAweDUzMDUKCiNkZWZpbmUgQ0RST01SRUFEVE9D
RU5UUlkgMHg1MzA2CgojZGVmaW5lIENEUk9NU1RPUCAweDUzMDcKI2RlZmluZSBDRFJPTVNUQVJU
IDB4NTMwOAojZGVmaW5lIENEUk9NRUpFQ1QgMHg1MzA5CiNkZWZpbmUgQ0RST01WT0xDVFJMIDB4
NTMwYQoKI2RlZmluZSBDRFJPTVNVQkNITkwgMHg1MzBiCgojZGVmaW5lIENEUk9NUkVBRE1PREUy
IDB4NTMwYwoKI2RlZmluZSBDRFJPTVJFQURNT0RFMSAweDUzMGQKCiNkZWZpbmUgQ0RST01SRUFE
QVVESU8gMHg1MzBlCiNkZWZpbmUgQ0RST01FSkVDVF9TVyAweDUzMGYKI2RlZmluZSBDRFJPTU1V
TFRJU0VTU0lPTiAweDUzMTAKCgojZGVmaW5lIENEUk9NX0dFVF9NQ04gMHg1MzExCgojZGVmaW5l
IENEUk9NX0dFVF9VUEMgQ0RST01fR0VUX01DTgoKI2RlZmluZSBDRFJPTVJFU0VUIDB4NTMxMgoj
ZGVmaW5lIENEUk9NVk9MUkVBRCAweDUzMTMKCiNkZWZpbmUgQ0RST01SRUFEUkFXIDB4NTMxNAoK
CgoKI2RlZmluZSBDRFJPTVJFQURDT09LRUQgMHg1MzE1CiNkZWZpbmUgQ0RST01TRUVLIDB4NTMx
NgoKCgoKCiNkZWZpbmUgQ0RST01QTEFZQkxLIDB4NTMxNwoKCgoKI2RlZmluZSBDRFJPTVJFQURB
TEwgMHg1MzE4CiMgMTEwICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Nkcm9t
LmgiCiNkZWZpbmUgQ0RST01HRVRTUElORE9XTiAweDUzMWQKI2RlZmluZSBDRFJPTVNFVFNQSU5E
T1dOIDB4NTMxZQoKCgoKCgojZGVmaW5lIENEUk9NQ0xPU0VUUkFZIDB4NTMxOQojZGVmaW5lIENE
Uk9NX1NFVF9PUFRJT05TIDB4NTMyMAojZGVmaW5lIENEUk9NX0NMRUFSX09QVElPTlMgMHg1MzIx
CiNkZWZpbmUgQ0RST01fU0VMRUNUX1NQRUVEIDB4NTMyMgojZGVmaW5lIENEUk9NX1NFTEVDVF9E
SVNDIDB4NTMyMwojZGVmaW5lIENEUk9NX01FRElBX0NIQU5HRUQgMHg1MzI1CiNkZWZpbmUgQ0RS
T01fRFJJVkVfU1RBVFVTIDB4NTMyNgojZGVmaW5lIENEUk9NX0RJU0NfU1RBVFVTIDB4NTMyNwoj
ZGVmaW5lIENEUk9NX0NIQU5HRVJfTlNMT1RTIDB4NTMyOAojZGVmaW5lIENEUk9NX0xPQ0tET09S
IDB4NTMyOQojZGVmaW5lIENEUk9NX0RFQlVHIDB4NTMzMAojZGVmaW5lIENEUk9NX0dFVF9DQVBB
QklMSVRZIDB4NTMzMQoKCgoKCgojZGVmaW5lIENEUk9NQVVESU9CVUZTSVogMHg1MzgyCgoKCiNk
ZWZpbmUgRFZEX1JFQURfU1RSVUNUIDB4NTM5MAojZGVmaW5lIERWRF9XUklURV9TVFJVQ1QgMHg1
MzkxCiNkZWZpbmUgRFZEX0FVVEggMHg1MzkyCgojZGVmaW5lIENEUk9NX1NFTkRfUEFDS0VUIDB4
NTM5MwojZGVmaW5lIENEUk9NX05FWFRfV1JJVEFCTEUgMHg1Mzk0CiNkZWZpbmUgQ0RST01fTEFT
VF9XUklUVEVOIDB4NTM5NQoKCgoKCgpzdHJ1Y3QgY2Ryb21fbXNmMAp7CiAgICAgICAgX191OCBt
aW51dGU7CiAgICAgICAgX191OCBzZWNvbmQ7CiAgICAgICAgX191OCBmcmFtZTsKfTsKCgp1bmlv
biBjZHJvbV9hZGRyCnsKICAgICAgICBzdHJ1Y3QgY2Ryb21fbXNmMCBtc2Y7CiAgICAgICAgaW50
IGxiYTsKfTsKCgpzdHJ1Y3QgY2Ryb21fbXNmCnsKICAgICAgICBfX3U4IGNkbXNmX21pbjA7CiAg
ICAgICAgX191OCBjZG1zZl9zZWMwOwogICAgICAgIF9fdTggY2Rtc2ZfZnJhbWUwOwogICAgICAg
IF9fdTggY2Rtc2ZfbWluMTsKICAgICAgICBfX3U4IGNkbXNmX3NlYzE7CiAgICAgICAgX191OCBj
ZG1zZl9mcmFtZTE7Cn07CgoKc3RydWN0IGNkcm9tX3RpCnsKICAgICAgICBfX3U4IGNkdGlfdHJr
MDsKICAgICAgICBfX3U4IGNkdGlfaW5kMDsKICAgICAgICBfX3U4IGNkdGlfdHJrMTsKICAgICAg
ICBfX3U4IGNkdGlfaW5kMTsKfTsKCgpzdHJ1Y3QgY2Ryb21fdG9jaGRyCnsKICAgICAgICBfX3U4
IGNkdGhfdHJrMDsKICAgICAgICBfX3U4IGNkdGhfdHJrMTsKfTsKCgpzdHJ1Y3QgY2Ryb21fdm9s
Y3RybAp7CiAgICAgICAgX191OCBjaGFubmVsMDsKICAgICAgICBfX3U4IGNoYW5uZWwxOwogICAg
ICAgIF9fdTggY2hhbm5lbDI7CiAgICAgICAgX191OCBjaGFubmVsMzsKfTsKCgpzdHJ1Y3QgY2Ry
b21fc3ViY2hubAp7CiAgICAgICAgX191OCBjZHNjX2Zvcm1hdDsKICAgICAgICBfX3U4IGNkc2Nf
YXVkaW9zdGF0dXM7CiAgICAgICAgX191OCBjZHNjX2FkcjogNDsKICAgICAgICBfX3U4IGNkc2Nf
Y3RybDogNDsKICAgICAgICBfX3U4IGNkc2NfdHJrOwogICAgICAgIF9fdTggY2RzY19pbmQ7CiAg
ICAgICAgdW5pb24gY2Ryb21fYWRkciBjZHNjX2Fic2FkZHI7CiAgICAgICAgdW5pb24gY2Ryb21f
YWRkciBjZHNjX3JlbGFkZHI7Cn07CgoKCnN0cnVjdCBjZHJvbV90b2NlbnRyeQp7CiAgICAgICAg
X191OCBjZHRlX3RyYWNrOwogICAgICAgIF9fdTggY2R0ZV9hZHIgOjQ7CiAgICAgICAgX191OCBj
ZHRlX2N0cmwgOjQ7CiAgICAgICAgX191OCBjZHRlX2Zvcm1hdDsKICAgICAgICB1bmlvbiBjZHJv
bV9hZGRyIGNkdGVfYWRkcjsKICAgICAgICBfX3U4IGNkdGVfZGF0YW1vZGU7Cn07CgoKc3RydWN0
IGNkcm9tX3JlYWQKewogICAgICAgIGludCBjZHJlYWRfbGJhOwogICAgICAgIGNoYXIgKmNkcmVh
ZF9idWZhZGRyOwogICAgICAgIGludCBjZHJlYWRfYnVmbGVuOwp9OwoKCnN0cnVjdCBjZHJvbV9y
ZWFkX2F1ZGlvCnsKICAgICAgICB1bmlvbiBjZHJvbV9hZGRyIGFkZHI7CiAgICAgICAgX191OCBh
ZGRyX2Zvcm1hdDsKICAgICAgICBpbnQgbmZyYW1lczsKICAgICAgICBfX3U4ICpidWY7Cn07CgoK
c3RydWN0IGNkcm9tX211bHRpc2Vzc2lvbgp7CiAgICAgICAgdW5pb24gY2Ryb21fYWRkciBhZGRy
OwoKCiAgICAgICAgX191OCB4YV9mbGFnOwogICAgICAgIF9fdTggYWRkcl9mb3JtYXQ7Cn07CgoK
CgoKCnN0cnVjdCBjZHJvbV9tY24KewogIF9fdTggbWVkaXVtX2NhdGFsb2dfbnVtYmVyWzE0XTsK
fTsKCgpzdHJ1Y3QgY2Ryb21fYmxrCnsKICAgICAgICB1bnNpZ25lZCBmcm9tOwogICAgICAgIHVu
c2lnbmVkIHNob3J0IGxlbjsKfTsKCiNkZWZpbmUgQ0RST01fUEFDS0VUX1NJWkUgMTIKCiNkZWZp
bmUgQ0dDX0RBVEFfVU5LTk9XTiAwCiNkZWZpbmUgQ0dDX0RBVEFfV1JJVEUgMQojZGVmaW5lIENH
Q19EQVRBX1JFQUQgMgojZGVmaW5lIENHQ19EQVRBX05PTkUgMwoKCnN0cnVjdCBjZHJvbV9nZW5l
cmljX2NvbW1hbmQKewogICAgICAgIHVuc2lnbmVkIGNoYXIgY21kWzEyXTsKICAgICAgICB1bnNp
Z25lZCBjaGFyICpidWZmZXI7CiAgICAgICAgdW5zaWduZWQgaW50IGJ1ZmxlbjsKICAgICAgICBp
bnQgc3RhdDsKICAgICAgICBzdHJ1Y3QgcmVxdWVzdF9zZW5zZSAqc2Vuc2U7CiAgICAgICAgdW5z
aWduZWQgY2hhciBkYXRhX2RpcmVjdGlvbjsKICAgICAgICBpbnQgcXVpZXQ7CiAgICAgICAgaW50
IHRpbWVvdXQ7CiAgICAgICAgdm9pZCAqcmVzZXJ2ZWRbMV07Cn07CiMgMzI5ICIvdXNyL2xvY2Fs
L3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2Nkcm9tLmgiCiNkZWZpbmUgQ0RfTUlOUyA3NAojZGVm
aW5lIENEX1NFQ1MgNjAKI2RlZmluZSBDRF9GUkFNRVMgNzUKI2RlZmluZSBDRF9TWU5DX1NJWkUg
MTIKI2RlZmluZSBDRF9NU0ZfT0ZGU0VUIDE1MAojZGVmaW5lIENEX0NIVU5LX1NJWkUgMjQKI2Rl
ZmluZSBDRF9OVU1fT0ZfQ0hVTktTIDk4CiNkZWZpbmUgQ0RfRlJBTUVTSVpFX1NVQiA5NgojZGVm
aW5lIENEX0hFQURfU0laRSA0CiNkZWZpbmUgQ0RfU1VCSEVBRF9TSVpFIDgKI2RlZmluZSBDRF9F
RENfU0laRSA0CiNkZWZpbmUgQ0RfWkVST19TSVpFIDgKI2RlZmluZSBDRF9FQ0NfU0laRSAyNzYK
I2RlZmluZSBDRF9GUkFNRVNJWkUgMjA0OAojZGVmaW5lIENEX0ZSQU1FU0laRV9SQVcgMjM1Mgoj
ZGVmaW5lIENEX0ZSQU1FU0laRV9SQVdFUiAyNjQ2CgojZGVmaW5lIENEX0ZSQU1FU0laRV9SQVcx
IChDRF9GUkFNRVNJWkVfUkFXLUNEX1NZTkNfU0laRSkKI2RlZmluZSBDRF9GUkFNRVNJWkVfUkFX
MCAoQ0RfRlJBTUVTSVpFX1JBVy1DRF9TWU5DX1NJWkUtQ0RfSEVBRF9TSVpFKQoKI2RlZmluZSBD
RF9YQV9IRUFEIChDRF9IRUFEX1NJWkUrQ0RfU1VCSEVBRF9TSVpFKQojZGVmaW5lIENEX1hBX1RB
SUwgKENEX0VEQ19TSVpFK0NEX0VDQ19TSVpFKQojZGVmaW5lIENEX1hBX1NZTkNfSEVBRCAoQ0Rf
U1lOQ19TSVpFK0NEX1hBX0hFQUQpCgoKI2RlZmluZSBDRFJPTV9MQkEgMHgwMQojZGVmaW5lIENE
Uk9NX01TRiAweDAyCgoKI2RlZmluZSBDRFJPTV9EQVRBX1RSQUNLIDB4MDQKCgojZGVmaW5lIENE
Uk9NX0xFQURPVVQgMHhBQQoKCiNkZWZpbmUgQ0RST01fQVVESU9fSU5WQUxJRCAweDAwCiNkZWZp
bmUgQ0RST01fQVVESU9fUExBWSAweDExCiNkZWZpbmUgQ0RST01fQVVESU9fUEFVU0VEIDB4MTIK
I2RlZmluZSBDRFJPTV9BVURJT19DT01QTEVURUQgMHgxMwojZGVmaW5lIENEUk9NX0FVRElPX0VS
Uk9SIDB4MTQKI2RlZmluZSBDRFJPTV9BVURJT19OT19TVEFUVVMgMHgxNQoKCiNkZWZpbmUgQ0RD
X0NMT1NFX1RSQVkgMHgxCiNkZWZpbmUgQ0RDX09QRU5fVFJBWSAweDIKI2RlZmluZSBDRENfTE9D
SyAweDQKI2RlZmluZSBDRENfU0VMRUNUX1NQRUVEIDB4OAojZGVmaW5lIENEQ19TRUxFQ1RfRElT
QyAweDEwCiNkZWZpbmUgQ0RDX01VTFRJX1NFU1NJT04gMHgyMAojZGVmaW5lIENEQ19NQ04gMHg0
MAojZGVmaW5lIENEQ19NRURJQV9DSEFOR0VEIDB4ODAKI2RlZmluZSBDRENfUExBWV9BVURJTyAw
eDEwMAojZGVmaW5lIENEQ19SRVNFVCAweDIwMAojZGVmaW5lIENEQ19JT0NUTFMgMHg0MDAKI2Rl
ZmluZSBDRENfRFJJVkVfU1RBVFVTIDB4ODAwCiNkZWZpbmUgQ0RDX0dFTkVSSUNfUEFDS0VUIDB4
MTAwMAojZGVmaW5lIENEQ19DRF9SIDB4MjAwMAojZGVmaW5lIENEQ19DRF9SVyAweDQwMDAKI2Rl
ZmluZSBDRENfRFZEIDB4ODAwMAojZGVmaW5lIENEQ19EVkRfUiAweDEwMDAwCiNkZWZpbmUgQ0RD
X0RWRF9SQU0gMHgyMDAwMAoKCiNkZWZpbmUgQ0RTX05PX0lORk8gMAojZGVmaW5lIENEU19OT19E
SVNDIDEKI2RlZmluZSBDRFNfVFJBWV9PUEVOIDIKI2RlZmluZSBDRFNfRFJJVkVfTk9UX1JFQURZ
IDMKI2RlZmluZSBDRFNfRElTQ19PSyA0CgoKCiNkZWZpbmUgQ0RTX0FVRElPIDEwMAojZGVmaW5l
IENEU19EQVRBXzEgMTAxCiNkZWZpbmUgQ0RTX0RBVEFfMiAxMDIKI2RlZmluZSBDRFNfWEFfMl8x
IDEwMwojZGVmaW5lIENEU19YQV8yXzIgMTA0CiNkZWZpbmUgQ0RTX01JWEVEIDEwNQoKCiNkZWZp
bmUgQ0RPX0FVVE9fQ0xPU0UgMHgxCiNkZWZpbmUgQ0RPX0FVVE9fRUpFQ1QgMHgyCiNkZWZpbmUg
Q0RPX1VTRV9GRkxBR1MgMHg0CiNkZWZpbmUgQ0RPX0xPQ0sgMHg4CiNkZWZpbmUgQ0RPX0NIRUNL
X1RZUEUgMHgxMAoKCiNkZWZpbmUgQ0RTTF9OT05FICgoaW50KSAofjBVPj4xKS0xKQojZGVmaW5l
IENEU0xfQ1VSUkVOVCAoKGludCkgKH4wVT4+MSkpCgoKCgoKCiNkZWZpbmUgQ0RfUEFSVF9NQVgg
NjQKI2RlZmluZSBDRF9QQVJUX01BU0sgKENEX1BBUlRfTUFYIC0gMSkKCgoKCgoKCiNkZWZpbmUg
R1BDTURfQkxBTksgMHhhMQojZGVmaW5lIEdQQ01EX0NMT1NFX1RSQUNLIDB4NWIKI2RlZmluZSBH
UENNRF9GTFVTSF9DQUNIRSAweDM1CiNkZWZpbmUgR1BDTURfRk9STUFUX1VOSVQgMHgwNAojZGVm
aW5lIEdQQ01EX0dFVF9DT05GSUdVUkFUSU9OIDB4NDYKI2RlZmluZSBHUENNRF9HRVRfRVZFTlRf
U1RBVFVTX05PVElGSUNBVElPTiAweDRhCiNkZWZpbmUgR1BDTURfR0VUX1BFUkZPUk1BTkNFIDB4
YWMKI2RlZmluZSBHUENNRF9JTlFVSVJZIDB4MTIKI2RlZmluZSBHUENNRF9MT0FEX1VOTE9BRCAw
eGE2CiNkZWZpbmUgR1BDTURfTUVDSEFOSVNNX1NUQVRVUyAweGJkCiNkZWZpbmUgR1BDTURfTU9E
RV9TRUxFQ1RfMTAgMHg1NQojZGVmaW5lIEdQQ01EX01PREVfU0VOU0VfMTAgMHg1YQojZGVmaW5l
IEdQQ01EX1BBVVNFX1JFU1VNRSAweDRiCiNkZWZpbmUgR1BDTURfUExBWV9BVURJT18xMCAweDQ1
CiNkZWZpbmUgR1BDTURfUExBWV9BVURJT19NU0YgMHg0NwojZGVmaW5lIEdQQ01EX1BMQVlfQVVE
SU9fVEkgMHg0OAojZGVmaW5lIEdQQ01EX1BMQVlfQ0QgMHhiYwojZGVmaW5lIEdQQ01EX1BSRVZF
TlRfQUxMT1dfTUVESVVNX1JFTU9WQUwgMHgxZQojZGVmaW5lIEdQQ01EX1JFQURfMTAgMHgyOAoj
ZGVmaW5lIEdQQ01EX1JFQURfMTIgMHhhOAojZGVmaW5lIEdQQ01EX1JFQURfQ0RWRF9DQVBBQ0lU
WSAweDI1CiNkZWZpbmUgR1BDTURfUkVBRF9DRCAweGJlCiNkZWZpbmUgR1BDTURfUkVBRF9DRF9N
U0YgMHhiOQojZGVmaW5lIEdQQ01EX1JFQURfRElTQ19JTkZPIDB4NTEKI2RlZmluZSBHUENNRF9S
RUFEX0RWRF9TVFJVQ1RVUkUgMHhhZAojZGVmaW5lIEdQQ01EX1JFQURfRk9STUFUX0NBUEFDSVRJ
RVMgMHgyMwojZGVmaW5lIEdQQ01EX1JFQURfSEVBREVSIDB4NDQKI2RlZmluZSBHUENNRF9SRUFE
X1RSQUNLX1JaT05FX0lORk8gMHg1MgojZGVmaW5lIEdQQ01EX1JFQURfU1VCQ0hBTk5FTCAweDQy
CiNkZWZpbmUgR1BDTURfUkVBRF9UT0NfUE1BX0FUSVAgMHg0MwojZGVmaW5lIEdQQ01EX1JFUEFJ
Ul9SWk9ORV9UUkFDSyAweDU4CiNkZWZpbmUgR1BDTURfUkVQT1JUX0tFWSAweGE0CiNkZWZpbmUg
R1BDTURfUkVRVUVTVF9TRU5TRSAweDAzCiNkZWZpbmUgR1BDTURfUkVTRVJWRV9SWk9ORV9UUkFD
SyAweDUzCiNkZWZpbmUgR1BDTURfU0NBTiAweGJhCiNkZWZpbmUgR1BDTURfU0VFSyAweDJiCiNk
ZWZpbmUgR1BDTURfU0VORF9EVkRfU1RSVUNUVVJFIDB4YWQKI2RlZmluZSBHUENNRF9TRU5EX0VW
RU5UIDB4YTIKI2RlZmluZSBHUENNRF9TRU5EX0tFWSAweGEzCiNkZWZpbmUgR1BDTURfU0VORF9P
UEMgMHg1NAojZGVmaW5lIEdQQ01EX1NFVF9SRUFEX0FIRUFEIDB4YTcKI2RlZmluZSBHUENNRF9T
RVRfU1RSRUFNSU5HIDB4YjYKI2RlZmluZSBHUENNRF9TVEFSVF9TVE9QX1VOSVQgMHgxYgojZGVm
aW5lIEdQQ01EX1NUT1BfUExBWV9TQ0FOIDB4NGUKI2RlZmluZSBHUENNRF9URVNUX1VOSVRfUkVB
RFkgMHgwMAojZGVmaW5lIEdQQ01EX1ZFUklGWV8xMCAweDJmCiNkZWZpbmUgR1BDTURfV1JJVEVf
MTAgMHgyYQojZGVmaW5lIEdQQ01EX1dSSVRFX0FORF9WRVJJRllfMTAgMHgyZQoKCgoKI2RlZmlu
ZSBHUENNRF9TRVRfU1BFRUQgMHhiYgoKCiNkZWZpbmUgR1BDTURfUExBWUFVRElPX1RJIDB4NDgK
CgoKCiNkZWZpbmUgR1BDTURfR0VUX01FRElBX1NUQVRVUyAweGRhCgoKI2RlZmluZSBHUE1PREVf
Ul9XX0VSUk9SX1BBR0UgMHgwMQojZGVmaW5lIEdQTU9ERV9XUklURV9QQVJNU19QQUdFIDB4MDUK
I2RlZmluZSBHUE1PREVfQVVESU9fQ1RMX1BBR0UgMHgwZQojZGVmaW5lIEdQTU9ERV9QT1dFUl9Q
QUdFIDB4MWEKI2RlZmluZSBHUE1PREVfRkFVTFRfRkFJTF9QQUdFIDB4MWMKI2RlZmluZSBHUE1P
REVfVE9fUFJPVEVDVF9QQUdFIDB4MWQKI2RlZmluZSBHUE1PREVfQ0FQQUJJTElUSUVTX1BBR0Ug
MHgyYQojZGVmaW5lIEdQTU9ERV9BTExfUEFHRVMgMHgzZgoKCiNkZWZpbmUgR1BNT0RFX0NEUk9N
X1BBR0UgMHgwZAoKCgoKI2RlZmluZSBEVkRfU1RSVUNUX1BIWVNJQ0FMIDB4MDAKI2RlZmluZSBE
VkRfU1RSVUNUX0NPUFlSSUdIVCAweDAxCiNkZWZpbmUgRFZEX1NUUlVDVF9ESVNDS0VZIDB4MDIK
I2RlZmluZSBEVkRfU1RSVUNUX0JDQSAweDAzCiNkZWZpbmUgRFZEX1NUUlVDVF9NQU5VRkFDVCAw
eDA0CgpzdHJ1Y3QgZHZkX2xheWVyIHsKICAgICAgICBfX3U4IGJvb2tfdmVyc2lvbiA6IDQ7CiAg
ICAgICAgX191OCBib29rX3R5cGUgOiA0OwogICAgICAgIF9fdTggbWluX3JhdGUgOiA0OwogICAg
ICAgIF9fdTggZGlzY19zaXplIDogNDsKICAgICAgICBfX3U4IGxheWVyX3R5cGUgOiA0OwogICAg
ICAgIF9fdTggdHJhY2tfcGF0aCA6IDE7CiAgICAgICAgX191OCBubGF5ZXJzIDogMjsKICAgICAg
ICBfX3U4IHRyYWNrX2RlbnNpdHkgOiA0OwogICAgICAgIF9fdTggbGluZWFyX2RlbnNpdHkgOiA0
OwogICAgICAgIF9fdTggYmNhIDogMTsKICAgICAgICBfX3UzMiBzdGFydF9zZWN0b3I7CiAgICAg
ICAgX191MzIgZW5kX3NlY3RvcjsKICAgICAgICBfX3UzMiBlbmRfc2VjdG9yX2wwOwp9OwoKI2Rl
ZmluZSBEVkRfTEFZRVJTIDQKCnN0cnVjdCBkdmRfcGh5c2ljYWwgewogICAgICAgIF9fdTggdHlw
ZTsKICAgICAgICBfX3U4IGxheWVyX251bTsKICAgICAgICBzdHJ1Y3QgZHZkX2xheWVyIGxheWVy
WzRdOwp9OwoKc3RydWN0IGR2ZF9jb3B5cmlnaHQgewogICAgICAgIF9fdTggdHlwZTsKCiAgICAg
ICAgX191OCBsYXllcl9udW07CiAgICAgICAgX191OCBjcHN0OwogICAgICAgIF9fdTggcm1pOwp9
OwoKc3RydWN0IGR2ZF9kaXNja2V5IHsKICAgICAgICBfX3U4IHR5cGU7CgogICAgICAgIHVuc2ln
bmVkIGFnaWQgOiAyOwogICAgICAgIF9fdTggdmFsdWVbMjA0OF07Cn07CgpzdHJ1Y3QgZHZkX2Jj
YSB7CiAgICAgICAgX191OCB0eXBlOwoKICAgICAgICBpbnQgbGVuOwogICAgICAgIF9fdTggdmFs
dWVbMTg4XTsKfTsKCnN0cnVjdCBkdmRfbWFudWZhY3QgewogICAgICAgIF9fdTggdHlwZTsKCiAg
ICAgICAgX191OCBsYXllcl9udW07CiAgICAgICAgaW50IGxlbjsKICAgICAgICBfX3U4IHZhbHVl
WzIwNDhdOwp9OwoKdHlwZWRlZiB1bmlvbiB7CiAgICAgICAgX191OCB0eXBlOwoKICAgICAgICBz
dHJ1Y3QgZHZkX3BoeXNpY2FsIHBoeXNpY2FsOwogICAgICAgIHN0cnVjdCBkdmRfY29weXJpZ2h0
IGNvcHlyaWdodDsKICAgICAgICBzdHJ1Y3QgZHZkX2Rpc2NrZXkgZGlzY2tleTsKICAgICAgICBz
dHJ1Y3QgZHZkX2JjYSBiY2E7CiAgICAgICAgc3RydWN0IGR2ZF9tYW51ZmFjdCBtYW51ZmFjdDsK
fSBkdmRfc3RydWN0OwoKCgoKCgojZGVmaW5lIERWRF9MVV9TRU5EX0FHSUQgMAojZGVmaW5lIERW
RF9IT1NUX1NFTkRfQ0hBTExFTkdFIDEKI2RlZmluZSBEVkRfTFVfU0VORF9LRVkxIDIKI2RlZmlu
ZSBEVkRfTFVfU0VORF9DSEFMTEVOR0UgMwojZGVmaW5lIERWRF9IT1NUX1NFTkRfS0VZMiA0CgoK
I2RlZmluZSBEVkRfQVVUSF9FU1RBQkxJU0hFRCA1CiNkZWZpbmUgRFZEX0FVVEhfRkFJTFVSRSA2
CgoKI2RlZmluZSBEVkRfTFVfU0VORF9USVRMRV9LRVkgNwojZGVmaW5lIERWRF9MVV9TRU5EX0FT
RiA4CiNkZWZpbmUgRFZEX0lOVkFMSURBVEVfQUdJRCA5CiNkZWZpbmUgRFZEX0xVX1NFTkRfUlBD
X1NUQVRFIDEwCiNkZWZpbmUgRFZEX0hPU1RfU0VORF9SUENfU1RBVEUgMTEKCgp0eXBlZGVmIF9f
dTggZHZkX2tleVs1XTsKdHlwZWRlZiBfX3U4IGR2ZF9jaGFsbGVuZ2VbMTBdOwoKc3RydWN0IGR2
ZF9sdV9zZW5kX2FnaWQgewogICAgICAgIF9fdTggdHlwZTsKICAgICAgICB1bnNpZ25lZCBhZ2lk
IDogMjsKfTsKCnN0cnVjdCBkdmRfaG9zdF9zZW5kX2NoYWxsZW5nZSB7CiAgICAgICAgX191OCB0
eXBlOwogICAgICAgIHVuc2lnbmVkIGFnaWQgOiAyOwoKICAgICAgICBkdmRfY2hhbGxlbmdlIGNo
YWw7Cn07CgpzdHJ1Y3QgZHZkX3NlbmRfa2V5IHsKICAgICAgICBfX3U4IHR5cGU7CiAgICAgICAg
dW5zaWduZWQgYWdpZCA6IDI7CgogICAgICAgIGR2ZF9rZXkga2V5Owp9OwoKc3RydWN0IGR2ZF9s
dV9zZW5kX2NoYWxsZW5nZSB7CiAgICAgICAgX191OCB0eXBlOwogICAgICAgIHVuc2lnbmVkIGFn
aWQgOiAyOwoKICAgICAgICBkdmRfY2hhbGxlbmdlIGNoYWw7Cn07CgojZGVmaW5lIERWRF9DUE1f
Tk9fQ09QWVJJR0hUIDAKI2RlZmluZSBEVkRfQ1BNX0NPUFlSSUdIVEVEIDEKCiNkZWZpbmUgRFZE
X0NQX1NFQ19OT05FIDAKI2RlZmluZSBEVkRfQ1BfU0VDX0VYSVNUIDEKCiNkZWZpbmUgRFZEX0NH
TVNfVU5SRVNUUklDVEVEIDAKI2RlZmluZSBEVkRfQ0dNU19TSU5HTEUgMgojZGVmaW5lIERWRF9D
R01TX1JFU1RSSUNURUQgMwoKc3RydWN0IGR2ZF9sdV9zZW5kX3RpdGxlX2tleSB7CiAgICAgICAg
X191OCB0eXBlOwogICAgICAgIHVuc2lnbmVkIGFnaWQgOiAyOwoKICAgICAgICBkdmRfa2V5IHRp
dGxlX2tleTsKICAgICAgICBpbnQgbGJhOwogICAgICAgIHVuc2lnbmVkIGNwbSA6IDE7CiAgICAg
ICAgdW5zaWduZWQgY3Bfc2VjIDogMTsKICAgICAgICB1bnNpZ25lZCBjZ21zIDogMjsKfTsKCnN0
cnVjdCBkdmRfbHVfc2VuZF9hc2YgewogICAgICAgIF9fdTggdHlwZTsKICAgICAgICB1bnNpZ25l
ZCBhZ2lkIDogMjsKCiAgICAgICAgdW5zaWduZWQgYXNmIDogMTsKfTsKCnN0cnVjdCBkdmRfaG9z
dF9zZW5kX3JwY3N0YXRlIHsKICAgICAgICBfX3U4IHR5cGU7CiAgICAgICAgX191OCBwZHJjOwp9
OwoKc3RydWN0IGR2ZF9sdV9zZW5kX3JwY3N0YXRlIHsKICAgICAgICBfX3U4IHR5cGUgOiAyOwog
ICAgICAgIF9fdTggdnJhIDogMzsKICAgICAgICBfX3U4IHVjY2EgOiAzOwogICAgICAgIF9fdTgg
cmVnaW9uX21hc2s7CiAgICAgICAgX191OCBycGNfc2NoZW1lOwp9OwoKdHlwZWRlZiB1bmlvbiB7
CiAgICAgICAgX191OCB0eXBlOwoKICAgICAgICBzdHJ1Y3QgZHZkX2x1X3NlbmRfYWdpZCBsc2E7
CiAgICAgICAgc3RydWN0IGR2ZF9ob3N0X3NlbmRfY2hhbGxlbmdlIGhzYzsKICAgICAgICBzdHJ1
Y3QgZHZkX3NlbmRfa2V5IGxzazsKICAgICAgICBzdHJ1Y3QgZHZkX2x1X3NlbmRfY2hhbGxlbmdl
IGxzYzsKICAgICAgICBzdHJ1Y3QgZHZkX3NlbmRfa2V5IGhzazsKICAgICAgICBzdHJ1Y3QgZHZk
X2x1X3NlbmRfdGl0bGVfa2V5IGxzdGs7CiAgICAgICAgc3RydWN0IGR2ZF9sdV9zZW5kX2FzZiBs
c2FzZjsKICAgICAgICBzdHJ1Y3QgZHZkX2hvc3Rfc2VuZF9ycGNzdGF0ZSBocnBjczsKICAgICAg
ICBzdHJ1Y3QgZHZkX2x1X3NlbmRfcnBjc3RhdGUgbHJwY3M7Cn0gZHZkX2F1dGhpbmZvOwoKc3Ry
dWN0IHJlcXVlc3Rfc2Vuc2UgewoKCgoKICAgICAgICBfX3U4IGVycm9yX2NvZGUgOiA3OwogICAg
ICAgIF9fdTggdmFsaWQgOiAxOwoKICAgICAgICBfX3U4IHNlZ21lbnRfbnVtYmVyOwoKCgoKCgog
ICAgICAgIF9fdTggc2Vuc2Vfa2V5IDogNDsKICAgICAgICBfX3U4IHJlc2VydmVkMiA6IDE7CiAg
ICAgICAgX191OCBpbGkgOiAxOwogICAgICAgIF9fdTggcmVzZXJ2ZWQxIDogMjsKCiAgICAgICAg
X191OCBpbmZvcm1hdGlvbls0XTsKICAgICAgICBfX3U4IGFkZF9zZW5zZV9sZW47CiAgICAgICAg
X191OCBjb21tYW5kX2luZm9bNF07CiAgICAgICAgX191OCBhc2M7CiAgICAgICAgX191OCBhc2Nx
OwogICAgICAgIF9fdTggZnJ1YzsKICAgICAgICBfX3U4IHNrc1szXTsKICAgICAgICBfX3U4IGFz
Yls0Nl07Cn07CgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2RldmZz
X2ZzX2tlcm5lbC5oIiAxCiMgNzE5ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L2Nkcm9tLmgiIDIKCnN0cnVjdCBjZHJvbV93cml0ZV9zZXR0aW5ncyB7CiAgICAgICAgdW5zaWdu
ZWQgY2hhciBmcGFja2V0OwogICAgICAgIHVuc2lnbmVkIGxvbmcgcGFja2V0X3NpemU7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyBud2E7CiAgICAgICAgdW5zaWduZWQgY2hhciB3cml0ZWFibGU7Cn07
CgoKc3RydWN0IGNkcm9tX2RldmljZV9pbmZvIHsKICAgICAgICBzdHJ1Y3QgY2Ryb21fZGV2aWNl
X29wcyAqb3BzOwogICAgICAgIHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqbmV4dDsKICAgICAg
ICB2b2lkICpoYW5kbGU7CiAgICAgICAgZGV2ZnNfaGFuZGxlX3QgZGU7CiAgICAgICAgaW50IG51
bWJlcjsKCiAgICAgICAga2Rldl90IGRldjsKICAgICAgICBpbnQgbWFzazsKICAgICAgICBpbnQg
c3BlZWQ7CiAgICAgICAgaW50IGNhcGFjaXR5OwoKICAgICAgICBpbnQgb3B0aW9ucyA6IDMwOwog
ICAgICAgIHVuc2lnbmVkIG1jX2ZsYWdzIDogMjsKICAgICAgICBpbnQgdXNlX2NvdW50OwogICAg
ICAgIGNoYXIgbmFtZVsyMF07CgogICAgICAgIF9fdTggc2FueW9fc2xvdCA6IDI7CiAgICAgICAg
X191OCByZXNlcnZlZCA6IDY7CiAgICAgICAgc3RydWN0IGNkcm9tX3dyaXRlX3NldHRpbmdzIHdy
aXRlOwp9OwoKc3RydWN0IGNkcm9tX2RldmljZV9vcHMgewoKICAgICAgICBpbnQgKCpvcGVuKSAo
c3RydWN0IGNkcm9tX2RldmljZV9pbmZvICosIGludCk7CiAgICAgICAgdm9pZCAoKnJlbGVhc2Up
IChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKik7CiAgICAgICAgaW50ICgqZHJpdmVfc3RhdHVz
KSAoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICosIGludCk7CiAgICAgICAgaW50ICgqbWVkaWFf
Y2hhbmdlZCkgKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqLCBpbnQpOwogICAgICAgIGludCAo
KnRyYXlfbW92ZSkgKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqLCBpbnQpOwogICAgICAgIGlu
dCAoKmxvY2tfZG9vcikgKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqLCBpbnQpOwogICAgICAg
IGludCAoKnNlbGVjdF9zcGVlZCkgKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqLCBpbnQpOwog
ICAgICAgIGludCAoKnNlbGVjdF9kaXNjKSAoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICosIGlu
dCk7CiAgICAgICAgaW50ICgqZ2V0X2xhc3Rfc2Vzc2lvbikgKHN0cnVjdCBjZHJvbV9kZXZpY2Vf
aW5mbyAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY2Ryb21fbXVs
dGlzZXNzaW9uICopOwogICAgICAgIGludCAoKmdldF9tY24pIChzdHJ1Y3QgY2Ryb21fZGV2aWNl
X2luZm8gKiwKICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNkcm9tX21jbiAqKTsKCiAg
ICAgICAgaW50ICgqcmVzZXQpIChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKik7CgogICAgICAg
IGludCAoKmF1ZGlvX2lvY3RsKSAoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICosdW5zaWduZWQg
aW50LCB2b2lkICopOwoKICAgICAgICBpbnQgKCpkZXZfaW9jdGxfUnNtcF8zODdjNzhhNSkgKHN0
cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqLAogICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGludCwgdW5zaWduZWQgbG9uZyk7CgogICAgICAgIGNvbnN0IGludCBjYXBhYmlsaXR5Owog
ICAgICAgIGludCBuX21pbm9yczsKCiAgICAgICAgaW50ICgqZ2VuZXJpY19wYWNrZXQpIChzdHJ1
Y3QgY2Ryb21fZGV2aWNlX2luZm8gKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
cnVjdCBjZHJvbV9nZW5lcmljX2NvbW1hbmQgKik7Cn07CgoKZXh0ZXJuIHN0cnVjdCBibG9ja19k
ZXZpY2Vfb3BlcmF0aW9ucyBjZHJvbV9mb3BzX1JzbXBfNWNmY2NlMDU7CgpleHRlcm4gaW50IHJl
Z2lzdGVyX2Nkcm9tX1JzbXBfNWE2MTc0NGYoc3RydWN0IGNkcm9tX2RldmljZV9pbmZvICpjZGkp
OwpleHRlcm4gaW50IHVucmVnaXN0ZXJfY2Ryb21fUnNtcF83MDNkMzU3NShzdHJ1Y3QgY2Ryb21f
ZGV2aWNlX2luZm8gKmNkaSk7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgZGF0YTsKICAgIGlu
dCBhdWRpbzsKICAgIGludCBjZGk7CiAgICBpbnQgeGE7CiAgICBsb25nIGVycm9yOwp9IHRyYWNr
dHlwZTsKCmV4dGVybiB2b2lkIGNkcm9tX2NvdW50X3RyYWNrc19Sc21wX2U3NDZhNTNiKHN0cnVj
dCBjZHJvbV9kZXZpY2VfaW5mbyAqY2RpLHRyYWNrdHlwZSogdHJhY2tzKTsKZXh0ZXJuIGludCBj
ZHJvbV9nZXRfbmV4dF93cml0YWJsZV9Sc21wXzM2OTE0YmFlKGtkZXZfdCBkZXYsIGxvbmcgKm5l
eHRfd3JpdGFibGUpOwpleHRlcm4gaW50IGNkcm9tX2dldF9sYXN0X3dyaXR0ZW5fUnNtcF83ODI2
MzQ2NyhrZGV2X3QgZGV2LCBsb25nICpsYXN0X3dyaXR0ZW4pOwpleHRlcm4gaW50IGNkcm9tX251
bWJlcl9vZl9zbG90c19Sc21wXzVkOGYzNjcyKHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2Rp
KTsKZXh0ZXJuIGludCBjZHJvbV9zZWxlY3RfZGlzY19Sc21wXzhkY2JmMmZkKHN0cnVjdCBjZHJv
bV9kZXZpY2VfaW5mbyAqY2RpLCBpbnQgc2xvdCk7CmV4dGVybiBpbnQgY2Ryb21fbW9kZV9zZWxl
Y3RfUnNtcF9jZjEwMjAxOChzdHJ1Y3QgY2Ryb21fZGV2aWNlX2luZm8gKmNkaSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY2Ryb21fZ2VuZXJpY19jb21tYW5kICpjZ2MpOwpl
eHRlcm4gaW50IGNkcm9tX21vZGVfc2Vuc2VfUnNtcF80NDFjOTI1MyhzdHJ1Y3QgY2Ryb21fZGV2
aWNlX2luZm8gKmNkaSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjZHJvbV9n
ZW5lcmljX2NvbW1hbmQgKmNnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBwYWdl
X2NvZGUsIGludCBwYWdlX2NvbnRyb2wpOwpleHRlcm4gdm9pZCBpbml0X2Nkcm9tX2NvbW1hbmRf
UnNtcF9mYWNkZTFiNShzdHJ1Y3QgY2Ryb21fZ2VuZXJpY19jb21tYW5kICpjZ2MsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpidWZmZXIsIGludCBsZW4sIGludCB0eXBlKTsK
ZXh0ZXJuIHN0cnVjdCBjZHJvbV9kZXZpY2VfaW5mbyAqY2Ryb21fZmluZF9kZXZpY2VfUnNtcF81
N2JhZjc4OChrZGV2X3QgZGV2KTsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3UxNiBkaXNj
X2luZm9ybWF0aW9uX2xlbmd0aDsKCgoKCgoKICAgICAgICBfX3U4IGRpc2Nfc3RhdHVzIDogMjsK
ICAgICAgICBfX3U4IGJvcmRlcl9zdGF0dXMgOiAyOwogICAgICAgIF9fdTggZXJhc2FibGUgOiAx
OwogICAgICAgIF9fdTggcmVzZXJ2ZWQxIDogMzsKCgoKICAgICAgICBfX3U4IG5fZmlyc3RfdHJh
Y2s7CiAgICAgICAgX191OCBuX3Nlc3Npb25zX2xzYjsKICAgICAgICBfX3U4IGZpcnN0X3RyYWNr
X2xzYjsKICAgICAgICBfX3U4IGxhc3RfdHJhY2tfbHNiOwoKCgoKCgogICAgICAgIF9fdTggcmVz
ZXJ2ZWQyIDogNTsKICAgICAgICBfX3U4IHVydSA6IDE7CiAgICAgICAgX191OCBkYmNfdiA6IDE7
CiAgICAgICAgX191OCBkaWRfdiA6IDE7CgogICAgICAgIF9fdTggZGlzY190eXBlOwogICAgICAg
IF9fdTggbl9zZXNzaW9uc19tc2I7CiAgICAgICAgX191OCBmaXJzdF90cmFja19tc2I7CiAgICAg
ICAgX191OCBsYXN0X3RyYWNrX21zYjsKICAgICAgICBfX3UzMiBkaXNjX2lkOwogICAgICAgIF9f
dTMyIGxlYWRfaW47CiAgICAgICAgX191MzIgbGVhZF9vdXQ7CiAgICAgICAgX191OCBkaXNjX2Jh
cl9jb2RlWzhdOwogICAgICAgIF9fdTggcmVzZXJ2ZWQzOwogICAgICAgIF9fdTggbl9vcGM7Cn0g
ZGlzY19pbmZvcm1hdGlvbjsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3UxNiB0cmFja19p
bmZvcm1hdGlvbl9sZW5ndGg7CiAgICAgICAgX191OCB0cmFja19sc2I7CiAgICAgICAgX191OCBz
ZXNzaW9uX2xzYjsKICAgICAgICBfX3U4IHJlc2VydmVkMTsKIyA4NjggIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvbGludXgvY2Ryb20uaCIKICAgICAgICBfX3U4IHRyYWNrX21vZGUgOiA0
OwogICAgICAgIF9fdTggY29weSA6IDE7CiAgICAgICAgX191OCBkYW1hZ2UgOiAxOwogICAgICAg
IF9fdTggcmVzZXJ2ZWQyIDogMjsKICAgICAgICBfX3U4IGRhdGFfbW9kZSA6IDQ7CiAgICAgICAg
X191OCBmcCA6IDE7CiAgICAgICAgX191OCBwYWNrZXQgOiAxOwogICAgICAgIF9fdTggYmxhbmsg
OiAxOwogICAgICAgIF9fdTggcnQgOiAxOwogICAgICAgIF9fdTggbndhX3YgOiAxOwogICAgICAg
IF9fdTggbHJhX3YgOiAxOwogICAgICAgIF9fdTggcmVzZXJ2ZWQzIDogNjsKCiAgICAgICAgX191
MzIgdHJhY2tfc3RhcnQ7CiAgICAgICAgX191MzIgbmV4dF93cml0YWJsZTsKICAgICAgICBfX3Uz
MiBmcmVlX2Jsb2NrczsKICAgICAgICBfX3UzMiBmaXhlZF9wYWNrZXRfc2l6ZTsKICAgICAgICBf
X3UzMiB0cmFja19zaXplOwogICAgICAgIF9fdTMyIGxhc3RfcmVjX2FkZHJlc3M7Cn0gdHJhY2tf
aW5mb3JtYXRpb247CgpleHRlcm4gaW50IGNkcm9tX2dldF9kaXNjX2luZm9fUnNtcF82YmMzZGJk
NihrZGV2X3QgZGV2LCBkaXNjX2luZm9ybWF0aW9uICpkaSk7CmV4dGVybiBpbnQgY2Ryb21fZ2V0
X3RyYWNrX2luZm9fUnNtcF82ZDYwMDg2OChrZGV2X3QgZGV2LCBfX3UxNiB0cmFjaywgX191OCB0
eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrX2luZm9ybWF0aW9uICp0
aSk7CgoKI2RlZmluZSBDRFJPTV9NQVhfU0xPVFMgMjU2CgpzdHJ1Y3QgY2Ryb21fbWVjaHN0YXRf
aGVhZGVyIHsKIyA5MDUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvbGludXgvY2Ryb20u
aCIKICAgICAgICBfX3U4IGN1cnNsb3QgOiA1OwogICAgICAgIF9fdTggY2hhbmdlcl9zdGF0ZSA6
IDI7CiAgICAgICAgX191OCBmYXVsdCA6IDE7CiAgICAgICAgX191OCByZXNlcnZlZDEgOiA0Owog
ICAgICAgIF9fdTggZG9vcl9vcGVuIDogMTsKICAgICAgICBfX3U4IG1lY2hfc3RhdGUgOiAzOwoK
ICAgICAgICBfX3U4IGN1cmxiYVszXTsKICAgICAgICBfX3U4IG5zbG90czsKICAgICAgICBfX3Ux
NiBzbG90X3RhYmxlbGVuOwp9OwoKc3RydWN0IGNkcm9tX3Nsb3QgewoKCgoKCiAgICAgICAgX191
OCBjaGFuZ2UgOiAxOwogICAgICAgIF9fdTggcmVzZXJ2ZWQxIDogNjsKICAgICAgICBfX3U4IGRp
c2NfcHJlc2VudCA6IDE7CgogICAgICAgIF9fdTggcmVzZXJ2ZWQyWzNdOwp9OwoKc3RydWN0IGNk
cm9tX2NoYW5nZXJfaW5mbyB7CiAgICAgICAgc3RydWN0IGNkcm9tX21lY2hzdGF0X2hlYWRlciBo
ZHI7CiAgICAgICAgc3RydWN0IGNkcm9tX3Nsb3Qgc2xvdHNbMjU2XTsKfTsKCnR5cGVkZWYgZW51
bSB7CiAgICAgICAgbWVjaHR5cGVfY2FkZHkgPSAwLAogICAgICAgIG1lY2h0eXBlX3RyYXkgPSAx
LAogICAgICAgIG1lY2h0eXBlX3BvcHVwID0gMiwKICAgICAgICBtZWNodHlwZV9pbmRpdmlkdWFs
X2NoYW5nZXIgPSA0LAogICAgICAgIG1lY2h0eXBlX2NhcnRyaWRnZV9jaGFuZ2VyID0gNQp9IG1l
Y2h0eXBlX3Q7CgpzdHJ1Y3QgbW9kZV9wYWdlX2hlYWRlciB7CiAgICAgICAgX191MTYgbW9kZV9k
YXRhX2xlbmd0aDsKICAgICAgICBfX3U4IG1lZGl1bV90eXBlOwogICAgICAgIF9fdTggcmVzZXJ2
ZWQxOwogICAgICAgIF9fdTggcmVzZXJ2ZWQyOwogICAgICAgIF9fdTggcmVzZXJ2ZWQzOwogICAg
ICAgIF9fdTE2IGRlc2NfbGVuZ3RoOwp9OwoKdHlwZWRlZiBzdHJ1Y3QgewojIDk3MCAiL3Vzci9s
b2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9jZHJvbS5oIgogICAgICAgIF9fdTggcGFnZV9j
b2RlIDogNjsKICAgICAgICBfX3U4IHJlc2VydmVkMSA6IDE7CiAgICAgICAgX191OCBwcyA6IDE7
CiAgICAgICAgX191OCBwYWdlX2xlbmd0aDsKICAgICAgICBfX3U4IHdyaXRlX3R5cGUgOiA0Owog
ICAgICAgIF9fdTggdGVzdF93cml0ZSA6IDE7CiAgICAgICAgX191OCBsc192IDogMTsKICAgICAg
ICBfX3U4IGJ1ZmUgOiAxOwogICAgICAgIF9fdTggcmVzZXJ2ZWQyIDogMTsKICAgICAgICBfX3U4
IHRyYWNrX21vZGUgOiA0OwogICAgICAgIF9fdTggY29weSA6IDE7CiAgICAgICAgX191OCBmcCA6
IDE7CiAgICAgICAgX191OCBtdWx0aV9zZXNzaW9uIDogMjsKICAgICAgICBfX3U4IGRhdGFfYmxv
Y2tfdHlwZSA6IDQ7CiAgICAgICAgX191OCByZXNlcnZlZDMgOiA0OwoKICAgICAgICBfX3U4IGxp
bmtfc2l6ZTsKICAgICAgICBfX3U4IHJlc2VydmVkNDsKCgoKCiAgICAgICAgX191OCBhcHBfY29k
ZSA6IDY7CiAgICAgICAgX191OCByZXNlcnZlZDUgOiAyOwoKICAgICAgICBfX3U4IHNlc3Npb25f
Zm9ybWF0OwogICAgICAgIF9fdTggcmVzZXJ2ZWQ2OwogICAgICAgIF9fdTMyIHBhY2tldF9zaXpl
OwogICAgICAgIF9fdTE2IGF1ZGlvX3BhdXNlOwogICAgICAgIF9fdTggbWNuWzE2XTsKICAgICAg
ICBfX3U4IGlzcmNbMTZdOwogICAgICAgIF9fdTggc3ViaGRyMDsKICAgICAgICBfX3U4IHN1Ymhk
cjE7CiAgICAgICAgX191OCBzdWJoZHIyOwogICAgICAgIF9fdTggc3ViaGRyMzsKfSBfX2F0dHJp
YnV0ZV9fKChwYWNrZWQpKSB3cml0ZV9wYXJhbV9wYWdlOwoKc3RydWN0IG1vZGVzZWxfaGVhZAp7
CiAgICAgICAgX191OCByZXNlcnZlZDE7CiAgICAgICAgX191OCBtZWRpdW07CiAgICAgICAgX191
OCByZXNlcnZlZDI7CiAgICAgICAgX191OCBibG9ja19kZXNjX2xlbmd0aDsKICAgICAgICBfX3U4
IGRlbnNpdHk7CiAgICAgICAgX191OCBudW1iZXJfb2ZfYmxvY2tzX2hpOwogICAgICAgIF9fdTgg
bnVtYmVyX29mX2Jsb2Nrc19tZWQ7CiAgICAgICAgX191OCBudW1iZXJfb2ZfYmxvY2tzX2xvOwog
ICAgICAgIF9fdTggcmVzZXJ2ZWQzOwogICAgICAgIF9fdTggYmxvY2tfbGVuZ3RoX2hpOwogICAg
ICAgIF9fdTggYmxvY2tfbGVuZ3RoX21lZDsKICAgICAgICBfX3U4IGJsb2NrX2xlbmd0aF9sbzsK
fTsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBfX3UxNiByZXBvcnRfa2V5X2xlbmd0aDsKICAg
ICAgICBfX3U4IHJlc2VydmVkMTsKICAgICAgICBfX3U4IHJlc2VydmVkMjsKCgoKCgogICAgICAg
IF9fdTggdWNjYSA6IDM7CiAgICAgICAgX191OCB2cmEgOiAzOwogICAgICAgIF9fdTggdHlwZV9j
b2RlIDogMjsKCiAgICAgICAgX191OCByZWdpb25fbWFzazsKICAgICAgICBfX3U4IHJwY19zY2hl
bWU7CiAgICAgICAgX191OCByZXNlcnZlZDM7Cn0gcnBjX3N0YXRlX3Q7CiMgNTcgImZzL3VkZi9z
dXBlci5jIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9saW51eC9ubHMuaCIg
MQoKI2RlZmluZSBfTElOVVhfTkxTX0gKCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9pbml0LmgiIDEKIyA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4
L25scy5oIiAyCgoKdHlwZWRlZiBfX3UxNiB3Y2hhcl90OwoKc3RydWN0IG5sc190YWJsZSB7CiAg
ICAgICAgY2hhciAqY2hhcnNldDsKICAgICAgICBpbnQgKCp1bmkyY2hhcikgKHdjaGFyX3QgdW5p
LCB1bnNpZ25lZCBjaGFyICpvdXQsIGludCBib3VuZGxlbik7CiAgICAgICAgaW50ICgqY2hhcjJ1
bmkpIChjb25zdCB1bnNpZ25lZCBjaGFyICpyYXdzdHJpbmcsIGludCBib3VuZGxlbiwKICAgICAg
ICAgICAgICAgICAgICAgICAgIHdjaGFyX3QgKnVuaSk7CiAgICAgICAgdW5zaWduZWQgY2hhciAq
Y2hhcnNldDJsb3dlcjsKICAgICAgICB1bnNpZ25lZCBjaGFyICpjaGFyc2V0MnVwcGVyOwogICAg
ICAgIHN0cnVjdCBtb2R1bGUgKm93bmVyOwogICAgICAgIHN0cnVjdCBubHNfdGFibGUgKm5leHQ7
Cn07CgoKI2RlZmluZSBOTFNfTUFYX0NIQVJTRVRfU0laRSAzCgoKZXh0ZXJuIGludCByZWdpc3Rl
cl9ubHNfUnNtcF9hNmU4MzgxMihzdHJ1Y3QgbmxzX3RhYmxlICopOwpleHRlcm4gaW50IHVucmVn
aXN0ZXJfbmxzX1JzbXBfM2Y0YWI5NTAoc3RydWN0IG5sc190YWJsZSAqKTsKZXh0ZXJuIHN0cnVj
dCBubHNfdGFibGUgKmxvYWRfbmxzX1JzbXBfOWZmMGEyZWEoY2hhciAqKTsKZXh0ZXJuIHZvaWQg
dW5sb2FkX25sc19Sc21wX2RhMWNlOTlkKHN0cnVjdCBubHNfdGFibGUgKik7CmV4dGVybiBzdHJ1
Y3QgbmxzX3RhYmxlICpsb2FkX25sc19kZWZhdWx0X1JzbXBfNzY4ZDczMjIodm9pZCk7CgpleHRl
cm4gaW50IHV0ZjhfbWJ0b3djX1JzbXBfNGRkYzRiOWYod2NoYXJfdCAqLCBjb25zdCBfX3U4ICos
IGludCk7CmV4dGVybiBpbnQgdXRmOF9tYnN0b3djc19Sc21wXzdkODUwNjEyKHdjaGFyX3QgKiwg
Y29uc3QgX191OCAqLCBpbnQpOwpleHRlcm4gaW50IHV0Zjhfd2N0b21iX1JzbXBfZjgyZjExMDko
X191OCAqLCB3Y2hhcl90LCBpbnQpOwpleHRlcm4gaW50IHV0Zjhfd2NzdG9tYnNfUnNtcF84NjNj
YjkxYShfX3U4ICosIGNvbnN0IHdjaGFyX3QgKiwgaW50KTsKIyA1OCAiZnMvdWRmL3N1cGVyLmMi
IDIKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9ieXRlb3JkZXIuaCIgMQoj
IDU5ICJmcy91ZGYvc3VwZXIuYyIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRl
L2xpbnV4L3VkZl9mcy5oIiAxCiMgNjEgImZzL3VkZi9zdXBlci5jIiAyCiMgMSAiZnMvdWRmL3Vk
Zl9zYi5oIiAxCgojZGVmaW5lIF9fTElOVVhfVURGX1NCX0gKCgojZGVmaW5lIFVERl9TVVBFUl9N
QUdJQyAweDE1MDEzMzQ2CgojZGVmaW5lIFVERl9NQVhfUkVBRF9WRVJTSU9OIDB4MDIwMQojZGVm
aW5lIFVERl9NQVhfV1JJVEVfVkVSU0lPTiAweDAyMDEKCiNkZWZpbmUgVURGX0ZMQUdfVVNFX0VY
VEVOREVEX0ZFIDAKI2RlZmluZSBVREZfVkVSU19VU0VfRVhURU5ERURfRkUgMHgwMjAwCiNkZWZp
bmUgVURGX0ZMQUdfVVNFX1NUUkVBTVMgMQojZGVmaW5lIFVERl9WRVJTX1VTRV9TVFJFQU1TIDB4
MDIwMAojZGVmaW5lIFVERl9GTEFHX1VTRV9TSE9SVF9BRCAyCiNkZWZpbmUgVURGX0ZMQUdfVVNF
X0FEX0lOX0lDQiAzCiNkZWZpbmUgVURGX0ZMQUdfVVNFX0ZJTEVfQ1RJTUVfRUEgNAojZGVmaW5l
IFVERl9GTEFHX1NUUklDVCA1CiNkZWZpbmUgVURGX0ZMQUdfVU5ERUxFVEUgNgojZGVmaW5lIFVE
Rl9GTEFHX1VOSElERSA3CiNkZWZpbmUgVURGX0ZMQUdfVkFSQ09OViA4CiNkZWZpbmUgVURGX0ZM
QUdfTkxTX01BUCA5CiNkZWZpbmUgVURGX0ZMQUdfVVRGOCAxMAoKI2RlZmluZSBVREZfUEFSVF9G
TEFHX1VOQUxMT0NfQklUTUFQIDB4MDAwMQojZGVmaW5lIFVERl9QQVJUX0ZMQUdfVU5BTExPQ19U
QUJMRSAweDAwMDIKI2RlZmluZSBVREZfUEFSVF9GTEFHX0ZSRUVEX0JJVE1BUCAweDAwMDQKI2Rl
ZmluZSBVREZfUEFSVF9GTEFHX0ZSRUVEX1RBQkxFIDB4MDAwOAoKI2RlZmluZSBVREZfU0JfRlJF
RShYKSB7IGlmIChVREZfU0IoWCkpIHsgaWYgKFVERl9TQl9QQVJUTUFQUyhYKSkga2ZyZWUoVURG
X1NCX1BBUlRNQVBTKFgpKTsgVURGX1NCX1BBUlRNQVBTKFgpID0gTlVMTDsgfX0KIyAzOCAiZnMv
dWRmL3VkZl9zYi5oIgojZGVmaW5lIFVERl9TQihYKSAoJigoWCktPnUudWRmX3NiKSkKCiNkZWZp
bmUgVURGX1NCX0FMTE9DX1BBUlRNQVBTKFgsIFkpIHsgVURGX1NCX1BBUlRNQVBTKFgpID0ga21h
bGxvYyhzaXplb2Yoc3RydWN0IHVkZl9wYXJ0X21hcCkgKiBZLCBHRlBfS0VSTkVMKTsgaWYgKFVE
Rl9TQl9QQVJUTUFQUyhYKSAhPSBOVUxMKSB7IFVERl9TQl9OVU1QQVJUUyhYKSA9IFk7IG1lbXNl
dChVREZfU0JfUEFSVE1BUFMoWCksIDB4MDAsIHNpemVvZihzdHJ1Y3QgdWRmX3BhcnRfbWFwKSAq
IFkpOyB9IGVsc2UgeyBVREZfU0JfTlVNUEFSVFMoWCkgPSAwOyB1ZGZfZXJyb3IoWCwgX19GVU5D
VElPTl9fLCAiVW5hYmxlIHRvIGFsbG9jYXRlIHNwYWNlIGZvciAlZCBwYXJ0aXRpb24gbWFwcyIs
IFkpOyB9fQojIDU1ICJmcy91ZGYvdWRmX3NiLmgiCiNkZWZpbmUgVURGX1NCX0FMTE9DX0JJVE1B
UChYLCBZLCBaKSB7IGludCBucl9ncm91cHMgPSAoKFVERl9TQl9QQVJUTEVOKChYKSwoWSkpICsg
KHNpemVvZihzdHJ1Y3QgU3BhY2VCaXRtYXBEZXNjKSA8PCAzKSArICgoWCktPnNfYmxvY2tzaXpl
ICogOCkgLSAxKSAvICgoWCktPnNfYmxvY2tzaXplICogOCkpOyBVREZfU0JfUEFSVE1BUFMoWClb
KFkpXS5aLnNfYml0bWFwID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IHVkZl9iaXRtYXApICsgc2l6
ZW9mKHN0cnVjdCBidWZmZXJfaGVhZCAqKSAqIG5yX2dyb3VwcywgR0ZQX0tFUk5FTCk7IGlmIChV
REZfU0JfUEFSVE1BUFMoWClbKFkpXS5aLnNfYml0bWFwICE9IE5VTEwpIHsgbWVtc2V0KFVERl9T
Ql9QQVJUTUFQUyhYKVsoWSldLlouc19iaXRtYXAsIDB4MDAsIHNpemVvZihzdHJ1Y3QgdWRmX2Jp
dG1hcCkgKyBzaXplb2Yoc3RydWN0IGJ1ZmZlcl9oZWFkICopICogbnJfZ3JvdXBzKTsgVURGX1NC
X1BBUlRNQVBTKFgpWyhZKV0uWi5zX2JpdG1hcC0+c19ibG9ja19iaXRtYXAgPSAoc3RydWN0IGJ1
ZmZlcl9oZWFkICoqKShVREZfU0JfUEFSVE1BUFMoWClbKFkpXS5aLnNfYml0bWFwICsgMSk7IFVE
Rl9TQl9QQVJUTUFQUyhYKVsoWSldLlouc19iaXRtYXAtPnNfbnJfZ3JvdXBzID0gbnJfZ3JvdXBz
OyB9IGVsc2UgeyB1ZGZfZXJyb3IoWCwgX19GVU5DVElPTl9fLCAiVW5hYmxlIHRvIGFsbG9jYXRl
IHNwYWNlIGZvciBiaXRtYXAgYW5kICVkIGJ1ZmZlcl9oZWFkIHBvaW50ZXJzIiwgbnJfZ3JvdXBz
KTsgfX0KIyA3NyAiZnMvdWRmL3VkZl9zYi5oIgojZGVmaW5lIFVERl9RVUVSWV9GTEFHKFgsIFkp
ICggVURGX1NCKFgpLT5zX2ZsYWdzICYgKCAxIDw8IChZKSApICkKI2RlZmluZSBVREZfU0VUX0ZM
QUcoWCwgWSkgKCBVREZfU0IoWCktPnNfZmxhZ3MgfD0gKCAxIDw8IChZKSApICkKI2RlZmluZSBV
REZfQ0xFQVJfRkxBRyhYLCBZKSAoIFVERl9TQihYKS0+c19mbGFncyAmPSB+KCAxIDw8IChZKSAp
ICkKCiNkZWZpbmUgVURGX1VQREFURV9VREZSRVYoWCwgWSkgKCAoKFkpID4gVURGX1NCX1VERlJF
VihYKSkgPyBVREZfU0JfVURGUkVWKFgpID0gKFkpIDogVURGX1NCX1VERlJFVihYKSApCgojZGVm
aW5lIFVERl9TQl9QQVJUTUFQUyhYKSAoIFVERl9TQihYKS0+c19wYXJ0bWFwcyApCiNkZWZpbmUg
VURGX1NCX1BBUlRUWVBFKFgsIFkpICggVURGX1NCX1BBUlRNQVBTKFgpWyhZKV0uc19wYXJ0aXRp
b25fdHlwZSApCiNkZWZpbmUgVURGX1NCX1BBUlRST09UKFgsIFkpICggVURGX1NCX1BBUlRNQVBT
KFgpWyhZKV0uc19wYXJ0aXRpb25fcm9vdCApCiNkZWZpbmUgVURGX1NCX1BBUlRMRU4oWCwgWSkg
KCBVREZfU0JfUEFSVE1BUFMoWClbKFkpXS5zX3BhcnRpdGlvbl9sZW4gKQojZGVmaW5lIFVERl9T
Ql9QQVJUVlNOKFgsIFkpICggVURGX1NCX1BBUlRNQVBTKFgpWyhZKV0uc192b2x1bWVzZXFudW0g
KQojZGVmaW5lIFVERl9TQl9QQVJUTlVNKFgsIFkpICggVURGX1NCX1BBUlRNQVBTKFgpWyhZKV0u
c19wYXJ0aXRpb25fbnVtICkKI2RlZmluZSBVREZfU0JfVFlQRVNQQVIoWCwgWSkgKCBVREZfU0Jf
UEFSVE1BUFMoWClbKFkpXS5zX3R5cGVfc3BlY2lmaWMuc19zcGFyaW5nICkKI2RlZmluZSBVREZf
U0JfVFlQRVZJUlQoWCwgWSkgKCBVREZfU0JfUEFSVE1BUFMoWClbKFkpXS5zX3R5cGVfc3BlY2lm
aWMuc192aXJ0dWFsICkKI2RlZmluZSBVREZfU0JfUEFSVEZVTkMoWCwgWSkgKCBVREZfU0JfUEFS
VE1BUFMoWClbKFkpXS5zX3BhcnRpdGlvbl9mdW5jICkKI2RlZmluZSBVREZfU0JfUEFSVEZMQUdT
KFgsIFkpICggVURGX1NCX1BBUlRNQVBTKFgpWyhZKV0uc19wYXJ0aXRpb25fZmxhZ3MgKQojZGVm
aW5lIFVERl9TQl9CSVRNQVAoWCwgWSwgWiwgSSkgKCBVREZfU0JfUEFSVE1BUFMoWClbKFkpXS5a
LnNfYml0bWFwLT5zX2Jsb2NrX2JpdG1hcFtJXSApCiNkZWZpbmUgVURGX1NCX0JJVE1BUF9OUl9H
Uk9VUFMoWCwgWSwgWikgKCBVREZfU0JfUEFSVE1BUFMoWClbKFkpXS5aLnNfYml0bWFwLT5zX25y
X2dyb3VwcyApCgojZGVmaW5lIFVERl9TQl9WT0xJREVOVChYKSAoIFVERl9TQihYKS0+c192b2xp
ZGVudCApCiNkZWZpbmUgVURGX1NCX05VTVBBUlRTKFgpICggVURGX1NCKFgpLT5zX3BhcnRpdGlv
bnMgKQojZGVmaW5lIFVERl9TQl9QQVJUSVRJT04oWCkgKCBVREZfU0IoWCktPnNfcGFydGl0aW9u
ICkKI2RlZmluZSBVREZfU0JfU0VTU0lPTihYKSAoIFVERl9TQihYKS0+c19zZXNzaW9uICkKI2Rl
ZmluZSBVREZfU0JfQU5DSE9SKFgpICggVURGX1NCKFgpLT5zX2FuY2hvciApCiNkZWZpbmUgVURG
X1NCX0xBU1RCTE9DSyhYKSAoIFVERl9TQihYKS0+c19sYXN0YmxvY2sgKQojZGVmaW5lIFVERl9T
Ql9MVklEQkgoWCkgKCBVREZfU0IoWCktPnNfbHZpZGJoICkKI2RlZmluZSBVREZfU0JfTFZJRChY
KSAoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2MgKilVREZfU0JfTFZJREJIKFgpLT5i
X2RhdGEgKQojZGVmaW5lIFVERl9TQl9MVklESVUoWCkgKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRl
Z3JpdHlEZXNjSW1wVXNlICopJihVREZfU0JfTFZJRChYKS0+aW1wVXNlW1VERl9TQl9MVklEKFgp
LT5udW1PZlBhcnRpdGlvbnMgKiAyICogc2l6ZW9mKFVpbnQzMikvc2l6ZW9mKFVpbnQ4KV0pICkK
CiNkZWZpbmUgVURGX1NCX1VNQVNLKFgpICggVURGX1NCKFgpLT5zX3VtYXNrICkKI2RlZmluZSBV
REZfU0JfR0lEKFgpICggVURGX1NCKFgpLT5zX2dpZCApCiNkZWZpbmUgVURGX1NCX1VJRChYKSAo
IFVERl9TQihYKS0+c191aWQgKQojZGVmaW5lIFVERl9TQl9SRUNPUkRUSU1FKFgpICggVURGX1NC
KFgpLT5zX3JlY29yZHRpbWUgKQojZGVmaW5lIFVERl9TQl9TRVJJQUxOVU0oWCkgKCBVREZfU0Io
WCktPnNfc2VyaWFsbnVtICkKI2RlZmluZSBVREZfU0JfVURGUkVWKFgpICggVURGX1NCKFgpLT5z
X3VkZnJldiApCiNkZWZpbmUgVURGX1NCX0ZMQUdTKFgpICggVURGX1NCKFgpLT5zX2ZsYWdzICkK
I2RlZmluZSBVREZfU0JfVkFUKFgpICggVURGX1NCKFgpLT5zX3ZhdCApCiMgNjIgImZzL3VkZi9z
dXBlci5jIiAyCiMgMSAiZnMvdWRmL3VkZl9pLmgiIDEKCiNkZWZpbmUgX19MSU5VWF9VREZfSV9I
CgojZGVmaW5lIFVERl9JKFgpICgmKChYKS0+dS51ZGZfaSkpCgojZGVmaW5lIFVERl9JX0xPQ0FU
SU9OKFgpICggVURGX0koWCktPmlfbG9jYXRpb24gKQojZGVmaW5lIFVERl9JX0xFTkVBVFRSKFgp
ICggVURGX0koWCktPmlfbGVuRUF0dHIgKQojZGVmaW5lIFVERl9JX0xFTkFMTE9DKFgpICggVURG
X0koWCktPmlfbGVuQWxsb2MgKQojZGVmaW5lIFVERl9JX0xFTkVYVEVOVFMoWCkgKCBVREZfSShY
KS0+aV9sZW5FeHRlbnRzICkKI2RlZmluZSBVREZfSV9VTklRVUUoWCkgKCBVREZfSShYKS0+aV91
bmlxdWUgKQojZGVmaW5lIFVERl9JX0FMTE9DVFlQRShYKSAoIFVERl9JKFgpLT5pX2FsbG9jX3R5
cGUgKQojZGVmaW5lIFVERl9JX0VYVEVOREVEX0ZFKFgpICggVURGX0koWCktPmlfZXh0ZW5kZWRf
ZmUgKQojZGVmaW5lIFVERl9JX1NUUkFUNDA5NihYKSAoIFVERl9JKFgpLT5pX3N0cmF0XzQwOTYg
KQojZGVmaW5lIFVERl9JX05FV19JTk9ERShYKSAoIFVERl9JKFgpLT5pX25ld19pbm9kZSApCiNk
ZWZpbmUgVURGX0lfTkVYVF9BTExPQ19CTE9DSyhYKSAoIFVERl9JKFgpLT5pX25leHRfYWxsb2Nf
YmxvY2sgKQojZGVmaW5lIFVERl9JX05FWFRfQUxMT0NfR09BTChYKSAoIFVERl9JKFgpLT5pX25l
eHRfYWxsb2NfZ29hbCApCiNkZWZpbmUgVURGX0lfVU1USU1FKFgpICggVURGX0koWCktPmlfdW10
aW1lICkKI2RlZmluZSBVREZfSV9VQ1RJTUUoWCkgKCBVREZfSShYKS0+aV91Y3RpbWUgKQojZGVm
aW5lIFVERl9JX0NSVElNRShYKSAoIFVERl9JKFgpLT5pX2NydGltZSApCiNkZWZpbmUgVURGX0lf
VUNSVElNRShYKSAoIFVERl9JKFgpLT5pX3VjcnRpbWUgKQojIDYzICJmcy91ZGYvc3VwZXIuYyIg
MgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2xpbnV4L2luaXQuaCIgMQojIDY1
ICJmcy91ZGYvc3VwZXIuYyIgMgojIDEgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3VhY2Nlc3MuaCIgMQoKI2RlZmluZSBfQVNNX0lBNjRfVUFDQ0VTU19ICiMgMzMgIi91c3IvbG9j
YWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaCIKIyAxICIvdXNyL2xvY2FsL3NyYy9i
dWlsZC9pbmNsdWRlL2xpbnV4L2Vycm5vLmgiIDEKIyAzNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQv
aW5jbHVkZS9hc20vdWFjY2Vzcy5oIiAyCiMgMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9saW51eC9zY2hlZC5oIiAxCiMgMzUgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNt
L3VhY2Nlc3MuaCIgMgoKIyAxICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS9wZ3Rh
YmxlLmgiIDEKIyAzNyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdWFjY2Vzcy5o
IiAyCgoKCgojZGVmaW5lIEtFUk5FTF9EUyAoKG1tX3NlZ21lbnRfdCkgeyB+MFVMIH0pCiNkZWZp
bmUgVVNFUl9EUyAoKG1tX3NlZ21lbnRfdCkgeyBUQVNLX1NJWkUtMSB9KQoKI2RlZmluZSBWRVJJ
RllfUkVBRCAwCiNkZWZpbmUgVkVSSUZZX1dSSVRFIDEKCiNkZWZpbmUgZ2V0X2RzKCkgKEtFUk5F
TF9EUykKI2RlZmluZSBnZXRfZnMoKSAoY3VycmVudC0+YWRkcl9saW1pdCkKI2RlZmluZSBzZXRf
ZnMoeCkgKGN1cnJlbnQtPmFkZHJfbGltaXQgPSAoeCkpCgojZGVmaW5lIHNlZ21lbnRfZXEoYSwg
YikgKChhKS5zZWcgPT0gKGIpLnNlZykKCgoKCgoKCiNkZWZpbmUgX19hY2Nlc3Nfb2soYWRkciwg
c2l6ZSwgc2VnbWVudCkgKCgodW5zaWduZWQgbG9uZykgKGFkZHIpKSA8PSAoc2VnbWVudCkuc2Vn
ICYmICgoc2VnbWVudCkuc2VnID09IEtFUk5FTF9EUy5zZWcgfHwgcmduX29mZnNldCgodW5zaWdu
ZWQgbG9uZykgKGFkZHIpKSA8IFJHTl9NQVBfTElNSVQpKQoKI2RlZmluZSBhY2Nlc3Nfb2sodHlw
ZSwgYWRkciwgc2l6ZSkgX19hY2Nlc3Nfb2soKGFkZHIpLChzaXplKSxnZXRfZnMoKSkKCnN0YXRp
YyBpbmxpbmUgaW50CnZlcmlmeV9hcmVhIChpbnQgdHlwZSwgY29uc3Qgdm9pZCAqYWRkciwgdW5z
aWduZWQgbG9uZyBzaXplKQp7CiAgICAgICAgcmV0dXJuICgoKHVuc2lnbmVkIGxvbmcpICgoYWRk
cikpKSA8PSAoKGN1cnJlbnQtPmFkZHJfbGltaXQpKS5zZWcgJiYgKCgoY3VycmVudC0+YWRkcl9s
aW1pdCkpLnNlZyA9PSAoKG1tX3NlZ21lbnRfdCkgeyB+MFVMIH0pLnNlZyB8fCByZ25fb2Zmc2V0
KCh1bnNpZ25lZCBsb25nKSAoKGFkZHIpKSkgPCAoKDFVTCA8PCAoNCoxNCAtIDEyKSkgLSAoMVVM
IDw8IDE0KSkpKSA/IDAgOiAtMTQ7Cn0KIyA3NyAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vdWFjY2Vzcy5oIgojZGVmaW5lIHB1dF91c2VyKHgsIHB0cikgX19wdXRfdXNlcl9jaGVj
aygoX190eXBlb2ZfXygqKHB0cikpKSh4KSwocHRyKSxzaXplb2YoKihwdHIpKSxnZXRfZnMoKSkK
I2RlZmluZSBnZXRfdXNlcih4LCBwdHIpIF9fZ2V0X3VzZXJfY2hlY2soKHgpLChwdHIpLHNpemVv
ZigqKHB0cikpLGdldF9mcygpKQoKCgoKCgojZGVmaW5lIF9fcHV0X3VzZXIoeCwgcHRyKSBfX3B1
dF91c2VyX25vY2hlY2soKF9fdHlwZW9mX18oKihwdHIpKSkoeCksKHB0ciksc2l6ZW9mKCoocHRy
KSkpCiNkZWZpbmUgX19nZXRfdXNlcih4LCBwdHIpIF9fZ2V0X3VzZXJfbm9jaGVjaygoeCksKHB0
ciksc2l6ZW9mKCoocHRyKSkpCgpleHRlcm4gdm9pZCBfX2dldF91c2VyX3Vua25vd24gKHZvaWQp
OwoKI2RlZmluZSBfX2dldF91c2VyX25vY2hlY2soeCwgcHRyLCBzaXplKSAoeyByZWdpc3RlciBs
b25nIF9fZ3VfZXJyIGFzbSAoInI4IikgPSAwOyByZWdpc3RlciBsb25nIF9fZ3VfdmFsIGFzbSAo
InI5IikgPSAwOyBzd2l0Y2ggKHNpemUpIHsgY2FzZSAxOiBfX2dldF91c2VyXzgocHRyKTsgYnJl
YWs7IGNhc2UgMjogX19nZXRfdXNlcl8xNihwdHIpOyBicmVhazsgY2FzZSA0OiBfX2dldF91c2Vy
XzMyKHB0cik7IGJyZWFrOyBjYXNlIDg6IF9fZ2V0X3VzZXJfNjQocHRyKTsgYnJlYWs7IGRlZmF1
bHQ6IF9fZ2V0X3VzZXJfdW5rbm93bigpOyBicmVhazsgfSAoeCkgPSAoX190eXBlb2ZfXygqKHB0
cikpKSBfX2d1X3ZhbDsgX19ndV9lcnI7IH0pCiMgMTA1ICIvdXNyL2xvY2FsL3NyYy9idWlsZC9p
bmNsdWRlL2FzbS91YWNjZXNzLmgiCiNkZWZpbmUgX19nZXRfdXNlcl9jaGVjayh4LCBwdHIsIHNp
emUsIHNlZ21lbnQpICh7IHJlZ2lzdGVyIGxvbmcgX19ndV9lcnIgYXNtICgicjgiKSA9IC1FRkFV
TFQ7IHJlZ2lzdGVyIGxvbmcgX19ndV92YWwgYXNtICgicjkiKSA9IDA7IGNvbnN0IF9fdHlwZW9m
X18oKihwdHIpKSAqX19ndV9hZGRyID0gKHB0cik7IGlmIChfX2FjY2Vzc19vaygobG9uZylfX2d1
X2FkZHIsc2l6ZSxzZWdtZW50KSkgeyBfX2d1X2VyciA9IDA7IHN3aXRjaCAoc2l6ZSkgeyBjYXNl
IDE6IF9fZ2V0X3VzZXJfOChfX2d1X2FkZHIpOyBicmVhazsgY2FzZSAyOiBfX2dldF91c2VyXzE2
KF9fZ3VfYWRkcik7IGJyZWFrOyBjYXNlIDQ6IF9fZ2V0X3VzZXJfMzIoX19ndV9hZGRyKTsgYnJl
YWs7IGNhc2UgODogX19nZXRfdXNlcl82NChfX2d1X2FkZHIpOyBicmVhazsgZGVmYXVsdDogX19n
ZXRfdXNlcl91bmtub3duKCk7IGJyZWFrOyB9IH0gKHgpID0gKF9fdHlwZW9mX18oKihwdHIpKSkg
X19ndV92YWw7IF9fZ3VfZXJyOyB9KQojIDEyNCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vdWFjY2Vzcy5oIgpzdHJ1Y3QgX19sYXJnZV9zdHJ1Y3QgeyB1bnNpZ25lZCBsb25nIGJ1
ZlsxMDBdOyB9OwojZGVmaW5lIF9fbSh4KSAoKihzdHJ1Y3QgX19sYXJnZV9zdHJ1Y3QgKikoeCkp
CgoKYXNtICgiLnNlY3Rpb24gXCJfX2V4X3RhYmxlXCIsIFwiYVwiXG5cdC5wcmV2aW91cyIpOwoK
CiNkZWZpbmUgR0FTX0hBU19MT0NBTF9UQUdTCgoKCiNkZWZpbmUgX0xMICJbMTpdIgoKCgoKI2Rl
ZmluZSBfX2dldF91c2VyXzY0KGFkZHIpIGFzbSAoIlxuIl9MTCJcdGxkOCAlMD0lMiVQMlx0Ly8g
JTAgYW5kICUxIGdldCBvdmVyd3JpdHRlbiBieSBleGNlcHRpb24gaGFuZGxlclxuIiAiXHQueGRh
dGE0IFwiX19leF90YWJsZVwiLCBAZ3ByZWwoMWIpLCBAZ3ByZWwoMWYpKzRcbiIgX0xMIDogIj1y
IihfX2d1X3ZhbCksICI9ciIoX19ndV9lcnIpIDogIm0iKF9fbShhZGRyKSksICIxIihfX2d1X2Vy
cikpOwoKCgoKCiNkZWZpbmUgX19nZXRfdXNlcl8zMihhZGRyKSBhc20gKCJcbiJfTEwiXHRsZDQg
JTA9JTIlUDJcdC8vICUwIGFuZCAlMSBnZXQgb3ZlcndyaXR0ZW4gYnkgZXhjZXB0aW9uIGhhbmRs
ZXJcbiIgIlx0LnhkYXRhNCBcIl9fZXhfdGFibGVcIiwgQGdwcmVsKDFiKSwgQGdwcmVsKDFmKSs0
XG4iIF9MTCA6ICI9ciIoX19ndV92YWwpLCAiPXIiKF9fZ3VfZXJyKSA6ICJtIihfX20oYWRkcikp
LCAiMSIoX19ndV9lcnIpKTsKCgoKCgojZGVmaW5lIF9fZ2V0X3VzZXJfMTYoYWRkcikgYXNtICgi
XG4iX0xMIlx0bGQyICUwPSUyJVAyXHQvLyAlMCBhbmQgJTEgZ2V0IG92ZXJ3cml0dGVuIGJ5IGV4
Y2VwdGlvbiBoYW5kbGVyXG4iICJcdC54ZGF0YTQgXCJfX2V4X3RhYmxlXCIsIEBncHJlbCgxYiks
IEBncHJlbCgxZikrNFxuIiBfTEwgOiAiPXIiKF9fZ3VfdmFsKSwgIj1yIihfX2d1X2VycikgOiAi
bSIoX19tKGFkZHIpKSwgIjEiKF9fZ3VfZXJyKSk7CgoKCgoKI2RlZmluZSBfX2dldF91c2VyXzgo
YWRkcikgYXNtICgiXG4iX0xMIlx0bGQxICUwPSUyJVAyXHQvLyAlMCBhbmQgJTEgZ2V0IG92ZXJ3
cml0dGVuIGJ5IGV4Y2VwdGlvbiBoYW5kbGVyXG4iICJcdC54ZGF0YTQgXCJfX2V4X3RhYmxlXCIs
IEBncHJlbCgxYiksIEBncHJlbCgxZikrNFxuIiBfTEwgOiAiPXIiKF9fZ3VfdmFsKSwgIj1yIihf
X2d1X2VycikgOiAibSIoX19tKGFkZHIpKSwgIjEiKF9fZ3VfZXJyKSk7CgoKCgoKZXh0ZXJuIHZv
aWQgX19wdXRfdXNlcl91bmtub3duICh2b2lkKTsKCiNkZWZpbmUgX19wdXRfdXNlcl9ub2NoZWNr
KHgsIHB0ciwgc2l6ZSkgKHsgcmVnaXN0ZXIgbG9uZyBfX3B1X2VyciBhc20gKCJyOCIpID0gMDsg
c3dpdGNoIChzaXplKSB7IGNhc2UgMTogX19wdXRfdXNlcl84KHgscHRyKTsgYnJlYWs7IGNhc2Ug
MjogX19wdXRfdXNlcl8xNih4LHB0cik7IGJyZWFrOyBjYXNlIDQ6IF9fcHV0X3VzZXJfMzIoeCxw
dHIpOyBicmVhazsgY2FzZSA4OiBfX3B1dF91c2VyXzY0KHgscHRyKTsgYnJlYWs7IGRlZmF1bHQ6
IF9fcHV0X3VzZXJfdW5rbm93bigpOyBicmVhazsgfSBfX3B1X2VycjsgfSkKIyAxNzkgIi91c3Iv
bG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaCIKI2RlZmluZSBfX3B1dF91c2Vy
X2NoZWNrKHgsIHB0ciwgc2l6ZSwgc2VnbWVudCkgKHsgcmVnaXN0ZXIgbG9uZyBfX3B1X2VyciBh
c20gKCJyOCIpID0gLUVGQVVMVDsgX190eXBlb2ZfXygqKHB0cikpICpfX3B1X2FkZHIgPSAocHRy
KTsgaWYgKF9fYWNjZXNzX29rKChsb25nKV9fcHVfYWRkcixzaXplLHNlZ21lbnQpKSB7IF9fcHVf
ZXJyID0gMDsgc3dpdGNoIChzaXplKSB7IGNhc2UgMTogX19wdXRfdXNlcl84KHgsX19wdV9hZGRy
KTsgYnJlYWs7IGNhc2UgMjogX19wdXRfdXNlcl8xNih4LF9fcHVfYWRkcik7IGJyZWFrOyBjYXNl
IDQ6IF9fcHV0X3VzZXJfMzIoeCxfX3B1X2FkZHIpOyBicmVhazsgY2FzZSA4OiBfX3B1dF91c2Vy
XzY0KHgsX19wdV9hZGRyKTsgYnJlYWs7IGRlZmF1bHQ6IF9fcHV0X3VzZXJfdW5rbm93bigpOyBi
cmVhazsgfSB9IF9fcHVfZXJyOyB9KQojIDIwMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVk
ZS9hc20vdWFjY2Vzcy5oIgojZGVmaW5lIF9fcHV0X3VzZXJfNjQoeCwgYWRkcikgYXNtIHZvbGF0
aWxlICggIlxuIl9MTCJcdHN0OCAlMT0lcjIlUDFcdC8vICUwIGdldHMgb3ZlcndyaXR0ZW4gYnkg
ZXhjZXB0aW9uIGhhbmRsZXJcbiIgIlx0LnhkYXRhNCBcIl9fZXhfdGFibGVcIiwgQGdwcmVsKDFi
KSwgQGdwcmVsKDFmKVxuIiBfTEwgOiAiPXIiKF9fcHVfZXJyKSA6ICJtIihfX20oYWRkcikpLCAi
ck8iKHgpLCAiMCIoX19wdV9lcnIpKQoKCgoKCgojZGVmaW5lIF9fcHV0X3VzZXJfMzIoeCwgYWRk
cikgYXNtIHZvbGF0aWxlICggIlxuIl9MTCJcdHN0NCAlMT0lcjIlUDFcdC8vICUwIGdldHMgb3Zl
cndyaXR0ZW4gYnkgZXhjZXB0aW9uIGhhbmRsZXJcbiIgIlx0LnhkYXRhNCBcIl9fZXhfdGFibGVc
IiwgQGdwcmVsKDFiKSwgQGdwcmVsKDFmKVxuIiBfTEwgOiAiPXIiKF9fcHVfZXJyKSA6ICJtIihf
X20oYWRkcikpLCAick8iKHgpLCAiMCIoX19wdV9lcnIpKQoKCgoKCgojZGVmaW5lIF9fcHV0X3Vz
ZXJfMTYoeCwgYWRkcikgYXNtIHZvbGF0aWxlICggIlxuIl9MTCJcdHN0MiAlMT0lcjIlUDFcdC8v
ICUwIGdldHMgb3ZlcndyaXR0ZW4gYnkgZXhjZXB0aW9uIGhhbmRsZXJcbiIgIlx0LnhkYXRhNCBc
Il9fZXhfdGFibGVcIiwgQGdwcmVsKDFiKSwgQGdwcmVsKDFmKVxuIiBfTEwgOiAiPXIiKF9fcHVf
ZXJyKSA6ICJtIihfX20oYWRkcikpLCAick8iKHgpLCAiMCIoX19wdV9lcnIpKQoKCgoKCgojZGVm
aW5lIF9fcHV0X3VzZXJfOCh4LCBhZGRyKSBhc20gdm9sYXRpbGUgKCAiXG4iX0xMIlx0c3QxICUx
PSVyMiVQMVx0Ly8gJTAgZ2V0cyBvdmVyd3JpdHRlbiBieSBleGNlcHRpb24gaGFuZGxlclxuIiAi
XHQueGRhdGE0IFwiX19leF90YWJsZVwiLCBAZ3ByZWwoMWIpLCBAZ3ByZWwoMWYpXG4iIF9MTCA6
ICI9ciIoX19wdV9lcnIpIDogIm0iKF9fbShhZGRyKSksICJyTyIoeCksICIwIihfX3B1X2Vycikp
CiMgMjMyICIvdXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS91YWNjZXNzLmgiCmV4dGVy
biB1bnNpZ25lZCBsb25nIF9fY29weV91c2VyX1JzbXBfZTUyNmYxMzYgKHZvaWQgKnRvLCBjb25z
dCB2b2lkICpmcm9tLCB1bnNpZ25lZCBsb25nIGNvdW50KTsKCiNkZWZpbmUgX19jb3B5X3RvX3Vz
ZXIodG8sIGZyb20sIG4pIF9fY29weV91c2VyKCh0byksIChmcm9tKSwgKG4pKQojZGVmaW5lIF9f
Y29weV9mcm9tX3VzZXIodG8sIGZyb20sIG4pIF9fY29weV91c2VyKCh0byksIChmcm9tKSwgKG4p
KQoKI2RlZmluZSBjb3B5X3RvX3VzZXIodG8sIGZyb20sIG4pIF9fY29weV90b2Zyb21fdXNlcigo
dG8pLCAoZnJvbSksIChuKSwgMSkKI2RlZmluZSBjb3B5X2Zyb21fdXNlcih0bywgZnJvbSwgbikg
X19jb3B5X3RvZnJvbV91c2VyKCh0byksIChmcm9tKSwgKG4pLCAwKQoKI2RlZmluZSBfX2NvcHlf
dG9mcm9tX3VzZXIodG8sIGZyb20sIG4sIGNoZWNrX3RvKSAoeyB2b2lkICpfX2N1X3RvID0gKHRv
KTsgY29uc3Qgdm9pZCAqX19jdV9mcm9tID0gKGZyb20pOyBsb25nIF9fY3VfbGVuID0gKG4pOyBp
ZiAoX19hY2Nlc3Nfb2soKGxvbmcpICgoY2hlY2tfdG8pID8gX19jdV90byA6IF9fY3VfZnJvbSks
IF9fY3VfbGVuLCBnZXRfZnMoKSkpIHsgX19jdV9sZW4gPSBfX2NvcHlfdXNlcihfX2N1X3RvLCBf
X2N1X2Zyb20sIF9fY3VfbGVuKTsgfSBfX2N1X2xlbjsgfSkKIyAyNTIgIi91c3IvbG9jYWwvc3Jj
L2J1aWxkL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19kb19j
bGVhcl91c2VyX1JzbXBfM2Y2YmM2MzMgKHZvaWQgKiwgdW5zaWduZWQgbG9uZyk7CgojZGVmaW5l
IF9fY2xlYXJfdXNlcih0bywgbikgKHsgX19kb19jbGVhcl91c2VyKHRvLG4pOyB9KQoKCgoKI2Rl
ZmluZSBjbGVhcl91c2VyKHRvLCBuKSAoeyB1bnNpZ25lZCBsb25nIF9fY3VfbGVuID0gKG4pOyBp
ZiAoX19hY2Nlc3Nfb2soKGxvbmcpIHRvLCBfX2N1X2xlbiwgZ2V0X2ZzKCkpKSB7IF9fY3VfbGVu
ID0gX19kb19jbGVhcl91c2VyKHRvLCBfX2N1X2xlbik7IH0gX19jdV9sZW47IH0pCiMgMjcyICIv
dXNyL2xvY2FsL3NyYy9idWlsZC9pbmNsdWRlL2FzbS91YWNjZXNzLmgiCmV4dGVybiBsb25nIF9f
c3RybmNweV9mcm9tX3VzZXJfUnNtcF9jMDAzYzYzNyAoY2hhciAqdG8sIGNvbnN0IGNoYXIgKmZy
b20sIGxvbmcgdG9fbGVuKTsKCiNkZWZpbmUgc3RybmNweV9mcm9tX3VzZXIodG8sIGZyb20sIG4p
ICh7IGNvbnN0IGNoYXIgKiBfX3NmdV9mcm9tID0gKGZyb20pOyBsb25nIF9fc2Z1X3JldCA9IC1F
RkFVTFQ7IGlmIChfX2FjY2Vzc19vaygobG9uZykgX19zZnVfZnJvbSwgMCwgZ2V0X2ZzKCkpKSBf
X3NmdV9yZXQgPSBfX3N0cm5jcHlfZnJvbV91c2VyKCh0byksIF9fc2Z1X2Zyb20sIChuKSk7IF9f
c2Z1X3JldDsgfSkKIyAyODQgIi91c3IvbG9jYWwvc3JjL2J1aWxkL2luY2x1ZGUvYXNtL3VhY2Nl
c3MuaCIKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX19zdHJsZW5fdXNlcl9Sc21wX2YxMzk0YTJhIChj
b25zdCBjaGFyICopOwoKI2RlZmluZSBzdHJsZW5fdXNlcihzdHIpICh7IGNvbnN0IGNoYXIgKl9f
c3Vfc3RyID0gKHN0cik7IHVuc2lnbmVkIGxvbmcgX19zdV9yZXQgPSAwOyBpZiAoX19hY2Nlc3Nf
b2soKGxvbmcpIF9fc3Vfc3RyLCAwLCBnZXRfZnMoKSkpIF9fc3VfcmV0ID0gX19zdHJsZW5fdXNl
cihfX3N1X3N0cik7IF9fc3VfcmV0OyB9KQojIDMwMCAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5j
bHVkZS9hc20vdWFjY2Vzcy5oIgpleHRlcm4gdW5zaWduZWQgbG9uZyBfX3N0cm5sZW5fdXNlcl9S
c21wXzAwZWVmNDllIChjb25zdCBjaGFyICosIGxvbmcpOwoKI2RlZmluZSBzdHJubGVuX3VzZXIo
c3RyLCBsZW4pICh7IGNvbnN0IGNoYXIgKl9fc3Vfc3RyID0gKHN0cik7IHVuc2lnbmVkIGxvbmcg
X19zdV9yZXQgPSAwOyBpZiAoX19hY2Nlc3Nfb2soKGxvbmcpIF9fc3Vfc3RyLCAwLCBnZXRfZnMo
KSkpIF9fc3VfcmV0ID0gX19zdHJubGVuX3VzZXIoX19zdV9zdHIsIGxlbik7IF9fc3VfcmV0OyB9
KQojIDMxMSAiL3Vzci9sb2NhbC9zcmMvYnVpbGQvaW5jbHVkZS9hc20vdWFjY2Vzcy5oIgpzdHJ1
Y3QgZXhjZXB0aW9uX3RhYmxlX2VudHJ5IHsKICAgICAgICBpbnQgYWRkcjsKICAgICAgICBpbnQg
Y29udDsKfTsKCnN0cnVjdCBleGNlcHRpb25fZml4dXAgewogICAgICAgIHVuc2lnbmVkIGxvbmcg
Y29udDsKfTsKCmV4dGVybiBzdHJ1Y3QgZXhjZXB0aW9uX2ZpeHVwIHNlYXJjaF9leGNlcHRpb25f
dGFibGUgKHVuc2lnbmVkIGxvbmcgYWRkcik7CmV4dGVybiB2b2lkIGhhbmRsZV9leGNlcHRpb24g
KHN0cnVjdCBwdF9yZWdzICpyZWdzLCBzdHJ1Y3QgZXhjZXB0aW9uX2ZpeHVwIGZpeHVwKTsKIyA2
NiAiZnMvdWRmL3N1cGVyLmMiIDIKCiNkZWZpbmUgVkRTX1BPU19QUklNQVJZX1ZPTF9ERVNDIDAK
I2RlZmluZSBWRFNfUE9TX1VOQUxMT0NfU1BBQ0VfREVTQyAxCiNkZWZpbmUgVkRTX1BPU19MT0dJ
Q0FMX1ZPTF9ERVNDIDIKI2RlZmluZSBWRFNfUE9TX1BBUlRJVElPTl9ERVNDIDMKI2RlZmluZSBW
RFNfUE9TX0lNUF9VU0VfVk9MX0RFU0MgNAojZGVmaW5lIFZEU19QT1NfVk9MX0RFU0NfUFRSIDUK
I2RlZmluZSBWRFNfUE9TX1RFUk1JTkFUSU5HX0RFU0MgNgojZGVmaW5lIFZEU19QT1NfTEVOR1RI
IDcKCnN0YXRpYyBjaGFyIGVycm9yX2J1ZlsxMDI0XTsKCgpzdGF0aWMgc3RydWN0IHN1cGVyX2Js
b2NrICp1ZGZfcmVhZF9zdXBlcihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgdm9pZCAqLCBpbnQpOwpz
dGF0aWMgdm9pZCB1ZGZfcHV0X3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKc3RhdGljIHZv
aWQgdWRmX3dyaXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKc3RhdGljIGludCB1ZGZf
cmVtb3VudF9mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgaW50ICosIGNoYXIgKik7CnN0YXRpYyBp
bnQgdWRmX2NoZWNrX3ZhbGlkKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQsIGludCk7CnN0YXRp
YyBpbnQgdWRmX3ZycyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgc2lsZW50KTsKc3RhdGlj
IGludCB1ZGZfbG9hZF9wYXJ0aXRpb24oc3RydWN0IHN1cGVyX2Jsb2NrICosIGxiX2FkZHIgKik7
CnN0YXRpYyBpbnQgdWRmX2xvYWRfbG9naWNhbHZvbChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3Ry
dWN0IGJ1ZmZlcl9oZWFkICosIGxiX2FkZHIgKik7CnN0YXRpYyB2b2lkIHVkZl9sb2FkX2xvZ2lj
YWx2b2xpbnQoc3RydWN0IHN1cGVyX2Jsb2NrICosIGV4dGVudF9hZCk7CnN0YXRpYyBpbnQgdWRm
X2ZpbmRfYW5jaG9yKHN0cnVjdCBzdXBlcl9ibG9jayAqLCBpbnQsIGludCk7CnN0YXRpYyBpbnQg
dWRmX2ZpbmRfZmlsZXNldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgbGJfYWRkciAqLCBsYl9hZGRy
ICopOwpzdGF0aWMgdm9pZCB1ZGZfbG9hZF9wdm9sZGVzYyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwg
c3RydWN0IGJ1ZmZlcl9oZWFkICopOwpzdGF0aWMgdm9pZCB1ZGZfbG9hZF9maWxlc2V0KHN0cnVj
dCBzdXBlcl9ibG9jayAqLCBzdHJ1Y3QgYnVmZmVyX2hlYWQgKiwgbGJfYWRkciAqKTsKc3RhdGlj
IHZvaWQgdWRmX2xvYWRfcGFydGRlc2Moc3RydWN0IHN1cGVyX2Jsb2NrICosIHN0cnVjdCBidWZm
ZXJfaGVhZCAqKTsKc3RhdGljIHZvaWQgdWRmX29wZW5fbHZpZChzdHJ1Y3Qgc3VwZXJfYmxvY2sg
Kik7CnN0YXRpYyB2b2lkIHVkZl9jbG9zZV9sdmlkKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsKc3Rh
dGljIHVuc2lnbmVkIGludCB1ZGZfY291bnRfZnJlZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKik7CnN0
YXRpYyBpbnQgdWRmX3N0YXRmcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKiwgc3RydWN0IHN0YXRmcyAq
KTsKCgpzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgdWRmX2ZzdHlwZSA9IHsgbmFtZTog
InVkZiIsIHJlYWRfc3VwZXI6IHVkZl9yZWFkX3N1cGVyLCBmc19mbGFnczogMSwgb3duZXI6ICgm
X190aGlzX21vZHVsZSksIH07CgoKc3RhdGljIHN0cnVjdCBzdXBlcl9vcGVyYXRpb25zIHVkZl9z
Yl9vcHMgPSB7CiAgICAgICAgcmVhZF9pbm9kZTogdWRmX3JlYWRfaW5vZGUsCiAgICAgICAgd3Jp
dGVfaW5vZGU6IHVkZl93cml0ZV9pbm9kZSwKICAgICAgICBwdXRfaW5vZGU6IHVkZl9wdXRfaW5v
ZGUsCiAgICAgICAgZGVsZXRlX2lub2RlOiB1ZGZfZGVsZXRlX2lub2RlLAogICAgICAgIHB1dF9z
dXBlcjogdWRmX3B1dF9zdXBlciwKICAgICAgICB3cml0ZV9zdXBlcjogdWRmX3dyaXRlX3N1cGVy
LAogICAgICAgIHN0YXRmczogdWRmX3N0YXRmcywKICAgICAgICByZW1vdW50X2ZzOiB1ZGZfcmVt
b3VudF9mcywKfTsKCnN0cnVjdCB1ZGZfb3B0aW9ucwp7CiAgICAgICAgdW5zaWduZWQgY2hhciBu
b3ZyczsKICAgICAgICB1bnNpZ25lZCBpbnQgYmxvY2tzaXplOwogICAgICAgIHVuc2lnbmVkIGlu
dCBzZXNzaW9uOwogICAgICAgIHVuc2lnbmVkIGludCBsYXN0YmxvY2s7CiAgICAgICAgdW5zaWdu
ZWQgaW50IGFuY2hvcjsKICAgICAgICB1bnNpZ25lZCBpbnQgdm9sdW1lOwogICAgICAgIHVuc2ln
bmVkIHNob3J0IHBhcnRpdGlvbjsKICAgICAgICB1bnNpZ25lZCBpbnQgZmlsZXNldDsKICAgICAg
ICB1bnNpZ25lZCBpbnQgcm9vdGRpcjsKICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAgICAg
ICAgbW9kZV90IHVtYXNrOwogICAgICAgIGdpZF90IGdpZDsKICAgICAgICB1aWRfdCB1aWQ7CiAg
ICAgICAgc3RydWN0IG5sc190YWJsZSAqbmxzX21hcDsKfTsKCnN0YXRpYyBpbnQgaW5pdF91ZGZf
ZnModm9pZCkKewogICAgICAgIHByaW50a19Sc21wXzgyN2Q1ODA3KCI8NT4iICJ1ZGY6IHJlZ2lz
dGVyaW5nIGZpbGVzeXN0ZW1cbiIpOwogICAgICAgIHJldHVybiByZWdpc3Rlcl9maWxlc3lzdGVt
X1JzbXBfNTZiNjY3ZjQoJnVkZl9mc3R5cGUpOwp9CgpzdGF0aWMgdm9pZCBleGl0X3VkZl9mcyh2
b2lkKQp7CiAgICAgICAgcHJpbnRrX1JzbXBfODI3ZDU4MDcoIjw1PiIgInVkZjogdW5yZWdpc3Rl
cmluZyBmaWxlc3lzdGVtXG4iKTsKICAgICAgICB1bnJlZ2lzdGVyX2ZpbGVzeXN0ZW1fUnNtcF8w
YWIyMGEyNCgmdWRmX2ZzdHlwZSk7Cn0KCl9fYXNtX18oIi5zZWN0aW9uIF9fa3N5bXRhYlxuLnBy
ZXZpb3VzIik7CgppbnQgaW5pdF9tb2R1bGUodm9pZCkgX19hdHRyaWJ1dGVfXygoYWxpYXMoImlu
aXRfdWRmX2ZzIikpKTsgZXh0ZXJuIGlubGluZSBfX2luaXRfbW9kdWxlX2Z1bmNfdCBfX2luaXRf
bW9kdWxlX2lubGluZSh2b2lkKSB7IHJldHVybiBpbml0X3VkZl9mczsgfQp2b2lkIGNsZWFudXBf
bW9kdWxlKHZvaWQpIF9fYXR0cmlidXRlX18oKGFsaWFzKCJleGl0X3VkZl9mcyIpKSk7IGV4dGVy
biBpbmxpbmUgX19jbGVhbnVwX21vZHVsZV9mdW5jX3QgX19jbGVhbnVwX21vZHVsZV9pbmxpbmUo
dm9pZCkgeyByZXR1cm4gZXhpdF91ZGZfZnM7IH0KIyAyMDIgImZzL3VkZi9zdXBlci5jIgpzdGF0
aWMgaW50CnVkZl9wYXJzZV9vcHRpb25zKGNoYXIgKm9wdGlvbnMsIHN0cnVjdCB1ZGZfb3B0aW9u
cyAqdW9wdCkKewogICAgICAgIGNoYXIgKm9wdCwgKnZhbDsKCiAgICAgICAgdW9wdC0+bm92cnMg
PSAwOwogICAgICAgIHVvcHQtPmJsb2Nrc2l6ZSA9IDIwNDg7CiAgICAgICAgdW9wdC0+cGFydGl0
aW9uID0gMHhGRkZGOwogICAgICAgIHVvcHQtPnNlc3Npb24gPSAweEZGRkZGRkZGOwogICAgICAg
IHVvcHQtPmxhc3RibG9jayA9IDB4RkZGRkZGRkY7CiAgICAgICAgdW9wdC0+YW5jaG9yID0gMHhG
RkZGRkZGRjsKICAgICAgICB1b3B0LT52b2x1bWUgPSAweEZGRkZGRkZGOwogICAgICAgIHVvcHQt
PnJvb3RkaXIgPSAweEZGRkZGRkZGOwogICAgICAgIHVvcHQtPmZpbGVzZXQgPSAweEZGRkZGRkZG
OwogICAgICAgIHVvcHQtPm5sc19tYXAgPSAoKHZvaWQgKikwKTsKCiAgICAgICAgaWYgKCFvcHRp
b25zKQogICAgICAgICAgICAgICAgcmV0dXJuIDE7CgogICAgICAgIGZvciAob3B0ID0gc3RydG9r
X1JzbXBfZWU5YzFiZDQob3B0aW9ucywgIiwiKTsgb3B0OyBvcHQgPSBzdHJ0b2tfUnNtcF9lZTlj
MWJkNCgoKHZvaWQgKikwKSwgIiwiKSkKICAgICAgICB7CgogICAgICAgICAgICAgICAgdmFsID0g
c3RyY2hyX1JzbXBfMzQ5Y2JhODUob3B0LCAnPScpOwogICAgICAgICAgICAgICAgaWYgKHZhbCkK
ICAgICAgICAgICAgICAgICAgICAgICAgKih2YWwrKykgPSAwOwogICAgICAgICAgICAgICAgaWYg
KCFzdHJjbXBfUnNtcF9lMmQ1MjU1YShvcHQsICJub3ZycyIpICYmICF2YWwpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHVvcHQtPm5vdnJzID0gMTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFz
dHJjbXBfUnNtcF9lMmQ1MjU1YShvcHQsICJicyIpICYmIHZhbCkKICAgICAgICAgICAgICAgICAg
ICAgICAgdW9wdC0+YmxvY2tzaXplID0gc2ltcGxlX3N0cnRvdWxfUnNtcF8yMDAwMDMyOSh2YWws
ICgodm9pZCAqKTApLCAwKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFzdHJjbXBfUnNtcF9l
MmQ1MjU1YShvcHQsICJ1bmhpZGUiKSAmJiAhdmFsKQogICAgICAgICAgICAgICAgICAgICAgICB1
b3B0LT5mbGFncyB8PSAoMSA8PCA3KTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFzdHJjbXBf
UnNtcF9lMmQ1MjU1YShvcHQsICJ1bmRlbGV0ZSIpICYmICF2YWwpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHVvcHQtPmZsYWdzIHw9ICgxIDw8IDYpOwogICAgICAgICAgICAgICAgZWxzZSBpZiAo
IXN0cmNtcF9Sc21wX2UyZDUyNTVhKG9wdCwgIm5vYWRpbmljYiIpICYmICF2YWwpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHVvcHQtPmZsYWdzICY9IH4oMSA8PCAzKTsKICAgICAgICAgICAgICAg
IGVsc2UgaWYgKCFzdHJjbXBfUnNtcF9lMmQ1MjU1YShvcHQsICJhZGluaWNiIikgJiYgIXZhbCkK
ICAgICAgICAgICAgICAgICAgICAgICAgdW9wdC0+ZmxhZ3MgfD0gKDEgPDwgMyk7CiAgICAgICAg
ICAgICAgICBlbHNlIGlmICghc3RyY21wX1JzbXBfZTJkNTI1NWEob3B0LCAic2hvcnRhZCIpICYm
ICF2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgIHVvcHQtPmZsYWdzIHw9ICgxIDw8IDIpOwog
ICAgICAgICAgICAgICAgZWxzZSBpZiAoIXN0cmNtcF9Sc21wX2UyZDUyNTVhKG9wdCwgImxvbmdh
ZCIpICYmICF2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgIHVvcHQtPmZsYWdzICY9IH4oMSA8
PCAyKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFzdHJjbXBfUnNtcF9lMmQ1MjU1YShvcHQs
ICJnaWQiKSAmJiB2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgIHVvcHQtPmdpZCA9IHNpbXBs
ZV9zdHJ0b3VsX1JzbXBfMjAwMDAzMjkodmFsLCAoKHZvaWQgKikwKSwgMCk7CiAgICAgICAgICAg
ICAgICBlbHNlIGlmICghc3RyY21wX1JzbXBfZTJkNTI1NWEob3B0LCAidW1hc2siKSAmJiB2YWwp
CiAgICAgICAgICAgICAgICAgICAgICAgIHVvcHQtPnVtYXNrID0gc2ltcGxlX3N0cnRvdWxfUnNt
cF8yMDAwMDMyOSh2YWwsICgodm9pZCAqKTApLCAwKTsKICAgICAgICAgICAgICAgIGVsc2UgaWYg
KCFzdHJjbXBfUnNtcF9lMmQ1MjU1YShvcHQsICJzdHJpY3QiKSAmJiAhdmFsKQogICAgICAgICAg
ICAgICAgICAgICAgICB1b3B0LT5mbGFncyB8PSAoMSA8PCA1KTsKICAgICAgICAgICAgICAgIGVs
c2UgaWYgKCFzdHJjbXBfUnNtcF9lMmQ1MjU1YShvcHQsICJ1aWQiKSAmJiB2YWwpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHVvcHQtPnVpZCA9IHNpbXBsZV9zdHJ0b3VsX1JzbXBfMjAwMDAzMjko
dmFsLCAoKHZvaWQgKikwKSwgMCk7CiAgICAgICAgICAgICAgICBlbHNlIGlmICghc3RyY21wX1Jz
bXBfZTJkNTI1NWEob3B0LCAic2Vzc2lvbiIpICYmIHZhbCkKICAgICAgICAgICAgICAgICAgICAg
ICAgdW9wdC0+c2Vzc2lvbiA9IHNpbXBsZV9zdHJ0b3VsX1JzbXBfMjAwMDAzMjkodmFsLCAoKHZv
aWQgKikwKSwgMCk7CiAgICAgICAgICAgICAgICBlbHNlIGlmICghc3RyY21wX1JzbXBfZTJkNTI1
NWEob3B0LCAibGFzdGJsb2NrIikgJiYgdmFsKQogICAgICAgICAgICAgICAgICAgICAgICB1b3B0
LT5sYXN0YmxvY2sgPSBzaW1wbGVfc3RydG91bF9Sc21wXzIwMDAwMzI5KHZhbCwgKCh2b2lkICop
MCksIDApOwogICAgICAgICAgICAgICAgZWxzZSBpZiAoIXN0cmNtcF9Sc21wX2UyZDUyNTVhKG9w
dCwgImFuY2hvciIpICYmIHZhbCkKICAgICAgICAgICAgICAgICAgICAgICAgdW9wdC0+YW5jaG9y
ID0gc2ltcGxlX3N0cnRvdWxfUnNtcF8yMDAwMDMyOSh2YWwsICgodm9pZCAqKTApLCAwKTsKICAg
ICAgICAgICAgICAgIGVsc2UgaWYgKCFzdHJjbXBfUnNtcF9lMmQ1MjU1YShvcHQsICJ2b2x1bWUi
KSAmJiB2YWwpCiAgICAgICAgICAgICAgICAgICAgICAgIHVvcHQtPnZvbHVtZSA9IHNpbXBsZV9z
dHJ0b3VsX1JzbXBfMjAwMDAzMjkodmFsLCAoKHZvaWQgKikwKSwgMCk7CiAgICAgICAgICAgICAg
ICBlbHNlIGlmICghc3RyY21wX1JzbXBfZTJkNTI1NWEob3B0LCAicGFydGl0aW9uIikgJiYgdmFs
KQogICAgICAgICAgICAgICAgICAgICAgICB1b3B0LT5wYXJ0aXRpb24gPSBzaW1wbGVfc3RydG91
bF9Sc21wXzIwMDAwMzI5KHZhbCwgKCh2b2lkICopMCksIDApOwogICAgICAgICAgICAgICAgZWxz
ZSBpZiAoIXN0cmNtcF9Sc21wX2UyZDUyNTVhKG9wdCwgImZpbGVzZXQiKSAmJiB2YWwpCiAgICAg
ICAgICAgICAgICAgICAgICAgIHVvcHQtPmZpbGVzZXQgPSBzaW1wbGVfc3RydG91bF9Sc21wXzIw
MDAwMzI5KHZhbCwgKCh2b2lkICopMCksIDApOwogICAgICAgICAgICAgICAgZWxzZSBpZiAoIXN0
cmNtcF9Sc21wX2UyZDUyNTVhKG9wdCwgInJvb3RkaXIiKSAmJiB2YWwpCiAgICAgICAgICAgICAg
ICAgICAgICAgIHVvcHQtPnJvb3RkaXIgPSBzaW1wbGVfc3RydG91bF9Sc21wXzIwMDAwMzI5KHZh
bCwgKCh2b2lkICopMCksIDApOwoKICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFzdHJjbXBfUnNt
cF9lMmQ1MjU1YShvcHQsICJpb2NoYXJzZXQiKSAmJiB2YWwpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIHVvcHQtPm5sc19tYXAgPSBsb2FkX25sc19Sc21wXzlmZjBh
MmVhKHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHVvcHQtPmZsYWdzIHw9ICgxIDw8IDkp
OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFzdHJjbXBfUnNt
cF9lMmQ1MjU1YShvcHQsICJ1dGY4IikgJiYgIXZhbCkKICAgICAgICAgICAgICAgICAgICAgICAg
dW9wdC0+ZmxhZ3MgfD0gKDEgPDwgMTApOwogICAgICAgICAgICAgICAgZWxzZSBpZiAodmFsKQog
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBwcmludGtfUnNtcF84Mjdk
NTgwNygiPDM+IiAidWRmOiBiYWQgbW91bnQgb3B0aW9uIFwiJXM9JXNcIlxuIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHQsIHZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBwcmludGtfUnNtcF84MjdkNTgwNygi
PDM+IiAidWRmOiBiYWQgbW91bnQgb3B0aW9uIFwiJXNcIlxuIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcHQpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIDE7Cn0KCnZvaWQKdWRmX3dy
aXRlX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCnsKICAgICAgICBpZiAoIShzYi0+c19m
bGFncyAmIDEpKQogICAgICAgICAgICAgICAgdWRmX29wZW5fbHZpZChzYik7CiAgICAgICAgc2It
PnNfZGlydCA9IDA7Cn0KCnN0YXRpYyBpbnQKdWRmX3JlbW91bnRfZnMoc3RydWN0IHN1cGVyX2Js
b2NrICpzYiwgaW50ICpmbGFncywgY2hhciAqb3B0aW9ucykKewogICAgICAgIHN0cnVjdCB1ZGZf
b3B0aW9ucyB1b3B0OwoKICAgICAgICB1b3B0LmZsYWdzID0gKCYoKHNiKS0+dS51ZGZfc2IpKS0+
c19mbGFncyA7CiAgICAgICAgdW9wdC51aWQgPSAoJigoc2IpLT51LnVkZl9zYikpLT5zX3VpZCA7
CiAgICAgICAgdW9wdC5naWQgPSAoJigoc2IpLT51LnVkZl9zYikpLT5zX2dpZCA7CiAgICAgICAg
dW9wdC51bWFzayA9ICgmKChzYiktPnUudWRmX3NiKSktPnNfdW1hc2sgOwoKICAgICAgICBpZiAo
ICF1ZGZfcGFyc2Vfb3B0aW9ucyhvcHRpb25zLCAmdW9wdCkgKQogICAgICAgICAgICAgICAgcmV0
dXJuIC0yMjsKCiAgICAgICAgKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19mbGFncyA9IHVvcHQuZmxh
Z3M7CiAgICAgICAgKCYoKHNiKS0+dS51ZGZfc2IpKS0+c191aWQgPSB1b3B0LnVpZDsKICAgICAg
ICAoJigoc2IpLT51LnVkZl9zYikpLT5zX2dpZCA9IHVvcHQuZ2lkOwogICAgICAgICgmKChzYikt
PnUudWRmX3NiKSktPnNfdW1hc2sgPSB1b3B0LnVtYXNrOwoKCiAgICAgICAgKmZsYWdzIHw9IDE7
CgoKICAgICAgICBpZiAoKCpmbGFncyAmIDEpID09IChzYi0+c19mbGFncyAmIDEpKQogICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgaWYgKCpmbGFncyAmIDEpCiAgICAgICAgICAgICAg
ICB1ZGZfY2xvc2VfbHZpZChzYik7CiAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgdWRmX29w
ZW5fbHZpZChzYik7CgogICAgICAgIHJldHVybiAwOwp9CiMgMzU3ICJmcy91ZGYvc3VwZXIuYyIK
c3RhdGljIGludAp1ZGZfc2V0X2Jsb2Nrc2l6ZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQg
YnNpemUpCnsKCiAgICAgICAgaWYgKGJzaXplKQogICAgICAgICAgICAgICAgc2ItPnNfYmxvY2tz
aXplID0gYnNpemU7CiAgICAgICAgaWYgKGdldF9oYXJkc2VjdF9zaXplKHNiLT5zX2RldikgPiBz
Yi0+c19ibG9ja3NpemUpCiAgICAgICAgICAgICAgICBzYi0+c19ibG9ja3NpemUgPSBnZXRfaGFy
ZHNlY3Rfc2l6ZShzYi0+c19kZXYpOwoKCiAgICAgICAgc3dpdGNoIChzYi0+c19ibG9ja3NpemUp
CiAgICAgICAgewogICAgICAgICAgICAgICAgY2FzZSA1MTI6IHNiLT5zX2Jsb2Nrc2l6ZV9iaXRz
ID0gOTsgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDEwMjQ6IHNiLT5zX2Jsb2Nrc2l6ZV9i
aXRzID0gMTA7IGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAyMDQ4OiBzYi0+c19ibG9ja3Np
emVfYml0cyA9IDExOyBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDA5Njogc2ItPnNfYmxv
Y2tzaXplX2JpdHMgPSAxMjsgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDgxOTI6IHNiLT5z
X2Jsb2Nrc2l6ZV9iaXRzID0gMTM7IGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGtfUnNtcF84Mjdk
NTgwNyAoIjw3PiIgIlVERi1mcyBERUJVRyAlczolZDolczogIiwgImZzL3VkZi9zdXBlci5jIiwg
Mzc2LCBfX0ZVTkNUSU9OX18pOyBwcmludGtfUnNtcF84MjdkNTgwNyAoIkJhZCBibG9jayBzaXpl
ICglbGQpXG4iLCBzYi0+c19ibG9ja3NpemUpOyB9OwogICAgICAgICAgICAgICAgICAgICAgICBw
cmludGtfUnNtcF84MjdkNTgwNygiPDM+IiAidWRmOiBiYWQgYmxvY2sgc2l6ZSAoJWxkKVxuIiwg
c2ItPnNfYmxvY2tzaXplKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgfQoKCiAgICAgICAgc2V0X2Jsb2Nrc2l6ZV9Sc21wX2E4NDI3
MjJhKHNiLT5zX2Rldiwgc2ItPnNfYmxvY2tzaXplKTsKICAgICAgICByZXR1cm4gc2ItPnNfYmxv
Y2tzaXplOwp9CgpzdGF0aWMgaW50CnVkZl92cnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50
IHNpbGVudCkKewogICAgICAgIHN0cnVjdCBWb2xTdHJ1Y3REZXNjICp2c2QgPSAoKHZvaWQgKikw
KTsKICAgICAgICBpbnQgc2VjdG9yID0gMzI3Njg7CiAgICAgICAgaW50IHNlY3RvcnNpemU7CiAg
ICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9ICgodm9pZCAqKTApOwogICAgICAgIGludCBp
c285NjYwPTA7CiAgICAgICAgaW50IG5zcjAyPTA7CiAgICAgICAgaW50IG5zcjAzPTA7CgoKICAg
ICAgICBpZiAoc2ItPnNfYmxvY2tzaXplICYgNTExKQogICAgICAgICAgICAgICAgcmV0dXJuIDA7
CgogICAgICAgIGlmIChzYi0+c19ibG9ja3NpemUgPCBzaXplb2Yoc3RydWN0IFZvbFN0cnVjdERl
c2MpKQogICAgICAgICAgICAgICAgc2VjdG9yc2l6ZSA9IHNpemVvZihzdHJ1Y3QgVm9sU3RydWN0
RGVzYyk7CiAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgc2VjdG9yc2l6ZSA9IHNiLT5zX2Js
b2Nrc2l6ZTsKCiAgICAgICAgc2VjdG9yICs9ICgoICgmKChzYiktPnUudWRmX3NiKSktPnNfc2Vz
c2lvbiApIDw8IHNiLT5zX2Jsb2Nrc2l6ZV9iaXRzKTsKCiAgICAgICAgeyBwcmludGtfUnNtcF84
MjdkNTgwNyAoIjw3PiIgIlVERi1mcyBERUJVRyAlczolZDolczogIiwgImZzL3VkZi9zdXBlci5j
IiwgNDA5LCBfX0ZVTkNUSU9OX18pOyBwcmludGtfUnNtcF84MjdkNTgwNyAoIlN0YXJ0aW5nIGF0
IHNlY3RvciAldSAoJWxkIGJ5dGUgc2VjdG9ycylcbiIsIChzZWN0b3IgPj4gc2ItPnNfYmxvY2tz
aXplX2JpdHMpLCBzYi0+c19ibG9ja3NpemUpOyB9OwoKCiAgICAgICAgZm9yICg7IW5zcjAyICYm
ICFuc3IwMzsgc2VjdG9yICs9IHNlY3RvcnNpemUpCiAgICAgICAgewoKICAgICAgICAgICAgICAg
IGJoID0gdWRmX3RyZWFkKHNiLCBzZWN0b3IgPj4gc2ItPnNfYmxvY2tzaXplX2JpdHMsIHNiLT5z
X2Jsb2Nrc2l6ZSk7CiAgICAgICAgICAgICAgICBpZiAoIWJoKQogICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKCgogICAgICAgICAgICAgICAgdnNkID0gKHN0cnVjdCBWb2xTdHJ1Y3REZXNj
ICopKGJoLT5iX2RhdGEgKwogICAgICAgICAgICAgICAgICAgICAgICAoc2VjdG9yICYgKHNiLT5z
X2Jsb2Nrc2l6ZSAtIDEpKSk7CgogICAgICAgICAgICAgICAgaWYgKHZzZC0+c3RkSWRlbnRbMF0g
PT0gMCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgdWRmX3JlbGVh
c2VfZGF0YShiaCk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZiAoIXN0cm5jbXBfUnNtcF84NWFiYzg1Zih2c2Qt
PnN0ZElkZW50LCAiQ0QwMDEiLCA1KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgaXNvOTY2MCA9IHNlY3RvcjsKICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNo
ICh2c2QtPnN0cnVjdFR5cGUpCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiPDc+IiAiVURGLWZzIERFQlVHICVz
OiVkOiVzOiAiLCAiZnMvdWRmL3N1cGVyLmMiLCA0MzQsIF9fRlVOQ1RJT05fXyk7IHByaW50a19S
c21wXzgyN2Q1ODA3ICgiSVNPOTY2MCBCb290IFJlY29yZCBmb3VuZFxuIik7IH07CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiPDc+IiAiVURGLWZzIERFQlVHICVzOiVkOiVz
OiAiLCAiZnMvdWRmL3N1cGVyLmMiLCA0MzcsIF9fRlVOQ1RJT05fXyk7IHByaW50a19Sc21wXzgy
N2Q1ODA3ICgiSVNPOTY2MCBQcmltYXJ5IFZvbHVtZSBEZXNjcmlwdG9yIGZvdW5kXG4iKTsgfTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCI8Nz4iICJVREYtZnMgREVCVUcg
JXM6JWQ6JXM6ICIsICJmcy91ZGYvc3VwZXIuYyIsIDQ0MCwgX19GVU5DVElPTl9fKTsgcHJpbnRr
X1JzbXBfODI3ZDU4MDcgKCJJU085NjYwIFN1cHBsZW1lbnRhcnkgVm9sdW1lIERlc2NyaXB0b3Ig
Zm91bmRcbiIpOyB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGtfUnNtcF84MjdkNTgwNyAoIjw3PiIg
IlVERi1mcyBERUJVRyAlczolZDolczogIiwgImZzL3VkZi9zdXBlci5jIiwgNDQzLCBfX0ZVTkNU
SU9OX18pOyBwcmludGtfUnNtcF84MjdkNTgwNyAoIklTTzk2NjAgVm9sdW1lIFBhcnRpdGlvbiBE
ZXNjcmlwdG9yIGZvdW5kXG4iKTsgfTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjU1Ogog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGtfUnNtcF84Mjdk
NTgwNyAoIjw3PiIgIlVERi1mcyBERUJVRyAlczolZDolczogIiwgImZzL3VkZi9zdXBlci5jIiwg
NDQ2LCBfX0ZVTkNUSU9OX18pOyBwcmludGtfUnNtcF84MjdkNTgwNyAoIklTTzk2NjAgVm9sdW1l
IERlc2NyaXB0b3IgU2V0IFRlcm1pbmF0b3IgZm91bmRcbiIpOyB9OwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
cHJpbnRrX1JzbXBfODI3ZDU4MDcgKCI8Nz4iICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsICJm
cy91ZGYvc3VwZXIuYyIsIDQ0OSwgX19GVU5DVElPTl9fKTsgcHJpbnRrX1JzbXBfODI3ZDU4MDcg
KCJJU085NjYwIFZSUyAoJXUpIGZvdW5kXG4iLCB2c2QtPnN0cnVjdFR5cGUpOyB9OwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFzdHJu
Y21wX1JzbXBfODVhYmM4NWYodnNkLT5zdGRJZGVudCwgIkJFQTAxIiwgNSkpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICghc3RybmNt
cF9Sc21wXzg1YWJjODVmKHZzZC0+c3RkSWRlbnQsICJURUEwMSIsIDUpKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICB1ZGZfcmVsZWFzZV9kYXRhKGJoKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICBlbHNlIGlmICghc3RybmNtcF9Sc21wXzg1YWJjODVmKHZzZC0+c3RkSWRlbnQsICJOU1IwMiIs
IDUpKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBuc3IwMiA9IHNl
Y3RvcjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFzdHJuY21w
X1JzbXBfODVhYmM4NWYodnNkLT5zdGRJZGVudCwgIk5TUjAzIiwgNSkpCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5zcjAzID0gc2VjdG9yOwogICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgdWRmX3JlbGVhc2VfZGF0YShiaCk7CiAgICAgICAgfQoKICAg
ICAgICBpZiAobnNyMDMpCiAgICAgICAgICAgICAgICByZXR1cm4gbnNyMDM7CiAgICAgICAgZWxz
ZSBpZiAobnNyMDIpCiAgICAgICAgICAgICAgICByZXR1cm4gbnNyMDI7CiAgICAgICAgZWxzZSBp
ZiAoc2VjdG9yIC0gKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19zZXNzaW9uICkgPDwgc2ItPnNf
YmxvY2tzaXplX2JpdHMpID09IDMyNzY4KQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgIHJldHVybiAwOwp9CiMgNDk5ICJmcy91ZGYvc3VwZXIu
YyIKc3RhdGljIGludAp1ZGZfZmluZF9hbmNob3Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50
IHVzZXJhbmNob3IsIGludCBsYXN0YmxvY2spCnsKICAgICAgICBpbnQgdmFybGFzdGJsb2NrID0g
KCAoICggKGxhc3RibG9jaykgLyAzOSApIDw8IDUgKSArICggKGxhc3RibG9jaykgJSAzOSApICk7
CiAgICAgICAgaW50IGxhc3RbXSA9IHsgbGFzdGJsb2NrLCBsYXN0YmxvY2sgLSAyLAogICAgICAg
ICAgICAgICAgICAgICAgICBsYXN0YmxvY2sgLSAxNTAsIGxhc3RibG9jayAtIDE1MiwKICAgICAg
ICAgICAgICAgICAgICAgICAgdmFybGFzdGJsb2NrLCB2YXJsYXN0YmxvY2sgLSAyLAogICAgICAg
ICAgICAgICAgICAgICAgICB2YXJsYXN0YmxvY2sgLSAxNTAsIHZhcmxhc3RibG9jayAtIDE1MiB9
OwogICAgICAgIHN0cnVjdCBidWZmZXJfaGVhZCAqYmggPSAoKHZvaWQgKikwKTsKICAgICAgICBf
X3UxNiBpZGVudDsKICAgICAgICBfX3UzMiBsb2NhdGlvbjsKICAgICAgICBpbnQgaTsKCiAgICAg
ICAgKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2FuY2hvciApWzBdID0gMDsKICAgICAgICAoICgm
KChzYiktPnUudWRmX3NiKSktPnNfYW5jaG9yIClbMV0gPSAwOwogICAgICAgICggKCYoKHNiKS0+
dS51ZGZfc2IpKS0+c19hbmNob3IgKVsyXSA9IDA7CiAgICAgICAgKCAoJigoc2IpLT51LnVkZl9z
YikpLT5zX2FuY2hvciApWzNdID0gMjU2ICsgKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3Nlc3Np
b24gKTsKCiAgICAgICAgbGFzdGJsb2NrID0gMDsKIyA1MjcgImZzL3VkZi9zdXBlci5jIgogICAg
ICAgIGZvciAoaT0wOyAoIWxhc3RibG9jayAmJiBpPHNpemVvZihsYXN0KS9zaXplb2YoaW50KSk7
IGkrKykKICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAobGFzdFtpXSA8IDAgfHwgIShiaCA9
IGJyZWFkX1JzbXBfMDk5YTk5ODMoc2ItPnNfZGV2LCBsYXN0W2ldLCBzYi0+c19ibG9ja3NpemUp
KSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnQgPSBsb2Nh
dGlvbiA9IDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50ID0gKChfX3UxNikoKCh0YWcg
KiliaC0+Yl9kYXRhKS0+dGFnSWRlbnQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRp
b24gPSAoKF9fdTMyKSgoKHRhZyAqKWJoLT5iX2RhdGEpLT50YWdMb2NhdGlvbikpOwogICAgICAg
ICAgICAgICAgICAgICAgICB1ZGZfcmVsZWFzZV9kYXRhKGJoKTsKICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICBpZiAoaWRlbnQgPT0gMHgwMDAyVSkKICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uID09IGxhc3RbaV0gLSAoICgmKChz
YiktPnUudWRmX3NiKSktPnNfc2Vzc2lvbiApKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdGJsb2NrID0gKCAoJigoc2IpLT51LnVk
Zl9zYikpLT5zX2FuY2hvciApWzBdID0gbGFzdFtpXTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoICgmKChzYiktPnUudWRmX3NiKSktPnNfYW5jaG9yIClbMV0gPSBsYXN0W2ldIC0g
MjU2OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UgaWYgKGxvY2F0aW9uID09ICggKCAoIChsYXN0W2ldKSAvIDM5ICkgPDwgNSApICsgKCAobGFz
dFtpXSkgJSAzOSApICkgLSAoICgmKChzYiktPnUudWRmX3NiKSktPnNfc2Vzc2lvbiApKQogICAg
ICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAo
Jigoc2IpLT51LnVkZl9zYikpLT5zX2ZsYWdzIHw9ICggMSA8PCAoOCkgKSApOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxhc3RibG9jayA9ICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+
c19hbmNob3IgKVswXSA9ICggKCAoIChsYXN0W2ldKSAvIDM5ICkgPDwgNSApICsgKCAobGFzdFtp
XSkgJSAzOSApICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoJigoc2IpLT51
LnVkZl9zYikpLT5zX2FuY2hvciApWzFdID0gbGFzdGJsb2NrIC0gMjU2OwogICAgICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiPDc+IiAiVURGLWZzIERF
QlVHICVzOiVkOiVzOiAiLCAiZnMvdWRmL3N1cGVyLmMiLCA1NTQsIF9fRlVOQ1RJT05fXyk7IHBy
aW50a19Sc21wXzgyN2Q1ODA3ICgiQW5jaG9yIGZvdW5kIGF0IGJsb2NrICVkLCBsb2NhdGlvbiBt
aXNtYXRjaCAlZC5cbiIsIGxhc3RbaV0sIGxvY2F0aW9uKTsgfTsKCiAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICBlbHNlIGlmIChpZGVudCA9PSAweDAxMDVVIHx8IGlkZW50ID09IDB4
MDEwQVUpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RibG9j
ayA9IGxhc3RbaV07CiAgICAgICAgICAgICAgICAgICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2Ip
KS0+c19hbmNob3IgKVsyXSA9IDUxMiArICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19zZXNzaW9u
ICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGJoID0gYnJlYWRfUnNtcF8wOTlhOTk4
MyhzYi0+c19kZXYsIGxhc3RbaV0gLSAyNTYsIHNiLT5zX2Jsb2Nrc2l6ZSkpKQogICAgICAgICAg
ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnQgPSBs
b2NhdGlvbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWRlbnQgPSAoKF9fdTE2KSgoKHRhZyAqKWJoLT5iX2RhdGEpLT50YWdJZGVu
dCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uID0gKChfX3UzMiko
KCh0YWcgKiliaC0+Yl9kYXRhKS0+dGFnTG9jYXRpb24pKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1ZGZfcmVsZWFzZV9kYXRhKGJoKTsKICAgICAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlkZW50ID09IDB4MDAwMlUgJiYKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbiA9PSBsYXN0W2ldIC0gMjU2IC0gKCAo
Jigoc2IpLT51LnVkZl9zYikpLT5zX3Nlc3Npb24gKSkKICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RibG9jayA9IGxhc3RbaV07CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2Fu
Y2hvciApWzFdID0gbGFzdFtpXSAtIDI1NjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShiaCA9IGJyZWFkX1JzbXBfMDk5YTk5ODMo
c2ItPnNfZGV2LCBsYXN0W2ldIC0gMzEyIC0gKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3Nlc3Np
b24gKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNiLT5zX2Jsb2Nr
c2l6ZSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50ID0gbG9jYXRpb24gPSAwOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWRlbnQgPSAoKF9fdTE2KSgoKHRhZyAqKWJoLT5iX2RhdGEp
LT50YWdJZGVudCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb24gPSAoKF9fdTMyKSgoKHRhZyAqKWJoLT5iX2RhdGEpLT50YWdMb2NhdGlvbikpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWRmX3JlbGVhc2VfZGF0YShiaCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoaWRlbnQgPT0gMHgwMDAyVSAmJgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPT0gKCAoICggKGxhc3RbaV0pIC8gMzkgKSA8PCA1
ICkgKyAoIChsYXN0W2ldKSAlIDM5ICkgKSAtIDI1NikKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICgmKChz
YiktPnUudWRmX3NiKSktPnNfZmxhZ3MgfD0gKCAxIDw8ICg4KSApICk7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0YmxvY2sgPSAoICggKCAobGFzdFtpXSkgLyAz
OSApIDw8IDUgKSArICggKGxhc3RbaV0pICUgMzkgKSApOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2FuY2hvciApWzFdID0g
bGFzdGJsb2NrIC0gMjU2OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAg
aWYgKCFsYXN0YmxvY2spCiAgICAgICAgewoKICAgICAgICAgICAgICAgIGlmICgoYmggPSBicmVh
ZF9Sc21wXzA5OWE5OTgzKHNiLT5zX2RldiwgMzEyICsgKCAoJigoc2IpLT51LnVkZl9zYikpLT5z
X3Nlc3Npb24gKSwgc2ItPnNfYmxvY2tzaXplKSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgIGlkZW50ID0gKChfX3UxNikoKCh0YWcgKiliaC0+Yl9kYXRhKS0+dGFn
SWRlbnQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSAoKF9fdTMyKSgoKHRh
ZyAqKWJoLT5iX2RhdGEpLT50YWdMb2NhdGlvbikpOwogICAgICAgICAgICAgICAgICAgICAgICB1
ZGZfcmVsZWFzZV9kYXRhKGJoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZGVudCA9
PSAweDAwMDJVICYmIGxvY2F0aW9uID09IDI1NikKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoICgmKChzYiktPnUudWRmX3NiKSktPnNfZmxhZ3MgfD0gKCAxIDw8ICg4KSApICk7CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmb3IgKGk9MDsgaTxzaXplb2YoKCAo
Jigoc2IpLT51LnVkZl9zYikpLT5zX2FuY2hvciApKS9zaXplb2YoaW50KTsgaSsrKQogICAgICAg
IHsKICAgICAgICAgICAgICAgIGlmICgoICgmKChzYiktPnUudWRmX3NiKSktPnNfYW5jaG9yIClb
aV0pCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKGJoID0g
dWRmX3JlYWRfdGFnZ2VkKHNiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKCYo
KHNiKS0+dS51ZGZfc2IpKS0+c19hbmNob3IgKVtpXSwgKCAoJigoc2IpLT51LnVkZl9zYikpLT5z
X2FuY2hvciApW2ldLCAmaWRlbnQpKSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19hbmNob3Ig
KVtpXSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdWRmX3JlbGVhc2VfZGF0YShiaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKChpZGVudCAhPSAweDAwMDJVKSAmJiAoaSB8fAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGlkZW50ICE9IDB4MDEwNVUgJiYgaWRlbnQgIT0gMHgwMTBB
VSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19hbmNob3IgKVtp
XSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICh1c2Vy
YW5jaG9yICE9IDB4RkZGRkZGRkYpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19hbmNob3IgKVtpXSA9IHVzZXJhbmNob3I7
CiAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJhbmNob3IgPSAweEZGRkZGRkZGOwogICAgICAg
ICAgICAgICAgICAgICAgICBpIC0tOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAg
ICAgcmV0dXJuIGxhc3RibG9jazsKfQoKc3RhdGljIGludAp1ZGZfZmluZF9maWxlc2V0KHN0cnVj
dCBzdXBlcl9ibG9jayAqc2IsIGxiX2FkZHIgKmZpbGVzZXQsIGxiX2FkZHIgKnJvb3QpCnsKICAg
ICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoID0gKCh2b2lkICopMCk7CiAgICAgICAgbG9uZyBs
YXN0YmxvY2s7CiAgICAgICAgX191MTYgaWRlbnQ7CgogICAgICAgIGlmIChmaWxlc2V0LT5sb2dp
Y2FsQmxvY2tOdW0gIT0gMHhGRkZGRkZGRiB8fAogICAgICAgICAgICAgICAgZmlsZXNldC0+cGFy
dGl0aW9uUmVmZXJlbmNlTnVtICE9IDB4RkZGRikKICAgICAgICB7CiAgICAgICAgICAgICAgICBi
aCA9IHVkZl9yZWFkX3B0YWdnZWQoc2IsICpmaWxlc2V0LCAwLCAmaWRlbnQpOwoKICAgICAgICAg
ICAgICAgIGlmICghYmgpCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAg
ICAgICAgICAgZWxzZSBpZiAoaWRlbnQgIT0gMHgwMTAwVSkKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgdWRmX3JlbGVhc2VfZGF0YShiaCk7CiAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAg
IGlmICghYmgpCiAgICAgICAgewogICAgICAgICAgICAgICAgbGJfYWRkciBuZXdmaWxlc2V0OwoK
ICAgICAgICAgICAgICAgIHJldHVybiAxOwoKICAgICAgICAgICAgICAgIGZvciAobmV3ZmlsZXNl
dC5wYXJ0aXRpb25SZWZlcmVuY2VOdW09KCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRpdGlv
bnMgKS0xOwogICAgICAgICAgICAgICAgICAgICAgICAobmV3ZmlsZXNldC5wYXJ0aXRpb25SZWZl
cmVuY2VOdW0gIT0gMHhGRkZGICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmls
ZXNldC0+bG9naWNhbEJsb2NrTnVtID09IDB4RkZGRkZGRkYgJiYKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaWxlc2V0LT5wYXJ0aXRpb25SZWZlcmVuY2VOdW0gPT0gMHhGRkZGKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3ZmlsZXNldC5wYXJ0aXRpb25SZWZlcmVuY2VOdW0t
LSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgbGFzdGJsb2NrID0g
KCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsobmV3ZmlsZXNldC5wYXJ0aXRp
b25SZWZlcmVuY2VOdW0pXS5zX3BhcnRpdGlvbl9sZW4gKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgbmV3ZmlsZXNldC5sb2dpY2FsQmxvY2tOdW0gPSAwOwoKICAgICAgICAgICAgICAgICAgICAg
ICAgZG8KICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJoID0gdWRmX3JlYWRfcHRhZ2dlZChzYiwgbmV3ZmlsZXNldCwgMCwgJmlkZW50KTsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJoKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5ld2ZpbGVzZXQubG9naWNhbEJsb2NrTnVtICsrOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGlkZW50KQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhc2UgMHgwMTA4VToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RydWN0IFNwYWNlQml0bWFwRGVzYyAqc3A7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNwID0gKHN0cnVjdCBTcGFjZUJpdG1hcERlc2MgKiliaC0+Yl9k
YXRhOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdm
aWxlc2V0LmxvZ2ljYWxCbG9ja051bSArPSAxICsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCgoX191MzIpKHNwLT5udW1PZkJ5dGVzKSkg
KyBzaXplb2Yoc3RydWN0IFNwYWNlQml0bWFwRGVzYykgLSAxKQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPj4gc2ItPnNfYmxv
Y2tzaXplX2JpdHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1ZGZfcmVsZWFzZV9kYXRhKGJoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDB4
MDEwMFU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpmaWxlc2V0ID0gbmV3Zmls
ZXNldDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuZXdmaWxlc2V0LmxvZ2ljYWxCbG9ja051bSArKzsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWRmX3JlbGVhc2VfZGF0YShiaCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJoID0gKCh2
b2lkICopMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICB3aGlsZSAobmV3ZmlsZXNldC5sb2dpY2FsQmxvY2tOdW0gPCBs
YXN0YmxvY2sgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlc2V0LT5sb2dp
Y2FsQmxvY2tOdW0gPT0gMHhGRkZGRkZGRiAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZpbGVzZXQtPnBhcnRpdGlvblJlZmVyZW5jZU51bSA9PSAweEZGRkYpOwogICAgICAgICAg
ICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKChmaWxlc2V0LT5sb2dpY2FsQmxvY2tOdW0g
IT0gMHhGRkZGRkZGRiB8fAogICAgICAgICAgICAgICAgZmlsZXNldC0+cGFydGl0aW9uUmVmZXJl
bmNlTnVtICE9IDB4RkZGRikgJiYgYmgpCiAgICAgICAgewogICAgICAgICAgICAgICAgeyBwcmlu
dGtfUnNtcF84MjdkNTgwNyAoIjw3PiIgIlVERi1mcyBERUJVRyAlczolZDolczogIiwgImZzL3Vk
Zi9zdXBlci5jIiwgNzMxLCBfX0ZVTkNUSU9OX18pOyBwcmludGtfUnNtcF84MjdkNTgwNyAoIkZp
bGVzZXQgYXQgYmxvY2s9JWQsIHBhcnRpdGlvbj0lZFxuIiwgZmlsZXNldC0+bG9naWNhbEJsb2Nr
TnVtLCBmaWxlc2V0LT5wYXJ0aXRpb25SZWZlcmVuY2VOdW0pOyB9OwoKCiAgICAgICAgICAgICAg
ICAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9uICkgPSBmaWxlc2V0LT5wYXJ0aXRp
b25SZWZlcmVuY2VOdW07CiAgICAgICAgICAgICAgICB1ZGZfbG9hZF9maWxlc2V0KHNiLCBiaCwg
cm9vdCk7CiAgICAgICAgICAgICAgICB1ZGZfcmVsZWFzZV9kYXRhKGJoKTsKICAgICAgICAgICAg
ICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMTsKfQoKc3RhdGljIHZvaWQK
dWRmX2xvYWRfcHZvbGRlc2Moc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGJ1ZmZlcl9o
ZWFkICpiaCkKewogICAgICAgIHN0cnVjdCBQcmltYXJ5Vm9sRGVzYyAqcHZvbGRlc2M7CiAgICAg
ICAgdGltZV90IHJlY29yZGluZzsKICAgICAgICBsb25nIHJlY29yZGluZ191c2VjOwogICAgICAg
IHN0cnVjdCB1c3RyIGluc3RyOwogICAgICAgIHN0cnVjdCB1c3RyIG91dHN0cjsKCiAgICAgICAg
cHZvbGRlc2MgPSAoc3RydWN0IFByaW1hcnlWb2xEZXNjICopYmgtPmJfZGF0YTsKCiAgICAgICAg
aWYgKCB1ZGZfc3RhbXBfdG9fdGltZSgmcmVjb3JkaW5nLCAmcmVjb3JkaW5nX3VzZWMsCiAgICAg
ICAgICAgICAgICBsZXRzX3RvX2NwdShwdm9sZGVzYy0+cmVjb3JkaW5nRGF0ZUFuZFRpbWUpKSAp
CiAgICAgICAgewogICAgICAgICAgICAgICAgdGltZXN0YW1wIHRzOwogICAgICAgICAgICAgICAg
dHMgPSBsZXRzX3RvX2NwdShwdm9sZGVzYy0+cmVjb3JkaW5nRGF0ZUFuZFRpbWUpOwogICAgICAg
ICAgICAgICAgeyBwcmludGtfUnNtcF84MjdkNTgwNyAoIjw3PiIgIlVERi1mcyBERUJVRyAlczol
ZDolczogIiwgImZzL3VkZi9zdXBlci5jIiwgNzU4LCBfX0ZVTkNUSU9OX18pOyBwcmludGtfUnNt
cF84MjdkNTgwNyAoInJlY29yZGluZyB0aW1lICVsZC8lbGQsICUwNHUvJTAydS8lMDJ1ICUwMnU6
JTAydSAoJXgpXG4iLCByZWNvcmRpbmcsIHJlY29yZGluZ191c2VjLCB0cy55ZWFyLCB0cy5tb250
aCwgdHMuZGF5LCB0cy5ob3VyLCB0cy5taW51dGUsIHRzLnR5cGVBbmRUaW1lem9uZSk7IH07CgoK
ICAgICAgICAgICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19yZWNvcmR0aW1lICkgPSBy
ZWNvcmRpbmc7CiAgICAgICAgfQoKICAgICAgICBpZiAoICF1ZGZfYnVpbGRfdXN0cigmaW5zdHIs
IHB2b2xkZXNjLT52b2xJZGVudCwgMzIpICkKICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAo
dWRmX0NTMHRvVVRGOCgmb3V0c3RyLCAmaW5zdHIpKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBzdHJuY3B5X1JzbXBfN2VjOWJmYmMoICggKCYoKHNiKS0+dS51ZGZf
c2IpKS0+c192b2xpZGVudCApLCBvdXRzdHIudV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG91dHN0ci51X2xlbiA+IDMxID8gMzEgOiBvdXRzdHIudV9sZW4pOwogICAgICAg
ICAgICAgICAgICAgICAgICB7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiPDc+IiAiVURGLWZzIERF
QlVHICVzOiVkOiVzOiAiLCAiZnMvdWRmL3N1cGVyLmMiLCA3NzAsIF9fRlVOQ1RJT05fXyk7IHBy
aW50a19Sc21wXzgyN2Q1ODA3ICgidm9sSWRlbnRbXSA9ICclcydcbiIsICggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c192b2xpZGVudCApKTsgfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9Cgog
ICAgICAgIGlmICggIXVkZl9idWlsZF91c3RyKCZpbnN0ciwgcHZvbGRlc2MtPnZvbFNldElkZW50
LCAxMjgpICkKICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAodWRmX0NTMHRvVVRGOCgmb3V0
c3RyLCAmaW5zdHIpKQogICAgICAgICAgICAgICAgICAgICAgICB7IHByaW50a19Sc21wXzgyN2Q1
ODA3ICgiPDc+IiAiVURGLWZzIERFQlVHICVzOiVkOiVzOiAiLCAiZnMvdWRmL3N1cGVyLmMiLCA3
NzcsIF9fRlVOQ1RJT05fXyk7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgidm9sU2V0SWRlbnRbXSA9
ICclcydcbiIsIG91dHN0ci51X25hbWUpOyB9OwogICAgICAgIH0KfQoKc3RhdGljIHZvaWQKdWRm
X2xvYWRfZmlsZXNldChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgYnVmZmVyX2hlYWQg
KmJoLCBsYl9hZGRyICpyb290KQp7CiAgICAgICAgc3RydWN0IEZpbGVTZXREZXNjICpmc2V0OwoK
ICAgICAgICBmc2V0ID0gKHN0cnVjdCBGaWxlU2V0RGVzYyAqKWJoLT5iX2RhdGE7CgogICAgICAg
ICpyb290ID0gbGVsYl90b19jcHUoZnNldC0+cm9vdERpcmVjdG9yeUlDQi5leHRMb2NhdGlvbik7
CgogICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19zZXJpYWxudW0gKSA9ICgoX191MTYp
KGZzZXQtPmRlc2NUYWcudGFnU2VyaWFsTnVtKSk7CgogICAgICAgIHsgcHJpbnRrX1JzbXBfODI3
ZDU4MDcgKCI8Nz4iICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsICJmcy91ZGYvc3VwZXIuYyIs
IDc5MiwgX19GVU5DVElPTl9fKTsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCJSb290ZGlyIGF0IGJs
b2NrPSVkLCBwYXJ0aXRpb249JWRcbiIsIHJvb3QtPmxvZ2ljYWxCbG9ja051bSwgcm9vdC0+cGFy
dGl0aW9uUmVmZXJlbmNlTnVtKTsgfTsKCn0KCnN0YXRpYyB2b2lkCnVkZl9sb2FkX3BhcnRkZXNj
KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCnsKICAgICAg
ICBzdHJ1Y3QgUGFydGl0aW9uRGVzYyAqcDsKICAgICAgICBpbnQgaTsKCiAgICAgICAgcCA9IChz
dHJ1Y3QgUGFydGl0aW9uRGVzYyAqKWJoLT5iX2RhdGE7CgogICAgICAgIGZvciAoaT0wOyBpPCgg
KCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb25zICk7IGkrKykKICAgICAgICB7CiAgICAg
ICAgICAgICAgICB7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiPDc+IiAiVURGLWZzIERFQlVHICVz
OiVkOiVzOiAiLCAiZnMvdWRmL3N1cGVyLmMiLCA4MDYsIF9fRlVOQ1RJT05fXyk7IHByaW50a19S
c21wXzgyN2Q1ODA3ICgiU2VhcmNoaW5nIG1hcDogKCVkID09ICVkKVxuIiwgKCAoJigoc2IpLT51
LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbaV0uc19wYXJ0aXRpb25fbnVtLCAoKF9fdTE2KShwLT5w
YXJ0aXRpb25OdW1iZXIpKSk7IH07CgogICAgICAgICAgICAgICAgaWYgKCggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c19wYXJ0bWFwcyApW2ldLnNfcGFydGl0aW9uX251bSA9PSAoKF9fdTE2KShwLT5w
YXJ0aXRpb25OdW1iZXIpKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoaSldLnNfcGFydGl0aW9u
X2xlbiApID0gKChfX3UzMikocC0+cGFydGl0aW9uTGVuZ3RoKSk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKGkpXS5zX3BhcnRp
dGlvbl9yb290ICkgPSAoKF9fdTMyKShwLT5wYXJ0aXRpb25TdGFydGluZ0xvY2F0aW9uKSkgKyAo
ICgmKChzYiktPnUudWRmX3NiKSktPnNfc2Vzc2lvbiApOwoKICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCFzdHJjbXBfUnNtcF9lMmQ1MjU1YShwLT5wYXJ0aXRpb25Db250ZW50cy5pZGVudCwg
IitOU1IwMiIpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXN0cmNtcF9Sc21w
X2UyZDUyNTVhKHAtPnBhcnRpdGlvbkNvbnRlbnRzLmlkZW50LCAiK05TUjAzIikpCiAgICAgICAg
ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
UGFydGl0aW9uSGVhZGVyRGVzYyAqcGhkOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwaGQgPSAoc3RydWN0IFBhcnRpdGlvbkhlYWRlckRlc2MgKikocC0+cGFydGl0aW9uQ29udGVu
dHNVc2UpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwaGQtPnVuYWxsb2Nh
dGVkU3BhY2VUYWJsZS5leHRMZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGJfYWRkciBsb2MgPSB7
ICgoX191MzIpKHBoZC0+dW5hbGxvY2F0ZWRTcGFjZVRhYmxlLmV4dFBvc2l0aW9uKSksIGkgfTsK
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICgmKChzYiktPnUudWRm
X3NiKSktPnNfcGFydG1hcHMgKVtpXS5zX3VzcGFjZS5zX3RhYmxlID0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWRmX2lnZXQoc2IsIGxvYyk7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51ZGZfc2Ip
KS0+c19wYXJ0bWFwcyApWyhpKV0uc19wYXJ0aXRpb25fZmxhZ3MgKSB8PSAweDAwMDI7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHByaW50a19Sc21wXzgyN2Q1ODA3
ICgiPDc+IiAiVURGLWZzIERFQlVHICVzOiVkOiVzOiAiLCAiZnMvdWRmL3N1cGVyLmMiLCA4MjYs
IF9fRlVOQ1RJT05fXyk7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgidW5hbGxvY2F0ZWRTcGFjZVRh
YmxlIChwYXJ0ICVkKSBAICVsZFxuIiwgaSwgKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRt
YXBzIClbaV0uc191c3BhY2Uuc190YWJsZS0+aV9pbm8pOyB9OwoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBoZC0+
dW5hbGxvY2F0ZWRTcGFjZUJpdG1hcC5leHRMZW5ndGgpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBpbnQg
bnJfZ3JvdXBzID0gKCgoICggKCYoKChzYikpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKChp
KSldLnNfcGFydGl0aW9uX2xlbiApICsgKHNpemVvZihzdHJ1Y3QgU3BhY2VCaXRtYXBEZXNjKSA8
PCAzKSArICgoc2IpLT5zX2Jsb2Nrc2l6ZSAqIDgpIC0gMSkgLyAoKHNiKS0+c19ibG9ja3NpemUg
KiA4KSk7ICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyhpKV0uc191c3BhY2Uu
c19iaXRtYXAgPSBrbWFsbG9jX1JzbXBfNmY2YzFjZjcoc2l6ZW9mKHN0cnVjdCB1ZGZfYml0bWFw
KSArIHNpemVvZihzdHJ1Y3QgYnVmZmVyX2hlYWQgKikgKiBucl9ncm91cHMsICgweDIwIHwgMHgx
MCB8IDB4NDAgfCAweDgwKSk7IGlmICgoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMg
KVsoaSldLnNfdXNwYWNlLnNfYml0bWFwICE9ICgodm9pZCAqKTApKSB7IG1lbXNldCgoICgmKChz
YiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoaSldLnNfdXNwYWNlLnNfYml0bWFwLCAweDAw
LCBzaXplb2Yoc3RydWN0IHVkZl9iaXRtYXApICsgc2l6ZW9mKHN0cnVjdCBidWZmZXJfaGVhZCAq
KSAqIG5yX2dyb3Vwcyk7ICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyhpKV0u
c191c3BhY2Uuc19iaXRtYXAtPnNfYmxvY2tfYml0bWFwID0gKHN0cnVjdCBidWZmZXJfaGVhZCAq
KikoKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKGkpXS5zX3VzcGFjZS5zX2Jp
dG1hcCArIDEpOyAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoaSldLnNfdXNw
YWNlLnNfYml0bWFwLT5zX25yX2dyb3VwcyA9IG5yX2dyb3VwczsgfSBlbHNlIHsgdWRmX2Vycm9y
KHNiLCBfX0ZVTkNUSU9OX18sICJVbmFibGUgdG8gYWxsb2NhdGUgc3BhY2UgZm9yIGJpdG1hcCBh
bmQgJWQgYnVmZmVyX2hlYWQgcG9pbnRlcnMiLCBucl9ncm91cHMpOyB9fTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoICgmKChzYiktPnUudWRmX3NiKSktPnNf
cGFydG1hcHMgKVtpXS5zX3VzcGFjZS5zX2JpdG1hcCAhPSAoKHZvaWQgKikwKSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBz
IClbaV0uc191c3BhY2Uuc19iaXRtYXAtPnNfZXh0TGVuZ3RoID0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKF9fdTMyKShwaGQtPnVuYWxs
b2NhdGVkU3BhY2VCaXRtYXAuZXh0TGVuZ3RoKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyAp
W2ldLnNfdXNwYWNlLnNfYml0bWFwLT5zX2V4dFBvc2l0aW9uID0KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKF9fdTMyKShwaGQtPnVuYWxs
b2NhdGVkU3BhY2VCaXRtYXAuZXh0UG9zaXRpb24pKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1h
cHMgKVsoaSldLnNfcGFydGl0aW9uX2ZsYWdzICkgfD0gMHgwMDAxOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgi
PDc+IiAiVURGLWZzIERFQlVHICVzOiVkOiVzOiAiLCAiZnMvdWRmL3N1cGVyLmMiLCA4MzksIF9f
RlVOQ1RJT05fXyk7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgidW5hbGxvY2F0ZWRTcGFjZUJpdG1h
cCAocGFydCAlZCkgQCAlZFxuIiwgaSwgKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBz
IClbaV0uc191c3BhY2Uuc19iaXRtYXAtPnNfZXh0UG9zaXRpb24pOyB9OwoKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBoZC0+cGFydGl0aW9u
SW50ZWdyaXR5VGFibGUuZXh0TGVuZ3RoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeyBwcmludGtfUnNtcF84MjdkNTgwNyAoIjw3PiIgIlVERi1mcyBERUJVRyAlczol
ZDolczogIiwgImZzL3VkZi9zdXBlci5jIiwgODQ0LCBfX0ZVTkNUSU9OX18pOyBwcmludGtfUnNt
cF84MjdkNTgwNyAoInBhcnRpdGlvbkludGVncml0eVRhYmxlIChwYXJ0ICVkKVxuIiwgaSk7IH07
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBoZC0+ZnJlZWRTcGFjZVRhYmxl
LmV4dExlbmd0aCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYl9hZGRyIGxvYyA9IHsgKChfX3UzMikocGhk
LT5mcmVlZFNwYWNlVGFibGUuZXh0UG9zaXRpb24pKSwgaSB9OwoKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyAp
W2ldLnNfZnNwYWNlLnNfdGFibGUgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1ZGZfaWdldChzYiwgbG9jKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKGkp
XS5zX3BhcnRpdGlvbl9mbGFncyApIHw9IDB4MDAwODsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCI8Nz4iICJVREYtZnMgREVC
VUcgJXM6JWQ6JXM6ICIsICJmcy91ZGYvc3VwZXIuYyIsIDg1MiwgX19GVU5DVElPTl9fKTsgcHJp
bnRrX1JzbXBfODI3ZDU4MDcgKCJmcmVlZFNwYWNlVGFibGUgKHBhcnQgJWQpIEAgJWxkXG4iLCBp
LCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVtpXS5zX2ZzcGFjZS5zX3RhYmxl
LT5pX2lubyk7IH07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocGhkLT5mcmVlZFNwYWNlQml0bWFwLmV4dExlbmd0
aCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB7IGludCBucl9ncm91cHMgPSAoKCggKCAoJigoKHNiKSktPnUu
dWRmX3NiKSktPnNfcGFydG1hcHMgKVsoKGkpKV0uc19wYXJ0aXRpb25fbGVuICkgKyAoc2l6ZW9m
KHN0cnVjdCBTcGFjZUJpdG1hcERlc2MpIDw8IDMpICsgKChzYiktPnNfYmxvY2tzaXplICogOCkg
LSAxKSAvICgoc2IpLT5zX2Jsb2Nrc2l6ZSAqIDgpKTsgKCAoJigoc2IpLT51LnVkZl9zYikpLT5z
X3BhcnRtYXBzIClbKGkpXS5zX2ZzcGFjZS5zX2JpdG1hcCA9IGttYWxsb2NfUnNtcF82ZjZjMWNm
NyhzaXplb2Yoc3RydWN0IHVkZl9iaXRtYXApICsgc2l6ZW9mKHN0cnVjdCBidWZmZXJfaGVhZCAq
KSAqIG5yX2dyb3VwcywgKDB4MjAgfCAweDEwIHwgMHg0MCB8IDB4ODApKTsgaWYgKCggKCYoKHNi
KS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyhpKV0uc19mc3BhY2Uuc19iaXRtYXAgIT0gKCh2
b2lkICopMCkpIHsgbWVtc2V0KCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyhp
KV0uc19mc3BhY2Uuc19iaXRtYXAsIDB4MDAsIHNpemVvZihzdHJ1Y3QgdWRmX2JpdG1hcCkgKyBz
aXplb2Yoc3RydWN0IGJ1ZmZlcl9oZWFkICopICogbnJfZ3JvdXBzKTsgKCAoJigoc2IpLT51LnVk
Zl9zYikpLT5zX3BhcnRtYXBzIClbKGkpXS5zX2ZzcGFjZS5zX2JpdG1hcC0+c19ibG9ja19iaXRt
YXAgPSAoc3RydWN0IGJ1ZmZlcl9oZWFkICoqKSgoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFy
dG1hcHMgKVsoaSldLnNfZnNwYWNlLnNfYml0bWFwICsgMSk7ICggKCYoKHNiKS0+dS51ZGZfc2Ip
KS0+c19wYXJ0bWFwcyApWyhpKV0uc19mc3BhY2Uuc19iaXRtYXAtPnNfbnJfZ3JvdXBzID0gbnJf
Z3JvdXBzOyB9IGVsc2UgeyB1ZGZfZXJyb3Ioc2IsIF9fRlVOQ1RJT05fXywgIlVuYWJsZSB0byBh
bGxvY2F0ZSBzcGFjZSBmb3IgYml0bWFwIGFuZCAlZCBidWZmZXJfaGVhZCBwb2ludGVycyIsIG5y
X2dyb3Vwcyk7IH19OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyApW2ldLnNfZnNwYWNlLnNfYml0bWFw
ICE9ICgodm9pZCAqKTApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICgmKChz
YiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVtpXS5zX2ZzcGFjZS5zX2JpdG1hcC0+c19leHRM
ZW5ndGggPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgoX191MzIpKHBoZC0+ZnJlZWRTcGFjZUJpdG1hcC5leHRMZW5ndGgpKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoJigoc2IpLT51LnVk
Zl9zYikpLT5zX3BhcnRtYXBzIClbaV0uc19mc3BhY2Uuc19iaXRtYXAtPnNfZXh0UG9zaXRpb24g
PQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgoX191MzIpKHBoZC0+ZnJlZWRTcGFjZUJpdG1hcC5leHRQb3NpdGlvbikpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51ZGZf
c2IpKS0+c19wYXJ0bWFwcyApWyhpKV0uc19wYXJ0aXRpb25fZmxhZ3MgKSB8PSAweDAwMDQ7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbnRrX1Jz
bXBfODI3ZDU4MDcgKCI8Nz4iICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsICJmcy91ZGYvc3Vw
ZXIuYyIsIDg2NSwgX19GVU5DVElPTl9fKTsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCJmcmVlZFNw
YWNlQml0bWFwIChwYXJ0ICVkKSBAICVkXG4iLCBpLCAoICgmKChzYiktPnUudWRmX3NiKSktPnNf
cGFydG1hcHMgKVtpXS5zX2ZzcGFjZS5zX2JpdG1hcC0+c19leHRQb3NpdGlvbik7IH07CgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGkg
PT0gKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRpdGlvbnMgKSkKICAgICAgICB7CiAgICAg
ICAgICAgICAgICB7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiPDc+IiAiVURGLWZzIERFQlVHICVz
OiVkOiVzOiAiLCAiZnMvdWRmL3N1cGVyLmMiLCA4NzUsIF9fRlVOQ1RJT05fXyk7IHByaW50a19S
c21wXzgyN2Q1ODA3ICgiUGFydGl0aW9uICglZCkgbm90IGZvdW5kIGluIHBhcnRpdGlvbiBtYXBc
biIsICgoX191MTYpKHAtPnBhcnRpdGlvbk51bWJlcikpKTsgfTsKICAgICAgICB9CiAgICAgICAg
ZWxzZQogICAgICAgIHsKICAgICAgICAgICAgICAgIHsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCI8
Nz4iICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsICJmcy91ZGYvc3VwZXIuYyIsIDg3OSwgX19G
VU5DVElPTl9fKTsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCJQYXJ0aXRpb24gKCVkOiVkIHR5cGUg
JXgpIHN0YXJ0cyBhdCBwaHlzaWNhbCAlZCwgYmxvY2sgbGVuZ3RoICVkXG4iLCAoKF9fdTE2KShw
LT5wYXJ0aXRpb25OdW1iZXIpKSwgaSwgKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1h
cHMgKVsoaSldLnNfcGFydGl0aW9uX3R5cGUgKSwgKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNf
cGFydG1hcHMgKVsoaSldLnNfcGFydGl0aW9uX3Jvb3QgKSwgKCAoICgmKChzYiktPnUudWRmX3Ni
KSktPnNfcGFydG1hcHMgKVsoaSldLnNfcGFydGl0aW9uX2xlbiApKTsgfTsKCgogICAgICAgIH0K
fQoKc3RhdGljIGludAp1ZGZfbG9hZF9sb2dpY2Fsdm9sKHN0cnVjdCBzdXBlcl9ibG9jayAqc2Is
IHN0cnVjdCBidWZmZXJfaGVhZCAqIGJoLCBsYl9hZGRyICpmaWxlc2V0KQp7CiAgICAgICAgc3Ry
dWN0IExvZ2ljYWxWb2xEZXNjICpsdmQ7CiAgICAgICAgaW50IGksIGosIG9mZnNldDsKICAgICAg
ICBfX3U4IHR5cGU7CgogICAgICAgIGx2ZCA9IChzdHJ1Y3QgTG9naWNhbFZvbERlc2MgKiliaC0+
Yl9kYXRhOwoKICAgICAgICB7ICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyApID0g
a21hbGxvY19Sc21wXzZmNmMxY2Y3KHNpemVvZihzdHJ1Y3QgdWRmX3BhcnRfbWFwKSAqICgoX191
MzIpKGx2ZC0+bnVtUGFydGl0aW9uTWFwcykpLCAoMHgyMCB8IDB4MTAgfCAweDQwIHwgMHg4MCkp
OyBpZiAoKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzICkgIT0gKCh2b2lkICopMCkp
IHsgKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRpdGlvbnMgKSA9ICgoX191MzIpKGx2ZC0+
bnVtUGFydGl0aW9uTWFwcykpOyBtZW1zZXQoKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRt
YXBzICksIDB4MDAsIHNpemVvZihzdHJ1Y3QgdWRmX3BhcnRfbWFwKSAqICgoX191MzIpKGx2ZC0+
bnVtUGFydGl0aW9uTWFwcykpKTsgfSBlbHNlIHsgKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3Bh
cnRpdGlvbnMgKSA9IDA7IHVkZl9lcnJvcihzYiwgX19GVU5DVElPTl9fLCAiVW5hYmxlIHRvIGFs
bG9jYXRlIHNwYWNlIGZvciAlZCBwYXJ0aXRpb24gbWFwcyIsICgoX191MzIpKGx2ZC0+bnVtUGFy
dGl0aW9uTWFwcykpKTsgfX07CgogICAgICAgIGZvciAoaT0wLG9mZnNldD0wOwogICAgICAgICAg
ICAgICAgIGk8KCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRpdGlvbnMgKSAmJiBvZmZzZXQ8
KChfX3UzMikobHZkLT5tYXBUYWJsZUxlbmd0aCkpOwogICAgICAgICAgICAgICAgIGkrKyxvZmZz
ZXQrPSgoc3RydWN0IEdlbmVyaWNQYXJ0aXRpb25NYXAgKikmKGx2ZC0+cGFydGl0aW9uTWFwc1tv
ZmZzZXRdKSktPnBhcnRpdGlvbk1hcExlbmd0aCkKICAgICAgICB7CiAgICAgICAgICAgICAgICB0
eXBlID0gKChzdHJ1Y3QgR2VuZXJpY1BhcnRpdGlvbk1hcCAqKSYobHZkLT5wYXJ0aXRpb25NYXBz
W29mZnNldF0pKS0+cGFydGl0aW9uTWFwVHlwZTsKICAgICAgICAgICAgICAgIGlmICh0eXBlID09
IDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBHZW5l
cmljUGFydGl0aW9uTWFwMSAqZ3BtMSA9IChzdHJ1Y3QgR2VuZXJpY1BhcnRpdGlvbk1hcDEgKikm
KGx2ZC0+cGFydGl0aW9uTWFwc1tvZmZzZXRdKTsKICAgICAgICAgICAgICAgICAgICAgICAgKCAo
ICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoaSldLnNfcGFydGl0aW9uX3R5cGUg
KSA9IDB4MTUxMVU7CiAgICAgICAgICAgICAgICAgICAgICAgICggKCAoJigoc2IpLT51LnVkZl9z
YikpLT5zX3BhcnRtYXBzIClbKGkpXS5zX3ZvbHVtZXNlcW51bSApID0gKChfX3UxNikoZ3BtMS0+
dm9sU2VxTnVtKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICggKCAoJigoc2IpLT51LnVkZl9z
YikpLT5zX3BhcnRtYXBzIClbKGkpXS5zX3BhcnRpdGlvbl9udW0gKSA9ICgoX191MTYpKGdwbTEt
PnBhcnRpdGlvbk51bSkpOwogICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyhpKV0uc19wYXJ0aXRpb25fZnVuYyApID0gKCh2b2lkICop
MCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlID09IDIp
CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBVZGZQYXJ0
aXRpb25NYXAyICp1cG0yID0gKHN0cnVjdCBVZGZQYXJ0aXRpb25NYXAyICopJihsdmQtPnBhcnRp
dGlvbk1hcHNbb2Zmc2V0XSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RybmNtcF9S
c21wXzg1YWJjODVmKHVwbTItPnBhcnRJZGVudC5pZGVudCwgIipVREYgVmlydHVhbCBQYXJ0aXRp
b24iLCBzdHJsZW5fUnNtcF9kY2I1NjcxZCgiKlVERiBWaXJ0dWFsIFBhcnRpdGlvbiIpKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgoKF9fdTE2KSgoKF9fdTE2ICopdXBtMi0+cGFydElkZW50LmlkZW50U3VmZml4KVswXSkpID09
IDB4MDE1MCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0
bWFwcyApWyhpKV0uc19wYXJ0aXRpb25fdHlwZSApID0gMHgxNTEyVTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRt
YXBzIClbKGkpXS5zX3BhcnRpdGlvbl9mdW5jICkgPSB1ZGZfZ2V0X3BibG9ja192aXJ0MTU7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVsc2UgaWYgKCgoX191MTYpKCgoX191MTYgKil1cG0yLT5wYXJ0SWRlbnQuaWRlbnRT
dWZmaXgpWzBdKSkgPT0gMHgwMjAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKCAoJigoc2IpLT51LnVk
Zl9zYikpLT5zX3BhcnRtYXBzIClbKGkpXS5zX3BhcnRpdGlvbl90eXBlICkgPSAweDIwMTJVOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoICgmKChzYiktPnUudWRm
X3NiKSktPnNfcGFydG1hcHMgKVsoaSldLnNfcGFydGl0aW9uX2Z1bmMgKSA9IHVkZl9nZXRfcGJs
b2NrX3ZpcnQyMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoIXN0cm5jbXBf
UnNtcF84NWFiYzg1Zih1cG0yLT5wYXJ0SWRlbnQuaWRlbnQsICIqVURGIFNwYXJhYmxlIFBhcnRp
dGlvbiIsIHN0cmxlbl9Sc21wX2RjYjU2NzFkKCIqVURGIFNwYXJhYmxlIFBhcnRpdGlvbiIpKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF9fdTMyIGxvYzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3UxNiBpZGVudDsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgU3BhcmluZ1RhYmxlICpzdDsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgU3BhcmFibGVQYXJ0aXRpb25N
YXAgKnNwbSA9IChzdHJ1Y3QgU3BhcmFibGVQYXJ0aXRpb25NYXAgKikmKGx2ZC0+cGFydGl0aW9u
TWFwc1tvZmZzZXRdKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoICgmKChz
YiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoaSldLnNfcGFydGl0aW9uX3R5cGUgKSA9IDB4
MTUyMlU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoICgmKChzYiktPnUudWRm
X3NiKSktPnNfcGFydG1hcHMgKVsoaSldLnNfdHlwZV9zcGVjaWZpYy5zX3NwYXJpbmcgKS5zX3Bh
Y2tldF9sZW4gPSAoKF9fdTE2KShzcG0tPnBhY2tldExlbmd0aCkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvciAoaj0wOyBqPHNwbS0+bnVtU3BhcmluZ1RhYmxlczsgaisrKQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvYyA9ICgoX191MzIpKHNwbS0+bG9jU3BhcmluZ1RhYmxlW2pdKSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyhpKV0uc190eXBlX3NwZWNpZmljLnNfc3BhcmluZyApLnNf
c3Bhcl9tYXBbal0gPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1ZGZfcmVhZF90YWdnZWQoc2IsIGxvYywgbG9jLCAmaWRlbnQpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5z
X3BhcnRtYXBzIClbKGkpXS5zX3R5cGVfc3BlY2lmaWMuc19zcGFyaW5nICkuc19zcGFyX21hcFtq
XSAhPSAoKHZvaWQgKikwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3QgPSAo
c3RydWN0IFNwYXJpbmdUYWJsZSAqKSggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBz
IClbKGkpXS5zX3R5cGVfc3BlY2lmaWMuc19zcGFyaW5nICkuc19zcGFyX21hcFtqXS0+Yl9kYXRh
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWRl
bnQgIT0gMCB8fAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0cm5jbXBfUnNtcF84NWFiYzg1ZihzdC0+c3BhcmluZ0lkZW50LmlkZW50LCAi
KlVERiBTcGFyaW5nIFRhYmxlIiwgc3RybGVuX1JzbXBfZGNiNTY3MWQoIipVREYgU3BhcmluZyBU
YWJsZSIpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVkZl9yZWxlYXNlX2RhdGEoKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVso
aSldLnNfdHlwZV9zcGVjaWZpYy5zX3NwYXJpbmcgKS5zX3NwYXJfbWFwW2pdKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNi
KS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyhpKV0uc190eXBlX3NwZWNpZmljLnNfc3Bhcmlu
ZyApLnNfc3Bhcl9tYXBbal0gPSAoKHZvaWQgKikwKTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyAp
WyhpKV0uc19wYXJ0aXRpb25fZnVuYyApID0gdWRmX2dldF9wYmxvY2tfc3BhcjE1OwogICAgICAg
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbnRr
X1JzbXBfODI3ZDU4MDcgKCI8Nz4iICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsICJmcy91ZGYv
c3VwZXIuYyIsIDk1NCwgX19GVU5DVElPTl9fKTsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCJVbmtu
b3duIGlkZW50OiAlc1xuIiwgdXBtMi0+cGFydElkZW50LmlkZW50KTsgfTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFw
cyApWyhpKV0uc192b2x1bWVzZXFudW0gKSA9ICgoX191MTYpKHVwbTItPnZvbFNlcU51bSkpOwog
ICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFw
cyApWyhpKV0uc19wYXJ0aXRpb25fbnVtICkgPSAoKF9fdTE2KSh1cG0yLT5wYXJ0aXRpb25OdW0p
KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHsgcHJpbnRrX1JzbXBfODI3ZDU4
MDcgKCI8Nz4iICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsICJmcy91ZGYvc3VwZXIuYyIsIDk2
MCwgX19GVU5DVElPTl9fKTsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCJQYXJ0aXRpb24gKCVkOiVk
KSB0eXBlICVkIG9uIHZvbHVtZSAlZFxuIiwgaSwgKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNf
cGFydG1hcHMgKVsoaSldLnNfcGFydGl0aW9uX251bSApLCB0eXBlLCAoICggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyhpKV0uc192b2x1bWVzZXFudW0gKSk7IH07CgogICAgICAg
IH0KCiAgICAgICAgaWYgKGZpbGVzZXQpCiAgICAgICAgewogICAgICAgICAgICAgICAgbG9uZ19h
ZCAqbGEgPSAobG9uZ19hZCAqKSYobHZkLT5sb2dpY2FsVm9sQ29udGVudHNVc2VbMF0pOwoKICAg
ICAgICAgICAgICAgICpmaWxlc2V0ID0gbGVsYl90b19jcHUobGEtPmV4dExvY2F0aW9uKTsKICAg
ICAgICAgICAgICAgIHsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCI8Nz4iICJVREYtZnMgREVCVUcg
JXM6JWQ6JXM6ICIsICJmcy91ZGYvc3VwZXIuYyIsIDk2OSwgX19GVU5DVElPTl9fKTsgcHJpbnRr
X1JzbXBfODI3ZDU4MDcgKCJGaWxlU2V0IGZvdW5kIGluIExvZ2ljYWxWb2xEZXNjIGF0IGJsb2Nr
PSVkLCBwYXJ0aXRpb249JWRcbiIsIGZpbGVzZXQtPmxvZ2ljYWxCbG9ja051bSwgZmlsZXNldC0+
cGFydGl0aW9uUmVmZXJlbmNlTnVtKTsgfTsKCgogICAgICAgIH0KICAgICAgICBpZiAobHZkLT5p
bnRlZ3JpdHlTZXFFeHQuZXh0TGVuZ3RoKQogICAgICAgICAgICAgICAgdWRmX2xvYWRfbG9naWNh
bHZvbGludChzYiwgbGVlYV90b19jcHUobHZkLT5pbnRlZ3JpdHlTZXFFeHQpKTsKICAgICAgICBy
ZXR1cm4gMDsKfQoKCgoKCnN0YXRpYyB2b2lkCnVkZl9sb2FkX2xvZ2ljYWx2b2xpbnQoc3RydWN0
IHN1cGVyX2Jsb2NrICpzYiwgZXh0ZW50X2FkIGxvYykKewogICAgICAgIHN0cnVjdCBidWZmZXJf
aGVhZCAqYmggPSAoKHZvaWQgKikwKTsKICAgICAgICBfX3UxNiBpZGVudDsKCiAgICAgICAgd2hp
bGUgKChiaCA9IHVkZl9yZWFkX3RhZ2dlZChzYiwgbG9jLmV4dExvY2F0aW9uLCBsb2MuZXh0TG9j
YXRpb24sICZpZGVudCkpICYmCiAgICAgICAgICAgICAgICBpZGVudCA9PSAweDAwMDlVICYmIGxv
Yy5leHRMZW5ndGggPiAwKQogICAgICAgIHsKICAgICAgICAgICAgICAgICggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c19sdmlkYmggKSA9IGJoOwoKICAgICAgICAgICAgICAgIGlmICgoIChzdHJ1Y3Qg
TG9naWNhbFZvbEludGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJo
ICktPmJfZGF0YSApLT5uZXh0SW50ZWdyaXR5RXh0LmV4dExlbmd0aCkKICAgICAgICAgICAgICAg
ICAgICAgICAgdWRmX2xvYWRfbG9naWNhbHZvbGludChzYiwgbGVlYV90b19jcHUoKCAoc3RydWN0
IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2x2aWRi
aCApLT5iX2RhdGEgKS0+bmV4dEludGVncml0eUV4dCkpOwoKICAgICAgICAgICAgICAgIGlmICgo
ICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICkgIT0gYmgpCiAgICAgICAgICAgICAgICAg
ICAgICAgIHVkZl9yZWxlYXNlX2RhdGEoYmgpOwogICAgICAgICAgICAgICAgbG9jLmV4dExlbmd0
aCAtPSBzYi0+c19ibG9ja3NpemU7CiAgICAgICAgICAgICAgICBsb2MuZXh0TG9jYXRpb24gKys7
CiAgICAgICAgfQogICAgICAgIGlmICgoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICkg
IT0gYmgpCiAgICAgICAgICAgICAgICB1ZGZfcmVsZWFzZV9kYXRhKGJoKTsKfQojIDEwMjAgImZz
L3VkZi9zdXBlci5jIgpzdGF0aWMgaW50CnVkZl9wcm9jZXNzX3NlcXVlbmNlKHN0cnVjdCBzdXBl
cl9ibG9jayAqc2IsIGxvbmcgYmxvY2ssIGxvbmcgbGFzdGJsb2NrLCBsYl9hZGRyICpmaWxlc2V0
KQp7CiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9ICgodm9pZCAqKTApOwogICAgICAg
IHN0cnVjdCB1ZGZfdmRzX3JlY29yZCB2ZHNbN107CiAgICAgICAgc3RydWN0IEdlbmVyaWNEZXNj
ICpnZDsKICAgICAgICBzdHJ1Y3QgVm9sRGVzY1B0ciAqdmRwOwogICAgICAgIGludCBkb25lPTA7
CiAgICAgICAgaW50IGksajsKICAgICAgICBfX3UzMiB2ZHNuOwogICAgICAgIF9fdTE2IGlkZW50
OwogICAgICAgIGxvbmcgbmV4dF9zID0gMCwgbmV4dF9lID0gMDsKCiAgICAgICAgbWVtc2V0KHZk
cywgMCwgc2l6ZW9mKHN0cnVjdCB1ZGZfdmRzX3JlY29yZCkgKiA3KTsKCgogICAgICAgIGZvciAo
OyghZG9uZSAmJiBibG9jayA8PSBsYXN0YmxvY2spOyBibG9jaysrKQogICAgICAgIHsKCiAgICAg
ICAgICAgICAgICBiaCA9IHVkZl9yZWFkX3RhZ2dlZChzYiwgYmxvY2ssIGJsb2NrLCAmaWRlbnQp
OwogICAgICAgICAgICAgICAgaWYgKCFiaCkKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CgoKICAgICAgICAgICAgICAgIGdkID0gKHN0cnVjdCBHZW5lcmljRGVzYyAqKWJoLT5iX2RhdGE7
CiAgICAgICAgICAgICAgICB2ZHNuID0gKChfX3UzMikoZ2QtPnZvbERlc2NTZXFOdW0pKTsKICAg
ICAgICAgICAgICAgIHN3aXRjaCAoaWRlbnQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGNhc2UgMHgwMDAxVToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAodmRzbiA+PSB2ZHNbMF0udm9sRGVzY1NlcU51bSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZHNb
MF0udm9sRGVzY1NlcU51bSA9IHZkc247CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2ZHNbMF0uYmxvY2sgPSBibG9jazsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgICAgICAgIGNhc2UgMHgwMDAzVToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAodmRzbiA+PSB2ZHNbNV0udm9sRGVzY1NlcU51bSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZHNb
NV0udm9sRGVzY1NlcU51bSA9IHZkc247CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2ZHNbNV0uYmxvY2sgPSBibG9jazsKCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ZHAgPSAoc3RydWN0IFZvbERlc2NQdHIgKiliaC0+Yl9kYXRhOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dF9zID0gKChfX3UzMikodmRw
LT5uZXh0Vm9sRGVzY1NlcUV4dC5leHRMb2NhdGlvbikpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmV4dF9lID0gKChfX3UzMikodmRwLT5uZXh0Vm9sRGVzY1NlcUV4
dC5leHRMZW5ndGgpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5l
eHRfZSA9IG5leHRfZSA+PiBzYi0+c19ibG9ja3NpemVfYml0czsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5leHRfZSArPSBuZXh0X3M7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAwNFU6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHZkc24gPj0gdmRzWzRdLnZvbERlc2NTZXFOdW0pCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmRzWzRdLnZvbERlc2NTZXFOdW0gPSB2ZHNuOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmRzWzRdLmJsb2NrID0gYmxvY2s7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDB4MDAwNVU6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCF2ZHNbM10uYmxvY2spCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ZHNbM10uYmxvY2sgPSBibG9jazsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMDZVOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZHNuID49IHZkc1syXS52b2xEZXNj
U2VxTnVtKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZkc1syXS52b2xEZXNjU2VxTnVtID0gdmRzbjsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZkc1syXS5ibG9jayA9IGJsb2Nr
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMDdVOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZHNuID49IHZkc1sxXS52b2xEZXNj
U2VxTnVtKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZkc1sxXS52b2xEZXNjU2VxTnVtID0gdmRzbjsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZkc1sxXS5ibG9jayA9IGJsb2Nr
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAweDAwMDhVOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZkc1s2XS5ibG9jayA9IGJsb2NrOwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0X2UpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YmxvY2sgPSBuZXh0X3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
YXN0YmxvY2sgPSBuZXh0X2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBuZXh0X3MgPSBuZXh0X2UgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkb25lID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHVkZl9yZWxlYXNl
X2RhdGEoYmgpOwogICAgICAgIH0KICAgICAgICBmb3IgKGk9MDsgaTw3OyBpKyspCiAgICAgICAg
ewogICAgICAgICAgICAgICAgaWYgKHZkc1tpXS5ibG9jaykKICAgICAgICAgICAgICAgIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgYmggPSB1ZGZfcmVhZF90YWdnZWQoc2IsIHZkc1tpXS5ibG9j
aywgdmRzW2ldLmJsb2NrLCAmaWRlbnQpOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkg
PT0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ZGZfbG9hZF9wdm9sZGVzYyhz
YiwgYmgpOwogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpID09IDIpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdWRmX2xvYWRfbG9naWNhbHZvbChzYiwgYmgsIGZpbGVz
ZXQpOwogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChpID09IDMpCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYnVm
ZmVyX2hlYWQgKmJoMiA9ICgodm9pZCAqKTApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVkZl9sb2FkX3BhcnRkZXNjKHNiLCBiaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yIChqPXZkc1tpXS5ibG9jaysxOyBqPHZkc1s2XS5ibG9jazsgaisrKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJoMiA9IHVkZl9yZWFkX3RhZ2dlZChzYiwgaiwgaiwgJmlkZW50KTsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkID0gKHN0cnVjdCBHZW5lcmljRGVz
YyAqKWJoMi0+Yl9kYXRhOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGlkZW50ID09IDB4MDAwNVUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVkZl9sb2FkX3BhcnRkZXNjKHNiLCBiaDIpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdWRmX3JlbGVhc2VfZGF0YShiaDIpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgICAgICAgICB1ZGZfcmVsZWFzZV9kYXRhKGJoKTsKICAgICAgICAgICAgICAgIH0K
ICAgICAgICB9CgogICAgICAgIHJldHVybiAwOwp9CgoKCgpzdGF0aWMgaW50CnVkZl9jaGVja192
YWxpZChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgbm92cnMsIGludCBzaWxlbnQpCnsKICAg
ICAgICBsb25nIGJsb2NrOwoKICAgICAgICBpZiAobm92cnMpCiAgICAgICAgewogICAgICAgICAg
ICAgICAgeyBwcmludGtfUnNtcF84MjdkNTgwNyAoIjw3PiIgIlVERi1mcyBERUJVRyAlczolZDol
czogIiwgImZzL3VkZi9zdXBlci5jIiwgMTE0NywgX19GVU5DVElPTl9fKTsgcHJpbnRrX1JzbXBf
ODI3ZDU4MDcgKCJWYWxpZGl0eSBjaGVjayBza2lwcGVkIGJlY2F1c2Ugb2Ygbm92cnMgb3B0aW9u
XG4iKTsgfTsKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KCgogICAgICAgIGVs
c2UgaWYgKChibG9jayA9IHVkZl92cnMoc2IsIHNpbGVudCkpID09IC0xKQogICAgICAgIHsKICAg
ICAgICAgICAgICAgIHsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCI8Nz4iICJVREYtZnMgREVCVUcg
JXM6JWQ6JXM6ICIsICJmcy91ZGYvc3VwZXIuYyIsIDExNTQsIF9fRlVOQ1RJT05fXyk7IHByaW50
a19Sc21wXzgyN2Q1ODA3ICgiRmFpbGVkIHRvIHJlYWQgYnl0ZSAzMjc2OC4gQXNzdW1pbmcgb3Bl
biBkaXNjLiBTa2lwcGluZyB2YWxpZGl0eSBjaGVja1xuIik7IH07CiAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgcmV0dXJuICFi
bG9jazsKfQoKc3RhdGljIGludAp1ZGZfbG9hZF9wYXJ0aXRpb24oc3RydWN0IHN1cGVyX2Jsb2Nr
ICpzYiwgbGJfYWRkciAqZmlsZXNldCkKewogICAgICAgIHN0cnVjdCBBbmNob3JWb2xEZXNjUHRy
ICphbmNob3I7CiAgICAgICAgX191MTYgaWRlbnQ7CiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFk
ICpiaDsKICAgICAgICBsb25nIG1haW5fcywgbWFpbl9lLCByZXNlcnZlX3MsIHJlc2VydmVfZTsK
ICAgICAgICBpbnQgaSwgajsKCiAgICAgICAgaWYgKCFzYikKICAgICAgICAgICAgICAgIHJldHVy
biAxOwoKICAgICAgICBmb3IgKGk9MDsgaTxzaXplb2YoKCAoJigoc2IpLT51LnVkZl9zYikpLT5z
X2FuY2hvciApKS9zaXplb2YoaW50KTsgaSsrKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGlm
ICgoICgmKChzYiktPnUudWRmX3NiKSktPnNfYW5jaG9yIClbaV0gJiYgKGJoID0gdWRmX3JlYWRf
dGFnZ2VkKHNiLAogICAgICAgICAgICAgICAgICAgICAgICAoICgmKChzYiktPnUudWRmX3NiKSkt
PnNfYW5jaG9yIClbaV0sICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19hbmNob3IgKVtpXSwgJmlk
ZW50KSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvciA9
IChzdHJ1Y3QgQW5jaG9yVm9sRGVzY1B0ciAqKWJoLT5iX2RhdGE7CgoKICAgICAgICAgICAgICAg
ICAgICAgICAgbWFpbl9zID0gKChfX3UzMikoYW5jaG9yLT5tYWluVm9sRGVzY1NlcUV4dC5leHRM
b2NhdGlvbikpOwogICAgICAgICAgICAgICAgICAgICAgICBtYWluX2UgPSAoKF9fdTMyKShhbmNo
b3ItPm1haW5Wb2xEZXNjU2VxRXh0LmV4dExlbmd0aCkpOwogICAgICAgICAgICAgICAgICAgICAg
ICBtYWluX2UgPSBtYWluX2UgPj4gc2ItPnNfYmxvY2tzaXplX2JpdHM7CiAgICAgICAgICAgICAg
ICAgICAgICAgIG1haW5fZSArPSBtYWluX3M7CgoKICAgICAgICAgICAgICAgICAgICAgICAgcmVz
ZXJ2ZV9zID0gKChfX3UzMikoYW5jaG9yLT5yZXNlcnZlVm9sRGVzY1NlcUV4dC5leHRMb2NhdGlv
bikpOwogICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlX2UgPSAoKF9fdTMyKShhbmNob3It
PnJlc2VydmVWb2xEZXNjU2VxRXh0LmV4dExlbmd0aCkpOwogICAgICAgICAgICAgICAgICAgICAg
ICByZXNlcnZlX2UgPSByZXNlcnZlX2UgPj4gc2ItPnNfYmxvY2tzaXplX2JpdHM7CiAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc2VydmVfZSArPSByZXNlcnZlX3M7CgogICAgICAgICAgICAgICAg
ICAgICAgICB1ZGZfcmVsZWFzZV9kYXRhKGJoKTsKCgoKICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCEodWRmX3Byb2Nlc3Nfc2VxdWVuY2Uoc2IsIG1haW5fcywgbWFpbl9lLCBmaWxlc2V0KSAm
JgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVkZl9wcm9jZXNzX3NlcXVlbmNlKHNi
LCByZXNlcnZlX3MsIHJlc2VydmVfZSwgZmlsZXNldCkpKQogICAgICAgICAgICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChpID09
IHNpemVvZigoICgmKChzYiktPnUudWRmX3NiKSktPnNfYW5jaG9yICkpL3NpemVvZihpbnQpKQog
ICAgICAgIHsKICAgICAgICAgICAgICAgIHsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCI8Nz4iICJV
REYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsICJmcy91ZGYvc3VwZXIuYyIsIDEyMDYsIF9fRlVOQ1RJ
T05fXyk7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiTm8gQW5jaG9yIGJsb2NrIGZvdW5kXG4iKTsg
fTsKICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICB7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiPDc+IiAiVURGLWZzIERFQlVHICVz
OiVkOiVzOiAiLCAiZnMvdWRmL3N1cGVyLmMiLCAxMjEwLCBfX0ZVTkNUSU9OX18pOyBwcmludGtf
UnNtcF84MjdkNTgwNyAoIlVzaW5nIGFuY2hvciBpbiBibG9jayAlZFxuIiwgKCAoJigoc2IpLT51
LnVkZl9zYikpLT5zX2FuY2hvciApW2ldKTsgfTsKCiAgICAgICAgZm9yIChpPTA7IGk8KCAoJigo
c2IpLT51LnVkZl9zYikpLT5zX3BhcnRpdGlvbnMgKTsgaSsrKQogICAgICAgIHsKICAgICAgICAg
ICAgICAgIHN3aXRjaCAoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyhpKV0u
c19wYXJ0aXRpb25fdHlwZSApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgMHgxNTEyVToKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAweDIwMTJVOgog
ICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGJfYWRkciBpbm87CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghKCAoJigo
c2IpLT51LnVkZl9zYikpLT5zX2xhc3RibG9jayApKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbnRr
X1JzbXBfODI3ZDU4MDcgKCI8Nz4iICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsICJmcy91ZGYv
c3VwZXIuYyIsIDEyMjMsIF9fRlVOQ1RJT05fXyk7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiVW5h
YmxlIHRvIGRldGVybWluZSBMYXN0YmxvY2sgKEZvciBWaXJ0dWFsIFBhcnRpdGlvbilcbiIpOyB9
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb3IgKGo9MDsgajwoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9ucyApOyBq
KyspCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGogIT0gaSAmJgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0
bWFwcyApWyhpKV0uc192b2x1bWVzZXFudW0gKSA9PSAoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+
c19wYXJ0bWFwcyApWyhqKV0uc192b2x1bWVzZXFudW0gKSAmJgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19w
YXJ0bWFwcyApWyhpKV0uc19wYXJ0aXRpb25fbnVtICkgPT0gKCAoICgmKChzYiktPnUudWRmX3Ni
KSktPnNfcGFydG1hcHMgKVsoaildLnNfcGFydGl0aW9uX251bSApKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbm8ucGFydGl0aW9uUmVmZXJlbmNlTnVtID0gajsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5vLmxvZ2ljYWxCbG9ja051
bSA9ICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sYXN0YmxvY2sgKSAtCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoICgmKChzYiktPnUu
dWRmX3NiKSktPnNfcGFydG1hcHMgKVsoaildLnNfcGFydGl0aW9uX3Jvb3QgKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaiA9PSAoICgmKChz
YiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9ucyApKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIDE7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICghKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c192YXQgKSA9IHVkZl9pZ2V0KHNiLCBpbm8p
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKCAoICgmKChzYiktPnUudWRmX3NiKSkt
PnNfcGFydG1hcHMgKVsoaSldLnNfcGFydGl0aW9uX3R5cGUgKSA9PSAweDE1MTJVKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKGkpXS5zX3R5
cGVfc3BlY2lmaWMuc192aXJ0dWFsICkuc19zdGFydF9vZmZzZXQgPSAoKCAoJigoKCAoJigoc2Ip
LT51LnVkZl9zYikpLT5zX3ZhdCApKS0+dS51ZGZfaSkpLT5pX2FsbG9jX3R5cGUgKSA9PSAzID8g
KCgoICgmKCgoICgmKChzYiktPnUudWRmX3NiKSktPnNfdmF0ICkpLT51LnVkZl9pKSktPmlfZXh0
ZW5kZWRfZmUgKSA/IHNpemVvZihzdHJ1Y3QgRXh0ZW5kZWRGaWxlRW50cnkpIDogc2l6ZW9mKHN0
cnVjdCBGaWxlRW50cnkpKSArICggKCYoKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c192YXQgKSkt
PnUudWRmX2kpKS0+aV9sZW5FQXR0ciApKSA6IDApOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoaSld
LnNfdHlwZV9zcGVjaWZpYy5zX3ZpcnR1YWwgKS5zX251bV9lbnRyaWVzID0gKCggKCYoKHNiKS0+
dS51ZGZfc2IpKS0+c192YXQgKS0+aV9zaXplIC0gMzYpID4+IDI7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYg
KCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKGkpXS5zX3BhcnRpdGlvbl90
eXBlICkgPT0gMHgyMDEyVSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJo
ID0gKCh2b2lkICopMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
X3UzMiBwb3M7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0g
dWRmX2Jsb2NrX21hcCgoICgmKChzYiktPnUudWRmX3NiKSktPnNfdmF0ICksIDApOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmggPSBicmVhZF9Sc21wXzA5OWE5OTgz
KHNiLT5zX2RldiwgcG9zLCBzYi0+c19ibG9ja3NpemUpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVso
aSldLnNfdHlwZV9zcGVjaWZpYy5zX3ZpcnR1YWwgKS5zX3N0YXJ0X29mZnNldCA9CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoX191MTYpKCgoc3RydWN0
IFZpcnR1YWxBbGxvY2F0aW9uVGFibGUyMCAqKWJoLT5iX2RhdGEgKyAoKCAoJigoKCAoJigoc2Ip
LT51LnVkZl9zYikpLT5zX3ZhdCApKS0+dS51ZGZfaSkpLT5pX2FsbG9jX3R5cGUgKSA9PSAzID8g
KCgoICgmKCgoICgmKChzYiktPnUudWRmX3NiKSktPnNfdmF0ICkpLT51LnVkZl9pKSktPmlfZXh0
ZW5kZWRfZmUgKSA/IHNpemVvZihzdHJ1Y3QgRXh0ZW5kZWRGaWxlRW50cnkpIDogc2l6ZW9mKHN0
cnVjdCBGaWxlRW50cnkpKSArICggKCYoKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c192YXQgKSkt
PnUudWRmX2kpKS0+aV9sZW5FQXR0ciApKSA6IDApKS0+bGVuZ3RoSGVhZGVyKSkgKwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoICgmKCgo
ICgmKChzYiktPnUudWRmX3NiKSktPnNfdmF0ICkpLT51LnVkZl9pKSktPmlfYWxsb2NfdHlwZSAp
ID09IDMgPyAoKCggKCYoKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c192YXQgKSktPnUudWRmX2kp
KS0+aV9leHRlbmRlZF9mZSApID8gc2l6ZW9mKHN0cnVjdCBFeHRlbmRlZEZpbGVFbnRyeSkgOiBz
aXplb2Yoc3RydWN0IEZpbGVFbnRyeSkpICsgKCAoJigoKCAoJigoc2IpLT51LnVkZl9zYikpLT5z
X3ZhdCApKS0+dS51ZGZfaSkpLT5pX2xlbkVBdHRyICkpIDogMCk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFw
cyApWyhpKV0uc190eXBlX3NwZWNpZmljLnNfdmlydHVhbCApLnNfbnVtX2VudHJpZXMgPSAoKCAo
Jigoc2IpLT51LnVkZl9zYikpLT5zX3ZhdCApLT5pX3NpemUgLQogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19w
YXJ0bWFwcyApWyhpKV0uc190eXBlX3NwZWNpZmljLnNfdmlydHVhbCApLnNfc3RhcnRfb2Zmc2V0
KSA+PiAyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWRmX3JlbGVh
c2VfZGF0YShiaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBz
IClbKGkpXS5zX3BhcnRpdGlvbl9yb290ICkgPSB1ZGZfZ2V0X3BibG9jayhzYiwgMCwgaSwgMCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoICgmKChzYiktPnUudWRmX3NiKSkt
PnNfcGFydG1hcHMgKVsoaSldLnNfcGFydGl0aW9uX2xlbiApID0gKCAoICgmKChzYiktPnUudWRm
X3NiKSktPnNfcGFydG1hcHMgKVsoaW5vLnBhcnRpdGlvblJlZmVyZW5jZU51bSldLnNfcGFydGl0
aW9uX2xlbiApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgfQogICAgICAgIHJldHVybiAwOwp9CgpzdGF0aWMgdm9pZCB1ZGZfb3Blbl9sdmlkKHN0
cnVjdCBzdXBlcl9ibG9jayAqc2IpCnsKICAgICAgICBpZiAoKCAoJigoc2IpLT51LnVkZl9zYikp
LT5zX2x2aWRiaCApKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGludCBpOwogICAgICAgICAg
ICAgICAgdGltZXN0YW1wIGNwdV90aW1lOwoKICAgICAgICAgICAgICAgICggKHN0cnVjdCBMb2dp
Y2FsVm9sSW50ZWdyaXR5RGVzY0ltcFVzZSAqKSYoKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3Jp
dHlEZXNjICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+aW1w
VXNlWyggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZf
c2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPm51bU9mUGFydGl0aW9ucyAqIDIgKiBzaXplb2Yo
X191MzIpL3NpemVvZihfX3U4KV0pICktPmltcElkZW50LmlkZW50U3VmZml4WzBdID0gMHgwNFU7
CiAgICAgICAgICAgICAgICAoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2NJbXBVc2Ug
KikmKCggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZf
c2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPmltcFVzZVsoIChzdHJ1Y3QgTG9naWNhbFZvbElu
dGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICktPmJfZGF0YSAp
LT5udW1PZlBhcnRpdGlvbnMgKiAyICogc2l6ZW9mKF9fdTMyKS9zaXplb2YoX191OCldKSApLT5p
bXBJZGVudC5pZGVudFN1ZmZpeFsxXSA9IDB4MDVVOwogICAgICAgICAgICAgICAgaWYgKHVkZl90
aW1lX3RvX3N0YW1wKCZjcHVfdGltZSwgKHh0aW1lX1JzbXBfZjMxZGRmODMudHZfc2VjKSwgKHh0
aW1lX1JzbXBfZjMxZGRmODMudHZfdXNlYykpKQogICAgICAgICAgICAgICAgICAgICAgICAoIChz
dHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNf
bHZpZGJoICktPmJfZGF0YSApLT5yZWNvcmRpbmdEYXRlQW5kVGltZSA9IGNwdV90b19sZXRzKGNw
dV90aW1lKTsKICAgICAgICAgICAgICAgICggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVz
YyAqKSggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPmludGVncml0
eVR5cGUgPSAwOwoKICAgICAgICAgICAgICAgICggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5
RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPmRlc2NU
YWcuZGVzY0NSQyA9CiAgICAgICAgICAgICAgICAgICAgICAgICgoX191MTYpKHVkZl9jcmMoKGNo
YXIgKikoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRm
X3NiKSktPnNfbHZpZGJoICktPmJfZGF0YSApICsgc2l6ZW9mKHRhZyksICgoX191MTYpKCggKHN0
cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19s
dmlkYmggKS0+Yl9kYXRhICktPmRlc2NUYWcuZGVzY0NSQ0xlbmd0aCkpLCAwKSkpOwoKCiAgICAg
ICAgICAgICAgICAoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2MgKikoICgmKChzYikt
PnUudWRmX3NiKSktPnNfbHZpZGJoICktPmJfZGF0YSApLT5kZXNjVGFnLnRhZ0NoZWNrc3VtID0g
MDsKICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPDE2OyBpKyspCiAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChpICE9IDQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoc3Ry
dWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2x2
aWRiaCApLT5iX2RhdGEgKS0+ZGVzY1RhZy50YWdDaGVja3N1bSArPQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKChfX3U4ICopJigoIChzdHJ1Y3QgTG9naWNhbFZvbElu
dGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICktPmJfZGF0YSAp
LT5kZXNjVGFnKSlbaV07CgogICAgICAgICAgICAgICAgbWFya19idWZmZXJfZGlydHlfUnNtcF8z
MzU3YmViYygoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICkpOwogICAgICAgIH0KfQoK
c3RhdGljIHZvaWQgdWRmX2Nsb3NlX2x2aWQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKewogICAg
ICAgIGlmICgoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICkgJiYKICAgICAgICAgICAg
ICAgICggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZf
c2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPmludGVncml0eVR5cGUgPT0gMCkKICAgICAgICB7
CiAgICAgICAgICAgICAgICBpbnQgaTsKICAgICAgICAgICAgICAgIHRpbWVzdGFtcCBjcHVfdGlt
ZTsKCiAgICAgICAgICAgICAgICAoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2NJbXBV
c2UgKikmKCggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPmltcFVzZVsoIChzdHJ1Y3QgTG9naWNhbFZv
bEludGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICktPmJfZGF0
YSApLT5udW1PZlBhcnRpdGlvbnMgKiAyICogc2l6ZW9mKF9fdTMyKS9zaXplb2YoX191OCldKSAp
LT5pbXBJZGVudC5pZGVudFN1ZmZpeFswXSA9IDB4MDRVOwogICAgICAgICAgICAgICAgKCAoc3Ry
dWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjSW1wVXNlICopJigoIChzdHJ1Y3QgTG9naWNhbFZv
bEludGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICktPmJfZGF0
YSApLT5pbXBVc2VbKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjICopKCAoJigoc2Ip
LT51LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+bnVtT2ZQYXJ0aXRpb25zICogMiAq
IHNpemVvZihfX3UzMikvc2l6ZW9mKF9fdTgpXSkgKS0+aW1wSWRlbnQuaWRlbnRTdWZmaXhbMV0g
PSAweDA1VTsKICAgICAgICAgICAgICAgIGlmICh1ZGZfdGltZV90b19zdGFtcCgmY3B1X3RpbWUs
ICh4dGltZV9Sc21wX2YzMWRkZjgzLnR2X3NlYyksICh4dGltZV9Sc21wX2YzMWRkZjgzLnR2X3Vz
ZWMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3Jp
dHlEZXNjICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+cmVj
b3JkaW5nRGF0ZUFuZFRpbWUgPSBjcHVfdG9fbGV0cyhjcHVfdGltZSk7CiAgICAgICAgICAgICAg
ICBpZiAoMHgwMjAxID4gKChfX3UxNikoKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNj
SW1wVXNlICopJigoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2MgKikoICgmKChzYikt
PnUudWRmX3NiKSktPnNfbHZpZGJoICktPmJfZGF0YSApLT5pbXBVc2VbKCAoc3RydWN0IExvZ2lj
YWxWb2xJbnRlZ3JpdHlEZXNjICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2x2aWRiaCApLT5i
X2RhdGEgKS0+bnVtT2ZQYXJ0aXRpb25zICogMiAqIHNpemVvZihfX3UzMikvc2l6ZW9mKF9fdTgp
XSkgKS0+bWF4VURGV3JpdGVSZXYpKSkKICAgICAgICAgICAgICAgICAgICAgICAgKCAoc3RydWN0
IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjSW1wVXNlICopJigoIChzdHJ1Y3QgTG9naWNhbFZvbElu
dGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICktPmJfZGF0YSAp
LT5pbXBVc2VbKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjICopKCAoJigoc2IpLT51
LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+bnVtT2ZQYXJ0aXRpb25zICogMiAqIHNp
emVvZihfX3UzMikvc2l6ZW9mKF9fdTgpXSkgKS0+bWF4VURGV3JpdGVSZXYgPSAoKF9fdTE2KSgw
eDAyMDEpKTsKICAgICAgICAgICAgICAgIGlmICgoICgmKChzYiktPnUudWRmX3NiKSktPnNfdWRm
cmV2ICkgPiAoKF9fdTE2KSgoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2NJbXBVc2Ug
KikmKCggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZf
c2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPmltcFVzZVsoIChzdHJ1Y3QgTG9naWNhbFZvbElu
dGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICktPmJfZGF0YSAp
LT5udW1PZlBhcnRpdGlvbnMgKiAyICogc2l6ZW9mKF9fdTMyKS9zaXplb2YoX191OCldKSApLT5t
aW5VREZSZWFkUmV2KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICggKHN0cnVjdCBMb2dpY2Fs
Vm9sSW50ZWdyaXR5RGVzY0ltcFVzZSAqKSYoKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlE
ZXNjICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+aW1wVXNl
WyggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZfc2Ip
KS0+c19sdmlkYmggKS0+Yl9kYXRhICktPm51bU9mUGFydGl0aW9ucyAqIDIgKiBzaXplb2YoX191
MzIpL3NpemVvZihfX3U4KV0pICktPm1pblVERlJlYWRSZXYgPSAoKF9fdTE2KSgoICgmKChzYikt
PnUudWRmX3NiKSktPnNfdWRmcmV2ICkpKTsKICAgICAgICAgICAgICAgIGlmICgoICgmKChzYikt
PnUudWRmX3NiKSktPnNfdWRmcmV2ICkgPiAoKF9fdTE2KSgoIChzdHJ1Y3QgTG9naWNhbFZvbElu
dGVncml0eURlc2NJbXBVc2UgKikmKCggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAq
KSggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPmltcFVzZVsoIChz
dHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNf
bHZpZGJoICktPmJfZGF0YSApLT5udW1PZlBhcnRpdGlvbnMgKiAyICogc2l6ZW9mKF9fdTMyKS9z
aXplb2YoX191OCldKSApLT5taW5VREZXcml0ZVJldikpKQogICAgICAgICAgICAgICAgICAgICAg
ICAoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2NJbXBVc2UgKikmKCggKHN0cnVjdCBM
b2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmgg
KS0+Yl9kYXRhICktPmltcFVzZVsoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2MgKiko
ICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICktPmJfZGF0YSApLT5udW1PZlBhcnRpdGlv
bnMgKiAyICogc2l6ZW9mKF9fdTMyKS9zaXplb2YoX191OCldKSApLT5taW5VREZXcml0ZVJldiA9
ICgoX191MTYpKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c191ZGZyZXYgKSkpOwogICAgICAgICAg
ICAgICAgKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjICopKCAoJigoc2IpLT51LnVk
Zl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+aW50ZWdyaXR5VHlwZSA9IDE7CgogICAgICAg
ICAgICAgICAgKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjICopKCAoJigoc2IpLT51
LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+ZGVzY1RhZy5kZXNjQ1JDID0KICAgICAg
ICAgICAgICAgICAgICAgICAgKChfX3UxNikodWRmX2NyYygoY2hhciAqKSggKHN0cnVjdCBMb2dp
Y2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKS0+
Yl9kYXRhICkgKyBzaXplb2YodGFnKSwgKChfX3UxNikoKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRl
Z3JpdHlEZXNjICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+
ZGVzY1RhZy5kZXNjQ1JDTGVuZ3RoKSksIDApKSk7CgoKICAgICAgICAgICAgICAgICggKHN0cnVj
dCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlk
YmggKS0+Yl9kYXRhICktPmRlc2NUYWcudGFnQ2hlY2tzdW0gPSAwOwogICAgICAgICAgICAgICAg
Zm9yIChpPTA7IGk8MTY7IGkrKykKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgIT0gNCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVn
cml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICktPmJfZGF0YSApLT5k
ZXNjVGFnLnRhZ0NoZWNrc3VtICs9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoKF9fdTggKikmKCggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYo
KHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPmRlc2NUYWcpKVtpXTsKCiAg
ICAgICAgICAgICAgICBtYXJrX2J1ZmZlcl9kaXJ0eV9Sc21wXzMzNTdiZWJjKCggKCYoKHNiKS0+
dS51ZGZfc2IpKS0+c19sdmlkYmggKSk7CiAgICAgICAgfQp9CiMgMTM1MCAiZnMvdWRmL3N1cGVy
LmMiCnN0YXRpYyBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKgp1ZGZfcmVhZF9zdXBlcihzdHJ1Y3Qgc3Vw
ZXJfYmxvY2sgKnNiLCB2b2lkICpvcHRpb25zLCBpbnQgc2lsZW50KQp7CiAgICAgICAgaW50IGk7
CiAgICAgICAgc3RydWN0IGlub2RlICppbm9kZT0oKHZvaWQgKikwKTsKICAgICAgICBzdHJ1Y3Qg
dWRmX29wdGlvbnMgdW9wdDsKICAgICAgICBsYl9hZGRyIHJvb3RkaXIsIGZpbGVzZXQ7CgogICAg
ICAgIHVvcHQuZmxhZ3MgPSAoMSA8PCAzKTsKICAgICAgICB1b3B0LnVpZCA9IC0xOwogICAgICAg
IHVvcHQuZ2lkID0gLTE7CiAgICAgICAgdW9wdC51bWFzayA9IDA7CgogICAgICAgIG1lbXNldCgo
Jigoc2IpLT51LnVkZl9zYikpLCAweDAwLCBzaXplb2Yoc3RydWN0IHVkZl9zYl9pbmZvKSk7CgoK
ICAgICAgICBzYi0+c19mbGFncyB8PSAxOwoKCiAgICAgICAgaWYgKCF1ZGZfcGFyc2Vfb3B0aW9u
cygoY2hhciAqKW9wdGlvbnMsICZ1b3B0KSkKICAgICAgICAgICAgICAgIGdvdG8gZXJyb3Jfb3V0
OwoKICAgICAgICBpZiAodW9wdC5mbGFncyAmICgxIDw8IDEwKSAmJgogICAgICAgICAgICB1b3B0
LmZsYWdzICYgKDEgPDwgOSkpCiAgICAgICAgewogICAgICAgICAgICAgICAgdWRmX2Vycm9yKHNi
LCAidWRmX3JlYWRfc3VwZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAidXRmOCBjYW5ub3Qg
YmUgY29tYmluZWQgd2l0aCBpb2NoYXJzZXRcbiIpOwogICAgICAgICAgICAgICAgZ290byBlcnJv
cl9vdXQ7CiAgICAgICAgfQoKICAgICAgICBpZiAoKHVvcHQuZmxhZ3MgJiAoMSA8PCA5KSkgJiYg
IXVvcHQubmxzX21hcCkKICAgICAgICB7CiAgICAgICAgICAgICAgICB1b3B0Lm5sc19tYXAgPSBs
b2FkX25sc19kZWZhdWx0X1JzbXBfNzY4ZDczMjIoKTsKICAgICAgICAgICAgICAgIGlmICghdW9w
dC5ubHNfbWFwKQogICAgICAgICAgICAgICAgICAgICAgICB1b3B0LmZsYWdzICY9IH4oMSA8PCA5
KTsKICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgeyBwcmludGtf
UnNtcF84MjdkNTgwNyAoIjw3PiIgIlVERi1mcyBERUJVRyAlczolZDolczogIiwgImZzL3VkZi9z
dXBlci5jIiwgMTM4NiwgX19GVU5DVElPTl9fKTsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCJVc2lu
ZyBkZWZhdWx0IE5MUyBtYXBcbiIpOyB9OwogICAgICAgIH0KCiAgICAgICAgaWYgKCEodW9wdC5m
bGFncyAmICgxIDw8IDkpKSkKICAgICAgICAgICAgICAgIHVvcHQuZmxhZ3MgfD0gKDEgPDwgMTAp
OwoKICAgICAgICBmaWxlc2V0LmxvZ2ljYWxCbG9ja051bSA9IDB4RkZGRkZGRkY7CiAgICAgICAg
ZmlsZXNldC5wYXJ0aXRpb25SZWZlcmVuY2VOdW0gPSAweEZGRkY7CgogICAgICAgICgmKChzYikt
PnUudWRmX3NiKSktPnNfZmxhZ3MgPSB1b3B0LmZsYWdzOwogICAgICAgICgmKChzYiktPnUudWRm
X3NiKSktPnNfdWlkID0gdW9wdC51aWQ7CiAgICAgICAgKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19n
aWQgPSB1b3B0LmdpZDsKICAgICAgICAoJigoc2IpLT51LnVkZl9zYikpLT5zX3VtYXNrID0gdW9w
dC51bWFzazsKICAgICAgICAoJigoc2IpLT51LnVkZl9zYikpLT5zX25sc19tYXAgPSB1b3B0Lm5s
c19tYXA7CgoKICAgICAgICBpZiAoIXVkZl9zZXRfYmxvY2tzaXplKHNiLCB1b3B0LmJsb2Nrc2l6
ZSkpCiAgICAgICAgICAgICAgICBnb3RvIGVycm9yX291dDsKCiAgICAgICAgaWYgKCB1b3B0LnNl
c3Npb24gPT0gMHhGRkZGRkZGRiApCiAgICAgICAgICAgICAgICAoICgmKChzYiktPnUudWRmX3Ni
KSktPnNfc2Vzc2lvbiApID0gdWRmX2dldF9sYXN0X3Nlc3Npb24oc2IpOwogICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19zZXNzaW9uICkgPSB1b3B0
LnNlc3Npb247CgogICAgICAgIHsgcHJpbnRrX1JzbXBfODI3ZDU4MDcgKCI8Nz4iICJVREYtZnMg
REVCVUcgJXM6JWQ6JXM6ICIsICJmcy91ZGYvc3VwZXIuYyIsIDE0MTAsIF9fRlVOQ1RJT05fXyk7
IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiTXVsdGktc2Vzc2lvbj0lZFxuIiwgKCAoJigoc2IpLT51
LnVkZl9zYikpLT5zX3Nlc3Npb24gKSk7IH07CgogICAgICAgIGlmICggdW9wdC5sYXN0YmxvY2sg
PT0gMHhGRkZGRkZGRiApCiAgICAgICAgICAgICAgICAoICgmKChzYiktPnUudWRmX3NiKSktPnNf
bGFzdGJsb2NrICkgPSB1ZGZfZ2V0X2xhc3RfYmxvY2soc2IpOwogICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sYXN0YmxvY2sgKSA9IHVvcHQubGFz
dGJsb2NrOwoKICAgICAgICAoICgmKChzYiktPnUudWRmX3NiKSktPnNfbGFzdGJsb2NrICkgPSB1
ZGZfZmluZF9hbmNob3Ioc2IsIHVvcHQuYW5jaG9yLCAoICgmKChzYiktPnUudWRmX3NiKSktPnNf
bGFzdGJsb2NrICkpOwoKICAgICAgICB7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgiPDc+IiAiVURG
LWZzIERFQlVHICVzOiVkOiVzOiAiLCAiZnMvdWRmL3N1cGVyLmMiLCAxNDE5LCBfX0ZVTkNUSU9O
X18pOyBwcmludGtfUnNtcF84MjdkNTgwNyAoIkxhc3RibG9jaz0lZFxuIiwgKCAoJigoc2IpLT51
LnVkZl9zYikpLT5zX2xhc3RibG9jayApKTsgfTsKCiAgICAgICAgaWYgKHVkZl9jaGVja192YWxp
ZChzYiwgdW9wdC5ub3Zycywgc2lsZW50KSkKICAgICAgICB7CiAgICAgICAgICAgICAgICBwcmlu
dGtfUnNtcF84MjdkNTgwNygiVURGLWZzOiBObyBWUlMgZm91bmRcbiIpOwogICAgICAgICAgICAg
ICAgZ290byBlcnJvcl9vdXQ7CiAgICAgICAgfQoKCiAgICAgICAgc2ItPnNfb3AgPSAmdWRmX3Ni
X29wczsKICAgICAgICBzYi0+ZHFfb3AgPSAoKHZvaWQgKikwKTsKICAgICAgICBzYi0+c19kaXJ0
ID0gMDsKICAgICAgICBzYi0+c19tYWdpYyA9IDB4MTUwMTMzNDY7CgogICAgICAgIGlmICh1ZGZf
bG9hZF9wYXJ0aXRpb24oc2IsICZmaWxlc2V0KSkKICAgICAgICB7CiAgICAgICAgICAgICAgICBw
cmludGtfUnNtcF84MjdkNTgwNygiVURGLWZzOiBObyBwYXJ0aXRpb24gZm91bmQgKDEpXG4iKTsK
ICAgICAgICAgICAgICAgIGdvdG8gZXJyb3Jfb3V0OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAo
ICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZpZGJoICkgKQogICAgICAgIHsKICAgICAgICAgICAg
ICAgIF9fdTE2IG1pblVERlJlYWRSZXYgPSAoKF9fdTE2KSgoIChzdHJ1Y3QgTG9naWNhbFZvbElu
dGVncml0eURlc2NJbXBVc2UgKikmKCggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAq
KSggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPmltcFVzZVsoIChz
dHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNf
bHZpZGJoICktPmJfZGF0YSApLT5udW1PZlBhcnRpdGlvbnMgKiAyICogc2l6ZW9mKF9fdTMyKS9z
aXplb2YoX191OCldKSApLT5taW5VREZSZWFkUmV2KSk7CiAgICAgICAgICAgICAgICBfX3UxNiBt
aW5VREZXcml0ZVJldiA9ICgoX191MTYpKCggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVz
Y0ltcFVzZSAqKSYoKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjICopKCAoJigoc2Ip
LT51LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+aW1wVXNlWyggKHN0cnVjdCBMb2dp
Y2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKS0+
Yl9kYXRhICktPm51bU9mUGFydGl0aW9ucyAqIDIgKiBzaXplb2YoX191MzIpL3NpemVvZihfX3U4
KV0pICktPm1pblVERldyaXRlUmV2KSk7CgoKICAgICAgICAgICAgICAgIGlmIChtaW5VREZSZWFk
UmV2ID4gMHgwMjAxKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBw
cmludGtfUnNtcF84MjdkNTgwNygiVURGLWZzOiBtaW5VREZSZWFkUmV2PSV4IChtYXggaXMgJXgp
XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKHN0cnVjdCBMb2dpY2FsVm9s
SW50ZWdyaXR5RGVzY0ltcFVzZSAqKSYoKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNj
ICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+aW1wVXNlWygg
KHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSggKCYoKHNiKS0+dS51ZGZfc2IpKS0+
c19sdmlkYmggKS0+Yl9kYXRhICktPm51bU9mUGFydGl0aW9ucyAqIDIgKiBzaXplb2YoX191MzIp
L3NpemVvZihfX3U4KV0pICktPm1pblVERlJlYWRSZXYsIDB4MDIwMSk7CiAgICAgICAgICAgICAg
ICAgICAgICAgIGdvdG8gZXJyb3Jfb3V0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgZWxzZSBpZiAobWluVURGV3JpdGVSZXYgPiAweDAyMDEpCiAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIHNiLT5zX2ZsYWdzIHw9IDE7CiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3VkZnJldiApID0gbWlu
VURGV3JpdGVSZXY7CgogICAgICAgICAgICAgICAgaWYgKG1pblVERlJlYWRSZXYgPj0gMHgwMjAw
KQogICAgICAgICAgICAgICAgICAgICAgICAoICgmKChzYiktPnUudWRmX3NiKSktPnNfZmxhZ3Mg
fD0gKCAxIDw8ICgwKSApICk7CiAgICAgICAgICAgICAgICBpZiAobWluVURGUmVhZFJldiA+PSAw
eDAyMDApCiAgICAgICAgICAgICAgICAgICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19m
bGFncyB8PSAoIDEgPDwgKDEpICkgKTsKICAgICAgICB9CgogICAgICAgIGlmICggISggKCYoKHNi
KS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb25zICkgKQogICAgICAgIHsKICAgICAgICAgICAgICAg
IHByaW50a19Sc21wXzgyN2Q1ODA3KCJVREYtZnM6IE5vIHBhcnRpdGlvbiBmb3VuZCAoMilcbiIp
OwogICAgICAgICAgICAgICAgZ290byBlcnJvcl9vdXQ7CiAgICAgICAgfQoKICAgICAgICBpZiAo
IHVkZl9maW5kX2ZpbGVzZXQoc2IsICZmaWxlc2V0LCAmcm9vdGRpcikgKQogICAgICAgIHsKICAg
ICAgICAgICAgICAgIHByaW50a19Sc21wXzgyN2Q1ODA3KCJVREYtZnM6IE5vIGZpbGVzZXQgZm91
bmRcbiIpOwogICAgICAgICAgICAgICAgZ290byBlcnJvcl9vdXQ7CiAgICAgICAgfQoKICAgICAg
ICBpZiAoIXNpbGVudCkKICAgICAgICB7CiAgICAgICAgICAgICAgICB0aW1lc3RhbXAgdHM7CiAg
ICAgICAgICAgICAgICB1ZGZfdGltZV90b19zdGFtcCgmdHMsICggKCYoKHNiKS0+dS51ZGZfc2Ip
KS0+c19yZWNvcmR0aW1lICksIDApOwogICAgICAgICAgICAgICAgcHJpbnRrX1JzbXBfODI3ZDU4
MDcgKCI8Nj4iICJVREYtZnMgSU5GTyAiICJVREYgJXMtJXMgKCVzKSBNb3VudGluZyB2b2x1bWUg
JyVzJywgdGltZXN0YW1wICUwNHUvJTAydS8lMDJ1ICUwMnU6JTAydSAoJXgpXG4iLCAiMC45LjQu
MSIsIDAgPyAicnciIDogInJvIiwgIjIwMDEvMDYvMTMiLCAoICgmKChzYiktPnUudWRmX3NiKSkt
PnNfdm9saWRlbnQgKSwgdHMueWVhciwgdHMubW9udGgsIHRzLmRheSwgdHMuaG91ciwgdHMubWlu
dXRlLCB0cy50eXBlQW5kVGltZXpvbmUpOzsKCgoKICAgICAgICB9CiAgICAgICAgaWYgKCEoc2It
PnNfZmxhZ3MgJiAxKSkKICAgICAgICAgICAgICAgIHVkZl9vcGVuX2x2aWQoc2IpOwoKCgoKICAg
ICAgICBpbm9kZSA9IHVkZl9pZ2V0KHNiLCByb290ZGlyKTsKICAgICAgICBpZiAoIWlub2RlKQog
ICAgICAgIHsKICAgICAgICAgICAgICAgIHByaW50a19Sc21wXzgyN2Q1ODA3KCJVREYtZnM6IEVy
cm9yIGluIHVkZl9pZ2V0LCBibG9jaz0lZCwgcGFydGl0aW9uPSVkXG4iLAogICAgICAgICAgICAg
ICAgICAgICAgICByb290ZGlyLmxvZ2ljYWxCbG9ja051bSwgcm9vdGRpci5wYXJ0aXRpb25SZWZl
cmVuY2VOdW0pOwogICAgICAgICAgICAgICAgZ290byBlcnJvcl9vdXQ7CiAgICAgICAgfQoKCiAg
ICAgICAgc2ItPnNfcm9vdCA9IGRfYWxsb2Nfcm9vdF9Sc21wX2UyMjRjNGM1KGlub2RlKTsKICAg
ICAgICBpZiAoIXNiLT5zX3Jvb3QpCiAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbnRrX1Jz
bXBfODI3ZDU4MDcoIlVERi1mczogQ291bGRuJ3QgYWxsb2NhdGUgcm9vdCBkZW50cnlcbiIpOwog
ICAgICAgICAgICAgICAgaXB1dF9Sc21wXzVlZGJhNjJkKGlub2RlKTsKICAgICAgICAgICAgICAg
IGdvdG8gZXJyb3Jfb3V0OwogICAgICAgIH0KICAgICAgICBzYi0+c19tYXhieXRlcyA9IH4wVUxM
OwogICAgICAgIHJldHVybiBzYjsKCmVycm9yX291dDoKICAgICAgICBpZiAoKCAoJigoc2IpLT51
LnVkZl9zYikpLT5zX3ZhdCApKQogICAgICAgICAgICAgICAgaXB1dF9Sc21wXzVlZGJhNjJkKCgg
KCYoKHNiKS0+dS51ZGZfc2IpKS0+c192YXQgKSk7CiAgICAgICAgaWYgKCggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c19wYXJ0aXRpb25zICkpCiAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKCgg
KCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2Ip
KS0+c19wYXJ0aXRpb24gKSldLnNfcGFydGl0aW9uX2ZsYWdzICkgJiAweDAwMDIpCiAgICAgICAg
ICAgICAgICAgICAgICAgIGlwdXRfUnNtcF81ZWRiYTYyZCgoICgmKChzYiktPnUudWRmX3NiKSkt
PnNfcGFydG1hcHMgKVsoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9uICldLnNfdXNw
YWNlLnNfdGFibGUpOwogICAgICAgICAgICAgICAgaWYgKCggKCAoJigoc2IpLT51LnVkZl9zYikp
LT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNf
cGFydGl0aW9uX2ZsYWdzICkgJiAweDAwMDgpCiAgICAgICAgICAgICAgICAgICAgICAgIGlwdXRf
UnNtcF81ZWRiYTYyZCgoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoICgmKChz
YiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9uICldLnNfZnNwYWNlLnNfdGFibGUpOwogICAgICAg
ICAgICAgICAgaWYgKCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYo
KHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNfcGFydGl0aW9uX2ZsYWdzICkgJiAw
eDAwMDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaT0w
OyBpPCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNfdXNwYWNlLnNfYml0bWFwLT5zX25yX2dyb3VwcyAp
OyBpKyspCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoKCAoJigo
c2IpLT51LnVkZl9zYikpLT5zX3BhcnRpdGlvbiApKV0uc191c3BhY2Uuc19iaXRtYXAtPnNfYmxv
Y2tfYml0bWFwW2ldICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
ZGZfcmVsZWFzZV9kYXRhKCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCgg
KCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNfdXNwYWNlLnNfYml0bWFwLT5z
X2Jsb2NrX2JpdG1hcFtpXSApKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICAgICBrZnJlZV9Sc21wXzAzN2EwY2JhKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+
c19wYXJ0bWFwcyApWyggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKV0uc191c3Bh
Y2Uuc19iaXRtYXApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCggKCAo
Jigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+
c19wYXJ0aXRpb24gKSldLnNfcGFydGl0aW9uX2ZsYWdzICkgJiAweDAwMDQpCiAgICAgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPCggKCAoJigoc2IpLT51
LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRp
b24gKSldLnNfZnNwYWNlLnNfYml0bWFwLT5zX25yX2dyb3VwcyApOyBpKyspCiAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKCAoICgm
KChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoKCAoJigoc2IpLT51LnVkZl9zYikpLT5z
X3BhcnRpdGlvbiApKV0uc19mc3BhY2Uuc19iaXRtYXAtPnNfYmxvY2tfYml0bWFwW2ldICkpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ZGZfcmVsZWFzZV9kYXRhKCgg
KCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2Ip
KS0+c19wYXJ0aXRpb24gKSldLnNfZnNwYWNlLnNfYml0bWFwLT5zX2Jsb2NrX2JpdG1hcFtpXSAp
KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBrZnJl
ZV9Sc21wXzAzN2EwY2JhKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyggKCYo
KHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKV0uc19mc3BhY2Uuc19iaXRtYXApOwogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCggKCAoJigoc2IpLT51LnVkZl9zYikp
LT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNf
cGFydGl0aW9uX3R5cGUgKSA9PSAweDE1MjJVKQogICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBmb3IgKGk9MDsgaTw0OyBpKyspCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdWRmX3JlbGVhc2VfZGF0YSgoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0
bWFwcyApWygoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9uICkpXS5zX3R5cGVfc3Bl
Y2lmaWMuc19zcGFyaW5nICkuc19zcGFyX21hcFtpXSk7CiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgfQoKICAgICAgICBpZiAoKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2ZsYWdzICYgKCAxIDw8
ICg5KSApICkpCiAgICAgICAgICAgICAgICB1bmxvYWRfbmxzX1JzbXBfZGExY2U5OWQoKCYoKHNi
KS0+dS51ZGZfc2IpKS0+c19ubHNfbWFwKTsKCiAgICAgICAgaWYgKCEoc2ItPnNfZmxhZ3MgJiAx
KSkKICAgICAgICAgICAgICAgIHVkZl9jbG9zZV9sdmlkKHNiKTsKICAgICAgICB1ZGZfcmVsZWFz
ZV9kYXRhKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKSk7CiAgICAgICAgeyBpZiAo
KCYoKHNiKS0+dS51ZGZfc2IpKSkgeyBpZiAoKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRt
YXBzICkpIGtmcmVlX1JzbXBfMDM3YTBjYmEoKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRt
YXBzICkpOyAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKSA9ICgodm9pZCAqKTAp
OyB9fTsKICAgICAgICByZXR1cm4gKCh2b2lkICopMCk7Cn0KCnZvaWQgdWRmX2Vycm9yKHN0cnVj
dCBzdXBlcl9ibG9jayAqc2IsIGNvbnN0IGNoYXIgKmZ1bmN0aW9uLAogICAgICAgIGNvbnN0IGNo
YXIgKmZtdCwgLi4uKQp7CiAgICAgICAgdmFfbGlzdCBhcmdzOwoKICAgICAgICBpZiAoIShzYi0+
c19mbGFncyAmIDEpKQogICAgICAgIHsKCiAgICAgICAgICAgICAgICBzYi0+c19kaXJ0ID0gMTsK
ICAgICAgICB9CiAgICAgICAgX19idWlsdGluX3N0ZGFyZ19zdGFydCgoYXJncyksZm10KTsKICAg
ICAgICB2c3ByaW50Zl9Sc21wXzk1NGNiYjI2KGVycm9yX2J1ZiwgZm10LCBhcmdzKTsKICAgICAg
ICBfX2J1aWx0aW5fdmFfZW5kKGFyZ3MpOwogICAgICAgIHByaW50a19Sc21wXzgyN2Q1ODA3ICgi
PDI+IiAiVURGLWZzIGVycm9yIChkZXZpY2UgJXMpOiAlczogJXNcbiIsCiAgICAgICAgICAgICAg
ICBiZGV2bmFtZV9Sc21wX2QwNDc4MmU2KHNiLT5zX2RldiksIGZ1bmN0aW9uLCBlcnJvcl9idWYp
Owp9Cgp2b2lkIHVkZl93YXJuaW5nKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGNvbnN0IGNoYXIg
KmZ1bmN0aW9uLAogICAgICAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKQp7CiAgICAgICAgdmFfbGlz
dCBhcmdzOwoKICAgICAgICBfX2J1aWx0aW5fc3RkYXJnX3N0YXJ0KChhcmdzKSxmbXQpOwogICAg
ICAgIHZzcHJpbnRmX1JzbXBfOTU0Y2JiMjYoZXJyb3JfYnVmLCBmbXQsIGFyZ3MpOwogICAgICAg
IF9fYnVpbHRpbl92YV9lbmQoYXJncyk7CiAgICAgICAgcHJpbnRrX1JzbXBfODI3ZDU4MDcoIjw0
PiIgIlVERi1mcyB3YXJuaW5nIChkZXZpY2UgJXMpOiAlczogJXNcbiIsCiAgICAgICAgICAgICAg
ICBiZGV2bmFtZV9Sc21wX2QwNDc4MmU2KHNiLT5zX2RldiksIGZ1bmN0aW9uLCBlcnJvcl9idWYp
Owp9CiMgMTU5NiAiZnMvdWRmL3N1cGVyLmMiCnN0YXRpYyB2b2lkCnVkZl9wdXRfc3VwZXIoc3Ry
dWN0IHN1cGVyX2Jsb2NrICpzYikKewogICAgICAgIGludCBpOwoKICAgICAgICBpZiAoKCAoJigo
c2IpLT51LnVkZl9zYikpLT5zX3ZhdCApKQogICAgICAgICAgICAgICAgaXB1dF9Sc21wXzVlZGJh
NjJkKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c192YXQgKSk7CiAgICAgICAgaWYgKCggKCYoKHNi
KS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb25zICkpCiAgICAgICAgewogICAgICAgICAgICAgICAg
aWYgKCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNfcGFydGl0aW9uX2ZsYWdzICkgJiAweDAwMDIpCiAg
ICAgICAgICAgICAgICAgICAgICAgIGlwdXRfUnNtcF81ZWRiYTYyZCgoICgmKChzYiktPnUudWRm
X3NiKSktPnNfcGFydG1hcHMgKVsoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9uICld
LnNfdXNwYWNlLnNfdGFibGUpOwogICAgICAgICAgICAgICAgaWYgKCggKCAoJigoc2IpLT51LnVk
Zl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24g
KSldLnNfcGFydGl0aW9uX2ZsYWdzICkgJiAweDAwMDgpCiAgICAgICAgICAgICAgICAgICAgICAg
IGlwdXRfUnNtcF81ZWRiYTYyZCgoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVso
ICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9uICldLnNfZnNwYWNlLnNfdGFibGUpOwog
ICAgICAgICAgICAgICAgaWYgKCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClb
KCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNfcGFydGl0aW9uX2ZsYWdz
ICkgJiAweDAwMDEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciAoaT0wOyBpPCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNi
KS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNfdXNwYWNlLnNfYml0bWFwLT5zX25yX2dy
b3VwcyApOyBpKyspCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVso
KCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRpdGlvbiApKV0uc191c3BhY2Uuc19iaXRtYXAt
PnNfYmxvY2tfYml0bWFwW2ldICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1ZGZfcmVsZWFzZV9kYXRhKCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBz
IClbKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNfdXNwYWNlLnNfYml0
bWFwLT5zX2Jsb2NrX2JpdG1hcFtpXSApKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICAgICBrZnJlZV9Sc21wXzAzN2EwY2JhKCggKCYoKHNiKS0+dS51ZGZf
c2IpKS0+c19wYXJ0bWFwcyApWyggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKV0u
c191c3BhY2Uuc19iaXRtYXApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYg
KCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZf
c2IpKS0+c19wYXJ0aXRpb24gKSldLnNfcGFydGl0aW9uX2ZsYWdzICkgJiAweDAwMDQpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaT0wOyBpPCggKCAoJigo
c2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19w
YXJ0aXRpb24gKSldLnNfZnNwYWNlLnNfYml0bWFwLT5zX25yX2dyb3VwcyApOyBpKyspCiAgICAg
ICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
KCAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoKCAoJigoc2IpLT51LnVkZl9z
YikpLT5zX3BhcnRpdGlvbiApKV0uc19mc3BhY2Uuc19iaXRtYXAtPnNfYmxvY2tfYml0bWFwW2ld
ICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ZGZfcmVsZWFzZV9k
YXRhKCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51
ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNfZnNwYWNlLnNfYml0bWFwLT5zX2Jsb2NrX2JpdG1h
cFtpXSApKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICBrZnJlZV9Sc21wXzAzN2EwY2JhKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyAp
WyggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKV0uc19mc3BhY2Uuc19iaXRtYXAp
OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCggKCAoJigoc2IpLT51LnVk
Zl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24g
KSldLnNfcGFydGl0aW9uX3R5cGUgKSA9PSAweDE1MjJVKQogICAgICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGk9MDsgaTw0OyBpKyspCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdWRmX3JlbGVhc2VfZGF0YSgoICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+
c19wYXJ0bWFwcyApWygoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9uICkpXS5zX3R5
cGVfc3BlY2lmaWMuc19zcGFyaW5nICkuc19zcGFyX21hcFtpXSk7CiAgICAgICAgICAgICAgICB9
CiAgICAgICAgfQoKICAgICAgICBpZiAoKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2ZsYWdzICYg
KCAxIDw8ICg5KSApICkpCiAgICAgICAgICAgICAgICB1bmxvYWRfbmxzX1JzbXBfZGExY2U5OWQo
KCYoKHNiKS0+dS51ZGZfc2IpKS0+c19ubHNfbWFwKTsKCiAgICAgICAgaWYgKCEoc2ItPnNfZmxh
Z3MgJiAxKSkKICAgICAgICAgICAgICAgIHVkZl9jbG9zZV9sdmlkKHNiKTsKICAgICAgICB1ZGZf
cmVsZWFzZV9kYXRhKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKSk7CiAgICAgICAg
eyBpZiAoKCYoKHNiKS0+dS51ZGZfc2IpKSkgeyBpZiAoKCAoJigoc2IpLT51LnVkZl9zYikpLT5z
X3BhcnRtYXBzICkpIGtmcmVlX1JzbXBfMDM3YTBjYmEoKCAoJigoc2IpLT51LnVkZl9zYikpLT5z
X3BhcnRtYXBzICkpOyAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKSA9ICgodm9p
ZCAqKTApOyB9fTsKfQojIDE2NTYgImZzL3VkZi9zdXBlci5jIgpzdGF0aWMgaW50CnVkZl9zdGF0
ZnMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IHN0YXRmcyAqYnVmKQp7CiAgICAgICAg
YnVmLT5mX3R5cGUgPSAweDE1MDEzMzQ2OwogICAgICAgIGJ1Zi0+Zl9ic2l6ZSA9IHNiLT5zX2Js
b2Nrc2l6ZTsKICAgICAgICBidWYtPmZfYmxvY2tzID0gKCAoICgmKChzYiktPnUudWRmX3NiKSkt
PnNfcGFydG1hcHMgKVsoKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRpdGlvbiApKV0uc19w
YXJ0aXRpb25fbGVuICk7CiAgICAgICAgYnVmLT5mX2JmcmVlID0gdWRmX2NvdW50X2ZyZWUoc2Ip
OwogICAgICAgIGJ1Zi0+Zl9iYXZhaWwgPSBidWYtPmZfYmZyZWU7CiAgICAgICAgYnVmLT5mX2Zp
bGVzID0gKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKSA/CiAgICAgICAgICAgICAg
ICAoKChfX3UzMikoKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjSW1wVXNlICopJigo
IChzdHJ1Y3QgTG9naWNhbFZvbEludGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSkt
PnNfbHZpZGJoICktPmJfZGF0YSApLT5pbXBVc2VbKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3Jp
dHlEZXNjICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+bnVt
T2ZQYXJ0aXRpb25zICogMiAqIHNpemVvZihfX3UzMikvc2l6ZW9mKF9fdTgpXSkgKS0+bnVtRmls
ZXMpKSArCiAgICAgICAgICAgICAgICAoKF9fdTMyKSgoIChzdHJ1Y3QgTG9naWNhbFZvbEludGVn
cml0eURlc2NJbXBVc2UgKikmKCggKHN0cnVjdCBMb2dpY2FsVm9sSW50ZWdyaXR5RGVzYyAqKSgg
KCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKS0+Yl9kYXRhICktPmltcFVzZVsoIChzdHJ1
Y3QgTG9naWNhbFZvbEludGVncml0eURlc2MgKikoICgmKChzYiktPnUudWRmX3NiKSktPnNfbHZp
ZGJoICktPmJfZGF0YSApLT5udW1PZlBhcnRpdGlvbnMgKiAyICogc2l6ZW9mKF9fdTMyKS9zaXpl
b2YoX191OCldKSApLT5udW1EaXJzKSkpIDogMCkgKyBidWYtPmZfYmZyZWU7CiAgICAgICAgYnVm
LT5mX2ZmcmVlID0gYnVmLT5mX2JmcmVlOwoKICAgICAgICBidWYtPmZfbmFtZWxlbiA9IDI1NTsK
CiAgICAgICAgcmV0dXJuIDA7Cn0KCnN0YXRpYyB1bnNpZ25lZCBjaGFyIHVkZl9iaXRtYXBfbG9v
a3VwWzE2XSA9IHsKICAgICAgICAwLCAxLCAxLCAyLCAxLCAyLCAyLCAzLCAxLCAyLCAyLCAzLCAy
LCAzLCAzLCA0Cn07CgpzdGF0aWMgdW5zaWduZWQgaW50CnVkZl9jb3VudF9mcmVlX2JpdG1hcChz
dHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBzdHJ1Y3QgdWRmX2JpdG1hcCAqYml0bWFwKQp7CiAgICAg
ICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9ICgodm9pZCAqKTApOwogICAgICAgIHVuc2lnbmVk
IGludCBhY2N1bSA9IDA7CiAgICAgICAgaW50IGluZGV4OwogICAgICAgIGludCBibG9jayA9IDAs
IG5ld2Jsb2NrOwogICAgICAgIGxiX2FkZHIgbG9jOwogICAgICAgIF9fdTMyIGJ5dGVzOwogICAg
ICAgIF9fdTggdmFsdWU7CiAgICAgICAgX191OCAqcHRyOwogICAgICAgIF9fdTE2IGlkZW50Owog
ICAgICAgIHN0cnVjdCBTcGFjZUJpdG1hcERlc2MgKmJtOwoKICAgICAgICBsb2MubG9naWNhbEJs
b2NrTnVtID0gYml0bWFwLT5zX2V4dFBvc2l0aW9uOwogICAgICAgIGxvYy5wYXJ0aXRpb25SZWZl
cmVuY2VOdW0gPSAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9uICk7CiAgICAgICAg
YmggPSB1ZGZfcmVhZF9wdGFnZ2VkKHNiLCBsb2MsIDAsICZpZGVudCk7CgogICAgICAgIGlmICgh
YmgpCiAgICAgICAgewogICAgICAgICAgICAgICAgcHJpbnRrX1JzbXBfODI3ZDU4MDcoIjwzPiIg
InVkZjogdWRmX2NvdW50X2ZyZWUgZmFpbGVkXG4iKTsKICAgICAgICAgICAgICAgIHJldHVybiAw
OwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChpZGVudCAhPSAweDAxMDhVKQogICAgICAgIHsK
ICAgICAgICAgICAgICAgIHVkZl9yZWxlYXNlX2RhdGEoYmgpOwogICAgICAgICAgICAgICAgcHJp
bnRrX1JzbXBfODI3ZDU4MDcoIjwzPiIgInVkZjogdWRmX2NvdW50X2ZyZWUgZmFpbGVkXG4iKTsK
ICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KCiAgICAgICAgYm0gPSAoc3RydWN0
IFNwYWNlQml0bWFwRGVzYyAqKWJoLT5iX2RhdGE7CiAgICAgICAgYnl0ZXMgPSBibS0+bnVtT2ZC
eXRlczsKICAgICAgICBpbmRleCA9IHNpemVvZihzdHJ1Y3QgU3BhY2VCaXRtYXBEZXNjKTsKICAg
ICAgICBwdHIgPSAoX191OCAqKWJoLT5iX2RhdGE7CgogICAgICAgIHdoaWxlICggYnl0ZXMgPiAw
ICkKICAgICAgICB7CiAgICAgICAgICAgICAgICB3aGlsZSAoKGJ5dGVzID4gMCkgJiYgKGluZGV4
IDwgc2ItPnNfYmxvY2tzaXplKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWUgPSBwdHJbaW5kZXhdOwogICAgICAgICAgICAgICAgICAgICAgICBhY2N1bSAr
PSB1ZGZfYml0bWFwX2xvb2t1cFsgdmFsdWUgJiAweDBmIF07CiAgICAgICAgICAgICAgICAgICAg
ICAgIGFjY3VtICs9IHVkZl9iaXRtYXBfbG9va3VwWyB2YWx1ZSA+PiA0IF07CiAgICAgICAgICAg
ICAgICAgICAgICAgIGluZGV4Kys7CiAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzLS07CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIGJ5dGVzICkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgdWRmX3JlbGVhc2VfZGF0YShiaCk7CiAgICAg
ICAgICAgICAgICAgICAgICAgIG5ld2Jsb2NrID0gdWRmX2dldF9wYmxvY2soKHNiKSwgKGxvYyku
bG9naWNhbEJsb2NrTnVtLCAobG9jKS5wYXJ0aXRpb25SZWZlcmVuY2VOdW0sICgrK2Jsb2NrKSk7
CiAgICAgICAgICAgICAgICAgICAgICAgIGJoID0gdWRmX3RyZWFkKHNiLCBuZXdibG9jaywgc2It
PnNfYmxvY2tzaXplKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFiaCkKICAgICAgICAg
ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJpbnRr
X1JzbXBfODI3ZDU4MDcgKCI8Nz4iICJVREYtZnMgREVCVUcgJXM6JWQ6JXM6ICIsICJmcy91ZGYv
c3VwZXIuYyIsIDE3MzAsIF9fRlVOQ1RJT05fXyk7IHByaW50a19Sc21wXzgyN2Q1ODA3ICgicmVh
ZCBmYWlsZWRcbiIpOyB9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBh
Y2N1bTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBp
bmRleCA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgIHB0ciA9IChfX3U4ICopYmgtPmJfZGF0
YTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdWRmX3JlbGVhc2VfZGF0YShi
aCk7CiAgICAgICAgcmV0dXJuIGFjY3VtOwp9CgpzdGF0aWMgdW5zaWduZWQgaW50CnVkZl9jb3Vu
dF9mcmVlX3RhYmxlKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHN0cnVjdCBpbm9kZSAqIHRhYmxl
KQp7CiAgICAgICAgdW5zaWduZWQgaW50IGFjY3VtID0gMDsKICAgICAgICBfX3UzMiBleHRvZmZz
ZXQsIGVsZW47CiAgICAgICAgbGJfYWRkciBibG9jLCBlbG9jOwogICAgICAgIGNoYXIgZXR5cGU7
CiAgICAgICAgc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9ICgodm9pZCAqKTApOwoKICAgICAgICBi
bG9jID0gKCAoJigodGFibGUpLT51LnVkZl9pKSktPmlfbG9jYXRpb24gKTsKICAgICAgICBleHRv
ZmZzZXQgPSBzaXplb2Yoc3RydWN0IFVuYWxsb2NhdGVkU3BhY2VFbnRyeSk7CgogICAgICAgIHdo
aWxlICgoZXR5cGUgPSB1ZGZfbmV4dF9hZXh0KHRhYmxlLCAmYmxvYywgJmV4dG9mZnNldCwgJmVs
b2MsICZlbGVuLCAmYmgsIDEpKSAhPSAtMSkKICAgICAgICB7CiAgICAgICAgICAgICAgICBhY2N1
bSArPSAoZWxlbiA+PiB0YWJsZS0+aV9zYi0+c19ibG9ja3NpemVfYml0cyk7CiAgICAgICAgfQog
ICAgICAgIHVkZl9yZWxlYXNlX2RhdGEoYmgpOwogICAgICAgIHJldHVybiBhY2N1bTsKfQoKc3Rh
dGljIHVuc2lnbmVkIGludAp1ZGZfY291bnRfZnJlZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQp7
CiAgICAgICAgdW5zaWduZWQgaW50IGFjY3VtID0gMDsKCiAgICAgICAgaWYgKCggKCAoJigoc2Ip
LT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0
aXRpb24gKSldLnNfcGFydGl0aW9uX2ZsYWdzICkgJiAweDAwMDEpCiAgICAgICAgewogICAgICAg
ICAgICAgICAgYWNjdW0gKz0gdWRmX2NvdW50X2ZyZWVfYml0bWFwKHNiLAogICAgICAgICAgICAg
ICAgICAgICAgICAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydG1hcHMgKVsoICgmKChzYikt
PnUudWRmX3NiKSktPnNfcGFydGl0aW9uICldLnNfdXNwYWNlLnNfYml0bWFwKTsKICAgICAgICB9
CiAgICAgICAgaWYgKCggKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYo
KHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKSldLnNfcGFydGl0aW9uX2ZsYWdzICkgJiAw
eDAwMDQpCiAgICAgICAgewogICAgICAgICAgICAgICAgYWNjdW0gKz0gdWRmX2NvdW50X2ZyZWVf
Yml0bWFwKHNiLAogICAgICAgICAgICAgICAgICAgICAgICAoICgmKChzYiktPnUudWRmX3NiKSkt
PnNfcGFydG1hcHMgKVsoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9uICldLnNfZnNw
YWNlLnNfYml0bWFwKTsKICAgICAgICB9CiAgICAgICAgaWYgKGFjY3VtKQogICAgICAgICAgICAg
ICAgcmV0dXJuIGFjY3VtOwoKICAgICAgICBpZiAoKCAoICgmKChzYiktPnUudWRmX3NiKSktPnNf
cGFydG1hcHMgKVsoKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRpdGlvbiApKV0uc19wYXJ0
aXRpb25fZmxhZ3MgKSAmIDB4MDAwMikKICAgICAgICB7CiAgICAgICAgICAgICAgICBhY2N1bSAr
PSB1ZGZfY291bnRfZnJlZV90YWJsZShzYiwKICAgICAgICAgICAgICAgICAgICAgICAgKCAoJigo
c2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX3Bh
cnRpdGlvbiApXS5zX3VzcGFjZS5zX3RhYmxlKTsKICAgICAgICB9CiAgICAgICAgaWYgKCggKCAo
Jigoc2IpLT51LnVkZl9zYikpLT5zX3BhcnRtYXBzIClbKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+
c19wYXJ0aXRpb24gKSldLnNfcGFydGl0aW9uX2ZsYWdzICkgJiAweDAwMDgpCiAgICAgICAgewog
ICAgICAgICAgICAgICAgYWNjdW0gKz0gdWRmX2NvdW50X2ZyZWVfdGFibGUoc2IsCiAgICAgICAg
ICAgICAgICAgICAgICAgICggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0bWFwcyApWyggKCYo
KHNiKS0+dS51ZGZfc2IpKS0+c19wYXJ0aXRpb24gKV0uc19mc3BhY2Uuc190YWJsZSk7CiAgICAg
ICAgfQogICAgICAgIGlmIChhY2N1bSkKICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bTsKCiAg
ICAgICAgaWYgKCggKCYoKHNiKS0+dS51ZGZfc2IpKS0+c19sdmlkYmggKSkKICAgICAgICB7CiAg
ICAgICAgICAgICAgICBpZiAoKChfX3UzMikoKCAoc3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlE
ZXNjICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5zX2x2aWRiaCApLT5iX2RhdGEgKS0+bnVtT2ZQ
YXJ0aXRpb25zKSkgPiAoICgmKChzYiktPnUudWRmX3NiKSktPnNfcGFydGl0aW9uICkpCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFjY3VtID0gKChfX3UzMikoKCAo
c3RydWN0IExvZ2ljYWxWb2xJbnRlZ3JpdHlEZXNjICopKCAoJigoc2IpLT51LnVkZl9zYikpLT5z
X2x2aWRiaCApLT5iX2RhdGEgKS0+ZnJlZVNwYWNlVGFibGVbKCAoJigoc2IpLT51LnVkZl9zYikp
LT5zX3BhcnRpdGlvbiApXSkpOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjY3VtID09
IDB4RkZGRkZGRkYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjdW0gPSAwOwog
ICAgICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gYWNjdW07Cn0K


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2001-09-13 14:57 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-09-07 12:29 optimization/3783: gcc3.0/ia64 ICE on linux kernel file fs/ufs/super.c wilson
  -- strict thread matches above, loose matches on Subject: below --
2001-09-13 14:57 wilson
2001-09-06 22:11 wilson
2001-07-23 17:06 davidm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).