<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>97585</bug_id>
          
          <creation_ts>2005-07-01 01:39 0000</creation_ts>
          <short_desc>mail-client/squirrelmail vulnerability in options_identites.php (vendor-sec) (CAN-2005-2095)</short_desc>
          <delta_ts>2005-07-14 02:07:58 0000</delta_ts>
          
          
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Security</product>
          <component>Vulnerabilities</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <status_whiteboard>B4 [noglsa] jaervosz</status_whiteboard>
          
          <priority>P2</priority>
          <bug_severity>minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>jaervosz@gentoo.org</reporter>
          <assigned_to>security@gentoo.org</assigned_to>
          <cc>eradicator@gentoo.org</cc>
    
    <cc>rajiv@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2005-07-01 01:39:53 0000</bug_when>
            <thetext>Hello all,

A new vulnerability has been discovered in SquirrelMail. The file
src/options_identities.php contained some very bad, legacy code: an
extract($_POST) was done, effectively allowing a malicious attacker to
change session variables and even other people&apos;s preferences.

It must be noted that for this to happen you need to trick someone into
using an external form to post the information which is not trivial.

Affected versions:
1.4.0 - 1.4.5-RC1 </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2005-07-01 01:39:53 0000</bug_when>
            <thetext>Hello all,

A new vulnerability has been discovered in SquirrelMail. The file
src/options_identities.php contained some very bad, legacy code: an
extract($_POST) was done, effectively allowing a malicious attacker to
change session variables and even other people&apos;s preferences.

It must be noted that for this to happen you need to trick someone into
using an external form to post the information which is not trivial.

Affected versions:
1.4.0 - 1.4.5-RC1  (current stable tree)
1.2.8 - 1.2.10     (unsupported old stable tree)
1.5.x CVS          (unsupported current development tree)

Not vulnerable:
Everything before 1.2.8.

Our proposed patch is attached; unfortunately we had to rework some
functions to fix them the right way because the previous code really
depended to the extract() call.

We will release 1.4.5 sometime next week with the patch included. Fixes
for unsupported trees will be applied to their CVS branches but no new
releases will be made.

Credits for finding the issue go to James Bercegay of GulfTech Security
Research.

Regards,
Thijs Kinkhorst
SquirrelMail Development Team</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2005-07-01 01:41:54 0000</bug_when>
            <thetext>Created an attachment (id=62382)
sqm_144_ident.diff
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2005-07-01 01:44:36 0000</bug_when>
            <thetext>Jeremy please advise. 
 
This seems rather hard to exploit. If you want some prerelease testing please 
attach an updated ebuild to this bug. Do NOT commit anything to Portage. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>eradicator@gentoo.org</who>
            <bug_when>2005-07-02 10:21:38 0000</bug_when>
            <thetext>Yeah... I tend to agree with Thijs that this is rather difficult to exploit. 
Combine that with the extensive nature of the changes here, and I&apos;d prefer to
wait for upstream to finish testing with their 1.4.5 release with the fix next week.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2005-07-03 03:06:10 0000</bug_when>
            <thetext>Ok, we&apos;ll wait on this one. 
 
Jeremy will you watch upstream for a new release? </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2005-07-11 07:55:05 0000</bug_when>
            <thetext>1.4.5 will be released on Wednesday, we could just as well decide on GLSA 
publication already. I tend to vote NO. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2005-07-11 09:50:12 0000</bug_when>
            <thetext>Yes I vote NO too.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2005-07-13 12:49:29 0000</bug_when>
            <thetext>Now public</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2005-07-13 12:50:38 0000</bug_when>
            <thetext>*** Bug 98917 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2005-07-13 12:51:18 0000</bug_when>
            <thetext>Jeremy : please bump to 1.4.5 final</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>eradicator@gentoo.org</who>
            <bug_when>2005-07-13 13:50:58 0000</bug_when>
            <thetext>in portage. ppc needs to mark stable.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>geekypenguin@gmail.com</who>
            <bug_when>2005-07-13 14:00:12 0000</bug_when>
            <thetext>Stable on PPC</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>jaervosz@gentoo.org</who>
            <bug_when>2005-07-13 22:28:58 0000</bug_when>
            <thetext>Reverting half NO to full NO -&gt; Closing without GLSA. 
 
Thx everyone. </thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>koon@gentoo.org</who>
            <bug_when>2005-07-14 02:07:58 0000</bug_when>
            <thetext>and don&apos;t forget to close :)</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62382</attachid>
            <date>2005-07-01 01:41 0000</date>
            <desc>sqm_144_ident.diff</desc>
            <filename>sqm_144_ident.diff</filename>
            <type>text/plain</type>
            <data encoding="base64">PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3Qvc3F1aXJyZWxtYWlsL3NxdWlycmVsbWFpbC9m
