This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

optimization/697: 2.96 20000731 (Red Hat Linux 7.0) generates bad linked list code on -O2, working code on -O1 or -g



>Number:         697
>Category:       optimization
>Synopsis:       2.96 20000731 (Red Hat Linux 7.0) generates bad linked list code on -O2, working code on -O1 or -g
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 26 21:06:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Mike Muuss <Mike@arl.army.mil>
>Release:        gcc version 2.96 20000731 (Red Hat Linux 7.0)
>Organization:
>Environment:

>Description:
This dumps
rm s2; gcc -O2 ../rt/s2.c -o s2; ./s2
This does not dump:
rm s2; gcc -O1 ../rt/s2.c -o s2; ./s2

The problem appears to be that the optimizer incorrectly
re-orders a pointer load in the middle of a linked-list
routine, resulting in a damaged linked list.
>How-To-Repeat:
rm s2 ; gcc -O2 -v -save-temps ../rt/s2.c -o s2 ; ./s2

Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731 (Red Hat Linux 7.0)
 /usr/lib/gcc-lib/i386-redhat-linux/2.96/cpp0 -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=96 -D__GNUC_PATCHLEVEL__=0 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -D__OPTIMIZE__ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_i386__ ../rt/s2.c s2.i
GNU CPP version 2.96 20000731 (Red Hat Linux 7.0) (cpplib)
 (i386 Linux/ELF)
ignoring nonexistent directory "/usr/local/include"
ignoring nonexistent directory "/usr/i386-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc-lib/i386-redhat-linux/2.96/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i386-redhat-linux/2.96/cc1 s2.i -quiet -dumpbase s2.c -O2 -version -o s2.s
GNU C version 2.96 20000731 (Red Hat Linux 7.0) (i386-redhat-linux) compiled by GNU C version 2.96 20000731 (Red Hat Linux 7.0).
 as -V -Qy -o s2.o s2.s
GNU assembler version 2.10.90 (i386-redhat-linux) using BFD version 2.10.0.18
 /usr/lib/gcc-lib/i386-redhat-linux/2.96/collect2 -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o s2 /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crt1.o /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crti.o /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtbegin.o -L/usr/lib/gcc-lib/i386-redhat-linux/2.96 -L/usr/lib/gcc-lib/i386-redhat-linux/2.96/../../.. s2.o -lgcc -lc -lgcc /usr/lib/gcc-lib/i386-redhat-linux/2.96/crtend.o /usr/lib/gcc-lib/i386-redhat-linux/2.96/../../../crtn.o

bu_ck_list_magic(re_parthead) cur=x8049ba8, cur->back=x8049ba8, cur->back->forw=x8049bb4, hd=x8049ba8, item=0
Abort (core dumped)
>Fix:
Unknown
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="s2.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="s2.i"

