This is the mail archive of the gcc-bugs@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]

c/1942: error in do_jump



>Number:         1942
>Category:       c
>Synopsis:       error in do_jump
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 12 00:26:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     gcc
>Release:        gcc version 2.95.3 20010125 (prerelease)
>Organization:
>Environment:
Reading specs from /opt/gcc30/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/specs
>Description:
internal compiler error in attached test case:
on gcc 2.95.2 and 2.95.3 testrelease 3
Code:
Internal compiler error in `do_jump', at expr.c:11012

gcc configure options: --prefix=/opt/gcc30/bin
			-enable-shared

No -Wall messages
>How-To-Repeat:
see test case:
do a /opt/gcc30/bin/gcc -g -o lli lli.c

#include <stdlib.h>
#include <stdio.h>
 
int main (void)
{
  long long lli;
 
  if ( ! (lli = 0x1a2a3a4a5a6a7a8aLL) )
    ;
 
  return 0;
}                      
>Fix:

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

IyAxICJsbGkuYyIKIyAxICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDEgMwogCgoKCgoKCgoKCgoK
CgoKCgoKIAoKCgoKCiMgMSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDEgMwogCgoKCgoKCgoK
CgoKCgoKCgoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCiAKCgoKIAoKCgoKCgoK
IAojIDEzNyAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDMKCgogCgoKCgoKCgoKCiAKCgoKCgog
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiMgMTk1ICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMu
aCIgMwoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgogCgoKCgoKCgoKIAoK
CgoKIAoKIyAxICIvdXNyL2luY2x1ZGUvc3lzL2NkZWZzLmgiIDEgMwogCgoKCgoKCgoKCgoKCgoK
CgoKCgoKIAoKCgoKIAoKCgoKCiAKCgoKCgoKCgogCgoKCgojIDcxICIvdXNyL2luY2x1ZGUvc3lz
L2NkZWZzLmgiIDMKCgogCgoKCgoKCgogCgoKCiMgMTAzICIvdXNyL2luY2x1ZGUvc3lzL2NkZWZz
LmgiIDMKCgoKIAoKCgoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCgoKCiAKCgoKCgoKCgog
CgoKCgoKCgoKCiAKCgoKCgoKCiMgMjQ5ICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAzCgoK
IAoKCgoKCgoKCiAKCgoKCgogCgogCgoKCgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvZ251L3N0dWJz
LmgiIDEgMwogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyAyNzcgIi91
c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAyIDMKCgoKCiMgMjUgIi91c3IvaW5jbHVkZS9zdGRsaWIu
aCIgMiAzCgoKIAoKCgoKCiMgMSAiL29wdC9nY2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4
LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCgoKCgoKCiAKCgojIDE5ICIvb3B0L2dj
YzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5o
IiAzCgoKCiAKCgogCgoKCgoKIAoKCiMgNjEgIi9vcHQvZ2NjMzAvbGliL2djYy1saWIvaTY4Ni1w
Yy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgogCgoKCgoKIAoKCgoKCgoK
CgoKCgoKCgoKCgogCgoKCgoKIAoKIAoKIyAxMzEgIi9vcHQvZ2NjMzAvbGliL2djYy1saWIvaTY4
Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgogCgogCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgp0eXBlZGVmIHVuc2lnbmVkIGludCBzaXplX3Q7CgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgogCgoKCgogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
IAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCnR5cGVkZWYgbG9uZyBpbnQgd2NoYXJfdDsKCgoK
CgoKCgoKCgoKCgoKCgojIDI4MyAiL29wdC9nY2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4
LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCiAKCiAKCiMgMzE3ICIvb3B0L2djYzMw
L2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAz
CgoKCgogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiMgMzMgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIg
MiAzCgoKIAoKCgoKIAp0eXBlZGVmIHN0cnVjdAogIHsKICAgIGludCBxdW90OwkJCSAKICAgIGlu
dCByZW07CQkJIAogIH0gZGl2X3Q7CgogCgp0eXBlZGVmIHN0cnVjdAogIHsKICAgIGxvbmcgaW50
IHF1b3Q7CQkgCiAgICBsb25nIGludCByZW07CQkgCiAgfSBsZGl2X3Q7CgoKCiMgNjUgIi91c3Iv
aW5jbHVkZS9zdGRsaWIuaCIgMwoKCgogCgoKCiAKCgoKCgogCgpleHRlcm4gc2l6ZV90IF9fY3R5
cGVfZ2V0X21iX2N1cl9tYXggICh2b2lkKSAgICA7CgoKIApleHRlcm4gZG91YmxlIGF0b2YgIChf
X2NvbnN0IGNoYXIgKl9fbnB0cikgICAgOwogCmV4dGVybiBpbnQgYXRvaSAgKF9fY29uc3QgY2hh
ciAqX19ucHRyKSAgICA7CiAKZXh0ZXJuIGxvbmcgaW50IGF0b2wgIChfX2NvbnN0IGNoYXIgKl9f
bnB0cikgICAgOwoKCiAKX19leHRlbnNpb25fXyBleHRlcm4gbG9uZyBsb25nIGludCBhdG9sbCAg
KF9fY29uc3QgY2hhciAqX19ucHRyKSAgICA7CgoKIApleHRlcm4gZG91YmxlIHN0cnRvZCAgKF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCgkJCSAgIGNoYXIgKipfX3Jlc3RyaWN0IF9f
ZW5kcHRyKSAgICA7CgoKCgoKCgoKCgogCmV4dGVybiBsb25nIGludCBzdHJ0b2wgIChfX2NvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAoJCQkgICAgIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5k
cHRyLCBpbnQgX19iYXNlKSAgICA7CiAKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW50IHN0cnRvdWwg
IChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAoJCQkJICAgICAgIGNoYXIgKipfX3Jl
c3RyaWN0IF9fZW5kcHRyLAoJCQkJICAgICAgIGludCBfX2Jhc2UpICAgIDsKCgogCl9fZXh0ZW5z
aW9uX18KZXh0ZXJuIGxvbmcgbG9uZyBpbnQgc3RydG9xICAoX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fbnB0ciwKCQkJCSAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2Up
ICAgIDsKIApfX2V4dGVuc2lvbl9fCmV4dGVybiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHN0cnRv
dXEgIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAoJCQkJCSAgICBjaGFyICoqX19y
ZXN0cmljdCBfX2VuZHB0ciwKCQkJCQkgICAgaW50IF9fYmFzZSkgICAgOwoKCgogCgogCl9fZXh0
ZW5zaW9uX18KZXh0ZXJuIGxvbmcgbG9uZyBpbnQgc3RydG9sbCAgKF9fY29uc3QgY2hhciAqX19y
ZXN0cmljdCBfX25wdHIsCgkJCQkgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9f
YmFzZSkgICAgOwogCl9fZXh0ZW5zaW9uX18KZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQg
c3RydG91bGwgIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAoJCQkJCSAgICAgY2hh
ciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsCgkJCQkJICAgICBpbnQgX19iYXNlKSAgICA7CgoKCiMg
MTkwICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMKCgoKIAoKCmV4dGVybiBkb3VibGUgX19zdHJ0
b2RfaW50ZXJuYWwgIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAoJCQkJICAgICAg
Y2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsCgkJCQkgICAgICBpbnQgX19ncm91cCkgICAgOwpl
eHRlcm4gZmxvYXQgX19zdHJ0b2ZfaW50ZXJuYWwgIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg
X19ucHRyLAoJCQkJICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fZ3JvdXAp
ICAgIDsKZXh0ZXJuIGxvbmcgZG91YmxlICBfX3N0cnRvbGRfaW50ZXJuYWwgIChfX2NvbnN0IGNo
YXIgKgoJCQkJCQlfX3Jlc3RyaWN0IF9fbnB0ciwKCQkJCQkJY2hhciAqKl9fcmVzdHJpY3QgX19l
bmRwdHIsCgkJCQkJCWludCBfX2dyb3VwKSAgICA7CgpleHRlcm4gbG9uZyBpbnQgX19zdHJ0b2xf
aW50ZXJuYWwgIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAoJCQkJCWNoYXIgKipf
X3Jlc3RyaWN0IF9fZW5kcHRyLAoJCQkJCWludCBfX2Jhc2UsIGludCBfX2dyb3VwKSAgICA7CgoK
CmV4dGVybiB1bnNpZ25lZCBsb25nIGludCBfX3N0cnRvdWxfaW50ZXJuYWwgIChfX2NvbnN0IGNo
YXIgKgoJCQkJCQkgIF9fcmVzdHJpY3QgX19ucHRyLAoJCQkJCQkgIGNoYXIgKipfX3Jlc3RyaWN0
IF9fZW5kcHRyLAoJCQkJCQkgIGludCBfX2Jhc2UsIGludCBfX2dyb3VwKSAgICA7CgoKCgpfX2V4
dGVuc2lvbl9fCmV4dGVybiBsb25nIGxvbmcgaW50IF9fc3RydG9sbF9pbnRlcm5hbCAgKF9fY29u
c3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCgkJCQkJICAgICAgY2hhciAqKl9fcmVzdHJpY3Qg
X19lbmRwdHIsCgkJCQkJICAgICAgaW50IF9fYmFzZSwgaW50IF9fZ3JvdXApICAgIDsKCgoKX19l
eHRlbnNpb25fXwpleHRlcm4gdW5zaWduZWQgbG9uZyBsb25nIGludCBfX3N0cnRvdWxsX2ludGVy
bmFsICAoX19jb25zdCBjaGFyICoKCQkJCQkJCV9fcmVzdHJpY3QgX19ucHRyLAoJCQkJCQkJY2hh
ciAqKgoJCQkJCQkJX19yZXN0cmljdCBfX2VuZHB0ciwKCQkJCQkJCWludCBfX2Jhc2UsCgkJCQkJ
CQlpbnQgX19ncm91cCkgICAgOwoKCgoKIyAzMjYgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwoK
CgoKIAoKCmV4dGVybiBjaGFyICpsNjRhICAobG9uZyBpbnQgX19uKSAgICA7CgogCmV4dGVybiBs
b25nIGludCBhNjRsICAoX19jb25zdCBjaGFyICpfX3MpICAgIDsKCgojIDEgIi91c3IvaW5jbHVk
ZS9zeXMvdHlwZXMuaCIgMSAzCiAKCgoKCgoKCgoKCgoKCgoKCgogCgoKCgoKCgoKIAoKIyAxICIv
dXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoKCiAKCgoKCgoK
CgoKIyAxICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9p
bmNsdWRlL3N0ZGRlZi5oIiAxIDMKCgoKCgoKIAoKCiMgMTkgIi9vcHQvZ2NjMzAvbGliL2djYy1s
aWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgoKIAoKCiAK
CgoKCgogCgoKIyA2MSAiL29wdC9nY2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8y
Ljk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCiAKCgoKCgogCgoKCgoKCgoKCgoKCgoKCgoKCiAK
CgoKCgogCgogCgojIDEzMSAiL29wdC9nY2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdu
dS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCiAKCiAKCgojIDE4OCAiL29wdC9nY2MzMC9s
aWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoK
CgoKCiAKCgoKCiAKCiMgMjcxICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgt
Z251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIyAyODMgIi9vcHQvZ2NjMzAvbGliL2dj
Yy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgogCgog
CgojIDMxNyAiL29wdC9nY2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMv
aW5jbHVkZS9zdGRkZWYuaCIgMwoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgojIDI5ICIvdXNy
L2luY2x1ZGUvYml0cy90eXBlcy5oIiAyIDMKCgogCnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3Vf
Y2hhcjsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBfX3Vfc2hvcnQ7CnR5cGVkZWYgdW5zaWduZWQg
aW50IF9fdV9pbnQ7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBfX3VfbG9uZzsKCl9fZXh0ZW5zaW9u
X18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50IF9fdV9xdWFkX3Q7Cl9fZXh0ZW5zaW9u
X18gdHlwZWRlZiBsb25nIGxvbmcgaW50IF9fcXVhZF90OwojIDQ4ICIvdXNyL2luY2x1ZGUvYml0
cy90eXBlcy5oIiAzCgp0eXBlZGVmIHNpZ25lZCBjaGFyIF9faW50OF90Owp0eXBlZGVmIHVuc2ln
bmVkIGNoYXIgX191aW50OF90Owp0eXBlZGVmIHNpZ25lZCBzaG9ydCBpbnQgX19pbnQxNl90Owp0
eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBfX3VpbnQxNl90Owp0eXBlZGVmIHNpZ25lZCBpbnQg
X19pbnQzMl90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VpbnQzMl90OwoKX19leHRlbnNpb25f
XyB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50IF9faW50NjRfdDsKX19leHRlbnNpb25fXyB0
eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX191aW50NjRfdDsKCnR5cGVkZWYgX19xdWFk
X3QgKl9fcWFkZHJfdDsKCnR5cGVkZWYgX191X3F1YWRfdCBfX2Rldl90OwkJIAp0eXBlZGVmIF9f
dV9pbnQgX191aWRfdDsJCSAKdHlwZWRlZiBfX3VfaW50IF9fZ2lkX3Q7CQkgCnR5cGVkZWYgX191
X2xvbmcgX19pbm9fdDsJCSAKdHlwZWRlZiBfX3VfaW50IF9fbW9kZV90OwkJIAp0eXBlZGVmIF9f
dV9pbnQgX19ubGlua190OyAJCSAKdHlwZWRlZiBsb25nIGludCBfX29mZl90OwkJIAp0eXBlZGVm
IF9fcXVhZF90IF9fbG9mZl90OwkJIAp0eXBlZGVmIGludCBfX3BpZF90OwkJCSAKdHlwZWRlZiBp
bnQgX19zc2l6ZV90OwkJCSAKdHlwZWRlZiBsb25nIGludCBfX3JsaW1fdDsJCSAKdHlwZWRlZiBf
X3F1YWRfdCBfX3JsaW02NF90OwkJIAp0eXBlZGVmIF9fdV9pbnQgX19pZF90OwkJCSAKCnR5cGVk
ZWYgc3RydWN0CiAgewogICAgaW50IF9fdmFsWzJdOwogIH0gX19mc2lkX3Q7CQkJCSAKCiAKdHlw
ZWRlZiBpbnQgX19kYWRkcl90OwkJCSAKdHlwZWRlZiBjaGFyICpfX2NhZGRyX3Q7CnR5cGVkZWYg
bG9uZyBpbnQgX190aW1lX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX19zd2Jsa190OwkJIAoMCnR5cGVk
ZWYgbG9uZyBpbnQgX19jbG9ja190OwoKIAp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9fZmRf
bWFzazsKCiAKCgogCgoKCgogCnR5cGVkZWYgc3RydWN0CiAgewogICAgIAoKCgoKCiAgICBfX2Zk
X21hc2sgX19mZHNfYml0c1sxMDI0ICAvICg4ICogc2l6ZW9mIChfX2ZkX21hc2spKSBdOwoKCiAg
fSBfX2ZkX3NldDsKCgp0eXBlZGVmIGludCBfX2tleV90OwoKIAp0eXBlZGVmIHVuc2lnbmVkIHNo
b3J0IGludCBfX2lwY19waWRfdDsKCgogCgogCnR5cGVkZWYgbG9uZyBpbnQgX19ibGtjbnRfdDsK
dHlwZWRlZiBfX3F1YWRfdCBfX2Jsa2NudDY0X3Q7CgogCnR5cGVkZWYgX191X2xvbmcgX19mc2Js
a2NudF90Owp0eXBlZGVmIF9fdV9xdWFkX3QgX19mc2Jsa2NudDY0X3Q7CgogCnR5cGVkZWYgX191
X2xvbmcgX19mc2ZpbGNudF90Owp0eXBlZGVmIF9fdV9xdWFkX3QgX19mc2ZpbGNudDY0X3Q7Cgog
CnR5cGVkZWYgX191X2xvbmcgX19pbm82NF90OwoKIAp0eXBlZGVmIF9fbG9mZl90IF9fb2ZmNjRf
dDsKCiAKdHlwZWRlZiBpbnQgX190X3NjYWxhcl90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3Rf
dXNjYWxhcl90OwoKIAp0eXBlZGVmIGludCBfX2ludHB0cl90OwoKCiAKCgoKCgojIDMwICIvdXNy
L2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMwoKCgp0eXBlZGVmIF9fdV9jaGFyIHVfY2hhcjsKdHlw
ZWRlZiBfX3Vfc2hvcnQgdV9zaG9ydDsKdHlwZWRlZiBfX3VfaW50IHVfaW50Owp0eXBlZGVmIF9f
dV9sb25nIHVfbG9uZzsKdHlwZWRlZiBfX3F1YWRfdCBxdWFkX3Q7CnR5cGVkZWYgX191X3F1YWRf
dCB1X3F1YWRfdDsKdHlwZWRlZiBfX2ZzaWRfdCBmc2lkX3Q7CgoKdHlwZWRlZiBfX2xvZmZfdCBs
b2ZmX3Q7CgoKCnR5cGVkZWYgX19pbm9fdCBpbm9fdDsKCgoKCgoKCgoKCnR5cGVkZWYgX19kZXZf
dCBkZXZfdDsKCgoKCnR5cGVkZWYgX19naWRfdCBnaWRfdDsKCgoKCnR5cGVkZWYgX19tb2RlX3Qg
bW9kZV90OwoKCgoKdHlwZWRlZiBfX25saW5rX3QgbmxpbmtfdDsKCgoKCnR5cGVkZWYgX191aWRf
dCB1aWRfdDsKCgoKCgp0eXBlZGVmIF9fb2ZmX3Qgb2ZmX3Q7CgoKCgoKCgoKCgoKdHlwZWRlZiBf
X3BpZF90IHBpZF90OwoKCgoKdHlwZWRlZiBfX2lkX3QgaWRfdDsKCgoKdHlwZWRlZiBfX3NzaXpl
X3Qgc3NpemVfdDsKCgoKCnR5cGVkZWYgX19kYWRkcl90IGRhZGRyX3Q7CnR5cGVkZWYgX19jYWRk
cl90IGNhZGRyX3Q7CgoKCnR5cGVkZWYgX19rZXlfdCBrZXlfdDsKCgoKCgoKIyAxICIvdXNyL2lu
Y2x1ZGUvdGltZS5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoKCiAKCgoKCgoKCgoKCgoKCgojIDUx
ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzCgoKCiMgNjIgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMK
CgoKCgoKCgogCnR5cGVkZWYgX190aW1lX3QgdGltZV90OwoKCgoKCiMgODkgIi91c3IvaW5jbHVk
ZS90aW1lLmgiIDMKCgoKCiMgMjc5ICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzCgoKCiMgMTIxICIv
dXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMwoKCgojIDEgIi9vcHQvZ2NjMzAvbGliL2djYy1s
aWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwoKCgoKCgog
CgoKIyAxOSAiL29wdC9nY2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMv
aW5jbHVkZS9zdGRkZWYuaCIgMwoKCgogCgoKIAoKCgoKCiAKCgojIDYxICIvb3B0L2djYzMwL2xp
Yi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoK
IAoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCiAKCiAKCiMgMTMxICIvb3B0L2djYzMw
L2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAz
CgoKIAoKIAoKCiMgMTg4ICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251
LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKCgoKIAoKCgoKIAoKIyAyNzEgIi9vcHQvZ2Nj
MzAvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgi
IDMKCgojIDI4MyAiL29wdC9nY2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1
LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCiAKCiAKCiMgMzE3ICIvb3B0L2djYzMwL2xpYi9nY2Mt
bGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKCgogCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCiMgMTI0ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMwoK
CgogCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgdWxvbmc7CnR5cGVkZWYgdW5zaWduZWQgc2hv
cnQgaW50IHVzaG9ydDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDsKCgogCgojIDE1OCAiL3Vz
ci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzCgoKIAoKCgoKCgoKdHlwZWRlZiBpbnQgaW50OF90IF9f
YXR0cmlidXRlX18gKChfX21vZGVfXyAoICBfX1FJX18gKSkpIDsKdHlwZWRlZiBpbnQgaW50MTZf
dCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKCAgX19ISV9fICkpKSA7CnR5cGVkZWYgaW50IGlu
dDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fICggIF9fU0lfXyApKSkgOwp0eXBlZGVmIGlu
dCBpbnQ2NF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoICBfX0RJX18gKSkpIDsKCgp0eXBl
ZGVmIHVuc2lnbmVkIGludCB1X2ludDhfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKCAgX19R
SV9fICkpKSA7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgo
X19tb2RlX18gKCAgX19ISV9fICkpKSA7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50MzJfdCBf
X2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKCAgX19TSV9fICkpKSA7CnR5cGVkZWYgdW5zaWduZWQg
aW50IHVfaW50NjRfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKCAgX19ESV9fICkpKSA7Cgp0
eXBlZGVmIGludCByZWdpc3Rlcl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX193b3JkX18p
KSk7CgoKIAoKCgoKCgogCiMgMSAiL3Vzci9pbmNsdWRlL2VuZGlhbi5oIiAxIDMKIAoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKIAoKCgoKCgoKCgogCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvZW5kaWFu
LmgiIDEgMwogCgoKCgoKCiMgMzUgIi91c3IvaW5jbHVkZS9lbmRpYW4uaCIgMiAzCgoKIAoKCgoK
CgoKCgoKCgoKIyAxOTAgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzCgoKIAojIDEgIi91
c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDEgMwogCgoKCgoKCgoKCgoKCgoKCgoKCiAKCgoKCgoK
IAoKCiAKIyAxICIvdXNyL2luY2x1ZGUvYml0cy9zZWxlY3QuaCIgMSAzCiAKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCiMgMzYgIi91c3IvaW5jbHVkZS9iaXRzL3NlbGVjdC5oIiAzCgoKCgoKCgoK
CgoKCiMgNTYgIi91c3IvaW5jbHVkZS9iaXRzL3NlbGVjdC5oIiAzCgojIDcyICIvdXNyL2luY2x1
ZGUvYml0cy9zZWxlY3QuaCIgMwoKIyAzMSAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMiAz
CgoKIAojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3NpZ3NldC5oIiAxIDMKIAoKCgoKCgoKCgoKCgoK
CgoKCgoKCgp0eXBlZGVmIGludCBfX3NpZ19hdG9taWNfdDsKCiAKCgp0eXBlZGVmIHN0cnVjdAog
IHsKICAgIHVuc2lnbmVkIGxvbmcgaW50IF9fdmFsWygxMDI0IC8gKDggKiBzaXplb2YgKHVuc2ln
bmVkIGxvbmcgaW50KSkpIF07CiAgfSBfX3NpZ3NldF90OwoKCgoKIAoKCgoKCiMgMTI1ICIvdXNy
L2luY2x1ZGUvYml0cy9zaWdzZXQuaCIgMwoKIyAzNCAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3Qu
aCIgMiAzCgoKIAoKIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMKIAoKCgoKCgoKCgoKCgoK
CgoKCiAKCgoKCgoKCgoKCgoKCgojIDUxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAzCgoKCiMgNjIg
Ii91c3IvaW5jbHVkZS90aW1lLmgiIDMKCgoKIyA3MyAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMwoK
CgoKCgoKCiAKCnN0cnVjdCB0aW1lc3BlYwogIHsKICAgIGxvbmcgaW50IHR2X3NlYzsJCSAKICAg
IGxvbmcgaW50IHR2X25zZWM7CQkgCiAgfTsKCgoKCgojIDI3OSAiL3Vzci9pbmNsdWRlL3RpbWUu
aCIgMwoKCgojIDM4ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAyIDMKCgogCgogCgoKCnN0
cnVjdCB0aW1ldmFsOwoKdHlwZWRlZiBfX2ZkX21hc2sgZmRfbWFzazsKCiAKdHlwZWRlZiBfX2Zk
X3NldCBmZF9zZXQ7CgogCgoKCiAKCgoKCiAKCgoKCgoKIAoKCgoKZXh0ZXJuIGludCBfX3NlbGVj
dCAgKGludCBfX25mZHMsIF9fZmRfc2V0ICpfX3JlYWRmZHMsCgkJCSAgX19mZF9zZXQgKl9fd3Jp
dGVmZHMsIF9fZmRfc2V0ICpfX2V4Y2VwdGZkcywKCQkJICBzdHJ1Y3QgdGltZXZhbCAqX190aW1l
b3V0KSAgICA7CmV4dGVybiBpbnQgc2VsZWN0ICAoaW50IF9fbmZkcywgX19mZF9zZXQgKl9fcmVh
ZGZkcywKCQkJX19mZF9zZXQgKl9fd3JpdGVmZHMsIF9fZmRfc2V0ICpfX2V4Y2VwdGZkcywKCQkJ
c3RydWN0IHRpbWV2YWwgKl9fdGltZW91dCkgICAgOwoKIyA5MSAiL3Vzci9pbmNsdWRlL3N5cy9z
ZWxlY3QuaCIgMwoKCiAKCgojIDE5MyAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAyIDMKCgog
CiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9zeXNtYWNyb3MuaCIgMSAzCiAKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKIAoKCgoKCgoKCiMgNDcgIi91c3IvaW5jbHVkZS9zeXMvc3lzbWFjcm9zLmgiIDMKCgoK
IyAxOTYgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzCgoKCgogCgp0eXBlZGVmIF9fYmxr
Y250X3QgYmxrY250X3Q7CSAgCnR5cGVkZWYgX19mc2Jsa2NudF90IGZzYmxrY250X3Q7ICAKdHlw
ZWRlZiBfX2ZzZmlsY250X3QgZnNmaWxjbnRfdDsgIAoKCgoKCgoKCgoKCgogCgoKIyAzMzkgIi91
c3IvaW5jbHVkZS9zdGRsaWIuaCIgMiAzCgoKIAoKCgogCmV4dGVybiBpbnQzMl90IHJhbmRvbSAg
KHZvaWQpICAgIDsKCiAKZXh0ZXJuIHZvaWQgc3JhbmRvbSAgKHVuc2lnbmVkIGludCBfX3NlZWQp
ICAgIDsKCiAKCgoKZXh0ZXJuIHZvaWQgKiAgaW5pdHN0YXRlICAodW5zaWduZWQgaW50IF9fc2Vl
ZCwgdm9pZCAqICBfX3N0YXRlYnVmLAoJCQkgICAgICAgc2l6ZV90IF9fc3RhdGVsZW4pICAgIDsK
CiAKCmV4dGVybiB2b2lkICogIHNldHN0YXRlICAodm9pZCAqICBfX3N0YXRlYnVmKSAgICA7CgoK
CiAKCgoKc3RydWN0IHJhbmRvbV9kYXRhCiAgewogICAgaW50MzJfdCAqZnB0cjsJCSAKICAgIGlu
dDMyX3QgKnJwdHI7CQkgCiAgICBpbnQzMl90ICpzdGF0ZTsJCSAKICAgIGludCByYW5kX3R5cGU7
CQkgCiAgICBpbnQgcmFuZF9kZWc7CQkgCiAgICBpbnQgcmFuZF9zZXA7CQkgCiAgICBpbnQzMl90
ICplbmRfcHRyOwkJIAogIH07CgpleHRlcm4gaW50IHJhbmRvbV9yICAoc3RydWN0IHJhbmRvbV9k
YXRhICpfX3Jlc3RyaWN0IF9fYnVmLAoJCQkgIGludDMyX3QgKl9fcmVzdHJpY3QgX19yZXN1bHQp
ICAgIDsKCmV4dGVybiBpbnQgc3JhbmRvbV9yICAodW5zaWduZWQgaW50IF9fc2VlZCwgc3RydWN0
IHJhbmRvbV9kYXRhICpfX2J1ZikgICAgOwoKZXh0ZXJuIGludCBpbml0c3RhdGVfciAgKHVuc2ln
bmVkIGludCBfX3NlZWQsCgkJCSAgICAgdm9pZCAqICBfX3Jlc3RyaWN0IF9fc3RhdGVidWYsCgkJ
CSAgICAgc2l6ZV90IF9fc3RhdGVsZW4sCgkJCSAgICAgc3RydWN0IHJhbmRvbV9kYXRhICpfX3Jl
c3RyaWN0IF9fYnVmKSAgICA7CgpleHRlcm4gaW50IHNldHN0YXRlX3IgICh2b2lkICogIF9fcmVz
dHJpY3QgX19zdGF0ZWJ1ZiwKCQkJICAgIHN0cnVjdCByYW5kb21fZGF0YSAqX19yZXN0cmljdCBf
X2J1ZikgICAgOwoKCgoKIApleHRlcm4gaW50IHJhbmQgICh2b2lkKSAgICA7CiAKZXh0ZXJuIHZv
aWQgc3JhbmQgICh1bnNpZ25lZCBpbnQgX19zZWVkKSAgICA7CgoKIApleHRlcm4gaW50IHJhbmRf
ciAgKHVuc2lnbmVkIGludCAqX19zZWVkKSAgICA7CgoKCgogCgogCmV4dGVybiBkb3VibGUgZHJh
bmQ0OCAgKHZvaWQpICAgIDsKZXh0ZXJuIGRvdWJsZSBlcmFuZDQ4ICAodW5zaWduZWQgc2hvcnQg
aW50IF9feHN1YmlbM10pICAgIDsKCiAKZXh0ZXJuIGxvbmcgaW50IGxyYW5kNDggICh2b2lkKSAg
ICA7CmV4dGVybiBsb25nIGludCBucmFuZDQ4ICAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1Ymlb
M10pICAgIDsKCiAKZXh0ZXJuIGxvbmcgaW50IG1yYW5kNDggICh2b2lkKSAgICA7CmV4dGVybiBs
b25nIGludCBqcmFuZDQ4ICAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10pICAgIDsKCiAK
ZXh0ZXJuIHZvaWQgc3JhbmQ0OCAgKGxvbmcgaW50IF9fc2VlZHZhbCkgICAgOwpleHRlcm4gdW5z
aWduZWQgc2hvcnQgaW50ICpzZWVkNDggICh1bnNpZ25lZCBzaG9ydCBpbnQgX19zZWVkMTZ2WzNd
KSAgICA7CmV4dGVybiB2b2lkIGxjb25nNDggICh1bnNpZ25lZCBzaG9ydCBpbnQgX19wYXJhbVs3
XSkgICAgOwoKIApzdHJ1Y3QgZHJhbmQ0OF9kYXRhCiAgewogICAgdW5zaWduZWQgc2hvcnQgaW50
IHhbM107CSAKICAgIHVuc2lnbmVkIHNob3J0IGludCBhWzNdOwkgCiAgICB1bnNpZ25lZCBzaG9y
dCBpbnQgYzsJIAogICAgdW5zaWduZWQgc2hvcnQgaW50IG9sZF94WzNdOyAgCiAgICBpbnQgaW5p
dDsJCQkgCiAgfTsKCgogCmV4dGVybiBpbnQgZHJhbmQ0OF9yICAoc3RydWN0IGRyYW5kNDhfZGF0
YSAqX19yZXN0cmljdCBfX2J1ZmZlciwKCQkJICAgZG91YmxlICpfX3Jlc3RyaWN0IF9fcmVzdWx0
KSAgICA7CmV4dGVybiBpbnQgZXJhbmQ0OF9yICAodW5zaWduZWQgc2hvcnQgaW50IF9feHN1Ymlb
M10sCgkJCSAgIHN0cnVjdCBkcmFuZDQ4X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCgkJCSAg
IGRvdWJsZSAqX19yZXN0cmljdCBfX3Jlc3VsdCkgICAgOwoKIApleHRlcm4gaW50IGxyYW5kNDhf
ciAgKHN0cnVjdCBkcmFuZDQ4X2RhdGEgKl9fcmVzdHJpY3QgX19idWZmZXIsCgkJCSAgIGxvbmcg
aW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KSAgICA7CmV4dGVybiBpbnQgbnJhbmQ0OF9yICAodW5z
aWduZWQgc2hvcnQgaW50IF9feHN1YmlbM10sCgkJCSAgIHN0cnVjdCBkcmFuZDQ4X2RhdGEgKl9f
cmVzdHJpY3QgX19idWZmZXIsCgkJCSAgIGxvbmcgaW50ICpfX3Jlc3RyaWN0IF9fcmVzdWx0KSAg
ICA7CgogCmV4dGVybiBpbnQgbXJhbmQ0OF9yICAoc3RydWN0IGRyYW5kNDhfZGF0YSAqX19yZXN0
cmljdCBfX2J1ZmZlciwKCQkJICAgbG9uZyBpbnQgKl9fcmVzdHJpY3QgX19yZXN1bHQpICAgIDsK
ZXh0ZXJuIGludCBqcmFuZDQ4X3IgICh1bnNpZ25lZCBzaG9ydCBpbnQgX194c3ViaVszXSwKCQkJ
ICAgc3RydWN0IGRyYW5kNDhfZGF0YSAqX19yZXN0cmljdCBfX2J1ZmZlciwKCQkJICAgbG9uZyBp
bnQgKl9fcmVzdHJpY3QgX19yZXN1bHQpICAgIDsKCiAKZXh0ZXJuIGludCBzcmFuZDQ4X3IgIChs
b25nIGludCBfX3NlZWR2YWwsIHN0cnVjdCBkcmFuZDQ4X2RhdGEgKl9fYnVmZmVyKSAgICA7Cgpl
eHRlcm4gaW50IHNlZWQ0OF9yICAodW5zaWduZWQgc2hvcnQgaW50IF9fc2VlZDE2dlszXSwKCQkJ
ICBzdHJ1Y3QgZHJhbmQ0OF9kYXRhICpfX2J1ZmZlcikgICAgOwoKZXh0ZXJuIGludCBsY29uZzQ4
X3IgICh1bnNpZ25lZCBzaG9ydCBpbnQgX19wYXJhbVs3XSwKCQkJICAgc3RydWN0IGRyYW5kNDhf
ZGF0YSAqX19idWZmZXIpICAgIDsKCgoKCgoKCiAKZXh0ZXJuIHZvaWQgKiAgbWFsbG9jICAoc2l6
ZV90IF9fc2l6ZSkgICAgOwogCmV4dGVybiB2b2lkICogIGNhbGxvYyAgKHNpemVfdCBfX25tZW1i
LCBzaXplX3QgX19zaXplKSAgICA7CgoKCiAKCmV4dGVybiB2b2lkICogIHJlYWxsb2MgICh2b2lk
ICogIF9fcHRyLCBzaXplX3QgX19zaXplKSAgICA7CiAKZXh0ZXJuIHZvaWQgZnJlZSAgKHZvaWQg
KiAgX19wdHIpICAgIDsKCgogCmV4dGVybiB2b2lkIGNmcmVlICAodm9pZCAqICBfX3B0cikgICAg
OwoKCgojIDEgIi91c3IvaW5jbHVkZS9hbGxvY2EuaCIgMSAzCiAKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgojIDEgIi9vcHQvZ2NjMzAvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4z
L2luY2x1ZGUvc3RkZGVmLmgiIDEgMwoKCgoKCgogCgoKIyAxOSAiL29wdC9nY2MzMC9saWIvZ2Nj
LWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCgogCgoK
IAoKCgoKCiAKCgojIDYxICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251
LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoK
IAoKCgoKCiAKCiAKCiMgMTMxICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgt
Z251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKIAoKCiMgMTg4ICIvb3B0L2djYzMw
L2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAz
CgoKCgoKIAoKCgoKIAoKIyAyNzEgIi9vcHQvZ2NjMzAvbGliL2djYy1saWIvaTY4Ni1wYy1saW51
eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgojIDI4MyAiL29wdC9nY2MzMC9saWIv
Z2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMwoKCiAK
CiAKCiMgMzE3ICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUu
My9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKCgogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCiMgMjUgIi91
c3IvaW5jbHVkZS9hbGxvY2EuaCIgMiAzCgoKIAoKIAoKCiAKZXh0ZXJuIHZvaWQgKiAgYWxsb2Nh
ICAoc2l6ZV90IF9fc2l6ZSkgICAgOwoKCgoKCiAKCgojIDQ5MiAiL3Vzci9pbmNsdWRlL3N0ZGxp
Yi5oIiAyIDMKCgoKCiAKZXh0ZXJuIHZvaWQgKiAgdmFsbG9jICAoc2l6ZV90IF9fc2l6ZSkgICAg
OwoKCgogCmV4dGVybiB2b2lkIGFib3J0ICAodm9pZCkgICAgIF9fYXR0cmlidXRlX18gKChfX25v
cmV0dXJuX18pKTsKCgogCmV4dGVybiBpbnQgYXRleGl0ICAodm9pZCAoKl9fZnVuYykgKHZvaWQp
KSAgICA7CgoKIAoKZXh0ZXJuIGludCBfX29uX2V4aXQgICh2b2lkICgqX19mdW5jKSAoaW50IF9f
c3RhdHVzLCB2b2lkICogIF9fYXJnKSwKCQkJICAgdm9pZCAqICBfX2FyZykgICAgOwpleHRlcm4g
aW50IG9uX2V4aXQgICh2b2lkICgqX19mdW5jKSAoaW50IF9fc3RhdHVzLCB2b2lkICogIF9fYXJn
KSwKCQkJIHZvaWQgKiAgX19hcmcpICAgIDsKCgogCgoKZXh0ZXJuIHZvaWQgZXhpdCAgKGludCBf
X3N0YXR1cykgICAgIF9fYXR0cmlidXRlX18gKChfX25vcmV0dXJuX18pKTsKCgoKCgoKCgogCmV4
dGVybiBjaGFyICpnZXRlbnYgIChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgICAgOwoKIAoKZXh0ZXJu
IGNoYXIgKl9fc2VjdXJlX2dldGVudiAgKF9fY29uc3QgY2hhciAqX19uYW1lKSAgICA7CgoKIAog
CgpleHRlcm4gaW50IHB1dGVudiAgKF9fY29uc3QgY2hhciAqX19zdHJpbmcpICAgIDsKCgoKIAoK
ZXh0ZXJuIGludCBzZXRlbnYgIChfX2NvbnN0IGNoYXIgKl9fbmFtZSwgX19jb25zdCBjaGFyICpf
X3ZhbHVlLAoJCQlpbnQgX19yZXBsYWNlKSAgICA7CgogCmV4dGVybiB2b2lkIHVuc2V0ZW52ICAo
X19jb25zdCBjaGFyICpfX25hbWUpICAgIDsKCgoKIAoKCmV4dGVybiBpbnQgY2xlYXJlbnYgICh2
b2lkKSAgICA7CgoKCgogCgoKCmV4dGVybiBjaGFyICpta3RlbXAgIChjaGFyICpfX3RlbXBsYXRl
KSAgICA7CgogCgoKCgpleHRlcm4gaW50IG1rc3RlbXAgIChjaGFyICpfX3RlbXBsYXRlKSAgICA7
CgoKCiAKZXh0ZXJuIGludCBzeXN0ZW0gIChfX2NvbnN0IGNoYXIgKl9fY29tbWFuZCkgICAgOwoK
CgoKCgoKCgoKIAoKCgoKCmV4dGVybiBjaGFyICpyZWFscGF0aCAgKF9fY29uc3QgY2hhciAqX19y
ZXN0cmljdCBfX25hbWUsCgkJCSAgICBjaGFyICpfX3Jlc3RyaWN0IF9fcmVzb2x2ZWQpICAgIDsK
CgoKIAoKCnR5cGVkZWYgaW50ICgqX19jb21wYXJfZm5fdCkgIChfX2NvbnN0IHZvaWQgKiAsIF9f
Y29uc3Qgdm9pZCAqICkgIDsKCgoKCgoKIAoKZXh0ZXJuIHZvaWQgKiAgYnNlYXJjaCAgKF9fY29u
c3Qgdm9pZCAqICBfX2tleSwgX19jb25zdCB2b2lkICogIF9fYmFzZSwKCQkJICAgICAgIHNpemVf
dCBfX25tZW1iLCBzaXplX3QgX19zaXplLAoJCQkgICAgICAgX19jb21wYXJfZm5fdCBfX2NvbXBh
cikgIDsKCiAKCmV4dGVybiB2b2lkIHFzb3J0ICAodm9pZCAqICBfX2Jhc2UsIHNpemVfdCBfX25t
ZW1iLCBzaXplX3QgX19zaXplLAoJCQkgIF9fY29tcGFyX2ZuX3QgX19jb21wYXIpICA7CgoKIApl
eHRlcm4gaW50IGFicyAgKGludCBfX3gpICAgICBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7
CmV4dGVybiBsb25nIGludCBsYWJzICAobG9uZyBpbnQgX194KSAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fY29uc3RfXykpOwoKCgoKCgogCgogCmV4dGVybiBkaXZfdCBkaXYgIChpbnQgX19udW1lciwg
aW50IF9fZGVub20pICAgICBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CmV4dGVybiBsZGl2
X3QgbGRpdiAgKGxvbmcgaW50IF9fbnVtZXIsIGxvbmcgaW50IF9fZGVub20pICAgIAogICAgIF9f
YXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCgoKCgoKCgogCgoKIAoKCmV4dGVybiBjaGFyICpl
Y3Z0ICAoZG91YmxlIF9fdmFsdWUsIGludCBfX25kaWdpdCwgaW50ICpfX3Jlc3RyaWN0IF9fZGVj
cHQsCgkJCWludCAqX19yZXN0cmljdCBfX3NpZ24pICAgIDsKCiAKCgpleHRlcm4gY2hhciAqZmN2
dCAgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGludCAqX19yZXN0cmljdCBfX2RlY3B0
LAoJCQlpbnQgKl9fcmVzdHJpY3QgX19zaWduKSAgICA7CgogCgoKZXh0ZXJuIGNoYXIgKmdjdnQg
IChkb3VibGUgX192YWx1ZSwgaW50IF9fbmRpZ2l0LCBjaGFyICpfX2J1ZikgICAgOwoKIApleHRl
cm4gY2hhciAqcWVjdnQgIChsb25nIGRvdWJsZSAgX192YWx1ZSwgaW50IF9fbmRpZ2l0LAoJCQkg
aW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsIGludCAqX19yZXN0cmljdCBfX3NpZ24pICAgIDsKZXh0
ZXJuIGNoYXIgKnFmY3Z0ICAobG9uZyBkb3VibGUgIF9fdmFsdWUsIGludCBfX25kaWdpdCwKCQkJ
IGludCAqX19yZXN0cmljdCBfX2RlY3B0LCBpbnQgKl9fcmVzdHJpY3QgX19zaWduKSAgICA7CmV4
dGVybiBjaGFyICpxZ2N2dCAgKGxvbmcgZG91YmxlICBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGNo
YXIgKl9fYnVmKSAgICA7CgoKCiAKCmV4dGVybiBpbnQgZWN2dF9yICAoZG91YmxlIF9fdmFsdWUs
IGludCBfX25kaWdpdCwgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsCgkJCWludCAqX19yZXN0cmlj
dCBfX3NpZ24sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCgkJCXNpemVfdCBfX2xlbikgICAgOwpl
eHRlcm4gaW50IGZjdnRfciAgKGRvdWJsZSBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsIGludCAqX19y
ZXN0cmljdCBfX2RlY3B0LAoJCQlpbnQgKl9fcmVzdHJpY3QgX19zaWduLCBjaGFyICpfX3Jlc3Ry
aWN0IF9fYnVmLAoJCQlzaXplX3QgX19sZW4pICAgIDsKCmV4dGVybiBpbnQgcWVjdnRfciAgKGxv
bmcgZG91YmxlICBfX3ZhbHVlLCBpbnQgX19uZGlnaXQsCgkJCSBpbnQgKl9fcmVzdHJpY3QgX19k
ZWNwdCwgaW50ICpfX3Jlc3RyaWN0IF9fc2lnbiwKCQkJIGNoYXIgKl9fcmVzdHJpY3QgX19idWYs
IHNpemVfdCBfX2xlbikgICAgOwpleHRlcm4gaW50IHFmY3Z0X3IgIChsb25nIGRvdWJsZSAgX192
YWx1ZSwgaW50IF9fbmRpZ2l0LAoJCQkgaW50ICpfX3Jlc3RyaWN0IF9fZGVjcHQsIGludCAqX19y
ZXN0cmljdCBfX3NpZ24sCgkJCSBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBzaXplX3QgX19sZW4p
ICAgIDsKCgoKCiAKCmV4dGVybiBpbnQgbWJsZW4gIChfX2NvbnN0IGNoYXIgKl9fcywgc2l6ZV90
IF9fbikgICAgOwogCgpleHRlcm4gaW50IG1idG93YyAgKHdjaGFyX3QgKl9fcmVzdHJpY3QgX19w
d2MsCgkJCV9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX24pICAgIDsKIAoK
ZXh0ZXJuIGludCB3Y3RvbWIgIChjaGFyICpfX3MsIHdjaGFyX3QgX193Y2hhcikgICAgOwoKCiAK
ZXh0ZXJuIHNpemVfdCBtYnN0b3djcyAgKHdjaGFyX3QgKl9fcmVzdHJpY3QgIF9fcHdjcywKCQkJ
ICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uKSAgICA7CiAKZXh0
ZXJuIHNpemVfdCB3Y3N0b21icyAgKGNoYXIgKl9fcmVzdHJpY3QgX19zLAoJCQkgICAgIF9fY29u
c3Qgd2NoYXJfdCAqX19yZXN0cmljdCBfX3B3Y3MsIHNpemVfdCBfX24pICAgIDsKCgoKIAoKCgpl
eHRlcm4gaW50IHJwbWF0Y2ggIChfX2NvbnN0IGNoYXIgKl9fcmVzcG9uc2UpICAgIDsKCgoKIyA3
MzIgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwoKCgojIDc1NiAiL3Vzci9pbmNsdWRlL3N0ZGxp
Yi5oIiAzCgoKIyA3NjYgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwoKCgoKCiAKCgojIDEgImxs
aS5jIiAyCgojIDEgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoK
CiAKCgoKCgoKCgoKIAoKCgojIDEgIi9vcHQvZ2NjMzAvbGliL2djYy1saWIvaTY4Ni1wYy1saW51
eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwoKCgoKCgogCgoKIyAxOSAiL29wdC9n
Y2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYu
aCIgMwoKCgogCgoKIAoKCgoKCiAKCgojIDYxICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYt
cGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKCgoKCiAKCgoKCgoK
CgoKCgoKCgoKCgoKIAoKCgoKCiAKCiAKCiMgMTMxICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2
ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKIAoKIAoKCiMgMTg4
ICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRl
L3N0ZGRlZi5oIiAzCgoKCgoKIAoKCgoKIAoKIyAyNzEgIi9vcHQvZ2NjMzAvbGliL2djYy1saWIv
aTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgojIDI4MyAiL29w
dC9nY2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRk
ZWYuaCIgMwoKCiAKCiAKCiMgMzE3ICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGlu
dXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzCgoKCgogCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCiMgMzMgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMKCgoKCgojIDEgIi9vcHQvZ2NjMzAv
bGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkYXJnLmgiIDEg
MwogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgogCgoKCgoKCnR5cGVkZWYgdm9pZCAqX19nbnVjX3ZhX2xpc3Q7CgoKCiAKCiMg
MTIyICIvb3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNs
dWRlL3N0ZGFyZy5oIiAzCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyAyMDkgIi9vcHQvZ2NjMzAvbGli
L2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkYXJnLmgiIDMKCgoK
CiMgMzggIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMKCgoKCgoKCgoKIAp0eXBlZGVmIHN0cnVj
dCBfSU9fRklMRSBGSUxFOwoKCgoKCgoKCiMgMSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDEgMwog
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgojIDEgIi91c3IvaW5jbHVkZS9fR19jb25maWcu
aCIgMSAzCiAKCgoKCgogCgoKCgoKCiMgMSAiL29wdC9nY2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBj
LWxpbnV4LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCgoKCgoKCiAKCgojIDE5ICIv
b3B0L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0
ZGRlZi5oIiAzCgoKCiAKCgogCgoKCgoKIAoKCiMgNjEgIi9vcHQvZ2NjMzAvbGliL2djYy1saWIv
aTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgogCgoKCgoKIAoK
CgoKCgoKCgoKCgoKCgoKCgogCgoKCgoKIAoKIAoKIyAxMzEgIi9vcHQvZ2NjMzAvbGliL2djYy1s
aWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgogCgogCgoK
IyAxODggIi9vcHQvZ2NjMzAvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2lu
Y2x1ZGUvc3RkZGVmLmgiIDMKCgoKCgogCgoKCgogCgoKIyAyNjkgIi9vcHQvZ2NjMzAvbGliL2dj
Yy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMKCgoKCgoK
CgoKCgp0eXBlZGVmIHVuc2lnbmVkIGludCAgd2ludF90OwoKCgoKIAoKIAoKIyAzMTcgIi9vcHQv
Z2NjMzAvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkZGVm
LmgiIDMKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIyAxNCAiL3Vzci9pbmNsdWRlL19HX2Nv
bmZpZy5oIiAyIDMKCgoKCgoKCgoKCgoKCgoKCgoKCgoKdHlwZWRlZiBpbnQgX0dfaW50MTZfdCBf
X2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKdHlwZWRlZiBpbnQgX0dfaW50MzJf
dCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsKdHlwZWRlZiB1bnNpZ25lZCBp
bnQgX0dfdWludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CnR5cGVk
ZWYgdW5zaWduZWQgaW50IF9HX3VpbnQzMl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19T
SV9fKSkpOwoKCgoKIAoKCgoKCgoKCgoKCgoKCgoKCgogCgoKCgogCgoKCgoKCgoKCgoKCgoKIyAz
MCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDIgMwoKCgoKCgoKCgoKCgoKCgoKIAoKIyAxICIvb3B0
L2djYzMwL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzIuOTUuMy9pbmNsdWRlL3N0ZGFy
Zy5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoK
CgoKCgoKCgoKCgoKCgoKCgoKIAoKCgoKCgoKCgoKIAoKIyAxMjIgIi9vcHQvZ2NjMzAvbGliL2dj
Yy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMi45NS4zL2luY2x1ZGUvc3RkYXJnLmgiIDMKCgoKCgoK
CgoKCgoKCgoKCgoKCgojIDIwOSAiL29wdC9nY2MzMC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4
LWdudS8yLjk1LjMvaW5jbHVkZS9zdGRhcmcuaCIgMwoKCgoKIyA0OCAiL3Vzci9pbmNsdWRlL2xp
YmlvLmgiIDIgMwoKCgoKCgoKIyA2NyAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKCgogCgoKCgoK
CgoKCgoKCgoKCgoKIyA5OCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKCgoKCgoKCgoKCgogCgoK
CgoKCgoKCgoKCgoKCgoKCgoKCgoKCiAKCgoKCgoKCgoKCgoKCgoKCgoKCnN0cnVjdCBfSU9fanVt
cF90OyAgc3RydWN0IF9JT19GSUxFOwoKIAoKCgoKCgoKdHlwZWRlZiB2b2lkIF9JT19sb2NrX3Q7
CgoKCiAKCnN0cnVjdCBfSU9fbWFya2VyIHsKICBzdHJ1Y3QgX0lPX21hcmtlciAqX25leHQ7CiAg
c3RydWN0IF9JT19GSUxFICpfc2J1ZjsKICAgCgogICAKICBpbnQgX3BvczsKIyAxODYgIi91c3Iv
aW5jbHVkZS9saWJpby5oIiAzCgp9OwoKc3RydWN0IF9JT19GSUxFIHsKICBpbnQgX2ZsYWdzOwkJ
IAoKCiAgIAogICAKICBjaGFyKiBfSU9fcmVhZF9wdHI7CSAKICBjaGFyKiBfSU9fcmVhZF9lbmQ7
CSAKICBjaGFyKiBfSU9fcmVhZF9iYXNlOwkgCiAgY2hhciogX0lPX3dyaXRlX2Jhc2U7CSAKICBj
aGFyKiBfSU9fd3JpdGVfcHRyOwkgCiAgY2hhciogX0lPX3dyaXRlX2VuZDsJIAogIGNoYXIqIF9J
T19idWZfYmFzZTsJIAogIGNoYXIqIF9JT19idWZfZW5kOwkgCiAgIAogIGNoYXIgKl9JT19zYXZl
X2Jhc2U7ICAKICBjaGFyICpfSU9fYmFja3VwX2Jhc2U7ICAgCiAgY2hhciAqX0lPX3NhdmVfZW5k
OyAgCgogIHN0cnVjdCBfSU9fbWFya2VyICpfbWFya2VyczsKCiAgc3RydWN0IF9JT19GSUxFICpf
Y2hhaW47CgogIGludCBfZmlsZW5vOwogIGludCBfYmxrc2l6ZTsKICBfX29mZl90ICAgX29sZF9v
ZmZzZXQ7ICAKCgogICAKICB1bnNpZ25lZCBzaG9ydCBfY3VyX2NvbHVtbjsKICBzaWduZWQgY2hh
ciBfdnRhYmxlX29mZnNldDsKICBjaGFyIF9zaG9ydGJ1ZlsxXTsKCiAgIAoKICBfSU9fbG9ja190
ICpfbG9jazsKCgoKCgoKCgogIF9fb2ZmNjRfdCAgIF9vZmZzZXQ7CiAgIAogIGludCBfdW51c2Vk
MlsxNl07Cgp9OwoKCnR5cGVkZWYgc3RydWN0IF9JT19GSUxFIF9JT19GSUxFOwoKCnN0cnVjdCBf
SU9fRklMRV9wbHVzOwpleHRlcm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lPXzJfMV9zdGRpbl87
CmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZG91dF87CmV4dGVybiBzdHJ1
Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZGVycl87CgoKCgoKCgoKCgoKIAoKIAoKdHlwZWRl
ZiBfX3NzaXplX3QgX19pb19yZWFkX2ZuICAodm9pZCAqICBfX2Nvb2tpZSwgY2hhciAqX19idWYs
CgkJCQkgICAgICAgc2l6ZV90IF9fbmJ5dGVzKSAgOwoKIAoKCgoKCnR5cGVkZWYgX19zc2l6ZV90
IF9faW9fd3JpdGVfZm4gICh2b2lkICogIF9fY29va2llLCBfX2NvbnN0IGNoYXIgKl9fYnVmLAoJ
CQkJICAgICAgc2l6ZV90IF9fbikgIDsKCiAKCgoKCgp0eXBlZGVmIGludCBfX2lvX3NlZWtfZm4g
ICh2b2lkICogIF9fY29va2llLCBfX29mZl90ICAgX19wb3MsIGludCBfX3cpICA7CgogCnR5cGVk
ZWYgaW50IF9faW9fY2xvc2VfZm4gICh2b2lkICogIF9fY29va2llKSAgOwoKCiMgMzExICIvdXNy
L2luY2x1ZGUvbGliaW8uaCIgMwoKCgoKCgoKZXh0ZXJuIGludCBfX3VuZGVyZmxvdyAgKF9JT19G
SUxFICopICAgIDsKZXh0ZXJuIGludCBfX3VmbG93ICAoX0lPX0ZJTEUgKikgICAgOwpleHRlcm4g
aW50IF9fb3ZlcmZsb3cgIChfSU9fRklMRSAqLCBpbnQpICAgIDsKCgoKCgoKCgoKCgoKCgoKCmV4
dGVybiBpbnQgX0lPX2dldGMgIChfSU9fRklMRSAqX19mcCkgICAgOwpleHRlcm4gaW50IF9JT19w
dXRjICAoaW50IF9fYywgX0lPX0ZJTEUgKl9fZnApICAgIDsKZXh0ZXJuIGludCBfSU9fZmVvZiAg
KF9JT19GSUxFICpfX2ZwKSAgICA7CmV4dGVybiBpbnQgX0lPX2ZlcnJvciAgKF9JT19GSUxFICpf
X2ZwKSAgICA7CgpleHRlcm4gaW50IF9JT19wZWVrY19sb2NrZWQgIChfSU9fRklMRSAqX19mcCkg
ICAgOwoKIAoKCgpleHRlcm4gdm9pZCBfSU9fZmxvY2tmaWxlICAoX0lPX0ZJTEUgKikgICAgOwpl
eHRlcm4gdm9pZCBfSU9fZnVubG9ja2ZpbGUgIChfSU9fRklMRSAqKSAgICA7CmV4dGVybiBpbnQg
X0lPX2Z0cnlsb2NrZmlsZSAgKF9JT19GSUxFICopICAgIDsKCgoKCgoKCgoKCgoKZXh0ZXJuIGlu
dCBfSU9fdmZzY2FuZiAgKF9JT19GSUxFICogX19yZXN0cmljdCwgY29uc3QgY2hhciAqIF9fcmVz
dHJpY3QsCgkJCSAgICAgX19nbnVjX3ZhX2xpc3QgLCBpbnQgKl9fcmVzdHJpY3QpICAgIDsKZXh0
ZXJuIGludCBfSU9fdmZwcmludGYgIChfSU9fRklMRSAqX19yZXN0cmljdCwgY29uc3QgY2hhciAq
X19yZXN0cmljdCwKCQkJICAgICAgX19nbnVjX3ZhX2xpc3QgKSAgICA7CmV4dGVybiBfX3NzaXpl
X3QgICBfSU9fcGFkbiAgKF9JT19GSUxFICosIGludCwgX19zc2l6ZV90ICApICAgIDsKZXh0ZXJu
IHNpemVfdCAgIF9JT19zZ2V0biAgKF9JT19GSUxFICosIHZvaWQgKiwgc2l6ZV90ICApICAgIDsK
CmV4dGVybiBfX29mZjY0X3QgICBfSU9fc2Vla29mZiAgKF9JT19GSUxFICosIF9fb2ZmNjRfdCAg
LCBpbnQsIGludCkgICAgOwpleHRlcm4gX19vZmY2NF90ICAgX0lPX3NlZWtwb3MgIChfSU9fRklM
RSAqLCBfX29mZjY0X3QgICwgaW50KSAgICA7CgpleHRlcm4gdm9pZCBfSU9fZnJlZV9iYWNrdXBf
YXJlYSAgKF9JT19GSUxFICopICAgIDsKCgoKCgoKIyA1NyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgi
IDIgMwoKCiAKCnR5cGVkZWYgX19vZmZfdCAgZnBvc190OwoKCgoKCgoKIAoKCgoKCiAKCgoKCgog
CgoKCgoKCiAKCgoKCgoKCiAKCgoKCiAKCgoKCgoKCgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3N0
ZGlvX2xpbS5oIiAxIDMKIAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgojIDEx
MCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKCgogCmV4dGVybiBGSUxFICpzdGRpbjsJCSAK
ZXh0ZXJuIEZJTEUgKnN0ZG91dDsJCSAKZXh0ZXJuIEZJTEUgKnN0ZGVycjsJCSAKCgogCmV4dGVy
biBpbnQgcmVtb3ZlICAoX19jb25zdCBjaGFyICpfX2ZpbGVuYW1lKSAgICA7CiAKZXh0ZXJuIGlu
dCByZW5hbWUgIChfX2NvbnN0IGNoYXIgKl9fb2xkLCBfX2NvbnN0IGNoYXIgKl9fbmV3KSAgICA7
CgoKIAoKZXh0ZXJuIEZJTEUgKnRtcGZpbGUgICh2b2lkKSAgICA7CgoKCgoKCgoKCgogCmV4dGVy
biBjaGFyICp0bXBuYW0gIChjaGFyICpfX3MpICAgIDsKCgogCgpleHRlcm4gY2hhciAqdG1wbmFt
X3IgIChjaGFyICpfX3MpICAgIDsKCgoKCiAKCgoKCgoKZXh0ZXJuIGNoYXIgKnRlbXBuYW0gIChf
X2NvbnN0IGNoYXIgKl9fZGlyLCBfX2NvbnN0IGNoYXIgKl9fcGZ4KSAgICA7CgoKCiAKZXh0ZXJu
IGludCBmY2xvc2UgIChGSUxFICpfX3N0cmVhbSkgICAgOwogCmV4dGVybiBpbnQgZmZsdXNoICAo
RklMRSAqX19zdHJlYW0pICAgIDsKCgogCmV4dGVybiBpbnQgZmZsdXNoX3VubG9ja2VkICAoRklM
RSAqX19zdHJlYW0pICAgIDsKCgoKCgoKCgoKIApleHRlcm4gRklMRSAqZm9wZW4gIChfX2NvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19maWxlbmFtZSwKCQkJIF9fY29uc3QgY2hhciAqX19yZXN0cmlj
dCBfX21vZGVzKSAgICA7CiAKZXh0ZXJuIEZJTEUgKmZyZW9wZW4gIChfX2NvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19maWxlbmFtZSwKCQkJICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9k
ZXMsCgkJCSAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pICAgIDsKIyAxOTcgIi91c3IvaW5j
bHVkZS9zdGRpby5oIiAzCgoKCgoKCgoKCgogCmV4dGVybiBGSUxFICpmZG9wZW4gIChpbnQgX19m
ZCwgX19jb25zdCBjaGFyICpfX21vZGVzKSAgICA7CgoKIyAyMjMgIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAzCgoKCiAKCmV4dGVybiB2b2lkIHNldGJ1ZiAgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJl
YW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYpICAgIDsKIAoKCmV4dGVybiBpbnQgc2V0dmJ1ZiAg
KEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCgkJCSBp
bnQgX19tb2Rlcywgc2l6ZV90IF9fbikgICAgOwoKCiAKCmV4dGVybiB2b2lkIHNldGJ1ZmZlciAg
KEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCgkJCSAg
ICBzaXplX3QgX19zaXplKSAgICA7CgogCmV4dGVybiB2b2lkIHNldGxpbmVidWYgIChGSUxFICpf
X3N0cmVhbSkgICAgOwoKCgogCmV4dGVybiBpbnQgZnByaW50ZiAgKEZJTEUgKl9fcmVzdHJpY3Qg
X19zdHJlYW0sCgkJCSBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgICAg
OwogCmV4dGVybiBpbnQgcHJpbnRmICAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0
LCAuLi4pICAgIDsKIApleHRlcm4gaW50IHNwcmludGYgIChjaGFyICpfX3Jlc3RyaWN0IF9fcywK
CQkJIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSAgICA7CgogCmV4dGVy
biBpbnQgdmZwcmludGYgIChGSUxFICpfX3Jlc3RyaWN0IF9fcywKCQkJICBfX2NvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19mb3JtYXQsCgkJCSAgX19nbnVjX3ZhX2xpc3QgIF9fYXJnKSAgICA7CiAK
ZXh0ZXJuIGludCB2cHJpbnRmICAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAoJ
CQkgX19nbnVjX3ZhX2xpc3QgIF9fYXJnKSAgICA7CiAKZXh0ZXJuIGludCB2c3ByaW50ZiAgKGNo
YXIgKl9fcmVzdHJpY3QgX19zLAoJCQkgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1h
dCwKCQkJICBfX2dudWNfdmFfbGlzdCAgX19hcmcpICAgIDsKCgogCmV4dGVybiBpbnQgc25wcmlu
dGYgIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4bGVuLAoJCQkgIF9fY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSAgICAKICAgICBfX2F0dHJpYnV0ZV9fICgo
X19mb3JtYXRfXyAoX19wcmludGZfXywgMywgNCkpKTsKCmV4dGVybiBpbnQgX192c25wcmludGYg
IChjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4bGVuLAoJCQkgICAgIF9fY29uc3Qg
Y2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKCQkJICAgICBfX2dudWNfdmFfbGlzdCAgX19hcmcp
ICAgIAogICAgIF9fYXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAzLCAwKSkp
OwpleHRlcm4gaW50IHZzbnByaW50ZiAgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19t
YXhsZW4sCgkJCSAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKCQkJICAgX19n
bnVjX3ZhX2xpc3QgIF9fYXJnKSAgICAKICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAo
X19wcmludGZfXywgMywgMCkpKTsKCgojIDMwMiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKCgoK
IApleHRlcm4gaW50IGZzY2FuZiAgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sCgkJCV9fY29u
c3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSAgICA7CiAKZXh0ZXJuIGludCBzY2Fu
ZiAgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSAgICA7CiAKZXh0ZXJu
IGludCBzc2NhbmYgIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLAoJCQlfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgICAgOwoKIyAzMzAgIi91c3IvaW5jbHVkZS9z
dGRpby5oIiAzCgoKCiAKZXh0ZXJuIGludCBmZ2V0YyAgKEZJTEUgKl9fc3RyZWFtKSAgICA7CmV4
dGVybiBpbnQgZ2V0YyAgKEZJTEUgKl9fc3RyZWFtKSAgICA7CgogCmV4dGVybiBpbnQgZ2V0Y2hh
ciAgKHZvaWQpICAgIDsKCiAKCgoKCiAKZXh0ZXJuIGludCBnZXRjX3VubG9ja2VkICAoRklMRSAq
X19zdHJlYW0pICAgIDsKZXh0ZXJuIGludCBnZXRjaGFyX3VubG9ja2VkICAodm9pZCkgICAgOwoK
CgogCmV4dGVybiBpbnQgZmdldGNfdW5sb2NrZWQgIChGSUxFICpfX3N0cmVhbSkgICAgOwoKCgog
CmV4dGVybiBpbnQgZnB1dGMgIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkgICAgOwpleHRlcm4g
aW50IHB1dGMgIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkgICAgOwoKIApleHRlcm4gaW50IHB1
dGNoYXIgIChpbnQgX19jKSAgICA7CgogCgoKCgogCmV4dGVybiBpbnQgZnB1dGNfdW5sb2NrZWQg
IChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkgICAgOwoKCgogCmV4dGVybiBpbnQgcHV0Y191bmxv
Y2tlZCAgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSAgICA7CmV4dGVybiBpbnQgcHV0Y2hhcl91
bmxvY2tlZCAgKGludCBfX2MpICAgIDsKCgoKCiAKZXh0ZXJuIGludCBnZXR3ICAoRklMRSAqX19z
dHJlYW0pICAgIDsKCiAKZXh0ZXJuIGludCBwdXR3ICAoaW50IF9fdywgRklMRSAqX19zdHJlYW0p
ICAgIDsKCgoKIApleHRlcm4gY2hhciAqZmdldHMgIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgaW50
IF9fbiwKCQkJIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pICAgIDsKCgoKCgoKCiAKCmV4dGVy
biBjaGFyICpnZXRzICAoY2hhciAqX19zKSAgICA7CgoKIyA0MjAgIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAzCgoKCiAKZXh0ZXJuIGludCBmcHV0cyAgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X3MsCgkJICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pICAgIDsKCgoKCgoKCiAKZXh0
ZXJuIGludCBwdXRzICAoX19jb25zdCBjaGFyICpfX3MpICAgIDsKCgogCmV4dGVybiBpbnQgdW5n
ZXRjICAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pICAgIDsKCgogCmV4dGVybiBzaXplX3QgZnJl
YWQgICh2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAoJCQkgIHNpemVfdCBf
X24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pICAgIDsKIApleHRlcm4gc2l6ZV90IGZ3cml0
ZSAgKF9fY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKCQkJICAg
c2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3MpICAgIDsKCgogCmV4dGVybiBzaXplX3Qg
ZnJlYWRfdW5sb2NrZWQgICh2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAoJ
CQkJICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgICAgOwpleHRlcm4g
c2l6ZV90IGZ3cml0ZV91bmxvY2tlZCAgKF9fY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3B0ciwK
CQkJCSAgICBzaXplX3QgX19zaXplLCBzaXplX3QgX19uLAoJCQkJICAgIEZJTEUgKl9fcmVzdHJp
Y3QgX19zdHJlYW0pICAgIDsKCgoKIApleHRlcm4gaW50IGZzZWVrICAoRklMRSAqX19zdHJlYW0s
IGxvbmcgaW50IF9fb2ZmLCBpbnQgX193aGVuY2UpICAgIDsKIApleHRlcm4gbG9uZyBpbnQgZnRl
bGwgIChGSUxFICpfX3N0cmVhbSkgICAgOwogCmV4dGVybiB2b2lkIHJld2luZCAgKEZJTEUgKl9f
c3RyZWFtKSAgICA7CgogCgoKCgogCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKIApleHRlcm4gaW50
IGZnZXRwb3MgIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLAoJCQkgZnBvc190ICpfX3Jlc3Ry
aWN0IF9fcG9zKSAgICA7CiAKZXh0ZXJuIGludCBmc2V0cG9zICAoRklMRSAqX19zdHJlYW0sIF9f
Y29uc3QgZnBvc190ICpfX3BvcykgICAgOwojIDUxOSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMK
CgojIDUyOSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKCgogCmV4dGVybiB2b2lkIGNsZWFyZXJy
ICAoRklMRSAqX19zdHJlYW0pICAgIDsKIApleHRlcm4gaW50IGZlb2YgIChGSUxFICpfX3N0cmVh
bSkgICAgOwogCmV4dGVybiBpbnQgZmVycm9yICAoRklMRSAqX19zdHJlYW0pICAgIDsKCgogCmV4
dGVybiB2b2lkIGNsZWFyZXJyX3VubG9ja2VkICAoRklMRSAqX19zdHJlYW0pICAgIDsKZXh0ZXJu
IGludCBmZW9mX3VubG9ja2VkICAoRklMRSAqX19zdHJlYW0pICAgIDsKZXh0ZXJuIGludCBmZXJy
b3JfdW5sb2NrZWQgIChGSUxFICpfX3N0cmVhbSkgICAgOwoKCgogCmV4dGVybiB2b2lkIHBlcnJv
ciAgKF9fY29uc3QgY2hhciAqX19zKSAgICA7CgogCgoKZXh0ZXJuIGludCBzeXNfbmVycjsKZXh0
ZXJuIF9fY29uc3QgY2hhciAqX19jb25zdCBzeXNfZXJybGlzdFtdOwoKCgoKCgoKCiAKZXh0ZXJu
IGludCBmaWxlbm8gIChGSUxFICpfX3N0cmVhbSkgICAgOwoKCgogCmV4dGVybiBpbnQgZmlsZW5v
X3VubG9ja2VkICAoRklMRSAqX19zdHJlYW0pICAgIDsKCgoKCgogCmV4dGVybiBGSUxFICpwb3Bl
biAgKF9fY29uc3QgY2hhciAqX19jb21tYW5kLCBfX2NvbnN0IGNoYXIgKl9fbW9kZXMpICAgIDsK
CiAKZXh0ZXJuIGludCBwY2xvc2UgIChGSUxFICpfX3N0cmVhbSkgICAgOwoKCgoKIApleHRlcm4g
Y2hhciAqY3Rlcm1pZCAgKGNoYXIgKl9fcykgICAgOwoKCgoKCgoKCgojIDYwMyAiL3Vzci9pbmNs
dWRlL3N0ZGlvLmgiIDMKCgoKCiAKCiAKZXh0ZXJuIHZvaWQgZmxvY2tmaWxlICAoRklMRSAqX19z
dHJlYW0pICAgIDsKCiAKCmV4dGVybiBpbnQgZnRyeWxvY2tmaWxlICAoRklMRSAqX19zdHJlYW0p
ICAgIDsKCiAKZXh0ZXJuIHZvaWQgZnVubG9ja2ZpbGUgIChGSUxFICpfX3N0cmVhbSkgICAgOwoK
CgoKCgoKCgoKIAoKCgoKCiAKCgoKCiMgMiAibGxpLmMiIDIKCgppbnQgbWFpbiAodm9pZCkKewog
IGxvbmcgbG9uZyBsbGk7CgogIGlmICggISAobGxpID0gMHgxYTJhM2E0YTVhNmE3YThhTEwpICkK
ICAgIDsKCiAgcmV0dXJuIDA7Cn0KCgo=


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