dW5jdGlvbnMvaWRlbnRpdHkucGhwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQuNC42CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS40LjQuNwpkaWZmIC11IC1yMS40LjQuNiAtcjEuNC40LjcKLS0tIHNx
dWlycmVsbWFpbC9zcXVpcnJlbG1haWwvZnVuY3Rpb25zL2lkZW50aXR5LnBocAkyMDA1LzA2LzEz
IDAyOjUxOjQ5CTEuNC40LjYKKysrIHNxdWlycmVsbWFpbC9zcXVpcnJlbG1haWwvZnVuY3Rpb25z
L2lkZW50aXR5LnBocAkyMDA1LzA2LzI5IDIwOjAyOjMzCTEuNC40LjcKQEAgLTU5LDQgKzU5LDEz
OSBAQAogICAgIHJldHVybiAkaWRlbnRpdGllczsKIH0KCisvKioKKyAqIEZ1bmN0aW9uIHRvIHNh
dmUgdGhlIGlkZW50aXRpZXMgYXJyYXkKKyAqCisgKiBAcGFyYW0gIGFycmF5ICAgICAkaWRlbnRp
dGllcyAgICAgQXJyYXkgb2YgaWRlbnRpdGllcworICovCitmdW5jdGlvbiBzYXZlX2lkZW50aXRp
ZXMoJGlkZW50aXRpZXMpIHsKKworICAgIGdsb2JhbCAkdXNlcm5hbWUsICRkYXRhX2RpciwgJGRv
bWFpbjsKKworICAgIGlmIChlbXB0eSgkaWRlbnRpdGllcykgfHwgIWlzX2FycmF5KCRpZGVudGl0
aWVzKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisKKyAgICAkbnVtX2N1ciA9IGdldFBy
ZWYoJGRhdGFfZGlyLCAkdXNlcm5hbWUsICdpZGVudGl0aWVzJyk7CisKKyAgICAkY250ID0gY291
bnQoJGlkZW50aXRpZXMpOworCisgICAgLy8gUmVtb3ZlIGFueSBhZGRpdGlvbmFsIGlkZW50aXRp
ZXMgaW4gcHJlZnMgLy8KKyAgICBmb3IoJGk9JGNudDsgJGkgPD0gJG51bV9jdXI7ICRpKyspIHsK
KyAgICAgICAgcmVtb3ZlUHJlZigkZGF0YV9kaXIsICR1c2VybmFtZSwgJ2Z1bGxfbmFtZScgLiAk
aSk7CisgICAgICAgIHJlbW92ZVByZWYoJGRhdGFfZGlyLCAkdXNlcm5hbWUsICdlbWFpbF9hZGRy
ZXNzJyAuICRpKTsKKyAgICAgICAgcmVtb3ZlUHJlZigkZGF0YV9kaXIsICR1c2VybmFtZSwgJ3Jl
cGx5X3RvJyAuICRpKTsKKyAgICAgICAgc2V0U2lnKCRkYXRhX2RpciwgJHVzZXJuYW1lLCAkaSwg
JycpOworICAgIH0KKworICAgIGZvcmVhY2goJGlkZW50aXRpZXMgYXMgJGlkPT4kaWRlbnQpIHsK
KworICAgICAgICAka2V5ID0gKCRpZD8kaWQ6JycpOworCisgICAgICAgIHNldFByZWYoJGRhdGFf
ZGlyLCAkdXNlcm5hbWUsICdmdWxsX25hbWUnIC4gJGtleSwgJGlkZW50WydmdWxsX25hbWUnXSk7
CisgICAgICAgIHNldFByZWYoJGRhdGFfZGlyLCAkdXNlcm5hbWUsICdlbWFpbF9hZGRyZXNzJyAu
ICRrZXksICRpZGVudFsnZW1haWxfYWRkcmVzcyddKTsKKyAgICAgICAgc2V0UHJlZigkZGF0YV9k
aXIsICR1c2VybmFtZSwgJ3JlcGx5X3RvJyAuICRrZXksICRpZGVudFsncmVwbHlfdG8nXSk7CisK
KyAgICAgICAgaWYgKCRpZCA9PT0gMCkgeworICAgICAgICAgICAgc2V0U2lnKCRkYXRhX2Rpciwg
JHVzZXJuYW1lLCAnZycsICRpZGVudFsnc2lnbmF0dXJlJ10pOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgc2V0U2lnKCRkYXRhX2RpciwgJHVzZXJuYW1lLCAka2V5LCAkaWRlbnRbJ3Np
Z25hdHVyZSddKTsKKyAgICAgICAgfQorCisgICAgfQorCisgICAgc2V0UHJlZigkZGF0YV9kaXIs
ICR1c2VybmFtZSwgJ2lkZW50aXRpZXMnLCAkY250KTsKKworfQorCisvKioKKyAqIFJldHVybnMg
YW4gYXJyYXkgd2l0aCBhIGZpeGVkIHNldCBvZiBpZGVudGl0aWVzCisgKgorICogQHBhcmFtICAg
YXJyYXkgICAgICAgJGlkZW50aXRpZXMgICAgICBBcnJheSBvZiBpZGVudGl0aWVzCisgKiBAcGFy
YW0gICBpbnQgICAgICAgICAkaWQgICAgICAgICAgICAgSWRlbnRpdHkgdG8gbW9kaWZ5CisgKiBA
cGFyYW0gICBzdHJpbmcgICAgICAkYWN0aW9uICAgICAgICAgQWN0aW9uIHRvIHBlcmZvcm0KKyAq
IEByZXR1cm4gIGFycmF5CisgKi8KK2Z1bmN0aW9uIHNxZml4aWRlbnRpdGllcyggJGlkZW50aXRp
ZXMsICRpZCwgJGFjdGlvbiApIHsKKworICAgICRmaXhlZCA9IGFycmF5KCk7CisgICAgJHRtcF9o
b2xkID0gYXJyYXkoKTsKKyAgICAkaSA9IDA7CisKKyAgICBpZiAoZW1wdHkoJGlkZW50aXRpZXMp
IHx8ICFpc19hcnJheSgkaWRlbnRpdGllcykpIHsKKyAgICAgICAgcmV0dXJuICRmaXhlZDsKKyAg
ICB9CisKKyAgICBmb3JlYWNoKCAkaWRlbnRpdGllcyBhcyAka2V5PT4kaWRlbnQgKSB7CisKKyAg
ICAgICAgaWYgKGVtcHR5X2lkZW50aXR5KCRpZGVudCkpIHsKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoKCRhY3Rpb24pIHsKKworICAgICAgICAgICAg
Y2FzZSAnbWFrZWRlZmF1bHQnOgorCisgICAgICAgICAgICAgICAgaWYgKCRrZXkgPT0gJGlkKSB7
CisgICAgICAgICAgICAgICAgICAgICRmaXhlZFswXSA9ICRpZGVudDsKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWUgMjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAkZml4ZWRbJGkrMV0gPSAkaWRlbnQ7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICdtb3ZlJzoKKworICAgICAgICAg
ICAgICAgIGlmICgka2V5ID09ICgkaWQgLSAxKSkgeworICAgICAgICAgICAgICAgICAgICAkdG1w
X2hvbGQgPSAkaWRlbnQ7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIDI7CisgICAgICAg
ICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJGZpeGVkWyRpXSA9ICRpZGVu
dDsKKworICAgICAgICAgICAgICAgICAgICBpZiAoJGtleSA9PSAkaWQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICRpKys7CisgICAgICAgICAgICAgICAgICAgICAgICAkZml4ZWRbJGldID0g
JHRtcF9ob2xkOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlICdkZWxldGUnOgorCisgICAg
ICAgICAgICAgICAgaWYgKCRrZXkgPT0gJGlkKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlIDI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgJGZp
eGVkWyRpXSA9ICRpZGVudDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgIC8vIHdlIHNob3VsZCBuZXZlciBoaXQgdGhpcyBidXQganVzdCBp
biBjYXNlIC8vCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICRmaXhlZFsk
aV0gPSAkaWRlbnQ7CisKKyAgICAgICAgfQorCisgICAgICAgIC8vIEluYyBhcnJheSBpbmRleCAv
LworICAgICAgICAkaSsrOworICAgIH0KKworICAgIGtzb3J0KCRmaXhlZCk7CisgICAgcmV0dXJu
ICRmaXhlZDsKKworfQorCisvKioKKyAqIEZ1bmN0aW9uIHRvIHRlc3QgaWYgaWRlbnRpdHkgaXMg
ZW1wdHkKKyAqCisgKiBAcGFyYW0gICBhcnJheSAgICRpZGVudGl0eSAgIElkZW50aXRpeSBBcnJh
eQorICogQHJldHVybiAgYm9vbGVhbgorICovCitmdW5jdGlvbiBlbXB0eV9pZGVudGl0eSgkaWRl
bnQpIHsKKyAgICBpZiAoZW1wdHkoJGlkZW50WydmdWxsX25hbWUnXSkgJiYgZW1wdHkoJGlkZW50
WydlbWFpbF9hZGRyZXNzJ10pICYmIGVtcHR5KCRpZGVudFsnc2lnbmF0dXJlJ10pICYmIGVtcHR5
KCRpZGVudFsncmVwbHlfdG8nXSkpIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogPz4KSW5kZXg6IG9wdGlvbnNf
aWRlbnRpdGllcy5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2c3Jvb3Qvc3F1aXJyZWxtYWls
L3NxdWlycmVsbWFpbC9zcmMvb3B0aW9uc19pZGVudGl0aWVzLnBocCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4yMi4yLjQKcmV0cmlldmluZyByZXZpc2lvbiAxLjIyLjIuNgpkaWZmIC11IC13IC1y
MS4yMi4yLjQgLXIxLjIyLjIuNgotLS0gb3B0aW9uc19pZGVudGl0aWVzLnBocAkyNyBEZWMgMjAw
NCAxNTowNDowMCAtMDAwMAkxLjIyLjIuNAorKysgb3B0aW9uc19pZGVudGl0aWVzLnBocAkxIEp1
bCAyMDA1IDA4OjA0OjQ4IC0wMDAwCTEuMjIuMi42CkBAIC0yMCw1NSArMjEsNjkgQEAKCiAvKiBT
cXVpcnJlbE1haWwgcmVxdWlyZWQgZmlsZXMuICovCiByZXF1aXJlX29uY2UoU01fUEFUSCAuICdp
bmNsdWRlL3ZhbGlkYXRlLnBocCcpOwotcmVxdWlyZV9vbmNlKFNNX1BBVEggLiAnZnVuY3Rpb25z
L2dsb2JhbC5waHAnKTsKLXJlcXVpcmVfb25jZShTTV9QQVRIIC4gJ2Z1bmN0aW9ucy9kaXNwbGF5
X21lc3NhZ2VzLnBocCcpOwotcmVxdWlyZV9vbmNlKFNNX1BBVEggLiAnZnVuY3Rpb25zL2h0bWwu
cGhwJyk7Ci0KLS8qIFBPU1QgZGF0YSB2YXIgbmFtZXMgYXJlIGR5bmFtaWMgYmVjYXVzZQotICAg
b2YgdGhlIHBvc3NpYmxlIG11bHRpcGxlIGlkZW50cyBzbyBsZXRzIGdldAotICAgdGhlbSBhbGwK
LSovCi1pZiAoIWVtcHR5KCRfUE9TVCkpIHsKLSAgICBleHRyYWN0KCRfUE9TVCk7Ci19Ci0vKiBn
b3QgJ2VtIGFsbCAqLworaW5jbHVkZV9vbmNlKFNNX1BBVEggLiAnZnVuY3Rpb25zL2dsb2JhbC5w
aHAnKTsKK2luY2x1ZGVfb25jZShTTV9QQVRIIC4gJ2Z1bmN0aW9ucy9kaXNwbGF5X21lc3NhZ2Vz
LnBocCcpOworaW5jbHVkZV9vbmNlKFNNX1BBVEggLiAnZnVuY3Rpb25zL2h0bWwucGhwJyk7Citp
bmNsdWRlX29uY2UoU01fUEFUSCAuICdmdW5jdGlvbnMvaWRlbnRpdHkucGhwJyk7CgotICAgIGlm
IChpc3NldCgkcmV0dXJuKSkgewotICAgICAgIFNhdmVVcGRhdGVGdW5jdGlvbigpOwotICAgICAg
IGhlYWRlcignTG9jYXRpb246IG9wdGlvbnNfcGVyc29uYWwucGhwJyk7Ci0gICAgICAgZXhpdCgp
OworaWYgKCFzcWdldEdsb2JhbFZhcignaWRlbnRpdGllcycsICRpZGVudGl0aWVzLCBTUV9TRVNT
SU9OKSkgeworICAgICRpZGVudGl0aWVzID0gZ2V0X2lkZW50aXRpZXMoKTsKICAgICB9CitzcWdl
dEdsb2JhbFZhcignbmV3aWRlbnRpdGllcycsICRuZXdpZGVudGl0aWVzLCBTUV9QT1NUKTsKK3Nx
Z2V0R2xvYmFsVmFyKCdzbWFjdGlvbicsICRzbWFjdGlvbiwgU1FfUE9TVCk7CitzcWdldEdsb2Jh
bFZhcigncmV0dXJuJywgJHJldHVybiwgU1FfUE9TVCk7CgotICAgIGRpc3BsYXlQYWdlSGVhZGVy
KCRjb2xvciwgJ05vbmUnKTsKKy8vIEZpcnN0IGxldHMgc2VlIGlmIHRoZXJlIGFyZSBhbnkgYWN0
aW9ucyB0byBwZXJmb3JtIC8vCitpZiAoIWVtcHR5KCRzbWFjdGlvbikgJiYgaXNfYXJyYXkoJHNt
YWN0aW9uKSkgeworCisgICAgJGRvYWN0aW9uID0gJyc7CisgICAgJGlkZW50aWQgPSAwOwoKLSAg
ICAkSW5mbyA9IGRvX2hvb2soJ29wdGlvbnNfaWRlbnRpdGllc19wcm9jZXNzJywgMCk7Ci0gICAg
aWYgKCRJbmZvWzFdKSB7Ci0gICAgICAgIFNhdmVVcGRhdGVGdW5jdGlvbigpOworICAgIGZvcmVh
Y2goJHNtYWN0aW9uIGFzICRhY3Rpb249PiRyb3cpIHsKKyAgICAgICAgLy8gd2Ugb25seSBuZWVk
IHRvIGV4dHJhY3QgdGhlIGFjdGlvbiBhbmQgdGhlIGlkZW50aXR5IHdlIGFyZQorICAgICAgICAv
LyBhbHRlcmluZworCisgICAgICAgIGZvcmVhY2goJHJvdyBhcyAka2V5PT4kZGF0YSkgeworICAg
ICAgICAgICAgJGlkZW50aWQgPSAka2V5OwogICAgIH0KCi0gICAgaWYgKENoZWNrQW5kRG9EZWZh
dWx0KCkgfHwgQ2hlY2tBbmREb1Byb21vdGUoKSkgewotICAgICAgIFNhdmVVcGRhdGVGdW5jdGlv
bigpOworICAgICAgICAkZG9hY3Rpb24gPSAkYWN0aW9uOwogICAgIH0KLSAgICBpZiAoaXNzZXQo
JHVwZGF0ZSkgfHwgQ2hlY2tGb3JEZWxldGUoKSkgewotICAgICAgICBTYXZlVXBkYXRlRnVuY3Rp
b24oKTsKKworICAgICRpZGVudGl0aWVzID0gc3FmaXhpZGVudGl0aWVzKCAkbmV3aWRlbnRpdGll
cyAsICRpZGVudGlkICwgJGFjdGlvbiApOworICAgIHNhdmVfaWRlbnRpdGllcygkaWRlbnRpdGll
cyk7CiAgICAgfQoKK2lmICghZW1wdHkoJHJldHVybikpIHsKKyAgICBoZWFkZXIoJ0xvY2F0aW9u
OiAnIC4gZ2V0X2xvY2F0aW9uKCkgLiAnL29wdGlvbnNfcGVyc29uYWwucGhwJyk7CisgICAgZXhp
dDsKK30KKworZGlzcGxheVBhZ2VIZWFkZXIoJGNvbG9yLCAnTm9uZScpOworCiAgICBkb19ob29r
KCdvcHRpb25zX2lkZW50aXRpZXNfdG9wJyk7Ci0gICBMb2FkSW5mbygkZnVsbF9uYW1lLCAkZW1h
aWxfYWRkcmVzcywgJHJlcGx5X3RvLCAkc2lnbmF0dXJlLCAnJyk7CisKICAgICR0ZF9zdHIgPSAn
JzsKLSAgICR0ZF9zdHIgLj0gJzxmb3JtIG5hbWU9ImYiIGFjdGlvbj0ib3B0aW9uc19pZGVudGl0
aWVzLnBocCIgbWV0aG9kPSJwb3N0Ij48YnIgLz4nOwotICAgJHRkX3N0ciAuPSBTaG93VGFibGVJ
bmZvKCRmdWxsX25hbWUsICRlbWFpbF9hZGRyZXNzLCAkcmVwbHlfdG8sICRzaWduYXR1cmUsICcn
KTsKKyR0ZF9zdHIgLj0gJzxmb3JtIG5hbWU9ImYiIGFjdGlvbj0ib3B0aW9uc19pZGVudGl0aWVz
LnBocCIgbWV0aG9kPSJwb3N0Ij48YnIgLz4nIC4gIlxuIjsKKyR0ZF9zdHIgLj0gJzx0YWJsZSBi
b3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgd2lkdGg9IjEwMCUiPicg
LiAiXG4iOworJGNudCA9IGNvdW50KCRpZGVudGl0aWVzKTsKK2ZvcmVhY2goICRpZGVudGl0aWVz
IGFzICRrZXk9PiRpZGVudCApIHsKKworICAgIGlmICgka2V5ID09IDApIHsKKyAgICAgICAgJGhk
cl9zdHIgPSBfKCJEZWZhdWx0IElkZW50aXR5Iik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgJGhk
cl9zdHIgPSBzcHJpbnRmKCBfKCJBbHRlcm5hdGUgSWRlbnRpdHkgJWQiKSwgJGtleSk7CisgICAg
fQorCisgICAgJHRkX3N0ciAuPSBTaG93SWRlbnRpdHlJbmZvKCAkaGRyX3N0ciwgJGlkZW50LCAk
a2V5ICk7CgotICAgJG51bSA9IDE7Ci0gICB3aGlsZSAoTG9hZEluZm8oJGZ1bGxfbmFtZSwgJGVt
YWlsX2FkZHJlc3MsICRyZXBseV90bywgJHNpZ25hdHVyZSwgJG51bSkpIHsKLSAgICAgICAkdGRf
c3RyIC49IGh0bWxfdGFnKCAndHInLAotICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sX3Rh
ZyggJ3RoJywgc3ByaW50ZiAoXygiQWx0ZXJuYXRlIElkZW50aXR5ICVkIiksICRudW0pLCAnY2Vu
dGVyJywgJycsICdjb2xzcGFuPSIyIicgKSAsCi0gICAgICAgICAgICAgICAgICAgICAgJycsICRj
b2xvcls5XSk7Ci0gICAgICAgJHRkX3N0ciAuPSBTaG93VGFibGVJbmZvKCRmdWxsX25hbWUsICRl
bWFpbF9hZGRyZXNzLCAkcmVwbHlfdG8sICRzaWduYXR1cmUsICRudW0pOwotICAgICAgICRudW0g
Kys7CiAgICAgICAgfQoKLSAgIGVjaG8gJzxiciAvPicgLgorJHRkX3N0ciAuPSBTaG93SWRlbnRp
dHlJbmZvKCBfKCJBZGQgYSBOZXcgSWRlbnRpdHkiKSwgYXJyYXkoJ2Z1bGxfbmFtZSc9PicnLCdl
bWFpbF9hZGRyZXNzJz0+JycsJ3JlcGx5X3RvJz0+JycsJ3NpZ25hdHVyZSc9PicnKSwgJGNudCk7
CiskdGRfc3RyIC49ICc8L3RhYmxlPicgLiAiXG4iOworJHRkX3N0ciAuPSAnPC9mb3JtPic7CisK
K2VjaG8gJzxiciAvPiAnIC4gIlxuIiAuCiAgICBodG1sX3RhZyggJ3RhYmxlJywgIlxuIiAuCiAg
ICAgICAgaHRtbF90YWcoICd0cicsICJcbiIgLgogICAgICAgICAgICBodG1sX3RhZyggJ3RkJywg
IlxuIiAuCkBAIC03OCwyODEgKzkzLDg2IEBACiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxf
dGFnKCAndGQnLCAiXG4iIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxfdGFnKCAn
dGFibGUnLCAiXG4iIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sX3RhZygg
J3RyJywgIlxuIiAuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxfdGFn
KCAndGgnLCBfKCJEZWZhdWx0IElkZW50aXR5IiksICdjZW50ZXInLCAnJywgJ2NvbHNwYW49IjIi
JyApICwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsICRjb2xvcls5XSkg
LiAiXG4iIC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRkX3N0ciAuICJc
biIgLgotICAgICAgICAgICAgICAgICAgICAgICBodG1sX3RhZyggJ3RyJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaHRtbF90YWcoICd0aCcsIF8oIkFkZCBhIE5ldyBJZGVu
dGl0eSIpIC4gU2hvd1RhYmxlSW5mbygnJywgJycsICcnLCAnJywgJG51bSksICdjZW50ZXInLCAn
JywgJ2NvbHNwYW49IjIiJyApICwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJywg
JGNvbG9yWzldKSAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxfdGFnKCd0
ZCcsICJcbiIgLiAgJHRkX3N0ciAsJycsJycsICdzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Iicp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnJywgJycsICd3aWR0aD0iODAlIiBjZWxscGFkZGluZz0iMiIgY2VsbHNwYWNpbmc9IjAi
IGJvcmRlcj0iMCInICkgLAogICAgICAgICAgICAgICAgICAgICAgICAnY2VudGVyJywgJGNvbG9y
WzRdICkKICAgICAgICAgICAgICAgICAgICApICwKLSAgICAgICAgICAgICAgICcnLCAnJywgJ3dp
ZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIxIiBjZWxsc3BhY2luZz0iMSInICkg
LAotICAgICAgICAgICAnY2VudGVyJywgJGNvbG9yWzBdICkKLSAgICAgICApICwKLSAgICdjZW50
ZXInLCAnJywgJ3dpZHRoPSI5NSUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFj
aW5nPSIwIicgKSAuCisgICAgICAgICAgICAnJywgJycsICd3aWR0aD0iMTAwJSIgYm9yZGVyPSIw
IiBjZWxscGFkZGluZz0iMSIgY2VsbHNwYWNpbmc9IjEiJyApKSAsCisgICAgICAgICdjZW50ZXIn
LCAkY29sb3JbMF0pLAorICAgICdjZW50ZXInLCAnJywgJ3dpZHRoPSI5NSUiIGJvcmRlcj0iMCIg
Y2VsbHBhZGRpbmc9IjIiIGNlbGxzcGFjaW5nPSIwIicgKSAuICc8L2JvZHk+PC9odG1sPic7Cgot
ICAgJzwvYm9keT48L2h0bWw+JzsKCi0gICAgZnVuY3Rpb24gU2F2ZVVwZGF0ZUZ1bmN0aW9uKCkg
ewotICAgICAgICBnbG9iYWwgJHVzZXJuYW1lLCAkZGF0YV9kaXIsICRmdWxsX25hbWUsICRlbWFp
bF9hZGRyZXNzLCAkcmVwbHlfdG8sICRzaWduYXR1cmU7CitmdW5jdGlvbiBTaG93SWRlbnRpdHlJ
bmZvKCR0aXRsZSwgJGlkZW50aXR5LCAkaWQgKSB7CisgICAgZ2xvYmFsICRjb2xvcjsKCi0gICAg
ICAgICRpID0gMTsKLSAgICAgICAgJGZha2VJID0gMTsKLSAgICAgICAgJG5hbWUgPSAnZm9ybV9m
b3JfJyAuICRpOwotICAgICAgICBnbG9iYWwgJCRuYW1lOwotICAgICAgICB3aGlsZSAoaXNzZXQo
JCRuYW1lKSkKLSAgICAgICAgewotICAgICAgICAgICAgJG5hbWUgPSAnZGVsZXRlXycgLiAkaTsK
LSAgICAgICAgICAgIGdsb2JhbCAkJG5hbWU7Ci0gICAgICAgICAgICBpZiAoaXNzZXQoJCRuYW1l
KSkgewotICAgICAgICAgICAgICAgICRmYWtlSSAtLTsKKyAgICBpZiAoZW1wdHkoJGlkZW50aXR5
WydmdWxsX25hbWUnXSkgJiYgZW1wdHkoJGlkZW50aXR5WydlbWFpbF9hZGRyZXNzJ10pICYmIGVt
cHR5KCRpZGVudGl0eVsncmVwbHlfdG8nXSkgJiYgZW1wdHkoJGlkZW50aXR5WydzaWduYXR1cmUn
XSkpIHsKKyAgICAgICAgJGJnID0gJyc7CisgICAgICAgICRlbXB0eSA9IHRydWU7CiAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGRvX2hvb2soJ29wdGlvbnNfaWRlbnRpdGll
c19yZW51bWJlcicsICRpLCAkZmFrZUkpOwotICAgICAgICAgICAgICAgICRmaWxsZWQgPSAwOwot
Ci0gICAgICAgICAgICAgICAgJG5hbWUgPSAnZnVsbF9uYW1lJyAuICRpOwotICAgICAgICAgICAg
ICAgIGdsb2JhbCAkJG5hbWU7Ci0gICAgICAgICAgICBpZiAoJCRuYW1lICE9ICcnKQotICAgICAg
ICAgICAgICAgICRmaWxsZWQgKys7Ci0gICAgICAgICAgICAgICAgc2V0UHJlZigkZGF0YV9kaXIs
ICR1c2VybmFtZSwgJ2Z1bGxfbmFtZScgLiAkZmFrZUksICQkbmFtZSk7Ci0KLSAgICAgICAgICAg
ICAgICAkbmFtZSA9ICdlbWFpbF9hZGRyZXNzJyAuICRpOwotICAgICAgICAgICAgICAgIGdsb2Jh
bCAkJG5hbWU7Ci0gICAgICAgICAgICBpZiAoJCRuYW1lICE9ICcnKQotICAgICAgICAgICAgICAg
ICRmaWxsZWQgKys7Ci0gICAgICAgICAgICAgICAgc2V0UHJlZigkZGF0YV9kaXIsICR1c2VybmFt
ZSwgJ2VtYWlsX2FkZHJlc3MnIC4gJGZha2VJLCAkJG5hbWUpOwotCi0gICAgICAgICAgICAgICAg
JG5hbWUgPSAncmVwbHlfdG8nIC4gJGk7Ci0gICAgICAgICAgICAgICAgZ2xvYmFsICQkbmFtZTsK
LSAgICAgICAgICAgIGlmICgkJG5hbWUgIT0gJycpCi0gICAgICAgICAgICAgICAgJGZpbGxlZCAr
KzsKLSAgICAgICAgICAgICAgICBzZXRQcmVmKCRkYXRhX2RpciwgJHVzZXJuYW1lLCAncmVwbHlf
dG8nIC4gJGZha2VJLCAkJG5hbWUpOwotCi0gICAgICAgICAgICAgICAgJG5hbWUgPSAnc2lnbmF0
dXJlJyAuICRpOwotICAgICAgICAgICAgICAgIGdsb2JhbCAkJG5hbWU7Ci0gICAgICAgICAgICBp
ZiAoJCRuYW1lICE9ICcnKQotICAgICAgICAgICAgICAgICRmaWxsZWQgKys7Ci0gICAgICAgICAg
ICAgICAgc2V0U2lnKCRkYXRhX2RpciwgJHVzZXJuYW1lLCAkZmFrZUksICQkbmFtZSk7Ci0KLSAg
ICAgICAgICAgIGlmICgkZmlsbGVkID09IDApCi0gICAgICAgICAgICAgICAgJGZha2VJIC0tOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAkZmFrZUkgKys7Ci0gICAgICAgICAgICAkaSAr
KzsKLSAgICAgICAgICAgICRuYW1lID0gJ2Zvcm1fZm9yXycgLiAkaTsKLSAgICAgICAgICAgIGds
b2JhbCAkJG5hbWU7CisgICAgICAgICRiZyA9ICcgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6JyAu
ICRjb2xvclswXSAuICc7Iic7CisgICAgICAgICRlbXB0eSA9IGZhbHNlOwogICAgICAgICB9Cgot
ICAgICAgICBzZXRQcmVmKCRkYXRhX2RpciwgJHVzZXJuYW1lLCAnaWRlbnRpdGllcycsICRmYWtl
SSk7CisgICAgJG5hbWUgPSAnbmV3aWRlbnRpdGllc1slZF1bJXNdJzsKCi0gICAgICAgIHdoaWxl
ICgkZmFrZUkgIT0gJGkpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJlbW92ZVByZWYoJGRhdGFf
ZGlyLCAkdXNlcm5hbWUsICdmdWxsX25hbWUnIC4gJGZha2VJKTsKLSAgICAgICAgICAgIHJlbW92
ZVByZWYoJGRhdGFfZGlyLCAkdXNlcm5hbWUsICdlbWFpbF9hZGRyZXNzJyAuICRmYWtlSSk7Ci0g
ICAgICAgICAgICByZW1vdmVQcmVmKCRkYXRhX2RpciwgJHVzZXJuYW1lLCAncmVwbHlfdG8nIC4g
JGZha2VJKTsKLSAgICAgICAgICAgIHNldFNpZygkZGF0YV9kaXIsICR1c2VybmFtZSwgJGZha2VJ
LCAiIik7Ci0gICAgICAgICAgICAkZmFrZUkgKys7Ci0gICAgICAgIH0KLQotICAgICAgICBzZXRQ
cmVmKCRkYXRhX2RpciwgJHVzZXJuYW1lLCAnZnVsbF9uYW1lJywgJGZ1bGxfbmFtZSk7Ci0gICAg
ICAgIHNldFByZWYoJGRhdGFfZGlyLCAkdXNlcm5hbWUsICdlbWFpbF9hZGRyZXNzJywgJGVtYWls
X2FkZHJlc3MpOwotICAgICAgICBzZXRQcmVmKCRkYXRhX2RpciwgJHVzZXJuYW1lLCAncmVwbHlf
dG8nLCAkcmVwbHlfdG8pOwotICAgICAgICBzZXRTaWcoJGRhdGFfZGlyLCAkdXNlcm5hbWUsICJn
IiwgJHNpZ25hdHVyZSk7Ci0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBDaGVja0FuZERvRGVmYXVs
dCgpIHsKLSAgICAgICAgZ2xvYmFsICR1c2VybmFtZSwgJGRhdGFfZGlyLCAkZnVsbF9uYW1lLCAk
ZW1haWxfYWRkcmVzcywgJHJlcGx5X3RvLCAkc2lnbmF0dXJlOwotCi0gICAgICAgICRpID0gMTsK
LSAgICAgICAgJG5hbWUgPSAnZm9ybV9mb3JfJyAuICRpOwotICAgICAgICBnbG9iYWwgJCRuYW1l
OwotICAgICAgICB3aGlsZSAoaXNzZXQoJCRuYW1lKSkKLSAgICAgICAgewotICAgICAgICAgICAg
JG5hbWUgPSAnbWFrZV9kZWZhdWx0XycgLiAkaTsKLSAgICAgICAgICAgIGdsb2JhbCAkJG5hbWU7
Ci0gICAgICAgICAgICBpZiAoaXNzZXQoJCRuYW1lKSkgewotICAgICAgICAgICAgICAgIGRvX2hv
b2soJ29wdGlvbnNfaWRlbnRpdGllc19yZW51bWJlcicsICRpLCAnZGVmYXVsdCcpOwotICAgICAg
ICAgICAgICAgIGdsb2JhbCAkZnVsbF9uYW1lLCAkZW1haWxfYWRkcmVzcywgJHJlcGx5X3RvLCAk
c2lnbmF0dXJlOwotCi0gICAgICAgICAgICAgICAgJG5hbWUgPSAnZnVsbF9uYW1lJyAuICRpOwot
ICAgICAgICAgICAgICAgIGdsb2JhbCAkJG5hbWU7Ci0gICAgICAgICAgICAgICAgJHRlbXAgPSAk
ZnVsbF9uYW1lOwotICAgICAgICAgICAgICAgICRmdWxsX25hbWUgPSAkJG5hbWU7Ci0gICAgICAg
ICAgICAgICAgJCRuYW1lID0gJHRlbXA7CgotICAgICAgICAgICAgICAgICRuYW1lID0gJ2VtYWls
X2FkZHJlc3MnIC4gJGk7Ci0gICAgICAgICAgICAgICAgZ2xvYmFsICQkbmFtZTsKLSAgICAgICAg
ICAgICAgICAkdGVtcCA9ICRlbWFpbF9hZGRyZXNzOwotICAgICAgICAgICAgICAgICRlbWFpbF9h
ZGRyZXNzID0gJCRuYW1lOwotICAgICAgICAgICAgICAgICQkbmFtZSA9ICR0ZW1wOworICAgICRy
ZXR1cm5fc3RyID0gJyc7CgotICAgICAgICAgICAgICAgICRuYW1lID0gJ3JlcGx5X3RvJyAuICRp
OwotICAgICAgICAgICAgICAgIGdsb2JhbCAkJG5hbWU7Ci0gICAgICAgICAgICAgICAgJHRlbXAg
PSAkcmVwbHlfdG87Ci0gICAgICAgICAgICAgICAgJHJlcGx5X3RvID0gJCRuYW1lOwotICAgICAg
ICAgICAgICAgICQkbmFtZSA9ICR0ZW1wOworICAgICRyZXR1cm5fc3RyIC49ICc8dHI+JyAuICJc
biI7CisgICAgJHJldHVybl9zdHIgLj0gJyAgPHRoIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjti
YWNrZ3JvdW5kLWNvbG9yOicgLiAkY29sb3JbOV0gLiAnOyIgY29sc3Bhbj0iMiI+JyAuICR0aXRs
ZSAuICc8L3RoPiAnLiAiXG4iOworICAgICRyZXR1cm5fc3RyIC49ICc8L3RyPicgLiAiXG4iOwor
ICAgICRyZXR1cm5fc3RyIC49IHN0aV9pbnB1dCggXygiRnVsbCBOYW1lIikgLCBzcHJpbnRmKCRu
YW1lLCAkaWQsICdmdWxsX25hbWUnKSwgJGlkZW50aXR5WydmdWxsX25hbWUnXSwgJGJnKTsKKyAg
ICAkcmV0dXJuX3N0ciAuPSBzdGlfaW5wdXQoIF8oIkUtTWFpbCBBZGRyZXNzIikgLCBzcHJpbnRm
KCRuYW1lLCAkaWQsICdlbWFpbF9hZGRyZXNzJyksICRpZGVudGl0eVsnZW1haWxfYWRkcmVzcydd
LCAkYmcpOworICAgICRyZXR1cm5fc3RyIC49IHN0aV9pbnB1dCggXygiUmVwbHkgVG8iKSwgc3By
aW50ZigkbmFtZSwgJGlkLCAncmVwbHlfdG8nKSwgJGlkZW50aXR5WydyZXBseV90byddLCAkYmcp
OworICAgICRyZXR1cm5fc3RyIC49IHN0aV90ZXh0YXJlYSggXygiU2lnbmF0dXJlIiksIHNwcmlu
dGYoJG5hbWUsICRpZCwgJ3NpZ25hdHVyZScpLCAkaWRlbnRpdHlbJ3NpZ25hdHVyZSddLCAkYmcp
OworICAgICRyZXR1cm5fc3RyIC49IGNvbmNhdF9ob29rX2Z1bmN0aW9uKCdvcHRpb25zX2lkZW50
aXRpZXNfdGFibGUnLCBhcnJheSgkYmcsICRlbXB0eSwgJGlkKSk7CisgICAgJHJldHVybl9zdHIg
Lj0gJzx0cicgLiAkYmcgLiAnPiAnIC4gIlxuIjsKKyAgICAkcmV0dXJuX3N0ciAuPSAnICA8dGQ+
ICZuYnNwOyA8L3RkPicgLiAiXG4iOworICAgICRyZXR1cm5fc3RyIC49ICcgIDx0ZD4nIC4gIlxu
IjsKKyAgICAkcmV0dXJuX3N0ciAuPSAnICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InNt
YWN0aW9uW3NhdmVdWycgLiAkaWQgLiAnXSIgdmFsdWU9IicgLiBfKCJTYXZlIC8gVXBkYXRlIikg
LiAnIiAvPicgLiAiXG4iOwoKLSAgICAgICAgICAgICAgICAkbmFtZSA9ICdzaWduYXR1cmUnIC4g
JGk7Ci0gICAgICAgICAgICAgICAgZ2xvYmFsICQkbmFtZTsKLSAgICAgICAgICAgICAgICAkdGVt
cCA9ICRzaWduYXR1cmU7Ci0gICAgICAgICAgICAgICAgJHNpZ25hdHVyZSA9ICQkbmFtZTsKLSAg
ICAgICAgICAgICAgICAkJG5hbWUgPSAkdGVtcDsKKyAgICBpZiAoISRlbXB0eSAmJiAkaWQgPiAw
KSB7CisgICAgICAgICRyZXR1cm5fc3RyIC49ICcgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFt
ZT0ic21hY3Rpb25bbWFrZWRlZmF1bHRdWycgLiAkaWQgLiAnXSIgdmFsdWU9IicgLiBfKCJNYWtl
IERlZmF1bHQiKSAuICciIC8+JyAuICJcbiI7CisgICAgICAgICRyZXR1cm5fc3RyIC49ICcgICAg
PGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ic21hY3Rpb25bZGVsZXRlXVsnLiRpZC4nXSIgdmFs
dWU9IicgLiBfKCJEZWxldGUiKSAuICciIC8+JyAuICJcbiI7CgotCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIGlmICgkaWQgPiAxKSB7CisgICAgICAgICAgICAkcmV0dXJu
X3N0ciAuPSAnICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InNtYWN0aW9uW21vdmVdWycu
JGlkLiddIiB2YWx1ZT0iJyAuIF8oIk1vdmUgVXAiKSAuICciIC8+JyAuICJcbiI7CiAgICAgICAg
ICAgICB9CgotICAgICAgICAgICAgJGkgKys7Ci0gICAgICAgICAgICAkbmFtZSA9ICdmb3JtX2Zv
cl8nIC4gJGk7Ci0gICAgICAgICAgICBnbG9iYWwgJCRuYW1lOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBGQUxTRTsKICAgICB9CgotICAgIGZ1bmN0aW9uIENoZWNrRm9yRGVsZXRlKCkgewot
ICAgICAgICBnbG9iYWwgJHVzZXJuYW1lLCAkZGF0YV9kaXIsICRmdWxsX25hbWUsICRlbWFpbF9h
ZGRyZXNzLCAkcmVwbHlfdG8sICRzaWduYXR1cmU7CisgICAgJHJldHVybl9zdHIgLj0gY29uY2F0
X2hvb2tfZnVuY3Rpb24oJ29wdGlvbnNfaWRlbnRpdGllc19idXR0b25zJywgYXJyYXkoJGVtcHR5
LCAkaWQpKTsKKyAgICAkcmV0dXJuX3N0ciAuPSAnICA8L3RkPicgLiAiXG4iOworICAgICRyZXR1
cm5fc3RyIC49ICc8L3RyPicgLiAiXG4iOworICAgICRyZXR1cm5fc3RyIC49ICc8dHI+JyAuICJc
biI7CisgICAgJHJldHVybl9zdHIgLj0gJyAgPHRkIGNvbHNwYW49IjIiPiAmbmJzcDsgPC90ZD4n
IC4gIlxuIjsKKyAgICAkcmV0dXJuX3N0ciAuPSAnPC90cj4nOwoKLSAgICAgICAgJGkgPSAxOwot
ICAgICAgICAkbmFtZSA9ICdmb3JtX2Zvcl8nIC4gJGk7Ci0gICAgICAgIGdsb2JhbCAkJG5hbWU7
Ci0gICAgICAgIHdoaWxlIChpc3NldCgkJG5hbWUpKQotICAgICAgICB7Ci0gICAgICAgICAgICAk
bmFtZSA9ICdkZWxldGVfJyAuICRpOwotICAgICAgICAgICAgZ2xvYmFsICQkbmFtZTsKLSAgICAg
ICAgICAgIGlmIChpc3NldCgkJG5hbWUpKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgICAgICB9CisgICAgcmV0dXJuICRyZXR1cm5fc3RyOwoKLSAgICAgICAgICAgICRp
ICsrOwotICAgICAgICAgICAgJG5hbWUgPSAnZm9ybV9mb3JfJyAuICRpOwotICAgICAgICAgICAg
Z2xvYmFsICQkbmFtZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gQ2hlY2tBbmREb1Byb21vdGUoKSB7Ci0gICAgICAgIGdsb2JhbCAkdXNl
cm5hbWUsICRkYXRhX2RpciwgJGZ1bGxfbmFtZSwgJGVtYWlsX2FkZHJlc3MsICRyZXBseV90bzsK
LQotICAgICAgICAkaSA9IDE7Ci0gICAgICAgICRuYW1lID0gJ2Zvcm1fZm9yXycgLiAkaTsKLSAg
ICAgICAgZ2xvYmFsICQkbmFtZTsKLSAgICAgICAgd2hpbGUgKGlzc2V0KCQkbmFtZSkpIHsKLSAg
ICAgICAgICAgICRuYW1lID0gJ3Byb21vdGVfJyAuICRpOwotICAgICAgICAgICAgZ2xvYmFsICQk
bmFtZTsKLSAgICAgICAgICAgIGlmIChpc3NldCgkJG5hbWUpICYmICRpID4gMSkgewotICAgICAg
ICAgICAgICAgIGRvX2hvb2soJ29wdGlvbnNfaWRlbnRpdGllc19yZW51bWJlcicsICRpLCAkaSAt
IDEpOwoKLSAgICAgICAgICAgICAgICAkbmFtZUEgPSAnZnVsbF9uYW1lJyAuICRpOwotICAgICAg
ICAgICAgICAgICRuYW1lQiA9ICdmdWxsX25hbWUnIC4gKCRpIC0gMSk7Ci0gICAgICAgICAgICAg
ICAgZ2xvYmFsICQkbmFtZUEsICQkbmFtZUI7Ci0gICAgICAgICAgICAgICAgJHRlbXAgPSAkJG5h
bWVBOwotICAgICAgICAgICAgICAgICQkbmFtZUEgPSAkJG5hbWVCOwotICAgICAgICAgICAgICAg
ICQkbmFtZUIgPSAkdGVtcDsKK2Z1bmN0aW9uIHN0aV9pbnB1dCggJHRpdGxlLCAkbmFtZSwgJGRh
dGEsICRiZ2NvbG9yICkgeworICAgICRzdHIgPSAnJzsKKyAgICAkc3RyIC49ICc8dHInIC4gJGJn
Y29sb3IgLiAiPlxuIjsKKyAgICAkc3RyIC49ICcgIDx0ZCBzdHlsZT0id2hpdGUtc3BhY2U6IG5v
d3JhcDt0ZXh0LWFsaWduOnJpZ2h0OyI+JyAuICR0aXRsZSAuICcgPC90ZD4nIC4gIlxuIjsKKyAg
ICAkc3RyIC49ICcgIDx0ZD4gPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IicgLiAkbmFtZSAuICci
IHNpemU9IjUwIiB2YWx1ZT0iJy4gaHRtbHNwZWNpYWxjaGFycygkZGF0YSkgLiAnIj4gPC90ZD4n
IC4gIlxuIjsKKyAgICAkc3RyIC49ICc8L3RyPic7CgotICAgICAgICAgICAgICAgICRuYW1lQSA9
ICdlbWFpbF9hZGRyZXNzJyAuICRpOwotICAgICAgICAgICAgICAgICRuYW1lQiA9ICdlbWFpbF9h
ZGRyZXNzJyAuICgkaSAtIDEpOwotICAgICAgICAgICAgICAgIGdsb2JhbCAkJG5hbWVBLCAkJG5h
bWVCOwotICAgICAgICAgICAgICAgICR0ZW1wID0gJCRuYW1lQTsKLSAgICAgICAgICAgICAgICAk
JG5hbWVBID0gJCRuYW1lQjsKLSAgICAgICAgICAgICAgICAkJG5hbWVCID0gJHRlbXA7CisgICAg
cmV0dXJuICRzdHI7CgotICAgICAgICAgICAgICAgICRuYW1lQSA9ICdyZXBseV90bycgLiAkaTsK
LSAgICAgICAgICAgICAgICAkbmFtZUIgPSAncmVwbHlfdG8nIC4gKCRpIC0gMSk7Ci0gICAgICAg
ICAgICAgICAgZ2xvYmFsICQkbmFtZUEsICQkbmFtZUI7Ci0gICAgICAgICAgICAgICAgJHRlbXAg
PSAkJG5hbWVBOwotICAgICAgICAgICAgICAgICQkbmFtZUEgPSAkJG5hbWVCOwotICAgICAgICAg
ICAgICAgICQkbmFtZUIgPSAkdGVtcDsKLQotICAgICAgICAgICAgJG5hbWVBID0gJ3NpZ25hdHVy
ZScgLiAkaTsKLSAgICAgICAgICAgICRuYW1lQiA9ICdzaWduYXR1cmUnIC4gKCRpIC0gMSk7Ci0g
ICAgICAgICAgICBnbG9iYWwgJCRuYW1lQSwgJCRuYW1lQjsKLSAgICAgICAgICAgICR0ZW1wID0g
JCRuYW1lQTsKLSAgICAgICAgICAgICQkbmFtZUEgPSAkJG5hbWVCOwotICAgICAgICAgICAgJCRu
YW1lQiA9ICR0ZW1wOwotCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAg
ICB9CgotICAgICAgICAgICAgJGkgKys7Ci0gICAgICAgICAgICAkbmFtZSA9ICdmb3JtX2Zvcl8n
IC4gJGk7Ci0gICAgICAgICAgICBnbG9iYWwgJCRuYW1lOwotICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9CitmdW5jdGlvbiBzdGlfdGV4dGFyZWEoICR0aXRsZSwgJG5hbWUs
ICRkYXRhLCAkYmdjb2xvciApIHsKKyAgICAkc3RyID0gJyc7CisgICAgJHN0ciAuPSAnPHRyJyAu
ICRiZ2NvbG9yIC4gIj5cbiI7CisgICAgJHN0ciAuPSAnICA8dGQgc3R5bGU9IndoaXRlLXNwYWNl
OiBub3dyYXA7dGV4dC1hbGlnbjpyaWdodDsiPicgLiAkdGl0bGUgLiAnIDwvdGQ+JyAuICJcbiI7
CisgICAgJHN0ciAuPSAnICA8dGQ+IDx0ZXh0YXJlYSBuYW1lPSInIC4gJG5hbWUgLiAnIiBjb2xz
PSI1MCIgcm93cz0iNSI+Jy4gaHRtbHNwZWNpYWxjaGFycygkZGF0YSkgLiAnPC90ZXh0YXJlYT4g
PC90ZD4nIC4gIlxuIjsKKyAgICAkc3RyIC49ICc8L3RyPic7CgotICAgIGZ1bmN0aW9uIExvYWRJ
bmZvKCYkbiwgJiRlLCAmJHIsICYkcywgJHBvc3QpIHsKLSAgICAgICAgZ2xvYmFsICR1c2VybmFt
ZSwgJGRhdGFfZGlyOwotCi0gICAgICAgICRuID0gZ2V0UHJlZigkZGF0YV9kaXIsICR1c2VybmFt
ZSwgJ2Z1bGxfbmFtZScgLiAkcG9zdCk7Ci0gICAgICAgICRlID0gZ2V0UHJlZigkZGF0YV9kaXIs
ICR1c2VybmFtZSwgJ2VtYWlsX2FkZHJlc3MnIC4gJHBvc3QpOwotICAgICAgICAkciA9IGdldFBy
ZWYoJGRhdGFfZGlyLCAkdXNlcm5hbWUsICdyZXBseV90bycgLiAkcG9zdCk7Ci0gICAgICAgIGlm
ICgkcG9zdCA9PSAnJykKLSAgICAgICAgICAgJHBvc3QgPSAnZyc7Ci0gICAgICAgICRzID0gZ2V0
U2lnKCRkYXRhX2RpciwkdXNlcm5hbWUsJHBvc3QpOwotCi0gICAgICAgIGlmICgkbiAhPSAnJyB8
fCAkZSAhPSAnJyB8fCAkciAhPSAnJyB8fCAkcyAhPSAnJykKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KKyAgICByZXR1cm4gJHN0cjsKCi1mdW5jdGlvbiBzdGlfaW5wdXQoICR0aXRs
ZSwgJGhkLCAkZGF0YSwgJHBvc3QsICRiZyApIHsKLSAgICAkcmV0dXJuX3ZhbCA9IGh0bWxfdGFn
KCAndHInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRtbF90YWcoICd0ZCcsICR0aXRs
ZSAuICc6JywgJ3JpZ2h0JywgJycsICdub3dyYXAnICkgLgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaHRtbF90YWcoICd0ZCcsICc8aW5wdXQgc2l6ZT0iNTAiIHR5cGU9InRleHQiIHZhbHVl
PSInIC4gaHRtbHNwZWNpYWxjaGFycygkZGF0YSkgLiAnIiBuYW1lPSInIC4gJGhkIC4gJHBvc3Qg
LiAnIiAvPicgLCAnbGVmdCcgKSAsCi0gICAgICAgICAgICAgICAgICAgICAgICcnLCAkYmcgKTsK
LSAgICAgcmV0dXJuICgkcmV0dXJuX3ZhbCk7CiB9CgotZnVuY3Rpb24gc3RpX3RleHRhcmVhKCAk
dGl0bGUsICRoZCwgJGRhdGEsICRwb3N0LCAkYmcgKSB7Ci0gICAgJHJldHVybl92YWwgPSBodG1s
X3RhZyggJ3RyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0bWxfdGFnKCAndGQnLCAk
dGl0bGUgLiAnOicsICdyaWdodCcsICcnLCAnbm93cmFwJyApIC4KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGh0bWxfdGFnKCAndGQnLCAnPHRleHRhcmVhIGNvbHM9IjUwIiByb3dzPSI1IiBu
YW1lPSInIC4gJGhkIC4gJHBvc3QgLiAnIj4nIC4gaHRtbHNwZWNpYWxjaGFycygkZGF0YSkgLiAn
PC90ZXh0YXJlYT4nICwgJ2xlZnQnICkgLAotICAgICAgICAgICAgICAgICAgICAgICAnJywgJGJn
ICk7Ci0gICAgIHJldHVybiAoJHJldHVybl92YWwpOwotfQotCi1mdW5jdGlvbiBTaG93VGFibGVJ
bmZvKCRmdWxsX25hbWUsICRlbWFpbF9hZGRyZXNzLCAkcmVwbHlfdG8sICRzaWduYXR1cmUsICRw
b3N0KSB7Ci0gICAgZ2xvYmFsICRjb2xvcjsKLQotICAgICRPdGhlckJHID0gJGNvbG9yWzBdOwot
ICAgIGlmICgkZnVsbF9uYW1lID09ICcnICYmICRlbWFpbF9hZGRyZXNzID09ICcnICYmICRyZXBs
eV90byA9PSAnJyAmJiAkc2lnbmF0dXJlID09ICcnKQotICAgICAgICAkT3RoZXJCRyA9ICcnOwot
Ci0gICAgaWYgKCRmdWxsX25hbWUgPT0gJycgJiYgJGVtYWlsX2FkZHJlc3MgPT0gJycgJiYgJHJl
cGx5X3RvID09ICcnICYmICRzaWduYXR1cmUgPT0gJycpCi0gICAgICAgICRpc0VtcHR5U2VjdGlv
biA9IHRydWU7Ci0gICAgZWxzZQotICAgICAgICAkaXNFbXB0eVNlY3Rpb24gPSBmYWxzZTsKLQot
ICAgICRyZXR1cm5fdmFsID0gJyc7Ci0gICAgJHJldHVybl92YWwgLj0gc3RpX2lucHV0KCBfKCJG
dWxsIE5hbWUiKSwgJ2Z1bGxfbmFtZScsICRmdWxsX25hbWUsICRwb3N0LCAkT3RoZXJCRyApOwot
ICAgICRyZXR1cm5fdmFsIC49IHN0aV9pbnB1dCggXygiRS1NYWlsIEFkZHJlc3MiKSwgJ2VtYWls
X2FkZHJlc3MnLCAkZW1haWxfYWRkcmVzcywgJHBvc3QsICRPdGhlckJHICk7Ci0gICAgJHJldHVy
bl92YWwgLj0gc3RpX2lucHV0KCBfKCJSZXBseSBUbyIpLCAncmVwbHlfdG8nLCAkcmVwbHlfdG8s
ICRwb3N0LCAkT3RoZXJCRyApOwotICAgICRyZXR1cm5fdmFsIC49IHN0aV90ZXh0YXJlYSggXygi
U2lnbmF0dXJlIiksICdzaWduYXR1cmUnLCAkc2lnbmF0dXJlLCAkcG9zdCwgJE90aGVyQkcgKTsK
LQotICAgICRyZXR1cm5fdmFsIC49IGNvbmNhdF9ob29rX2Z1bmN0aW9uKCdvcHRpb25zX2lkZW50
aXRpZXNfdGFibGUnLCBhcnJheSgkT3RoZXJCRywgJGlzRW1wdHlTZWN0aW9uLCAkcG9zdCkpOwot
ICAgICRyZXR1cm5fdmFsIC49IGh0bWxfdGFnKCAndHInLCAnJywgJycsICRPdGhlckJHKTsKLSAg
ICAkcmV0dXJuX3ZhbCAuPSBodG1sX3RhZyggJ3RkJywgJyZuYnNwOycsICdsZWZ0JyApOwotICAg
ICRyZXR1cm5fdmFsIC49IGh0bWxfdGFnKCAndGQnLCAnJywgJ2xlZnQnICk7Ci0gICAgJHJldHVy
bl92YWwgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fZm9yXycuICRwb3N0IC4n
IiB2YWx1ZT0iMSIgLz4nOwotICAgICRyZXR1cm5fdmFsIC49ICc8aW5wdXQgdHlwZT0ic3VibWl0
IiBuYW1lPSJ1cGRhdGUiIHZhbHVlPSInIC4gXygiU2F2ZSAvIFVwZGF0ZSIpIC4gJyIgLz4nOwot
Ci0KLSAgICBpZiAoISAkaXNFbXB0eVNlY3Rpb24gJiYgJHBvc3QgIT0gJycpIHsKLSAgICAgICAg
JHJldHVybl92YWwgLj0gJzxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9Im1ha2VfZGVmYXVsdF8n
IC4gJHBvc3QgLiAnIiB2YWx1ZT0iJy4KLSAgICAgICAgICAgICBfKCJNYWtlIERlZmF1bHQiKSAu
ICciIC8+Jy4KLSAgICAgICAgICAgICAnPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0iZGVsZXRl
XycgLiAkcG9zdCAuICciIHZhbHVlPSInLgotICAgICAgICAgICAgIF8oIkRlbGV0ZSIpIC4gJyIg
Lz4nOwotICAgIH0KLSAgICBpZiAoISAkaXNFbXB0eVNlY3Rpb24gJiYgJHBvc3QgIT0gJycgJiYg
JHBvc3QgPiAxKSB7Ci0gICAgICAgICRyZXR1cm5fdmFsIC49ICc8aW5wdXQgdHlwZT0ic3VibWl0
IiBuYW1lPSJwcm9tb3RlXycgLiAkcG9zdCAuICciIHZhbHVlPSInLgotICAgICAgICAgICAgIF8o
Ik1vdmUgVXAiKSAuICciIC8+JzsKLSAgICB9Ci0gICAgJHJldHVybl92YWwgLj0gY29uY2F0X2hv
b2tfZnVuY3Rpb24oJ29wdGlvbnNfaWRlbnRpdGllc19idXR0b25zJywgYXJyYXkoJGlzRW1wdHlT
ZWN0aW9uLCAkcG9zdCkpOwotICAgICRyZXR1cm5fdmFsIC49ICAnPC90ZD48L3RyPicuCi0gICAg
ICAgICBodG1sX3RhZyggJ3RyJywgaHRtbF90YWcoICd0ZCcsICcmbmJzcDsnLCAnbGVmdCcsICcn
LCAnY29sc3Bhbj0iMiInICkpOwotCi0gICAgcmV0dXJuICgkcmV0dXJuX3ZhbCk7Ci19CiA/Pgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>        

          </attachment>
    </bug>

</bugzilla>