IyAxICIuLi9ydC9zMi5jIgojIDI5ICIuLi9ydC9zMi5jIgojIDI4ICIvdXNyL2luY2x1ZGUvc3Rk
aW8uaCIgMSAzCiMgMjgzICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMSAzCiMgMzExICIvdXNy
L2luY2x1ZGUvZmVhdHVyZXMuaCIgMwojIDI4ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzCgoK
CgoKCiMgMTk5ICIvdXNyL2xpYi9nY2MtbGliL2kzODYtcmVkaGF0LWxpbnV4LzIuOTYvaW5jbHVk
ZS9zdGRkZWYuaCIgMSAzCnR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsKIyAzNCAiL3Vzci9p
bmNsdWRlL3N0ZGlvLmgiIDIgMwoKCgoKCiMgNDMgIi91c3IvbGliL2djYy1saWIvaTM4Ni1yZWRo
YXQtbGludXgvMi45Ni9pbmNsdWRlL3N0ZGFyZy5oIiAxIDMKdHlwZWRlZiBfX2J1aWx0aW5fdmFf
bGlzdCBfX2dudWNfdmFfbGlzdDsKIyAzOSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKCiMg
MzAgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDEgMwoKCnR5cGVkZWYgdW5zaWduZWQgY2hh
ciBfX3VfY2hhcjsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3Vfc2hvcnQ7CnR5cGVkZWYgdW5z
aWduZWQgaW50IF9fdV9pbnQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBfX3VfbG9uZzsKCl9fZXh0
ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9fdV9xdWFkX3Q7Cl9fZXh0
ZW5zaW9uX18gdHlwZWRlZiBsb25nIGxvbmcgaW50IF9fcXVhZF90OwojIDQ5ICIvdXNyL2luY2x1
ZGUvYml0cy90eXBlcy5oIiAzCnR5cGVkZWYgc2lnbmVkIGNoYXIgX19pbnQ4X3Q7CnR5cGVkZWYg
dW5zaWduZWQgY2hhciBfX3VpbnQ4X3Q7CnR5cGVkZWYgc2lnbmVkIHNob3J0IGludCBfX2ludDE2
X3Q7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IF9fdWludDE2X3Q7CnR5cGVkZWYgc2lnbmVk
IGludCBfX2ludDMyX3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdWludDMyX3Q7CgpfX2V4dGVu
c2lvbl9fIHR5cGVkZWYgc2lnbmVkIGxvbmcgbG9uZyBpbnQgX19pbnQ2NF90OwpfX2V4dGVuc2lv
bl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludCBfX3VpbnQ2NF90OwoKdHlwZWRlZiBf
X3F1YWRfdCAqX19xYWRkcl90OwoKdHlwZWRlZiBfX3VfcXVhZF90IF9fZGV2X3Q7CnR5cGVkZWYg
X191X2ludCBfX3VpZF90Owp0eXBlZGVmIF9fdV9pbnQgX19naWRfdDsKdHlwZWRlZiBfX3VfbG9u
ZyBfX2lub190Owp0eXBlZGVmIF9fdV9pbnQgX19tb2RlX3Q7CnR5cGVkZWYgX191X2ludCBfX25s
aW5rX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX19vZmZfdDsKdHlwZWRlZiBfX3F1YWRfdCBfX2xvZmZf
dDsKdHlwZWRlZiBpbnQgX19waWRfdDsKdHlwZWRlZiBpbnQgX19zc2l6ZV90Owp0eXBlZGVmIF9f
dV9sb25nIF9fcmxpbV90Owp0eXBlZGVmIF9fdV9xdWFkX3QgX19ybGltNjRfdDsKdHlwZWRlZiBf
X3VfaW50IF9faWRfdDsKCnR5cGVkZWYgc3RydWN0CiAgewogICAgaW50IF9fdmFsWzJdOwogIH0g
X19mc2lkX3Q7CgoKdHlwZWRlZiBpbnQgX19kYWRkcl90Owp0eXBlZGVmIGNoYXIgKl9fY2FkZHJf
dDsKdHlwZWRlZiBsb25nIGludCBfX3RpbWVfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191c2Vj
b25kc190Owp0eXBlZGVmIGxvbmcgaW50IF9fc3VzZWNvbmRzX3Q7CnR5cGVkZWYgbG9uZyBpbnQg
X19zd2Jsa190OwoKdHlwZWRlZiBsb25nIGludCBfX2Nsb2NrX3Q7CgoKdHlwZWRlZiBpbnQgX19j
bG9ja2lkX3Q7CgoKdHlwZWRlZiBpbnQgX190aW1lcl90OwoKCgp0eXBlZGVmIHVuc2lnbmVkIGxv
bmcgaW50IF9fZmRfbWFzazsKCgojIDEwOSAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMwp0
eXBlZGVmIHN0cnVjdAogIHsKCgoKCgoKICAgIF9fZmRfbWFzayBfX2Zkc19iaXRzWzEwMjQgLyAo
OCAqIHNpemVvZiAoX19mZF9tYXNrKSldOwoKCiAgfSBfX2ZkX3NldDsKCgp0eXBlZGVmIGludCBf
X2tleV90OwoKCnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IF9faXBjX3BpZF90OwoKCgp0eXBl
ZGVmIGxvbmcgaW50IF9fYmxrc2l6ZV90OwoKCgoKdHlwZWRlZiBsb25nIGludCBfX2Jsa2NudF90
Owp0eXBlZGVmIF9fcXVhZF90IF9fYmxrY250NjRfdDsKCgp0eXBlZGVmIF9fdV9sb25nIF9fZnNi
bGtjbnRfdDsKdHlwZWRlZiBfX3VfcXVhZF90IF9fZnNibGtjbnQ2NF90OwoKCnR5cGVkZWYgX191
X2xvbmcgX19mc2ZpbGNudF90Owp0eXBlZGVmIF9fdV9xdWFkX3QgX19mc2ZpbGNudDY0X3Q7CgoK
dHlwZWRlZiBfX3VfcXVhZF90IF9faW5vNjRfdDsKCgp0eXBlZGVmIF9fbG9mZl90IF9fb2ZmNjRf
dDsKCgp0eXBlZGVmIGxvbmcgaW50IF9fdF9zY2FsYXJfdDsKdHlwZWRlZiB1bnNpZ25lZCBsb25n
IGludCBfX3RfdXNjYWxhcl90OwoKCnR5cGVkZWYgaW50IF9faW50cHRyX3Q7CgoKdHlwZWRlZiB1
bnNpZ25lZCBpbnQgX19zb2NrbGVuX3Q7CgoKCgoKIyAyNCAiL3Vzci9pbmNsdWRlL2JpdHMvcHRo
cmVhZHR5cGVzLmgiIDEgMwojIDY4ICIvdXNyL2luY2x1ZGUvYml0cy9zY2hlZC5oIiAxIDMKc3Ry
dWN0IF9fc2NoZWRfcGFyYW0KICB7CiAgICBpbnQgc2NoZWRfcHJpb3JpdHk7CiAgfTsKIyAyNCAi
L3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmgiIDIgMwoKCnN0cnVjdCBfcHRocmVhZF9m
YXN0bG9jawp7CiAgbG9uZyBpbnQgX19zdGF0dXM7CiAgaW50IF9fc3BpbmxvY2s7Cgp9OwoKCgp0
eXBlZGVmIHN0cnVjdCBfcHRocmVhZF9kZXNjcl9zdHJ1Y3QgKl9wdGhyZWFkX2Rlc2NyOwoKCgoK
CnR5cGVkZWYgc3RydWN0CnsKICBpbnQgX19kZXRhY2hzdGF0ZTsKICBpbnQgX19zY2hlZHBvbGlj
eTsKICBzdHJ1Y3QgX19zY2hlZF9wYXJhbSBfX3NjaGVkcGFyYW07CiAgaW50IF9faW5oZXJpdHNj
aGVkOwogIGludCBfX3Njb3BlOwogIHNpemVfdCBfX2d1YXJkc2l6ZTsKICBpbnQgX19zdGFja2Fk
ZHJfc2V0OwogIHZvaWQgKl9fc3RhY2thZGRyOwogIHNpemVfdCBfX3N0YWNrc2l6ZTsKfSBwdGhy
ZWFkX2F0dHJfdDsKCgoKdHlwZWRlZiBzdHJ1Y3QKewogIHN0cnVjdCBfcHRocmVhZF9mYXN0bG9j
ayBfX2NfbG9jazsKICBfcHRocmVhZF9kZXNjciBfX2Nfd2FpdGluZzsKfSBwdGhyZWFkX2NvbmRf
dDsKCgoKdHlwZWRlZiBzdHJ1Y3QKewogIGludCBfX2R1bW15Owp9IHB0aHJlYWRfY29uZGF0dHJf
dDsKCgp0eXBlZGVmIHVuc2lnbmVkIGludCBwdGhyZWFkX2tleV90OwoKCgoKCnR5cGVkZWYgc3Ry
dWN0CnsKICBpbnQgX19tX3Jlc2VydmVkOwogIGludCBfX21fY291bnQ7CiAgX3B0aHJlYWRfZGVz
Y3IgX19tX293bmVyOwogIGludCBfX21fa2luZDsKICBzdHJ1Y3QgX3B0aHJlYWRfZmFzdGxvY2sg
X19tX2xvY2s7Cn0gcHRocmVhZF9tdXRleF90OwoKCgp0eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9f
bXV0ZXhraW5kOwp9IHB0aHJlYWRfbXV0ZXhhdHRyX3Q7CgoKCnR5cGVkZWYgaW50IHB0aHJlYWRf
b25jZV90OwoKCiMgMTQwICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMwp0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgaW50IHB0aHJlYWRfdDsKCiMgMTY2ICIvdXNyL2luY2x1ZGUvYml0
cy90eXBlcy5oIiAyIDMKIyA0MSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKCgoKCgoKdHlw
ZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUgRklMRTsKCiMgNTggIi91c3IvaW5jbHVkZS9zdGRpby5oIiAz
CiMgMzEgIi91c3IvaW5jbHVkZS9saWJpby5oIiAxIDMKIyAxNSAiL3Vzci9pbmNsdWRlL19HX2Nv
bmZpZy5oIiAxIDMKIyAyODcgIi91c3IvbGliL2djYy1saWIvaTM4Ni1yZWRoYXQtbGludXgvMi45
Ni9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKdHlwZWRlZiBsb25nIGludCB3Y2hhcl90OwojIDMxMiAi
L3Vzci9saWIvZ2NjLWxpYi9pMzg2LXJlZGhhdC1saW51eC8yLjk2L2luY2x1ZGUvc3RkZGVmLmgi
IDMKdHlwZWRlZiB1bnNpZ25lZCBpbnQgd2ludF90OwojIDE1ICIvdXNyL2luY2x1ZGUvX0dfY29u
ZmlnLmgiIDIgMwojIDI1ICIvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmgiIDMKIyA0NiAiL3Vzci9p
bmNsdWRlL3djaGFyLmgiIDEgMwojIDYyICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMwp0eXBlZGVm
IHN0cnVjdAp7CiAgaW50IF9fY291bnQ7CiAgdW5pb24KICB7CiAgICB3aW50X3QgX193Y2g7CiAg
ICBjaGFyIF9fd2NoYls0XTsKICB9IF9fdmFsdWU7Cn0gX19tYnN0YXRlX3Q7CiMgMjUgIi91c3Iv
aW5jbHVkZS9fR19jb25maWcuaCIgMiAzCgp0eXBlZGVmIHN0cnVjdAp7CiAgX19vZmZfdCBfX3Bv
czsKICBfX21ic3RhdGVfdCBfX3N0YXRlOwp9IF9HX2Zwb3NfdDsKdHlwZWRlZiBzdHJ1Y3QKewog
IF9fb2ZmNjRfdCBfX3BvczsKICBfX21ic3RhdGVfdCBfX3N0YXRlOwp9IF9HX2Zwb3M2NF90Owoj
IDQ1ICIvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmgiIDMKIyAyOSAiL3Vzci9pbmNsdWRlL2djb252
LmgiIDEgMwojIDQ2ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMSAzCiMgMjkgIi91c3IvaW5jbHVk
ZS9nY29udi5oIiAyIDMKCgoKCgoKCmVudW0KewogIF9fR0NPTlZfT0sgPSAwLAogIF9fR0NPTlZf
Tk9DT05WLAogIF9fR0NPTlZfTk9EQiwKICBfX0dDT05WX05PTUVNLAoKICBfX0dDT05WX0VNUFRZ
X0lOUFVULAogIF9fR0NPTlZfRlVMTF9PVVRQVVQsCiAgX19HQ09OVl9JTExFR0FMX0lOUFVULAog
IF9fR0NPTlZfSU5DT01QTEVURV9JTlBVVCwKCiAgX19HQ09OVl9JTExFR0FMX0RFU0NSSVBUT1Is
CiAgX19HQ09OVl9JTlRFUk5BTF9FUlJPUgp9OwoKCgplbnVtCnsKICBfX0dDT05WX0lTX0xBU1Qg
PSAweDAwMDEsCiAgX19HQ09OVl9JR05PUkVfRVJST1JTID0gMHgwMDAyCn07CgoKCnN0cnVjdCBf
X2djb252X3N0ZXA7CnN0cnVjdCBfX2djb252X3N0ZXBfZGF0YTsKc3RydWN0IF9fZ2NvbnZfbG9h
ZGVkX29iamVjdDsKc3RydWN0IF9fZ2NvbnZfdHJhbnNfZGF0YTsKCgoKdHlwZWRlZiBpbnQgKCpf
X2djb252X2ZjdCkgKHN0cnVjdCBfX2djb252X3N0ZXAgKiwgc3RydWN0IF9fZ2NvbnZfc3RlcF9k
YXRhICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIg
KiosIF9fY29uc3QgdW5zaWduZWQgY2hhciAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgY2hhciAqKiwgc2l6ZV90ICosIGludCwgaW50KTsKCgp0eXBlZGVmIGludCAoKl9f
Z2NvbnZfaW5pdF9mY3QpIChzdHJ1Y3QgX19nY29udl9zdGVwICopOwp0eXBlZGVmIHZvaWQgKCpf
X2djb252X2VuZF9mY3QpIChzdHJ1Y3QgX19nY29udl9zdGVwICopOwoKCgp0eXBlZGVmIGludCAo
Kl9fZ2NvbnZfdHJhbnNfZmN0KSAoc3RydWN0IF9fZ2NvbnZfc3RlcCAqLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhICosIHZvaWQgKiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdW5zaWduZWQgY2hhciAq
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCB1bnNpZ25lZCBjaGFy
ICoqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCB1bnNpZ25lZCBj
aGFyICosIHVuc2lnbmVkIGNoYXIgKiosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3QgKik7CgoKdHlwZWRlZiBpbnQgKCpfX2djb252X3RyYW5zX2NvbnRleHRfZmN0KSAo
c3RydWN0IF9fZ2NvbnZfdHJhbnNfZGF0YSAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCB1bnNpZ25lZCBjaGFyICosCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKiwgdW5zaWdu
ZWQgY2hhciAqKTsKCgp0eXBlZGVmIGludCAoKl9fZ2NvbnZfdHJhbnNfcXVlcnlfZmN0KSAoX19j
b25zdCBjaGFyICosIF9fY29uc3QgY2hhciAqKiosCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3QgKik7CgoKdHlwZWRlZiBpbnQgKCpfX2djb252X3RyYW5zX2lu
aXRfZmN0KSAodm9pZCAqKiwgY29uc3QgY2hhciAqKTsKdHlwZWRlZiB2b2lkICgqX19nY29udl90
cmFuc19lbmRfZmN0KSAodm9pZCAqKTsKCnN0cnVjdCBfX2djb252X3RyYW5zX2RhdGEKewoKICBf
X2djb252X3RyYW5zX2ZjdCBfX3RyYW5zX2ZjdDsKICBfX2djb252X3RyYW5zX2NvbnRleHRfZmN0
IF9fdHJhbnNfY29udGV4dF9mY3Q7CiAgX19nY29udl90cmFuc19lbmRfZmN0IF9fdHJhbnNfZW5k
X2ZjdDsKICB2b2lkICpfX2RhdGE7CiAgc3RydWN0IF9fZ2NvbnZfdHJhbnNfZGF0YSAqX19uZXh0
Owp9OwoKCgpzdHJ1Y3QgX19nY29udl9zdGVwCnsKICBzdHJ1Y3QgX19nY29udl9sb2FkZWRfb2Jq
ZWN0ICpfX3NobGliX2hhbmRsZTsKICBfX2NvbnN0IGNoYXIgKl9fbW9kbmFtZTsKCiAgaW50IF9f
Y291bnRlcjsKCiAgX19jb25zdCBjaGFyICpfX2Zyb21fbmFtZTsKICBfX2NvbnN0IGNoYXIgKl9f
dG9fbmFtZTsKCiAgX19nY29udl9mY3QgX19mY3Q7CiAgX19nY29udl9pbml0X2ZjdCBfX2luaXRf
ZmN0OwogIF9fZ2NvbnZfZW5kX2ZjdCBfX2VuZF9mY3Q7CgoKCiAgaW50IF9fbWluX25lZWRlZF9m
cm9tOwogIGludCBfX21heF9uZWVkZWRfZnJvbTsKICBpbnQgX19taW5fbmVlZGVkX3RvOwogIGlu
dCBfX21heF9uZWVkZWRfdG87CgoKICBpbnQgX19zdGF0ZWZ1bDsKCiAgdm9pZCAqX19kYXRhOwp9
OwoKCgpzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEKewogIHVuc2lnbmVkIGNoYXIgKl9fb3V0YnVm
OwogIHVuc2lnbmVkIGNoYXIgKl9fb3V0YnVmZW5kOwoKCgogIGludCBfX2ZsYWdzOwoKCgogIGlu
dCBfX2ludm9jYXRpb25fY291bnRlcjsKCgoKICBpbnQgX19pbnRlcm5hbF91c2U7CgogIF9fbWJz
dGF0ZV90ICpfX3N0YXRlcDsKICBfX21ic3RhdGVfdCBfX3N0YXRlOwoKCgogIHN0cnVjdCBfX2dj
b252X3RyYW5zX2RhdGEgKl9fdHJhbnM7Cn07CgoKCnR5cGVkZWYgc3RydWN0IF9fZ2NvbnZfaW5m
bwp7CiAgc2l6ZV90IF9fbnN0ZXBzOwogIHN0cnVjdCBfX2djb252X3N0ZXAgKl9fc3RlcHM7CiAg
X19leHRlbnNpb25fXyBzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEgX19kYXRhWzBdOwp9ICpfX2dj
b252X3Q7CgojIDQ1ICIvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmgiIDIgMwp0eXBlZGVmIHVuaW9u
CnsKICBzdHJ1Y3QgX19nY29udl9pbmZvIF9fY2Q7CiAgc3RydWN0CiAgewogICAgc3RydWN0IF9f
Z2NvbnZfaW5mbyBfX2NkOwogICAgc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhIF9fZGF0YTsKICB9
IF9fY29tYmluZWQ7Cn0gX0dfaWNvbnZfdDsKCnR5cGVkZWYgaW50IF9HX2ludDE2X3QgX19hdHRy
aWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CnR5cGVkZWYgaW50IF9HX2ludDMyX3QgX19h
dHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9H
X3VpbnQxNl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOwp0eXBlZGVmIHVu
c2lnbmVkIGludCBfR191aW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykp
KTsKCiMgMzEgIi91c3IvaW5jbHVkZS9saWJpby5oIiAyIDMKIyA1MiAiL3Vzci9pbmNsdWRlL2xp
YmlvLmgiIDMKIyAxNTcgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzCnN0cnVjdCBfSU9fanVtcF90
OyBzdHJ1Y3QgX0lPX0ZJTEU7CgoKCgoKCgoKCnR5cGVkZWYgdm9pZCBfSU9fbG9ja190OwoKCgoK
CnN0cnVjdCBfSU9fbWFya2VyIHsKICBzdHJ1Y3QgX0lPX21hcmtlciAqX25leHQ7CiAgc3RydWN0
IF9JT19GSUxFICpfc2J1ZjsKCgoKICBpbnQgX3BvczsKIyAxOTAgIi91c3IvaW5jbHVkZS9saWJp
by5oIiAzCn07CgoKZW51bSBfX2NvZGVjdnRfcmVzdWx0CnsKICBfX2NvZGVjdnRfb2ssCiAgX19j
b2RlY3Z0X3BhcnRpYWwsCiAgX19jb2RlY3Z0X2Vycm9yLAogIF9fY29kZWN2dF9ub2NvbnYKfTsK
CiMgMjYyICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMwpzdHJ1Y3QgX0lPX0ZJTEUgewogIGludCBf
ZmxhZ3M7CgoKCgogIGNoYXIqIF9JT19yZWFkX3B0cjsKICBjaGFyKiBfSU9fcmVhZF9lbmQ7CiAg
Y2hhciogX0lPX3JlYWRfYmFzZTsKICBjaGFyKiBfSU9fd3JpdGVfYmFzZTsKICBjaGFyKiBfSU9f
d3JpdGVfcHRyOwogIGNoYXIqIF9JT193cml0ZV9lbmQ7CiAgY2hhciogX0lPX2J1Zl9iYXNlOwog
IGNoYXIqIF9JT19idWZfZW5kOwoKICBjaGFyICpfSU9fc2F2ZV9iYXNlOwogIGNoYXIgKl9JT19i
YWNrdXBfYmFzZTsKICBjaGFyICpfSU9fc2F2ZV9lbmQ7CgogIHN0cnVjdCBfSU9fbWFya2VyICpf
bWFya2VyczsKCiAgc3RydWN0IF9JT19GSUxFICpfY2hhaW47CgogIGludCBfZmlsZW5vOwogIGlu
dCBfYmxrc2l6ZTsKICBfX29mZl90IF9vbGRfb2Zmc2V0OwoKCgogIHVuc2lnbmVkIHNob3J0IF9j
dXJfY29sdW1uOwogIHNpZ25lZCBjaGFyIF92dGFibGVfb2Zmc2V0OwogIGNoYXIgX3Nob3J0YnVm
WzFdOwoKCgogIF9JT19sb2NrX3QgKl9sb2NrOwojIDMwNiAiL3Vzci9pbmNsdWRlL2xpYmlvLmgi
IDMKICBfX29mZjY0X3QgX29mZnNldDsKCgoKCgogIHZvaWQgKl9fcGFkMTsKICB2b2lkICpfX3Bh
ZDI7CgogIGludCBfbW9kZTsKCiAgY2hhciBfdW51c2VkMlsxNSAqIHNpemVvZiAoaW50KSAtIDIg
KiBzaXplb2YgKHZvaWQgKildOwoKfTsKCgp0eXBlZGVmIHN0cnVjdCBfSU9fRklMRSBfSU9fRklM
RTsKCgpzdHJ1Y3QgX0lPX0ZJTEVfcGx1czsKCmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBf
SU9fMl8xX3N0ZGluXzsKZXh0ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFfc3Rkb3V0
XzsKZXh0ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFfc3RkZXJyXzsKIyAzNDUgIi91
c3IvaW5jbHVkZS9saWJpby5oIiAzCnR5cGVkZWYgX19zc2l6ZV90IF9faW9fcmVhZF9mbiAodm9p
ZCAqX19jb29raWUsIGNoYXIgKl9fYnVmLCBzaXplX3QgX19uYnl0ZXMpOwoKCgoKCgoKdHlwZWRl
ZiBfX3NzaXplX3QgX19pb193cml0ZV9mbiAodm9pZCAqX19jb29raWUsIF9fY29uc3QgY2hhciAq
X19idWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX24pOwoKCgoK
CgoKdHlwZWRlZiBpbnQgX19pb19zZWVrX2ZuICh2b2lkICpfX2Nvb2tpZSwgX19vZmY2NF90ICpf
X3BvcywgaW50IF9fdyk7CgoKdHlwZWRlZiBpbnQgX19pb19jbG9zZV9mbiAodm9pZCAqX19jb29r
aWUpOwoKCiMgMzk3ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMwpleHRlcm4gaW50IF9fdW5kZXJm
bG93IChfSU9fRklMRSAqKTsKZXh0ZXJuIGludCBfX3VmbG93IChfSU9fRklMRSAqKTsKZXh0ZXJu
IGludCBfX292ZXJmbG93IChfSU9fRklMRSAqLCBpbnQpOwpleHRlcm4gd2ludF90IF9fd3VuZGVy
ZmxvdyAoX0lPX0ZJTEUgKik7CmV4dGVybiB3aW50X3QgX193dWZsb3cgKF9JT19GSUxFICopOwpl
eHRlcm4gd2ludF90IF9fd292ZXJmbG93IChfSU9fRklMRSAqLCB3aW50X3QpOwoKIyA0MjcgIi91
c3IvaW5jbHVkZS9saWJpby5oIiAzCmV4dGVybiBpbnQgX0lPX2dldGMgKF9JT19GSUxFICpfX2Zw
KTsKZXh0ZXJuIGludCBfSU9fcHV0YyAoaW50IF9fYywgX0lPX0ZJTEUgKl9fZnApOwpleHRlcm4g
aW50IF9JT19mZW9mIChfSU9fRklMRSAqX19mcCk7CmV4dGVybiBpbnQgX0lPX2ZlcnJvciAoX0lP
X0ZJTEUgKl9fZnApOwoKZXh0ZXJuIGludCBfSU9fcGVla2NfbG9ja2VkIChfSU9fRklMRSAqX19m
cCk7CgoKCgoKZXh0ZXJuIHZvaWQgX0lPX2Zsb2NrZmlsZSAoX0lPX0ZJTEUgKik7CmV4dGVybiB2
b2lkIF9JT19mdW5sb2NrZmlsZSAoX0lPX0ZJTEUgKik7CmV4dGVybiBpbnQgX0lPX2Z0cnlsb2Nr
ZmlsZSAoX0lPX0ZJTEUgKik7CgojIDQ1MyAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKZXh0ZXJu
IGludCBfSU9fdmZzY2FuZiAoX0lPX0ZJTEUgKiBfX3Jlc3RyaWN0LCBjb25zdCBjaGFyICogX19y
ZXN0cmljdCwKICAgICAgICAgICAgICAgICAgICAgICAgX19nbnVjX3ZhX2xpc3QsIGludCAqX19y
ZXN0cmljdCk7CmV4dGVybiBpbnQgX0lPX3ZmcHJpbnRmIChfSU9fRklMRSAqX19yZXN0cmljdCwg
Y29uc3QgY2hhciAqX19yZXN0cmljdCwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192
YV9saXN0KTsKZXh0ZXJuIF9fc3NpemVfdCBfSU9fcGFkbiAoX0lPX0ZJTEUgKiwgaW50LCBfX3Nz
aXplX3QpOwpleHRlcm4gc2l6ZV90IF9JT19zZ2V0biAoX0lPX0ZJTEUgKiwgdm9pZCAqLCBzaXpl
X3QpOwoKZXh0ZXJuIF9fb2ZmNjRfdCBfSU9fc2Vla29mZiAoX0lPX0ZJTEUgKiwgX19vZmY2NF90
LCBpbnQsIGludCk7CmV4dGVybiBfX29mZjY0X3QgX0lPX3NlZWtwb3MgKF9JT19GSUxFICosIF9f
b2ZmNjRfdCwgaW50KTsKCmV4dGVybiB2b2lkIF9JT19mcmVlX2JhY2t1cF9hcmVhIChfSU9fRklM
RSAqKTsKCiMgNTggIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMKCgoKdHlwZWRlZiBfR19mcG9z
X3QgZnBvc190OwojIDExMSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKCgoKZXh0ZXJuIEZJTEUg
KnN0ZGluOwpleHRlcm4gRklMRSAqc3Rkb3V0OwpleHRlcm4gRklMRSAqc3RkZXJyOwoKCgoKCgpl
eHRlcm4gaW50IHJlbW92ZSAoX19jb25zdCBjaGFyICpfX2ZpbGVuYW1lKTsKCmV4dGVybiBpbnQg
cmVuYW1lIChfX2NvbnN0IGNoYXIgKl9fb2xkLCBfX2NvbnN0IGNoYXIgKl9fbmV3KTsKCgoKCmV4
dGVybiBGSUxFICp0bXBmaWxlICh2b2lkKTsKIyAxNDIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAz
CmV4dGVybiBjaGFyICp0bXBuYW0gKGNoYXIgKl9fcyk7CgoKCgpleHRlcm4gY2hhciAqdG1wbmFt
X3IgKGNoYXIgKl9fcyk7CiMgMTU5ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gY2hh
ciAqdGVtcG5hbSAoX19jb25zdCBjaGFyICpfX2RpciwgX19jb25zdCBjaGFyICpfX3BmeCkKIF9f
YXR0cmlidXRlX18gKChfX21hbGxvY19fKSk7CgoKCgpleHRlcm4gaW50IGZjbG9zZSAoRklMRSAq
X19zdHJlYW0pOwoKZXh0ZXJuIGludCBmZmx1c2ggKEZJTEUgKl9fc3RyZWFtKTsKCgoKZXh0ZXJu
IGludCBmZmx1c2hfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKTsKIyAxODIgIi91c3IvaW5jbHVk
ZS9zdGRpby5oIiAzCmV4dGVybiBGSUxFICpmb3BlbiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fbW9kZXMpOwoKZXh0ZXJuIEZJTEUgKmZyZW9wZW4gKF9fY29uc3QgY2hhciAqX19yZXN0cmlj
dCBfX2ZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fbW9kZXMsCiAgICAgICAgICAgICAgICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3Ry
ZWFtKTsKIyAyMTIgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBGSUxFICpmZG9wZW4g
KGludCBfX2ZkLCBfX2NvbnN0IGNoYXIgKl9fbW9kZXMpOwojIDIzNSAiL3Vzci9pbmNsdWRlL3N0
ZGlvLmgiIDMKZXh0ZXJuIHZvaWQgc2V0YnVmIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBj
aGFyICpfX3Jlc3RyaWN0IF9fYnVmKTsKCgoKZXh0ZXJuIGludCBzZXR2YnVmIChGSUxFICpfX3Jl
c3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLAogICAgICAgICAgICAgICAg
ICAgIGludCBfX21vZGVzLCBzaXplX3QgX19uKTsKCgoKCmV4dGVybiB2b2lkIHNldGJ1ZmZlciAo
RklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgY2hhciAqX19yZXN0cmljdCBfX2J1ZiwKICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgX19zaXplKTsKCgpleHRlcm4gdm9pZCBzZXRsaW5lYnVm
IChGSUxFICpfX3N0cmVhbSk7CgoKCgpleHRlcm4gaW50IGZwcmludGYgKEZJTEUgKl9fcmVzdHJp
Y3QgX19zdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fZm9ybWF0LCAuLi4pOwoKZXh0ZXJuIGludCBwcmludGYgKF9fY29uc3QgY2hhciAqX19yZXN0
cmljdCBfX2Zvcm1hdCwgLi4uKTsKCmV4dGVybiBpbnQgc3ByaW50ZiAoY2hhciAqX19yZXN0cmlj
dCBfX3MsCiAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9y
bWF0LCAuLi4pOwoKCmV4dGVybiBpbnQgdmZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zLCBf
X2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgIF9f
Z251Y192YV9saXN0IF9fYXJnKTsKCmV4dGVybiBpbnQgdnByaW50ZiAoX19jb25zdCBjaGFyICpf
X3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBfX2FyZykKOwoKZXh0ZXJuIGludCB2
c3ByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X2Zvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpOwoKCgpl
eHRlcm4gaW50IHNucHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4bGVu
LAogICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQs
IC4uLikKIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAzLCA0KSkpOwoK
ZXh0ZXJuIGludCBfX3ZzbnByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX21h
eGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f
Zm9ybWF0LCBfX2dudWNfdmFfbGlzdCBfX2FyZykKIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9f
IChfX3ByaW50Zl9fLCAzLCAwKSkpOwpleHRlcm4gaW50IHZzbnByaW50ZiAoY2hhciAqX19yZXN0
cmljdCBfX3MsIHNpemVfdCBfX21heGxlbiwKICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiBfX2F0dHJp
YnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMywgMCkpKTsKIyAzMDkgIi91c3IvaW5j
bHVkZS9zdGRpby5oIiAzCmV4dGVybiBpbnQgZnNjYW5mIChGSUxFICpfX3Jlc3RyaWN0IF9fc3Ry
ZWFtLAogICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0
LCAuLi4pOwoKZXh0ZXJuIGludCBzY2FuZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9y
bWF0LCAuLi4pOwoKZXh0ZXJuIGludCBzc2NhbmYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X3MsCiAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQs
IC4uLik7CgojIDMzNSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGludCBmZ2V0YyAo
RklMRSAqX19zdHJlYW0pOwpleHRlcm4gaW50IGdldGMgKEZJTEUgKl9fc3RyZWFtKTsKCgpleHRl
cm4gaW50IGdldGNoYXIgKHZvaWQpOwoKCgoKCgoKZXh0ZXJuIGludCBnZXRjX3VubG9ja2VkIChG
SUxFICpfX3N0cmVhbSk7CmV4dGVybiBpbnQgZ2V0Y2hhcl91bmxvY2tlZCAodm9pZCk7CgoKCgpl
eHRlcm4gaW50IGZnZXRjX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSk7CgoKCgpleHRlcm4gaW50
IGZwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSk7CmV4dGVybiBpbnQgcHV0YyAoaW50IF9f
YywgRklMRSAqX19zdHJlYW0pOwoKCmV4dGVybiBpbnQgcHV0Y2hhciAoaW50IF9fYyk7CgoKCgoK
CgpleHRlcm4gaW50IGZwdXRjX3VubG9ja2VkIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSk7CgoK
CgpleHRlcm4gaW50IHB1dGNfdW5sb2NrZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKTsKZXh0
ZXJuIGludCBwdXRjaGFyX3VubG9ja2VkIChpbnQgX19jKTsKCgoKCgpleHRlcm4gaW50IGdldHcg
KEZJTEUgKl9fc3RyZWFtKTsKCgpleHRlcm4gaW50IHB1dHcgKGludCBfX3csIEZJTEUgKl9fc3Ry
ZWFtKTsKCgoKCmV4dGVybiBjaGFyICpmZ2V0cyAoY2hhciAqX19yZXN0cmljdCBfX3MsIGludCBf
X24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pCjsKCiMgNDAxICIvdXNyL2luY2x1ZGUvc3Rk
aW8uaCIgMwpleHRlcm4gY2hhciAqZ2V0cyAoY2hhciAqX19zKTsKCgojIDQyNSAiL3Vzci9pbmNs
dWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGludCBmcHV0cyAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fcywgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkKOwoKCgoKCgoKCmV4dGVybiBpbnQgcHV0
cyAoX19jb25zdCBjaGFyICpfX3MpOwoKCgpleHRlcm4gaW50IHVuZ2V0YyAoaW50IF9fYywgRklM
RSAqX19zdHJlYW0pOwoKCgpleHRlcm4gc2l6ZV90IGZyZWFkICh2b2lkICpfX3Jlc3RyaWN0IF9f
cHRyLCBzaXplX3QgX19zaXplLAogICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19uLCBGSUxF
ICpfX3Jlc3RyaWN0IF9fc3RyZWFtKTsKCmV4dGVybiBzaXplX3QgZndyaXRlIChfX2NvbnN0IHZv
aWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCiAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fcyk7CgoKCmV4dGVybiBzaXplX3QgZnJl
YWRfdW5sb2NrZWQgKHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19z
dHJlYW0pOwpleHRlcm4gc2l6ZV90IGZ3cml0ZV91bmxvY2tlZCAoX19jb25zdCB2b2lkICpfX3Jl
c3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSk7CgoKCgpleHRlcm4gaW50
IGZzZWVrIChGSUxFICpfX3N0cmVhbSwgbG9uZyBpbnQgX19vZmYsIGludCBfX3doZW5jZSk7Cgpl
eHRlcm4gbG9uZyBpbnQgZnRlbGwgKEZJTEUgKl9fc3RyZWFtKTsKCmV4dGVybiB2b2lkIHJld2lu
ZCAoRklMRSAqX19zdHJlYW0pOwoKCgoKCgoKCgp0eXBlZGVmIF9fb2ZmX3Qgb2ZmX3Q7CiMgNDk1
ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gaW50IGZnZXRwb3MgKEZJTEUgKl9fcmVz
dHJpY3QgX19zdHJlYW0sIGZwb3NfdCAqX19yZXN0cmljdCBfX3BvcykKOwoKZXh0ZXJuIGludCBm
c2V0cG9zIChGSUxFICpfX3N0cmVhbSwgX19jb25zdCBmcG9zX3QgKl9fcG9zKTsKIyA1MzEgIi91
c3IvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiB2b2lkIGNsZWFyZXJyIChGSUxFICpfX3N0cmVh
bSk7CgpleHRlcm4gaW50IGZlb2YgKEZJTEUgKl9fc3RyZWFtKTsKCmV4dGVybiBpbnQgZmVycm9y
IChGSUxFICpfX3N0cmVhbSk7CgoKCmV4dGVybiB2b2lkIGNsZWFyZXJyX3VubG9ja2VkIChGSUxF
ICpfX3N0cmVhbSk7CmV4dGVybiBpbnQgZmVvZl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pOwpl
eHRlcm4gaW50IGZlcnJvcl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pOwoKCgoKZXh0ZXJuIHZv
aWQgcGVycm9yIChfX2NvbnN0IGNoYXIgKl9fcyk7CgoKCgpleHRlcm4gaW50IHN5c19uZXJyOwpl
eHRlcm4gX19jb25zdCBjaGFyICpfX2NvbnN0IHN5c19lcnJsaXN0W107CiMgNTYyICIvdXNyL2lu
Y2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gaW50IGZpbGVubyAoRklMRSAqX19zdHJlYW0pOwoKCgoK
ZXh0ZXJuIGludCBmaWxlbm9fdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKTsKCgoKCgoKZXh0ZXJu
IEZJTEUgKnBvcGVuIChfX2NvbnN0IGNoYXIgKl9fY29tbWFuZCwgX19jb25zdCBjaGFyICpfX21v
ZGVzKTsKCgpleHRlcm4gaW50IHBjbG9zZSAoRklMRSAqX19zdHJlYW0pOwoKCgoKCmV4dGVybiBj
aGFyICpjdGVybWlkIChjaGFyICpfX3MpOwojIDYwOSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMK
ZXh0ZXJuIHZvaWQgZmxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSk7CgoKCmV4dGVybiBpbnQgZnRy
eWxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSk7CgoKZXh0ZXJuIHZvaWQgZnVubG9ja2ZpbGUgKEZJ
TEUgKl9fc3RyZWFtKTsKIyA2MzEgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzCiMgMzIgIi91c3Iv
aW5jbHVkZS9iaXRzL3N0ZGlvLmgiIDEgMwpleHRlcm4gX19pbmxpbmUgaW50CnZwcmludGYgKF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZtdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCnsKICBy
ZXR1cm4gdmZwcmludGYgKHN0ZG91dCwgX19mbXQsIF9fYXJnKTsKfQoKCmV4dGVybiBfX2lubGlu
ZSBpbnQKZ2V0Y2hhciAodm9pZCkKewogIHJldHVybiBfSU9fZ2V0YyAoc3RkaW4pOwp9CgoKCgpl
eHRlcm4gX19pbmxpbmUgaW50CmdldGNfdW5sb2NrZWQgKEZJTEUgKl9fZnApCnsKICByZXR1cm4g
KChfX2ZwKS0+X0lPX3JlYWRfcHRyID49IChfX2ZwKS0+X0lPX3JlYWRfZW5kID8gX191ZmxvdyAo
X19mcCkgOiAqKHVuc2lnbmVkIGNoYXIgKikgKF9fZnApLT5fSU9fcmVhZF9wdHIrKyk7Cn0KCgpl
eHRlcm4gX19pbmxpbmUgaW50CmdldGNoYXJfdW5sb2NrZWQgKHZvaWQpCnsKICByZXR1cm4gKChz
dGRpbiktPl9JT19yZWFkX3B0ciA+PSAoc3RkaW4pLT5fSU9fcmVhZF9lbmQgPyBfX3VmbG93IChz
dGRpbikgOiAqKHVuc2lnbmVkIGNoYXIgKikgKHN0ZGluKS0+X0lPX3JlYWRfcHRyKyspOwp9CgoK
CgpleHRlcm4gX19pbmxpbmUgaW50CnB1dGNoYXIgKGludCBfX2MpCnsKICByZXR1cm4gX0lPX3B1
dGMgKF9fYywgc3Rkb3V0KTsKfQoKCgoKZXh0ZXJuIF9faW5saW5lIGludApmcHV0Y191bmxvY2tl
ZCAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pCnsKICByZXR1cm4gKCgoX19zdHJlYW0pLT5fSU9f
d3JpdGVfcHRyID49IChfX3N0cmVhbSktPl9JT193cml0ZV9lbmQpID8gX19vdmVyZmxvdyAoX19z
dHJlYW0sICh1bnNpZ25lZCBjaGFyKSAoX19jKSkgOiAodW5zaWduZWQgY2hhcikgKCooX19zdHJl
YW0pLT5fSU9fd3JpdGVfcHRyKysgPSAoX19jKSkpOwp9CgoKCgoKZXh0ZXJuIF9faW5saW5lIGlu
dApwdXRjX3VubG9ja2VkIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkKewogIHJldHVybiAoKChf
X3N0cmVhbSktPl9JT193cml0ZV9wdHIgPj0gKF9fc3RyZWFtKS0+X0lPX3dyaXRlX2VuZCkgPyBf
X292ZXJmbG93IChfX3N0cmVhbSwgKHVuc2lnbmVkIGNoYXIpIChfX2MpKSA6ICh1bnNpZ25lZCBj
aGFyKSAoKihfX3N0cmVhbSktPl9JT193cml0ZV9wdHIrKyA9IChfX2MpKSk7Cn0KCgpleHRlcm4g
X19pbmxpbmUgaW50CnB1dGNoYXJfdW5sb2NrZWQgKGludCBfX2MpCnsKICByZXR1cm4gKCgoc3Rk
b3V0KS0+X0lPX3dyaXRlX3B0ciA+PSAoc3Rkb3V0KS0+X0lPX3dyaXRlX2VuZCkgPyBfX292ZXJm
bG93IChzdGRvdXQsICh1bnNpZ25lZCBjaGFyKSAoX19jKSkgOiAodW5zaWduZWQgY2hhcikgKCoo
c3Rkb3V0KS0+X0lPX3dyaXRlX3B0cisrID0gKF9fYykpKTsKfQojIDExMCAiL3Vzci9pbmNsdWRl
L2JpdHMvc3RkaW8uaCIgMwpleHRlcm4gX19pbmxpbmUgaW50CmZlb2ZfdW5sb2NrZWQgKEZJTEUg
Kl9fc3RyZWFtKQp7CiAgcmV0dXJuICgoKF9fc3RyZWFtKS0+X2ZsYWdzICYgMHgxMCkgIT0gMCk7
Cn0KCgpleHRlcm4gX19pbmxpbmUgaW50CmZlcnJvcl91bmxvY2tlZCAoRklMRSAqX19zdHJlYW0p
CnsKICByZXR1cm4gKCgoX19zdHJlYW0pLT5fZmxhZ3MgJiAweDIwKSAhPSAwKTsKfQojIDYzMSAi
L3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKCiMgMjkgIi4uL3J0L3MyLmMiIDIKCnN0cnVjdCBi
dV9saXN0IHsKICAgICAgICBsb25nIG1hZ2ljOwogICAgICAgIHN0cnVjdCBidV9saXN0ICpmb3J3
OwogICAgICAgIHN0cnVjdCBidV9saXN0ICpiYWNrOwp9OwojIDUxICIuLi9ydC9zMi5jIgpzdHJ1
Y3QgcGFydGl0aW9uIHsKCiAgICAgICAgbG9uZyBwdF9tYWdpYzsKICAgICAgICBzdHJ1Y3QgcGFy
dGl0aW9uICpwdF9mb3J3OwogICAgICAgIHN0cnVjdCBwYXJ0aXRpb24gKnB0X2JhY2s7Cn07CgoK
c3RydWN0IHJlc291cmNlIHsKICAgICAgICBsb25nIHJlX21hZ2ljOwogICAgICAgIHN0cnVjdCBi
dV9saXN0IHJlX3BhcnRoZWFkOwp9OwoKCgojIDc0ICIuLi9ydC9zMi5jIgp2b2lkCmJ1X2NrX2xp
c3RfbWFnaWMoIGhkLCBzdHIsIG1hZ2ljICkKY29uc3Qgc3RydWN0IGJ1X2xpc3QgKmhkOwpjb25z
dCBjaGFyICpzdHI7CmNvbnN0IGxvbmcgbWFnaWM7CnsKICAgICAgICByZWdpc3RlciBjb25zdCBz
dHJ1Y3QgYnVfbGlzdCAqY3VyOwogICAgICAgIGludCBoZWFkX2NvdW50ID0gMDsKICAgICAgICBp
bnQgaXRlbSA9IDA7CgogICAgICAgIGN1ciA9IGhkOwogICAgICAgIGRvIHsKICAgICAgICAgICAg
ICAgIGlmKCBjdXItPm1hZ2ljID09IDB4MDEwMTY1ODAgKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgIGhlYWRfY291bnQrKzsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiggY3VyLT5tYWdpYyAh
PSBtYWdpYyApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsIm5tZ19j
a19saXN0KCVzKSBjdXIgbWFnaWM9KCVzKXgleCwgY3VyLT5mb3J3IG1hZ2ljPSglcyl4JXgsIGhk
IG1hZ2ljPSglcyl4JXgsIGl0ZW09JWRcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RyLCAibm5uIiwgY3VyLT5tYWdpYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibm5uIiwgY3VyLT5mb3J3LT5tYWdpYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibm5uIiwgaGQtPm1hZ2ljLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0p
OwogICAgICAgICAgICAgICAgICAgICAgICBhYm9ydCgpOwogICAgICAgICAgICAgICAgfQoKICAg
ICAgICAgICAgICAgIGlmKCAhY3VyLT5mb3J3ICkgewogICAgICAgICAgICAgICAgICAgICAgICBm
cHJpbnRmKHN0ZGVyciwiYnVfY2tfbGlzdF9tYWdpYyglcykgY3VyPXgleCwgY3VyLT5mb3J3PXgl
eCwgaGQ9eCV4LCBpdGVtPSVkXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
ciwgY3VyLCBjdXItPmZvcncsIGhkLCBpdGVtICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGFi
b3J0KCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiggY3VyLT5mb3J3LT5i
YWNrICE9IGN1ciApIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsImJ1
X2NrX2xpc3RfbWFnaWMoJXMpIGN1cj14JXgsIGN1ci0+Zm9ydz14JXgsIGN1ci0+Zm9ydy0+YmFj
az14JXgsIGhkPXgleCwgaXRlbT0lZFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHIsIGN1ciwgY3VyLT5mb3J3LCBjdXItPmZvcnctPmJhY2ssIGhkLCBpdGVtICk7CiAgICAg
ICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCIgY3VyPSVzLCBjdXItPmZvcnc9JXMs
IGN1ci0+Zm9ydy0+YmFjaz0lc1xuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bm5uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm5uIiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAibm5uIiApOwogICAgICAgICAgICAgICAgICAgICAgICBhYm9y
dCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYoICFjdXItPmJhY2sgKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCJidV9ja19saXN0X21hZ2lj
KCVzKSBjdXI9eCV4LCBjdXItPmJhY2s9eCV4LCBoZD14JXgsIGl0ZW09JWRcbiIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RyLCBjdXIsIGN1ci0+YmFjaywgaGQsIGl0ZW0gKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgYWJvcnQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgIGlmKCBjdXItPmJhY2stPmZvcncgIT0gY3VyICkgewogICAgICAgICAgICAgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwiYnVfY2tfbGlzdF9tYWdpYyglcykgY3VyPXgleCwgY3Vy
LT5iYWNrPXgleCwgY3VyLT5iYWNrLT5mb3J3PXgleCwgaGQ9eCV4LCBpdGVtPSVkXG4iLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ciwgY3VyLCBjdXItPmJhY2ssIGN1ci0+YmFj
ay0+Zm9ydywgaGQsIGl0ZW0gKTsKICAgICAgICAgICAgICAgICAgICAgICAgYWJvcnQoKTsKICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGN1ciA9IGN1ci0+Zm9ydzsKICAgICAgICAg
ICAgICAgIGl0ZW0rKzsKICAgICAgICB9IHdoaWxlKCBjdXIgIT0gaGQgKTsKCiAgICAgICAgaWYo
IGhlYWRfY291bnQgIT0gMSApIHsKICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCJidV9j
a19saXN0X21hZ2ljKCVzKSBoZWFkX2NvdW50ID0gJWQsIGhkPXgleCwgaXRlbXM9JWRcbiIsIHN0
ciwgaGVhZF9jb3VudCwgaGQsIGl0ZW0pOwogICAgICAgICAgICAgICAgYWJvcnQoKTsKICAgICAg
ICB9Cn0KCgoKCgoKCgp2b2lkIHJ0X2ZyZWVfcHQoc3RydWN0IHBhcnRpdGlvbiAqcCwgc3RydWN0
IHJlc291cmNlICpyZXMpIHsKICAgICAgICB7IHsgKChzdHJ1Y3QgYnVfbGlzdCAqKShwKSktPmZv
cncgPSAoJihyZXMtPnJlX3BhcnRoZWFkKSktPmZvcnc7ICgoc3RydWN0IGJ1X2xpc3QgKikocCkp
LT5iYWNrID0gKCYocmVzLT5yZV9wYXJ0aGVhZCkpOyAoJihyZXMtPnJlX3BhcnRoZWFkKSktPmZv
cncgPSAoKHN0cnVjdCBidV9saXN0ICopKHApKTsgKChzdHJ1Y3QgYnVfbGlzdCAqKShwKSktPmZv
cnctPmJhY2sgPSAoKHN0cnVjdCBidV9saXN0ICopKHApKTsgfTsgfTsKfQoKCgp2b2lkIHJ0X2Zy
ZWVfcHRfbGlzdCggc3RydWN0IHBhcnRpdGlvbiAqX2hlYWRwLCBzdHJ1Y3QgcmVzb3VyY2UgKl9y
ZXMgKQp7CiAgICAgICAgcmVnaXN0ZXIgc3RydWN0IHBhcnRpdGlvbiAqX3BwLCAqX3phcDsKCiAg
ICAgICAgYnVfY2tfbGlzdF9tYWdpYyggKHN0cnVjdCBidV9saXN0ICopJl9yZXMtPnJlX3BhcnRo
ZWFkLCAicmVfcGFydGhlYWQiLCAweDg3Njg3NjgxKTsKICAgICAgICBfcHAgPSAoX2hlYWRwKS0+
cHRfZm9ydzsKICAgICAgICB3aGlsZSggX3BwICE9IChfaGVhZHApICkgewogICAgICAgICAgICAg
ICAgX3phcCA9IF9wcDsKICAgICAgICAgICAgICAgIF9wcCA9IF9wcC0+cHRfZm9ydzsKICAgICAg
ICAgICAgICAgIHsgKChzdHJ1Y3QgYnVfbGlzdCAqKShfemFwKSktPmZvcnctPmJhY2sgPSAoKHN0
cnVjdCBidV9saXN0ICopKF96YXApKS0+YmFjazsgKChzdHJ1Y3QgYnVfbGlzdCAqKShfemFwKSkt
PmJhY2stPmZvcncgPSAoKHN0cnVjdCBidV9saXN0ICopKF96YXApKS0+Zm9ydzsgKChzdHJ1Y3Qg
YnVfbGlzdCAqKShfemFwKSktPmZvcncgPSAoKHN0cnVjdCBidV9saXN0ICopKF96YXApKS0+YmFj
ayA9ICgoc3RydWN0IGJ1X2xpc3QgKikwKTsgfTsKCgogICAgICAgICAgICAgICAgeyB7ICgoc3Ry
dWN0IGJ1X2xpc3QgKikoX3phcCkpLT5mb3J3ID0gKCYoX3Jlcy0+cmVfcGFydGhlYWQpKS0+Zm9y
dzsgKChzdHJ1Y3QgYnVfbGlzdCAqKShfemFwKSktPmJhY2sgPSAoJihfcmVzLT5yZV9wYXJ0aGVh
ZCkpOyAoJihfcmVzLT5yZV9wYXJ0aGVhZCkpLT5mb3J3ID0gKChzdHJ1Y3QgYnVfbGlzdCAqKShf
emFwKSk7ICgoc3RydWN0IGJ1X2xpc3QgKikoX3phcCkpLT5mb3J3LT5iYWNrID0gKChzdHJ1Y3Qg
YnVfbGlzdCAqKShfemFwKSk7IH07IH07CgoKCiAgICAgICAgfQogICAgICAgIChfaGVhZHApLT5w
dF9mb3J3ID0gKF9oZWFkcCktPnB0X2JhY2sgPSAoX2hlYWRwKTsKICAgICAgICBidV9ja19saXN0
X21hZ2ljKCAoc3RydWN0IGJ1X2xpc3QgKikmX3Jlcy0+cmVfcGFydGhlYWQsICJyZV9wYXJ0aGVh
ZCIsIDB4ODc2ODc2ODEpOwp9CgpzdHJ1Y3QgcmVzb3VyY2UgcnRfdW5pcmVzb3VyY2U7CgpzdHJ1
Y3QgcGFydGl0aW9uIGJ1c3lfaGVhZDsKc3RydWN0IHBhcnRpdGlvbiBhOwoKaW50Cm1haW4oKQp7
CiAgICAgICAgeyAoKHN0cnVjdCBidV9saXN0ICopJnJ0X3VuaXJlc291cmNlLnJlX3BhcnRoZWFk
KS0+Zm9ydyA9ICgoc3RydWN0IGJ1X2xpc3QgKikmcnRfdW5pcmVzb3VyY2UucmVfcGFydGhlYWQp
LT5iYWNrID0gKChzdHJ1Y3QgYnVfbGlzdCAqKSZydF91bmlyZXNvdXJjZS5yZV9wYXJ0aGVhZCk7
ICgoc3RydWN0IGJ1X2xpc3QgKikmcnRfdW5pcmVzb3VyY2UucmVfcGFydGhlYWQpLT5tYWdpYyA9
IDB4MDEwMTY1ODA7IH07CiAgICAgICAgeyAoKHN0cnVjdCBidV9saXN0ICopJmJ1c3lfaGVhZCkt
PmZvcncgPSAoKHN0cnVjdCBidV9saXN0ICopJmJ1c3lfaGVhZCktPmJhY2sgPSAoKHN0cnVjdCBi
dV9saXN0ICopJmJ1c3lfaGVhZCk7ICgoc3RydWN0IGJ1X2xpc3QgKikmYnVzeV9oZWFkKS0+bWFn
aWMgPSAweDAxMDE2NTgwOyB9OwoKICAgICAgICBhLnB0X21hZ2ljID0gMHg4NzY4NzY4MTsKCiAg
ICAgICAgYnVfY2tfbGlzdF9tYWdpYyggKHN0cnVjdCBidV9saXN0ICopJmJ1c3lfaGVhZCwgImJ1
c3lfaGVhZCIsIDB4ODc2ODc2ODEpOwogICAgICAgIGJ1X2NrX2xpc3RfbWFnaWMoIChzdHJ1Y3Qg
YnVfbGlzdCAqKSZydF91bmlyZXNvdXJjZS5yZV9wYXJ0aGVhZCwgInJlX3BhcnRoZWFkIiwgMHg4
NzY4NzY4MSk7CgogICAgICAgIHsgKChzdHJ1Y3QgYnVfbGlzdCAqKSZhKS0+Zm9ydyA9ICgoc3Ry
dWN0IGJ1X2xpc3QgKikmYnVzeV9oZWFkKS0+Zm9ydzsgKChzdHJ1Y3QgYnVfbGlzdCAqKSZhKS0+
YmFjayA9ICgoc3RydWN0IGJ1X2xpc3QgKikmYnVzeV9oZWFkKTsgKChzdHJ1Y3QgYnVfbGlzdCAq
KSZidXN5X2hlYWQpLT5mb3J3ID0gKChzdHJ1Y3QgYnVfbGlzdCAqKSZhKTsgKChzdHJ1Y3QgYnVf
bGlzdCAqKSZhKS0+Zm9ydy0+YmFjayA9ICgoc3RydWN0IGJ1X2xpc3QgKikmYSk7IH0KCiAgICAg
ICAgYnVfY2tfbGlzdF9tYWdpYyggKHN0cnVjdCBidV9saXN0ICopJmJ1c3lfaGVhZCwgImJ1c3lf
aGVhZCIsIDB4ODc2ODc2ODEpOwogICAgICAgIGJ1X2NrX2xpc3RfbWFnaWMoIChzdHJ1Y3QgYnVf
bGlzdCAqKSZydF91bmlyZXNvdXJjZS5yZV9wYXJ0aGVhZCwgInJlX3BhcnRoZWFkIiwgMHg4NzY4
NzY4MSk7CgogICAgICAgIHJ0X2ZyZWVfcHRfbGlzdCggJmJ1c3lfaGVhZCwgJnJ0X3VuaXJlc291
cmNlICk7CgogICAgICAgIGJ1X2NrX2xpc3RfbWFnaWMoIChzdHJ1Y3QgYnVfbGlzdCAqKSZidXN5
X2hlYWQsICJidXN5X2hlYWQiLCAweDg3Njg3NjgxKTsKICAgICAgICBidV9ja19saXN0X21hZ2lj
KCAoc3RydWN0IGJ1X2xpc3QgKikmcnRfdW5pcmVzb3VyY2UucmVfcGFydGhlYWQsICJyZV9wYXJ0
aGVhZCIsIDB4ODc2ODc2ODEpOwoKICAgICAgICByZXR1cm4gMDsKfQo=

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]