This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
RE: c/10467: internal compiler error
- From: "Zhen, Li" <LZhen at NetSilicon dot com>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 24 Apr 2003 17:26:00 -0000
- Subject: RE: c/10467: internal compiler error
- Reply-to: "Zhen, Li" <LZhen at NetSilicon dot com>
The following reply was made to PR target/10467; it has been noted by GNATS.
From: "Zhen, Li" <LZhen at NetSilicon dot com>
To: <bangerth at dealii dot org>,
<gcc-bugs at gcc dot gnu dot org>,
<gcc-prs at gcc dot gnu dot org>,
"Zhen, Li" <LZhen at NetSilicon dot com>,
<nobody at gcc dot gnu dot org>,
<gcc-gnats at gcc dot gnu dot org>
Cc:
Subject: RE: c/10467: internal compiler error
Date: Thu, 24 Apr 2003 13:19:41 -0400
This is a multi-part message in MIME format.
------_=_NextPart_001_01C30A85.B113E427
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Sorry, the gcc version is 3.2, and the preprocessed file is attached:
THANKS,=20
Li
-----Original Message-----
From: bangerth at dealii dot org [mailto:bangerth at dealii dot org]
Sent: Wednesday, April 23, 2003 1:58 PM
To: gcc-bugs at gcc dot gnu dot org; gcc-prs at gcc dot gnu dot org; Zhen, Li;
nobody at gcc dot gnu dot org
Subject: Re: c/10467: internal compiler error
Synopsis: internal compiler error
State-Changed-From-To: open->feedback
State-Changed-By: bangerth
State-Changed-When: Wed Apr 23 17:57:44 2003
State-Changed-Why:
You didn't send _preprocessed_ sources, and you also didn't
say which version of gcc you are using. Please review the
web page that is listed in the error message.
=20
Thanks=20
Wolfgang
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=3Dview%20audit-trail&database=3D=
gcc&pr=3D10467
------_=_NextPart_001_01C30A85.B113E427
Content-Type: application/octet-stream;
name="dhry_1.i"
Content-Transfer-Encoding: base64
Content-Description: dhry_1.i
Content-Disposition: attachment;
filename="dhry_1.i"
IyAxICIuLi9kaHJ5XzEuYyINCiMgMSAiPGJ1aWx0LWluPiINCiMgMSAiPGNvbW1hbmQgbGluZT4i
DQojIDEgIi4uL2RocnlfMS5jIg0KIyA2MyAiLi4vZGhyeV8xLmMiDQojIDEgIi4uL2RocnkuaCIg
MQ0KIyAzODAgIi4uL2RocnkuaCINCiAgdHlwZWRlZiBlbnVtIHtJZGVudF8xLCBJZGVudF8yLCBJ
ZGVudF8zLCBJZGVudF80LCBJZGVudF81fQ0KICAgICAgICAgICAgICAgIEVudW1lcmF0aW9uOw0K
DQoNCg0KDQoNCiMgMSAiL3Vzci9hcm0tZWxmL2luY2x1ZGUvc3RkaW8uaCIgMSAzIDQNCiMgMjkg
Ii91c3IvYXJtLWVsZi9pbmNsdWRlL3N0ZGlvLmgiIDMgNA0KIyAxICIvdXNyL2FybS1lbGYvaW5j
bHVkZS9fYW5zaS5oIiAxIDMgNA0KIyAxNSAiL3Vzci9hcm0tZWxmL2luY2x1ZGUvX2Fuc2kuaCIg
MyA0DQojIDEgIi91c3IvYXJtLWVsZi9pbmNsdWRlL25ld2xpYi5oIiAxIDMgNA0KIyAxNiAiL3Vz
ci9hcm0tZWxmL2luY2x1ZGUvX2Fuc2kuaCIgMiAzIDQNCiMgMSAiL3Vzci9hcm0tZWxmL2luY2x1
ZGUvc3lzL2NvbmZpZy5oIiAxIDMgNA0KDQoNCg0KIyAxICIvdXNyL2FybS1lbGYvaW5jbHVkZS9t
YWNoaW5lL2llZWVmcC5oIiAxIDMgNA0KIyA1ICIvdXNyL2FybS1lbGYvaW5jbHVkZS9zeXMvY29u
ZmlnLmgiIDIgMyA0DQojIDE3ICIvdXNyL2FybS1lbGYvaW5jbHVkZS9fYW5zaS5oIiAyIDMgNA0K
IyAzMCAiL3Vzci9hcm0tZWxmL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQNCg0KDQoNCg0KIyAxICIv
dXNyL2xpYi9nY2MtbGliL2FybS1lbGYvMy4yL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0DQojIDIw
MSAiL3Vzci9saWIvZ2NjLWxpYi9hcm0tZWxmLzMuMi9pbmNsdWRlL3N0ZGRlZi5oIiAzIDQNCnR5
cGVkZWYgbG9uZyB1bnNpZ25lZCBpbnQgc2l6ZV90Ow0KIyAzNSAiL3Vzci9hcm0tZWxmL2luY2x1
ZGUvc3RkaW8uaCIgMiAzIDQNCg0KDQojIDEgIi91c3IvbGliL2djYy1saWIvYXJtLWVsZi8zLjIv
aW5jbHVkZS9zdGRhcmcuaCIgMSAzIDQNCiMgNDMgIi91c3IvbGliL2djYy1saWIvYXJtLWVsZi8z
LjIvaW5jbHVkZS9zdGRhcmcuaCIgMyA0DQp0eXBlZGVmIF9fYnVpbHRpbl92YV9saXN0IF9fZ251
Y192YV9saXN0Ow0KIyAzOCAiL3Vzci9hcm0tZWxmL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQNCg0K
DQoNCg0KDQoNCg0KIyAxICIvdXNyL2FybS1lbGYvaW5jbHVkZS9zeXMvcmVlbnQuaCIgMSAzIDQN
CiMgMTQgIi91c3IvYXJtLWVsZi9pbmNsdWRlL3N5cy9yZWVudC5oIiAzIDQNCiMgMSAiL3Vzci9h
cm0tZWxmL2luY2x1ZGUvc3lzL190eXBlcy5oIiAxIDMgNA0KIyAxMiAiL3Vzci9hcm0tZWxmL2lu
Y2x1ZGUvc3lzL190eXBlcy5oIiAzIDQNCnR5cGVkZWYgbG9uZyBfb2ZmX3Q7DQpfX2V4dGVuc2lv
bl9fIHR5cGVkZWYgbG9uZyBsb25nIF9vZmY2NF90Ow0KDQoNCnR5cGVkZWYgaW50IF9zc2l6ZV90
Ow0KDQoNCg0KDQoNCiMgMSAiL3Vzci9saWIvZ2NjLWxpYi9hcm0tZWxmLzMuMi9pbmNsdWRlL3N0
ZGRlZi5oIiAxIDMgNA0KIyAzMjEgIi91c3IvbGliL2djYy1saWIvYXJtLWVsZi8zLjIvaW5jbHVk
ZS9zdGRkZWYuaCIgMyA0DQp0eXBlZGVmIHVuc2lnbmVkIGludCB3aW50X3Q7DQojIDIzICIvdXNy
L2FybS1lbGYvaW5jbHVkZS9zeXMvX3R5cGVzLmgiIDIgMyA0DQoNCg0KdHlwZWRlZiBzdHJ1Y3QN
CnsNCiAgaW50IF9fY291bnQ7DQogIHVuaW9uDQogIHsNCiAgICB3aW50X3QgX193Y2g7DQogICAg
dW5zaWduZWQgY2hhciBfX3djaGJbNF07DQogIH0gX192YWx1ZTsNCn0gX21ic3RhdGVfdDsNCg0K
dHlwZWRlZiBpbnQgX2Zsb2NrX3Q7DQojIDE1ICIvdXNyL2FybS1lbGYvaW5jbHVkZS9zeXMvcmVl
bnQuaCIgMiAzIDQNCg0KDQoNCg0KdHlwZWRlZiB1bnNpZ25lZCBsb25nIF9fVUxvbmc7DQojIDQw
ICIvdXNyL2FybS1lbGYvaW5jbHVkZS9zeXMvcmVlbnQuaCIgMyA0DQpzdHJ1Y3QgX0JpZ2ludA0K
ew0KICBzdHJ1Y3QgX0JpZ2ludCAqX25leHQ7DQogIGludCBfaywgX21heHdkcywgX3NpZ24sIF93
ZHM7DQogIF9fVUxvbmcgX3hbMV07DQp9Ow0KDQoNCnN0cnVjdCBfX3RtDQp7DQogIGludCBfX3Rt
X3NlYzsNCiAgaW50IF9fdG1fbWluOw0KICBpbnQgX190bV9ob3VyOw0KICBpbnQgX190bV9tZGF5
Ow0KICBpbnQgX190bV9tb247DQogIGludCBfX3RtX3llYXI7DQogIGludCBfX3RtX3dkYXk7DQog
IGludCBfX3RtX3lkYXk7DQogIGludCBfX3RtX2lzZHN0Ow0KfTsNCiMgNjggIi91c3IvYXJtLWVs
Zi9pbmNsdWRlL3N5cy9yZWVudC5oIiAzIDQNCnN0cnVjdCBfYXRleGl0IHsNCiAgICAgICAgc3Ry
dWN0IF9hdGV4aXQgKl9uZXh0Ow0KICAgICAgICBpbnQgX2luZDsNCiAgICAgICAgdm9pZCAoKl9m
bnNbMzJdKSh2b2lkKTsNCiAgICAgICAgdm9pZCAqX2ZuYXJnc1szMl07DQogICAgICAgIF9fVUxv
bmcgX2ZudHlwZXM7DQp9Ow0KIyA5MSAiL3Vzci9hcm0tZWxmL2luY2x1ZGUvc3lzL3JlZW50Lmgi
IDMgNA0Kc3RydWN0IF9fc2J1ZiB7DQogICAgICAgIHVuc2lnbmVkIGNoYXIgKl9iYXNlOw0KICAg
ICAgICBpbnQgX3NpemU7DQp9Ow0KDQoNCg0KDQoNCg0KdHlwZWRlZiBsb25nIF9mcG9zX3Q7DQoj
IDE1NiAiL3Vzci9hcm0tZWxmL2luY2x1ZGUvc3lzL3JlZW50LmgiIDMgNA0Kc3RydWN0IF9fc0ZJ
TEUgew0KICB1bnNpZ25lZCBjaGFyICpfcDsNCiAgaW50IF9yOw0KICBpbnQgX3c7DQogIHNob3J0
IF9mbGFnczsNCiAgc2hvcnQgX2ZpbGU7DQogIHN0cnVjdCBfX3NidWYgX2JmOw0KICBpbnQgX2xi
ZnNpemU7DQoNCg0KDQoNCg0KDQogIHZvaWQgKiBfY29va2llOw0KDQogIGludCAoKl9yZWFkKSAo
dm9pZCAqIF9jb29raWUsIGNoYXIgKl9idWYsIGludCBfbik7DQogIGludCAoKl93cml0ZSkgKHZv
aWQgKiBfY29va2llLCBjb25zdCBjaGFyICpfYnVmLCBpbnQgX24pOw0KDQogIF9mcG9zX3QgKCpf
c2VlaykgKHZvaWQgKiBfY29va2llLCBfZnBvc190IF9vZmZzZXQsIGludCBfd2hlbmNlKTsNCiAg
aW50ICgqX2Nsb3NlKSAodm9pZCAqIF9jb29raWUpOw0KDQoNCiAgc3RydWN0IF9fc2J1ZiBfdWI7
DQogIHVuc2lnbmVkIGNoYXIgKl91cDsNCiAgaW50IF91cjsNCg0KDQogIHVuc2lnbmVkIGNoYXIg
X3VidWZbM107DQogIHVuc2lnbmVkIGNoYXIgX25idWZbMV07DQoNCg0KICBzdHJ1Y3QgX19zYnVm
IF9sYjsNCg0KDQogIGludCBfYmxrc2l6ZTsNCiAgaW50IF9vZmZzZXQ7DQoNCg0KICBzdHJ1Y3Qg
X3JlZW50ICpfZGF0YTsNCg0KDQoNCiAgX2Zsb2NrX3QgX2xvY2s7DQoNCn07DQojIDI0OSAiL3Vz
ci9hcm0tZWxmL2luY2x1ZGUvc3lzL3JlZW50LmgiIDMgNA0KdHlwZWRlZiBzdHJ1Y3QgX19zRklM
RSBfX0ZJTEU7DQoNCg0Kc3RydWN0IF9nbHVlDQp7DQogIHN0cnVjdCBfZ2x1ZSAqX25leHQ7DQog
IGludCBfbmlvYnM7DQogIF9fRklMRSAqX2lvYnM7DQp9Ow0KIyAyODAgIi91c3IvYXJtLWVsZi9p
bmNsdWRlL3N5cy9yZWVudC5oIiAzIDQNCnN0cnVjdCBfcmFuZDQ4IHsNCiAgdW5zaWduZWQgc2hv
cnQgX3NlZWRbM107DQogIHVuc2lnbmVkIHNob3J0IF9tdWx0WzNdOw0KICB1bnNpZ25lZCBzaG9y
dCBfYWRkOw0KDQoNCg0KDQp9Ow0KIyA1MzIgIi91c3IvYXJtLWVsZi9pbmNsdWRlL3N5cy9yZWVu
dC5oIiAzIDQNCnN0cnVjdCBfcmVlbnQNCnsNCiAgaW50IF9lcnJubzsNCg0KDQoNCg0KICBfX0ZJ
TEUgKl9zdGRpbiwgKl9zdGRvdXQsICpfc3RkZXJyOw0KDQogIGludCBfaW5jOw0KICBjaGFyIF9l
bWVyZ2VuY3lbMjVdOw0KDQogIGludCBfY3VycmVudF9jYXRlZ29yeTsNCiAgY29uc3QgY2hhciAq
X2N1cnJlbnRfbG9jYWxlOw0KDQogIGludCBfX3NkaWRpbml0Ow0KDQogIHZvaWQgKCpfX2NsZWFu
dXApIChzdHJ1Y3QgX3JlZW50ICopOw0KDQoNCiAgc3RydWN0IF9CaWdpbnQgKl9yZXN1bHQ7DQog
IGludCBfcmVzdWx0X2s7DQogIHN0cnVjdCBfQmlnaW50ICpfcDVzOw0KICBzdHJ1Y3QgX0JpZ2lu
dCAqKl9mcmVlbGlzdDsNCg0KDQogIGludCBfY3Z0bGVuOw0KICBjaGFyICpfY3Z0YnVmOw0KDQog
IHVuaW9uDQogICAgew0KICAgICAgc3RydWN0DQogICAgICAgIHsNCiAgICAgICAgICB1bnNpZ25l
ZCBpbnQgX3VudXNlZF9yYW5kOw0KICAgICAgICAgIGNoYXIgKiBfc3RydG9rX2xhc3Q7DQogICAg
ICAgICAgY2hhciBfYXNjdGltZV9idWZbMjZdOw0KICAgICAgICAgIHN0cnVjdCBfX3RtIF9sb2Nh
bHRpbWVfYnVmOw0KICAgICAgICAgIGludCBfZ2FtbWFfc2lnbmdhbTsNCiAgICAgICAgICBfX2V4
dGVuc2lvbl9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfcmFuZF9uZXh0Ow0KICAgICAgICAgIHN0cnVj
dCBfcmFuZDQ4IF9yNDg7DQogICAgICAgICAgX21ic3RhdGVfdCBfbWJsZW5fc3RhdGU7DQogICAg
ICAgICAgX21ic3RhdGVfdCBfbWJ0b3djX3N0YXRlOw0KICAgICAgICAgIF9tYnN0YXRlX3QgX3dj
dG9tYl9zdGF0ZTsNCiAgICAgICAgICBjaGFyIF9sNjRhX2J1Zls4XTsNCiAgICAgICAgICBjaGFy
IF9zaWduYWxfYnVmWzI0XTsNCiAgICAgICAgICBpbnQgX2dldGRhdGVfZXJyOw0KICAgICAgICAg
IF9tYnN0YXRlX3QgX21icmxlbl9zdGF0ZTsNCiAgICAgICAgICBfbWJzdGF0ZV90IF9tYnJ0b3dj
X3N0YXRlOw0KICAgICAgICAgIF9tYnN0YXRlX3QgX21ic3J0b3djc19zdGF0ZTsNCiAgICAgICAg
ICBfbWJzdGF0ZV90IF93Y3J0b21iX3N0YXRlOw0KICAgICAgICAgIF9tYnN0YXRlX3QgX3djc3J0
b21ic19zdGF0ZTsNCiAgICAgICAgfSBfcmVlbnQ7DQoNCg0KDQogICAgICBzdHJ1Y3QNCiAgICAg
ICAgew0KDQogICAgICAgICAgdW5zaWduZWQgY2hhciAqIF9uZXh0ZlszMF07DQogICAgICAgICAg
dW5zaWduZWQgaW50IF9ubWFsbG9jWzMwXTsNCiAgICAgICAgfSBfdW51c2VkOw0KICAgIH0gX25l
dzsNCg0KDQogIHN0cnVjdCBfYXRleGl0ICpfYXRleGl0Ow0KICBzdHJ1Y3QgX2F0ZXhpdCBfYXRl
eGl0MDsNCg0KDQogIHZvaWQgKCoqKF9zaWdfZnVuYykpKGludCk7DQoNCg0KDQoNCiAgc3RydWN0
IF9nbHVlIF9fc2dsdWU7DQogIF9fRklMRSBfX3NmWzNdOw0KfTsNCiMgNzI4ICIvdXNyL2FybS1l
bGYvaW5jbHVkZS9zeXMvcmVlbnQuaCIgMyA0DQpleHRlcm4gc3RydWN0IF9yZWVudCAqX2ltcHVy
ZV9wdHIgOw0KDQp2b2lkIF9yZWNsYWltX3JlZW50IChzdHJ1Y3QgX3JlZW50ICopOw0KIyA0NiAi
L3Vzci9hcm0tZWxmL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQNCiMgMSAiL3Vzci9hcm0tZWxmL2lu
Y2x1ZGUvc3lzL3R5cGVzLmgiIDEgMyA0DQojIDI0ICIvdXNyL2FybS1lbGYvaW5jbHVkZS9zeXMv
dHlwZXMuaCIgMyA0DQp0eXBlZGVmIHNob3J0IGludCBfX2ludDE2X3Q7DQp0eXBlZGVmIHVuc2ln
bmVkIHNob3J0IGludCBfX3VpbnQxNl90Ow0KDQoNCg0KDQoNCnR5cGVkZWYgaW50IF9faW50MzJf
dDsNCnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdWludDMyX3Q7DQoNCg0KDQoNCg0KDQpfX2V4dGVu
c2lvbl9fIHR5cGVkZWYgbG9uZyBsb25nIF9faW50NjRfdDsNCl9fZXh0ZW5zaW9uX18gdHlwZWRl
ZiB1bnNpZ25lZCBsb25nIGxvbmcgX191aW50NjRfdDsNCiMgNTkgIi91c3IvYXJtLWVsZi9pbmNs
dWRlL3N5cy90eXBlcy5oIiAzIDQNCiMgMSAiL3Vzci9saWIvZ2NjLWxpYi9hcm0tZWxmLzMuMi9p
bmNsdWRlL3N0ZGRlZi5oIiAxIDMgNA0KIyAxNDcgIi91c3IvbGliL2djYy1saWIvYXJtLWVsZi8z
LjIvaW5jbHVkZS9zdGRkZWYuaCIgMyA0DQp0eXBlZGVmIGxvbmcgaW50IHB0cmRpZmZfdDsNCiMg
Mjk0ICIvdXNyL2xpYi9nY2MtbGliL2FybS1lbGYvMy4yL2luY2x1ZGUvc3RkZGVmLmgiIDMgNA0K
dHlwZWRlZiBpbnQgd2NoYXJfdDsNCiMgNjAgIi91c3IvYXJtLWVsZi9pbmNsdWRlL3N5cy90eXBl
cy5oIiAyIDMgNA0KIyAxICIvdXNyL2FybS1lbGYvaW5jbHVkZS9tYWNoaW5lL3R5cGVzLmgiIDEg
MyA0DQojIDM2ICIvdXNyL2FybS1lbGYvaW5jbHVkZS9tYWNoaW5lL3R5cGVzLmgiIDMgNA0KdHlw
ZWRlZiBsb25nIGludCBfX29mZl90Ow0KdHlwZWRlZiBpbnQgX19waWRfdDsNCg0KX19leHRlbnNp
b25fXyB0eXBlZGVmIGxvbmcgbG9uZyBpbnQgX19sb2ZmX3Q7DQojIDYxICIvdXNyL2FybS1lbGYv
aW5jbHVkZS9zeXMvdHlwZXMuaCIgMiAzIDQNCiMgOTQgIi91c3IvYXJtLWVsZi9pbmNsdWRlL3N5
cy90eXBlcy5oIiAzIDQNCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBjbG9ja190Ow0KDQoNCg0KDQp0
eXBlZGVmIGxvbmcgdGltZV90Ow0KDQoNCg0KDQpzdHJ1Y3QgdGltZXNwZWMgew0KICB0aW1lX3Qg
dHZfc2VjOw0KICBsb25nIHR2X25zZWM7DQp9Ow0KDQpzdHJ1Y3QgaXRpbWVyc3BlYyB7DQogIHN0
cnVjdCB0aW1lc3BlYyBpdF9pbnRlcnZhbDsNCiAgc3RydWN0IHRpbWVzcGVjIGl0X3ZhbHVlOw0K
fTsNCg0KDQp0eXBlZGVmIGxvbmcgZGFkZHJfdDsNCnR5cGVkZWYgY2hhciAqIGNhZGRyX3Q7DQoN
Cg0KDQoNCg0KDQoNCnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW5vX3Q7DQojIDE1OCAiL3Vzci9h
cm0tZWxmL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMgNA0KdHlwZWRlZiBzaG9ydCBkZXZfdDsNCg0K
DQoNCg0KdHlwZWRlZiBsb25nIG9mZl90Ow0KDQp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVpZF90
Ow0KdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBnaWRfdDsNCg0KDQp0eXBlZGVmIGludCBwaWRfdDsN
CnR5cGVkZWYgbG9uZyBrZXlfdDsNCnR5cGVkZWYgX3NzaXplX3Qgc3NpemVfdDsNCiMgMTg0ICIv
dXNyL2FybS1lbGYvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMyA0DQp0eXBlZGVmIHVuc2lnbmVkIGlu
dCBtb2RlX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7DQoNCg0KDQp0eXBl
ZGVmIHVuc2lnbmVkIHNob3J0IG5saW5rX3Q7DQojIDQ3ICIvdXNyL2FybS1lbGYvaW5jbHVkZS9z
dGRpby5oIiAyIDMgNA0KDQoNCg0KdHlwZWRlZiBfZnBvc190IGZwb3NfdDsNCnR5cGVkZWYgX19G
SUxFIEZJTEU7DQoNCg0KDQoNCg0KIyAxICIvdXNyL2FybS1lbGYvaW5jbHVkZS9zeXMvc3RkaW8u
aCIgMSAzIDQNCiMgNTggIi91c3IvYXJtLWVsZi9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0DQojIDE2
MiAiL3Vzci9hcm0tZWxmL2luY2x1ZGUvc3RkaW8uaCIgMyA0DQpGSUxFICogdG1wZmlsZSAodm9p
ZCk7DQpjaGFyICogdG1wbmFtIChjaGFyICopOw0KaW50IGZjbG9zZSAoRklMRSAqKTsNCmludCBm
Zmx1c2ggKEZJTEUgKik7DQpGSUxFICogZnJlb3BlbiAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFy
ICosIEZJTEUgKik7DQp2b2lkIHNldGJ1ZiAoRklMRSAqLCBjaGFyICopOw0KaW50IHNldHZidWYg
KEZJTEUgKiwgY2hhciAqLCBpbnQsIHNpemVfdCk7DQppbnQgZnByaW50ZiAoRklMRSAqLCBjb25z
dCBjaGFyICosIC4uLik7DQppbnQgZnNjYW5mIChGSUxFICosIGNvbnN0IGNoYXIgKiwgLi4uKTsN
CmludCBwcmludGYgKGNvbnN0IGNoYXIgKiwgLi4uKTsNCmludCBzY2FuZiAoY29uc3QgY2hhciAq
LCAuLi4pOw0KaW50IHNzY2FuZiAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7DQpp
bnQgdmZwcmludGYgKEZJTEUgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7DQppbnQg
dnByaW50ZiAoY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7DQppbnQgdnNwcmludGYgKGNo
YXIgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7DQppbnQgZmdldGMgKEZJTEUgKik7
DQpjaGFyICogZmdldHMgKGNoYXIgKiwgaW50LCBGSUxFICopOw0KaW50IGZwdXRjIChpbnQsIEZJ
TEUgKik7DQppbnQgZnB1dHMgKGNvbnN0IGNoYXIgKiwgRklMRSAqKTsNCmludCBnZXRjIChGSUxF
ICopOw0KaW50IGdldGNoYXIgKHZvaWQpOw0KY2hhciAqIGdldHMgKGNoYXIgKik7DQppbnQgcHV0
YyAoaW50LCBGSUxFICopOw0KaW50IHB1dGNoYXIgKGludCk7DQppbnQgcHV0cyAoY29uc3QgY2hh
ciAqKTsNCmludCB1bmdldGMgKGludCwgRklMRSAqKTsNCnNpemVfdCBmcmVhZCAodm9pZCAqLCBz
aXplX3QgX3NpemUsIHNpemVfdCBfbiwgRklMRSAqKTsNCnNpemVfdCBmd3JpdGUgKGNvbnN0IHZv
aWQgKiAsIHNpemVfdCBfc2l6ZSwgc2l6ZV90IF9uLCBGSUxFICopOw0KaW50IGZnZXRwb3MgKEZJ
TEUgKiwgZnBvc190ICopOw0KaW50IGZzZWVrIChGSUxFICosIGxvbmcsIGludCk7DQppbnQgZnNl
dHBvcyAoRklMRSAqLCBjb25zdCBmcG9zX3QgKik7DQpsb25nIGZ0ZWxsICggRklMRSAqKTsNCnZv
aWQgcmV3aW5kIChGSUxFICopOw0Kdm9pZCBjbGVhcmVyciAoRklMRSAqKTsNCmludCBmZW9mIChG
SUxFICopOw0KaW50IGZlcnJvciAoRklMRSAqKTsNCnZvaWQgcGVycm9yIChjb25zdCBjaGFyICop
Ow0KDQpGSUxFICogZm9wZW4gKGNvbnN0IGNoYXIgKl9uYW1lLCBjb25zdCBjaGFyICpfdHlwZSk7
DQppbnQgc3ByaW50ZiAoY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7DQppbnQgcmVtb3ZlIChj
b25zdCBjaGFyICopOw0KaW50IHJlbmFtZSAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOw0K
DQoNCmludCBhc3ByaW50ZiAoY2hhciAqKiwgY29uc3QgY2hhciAqLCAuLi4pOw0KaW50IGZzZWVr
byAoRklMRSAqLCBvZmZfdCwgaW50KTsNCm9mZl90IGZ0ZWxsbyAoIEZJTEUgKik7DQppbnQgdmZp
cHJpbnRmIChGSUxFICosIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOw0KaW50IGlwcmlu
dGYgKGNvbnN0IGNoYXIgKiwgLi4uKTsNCmludCBmaXByaW50ZiAoRklMRSAqLCBjb25zdCBjaGFy
ICosIC4uLik7DQppbnQgc2lwcmludGYgKGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOw0KY2hh
ciAqIHRlbXBuYW0gKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsNCmludCB2YXNwcmludGYg
KGNoYXIgKiosIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOw0KaW50IHZzbnByaW50ZiAo
Y2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOw0KaW50IHZmc2Nh
bmYgKEZJTEUgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7DQppbnQgdnNjYW5mIChj
b25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsNCmludCB2c3NjYW5mIChjb25zdCBjaGFyICos
IGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOw0KDQppbnQgZmNsb3NlYWxsICh2b2lkKTsN
CmludCBzbnByaW50ZiAoY2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIgKiwgLi4uKTsNCiMgMjMx
ICIvdXNyL2FybS1lbGYvaW5jbHVkZS9zdGRpby5oIiAzIDQNCkZJTEUgKiBmZG9wZW4gKGludCwg
Y29uc3QgY2hhciAqKTsNCg0KaW50IGZpbGVubyAoRklMRSAqKTsNCmludCBnZXR3IChGSUxFICop
Ow0KaW50IHBjbG9zZSAoRklMRSAqKTsNCkZJTEUgKiBwb3BlbiAoY29uc3QgY2hhciAqLCBjb25z
dCBjaGFyICopOw0KaW50IHB1dHcgKGludCwgRklMRSAqKTsNCnZvaWQgc2V0YnVmZmVyIChGSUxF
ICosIGNoYXIgKiwgaW50KTsNCmludCBzZXRsaW5lYnVmIChGSUxFICopOw0KaW50IGdldGNfdW5s
b2NrZWQgKEZJTEUgKik7DQppbnQgZ2V0Y2hhcl91bmxvY2tlZCAodm9pZCk7DQp2b2lkIGZsb2Nr
ZmlsZSAoRklMRSAqKTsNCmludCBmdHJ5bG9ja2ZpbGUgKEZJTEUgKik7DQp2b2lkIGZ1bmxvY2tm
aWxlIChGSUxFICopOw0KaW50IHB1dGNfdW5sb2NrZWQgKGludCwgRklMRSAqKTsNCmludCBwdXRj
aGFyX3VubG9ja2VkIChpbnQpOw0KDQoNCg0KDQoNCg0KaW50IF9hc3ByaW50Zl9yIChzdHJ1Y3Qg
X3JlZW50ICosIGNoYXIgKiosIGNvbnN0IGNoYXIgKiwgLi4uKTsNCmludCBfZmNsb3NlYWxsX3Ig
KHN0cnVjdCBfcmVlbnQgKik7DQpGSUxFICogX2Zkb3Blbl9yIChzdHJ1Y3QgX3JlZW50ICosIGlu
dCwgY29uc3QgY2hhciAqKTsNCkZJTEUgKiBfZm9wZW5fciAoc3RydWN0IF9yZWVudCAqLCBjb25z
dCBjaGFyICosIGNvbnN0IGNoYXIgKik7DQppbnQgX2ZzY2FuZl9yIChzdHJ1Y3QgX3JlZW50ICos
IEZJTEUgKiwgY29uc3QgY2hhciAqLCAuLi4pOw0KaW50IF9nZXRjaGFyX3IgKHN0cnVjdCBfcmVl
bnQgKik7DQpjaGFyICogX2dldHNfciAoc3RydWN0IF9yZWVudCAqLCBjaGFyICopOw0KaW50IF9p
cHJpbnRmX3IgKHN0cnVjdCBfcmVlbnQgKiwgY29uc3QgY2hhciAqLCAuLi4pOw0KaW50IF9ta3N0
ZW1wX3IgKHN0cnVjdCBfcmVlbnQgKiwgY2hhciAqKTsNCmNoYXIgKiBfbWt0ZW1wX3IgKHN0cnVj
dCBfcmVlbnQgKiwgY2hhciAqKTsNCnZvaWQgX3BlcnJvcl9yIChzdHJ1Y3QgX3JlZW50ICosIGNv
bnN0IGNoYXIgKik7DQppbnQgX3ByaW50Zl9yIChzdHJ1Y3QgX3JlZW50ICosIGNvbnN0IGNoYXIg
KiwgLi4uKTsNCmludCBfcHV0Y2hhcl9yIChzdHJ1Y3QgX3JlZW50ICosIGludCk7DQppbnQgX3B1
dHNfciAoc3RydWN0IF9yZWVudCAqLCBjb25zdCBjaGFyICopOw0KaW50IF9yZW1vdmVfciAoc3Ry
dWN0IF9yZWVudCAqLCBjb25zdCBjaGFyICopOw0KaW50IF9yZW5hbWVfciAoc3RydWN0IF9yZWVu
dCAqLCBjb25zdCBjaGFyICpfb2xkLCBjb25zdCBjaGFyICpfbmV3KTsNCg0KaW50IF9zY2FuZl9y
IChzdHJ1Y3QgX3JlZW50ICosIGNvbnN0IGNoYXIgKiwgLi4uKTsNCmludCBfc3ByaW50Zl9yIChz
dHJ1Y3QgX3JlZW50ICosIGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOw0KaW50IF9zbnByaW50
Zl9yIChzdHJ1Y3QgX3JlZW50ICosIGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIC4uLik7
DQppbnQgX3NzY2FuZl9yIChzdHJ1Y3QgX3JlZW50ICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hh
ciAqLCAuLi4pOw0KY2hhciAqIF90ZW1wbmFtX3IgKHN0cnVjdCBfcmVlbnQgKiwgY29uc3QgY2hh
ciAqLCBjb25zdCBjaGFyICopOw0KRklMRSAqIF90bXBmaWxlX3IgKHN0cnVjdCBfcmVlbnQgKik7
DQpjaGFyICogX3RtcG5hbV9yIChzdHJ1Y3QgX3JlZW50ICosIGNoYXIgKik7DQppbnQgX3Zhc3By
aW50Zl9yIChzdHJ1Y3QgX3JlZW50ICosIGNoYXIgKiosIGNvbnN0IGNoYXIgKiwgX19nbnVjX3Zh
X2xpc3QpOw0KaW50IF92ZnByaW50Zl9yIChzdHJ1Y3QgX3JlZW50ICosIEZJTEUgKiwgY29uc3Qg
Y2hhciAqLCBfX2dudWNfdmFfbGlzdCk7DQppbnQgX3ZwcmludGZfciAoc3RydWN0IF9yZWVudCAq
LCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsNCmludCBfdnNwcmludGZfciAoc3RydWN0
IF9yZWVudCAqLCBjaGFyICosIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOw0KaW50IF92
c25wcmludGZfciAoc3RydWN0IF9yZWVudCAqLCBjaGFyICosIHNpemVfdCwgY29uc3QgY2hhciAq
LCBfX2dudWNfdmFfbGlzdCk7DQppbnQgX3Zmc2NhbmZfciAoc3RydWN0IF9yZWVudCAqLCBGSUxF
ICosIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOw0KaW50IF92c2NhbmZfciAoc3RydWN0
IF9yZWVudCAqLCBjb25zdCBjaGFyICosIF9fZ251Y192YV9saXN0KTsNCmludCBfdnNzY2FuZl9y
IChzdHJ1Y3QgX3JlZW50ICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBfX2dudWNfdmFf
bGlzdCk7DQoNCnNzaXplX3QgX19nZXRkZWxpbSAoY2hhciAqKiwgc2l6ZV90ICosIGludCwgRklM
RSAqKTsNCnNzaXplX3QgX19nZXRsaW5lIChjaGFyICoqLCBzaXplX3QgKiwgRklMRSAqKTsNCiMg
MzA5ICIvdXNyL2FybS1lbGYvaW5jbHVkZS9zdGRpby5oIiAzIDQNCmludCBfX3NyZ2V0IChGSUxF
ICopOw0KaW50IF9fc3didWYgKGludCwgRklMRSAqKTsNCg0KDQoNCg0KDQoNCkZJTEUgKmZ1bm9w
ZW4gKGNvbnN0IHZvaWQgKiBfY29va2llLCBpbnQgKCpyZWFkZm4pKHZvaWQgKiBfY29va2llLCBj
aGFyICpfYnVmLCBpbnQgX24pLCBpbnQgKCp3cml0ZWZuKSh2b2lkICogX2Nvb2tpZSwgY29uc3Qg
Y2hhciAqX2J1ZiwgaW50IF9uKSwgZnBvc190ICgqc2Vla2ZuKSh2b2lkICogX2Nvb2tpZSwgZnBv
c190IF9vZmYsIGludCBfd2hlbmNlKSwgaW50ICgqY2xvc2Vmbikodm9pZCAqIF9jb29raWUpKTsN
CiMgNDE2ICIvdXNyL2FybS1lbGYvaW5jbHVkZS9zdGRpby5oIiAzIDQNCg0KIyAzODggIi4uL2Ro
cnkuaCIgMg0KDQoNCg0KDQoNCg0KDQp0eXBlZGVmIGludCBPbmVfVGhpcnR5Ow0KdHlwZWRlZiBp
bnQgT25lX0ZpZnR5Ow0KdHlwZWRlZiBjaGFyIENhcGl0YWxfTGV0dGVyOw0KdHlwZWRlZiBpbnQg
Qm9vbGVhbjsNCnR5cGVkZWYgY2hhciBTdHJfMzAgWzMxXTsNCnR5cGVkZWYgaW50IEFycl8xX0Rp
bSBbNTBdOw0KdHlwZWRlZiBpbnQgQXJyXzJfRGltIFs1MF0gWzUwXTsNCg0KdHlwZWRlZiBzdHJ1
Y3QgcmVjb3JkDQogICAgew0KICAgIHN0cnVjdCByZWNvcmQgKlB0cl9Db21wOw0KICAgIEVudW1l
cmF0aW9uIERpc2NyOw0KICAgIHVuaW9uIHsNCiAgICAgICAgICBzdHJ1Y3Qgew0KICAgICAgICAg
ICAgICAgICAgRW51bWVyYXRpb24gRW51bV9Db21wOw0KICAgICAgICAgICAgICAgICAgaW50IElu
dF9Db21wOw0KICAgICAgICAgICAgICAgICAgY2hhciBTdHJfQ29tcCBbMzFdOw0KICAgICAgICAg
ICAgICAgICAgfSB2YXJfMTsNCiAgICAgICAgICBzdHJ1Y3Qgew0KICAgICAgICAgICAgICAgICAg
RW51bWVyYXRpb24gRV9Db21wXzI7DQogICAgICAgICAgICAgICAgICBjaGFyIFN0cl8yX0NvbXAg
WzMxXTsNCiAgICAgICAgICAgICAgICAgIH0gdmFyXzI7DQogICAgICAgICAgc3RydWN0IHsNCiAg
ICAgICAgICAgICAgICAgIGNoYXIgQ2hfMV9Db21wOw0KICAgICAgICAgICAgICAgICAgY2hhciBD
aF8yX0NvbXA7DQogICAgICAgICAgICAgICAgICB9IHZhcl8zOw0KICAgICAgICAgIH0gdmFyaWFu
dDsNCiAgICAgIH0gUmVjX1R5cGUsICpSZWNfUG9pbnRlcjsNCiMgNjQgIi4uL2RocnlfMS5jIiAy
DQojIDEgIi4uLy4uLy4uLy4uL2gvdGhyZWFkeC90eF9hcGkuaCIgMQ0KIyAxMDkgIi4uLy4uLy4u
Ly4uL2gvdGhyZWFkeC90eF9hcGkuaCINCiMgMSAiLi4vLi4vLi4vLi4vaC90aHJlYWR4L3R4X3Bv
cnQuaCIgMQ0KIyA5NyAiLi4vLi4vLi4vLi4vaC90aHJlYWR4L3R4X3BvcnQuaCINCnR5cGVkZWYg
dm9pZCAqIFZPSURfUFRSOw0KdHlwZWRlZiBjaGFyIENIQVI7DQp0eXBlZGVmIGNoYXIgKiBDSEFS
X1BUUjsNCnR5cGVkZWYgdW5zaWduZWQgY2hhciBVQ0hBUjsNCnR5cGVkZWYgdW5zaWduZWQgY2hh
ciAqIFVDSEFSX1BUUjsNCnR5cGVkZWYgaW50IElOVDsNCnR5cGVkZWYgaW50ICogSU5UX1BUUjsN
CnR5cGVkZWYgdW5zaWduZWQgaW50IFVJTlQ7DQp0eXBlZGVmIHVuc2lnbmVkIGludCAqIFVJTlRf
UFRSOw0KdHlwZWRlZiBsb25nIExPTkc7DQp0eXBlZGVmIGxvbmcgKiBMT05HX1BUUjsNCg0KDQoN
Cg0KDQoNCg0KdHlwZWRlZiB1bnNpZ25lZCBsb25nIFVMT05HOw0KDQp0eXBlZGVmIHVuc2lnbmVk
IGxvbmcgKiBVTE9OR19QVFI7DQojIDE0NyAiLi4vLi4vLi4vLi4vaC90aHJlYWR4L3R4X3BvcnQu
aCINCnVuc2lnbmVkIGludCBfdHhfdGhyZWFkX2ludGVycnVwdF9jb250cm9sKHVuc2lnbmVkIGlu
dCBuZXdfcG9zdHVyZSk7DQojIDIzMSAiLi4vLi4vLi4vLi4vaC90aHJlYWR4L3R4X3BvcnQuaCIN
CmV4dGVybiBDSEFSIF90eF92ZXJzaW9uX2lkW107DQojIDExMCAiLi4vLi4vLi4vLi4vaC90aHJl
YWR4L3R4X2FwaS5oIiAyDQojIDIzNCAiLi4vLi4vLi4vLi4vaC90aHJlYWR4L3R4X2FwaS5oIg0K
dHlwZWRlZiBzdHJ1Y3QgVFhfSU5URVJOQUxfVElNRVJfU1RSVUNUDQp7DQoNCg0KICAgIFVMT05H
IHR4X3JlbWFpbmluZ190aWNrczsNCiAgICBVTE9ORyB0eF9yZV9pbml0aWFsaXplX3RpY2tzOw0K
DQoNCiAgICB2b2lkICgqdHhfdGltZW91dF9mdW5jdGlvbikoVUxPTkcpOw0KICAgIFVMT05HIHR4
X3RpbWVvdXRfcGFyYW07DQoNCg0KDQoNCiAgICBzdHJ1Y3QgVFhfSU5URVJOQUxfVElNRVJfU1RS
VUNUDQogICAgICAgICAgICAgICAgKnR4X2FjdGl2ZV9uZXh0LA0KICAgICAgICAgICAgICAgICp0
eF9hY3RpdmVfcHJldmlvdXM7DQoNCg0KICAgIHN0cnVjdCBUWF9JTlRFUk5BTF9USU1FUl9TVFJV
Q1QNCiAgICAgICAgICAgICAgICAqKnR4X2xpc3RfaGVhZDsNCn0gVFhfSU5URVJOQUxfVElNRVI7
DQoNCg0KDQoNCnR5cGVkZWYgc3RydWN0IFRYX1RJTUVSX1NUUlVDVA0Kew0KDQoNCiAgICBVTE9O
RyB0eF90aW1lcl9pZDsNCg0KDQogICAgQ0hBUl9QVFIgdHhfdGltZXJfbmFtZTsNCg0KDQoNCg0K
DQoNCiAgICBUWF9JTlRFUk5BTF9USU1FUiB0eF90aW1lcl9pbnRlcm5hbDsNCg0KDQogICAgc3Ry
dWN0IFRYX1RJTUVSX1NUUlVDVA0KICAgICAgICAgICAgICAgICp0eF90aW1lcl9jcmVhdGVkX25l
eHQsDQogICAgICAgICAgICAgICAgKnR4X3RpbWVyX2NyZWF0ZWRfcHJldmlvdXM7DQp9IFRYX1RJ
TUVSOw0KDQp0eXBlZGVmIFRYX1RJTUVSICogVFhfVElNRVJfUFRSOw0KDQoNCg0KDQoNCg0KdHlw
ZWRlZiBzdHJ1Y3QgVFhfVEhSRUFEX1NUUlVDVA0Kew0KDQoNCg0KDQogICAgVUxPTkcgdHhfdGhy
ZWFkX2lkOw0KICAgIFVMT05HIHR4X3J1bl9jb3VudDsNCiAgICBWT0lEX1BUUiB0eF9zdGFja19w
dHI7DQogICAgVk9JRF9QVFIgdHhfc3RhY2tfc3RhcnQ7DQogICAgVk9JRF9QVFIgdHhfc3RhY2tf
ZW5kOw0KICAgIFVMT05HIHR4X3N0YWNrX3NpemU7DQogICAgVUxPTkcgdHhfdGltZV9zbGljZTsN
CiAgICBVTE9ORyB0eF9uZXdfdGltZV9zbGljZTsNCg0KDQogICAgc3RydWN0IFRYX1RIUkVBRF9T
VFJVQ1QNCiAgICAgICAgICAgICAgICAqdHhfcmVhZHlfbmV4dCwNCiAgICAgICAgICAgICAgICAq
dHhfcmVhZHlfcHJldmlvdXM7DQoNCg0KDQoNCg0KICAgDQoNCg0KDQoNCg0KDQoNCiAgICBDSEFS
X1BUUiB0eF90aHJlYWRfbmFtZTsNCiAgICBVSU5UIHR4X3ByaW9yaXR5Ow0KICAgIFVJTlQgdHhf
c3RhdGU7DQogICAgVUlOVCB0eF9kZWxheWVkX3N1c3BlbmQ7DQogICAgVUlOVCB0eF9zdXNwZW5k
aW5nOw0KICAgIFVJTlQgdHhfcHJlZW1wdF90aHJlc2hvbGQ7DQogICAgVUxPTkcgdHhfcHJpb3Jp
dHlfYml0Ow0KDQoNCiAgICB2b2lkICgqdHhfdGhyZWFkX2VudHJ5KShVTE9ORyk7DQogICAgVUxP
TkcgdHhfZW50cnlfcGFyYW1ldGVyOw0KDQoNCg0KICAgIFRYX0lOVEVSTkFMX1RJTUVSDQogICAg
ICAgICAgICAgICAgdHhfdGhyZWFkX3RpbWVyOw0KDQoNCg0KDQoNCiAgICB2b2lkICgqdHhfc3Vz
cGVuZF9jbGVhbnVwKShzdHJ1Y3QgVFhfVEhSRUFEX1NUUlVDVCAqKTsNCiAgICBWT0lEX1BUUiB0
eF9zdXNwZW5kX2NvbnRyb2xfYmxvY2s7DQogICAgc3RydWN0IFRYX1RIUkVBRF9TVFJVQ1QNCiAg
ICAgICAgICAgICAgICAqdHhfc3VzcGVuZGVkX25leHQsDQogICAgICAgICAgICAgICAgKnR4X3N1
c3BlbmRlZF9wcmV2aW91czsNCiAgICBVTE9ORyB0eF9zdXNwZW5kX2luZm87DQogICAgVk9JRF9Q
VFIgdHhfYWRkaXRpb25hbF9zdXNwZW5kX2luZm87DQogICAgVUlOVCB0eF9zdXNwZW5kX29wdGlv
bjsNCiAgICBVSU5UIHR4X3N1c3BlbmRfc3RhdHVzOw0KDQoNCiAgICBWT0lEX1BUUiB0eF9laF9n
bG9iYWxzOw0KDQoNCg0KICAgICAgICBWT0lEX1BUUiB0eF9wb3NpeF9zaWduYWxbMl07DQoNCg0K
DQoNCiAgICBzdHJ1Y3QgVFhfVEhSRUFEX1NUUlVDVA0KICAgICAgICAgICAgICAgICp0eF9jcmVh
dGVkX25leHQsDQogICAgICAgICAgICAgICAgKnR4X2NyZWF0ZWRfcHJldmlvdXM7DQoNCg0KDQog
ICAgVk9JRF9QVFIgdHhfZmlsZXhfcHRyOw0KDQoNCiAgICAgICAgaW50IHR4X2Vycm5vOw0KDQp9
IFRYX1RIUkVBRDsNCg0KdHlwZWRlZiBUWF9USFJFQUQgKiBUWF9USFJFQURfUFRSOw0KDQoNCg0K
DQp0eXBlZGVmIHN0cnVjdCBUWF9TRU1BUEhPUkVfU1RSVUNUDQp7DQoNCg0KICAgIFVMT05HIHR4
X3NlbWFwaG9yZV9pZDsNCg0KDQogICAgQ0hBUl9QVFIgdHhfc2VtYXBob3JlX25hbWU7DQoNCg0K
DQogICAgVUxPTkcgdHhfc2VtYXBob3JlX2NvdW50Ow0KDQoNCg0KICAgIHN0cnVjdCBUWF9USFJF
QURfU1RSVUNUICp0eF9zZW1hcGhvcmVfc3VzcGVuc2lvbl9saXN0Ow0KICAgIFVMT05HIHR4X3Nl
bWFwaG9yZV9zdXNwZW5kZWRfY291bnQ7DQoNCg0KICAgIHN0cnVjdCBUWF9TRU1BUEhPUkVfU1RS
VUNUDQogICAgICAgICAgICAgICAgKnR4X3NlbWFwaG9yZV9jcmVhdGVkX25leHQsDQogICAgICAg
ICAgICAgICAgKnR4X3NlbWFwaG9yZV9jcmVhdGVkX3ByZXZpb3VzOw0KDQp9IFRYX1NFTUFQSE9S
RTsNCg0KdHlwZWRlZiBUWF9TRU1BUEhPUkUgKiBUWF9TRU1BUEhPUkVfUFRSOw0KDQoNCg0KDQp0
eXBlZGVmIHN0cnVjdCBUWF9RVUVVRV9TVFJVQ1QNCnsNCg0KDQogICAgVUxPTkcgdHhfcXVldWVf
aWQ7DQoNCg0KICAgIENIQVJfUFRSIHR4X3F1ZXVlX25hbWU7DQoNCg0KICAgIFVJTlQgdHhfcXVl
dWVfbWVzc2FnZV9zaXplOw0KDQoNCiAgICBVTE9ORyB0eF9xdWV1ZV9jYXBhY2l0eTsNCg0KDQoN
CiAgICBVTE9ORyB0eF9xdWV1ZV9lbnF1ZXVlZDsNCiAgICBVTE9ORyB0eF9xdWV1ZV9hdmFpbGFi
bGVfc3RvcmFnZTsNCg0KDQoNCiAgICBVTE9OR19QVFIgdHhfcXVldWVfc3RhcnQ7DQogICAgVUxP
TkdfUFRSIHR4X3F1ZXVlX2VuZDsNCg0KDQoNCiAgICBVTE9OR19QVFIgdHhfcXVldWVfcmVhZDsN
CiAgICBVTE9OR19QVFIgdHhfcXVldWVfd3JpdGU7DQoNCg0KDQogICAgc3RydWN0IFRYX1RIUkVB
RF9TVFJVQ1QgKnR4X3F1ZXVlX3N1c3BlbnNpb25fbGlzdDsNCiAgICBVTE9ORyB0eF9xdWV1ZV9z
dXNwZW5kZWRfY291bnQ7DQoNCg0KICAgIHN0cnVjdCBUWF9RVUVVRV9TVFJVQ1QNCiAgICAgICAg
ICAgICAgICAqdHhfcXVldWVfY3JlYXRlZF9uZXh0LA0KICAgICAgICAgICAgICAgICp0eF9xdWV1
ZV9jcmVhdGVkX3ByZXZpb3VzOw0KDQp9IFRYX1FVRVVFOw0KDQp0eXBlZGVmIFRYX1FVRVVFICog
VFhfUVVFVUVfUFRSOw0KDQoNCg0KDQp0eXBlZGVmIHN0cnVjdCBUWF9FVkVOVF9GTEFHU19HUk9V
UF9TVFJVQ1QNCnsNCg0KDQogICAgVUxPTkcgdHhfZXZlbnRfZmxhZ3NfaWQ7DQoNCg0KICAgIENI
QVJfUFRSIHR4X2V2ZW50X2ZsYWdzX25hbWU7DQoNCg0KDQogICAgVUxPTkcgdHhfZXZlbnRfZmxh
Z3NfY3VycmVudDsNCg0KDQoNCiAgICBVSU5UIHR4X2V2ZW50X2ZsYWdzX3Jlc2V0X3NlYXJjaDsN
Cg0KDQoNCiAgICBzdHJ1Y3QgVFhfVEhSRUFEX1NUUlVDVCAqdHhfZXZlbnRfZmxhZ3Nfc3VzcGVu
c2lvbl9saXN0Ow0KICAgIFVMT05HIHR4X2V2ZW50X2ZsYWdzX3N1c3BlbmRlZF9jb3VudDsNCg0K
DQogICAgc3RydWN0IFRYX0VWRU5UX0ZMQUdTX0dST1VQX1NUUlVDVA0KICAgICAgICAgICAgICAg
ICp0eF9ldmVudF9mbGFnc19jcmVhdGVkX25leHQsDQogICAgICAgICAgICAgICAgKnR4X2V2ZW50
X2ZsYWdzX2NyZWF0ZWRfcHJldmlvdXM7DQoNCn0gVFhfRVZFTlRfRkxBR1NfR1JPVVA7DQoNCnR5
cGVkZWYgVFhfRVZFTlRfRkxBR1NfR1JPVVAgKiBUWF9FVkVOVF9GTEFHU19HUk9VUF9QVFI7DQoN
Cg0KDQoNCnR5cGVkZWYgc3RydWN0IFRYX0JMT0NLX1BPT0xfU1RSVUNUDQp7DQoNCg0KICAgIFVM
T05HIHR4X2Jsb2NrX3Bvb2xfaWQ7DQoNCg0KICAgIENIQVJfUFRSIHR4X2Jsb2NrX3Bvb2xfbmFt
ZTsNCg0KDQogICAgVUxPTkcgdHhfYmxvY2tfcG9vbF9hdmFpbGFibGU7DQoNCg0KICAgIFVMT05H
IHR4X2Jsb2NrX3Bvb2xfdG90YWw7DQoNCg0KICAgIENIQVJfUFRSIHR4X2Jsb2NrX3Bvb2xfYXZh
aWxhYmxlX2xpc3Q7DQoNCg0KICAgIENIQVJfUFRSIHR4X2Jsb2NrX3Bvb2xfc3RhcnQ7DQoNCg0K
ICAgIFVMT05HIHR4X2Jsb2NrX3Bvb2xfc2l6ZTsNCg0KDQogICAgVUxPTkcgdHhfYmxvY2tfcG9v
bF9ibG9ja19zaXplOw0KDQoNCg0KICAgIHN0cnVjdCBUWF9USFJFQURfU1RSVUNUICp0eF9ibG9j
a19wb29sX3N1c3BlbnNpb25fbGlzdDsNCiAgICBVTE9ORyB0eF9ibG9ja19wb29sX3N1c3BlbmRl
ZF9jb3VudDsNCg0KDQogICAgc3RydWN0IFRYX0JMT0NLX1BPT0xfU1RSVUNUDQogICAgICAgICAg
ICAgICAgKnR4X2Jsb2NrX3Bvb2xfY3JlYXRlZF9uZXh0LA0KICAgICAgICAgICAgICAgICp0eF9i
bG9ja19wb29sX2NyZWF0ZWRfcHJldmlvdXM7DQoNCn0gVFhfQkxPQ0tfUE9PTDsNCg0KdHlwZWRl
ZiBUWF9CTE9DS19QT09MICogVFhfQkxPQ0tfUE9PTF9QVFI7DQoNCg0KDQoNCnR5cGVkZWYgc3Ry
dWN0IFRYX0JZVEVfUE9PTF9TVFJVQ1QNCnsNCg0KDQogICAgVUxPTkcgdHhfYnl0ZV9wb29sX2lk
Ow0KDQoNCiAgICBDSEFSX1BUUiB0eF9ieXRlX3Bvb2xfbmFtZTsNCg0KDQogICAgVUxPTkcgdHhf
Ynl0ZV9wb29sX2F2YWlsYWJsZTsNCg0KDQogICAgVUxPTkcgdHhfYnl0ZV9wb29sX2ZyYWdtZW50
czsNCg0KDQogICAgQ0hBUl9QVFIgdHhfYnl0ZV9wb29sX2xpc3Q7DQoNCg0KDQogICAgQ0hBUl9Q
VFIgdHhfYnl0ZV9wb29sX3NlYXJjaDsNCg0KDQogICAgQ0hBUl9QVFIgdHhfYnl0ZV9wb29sX3N0
YXJ0Ow0KDQoNCiAgICBVTE9ORyB0eF9ieXRlX3Bvb2xfc2l6ZTsNCg0KDQoNCg0KICAgIHN0cnVj
dCBUWF9USFJFQURfU1RSVUNUICp0eF9ieXRlX3Bvb2xfb3duZXI7DQoNCg0KDQogICAgc3RydWN0
IFRYX1RIUkVBRF9TVFJVQ1QgKnR4X2J5dGVfcG9vbF9zdXNwZW5zaW9uX2xpc3Q7DQogICAgVUxP
TkcgdHhfYnl0ZV9wb29sX3N1c3BlbmRlZF9jb3VudDsNCg0KDQogICAgc3RydWN0IFRYX0JZVEVf
UE9PTF9TVFJVQ1QNCiAgICAgICAgICAgICAgICAqdHhfYnl0ZV9wb29sX2NyZWF0ZWRfbmV4dCwN
CiAgICAgICAgICAgICAgICAqdHhfYnl0ZV9wb29sX2NyZWF0ZWRfcHJldmlvdXM7DQoNCn0gVFhf
QllURV9QT09MOw0KDQp0eXBlZGVmIFRYX0JZVEVfUE9PTCAqIFRYX0JZVEVfUE9PTF9QVFI7DQoN
Cg0KDQoNCnR5cGVkZWYgc3RydWN0IFRYX01VVEVYX1NUUlVDVA0Kew0KDQoNCiAgICBVTE9ORyB0
eF9tdXRleF9pZDsNCg0KDQogICAgQ0hBUl9QVFIgdHhfbXV0ZXhfbmFtZTsNCg0KDQogICAgVUxP
TkcgdHhfbXV0ZXhfb3duZXJzaGlwX2NvdW50Ow0KDQoNCg0KICAgIFRYX1RIUkVBRCAqdHhfbXV0
ZXhfb3duZXI7DQoNCg0KDQogICAgVUlOVCB0eF9tdXRleF9pbmhlcml0Ow0KDQoNCg0KICAgIFVJ
TlQgdHhfbXV0ZXhfb3JpZ2luYWxfcHJpb3JpdHk7DQogICAgVUlOVCB0eF9tdXRleF9vcmlnaW5h
bF90aHJlc2hvbGQ7DQoNCg0KDQogICAgc3RydWN0IFRYX1RIUkVBRF9TVFJVQ1QgKnR4X211dGV4
X3N1c3BlbnNpb25fbGlzdDsNCiAgICBVTE9ORyB0eF9tdXRleF9zdXNwZW5kZWRfY291bnQ7DQoN
Cg0KICAgIHN0cnVjdCBUWF9NVVRFWF9TVFJVQ1QNCiAgICAgICAgICAgICAgICAqdHhfbXV0ZXhf
Y3JlYXRlZF9uZXh0LA0KICAgICAgICAgICAgICAgICp0eF9tdXRleF9jcmVhdGVkX3ByZXZpb3Vz
Ow0KDQp9IFRYX01VVEVYOw0KDQp0eXBlZGVmIFRYX01VVEVYICogVFhfTVVURVhfUFRSOw0KIyA4
MDEgIi4uLy4uLy4uLy4uL2gvdGhyZWFkeC90eF9hcGkuaCINCnZvaWQgX3R4X2luaXRpYWxpemVf
a2VybmVsX2VudGVyKHZvaWQpOw0KDQpVSU5UIF90eGVfYnl0ZV9hbGxvY2F0ZShUWF9CWVRFX1BP
T0wgKnBvb2xfcHRyLCB2b2lkICoqbWVtb3J5X3B0ciwgVUxPTkcgbWVtb3J5X3NpemUsDQogICAg
ICAgICAgICAgICAgICAgIFVMT05HIHdhaXRfb3B0aW9uKTsNClVJTlQgX3R4ZV9ieXRlX3Bvb2xf
Y3JlYXRlKFRYX0JZVEVfUE9PTCAqcG9vbF9wdHIsIENIQVIgKm5hbWVfcHRyLCB2b2lkICpwb29s
X3N0YXJ0LA0KICAgICAgICAgICAgICAgICAgICBVTE9ORyBwb29sX3NpemUpOw0KVUlOVCBfdHhl
X2J5dGVfcG9vbF9kZWxldGUoVFhfQllURV9QT09MICpwb29sX3B0cik7DQpVSU5UIF90eGVfYnl0
ZV9wb29sX2luZm9fZ2V0KFRYX0JZVEVfUE9PTCAqcG9vbF9wdHIsIENIQVIgKipuYW1lLCBVTE9O
RyAqYXZhaWxhYmxlX2J5dGVzLA0KICAgICAgICAgICAgICAgICAgICBVTE9ORyAqZnJhZ21lbnRz
LCBUWF9USFJFQUQgKipmaXJzdF9zdXNwZW5kZWQsDQogICAgICAgICAgICAgICAgICAgIFVMT05H
ICpzdXNwZW5kZWRfY291bnQsIFRYX0JZVEVfUE9PTCAqKm5leHRfcG9vbCk7DQpVSU5UIF90eGVf
Ynl0ZV9wb29sX3ByaW9yaXRpemUoVFhfQllURV9QT09MICpwb29sX3B0cik7DQpVSU5UIF90eGVf
Ynl0ZV9yZWxlYXNlKHZvaWQgKm1lbW9yeV9wdHIpOw0KDQpVSU5UIF90eGVfYmxvY2tfYWxsb2Nh
dGUoVFhfQkxPQ0tfUE9PTCAqcG9vbF9wdHIsIHZvaWQgKipibG9ja19wdHIsIFVMT05HIHdhaXRf
b3B0aW9uKTsNClVJTlQgX3R4ZV9ibG9ja19wb29sX2NyZWF0ZShUWF9CTE9DS19QT09MICpwb29s
X3B0ciwgQ0hBUiAqbmFtZV9wdHIsIFVMT05HIGJsb2NrX3NpemUsDQogICAgICAgICAgICAgICAg
ICAgIHZvaWQgKnBvb2xfc3RhcnQsIFVMT05HIHBvb2xfc2l6ZSk7DQpVSU5UIF90eGVfYmxvY2tf
cG9vbF9kZWxldGUoVFhfQkxPQ0tfUE9PTCAqcG9vbF9wdHIpOw0KVUlOVCBfdHhlX2Jsb2NrX3Bv
b2xfaW5mb19nZXQoVFhfQkxPQ0tfUE9PTCAqcG9vbF9wdHIsIENIQVIgKipuYW1lLCBVTE9ORyAq
YXZhaWxhYmxlX2Jsb2NrcywNCiAgICAgICAgICAgICAgICAgICAgVUxPTkcgKnRvdGFsX2Jsb2Nr
cywgVFhfVEhSRUFEICoqZmlyc3Rfc3VzcGVuZGVkLA0KICAgICAgICAgICAgICAgICAgICBVTE9O
RyAqc3VzcGVuZGVkX2NvdW50LCBUWF9CTE9DS19QT09MICoqbmV4dF9wb29sKTsNClVJTlQgX3R4
ZV9ibG9ja19wb29sX3ByaW9yaXRpemUoVFhfQkxPQ0tfUE9PTCAqcG9vbF9wdHIpOw0KVUlOVCBf
dHhlX2Jsb2NrX3JlbGVhc2Uodm9pZCAqYmxvY2tfcHRyKTsNCg0KVUlOVCBfdHhlX2V2ZW50X2Zs
YWdzX2NyZWF0ZShUWF9FVkVOVF9GTEFHU19HUk9VUCAqZ3JvdXBfcHRyLCBDSEFSICpuYW1lX3B0
cik7DQpVSU5UIF90eGVfZXZlbnRfZmxhZ3NfZGVsZXRlKFRYX0VWRU5UX0ZMQUdTX0dST1VQICpn
cm91cF9wdHIpOw0KVUlOVCBfdHhlX2V2ZW50X2ZsYWdzX2dldChUWF9FVkVOVF9GTEFHU19HUk9V
UCAqZ3JvdXBfcHRyLCBVTE9ORyByZXF1ZXN0ZWRfZmxhZ3MsDQogICAgICAgICAgICAgICAgICAg
IFVJTlQgZ2V0X29wdGlvbiwgVUxPTkcgKmFjdHVhbF9mbGFnc19wdHIsIFVMT05HIHdhaXRfb3B0
aW9uKTsNClVJTlQgX3R4ZV9ldmVudF9mbGFnc19pbmZvX2dldChUWF9FVkVOVF9GTEFHU19HUk9V
UCAqZ3JvdXBfcHRyLCBDSEFSICoqbmFtZSwgVUxPTkcgKmN1cnJlbnRfZmxhZ3MsDQogICAgICAg
ICAgICAgICAgICAgIFRYX1RIUkVBRCAqKmZpcnN0X3N1c3BlbmRlZCwgVUxPTkcgKnN1c3BlbmRl
ZF9jb3VudCwNCiAgICAgICAgICAgICAgICAgICAgVFhfRVZFTlRfRkxBR1NfR1JPVVAgKipuZXh0
X2dyb3VwKTsNClVJTlQgX3R4ZV9ldmVudF9mbGFnc19zZXQoVFhfRVZFTlRfRkxBR1NfR1JPVVAg
Kmdyb3VwX3B0ciwgVUxPTkcgZmxhZ3NfdG9fc2V0LA0KICAgICAgICAgICAgICAgICAgICBVSU5U
IHNldF9vcHRpb24pOw0KDQpVSU5UIF90eF90aHJlYWRfaW50ZXJydXB0X2NvbnRyb2woVUlOVCBu
ZXdfcG9zdHVyZSk7DQoNClVJTlQgX3R4ZV9xdWV1ZV9jcmVhdGUoVFhfUVVFVUUgKnF1ZXVlX3B0
ciwgQ0hBUiAqbmFtZV9wdHIsIFVJTlQgbWVzc2FnZV9zaXplLA0KICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCAqcXVldWVfc3RhcnQsIFVMT05HIHF1ZXVlX3NpemUpOw0KVUlOVCBfdHhlX3F1
ZXVlX2RlbGV0ZShUWF9RVUVVRSAqcXVldWVfcHRyKTsNClVJTlQgX3R4ZV9xdWV1ZV9mbHVzaChU
WF9RVUVVRSAqcXVldWVfcHRyKTsNClVJTlQgX3R4ZV9xdWV1ZV9pbmZvX2dldChUWF9RVUVVRSAq
cXVldWVfcHRyLCBDSEFSICoqbmFtZSwgVUxPTkcgKmVucXVldWVkLCBVTE9ORyAqYXZhaWxhYmxl
X3N0b3JhZ2UsDQogICAgICAgICAgICAgICAgICAgIFRYX1RIUkVBRCAqKmZpcnN0X3N1c3BlbmRl
ZCwgVUxPTkcgKnN1c3BlbmRlZF9jb3VudCwgVFhfUVVFVUUgKipuZXh0X3F1ZXVlKTsNClVJTlQg
X3R4ZV9xdWV1ZV9yZWNlaXZlKFRYX1FVRVVFICpxdWV1ZV9wdHIsIHZvaWQgKmRlc3RpbmF0aW9u
X3B0ciwgVUxPTkcgd2FpdF9vcHRpb24pOw0KVUlOVCBfdHhlX3F1ZXVlX3NlbmQoVFhfUVVFVUUg
KnF1ZXVlX3B0ciwgdm9pZCAqc291cmNlX3B0ciwgVUxPTkcgd2FpdF9vcHRpb24pOw0KVUlOVCBf
dHhlX3F1ZXVlX2Zyb250X3NlbmQoVFhfUVVFVUUgKnF1ZXVlX3B0ciwgdm9pZCAqc291cmNlX3B0
ciwgVUxPTkcgd2FpdF9vcHRpb24pOw0KVUlOVCBfdHhlX3F1ZXVlX3ByaW9yaXRpemUoVFhfUVVF
VUUgKnF1ZXVlX3B0cik7DQoNCg0KVUlOVCBfdHhlX3NlbWFwaG9yZV9jcmVhdGUoVFhfU0VNQVBI
T1JFICpzZW1hcGhvcmVfcHRyLCBDSEFSICpuYW1lX3B0ciwgVUxPTkcgaW5pdGlhbF9jb3VudCk7
DQpVSU5UIF90eGVfc2VtYXBob3JlX2RlbGV0ZShUWF9TRU1BUEhPUkUgKnNlbWFwaG9yZV9wdHIp
Ow0KVUlOVCBfdHhlX3NlbWFwaG9yZV9nZXQoVFhfU0VNQVBIT1JFICpzZW1hcGhvcmVfcHRyLCBV
TE9ORyB3YWl0X29wdGlvbik7DQpVSU5UIF90eGVfc2VtYXBob3JlX2luZm9fZ2V0KFRYX1NFTUFQ
SE9SRSAqc2VtYXBob3JlX3B0ciwgQ0hBUiAqKm5hbWUsIFVMT05HICpjdXJyZW50X3ZhbHVlLA0K
ICAgICAgICAgICAgICAgICAgICBUWF9USFJFQUQgKipmaXJzdF9zdXNwZW5kZWQsIFVMT05HICpz
dXNwZW5kZWRfY291bnQsDQogICAgICAgICAgICAgICAgICAgIFRYX1NFTUFQSE9SRSAqKm5leHRf
c2VtYXBob3JlKTsNClVJTlQgX3R4ZV9zZW1hcGhvcmVfcHJpb3JpdGl6ZShUWF9TRU1BUEhPUkUg
KnNlbWFwaG9yZV9wdHIpOw0KVUlOVCBfdHhlX3NlbWFwaG9yZV9wdXQoVFhfU0VNQVBIT1JFICpz
ZW1hcGhvcmVfcHRyKTsNCg0KVUlOVCBfdHhlX211dGV4X2NyZWF0ZShUWF9NVVRFWCAqbXV0ZXhf
cHRyLCBDSEFSICpuYW1lX3B0ciwgVUlOVCBpbmhlcml0KTsNClVJTlQgX3R4ZV9tdXRleF9kZWxl
dGUoVFhfTVVURVggKm11dGV4X3B0cik7DQpVSU5UIF90eGVfbXV0ZXhfZ2V0KFRYX01VVEVYICpt
dXRleF9wdHIsIFVMT05HIHdhaXRfb3B0aW9uKTsNClVJTlQgX3R4ZV9tdXRleF9pbmZvX2dldChU
WF9NVVRFWCAqbXV0ZXhfcHRyLCBDSEFSICoqbmFtZSwgVUxPTkcgKmNvdW50LCBUWF9USFJFQUQg
Kipvd25lciwNCiAgICAgICAgICAgICAgICAgICAgVFhfVEhSRUFEICoqZmlyc3Rfc3VzcGVuZGVk
LCBVTE9ORyAqc3VzcGVuZGVkX2NvdW50LA0KICAgICAgICAgICAgICAgICAgICBUWF9NVVRFWCAq
Km5leHRfbXV0ZXgpOw0KVUlOVCBfdHhlX211dGV4X3ByaW9yaXRpemUoVFhfTVVURVggKm11dGV4
X3B0cik7DQpVSU5UIF90eGVfbXV0ZXhfcHV0KFRYX01VVEVYICptdXRleF9wdHIpOw0KDQpVSU5U
IF90eGVfdGhyZWFkX2NyZWF0ZShUWF9USFJFQUQgKnRocmVhZF9wdHIsIENIQVIgKm5hbWVfcHRy
LA0KICAgICAgICAgICAgICAgIHZvaWQgKCplbnRyeV9mdW5jdGlvbikoVUxPTkcpLCBVTE9ORyBl
bnRyeV9pbnB1dCwNCiAgICAgICAgICAgICAgICB2b2lkICpzdGFja19zdGFydCwgVUxPTkcgc3Rh
Y2tfc2l6ZSwNCiAgICAgICAgICAgICAgICBVSU5UIHByaW9yaXR5LCBVSU5UIHByZWVtcHRfdGhy
ZXNob2xkLA0KICAgICAgICAgICAgICAgIFVMT05HIHRpbWVfc2xpY2UsIFVJTlQgYXV0b19zdGFy
dCk7DQpVSU5UIF90eGVfdGhyZWFkX2RlbGV0ZShUWF9USFJFQUQgKnRocmVhZF9wdHIpOw0KVFhf
VEhSRUFEICpfdHhfdGhyZWFkX2lkZW50aWZ5KHZvaWQpOw0KVUlOVCBfdHhlX3RocmVhZF9pbmZv
X2dldChUWF9USFJFQUQgKnRocmVhZF9wdHIsIENIQVIgKipuYW1lLCBVSU5UICpzdGF0ZSwgVUxP
TkcgKnJ1bl9jb3VudCwNCiAgICAgICAgICAgICAgICBVSU5UICpwcmlvcml0eSwgVUlOVCAqcHJl
ZW1wdGlvbl90aHJlc2hvbGQsIFVMT05HICp0aW1lX3NsaWNlLA0KICAgICAgICAgICAgICAgIFRY
X1RIUkVBRCAqKm5leHRfdGhyZWFkLCBUWF9USFJFQUQgKipuZXh0X3N1c3BlbmRlZF90aHJlYWQp
Ow0KVUlOVCBfdHhlX3RocmVhZF9wcmVlbXB0aW9uX2NoYW5nZShUWF9USFJFQUQgKnRocmVhZF9w
dHIsIFVJTlQgbmV3X3RocmVzaG9sZCwNCiAgICAgICAgICAgICAgICAgICAgICAgIFVJTlQgKm9s
ZF90aHJlc2hvbGQpOw0KVUlOVCBfdHhlX3RocmVhZF9wcmlvcml0eV9jaGFuZ2UoVFhfVEhSRUFE
ICp0aHJlYWRfcHRyLCBVSU5UIG5ld19wcmlvcml0eSwNCiAgICAgICAgICAgICAgICAgICAgICAg
IFVJTlQgKm9sZF9wcmlvcml0eSk7DQp2b2lkIF90eGVfdGhyZWFkX3JlbGlucXVpc2godm9pZCk7
DQpVSU5UIF90eGVfdGhyZWFkX3Jlc3VtZV9hcGkoVFhfVEhSRUFEICp0aHJlYWRfcHRyKTsNClVJ
TlQgX3R4X3RocmVhZF9zbGVlcChVTE9ORyB0aW1lcl90aWNrcyk7DQpVSU5UIF90eGVfdGhyZWFk
X3N1c3BlbmRfYXBpKFRYX1RIUkVBRCAqdGhyZWFkX3B0cik7DQpVSU5UIF90eGVfdGhyZWFkX3Rl
cm1pbmF0ZShUWF9USFJFQUQgKnRocmVhZF9wdHIpOw0KVUlOVCBfdHhlX3RocmVhZF90aW1lX3Ns
aWNlX2NoYW5nZShUWF9USFJFQUQgKnRocmVhZF9wdHIsIFVMT05HIG5ld190aW1lX3NsaWNlLCBV
TE9ORyAqb2xkX3RpbWVfc2xpY2UpOw0KVUlOVCBfdHhlX3RocmVhZF93YWl0X2Fib3J0KFRYX1RI
UkVBRCAqdGhyZWFkX3B0cik7DQoNClVMT05HIF90eF90aW1lX2dldCh2b2lkKTsNCnZvaWQgX3R4
X3RpbWVfc2V0KFVMT05HIG5ld190aW1lKTsNCg0KVUlOVCBfdHhlX3RpbWVyX2FjdGl2YXRlX2Fw
aShUWF9USU1FUiAqdGltZXJfcHRyKTsNClVJTlQgX3R4ZV90aW1lcl9jaGFuZ2UoVFhfVElNRVIg
KnRpbWVyX3B0ciwgVUxPTkcgaW5pdGlhbF90aWNrcywgVUxPTkcgcmVzY2hlZHVsZV90aWNrcyk7
DQpVSU5UIF90eGVfdGltZXJfY3JlYXRlKFRYX1RJTUVSICp0aW1lcl9wdHIsIENIQVIgKm5hbWVf
cHRyLA0KICAgICAgICAgICAgICAgIHZvaWQgKCpleHBpcmF0aW9uX2Z1bmN0aW9uKShVTE9ORyks
IFVMT05HIGV4cGlyYXRpb25faW5wdXQsIFVMT05HIGluaXRpYWxfdGlja3MsDQogICAgICAgICAg
ICAgICAgVUxPTkcgcmVzY2hlZHVsZV90aWNrcywgVUlOVCBhdXRvX2FjdGl2YXRlKTsNClVJTlQg
X3R4ZV90aW1lcl9kZWFjdGl2YXRlX2FwaShUWF9USU1FUiAqdGltZXJfcHRyKTsNClVJTlQgX3R4
ZV90aW1lcl9kZWxldGUoVFhfVElNRVIgKnRpbWVyX3B0cik7DQpVSU5UIF90eGVfdGltZXJfaW5m
b19nZXQoVFhfVElNRVIgKnRpbWVyX3B0ciwgQ0hBUiAqKm5hbWUsIFVJTlQgKmFjdGl2ZSwgVUxP
TkcgKnJlbWFpbmluZ190aWNrcywNCiAgICAgICAgICAgICAgICBVTE9ORyAqcmVzY2hlZHVsZV90
aWNrcywgVFhfVElNRVIgKipuZXh0X3RpbWVyKTsNCiMgNjUgIi4uL2RocnlfMS5jIiAyDQojIDEg
Ii4uLy4uLy4uLy4uL2gvYnNwX2FwaS5oIiAxDQojIDU0ICIuLi8uLi8uLi8uLi9oL2JzcF9hcGku
aCINCiMgMSAiLi4vLi4vLi4vLi4vaC9ucHR0eXBlcy5oIiAxDQojIDY5ICIuLi8uLi8uLi8uLi9o
L25wdHR5cGVzLmgiDQojIDEgIi91c3IvYXJtLWVsZi9pbmNsdWRlL2xpbWl0cy5oIiAxIDMgNA0K
IyAxMjUgIi91c3IvYXJtLWVsZi9pbmNsdWRlL2xpbWl0cy5oIiAzIDQNCiMgMSAiL3Vzci9saWIv
Z2NjLWxpYi9hcm0tZWxmLzMuMi9pbmNsdWRlL2xpbWl0cy5oIiAxIDMgNA0KIyAxMjYgIi91c3Iv
YXJtLWVsZi9pbmNsdWRlL2xpbWl0cy5oIiAyIDMgNA0KIyA3MCAiLi4vLi4vLi4vLi4vaC9ucHR0
eXBlcy5oIiAyDQojIDEgIi4uLy4uLy4uLy4uL2gvZXJyaG5kbHIuaCIgMQ0KIyAxMTcgIi4uLy4u
Ly4uLy4uL2gvZXJyaG5kbHIuaCINCnZvaWQgY3VzdG9taXplRXJyb3JIYW5kbGVyKGludCBlcnJv
ckNvZGUsIGludCBzdWJjb2RlKTsNCiMgMTUwICIuLi8uLi8uLi8uLi9oL2VycmhuZGxyLmgiDQp2
b2lkIGNyYXNoX2Zvcl9kZWJ1ZyhpbnQgZXJyb3JDb2RlKTsNCiMgNzEgIi4uLy4uLy4uLy4uL2gv
bnB0dHlwZXMuaCIgMg0KIyAyMzUgIi4uLy4uLy4uLy4uL2gvbnB0dHlwZXMuaCINCnR5cGVkZWYg
Y2hhciBJTlQ4Ow0KDQoNCg0KDQoNCg0KDQp0eXBlZGVmIHNob3J0IGludCBJTlQxNjsNCiMgMjUz
ICIuLi8uLi8uLi8uLi9oL25wdHR5cGVzLmgiDQp0eXBlZGVmIElOVDE2IEVSUk9SOw0KDQoNCg0K
DQoNCg0KdHlwZWRlZiBsb25nIGludCBJTlQzMjsNCiMgMjcyICIuLi8uLi8uLi8uLi9oL25wdHR5
cGVzLmgiDQp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgV09SRDg7DQoNCg0KdHlwZWRlZiB1bnNpZ25l
ZCBjaGFyIEJZVEU7DQojIDI4NCAiLi4vLi4vLi4vLi4vaC9ucHR0eXBlcy5oIg0KdHlwZWRlZiBz
aG9ydCB1bnNpZ25lZCBXT1JEMTY7DQoNCg0KDQoNCg0KDQoNCnR5cGVkZWYgbG9uZyB1bnNpZ25l
ZCBXT1JEMzI7DQojIDM0MiAiLi4vLi4vLi4vLi4vaC9ucHR0eXBlcy5oIg0KdHlwZWRlZiBpbnQg
Qk9PTEVBTjsNCiMgNTUgIi4uLy4uLy4uLy4uL2gvYnNwX2FwaS5oIiAyDQojIDEgIi4uLy4uLy4u
Ly4uL2gvYnNwLmgiIDENCiMgMzIgIi4uLy4uLy4uLy4uL2gvYnNwLmgiDQojIDEgIi4uLy4uLy4u
Ly4uL2gvYnNwX2FwaS5oIiAxDQojIDMzICIuLi8uLi8uLi8uLi9oL2JzcC5oIiAyDQojIDI4NCAi
Li4vLi4vLi4vLi4vaC9ic3AuaCINCmV4dGVybiBjb25zdCB1bnNpZ25lZCBpbnQgT3B0UmVnV2Fp
dEFuZEJ1cnN0TWFzazsNCmV4dGVybiBjb25zdCB1bnNpZ25lZCBpbnQgT3B0UmVnUnN5bmNNYXNr
Ow0KZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGludCBBZGRSZWdCdXJzdE1hc2s7DQpleHRlcm4gY29u
c3QgdW5zaWduZWQgaW50IGNzMUFkZFJlZ0VET1NldHRpbmdNYXNrOw0KDQp0eXBlZGVmIHN0cnVj
dA0Kew0KDQoNCg0KDQogICAgY29uc3QgdW5zaWduZWQgaW50IHVzZXNJbnRlcm5hbE9zY2lsbGF0
b3I7DQoNCg0KICAgIGNvbnN0IHVuc2lnbmVkIGludCBjczBXYWl0U3RhdGVzOw0KDQoNCiAgICBj
b25zdCB1bnNpZ25lZCBpbnQgY3MwQnVzQ3ljbGVzOw0KDQoNCiAgICBjb25zdCB1bnNpZ25lZCBp
bnQgY3MwQnVzU2l6ZTsNCg0KDQoNCiAgICBjb25zdCB1bnNpZ25lZCBpbnQgY3MwVXNlUnN5bmM7
DQoNCg0KICAgIGNvbnN0IHVuc2lnbmVkIGludCBjczBBZGRSZWdCdXJzdDsNCg0KDQogICAgY29u
c3QgdW5zaWduZWQgaW50IGNzMUVkb01vZGU7DQoNCg0KICAgIGNvbnN0IHVuc2lnbmVkIGludCBj
czFJZGxlQml0Ow0KDQoNCiAgICBjb25zdCB1bnNpZ25lZCBpbnQgY3MxRWRvV2FpdFN0YXRlczsN
Cg0KDQogICAgY29uc3QgdW5zaWduZWQgaW50IGNzMUVkb0J1c0N5Y2xlczsNCg0KDQogICAgY29u
c3QgdW5zaWduZWQgaW50IGNzMUVkb0J1c1NpemU7DQoNCg0KICAgIGNvbnN0IHVuc2lnbmVkIGlu
dCBjczFTZFdhaXRTdGF0ZXM7DQoNCg0KICAgIGNvbnN0IHVuc2lnbmVkIGludCBjczFTZEJ1c0N5
Y2xlczsNCg0KDQogICAgY29uc3QgdW5zaWduZWQgaW50IGNzMVNkQnVzU2l6ZTsNCg0KDQogICAg
Y29uc3QgdW5zaWduZWQgaW50IGNzM1dhaXRTdGF0ZXM7DQp9IE5BSW5pdFJlZ2lzdGVyVHlwZTsN
CiMgMzU3ICIuLi8uLi8uLi8uLi9oL2JzcC5oIg0KZXh0ZXJuIGNvbnN0IE5BSW5pdFJlZ2lzdGVy
VHlwZSBOQU5ldGFybUluaXREYXRhW107DQoNCmV4dGVybiBjb25zdCB1bnNpZ25lZCBpbnQgTkFP
cHRSZWdXYWl0QW5kQnVyc3RNYXNrOw0KZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGludCBOQU9wdFJl
Z1JzeW5jTWFzazsNCmV4dGVybiBjb25zdCB1bnNpZ25lZCBpbnQgTkFBZGRSZWdCdXJzdE1hc2s7
DQpleHRlcm4gY29uc3QgdW5zaWduZWQgaW50IE5BY3MxQWRkUmVnRURPU2V0dGluZ01hc2s7DQoN
CmV4dGVybiB1bnNpZ25lZCBpbnQgTkFnZXRQbGxWYWx1ZUJhc2VkT25DaGlwVHlwZSh2b2lkKTsN
CmV4dGVybiB1bnNpZ25lZCBpbnQgTkF1c2VzVGhlSW50ZXJuYWxPc2NpbGxhdG9yKHZvaWQpOw0K
IyA1NiAiLi4vLi4vLi4vLi4vaC9ic3BfYXBpLmgiIDINCiMgNjkgIi4uLy4uLy4uLy4uL2gvYnNw
X2FwaS5oIg0KdHlwZWRlZiBlbnVtDQp7DQogICAgbmFIaWdoUHJpb3JpdHksDQogICAgbmFNZWRp
dW1Qcmlvcml0eSwNCiAgICBuYUxvd1ByaW9yaXR5LA0KICAgIG5hRGVmYXVsdFByaW9yaXR5LA0K
ICAgIG5hRnRwUHJpb3JpdHksDQogICAgbmFTbm1wUHJpb3JpdHkNCn0gYnNwUHJpb3JpdHlFbnVt
VHlwZTsNCiMgMTAxICIuLi8uLi8uLi8uLi9oL2JzcF9hcGkuaCINCldPUkQzMiBOQUJzcFRpY2tz
UGVyU2Vjb25kKHZvaWQpOw0KIyAxMjIgIi4uLy4uLy4uLy4uL2gvYnNwX2FwaS5oIg0KaW50IE5B
QnNwR2V0VWRwRGVidWdQb3J0KHZvaWQpOw0KIyAxNDMgIi4uLy4uLy4uLy4uL2gvYnNwX2FwaS5o
Ig0KaW50IE5BQnNwU2VyaWFsUG9ydFR5cGUoaW50IHBvcnQpOw0KIyAxNzEgIi4uLy4uLy4uLy4u
L2gvYnNwX2FwaS5oIg0KVUlOVCBOQVRyYW5zbGF0ZVByaW9yaXR5TGV2ZWwoYnNwUHJpb3JpdHlF
bnVtVHlwZSBsZXZlbCk7DQojIDE5NCAiLi4vLi4vLi4vLi4vaC9ic3BfYXBpLmgiDQppbnQgTkFC
c3BOdnJhbURyaXZlcih2b2lkKTsNCiMgMjIwICIuLi8uLi8uLi8uLi9oL2JzcF9hcGkuaCINCkJP
T0xFQU4gTkFCc3BHZXRFZXByb21JbmZvKFdPUkQzMiAqYmFzZSwgV09SRDMyICpzaXplKTsNCiMg
MjQzICIuLi8uLi8uLi8uLi9oL2JzcF9hcGkuaCINCmludCBOQUJzcEZsYXNoQmFua3Modm9pZCk7
DQojIDY2ICIuLi9kaHJ5XzEuYyIgMg0KIyA3NiAiLi4vZGhyeV8xLmMiDQpSZWNfUG9pbnRlciBQ
dHJfR2xvYiwNCiAgICAgICAgICAgICAgICBOZXh0X1B0cl9HbG9iOw0KaW50IEludF9HbG9iOw0K
Qm9vbGVhbiBCb29sX0dsb2I7DQpjaGFyIENoXzFfR2xvYiwNCiAgICAgICAgICAgICAgICBDaF8y
X0dsb2I7DQppbnQgQXJyXzFfR2xvYls1MF07DQppbnQgQXJyXzJfR2xvYiBbNTBdIFs1MF07DQpp
bnQgTnVtYmVyX09mX1J1bnM7DQpTdHJfMzAgc2Vjb25kU3RyaW5nLCB0aGlyZFN0cmluZzsNCg0K
DQoNCg0KDQoNCg0KZXh0ZXJuIGNoYXIgKm1hbGxvYyAoKTsNCkVudW1lcmF0aW9uIEZ1bmNfMSAo
KTsNCg0KDQoNCiAgICAgICAgQm9vbGVhbiBSZWcgPSAwOw0KIyAxMDkgIi4uL2RocnlfMS5jIg0K
bG9uZyBCZWdpbl9UaW1lLA0KICAgICAgICAgICAgICAgIEVuZF9UaW1lLA0KICAgICAgICAgICAg
ICAgIFVzZXJfVGltZTsNCmZsb2F0IE1pY3Jvc2Vjb25kcywNCiAgICAgICAgICAgICAgICBEaHJ5
c3RvbmVzX1Blcl9TZWNvbmQ7DQoNCg0KDQoNCg0KDQoNCnZvaWQgbG9jYWxTdHJjcHkoY2hhciAq
ZGVzdCwgY2hhciAqc3JjKTsNCnZvaWQgZGhyeXN0b25lMl8xIChyZWdpc3RlciBpbnQgTnVtYmVy
X09mX1J1bnMsIGNoYXIgKlN0cl8xX0xvYyk7DQoNCg0KDQpleHRlcm4gdW5zaWduZWQgbG9uZyBO
QUlSUU1hc2s7DQpleHRlcm4gVFhfU0VNQVBIT1JFIGJlbmNobWFya1NlbWFwaG9yZTsNCg0Kdm9p
ZCBydW5EaHJ5c3RvbmUyXzEoKQ0Kew0KICAgIFN0cl8zMCBTdHJfMV9Mb2M7DQoNCg0KICAgIHVu
c2lnbmVkIHNhdmVkSWVyOw0KICAgIHVuc2lnbmVkICppZXIgPSAodW5zaWduZWQgKikgMHhmZmIw
MDAzMDsNCiAgICB1bnNpZ25lZCBsb25nIHNhdmVkTkFJUlFNYXNrOw0KDQoNCg0KDQoNCiAgICBO
dW1iZXJfT2ZfUnVucyA9IDI1MDAwMDsNCiAgICBfdHhlX3NlbWFwaG9yZV9wdXQgKCZiZW5jaG1h
cmtTZW1hcGhvcmUpOw0KICAgIF90eF90aHJlYWRfc2xlZXAoMTApOw0KICAgIF90eGVfc2VtYXBo
b3JlX2dldCAoJmJlbmNobWFya1NlbWFwaG9yZSwgMHhGRkZGRkZGRlVMKTsNCg0KDQoNCiAgICBz
dHJjcHkgKHNlY29uZFN0cmluZywgIkRIUllTVE9ORSBQUk9HUkFNLCAyJ05EIFNUUklORyIpOw0K
ICAgIHN0cmNweSAodGhpcmRTdHJpbmcsICJESFJZU1RPTkUgUFJPR1JBTSwgMydSRCBTVFJJTkci
KTsNCg0KDQoNCg0KDQoNCiAgICAgICAgTmV4dF9QdHJfR2xvYiA9IChSZWNfUG9pbnRlcikgbWFs
bG9jKHNpemVvZihSZWNfVHlwZSkpOw0KICAgICAgICBQdHJfR2xvYiA9IChSZWNfUG9pbnRlcikg
bWFsbG9jKHNpemVvZihSZWNfVHlwZSkpOw0KDQogICAgUHRyX0dsb2ItPlB0cl9Db21wID0gTmV4
dF9QdHJfR2xvYjsNCiAgICBQdHJfR2xvYi0+RGlzY3IgPSBJZGVudF8xOw0KICAgIFB0cl9HbG9i
LT52YXJpYW50LnZhcl8xLkVudW1fQ29tcCA9IElkZW50XzM7DQogICAgUHRyX0dsb2ItPnZhcmlh
bnQudmFyXzEuSW50X0NvbXAgPSA0MDsNCiAgICBsb2NhbFN0cmNweSAoUHRyX0dsb2ItPnZhcmlh
bnQudmFyXzEuU3RyX0NvbXAsDQogICAgICAgICAgIkRIUllTVE9ORSBQUk9HUkFNLCBTT01FIFNU
UklORyIpOw0KICAgIGxvY2FsU3RyY3B5IChTdHJfMV9Mb2MsICJESFJZU1RPTkUgUFJPR1JBTSwg
MSdTVCBTVFJJTkciKTsNCg0KICAgIEFycl8yX0dsb2IgWzhdWzddID0gMTA7DQojIDE4OCAiLi4v
ZGhyeV8xLmMiDQogICAgc2F2ZWRJZXIgPSAqaWVyOw0KICAgICppZXIgPSAwOw0KICAgIHNhdmVk
TkFJUlFNYXNrID0gTkFJUlFNYXNrOw0KICAgIE5BSVJRTWFzayA9IDB4MjA7DQogICAgKmllciA9
IDB4MjA7DQoNCg0KDQoNCg0KICAgIEJlZ2luX1RpbWUgPSBfdHhfdGltZV9nZXQoKTsNCg0KDQoN
Cg0KDQogICAgZGhyeXN0b25lMl8xIChOdW1iZXJfT2ZfUnVucywgU3RyXzFfTG9jKTsNCg0KDQoN
Cg0KDQoNCiAgICBFbmRfVGltZSA9IF90eF90aW1lX2dldCgpOw0KDQoNCg0KDQogICAgKmllciA9
IDA7DQogICAgTkFJUlFNYXNrID0gc2F2ZWROQUlSUU1hc2s7DQogICAgKmllciA9IHNhdmVkSWVy
Ow0KDQogICAgX3R4X3RocmVhZF9zbGVlcCg1KTsNCg0KICAgIFVzZXJfVGltZSA9IEVuZF9UaW1l
IC0gQmVnaW5fVGltZTsNCg0KDQoNCg0KICAgIF90eGVfc2VtYXBob3JlX3B1dCAoJmJlbmNobWFy
a1NlbWFwaG9yZSk7DQogICAgX3R4X3RocmVhZF9zbGVlcCgxMCk7DQogICAgX3R4ZV9zZW1hcGhv
cmVfZ2V0ICgmYmVuY2htYXJrU2VtYXBob3JlLCAweEZGRkZGRkZGVUwpOw0KDQp9DQoNCg0KDQp2
b2lkIGRocnlzdG9uZTJfMSAocmVnaXN0ZXIgaW50IE51bWJlcl9PZl9SdW5zLCBjaGFyICpTdHJf
MV9Mb2MpDQoNCg0KDQoNCnsNCiAgICAgICAgT25lX0ZpZnR5IEludF8xX0xvYzsNCiAgT25lX0Zp
ZnR5IEludF8yX0xvYzsNCiAgICAgICAgT25lX0ZpZnR5IEludF8zX0xvYzsNCiAgY2hhciBDaF9J
bmRleDsNCiAgICAgICAgRW51bWVyYXRpb24gRW51bV9Mb2M7DQoNCiAgICAgICAgU3RyXzMwIFN0
cl8yX0xvYzsNCiAgaW50IFJ1bl9JbmRleDsNCg0KDQoNCiAgZm9yIChSdW5fSW5kZXggPSAxOyBS
dW5fSW5kZXggPD0gTnVtYmVyX09mX1J1bnM7ICsrUnVuX0luZGV4KQ0KICB7DQoNCiAgICBQcm9j
XzUoKTsNCiAgICBQcm9jXzQoKTsNCg0KICAgIEludF8xX0xvYyA9IDI7DQogICAgSW50XzJfTG9j
ID0gMzsNCiAgICBsb2NhbFN0cmNweSAoU3RyXzJfTG9jLCBzZWNvbmRTdHJpbmcpOw0KICAgIEVu
dW1fTG9jID0gSWRlbnRfMjsNCiAgICBCb29sX0dsb2IgPSAhIEZ1bmNfMiAoU3RyXzFfTG9jLCBT
dHJfMl9Mb2MpOw0KDQogICAgd2hpbGUgKEludF8xX0xvYyA8IEludF8yX0xvYykNCiAgICB7DQog
ICAgICBJbnRfM19Mb2MgPSA1ICogSW50XzFfTG9jIC0gSW50XzJfTG9jOw0KDQogICAgICBQcm9j
XzcgKEludF8xX0xvYywgSW50XzJfTG9jLCAmSW50XzNfTG9jKTsNCg0KICAgICAgSW50XzFfTG9j
ICs9IDE7DQogICAgfQ0KDQogICAgUHJvY184IChBcnJfMV9HbG9iLCBBcnJfMl9HbG9iLCBJbnRf
MV9Mb2MsIEludF8zX0xvYyk7DQoNCiAgICBQcm9jXzEgKFB0cl9HbG9iKTsNCiAgICBmb3IgKENo
X0luZGV4ID0gJ0EnOyBDaF9JbmRleCA8PSBDaF8yX0dsb2I7ICsrQ2hfSW5kZXgpDQoNCiAgICB7
DQogICAgICBpZiAoRW51bV9Mb2MgPT0gRnVuY18xIChDaF9JbmRleCwgJ0MnKSkNCg0KICAgICAg
ICB7DQogICAgICAgIFByb2NfNiAoSWRlbnRfMSwgJkVudW1fTG9jKTsNCiAgICAgICAgbG9jYWxT
dHJjcHkgKFN0cl8yX0xvYywgdGhpcmRTdHJpbmcpOw0KICAgICAgICBJbnRfMl9Mb2MgPSBSdW5f
SW5kZXg7DQogICAgICAgIEludF9HbG9iID0gUnVuX0luZGV4Ow0KICAgICAgICB9DQogICAgfQ0K
DQogICAgSW50XzJfTG9jID0gSW50XzJfTG9jICogSW50XzFfTG9jOw0KDQoNCg0KDQoNCg0KICAg
ICAgSW50XzFfTG9jID0gbG9jYWxEaXZpZGUgKEludF8zX0xvYywgSW50XzJfTG9jKTsNCg0KICAg
IEludF8yX0xvYyA9IDcgKiAoSW50XzJfTG9jIC0gSW50XzNfTG9jKSAtIEludF8xX0xvYzsNCg0K
ICAgIFByb2NfMiAoJkludF8xX0xvYyk7DQoNCg0KICB9DQojIDMyNiAiLi4vZGhyeV8xLmMiDQp9
DQojIDM0OSAiLi4vZGhyeV8xLmMiDQp2b2lkIGxvY2FsU3RyY3B5KHJlZ2lzdGVyIGNoYXIgKmRl
c3QsIHJlZ2lzdGVyIGNoYXIgKnNyYykNCnsNCiAgICB3aGlsZSAoKmRlc3QrKyA9ICpzcmMrKyk7
DQp9DQoNCg0KUHJvY18xIChQdHJfVmFsX1BhcikNCg0KDQogUmVjX1BvaW50ZXIgUHRyX1ZhbF9Q
YXI7DQoNCnsNCiAgUmVjX1BvaW50ZXIgTmV4dF9SZWNvcmQgPSBQdHJfVmFsX1Bhci0+UHRyX0Nv
bXA7DQoNCg0KDQoNCiAgKlB0cl9WYWxfUGFyLT5QdHJfQ29tcCA9ICpQdHJfR2xvYjsNCiAgUHRy
X1ZhbF9QYXItPnZhcmlhbnQudmFyXzEuSW50X0NvbXAgPSA1Ow0KICBOZXh0X1JlY29yZC0+dmFy
aWFudC52YXJfMS5JbnRfQ29tcA0KICAgICAgICA9IFB0cl9WYWxfUGFyLT52YXJpYW50LnZhcl8x
LkludF9Db21wOw0KICBOZXh0X1JlY29yZC0+UHRyX0NvbXAgPSBQdHJfVmFsX1Bhci0+UHRyX0Nv
bXA7DQogIFByb2NfMyAoJk5leHRfUmVjb3JkLT5QdHJfQ29tcCk7DQoNCg0KICBpZiAoTmV4dF9S
ZWNvcmQtPkRpc2NyID09IElkZW50XzEpDQoNCiAgew0KICAgIE5leHRfUmVjb3JkLT52YXJpYW50
LnZhcl8xLkludF9Db21wID0gNjsNCiAgICBQcm9jXzYgKFB0cl9WYWxfUGFyLT52YXJpYW50LnZh
cl8xLkVudW1fQ29tcCwNCiAgICAgICAgICAgJk5leHRfUmVjb3JkLT52YXJpYW50LnZhcl8xLkVu
dW1fQ29tcCk7DQogICAgTmV4dF9SZWNvcmQtPlB0cl9Db21wID0gUHRyX0dsb2ItPlB0cl9Db21w
Ow0KICAgIFByb2NfNyAoTmV4dF9SZWNvcmQtPnZhcmlhbnQudmFyXzEuSW50X0NvbXAsIDEwLA0K
ICAgICAgICAgICAmTmV4dF9SZWNvcmQtPnZhcmlhbnQudmFyXzEuSW50X0NvbXApOw0KICB9DQog
IGVsc2UNCiAgICAqUHRyX1ZhbF9QYXIgPSAqUHRyX1ZhbF9QYXItPlB0cl9Db21wOw0KfQ0KDQoN
ClByb2NfMiAoSW50X1Bhcl9SZWYpDQoNCg0KDQoNCk9uZV9GaWZ0eSAqSW50X1Bhcl9SZWY7DQp7
DQogIE9uZV9GaWZ0eSBJbnRfTG9jOw0KICBFbnVtZXJhdGlvbiBFbnVtX0xvYzsNCg0KICBJbnRf
TG9jID0gKkludF9QYXJfUmVmICsgMTA7DQogIGRvDQogICAgaWYgKENoXzFfR2xvYiA9PSAnQScp
DQoNCiAgICB7DQogICAgICBJbnRfTG9jIC09IDE7DQogICAgICAqSW50X1Bhcl9SZWYgPSBJbnRf
TG9jIC0gSW50X0dsb2I7DQogICAgICBFbnVtX0xvYyA9IElkZW50XzE7DQogICAgfQ0KICB3aGls
ZSAoRW51bV9Mb2MgIT0gSWRlbnRfMSk7DQp9DQoNCg0KUHJvY18zIChQdHJfUmVmX1BhcikNCg0K
DQoNCg0KUmVjX1BvaW50ZXIgKlB0cl9SZWZfUGFyOw0KDQp7DQogIGlmIChQdHJfR2xvYiAhPSAw
KQ0KDQogICAgKlB0cl9SZWZfUGFyID0gUHRyX0dsb2ItPlB0cl9Db21wOw0KICBQcm9jXzcgKDEw
LCBJbnRfR2xvYiwgJlB0cl9HbG9iLT52YXJpYW50LnZhcl8xLkludF9Db21wKTsNCn0NCg0KDQpQ
cm9jXzQgKCkNCg0KDQp7DQogIEJvb2xlYW4gQm9vbF9Mb2M7DQoNCiAgQm9vbF9Mb2MgPSBDaF8x
X0dsb2IgPT0gJ0EnOw0KICBCb29sX0dsb2IgPSBCb29sX0xvYyB8IEJvb2xfR2xvYjsNCiAgQ2hf
Ml9HbG9iID0gJ0InOw0KfQ0KDQoNClByb2NfNSAoKQ0KDQoNCnsNCiAgQ2hfMV9HbG9iID0gJ0En
Ow0KICBCb29sX0dsb2IgPSAwOw0KfQ0KIyA0NzEgIi4uL2RocnlfMS5jIg0KaW50IGxvY2FsRGl2
aWRlIChpbnQgZGl2aXNvciwgaW50IGRpdmlzZWUpDQoNCnsNCiMgNDg0ICIuLi9kaHJ5XzEuYyIN
CiAgICByZXR1cm4gZGl2aXNlZS9kaXZpc29yOw0KfQ0K
------_=_NextPart_001_01C30A85.B113E427--