From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28236 invoked by alias); 24 Apr 2003 17:26:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 28222 invoked by uid 71); 24 Apr 2003 17:26:00 -0000 Date: Thu, 24 Apr 2003 17:26:00 -0000 Message-ID: <20030424172600.28220.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: "Zhen, Li" Subject: RE: c/10467: internal compiler error Reply-To: "Zhen, Li" X-SW-Source: 2003-04/txt/msg01049.txt.bz2 List-Id: The following reply was made to PR target/10467; it has been noted by GNATS. From: "Zhen, Li" To: , , , "Zhen, Li" , , 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@dealii.org [mailto:bangerth@dealii.org] Sent: Wednesday, April 23, 2003 1:58 PM To: gcc-bugs@gcc.gnu.org; gcc-prs@gcc.gnu.org; Zhen, Li; nobody@gcc.gnu.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--