mutt/2169: See attachment for patch for various 1.5.10 problems.
>Number: 2169
>Notify-List:
>Category: mutt
>Synopsis: See attachment for patch for various 1.5.10 problems.
>Confidential: no
>Severity: normal
>Priority: medium
>Responsible: mutt-dev
>State: open
>Keywords:
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sat Jan 28 03:43:54 +0100 2006
>Originator: Scott B. Marovich
>Release: 1.5.10
>Organization:
VMware, Inc.
>Environment:
Any.
>Description:
See attachment.
>How-To-Repeat:
>Fix:
Suggested patch is in attachment.
>Add-To-Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="patch"
RGVhciBmcmllbmRzLCBhdHRhY2hlZCBpcyBhICJwYXRjaCgxKSIgZmlsZSB0byByZXBhaXIgc2V2
ZXJhbCBwcm9ibGVtcyB0aGF0IEkKcmVjZW50bHkgZm91bmQgaW4gTXV0dCBWZXJzaW9uIDEuNS4x
MCwgd2hpY2ggeW91IG1pZ2h0IGxpa2UgdG8gaW5jb3Jwb3JhdGUgaW4gYQpmdXR1cmUgcmVsZWFz
ZS4gIFRoaXMgbm90ZSBkZXNjcmliZXMgdGhlIGNoYW5nZXMuCgpCeSB3YXkgb2YgaW50cm9kdWN0
aW9uIGFuZCBhIGdlbmVyYWwgZXhwbGFuYXRpb24sIGxldCBtZSBzYXkgdGhhdCBhZnRlciBtb3Jl
CnRoYW4gMjAgeWVhcnMgb2Ygc2F0aXNmYWN0b3JpbHkgcmVhZGluZyBteSBFLW1haWwgKGluY2x1
ZGluZyBNSU1FIGNvbnRlbnQpIG9uIGFuCkhQLVVYIHN5c3RlbSwgdXNpbmcgYSBzbGlnaHRseSBt
b2RpZmllZCBCZXJrZWxleSAibWFpbHgoMSkiIHdpdGggYSBtdWNoLXJlcGFpcmVkCnBvcnQgb2Yg
Im1ldGFtYWlsKDEpIiBWZXJzaW9uIDIuNywgSSByZWNlbnRseSBjaGFuZ2VkIGpvYnMgYW5kIG5l
ZWRlZCB0byBydW4gYQpNVUEgb24gTGludXggdGhhdCBjb3VsZCBzcGVhayBJTUFQIHRvIGFuIE91
dGxvb2sgRXhjaGFuZ2UgbWFpbCBzZXJ2ZXIsIHNvIEkKYmVjYW1lIGEgbmV3IE11dHQgdXNlci4g
IEJ1dCBhZnRlciB0aG9yb3VnaGx5IHBlcnVzaW5nIGl0cyBkb2N1bWVudGF0aW9uIGFuZApleHRl
bnNpdmVseSBjdXN0b21pemluZyBteSAiTXV0dHJjIiBmaWxlLCBhbmQgZGVzcGl0ZSBNdXR0J3Mg
YXNwaXJhdGlvbiB0byBiZQoidGhlIHByZW1pZXIgdGV4dC1tb2RlIE1JTUUgTVVBIiAoTWljaGFl
bCBFbGtpbnMsICJUaGUgTXV0dCBFLU1haWwgQ2xpZW50IiwKc2VjLiA1KSwgSSBmb3VuZCBzb21l
IG9mIGl0cyBiZWhhdmlvciB0byBiZSBleHRyZW1lbHkgaXJyaXRhdGluZywgc28gSSBjaGFuZ2Vk
CnRoZSBjb2RlLiAgSGVyZSBhcmUgbXkgaXNzdWVzIGFuZCBjaGFuZ2VzOgoKSSBmaXJzdCBmb3Vu
ZCB0aGF0IGlmIEkgZW5hYmxlIHRoZSAiZWRpdF9oZWFkZXJzIiBvcHRpb24gYW5kIGVkaXQgYSBt
ZXNzYWdlJ3MKIltiXWNjOiIgb3IgInRvOiIgaGVhZGVycyB0byBzcGVjaWZ5IGEgbGlzdCBvZiBs
b2NhbCByZWNpcGllbnRzLCBzZXBhcmF0ZWQgYnkKd2hpdGUgc3BhY2UgKGEgY29tbW9uIFVOSVgg
aWRpb20pLCBsaWtlOgoKICAgICBjYzogZm9vIGJhciBiYXoKCnRoZW4gZWl0aGVyIE11dHQgb3Ig
bXkgc2l0ZSdzIE91dGxvb2sgRXhjaGFuZ2Ugc2VydmVyLS1JJ20gbm90IHN1cmUgd2hpY2gtLWJh
ZGx5Cm1hbmdsZXMgdGhlIGxpbmUgYW5kIG1ha2VzIG1lc3NhZ2UgY29waWVzIHVuZGVsaXZlcmFi
bGUuICBUaGUgbWFuZ2xpbmcgc2VlbWVkIHRvCmJlIHdvcnNlIGlmIHRoZSBsaXN0IGxpbmUgY29u
dGFpbmVkIGxlYWRpbmctIG9yIHRyYWlsaW5nIHdoaXRlIHNwYWNlLCBhbmQgSQpmb3VuZCB0aHJv
dWdoIGV4cGVyaW1lbnQgdGhhdCBhIENvbW1hLXNlcGFyYXRlZCBsaXN0LCBzdWNoIGFzOgoKICAg
ICBjYzogZm9vLGJhcixiYXoKCndvcmtzIGZpbmUuICBCdXQgcmVtZW1iZXJpbmcgdG8gdHlwZSBD
b21tYXMgaXMgdGVkaW91cywgc28gSSBjaGFuZ2VkIHRoZQoicGFyc2UuYyIgZmlsZSBzbyBhcyB0
bzoKCjEuIEluICJtdXR0X3BhcnNlX2Fkcmxpc3QoKSIsIGF1dG9tYXRpY2FsbHkgaW5zZXJ0IENv
bW1hcyBpZiBub25lIGFyZSBwcmVzZW50LAogICBhbmQgaGFuZGxlIGxlYWRpbmctLCB0cmFpbGlu
Zy0sIGFuZCBpbnRlcnZlbmluZyB3aGl0ZSBzcGFjZSBtb3JlIHJpZ29yb3VzbHkKYmVmb3JlIGNh
bGxpbmcgInJmYzgyMl9wYXJzZV9hZHJsaXN0KCkiLgoKMi4gSW4gIm11dHRfcGFyc2VfcmZjODIy
X2xpbmUoKSIsIGNhbGwgIm11dHRfcGFyc2VfYWRybGlzdCgpIiBpbnN0ZWFkIG9mCiAgICJyZmM4
MjJfcGFyc2VfYWRybGlzdCgpIiBpbiBvcmRlciB0byByZS1jYW5vbmljYWxpemUgYW55ICJbYXBw
YXJlbnRseS1ddG86IgpvciAiW2JdY2M6IiBoZWFkZXIgdGhhdCBhIHVzZXIgbWlnaHQgaGF2ZSBl
ZGl0ZWQuCgpNeSBvdGhlciBpc3N1ZXMgY29uY2VybiAiYXV0b3ZpZXciIG9mIE1JTUUgYXR0YWNo
bWVudHMgdG8gcmVjZWl2ZWQgbWVzc2FnZXMuICBUbwpiZWdpbiwgdGhlICJyZmMxNTI0X21haWxj
YXBfcGFyc2UoKSIgc3Vicm91dGluZSBpbiBmaWxlICJyZmMxNTI0LmMiIHJlZnVzZXMgdG8KYWxs
b3cgdGhpcyB1bmxlc3Mgb25lJ3MgIm1haWxjYXAiIGVudHJ5IGZvciBhIGdpdmVuIE1JTUUgdHlw
ZS9zdWJ0eXBlIHNwZWNpZmllcwoiY29waW91c291dHB1dCIuICBJIHRoaW5rIHRoYXQgdGhpcyBi
ZWhhdmlvciByZXByZXNlbnRzIGEgbWlzcmVhZGluZyBvZiBSRkMKMTUyNCwgd2hpY2ggYWxzbyBk
aWZmZXJzIGZyb20gdGhlIGJlaGF2aW9yIG9mICJtZXRhbWFpbCgxKSIuICBTaW5jZSBOYXRoYW5p
ZWwKQm9yZW5zdGVpbiB3cm90ZSBib3RoICJtZXRhbWFpbCgxKSIgYW5kIHRoZSBSRkMsIEkgdGhp
bmsgdGhhdCBoaXMgaW50ZXJwcmV0YXRpb24Kb2YgdGhlIGludGVuZGVkIHNlbWFudGljcyBzaG91
bGQgYmUgY29uc2lkZXJlZCBhdXRob3JpdGF0aXZlOyBuYW1lbHksIGEgZGlzcGxheQpjb21tYW5k
IHRoYXQgaW50ZW5kcyB0byBkdW1wIGVub3VnaCBvdXRwdXQgdG8gdGhlIHVzZXIncyBjb25zb2xl
ICh3aW5kb3cpIHRvCndhcnJhbnQgYSBwYWdlciBzaG91bGQgc3BlY2lmeSAiY29waW91c291dHB1
dCIsIGJ1dCBhIGRpc3BsYXkgY29tbWFuZCB0aGF0IHdpbGwKcG9wIHVwIGl0cyBvd24sIG5ldyB3
aW5kb3cgKG9yIHVzZSBhbiBhdWRpbyBwbGF5ZXIsIGV0Yy4pIG5lZWQgbm90LS1hbmQgc2hvdWxk
Cm5vdC0tc3BlY2lmeSAiY29waW91c291dHB1dCIuICBBbmQgaW4gbmVpdGhlciBjYXNlIHNob3Vs
ZCBNdXR0IGZvcmJpZCBzdWNoCmNvbnRlbnQgZnJvbSBiZWluZyAiYXV0b3ZpZXciZWQhICAoR3Jy
ciEpICBTbywgSSByZW1vdmVkIHRoZSAiY29waW91c291dHB1dCIKdGVzdCBmcm9tIHRoaXMgc3Vi
cm91dGluZS4KCk5leHQsIEkgYmFzaWNhbGx5IGRvbid0IGxpa2UgTXV0dCdzIGRlZmF1bHQsIG1l
bnUtYmFzZWQgc3RyYXRlZ3kgZm9yIGRpc3BsYXlpbmcKYXR0YWNobWVudHM7IEkgbXVjaCBwcmVm
ZXIgdGhlICJtZXRhbWFpbCgxKSIgYXV0b21hdGljLWRpc3BsYXkgc3RyYXRlZ3ksIGluCndoaWNo
IGl0IHNob3dzIGV2ZXJ5dGhpbmcgdGhhdCBvbmUncyAibWFpbGNhcCIgZmlsZSBhbGxvd3MgYW5k
IHN1Y2Nlc3NpdmVseSBhc2tzCmEgdXNlcidzIHBlcm1pc3Npb24gZm9yIGVhY2ggYXR0YWNobWVu
dC4gIEkgdGhlcmVmb3JlIGltcGxlbWVudGVkIHRoaXMgc3RyYXRlZ3kKYXMgYW4gb3B0aW9uIGlu
IE11dHQ6CgoxLiBJbiAiaW5pdC5oIiwgY2hhbmdlICJpbXBsaWNpdF9hdXRvdmlldyIgZnJvbSBh
IGJvb2xlYW4gb3B0aW9uIHRvIGEKICAgcXVhZG9wdGlvbiwgd2hvc2UgZGVmYXVsdCB2YWx1ZSBp
cyAibm8iIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgoKMi4gSW4gdGhlICJtdXR0X2lzX2F1
dG92aWV3KCkiIHN1YnJvdXRpbmUgb2YgZmlsZSAiYXR0YWNoLmMiLCBzb2xpY2l0IGEgdXNlcidz
CiAgIGlucHV0IHRvIGEgIkRpc3BsYXkgaXQ/IiBxdWVyeSBpZiB0aGUgIiRNTV9OT0FTSyIgZW52
aXJvbm1lbnQgdmFyaWFibGUKZG9lc24ndCBwcm92aWRlIGFuIGFuc3dlciBhbmQgdGhlICJpbXBs
aWNpdF9hdXRvdmlldyIgb3B0aW9uIGlzIGVpdGhlciAiYXNrLXllcyIKb3IgImFzay1ubyIuCgpJ
bmNpZGVudGFsbHksIHNvbWUgcGVvcGxlcycgZW5oYW5jZWQgdmVyc2lvbnMgb2YgIm1ldGFtYWls
KDEpIiBhbGxvdyBhIHRoaXJkCnBvc3NpYmxlIHJlc3BvbnNlLCB3aGljaCBJIGxpa2UgdmVyeSBt
dWNoIGJ1dCBkb24ndCBrbm93IGhvdyB0byBlYXNpbHkgaW1wbGVtZW50CmluIE11dHQ6ICBPbmUg
Y2FuIGludGVyYWN0aXZlbHkgYmFpbCBvdXQgb2YgZGlzcGxheWluZyBhIGxpc3Qgb2YgYXR0YWNo
bWVudHMgYnkKcmVzcG9uZGluZyB0byBhIHF1ZXJ5IGluIHRoZSBmb3JtOgoKICAgICBEaXNwbGF5
IGl0PyBxW3VpdF08RU9MPiAgKG9yICJ4IiwgZm9yICJleGl0IikKCkZpbmFsbHksIGxldCBtZSBj
bG9zZSB3aXRoIGEgcGxlYSBmb3Igc29tZSBGQVEgZG9jdW1lbnRhdGlvbiBvbiBhbm90aGVyIHN1
YmplY3Q6CkkgaGFwcGVuIHRvIGJlIGFuIG9sZGVyIHdvcmtlciB3aXRoIGEgc2xpZ2h0IHZpc3Vh
bCBpbXBhaXJtZW50LCBhbmQgSSBsb2F0aGUKYXBwbGljYXRpb25zIHRoYXQgdXNlIGNvbG9yIEN1
cnNlcyBiZWNhdXNlIEkgZmluZCB0aGUgY29sb3JzIHJhdGhlciBoYXJkIHRvCmRpc3Rpbmd1aXNo
OyBJIG5lZWQgb2xkLWZhc2hpb25lZCBibGFjay1hbmQtd2hpdGUuICBJbiBvbmUncyAiTXV0dHJj
IiBmaWxlIGl0CmlzIGNlcnRhaW5seSBwb3NzaWJsZSB0byBlc3RhYmxpc2ggYXBwcm9wcmlhdGUs
IG5vbi1kZWZhdWx0IGNvbG9yIG1hcHBpbmdzLCBidXQKdGhlIG1lY2hhbmlzbSBpcyBjb21wbGlj
YXRlZCBhbmQgbm90IGFsdG9nZXRoZXIgb2J2aW91cyBmcm9tIHRoZSBkb2N1bWVudGF0aW9uOwpt
b3Jlb3ZlciwgSSBkaXNjb3ZlcmVkIHRoYXQgYW4gInh0ZXJtKDEpIiB3aW5kb3cgdW5kZXIgUmVk
SGF0IExpbnV4IHNob3dzIHNvbWUKcmF0aGVyIHN0cmFuZ2UgZGVmYXVsdCBjb2xvcnMgKEkgZG9u
J3QgdW5kZXJzdGFuZCB3aHksIG9yIHdoZXRoZXIgSSBjb3VsZCBjaGFuZ2UKdGhhdCBpbiBteSBY
IFdpbmRvd3MgImFwcC1kZWZhdWx0cyIgZmlsZSk6IHdoaXRlIHdoZW4gSSB3b3VsZCBoYXZlIGV4
cGVjdGVkCmJsYWNrLCBhbmQgInZpY2UgdmVyc2EiLiAgQ291bGQgeW91IHBsZWFzZSBhdWdtZW50
IE11dHQncyBkb2N1bWVudGF0aW9uIHdpdGggYW4KKmV4YW1wbGUqLCBzaG93aW5nIGhvdyB0byBy
ZXBsYWNlIGNvbG9yIHdpdGggZWl0aGVyIGEgYmxhY2stb24td2hpdGUgb3IKd2hpdGUtb24tYmxh
Y2sgcGFsZXR0ZT8KCkFsbCBpbiBhbGwsIEkgZmluZCB0aGF0IE11dHQncyBub3QgYSBiYWQgTVVB
LCBidXQgSSB0aGluayB0aGF0IGEgZmV3IGxpdHRsZQpjaGFuZ2VzIGxpa2UgdGhlc2UgY291bGQg
bWFrZSBpdCBldmVuIG1vcmUgYXBwZWFsaW5nLgotLQpTY290dCBNYXJvdmljaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgVk13YXJlLCBJbmMuCkUtbWFpbDogbWFyb3ZpY2hAdm13YXJlLmNv
bSAgICAgICAgICAgICAgICAzMTQ1IFBvcnRlciBEcml2ZQpUZWwuICg2NTApNDc1LTUwMDAgeDUy
Mi9GQVggKDY1MCk0NzUtNTAwNSAgUGFsbyBBbHRvLCBDYWxpZm9ybmlhIDk0MzA0IFUuUy5BLgoK
LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAt
IC0gLSAtIC0gLSAtIC0gLSAtIC0gLQoqKiogcGFyc2UuYy5vcmlnCVN1biBKdWwgMjQgMTE6MjY6
NTkgMjAwNQotLS0gcGFyc2UuYwlTdW4gSnVsIDI0IDExOjI2OjU5IDIwMDUKKioqKioqKioqKioq
KioqCioqKiA5NTUsOTYzICoqKioKICAgIHsKICAgICAgY2FzZSAnYSc6CiAgICAgIGlmIChhc2Np
aV9zdHJjYXNlY21wIChsaW5lKzEsICJwcGFyZW50bHktdG8iKSA9PSAwKQogICAgICB7CiEgICAg
ICAgZS0+dG8gPSByZmM4MjJfcGFyc2VfYWRybGlzdCAoZS0+dG8sIHApOwogICAgICAgIG1hdGNo
ZWQgPSAxOwogICAgICB9CiAgICAgIGVsc2UgaWYgKGFzY2lpX3N0cmNhc2VjbXAgKGxpbmUrMSwg
InBwYXJlbnRseS1mcm9tIikgPT0gMCkKICAgICAgewotLS0gOTU1LDk2MyAtLS0tCiAgICB7CiAg
ICAgIGNhc2UgJ2EnOgogICAgICBpZiAoYXNjaWlfc3RyY2FzZWNtcCAobGluZSsxLCAicHBhcmVu
dGx5LXRvIikgPT0gMCkKICAgICAgewohICAgICAgIGUtPnRvID0gbXV0dF9wYXJzZV9hZHJsaXN0
IChlLT50bywgcCk7CiAgICAgICAgbWF0Y2hlZCA9IDE7CiAgICAgIH0KICAgICAgZWxzZSBpZiAo
YXNjaWlfc3RyY2FzZWNtcCAobGluZSsxLCAicHBhcmVudGx5LWZyb20iKSA9PSAwKQogICAgICB7
CioqKioqKioqKioqKioqKgoqKiogOTY4LDk4NCAqKioqCiAgICAgIAogICAgICBjYXNlICdiJzoK
ICAgICAgaWYgKGFzY2lpX3N0cmNhc2VjbXAgKGxpbmUrMSwgImNjIikgPT0gMCkKICAgICAgewoh
ICAgICAgIGUtPmJjYyA9IHJmYzgyMl9wYXJzZV9hZHJsaXN0IChlLT5iY2MsIHApOwogICAgICAg
IG1hdGNoZWQgPSAxOwogICAgICB9CiAgICAgIGJyZWFrOwogICAgICAKICAgICAgY2FzZSAnYyc6
CiAgICAgIGlmIChhc2NpaV9zdHJjYXNlY21wIChsaW5lKzEsICJjIikgPT0gMCkKICAgICAgewoh
ICAgICAgIGUtPmNjID0gcmZjODIyX3BhcnNlX2Fkcmxpc3QgKGUtPmNjLCBwKTsKICAgICAgICBt
YXRjaGVkID0gMTsKICAgICAgfQogICAgICBlbHNlIGlmIChhc2NpaV9zdHJuY2FzZWNtcCAobGlu
ZSArIDEsICJvbnRlbnQtIiwgNykgPT0gMCkKICAgICAgewotLS0gOTY4LDk4NCAtLS0tCiAgICAg
IAogICAgICBjYXNlICdiJzoKICAgICAgaWYgKGFzY2lpX3N0cmNhc2VjbXAgKGxpbmUrMSwgImNj
IikgPT0gMCkKICAgICAgewohICAgICAgIGUtPmJjYyA9IG11dHRfcGFyc2VfYWRybGlzdCAoZS0+
YmNjLCBwKTsKICAgICAgICBtYXRjaGVkID0gMTsKICAgICAgfQogICAgICBicmVhazsKICAgICAg
CiAgICAgIGNhc2UgJ2MnOgogICAgICBpZiAoYXNjaWlfc3RyY2FzZWNtcCAobGluZSsxLCAiYyIp
ID09IDApCiAgICAgIHsKISAgICAgICBlLT5jYyA9IG11dHRfcGFyc2VfYWRybGlzdCAoZS0+Y2Ms
IHApOwogICAgICAgIG1hdGNoZWQgPSAxOwogICAgICB9CiAgICAgIGVsc2UgaWYgKGFzY2lpX3N0
cm5jYXNlY21wIChsaW5lICsgMSwgIm9udGVudC0iLCA3KSA9PSAwKQogICAgICB7CioqKioqKioq
KioqKioqKgoqKiogMTE5OCwxMjA2ICoqKioKICAgICAgCiAgICAgIGNhc2UgJ3QnOgogICAgICBp
ZiAoYXNjaWlfc3RyY2FzZWNtcCAobGluZSsxLCAibyIpID09IDApCiAgICAgIHsKISAgICAgICBl
LT50byA9IHJmYzgyMl9wYXJzZV9hZHJsaXN0IChlLT50bywgcCk7CiAgICAgICAgbWF0Y2hlZCA9
IDE7CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICAgIAotLS0gMTE5OCwxMjA2IC0tLS0KICAgICAg
CiAgICAgIGNhc2UgJ3QnOgogICAgICBpZiAoYXNjaWlfc3RyY2FzZWNtcCAobGluZSsxLCAibyIp
ID09IDApCiAgICAgIHsKISAgICAgICBlLT50byA9IG11dHRfcGFyc2VfYWRybGlzdCAoZS0+dG8s
IHApOwogICAgICAgIG1hdGNoZWQgPSAxOwogICAgICB9CiAgICAgIGJyZWFrOwogICAgICAKKioq
KioqKioqKioqKioqCioqKiAxNDM1LDE0NTYgKioqKgogIH0KICAKICBBRERSRVNTICptdXR0X3Bh
cnNlX2Fkcmxpc3QgKEFERFJFU1MgKnAsIGNvbnN0IGNoYXIgKnMpCiAgewohICAgY29uc3QgY2hh
ciAqcTsKICAKICAgIC8qIGNoZWNrIGZvciBhIHNpbXBsZSB3aGl0ZXNwYWNlIHNlcGFyYXRlZCBs
aXN0IG9mIGFkZHJlc3NlcyAqLwogICAgaWYgKChxID0gc3RycGJyayAocywgIlwiPD4oKTo7LFxc
IikpID09IE5VTEwpCiAgICB7CiAgICAgIGNoYXIgdG1wW0hVR0VfU1RSSU5HXTsKISAgICAgY2hh
ciAqcjsKICAKISAgICAgc3RyZmNweSAodG1wLCBzLCBzaXplb2YgKHRtcCkpOwohICAgICByID0g
dG1wOwohICAgICB3aGlsZSAoKHIgPSBzdHJ0b2sgKHIsICIgXHQiKSkgIT0gTlVMTCkKISAgICAg
ewohICAgICAgIHAgPSByZmM4MjJfcGFyc2VfYWRybGlzdCAocCwgcik7CiEgICAgICAgciA9IE5V
TEw7CiAgICAgIH0KICAgIH0KICAgIGVsc2UKICAgICAgcCA9IHJmYzgyMl9wYXJzZV9hZHJsaXN0
IChwLCBzKTsKLS0tIDE0MzUsMTQ2NSAtLS0tCiAgfQogIAogIEFERFJFU1MgKm11dHRfcGFyc2Vf
YWRybGlzdCAoQUREUkVTUyAqcCwgY29uc3QgY2hhciAqcykKICB7CiEgICBjaGFyICpxOwogIAog
ICAgLyogY2hlY2sgZm9yIGEgc2ltcGxlIHdoaXRlc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2YgYWRk
cmVzc2VzICovCiAgICBpZiAoKHEgPSBzdHJwYnJrIChzLCAiXCI8PigpOjssXFwiKSkgPT0gTlVM
TCkKICAgIHsKICAgICAgY2hhciB0bXBbSFVHRV9TVFJJTkddOwohICAgICByZWdpc3RlciBjaGFy
ICpyOwohICAgICByZWdpc3RlciBpbnQgYzsKICAKISAgICAgcSA9IHN0cmZjcHkgKHRtcCwgcywg
c2l6ZW9mICh0bXApKTsKISAgICAgd2hpbGUgKChjID0gKnEpID09ICdcdCcgfHwgYyA9PSAnICcp
ICsrcTsKISAgICAgaWYgKGMgPT0gJ1wwJykgcmV0dXJuIHA7CiEgICAgIHIgPSBxKzE7CiEgIEw6
IHdoaWxlICgoYyA9ICpyKSAmJiBjICE9ICdcdCcgJiYgYyAhPSAnICcpICsrcjsKISAgICAgaWYg
KGMgIT0gJ1wwJykgewohICAgICAgIHEgPSByKys7CiEgICAgICAgd2hpbGUgKChjID0gKnIpID09
ICdcdCcgfHwgYyA9PSAnICcpICsrcjsKISAgICAgICBpZiAoYyAhPSAnXDAnKSB7CiEgICAgICAg
ICAqcSA9ICcsJzsKISAgICAgICAgIHEgPSByKys7CiEgICAgICAgICBnb3RvIEw7CiEgICAgICAg
fQohICAgICAgICpxID0gJ1wwJzsgLyogVHJpbSB0cmFpbGluZyAid2hpdGUgc3BhY2UiICovCiAg
ICAgIH0KICAgIH0KICAgIGVsc2UKICAgICAgcCA9IHJmYzgyMl9wYXJzZV9hZHJsaXN0IChwLCBz
KTsKKioqIHJmYzE1MjQuYy5vcmlnCVRodSBGZWIgIDMgMTA6NDc6NTMgMjAwNQotLS0gcmZjMTUy
NC5jCVRodSBGZWIgIDMgMTA6NDc6NTMgMjAwNQoqKioqKioqKioqKioqKioKKioqIDMwNywzMjAg
KioqKgogIAkgIH0KICAJfQogICAgICAgIH0gLyogd2hpbGUgKGNoKSAqLwogIAohICAgICAgIGlm
IChvcHQgPT0gTV9BVVRPVklFVykKISAgICAgICB7CiEgCWlmICghY29waW91c291dHB1dCkKISAJ
ICBmb3VuZCA9IEZBTFNFOwohICAgICAgIH0KISAgICAgICBlbHNlIGlmIChvcHQgPT0gTV9DT01Q
T1NFKQogICAgICAgIHsKICAJaWYgKCFjb21wb3NlY29tbWFuZCkKICAJICBmb3VuZCA9IEZBTFNF
OwogICAgICAgIH0KLS0tIDMwNywzMTUgLS0tLQogIAkgIH0KICAJfQogICAgICAgIH0gLyogd2hp
bGUgKGNoKSAqLwogIAohICAgICAgIGlmIChvcHQgPT0gTV9DT01QT1NFKQogICAgICAgIHsKICAJ
aWYgKCFjb21wb3NlY29tbWFuZCkKICAJICBmb3VuZCA9IEZBTFNFOwogICAgICAgIH0KKioqIGlu
aXQuaC5vcmlnCVRodSBBdWcgMTEgMTI6Mzc6MDEgMjAwNQotLS0gaW5pdC5oCVRodSBBdWcgMTEg
MTI6Mzc6MDEgMjAwNQoqKioqKioqKioqKioqKioKKioqIDkxOCw5MjYgKioqKgogICAgKiogLnBw
CiAgICAqKiBUaGlzIHZhcmlhYmxlIGRlZmF1bHRzIHRvIHlvdXIgdXNlciBuYW1lIG9uIHRoZSBs
b2NhbCBtYWNoaW5lLgogICAgKi8KICAjZW5kaWYKISAgIHsgImltcGxpY2l0X2F1dG92aWV3Iiwg
RFRfQk9PTCxSX05PTkUsIE9QVElNUExJQ0lUQVVUT1ZJRVcsIDB9LAogICAgLyoKICAgICoqIC5w
cAogICAgKiogSWYgc2V0IHRvIGBgeWVzJycsIG11dHQgd2lsbCBsb29rIGZvciBhIG1haWxjYXAg
ZW50cnkgd2l0aCB0aGUKICAgICoqIGNvcGlvdXNvdXRwdXQgZmxhZyBzZXQgZm9yIFxmSWV2ZXJ5
XGZQIE1JTUUgYXR0YWNobWVudCBpdCBkb2Vzbid0IGhhdmUKLS0tIDkxOCw5MjYgLS0tLQogICAg
KiogLnBwCiAgICAqKiBUaGlzIHZhcmlhYmxlIGRlZmF1bHRzIHRvIHlvdXIgdXNlciBuYW1lIG9u
IHRoZSBsb2NhbCBtYWNoaW5lLgogICAgKi8KICAjZW5kaWYKISAgIHsgImltcGxpY2l0X2F1dG92
aWV3IiwgRFRfUVVBRCxSX05PTkUsIE9QVElNUExJQ0lUQVVUT1ZJRVcsIE1fTk99LAogICAgLyoK
ICAgICoqIC5wcAogICAgKiogSWYgc2V0IHRvIGBgeWVzJycsIG11dHQgd2lsbCBsb29rIGZvciBh
IG1haWxjYXAgZW50cnkgd2l0aCB0aGUKICAgICoqIGNvcGlvdXNvdXRwdXQgZmxhZyBzZXQgZm9y
IFxmSWV2ZXJ5XGZQIE1JTUUgYXR0YWNobWVudCBpdCBkb2Vzbid0IGhhdmUKKioqIGF0dGFjaC5j
Lm9yaWcJVGh1IEF1ZyAxMSAxMjozNzowMSAyMDA1Ci0tLSBhdHRhY2guYwlUaHUgQXVnIDExIDEy
OjM3OjAxIDIwMDUKKioqKioqKioqKioqKioqCioqKiAzODIsMzk1ICoqKioKICAgIHR5cGUgPSBf
dHlwZTsKICAKICAgIGlmIChtdXR0X25lZWRzX21haWxjYXAgKGIpKQogICAgewotICAgICBpZiAo
b3B0aW9uIChPUFRJTVBMSUNJVEFVVE9WSUVXKSkKLSAgICAgICByZXR1cm4gMTsKLSAgICAgCiAg
ICAgIGlmIChpc19tbW5vYXNrICh0eXBlKSkKICAgICAgICByZXR1cm4gMTsKISAgIH0KICAKICAg
IGZvciAoOyB0OyB0ID0gdC0+bmV4dCkgewogICAgICBpID0gbXV0dF9zdHJsZW4gKHQtPmRhdGEp
IC0gMTsKICAgICAgaWYgKChpID4gMCAmJiB0LT5kYXRhW2ktMV0gPT0gJy8nICYmIHQtPmRhdGFb
aV0gPT0gJyonICYmIAotLS0gMzgyLDQwMCAtLS0tCiAgICB0eXBlID0gX3R5cGU7CiAgCiAgICBp
ZiAobXV0dF9uZWVkc19tYWlsY2FwIChiKSkKICAgIHsKICAgICAgaWYgKGlzX21tbm9hc2sgKHR5
cGUpKQogICAgICAgIHJldHVybiAxOwohICAgCiEgICAgIHN3aXRjaCAoaSA9IHF1YWRvcHRpb24g
KE9QVElNUExJQ0lUQVVUT1ZJRVcpKSB7CiEgICAgICAgY2FzZSBNX1lFUzogcmV0dXJuIDE7CiEg
ICAgICAgZGVmYXVsdCAgIDogaSA9IG11dHRfeWVzb3JubyAoXygiRGlzcGxheSBpdD8iKSwgKGkg
PT0gTV9BU0tZRVMpKTsKISAgICAgICAgICAgICAgICAgICBDTEVBUkxJTkUgKExJTkVTIC0gMSk7
CiEgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkgPT0gTV9ZRVM7CiEgICAgICAgY2FzZSBNX05P
IDogOwohICAgICB9CiEgICAgfSAKICAKICAgIGZvciAoOyB0OyB0ID0gdC0+bmV4dCkgewogICAg
ICBpID0gbXV0dF9zdHJsZW4gKHQtPmRhdGEpIC0gMTsKICAgICAgaWYgKChpID4gMCAmJiB0LT5k
YXRhW2ktMV0gPT0gJy8nICYmIHQtPmRhdGFbaV0gPT0gJyonICYmIAotIC0gLSAtIC0gLSAtIC0g
LSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAt
IC0gLSAtCg==