<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>SimpleGPXMap</name>
	<version>0.2</version>
  <mincmsversion>1.2.6</mincmsversion>
	<help>CjxoMz5RdSdlc3QtY2UgcXVlIGNlbGEgZmFpdCA/PC9oMz4KPHA+Q2UgbW9kdWxlIHBlcm1ldCBkJ2ludMOpZ3JlciBkYW5zIHZvdHJlIHNpdGUgYXZlYyBsZXMgbW90ZXVycyBHb29nbGVNYXBzIGV0IEfDqW9wb3J0YWlsLCB2b3MgdHJhY2VzIEdQUy4gUmFwaWRlbWVudCBldCBmYWNpbGVtZW50LCB2b3VzIHBvdXZleiBjb25zdHJ1aXJlIHVuZSBjYXJ0ZSDDoCBwYXJ0aXIgZCd1biBmaWNoaWVyIEdQWC48L3A+CjxoMz5Db21tZW50IHB1aXMtamUgdXRpbGlzZXI8L2gzPgo8cD4oKDEpIFByZW1pw6hyZW1lbnQgdm91cyBkZXZleiBpbnPDqXJlciB2b3RyZSBjbMOpIEFQSSBHb29nbGUgTWFwcyBkYW5zIGxhIHNlY3Rpb24gYWRtaW4sIGV0IGxlcyBwcsOpZsOpcmVuY2VzIGRlIGNvbmZpZ3VyYXRpb24uIExhIGNsZWYgcydvYnRpZW50IGFwcsOocyBpbnNjcmlwdGlvbiDDoCBsJ2FkcmVzc2UgOiBodHRwOi8vd3d3Lmdvb2dsZS5jb20vYXBpcy9tYXBzL3NpZ251cC5odG1sLjwvcD4KPHA+KDIpICkgRW5zdWl0ZSwgdm91cyBkZXZleiBpbnPDqXJlciB2b3RyZSBjbMOpIEFQSSBHw6lvcG9ydGFpbCBkYW5zIGxhIHNlY3Rpb24gYWRtaW4sIGV0IGxlcyBwcsOpZsOpcmVuY2VzIGRlIGNvbmZpZ3VyYXRpb24uIExhIGNsZWYgcydvYnRpZW50IGFwcsOocyBpbnNjcmlwdGlvbiDDoCBsJ2FkcmVzc2UgaHR0cHM6Ly9hcGkuaWduLmZyL0dlb3BvcnRhaWwvcmVnaXN0cmF0aW9uLmRvIC4gClZvdXMgZGV2ZXogc2lnbmVyIHVuIGNvbnRyYXQgcG91ciBhdSBtb2lucyBsZXMgY291Y2hlcyBzdWl2YW50ZXMgOiBjYXJ0ZSBJR04gKFdNU0M6R0VPR1JBUEhJQ0FMR1JJRFNZU1RFTVMuTUFQUykgZXQgY2FydGUgcGhvdG9zIGHDqXJpw6hubmVzIFBIT1RPIE1BUFMgKFdNU0M6T1JUSE9JTUFHRVJZLk9SVEhPUEhPVE9TKTwvcD4KPHA+KDMpIExlcyBmb25kcyBkZSBjYXJ0ZXMgR29vZ2xlTWFwcyBldCBHZW9wb3J0YWlscyBzb250IGFmZmljaMOpcyBkYW5zIGRlcyBvbmdsZXRzIGRpZmbDqXJlbnRzLiBQb3VyIHBlcnNvbm5hbGlzZXIgbGEgbWlzZSBlbiBmb3JtZSBkZSBjZXMgb25nbGV0cywgdm91cyBkZXZleiBpbnTDqWdyZXIgZGFucyB2b3MgZmljaGllcnMgQ1NTIGxlcyBsaWduZXMgc3VpdmFudGVzIDogPC9wPgo8cD48cHJlPgovKiAtLS0tLS0tLS0tLS0gVGFicyBHUFggTWFwcyAtLS0tLS0tLS0tLS0tICovCnVsI3RhYm5hdiB7CiAgICBmb250OiBib2xkIDExcHggdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWY7CiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgICBwYWRkaW5nLWJvdHRvbTogMjhweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNjY2NjY2OwogICAgbWFyZ2luOiAwOwp9CnVsI3RhYm5hdiBsaSB7CiAgICBmbG9hdDogbGVmdDsKICAgIGhlaWdodDogMjFweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGMEYwRjA7OwogICAgbWFyZ2luOiAycHggMnB4IDBweCAycHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjNjY2NjY2OwogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwp9CnVsI3RhYm5hdiBsaS5hY3RpdmUgewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGMEYwRjA7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgY29sb3IgOiAjMzAxRTEyOwogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwp9CiN0YWJuYXYgYSB7CiAgICBmbG9hdDogbGVmdDsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgY29sb3IgOiAjNjY2NjY2OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgcGFkZGluZzogNHB4Owp9CiN0YWJuYXYgbGk6aG92ZXIsICN0YWJuYXYgYTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwp9Ci8qIC0tLS0tLS0tLS0tLSBFbmQgVGFicyBHUFggTWFwcyAtLS0tLS0tLS0tLS0tICovCgo8L3ByZT48L3A+CjxwPig0KSBFbnN1aXRlLCB2b3VzIGRldmV6IGTDqWZpbmlyIHVuZSBvdSBwbHVzaWV1cnMgY2FydGVzIGRhbnMgbCdpbnRlcmZhY2UgYWRtaW4uIE5vdGV6IHF1ZSBjZWxhIGTDqWZpbml0IHNpbXBsZW1lbnQgbGEgbWFuacOocmUgZG9udCBsYSBjYXJ0ZSBzZXJhIGludMOpZ3LDqSBkYW5zIHZvdHJlIHBhZ2UuPC9wPgo8cD4oNSkgRW5maW4sIHBvdXIgaW5jbHVyZSBsYSBjYXJ0ZSBkYW5zIHZvdHJlIHBhZ2UgZGUgY29udGVudSwgw6ljcml2ZXogbGEgbGlnbmUgOjwvcD4KPHA+PHByZT57U2ltcGxlR1BYTWFwIG1hcD0nbXltYXAnIGdweGZpbGU9Jy4vdXBsb2Fkcy95b3VyZ3B4ZmlsZS5ncHgnfTwvcHJlPjwvcD4KPGgzPlV0aWxpc2F0aW9uICBhdmFuY8OpZTwvaDM+CjxwPjxiPk9wdGlvbnMgY29tbXVuZXM8L2I+PC9wPgo8cD48Yj5Ob208L2I+IDogQ2UgY2hhbXAgZMOpZmluaXQgbGUgbm9tIGRlIHZvdHJlIGNhcnRlLjxicj4KPGI+RGVzY3JpcHRpb248L2I+IDogTGEgZGVzY3JpcHRpb24gZGUgdm90cmUgY2FydGU8YnI+CjxiPkxhcmdldXI8L2I+IDogTGEgbGFyZ2V1ciBkZSB2b3MgY2FydGVzIGRhbnMgdm90cmUgcGFnZSBkZSBjb250ZW51LiBMYSBsYXJnZXVyIGRvaXQgw6p0cmUgbWlzIGVuIHBpeGVsLiBOZSBwbGFjZXogcGFzIGwndW5pdMOpLjxicj4KPGI+SGF1dGV1cjwvYj4gOiBMYSBoYXV0ZXVyIGRlIHZvcyBjYXJ0ZXMgZGFucyB2b3RyZSBwYWdlIGRlIGNvbnRlbnUuIExhIGhhdXRldXIgZG9pdCDDqnRyZSBkw6lmaW5pZSBlbiBwaXhlbC4gTmUgcGxhY2V6IHBhcyBsJ3VuaXTDqS48YnI+CjxiPkNvdWxldXIgZGUgbGEgVHJhY2U8L2I+IDogTGEgY291bGV1ciBkb2l0IMOqdHJlIGRvbm7DqWUgZW4gaGV4YWTDqWNpbWFsIChwYXIgZXhlbXBsZSBkZSBsYSB2YWxldXIgIiMwMDAwRkYiKS4gQ2V0dGUgb3B0aW9uIGVzdCBmYWN1bHRhdGl2ZS4gUGFyIGTDqWZhdXQsIGxhIGNvdWxldXIgZXN0IGxhIGNvdWxldXIgcGFyIGTDqWZhdXQgZHUgbW90ZXVyIGRlIGNhcnRlcy48YnI+CjxiPkVwYWlzc2V1ciBkZSBsYSBUcmFjZTwvYj4gOiBsXGVwYWlzc2V1ciBkZSBsYSB0cmFjZSwgY2VsbGUgY2kgZG9pdCDDqnRyZSBkb25uw6llIGVuIHBpeGVsLjxicj4KPGI+TGUgbW90ZXVyIGRlIGNhcnRlIGFmZmljaMOpIHBhciBkw6lmYXV0PC9iPiA6IFZvdXMgYXZleiBsZSBjaG9peCBlbnRyZSBsZXMgdmFsZXVyczogIkdvb2dsZSIgb3UgIkfDqW9wb3J0YWlsIi4gQ2UgY2hhbXAgcGVybWV0IGRlIGTDqWZpbmlyIGxlIG1vdGV1ciBkZSBjYXJ0ZXMgYWZmaWNow6llcyBwYXIgZMOpZmF1dCBkYW5zIHZvdHJlIHBhZ2UgZGUgY29udGVudS4gQXR0ZW50aW9uIGNldHRlIG9wdGlvbiBlc3Qgb2JsaWdhdG9pcmUuPC9wPgo8YnI+CjxwPjxiPk9wdGlvbnMgR2VvUG9ydGFpbHM8L2I+PC9wPgo8cD48Yj5PcGFjaXTDqSBkZSBsYSBjYXJ0ZSBJR048L2I+IDogY2V0dGUgb3B0aW9uIGTDqWZpbml0IGxlIG5pdmVhdSBkJ29wYWNpdMOpIGRlIGxhIGNhcnRlIElHTi4gTGVzIHZhbGV1cnMgYXV0b3Jpc8OpZXMgdm9udCBkZSAwIMOgIDEwLiBBdmVjIGxhIHZhbGV1ciAiMCIsIGxhIGNhcnRlIGVzdCB0b3RhbGVtZW50IHRyYW5zcGFyZW50ZS48L2JyPgo8Yj5PcGFjaXTDqSBkZSBsYSBjYXJ0ZSBwaG90bzwvYj4gOiBjZXR0ZSBvcHRpb24gZMOpZmluaXQgbGUgbml2ZWF1IGQnb3BhY2l0w6kgZGVzIGNhcnRlcyBwaG90byBzYXRlbGxpdGUuIExlcyB2YWxldXJzIGF1dG9yaXPDqWVzIHZvbnQgZGUgMCDDoCAxMC4gQXZlYyBsYSB2YWxldXIgIjAiLCBsYSBjYXJ0ZSBlc3QgdG90YWxlbWVudCB0cmFuc3BhcmVudGUuPC9icj4KPGI+RMOpcGxveWVyIGxlIGNvbnRyw7RsZSBkZSBjb3VjaGU8L2I+IDogbGUgY29udHLDtGxlIGRlIGNvdWNoZSBlc3QgZMOpcGxvecOpLCBzaSBjZXR0ZSBvcHRpb24gZXN0IGNvY2jDqWU8L2JyPgo8Yj5Ew6lwbG95ZXIgbGUgY29udHLDtGxlIGRlIFpvb208L2I+IDogTGUgY29udHLDtGxlIGRlIHpvb20gZXN0IGTDqXBsb3nDqSwgc2kgY2V0dGUgb3B0aW9uIGVzdCBjb2Now6llLi4KPC9wPgo8YnI+CjxwPjxiPk9wdGlvbnMgR29vZ2xlbWFwczwvYj48L3A+CjxwPgo8Yj5DYXJ0ZSBhZmZpY2jDqWU8L2I+IDogRMOpZmluaWUgbGEgY2FydGUgR29vZ2xlIHF1aSBzZXJhIGFmZmljaMOpZSBwYXIgZMOpZmF1dC4gVm91cyBhdmV6IGxlIGNob2l4IGVudHJlIGxlcyBjYXJ0ZXMgc3VpdmFudGVzOiBHX05PUk1BTF9NQVAsIEdfU0FURUxMSVRFX01BUCwgR19IWUJSSURfTUFQLCBHX1BIWVNJQ0FMX01BUC4gUmVtYXJxdWUgOiBwYXIgbGUgY29udHLDtGxlIGRlIGNvdWNoZXMsIHZvdXMgcG91dmV6IG1vZGlmaWVyIGNlIGNob2l4IGRhbnMgdm90cmUgcGFnZSBkZSBjb250ZW51LiA8YnI+CjxiPlRhaWxsZSBkdSBjb250csO0bGUgZGUgem9vbTwvYj4gOiBWb3VzIHBvdXZleiBjaG9pc2lyIGxhIHRhaWxsZSBkdSBjb250csO0bGUgZGUgem9vbTogJ1NtYWxsJyBvdSAnTGFyZ2UnIDxicj4KPGI+T3JpZW50YXRpb24gZHUgY29udHLDtGxlIGRlIGNvdWNoZXM8L2I+IDogVm91cyBwb3V2ZXogY2hvaXNpciBs4oCZb3JpZW50YXRpb24gZHUgY29udHLDtGxlIGRlIGNvdWNoZTogJ3ZlcnRpY2FsJyBvdSAnaG9yaXpvbnRhbCcgPGJyPgo8Yj5BZmZpY2hlciBsJ8OpY2hlbGxlPC9iPiA6IMOgIGTDqWZpbmlyLCBzaSB2b3VzIHZvdWxleiBhZmZpY2hlciB1bmUgw6ljaGVsbGUgc3VyIHZvdHJlIGNhcnRlLgo8YnI+CjxiPkFjdGl2ZXIgZGUgbGEgZm9uY3Rpb24gZGUgem9vbSBwYXIgbGEgc291cmlzPC9iPiA6IHBvdXIgbW9kaWZpZXIgbGUgem9vbSBhdmVjIGxhIG1vbGV0dGUgY2VudHJhbGUgZGUgbGEgc291cmlzLjwvcD4KCjxwPgo8Yj5BZmZpY2hlciBsZXMgcGhvdG9zIHBhbm9yYW1pYTwvYj4gOiBjb2NoZXogY2V0dGUgb3B0aW9uIHBvdXIgYWZmaWNoZXIgbGEgY2FydGUgZGVzIHBob3RvcyBwYW5vcmFtaWEuPGJyPgo8Yj5BZmZpY2hlciBsZXMgbGllbnMgV2lraXBlZGlhPC9iPiA6IGNvY2hleiBjZXR0ZSBvcHRpb24gcG91ciBhZmZpY2hlciBsZXMgbGllbnMgV2lraXDDqWRpYS4KPC9wPgo8cD4KPGI+SWPDtG5lIGR1IHByZW1pZXIgbWFycXVldXI8L2I+IDogY2UgbW9kdWxlIHBlcm1ldCBkZSBkw6lmaW5pciBsJ2ljw7RuZSBkdSBwcmVtaWVyIG1hcnF1ZXVyLiBTaSBhdWN1biBpY8O0bmUgbidlc3QgZMOpZmluaSwgbGUgbWFycXVldXIgcGFyIGTDqWZhdXQgZGUgR29vZ2xlIHNlcmEgdXRpbGlzw6kuIDxicj4KPGI+SWPDtG5lIGR1IGRlcm5pZXIgbWFycXVldXI8L2I+IDogY2UgbW9kdWxlIHBlcm1ldCBkZSBkw6lmaW5pciBsJ2ljw7RuZSBkdSBkZXJuaWVyIG1hcnF1ZXVyLiBTaSBhdWN1biBpY8O0bmUgbidlc3QgZMOpZmluaSwgbGUgbWFycXVldXIgcGFyIGTDqWZhdXQgZGUgR29vZ2xlIHNlcmEgdXRpbGlzw6kuIDxicj4KPGI+SWPDtG5lIGRlcyBtYXJxdWV1cnM8L2I+IDogY2UgbW9kdWxlIHBlcm1ldCBkZSBkw6lmaW5pciBsJ2ljw7RuZSBkZXMgbWFycXVldXJzLiBTaSBhdWN1biBpY8O0bmUgbidlc3QgZMOpZmluaSwgbGUgbWFycXVldXIgcGFyIGTDqWZhdXQgZGUgR29vZ2xlIHNlcmEgdXRpbGlzw6kuPC9wPgo8cD48YnI+ClBvdXIgdG91cyBsZXMgbWFycXVldXJzLCBub3VzIGRldm9ucyBkw6lmaW5pciBsZXMgZG9tYWluZXMgc3VpdmFudHMgOjxicj4gCjxiPkljw7RuZTwvYj4gOiBnaXZlIHRoZSBmdWxsIHBhdGggb2YgdGhlIGljb24gZm9yIHRoZSBtYXJrZXI8YnI+CjxiPk9tYnJlIDwvYj4gOiBnaXZlIHRoZSBmdWxsIHBhdGggb2YgdGhlIHNoYWRvdyBvZiB0aGUgaWNvbiBmb3IgdGhlIG1hcmtlcjxicj4KPGI+TGFyZ2V1ciBkZSBs4oCZaWPDtG5lIDwvYj4gOiBsYSBsYXJnZXVyIGRlIGwnaW1hZ2UsIGRvbm7DqWUgZW4gcGl4ZWxzPGJyPgo8Yj5IYXV0ZXVyIGRlIGzigJlpY8O0bmUgPC9iPiA6IGxhIGhhdXRldXIgZGUgbCdpbWFnZSwgZG9ubsOpZSBlbiBwaXhlbHMuCjwvcD4KPHA+CjxiPkxhcmdldXIgZGUgbCdvbWJyZSBkZSBsJ2ljw7RuZSA8L2I+IDogbGEgbGFyZ2V1ciBkZSBsJ2ltYWdlIGRlIGwnb21icmU7IGRvbm7DqWUgZW4gcGl4ZWxzLjxicj4KPGI+SGF1dGV1ciBkZSBs4oCZb21icmUgZGUgbOKAmWljw7RuZTwvYj4gOiBsYSBoYXV0ZXVyIGRlIGwnaW1hZ2UgZGUgbCdvbWJyZTsgZG9ubsOpZSBlbiBwaXhlbHM8YnI+Cjxicj4KPGI+RMOpY2FsYWdlIHNlbG9uIFggZGUgbCdpY8O0bmUgPC9iPiA6IGxlIGTDqWNhbGFnZSBlbnRyZSBsYSBsb2NhbGlzYXRpb24gZXQgbGUgbWFycXVldXI7IGRvbm7DqWUgZW4gcGl4ZWxzIDxicj4KPGI+RMOpY2FsYWdlIHNlbG9uIFkgZGUgbCdpY8O0bmU8L2I+IDogbGUgZMOpY2FsYWdlIGVudHJlIGxhIGxvY2FsaXNhdGlvbiBldCBsZSBtYXJxdWV1cjsgZG9ubsOpZSBlbiBwaXhlbHMgPGJyPgo8YnI+CjxiPkTDqWNhbGFnZSBzZWxvbiBYIGRlIGxhIGZlbsOqdHJlIGQnaW5mb3JtYXRpb248L2I+IDogbGUgZMOpY2FsYWdlIGVudHJlIGxlcyBmZW7DqnRyZXMgZCdpbmZvcm1hdGlvbnMgZXQgbGUgbWFycXVldXI7IGRvbm7DqWUgZW4gcGl4ZWxzLjxicj4KPGI+RMOpY2FsYWdlIHNlbG9uIFkgZGUgbGEgZmVuw6p0cmUgZCdpbmZvcm1hdGlvbjwvYj4gOiBsZSBkw6ljYWxhZ2UgZW50cmUgbGVzIGZlbsOqdHJlcyBkJ2luZm9ybWF0aW9ucyBldCBsZSBtYXJxdWV1cjsgZG9ubsOpZSBlbiBwaXhlbHMuPGJyPgo8L3A+CjxwPgpCeSBleGFtcGxlIHlvdSBjYW4gdXNlZCB0aGUgZm9sbG93aW5nIHZhbHVlcyA6IAo8L3A+CjxwPjxwcmU+CnN0YXJ0IGljb24JCQltb2R1bGVzL1NpbXBsZUdQWE1hcC9pbWFnZXMvc3RhcnRfZnIucG5nCnN0YXJ0IHNoYWRvdyBpY29uCQltb2R1bGVzL1NpbXBsZUdQWE1hcC9pbWFnZXMvc3RhcnRzaGFkb3dfZnIucG5nCndpZHRoIHN0YXJ0IGljb24JCTg1CmhlaWdodCBzdGFydCBpY29uCQkzNAp3aWR0aCBzaGFkb3cgc3RhcnQgaWNvbgkgCTg1CmhlaWdodCBzaGFkb3cgc3RhcnQgaWNvbgkzNApPZmZzZXQgeCBvZiBzdGFydCBpY29uCSAJMTAKT2Zmc2V0IHkgb2Ygc3RhcnQgaWNvbgkgCTMwCk9mZnNldCB4IG9mIHRoZSBtZXNzYWdlICAJNQpPZmZzZXQgeSBvZiB0aGUgbWVzc2FnZQkgCTEKCmVuZCBpY29uCQkJbW9kdWxlcy9TaW1wbGVHUFhNYXAvaW1hZ2VzL2VuZF9mci5wbmcKZW5kIHNoYWRvdyBpY29uCQkJbW9kdWxlcy9TaW1wbGVHUFhNYXAvaW1hZ2VzL2VuZHNoYWRvd19mci5wbmcKd2lkdGggZW5kIGljb24JCQk5NwpoZWlnaHQgZW5kIGljb24JCQkzNAp3aWR0aCBvZiBzaGFkb3cgZW5kIGljb24JOTcKaGVpZ2h0IHNoYWRvdyBlbmQgaWNvbgkgCTM0Ck9mZnNldCB4IG9mIGVuZCBpY29uCSAJNzUKT2Zmc2V0IHkgb2YgZW5kIGljb24JIAkzMApPZmZzZXQgeCBvZiB0aGUgbWVzc2FnZSAgCTY1Ck9mZnNldCB5IG9mIHRoZSBtZXNzYWdlICAJMQo8L3ByZT48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgoKPGgzPlNlY3VyaXR5PC9oMz4KPHA+VXNlciBtdXN0IGhhdmUgIlVzZSBHUFhNYXBzIiBwZXJtaXNzaW9ucyBzZXQgdG8gZWRpdCBtYXBzPC9wPgo8aDM+UGFyYW0mZWdyYXZlO3RyZXM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbSZlZ3JhdmU7dHJlIHV0aWxpcyZlYWN1dGU7IHBvdXIgc3AmZWFjdXRlO2NpZmllciBkYW5zIHF1ZWxsZSBsYW5ndWUgYWZmaWNoZXIgbGUgbW9kdWxlIGRhbnMgbGEgcGFydGllIHB1YmxpcXVlLiBDZSBwYXJhbSZlZ3JhdmU7dHJlIG4mIzAzOTtlc3QgcGFzIHN1cHBvcnQmZWFjdXRlOyBvdSB1dGlsZSBwb3VyIHRvdXMgbGVzIG1vZHVsZXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBncHhmaWxlPSIiIC0gTGUgY2hlbWluIGxvY2FsIGV0IGNvbXBsZXQgZHUgZmljaGllciBHUFg8L2xpPjxsaT5tYXA9InRlc3QiIC0gU2V0IHdoaWNoIG1hcCB0byBzaG93PC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiB0aXRsZT0iIiAtIFRpdHJlIGRlIGxhIGZlbsOqdHJlIGQnaW5mb3JtYXRpb248L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IHRleHQ9IiIgLSBUZXh0IGRlIGxhIGZlbsOqdHJlIGRcaW5mb3JtYXRpb248L2xpPjwvdWw+</help>
	<about>PGJyIC8+QXV0ZXVyJm5ic3A7OiBNckZNTyAmbHQ7ZmFicmljZS5tb25nZUBmcmVlLmZyJmd0OzxiciAvPjxiciAvPlZlcnNpb24gOiAwLjI8YnIgLz48YnIgLz5IaXN0b3JpcXVlIGRlcyBjaGFuZ2VtZW50cyZuYnNwOzo8YnIgLz4KPHVsPgo8bGk+VmVyc2lvbiAwLjEuIERlY2VtYnJlIDIwMDkuIFZlcnNpb24gaW5pdGlhbGUuPC9saT4KPGxpPlZlcnNpb24gMC4yLiBBdnJpbCAyMDEwLiBpbnRlZ3JhdGlvbiBkZSBHZW9Qb3J0YWlsIDEuMCBmaW5hbCB2ZXJzaW9uLjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4gQXZyaWwgMjAxMC4gQWpvdXQgcG9zc2liaWxpdMOpIGRlIHBlcnNvbmFsaXNhdGlvbiBkZXMgbWFycXVldXIgc291cyBHb29nbGVNYXBzLjwvbGk+CjwvdWw+Cgo8aDM+TWVyY2kgw6AgIDwvaDM+CjxwPlRhdHUgV2lrbWFuIHBvdXIgbGUgc3F1ZWxldHRlIHF1ZSBqJ2FpIHV0aWxpc8OpIHBvdXIgY29uc3RydWlyZSBjZSBtb2R1bGUuPC9wPgo8cD5jYWxndXkxMDAwIHBvdXIgbGUgbW9kdWxlIFNpbXBsZUdvb2dsZU1hcCBxdWkgbSdhIGZvcnRlbWVudCBpbnNwaXLDqSBsb3JzIGRlIGxhIGNvbnN0cnVjdGlvbiBkZSBzZSBtb2R1bGUuPC9wPgo8cD5Sb2JlcnQgQnJvd24gcG91ciBSQ1JVRCBDbGFzcyB1dGlsaXPDqSBkYW5zIGxhIHBhbm5lYXUgZCdhZG1pbmlzdHJhdGlvbjwvcD4KPHA+ZXQgcGFydGljdWxpw6hyZW1lbnQ8L3A+CjxwPk9rdWRhIHBvdXIgbGUgbW9kdWxlIGphdmFzY3JpcHQgcGVybWV0dGFudCBkZSBjaGFyZ2VyIGRlcyBmaWNoaWVyIEdQWCBzb3VzIEdvb2dsZU1hcHMgKGh0dHA6Ly9ub3Rpb25zLm9rdWRhLmNhL2dlb3RhZ2dpbmcvcHJvamVjdHMtaW0td29ya2luZy1vbi9ncHgtdmlld2VyLyk8L3A+CjxiciAvPg==</about>
	<description>Une rapide et simple méthode pour afficher sous GoogleMaps ou GeoPortail un fichier de traces GPX</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_saveprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiAoISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBHUFhNYXBzJykpIGV4aXQoKTsKCmlmIChpc3NldCgkcGFyYW1zWydzdWJtaXRfZ2VuZXJhbCddKSkKICB7CiAgICAkdGhpcy0+U2V0UHJlZmVyZW5jZSgic2dweG1hcF9Hb29nbGVhcGlrZXkiLCBpc3NldCgkcGFyYW1zWydHb29nbGVhcGlrZXknXSkgPyAkcGFyYW1zWydHb29nbGVhcGlrZXknXSA6ICcnICk7CgkkdGhpcy0+U2V0UHJlZmVyZW5jZSgic2dweG1hcF9HZW9Qb3J0YWlsYXBpa2V5IiwgaXNzZXQoJHBhcmFtc1snR2VvUG9ydGFpbGFwaWtleSddKSA/ICRwYXJhbXNbJ0dlb1BvcnRhaWxhcGlrZXknXSA6ICRpZCk7CiAgICBlY2hvICc8ZGl2IGNsYXNzPSJwYWdlbWNvbnRhaW5lciI+PHAgY2xhc3M9InBhZ2VtZXNzYWdlIj4nLiR0aGlzLT5MYW5nKCdzZXR0aW5nc19zYXZlZCcpLic8L3A+PC9kaXY+JzsKICB9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCdkZWZhdWx0YWRtaW4nLCRyZXR1cm5pZCxhcnJheSgnYWN0aXZlX3RhYic9PidzZXR0aW5ncycpKTsKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIERpc3BsYXlNb2R1bGVPdXRwdXQoJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQsICRtZXNzYWdlKQogICBOT1QgUEFSVCBPRiBUSEUgTU9EVUxFIEFQSQogICBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgYSBzaW1wbGUgbWV0aG9kIHRvIGRpc3BsYXkKICAgc29tZXRoaW5nIHdoZXJlIGEgcGFnZSBvciB0ZW1wbGF0ZSBoYXMgYSB0YWcgY2FsbGluZwogICB0aGlzIG1vZHVsZS4KICAgCiAgIE5vdGUgdGhhdCBpdCB1c2VzIGEgdGVtcGxhdGUsIGFuZCBpcyB0aHVzIHZlcnkgcG93ZXJmdWwsCiAgIGV2ZW4gaWYgaXQncyBzaW1wbGUuCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCQkvLyBWZXJpZmljYXRpb24gZGVzIHBhcmFtw6h0cmVzCgkJI0F2b2lkIGZsb2F0IHByb2JsZW0gaW4gbG9jYWxlCgkJJGN1cnJlbnRMb2NhbGUgPSBzZXRsb2NhbGUoTENfQUxMLCAwKTsKCQlzZXRsb2NhbGUoTENfQUxMLCAnZW5fVVMnKTsKCgkJJG1hcCA9ICcnOwoJCWlmKCFpc3NldCgkcGFyYW1zWydtYXAnXSkpCgkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywkdGhpcy0+TGFuZygnbWlzc2luZ19wYXJhbScpKTsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwoJCQlyZXR1cm47CgkJfQoJCSRtYXAgPSAkcGFyYW1zWydtYXAnXTsKCgoJCSRncHhmaWxlID0gJyc7CgkJaWYoIWlzc2V0KCRwYXJhbXNbJ2dweGZpbGUnXSkpCgkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywkdGhpcy0+TGFuZygnbWlzc2luZ19wYXJhbScpKTsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwoJCQlyZXR1cm47CgkJfSBlbHNlICB7CgkJCSRncHhmaWxlID0gJHBhcmFtc1snZ3B4ZmlsZSddOwoJCQkvLyBvbiBuZSB2ZXJpZmllIHBhcyBxdWUgbGUgZmljaGllciBHUFggZXhpc3RlIHN1ciBsZSBzaXRlCgkJfQoKCQkkdGl0bGUgPSAnJzsKCQlpZiggaXNzZXQoJHBhcmFtc1sndGl0bGUnXSkgKQoJCXsKCQkJJHRpdGxlID0gJHBhcmFtc1sndGl0bGUnXTsKCQl9CgoJCSR0ZXh0ID0gJyc7CgkJaWYoIGlzc2V0KCRwYXJhbXNbJ3RleHQnXSkgKQoJCXsKCQkJJHRleHQgPSAkcGFyYW1zWyd0ZXh0J107CgkJfQoKCQkvLyBvbiB2ZXJpZmllIHF1J2lsIHkgYSBhdSBtb2lucyB1biBhcGlrZXkKCQlpZigoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NncHhtYXBfR29vZ2xlYXBpa2V5JykgPT0gJycpKQoJCXsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywgJHRoaXMtPkxhbmcoJ25va2V5JykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQlyZXR1cm47CgkJfQoJCQoJCQoJCS8vIHJlY2hlcmNoZSBkdSBNYXAgcG91ciB0cm91dmVyIGV0IGFmZmljaGVyIGxhIGZpcm1NYXBzIHBhciBkZWZhdXQgKEdvb2dsZSBvdSBHZW9Qb3J0YWlsKQoJCSRkYj0mJHRoaXMtPkdldERiKCk7CgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi4gY21zX2RiX3ByZWZpeCgpIC4ibW9kdWxlX1NpbXBsZUdQWE1hcF9tYXBzIFdIRVJFIG5hbWUgTElLRSAnJG1hcCcgTElNSVQgMSI7CgkJJG1hcF9kYXRhID0gYXJyYXkoKTsKCQkkZGJyZXN1bHQgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJaWYoJGRicmVzdWx0KSB7CgkJJG1hcF9kYXRhID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJCX0KCgkJaWYoIWlzc2V0KCRtYXBfZGF0YVsnbWFwX2lkJ10pKSB7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsICR0aGlzLT5MYW5nKCdub21hcCcpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CgkJcmV0dXJuOwoJCX0KCQkKCQkKCQkvL3JlY3VwZXJhdGlvbiBkZSBsYSBmaXJtIHBhciBkZWZhdXQKCQkkRmlybSA9IGlzc2V0KCRtYXBfZGF0YVsnZmlybXNlbGVjdGVkJ10pPyRtYXBfZGF0YVsnZmlybXNlbGVjdGVkJ106J0dPT0dMRSc7CgkJJHBhcmFtZXRyZWZvcmNlID0gJF9HRVRbJ3NncHhtYXBfZm9yY2VmaXJtJ107CgkJaWYgKCgkcGFyYW1ldHJlZm9yY2UgPT0gJ0dPT0dMRScpIHx8ICgkcGFyYW1ldHJlZm9yY2UgPT0gJ0dlb1BvcnRhaWwnKSkgJEZpcm0gPSAkcGFyYW1ldHJlZm9yY2U7CgkJc3dpdGNoICgkRmlybSkgewoJCQljYXNlICdHZW9Qb3J0YWlsJzoKCQkJICBlY2hvICR0aGlzLT5Db25zdHJ1Y3REaXZNYXBzR2VvUG9ydGFpbCgkcGFyYW1zKTsKCQkJICBicmVhazsKCQkJZGVmYXVsdDoKCQkJICBlY2hvICR0aGlzLT5Db25zdHJ1Y3REaXZNYXBzR29vZ2xlKCRwYXJhbXMpOyAvLyBHb29nbGUgcGFyIGTDqWZhdXQKCQkJICBicmVhazsKCQl9CQkKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokdGhpcy0+QWRtaW5TdHlsZSgnaDMge2NvbG9yOnJlZH0nKTsKCgovLyBUYWJzCmlmIChGQUxTRSA9PSBlbXB0eSgkcGFyYW1zWydhY3RpdmVfdGFiJ10pKQp7CiAgJHRhYiA9ICRwYXJhbXNbJ2FjdGl2ZV90YWInXTsKfSBlbHNlIHsgCiAgJHRhYiA9ICdtYXBzJzsKfQoKaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ1VzZSBHUFhNYXBzJykpCnsKICAvL3RhYnMgIAogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOwogIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignbWFwcycsJHRoaXMtPkxhbmcoJ21hcHMnKSwgKCdtYXBzJyA9PSAkdGFiKT90cnVlOmZhbHNlKTsKICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3NldHRpbmdzJywkdGhpcy0+TGFuZygnc2V0dGluZ3MnKSwgKCdzZXR0aW5ncycgPT0gJHRhYik/dHJ1ZTpmYWxzZSk7CiAgZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwogIC8vZW5kIHRhYnMKCiAgLy9UaGUgY29udGVudCBvZiB0aGUgdGFicwogIGVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOwogIAogIC8vIG1hcHMgdGFiCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ21hcHMnLCAkcGFyYW1zKTsKCiAgcmVxdWlyZV9vbmNlICggJ2xpYi9yY3J1ZC5pbmMucGhwJyApOwogICRjbyA9IG5ldyByY3J1ZCggJGRiICwgY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfU2ltcGxlR1BYTWFwX21hcHMnICk7CiAgLy9zZXR0aW5ncyBmb3IgcmNydWQKICAkY28tPmhlYWRlciA9ICR0aGlzLT5MYW5nKCd5b3VyX21hcHMnKTsKCiAgLy9maWVsZCBzZXR0aW5ncwogICRjby0+ZmllbGRzWydtYXBfaWQnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCdtYXBfaWQnKTsKICAvLyRjby0+ZmllbGRzWydtYXBfaWQnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNjb21tb24nKTsKICAkY28tPmZpZWxkc1snbmFtZSddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfbmFtZScpOwogIC8vJGNvLT5maWVsZHNbJ25hbWUnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNjb21tb24nKTsKICAkY28tPmZpZWxkc1snY2FydGVieWRlZmF1bHQnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X2NhcnRlYnlkZWZhdWx0Jyk7CiAgJGNvLT5maWVsZHNbJ2NhcnRlYnlkZWZhdWx0J11bJ2ZpZWxkX3R5cGUnXSA9ICJyYWRpb3xHX05PUk1BTF9NQVB8R19TQVRFTExJVEVfTUFQfEdfSFlCUklEX01BUHxHX1BIWVNJQ0FMX01BUCI7CiAgJGNvLT5maWVsZHNbJ2NhcnRlYnlkZWZhdWx0J11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOyAKICAkY28tPmZpZWxkc1snd2lkdGgnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X3dpZHRoJyk7CiAgLy8kY28tPmZpZWxkc1snd2lkdGgnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNjb21tb24nKTsKICAkY28tPmZpZWxkc1snaGVpZ2h0J11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9oZWlnaHQnKTsKICAvLyRjby0+ZmllbGRzWydoZWlnaHQnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNjb21tb24nKTsKICAkY28tPmZpZWxkc1sndHJhY2Vjb2xvciddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfdHJhY2Vjb2xvcicpOwogIC8vJGNvLT5maWVsZHNbJ3RyYWNlY29sb3InXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNjb21tb24nKTsKICAkY28tPmZpZWxkc1sndHJhY2V3aWR0aCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfdHJhY2V3aWR0aCcpOwogIC8vJGNvLT5maWVsZHNbJ3RyYWNld2lkdGgnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNjb21tb24nKTsKICAkY28tPmZpZWxkc1snZGVzY3JpcHRpb24nXVsnZmllbGRfdHlwZSddID0gJ3RleHRhcmVhJzsKICAkY28tPmZpZWxkc1snZGVzY3JpcHRpb24nXVsnZmllbGRfaGVpZ2h0J10gPSA1OwogICRjby0+ZmllbGRzWydkZXNjcmlwdGlvbiddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZGVzY3JpcHRpb24nKTsKICAvLyRjby0+ZmllbGRzWydkZXNjcmlwdGlvbiddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2NvbW1vbicpOwogICRjby0+ZmllbGRzWydmaXJtc2VsZWN0ZWQnXVsnZmllbGRfdHlwZSddID0gInJhZGlvfEdPT0dMRXxHZW9Qb3J0YWlsIjsKICAkY28tPmZpZWxkc1snZmlybXNlbGVjdGVkJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9maXJtc2VsZWN0ZWQnKTsKICAvLyRjby0+ZmllbGRzWydmaXJtc2VsZWN0ZWQnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNjb21tb24nKTsKICAKICAkY28tPmZpZWxkc1snc21hbGxjb250cm9sJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9zbWFsbGNvbnRyb2wnKTsKICAkY28tPmZpZWxkc1snc21hbGxjb250cm9sJ11bJ2ZpZWxkX3R5cGUnXSA9ICJyYWRpb3xTbWFsbHxMYXJnZSI7CiAgJGNvLT5maWVsZHNbJ3NtYWxsY29udHJvbCddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dvb2dsZW1hcHMnKTsKICAkY28tPmZpZWxkc1snaG9yaXpvbnRhbGNvbnRyb2wnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X2hvcml6b250YWxjb250cm9sJyk7CiAgJGNvLT5maWVsZHNbJ2hvcml6b250YWxjb250cm9sJ11bJ2ZpZWxkX3R5cGUnXSA9ICAicmFkaW98VmVydGljYWx8SG9yaXpvbnRhbCI7CiAgJGNvLT5maWVsZHNbJ2hvcml6b250YWxjb250cm9sJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICRjby0+ZmllbGRzWydlY2hlbGxlY29udHJvbCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZWNoZWxsZWNvbnRyb2wnKTsKICAkY28tPmZpZWxkc1snZWNoZWxsZWNvbnRyb2wnXVsnZmllbGRfdHlwZSddID0gImNoZWNrYm94X29uIjsgCiAgJGNvLT5maWVsZHNbJ2VjaGVsbGVjb250cm9sJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOyAKICAkY28tPmZpZWxkc1snem9vbWVuYWJsZSddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3Rfem9vbWVuYWJsZScpOwogICRjby0+ZmllbGRzWyd6b29tZW5hYmxlJ11bJ2ZpZWxkX3R5cGUnXSA9ICJjaGVja2JveF9vbiI7CiAgJGNvLT5maWVsZHNbJ3pvb21lbmFibGUnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgCiAgJGNvLT5maWVsZHNbJ29wYWNpdHlpZ24nXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X29wYWNpdHlpZ24nKTsKICAkY28tPmZpZWxkc1snb3BhY2l0eWlnbiddWydmaWVsZF90eXBlJ10gPSAic2VsZWN0fHJhbmdlfDB8MTAiOwogICRjby0+ZmllbGRzWydvcGFjaXR5aWduJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ2VvcG9ydGFpbCcpOwogICRjby0+ZmllbGRzWydvcGFjaXR5cGhvdG8nXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X29wYWNpdHlwaG90bycpOwogICRjby0+ZmllbGRzWydvcGFjaXR5cGhvdG8nXVsnZmllbGRfdHlwZSddID0gInNlbGVjdHxyYW5nZXwwfDEwIjsKICAkY28tPmZpZWxkc1snb3BhY2l0eXBob3RvJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ2VvcG9ydGFpbCcpOwoKICAkY28tPmZpZWxkc1snZXhwYW5kbGF5ZXJzY29udHJvbCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZXhwYW5kbGF5ZXJzY29udHJvbCcpOwogICRjby0+ZmllbGRzWydleHBhbmRsYXllcnNjb250cm9sJ11bJ2ZpZWxkX3R5cGUnXSA9ICJjaGVja2JveCI7CiAgJGNvLT5maWVsZHNbJ2V4cGFuZGxheWVyc2NvbnRyb2wnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnZW9wb3J0YWlsJyk7CiAgJGNvLT5maWVsZHNbJ2V4cGFuZHRvb2xjb250cm9sJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9leHBhbmR0b29sY29udHJvbCcpOwogICRjby0+ZmllbGRzWydleHBhbmR0b29sY29udHJvbCddWydmaWVsZF90eXBlJ10gPSAiY2hlY2tib3hfb24iOwogICRjby0+ZmllbGRzWydleHBhbmR0b29sY29udHJvbCddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dlb3BvcnRhaWwnKTsKCiAgJGNvLT5maWVsZHNbJ3Nob3dwaG90b3Bhbm9yYW1pYSddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3Rfc2hvd3Bob3RvcGFub3JhbWlhJyk7CiAgJGNvLT5maWVsZHNbJ3Nob3dwaG90b3Bhbm9yYW1pYSddWydmaWVsZF90eXBlJ10gPSAiY2hlY2tib3giOwogICRjby0+ZmllbGRzWydzaG93cGhvdG9wYW5vcmFtaWEnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgJGNvLT5maWVsZHNbJ3Nob3d3aWtpcGVkaWEnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X3Nob3d3aWtpcGVkaWEnKTsKICAkY28tPmZpZWxkc1snc2hvd3dpa2lwZWRpYSddWydmaWVsZF90eXBlJ10gPSAiY2hlY2tib3giOwogICRjby0+ZmllbGRzWydzaG93d2lraXBlZGlhJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogIAogICRjby0+ZmllbGRzWydzdGFydGljb25pbWFnZSddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3Rfc3RhcnRpY29uaW1hZ2UnKTsKICAkY28tPmZpZWxkc1snc3RhcnRpY29uaW1hZ2UnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgJGNvLT5maWVsZHNbJ3N0YXJ0aWNvbnNoYWRvdyddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3Rfc3RhcnRpY29uc2hhZG93Jyk7CiAgJGNvLT5maWVsZHNbJ3N0YXJ0aWNvbnNoYWRvdyddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dvb2dsZW1hcHMnKTsKICAkY28tPmZpZWxkc1snc3RhcnRpY29uaXN3aWR0aCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3Rfc3RhcnRpY29uaXN3aWR0aCcpOwogICRjby0+ZmllbGRzWydzdGFydGljb25pc3dpZHRoJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICRjby0+ZmllbGRzWydzdGFydGljb25pc2hlaWdoJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9zdGFydGljb25pc2hlaWdoJyk7CiAgJGNvLT5maWVsZHNbJ3N0YXJ0aWNvbmlzaGVpZ2gnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgJGNvLT5maWVsZHNbJ3N0YXJ0aWNvbnNzd2lkdGgnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X3N0YXJ0aWNvbnNzd2lkdGgnKTsKICAkY28tPmZpZWxkc1snc3RhcnRpY29uc3N3aWR0aCddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dvb2dsZW1hcHMnKTsKICAkY28tPmZpZWxkc1snc3RhcnRpY29uc3NoZWlnaCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3Rfc3RhcnRpY29uc3NoZWlnaCcpOwogICRjby0+ZmllbGRzWydzdGFydGljb25zc2hlaWdoJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICRjby0+ZmllbGRzWydzdGFydGljb25pYWxlZnQnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X3N0YXJ0aWNvbmlhbGVmdCcpOwogICRjby0+ZmllbGRzWydzdGFydGljb25pYWxlZnQnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgJGNvLT5maWVsZHNbJ3N0YXJ0aWNvbmlhdG9wJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9zdGFydGljb25pYXRvcCcpOwogICRjby0+ZmllbGRzWydzdGFydGljb25pYXRvcCddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dvb2dsZW1hcHMnKTsKICAkY28tPmZpZWxkc1snc3RhcnRpY29uaXdhbGVmdCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3Rfc3RhcnRpY29uaXdhbGVmdCcpOwogICRjby0+ZmllbGRzWydzdGFydGljb25pd2FsZWZ0J11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICRjby0+ZmllbGRzWydzdGFydGljb25pd2F0b3AnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X3N0YXJ0aWNvbml3YXRvcCcpOwogICRjby0+ZmllbGRzWydzdGFydGljb25pd2F0b3AnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAKICAkY28tPmZpZWxkc1snZW5kaWNvbmltYWdlJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9lbmRpY29uaW1hZ2UnKTsKICAkY28tPmZpZWxkc1snZW5kaWNvbmltYWdlJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICRjby0+ZmllbGRzWydlbmRpY29uc2hhZG93J11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9lbmRpY29uc2hhZG93Jyk7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25zaGFkb3cnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25pc3dpZHRoJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9lbmRpY29uaXN3aWR0aCcpOwogICRjby0+ZmllbGRzWydlbmRpY29uaXN3aWR0aCddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dvb2dsZW1hcHMnKTsKICAkY28tPmZpZWxkc1snZW5kaWNvbmlzaGVpZ2gnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X2VuZGljb25pc2hlaWdoJyk7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25pc2hlaWdoJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICRjby0+ZmllbGRzWydlbmRpY29uc3N3aWR0aCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZW5kaWNvbnNzd2lkdGgnKTsKICAkY28tPmZpZWxkc1snZW5kaWNvbnNzd2lkdGgnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25zc2hlaWdoJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9lbmRpY29uc3NoZWlnaCcpOwogICRjby0+ZmllbGRzWydlbmRpY29uc3NoZWlnaCddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dvb2dsZW1hcHMnKTsKICAkY28tPmZpZWxkc1snZW5kaWNvbmlhbGVmdCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZW5kaWNvbmlhbGVmdCcpOwogICRjby0+ZmllbGRzWydlbmRpY29uaWFsZWZ0J11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICRjby0+ZmllbGRzWydlbmRpY29uaWF0b3AnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X2VuZGljb25pYXRvcCcpOwogICRjby0+ZmllbGRzWydlbmRpY29uaWF0b3AnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25pd2FsZWZ0J11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9lbmRpY29uaXdhbGVmdCcpOwogICRjby0+ZmllbGRzWydlbmRpY29uaXdhbGVmdCddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dvb2dsZW1hcHMnKTsKICAkY28tPmZpZWxkc1snZW5kaWNvbml3YXRvcCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZW5kaWNvbml3YXRvcCcpOwogICRjby0+ZmllbGRzWydlbmRpY29uaXdhdG9wJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogIAogICAgICAKICAkY28tPmZpZWxkc1snZGVmYXVsdGljb25pbWFnZSddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZGVmYXVsdGljb25pbWFnZScpOwogICRjby0+ZmllbGRzWydkZWZhdWx0aWNvbmltYWdlJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICRjby0+ZmllbGRzWydkZWZhdWx0aWNvbnNoYWRvdyddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZGVmYXVsdGljb25zaGFkb3cnKTsKICAkY28tPmZpZWxkc1snZGVmYXVsdGljb25zaGFkb3cnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaXN3aWR0aCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZGVmYXVsdGljb25pc3dpZHRoJyk7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaXN3aWR0aCddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dvb2dsZW1hcHMnKTsKICAkY28tPmZpZWxkc1snZGVmYXVsdGljb25pc2hlaWdoJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9kZWZhdWx0aWNvbmlzaGVpZ2gnKTsKICAkY28tPmZpZWxkc1snZGVmYXVsdGljb25pc2hlaWdoJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICRjby0+ZmllbGRzWydkZWZhdWx0aWNvbnNzd2lkdGgnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X2RlZmF1bHRpY29uc3N3aWR0aCcpOwogICRjby0+ZmllbGRzWydkZWZhdWx0aWNvbnNzd2lkdGgnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uc3NoZWlnaCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZGVmYXVsdGljb25zc2hlaWdoJyk7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uc3NoZWlnaCddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dvb2dsZW1hcHMnKTsKICAkY28tPmZpZWxkc1snZGVmYXVsdGljb25pYWxlZnQnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X2RlZmF1bHRpY29uaWFsZWZ0Jyk7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaWFsZWZ0J11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICRjby0+ZmllbGRzWydkZWZhdWx0aWNvbmlhdG9wJ11bJ2xhYmVsJ10gPSAkdGhpcy0+TGFuZygndF9kZWZhdWx0aWNvbmlhdG9wJyk7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaWF0b3AnXVsnZ3JvdXAnXSA9ICR0aGlzLT5MYW5nKCd0X29wdGlvbnNnb29nbGVtYXBzJyk7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaXdhbGVmdCddWydsYWJlbCddID0gJHRoaXMtPkxhbmcoJ3RfZGVmYXVsdGljb25pd2FsZWZ0Jyk7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaXdhbGVmdCddWydncm91cCddID0gJHRoaXMtPkxhbmcoJ3Rfb3B0aW9uc2dvb2dsZW1hcHMnKTsKICAkY28tPmZpZWxkc1snZGVmYXVsdGljb25pd2F0b3AnXVsnbGFiZWwnXSA9ICR0aGlzLT5MYW5nKCd0X2RlZmF1bHRpY29uaXdhdG9wJyk7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaXdhdG9wJ11bJ2dyb3VwJ10gPSAkdGhpcy0+TGFuZygndF9vcHRpb25zZ29vZ2xlbWFwcycpOwogICAgCiAgLy9saXN0IHZpc2liaWxpdHkgCiAgJGNvLT5maWVsZHNbJ21hcF9pZCddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydvd25lcl9pZCddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydkZXNjcmlwdGlvbiddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydoZWlnaHQnXVsndmlzaWJsZV9pbl9saXN0J10gPSB0cnVlOwogICRjby0+ZmllbGRzWyd3aWR0aCddWyd2aXNpYmxlX2luX2xpc3QnXSA9IHRydWU7CiAgJGNvLT5maWVsZHNbJ3RyYWNlY29sb3InXVsndmlzaWJsZV9pbl9saXN0J10gPSB0cnVlOwogICRjby0+ZmllbGRzWyd0cmFjZXdpZHRoJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gdHJ1ZTsKICAkY28tPmZpZWxkc1snY2FydGVieWRlZmF1bHQnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snZmlybXNlbGVjdGVkJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gdHJ1ZTsKICAKICAkY28tPmZpZWxkc1snc21hbGxjb250cm9sJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2hvcml6b250YWxjb250cm9sJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2VjaGVsbGVjb250cm9sJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ3pvb21lbmFibGUnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snb3BhY2l0eWlnbiddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydvcGFjaXR5cGhvdG8nXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snZXhwYW5kbGF5ZXJzY29udHJvbCddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydleHBhbmR0b29sY29udHJvbCddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogIAogICRjby0+ZmllbGRzWydzaG93cGhvdG9wYW5vcmFtaWEnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snc2hvd3dpa2lwZWRpYSddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogIAogICRjby0+ZmllbGRzWydzdGFydGljb25pbWFnZSddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydzdGFydGljb25zaGFkb3cnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snc3RhcnRpY29uaXN3aWR0aCddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydzdGFydGljb25pc2hlaWdoJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ3N0YXJ0aWNvbnNzd2lkdGgnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snc3RhcnRpY29uc3NoZWlnaCddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydzdGFydGljb25pYWxlZnQnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snc3RhcnRpY29uaWF0b3AnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snc3RhcnRpY29uaXdhbGVmdCddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydzdGFydGljb25pd2F0b3AnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKCiAgJGNvLT5maWVsZHNbJ2VuZGljb25pbWFnZSddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydlbmRpY29uc2hhZG93J11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25pc3dpZHRoJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25pc2hlaWdoJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25zc3dpZHRoJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25zc2hlaWdoJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25pYWxlZnQnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snZW5kaWNvbmlhdG9wJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25pd2FsZWZ0J11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2VuZGljb25pd2F0b3AnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKCiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaW1hZ2UnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snZGVmYXVsdGljb25zaGFkb3cnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snZGVmYXVsdGljb25pc3dpZHRoJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaXNoZWlnaCddWyd2aXNpYmxlX2luX2xpc3QnXSA9IGZhbHNlOwogICRjby0+ZmllbGRzWydkZWZhdWx0aWNvbnNzd2lkdGgnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snZGVmYXVsdGljb25zc2hlaWdoJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaWFsZWZ0J11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaWF0b3AnXVsndmlzaWJsZV9pbl9saXN0J10gPSBmYWxzZTsKICAkY28tPmZpZWxkc1snZGVmYXVsdGljb25pd2FsZWZ0J11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CiAgJGNvLT5maWVsZHNbJ2RlZmF1bHRpY29uaXdhdG9wJ11bJ3Zpc2libGVfaW5fbGlzdCddID0gZmFsc2U7CgogIC8vcHJpbnQgaXQhCiAgJGNvLT5nbygpOwogIGVjaG8gJHRoaXMtPkVuZFRhYigpOwogIC8vZW5kIG1hcHMgdGFiCgogIC8vU2V0dGluZ3MgdGFiCiAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3NldHRpbmdzJywgJHBhcmFtcyk7CiAgewogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX3NldHRpbmdzLnBocCcpOwogIH0KICBlY2hvICR0aGlzLT5FbmRUYWIoKTsKICAvL0VORCBTZXR0aW5ncyB0YWIKCiAgZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOyAgCn0gIAo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/function.admin_settings.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCmlmKCAhaXNzZXQoJGdDbXMpICkgcmV0dXJuOwoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnYWRtaW5fc2F2ZXByZWZzJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9nZW5lcmFsc2V0dGluZ3MnLCR0aGlzLT5MYW5nKCdnZW5lcmFsX3NldHRpbmdzJykpOwoKJHNtYXJ0eS0+YXNzaWduKCdsYmxfR29vZ2xlYXBpa2V5JywkdGhpcy0+TGFuZygnR29vZ2xlYXBpa2V5JykpOwokc21hcnR5LT5hc3NpZ24oJ0dvb2dsZWFwaWtleScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdHb29nbGVhcGlrZXknLCAKCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgic2dweG1hcF9Hb29nbGVhcGlrZXkiLCAxKSw1MCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdsYmxfR2VvUG9ydGFpbGFwaWtleScsJHRoaXMtPkxhbmcoJ0dlb1BvcnRhaWxhcGlrZXknKSk7ICAgIAokc21hcnR5LT5hc3NpZ24oJ0dlb1BvcnRhaWxhcGlrZXknLCAKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ0dlb1BvcnRhaWxhcGlrZXknLCAKCQkJCSAgICAgICAkdGhpcy0+R2V0UHJlZmVyZW5jZSgic2dweG1hcF9HZW9Qb3J0YWlsYXBpa2V5IiwgMSksCgkJCQkgICAgICAgMjApKTsKCiRzbWFydHktPmFzc2lnbignc3VibWl0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0X2dlbmVyYWwnLCAKCQkJCQkgJHRoaXMtPkxhbmcoJ1N1Ym1pdCcpKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdzZXR0aW5ncy50cGwnKTsKCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/arrive.xcf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/color_s.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABYAAAAUCAYAAACJfM0wAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAFGSURBVHja7JVNS8NAEIYz6cZWREGUeijqQQT//0/w4F306qmK2lK/P6ppsr4j78ggTWoDuRl4uk3ZfWZ2dpJKjDFp40qTlq5/cfvi0GSRiPx85Rh/d1dYUpQ6obgpEXPUHC2ILOpjSvWjQ3GHmNyEBZhxLMMfhTovAz3QBSv8TQOVFL6DV44x1EhTLlbZumMNrFJu4il4ALdgXJdxyoUbYBv0wRaFPZdtwjJ8MuAHeNRAYU62tn2V7oNdsEmh1VmctCSJq3Gsyjhjpntgx23bhCYrWFMtw5ClqKxxdHK/bXGnn7Ouz+AGXIKJHh66rJjbx989KKI1uwcvLIM4oZ78iBnegSfwZsJFD8iM0imzzHl/BS6Ynd7nVc9BXVdkPGkNcg3OOep2y6bvCt36ARiAM3CiLbXMv02V+AgcgmPITpu8qL4EGABojnfTJp5Z9QAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/end_en.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAGEAAAAiCAYAAABPyrdhAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oEDhUVOoF6GicAAAOoSURBVGje7Zo9j9RGGMd/45cDHYSNQkWipAokSJa2QwpKieAjwBfwNPkEUZImCkXSQJFq/CnSpKKmSBMtcoKEKBAnhISIRBAvB+v1pNhnpIlZL7vYPhvwXzrtnu+xZ/z853mZ/xyM6B1qCJPI81kA2CH7KUmm5aBJ8JyoAPfd1ji2aluusR3SYnU/br6tEaNaIEB5zo2AHW/CtmY8ZxsDT2psh0aCBQrgJbBwf0iSqe2VBC8CQmCidfoT8Jk42Na8iIqiKCqK4iRwGPhz4AQ4FMCeMdll4AEwbytVRQ0nZmVVH9M6/dWY7CvguFyrJX4+n+/EcRwIMV8PyNF/r7jmHPwMOKp1+osx2Q/AXSFmEJEQa51eNSZ7BJyTSNiV6FDVMRaLRRSGIR5RT+tsBwJXrxbAv8ANrdM7xmTfA48kJfUaCYHUgE+Bj4WAD+W5Kx0aBEH1+u5Anb+KjBj4UqJjV0hpjKiFZwQyuWMysWhdOlJKrbr/bWnnY+BIpQGxfZNgvVW846WVTqB1+r/fjcm2uncb+zVEhJVWu79I8Doj602q87TSgiPbrKMWsHk+C5rUhahhFHDQJGwTIdXrHW5wbS+R0Bd8x/pRUef4jgkhSabW27C+HyRsmo5aqgEHgoARveOdSUerIqarFFRpUFSfJKjKZ9m1BlTn9FW1ocNOytb44o3f/Y3TkbRk6iBJGNDO2Xd+0FS2aFoTfIl3X/SVd5mIUt61wJOzh1AT5iwVxQ+Az2XnXKsdWWtVRbooeXu0o33gHrDHUnjsbOOx7a45AE5onV4xJjsKfCH6SlUZDYWcsCiKKIoiN/7DNbarInUhK7GL48bAW0CltwG1LA9z9rRObxqT/Qz8BbyghfOEpiS4+w8Dp7ROvwMmNS83AT4BJkqpyFrrXvbaOtsKESVL5fKefJYtEzABTsj3Z8Zk92VBxUChdfrcmOxblgdRT/wNW2/pyBv8OTDL89nFDWxf29pt8lJttIYrECbJtJDnn9c6/caY7CTwkUTs7xIBT9vqjBpHQsUZKkmmZZ7PYl49vHepxk87payw/RrbYI1O08U/B7gxD3njHNE6/c2Y7LTW6W1jsgvAY1o+Y25cmEU7CViqiSEVYU8m6fQVl2fdsejL19jSJFq2Lbx5PrMsjzEdXgC3JTUqSUGlv+h6L8wbFG27DYkD7Youap3+eP36H6dGgaVHnD175p88n13q6vmjgLcZJkA+ktAvQuDW6IYRI0aMGDHiPcB/jpheZAOM2iYAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/end_fr.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAGEAAAAiCAYAAABPyrdhAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oEDhUUE9rTswoAAAPaSURBVGje7Zo7r9xEFMd/ft1EN4+FUAUEFQkgGW0XiShlRD5C+AKeBr4AAhoEBTRQUI2/AR0NFXUKKNBGTiJFURTlKoqEQASUx03W66HYM9LIrPdxPYt9L/5LK+96z87j/M/LZxYGdI6gD4soikkImD7rKU3HVa9JcJQYAPa9aVBsXbZaItsnY7Uvu15vxAQeCAgc5cbAjrNg0zCflU2Axw2yfSPBACXwApjZL9J0bDolwfGACBgplX0BvCEKNg0bCeI4jsuyPAccB37tOQEWJbCndf4l8Bsw9RWq4pYLM2LVp5XKvtM6fw94Re41Ej+dTneSJAmFmEs9UvTNBfesgp8CJ5XKvtY6/wy4L8T0whMSpbJvtc4fAZfFE3bFO4L6HLPZLI6iCIeoJ02yPYHNVzPgL+C6Utk9rfNPgUcSkjr1hFBywOvAq0LASzLuQoWGYVi/v9tT5S8iIwHeFu/YFVJaI/YwRiiLOy0Li5eFoyAIFv3+sJTzCXCiVoAYHwpsax1WqztOWPEOpbKtyG84biB7dEttOiPBqYyMM9bWCNA630hhWude5RryqAEq0UUn4cjUrlsjYZUF1wmyn93rMkLr368gKFiii85ywtaVbZVRV2pdSZtatZWvE9V0fxHSdGycB9ajSUJbrPIKH/mnD9XRfxp6fBPkKU8cfRLWsd51vWFZXtkgL7gFSus8eOABnIrglFLZ91rnLwPvAscOycPXQYuRP5XKftE6/wi4i4eO6oFLK5nUbTVUHI5GnA8iXCMO27YtQg+eZFu8+9JfOcpEVLLXEqed3YecMGXeUTwFvClPzo29I2NMUGtdVIeod7QPPAD2mDcevfVDDgzJCyFwVqnsG63zk8Bb0l+pd0YjIScqyzKO49jO//sS2UWeOhNL3MZxY+gYUOU8gBrmhzl7SmW3tM6/Am4Az/FwntCWBPv748B5pbJPgFHD5kbAa8AoCILYGGM3+9My2RoRFfPO5QO5Vp4JGAFn5f1TrfOHYlAJUCqVPdM6/5j5QdRj94Gts3DkTP4MmBTF5OoasitLu3U25aM0XIAoTceljP++UtmHWufngDPisT+KBzxZkBe78YSaMoI0HVdFMUn49+G9DTVu2KnEwvYbZMMlfZpt/DnAznnMmeeEUtkPWufvKJXd0Tq/AvyN5zPm1olZeichYIpiElFr7MkibX/Fxll7LPpihSxtvGXTxFsUE8P8GNPiOXBHQmMgIahyja7zxLxG0jabkNjTquiqUtnn1679fJ4B3eHixQt/FMXkg22NHw4qXgsjoBhI6BYRcHtQw4ABAwYMGPA/wD+N+ZQMaKFAZgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhIAAgAOZ/APb9/vnKy/l4e8je8svo/q/E24aRsf/PBZy72JCMlra2tmaQ56u5zPWKj//0nX97jdza29bs/fyyBen+//lXWvuVCIpCRaiZmYgxNekMDebm5shXbXhucJRwmf/TeO4uL4UKB//5rsi3uHdOUWcnJ5zI/cDBwpdpcJOgtfbKRqidxONzfvC1c6hOBtj0/4s3RfeiplBq0//XNKnK5ZOz8HIYF9nHcc+AkaoMCquHrlJJTal6ga1DTe1ibLZdc7/c941Zb6+vr/hOU1E1Nb/U6GQrWs1leMsVFLxuC5hBOhEWF4swC/+qJuXv+vuxtf/setfk8J6ZynsvFNSKEe9UXemkrLfM4aTW/qUqKqw5E9+qHeqstDo5lvmprsDl/1MbHtHPz+yzucMtK7mhocPS24ogH8pvDv/eArIeKvpgYvreXtrCmrRsQPzuxc2qod3Sw1xAOMFADO2Xn86UomNjZW9dYugdHvzv75/B3q3O7Jesw3MZO36Tg5VPA32o7uzs7CH5BAEAAH8ALAAAAAAgACAAAAf/gH+Cg4SFhoeIiYqLjI2Oj4huNWWUGJaXL5mZFpwnYItJIEVGPT0rKw1yclWsW1thYQFzLxeKNSBcDz49VFSlAqkwXV1OTgF3ATxAn4IiYxCCGLh+BkAbFL29v8EwAd43L2MaO0lZFp8nogt4erpUQkK9FBRpAsDDxl0vGGxvTHEjIIwBsScGAgR4DJzYAA8elXn07AEzkkWLgyYsKpRJAIZSDDwHZ+Dp4ONdQ4hphHxA0yJFiCc2GLCIU0dDKC4lQOKZkQfFjg1AgxoxsgEHkich1Bw4YANIDQ5/0hXx8wMBChR69BhIgOLBAwNfO0ix6EDGgTMHWnyhE+TPwBcL/wjksYqgQAErRKwUGGBlRMuXZs9oWTKEgwkNfyDUwBLDy48Zdu8SITIgQgELR5OePTOlhg6OhCyUAXKFwA8GVw3oGUAgwRItIcoulaCWLWJCO0AAoUHAMd7JBDj0UZNUgoQDU6QMeXDYkAgQPPz0/lGAAREXeqR4CJHCuAQkni9AOwShDBYDXkxXtxJBhxsPTCrIXwJkB4fxhzSI7lCaQIQIEyRwAgAZVWAGBg8QIcIIzCCyAw4+lBABAZMVoAQfbazBxhJfJECGFRCMYIIiz/FAw4QDDKCDEkrAAUcdD6DAABRNAABELYloUIYYOfgXgRU60MEVA2TQCMCRAIzBwYVtiACBRQ5e/DcAFP9BYSSSR4bY4CEX4GDEFS6EOcGYZE6AJQB3WNBWIiaA8IEPKsQpZ5xR1GlnFFTwkACThkCAgRgZBCrooBnYYaihH/DwAJ+GpIPDo48eIamkhyL6QQ2LKgLGCCR06umnoHaqQxCM9mmCAqimqqqqQQRhAn6QxCorJIEAADs=]]></data>
	</file>
	<file>
	  <filename>/images/markerTransparent.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABQAAAAiCAYAAABfqvm9AAAABGdBTUEAAK/INwWK6QAAALtJREFUSMftlcEOgDAIQ0u/fJ/uxYPigOI0XjwQE7M9CxTEGANFmIv0fAbhHnZ4lvBMER00AqdAE1T5YASMDpsYEtAC1VEZMEu1UkYFyORC9hH/Doo6duoLVxc2G8MZcKWzl2yU7rLjgGjUVPuktqmgFBp2sg1vTItXfHv0qIwemp3mbOMoC3WW3rFE8oKtVLG7sRUryUCo++9TILqwLjDsbAeIyncrwKUf/avAywJYBUKtXwcowX7gM8ANcVX949bbqs4AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/redA.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAwAAAAUCAYAAAC58NwRAAAABGdBTUEAAK/INwWK6QAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjMwQIRHEAAAAbhJREFUOE+VkjlIA1EQhjcmQU3QxPs2BhMwhREjHmxiiDkgHojGs7ARGzGFKJYiWGhjIYhBQbDQylYRsYmFIDaCWGinhSJiKYJg8zvzsusRPOKDn92d+b9h3sxqpK9Hps9hkk0JX9Nzh3Sc5JM0FFghIVungz+nAEGSWacHx0jrJO1nKMaJiTIrHuQwEOgTenS3Y7K8WoU2VMDL5mipFQgNAv4IVu1O2DONuCcAoSFMfUAhhmJGrRa3MiXJDF8PPKZcoZkKG9AWwYOnE6ZEe9yatC+b8hJtkPmozi2qq0+OIdAPH92JvQzsurLM79XHii2i+oLVIcDtmgZRrIVi5N1jYDGN7nDeFBQJNnErDDDcm1+Ky+YQ9BoNA0sMOEgv4dwixOtbMVZiEa2x7uleDHTkFbL5leRUJxXlSY0WV4p+VYDfx2l6yi6mk5c3z4llWy0QHBDgJvWvmEUr3504b/qO5v/s7UZZegYDZyT9T0AzV5yrcmCjxqVW7/rJrMYPLRkGOAxZDFyQ+D/79YwofTMw+5eZ8xZlhAw0pgLQHqUb0hMpOxWAPaekq1TN7DsgnfwHWCPz1nfAG2vXyqVBRlLBAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/redD.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAwAAAAUCAYAAAC58NwRAAAABGdBTUEAAK/INwWK6QAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjMwQIRHEAAAAbRJREFUOE9jZEAFVkBuBBCrQIXvAemVQHwYTR0DI1BgEhD/52Nh+e8kKPrfBYgFWFj/g8SAeAYQMyNrmgqSyJJW/P/CyuP/f+dgMH5l7fk/X0YZpmk2TIMdSHG2lOL//65h/1U5ueE4UEQKKBb+vxChyRWkaSo3M/P/x1ae//87BYEVnzF2+P/fIeB/soT8/2RJ+f8vbLz/80OcB3Iaw1YrfmGIM4CKkDWANNrwCwHlQv47AP0EUgvSsMmIVwBsOrqG/frWUA3B/y2AGoFqN4M0tDEB/XDBzAVsC8iGxRrGYGeBTG9V0v5/zdz1PysjI0hDN0iDJhB/9xAS//8PaEugiCRYIVixohbQ5uD/fiISIMW/gFgPFlLZoJBKlJADuxfkNDAGsjOAoQeNiyL0yGsESfSr6P7/7xIKVjwP6DSoYrBTsIF9oJh+AoywL3Z+/6XZOUAazgIxKy4N5iAT6xQ0/8/WMIKZ7oNLMUx8pzwH139NLl6QhktADEpneEEM1N0gDTWEFIPk5aFBCNJgSowGYDwy3AfiT0DMR4wGkJoTQHydWMUgdduB+BgpGqYDFS/CpgEAa+DIdUtg2coAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/images/shadowend_en.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAGEAAAAiCAYAAABPyrdhAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oEDhUUKoXWOwIAAANlSURBVGje7ZlrTxNBFIaf7W4RuQnITSOKyP//Q0YiYkUQKNDKpbYdv7ybHCe7vdBmOzVzksmSZdudOc8575w5hWjRokWLFi1atGjRgrLkP1+PixCmO89khDkngQFwJde5gZA7vgakQKZrOgIINyNn+/f6QA/oavSLnk0Cdn4K1IFFYMmMupcZ9jOJgWBHVdFu39UH/gD3QAtoA09FILIAAeTOXwLWgA1gG3gNrAIvCrLBZo2Nwioyom/e5cy9rgBcAt/NPRcqhNyJmSL/lRz/VmNPEFaABTm7LBMshCpkyHkgcghPQBM4EYymgqfrf0kWEIA6sAxsAe+AA2AfeANsCoCfBcmIUlEFCCtLXeC3YNSHBUYWAICanLsG7AIfgCNd95QVS2ZjDrWYyCH0lAUtgWgCN8BjmUTOEkJe9bwE1iU7hwLwHtgRmAXNMwm8mrMZ8QBcAQ3tB1e61wsFQpn8fNLYl/4vl+h/yNZTxF8Dp8AxcKas6JTJYzZD+VmR/BzI+YfKhg1lxzxEv38m6Eh6GgJwqix4HFStZRUDSFX95PLz0dP/NW/znRcATgBawE/gq8aFKqPuoCIhqxBApgjflORY/d8uKT/dnAE4l/OPBaOlA9vAdWQVS9C6ABx5+r+o5/KUTUpOoWX9JAqed8+c67C9zD+L5JXQhZz/WTJ0XXZCnhUEK0NbZuNNVDV0TV/IZkLf9F98qLUSp/RNPe4mdLydf+rNMS9Fb5UBJ8AXgchlqDfKHKqUo5qZ/J3+vjH1f+Yt0pnml11MWgDMecB6I/aNig59ziuja6aHtayRSYKawA/gm2SooTZF2zTsJo6CaZ0HMh24NjRWtKjURFqNf7ukFoKVqfz7aqZXZLOmW9DLGVViiiCkRkp3tX8tKAMacv4p8MscykYGUFUm5M580MTaxol+9zM1zinqydhGXTKkmTaOHJVBSEwA7Uh+OvrfuYn+K8lPx5PDoCDkbd38MFMmCYM22kEbMpS3lMdVA1fQVFxV9K9qDW3J0Jkk6bGsQxoKBL+v0htDFt2YEjrtktYvle8F4FLyc6vs6E3y7ioPa25Kzqvy7GD3IKdS9E4QWkZ+JppTaD/qhGb2l7o8C251nQoAzEYYbXAmIKe3vQ3YTesl0YZDsGXzszfgaNGiRQvc/gL53zOA21pxxwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/shadowend_fr.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAGEAAAAiCAYAAABPyrdhAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oEDhUUKoXWOwIAAANlSURBVGje7ZlrTxNBFIaf7W4RuQnITSOKyP//Q0YiYkUQKNDKpbYdv7ybHCe7vdBmOzVzksmSZdudOc8575w5hWjRokWLFi1atGjRgrLkP1+PixCmO89khDkngQFwJde5gZA7vgakQKZrOgIINyNn+/f6QA/oavSLnk0Cdn4K1IFFYMmMupcZ9jOJgWBHVdFu39UH/gD3QAtoA09FILIAAeTOXwLWgA1gG3gNrAIvCrLBZo2Nwioyom/e5cy9rgBcAt/NPRcqhNyJmSL/lRz/VmNPEFaABTm7LBMshCpkyHkgcghPQBM4EYymgqfrf0kWEIA6sAxsAe+AA2AfeANsCoCfBcmIUlEFCCtLXeC3YNSHBUYWAICanLsG7AIfgCNd95QVS2ZjDrWYyCH0lAUtgWgCN8BjmUTOEkJe9bwE1iU7hwLwHtgRmAXNMwm8mrMZ8QBcAQ3tB1e61wsFQpn8fNLYl/4vl+h/yNZTxF8Dp8AxcKas6JTJYzZD+VmR/BzI+YfKhg1lxzxEv38m6Eh6GgJwqix4HFStZRUDSFX95PLz0dP/NW/znRcATgBawE/gq8aFKqPuoCIhqxBApgjflORY/d8uKT/dnAE4l/OPBaOlA9vAdWQVS9C6ABx5+r+o5/KUTUpOoWX9JAqed8+c67C9zD+L5JXQhZz/WTJ0XXZCnhUEK0NbZuNNVDV0TV/IZkLf9F98qLUSp/RNPe4mdLydf+rNMS9Fb5UBJ8AXgchlqDfKHKqUo5qZ/J3+vjH1f+Yt0pnml11MWgDMecB6I/aNig59ziuja6aHtayRSYKawA/gm2SooTZF2zTsJo6CaZ0HMh24NjRWtKjURFqNf7ukFoKVqfz7aqZXZLOmW9DLGVViiiCkRkp3tX8tKAMacv4p8MscykYGUFUm5M580MTaxol+9zM1zinqydhGXTKkmTaOHJVBSEwA7Uh+OvrfuYn+K8lPx5PDoCDkbd38MFMmCYM22kEbMpS3lMdVA1fQVFxV9K9qDW3J0Jkk6bGsQxoKBL+v0htDFt2YEjrtktYvle8F4FLyc6vs6E3y7ioPa25Kzqvy7GD3IKdS9E4QWkZ+JppTaD/qhGb2l7o8C251nQoAzEYYbXAmIKe3vQ3YTesl0YZDsGXzszfgaNGiRQvc/gL53zOA21pxxwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/shadowstart_en.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAFUAAAAiCAYAAAAu0pUjAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oEDhUNHNFsB4MAAAL4SURBVGje7ZjrctowEEY/+VIcoElDmxKSvv+jtUmboQkXpwFb6p9PM1uNbYhvmKl2RgMYJ8jHZ1daAz58+PDhw4cPHz4ahvLzqRVm6BehSl6HDtSUAY5ODDLgCDmCE0JVzm+bEiNzjoyvJzfVTjzgDf0AYAQg4ftYnNO3wVVQjQC6A5AC2AD4Q7jmVKZKmBcAJgA+Arjk6wXBBg7IvuwNBFjjDAt0D2AN4Mmx9p8yEPVoZ0hoUwAzAF8AfAZwzWOjAlNVgUFdz1MVANWE90qgGYAXAlZ9m2onGdPEKwBfASwAzAl3QqBRgaV9lyhVsiBppn1AmBa06XuhknZOaOUtgHsCvebxWCxYQ9ydGJH6OwBbGirraeemynRPaOcN7bzn+yuaGw98K2VhZUz9F6b/by5WWdEfRR0ADQhrTBvnhLlgHbX1Mxz4vtQamAF4A7AC8ItjxWO6y/S3YEICmxLgwkn3sUj3c+iebC21K/4jgGWVpW1BleluF6M5gDuOG26bEv6ewnl0TZp1NGW6/yTYDUGXNQeNoVpAES2cCTvv+HnKxSo8tnceENAtzXzkeGZt1VXX0Iap1tAZYX4j2E8EHXASukWgqqQLkml7qGMq65q0WJiWAB4AfBeWZoeuIWp4YXbLdMk0v+XWKeE2ZMvztDN500J2yG4rcCxzTVJi26YEPF2w38zFwvQE4AfBPjPtdVdQZdpPaOWMZmpOYM+7arsR05KtEqh8CCOhSFjKeXCjnBZTOx2U5h50TVOXBPx6jKVNTbUrve3fR7zDGxqa8vNeTNY0NLXK0kOmhhVGuy3pnhBTAt4JMdAFVLdTsl1Ryru65kg5ubykdrX5/FUdUV5kTS071zgW5wXzbxWqKgCa8LsV7+bGeSSWtwizqn1VNf+/OXC81tzVO8+NmOZjAo353Y7pIlNF47yjtgTRO4Da9jMhWEWQb6J2Zi1vnc4yohpWG1ErrZkeZo30l89FbauZO3Xzv4dZt6bKLYzuaBHy4cOHj3ONv3/qFqqfRhnEAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/shadowstart_fr.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAFUAAAAiCAYAAAAu0pUjAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oEDhUNHNFsB4MAAAL4SURBVGje7ZjrctowEEY/+VIcoElDmxKSvv+jtUmboQkXpwFb6p9PM1uNbYhvmKl2RgMYJ8jHZ1daAz58+PDhw4cPHz4ahvLzqRVm6BehSl6HDtSUAY5ODDLgCDmCE0JVzm+bEiNzjoyvJzfVTjzgDf0AYAQg4ftYnNO3wVVQjQC6A5AC2AD4Q7jmVKZKmBcAJgA+Arjk6wXBBg7IvuwNBFjjDAt0D2AN4Mmx9p8yEPVoZ0hoUwAzAF8AfAZwzWOjAlNVgUFdz1MVANWE90qgGYAXAlZ9m2onGdPEKwBfASwAzAl3QqBRgaV9lyhVsiBppn1AmBa06XuhknZOaOUtgHsCvebxWCxYQ9ydGJH6OwBbGirraeemynRPaOcN7bzn+yuaGw98K2VhZUz9F6b/by5WWdEfRR0ADQhrTBvnhLlgHbX1Mxz4vtQamAF4A7AC8ItjxWO6y/S3YEICmxLgwkn3sUj3c+iebC21K/4jgGWVpW1BleluF6M5gDuOG26bEv6ewnl0TZp1NGW6/yTYDUGXNQeNoVpAES2cCTvv+HnKxSo8tnceENAtzXzkeGZt1VXX0Iap1tAZYX4j2E8EHXASukWgqqQLkml7qGMq65q0WJiWAB4AfBeWZoeuIWp4YXbLdMk0v+XWKeE2ZMvztDN500J2yG4rcCxzTVJi26YEPF2w38zFwvQE4AfBPjPtdVdQZdpPaOWMZmpOYM+7arsR05KtEqh8CCOhSFjKeXCjnBZTOx2U5h50TVOXBPx6jKVNTbUrve3fR7zDGxqa8vNeTNY0NLXK0kOmhhVGuy3pnhBTAt4JMdAFVLdTsl1Ryru65kg5ubykdrX5/FUdUV5kTS071zgW5wXzbxWqKgCa8LsV7+bGeSSWtwizqn1VNf+/OXC81tzVO8+NmOZjAo353Y7pIlNF47yjtgTRO4Da9jMhWEWQb6J2Zi1vnc4yohpWG1ErrZkeZo30l89FbauZO3Xzv4dZt6bKLYzuaBHy4cOHj3ONv3/qFqqfRhnEAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/start.xcf</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/start_en.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAFUAAAAiCAYAAAAu0pUjAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oEDhUQE76/dg4AAAOgSURBVGje7Zq/btNAGMB/Z7sVLRUtokICBGJgQMgi6sLQmYmFlRfwLSwMdEAgFooY0ic48wI8AognYKsUQBSmAmJqpRbKn8b2MfSMDtd2ktpJE8nfkuj82b773ffvvgQaqV3EIMqdzroD6HFej++3krGFagEUQPpdjztUa76JNf+kRFfYunVsiigAao+7wDTgGf1xh6qBOaALRBZQXaCrgX1b1/dbulaoGRefAs5KGTwELhqwkxDSloDfnud9jKIosiw2D2wEbCoVPgJ2gLiqxeZB0ta1i1IGT5QKY+AkMGuuOTn3XRsjsLOA7na756empvZ7eFcCbEkZLCgV3jVgk2FYKsCClMGqUuFl4Dowb0KBGDTBjUhSV04NACCJ4xjXdaMS3Z/AJvDagL0HdOu2VGHt9iXgKrBoQoGYAPfX1jxdx3GKPCvVnbY8Lc0fcRVr9UosOE1OJw1QZxLLRCFEWZUjzBpngdPArzrWWbaDjpX9h26hKyv3WVm5f1yb4FoWW7nCcXLiaZJ56EiAtttrtNtrh8aP+rwjgHXseGvllsrur6ueuuoEbQPPwrI3IA+ifd9RoFaZ+6GY6vstnSn+RwoxBdFurx0CkwXZ77VRy1gU8/0COaaYO5lQB4m7kwDY63HuH6nr90pig4A8zhDgFTQZeiWvobl/2XhVvR4HhiTTvTry2p1MkkrMmBgl1DE5hf0HtcoxtawWi00HJ6raYJgAoDHw26xVVy0jyxLVHvAZOMdBf3Jmgs7+/4xFa40QQpfoRqYz9QX4zkEftvbsnxa/u0qFz6UMzigVTnPQT5224m4aKvQQrdkxc3RzriXmvXFO52kR0FEU4XleZHldnu4e8EHK4IRS4QMOGta1t/7ssTlgScrgmVLhjFlgF9iTMjhnGhEJ8I0a+pA5QOeBC+bTyQDdAb4WvPcmoIUQkdY66qELsKNU+BTYMGGgUve/qPWnrRDwFngH3DIWsC1l8EapcNX3W6/MRniWFdQm/SysrATM3j+Ibq2WmvNyFzglZfBSqfCKlMF7pcLbBniq9yenEVPH3ERONZLN2PZZPb3nhPEoJ+PqebqO77e69s9IVQF7RbtmvSQBfpgJ7AKfgO2sG9W50yk0s7lJP9ZsdNPMvW/F+n/PKNDVnc66a3SG92tqkSwv39hQKnwMvBjTzC98v5X0eSo8/v8IdDrrd5aXb2zRSKXi/xBXk4UbqRHqRkG92EgjjTTSSCONTJL8BV4+lnH7nhMwAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/images/start_fr.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAFUAAAAiCAYAAAAu0pUjAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oEDhUMEbbGSn8AAAO3SURBVGje7Zq9btRKGIafsZ2IBAQcgY4ECERBgZDFKg1Faiqa054b8DQ0FFAgEA0gis0VjLkBLgHEFdBFWkAnUPGjUwUpnBN+sraHIuNocGzHi2cXr+RPWu1q5vXOzPv9zrcLvTgXMQl4NFr3AN3l84ThIOssqRaBAsg/666Tau03s/af1WCFjXWhFFFBqD3uA4tAYPBdJ1UDR4AxkFiE6gqsBnZsbBgOtFNSCy6+APwpZXQHOGuInYeQtgJ8C4LgTZIkiWWxZcQmwDul4rvAFpC2tdgykrQ1d1bK6L5ScQocBpbNnFfy3KUOEbsM6PF4fHphYWHnAO/KgE0po+NKxdcNsdk0LBXguJTRA6Xi88Bl4JgJBWLSBDcjyV05NwCALE1TfN9ParBfgHfAc0PsDWDs2lKFpe1zwEXgpAkFYg7cX1v79D3Pq/KsHLtoeVqeP9I21hrUWHCenA4bQr15LBOFEHVVjjBnXAb+AL66OGedBj0r+zuz0Fu3bu696jAzVoJvWWzrCscriadZ4Uudu/xwuMZwuFZJ7nC45nS9BkoSFhca0FZuae3+uu2ta1Jy7QPbn21ii6Tkc03x+ViNsvaR2uZc+2JqGA50ofifqdiE2SQ0IbIM34BQ59K5Yn6SeDrj2Du/pDa1qKL1dYng4IB7/9StsUjiJHF1UqueVQgIKpoMByWvqVjipHNV+OJ4AzK1VezbN8ZfOrtXSFKZGRPTIrXDt7CfSG1zTa2rxVLTwUnaNhhmFWdbEJoC38xZddsysi5RbQPvgVPs9ieX5ujuv2csWmuEELoGm5jO1AfgP3b7sM6zf178flYqfixldEKpeJHdfuqiFXfzUKGnaM2e2aNfMpeZddOSztNJQCdJQhAEieV1Zdht4B8po0NKxbfZbVg7b/3ZY0eAFSmjR0rFS+aAY2BbyuiUaURkwL846EOWEHoMOGPevQKhW8DHinWvAloIkWitkwOwAFtKxQ+BDRMGWnX/q1p/2goBL4FXwDVjAZ+kjF4oFT8Iw8Ezo4jAsgJn0uRgdSVg8flJsE4ttWRxHzgqZfRUqfiClNFrpeK/DOE57ntJI8bF3kRJNVLM2PZdPX/mkPEor+DqZVgvDAdj+2ektgQHVVqzFsmA/80GPgNvgU9FN3Kp6Zw0o9ysiTUbbJ65d6xYv/cdFVg9Gq37BjO9X1OrZHX1yoZS8T3gSUczvwjDQdbwVvj7/yMwGq3/vbp6ZZNeWhX/+3g1WbgXh6RuVNSLvfTSSy+99NLLPMkPcWmkE5FLuVoAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2hlbHBfcGFyYW1fZ3B4ZmlsZSddID0gJ1RoZSBmdWxsIHBhdGggb2YgdGhlIGxvY2FsIGZpbGUgaW4gYSBmb3JtYXQgR1BYJzsKJGxhbmdbJ21pc3NpbmdfcGFyYW0nXSA9ICdPbmUgb3IgbW9yZSByZXF1aXJlZCBwYXJhbWV0ZXJzIGFyZSBtaXNzaW5nJzsKJGxhbmdbJ2hlbHBfcGFyYW1fbWFwJ10gPSAnVGhlIG1hcCBkZWZpbml0aW9uIHRoYXQgaG9sZHMgdGhlIHBhcmFtZXRlcnMgYW5kIHNldHRpbmdzIGZvciB0aGUgbWFwJzsKJGxhbmdbJ2hlbHBfcGFyYW1fdGl0bGUnXSA9ICdUaGUgdGl0bGUgb2YgdGhlIHBvcHVwIGJhbGxvbic7CiRsYW5nWydoZWxwX3BhcmFtX3RleHQnXSA9ICdUZXh0IGZvciB0aGUgaW5zaWRlIG9mIHRoZSBwb3B1cCc7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdTaW1wbGUgR1BYIE1hcCc7CiRsYW5nWydtb2RkZXNjcmlwdGlvbiddID0gJ0EgcXVpY2sgYW5kIGVhc3kgd2F5IHRvIGdlbmVyYXRlIGEgZ29vZ2xlIG9yIEdlb1BvcnRhaWwgbWFwIGZyb20gYSBHUFggRmlsZSc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1BsZWFzZSBwcm92aWRlIEdvb2dsZU1hcHMgYXBpIGtleSBvdSBHZW9QT3J0YWlsIGFwaSBrZXkhIFVzaW5nIEdQWE1hcHMgcmVxdWlyZXMgIlVzZSBHUFhNYXBzIiByaWdodHMnOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ0J5ZSBieWUnOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1JlYWxseSB1bmluc3RhbGw/IEFsbCBkYXRhIHdpbGwgYmUgbG9zdCc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjZXNzIERlbmllZC4gUGxlYXNlIGNoZWNrIHlvdXIgcGVybWlzc2lvbnMuJzsKJGxhbmdbJ2Vycm9yJ10gPSAnRXJyb3IhJzsKJGxhbmdbJ3VwZ3JhZGVkJ10gPSAnTW9kdWxlIHVwZ3JhZGVkIHRvIHZlcnNpb24gJXMuJzsKJGxhbmdbJ3RpdGxlX21vZF9wcmVmcyddID0gJ01vZHVsZSBQcmVmZXJlbmNlcyc7CiRsYW5nWyd0aXRsZV9tb2RfYWRtaW4nXSA9ICdNb2R1bGUgQWRtaW4gUGFuZWwnOwokbGFuZ1sndGl0bGVfYWRtaW5fcGFuZWwnXSA9ICdHb29nbGVNYXBzIG9yIEdlb1BvcnRhaWwgTW9kdWxlJzsKJGxhbmdbJ3NldHRpbmdzJ10gPSAnU2V0dGluZ3MnOwokbGFuZ1snbWFwcyddID0gJ01hcHMnOwokbGFuZ1sneW91cl9tYXBzJ10gPSAnTWFwcyc7CiRsYW5nWydtYXBfaWQnXSA9ICdNYXAgSUQnOwokbGFuZ1snc2V0dGluZ3Nfc2F2ZWQnXSA9ICdTZXR0aW5ncyBzYXZlZCc7CiRsYW5nWydHb29nbGVhcGlrZXknXSA9ICdHb29nbGVNYXBzIGFwaWtleSc7CiRsYW5nWydHZW9Qb3J0YWlsYXBpa2V5J10gPSAnR2VvcG9ydGFpbCBhcGlrZXknOwoKCgoKJGxhbmdbJ25va2V5J10gPSAnR29vZ2xlTWFwcyBvciBHZW9Qb3J0YWlsIGFwaWtleSBtaXNzaW5nIGluIGNvbmZpZ3VyYXRpb24nOwokbGFuZ1snbm9tYXAnXSA9ICdObyBtYXAgcHJvdmlkZWQnOwokbGFuZ1sncXVlcnlfYWRkcmVzcyddID0gJ0FkcmVzcyBsb29rdXAnOwokbGFuZ1snYWRkcmVzc19sb29rdXAnXSA9ICdTZWFyY2ggbG9jYXRpb24gZm9yIGFkZHJlc3MnOwokbGFuZ1snU3VibWl0J10gPSAnU3VibWl0JzsKJGxhbmdbJ2xvY2F0aW9uX2ZvciddID0gJ0xvY2F0aW9uIGZvcic7CiRsYW5nWydpcyddID0gJ2lzJzsKJGxhbmdbJ2dlbmVyYWxfc2V0dGluZ3MnXSA9ICdHZW5lcmFsIFNldHRpbmdzJzsKJGxhbmdbJ2NoYW5nZWxvZyddID0gJwo8dWw+CjxsaT5WZXJzaW9uIDAuMS4gRGVjZW1icmUgMjAwOS4gSW5pdGlhbCBSZWxlYXNlLjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4gQXZyaWwgMjAxMC4gaW50ZWdyYXRpb24gR2VvUG9ydGFpbCAxLjAgZmluYWwgdmVyc2lvbi48L2xpPgo8bGk+VmVyc2lvbiAwLjIuIEF2cmlsIDIwMTAuIGN1c3RvbSBtYXJrZXIgZm9yIEdvb2dsZU1hcHMuPC9saT4KPC91bD4KCjxoMz5UaGFua3MgZ28gdG8gPC9oMz4KPHA+VGF0dSBXaWttYW4gZm9yIHRoZSBza2VsZXRvbiB0aGF0IEkgdXNlZCB0byBidWlsZCB0aGlzIG1vZHVsZSBmcm9tLjwvcD4KPHA+Y2FsZ3V5MTAwMCBmb3IgdGhlIFNpbXBsZUdvb2dsZU1hcCB0aGF0IGkgdXNlZCB0byBidWlsZCB0aGlzIG1vZHVsZSBmcm9tLjwvcD4KPHA+Um9iZXJ0IEJyb3duIGZvciBSQ1JVRCBDbGFzcyB1c2VkIGluIGFkbWluIGV4dGVuc2l2ZWx5PC9wPgo8cD5hbmQ8L3A+CjxwPk9rdWRhIGZvciB0aGUgamF2YXNjcmlwdCBtb2R1bGUgdG8gZGVmaW5lIEFQSSBHb29nbGVNYXBzIChodHRwOi8vbm90aW9ucy5va3VkYS5jYS9nZW90YWdnaW5nL3Byb2plY3RzLWltLXdvcmtpbmctb24vZ3B4LXZpZXdlci8pPC9wPgonOwokbGFuZ1snaGVscCddID0gJwo8aDM+V2hhdCBEb2VzIFRoaXMgRG8/PC9oMz4KPHA+VGhpcyBtb2R1bGUgYWxsb3dzIGludGVncmF0aW5nIGluIHlvdXIgc2l0ZSB3aXRoIHRoZSBHb29nbGVNYXBzIGFuZCBHZW9Qb3J0YWlsIGVuZ2luZXMsIHlvdXIgR1BTIHRyYWNrIHBvaW50cy4gUXVpY2tseSBhbmQgZWFzaWx5IHlvdSBjYW4gYnVpbGQgYSBtYXAgd2l0aCBhbnkgR1BYIGZpbGUuPC9wPgo8aDM+SG93IERvIEkgVXNlIEl0PC9oMz4KPHA+KDEpIEZpcnN0IHlvdSBtdXN0IGluc2VydCB5b3VyIEdvb2dsZU1hcHMgYXBpIGtleSAocGxlYXNlIHJlZ2lzdGVyIGluIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9hcGlzL21hcHMvc2lnbnVwLmh0bWwpIGludG8gdGhlIGFkbWluIHNlY3Rpb24sIGFuZCBzZXR1cCBwcmVmZXJlbmNlcy48L3A+CjxwPigyKSBOZXh0IHlvdSBtdXN0IGluc2VydCB5b3VyIEdlb1BvcnRhaWwgYXBpIGtleSAocGxlYXNlIHJlZ2lzdGVyIGluIGh0dHBzOi8vYXBpLmlnbi5mci9nZW9wb3J0YWlsL3JlZ2lzdHJhdGlvbi5kbykgaW50byB0aGUgYWRtaW4gc2VjdGlvbiwgYW5kIHNldHVwIHByZWZlcmVuY2VzLgpZb3UgbXVzdCBzaWduIGEgY29udHJhY3QgZm9yIGF0IGxlYXN0IHRoZSBmb2xsb3dpbmcgbGF5ZXJzIDogSUdOIE1BUFMgIChXTVNDOkdFT0dSQVBISUNBTEdSSURTWVNURU1TLk1BUFMpIGV0IFBIT1RPIE1BUFMgKFdNU0M6T1JUSE9JTUFHRVJZLk9SVEhPUEhPVE9TKTwvcD4KPHA+KDMpIFRoZSBtYXBzIGVuZ2luZXMgYXJlIHNob3dlZCBpbiB0YWJzLiBUbyBjdXN0b21pemUgdGhlc2UgdGFicyB5b3UgbXVzdCBpbnRlZ3JhdGUgaW4geW91ciBDU1MgZmlsZXMgdGhlIGZvbGxvd2luZyBsaW5lczogPC9wPgo8cD48cHJlPgovKiAtLS0tLS0tLS0tLS0gVGFicyBHUFggTWFwcyAtLS0tLS0tLS0tLS0tICovCnVsI3RhYm5hdiB7CiAgICBmb250OiBib2xkIDExcHggdmVyZGFuYSwgYXJpYWwsIHNhbnMtc2VyaWY7CiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgICBwYWRkaW5nLWJvdHRvbTogMjhweDsKICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNjY2NjY2OwogICAgbWFyZ2luOiAwOwp9CnVsI3RhYm5hdiBsaSB7CiAgICBmbG9hdDogbGVmdDsKICAgIGhlaWdodDogMjFweDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGMEYwRjA7OwogICAgbWFyZ2luOiAycHggMnB4IDBweCAycHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjNjY2NjY2OwogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwp9CnVsI3RhYm5hdiBsaS5hY3RpdmUgewogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGMEYwRjA7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOwogICAgY29sb3IgOiAjMzAxRTEyOwogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwp9CiN0YWJuYXYgYSB7CiAgICBmbG9hdDogbGVmdDsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgY29sb3IgOiAjNjY2NjY2OwogICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgcGFkZGluZzogNHB4Owp9CiN0YWJuYXYgbGk6aG92ZXIsICN0YWJuYXYgYTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiAjZmZmOwp9Ci8qIC0tLS0tLS0tLS0tLSBFbmQgVGFicyBHUFggTWFwcyAtLS0tLS0tLS0tLS0tICovCgo8L3ByZT48L3A+CjxwPig0KSBOZXh0IHlvdSBuZWVkIHRvIGRlZmluZSBvbmUgb3IgbW9yZSBcJ21hcHNcJyBpbiB0aGUgYWRtaW4gaW50ZXJmYWNlLiBOb3RlIHRoYXQgdGhpcyBqdXN0IGRlZmluZXMgaG93IHRoZSBtYXAgd2lsbCBsb29rIGFuZCBpdFwncyBiZWhhdmlvciwgbm90IHRoZSBsb2NhdGlvbiBvZiB0aGUgbWFwLjwvcD4KPHA+KDUpIFRoZW4gdG8gZ2VuZXJhdGUgdGhlIG1hcCBpbiB5b3VyIGNvbnRlbnQgcGFnZSB3aXRoICwgd3JpdGUgdGhlIGxpbmUgOjwvcD4KPHA+PHByZT57U2ltcGxlR1BYTWFwIG1hcD1cJ215bWFwXCcgZ3B4ZmlsZT1cJy4vdXBsb2Fkcy95b3VyZ3B4ZmlsZS5ncHhcJ308L3ByZT48L3A+CjxoMz5BZHZhbmNlZCB1c2FnZTwvaDM+CjxwPjxiPkNvbW11biBvcHRpb25zPC9iPjwvcD4KPHA+PGI+TmFtZTwvYj4gOiB0aGlzIGZpZWxkIGRlZmluZXMgdGhlIG5hbWUgb2YgeW91ciBtYXAuPGJyPgo8Yj5EZXNjcmlwdGlvbjwvYj4gOiB0aGUgZGVzY3JpcHRpb24gb2YgeW91ciBtYXA8YnI+CjxiPldpZHRoPC9iPiA6IFRoZSB3aWR0aCBvZiB5b3VyIG1hcHMgaW4geW91ciBjb250ZW50IHBhZ2UuIFRoZSB3aWR0aCBtdXN0IGJlIHNldCBpbiBwaXhlbC4gRG9u4oCZdCBzZXQgdGhlIHVuaXQuPGJyPgo8Yj5IZWlnaHQ8L2I+IDogVGhlIGhlaWdodCBvZiB5b3VyIG1hcHMgaW4geW91ciBjb250ZW50IHBhZ2UuIFRoZSBoZWlnaHQgbXVzdCBiZSBzZXQgaW4gcGl4ZWwuIERvbuKAmXQgc2V0IHRoZSB1bml0Ljxicj4KPGI+VHJhY2UgQ29sb3I8L2I+IDogVGhlIGNvbG9yIG11c3QgYmUgZ2l2ZW4gaW4gaGV4YWRlY2ltYWwgKGJ5IGV4YW1wbGUgc2V0IHRoZSB2YWx1ZSDigJgjMDAwMEZG4oCZKS4gVGhpcyBvcHRpb24gaXMgb3B0aW9uYWwuIEJ5IGRlZmF1bHQgdGhlIGNvbG9yIGlzIHRoZSBkZWZhdWx0IGNvbG9yIGZyb20gdGhlIG1hcHMgZW5naW5lLjxicj4KPGI+VHJhY2Ugd2lkdGg8L2I+IDogVGhlIHRyYWNlIHdpZHRoIG11c3QgYmUgZ2l2ZW4gaW4gcGl4ZWwuPGJyPgo8Yj5UaGUgZW5naW5lIG1hcHMgcHJpbnRlZCBieSBkZWZhdWx0PC9iPiA6IFlvdSBoYXZlIHRoZSBjaG9pY2UgYmV0d2VlbiB0aGUgdmFsdWVzIDog4oCYR09PR0xF4oCZIG9yIOKAmEdlb1BvcnRhaWzigJkuIFRoaXMgZmllbGQgYWxsb3dzIGRlZmluaW5nIHRoZSBtYXBzIGVuZ2luZSBzaG93biBieSBkZWZhdWx0IGluIHlvdXIgY29udGVudCBwYWdlLiBXYXJuaW5nIHRoaXMgb3B0aW9uIGlzIG1hbmRhdG9yeS48L3A+Cjxicj4KPHA+PGI+R2VvUG9ydGFpbHMgb3B0aW9uczwvYj48L3A+CjxwPjxiPklHTiBtYXAgb3BhY2l0eTwvYj4gOiB0aGlzIG9wdGlvbiBkZWZpbmVkIHRoZSBsZXZlbCBvZiBvcGFjaXR5IG9mIHRoZSBJR04gTWFwcy4gVGhlIHZhbHVlcyBhdXRob3JpemVkIGdvIGZyb20gMCB0byAxMC4gV2l0aCB0aGUgdmFsdWUg4oCYMOKAmSwgdGhlIG1hcCBpcyBoaWRkZW4uPC9icj4KPGI+UGhvdG8gbWFwIG9wYWNpdHk8L2I+IDogdGhpcyBvcHRpb24gZGVmaW5lZCB0aGUgbGV2ZWwgb2Ygb3BhY2l0eSBvZiB0aGUgc2F0ZWxsaXRlIHBob3RvIG1hcHMuIFRoZSB2YWx1ZXMgYXV0aG9yaXplZCBnbyBmcm9tIDAgdG8gMTAuIFdpdGggdGhlIHZhbHVlIOKAmDDigJksIHRoZSBtYXAgaXMgaGlkZGVuLjwvYnI+CjxiPkV4cGFuZCBsYXllciBjb250cm9sPC9iPiA6IFRoZSBsYXllciBjb250cm9sIGlzIGV4cGFuZCBpZiB0aGlzIG9wdGlvbiBpcyBjaGVja2VkPC9icj4KPGI+RXhwYW5kIHRvb2wgY29udHJvbDwvYj4gOiBUaGUgWm9vbSBjb250cm9sIGlzIGV4cGFuZCBpZiB0aGlzIG9wdGlvbiBpcyBjaGVja2VkLgo8L3A+Cjxicj4KPHA+PGI+R29vZ2xlbWFwcyBvcHRpb25zPC9iPjwvcD4KPHA+CjxiPkRpc3BsYXkgdHlwZTwvYj4gOiBEZWZpbmUgdGhlIEdvb2dsZSBtYXAgd2hpY2ggd2lsbCBiZSBzaG93biBieSBkZWZhdWx0LiBZb3UgaGF2ZSB0aGUgY2hvaWNlIGJldHdlZW4gdGhlIGZvbGxvd2luZyBtYXBzIDog4oCYR19OT1JNQUxfTUFQ4oCZICDigJhHX1NBVEVMTElURV9NQVDigJkgIOKAmEdfSFlCUklEX01BUOKAmSAg4oCYR19QSFlTSUNBTF9NQVDigJkuIEJ5IHRoZSBsYXllciBjb250cm9sLCB5b3UgY2FuIGNoYW5nZSB0aGlzIGNob2ljZSBpbiB5b3VyIGNvbnRlbnQgcGFnZS48YnI+CjxiPlR5cGUgb2Ygem9vbSBjb250cm9sPC9iPiA6IFlvdSBjYW4gY2hvb3NlIHRoZSB0eXBlIG9mIHpvb20gY29udHJvbCA6IOKAmFNtYWxs4oCZIG9yIOKAmExhcmdl4oCZPGJyPgo8Yj5UeXBlIGxheWVyIGNvbnRyb2w8L2I+IDogWW91IGNhbiBjaG9vc2UgdGhlIHR5cGUgb2YgbGF5ZXIgY29udHJvbCA6IOKAmFZlcnRpY2Fs4oCZIG9yIOKAmEhvcml6b250YWzigJk8YnI+CjxiPlNob3cgc2NhbGUgY29udHJvbDwvYj4gOiB0byBkZWZpbmUsIGlmIHlvdSB3YW50IHRoZSBzY2FsZSBjb250cm9sLjxicj4KPGI+TW91c2Ugem9vbSBlbmFibGU8L2I+IDogdG8gbmF2aWdhdGUgd2l0aCB0aGUgbW91c2UgaW4gdGhlIHpvb20gbGV2ZWwuPC9wPgoKPHA+CjxiPlBob3RvIHBhbm9yYW1pYTwvYj4gOiBDaGVja2VkIHRoaXMgb3B0aW9uIHRvIHNob3cgdGhlIHBob3RvIHBhbm9yYW1pYSBtYXA8YnI+CjxiPldpa2lwZWRpYSBsaW5rczwvYj4gOiBDaGVja2VkIHRoaXMgb3B0aW9uIHRvIHNob3cgdGhlIFdpa2lwZWRpYSBsaW5rcwo8L3A+CjxwPgo8Yj5TdGFydCBJY29uIG1hcmtlcjwvYj4gOiB0aGlzIG1vZHVsZSBhbGxvdyB0byBkZWZpbmUgdGhlIGljb24gb2YgdGhlIGZpcnN0IHBvaW50IG9mIHRoZSB0cmFjay4gSWYgbm8gaWNvbiBpcyBkZWZpbmVkLCB0aGUgR29vZ2xlIGRlZmF1bHQgbWFya2VyIHdpbGwgYmUgdXNlZC48YnI+CjxiPkVuZCBJY29uIG1hcmtlcjwvYj4gOiB0aGlzIG1vZHVsZSBhbGxvdyB0byBkZWZpbmUgdGhlIGljb24gb2YgdGhlIGxhc3QgcG9pbnQgb2YgdGhlIHRyYWNrLiBJZiBubyBpY29uIGlzIGRlZmluZWQsIHRoZSBHb29nbGUgZGVmYXVsdCBtYXJrZXIgd2lsbCBiZSB1c2VkLjxicj4KPGI+RGVmYXVsdCBpY29uIG1hcmtlcjwvYj4gOiB0aGlzIG1vZHVsZSBhbGxvdyB0byBkZWZpbmUgdGhlIGljb24gb2YgdGhlIGRlZmF1bHQgdHJhY2sgcG9pbnRzLiBJZiBubyBpY29uIGlzIGRlZmluZWQsIHRoZSBHb29nbGUgZGVmYXVsdCBtYXJrZXIgd2lsbCBiZSB1c2VkLgo8L3A+CjxwPjxicj4KRm9yIGFsbCBpY29ucyBtYXJrZXIgd2UgbXVzdCBkZWZpbmVkIHRoZSBmb2xsb3dpbmcgZmllbGRzIDo8YnI+IAo8Yj5JY29uPC9iPiA6IGRvbm5leiBsZSBjaGVtaW4gY29tcGxldCBkZSBsXCdpbWFnZSAoanBnLCBwbmcpIGR1IG1hcnF1ZXVyLjxicj4KPGI+c2hhZG93PC9iPiA6IGRvbm5leiBsZSBjaGVtaW4gY29tcGxldCBkZSBsXCdpbWFnZSAoanBnLCBwbmcpIGRlIGxcJ29tYnJlIGR1IG1hcnF1ZXVyIDxicj4KPGI+aWNvbiB3aWR0aDwvYj4gOiB0aGUgd2lkdGggb2YgdGhlIGljb24sIGdpdmVuIGluIHBpeGVsPGJyPgo8Yj5pY29uIGhlaWdodDwvYj4gOiB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uLCBnaXZlbiBpbiBwaXhlbAo8L3A+CjxwPgo8Yj5pY29uIHNoYWRvdyBzaXplIHdpZHRoPC9iPiA6IHRoZSB3aWR0aCBvZiB0aGUgc2hhZG93IGljb247IGdpdmVuIGluIHBpeGVsPGJyPgo8Yj5pY29uIHNoYWRvdyBzaXplIGhlaWdodDwvYj4gOiB0aGUgaGVpZ2h0IG9mIHRoZSBzaGFkb3cgaWNvbjsgZ2l2ZW4gaW4gcGl4ZWw8YnI+Cjxicj4KPGI+aWNvbiBhbmNob3Igb2Zmc2V0IHg8L2I+IDogdGhlIG9mZnNldCBiZXR3ZWVuIHRoZSBsb2NhbGl6YXRpb24gYW5kIHRoZSBpY29uIG1hcmtlcjsgZ2l2ZW4gaW4gcGl4ZWw8YnI+CjxiPmljb24gYW5jaG9yIG9mZnNldCB5PC9iPiA6IHRoZSBvZmZzZXQgYmV0d2VlbiB0aGUgbG9jYWxpemF0aW9uIGFuZCB0aGUgaWNvbiBtYXJrZXI7IGdpdmVuIGluIHBpeGVsPGJyPgo8YnI+CjxiPmluZm8gV2luZG93IEFuY2hvciBvZmZzZXQgeDwvYj4gOiB0aGUgb2Zmc2V0IGJldHdlZW4gdGhlIGluZm8gd2luZG93cyAgYW5kIHRoZSBpY29uIG1hcmtlcjsgZ2l2ZW4gaW4gcGl4ZWw8YnI+CjxiPmluZm8gV2luZG93IEFuY2hvciBvZmZzZXQgeTwvYj4gOiB0aGUgb2Zmc2V0IGJldHdlZW4gdGhlIGluZm8gd2luZG93cyAgYW5kIHRoZSBpY29uIG1hcmtlcjsgZ2l2ZW4gaW4gcGl4ZWw8YnI+CjwvcD4KPHA+ClBhciBleGVtcGxlIHZvdXMgcG91dmV6IHV0aWxpc2VyIGxlcyB2YWxldXJzIHN1aXZhbnRlcyA6IAo8L3A+CjxwPjxwcmU+CnN0YXJ0IGljb24JCQltb2R1bGVzL1NpbXBsZUdQWE1hcC9pbWFnZXMvc3RhcnRfZW4ucG5nCnN0YXJ0IHNoYWRvdyBpY29uCQltb2R1bGVzL1NpbXBsZUdQWE1hcC9pbWFnZXMvc3RhcnRzaGFkb3dfZW4ucG5nCndpZHRoIHN0YXJ0IGljb24JCTg1CmhlaWdodCBzdGFydCBpY29uCQkzNAp3aWR0aCBzaGFkb3cgc3RhcnQgaWNvbgkgCTg1CmhlaWdodCBzaGFkb3cgc3RhcnQgaWNvbgkzNApPZmZzZXQgeCBvZiBzdGFydCBpY29uCSAJMTAKT2Zmc2V0IHkgb2Ygc3RhcnQgaWNvbgkgCTMwCk9mZnNldCB4IG9mIHRoZSBtZXNzYWdlICAJNQpPZmZzZXQgeSBvZiB0aGUgbWVzc2FnZQkgCTEKCmVuZCBpY29uCQkJbW9kdWxlcy9TaW1wbGVHUFhNYXAvaW1hZ2VzL2VuZF9lbi5wbmcKZW5kIHNoYWRvdyBpY29uCQkJbW9kdWxlcy9TaW1wbGVHUFhNYXAvaW1hZ2VzL2VuZHNoYWRvd19lbi5wbmcKd2lkdGggZW5kIGljb24JCQk5NwpoZWlnaHQgZW5kIGljb24JCQkzNAp3aWR0aCBvZiBzaGFkb3cgZW5kIGljb24JOTcKaGVpZ2h0IHNoYWRvdyBlbmQgaWNvbgkgCTM0Ck9mZnNldCB4IG9mIGVuZCBpY29uCSAJNzUKT2Zmc2V0IHkgb2YgZW5kIGljb24JIAkzMApPZmZzZXQgeCBvZiB0aGUgbWVzc2FnZSAgCTY1Ck9mZnNldCB5IG9mIHRoZSBtZXNzYWdlICAJMQo8L3ByZT48L3A+CjxoMz5TdXBwb3J0PC9oMz4KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPgo8cD5BcyBwZXIgdGhlIEdQTCwgdGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCBhcy1pcy4gUGxlYXNlIHJlYWQgdGhlIHRleHQKb2YgdGhlIGxpY2Vuc2UgZm9yIHRoZSBmdWxsIGRpc2NsYWltZXIuPC9wPgoKPGgzPlNlY3VyaXR5PC9oMz4KPHA+VXNlciBtdXN0IGhhdmUgIlVzZSBHUFhNYXBzIiBwZXJtaXNzaW9ucyBzZXQgdG8gZWRpdCBtYXBzPC9wPgonOwoKLy9wYXJhbSBoZWxwCiRsYW5nWydoZWxwX3BhcmFtX21hcCddID0gJ1NldCB3aGljaCBtYXAgdG8gc2hvdyc7CgoKLy90YWJsZSBmaWVsZHMKJGxhbmdbJ3RfbmFtZSddID0gJ05hbWUnOwokbGFuZ1sndF9iZWxvbmdzX3RvJ10gPSAnQmVsb25ncyB0byBtYXAnOwokbGFuZ1sndF9kZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ3RfdHlwZSddID0gJ0Rpc3BsYXkgdHlwZSc7CiRsYW5nWyd0X2NhcnRlYnlkZWZhdWx0J10gPSAnRGlzcGxheSB0eXBlJzsKJGxhbmdbJ3Rfd2lkdGgnXSA9ICdXaWR0aCc7CiRsYW5nWyd0X2hlaWdodCddID0gJ0hlaWdodCc7CiRsYW5nWyd0X3RyYWNlY29sb3InXSA9ICdUcmFjZSBDb2xvcic7CiRsYW5nWyd0X3RyYWNld2lkdGgnXSA9ICdUcmFjZSB3aWR0aCc7CiRsYW5nWyd0X2Zpcm1zZWxlY3RlZCddID0gJ1RoZSBlbmdpbmUgbWFwcyBwcmludGVkIGJ5IGRlZmF1bHQnOwokbGFuZ1sndF9vbmx5b25maXJtJ10gPSAnUHJpbnQgb25seSB0aGUgZmlybSBzZWxlY3RlZCBieSBkZWZhdWx0JzsKCiRsYW5nWyd0X3NtYWxsY29udHJvbCddID0gJ1R5cGUgb2Ygem9vbSBjb250cm9sICc7CiRsYW5nWyd0X2hvcml6b250YWxjb250cm9sJ10gPSAnVHlwZSBsYXllciBjb250cm9sJzsKJGxhbmdbJ3RfZWNoZWxsZWNvbnRyb2wnXSA9ICdTaG93IHNjYWxlIGNvbnRyb2wnOwokbGFuZ1sndF96b29tZW5hYmxlJ10gPSAnTW91c2Ugem9vbSBlbmFibGUnOwoKJGxhbmdbJ3Rfb3BhY2l0eWlnbiddID0gJ0lHTiBtYXAgb3BhY2l0eSc7CiRsYW5nWyd0X29wYWNpdHlwaG90byddID0gJ1Bob3RvIG1hcCBvcGFjaXR5JzsKJGxhbmdbJ3RfZXhwYW5kbGF5ZXJzY29udHJvbCddID0gJ0V4cGFuZCBsYXllciBjb250cm9sJzsKJGxhbmdbJ3RfZXhwYW5kdG9vbGNvbnRyb2wnXSA9ICdFeHBhbmQgdG9vbCBjb250cm9sJzsKCiRsYW5nWyd0X3Nob3dwaG90b3Bhbm9yYW1pYSddID0gJ1Nob3cgdGhlIHBob3RvcyBQYW5vcmFtaWEnOwokbGFuZ1sndF9zaG93d2lraXBlZGlhJ10gPSAnU2hvdyBXaWtpcGVkaWEgbGlua3MnOwoKJGxhbmdbJ3Rfc3RhcnRpY29uaW1hZ2UnXSA9ICdmdWxsIFBhdGggb2YgdGhlIHN0YXJ0IGljb24nOwokbGFuZ1sndF9zdGFydGljb25zaGFkb3cnXSA9ICdmdWxsIFBhdGggb2YgdGhlIHNoYWRvdyBzdGFydCBpY29uJzsKJGxhbmdbJ3Rfc3RhcnRpY29uaXN3aWR0aCddID0gJ3dpZHRoIHN0YXJ0IGljb24nOwokbGFuZ1sndF9zdGFydGljb25pc2hlaWdoJ10gPSAnaGVpZ2h0IHN0YXJ0IGljb24nOwokbGFuZ1sndF9zdGFydGljb25zc3dpZHRoJ10gPSAnd2lkdGggc2hhZG93IHN0YXJ0IGljb24nOwokbGFuZ1sndF9zdGFydGljb25zc2hlaWdoJ10gPSAnaGVpZ2h0IHNoYWRvdyBzdGFydCBpY29uJzsKJGxhbmdbJ3Rfc3RhcnRpY29uaWFsZWZ0J10gPSAnT2Zmc2V0IHggIG9mIHN0YXJ0IGljb24nOwokbGFuZ1sndF9zdGFydGljb25pYXRvcCddID0gJ09mZnNldCB5IG9mIHN0YXJ0IGljb24nOwokbGFuZ1sndF9zdGFydGljb25pd2FsZWZ0J10gPSAnT2Zmc2V0IHggIG9mIHRoZSBtZXNzYWdlIG9mIHRoZSBvZiBzdGFydCBpY29uJzsKJGxhbmdbJ3Rfc3RhcnRpY29uaXdhdG9wJ10gPSAnT2Zmc2V0IHkgb2YgdGhlIG1lc3NhZ2Ugb2YgdGhlIHN0YXJ0IGljb24nOwoKJGxhbmdbJ3RfZW5kaWNvbmltYWdlJ10gPSAnZnVsbCBQYXRoIG9mIHRoZSBlbmQgaWNvbic7CiRsYW5nWyd0X2VuZGljb25zaGFkb3cnXSA9ICdmdWxsIFBhdGggb2YgdGhlIHNoYWRvdyBlbmQgaWNvbic7CiRsYW5nWyd0X2VuZGljb25pc3dpZHRoJ10gPSAnd2lkdGggZW5kIGljb24nOwokbGFuZ1sndF9lbmRpY29uaXNoZWlnaCddID0gJ2hlaWdodCBlbmQgaWNvbic7CiRsYW5nWyd0X2VuZGljb25zc3dpZHRoJ10gPSAnd2lkdGggb2Ygc2hhZG93IGVuZCBpY29uJzsKJGxhbmdbJ3RfZW5kaWNvbnNzaGVpZ2gnXSA9ICdoZWlnaHQgc2hhZG93IGVuZCBpY29uJzsKJGxhbmdbJ3RfZW5kaWNvbmlhbGVmdCddID0gJ09mZnNldCB4ICBvZiBlbmQgaWNvbic7CiRsYW5nWyd0X2VuZGljb25pYXRvcCddID0gJ09mZnNldCB5IG9mIGVuZCBpY29uJzsKJGxhbmdbJ3RfZW5kaWNvbml3YWxlZnQnXSA9ICdPZmZzZXQgeCAgb2YgdGhlIG1lc3NhZ2Ugb2YgdGhlIG9mIGVuZCBpY29uJzsKJGxhbmdbJ3RfZW5kaWNvbml3YXRvcCddID0gJ09mZnNldCB5IG9mIHRoZSBtZXNzYWdlIG9mIHRoZSBlbmQgaWNvbic7CgokbGFuZ1sndF9kZWZhdWx0aWNvbmltYWdlJ10gPSAnZnVsbCBQYXRoIG9mIHRoZSBkZWZhdWx0IGljb24nOwokbGFuZ1sndF9kZWZhdWx0aWNvbnNoYWRvdyddID0gJ2Z1bGwgUGF0aCBvZiB0aGUgc2hhZG93IGRlZmF1bHQgaWNvbic7CiRsYW5nWyd0X2RlZmF1bHRpY29uaXN3aWR0aCddID0gJ3dpZHRoIGRlZmF1bHQgaWNvbic7CiRsYW5nWyd0X2RlZmF1bHRpY29uaXNoZWlnaCddID0gJ2hlaWdodCBkZWZhdWx0IGljb24nOwokbGFuZ1sndF9kZWZhdWx0aWNvbnNzd2lkdGgnXSA9ICd3aWR0aCBzaGFkb3cgZGVmYXVsdCBpY29uJzsKJGxhbmdbJ3RfZGVmYXVsdGljb25zc2hlaWdoJ10gPSAnaGVpZ2h0IHNoYWRvdyBkZWZhdWx0IGljb24nOwokbGFuZ1sndF9kZWZhdWx0aWNvbmlhbGVmdCddID0gJ09mZnNldCB4IG9mIGRlZmF1bHQgaWNvbic7CiRsYW5nWyd0X2RlZmF1bHRpY29uaWF0b3AnXSA9ICdPZmZzZXQgeSBvZiBkZWZhdWx0IGljb24nOwokbGFuZ1sndF9kZWZhdWx0aWNvbml3YWxlZnQnXSA9ICdPZmZzZXQgeCBvZiB0aGUgbWVzc2FnZSBvZiB0aGUgb2YgZGVmYXVsdCBpY29uJzsKJGxhbmdbJ3RfZGVmYXVsdGljb25pd2F0b3AnXSA9ICdPZmZzZXQgeSBvZiB0aGUgbWVzc2FnZSBvZiB0aGUgZGVmYXVsdCBpY29uJzsKCiRsYW5nWyd0X29wdGlvbnNjb21tb24nXSA9ICdDb21tb24gb3B0aW9ucyc7CiRsYW5nWyd0X29wdGlvbnNnb29nbGVtYXBzJ10gPSAnR29vZ2xlTWFwcyBvcHRpb25zJzsKJGxhbmdbJ3Rfb3B0aW9uc2dlb3BvcnRhaWwnXSA9ICdHZW9wb3J0YWlsIG9wdGlvbnMnOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2hlbHBfcGFyYW1fZ3B4ZmlsZSddID0gJ0xlIGNoZW1pbiBsb2NhbCBldCBjb21wbGV0IGR1IGZpY2hpZXIgR1BYJzsKJGxhbmdbJ21pc3NpbmdfcGFyYW0nXSA9ICdBdSBtb2lucyB1biBkZXMgcGFyYW3DqHRyZXMgb2JsaWdhdG9pcmVzIG5lIHNvbnQgcGFzIHJlbnNlaWduw6lzJzsKJGxhbmdbJ2hlbHBfcGFyYW1fbWFwJ10gPSAnTGEgZMOpZmluaXRpb24gZFwndW5lICJtYXAiIHNlIGZhaXQgw6AgcGFydGlyIGRlcyBwYXJhbcOodHJlcyBldCBkXCdvcHRpb25zJzsKJGxhbmdbJ2hlbHBfcGFyYW1fdGl0bGUnXSA9ICdUaXRyZSBkZSBsYSBmZW7DqnRyZSBkXCdpbmZvcm1hdGlvbic7CiRsYW5nWydoZWxwX3BhcmFtX3RleHQnXSA9ICdUZXh0IGRlIGxhIGZlbsOqdHJlIGRcaW5mb3JtYXRpb24nOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnU2ltcGxlIEdQWCBNYXAnOwokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdVbmUgcmFwaWRlIGV0IHNpbXBsZSBtw6l0aG9kZSBwb3VyIGFmZmljaGVyIHNvdXMgR29vZ2xlTWFwcyBvdSBHZW9Qb3J0YWlsIHVuIGZpY2hpZXIgZGUgdHJhY2VzIEdQWCc7CiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1ZldWlsbGV6IHZvdXMgcHJvY3VyZXIgbGVzIGNsZWZzIGRcJ3V0aWxpc2F0aW9uIGRlcyBBUEkgZGUgR29vZ2xlTWFwcyBldCBHZW9QT3J0YWlsIGFwaSBrZXkhIFBvdXIgdXRpbGlzZXIgU2ltcGxlR1BYTWFwcyBsZXMgZHJvaXRzICJVdGlsaXNlciBHUFhNYXBzIiBzb250IHJlcXVpcyc7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnQXVyZXZvaXInOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1NPdWhhaXRleiB2b3VzIHLDqWVsbGVtZW50IGRlc2lzbnRhbGxlciBsZSBtb2R1bGUgPyBBdHRlbnRpb24gdG91dGVzIHZvcyBkb25uw6llcyBTaW1wbGVHUFhNYXBzIHNlcm9udCBwZXJkdWVzJzsKJGxhbmdbJ3VuaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGRlc2luc3RhbGzDqS4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIGluc3RhbGzDqSAodmVyc2lvbiAlcykuJzsKJGxhbmdbJ3ByZWZzdXBkYXRlZCddID0gJ0xlcyBtb2RpZmljYXRpb25zIGRlcyBwcmVmZXJlbmNlcyBvbnQgw6l0w6kgZW5yZWdpc3Ryw6llcy4nOwokbGFuZ1snYWNjZXNzZGVuaWVkJ10gPSAnQWNjw6hzIGludGVyZGl0LiBWZXVpbGxleiB2w6lyaWZpZXIgdm9zIGRyb2l0cyBzdXIgbGUgbW9kdWxlLic7CiRsYW5nWydlcnJvciddID0gJ0VycmV1ciEnOwokbGFuZ1sndXBncmFkZWQnXSA9ICdNb2R1bGUgTWlzIMOgIGpvdXIgdmVycyBsYSB2ZXJzaW9uICVzLic7CiRsYW5nWyd0aXRsZV9tb2RfcHJlZnMnXSA9ICdQYW5uZWF1IGRlIHByZWZlcmVuY2VzIGR1IG1vZHVsZSc7CiRsYW5nWyd0aXRsZV9tb2RfYWRtaW4nXSA9ICdQYW5uZWF1IGRcJ2FkbWluaXRyYXRpb24gZHUgbW9kdWxlJzsKJGxhbmdbJ3RpdGxlX2FkbWluX3BhbmVsJ10gPSAnUGFyYW3DqHRyZXMgR29vZ2xlTWFwcyBvdSBHZW9Qb3J0YWlsJzsKJGxhbmdbJ3NldHRpbmdzJ10gPSAnUGFyYW3DqHRyZXMnOwokbGFuZ1snbWFwcyddID0gJ0NhcnRlcyc7CiRsYW5nWyd5b3VyX21hcHMnXSA9ICdDYXJ0ZSc7CiRsYW5nWydtYXBfaWQnXSA9ICdNYXAgSUQnOwokbGFuZ1snc2V0dGluZ3Nfc2F2ZWQnXSA9ICdQYXJhbcOodHJlcyBzYXV2w6lzJzsKJGxhbmdbJ0dvb2dsZWFwaWtleSddID0gJ0NsZWYgZFwndXRpbGlzYXRpb24gZGVzIEFQSSBHb29nbGVNYXBzJzsKJGxhbmdbJ0dlb1BvcnRhaWxhcGlrZXknXSA9ICdDbGVmIGRcJ3V0aWxpc2F0aW9uIGRlcyBBUElHZW9wb3J0YWlsJzsKCgoKCiRsYW5nWydub2tleSddID0gJ0FVIG1vaW5zIHVuZSBkZXMgQ2xlZiBkXCd1dGlsaXNhdGlvbiBkZXMgQVBJIEdvb2dsZU1hcHMgZXQgR2VvUG9ydGFpbCBuZSBzb250IHBhcyByZW5zZWlnbsOpJzsKJGxhbmdbJ25vbWFwJ10gPSAnQXVjdW5lIG1hcCBzcMOpY2lmacOpJzsKJGxhbmdbJ1N1Ym1pdCddID0gJ0Vudm95ZXInOwokbGFuZ1snaXMnXSA9ICdlc3QnOwokbGFuZ1snZ2VuZXJhbF9zZXR0aW5ncyddID0gJ1BhcmFtw6h0cmVzIGfDqW7DqXJhdXgnOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnCjx1bD4KPGxpPlZlcnNpb24gMC4xLiBEZWNlbWJyZSAyMDA5LiBWZXJzaW9uIGluaXRpYWxlLjwvbGk+CjxsaT5WZXJzaW9uIDAuMi4gQXZyaWwgMjAxMC4gaW50ZWdyYXRpb24gZGUgR2VvUG9ydGFpbCAxLjAgZmluYWwgdmVyc2lvbi48L2xpPgo8bGk+VmVyc2lvbiAwLjIuIEF2cmlsIDIwMTAuIEFqb3V0IHBvc3NpYmlsaXTDqSBkZSBwZXJzb25hbGlzYXRpb24gZGVzIG1hcnF1ZXVyIHNvdXMgR29vZ2xlTWFwcy48L2xpPgo8L3VsPgoKPGgzPk1lcmNpIMOgICA8L2gzPgo8cD5UYXR1IFdpa21hbiBwb3VyIGxlIHNxdWVsZXR0ZSBxdWUgalwnYWkgdXRpbGlzw6kgcG91ciBjb25zdHJ1aXJlIGNlIG1vZHVsZS48L3A+CjxwPmNhbGd1eTEwMDAgcG91ciBsZSBtb2R1bGUgU2ltcGxlR29vZ2xlTWFwIHF1aSBtXCdhIGZvcnRlbWVudCBpbnNwaXLDqSBsb3JzIGRlIGxhIGNvbnN0cnVjdGlvbiBkZSBzZSBtb2R1bGUuPC9wPgo8cD5Sb2JlcnQgQnJvd24gcG91ciBSQ1JVRCBDbGFzcyB1dGlsaXPDqSBkYW5zIGxhIHBhbm5lYXUgZFwnYWRtaW5pc3RyYXRpb248L3A+CjxwPmV0IHBhcnRpY3VsacOocmVtZW50PC9wPgo8cD5Pa3VkYSBwb3VyIGxlIG1vZHVsZSBqYXZhc2NyaXB0IHBlcm1ldHRhbnQgZGUgY2hhcmdlciBkZXMgZmljaGllciBHUFggc291cyBHb29nbGVNYXBzIChodHRwOi8vbm90aW9ucy5va3VkYS5jYS9nZW90YWdnaW5nL3Byb2plY3RzLWltLXdvcmtpbmctb24vZ3B4LXZpZXdlci8pPC9wPgonOwokbGFuZ1snaGVscCddID0gJwo8aDM+UXVcJ2VzdC1jZSBxdWUgY2VsYSBmYWl0ID88L2gzPgo8cD5DZSBtb2R1bGUgcGVybWV0IGRcJ2ludMOpZ3JlciBkYW5zIHZvdHJlIHNpdGUgYXZlYyBsZXMgbW90ZXVycyBHb29nbGVNYXBzIGV0IEfDqW9wb3J0YWlsLCB2b3MgdHJhY2VzIEdQUy4gUmFwaWRlbWVudCBldCBmYWNpbGVtZW50LCB2b3VzIHBvdXZleiBjb25zdHJ1aXJlIHVuZSBjYXJ0ZSDDoCBwYXJ0aXIgZFwndW4gZmljaGllciBHUFguPC9wPgo8aDM+Q29tbWVudCBwdWlzLWplIHV0aWxpc2VyPC9oMz4KPHA+KCgxKSBQcmVtacOocmVtZW50IHZvdXMgZGV2ZXogaW5zw6lyZXIgdm90cmUgY2zDqSBBUEkgR29vZ2xlIE1hcHMgZGFucyBsYSBzZWN0aW9uIGFkbWluLCBldCBsZXMgcHLDqWbDqXJlbmNlcyBkZSBjb25maWd1cmF0aW9uLiBMYSBjbGVmIHNcJ29idGllbnQgYXByw6hzIGluc2NyaXB0aW9uIMOgIGxcJ2FkcmVzc2UgOiBodHRwOi8vd3d3Lmdvb2dsZS5jb20vYXBpcy9tYXBzL3NpZ251cC5odG1sLjwvcD4KPHA+KDIpICkgRW5zdWl0ZSwgdm91cyBkZXZleiBpbnPDqXJlciB2b3RyZSBjbMOpIEFQSSBHw6lvcG9ydGFpbCBkYW5zIGxhIHNlY3Rpb24gYWRtaW4sIGV0IGxlcyBwcsOpZsOpcmVuY2VzIGRlIGNvbmZpZ3VyYXRpb24uIExhIGNsZWYgc1wnb2J0aWVudCBhcHLDqHMgaW5zY3JpcHRpb24gw6AgbFwnYWRyZXNzZSBodHRwczovL2FwaS5pZ24uZnIvR2VvcG9ydGFpbC9yZWdpc3RyYXRpb24uZG8gLiAKVm91cyBkZXZleiBzaWduZXIgdW4gY29udHJhdCBwb3VyIGF1IG1vaW5zIGxlcyBjb3VjaGVzIHN1aXZhbnRlcyA6IGNhcnRlIElHTiAoV01TQzpHRU9HUkFQSElDQUxHUklEU1lTVEVNUy5NQVBTKSBldCBjYXJ0ZSBwaG90b3MgYcOpcmnDqG5uZXMgUEhPVE8gTUFQUyAoV01TQzpPUlRIT0lNQUdFUlkuT1JUSE9QSE9UT1MpPC9wPgo8cD4oMykgTGVzIGZvbmRzIGRlIGNhcnRlcyBHb29nbGVNYXBzIGV0IEdlb3BvcnRhaWxzIHNvbnQgYWZmaWNow6lzIGRhbnMgZGVzIG9uZ2xldHMgZGlmZsOpcmVudHMuIFBvdXIgcGVyc29ubmFsaXNlciBsYSBtaXNlIGVuIGZvcm1lIGRlIGNlcyBvbmdsZXRzLCB2b3VzIGRldmV6IGludMOpZ3JlciBkYW5zIHZvcyBmaWNoaWVycyBDU1MgbGVzIGxpZ25lcyBzdWl2YW50ZXMgOiA8L3A+CjxwPjxwcmU+Ci8qIC0tLS0tLS0tLS0tLSBUYWJzIEdQWCBNYXBzIC0tLS0tLS0tLS0tLS0gKi8KdWwjdGFibmF2IHsKICAgIGZvbnQ6IGJvbGQgMTFweCB2ZXJkYW5hLCBhcmlhbCwgc2Fucy1zZXJpZjsKICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgIHBhZGRpbmctYm90dG9tOiAyOHB4OwogICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM2NjY2NjY7CiAgICBtYXJnaW46IDA7Cn0KdWwjdGFibmF2IGxpIHsKICAgIGZsb2F0OiBsZWZ0OwogICAgaGVpZ2h0OiAyMXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogI0YwRjBGMDs7CiAgICBtYXJnaW46IDJweCAycHggMHB4IDJweDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM2NjY2NjY7CiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KdWwjdGFibmF2IGxpLmFjdGl2ZSB7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0YwRjBGMDsKICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7CiAgICBjb2xvciA6ICMzMDFFMTI7CiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KI3RhYm5hdiBhIHsKICAgIGZsb2F0OiBsZWZ0OwogICAgZGlzcGxheTogYmxvY2s7CiAgICBjb2xvciA6ICM2NjY2NjY7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICBwYWRkaW5nOiA0cHg7Cn0KI3RhYm5hdiBsaTpob3ZlciwgI3RhYm5hdiBhOmhvdmVyIHsKICAgIGJhY2tncm91bmQ6ICNmZmY7Cn0KLyogLS0tLS0tLS0tLS0tIEVuZCBUYWJzIEdQWCBNYXBzIC0tLS0tLS0tLS0tLS0gKi8KCjwvcHJlPjwvcD4KPHA+KDQpIEVuc3VpdGUsIHZvdXMgZGV2ZXogZMOpZmluaXIgdW5lIG91IHBsdXNpZXVycyBjYXJ0ZXMgZGFucyBsXCdpbnRlcmZhY2UgYWRtaW4uIE5vdGV6IHF1ZSBjZWxhIGTDqWZpbml0IHNpbXBsZW1lbnQgbGEgbWFuacOocmUgZG9udCBsYSBjYXJ0ZSBzZXJhIGludMOpZ3LDqSBkYW5zIHZvdHJlIHBhZ2UuPC9wPgo8cD4oNSkgRW5maW4sIHBvdXIgaW5jbHVyZSBsYSBjYXJ0ZSBkYW5zIHZvdHJlIHBhZ2UgZGUgY29udGVudSwgw6ljcml2ZXogbGEgbGlnbmUgOjwvcD4KPHA+PHByZT57U2ltcGxlR1BYTWFwIG1hcD1cJ215bWFwXCcgZ3B4ZmlsZT1cJy4vdXBsb2Fkcy95b3VyZ3B4ZmlsZS5ncHhcJ308L3ByZT48L3A+CjxoMz5VdGlsaXNhdGlvbiAgYXZhbmPDqWU8L2gzPgo8cD48Yj5PcHRpb25zIGNvbW11bmVzPC9iPjwvcD4KPHA+PGI+Tm9tPC9iPiA6IENlIGNoYW1wIGTDqWZpbml0IGxlIG5vbSBkZSB2b3RyZSBjYXJ0ZS48YnI+CjxiPkRlc2NyaXB0aW9uPC9iPiA6IExhIGRlc2NyaXB0aW9uIGRlIHZvdHJlIGNhcnRlPGJyPgo8Yj5MYXJnZXVyPC9iPiA6IExhIGxhcmdldXIgZGUgdm9zIGNhcnRlcyBkYW5zIHZvdHJlIHBhZ2UgZGUgY29udGVudS4gTGEgbGFyZ2V1ciBkb2l0IMOqdHJlIG1pcyBlbiBwaXhlbC4gTmUgcGxhY2V6IHBhcyBsXCd1bml0w6kuPGJyPgo8Yj5IYXV0ZXVyPC9iPiA6IExhIGhhdXRldXIgZGUgdm9zIGNhcnRlcyBkYW5zIHZvdHJlIHBhZ2UgZGUgY29udGVudS4gTGEgaGF1dGV1ciBkb2l0IMOqdHJlIGTDqWZpbmllIGVuIHBpeGVsLiBOZSBwbGFjZXogcGFzIGxcJ3VuaXTDqS48YnI+CjxiPkNvdWxldXIgZGUgbGEgVHJhY2U8L2I+IDogTGEgY291bGV1ciBkb2l0IMOqdHJlIGRvbm7DqWUgZW4gaGV4YWTDqWNpbWFsIChwYXIgZXhlbXBsZSBkZSBsYSB2YWxldXIgIiMwMDAwRkYiKS4gQ2V0dGUgb3B0aW9uIGVzdCBmYWN1bHRhdGl2ZS4gUGFyIGTDqWZhdXQsIGxhIGNvdWxldXIgZXN0IGxhIGNvdWxldXIgcGFyIGTDqWZhdXQgZHUgbW90ZXVyIGRlIGNhcnRlcy48YnI+CjxiPkVwYWlzc2V1ciBkZSBsYSBUcmFjZTwvYj4gOiBsXGVwYWlzc2V1ciBkZSBsYSB0cmFjZSwgY2VsbGUgY2kgZG9pdCDDqnRyZSBkb25uw6llIGVuIHBpeGVsLjxicj4KPGI+TGUgbW90ZXVyIGRlIGNhcnRlIGFmZmljaMOpIHBhciBkw6lmYXV0PC9iPiA6IFZvdXMgYXZleiBsZSBjaG9peCBlbnRyZSBsZXMgdmFsZXVyczogIkdvb2dsZSIgb3UgIkfDqW9wb3J0YWlsIi4gQ2UgY2hhbXAgcGVybWV0IGRlIGTDqWZpbmlyIGxlIG1vdGV1ciBkZSBjYXJ0ZXMgYWZmaWNow6llcyBwYXIgZMOpZmF1dCBkYW5zIHZvdHJlIHBhZ2UgZGUgY29udGVudS4gQXR0ZW50aW9uIGNldHRlIG9wdGlvbiBlc3Qgb2JsaWdhdG9pcmUuPC9wPgo8YnI+CjxwPjxiPk9wdGlvbnMgR2VvUG9ydGFpbHM8L2I+PC9wPgo8cD48Yj5PcGFjaXTDqSBkZSBsYSBjYXJ0ZSBJR048L2I+IDogY2V0dGUgb3B0aW9uIGTDqWZpbml0IGxlIG5pdmVhdSBkXCdvcGFjaXTDqSBkZSBsYSBjYXJ0ZSBJR04uIExlcyB2YWxldXJzIGF1dG9yaXPDqWVzIHZvbnQgZGUgMCDDoCAxMC4gQXZlYyBsYSB2YWxldXIgIjAiLCBsYSBjYXJ0ZSBlc3QgdG90YWxlbWVudCB0cmFuc3BhcmVudGUuPC9icj4KPGI+T3BhY2l0w6kgZGUgbGEgY2FydGUgcGhvdG88L2I+IDogY2V0dGUgb3B0aW9uIGTDqWZpbml0IGxlIG5pdmVhdSBkXCdvcGFjaXTDqSBkZXMgY2FydGVzIHBob3RvIHNhdGVsbGl0ZS4gTGVzIHZhbGV1cnMgYXV0b3Jpc8OpZXMgdm9udCBkZSAwIMOgIDEwLiBBdmVjIGxhIHZhbGV1ciAiMCIsIGxhIGNhcnRlIGVzdCB0b3RhbGVtZW50IHRyYW5zcGFyZW50ZS48L2JyPgo8Yj5Ew6lwbG95ZXIgbGUgY29udHLDtGxlIGRlIGNvdWNoZTwvYj4gOiBsZSBjb250csO0bGUgZGUgY291Y2hlIGVzdCBkw6lwbG95w6ksIHNpIGNldHRlIG9wdGlvbiBlc3QgY29jaMOpZTwvYnI+CjxiPkTDqXBsb3llciBsZSBjb250csO0bGUgZGUgWm9vbTwvYj4gOiBMZSBjb250csO0bGUgZGUgem9vbSBlc3QgZMOpcGxvecOpLCBzaSBjZXR0ZSBvcHRpb24gZXN0IGNvY2jDqWUuLgo8L3A+Cjxicj4KPHA+PGI+T3B0aW9ucyBHb29nbGVtYXBzPC9iPjwvcD4KPHA+CjxiPkNhcnRlIGFmZmljaMOpZTwvYj4gOiBEw6lmaW5pZSBsYSBjYXJ0ZSBHb29nbGUgcXVpIHNlcmEgYWZmaWNow6llIHBhciBkw6lmYXV0LiBWb3VzIGF2ZXogbGUgY2hvaXggZW50cmUgbGVzIGNhcnRlcyBzdWl2YW50ZXM6IEdfTk9STUFMX01BUCwgR19TQVRFTExJVEVfTUFQLCBHX0hZQlJJRF9NQVAsIEdfUEhZU0lDQUxfTUFQLiBSZW1hcnF1ZSA6IHBhciBsZSBjb250csO0bGUgZGUgY291Y2hlcywgdm91cyBwb3V2ZXogbW9kaWZpZXIgY2UgY2hvaXggZGFucyB2b3RyZSBwYWdlIGRlIGNvbnRlbnUuIDxicj4KPGI+VGFpbGxlIGR1IGNvbnRyw7RsZSBkZSB6b29tPC9iPiA6IFZvdXMgcG91dmV6IGNob2lzaXIgbGEgdGFpbGxlIGR1IGNvbnRyw7RsZSBkZSB6b29tOiBcJ1NtYWxsXCcgb3UgXCdMYXJnZVwnIDxicj4KPGI+T3JpZW50YXRpb24gZHUgY29udHLDtGxlIGRlIGNvdWNoZXM8L2I+IDogVm91cyBwb3V2ZXogY2hvaXNpciBs4oCZb3JpZW50YXRpb24gZHUgY29udHLDtGxlIGRlIGNvdWNoZTogXCd2ZXJ0aWNhbFwnIG91IFwnaG9yaXpvbnRhbFwnIDxicj4KPGI+QWZmaWNoZXIgbFwnw6ljaGVsbGU8L2I+IDogw6AgZMOpZmluaXIsIHNpIHZvdXMgdm91bGV6IGFmZmljaGVyIHVuZSDDqWNoZWxsZSBzdXIgdm90cmUgY2FydGUuCjxicj4KPGI+QWN0aXZlciBkZSBsYSBmb25jdGlvbiBkZSB6b29tIHBhciBsYSBzb3VyaXM8L2I+IDogcG91ciBtb2RpZmllciBsZSB6b29tIGF2ZWMgbGEgbW9sZXR0ZSBjZW50cmFsZSBkZSBsYSBzb3VyaXMuPC9wPgoKPHA+CjxiPkFmZmljaGVyIGxlcyBwaG90b3MgcGFub3JhbWlhPC9iPiA6IGNvY2hleiBjZXR0ZSBvcHRpb24gcG91ciBhZmZpY2hlciBsYSBjYXJ0ZSBkZXMgcGhvdG9zIHBhbm9yYW1pYS48YnI+CjxiPkFmZmljaGVyIGxlcyBsaWVucyBXaWtpcGVkaWE8L2I+IDogY29jaGV6IGNldHRlIG9wdGlvbiBwb3VyIGFmZmljaGVyIGxlcyBsaWVucyBXaWtpcMOpZGlhLgo8L3A+CjxwPgo8Yj5JY8O0bmUgZHUgcHJlbWllciBtYXJxdWV1cjwvYj4gOiBjZSBtb2R1bGUgcGVybWV0IGRlIGTDqWZpbmlyIGxcJ2ljw7RuZSBkdSBwcmVtaWVyIG1hcnF1ZXVyLiBTaSBhdWN1biBpY8O0bmUgblwnZXN0IGTDqWZpbmksIGxlIG1hcnF1ZXVyIHBhciBkw6lmYXV0IGRlIEdvb2dsZSBzZXJhIHV0aWxpc8OpLiA8YnI+CjxiPkljw7RuZSBkdSBkZXJuaWVyIG1hcnF1ZXVyPC9iPiA6IGNlIG1vZHVsZSBwZXJtZXQgZGUgZMOpZmluaXIgbFwnaWPDtG5lIGR1IGRlcm5pZXIgbWFycXVldXIuIFNpIGF1Y3VuIGljw7RuZSBuXCdlc3QgZMOpZmluaSwgbGUgbWFycXVldXIgcGFyIGTDqWZhdXQgZGUgR29vZ2xlIHNlcmEgdXRpbGlzw6kuIDxicj4KPGI+SWPDtG5lIGRlcyBtYXJxdWV1cnM8L2I+IDogY2UgbW9kdWxlIHBlcm1ldCBkZSBkw6lmaW5pciBsXCdpY8O0bmUgZGVzIG1hcnF1ZXVycy4gU2kgYXVjdW4gaWPDtG5lIG5cJ2VzdCBkw6lmaW5pLCBsZSBtYXJxdWV1ciBwYXIgZMOpZmF1dCBkZSBHb29nbGUgc2VyYSB1dGlsaXPDqS48L3A+CjxwPjxicj4KUG91ciB0b3VzIGxlcyBtYXJxdWV1cnMsIG5vdXMgZGV2b25zIGTDqWZpbmlyIGxlcyBkb21haW5lcyBzdWl2YW50cyA6PGJyPiAKPGI+SWPDtG5lPC9iPiA6IGdpdmUgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgaWNvbiBmb3IgdGhlIG1hcmtlcjxicj4KPGI+T21icmUgPC9iPiA6IGdpdmUgdGhlIGZ1bGwgcGF0aCBvZiB0aGUgc2hhZG93IG9mIHRoZSBpY29uIGZvciB0aGUgbWFya2VyPGJyPgo8Yj5MYXJnZXVyIGRlIGzigJlpY8O0bmUgPC9iPiA6IGxhIGxhcmdldXIgZGUgbFwnaW1hZ2UsIGRvbm7DqWUgZW4gcGl4ZWxzPGJyPgo8Yj5IYXV0ZXVyIGRlIGzigJlpY8O0bmUgPC9iPiA6IGxhIGhhdXRldXIgZGUgbFwnaW1hZ2UsIGRvbm7DqWUgZW4gcGl4ZWxzLgo8L3A+CjxwPgo8Yj5MYXJnZXVyIGRlIGxcJ29tYnJlIGRlIGxcJ2ljw7RuZSA8L2I+IDogbGEgbGFyZ2V1ciBkZSBsXCdpbWFnZSBkZSBsXCdvbWJyZTsgZG9ubsOpZSBlbiBwaXhlbHMuPGJyPgo8Yj5IYXV0ZXVyIGRlIGzigJlvbWJyZSBkZSBs4oCZaWPDtG5lPC9iPiA6IGxhIGhhdXRldXIgZGUgbFwnaW1hZ2UgZGUgbFwnb21icmU7IGRvbm7DqWUgZW4gcGl4ZWxzPGJyPgo8YnI+CjxiPkTDqWNhbGFnZSBzZWxvbiBYIGRlIGxcJ2ljw7RuZSA8L2I+IDogbGUgZMOpY2FsYWdlIGVudHJlIGxhIGxvY2FsaXNhdGlvbiBldCBsZSBtYXJxdWV1cjsgZG9ubsOpZSBlbiBwaXhlbHMgPGJyPgo8Yj5Ew6ljYWxhZ2Ugc2Vsb24gWSBkZSBsXCdpY8O0bmU8L2I+IDogbGUgZMOpY2FsYWdlIGVudHJlIGxhIGxvY2FsaXNhdGlvbiBldCBsZSBtYXJxdWV1cjsgZG9ubsOpZSBlbiBwaXhlbHMgPGJyPgo8YnI+CjxiPkTDqWNhbGFnZSBzZWxvbiBYIGRlIGxhIGZlbsOqdHJlIGRcJ2luZm9ybWF0aW9uPC9iPiA6IGxlIGTDqWNhbGFnZSBlbnRyZSBsZXMgZmVuw6p0cmVzIGRcJ2luZm9ybWF0aW9ucyBldCBsZSBtYXJxdWV1cjsgZG9ubsOpZSBlbiBwaXhlbHMuPGJyPgo8Yj5Ew6ljYWxhZ2Ugc2Vsb24gWSBkZSBsYSBmZW7DqnRyZSBkXCdpbmZvcm1hdGlvbjwvYj4gOiBsZSBkw6ljYWxhZ2UgZW50cmUgbGVzIGZlbsOqdHJlcyBkXCdpbmZvcm1hdGlvbnMgZXQgbGUgbWFycXVldXI7IGRvbm7DqWUgZW4gcGl4ZWxzLjxicj4KPC9wPgo8cD4KQnkgZXhhbXBsZSB5b3UgY2FuIHVzZWQgdGhlIGZvbGxvd2luZyB2YWx1ZXMgOiAKPC9wPgo8cD48cHJlPgpzdGFydCBpY29uCQkJbW9kdWxlcy9TaW1wbGVHUFhNYXAvaW1hZ2VzL3N0YXJ0X2ZyLnBuZwpzdGFydCBzaGFkb3cgaWNvbgkJbW9kdWxlcy9TaW1wbGVHUFhNYXAvaW1hZ2VzL3N0YXJ0c2hhZG93X2ZyLnBuZwp3aWR0aCBzdGFydCBpY29uCQk4NQpoZWlnaHQgc3RhcnQgaWNvbgkJMzQKd2lkdGggc2hhZG93IHN0YXJ0IGljb24JIAk4NQpoZWlnaHQgc2hhZG93IHN0YXJ0IGljb24JMzQKT2Zmc2V0IHggb2Ygc3RhcnQgaWNvbgkgCTEwCk9mZnNldCB5IG9mIHN0YXJ0IGljb24JIAkzMApPZmZzZXQgeCBvZiB0aGUgbWVzc2FnZSAgCTUKT2Zmc2V0IHkgb2YgdGhlIG1lc3NhZ2UJIAkxCgplbmQgaWNvbgkJCW1vZHVsZXMvU2ltcGxlR1BYTWFwL2ltYWdlcy9lbmRfZnIucG5nCmVuZCBzaGFkb3cgaWNvbgkJCW1vZHVsZXMvU2ltcGxlR1BYTWFwL2ltYWdlcy9lbmRzaGFkb3dfZnIucG5nCndpZHRoIGVuZCBpY29uCQkJOTcKaGVpZ2h0IGVuZCBpY29uCQkJMzQKd2lkdGggb2Ygc2hhZG93IGVuZCBpY29uCTk3CmhlaWdodCBzaGFkb3cgZW5kIGljb24JIAkzNApPZmZzZXQgeCBvZiBlbmQgaWNvbgkgCTc1Ck9mZnNldCB5IG9mIGVuZCBpY29uCSAJMzAKT2Zmc2V0IHggb2YgdGhlIG1lc3NhZ2UgIAk2NQpPZmZzZXQgeSBvZiB0aGUgbWVzc2FnZSAgCTEKPC9wcmU+PC9wPgo8aDM+U3VwcG9ydDwvaDM+CjxwPlRoaXMgbW9kdWxlIGRvZXMgbm90IGluY2x1ZGUgY29tbWVyY2lhbCBzdXBwb3J0LiBIb3dldmVyLCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBoZWxwIHlvdSB3aXRoIGl0OjwvcD4KPHA+QXMgcGVyIHRoZSBHUEwsIHRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgYXMtaXMuIFBsZWFzZSByZWFkIHRoZSB0ZXh0Cm9mIHRoZSBsaWNlbnNlIGZvciB0aGUgZnVsbCBkaXNjbGFpbWVyLjwvcD4KCjxoMz5TZWN1cml0eTwvaDM+CjxwPlVzZXIgbXVzdCBoYXZlICJVc2UgR1BYTWFwcyIgcGVybWlzc2lvbnMgc2V0IHRvIGVkaXQgbWFwczwvcD4KJzsKCi8vcGFyYW0gaGVscAokbGFuZ1snaGVscF9wYXJhbV9tYXAnXSA9ICdTZXQgd2hpY2ggbWFwIHRvIHNob3cnOwoKCi8vdGFibGUgZmllbGRzCiRsYW5nWyd0X25hbWUnXSA9ICdOb20nOwokbGFuZ1sndF9iZWxvbmdzX3RvJ10gPSAnQXBwYXJ0aWVudCBhdSBtYXAnOwokbGFuZ1sndF9kZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ3RfY2FydGVieWRlZmF1bHQnXSA9ICdDYXJ0ZSBhZmZpY2jDqWUnOwokbGFuZ1sndF93aWR0aCddID0gJ0xhcmdldXInOwokbGFuZ1sndF9oZWlnaHQnXSA9ICdIYXV0ZXVyJzsKJGxhbmdbJ3RfdHJhY2Vjb2xvciddID0gJ0NvdWxldXIgZGUgbGEgdHJhY2UnOwokbGFuZ1sndF90cmFjZXdpZHRoJ10gPSAnRXBhaXNzZXVyIGRlIGxhIHRyYWNlJzsKJGxhbmdbJ3RfZmlybXNlbGVjdGVkJ10gPSAnTGUgbW90ZXVyIGRlIGNhcnRlIGFmZmljaMOpIHBhciBkw6lmYXV0JzsKCgokbGFuZ1sndF9zbWFsbGNvbnRyb2wnXSA9ICdUYWlsbGUgZHUgY29udHLDtGxlIGRlIHpvb20gJzsKJGxhbmdbJ3RfaG9yaXpvbnRhbGNvbnRyb2wnXSA9ICdPcmllbnRhdGlvbiBkdSBjb250csO0bGUgZGUgY291Y2hlcyc7CiRsYW5nWyd0X2VjaGVsbGVjb250cm9sJ10gPSAnQWZmaWNoZXIgbFwnZWNoZWxsZSc7CiRsYW5nWyd0X3pvb21lbmFibGUnXSA9ICdBY3RpdmVyIGRlIGxhIGZvbmN0aW9uIGRlIHpvb20gcGFyIGxhIHNvdXJpcyc7CgokbGFuZ1sndF9vcGFjaXR5aWduJ10gPSAnT3BhY2l0w6kgZGUgbGEgY2FydGUgSUdOJzsKJGxhbmdbJ3Rfb3BhY2l0eXBob3RvJ10gPSAnT3BhY2l0w6kgZGUgbGEgY2FydGUgcGhvdG8nOwokbGFuZ1sndF9leHBhbmRsYXllcnNjb250cm9sJ10gPSAnRMOpcGxveWVyIGxlIGNvbnRyw7RsZSBkZSBjb3VjaGUnOwokbGFuZ1sndF9leHBhbmR0b29sY29udHJvbCddID0gJ0TDqXBsb3llciBsZSBjb250csO0bGUgZGUgWm9vbSc7CgoKJGxhbmdbJ3Rfc2hvd3Bob3RvcGFub3JhbWlhJ10gPSAnQWZmaWNoZXIgbGVzIHBob3RvcyBQYW5vcmFtaWEnOwokbGFuZ1sndF9zaG93d2lraXBlZGlhJ10gPSAnQWZmaWNoZXIgbGVzIGxpZW5zIFdpa2lwZWRpYSc7CgokbGFuZ1sndF9zdGFydGljb25pbWFnZSddID0gJ0NoZW1pbiBjb21wbGV0IGRlIGwgaWPDtG5lIGR1IHByZW1pZXIgbWFycXVldXInOwokbGFuZ1sndF9zdGFydGljb25zaGFkb3cnXSA9ICdDaGVtaW4gY29tcGxldCBkZSBsIG9tYnJlIGRlIGwgaWPDtG5lIGR1IHByZW1pZXIgbWFycXVldXInOwokbGFuZ1sndF9zdGFydGljb25pc3dpZHRoJ10gPSAnTGFyZ2V1ciBkZSBsIGljb25lIGR1IHByZW1pZXIgbWFycXVldXInOwokbGFuZ1sndF9zdGFydGljb25pc2hlaWdoJ10gPSAnSGF1dGV1ciBkZSBsIGljb25lIGR1IHByZW1pZXIgbWFycXVldXInOwokbGFuZ1sndF9zdGFydGljb25zc3dpZHRoJ10gPSAnTGFyZ2V1ciBkZSBsIG9tYnJlIGRlIGwgaWNvbmUgZHUgcHJlbWllciBtYXJxdWV1cic7CiRsYW5nWyd0X3N0YXJ0aWNvbnNzaGVpZ2gnXSA9ICdIYXV0ZXVyIGRlIGwgb21icmUgZGUgbCBpY29uZSBkdSBwcmVtaWVyIG1hcnF1ZXVyJzsKJGxhbmdbJ3Rfc3RhcnRpY29uaWFsZWZ0J10gPSAnRMOpY2FsYWdlIGVuIHggZGUgbCBpY29uZSBkdSBwcmVtaWVyIG1hcnF1ZXVyJzsKJGxhbmdbJ3Rfc3RhcnRpY29uaWF0b3AnXSA9ICdEw6ljYWxhZ2UgZW4geSBkZSBsIGljb25lIGR1IHByZW1pZXIgbWFycXVldXInOwokbGFuZ1sndF9zdGFydGljb25pd2FsZWZ0J10gPSAnRMOpY2FsYWdlIGVuIHggZGUgbGEgYnVsbGUgZCBpbmZvcm1hdGlvbic7CiRsYW5nWyd0X3N0YXJ0aWNvbml3YXRvcCddID0gJ0TDqWNhbGFnZSBlbiB5IGRlIGxhIGJ1bGxlIGQgaW5mb3JtYXRpb24nOwoKJGxhbmdbJ3RfZW5kaWNvbmltYWdlJ10gPSAnQ2hlbWluIGNvbXBsZXQgZGUgbCBpY8O0bmUgZHUgZGVybmllciBtYXJxdWV1ciAnOwokbGFuZ1sndF9lbmRpY29uc2hhZG93J10gPSAnQ2hlbWluIGNvbXBsZXQgZGUgbCBvbWJyZSBkZSBsIGljw7RuZSBkdSBkZXJuaWVyIG1hcnF1ZXVyICc7CiRsYW5nWyd0X2VuZGljb25pc3dpZHRoJ10gPSAnTGFyZ2V1ciBkZSBsIGljw7RuZSBkdSBkZXJuaWVyIG1hcnF1ZXVyICc7CiRsYW5nWyd0X2VuZGljb25pc2hlaWdoJ10gPSAnSGF1dGV1ciBkZSBsIGljw7RuZSBkdSBkZXJuaWVyIG1hcnF1ZXVyICc7CiRsYW5nWyd0X2VuZGljb25zc3dpZHRoJ10gPSAnTGFyZ2V1ciBkZSBsIG9tYnJlIGRlIGwgaWPDtG5lIGR1IGRlcm5pZXIgbWFycXVldXIgJzsKJGxhbmdbJ3RfZW5kaWNvbnNzaGVpZ2gnXSA9ICdIYXV0ZXVyIGRlIGwgb21icmUgZGUgbCBpY8O0bmUgZHUgZGVybmllciBtYXJxdWV1ciAnOwokbGFuZ1sndF9lbmRpY29uaWFsZWZ0J10gPSAnRMOpY2FsYWdlIGVuIHggZGUgbCBpY8O0bmUgZHUgZGVybmllciBtYXJxdWV1ciAnOwokbGFuZ1sndF9lbmRpY29uaWF0b3AnXSA9ICdEw6ljYWxhZ2UgZW4geSBkZSBsIGljw7RuZSBkdSBkZXJuaWVyIG1hcnF1ZXVyICc7CiRsYW5nWyd0X2VuZGljb25pd2FsZWZ0J10gPSAnRMOpY2FsYWdlIGVuIHggZGUgbGEgYnVsbGUgZCBpbmZvcm1hdGlvbic7CiRsYW5nWyd0X2VuZGljb25pd2F0b3AnXSA9ICdEw6ljYWxhZ2UgZW4geSBkZSBsYSBidWxsZSBkIGluZm9ybWF0aW9uJzsKCiRsYW5nWyd0X2RlZmF1bHRpY29uaW1hZ2UnXSA9ICdDaGVtaW4gY29tcGxldCBkZSBsIGljw7RuZSBkZXMgbWFycXVldXJzJzsKJGxhbmdbJ3RfZGVmYXVsdGljb25zaGFkb3cnXSA9ICdDaGVtaW4gY29tcGxldCBkZSBsIG9tYnJlIGRlIGwgaWNvbmUgZGVzIG1hcnF1ZXVycyc7CiRsYW5nWyd0X2RlZmF1bHRpY29uaXN3aWR0aCddID0gJ0xhcmdldXIgZGUgbCBpY8O0bmUgZGVzIG1hcnF1ZXVycyc7CiRsYW5nWyd0X2RlZmF1bHRpY29uaXNoZWlnaCddID0gJ0hhdXRldXIgZGUgbCBpY8O0bmUgZGVzIG1hcnF1ZXVycyc7CiRsYW5nWyd0X2RlZmF1bHRpY29uc3N3aWR0aCddID0gJ0xhcmdldXIgZGUgbCBvbWJyZSBkZSBsIGljw7RuZSBkZXMgbWFycXVldXJzJzsKJGxhbmdbJ3RfZGVmYXVsdGljb25zc2hlaWdoJ10gPSAnSGF1dGV1ciBkZSBsIG9tYnJlIGRlIGwgaWPDtG5lIGRlcyBtYXJxdWV1cnMnOwokbGFuZ1sndF9kZWZhdWx0aWNvbmlhbGVmdCddID0gJ0TDqWNhbGFnZSBlbiB4IGRlIGwgaWPDtG5lIGRlcyBtYXJxdWV1cnMnOwokbGFuZ1sndF9kZWZhdWx0aWNvbmlhdG9wJ10gPSAnRMOpY2FsYWdlIGVuIHkgZGUgbCBpY8O0bmUgZGVzIG1hcnF1ZXVycyc7CiRsYW5nWyd0X2RlZmF1bHRpY29uaXdhbGVmdCddID0gJ0TDqWNhbGFnZSBlbiB4IGRlIGxhIGJ1bGxlIGQgaW5mb3JtYXRpb24nOwokbGFuZ1sndF9kZWZhdWx0aWNvbml3YXRvcCddID0gJ0TDqWNhbGFnZSBlbiB5IGRlIGxhIGJ1bGxlIGQgaW5mb3JtYXRpb24nOwoKJGxhbmdbJ3Rfb3B0aW9uc2NvbW1vbiddID0gJ09wdGlvbnMgY29tbXVuZXMnOwokbGFuZ1sndF9vcHRpb25zZ29vZ2xlbWFwcyddID0gJ09wdGlvbnMgR29vZ2xlTWFwcyc7CiRsYW5nWyd0X29wdGlvbnNnZW9wb3J0YWlsJ10gPSAnb3B0aW9ucyBHZW9wb3J0YWlsJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/loadgpx/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/loadgpx/loadgpx.4.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLyBsb2FkZ3B4LjQuanMKLy8KLy8gSmF2YXNjcmlwdCBvYmplY3QgdG8gbG9hZCBHUFgtZm9ybWF0IEdQUyBkYXRhIGludG8gR29vZ2xlIE1hcHMuCi8vCi8vIENvcHlyaWdodCAoQykgMjAwNiBLYXogT2t1ZGEgKGh0dHA6Ly9ub3Rpb25zLm9rdWRhLmNhKQovLwovLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi8vIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi8vIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyCi8vIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgovLwovLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQovLyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgovLwovLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQovLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQovLyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxLCBVU0EuCi8vCi8vIElmIHlvdSB1c2UgdGhpcyBzY3JpcHQgb3IgaGF2ZSBhbnkgcXVlc3Rpb25zIHBsZWFzZSBsZWF2ZSBhIGNvbW1lbnQKLy8gYXQgaHR0cDovL25vdGlvbnMub2t1ZGEuY2EvZ2VvdGFnZ2luZy9wcm9qZWN0cy1pbS13b3JraW5nLW9uL2dweC12aWV3ZXIvCi8vIEEgbGluayB0byB0aGUgR1BMIGxpY2Vuc2UgY2FuIGFsc28gYmUgZm91bmQgdGhlcmUuCi8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8KLy8gSGlzdG9yeToKLy8gICAgcmV2aXNpb24gMSAtIEluaXRpYWwgaW1wbGVtZW50YXRpb24KLy8gICAgcmV2aXNpb24gMiAtIFJlbW92ZWQgTG9hZEdQWEZpbGVJbnRvR29vZ2xlTWFwIGFuZCBtYWRlIGl0IHRoZSBjYWxsZXJzCi8vICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eS4gIEFkZGVkIG1vcmUgb3B0aW9ucyAoY29sb3VyLCB3aWR0aCwgZGVsdGEpLgovLyAgICByZXZpc2lvbiAzIC0gV2F5cG9pbnQgcGFyc2luZyBub3cgY29tcGF0aWJsZSB3aXRoIEZpcmVmb3guCi8vICAgIHJldmlzaW9uIDQgLSBVcGdyYWRlZCB0byBHb29nbGUgTWFwcyBBUEkgdmVyc2lvbiAyLiAgVHJpZWQgY2hhbmdpbmcgdGhlIHdheQovLyAgICAgICAgICAgICAgIHRoYXQgdGhlIG1hcCBjYWxjdWxhdGVkIHRoZSB3YXkgdGhlIGNlbnRlciBhbmQgem9vbSBsZXZlbCwgYnV0Ci8vICAgICAgICAgICAgICAgR01BUCBBUEkgMiByZXF1aXJlcyB0aGF0IHlvdSBjZW50ZXIgYW5kIHpvb20gdGhlIG1hcCBmaXJzdC4KLy8gICAgICAgICAgICAgICBJIGhhdmUgbGVmdCB0aGUgYm91bmRpbmcgYm94IGNhbGN1bGF0aW9ucyBjb21tZW50ZWQgb3V0IGluIGNhc2UKLy8gICAgICAgICAgICAgICB0aGV5IG1pZ2h0IGNvbWUgaW4gaGFuZHkgaW4gdGhlIGZ1dHVyZS4KLy8gICAgcmV2aXNpb24gNC4xIEJ5IG1SZk1PIHRvIGFkZCBzZXZlcmFscyBtYXJrZXIgaWNvbnMKLy8gICAgICAgICAgICAgICAgICsgQWRkIGEgbWFya2VyIGZvciB0aGUgc3RhcnQgYW5kIHRlIGVuZCBvZiB0aGUgdHJhY2suCi8vICAgICAgICAgICAgICAgICAgICBUaGlzIG1hcmtlcnMgaXMgdXNlZCBvbmx5IG9uIHRoZSB0cmFja1BvaW50IChub3QgdGhlIHdheXBvaW50KQovLyAgICByZXZpc2lvbiA0LjIgQnkgbVJmTU8gdG8gYWxsb3cgdG8gbWlkaWZ5IHRoZSBtYXJrZXIgaWNvbnMKLy8gICAgICAgICAgICAgICAgICsgQWRkIGZ1bmN0aW9uIHRvIGNoYW5nZSB0aGUgaWNvbiBmb3IgdGhlIHN0YXJ0LCBlbmQgYW5kIGRlZmF1bHQgbWFya2VyLgovLwovLyBBdXRob3I6IEtheiBPa3VkYQovLyBVUkk6IGh0dHA6Ly9ub3Rpb25zLm9rdWRhLmNhL2dlb3RhZ2dpbmcvcHJvamVjdHMtaW0td29ya2luZy1vbi9ncHgtdmlld2VyLwovLwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpmdW5jdGlvbiBHUFhQYXJzZXIoeG1sRG9jLCBtYXApCnsKCXRoaXMueG1sRG9jID0geG1sRG9jOwoJdGhpcy5tYXAgPSBtYXA7Cgl0aGlzLnRyYWNrY29sb3VyID0gIiNmZjAwZmYiOyAvLyByZWQKCXRoaXMudHJhY2t3aWR0aCA9IDU7Cgl0aGlzLm1pbnRyYWNrcG9pbnRkZWx0YSA9IDAuMDAwMQoJCgkKICAgIHRoaXMuc3RhcnRfaWNvbiA9IG51bGw7CiAgICB0aGlzLmVuZF9pY29uID0gbnVsbDsKCXRoaXMuZGVmYXVsdF9pY29uID0gbnVsbDsKfQoKLy8gU2V0IHRoZSBzdGFydCBpY29uIG9mIHRoZSB0cmFjayBsaW5lIHNlZ2VtZW50cy4KR1BYUGFyc2VyLnByb3RvdHlwZS5TZXRTdGFydEljb24gPSBmdW5jdGlvbihpbWFnLHNoYWRvdyxpc3dpZHRoLGlzaGVpZ2gsc3N3aWR0aCxzc2hlaWdoLGlhbGVmdCxpYXRvcCxpd2FsZWZ0LGl3YXRvcCkKewoJLy8gaWYgdGhlIHBhdGggImltYWciIGlzIGVtcHR5LCB0aGUgR0ljb24gaXMgbm90IGNyZWF0ZWQKCS8vIHdlIHN1cHBvc2VkIHRoYXQgdGhlIGZpbGVzIChpbWFnIGFuZCBzaGFkb3cpIGV4aXN0IG9uIHRoZSBzZXJ2ZXIuCglpZihpbWFnICE9ICIiKSB7CgkJdGhpcy5zdGFydF9pY29uID0gbmV3IEdJY29uKCk7CgkgICAgdGhpcy5zdGFydF9pY29uLmltYWdlICA9IGltYWc7CiAgICAgICAgaWYgKHNoYWRvdyAhPSAiIikgdGhpcy5zdGFydF9pY29uLnNoYWRvdyA9IHNoYWRvdzsKICAgICAgICBpZiAoKGlzd2lkdGg+IDApICYmIChpc2hlaWdoPiAwKSkgdGhpcy5zdGFydF9pY29uLmljb25TaXplID0gbmV3IEdTaXplKGlzd2lkdGgsaXNoZWlnaCk7CiAgICAgICAgaWYgKChzc3dpZHRoPiAwKSAmJiAoc3NoZWlnaD4gMCkpIHRoaXMuc3RhcnRfaWNvbi5zaGFkb3dTaXplID0gbmV3IEdTaXplKHNzd2lkdGgsc3NoZWlnaCk7CiAgICAgICAgdGhpcy5zdGFydF9pY29uLmljb25BbmNob3IgPSBuZXcgR1BvaW50KGlhbGVmdCxpYXRvcCk7CiAgICAgICAgdGhpcy5zdGFydF9pY29uLmluZm9XaW5kb3dBbmNob3IgPSBuZXcgR1BvaW50KGl3YWxlZnQsaXdhdG9wKTsKCX0KfQovLyBTZXQgdGhlIGVuZCBpY29uIG9mIHRoZSB0cmFjayBsaW5lIHNlZ2VtZW50cy4KR1BYUGFyc2VyLnByb3RvdHlwZS5TZXRFbmRJY29uID0gZnVuY3Rpb24oaW1hZyxzaGFkb3csaXN3aWR0aCxpc2hlaWdoLHNzd2lkdGgsc3NoZWlnaCxpYWxlZnQsaWF0b3AsaXdhbGVmdCxpd2F0b3ApCnsKCS8vIGlmIHRoZSBwYXRoICJpbWFnIiBpcyBlbXB0eSwgdGhlIEdJY29uIGlzIG5vdCBjcmVhdGVkCgkvLyB3ZSBzdXBwb3NlZCB0aGF0IHRoZSBmaWxlcyAoaW1hZyBhbmQgc2hhZG93KSBleGlzdCBvbiB0aGUgc2VydmVyLgoJaWYoaW1hZyAhPSAiIikgewoJCXRoaXMuZW5kX2ljb24gPSBuZXcgR0ljb24oKTsKCSAgICB0aGlzLmVuZF9pY29uLmltYWdlID0gaW1hZzsKICAgICAgICBpZiAoc2hhZG93ICE9ICIiKSB0aGlzLmVuZF9pY29uLnNoYWRvdyA9IHNoYWRvdzsKICAgICAgICBpZiAoKGlzd2lkdGg+IDApICYmIChpc2hlaWdoPiAwKSkgdGhpcy5lbmRfaWNvbi5pY29uU2l6ZSA9IG5ldyBHU2l6ZShpc3dpZHRoLGlzaGVpZ2gpOwogICAgICAgIGlmICgoc3N3aWR0aD4gMCkgJiYgKHNzaGVpZ2g+IDApKSB0aGlzLmVuZF9pY29uLnNoYWRvd1NpemUgPSBuZXcgR1NpemUoc3N3aWR0aCxzc2hlaWdoKTsKICAgICAgICB0aGlzLmVuZF9pY29uLmljb25BbmNob3IgPSBuZXcgR1BvaW50KGlhbGVmdCxpYXRvcCk7CiAgICAgICAgdGhpcy5lbmRfaWNvbi5pbmZvV2luZG93QW5jaG9yID0gbmV3IEdQb2ludChpd2FsZWZ0LGl3YXRvcCk7Cgl9Cn0KLy8gU2V0IHRoZSBlbmQgaWNvbiBvZiB0aGUgdHJhY2sgbGluZSBzZWdlbWVudHMuCkdQWFBhcnNlci5wcm90b3R5cGUuU2V0RGVmYXVsdEljb24gPSBmdW5jdGlvbihpbWFnLHNoYWRvdyxpc3dpZHRoLGlzaGVpZ2gsc3N3aWR0aCxzc2hlaWdoLGlhbGVmdCxpYXRvcCxpd2FsZWZ0LGl3YXRvcCkKewoJLy8gaWYgdGhlIHBhdGggImltYWciIGlzIGVtcHR5LCB0aGUgR0ljb24gaXMgbm90IGNyZWF0ZWQKCS8vIHdlIHN1cHBvc2VkIHRoYXQgdGhlIGZpbGVzIChpbWFnIGFuZCBzaGFkb3cpIGV4aXN0IG9uIHRoZSBzZXJ2ZXIuCglpZihpbWFnICE9ICIiKSB7CgkJdGhpcy5kZWZhdWx0X2ljb24gPSBuZXcgR0ljb24oKTsKCSAgICB0aGlzLmRlZmF1bHRfaWNvbi5pbWFnZSAgPSBpbWFnOwogICAgICAgIGlmIChzaGFkb3cgIT0gIiIpIHRoaXMuZGVmYXVsdF9pY29uLnNoYWRvdyA9IHNoYWRvdzsKICAgICAgICBpZiAoKGlzd2lkdGg+IDApICYmIChpc2hlaWdoPiAwKSkgdGhpcy5kZWZhdWx0X2ljb24uaWNvblNpemUgPSBuZXcgR1NpemUoaXN3aWR0aCxpc2hlaWdoKTsKICAgICAgICBpZiAoKHNzd2lkdGg+IDApICYmIChzc2hlaWdoPiAwKSkgdGhpcy5kZWZhdWx0X2ljb24uc2hhZG93U2l6ZSA9IG5ldyBHU2l6ZShzc3dpZHRoLHNzaGVpZ2gpOwogICAgICAgIHRoaXMuZGVmYXVsdF9pY29uLmljb25BbmNob3IgPSBuZXcgR1BvaW50KGlhbGVmdCxpYXRvcCk7CiAgICAgICAgdGhpcy5kZWZhdWx0X2ljb24uaW5mb1dpbmRvd0FuY2hvciA9IG5ldyBHUG9pbnQoaXdhbGVmdCxpd2F0b3ApOwoJfQp9Ci8vIFNldCB0aGUgY29sb3VyIG9mIHRoZSB0cmFjayBsaW5lIHNlZ2VtZW50cy4KR1BYUGFyc2VyLnByb3RvdHlwZS5TZXRUcmFja0NvbG91ciA9IGZ1bmN0aW9uKGNvbG91cikKewoJdGhpcy50cmFja2NvbG91ciA9IGNvbG91cjsKfQoKLy8gU2V0IHRoZSB3aWR0aCBvZiB0aGUgdHJhY2sgbGluZSBzZWdlbWVudHMKR1BYUGFyc2VyLnByb3RvdHlwZS5TZXRUcmFja1dpZHRoID0gZnVuY3Rpb24od2lkdGgpCnsKCXRoaXMudHJhY2t3aWR0aCA9IHdpZHRoOwp9CgovLyBTZXQgdGhlIG1pbmltdW0gZGlzdGFuY2UgYmV0d2VlbiB0cmFja3BvaW50cy4KLy8gVXNlZCB0byBjdWxsIHVubmVlZGVkIHRyYWNrcG9pbnRzIGZyb20gbWFwLgpHUFhQYXJzZXIucHJvdG90eXBlLlNldE1pblRyYWNrUG9pbnREZWx0YSA9IGZ1bmN0aW9uKGRlbHRhKQp7Cgl0aGlzLm1pbnRyYWNrcG9pbnRkZWx0YSA9IGRlbHRhOwp9CgpHUFhQYXJzZXIucHJvdG90eXBlLlRyYW5zbGF0ZU5hbWUgPSBmdW5jdGlvbihuYW1lKQp7CglpZiAobmFtZSA9PSAid3B0IikKCXsKCQlyZXR1cm4gIldheXBvaW50IjsKCX0KCWVsc2UgaWYgKG5hbWUgPT0gInRya3B0IikKCXsKCQlyZXR1cm4gIlRyYWNrIFBvaW50IjsKCX0KfQoKCkdQWFBhcnNlci5wcm90b3R5cGUuQ3JlYXRlTWFya2VyID0gZnVuY3Rpb24ocG9pbnQsdW5pY29uKQp7Cgl2YXIgbG9uID0gcGFyc2VGbG9hdChwb2ludC5nZXRBdHRyaWJ1dGUoImxvbiIpKTsKCXZhciBsYXQgPSBwYXJzZUZsb2F0KHBvaW50LmdldEF0dHJpYnV0ZSgibGF0IikpOwoJdmFyIGh0bWwgPSAiIjsKCglpZiAocG9pbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKS5sZW5ndGggPiAwKQoJewoJCWZvciAoaT0wOyBpPHBvaW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIikuaXRlbSgwKS5jaGlsZE5vZGVzLmxlbmd0aDsgaSsrKQoJCXsKCQkJaHRtbCArPSBwb2ludC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpLml0ZW0oMCkuY2hpbGROb2Rlc1tpXS5ub2RlVmFsdWU7CgkJfQoJfQoJZWxzZQoJewoJCS8vIENyZWF0ZSB0aGUgaHRtbCBpZiBpdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgcG9pbnQuCgkJaHRtbCA9ICI8Yj4iICsgdGhpcy5UcmFuc2xhdGVOYW1lKHBvaW50Lm5vZGVOYW1lKSArICI8L2I+PGJyPiI7CgkJdmFyIGF0dHJpYnV0ZXMgPSBwb2ludC5hdHRyaWJ1dGVzOwoJCXZhciBhdHRybGVuID0gYXR0cmlidXRlcy5sZW5ndGg7CgkJZm9yIChpPTA7IGk8YXR0cmxlbjsgaSsrKQoJCXsKCQkJaHRtbCArPSBhdHRyaWJ1dGVzLml0ZW0oaSkubmFtZSArICIgPSAiICsgYXR0cmlidXRlcy5pdGVtKGkpLm5vZGVWYWx1ZSArICI8YnI+IjsKCQl9CgoJCWlmIChwb2ludC5oYXNDaGlsZE5vZGVzKQoJCXsKCQkJdmFyIGNoaWxkcmVuID0gcG9pbnQuY2hpbGROb2RlczsKCQkJdmFyIGNoaWxkcmVubGVuID0gY2hpbGRyZW4ubGVuZ3RoOwoJCQlmb3IgKGk9MDsgaTxjaGlsZHJlbmxlbjsgaSsrKQoJCQl7CgkJCQkvLyBJZ25vcmUgZW1wdHkgbm9kZXMKCQkJCWlmIChjaGlsZHJlbltpXS5ub2RlVHlwZSAhPSAxKSBjb250aW51ZTsKCQkJCWh0bWwgKz0gY2hpbGRyZW5baV0ubm9kZU5hbWUgKyAiID0gIiArIGNoaWxkcmVuW2ldLmZpcnN0Q2hpbGQubm9kZVZhbHVlICsgIjxicj4iOwoJCQl9CgkJfQoJfQoJCiAgICBpZiAodW5pY29uICE9IG51bGwpIHsKCQl2YXIgbWFya2VyID0gbmV3IEdNYXJrZXIobmV3IEdMYXRMbmcobGF0LGxvbikse2ljb246IHVuaWNvbixkcmFnZ2FibGU6IHRydWV9KTsKCX0gZWxzZSB7CgkgICB2YXIgbWFya2VyID0gbmV3IEdNYXJrZXIobmV3IEdMYXRMbmcobGF0LGxvbikpOwogICB9OwoJR0V2ZW50LmFkZExpc3RlbmVyKG1hcmtlciwgImNsaWNrIiwKCQlmdW5jdGlvbigpCgkJewoJCQltYXJrZXIub3BlbkluZm9XaW5kb3dIdG1sKGh0bWwpOwoJCX0KCSk7CgoJdGhpcy5tYXAuYWRkT3ZlcmxheShtYXJrZXIpOwoKCgkvLyBBbGwgbWV0aG9kcyB0aGF0IGFkZCBpdGVtcyB0byB0aGUgbWFwIHJldHVybiB0aGUgYm91bmRpbmcgYm94IG9mIHdoYXQgdGhleSBhZGRlZC4KCS8vdmFyIGxhdGxuZyA9IG5ldyBHTGF0TG5nKGxhdCxsb24pOwoJLy9yZXR1cm4gbmV3IEdMYXRMbmdCb3VuZHMobGF0bG5nLGxhdGxuZyk7Cn0KCgpHUFhQYXJzZXIucHJvdG90eXBlLkFkZFRyYWNrU2VnbWVudFRvTWFwID0gZnVuY3Rpb24odHJhY2tTZWdtZW50LCBjb2xvdXIsIHdpZHRoKQp7CgkvL3ZhciBsYXRsbmdib3VuZHMgPSBuZXcgR0xhdExuZ0JvdW5kcygpOwoKCXZhciB0cmFja3BvaW50cyA9IHRyYWNrU2VnbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHJrcHQiKTsKCWlmICh0cmFja3BvaW50cy5sZW5ndGggPT0gMCkKCXsKCQlyZXR1cm47IC8vbGF0bG5nYm91bmRzOwoJfQoKCXZhciBwb2ludGFycmF5ID0gW107CiAgICAKCS8vIHByb2Nlc3MgZmlyc3QgcG9pbnQKCXZhciBsYXN0bG9uID0gcGFyc2VGbG9hdCh0cmFja3BvaW50c1swXS5nZXRBdHRyaWJ1dGUoImxvbiIpKTsKCXZhciBsYXN0bGF0ID0gcGFyc2VGbG9hdCh0cmFja3BvaW50c1swXS5nZXRBdHRyaWJ1dGUoImxhdCIpKTsKCXZhciBsYXRsbmcgPSBuZXcgR0xhdExuZyhsYXN0bGF0LGxhc3Rsb24pOwoJcG9pbnRhcnJheS5wdXNoKGxhdGxuZyk7CgkvL2xhdGxuZ2JvdW5kcy5leHRlbmQobGF0bG5nKTsKCgkvLyBDcmVhdGUgYSBtYXJrZXIgYXQgdGhlIGJlZ2luaW5nIG9mIGVhY2ggdHJhY2sgc2VnbWVudAoJLy90aGlzLkNyZWF0ZU1hcmtlcih0cmFja3BvaW50c1swXSk7CgoJZm9yICh2YXIgaT0xOyBpIDwgdHJhY2twb2ludHMubGVuZ3RoOyBpKyspCgl7CgkJdmFyIGxvbiA9IHBhcnNlRmxvYXQodHJhY2twb2ludHNbaV0uZ2V0QXR0cmlidXRlKCJsb24iKSk7CgkJdmFyIGxhdCA9IHBhcnNlRmxvYXQodHJhY2twb2ludHNbaV0uZ2V0QXR0cmlidXRlKCJsYXQiKSk7CgoJCS8vIFZlcmlmeSB0aGF0IHRoaXMgaXMgZmFyIGVub3VnaCBhd2F5IGZyb20gdGhlIGxhc3QgcG9pbnQgdG8gYmUgdXNlZC4KCQl2YXIgbGF0ZGlmZiA9IGxhdCAtIGxhc3RsYXQ7CgkJdmFyIGxvbmRpZmYgPSBsb24gLSBsYXN0bG9uOwoJCWlmICggTWF0aC5zcXJ0KGxhdGRpZmYqbGF0ZGlmZiArIGxvbmRpZmYqbG9uZGlmZikgPiB0aGlzLm1pbnRyYWNrcG9pbnRkZWx0YSApCgkJewoJCQlsYXN0bG9uID0gbG9uOwoJCQlsYXN0bGF0ID0gbGF0OwoJCQlsYXRsbmcgPSBuZXcgR0xhdExuZyhsYXQsbG9uKTsKCQkJcG9pbnRhcnJheS5wdXNoKGxhdGxuZyk7CgkJCS8vbGF0bG5nYm91bmRzLmV4dGVuZChsYXRsbmcpOwoJCX0KCgl9CgoJdmFyIHBvbHlsaW5lID0gbmV3IEdQb2x5bGluZShwb2ludGFycmF5LCBjb2xvdXIsIHdpZHRoKTsKCgl0aGlzLm1hcC5hZGRPdmVybGF5KHBvbHlsaW5lKTsKCQogICAKCgkvLyBBbGwgbWV0aG9kcyB0aGF0IGFkZCBpdGVtcyB0byB0aGUgbWFwIHJldHVybiB0aGUgYm91bmRpbmcgYm94IG9mIHdoYXQgdGhleSBhZGRlZC4KCS8vcmV0dXJuIGxhdGxuZ2JvdW5kczsKfQoKR1BYUGFyc2VyLnByb3RvdHlwZS5BZGRUcmFja1RvTWFwID0gZnVuY3Rpb24odHJhY2ssIGNvbG91ciwgd2lkdGgpCnsKCXZhciBzZWdtZW50cyA9IHRyYWNrLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0cmtzZWciKTsKCS8vdmFyIGxhdGxuZ2JvdW5kcyA9IG5ldyBHTGF0TG5nQm91bmRzKCk7CgkKCQoJZm9yICh2YXIgaT0wOyBpIDwgc2VnbWVudHMubGVuZ3RoOyBpKyspCgl7CgkJdmFyIHNlZ21lbnRsYXRsbmdib3VuZHMgPSB0aGlzLkFkZFRyYWNrU2VnbWVudFRvTWFwKHNlZ21lbnRzW2ldLCBjb2xvdXIsIHdpZHRoKTsKCQkvL3RoaXMuQWRkVHJhY2tTZWdtZW50VG9NYXAoc2VnbWVudHNbaV0sIGNvbG91ciwgd2lkdGgpOwoJCS8vbGF0bG5nYm91bmRzLmV4dGVuZChzZWdtZW50bGF0bG5nYm91bmRzLmdldFNvdXRoV2VzdCgpKTsKCQkvL2xhdGxuZ2JvdW5kcy5leHRlbmQoc2VnbWVudGxhdGxuZ2JvdW5kcy5nZXROb3J0aEVhc3QoKSk7Cgl9CgoJLy8gQWxsIG1ldGhvZHMgdGhhdCBhZGQgaXRlbXMgdG8gdGhlIG1hcCByZXR1cm4gdGhlIGJvdW5kaW5nIGJveCBvZiB3aGF0IHRoZXkgYWRkZWQuCgkvL3JldHVybiBsYXRsbmdib3VuZHM7Cn0KCkdQWFBhcnNlci5wcm90b3R5cGUuQ2VudGVyQW5kWm9vbSA9IGZ1bmN0aW9uICh0cmFja1NlZ21lbnQsIG1hcHR5cGUpCnsKCgl2YXIgcG9pbnRsaXN0ID0gbmV3IEFycmF5KCJ0cmtwdCIsICJ3cHQiKTsKCXZhciBtaW5sYXQgPSAwOwoJdmFyIG1heGxhdCA9IDA7Cgl2YXIgbWlubG9uID0gMDsKCXZhciBtYXhsb24gPSAwOwoKCWZvciAodmFyIHBvaW50dHlwZT0wOyBwb2ludHR5cGUgPCBwb2ludGxpc3QubGVuZ3RoOyBwb2ludHR5cGUrKykKCXsKCgkJLy8gQ2VudGVyIHRoZSBtYXAgYW5kIHpvb20gb24gdGhlIGdpdmVuIHNlZ21lbnQuCgkJdmFyIHRyYWNrcG9pbnRzID0gdHJhY2tTZWdtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHBvaW50bGlzdFtwb2ludHR5cGVdKTsKCgkJLy8gSWYgdGhlIG1pbiBhbmQgbWF4IGFyZSB1bmluaXRpYWxpemVkIHRoZW4gaW5pdGlhbGl6ZSB0aGVtLgoJCWlmICggKHRyYWNrcG9pbnRzLmxlbmd0aCA+IDApICYmIChtaW5sYXQgPT0gbWF4bGF0KSAmJiAobWlubGF0ID09IDApICkKCQl7CgkJCW1pbmxhdCA9IHBhcnNlRmxvYXQodHJhY2twb2ludHNbMF0uZ2V0QXR0cmlidXRlKCJsYXQiKSk7CgkJCW1heGxhdCA9IHBhcnNlRmxvYXQodHJhY2twb2ludHNbMF0uZ2V0QXR0cmlidXRlKCJsYXQiKSk7CgkJCW1pbmxvbiA9IHBhcnNlRmxvYXQodHJhY2twb2ludHNbMF0uZ2V0QXR0cmlidXRlKCJsb24iKSk7CgkJCW1heGxvbiA9IHBhcnNlRmxvYXQodHJhY2twb2ludHNbMF0uZ2V0QXR0cmlidXRlKCJsb24iKSk7CgkJfQoKCQlmb3IgKHZhciBpPTA7IGkgPCB0cmFja3BvaW50cy5sZW5ndGg7IGkrKykKCQl7CgkJCXZhciBsb24gPSBwYXJzZUZsb2F0KHRyYWNrcG9pbnRzW2ldLmdldEF0dHJpYnV0ZSgibG9uIikpOwoJCQl2YXIgbGF0ID0gcGFyc2VGbG9hdCh0cmFja3BvaW50c1tpXS5nZXRBdHRyaWJ1dGUoImxhdCIpKTsKCgkJCWlmIChsb24gPCBtaW5sb24pIG1pbmxvbiA9IGxvbjsKCQkJaWYgKGxvbiA+IG1heGxvbikgbWF4bG9uID0gbG9uOwoJCQlpZiAobGF0IDwgbWlubGF0KSBtaW5sYXQgPSBsYXQ7CgkJCWlmIChsYXQgPiBtYXhsYXQpIG1heGxhdCA9IGxhdDsKCQl9Cgl9CgoJaWYgKCAobWlubGF0ID09IG1heGxhdCkgJiYgKG1pbmxhdCA9IDApICkKCXsKCQl0aGlzLm1hcC5zZXRDZW50ZXIobmV3IEdMYXRMbmcoNDkuMzI3NjY3LCAtMTIyLjk0MjMzMyksIDE0KTsKCQlyZXR1cm47Cgl9CgoJLy8gQ2VudGVyIGFyb3VuZCB0aGUgbWlkZGxlIG9mIHRoZSBwb2ludHMKCXZhciBjZW50ZXJsb24gPSAobWF4bG9uICsgbWlubG9uKSAvIDI7Cgl2YXIgY2VudGVybGF0ID0gKG1heGxhdCArIG1pbmxhdCkgLyAyOwoKCXZhciBib3VuZHMgPSBuZXcgR0xhdExuZ0JvdW5kcyhuZXcgR0xhdExuZyhtaW5sYXQsIG1pbmxvbiksIG5ldyBHTGF0TG5nKG1heGxhdCwgbWF4bG9uKSk7CgoJdGhpcy5tYXAuc2V0Q2VudGVyKG5ldyBHTGF0TG5nKGNlbnRlcmxhdCwgY2VudGVybG9uKSwgdGhpcy5tYXAuZ2V0Qm91bmRzWm9vbUxldmVsKGJvdW5kcyksIG1hcHR5cGUpOwp9CgpHUFhQYXJzZXIucHJvdG90eXBlLkNlbnRlckFuZFpvb21Ub0xhdExuZ0JvdW5kcyA9IGZ1bmN0aW9uIChsYXRsbmdib3VuZHNhcnJheSkKewoJdmFyIGJvdW5kaW5nYm94ID0gbmV3IEdMYXRMbmdCb3VuZHMoKTsKCWZvciAodmFyIGk9MDsgaTxsYXRsbmdib3VuZHNhcnJheS5sZW5ndGg7IGkrKykKCXsKCQlpZiAoIWxhdGxuZ2JvdW5kc2FycmF5W2ldLmlzRW1wdHkoKSkKCQl7CgkJCWJvdW5kaW5nYm94LmV4dGVuZChsYXRsbmdib3VuZHNhcnJheVtpXS5nZXRTb3V0aFdlc3QoKSk7CgkJCWJvdW5kaW5nYm94LmV4dGVuZChsYXRsbmdib3VuZHNhcnJheVtpXS5nZXROb3J0aEVhc3QoKSk7CgkJfQoJfQoKCXZhciBjZW50ZXJsYXQgPSAoYm91bmRpbmdib3guZ2V0Tm9ydGhFYXN0KCkubGF0KCkgKyBib3VuZGluZ2JveC5nZXRTb3V0aFdlc3QoKS5sYXQoKSkgLyAyOwoJdmFyIGNlbnRlcmxuZyA9IChib3VuZGluZ2JveC5nZXROb3J0aEVhc3QoKS5sbmcoKSArIGJvdW5kaW5nYm94LmdldFNvdXRoV2VzdCgpLmxuZygpKSAvIDI7Cgl0aGlzLm1hcC5zZXRDZW50ZXIobmV3IEdMYXRMbmcoY2VudGVybGF0LCBjZW50ZXJsbmcpLCB0aGlzLm1hcC5nZXRCb3VuZHNab29tTGV2ZWwoYm91bmRpbmdib3gpKTsKfQoKCkdQWFBhcnNlci5wcm90b3R5cGUuQWRkVHJhY2twb2ludHNUb01hcCA9IGZ1bmN0aW9uICgpCnsKCXZhciB0cmFja3MgPSB0aGlzLnhtbERvYy5kb2N1bWVudEVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRyayIpOwoJLy92YXIgbGF0bG5nYm91bmRzID0gbmV3IEdMYXRMbmdCb3VuZHMoKTsKCQogICAgLy8gbWFya2VyIGZyb20gc3RhcnQgb2QgdGhlIHRyYWNrCgl0aGlzLkNyZWF0ZU1hcmtlcih0cmFja3NbMF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRya3NlZyIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0cmtwdCIpWzBdLHRoaXMuc3RhcnRfaWNvbik7CgoJZm9yICh2YXIgaT0wOyBpIDwgdHJhY2tzLmxlbmd0aDsgaSsrKQoJewoJCXRoaXMuQWRkVHJhY2tUb01hcCh0cmFja3NbaV0sIHRoaXMudHJhY2tjb2xvdXIsIHRoaXMudHJhY2t3aWR0aCk7CgkJLy92YXIgdHJhY2tsYXRsbmdib3VuZHMgPSB0aGlzLkFkZFRyYWNrVG9NYXAodHJhY2tzW2ldLCB0aGlzLnRyYWNrY29sb3VyLCB0aGlzLnRyYWNrd2lkdGgpOwoJCS8vbGF0bG5nYm91bmRzLmV4dGVuZCh0cmFja2xhdGxuZ2JvdW5kcy5nZXRTb3V0aFdlc3QoKSk7CgkJLy9sYXRsbmdib3VuZHMuZXh0ZW5kKHRyYWNrbGF0bG5nYm91bmRzLmdldE5vcnRoRWFzdCgpKTsKCX0KICAgIC8vIG1hcmtlciBkdSBkZXJuaWVyCiAgICAKICAgIGkgPSB0cmFja3MubGVuZ3RoIC0xOwogICAgaWkgPSB0cmFja3NbaV0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRya3NlZyIpLmxlbmd0aCAtMTsKICAgIGlpaSA9IHRyYWNrc1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHJrc2VnIilbaWldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0cmtwdCIpLmxlbmd0aCAtMTsKICAgIHRoaXMuQ3JlYXRlTWFya2VyKHRyYWNrc1tpXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidHJrc2VnIilbaWldLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0cmtwdCIpW2lpaV0sdGhpcy5lbmRfaWNvbik7CgkvLyBBbGwgbWV0aG9kcyB0aGF0IGFkZCBpdGVtcyB0byB0aGUgbWFwIHJldHVybiB0aGUgYm91bmRpbmcgYm94IG9mIHdoYXQgdGhleSBhZGRlZC4KCS8vcmV0dXJuIGxhdGxuZ2JvdW5kczsKfQoKR1BYUGFyc2VyLnByb3RvdHlwZS5BZGRXYXlwb2ludHNUb01hcCA9IGZ1bmN0aW9uICgpCnsKCXZhciB3YXlwb2ludHMgPSB0aGlzLnhtbERvYy5kb2N1bWVudEVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIndwdCIpOwoJLy92YXIgbGF0bG5nYm91bmRzID0gbmV3IEdMYXRMbmdCb3VuZHMoKTsKCglmb3IgKHZhciBpPTA7IGkgPCB3YXlwb2ludHMubGVuZ3RoOyBpKyspCgl7CgkJdGhpcy5DcmVhdGVNYXJrZXIod2F5cG9pbnRzW2ldLHRoaXMuZGVmYXVsdF9pY29uKTsKCQkvL3ZhciB3YXlwb2ludGxhdGxuZ2JvdW5kcyA9IHRoaXMuQ3JlYXRlTWFya2VyKHdheXBvaW50c1tpXSk7CgkJLy9sYXRsbmdib3VuZHMuZXh0ZW5kKHdheXBvaW50bGF0bG5nYm91bmRzLmdldFNvdXRoV2VzdCgpKTsKCQkvL2xhdGxuZ2JvdW5kcy5leHRlbmQod2F5cG9pbnRsYXRsbmdib3VuZHMuZ2V0Tm9ydGhFYXN0KCkpOwoJfQoKCS8vIEFsbCBtZXRob2RzIHRoYXQgYWRkIGl0ZW1zIHRvIHRoZSBtYXAgcmV0dXJuIHRoZSBib3VuZGluZyBib3ggb2Ygd2hhdCB0aGV5IGFkZGVkLgoJLy9yZXR1cm4gbGF0bG5nYm91bmRzOwp9CgoK]]></data>
	</file>
	<file>
	  <filename>/lib/rcrud.inc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiAgIC8qCiAgIAogICAgICBSQ1JVRCBDbGFzcwogICAgICBieSBSb2JlcnQgQnJvd24KICAgICAgYnJvd25ybEBnbWFpbC5jb20KICAgICAgCiAgICAgIHZlcnNpb246IC4wNCAyMDA2LTA3LTIwCiAgICAgIAogICAgICBVc2VhZ2U6CiAgICAgIAogICAgICByZXF1aXJlX29uY2UoICdyY3J1ZC5pbmMucGhwJyApOwogICAgICAkY28gPSBuZXcgcmNydWQoICRhZG9kYmxpdGVfZGJfY29ubmVjdGlvbiAsICd0YWJsZV9uYW1lJyApOwogICAgICAkY28tPmdvKCk7CiAgIAogICAKICAgKi8KCgogICBjbGFzcyByY3J1ZAogICB7CgogICAgICAjdGhpcyB2YXIgaXMgdGhlIHRhYmxlIHRoYXQgdGhpcyBvYmplY3Qgd2lsbCBjcnVkIG9uICAgCiAgICAgIHZhciAkdGFibGU7CiAgICAgIAogICAgICAjdGhpcyB2YXIgd2lsbCBob2xkcyBmaWVsZHMgYW5kIGNvbmZpZyBpbmZvCiAgICAgIHZhciAkZmllbGRzID0gYXJyYXkoKTsKICAgICAgCiAgICAgICN0aGlzIHZhciBob2xkcyB0aGUgYWRvZGJsaXRlIGRiIGNvbm5lY3Rpb24KICAgICAgdmFyICRkYjsKICAgICAgCiAgICAgICN0aGlzIHZhciBob2xkcyB0aGUga2V5IGZpZWxkCiAgICAgIHZhciAka2V5OwogICAgICAKICAgICAgI3RoaXMgdmFyIGhvbGRzIHRoZSBjb2xvciBmb3IgdGhlIGVycm9ycyBpbiBhIGZvcm0sIGllLCByZWQgLCAjRkYwMDAwCiAgICAgIHZhciAkZXJyb3Jjb2xvciA9ICIjRkYwMDAwIjsKICAgICAgCiAgICAgICN0aGlzIHZhcmlhYmxlIGhvbGRzIHRoZSB0ZXh0IHRvIGJlIGRpc3BsYXllZCBhYm92ZSBnZXRzIHNldCBpbiB0aGUgY29uc3RydWN0b3IKICAgICAgdmFyICRoZWFkZXI7CiAgICAgIAogICAgICAjdGhpcyB2YXJpYWJsZSBob2xkcyB3aGljaCBmaWVsZCB0aGF0IHdlIHNob3VsZCBzb3J0IGJ5IGluIHRoZSBsaXN0aW5nCiAgICAgICNnZXRzIHNldCB0byB0aGUga2V5IGluIHRoZSBjb25zdHJ1Y3RvcgogICAgICB2YXIgJGRlZl9zb3J0OwogICAKICAgCiAgIAogICAgICBmdW5jdGlvbiByY3J1ZCggJGRiICwgJHRhYmxlbmFtZSApCiAgICAgIHsKICAgICAgICAgJHRoaXMtPmRiID0gJGRiOwogICAgICAgICAkdGhpcy0+dGFibGUgPSAkdGFibGVuYW1lOwogICAgICAgICAKICAgICAgICAgJHEgPSAiREVTQ1JJQkUgIi4kdGhpcy0+dGFibGU7CiAgICAgICAgICRxciA9ICRkYi0+RXhlY3V0ZSggJHEgKSBvciBkaWUoICJUaGUgZGF0YWJhc2UgY29ubmVjdGlvbiBvciB0YWJsZSBzdXBwbGllZCB0byByY3J1ZCBpcyBpbnZhbGlkLCBwbGVhc2UgY2hlY2sgY29kZSBhbmQgdHJ5IGFnYWluLiIgKTsKICAgICAgICAgCiAgICAgICAgIGlmKCAkcXItPlJlY29yZENvdW50KCkgPCAxICkKICAgICAgICAgewogICAgICAgICAgICBkaWUoICJUaGUgdGFibGUgbmFtZSBzdXBwbGllZCB0byByY3J1ZCBpcyBpbnZhbGlkIiApOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgICAkdGhpcy0+aGVhZGVyID0gJHRoaXMtPmZpZWxkMmxhYmVsKCAkdGhpcy0+dGFibGUgKTsKICAgICAgICAgICAgJGkgPSAwOwogICAgICAgICAgICB3aGlsZSAoJHJvdyA9ICRxci0+RmV0Y2hSb3coKSApIAogICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICR0aGlzLT5maWVsZHNbJHJvd1snRmllbGQnXV0gPSBhcnJheSgpOwogICAgICAgICAgICAgICAgICR0aGlzLT5maWVsZHNbJHJvd1snRmllbGQnXV1bJ29yZGVyJ10gPSAkaSsrOyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAkdGhpcy0+ZmllbGRzWyRyb3dbJ0ZpZWxkJ11dWydsYWJlbCddID0gJHRoaXMtPmZpZWxkMmxhYmVsKCAkcm93WydGaWVsZCddICk7CiAgICAgICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1skcm93WydGaWVsZCddXVsndmlzaWJsZV9pbl9saXN0J10gPSB0cnVlOwogICAgICAgICAgICAgICAgICR0aGlzLT5maWVsZHNbJHJvd1snRmllbGQnXV1bJ3Zpc2libGVfaW5fYWRkJ10gPSB0cnVlOwogICAgICAgICAgICAgICAgICR0aGlzLT5maWVsZHNbJHJvd1snRmllbGQnXV1bJ3Zpc2libGVfaW5fZWRpdCddID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAkdGhpcy0+ZmllbGRzWyRyb3dbJ0ZpZWxkJ11dWydmaWVsZF93aWR0aCddID0gMzA7CiAgICAgICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1skcm93WydGaWVsZCddXVsnZmllbGRfaGVpZ2h0J10gPSAxMDsgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICR0aGlzLT5maWVsZHNbJHJvd1snRmllbGQnXV1bJ2ZpZWxkX3R5cGUnXSA9ICJ0ZXh0IjsKICAgICAgICAgICAgICAgICAkdGhpcy0+ZmllbGRzWyRyb3dbJ0ZpZWxkJ11dWydmaWVsZF9lcnJvciddID0gIkVycm9yOiBJbnZhbGlkIEZvcm0gRGF0YSI7CiAgICAgICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1skcm93WydGaWVsZCddXVsnZ3JvdXAnXSA9ICIiOwogICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiggJHJvd1snS2V5J10gPT0gIlBSSSIgKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmllbGRzWyRyb3dbJ0ZpZWxkJ11dWydpc0tleSddID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+a2V5ID0gJHJvd1snRmllbGQnXTsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmllbGRzWyRyb3dbJ0ZpZWxkJ11dWydmaWVsZF90eXBlJ10gPSAiZGlzcGxheSI7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1skcm93WydGaWVsZCddXVsndmlzaWJsZV9pbl9hZGQnXSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5kZWZfc29ydCA9ICRyb3dbJ0ZpZWxkJ107CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmKCAkcm93WydUeXBlJ10gPT0gInRleHQiICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1skcm93WydGaWVsZCddXVsnZmllbGRfdHlwZSddID0gInRleHRhcmVhIjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYoICRyb3dbJ1R5cGUnXSA9PSAiZGF0ZXRpbWUiICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1skcm93WydGaWVsZCddXVsnZmllbGRfdHlwZSddID0gImRhdGV0aW1lIjsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYoICRyb3dbJ1R5cGUnXSA9PSAiZGF0ZSIgKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZmllbGRzWyRyb3dbJ0ZpZWxkJ11dWydmaWVsZF90eXBlJ10gPSAiZGF0ZSI7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmKCBlcmVnKCAiaXBzdGFtcCIgLCAkcm93WydGaWVsZCddICApICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1skcm93WydGaWVsZCddXVsnZmllbGRfdHlwZSddID0gImlwc3RhbXAiOwogICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1skcm93WydGaWVsZCddXVsnbGFiZWwnXSA9ICR0aGlzLT5maWVsZDJsYWJlbCggJHJvd1snRmllbGQnXSApOwogICAgICAgICAgICB9I2VuZCB3aGlsZQogICAgICAgICAgICAjIEdyb3VwIENvbnN0cnVjdG9yCiAgICAgICAgICAgICMgQSBncm91cCBhbGxvdyB0byByZWdyb3VwIGZpZWxkcyBpbiB0aGUgc2hvdyBkaXNwbGF5LgogICAgICAgICAgICAjIGJ5IGRlZmF1bHQgbm9uZSBncm91cCBpcyBjcmVhdGVkCiAgICAgICAgICAgIC8vJHRoaXMtPmdyb3Vwc1swXSA9IGFycmF5KCk7CiAgICAgICAgICAgIC8vJHRoaXMtPmdyb3Vwc1swXVsnbGFiZWwnXSA9ICIiOwogICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICB9I2VuZCBpZgogICAgICB9I2VuZCBjb25zdHJ1Y3RvcgogICAgICAKICAgICAgI2NvbnN0cnVjdGdyb3VwCiAgICAgIGZ1bmN0aW9uIGNvbnN0cnVjdGdyb3VwKCkKICAgICAgewoJCSBmb3JlYWNoKCAkdGhpcy0+ZmllbGRzIGFzICRrID0+ICR2ICkKICAgICAgICAgICAgICAgICAgewoJCQkJCSAgLy8gdGVzdHMgc2kgbGUgZ3JvdXAgZXhpc3QgZMOpasOgCgkJCQkJICBpZiAoJHRoaXMtPmdyb3Vwc1skdltncm91cF1dICE9IG51bGwpIHsKCQkJCQkJJHRoaXMtPmdyb3Vwc1skdltncm91cF1dWyRrXSA9ICR0aGlzLT5maWVsZHNbJGtdOwoJCQkJICAgICAgfSBlbHNlIHsKCQkJCQkJJHRoaXMtPmdyb3Vwc1skdltncm91cF1dID0gYXJyYXkoKTsKCQkJCQkJLy8kdGhpcy0+Z3JvdXBzWyR2W2dyb3VwXV1bJGtdID0gYXJyYXkoKTsKCQkJCSAgICAgICAgJHRoaXMtPmdyb3Vwc1skdltncm91cF1dWyRrXSA9ICR0aGlzLT5maWVsZHNbJGtdOwoJCQkJICAgICAgfQoJCQkJICAgICAgLy9lY2hvICRrLiI8YnI+XG4iOwoJCQkJICB9IAoJCSAvL3Zhcl9kdW1wKCR0aGlzLT5ncm91cHMpOwoJCSAvL3Zhcl9kdW1wKCR0aGlzLT5maWVsZHMpOwoJICB9CiAgICAgIAogICAgICAjdGhpcyBmdW5jdGlvbiBjb252ZXJ0cyBmaWVsZF9uYW1lIHRvIEZpZWxkIE5hbWUKICAgICAgZnVuY3Rpb24gZmllbGQybGFiZWwoICRmaWVsZCApCiAgICAgIHsKICAgICAgICAgcmV0dXJuIHVjd29yZHMoIGVyZWdfcmVwbGFjZSggIl8iICwgIiAiICwgJGZpZWxkICkgKTsKICAgICAgfQogICAgICAKCiAgICAgICN0aGlzIGlzIHRoZSBtYWluIGZ1bmN0aW9uIHRoYXQgd2lsbCBkbyBldmVyeSB0aGluZyBvciBhdGxlYXN0IGNhbGwgdGhlIG90aGVyIGZ1bmN0aW9ucyAgICAgIAogICAgICBmdW5jdGlvbiBnbygpCiAgICAgIHsKICAgICAgICAgICAgI21ha2UgdGhhdCB0aGUgcmNydWQgc3R1ZmYgaGFwcGVuaW5nIGluICRfR0VUIGlzIGZvciB0aGlzIGluc3RhbmNlIGFuZCBub3QgZm9yIGFub3RoZXIKICAgICAgICAgICAgaWYoIGlzc2V0KCAkX0dFVFsncmNydWRfdGFibGUnXSApICYmICRfR0VUWydyY3J1ZF90YWJsZSddICE9ICR0aGlzLT50YWJsZSApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgCiAgICAgICAgICAgCiAgICAgICAgICAgIGlmKCAhIGlzc2V0KCAkX0dFVFsncmNydWRfYWN0aW9uJ10gKSApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgJHJjcnVkX2FjdGlvbiA9ICJzaG93IjsgLy9kZWZhdWx0IGlzIHRvIHNob3cgd2hhdCBpcyBpbiB0aGUgZGIgdGFibGUuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICRyY3J1ZF9hY3Rpb24gPSAkX0dFVFsncmNydWRfYWN0aW9uJ107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGVjaG8gIjxoMz4iLiR0aGlzLT5oZWFkZXIuIjwvaDM+XG4iOwogICAgICAgICAgICAKICAgICAgICAgICAgc3dpdGNoKCAkcmNydWRfYWN0aW9uICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICBjYXNlICJzaG93IjoKICAgICAgICAgICAgICAgICAgJHRoaXMtPnNob3coKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgIGNhc2UgImRlbGV0ZSI6CiAgICAgICAgICAgICAgICAgICR0aGlzLT5kZWxldGUoICRfR0VUWydyY3J1ZF9pZCddICk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlICJhZGQiOgogICAgICAgICAgICAgICAgICAkdGhpcy0+YWRkKCk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICBjYXNlICJlZGl0IjoKICAgICAgICAgICAgICAgICAgJHRoaXMtPmVkaXQoKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAKICAgICAgICAgICAgfSNlbmQgc3dpdGNoCiAgICAgIAogICAgICB9I2VuZCBnbyBmdW5jdGlvbgogICAgICAKCiAgICAgICN0aGlzIGZ1bmN0aW9uIGFsbG93cyBhIHJlY29yZCB0byBiZSBhZGRlZCAqKk1BSk9SKioKICAgICAgZnVuY3Rpb24gYWRkKCkKICAgICAgewoJJGVycm9ycyA9ICcnOwoJJHNxbCA9ICcnOwogICAgICAgICAjaGFzIHRoZSBmb3JtIGJlZW4gc3VibWl0dGVkCiAgICAgICAgIGlmKCBpc3NldCggJF9QT1NUWydyY3J1ZF9zdWInXSApICkKICAgICAgICAgewogCiAgICAgICAgICAgICAgICNjb21waWxlIGFueSBkYXRldGltZXMgaW50byBvbmUgZmllbGQgYWdhaW4uCiAgICAgICAgICAgICAgICR0aGlzLT5jb21waWxlX2RhdGV0aW1lcygpOwogICAgICAgICAgICAKICAgICAgICAgICAgICAgI2Zvcm0gaGFkIG5vIGVycm9ycwogICAgICAgICAgICAgICBpZiggISAkZXJyb3JzID0gJHRoaXMtPmZvcm1fZXJyb3JzKCkgKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAjZG8gYW4gaW5zZXJ0CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAjZmlyc3QgYnVpbGQgdGhlIFNFVCBwb3J0aW9uCiAgICAgICAgICAgICAgICAgIGZvcmVhY2goICR0aGlzLT5maWVsZHMgYXMgJGsgPT4gJHYgKQogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgaWYoIGlzc2V0KCAkX1BPU1RbJGtdICkgKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRzcWwgPSAkc3FsIC4gJGsgLiAiID0gIiAuICR0aGlzLT5kYi0+cXN0ciggJF9QT1NUWyRrXSApIC4gIiwgIjsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgI3NlY29uZCB0YWtlIG9mZiB0aGUgbGFzdCAnLCAnCiAgICAgICAgICAgICAgICAgICRzcWwgPSBlcmVnX3JlcGxhY2UoICIsICQiICwgIiIgLCAkc3FsICk7CiAgICAgICAgICAgICAgICAgICRzcWwgPSAiSU5TRVJUIElOVE8gIi4kdGhpcy0+dGFibGUuIiBTRVQgIi4kc3FsOwogICAgICAgICAgICAgICAgICAkcXIgPSAkdGhpcy0+ZGItPkV4ZWN1dGUoICRzcWwgKSBvciBkaWUoICJSQ1JVRDogQ3JlYXRlIE5ldyBTUUwgUHJvYmxlbTogIi4kdGhpcy0+ZGItPkVycm9yTXNnKCkgKTsKICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIGVjaG8gIjxwPllvdXIgaXRlbSBoYXMgYmVlbiBjcmVhdGVkLjwvcD4iOwogICAgICAgICAgICAgICAgICAkdGhpcy0+bWFrZV9yZXR1cm5fbGluaygpOwogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICB9CgogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAkdGhpcy0+bWFrZV9mb3JtX2J5Z3JwKCAidmlzaWJsZV9pbl9hZGQiICwgIkNyZWF0ZSBOZXciICwgJGVycm9ycyApOwogICAgICAgICAkdGhpcy0+bWFrZV9yZXR1cm5fbGluaygpOwogICAgICAgICAKICAgICAgCiAgICAgIH0jZW5kIGFkZCBmdW5jdGlvbiAgICAgIAogICAgICAKCiAgICAgICN0aGlzIGZ1bmN0aW9uIGFsbG93cyBhIHJlY29yZCB0byBiZSBlZGl0ZWQgKipNQUpPUioqCiAgICAgIGZ1bmN0aW9uIGVkaXQoKQogICAgICB7CgkkZXJyb3JzID0gJyc7Cgkkc3FsID0gIiI7CiAgICAgICAgICNoYXMgdGhlIGZvcm0gYmVlbiBzdWJtaXR0ZWQKICAgICAgICAgaWYoIGlzc2V0KCAkX1BPU1RbJ3JjcnVkX3N1YiddICkgKQogICAgICAgICB7CiAgICAgICAgICAgICAgICNjb21waWxlIGFueSBkYXRldGltZXMgaW50byBvbmUgZmllbGQgYWdhaW4uCiAgICAgICAgICAgICAgICR0aGlzLT5jb21waWxlX2RhdGV0aW1lcygpOwogICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgI2Zvcm0gaGFkIG5vIGVycm9ycwogICAgICAgICAgICAgICBpZiggISAkZXJyb3JzID0gJHRoaXMtPmZvcm1fZXJyb3JzKCkgKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICNkbyBhbiB1cGRhdGUKICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICNmaXJzdCBidWlsZCB0aGUgU0VUIHBvcnRpb24KICAgICAgICAgICAgICAgICAgZm9yZWFjaCggJHRoaXMtPmZpZWxkcyBhcyAkayA9PiAkdiApCiAgICAgICAgICAgICAgICAgIHsKCQkgCiAgICAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCggJF9QT1NUWyRrXSApICkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkc3FsID0gJHNxbCAuICRrIC4gIiA9ICIgLiAkdGhpcy0+ZGItPnFzdHIoICRfUE9TVFska10gKSAuICIsICI7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICNzZWNvbmQgdGFrZSBvZmYgdGhlIGxhc3QgJywgJwogICAgICAgICAgICAgICAgICAkc3FsID0gZXJlZ19yZXBsYWNlKCAiLCAkIiAsICIiICwgJHNxbCApOwogICAgICAgICAgICAgICAgICAkc3FsID0gIlVQREFURSAiLiR0aGlzLT50YWJsZS4iIFNFVCAiLiRzcWwuIiBXSEVSRSAiLiR0aGlzLT5rZXkuIiA9ICIuJHRoaXMtPmRiLT5xc3RyKCAkX0dFVFsncmNydWRfaWQnXSApLiIgTElNSVQgMSI7CiAgICAgICAgICAgICAgICAgICRxciA9ICR0aGlzLT5kYi0+RXhlY3V0ZSggJHNxbCApIG9yIGRpZSggIlJDUlVEIEVkaXQgU1FMIFByb2JsZW06ICIuJHRoaXMtPmRiLT5FcnJvck1zZygpICk7CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICBlY2hvICI8cD5Zb3VyIGl0ZW0gaGFzIGJlZW4gdXBkYXRlZC48L3A+IjsKICAgICAgICAgICAgICAgICAgJHRoaXMtPm1ha2VfcmV0dXJuX2xpbmsoKTsKICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgfQoKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgCiAgICAgICAgICAgICNmaWxsICRfUE9TVCB3aXRoIHRoZSB2YWx1ZXMgb25lIHRpbWUsIG9uIGZpcnN0IHZpc2l0LgogICAgICAgICAgICAkcSA9ICJTRUxFQ1QgKiBGUk9NICIuJHRoaXMtPnRhYmxlLiIgV0hFUkUgIi4kdGhpcy0+a2V5LiIgPSAiLiR0aGlzLT5kYi0+cXN0ciggJF9HRVRbJ3JjcnVkX2lkJ10gKTsKICAgICAgICAgICAgJHFyID0gJHRoaXMtPmRiLT5FeGVjdXRlKCAkcSApIG9yIGRpZSggIlJDUlVEIEVkaXQgVmFsdWVzIEZpbGw6ICIuJHRoaXMtPmRiLT5FcnJvck1zZygpICk7CiAgICAgICAgICAgICRyb3cgPSAkcXItPkZldGNoUm93KCk7CiAgICAgICAgICAgICRfUE9TVCA9ICRyb3c7CiAgICAgICAgIH0KICAgICAgCiAgICAgICAgICNtYWtlIHRoZSBmb3JtCiAgICAgICAgICR0aGlzLT5tYWtlX2Zvcm1fYnlncnAoICJ2aXNpYmxlX2luX2VkaXQiLCAiU2F2ZSIgLCAkZXJyb3JzICk7CiAgICAgICAgICR0aGlzLT5tYWtlX3JldHVybl9saW5rKCk7CiAgICAgICAgIAogICAgICB9ICAgICAgCgoKCiAgICAgICN0aGlzIG1ha2VzIHRoZSBmb3JtIGZvciBhZGQgYW5kIGVkaXQKICAgICAgI3Nob3cgdGhlIG9uZXMgdGhhdCBoYXZlIHRoZSB2aXNpYmlsaXR5CiAgICAgICNwbGFjZSBzdWJsYWJlbCBvbiB0aGUgc3VibWl0IGJ1dHRvbgogICAgICAjc2hvdyB0aGVzZSBlcnJvcnMgd2hlcmUgbmVlZGVkCiAgICAgIGZ1bmN0aW9uIG1ha2VfZm9ybSggJHZpc2liaWxpdHksICRzdWJsYWJlbCwgJGVycm9ycyApCiAgICAgIHsKICAgICAgICAgICAgI3RoaXMgZm9ybSBwb3N0cyB0byBpdHNlbGYgc28gbm8gYWN0aW9uIHNwZWNpZmllZAogICAgICAgICAgICBlY2hvICI8Zm9ybSBtZXRob2Q9XCJQT1NUXCI+XG4iOwogICAgICAgICAgICAvLyBpY2kgcGxhY2UgbGUgcGFyY291cnMgZGVzIGdyb3VwZXMKICAgICAgICAgICAgLy8gdW5lIHRhYmxlIHBvdXIgY2hhcXVlIGdyb3VwZQogICAgICAgICAgICBlY2hvICI8dGFibGUgY2xhc3M9XCJwYWdldGFibGVcIiB3aWR0aD1cIjEwMCVcIj5cbiI7CiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgZm9yZWFjaCggJHRoaXMtPmZpZWxkcyBhcyAkayA9PiAkdiApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgICAgIGlmKCAkdlskdmlzaWJpbGl0eV0gKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCggJGVycm9yc1ska10gKSApCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgZWNobyAiPHRyPjx0ZCBjb2xzcGFuPVwiMlwiPiI7CiAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjxzcGFuIHN0eWxlPVwiY29sb3I6ICIuJHRoaXMtPmVycm9yY29sb3IuIjtcIj4iOwogICAgICAgICAgICAgICAgICAgICBlY2hvICR2WydmaWVsZF9lcnJvciddOwogICAgICAgICAgICAgICAgICAgICBlY2hvICI8L3NwYW4+PC90ZD48L3RyPlxuIjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIGVjaG8gIjx0cj5cbiI7CiAgIAogICAgICAgICAgICAgICAgICBlY2hvICIgPHRkPiIuJHZbJ2xhYmVsJ10uIjwvdGQ+XG4iOwogICAKICAgICAgICAgICAgICAgICAgZWNobyAiIDx0ZD5cbiI7CgoJCSAgaWYoIWlzc2V0KCRfUE9TVFska10pKSB7CgkJICAgICRfUE9TVFska10gPSAnJzsKCQkgIH0KCiAgICAgICAgICAgICAgICAgIHN3aXRjaCggJHZbJ2ZpZWxkX3R5cGUnXSApCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiIi4kay4iXCIgdmFsdWU9XCIiLiAkX1BPU1RbJGtdIC4gIlwiIHNpemU9XCIiLiR2WydmaWVsZF93aWR0aCddLiJcIj5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0YXJlYSI6CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgICA8dGV4dGFyZWEgbmFtZT1cIiIuJGsuIlwiIFJPV1M9Ii4kdlsnZmllbGRfaGVpZ2h0J10uIiBDT0xTPSIuJHZbJ2ZpZWxkX3dpZHRoJ10uIj4iOwogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICRfUE9TVFska107CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjwvdGV4dGFyZWE+XG4iOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZGlzcGxheSI6CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJF9QT1NUWyRrXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgImlwc3RhbXAiOgogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICI8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCIiLiRrLiJcIiB2YWx1ZT1cIiIuJF9TRVJWRVJbIlJFTU9URV9BRERSIl0uIlwiPlxuIjsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIiIuJGsuIlwiIHZhbHVlPVwiMFwiID5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cIiIuJGsuIlwiIHZhbHVlPVwiMVwiIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRfUE9TVFska10gPT0gIjEiICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICIgQ0hFQ0tFRCAiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIj5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveF9vbiI6CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCIiLiRrLiJcIiB2YWx1ZT1cIjBcIiA+XG4iOwogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICIgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCIiLiRrLiJcIiB2YWx1ZT1cIjFcIiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkX1BPU1RbJGtdID09ICIxIiApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiIENIRUNLRUQgIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoJCQlpZiggJF9QT1NUWyRrXSA9PSAnJyApIHsKCQkJICAvL3Nob3VsZCBvbmx5IGFmZmVjdCBhZGQKCQkJICBlY2hvICIgQ0hFQ0tFRCAiOwoJCQl9CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIj5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlICJkYXRlIjoKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1ha2VfZGF0ZSggJGsgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgImRhdGV0aW1lIjoKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1ha2VfZGF0ZXRpbWUoICRrICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICBpZiggZXJlZyggIl5zZWxlY3QiICwgJHZbJ2ZpZWxkX3R5cGUnXSApICkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAkcGFydHMgPSBzcGxpdCggIlx8IiAsICR2WydmaWVsZF90eXBlJ10gKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJHBhcnRzWzFdICkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJyYW5nZSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5tYWtlX3JhbmdlX3NlbGVjdG9yKCAkcGFydHNbMl0gLCAkcGFydHNbM10gLCAkayApOwogICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGFibGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bWFrZV90YWJsZV9zZWxlY3RvciggJHBhcnRzWzJdICwgJHBhcnRzWzNdICwgJHBhcnRzWzRdICwgJGsgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgaWYoIGVyZWcoICJecmFkaW8iICwgJHZbJ2ZpZWxkX3R5cGUnXSApICkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bWFrZV9yYWRpb3MoICRrICk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIGVjaG8gIiA8L3RkPlxuIjsgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgZWNobyAiPC90cj5cbiI7ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB9I2VuZCBmb3IgZWFjaAogICAgICAgICAgICAKICAgICAgICAgICAgZWNobyAiPHRyPjx0ZCBjb2xzcGFuPVwiMlwiPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInJjcnVkX3N1YlwiIHZhbHVlPVwiIi4kc3VibGFiZWwuIlwiLz48L3RkPjwvdHI+XG4iOwogICAgICAgICAgICAKICAgICAgICAgICAgZWNobyAiPC90YWJsZT5cbiI7CiAgICAgICAgICAgIGVjaG8gIjwvZm9ybT5cbiI7CiAgICAgICAgIAogICAgICAKICAgICAgCiAgICAgIAogICAgICB9I2VuZCBmb3JtIGZ1bmN0aW9uICAgICAgIAogICAgICAKICAgICAgCiAgICAgICN0aGlzIG1ha2VzIHRoZSBmb3JtIGZvciBhZGQgYW5kIGVkaXQKICAgICAgI3Nob3cgdGhlIG9uZXMgdGhhdCBoYXZlIHRoZSB2aXNpYmlsaXR5CiAgICAgICNwbGFjZSBzdWJsYWJlbCBvbiB0aGUgc3VibWl0IGJ1dHRvbgogICAgICAjc2hvdyB0aGVzZSBlcnJvcnMgd2hlcmUgbmVlZGVkCiAgICAgIGZ1bmN0aW9uIG1ha2VfZm9ybV9ieWdycCggJHZpc2liaWxpdHksICRzdWJsYWJlbCwgJGVycm9ycyApCiAgICAgIHsKICAgICAgICAgICAgLy8gb24gcmVncm91cGUgbGVzIGZpZWxkcyBwYXIgZ3JvdXBzCgkJICAgICR0aGlzLT5jb25zdHJ1Y3Rncm91cCgpOwogICAgICAgICAgICAjdGhpcyBmb3JtIHBvc3RzIHRvIGl0c2VsZiBzbyBubyBhY3Rpb24gc3BlY2lmaWVkCiAgICAgICAgICAgIGVjaG8gIjxmb3JtIG1ldGhvZD1cIlBPU1RcIj5cbiI7CiAgICAgICAgICAgIC8vIGljaSBwbGFjZSBsZSBwYXJjb3VycyBkZXMgZ3JvdXBlcwogICAgICAgICAgICAvLyB1bmUgdGFibGUgcG91ciBjaGFxdWUgZ3JvdXBlCiAgICAgICAgICAgIGZvcmVhY2goICR0aGlzLT5ncm91cHMgYXMgJGdsID0+ICRndiApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBlY2hvICI8ZmllbGRzZXQ+PGxlZ2VuZD4iLiRnbC4iPC9sZWdlbmQ+XG4iOyAgICAgICAKICAgICAgICAgICAgICBlY2hvICI8dGFibGUgY2xhc3M9XCJwYWdldGFibGVcIiB3aWR0aD1cIjEwMCVcIj5cbiI7CiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICBmb3JlYWNoKCAkZ3YgYXMgJGsgPT4gJHYgKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAgICAgICAgICAgIGlmKCAkdlskdmlzaWJpbGl0eV0gKQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGlmKCBpc3NldCggJGVycm9yc1ska10gKSApCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgZWNobyAiPHRyPjx0ZCBjb2xzcGFuPVwiMlwiPiI7CiAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjxzcGFuIHN0eWxlPVwiY29sb3I6ICIuJHRoaXMtPmVycm9yY29sb3IuIjtcIj4iOwogICAgICAgICAgICAgICAgICAgICBlY2hvICR2WydmaWVsZF9lcnJvciddOwogICAgICAgICAgICAgICAgICAgICBlY2hvICI8L3NwYW4+PC90ZD48L3RyPlxuIjsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIGVjaG8gIjx0cj5cbiI7CiAgIAogICAgICAgICAgICAgICAgICBlY2hvICIgPHRkPiIuJHZbJ2xhYmVsJ10uIjwvdGQ+XG4iOwogICAKICAgICAgICAgICAgICAgICAgZWNobyAiIDx0ZD5cbiI7CgoJCSAgaWYoIWlzc2V0KCRfUE9TVFska10pKSB7CgkJICAgICRfUE9TVFska10gPSAnJzsKCQkgIH0KCiAgICAgICAgICAgICAgICAgIHN3aXRjaCggJHZbJ2ZpZWxkX3R5cGUnXSApCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGV4dCI6CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiIi4kay4iXCIgdmFsdWU9XCIiLiAkX1BPU1RbJGtdIC4gIlwiIHNpemU9XCIiLiR2WydmaWVsZF93aWR0aCddLiJcIj5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlICJ0ZXh0YXJlYSI6CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgICA8dGV4dGFyZWEgbmFtZT1cIiIuJGsuIlwiIFJPV1M9Ii4kdlsnZmllbGRfaGVpZ2h0J10uIiBDT0xTPSIuJHZbJ2ZpZWxkX3dpZHRoJ10uIj4iOwogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICRfUE9TVFska107CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIjwvdGV4dGFyZWE+XG4iOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgY2FzZSAiZGlzcGxheSI6CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJF9QT1NUWyRrXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgImlwc3RhbXAiOgogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICI8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCIiLiRrLiJcIiB2YWx1ZT1cIiIuJF9TRVJWRVJbIlJFTU9URV9BRERSIl0uIlwiPlxuIjsKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAkX1NFUlZFUlsnUkVNT1RFX0FERFInXTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgImNoZWNrYm94IjoKICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cIiIuJGsuIlwiIHZhbHVlPVwiMFwiID5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cIiIuJGsuIlwiIHZhbHVlPVwiMVwiIjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoICRfUE9TVFska10gPT0gIjEiICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICIgQ0hFQ0tFRCAiOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIj5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlICJjaGVja2JveF9vbiI6CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCIiLiRrLiJcIiB2YWx1ZT1cIjBcIiA+XG4iOwogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICIgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCIiLiRrLiJcIiB2YWx1ZT1cIjFcIiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKCAkX1BPU1RbJGtdID09ICIxIiApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiIENIRUNLRUQgIjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoJCQlpZiggJF9QT1NUWyRrXSA9PSAnJyApIHsKCQkJICAvL3Nob3VsZCBvbmx5IGFmZmVjdCBhZGQKCQkJICBlY2hvICIgQ0hFQ0tFRCAiOwoJCQl9CiAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIj5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBjYXNlICJkYXRlIjoKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1ha2VfZGF0ZSggJGsgKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgImRhdGV0aW1lIjoKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1ha2VfZGF0ZXRpbWUoICRrICk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICBpZiggZXJlZyggIl5zZWxlY3QiICwgJHZbJ2ZpZWxkX3R5cGUnXSApICkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAkcGFydHMgPSBzcGxpdCggIlx8IiAsICR2WydmaWVsZF90eXBlJ10gKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCggJHBhcnRzWzFdICkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICJyYW5nZSI6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5tYWtlX3JhbmdlX3NlbGVjdG9yKCAkcGFydHNbMl0gLCAkcGFydHNbM10gLCAkayApOwogICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAidGFibGUiOgogICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bWFrZV90YWJsZV9zZWxlY3RvciggJHBhcnRzWzJdICwgJHBhcnRzWzNdICwgJHBhcnRzWzRdICwgJGsgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgaWYoIGVyZWcoICJecmFkaW8iICwgJHZbJ2ZpZWxkX3R5cGUnXSApICkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bWFrZV9yYWRpb3MoICRrICk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIGVjaG8gIiA8L3RkPlxuIjsgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgZWNobyAiPC90cj5cbiI7ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgCiAgICAgICAgICAgIAogICAgICAgICAgICB9I2VuZCBmb3IgZWFjaAogICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBlY2hvICI8L3RhYmxlPlxuIjsKCQl9CgkJZWNobyAiPC9maWVsZHNldD5cbiI7CgkJZWNobyAiPHRhYmxlPjx0cj48dGQgY29sc3Bhbj1cIjJcIj48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIG5hbWU9XCJyY3J1ZF9zdWJcIiB2YWx1ZT1cIiIuJHN1YmxhYmVsLiJcIi8+PC90ZD48L3RyPjwvdGFibGU+XG4iOwogICAgICAgIGVjaG8gIjwvZm9ybT5cbiI7CiAgICAgICAgIAogICAgICAKICAgICAgCiAgICAgIAogICAgICB9I2VuZCBtYWtlX2Zvcm1fYnlncnAgZnVuY3QKICAgICAgCiAgICAgIAogICAgICAKICAgICAgCiAgICAgIAogICAgICAKICAgICAgI3RoaXMgZnVuY3Rpb25zIGRlbGV0ZXMgYSByZWNvcmQKICAgICAgZnVuY3Rpb24gZGVsZXRlKCAkaWQgKQogICAgICB7CiAgICAgICAgICRxID0gIkRFTEVURSBGUk9NICIuJHRoaXMtPnRhYmxlLiIgV0hFUkUgIi4kdGhpcy0+a2V5LiIgPSAiLiR0aGlzLT5kYi0+cXN0ciggJGlkICkuIiBMSU1JVCAxIjsKICAgICAgICAgJHFyID0gJHRoaXMtPmRiLT5FeGVjdXRlKCAkcSApIG9yIGRpZSggIlJDUlVEIERFTEVURSBTUUw6ICIuJHRoaXMtPmRiLT5FcnJvck1zZygpICk7CiAgICAgICAgIGVjaG8gIlRoYXQgcmVjb3JkIGhhcyBiZWVuIGRlbGV0ZWQuPC9wPiI7CiAgICAgICAgICR0aGlzLT5tYWtlX3JldHVybl9saW5rKCk7CiAgICAgICAgIAogICAgICB9CiAgICAgIAogICAgICAKICAgICAgCiAgICAgICN0aGlzIGZ1bmN0aW9uIHNob3dzIHRoZSBkYXRhIGluIGEgdGFibGUgaWYgeW91IG5lZWQgc29tZXRoaW5nIGZhbmN5IGVkaXQgYWxsIHlvdSB3YW50IEkgd29udCBzdG9wIHlvdQogICAgICBmdW5jdGlvbiBzaG93KCkKICAgICAgewoJJHVwZG93biA9ICcnOwoKICAgICAgICAgaWYoIGlzc2V0KCAkX0dFVFsncmNydWRfdXBkb3duJ10gKSAmJiAoICRfR0VUWydyY3J1ZF91cGRvd24nXSA9PSAiQVNDIiB8fCAkX0dFVFsncmNydWRfdXBkb3duJ10gPT0gIkRFU0MiICkgKQogICAgICAgICB7CiAgICAgICAgICAgICAkdXBkb3duID0gJF9HRVRbJ3JjcnVkX3VwZG93biddOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgICAkdXBkb3duID0gIkFTQyI7CiAgICAgICAgICAgICRfR0VUWydyY3J1ZF91cGRvd24nXSA9ICJBU0MiOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiggISBpc3NldCggJF9HRVRbJ3JjcnVkX3NvcnRieSddICkgfHwgISBpc3NldCggJHRoaXMtPmZpZWxkc1skX0dFVFsncmNydWRfc29ydGJ5J11dICkgKQogICAgICAgICB7CiAgICAgICAgICAgICRzb3J0YnkgPSAkdGhpcy0+ZGVmX3NvcnQ7CiAgICAgICAgICAgICRfR0VUWydyY3J1ZF9zb3J0YnknXSA9ICRzb3J0Ynk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAgICRzb3J0YnkgPSAkX0dFVFsncmNydWRfc29ydGJ5J107CiAgICAgICAgIH0KCiAgICAgICAgIAogICAgICAgICBlY2hvICc8dGFibGUgY2VsbHNwYWNpbmc9IjIiIGNlbGxwYWRkaW5nPSIyIiBjbGFzcz0icGFnZXRhYmxlIiB3aWR0aD0iMTAwJSI+JzsKICAgICAgICAgZWNobyAiPHRoZWFkPlxuIjsKICAgICAgICAgZWNobyAnPHRyPic7CiAgICAgICAgIGVjaG8gIlxuIjsKICAgICAgICAgICAgICAgCiAgICAgICAgICNzaG93IHRoZSB0YWJsZSBoZWFkZXJzCiAgICAgICAgIGZvcmVhY2goICR0aGlzLT5maWVsZHMgYXMgJGsgPT4gJHYgKQogICAgICAgICB7CiAgICAgICAgICAgIGlmKCAkdGhpcy0+ZmllbGRzWyRrXVsndmlzaWJsZV9pbl9saXN0J10gKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGVjaG8gIiAgIDx0aD4iOwogICAgICAgICAgICAgICBlY2hvICR2WydsYWJlbCddOwoKICAgICAgICAgICAgICAgZWNobyAiJm5ic3A7IjsKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgIGVjaG8gIjxhIGhyZWY9XCIiLiR0aGlzLT5tYWtldXJsKCAic2hvdyIgLCAtMSApLiImYW1wO3JjcnVkX3NvcnRieT0iLiRrLiImYW1wO3JjcnVkX3VwZG93bj1BU0NcIj4mYW5kOzwvYT4iOwogICAgICAgICAgICAgICBpZiggJGsgPT0gJF9HRVRbJ3JjcnVkX3NvcnRieSddICYmICRfR0VUWydyY3J1ZF91cGRvd24nXSA9PSAiQVNDIiApCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgZWNobyAiLiI7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGVjaG8gIiZuYnNwOyI7CiAgICAgICAgICAgICAgIH0KICAgIAogICAgICAgICAgICAgICBlY2hvICI8YSBocmVmPVwiIi4kdGhpcy0+bWFrZXVybCggInNob3ciICwgLTEgKS4iJmFtcDtyY3J1ZF9zb3J0Ynk9Ii4kay4iJmFtcDtyY3J1ZF91cGRvd249REVTQ1wiPiZvcjs8L2E+IjsKICAgICAgICAgICAgICAgaWYoICRrID09ICRfR0VUWydyY3J1ZF9zb3J0YnknXSAmJiAkX0dFVFsncmNydWRfdXBkb3duJ10gPT0gIkRFU0MiICkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBlY2hvICIuIjsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBlY2hvICI8L3RoPlxuIjsKICAgICAgICAgICAgfQogICAgICAgICB9CgogICAgICAgICBlY2hvICI8dGggd2lkdGg9XCIxJVwiPiZuYnNwOzwvdGg+XG4iOwogICAgICAgICBlY2hvICI8dGggd2lkdGg9XCIxJVwiPiZuYnNwOzwvdGg+XG4iOwoKICAgICAgICAgZWNobyAnPC90cj4nOwogICAgICAgICBlY2hvICJcbiI7CiAgICAgICAgIGVjaG8gIjwvdGhlYWQ+XG4iOwogICAgICAgICAKICAgICAgICAgI25vdyB0aGUgZGF0YSAgIAogICAgICAgICAkcSA9ICJTRUxFQ1QgKiBGUk9NICIuJHRoaXMtPnRhYmxlLiIgT1JERVIgQlkgIi4kc29ydGJ5LiIgIi4kdXBkb3duOwogICAgICAgICAkcXIgPSAkdGhpcy0+ZGItPkV4ZWN1dGUoICRxICkgb3IgZGllKCAiUkNSVUQgU0hPVyBTUUw6ICIuJHRoaXMtPmRiLT5FcnJvck1zZygpICk7CiAgICAgICAgIAogICAgICAgICAkaSA9IDA7CiAgICAgICAgIHdoaWxlKCAkcm93ID0gJHFyLT5GZXRjaFJvdygpICkKICAgICAgICAgewogICAgICAgICAgICBlY2hvICI8dHIgY2xhc3M9XCJyb3ciLigoJGkgJSAyKSsxKS4iXCIgIjsKICAgICAgICAgICAgZWNobyAib25tb3VzZW92ZXI9XCJ0aGlzLmNsYXNzTmFtZT0ncm93Ii4oKCRpICUgMikrMSkuImhvdmVyJztcIiBvbm1vdXNlb3V0PVwidGhpcy5jbGFzc05hbWU9J3JvdyIuKCgkaSAlIDIpKzEpLiInO1wiPlxuIjsKICAgICAgICAgICAgJGkrKzsKICAgICAgICAgICAKICAgICAgICAgICAgICBmb3JlYWNoKCAkcm93IGFzICRrID0+ICR2ICkKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYoICR0aGlzLT5maWVsZHNbJGtdWyd2aXNpYmxlX2luX2xpc3QnXSApCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGVjaG8gIiAgIDx0ZD4iOwogICAgICAgICAgICAgICAgICAgIGlmKCBlcmVnKCAiXnNlbGVjdFx8dGFibGUiICwgJHRoaXMtPmZpZWxkc1ska11bJ2ZpZWxkX3R5cGUnXSApICkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgJHBhcnRzID0gc3BsaXQoICJcfCIgLCAkdGhpcy0+ZmllbGRzWyRrXVsnZmllbGRfdHlwZSddICk7CiAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiKCIuJHYuIikgIi4kdGhpcy0+Z2V0X2ZvcmVpZ25fbGFiZWwoICRwYXJ0c1syXSAsICRwYXJ0c1szXSAsICR2ICwgJHBhcnRzWzRdICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgZWNobyAkdjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWNobyAiPC90ZD5cbiI7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgICNlZGl0IGFuZCBkZWxldGUgY29sdW1ucwogICAgICAgICAgICBlY2hvICI8dGQ+PGEgaHJlZj1cIiIuJHRoaXMtPm1ha2V1cmwoICJlZGl0IiAsICRyb3dbJHRoaXMtPmtleV0gKS4iXCI+ZWRpdDwvYT4mbmJzcDs8L3RkPiI7CiAgICAgICAgICAgIGVjaG8gIjx0ZD4mbmJzcDs8YSBocmVmPVwiIi4kdGhpcy0+bWFrZXVybCggImRlbGV0ZSIgLCAkcm93WyR0aGlzLT5rZXldICkuIlwiPmRlbGV0ZTwvYT48L3RkPiI7CgogICAgICAgICAgICBlY2hvICI8L3RyPlxuIjsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgCiAgICAgICAgIGVjaG8gIjwvdGFibGU+XG4iOwogICAgICAgICAgICAgICAgICAKICAgICAgICAgZWNobyAiPHA+PGEgaHJlZj1cIiIuJHRoaXMtPm1ha2V1cmwoICJhZGQiICwgMCApLiJcIj5DcmVhdGUgTmV3PC9hPjwvcD5cbiI7CiAgICAgIAogICAgICB9I2VuZCBzaG93IGZ1bmN0aW9uCiAgICAgIAogICAgICAKICAgICAgI3RoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgZXhhY3QgdXJsIHRoYXQgd2Ugd2VyZSBjYWxsZWQgd2l0aCBzdHJpcHMgb3V0IHByZXZpb3VzIHJjcnVkIGFuZCBhcHBsaWVzIG5ldwogICAgICAjaG9wZWZ1bGx5IHRoaXMgYWxsb3dzIHVzIHRvIHVzZSByY3J1ZCBpbiBvdGhlciBwcm9ncmFtcyBhbmQgbGlicmFyaWVzCiAgICAgIGZ1bmN0aW9uIG1ha2V1cmwoICRhY3Rpb24gLCAkaWQgKQogICAgICB7CgkkdD0nJzsKICAgICAgICAgZm9yZWFjaCggJF9HRVQgYXMgJGsgPT4gJHYgKQogICAgICAgICB7CiAgICAgICAgICAgIGlmKCAhIGVyZWcoICJecmNydWQiLCAkayApICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAkdCA9ICR0IC4gJGsgLiAiPSIgLiR2LiAiJmFtcDsiOwogICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgCgkgLy9jaGVjayB0aGF0IG1vZHVsZT0gIGlzIGNhcnJpZWQgdGhyb3VnaAoJIGlmICghaXNzZXQoJF9HRVRbJ21vZHVsZSddKSkgCgkgICB7CgkgICAgICRtID0gaXNzZXQoJF9QT1NUWydtYWN0J10pID8gZXhwbG9kZSgnLCcsJF9QT1NUWydtYWN0J10pIDogIiI7CgkgICAgICRtID0gIm1vZHVsZT0iLiAkbVswXTsKCSAgICAgJHQgPSAkX1NFUlZFUlsiUEhQX1NFTEYiXSAuICI/IiAuICR0IC4gJG0gLiImYW1wO3JjcnVkX2FjdGlvbj0iLiRhY3Rpb24uIiZhbXA7cmNydWRfaWQ9Ii4kaWQ7CgkgICB9CgkgZWxzZQoJICAgewoJICAgICAkdCA9ICRfU0VSVkVSWyJQSFBfU0VMRiJdIC4gIj8iIC4gJHQgLiJyY3J1ZF9hY3Rpb249Ii4kYWN0aW9uLiImYW1wO3JjcnVkX2lkPSIuJGlkOwoJICAgfQoKICAgICAgICAgaWYoICRhY3Rpb24gPT0gImVkaXQiIHx8ICRhY3Rpb24gPT0gImRlbGV0ZSIgfHwgJGFjdGlvbiA9PSAiYWRkIiApCiAgICAgICAgIHsKICAgICAgICAgICAgJHQgPSAkdCAuICImYW1wO3JjcnVkX3RhYmxlPSIuJHRoaXMtPnRhYmxlOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICByZXR1cm4gJHQ7CiAgICAgICAgIAogICAgICB9CiAgICAgIAogICAgICAjc2V0IGFsbCB0aGUgZmllbGRzIHZpc2liaWx0eSB0byAkYgogICAgICAjZXgsIHNldCBhbGwgZmllbGRzIHRvIGZhbHNlLCB0aGVuIGVuYWJsZSB0aGUgb25lcyB5b3UgbmVlZAogICAgICBmdW5jdGlvbiBzZXRWaXNpYmxlSW5MaXN0QWxsKCAkYiApCiAgICAgIHsKICAgICAgICAgZm9yZWFjaCggJHRoaXMtPmZpZWxkcyBhcyAkayA9PiAkdiApCiAgICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1ska11bJ3Zpc2libGVfaW5fbGlzdCddID0gJGI7CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgI3NldCBhbGwgdGhlIGZpZWxkcyB2aXNpYmlsdHkgdG8gJGIKICAgICAgI2V4LCBzZXQgYWxsIGZpZWxkcyB0byBmYWxzZSwgdGhlbiBlbmFibGUgdGhlIG9uZXMgeW91IG5lZWQKICAgICAgZnVuY3Rpb24gc2V0VmlzaWJsZUluQWRkQWxsKCAkYiApCiAgICAgIHsKICAgICAgICAgZm9yZWFjaCggJHRoaXMtPmZpZWxkcyBhcyAkayA9PiAkdiApCiAgICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1ska11bJ3Zpc2libGVfaW5fYWRkJ10gPSAkYjsKICAgICAgICAgfQogICAgICB9ICAgICAgCgogICAgICAjc2V0IGFsbCB0aGUgZmllbGRzIHZpc2liaWx0eSB0byAkYgogICAgICAjZXgsIHNldCBhbGwgZmllbGRzIHRvIGZhbHNlLCB0aGVuIGVuYWJsZSB0aGUgb25lcyB5b3UgbmVlZAogICAgICBmdW5jdGlvbiBzZXRWaXNpYmxlSW5FZGl0QWxsKCAkYiApCiAgICAgIHsKICAgICAgICAgZm9yZWFjaCggJHRoaXMtPmZpZWxkcyBhcyAkayA9PiAkdiApCiAgICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPmZpZWxkc1ska11bJ3Zpc2libGVfaW5fZWRpdCddID0gJGI7CiAgICAgICAgIH0KICAgICAgfQoKICAgICAgCiAgICAgICNwcmludCBvdXJzZWx2ZXMgb3V0IHNvIHdlIGNhbiB3aGF0IGlzIGJlaW5nIHNldCBhbmQvb3Igbm90Li4uCiAgICAgIGZ1bmN0aW9uIGRlYnVnKCkKICAgICAgewogICAgICAgICBlY2hvICI8cHJlPlxuIjsKICAgICAgICAgcHJpbnRfcigkdGhpcyk7CiAgICAgICAgIGVjaG8gIjwvcHJlPlxuIjsKICAgICAgfQogICAgIAogICAgIAogICAgICAKICAgICAgI3JldHVybnMgdGhlIGVycm9ycyBpZiB0aGVyZSB3ZXJlIHNvbWUgb3RoZXJ3aXNlIG5vLCB0aGVuIHJldHVybiBmYWxzZS4KICAgICAgZnVuY3Rpb24gZm9ybV9lcnJvcnMoKQogICAgICB7CiAgICAgICAgICNwcm9jZXNzIHRoZSByZWdleCB2YWxpZGF0aW9ucwogICAgICAgICAgICBmb3JlYWNoKCAkX1BPU1QgYXMgJGsgPT4gJHYgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGlmKCBpc3NldCggJHRoaXMtPmZpZWxkc1ska11bJ2ZpZWxkX3JlZ2V4J10gKSApCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgaWYoICEgZXJlZyggJHRoaXMtPmZpZWxkc1ska11bJ2ZpZWxkX3JlZ2V4J10gLCAkdiApICkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAkZXJyb3JzWyRrXSA9ICR0aGlzLT5maWVsZHNbJGtdWydmaWVsZF9lcnJvciddOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgaWYoIGlzc2V0KCAkZXJyb3JzICkgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICByZXR1cm4gJGVycm9yczsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgIH0jZW5kIGZvcm0gZXJyb3JzCiAgIAoKICAgICAgI3RoaXMgZnVuY3Rpb24gbWFrZXMgYSByYWRpbyBidXR0b24gYmFzZWQgb24gdGhlIGZpZWxkIHR5cGUKICAgICAgZnVuY3Rpb24gbWFrZV9yYWRpb3MoICRmaWVsZCApCiAgICAgIHsKICAgICAgICAgJHBhcnRzID0gc3BsaXQoICJcfCIgLCAkdGhpcy0+ZmllbGRzWyRmaWVsZF1bJ2ZpZWxkX3R5cGUnXSApOwogICAgICAgICAKICAgICAgICAgI3BvcCB0aGUgZmlyc3QgZWxlbWVudCBvZmYgdGhlIGFycmF5IAogICAgICAgICAkcGFydHMgPSBhcnJheV9yZXZlcnNlKCAkcGFydHMgKTsKICAgICAgICAgYXJyYXlfcG9wKCAkcGFydHMgKTsKICAgICAgICAgJHBhcnRzID0gYXJyYXlfcmV2ZXJzZSggJHBhcnRzICk7CgkgCgkgJHNlbGVjdGVkID0gJyc7CgoJIGlmIChpc3NldCggJF9QT1NUWyRmaWVsZF0gKSAmJiAkX1BPU1RbJGZpZWxkXSAhPSAnJykgewoJICAgJHNlbGVjdGVkID0gJF9QT1NUWyRmaWVsZF07CgkgfSBlbHNlIHsKCSAgICRzZWxlY3RlZCA9ICRwYXJ0c1swXTsKCSB9CiAgICAgICAgIAogICAgICAgICBmb3JlYWNoKCAkcGFydHMgYXMgJGsgPT4gJHYgKQogICAgICAgICB7CiAgICAgICAgICAgIGVjaG8gJHYgLiAiIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiIi4kZmllbGQuIlwiIHZhbHVlPVwiIi4kdi4iXCIvIjsKICAgICAgICAgICAgaWYoICRzZWxlY3RlZCA9PT0gJHYgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGVjaG8gIiBjaGVja2VkPVwiY2hlY2tlZFwiICI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWNobyAiPlxuIjsKICAgICAgICAgfQogICAgICB9CiAgIAogICAKICAgICAgI3RoaXMgZnVuY3Rpb24gbWFrZSBhIHNlbGVjdG9yIHdpdGggYW4gaW50IHJhbmdlCiAgICAgIGZ1bmN0aW9uIG1ha2VfcmFuZ2Vfc2VsZWN0b3IoICRtaW4gLCAkbWF4ICwgJGZvcm1fZmllbGQgKQogICAgICB7CiAgICAgIAogICAgICAgICBlY2hvICI8c2VsZWN0IG5hbWU9XCIiLiRmb3JtX2ZpZWxkLiJcIj5cbiI7CiAgICAgICAgICRpID0gJG1pbjsKICAgICAgICAgd2hpbGUoICRpIC0gMSA8ICRtYXggKQogICAgICAgICB7CiAgICAgICAgICAgIGVjaG8gIiAgPG9wdGlvbiB2YWx1ZT1cIiIuJGkuIlwiIjsKICAgICAgICAgICAgaWYoICRfUE9TVFskZm9ybV9maWVsZF0gPT0gJGkgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGVjaG8gIiBTRUxFQ1RFRCAiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVjaG8gIj4iLiRpLiI8L29wdGlvbj5cbiI7CiAgICAgICAgICAgICRpKys7CiAgICAgICAgIH0KICAgICAgICAgZWNobyAiPC9zZWxlY3Q+XG4iOwogICAgICAKICAgICAgfSNlbmQgZnVuYwogCiAKIAogCiAgICAgICN0aGlzIGZ1bmN0aW9uIG1ha2UgYSBzZWxlY3RvciB3aXRoIGFuIGludCByYW5nZQogICAgICBmdW5jdGlvbiBtYWtlX3RhYmxlX3NlbGVjdG9yKCAkdGFibGUgLCAkdmFsdWUgLCAkbGFiZWwgLCAkZm9ybV9maWVsZCApCiAgICAgIHsKICAgICAgCiAgICAgICAgIGVjaG8gIjxzZWxlY3QgbmFtZT1cIiIuJGZvcm1fZmllbGQuIlwiPlxuIjsKCiAgICAgICAgICRxID0gIlNFTEVDVCAiLiR2YWx1ZS4iLCAiLiRsYWJlbC4iIEZST00gIi4kdGFibGUuIiBPUkRFUiBCWSAiLiRsYWJlbC4iIEFTQyI7CiAgICAgICAgICRxciA9ICR0aGlzLT5kYi0+RXhlY3V0ZSggJHEgKSBvciBkaWUoICJSQ1JVRCBNQUtFIFRBQkxFIFNFTEVDVCBTUUw6ICIuJHRoaXMtPmRiLT5FcnJvck1zZygpICk7CiAgICAgICAKICAgICAgICAgCiAgICAgICAgIHdoaWxlKCAkcm93ID0gJHFyLT5GZXRjaFJvdygpICkKICAgICAgICAgewogICAgICAgICAgICBlY2hvICIgIDxvcHRpb24gdmFsdWU9XCIiLiRyb3dbJHZhbHVlXS4iXCIiOwogICAgICAgICAgICBpZiggaXNzZXQoJF9QT1NUWyRmb3JtX2ZpZWxkXSkgJiYgJF9QT1NUWyRmb3JtX2ZpZWxkXSA9PSAkcm93WyR2YWx1ZV0gKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGVjaG8gIiBTRUxFQ1RFRCAiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVjaG8gIj4iLiRyb3dbJGxhYmVsXS4iPC9vcHRpb24+XG4iOwogICAgICAgICAgICAKICAgICAgICAgfQogICAgICAgICBlY2hvICI8L3NlbGVjdD5cbiI7CiAgICAgIAogICAgICB9I2VuZCBmdW5jCiAgICAgIAogICAgICAKICAgICAgI3RoaXMgZnVuY3Rpb25zIGdldHMgdGhlIHRleHQgdmFsdWUgb2YgYSBmb3JlaWduIGtleQogICAgICBmdW5jdGlvbiBnZXRfZm9yZWlnbl9sYWJlbCggJHRhYmxlICwgJHZhbHVlX2ZpZWxkICwgJHZhbHVlICwgJGxhYmVsICkgIAogICAgICB7CiAgICAgIAogICAgICAgICAkcSA9ICJTRUxFQ1QgIi4kbGFiZWwuIiBGUk9NICIuJHRhYmxlLiIgV0hFUkUgIi4kdmFsdWVfZmllbGQuIiA9ICIuJHRoaXMtPmRiLT5xc3RyKCAkdmFsdWUgKTsKICAgICAgICAgJHFyID0gJHRoaXMtPmRiLT5FeGVjdXRlKCAkcSApOwogICAgICAgICAkcm93ID0gJHFyLT5GZXRjaFJvdygpOwogICAgICAgICBpZiggJHFyLT5SZWNvcmRDb3VudCgpID09IDAgKQogICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAiTWlzc2luZyBMYWJlbCI7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkcm93WyRsYWJlbF07CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgIH0KICAgICAgCiAgICAgIAogICAgICAjdGhpcyBmdW5jdGlvbnMgbWFrZSBhIGRhdGV0aW1lIGh0bWwgZmllbGQKICAgICAgZnVuY3Rpb24gbWFrZV9kYXRldGltZSggJGZpZWxkICkKICAgICAgewogICAgICAKICAgICAgICAgaWYoICEgaXNzZXQoICRfUE9TVFskZmllbGRdICkgfHwgJF9QT1NUWyRmaWVsZF0gPT0gIjAwMDAtMDAtMDAgMDA6MDA6MDAiICkKICAgICAgICAgewogICAgICAgICAgICAkX1BPU1RbJGZpZWxkXSA9IGRhdGUoICJZLW0tZCBIOmk6cyIgKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgJF9QT1NUWyRmaWVsZC4nLXllYXInXSA9IGRhdGUoICJZIiAsIHN0cnRvdGltZSggJF9QT1NUWyRmaWVsZF0gKSApOwogICAgICAgICAkX1BPU1RbJGZpZWxkLictbW9udGgnXSA9IGRhdGUoICJtIiAsIHN0cnRvdGltZSggJF9QT1NUWyRmaWVsZF0gKSApOwogICAgICAgICAkX1BPU1RbJGZpZWxkLictZGF5J10gPSBkYXRlKCAiZCIgLCBzdHJ0b3RpbWUoICRfUE9TVFskZmllbGRdICkgKTsKICAgICAgICAgJF9QT1NUWyRmaWVsZC4nLWhvdXInXSA9IGRhdGUoICJIIiAsIHN0cnRvdGltZSggJF9QT1NUWyRmaWVsZF0gKSApOwogICAgICAgICAkX1BPU1RbJGZpZWxkLictbWludXRlJ10gPSBkYXRlKCAiaSIgLCBzdHJ0b3RpbWUoICRfUE9TVFskZmllbGRdICkgKTsKICAgICAgICAgJF9QT1NUWyRmaWVsZC4nLXNlY29uZCddID0gZGF0ZSggInMiICwgc3RydG90aW1lKCAkX1BPU1RbJGZpZWxkXSApICk7CiAgICAgICAgIAogICAgICAgICAKICAgICAgICAgCiAgICAgICAgIGVjaG8gIllZWVktTU0tREQgIjsKICAgICAgICAgJHRoaXMtPm1ha2VfcmFuZ2Vfc2VsZWN0b3IoIGRhdGUoICJZIiApIC0gMTAwICwgZGF0ZSggIlkiICkgKyAxMCAsICRmaWVsZC4iLXllYXIiICk7CiAgICAgICAgICR0aGlzLT5tYWtlX3JhbmdlX3NlbGVjdG9yKCAxICwgMTIgLCAkZmllbGQuIi1tb250aCIgKTsKICAgICAgICAgJHRoaXMtPm1ha2VfcmFuZ2Vfc2VsZWN0b3IoIDEgLCAzMSAsICRmaWVsZC4iLWRheSIgKTsKICAgICAgICAgZWNobyAiICZuYnNwOyBISDpNTTpTUyAiOwogICAgICAgICAkdGhpcy0+bWFrZV9yYW5nZV9zZWxlY3RvciggMCAsIDIzICwgJGZpZWxkLiItaG91ciIgKTsKICAgICAgICAgJHRoaXMtPm1ha2VfcmFuZ2Vfc2VsZWN0b3IoIDAgLCA1OSAsICRmaWVsZC4iLW1pbnV0ZSIgKTsKICAgICAgICAgJHRoaXMtPm1ha2VfcmFuZ2Vfc2VsZWN0b3IoIDAgLCA1OSAsICRmaWVsZC4iLXNlY29uZCIgKTsKICAgICAgCiAgICAgIH0KICAgICAgCiAgICAgICN0aGlzIGZ1bmN0aW9uIGp1c3QgbWFrZXMgdGhlIGRhdGUgbm8gaCxtLHMKICAgICAgZnVuY3Rpb24gbWFrZV9kYXRlKCAkZmllbGQgKQogICAgICB7CiAgICAgICAgIGlmKCAhIGlzc2V0KCAkX1BPU1RbJGZpZWxkXSApIHx8ICRfUE9TVFskZmllbGRdID09ICIwMDAwLTAwLTAwIiApCiAgICAgICAgIHsKICAgICAgICAgICAgJF9QT1NUWyRmaWVsZF0gPSBkYXRlKCAiWS1tLWQiICk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgICRfUE9TVFskZmllbGQuJy15ZWFyJ10gPSBkYXRlKCAiWSIgLCBzdHJ0b3RpbWUoICRfUE9TVFskZmllbGRdICkgKTsKICAgICAgICAgJF9QT1NUWyRmaWVsZC4nLW1vbnRoJ10gPSBkYXRlKCAibSIgLCBzdHJ0b3RpbWUoICRfUE9TVFskZmllbGRdICkgKTsKICAgICAgICAgJF9QT1NUWyRmaWVsZC4nLWRheSddID0gZGF0ZSggImQiICwgc3RydG90aW1lKCAkX1BPU1RbJGZpZWxkXSApICk7CiAgICAgICAgIAogICAgICAgICAKICAgICAgICAgZWNobyAiWVlZWS1NTS1ERCAiOwogICAgICAgICAkdGhpcy0+bWFrZV9yYW5nZV9zZWxlY3RvciggZGF0ZSggIlkiICkgLSAxMDAgLCBkYXRlKCAiWSIgKSArIDEwICwgJGZpZWxkLiIteWVhciIgKTsKICAgICAgICAgJHRoaXMtPm1ha2VfcmFuZ2Vfc2VsZWN0b3IoIDEgLCAxMiAsICRmaWVsZC4iLW1vbnRoIiApOwogICAgICAgICAkdGhpcy0+bWFrZV9yYW5nZV9zZWxlY3RvciggMSAsIDMxICwgJGZpZWxkLiItZGF5IiApOwoKICAgICAgCiAgICAgIH0KICAgICAgCiAgICAgICN0aGlzIGNvbXBpbGVzIGJhY2sgdGhlIGRhdGV0aW1lIGZpZWxkIGZyb20gaHRtbCBwb3N0CiAgICAgIGZ1bmN0aW9uIGNvbXBpbGVfZGF0ZXRpbWUoICRmaWVsZCApCiAgICAgIHsKICAgICAgCiAgICAgICAgICRfUE9TVFskZmllbGRdID0gJF9QT1NUWyRmaWVsZC4nLXllYXInXS4iLSIuJF9QT1NUWyRmaWVsZC4nLW1vbnRoJ10uIi0iLiRfUE9TVFskZmllbGQuJy1kYXknXS4iICIuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRfUE9TVFskZmllbGQuJy1ob3VyJ10uIjoiLiRfUE9TVFskZmllbGQuJy1taW51dGUnXS4iOiIuJF9QT1NUWyRmaWVsZC4nLXNlY29uZCddOwogICAgICAKICAgICAgfQogICAgICAKICAgICAgI3RoaXMgZnVuY3Rpb24gY29tcGlsZXMganVzdCBhIGRhdGUgaW50byBvbmUgZmllbGQgYWdhaW4KICAgICAgZnVuY3Rpb24gY29tcGlsZV9kYXRlKCAkZmllbGQgKQogICAgICB7CiAgICAgIAogICAgICAgICAkX1BPU1RbJGZpZWxkXSA9ICRfUE9TVFskZmllbGQuJy15ZWFyJ10uIi0iLiRfUE9TVFskZmllbGQuJy1tb250aCddLiItIi4kX1BPU1RbJGZpZWxkLictZGF5J107CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICB9CiAgICAgIAogICAgICAjdGhpcyBjb3ZlcnRzIGFsbCB0aGUgZGF0ZXRpbWVzIGZyb20gcG9zdCBpbnRvIHRoZSBvcmlnaW5hbCBmaWVsZAogICAgICBmdW5jdGlvbiBjb21waWxlX2RhdGV0aW1lcygpCiAgICAgIHsKICAgICAgCiAgICAgICAgIGZvcmVhY2goICR0aGlzLT5maWVsZHMgYXMgJGsgPT4gJHYgKQogICAgICAgICB7CiAgICAgICAgICAgIGlmKCAkdlsnZmllbGRfdHlwZSddID09ICJkYXRldGltZSIgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICR0aGlzLT5jb21waWxlX2RhdGV0aW1lKCAkayApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiggJHZbJ2ZpZWxkX3R5cGUnXSA9PSAiZGF0ZSIgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICR0aGlzLT5jb21waWxlX2RhdGUoICRrICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgIH0KICAgICAgCiAgICAgI3RoaXMgZnVuY3Rpb24gbWFrZXMgYSByZXR1cm4gdG8gbGlzdCBsaW5rIHNvIHdpdGggYW55IHJjcnVkIHN0dWZmCiAgICAgZnVuY3Rpb24gbWFrZV9yZXR1cm5fbGluaygpCiAgICAgewogICAgICAgJHQgPSAnJzsKICAgICAgICBmb3JlYWNoKCAkX0dFVCBhcyAkayA9PiAkdiApCiAgICAgICAgewogICAgICAgICAgIGlmKCAhIGVyZWcoICJecmNydWQiLCAkayApICkKICAgICAgICAgICB7CiAgICAgICAgICAgICAgJHQgPSAkdCAuICRrIC4gIj0iIC4kdi4gIiYiOwogICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAkdCA9IGVyZWdfcmVwbGFjZSggIlwmJCIgLCAiIiAsICR0ICk7CiAgICAgICAgICAgIAogICAgICAgICAkdCA9ICRfU0VSVkVSWyJQSFBfU0VMRiJdIC4gIj8iIC4gJHQ7CiAgICAgICAgIGVjaG8gIjxwPjxhIGhyZWY9XCIiLiAkdCAuICJcIj5yZXR1cm4gdG8gbGlzdDwvYT48L3A+XG4iOwogICAgICAgICAKICAgICB9CiAgIAogICB9I2VuZGNsYXNzCgoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgokZGIgPSYgJGdDbXMtPkdldERiKCk7CgovLyBteXNxbC1zcGVjaWZpYywgYnV0IGlnbm9yZWQgYnkgb3RoZXIgZGF0YWJhc2UKJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsKCiRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCi8vIHRhYmxlIHNjaGVtYSBkZXNjcmlwdGlvbgokZmxkcyA9ICIKCW1hcF9pZCBJIEFVVE8gS0VZLAogICAgbmFtZSBDKDgwKSBOT1ROVUxMLAoJZGVzY3JpcHRpb24gWCwKICAgIHdpZHRoIEMoNTApLAogICAgaGVpZ2h0IEMoNTApLAoJdHJhY2Vjb2xvciBDKDEwKSwKCXRyYWNld2lkdGggQygxMCksCgljYXJ0ZWJ5ZGVmYXVsdCBDKDIwKSwKCWZpcm1zZWxlY3RlZCBDKDEwKSwKCXNtYWxsY29udHJvbCBDKDEwKSwKCWhvcml6b250YWxjb250cm9sIEMoMTApLAoJZWNoZWxsZWNvbnRyb2wgSSwKCXpvb21lbmFibGUgSSwKCW9wYWNpdHlpZ24gSSwKCW9wYWNpdHlwaG90byBJLAoJZXhwYW5kbGF5ZXJzY29udHJvbCBJLAoJZXhwYW5kdG9vbGNvbnRyb2wgSSwKCXNob3dwaG90b3Bhbm9yYW1pYSBJLAoJc2hvd3dpa2lwZWRpYSBJLAoJc3RhcnRpY29uaW1hZ2UgQygyNTUpLAoJc3RhcnRpY29uc2hhZG93IEMoMjU1KSwKCXN0YXJ0aWNvbmlzd2lkdGggSSwKCXN0YXJ0aWNvbmlzaGVpZ2ggSSwKCXN0YXJ0aWNvbnNzd2lkdGggSSwKCXN0YXJ0aWNvbnNzaGVpZ2ggSSwKCXN0YXJ0aWNvbmlhbGVmdCBJLAoJc3RhcnRpY29uaWF0b3AgSSwKCXN0YXJ0aWNvbml3YWxlZnQgSSwKCXN0YXJ0aWNvbml3YXRvcCBJLAoJZW5kaWNvbmltYWdlIEMoMjU1KSwKCWVuZGljb25zaGFkb3cgQygyNTUpLAoJZW5kaWNvbmlzd2lkdGggSSwKCWVuZGljb25pc2hlaWdoIEksCgllbmRpY29uc3N3aWR0aCBJLAoJZW5kaWNvbnNzaGVpZ2ggSSwKCWVuZGljb25pYWxlZnQgSSwKCWVuZGljb25pYXRvcCBJLAoJZW5kaWNvbml3YWxlZnQgSSwKCWVuZGljb25pd2F0b3AgSSwKCWRlZmF1bHRpY29uaW1hZ2UgQygyNTUpLAoJZGVmYXVsdGljb25zaGFkb3cgQygyNTUpLAoJZGVmYXVsdGljb25pc3dpZHRoIEksCglkZWZhdWx0aWNvbmlzaGVpZ2ggSSwKCWRlZmF1bHRpY29uc3N3aWR0aCBJLAoJZGVmYXVsdGljb25zc2hlaWdoIEksCglkZWZhdWx0aWNvbmlhbGVmdCBJLAoJZGVmYXVsdGljb25pYXRvcCBJLAoJZGVmYXVsdGljb25pd2FsZWZ0IEksCglkZWZhdWx0aWNvbml3YXRvcCBJCgkiOwoKLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlVGFibGVTUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfU2ltcGxlR1BYTWFwX21hcHMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLy9pbmRleCBmb3IgbWFwcwokc3FsYXJyYXkgPSAkZGljdC0+Q3JlYXRlSW5kZXhTUUwoJ2lfbmFtZScsIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1NpbXBsZUdQWE1hcF9tYXBzIiwgJ25hbWUnKTsKCgovLyBjcmVhdGUgYSBwZXJtaXNzaW9uCiR0aGlzLT5DcmVhdGVQZXJtaXNzaW9uKCdVc2UgU2ltcGxlR1BYTWFwJywgJ1VzZSBTaW1wbGVHUFhNYXAnKTsKCgovLyBjcmVhdGUgYSBwcmVmZXJlbmNlCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCJzZ3B4bWFwX0dvb2dsZWFwaWtleSIsICcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoInNncHhtYXBfR2VvUG9ydGFpbGFwcGlkIiwgJycpOwoKCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ2luc3RhbGxlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoKJGRiID0mICRnQ21zLT5HZXREYigpOwoKLy8gcmVtb3ZlIHRoZSBkYXRhYmFzZSB0YWJsZQokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCi8vIG1hcHMKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfU2ltcGxlR1BYTWFwX21hcHMiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKJGRiLT5Ecm9wU2VxdWVuY2UoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1NpbXBsZUdQWE1hcF9tYXBzX3NlcSIgKTsKCi8vIHJlbW92ZSB0aGUgcGVybWlzc2lvbnMKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ1VzZSBTaW1wbGVHUFhNYXAnKTsKCi8vIHJlbW92ZSB0aGUgcHJlZmVyZW5jZQokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgic2dweG1hcF9Hb29nbGVhcGlrZXkiKTsKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoInNncHhtYXBfR2VvUG9ydGFpbGFwaWtleSIpOwoKCi8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZwokdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VuaW5zdGFsbGVkJykpOwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/SimpleGPXMap.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNpbXBsZUdQWE1hcCAtIE1vZHVsZSBmb3IgR29vZ2xlTWFwcyBHZW9Qb3J0YWlsCiMgVmVyc2lvbjogMC4xLCBNckZNTwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKY2xhc3MgU2ltcGxlR1BYTWFwIGV4dGVuZHMgQ01TTW9kdWxlCnsKCS8vdmFyICRfZ29vZ2xlYXBpX3ZlcnNpb24gPSAiMi40IjsKCglmdW5jdGlvbiBHZXROYW1lKCkKCXsKCQlyZXR1cm4gJ1NpbXBsZUdQWE1hcCc7Cgl9CgoJZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwoJfQoKCWZ1bmN0aW9uIEdldFZlcnNpb24oKQoJewoJCXJldHVybiAnMC4yJzsKCX0KCglmdW5jdGlvbiBHZXRIZWxwKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKCX0KCglmdW5jdGlvbiBHZXRBdXRob3IoKQoJewoJCXJldHVybiAnTXJGTU8nOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKCXsKCQlyZXR1cm4gJ2ZhYnJpY2UubW9uZ2VAZnJlZS5mcic7Cgl9CgoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwoJfQoKCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCglmdW5jdGlvbiBIYXNBZG1pbigpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgogIAlmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQoJewoJCXJldHVybiAnZXh0ZW5zaW9ucyc7Cgl9CgoJZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOwoJfQoKCWZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCgl7CgkgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgU2ltcGxlR1BYTWFwJyk7Cgl9CgoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQkvL3JldHVybiBhcnJheSggJ0FqYXhNYWRlU2ltcGxlJyA9PiAnMC4xLjYnICk7CgkJcmV0dXJuIGFycmF5KCk7Cgl9CgoKCWZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKCXsKCQlyZXR1cm4gIjEuMi42IjsKCX0KCQoJZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCgl7CgkgICR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsKCSAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CgoJICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdncHhmaWxlJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX3BhcmFtX2dweGZpbGUnKSk7CgkgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdncHhmaWxlJyxDTEVBTl9TVFJJTkcpOwoJICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdtYXAnLCd0ZXN0JywgJHRoaXMtPmxhbmcoJ2hlbHBfcGFyYW1fbWFwJyksIGZhbHNlKTsKCSAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGl0bGUnLCcnLCAkdGhpcy0+bGFuZygnaGVscF9wYXJhbV90aXRsZScpKTsKCSAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGV4dCcsJycsICR0aGlzLT5sYW5nKCdoZWxwX3BhcmFtX3RleHQnKSk7CgkgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtYXAnLENMRUFOX1NUUklORyk7CgkgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd0aXRsZScsQ0xFQU5fU1RSSU5HKTsKCSAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RleHQnLENMRUFOX1NUUklORyk7Cgl9CgoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7Cgl9CgoJZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwoJfQoKCWZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwoJfQoJCglmdW5jdGlvbiBEaXNwbGF5RXJyb3JQYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCgl7CgkgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZXJyb3InLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkgIGlmICgkbWVzc2FnZSAhPSAnJykKCSAgICB7CgkgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdtZXNzYWdlJywgJG1lc3NhZ2UpOwoJICAgIH0KCSAgCgkgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQoJICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwoJfQoKICAgIGZ1bmN0aW9uIEdldFVybCgpIHsKICAgICAgJHVybGJydXQgPSAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXTsKICAgICAgLy8gc3VwcHJlc3Npb24gZGVzIHBhcmFtw6h0cmVzIGZvcsOnYW50IEdvb2dsZQogICAgICAkdXJscHVyZ2UgPSBzdHJfcmVwbGFjZSgnJnNncHhtYXBfZm9yY2VmaXJtPUdPT0dMRScsJycsJHVybGJydXQpOwogICAgICAvLyBzdXBwcmVzc2lvbiBkdSBwYXJhbcOodHJlIGZvcsOnYW50IEdlb1BvcnRhaWwKICAgICAgJHVybHB1cmdlID0gc3RyX3JlcGxhY2UoJyZzZ3B4bWFwX2ZvcmNlZmlybT1HZW9Qb3J0YWlsJywnJywkdXJscHVyZ2UpOwogICAgICAvLyBzdXBwcmVzc2lvbiBkZSBsJ2FuY3JhZ2UKICAgICAgJHVybHB1cmdlID0gc3RyX3JlcGxhY2UoJyNzZ3B4bWFwYW5jcmUnLCcnLCR1cmxwdXJnZSk7CiAgICAgcmV0dXJuICR1cmxwdXJnZTsKCX0KCgoKCWZ1bmN0aW9uIENvbnN0cnVjdERpdk1hcHNHb29nbGUoJHBhcmFtcykgewoJCSNBdm9pZCBmbG9hdCBwcm9ibGVtIGluIGxvY2FsZQoJCSRjdXJyZW50TG9jYWxlID0gc2V0bG9jYWxlKExDX0FMTCwgMCk7CgkJc2V0bG9jYWxlKExDX0FMTCwgJ2VuX1VTJyk7CgoJCSRtYXAgPSAnJzsKCQlpZighaXNzZXQoJHBhcmFtc1snbWFwJ10pKQoJCXsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsJHRoaXMtPkxhbmcoJ21pc3NpbmdfcGFyYW0nKSk7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCR0aGlzLT5MYW5nKCdlcnJvcicpKTsKCQkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQkJcmV0dXJuOwoJCX0KCQkkbWFwID0gJHBhcmFtc1snbWFwJ107CgoJCSRncHhmaWxlID0gJyc7CgkJaWYoIWlzc2V0KCRwYXJhbXNbJ2dweGZpbGUnXSkpCgkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywkdGhpcy0+TGFuZygnbWlzc2luZ19wYXJhbScpKTsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwoJCQlyZXR1cm47CgkJfSBlbHNlICB7CgkJCSRncHhmaWxlID0gJHBhcmFtc1snZ3B4ZmlsZSddOwoJCQkvLyBvbiBuZSB2ZXJpZmllIHBhcyBxdWUgbGUgZmljaGllciBHUFggZXhpc3RlIHN1ciBsZSBzaXRlCgkJfQoKCQkkdGl0bGUgPSAnJzsKCQlpZiggaXNzZXQoJHBhcmFtc1sndGl0bGUnXSkgKQoJCXsKCQkJJHRpdGxlID0gJHBhcmFtc1sndGl0bGUnXTsKCQl9CgoJCSR0ZXh0ID0gJyc7CgkJaWYoIGlzc2V0KCRwYXJhbXNbJ3RleHQnXSkgKQoJCXsKCQkJJHRleHQgPSAkcGFyYW1zWyd0ZXh0J107CgkJfQoKCQkvLyBvbiB2ZXJpZmllIHF1J2lsIHkgYSBhdSBtb2lucyB1biBhcGlrZXkKCQlpZigoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NncHhtYXBfR29vZ2xlYXBpa2V5JykgPT0gJycpKQoJCXsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywgJHRoaXMtPkxhbmcoJ25va2V5JykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQlyZXR1cm47CgkJfQoJCQoJCSRkYj0mJHRoaXMtPkdldERiKCk7CgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi4gY21zX2RiX3ByZWZpeCgpIC4ibW9kdWxlX1NpbXBsZUdQWE1hcF9tYXBzIFdIRVJFIG5hbWUgTElLRSAnJG1hcCcgTElNSVQgMSI7CgkJJG1hcF9kYXRhID0gYXJyYXkoKTsKCQkkZGJyZXN1bHQgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJaWYoJGRicmVzdWx0KSB7CgkJJG1hcF9kYXRhID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJCX0KCgkJaWYoIWlzc2V0KCRtYXBfZGF0YVsnbWFwX2lkJ10pKSB7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsICR0aGlzLT5MYW5nKCdub21hcCcpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CgkJcmV0dXJuOwoJCX0KCgkJJGhtYXAgPSBpc3NldCgkbWFwX2RhdGFbJ2hlaWdodCddKT8kbWFwX2RhdGFbJ2hlaWdodCddOic1MDAnOwoJCSR3bWFwID0gaXNzZXQoJG1hcF9kYXRhWyd3aWR0aCddKT8kbWFwX2RhdGFbJ3dpZHRoJ106JzYwMCc7CgkJJHRyYWNlY29sb3IgPSAoJG1hcF9kYXRhWyd0cmFjZWNvbG9yJ10gIT0gJycpPyRtYXBfZGF0YVsndHJhY2Vjb2xvciddOicjMDAwMGZmJzsKCQkkdHJhY2VXaWR0aCA9ICgkbWFwX2RhdGFbJ3RyYWNld2lkdGgnXSAhPSAnJyk/JG1hcF9kYXRhWyd0cmFjZXdpZHRoJ106JzUnOwoJCSRjYXJ0ZUJ5RGVmYXVsdCA9IGlzc2V0KCRtYXBfZGF0YVsnY2FydGVieWRlZmF1bHQnXSk/JG1hcF9kYXRhWydjYXJ0ZWJ5ZGVmYXVsdCddOidHX05PUk1BTF9NQVAnOwoJCQoJCSRzdGFydGljb25pbWFnZSA9IGlzc2V0KCRtYXBfZGF0YVsnc3RhcnRpY29uaW1hZ2UnXSk/JG1hcF9kYXRhWydzdGFydGljb25pbWFnZSddOicnOwoJICAgICRzdGFydGljb25zaGFkb3cgPSBpc3NldCgkbWFwX2RhdGFbJ3N0YXJ0aWNvbnNoYWRvdyddKT8kbWFwX2RhdGFbJ3N0YXJ0aWNvbnNoYWRvdyddOicnOwogICAgCSRzdGFydGljb25pc3dpZHRoID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25pc3dpZHRoJ10pPyRtYXBfZGF0YVsnc3RhcnRpY29uaXN3aWR0aCddOicwJzsKICAgIAkkc3RhcnRpY29uaXNoZWlnaCA9IGlzc2V0KCRtYXBfZGF0YVsnc3RhcnRpY29uaXNoZWlnaCddKT8kbWFwX2RhdGFbJ3N0YXJ0aWNvbmlzaGVpZ2gnXTonMCc7CiAgICAJJHN0YXJ0aWNvbnNzd2lkdGggPSBpc3NldCgkbWFwX2RhdGFbJ3N0YXJ0aWNvbnNzd2lkdGgnXSk/JG1hcF9kYXRhWydzdGFydGljb25zc3dpZHRoJ106JzAnOwoJICAgICRzdGFydGljb25zc2hlaWdoID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25zc2hlaWdoJ10pPyRtYXBfZGF0YVsnc3RhcnRpY29uc3NoZWlnaCddOicwJzsKCSAgICAkc3RhcnRpY29uaWFsZWZ0ID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25pYWxlZnQnXSk/JG1hcF9kYXRhWydzdGFydGljb25pYWxlZnQnXTonMCc7CgkgICAgJHN0YXJ0aWNvbmlhdG9wID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25pYXRvcCddKT8kbWFwX2RhdGFbJ3N0YXJ0aWNvbmlhdG9wJ106JzAnOwoJICAgICRzdGFydGljb25pd2FsZWZ0ID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25pd2FsZWZ0J10pPyRtYXBfZGF0YVsnc3RhcnRpY29uaXdhbGVmdCddOicwJzsKCSAgICAkc3RhcnRpY29uaXdhdG9wID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25pd2F0b3AnXSk/JG1hcF9kYXRhWydzdGFydGljb25pd2F0b3AnXTonMCc7CgoJCSRlbmRpY29uaW1hZ2UgPSBpc3NldCgkbWFwX2RhdGFbJ2VuZGljb25pbWFnZSddKT8kbWFwX2RhdGFbJ2VuZGljb25pbWFnZSddOicnOwoJICAgICRlbmRpY29uc2hhZG93ID0gaXNzZXQoJG1hcF9kYXRhWydlbmRpY29uc2hhZG93J10pPyRtYXBfZGF0YVsnZW5kaWNvbnNoYWRvdyddOicnOwogICAgCSRlbmRpY29uaXN3aWR0aCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbmlzd2lkdGgnXSk/JG1hcF9kYXRhWydlbmRpY29uaXN3aWR0aCddOicwJzsKICAgIAkkZW5kaWNvbmlzaGVpZ2ggPSBpc3NldCgkbWFwX2RhdGFbJ2VuZGljb25pc2hlaWdoJ10pPyRtYXBfZGF0YVsnZW5kaWNvbmlzaGVpZ2gnXTonMCc7CiAgICAJJGVuZGljb25zc3dpZHRoID0gaXNzZXQoJG1hcF9kYXRhWydlbmRpY29uc3N3aWR0aCddKT8kbWFwX2RhdGFbJ2VuZGljb25zc3dpZHRoJ106JzAnOwoJICAgICRlbmRpY29uc3NoZWlnaCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbnNzaGVpZ2gnXSk/JG1hcF9kYXRhWydlbmRpY29uc3NoZWlnaCddOicwJzsKCSAgICAkZW5kaWNvbmlhbGVmdCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbmlhbGVmdCddKT8kbWFwX2RhdGFbJ2VuZGljb25pYWxlZnQnXTonMCc7CgkgICAgJGVuZGljb25pYXRvcCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbmlhdG9wJ10pPyRtYXBfZGF0YVsnZW5kaWNvbmlhdG9wJ106JzAnOwoJICAgICRlbmRpY29uaXdhbGVmdCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbml3YWxlZnQnXSk/JG1hcF9kYXRhWydlbmRpY29uaXdhbGVmdCddOicwJzsKCSAgICAkZW5kaWNvbml3YXRvcCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbml3YXRvcCddKT8kbWFwX2RhdGFbJ2VuZGljb25pd2F0b3AnXTonMCc7CgkgICAgCgkgICAgJGRlZmF1bHRpY29uaW1hZ2UgPSBpc3NldCgkbWFwX2RhdGFbJ2RlZmF1bHRpY29uaW1hZ2UnXSk/JG1hcF9kYXRhWydkZWZhdWx0aWNvbmltYWdlJ106Jyc7CgkgICAgJGRlZmF1bHRpY29uc2hhZG93ID0gaXNzZXQoJG1hcF9kYXRhWydkZWZhdWx0aWNvbnNoYWRvdyddKT8kbWFwX2RhdGFbJ2RlZmF1bHRpY29uc2hhZG93J106Jyc7CiAgICAJJGRlZmF1bHRpY29uaXN3aWR0aCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25pc3dpZHRoJ10pPyRtYXBfZGF0YVsnZGVmYXVsdGljb25pc3dpZHRoJ106JzAnOwogICAgCSRkZWZhdWx0aWNvbmlzaGVpZ2ggPSBpc3NldCgkbWFwX2RhdGFbJ2RlZmF1bHRpY29uaXNoZWlnaCddKT8kbWFwX2RhdGFbJ2RlZmF1bHRpY29uaXNoZWlnaCddOicwJzsKICAgIAkkZGVmYXVsdGljb25zc3dpZHRoID0gaXNzZXQoJG1hcF9kYXRhWydkZWZhdWx0aWNvbnNzd2lkdGgnXSk/JG1hcF9kYXRhWydkZWZhdWx0aWNvbnNzd2lkdGgnXTonMCc7CgkgICAgJGRlZmF1bHRpY29uc3NoZWlnaCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25zc2hlaWdoJ10pPyRtYXBfZGF0YVsnZGVmYXVsdGljb25zc2hlaWdoJ106JzAnOwoJICAgICRkZWZhdWx0aWNvbmlhbGVmdCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25pYWxlZnQnXSk/JG1hcF9kYXRhWydkZWZhdWx0aWNvbmlhbGVmdCddOicwJzsKCSAgICAkZGVmYXVsdGljb25pYXRvcCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25pYXRvcCddKT8kbWFwX2RhdGFbJ2RlZmF1bHRpY29uaWF0b3AnXTonMCc7CgkgICAgJGRlZmF1bHRpY29uaXdhbGVmdCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25pd2FsZWZ0J10pPyRtYXBfZGF0YVsnZGVmYXVsdGljb25pd2FsZWZ0J106JzAnOwoJICAgICRkZWZhdWx0aWNvbml3YXRvcCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25pd2F0b3AnXSk/JG1hcF9kYXRhWydkZWZhdWx0aWNvbml3YXRvcCddOicwJzsJCQoJCQoJCSRGaXJtID0gaXNzZXQoJG1hcF9kYXRhWydmaXJtc2VsZWN0ZWQnXSk/JG1hcF9kYXRhWydmaXJtc2VsZWN0ZWQnXTonR09PR0xFJzsgCgoJCSRGaXJtQXBpID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NncHhtYXBfR29vZ2xlYXBpa2V5JywxKTsKCQkkRmlybUhlYWRlciA9ICc8c2NyaXB0IHNyYz0iaHR0cDovL21hcHMuZ29vZ2xlLmNvbS9tYXBzP2ZpbGU9YXBpJmFtcDt2PTImYW1wO2tleT0nLiRGaXJtQXBpLiciIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Im1vZHVsZXMvU2ltcGxlR1BYTWFwL2xpYi9sb2FkZ3B4L2xvYWRncHguNC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4nOwogICAgICAgICRGaXJtVGFicyA9ICc8dWwgaWQ9InRhYm5hdiI+PGxpIGNsYXNzPSJhY3RpdmUiPjxhIGhyZWY9IicuJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10uJyNzZ3B4bWFwYW5jcmUiPkdvb2dsZTwvYT48L2xpPjxsaSA+PGEgaHJlZj0iJy4kdGhpcy0+R2V0VXJsKCkuJyZzZ3B4bWFwX2ZvcmNlZmlybT1HZW9Qb3J0YWlsI3NncHhtYXBhbmNyZSI+R2VvUG9ydGFpbDwvYT48L2xpPjwvdWw+JzsKCiAJCSRGaXJtTWFwID0nPGRpdiBpZD0iZ29vbWFwIiBzdHlsZT0iaGVpZ2h0OicuJGhtYXAuJ3B4O3dpZHRoOicuJHdtYXAuJ3B4OyI+Jy4kdGl0bGUuJyZuYnNwOycuJHRleHQuJzwvZGl2Pic7CgkJJEZpcm1NYXBKUyA9ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly8gPCFbQ0RBVEFbCgl2YXIgTXlNYXA7CglmdW5jdGlvbiBMb2FkR1BYRmlsZUludG9Hb29nbGVNYXAobWFwLCBmaWxlbmFtZSkKCXsKCQkvLyBSZW1vdmUgYW55IGV4aXN0aW5nIG92ZXJsYXlzIGZyb20gdGhlIG1hcC4KCQltYXAuY2xlYXJPdmVybGF5cygpOwoJCXZhciByZXF1ZXN0ID0gR1htbEh0dHAuY3JlYXRlKCk7CgkJcmVxdWVzdC5vcGVuKCJHRVQiLCBmaWxlbmFtZSwgdHJ1ZSk7CgkJcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpCgkJewoJCQlpZiAocmVxdWVzdC5yZWFkeVN0YXRlID09IDQpCgkJCXsKCQkJcGFyc2VyID0gbmV3IEdQWFBhcnNlcihyZXF1ZXN0LnJlc3BvbnNlWE1MLCBtYXApOwoJCQlwYXJzZXIuU2V0VHJhY2tDb2xvdXIoIicuJHRyYWNlY29sb3IuJyIpOwkvLyBTZXQgdGhlIHRyYWNrIGxpbmUgY29sb3VyCgkJCXBhcnNlci5TZXRUcmFja1dpZHRoKCcuJHRyYWNlV2lkdGguJyk7CQkvLyBTZXQgdGhlIHRyYWNrIGxpbmUgd2lkdGgKCQkJLy8gZGVmaW5pbmVkIHRoZSBpY29ucyBmb3IgdGhlIHRyYWNrcG9pbnQgbWFya2VyCgkJCSc7CgkJaWYgKCgkc3RhcnRpY29uaW1hZ2UgIT0gJycpICYmICgkc3RhcnRpY29uc2hhZG93ICE9ICcnKSkgeyRGaXJtTWFwSlMgLj0gJ3BhcnNlci5TZXRTdGFydEljb24oIicuJHN0YXJ0aWNvbmltYWdlLiciLAoJCQkgICAgICAgICAgICAgICAgICAgICInLiRzdGFydGljb25zaGFkb3cuJyIsCgkJCSAgICAgICAgICAgICAgICAgICAgJy4kc3RhcnRpY29uaXN3aWR0aC4nLCcuJHN0YXJ0aWNvbmlzaGVpZ2guJywKCQkJICAgICAgICAgICAgICAgICAgICAnLiRzdGFydGljb25zc3dpZHRoLicsJy4kc3RhcnRpY29uc3NoZWlnaC4nLAoJCQkgICAgICAgICAgICAgICAgICAgICcuJHN0YXJ0aWNvbmlhbGVmdC4nLCcuJHN0YXJ0aWNvbmlhdG9wLicsCgkJCSAgICAgICAgICAgICAgICAgICAgJy4kc3RhcnRpY29uaXdhbGVmdC4nLCcuJHN0YXJ0aWNvbml3YXRvcC4nKTsKCQkJICc7fQoJCWlmICgoJGVuZGljb25pbWFnZSAhPSAnJykgJiYgKCRlbmRpY29uc2hhZG93ICE9ICcnKSkgeyRGaXJtTWFwSlMgLj0gJ3BhcnNlci5TZXRFbmRJY29uKCInLiRlbmRpY29uaW1hZ2UuJyIsCgkJCSAgICAgICAgICAgICAgICAgICAgIicuJGVuZGljb25zaGFkb3cuJyIsCgkJCSAgICAgICAgICAgICAgICAgICAgJy4kZW5kaWNvbmlzd2lkdGguJywnLiRlbmRpY29uaXNoZWlnaC4nLAoJCQkgICAgICAgICAgICAgICAgICAgICcuJGVuZGljb25zc3dpZHRoLicsJy4kZW5kaWNvbnNzaGVpZ2guJywKCQkJICAgICAgICAgICAgICAgICAgICAnLiRlbmRpY29uaWFsZWZ0LicsJy4kZW5kaWNvbmlhdG9wLicsCgkJCSAgICAgICAgICAgICAgICAgICAgJy4kZW5kaWNvbml3YWxlZnQuJywnLiRlbmRpY29uaXdhdG9wLicpOwoJCQkgJzt9CQkJIAoJCWlmICgoJGRlZmF1bHRpY29uaW1hZ2UgIT0gJycpICYmICgkZGVmYXVsdGljb25zaGFkb3cgIT0gJycpKSB7JEZpcm1NYXBKUyAuPSAncGFyc2VyLlNldERlZmF1bHRJY29uKCInLiRkZWZhdWx0aWNvbmltYWdlLiciLAoJCQkgICAgICAgICAgICAgICAgICAgICInLiRkZWZhdWx0aWNvbnNoYWRvdy4nIiwKCQkJICAgICAgICAgICAgICAgICAgICAnLiRkZWZhdWx0aWNvbmlzd2lkdGguJywnLiRkZWZhdWx0aWNvbmlzaGVpZ2guJywKCQkJICAgICAgICAgICAgICAgICAgICAnLiRkZWZhdWx0aWNvbnNzd2lkdGguJywnLiRkZWZhdWx0aWNvbnNzaGVpZ2guJywKCQkJICAgICAgICAgICAgICAgICAgICAnLiRkZWZhdWx0aWNvbmlhbGVmdC4nLCcuJGRlZmF1bHRpY29uaWF0b3AuJywKCQkJICAgICAgICAgICAgICAgICAgICAnLiRkZWZhdWx0aWNvbml3YWxlZnQuJywnLiRkZWZhdWx0aWNvbml3YXRvcC4nKTsKCQkJICc7fQkJCSAKCQkJJEZpcm1NYXBKUyAuPSAncGFyc2VyLlNldE1pblRyYWNrUG9pbnREZWx0YSgwLjAwMSk7CS8vIFNldCB0aGUgbWluaW11bSBkaXN0YW5jZSBiZXR3ZWVuIHRyYWNrIHBvaW50cwoJCQlwYXJzZXIuQ2VudGVyQW5kWm9vbShyZXF1ZXN0LnJlc3BvbnNlWE1MLCAnLiRjYXJ0ZUJ5RGVmYXVsdC4nKTsgLy8gQ2VudGVyIGFuZCBab29tIHRoZSBtYXAgb3ZlciBhbGwgdGhlIHBvaW50cy4KCQkJcGFyc2VyLkFkZFRyYWNrcG9pbnRzVG9NYXAoKTsJLy8gQWRkIHRoZSB0cmFja3BvaW50cwoJCQlwYXJzZXIuQWRkV2F5cG9pbnRzVG9NYXAoKTsJLy8gQWRkIHRoZSB3YXlwb2ludHMKCQkJfQoJCX0KCQlyZXF1ZXN0LnNlbmQobnVsbCk7Cgl9CgoJZnVuY3Rpb24gb25Mb2FkKCkKCXsKCSBpZiAoR0Jyb3dzZXJJc0NvbXBhdGlibGUoKSkgewoJICAgTXlNYXAgPSBuZXcgR01hcDIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdvb21hcCIpKTsKCSAgICc7CgkgICBpZiAoJG1hcF9kYXRhWydzbWFsbGNvbnRyb2wnXSA9PSAnU21hbGwnKSB7JEZpcm1NYXBKUyAuPSAnTXlNYXAuYWRkQ29udHJvbChuZXcgR1NtYWxsTWFwQ29udHJvbCgpKTsgLy8gY29udHJvbCBlbiBwZXRpdDsKCSAgICc7fSBlbHNlIHskRmlybU1hcEpTIC49ICdNeU1hcC5hZGRDb250cm9sKG5ldyBHTGFyZ2VNYXBDb250cm9sKCkpOwoJICAgJzt9CgkgICBpZiAoJG1hcF9kYXRhWydob3Jpem9udGFsY29udHJvbCddID09ICdIb3Jpem9udGFsJykgeyRGaXJtTWFwSlMgLj0gJ015TWFwLmFkZENvbnRyb2wobmV3IEdNYXBUeXBlQ29udHJvbCgpKTsgLy8gbWVudSDDoCBsIGhvcml6b250YWwKCSAgICc7fSBlbHNlIHskRmlybU1hcEpTIC49ICdNeU1hcC5hZGRDb250cm9sKG5ldyBHTWVudU1hcFR5cGVDb250cm9sKCkpOyAvLyBtZW51IHZlcnRpY2FsCgkgICAnO30KCSAgIGlmICgkbWFwX2RhdGFbJ2VjaGVsbGVjb250cm9sJ10gPT0gJzEnKSB7JEZpcm1NYXBKUyAuPSAnTXlNYXAuYWRkQ29udHJvbChuZXcgR1NjYWxlQ29udHJvbCgpKTsgLy8gcG91ciBham91dGVyIGwgZWNoZWxsZQoJICAgJzt9CgkgICAkRmlybU1hcEpTIC49ICdNeU1hcC5hZGRNYXBUeXBlKEdfUEhZU0lDQUxfTUFQKTsgLy8gcG91ciBham91dGVyIGxlIHJlbGllZgoJICAgJzsKCSAgIGlmICgkbWFwX2RhdGFbJ3pvb21lbmFibGUnXSA9PSAnMScpIHskRmlybU1hcEpTIC49ICdNeU1hcC5lbmFibGVTY3JvbGxXaGVlbFpvb20oKTsgLy8gcG91ciBwZXJtZXR0cmUgbGUgem9vbSBhdmVjIGxhIG1vbGV0dGUKCSAgICc7fQoJICAgaWYgKCRtYXBfZGF0YVsnc2hvd3Bob3RvcGFub3JhbWlhJ10gPT0gJzEnKSB7JEZpcm1NYXBKUyAuPSAnTXlNYXAuYWRkT3ZlcmxheShuZXcgR0xheWVyKCJjb20ucGFub3JhbWlvLmFsbCIpKTsgLy8gcG91ciBham91dGVyIGxlcyBwaG90b3MgZGUgcGFub3JhbWlvCgkgICAnO30KCSAgIGlmICgkbWFwX2RhdGFbJ3Nob3d3aWtpcGVkaWEnXSA9PSAnMScpIHskRmlybU1hcEpTIC49ICdNeU1hcC5hZGRPdmVybGF5KG5ldyBHTGF5ZXIoIm9yZy53aWtpcGVkaWEuZW4iKSk7IC8vIHBvdXIgY2hhcmdlciBXaWtpcGVkaWEgCgkgICAnO30KCSAgICRGaXJtTWFwSlMgLj0gJyAvLyBBZGQgdGhlIHNlbGYgY3JlYXRlZCBjb250cm9sCiAgICAgICAgICAgICAgICAgICAgTG9hZEdQWEZpbGVJbnRvR29vZ2xlTWFwKE15TWFwLCAiJy4kZ3B4ZmlsZS4nIik7CiAgICAgfQoJfQovLyAKd2luZG93Lm9ubG9hZCA9IG9uTG9hZCgpOwp3aW5kb3cub251bmxvYWQgPSBHVW5sb2FkKCk7Ci8vIF1dPjwvc2NyaXB0Pic7CgovLyRGaXJtTWFwSlMgPSAiPGgyPkdPT0dMRTwvaDI+IjsJCgkJLy8gYXNzaWduIFNtYXJ0eSB2YXJpYWJsZXM7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaXJtX21hcF9oZWFkZXInLCRGaXJtSGVhZGVyKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zpcm1fdGFicycsJEZpcm1UYWJzKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zpcm1fbWFwJywkRmlybU1hcCk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaXJtX2pzJywkRmlybU1hcEpTKTsKCgoJCS8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQoJCS8vZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdtYXAudHBsJyk7ICAKCQlhZG9kYl9jb25uZWN0KCk7CgkJI1NldCBsb2NhbGUgYWdhaW4KCQlzZXRsb2NhbGUoTENfQUxMLCAkY3VycmVudExvY2FsZSk7CgkJCgkJLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCgkJcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ21hcC50cGwnKTsgIAoJCQoJfQoJCgkKCQoJCgkKCQoJZnVuY3Rpb24gQ29uc3RydWN0RGl2TWFwc0dlb1BvcnRhaWwoJHBhcmFtcykgewoJCSNBdm9pZCBmbG9hdCBwcm9ibGVtIGluIGxvY2FsZQoJCSRjdXJyZW50TG9jYWxlID0gc2V0bG9jYWxlKExDX0FMTCwgMCk7CgkJc2V0bG9jYWxlKExDX0FMTCwgJ2VuX1VTJyk7CgoJCSRtYXAgPSAnJzsKCQlpZighaXNzZXQoJHBhcmFtc1snbWFwJ10pKQoJCXsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsJHRoaXMtPkxhbmcoJ21pc3NpbmdfcGFyYW0nKSk7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCR0aGlzLT5MYW5nKCdlcnJvcicpKTsKCQkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQkJcmV0dXJuOwoJCX0KCQkkbWFwID0gJHBhcmFtc1snbWFwJ107CgoKCQkkZ3B4ZmlsZSA9ICcnOwoJCWlmKCFpc3NldCgkcGFyYW1zWydncHhmaWxlJ10pKQoJCXsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsJHRoaXMtPkxhbmcoJ21pc3NpbmdfcGFyYW0nKSk7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCR0aGlzLT5MYW5nKCdlcnJvcicpKTsKCQkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQkJcmV0dXJuOwoJCX0gZWxzZSAgewoJCQkkZ3B4ZmlsZSA9ICRwYXJhbXNbJ2dweGZpbGUnXTsKCQkJLy8gb24gbmUgdmVyaWZpZSBwYXMgcXVlIGxlIGZpY2hpZXIgR1BYIGV4aXN0ZSBzdXIgbGUgc2l0ZQoJCX0KCgkJJHRpdGxlID0gJyc7CgkJaWYoIGlzc2V0KCRwYXJhbXNbJ3RpdGxlJ10pICkKCQl7CgkJCSR0aXRsZSA9ICRwYXJhbXNbJ3RpdGxlJ107CgkJfQoKCQkkdGV4dCA9ICcnOwoJCWlmKCBpc3NldCgkcGFyYW1zWyd0ZXh0J10pICkKCQl7CgkJCSR0ZXh0ID0gJHBhcmFtc1sndGV4dCddOwoJCX0KCgkJLy8gb24gdmVyaWZpZSBxdSdpbCB5IGEgYXUgbW9pbnMgdW4gYXBpa2V5CgkJaWYoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZ3B4bWFwX0dlb1BvcnRhaWxhcGlrZXknKSA9PSAnJykpCgkJewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3InLCAkdGhpcy0+TGFuZygnbm9rZXknKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsICR0aGlzLT5MYW5nKCdlcnJvcicpKTsKCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwoJCXJldHVybjsKCQl9CgkJCgkJJGRiPSYkdGhpcy0+R2V0RGIoKTsKCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfU2ltcGxlR1BYTWFwX21hcHMgV0hFUkUgbmFtZSBMSUtFICckbWFwJyBMSU1JVCAxIjsKCQkkbWFwX2RhdGEgPSBhcnJheSgpOwoJCSRkYnJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQlpZigkZGJyZXN1bHQpIHsKCQkkbWFwX2RhdGEgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CgkJfQoKCQlpZighaXNzZXQoJG1hcF9kYXRhWydtYXBfaWQnXSkpIHsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywgJHRoaXMtPkxhbmcoJ25vbWFwJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQlyZXR1cm47CgkJfQoJCSRobWFwID0gaXNzZXQoJG1hcF9kYXRhWydoZWlnaHQnXSk/JG1hcF9kYXRhWydoZWlnaHQnXTonNTAwJzsKCQkkd21hcCA9IGlzc2V0KCRtYXBfZGF0YVsnd2lkdGgnXSk/JG1hcF9kYXRhWyd3aWR0aCddOic2MDAnOwoJCSR0cmFjZWNvbG9yID0gKCRtYXBfZGF0YVsndHJhY2Vjb2xvciddICE9ICcnKT8kbWFwX2RhdGFbJ3RyYWNlY29sb3InXTonIzAwMDBmZic7CgkJJHRyYWNlV2lkdGggPSAoJG1hcF9kYXRhWyd0cmFjZXdpZHRoJ10gIT0gJycpPyRtYXBfZGF0YVsndHJhY2V3aWR0aCddOic1JzsKCQkkb3BhY2l0eWlnbiA9ICgkbWFwX2RhdGFbJ29wYWNpdHlpZ24nXSAhPSAnJyk/JG1hcF9kYXRhWydvcGFjaXR5aWduJ10vMTA6JzAuNyc7CgkJJG9wYWNpdHlwaG90byA9ICgkbWFwX2RhdGFbJ29wYWNpdHlwaG90byddICE9ICcnKT8kbWFwX2RhdGFbJ29wYWNpdHlwaG90byddLzEwOicwLjUnOwoJCSRleHBhbmRsYXllcnNjb250cm9sID0gKCRtYXBfZGF0YVsnZXhwYW5kbGF5ZXJzY29udHJvbCddID09IDEpPyd0cnVlJzonZmFsc2UnOwoJCSRleHBhbmR0b29sY29udHJvbCA9ICgkbWFwX2RhdGFbJ2V4cGFuZHRvb2xjb250cm9sJ10gPT0gMCk/J2ZhbHNlJzondHJ1ZSc7CgkJCgkJJEZpcm1BcGkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnc2dweG1hcF9HZW9Qb3J0YWlsYXBpa2V5JywxKTsKCQkkRmlybUhlYWRlciA9ICc8c2NyaXB0IHNyYz0iaHR0cDovL2FwaS5pZ24uZnIvZ2VvcG9ydGFpbC9hcGk/dj0xLjAmYW1wO2tleT0nLiRGaXJtQXBpLicmYW1wO2luc3RhbmNlPVZJU1UiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+JzsKICAgICAgICAkRmlybVRhYnMgPSAnPHVsIGlkPSJ0YWJuYXYiPjxsaT48YSBocmVmPSInLiR0aGlzLT5HZXRVcmwoKS4nJnNncHhtYXBfZm9yY2VmaXJtPUdPT0dMRSNzZ3B4bWFwYW5jcmUiPkdvb2dsZTwvYT48L2xpPjxsaSAgY2xhc3M9ImFjdGl2ZSIgPjxhIGhyZWY9IicuJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10uJyNzZ3B4bWFwYW5jcmUiPkdlb1BvcnRhaWw8L2E+PC9saT48L3VsPic7CiAgICAgICAgJEZpcm1NYXAgPSc8IS0tIElFOCBjb21wYXRpYmlsaXR5IG1vZGUgLS0+CjwhLS1baWYgSUUgOF0+CiA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPTciLz4KPCFbZW5kaWZdLS0+CjxkaXYgaWQ9Ikdlb3BvcnRhbFZpc3VEaXYiIHN0eWxlPSJoZWlnaHQ6Jy4kaG1hcC4ncHg7d2lkdGg6Jy4kd21hcC4ncHg7Ij48L2Rpdj4nOwoKCQkkRmlybU1hcEpTID0nPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vIDwhW0NEQVRBWwogICAgZnVuY3Rpb24gaW5pdEdlb3BvcnRhbE1hcCgpIHsKICAgICAgLy8gT24gaW1wbMOpbWVudGUgbGEgY2FydGUKICAgICAgZ2VvcG9ydGFsTG9hZFZJU1UoIkdlb3BvcnRhbFZpc3VEaXYiLCAibm9ybWFsIiwgIkZYWCIpOwogICAKICAgICAgLy8gT24gY2hhcmdlIGxlcyBjb3VjaGVzIGRlIGRvbm7DqWVzIGTDqWZpbmllcyBkYW5zIGxlIGNvbnRyYXQKICAgICAgaWYgKFZJU1UpIHsKCSAgICBpZihWSVNVLmdldE1hcCgpLmFsbG93ZWRHZW9wb3J0YWxMYXllcnMpewogICAgICAgICBmb3IgKHZhciBpPSAwOyBpPFZJU1UuZ2V0TWFwKCkuYWxsb3dlZEdlb3BvcnRhbExheWVycy5sZW5ndGg7IGkrKykgewogICAgICAgICAgIHZhciBvdmVybG9hZGVkX29wdGlvbnM9IG51bGw7CiAgICAgICAgICAgaWYgKFZJU1UuZ2V0TWFwKCkuYWxsb3dlZEdlb3BvcnRhbExheWVyc1tpXS5tYXRjaCgvXkdFT0dSQVBISUNBTEdSSURTWVNURU1TLk1BUFMvKSkgey8vIG1hcHMgSUdOCiAgICAgICAgICAgICAgIG92ZXJsb2FkZWRfb3B0aW9ucz0ge29wYWNpdHk6Jy4kb3BhY2l0eWlnbi4nfTsKICAgICAgICAgICB9IGVsc2UgaWYgKFZJU1UuZ2V0TWFwKCkuYWxsb3dlZEdlb3BvcnRhbExheWVyc1tpXS5tYXRjaCgvXk9SVEhPSU1BR0VSWS5PUlRIT1BIT1RPUy8pKSB7Ly8gb3J0aG9waG90b3MKICAgICAgICAgICAgICAgb3ZlcmxvYWRlZF9vcHRpb25zPSB7b3BhY2l0eTonLiRvcGFjaXR5cGhvdG8uJ307CiAgICAgICAgICAgfQogICAgICAgICAgVklTVS5hZGRHZW9wb3J0YWxMYXllcihWSVNVLmdldE1hcCgpLmFsbG93ZWRHZW9wb3J0YWxMYXllcnNbaV0sb3ZlcmxvYWRlZF9vcHRpb25zKTsKICAgICAgICAgfQoJCVZJU1Uub3BlbkxheWVyc1BhbmVsKCcuJGV4cGFuZGxheWVyc2NvbnRyb2wuJyk7IC8vIHBvdXIgZmVybWVyIGxhIGJhcnJlIGRlIGNvdWNoZQogICAgICAgIFZJU1Uub3BlblRvb2xzUGFuZWwoJy4kZXhwYW5kdG9vbGNvbnRyb2wuJyk7IC8vIHBvdXIgZmVybWVyIGxhIGJhcnJlIGRlIHpvb20KCQkKCQl2YXIgc3R5bGUxID0gbmV3IE9wZW5MYXllcnMuU3R5bGVNYXAoewogICAgICAgICJkZWZhdWx0IjogbmV3IE9wZW5MYXllcnMuU3R5bGUoewogICAgICAgICAgICBzdHJva2VDb2xvcjpcJycuJHRyYWNlY29sb3IuJ1wnLAogICAgICAgICAgICBzdHJva2VXaWR0aDonLiR0cmFjZVdpZHRoLicKICAgICAgICB9KQogICAgICAgIH0pOwogICAgLy8gb24gY2hhcmdlIGxhIHRyYWNlCiAgICBsY2lyY3VpdCA9ICBWSVNVLmdldE1hcCgpLmFkZExheWVyKCAiR1BYIiwgIkNpcmN1aXQiLCInLiRncHhmaWxlLiciLAoJCQkJCQl7CgkJCQkJCQltaW5ab29tTGV2ZWw6MCwKCQkJCQkJCW1heFpvb21MZXZlbDoyMCwnOwoJIGlmICgkdGl0bGUgIT0nJykgeyRGaXJtTWFwSlMgLj0nIG5hbWU6Jy4kdGl0bGUuJywnO307CiAgICAgaWYgKCR0ZXh0ICE9JycpIHskRmlybU1hcEpTIC49JyBhdHRyaWJ1dGlvbjonLiR0ZXh0LicsJzt9OwoJICRGaXJtTWFwSlMgLj0nIHZpc2liaWxpdHkgOiB0cnVlLAoJCQkJCQkJc3R5bGVNYXA6IHN0eWxlMSwKCQkJCQkJCWV4dHJhY3RXYXlwb2ludHM6dHJ1ZSxleHRyYWN0VHJhY2tzOnRydWUsZXh0cmFjdFJvdXRlczp0cnVlLCBleHRyYWN0QXR0cmlidXRlczp0cnVlCgkJCQkJCX0pOwogICAgIGxjaXJjdWl0LmV2ZW50cy5yZWdpc3RlcihcJ2xvYWRlbmRcJyxsY2lyY3VpdCwgZnVuY3Rpb24oZSl7em9vbVRvRml0VHJhY2VHUFgoKTt9KQogICAgICAgIH0KICAgICB9Cgl9CgkKZnVuY3Rpb24gem9vbVRvRml0VHJhY2VHUFgoKSB7CgkgICBib3VuZHMgPSBsY2lyY3VpdC5mZWF0dXJlc1swXS5nZW9tZXRyeS5nZXRCb3VuZHMoKTsKICAgICAgICAgICAgICAgVklTVS5nZXRNYXAoKS56b29tVG9FeHRlbnQoYm91bmRzLGZhbHNlKTsKfQovLyBdXT48L3NjcmlwdD4nOwoKCQkvLyBhc3NpZ24gU21hcnR5IHZhcmlhYmxlczsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zpcm1fbWFwX2hlYWRlcicsJEZpcm1IZWFkZXIpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmlybV90YWJzJywkRmlybVRhYnMpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmlybV9tYXAnLCRGaXJtTWFwKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zpcm1fanMnLCRGaXJtTWFwSlMpOwoKCgkJIAoJCWFkb2RiX2Nvbm5lY3QoKTsKCQkjU2V0IGxvY2FsZSBhZ2FpbgoJCXNldGxvY2FsZShMQ19BTEwsICRjdXJyZW50TG9jYWxlKTsKCQkKCQkvLyBEaXNwbGF5IHRoZSBwb3B1bGF0ZWQgdGVtcGxhdGUKCQlyZXR1cm4gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnbWFwLnRwbCcpOyAgCgkJCgl9Cn0KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/SimpleGPXMap.module.php-old</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFNpbXBsZUdQWE1hcCAtIE1vZHVsZSBmb3IgR29vZ2xlTWFwcyBHZW9Qb3J0YWlsCiMgVmVyc2lvbjogMC4xLCBNckZNTwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKY2xhc3MgU2ltcGxlR1BYTWFwIGV4dGVuZHMgQ01TTW9kdWxlCnsKCS8vdmFyICRfZ29vZ2xlYXBpX3ZlcnNpb24gPSAiMi40IjsKCglmdW5jdGlvbiBHZXROYW1lKCkKCXsKCQlyZXR1cm4gJ1NpbXBsZUdQWE1hcCc7Cgl9CgoJZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwoJfQoKCWZ1bmN0aW9uIEdldFZlcnNpb24oKQoJewoJCXJldHVybiAnMC4yJzsKCX0KCglmdW5jdGlvbiBHZXRIZWxwKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKCX0KCglmdW5jdGlvbiBHZXRBdXRob3IoKQoJewoJCXJldHVybiAnTXJGTU8nOwoJfQoKCWZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkKCXsKCQlyZXR1cm4gJ2ZhYnJpY2UubW9uZ2VAZnJlZS5mcic7Cgl9CgoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2NoYW5nZWxvZycpOwoJfQoKCWZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKCXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCglmdW5jdGlvbiBIYXNBZG1pbigpCgl7CgkJcmV0dXJuIHRydWU7Cgl9CgogIAlmdW5jdGlvbiBHZXRBZG1pblNlY3Rpb24oKQoJewoJCXJldHVybiAnZXh0ZW5zaW9ucyc7Cgl9CgoJZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpCgl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdtb2RkZXNjcmlwdGlvbicpOwoJfQoKCWZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpCgl7CgkgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdVc2UgU2ltcGxlR1BYTWFwJyk7Cgl9CgoJZnVuY3Rpb24gR2V0RGVwZW5kZW5jaWVzKCkKCXsKCQkvL3JldHVybiBhcnJheSggJ0FqYXhNYWRlU2ltcGxlJyA9PiAnMC4xLjYnICk7CgkJcmV0dXJuIGFycmF5KCk7Cgl9CgoKCWZ1bmN0aW9uIE1pbmltdW1DTVNWZXJzaW9uKCkKCXsKCQlyZXR1cm4gIjEuMi42IjsKCX0KCQoJZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCgl7CgkgICR0aGlzLT5SZXN0cmljdFVua25vd25QYXJhbXMoKTsKCSAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CgoJICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdncHhmaWxlJywgJycsICR0aGlzLT5MYW5nKCdoZWxwX3BhcmFtX2dweGZpbGUnKSk7CgkgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdncHhmaWxlJyxDTEVBTl9TVFJJTkcpOwoJICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdtYXAnLCd0ZXN0JywgJHRoaXMtPmxhbmcoJ2hlbHBfcGFyYW1fbWFwJyksIGZhbHNlKTsKCSAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGl0bGUnLCcnLCAkdGhpcy0+bGFuZygnaGVscF9wYXJhbV90aXRsZScpKTsKCSAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcigndGV4dCcsJycsICR0aGlzLT5sYW5nKCdoZWxwX3BhcmFtX3RleHQnKSk7CgkgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtYXAnLENMRUFOX1NUUklORyk7CgkgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCd0aXRsZScsQ0xFQU5fU1RSSU5HKTsKCSAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ3RleHQnLENMRUFOX1NUUklORyk7Cgl9CgoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCkKCXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7Cgl9CgoJZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwoJfQoKCWZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQoJewoJCXJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwoJfQoJCglmdW5jdGlvbiBEaXNwbGF5RXJyb3JQYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCwgJG1lc3NhZ2U9JycpCgl7CgkgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGVfZXJyb3InLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkgIGlmICgkbWVzc2FnZSAhPSAnJykKCSAgICB7CgkgICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ25fYnlfcmVmKCdtZXNzYWdlJywgJG1lc3NhZ2UpOwoJICAgIH0KCSAgCgkgIC8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQoJICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwoJfQoKICAgIGZ1bmN0aW9uIEdldFVybCgpIHsKICAgICAgJHVybGJydXQgPSAkX1NFUlZFUlsnUkVRVUVTVF9VUkknXTsKICAgICAgLy8gc3VwcHJlc3Npb24gZGVzIHBhcmFtw6h0cmVzIGZvcsOnYW50IEdvb2dsZQogICAgICAkdXJscHVyZ2UgPSBzdHJfcmVwbGFjZSgnJnNncHhtYXBfZm9yY2VmaXJtPUdPT0dMRScsJycsJHVybGJydXQpOwogICAgICAvLyBzdXBwcmVzc2lvbiBkdSBwYXJhbcOodHJlIGZvcsOnYW50IEdlb1BvcnRhaWwKICAgICAgJHVybHB1cmdlID0gc3RyX3JlcGxhY2UoJyZzZ3B4bWFwX2ZvcmNlZmlybT1HZW9Qb3J0YWlsJywnJywkdXJscHVyZ2UpOwogICAgICAvLyBzdXBwcmVzc2lvbiBkZSBsJ2FuY3JhZ2UKICAgICAgJHVybHB1cmdlID0gc3RyX3JlcGxhY2UoJyNzZ3B4bWFwYW5jcmUnLCcnLCR1cmxwdXJnZSk7CiAgICAgcmV0dXJuICR1cmxwdXJnZTsKCX0KCgoKCWZ1bmN0aW9uIENvbnN0cnVjdERpdk1hcHNHb29nbGUoJHBhcmFtcykgewoJCSNBdm9pZCBmbG9hdCBwcm9ibGVtIGluIGxvY2FsZQoJCSRjdXJyZW50TG9jYWxlID0gc2V0bG9jYWxlKExDX0FMTCwgMCk7CgkJc2V0bG9jYWxlKExDX0FMTCwgJ2VuX1VTJyk7CgoJCSRtYXAgPSAnJzsKCQlpZighaXNzZXQoJHBhcmFtc1snbWFwJ10pKQoJCXsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsJHRoaXMtPkxhbmcoJ21pc3NpbmdfcGFyYW0nKSk7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCR0aGlzLT5MYW5nKCdlcnJvcicpKTsKCQkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQkJcmV0dXJuOwoJCX0KCQkkbWFwID0gJHBhcmFtc1snbWFwJ107CgoJCSRncHhmaWxlID0gJyc7CgkJaWYoIWlzc2V0KCRwYXJhbXNbJ2dweGZpbGUnXSkpCgkJewoJCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywkdGhpcy0+TGFuZygnbWlzc2luZ19wYXJhbScpKTsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwoJCQlyZXR1cm47CgkJfSBlbHNlICB7CgkJCSRncHhmaWxlID0gJHBhcmFtc1snZ3B4ZmlsZSddOwoJCQkvLyBvbiBuZSB2ZXJpZmllIHBhcyBxdWUgbGUgZmljaGllciBHUFggZXhpc3RlIHN1ciBsZSBzaXRlCgkJfQoKCQkkdGl0bGUgPSAnJzsKCQlpZiggaXNzZXQoJHBhcmFtc1sndGl0bGUnXSkgKQoJCXsKCQkJJHRpdGxlID0gJHBhcmFtc1sndGl0bGUnXTsKCQl9CgoJCSR0ZXh0ID0gJyc7CgkJaWYoIGlzc2V0KCRwYXJhbXNbJ3RleHQnXSkgKQoJCXsKCQkJJHRleHQgPSAkcGFyYW1zWyd0ZXh0J107CgkJfQoKCQkvLyBvbiB2ZXJpZmllIHF1J2lsIHkgYSBhdSBtb2lucyB1biBhcGlrZXkKCQlpZigoJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NncHhtYXBfR29vZ2xlYXBpa2V5JykgPT0gJycpKQoJCXsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywgJHRoaXMtPkxhbmcoJ25va2V5JykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQlyZXR1cm47CgkJfQoJCQoJCSRkYj0mJHRoaXMtPkdldERiKCk7CgkJJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gIi4gY21zX2RiX3ByZWZpeCgpIC4ibW9kdWxlX1NpbXBsZUdQWE1hcF9tYXBzIFdIRVJFIG5hbWUgTElLRSAnJG1hcCcgTElNSVQgMSI7CgkJJG1hcF9kYXRhID0gYXJyYXkoKTsKCQkkZGJyZXN1bHQgPSYgJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgkJaWYoJGRicmVzdWx0KSB7CgkJJG1hcF9kYXRhID0gJGRicmVzdWx0LT5GZXRjaFJvdygpOwoJCX0KCgkJaWYoIWlzc2V0KCRtYXBfZGF0YVsnbWFwX2lkJ10pKSB7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsICR0aGlzLT5MYW5nKCdub21hcCcpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RpdGxlJywgJHRoaXMtPkxhbmcoJ2Vycm9yJykpOwoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZXJyb3IudHBsJyk7CgkJcmV0dXJuOwoJCX0KCgkJJGhtYXAgPSBpc3NldCgkbWFwX2RhdGFbJ2hlaWdodCddKT8kbWFwX2RhdGFbJ2hlaWdodCddOic1MDAnOwoJCSR3bWFwID0gaXNzZXQoJG1hcF9kYXRhWyd3aWR0aCddKT8kbWFwX2RhdGFbJ3dpZHRoJ106JzYwMCc7CgkJJHRyYWNlY29sb3IgPSAoJG1hcF9kYXRhWyd0cmFjZWNvbG9yJ10gIT0gJycpPyRtYXBfZGF0YVsndHJhY2Vjb2xvciddOicjMDAwMGZmJzsKCQkkdHJhY2VXaWR0aCA9ICgkbWFwX2RhdGFbJ3RyYWNld2lkdGgnXSAhPSAnJyk/JG1hcF9kYXRhWyd0cmFjZXdpZHRoJ106JzUnOwoJCSRjYXJ0ZUJ5RGVmYXVsdCA9IGlzc2V0KCRtYXBfZGF0YVsnY2FydGVieWRlZmF1bHQnXSk/JG1hcF9kYXRhWydjYXJ0ZWJ5ZGVmYXVsdCddOidHX05PUk1BTF9NQVAnOwoJCQoJCSRzdGFydGljb25pbWFnZSA9IGlzc2V0KCRtYXBfZGF0YVsnc3RhcnRpY29uaW1hZ2UnXSk/JG1hcF9kYXRhWydzdGFydGljb25pbWFnZSddOicnOwoJICAgICRzdGFydGljb25zaGFkb3cgPSBpc3NldCgkbWFwX2RhdGFbJ3N0YXJ0aWNvbnNoYWRvdyddKT8kbWFwX2RhdGFbJ3N0YXJ0aWNvbnNoYWRvdyddOicnOwogICAgCSRzdGFydGljb25pc3dpZHRoID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25pc3dpZHRoJ10pPyRtYXBfZGF0YVsnc3RhcnRpY29uaXN3aWR0aCddOicwJzsKICAgIAkkc3RhcnRpY29uaXNoZWlnaCA9IGlzc2V0KCRtYXBfZGF0YVsnc3RhcnRpY29uaXNoZWlnaCddKT8kbWFwX2RhdGFbJ3N0YXJ0aWNvbmlzaGVpZ2gnXTonMCc7CiAgICAJJHN0YXJ0aWNvbnNzd2lkdGggPSBpc3NldCgkbWFwX2RhdGFbJ3N0YXJ0aWNvbnNzd2lkdGgnXSk/JG1hcF9kYXRhWydzdGFydGljb25zc3dpZHRoJ106JzAnOwoJICAgICRzdGFydGljb25zc2hlaWdoID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25zc2hlaWdoJ10pPyRtYXBfZGF0YVsnc3RhcnRpY29uc3NoZWlnaCddOicwJzsKCSAgICAkc3RhcnRpY29uaWFsZWZ0ID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25pYWxlZnQnXSk/JG1hcF9kYXRhWydzdGFydGljb25pYWxlZnQnXTonMCc7CgkgICAgJHN0YXJ0aWNvbmlhdG9wID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25pYXRvcCddKT8kbWFwX2RhdGFbJ3N0YXJ0aWNvbmlhdG9wJ106JzAnOwoJICAgICRzdGFydGljb25pd2FsZWZ0ID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25pd2FsZWZ0J10pPyRtYXBfZGF0YVsnc3RhcnRpY29uaXdhbGVmdCddOicwJzsKCSAgICAkc3RhcnRpY29uaXdhdG9wID0gaXNzZXQoJG1hcF9kYXRhWydzdGFydGljb25pd2F0b3AnXSk/JG1hcF9kYXRhWydzdGFydGljb25pd2F0b3AnXTonMCc7CgoJCSRlbmRpY29uaW1hZ2UgPSBpc3NldCgkbWFwX2RhdGFbJ2VuZGljb25pbWFnZSddKT8kbWFwX2RhdGFbJ2VuZGljb25pbWFnZSddOicnOwoJICAgICRlbmRpY29uc2hhZG93ID0gaXNzZXQoJG1hcF9kYXRhWydlbmRpY29uc2hhZG93J10pPyRtYXBfZGF0YVsnZW5kaWNvbnNoYWRvdyddOicnOwogICAgCSRlbmRpY29uaXN3aWR0aCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbmlzd2lkdGgnXSk/JG1hcF9kYXRhWydlbmRpY29uaXN3aWR0aCddOicwJzsKICAgIAkkZW5kaWNvbmlzaGVpZ2ggPSBpc3NldCgkbWFwX2RhdGFbJ2VuZGljb25pc2hlaWdoJ10pPyRtYXBfZGF0YVsnZW5kaWNvbmlzaGVpZ2gnXTonMCc7CiAgICAJJGVuZGljb25zc3dpZHRoID0gaXNzZXQoJG1hcF9kYXRhWydlbmRpY29uc3N3aWR0aCddKT8kbWFwX2RhdGFbJ2VuZGljb25zc3dpZHRoJ106JzAnOwoJICAgICRlbmRpY29uc3NoZWlnaCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbnNzaGVpZ2gnXSk/JG1hcF9kYXRhWydlbmRpY29uc3NoZWlnaCddOicwJzsKCSAgICAkZW5kaWNvbmlhbGVmdCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbmlhbGVmdCddKT8kbWFwX2RhdGFbJ2VuZGljb25pYWxlZnQnXTonMCc7CgkgICAgJGVuZGljb25pYXRvcCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbmlhdG9wJ10pPyRtYXBfZGF0YVsnZW5kaWNvbmlhdG9wJ106JzAnOwoJICAgICRlbmRpY29uaXdhbGVmdCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbml3YWxlZnQnXSk/JG1hcF9kYXRhWydlbmRpY29uaXdhbGVmdCddOicwJzsKCSAgICAkZW5kaWNvbml3YXRvcCA9IGlzc2V0KCRtYXBfZGF0YVsnZW5kaWNvbml3YXRvcCddKT8kbWFwX2RhdGFbJ2VuZGljb25pd2F0b3AnXTonMCc7CgkgICAgCgkgICAgJGRlZmF1bHRpY29uaW1hZ2UgPSBpc3NldCgkbWFwX2RhdGFbJ2RlZmF1bHRpY29uaW1hZ2UnXSk/JG1hcF9kYXRhWydkZWZhdWx0aWNvbmltYWdlJ106Jyc7CgkgICAgJGRlZmF1bHRpY29uc2hhZG93ID0gaXNzZXQoJG1hcF9kYXRhWydkZWZhdWx0aWNvbnNoYWRvdyddKT8kbWFwX2RhdGFbJ2RlZmF1bHRpY29uc2hhZG93J106Jyc7CiAgICAJJGRlZmF1bHRpY29uaXN3aWR0aCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25pc3dpZHRoJ10pPyRtYXBfZGF0YVsnZGVmYXVsdGljb25pc3dpZHRoJ106JzAnOwogICAgCSRkZWZhdWx0aWNvbmlzaGVpZ2ggPSBpc3NldCgkbWFwX2RhdGFbJ2RlZmF1bHRpY29uaXNoZWlnaCddKT8kbWFwX2RhdGFbJ2RlZmF1bHRpY29uaXNoZWlnaCddOicwJzsKICAgIAkkZGVmYXVsdGljb25zc3dpZHRoID0gaXNzZXQoJG1hcF9kYXRhWydkZWZhdWx0aWNvbnNzd2lkdGgnXSk/JG1hcF9kYXRhWydkZWZhdWx0aWNvbnNzd2lkdGgnXTonMCc7CgkgICAgJGRlZmF1bHRpY29uc3NoZWlnaCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25zc2hlaWdoJ10pPyRtYXBfZGF0YVsnZGVmYXVsdGljb25zc2hlaWdoJ106JzAnOwoJICAgICRkZWZhdWx0aWNvbmlhbGVmdCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25pYWxlZnQnXSk/JG1hcF9kYXRhWydkZWZhdWx0aWNvbmlhbGVmdCddOicwJzsKCSAgICAkZGVmYXVsdGljb25pYXRvcCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25pYXRvcCddKT8kbWFwX2RhdGFbJ2RlZmF1bHRpY29uaWF0b3AnXTonMCc7CgkgICAgJGRlZmF1bHRpY29uaXdhbGVmdCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25pd2FsZWZ0J10pPyRtYXBfZGF0YVsnZGVmYXVsdGljb25pd2FsZWZ0J106JzAnOwoJICAgICRkZWZhdWx0aWNvbml3YXRvcCA9IGlzc2V0KCRtYXBfZGF0YVsnZGVmYXVsdGljb25pd2F0b3AnXSk/JG1hcF9kYXRhWydkZWZhdWx0aWNvbml3YXRvcCddOicwJzsJCQoJCQoJCSRGaXJtID0gaXNzZXQoJG1hcF9kYXRhWydmaXJtc2VsZWN0ZWQnXSk/JG1hcF9kYXRhWydmaXJtc2VsZWN0ZWQnXTonR09PR0xFJzsgCgoJCSRGaXJtQXBpID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NncHhtYXBfR29vZ2xlYXBpa2V5JywxKTsKCQkkRmlybUhlYWRlciA9ICc8c2NyaXB0IHNyYz0iaHR0cDovL21hcHMuZ29vZ2xlLmNvbS9tYXBzP2ZpbGU9YXBpJmFtcDt2PTImYW1wO2tleT0nLiRGaXJtQXBpLiciIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PHNjcmlwdCBzcmM9Im1vZHVsZXMvU2ltcGxlR1BYTWFwL2xpYi9sb2FkZ3B4L2xvYWRncHguNC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4nOwogICAgICAgICRGaXJtVGFicyA9ICc8dWwgaWQ9InRhYm5hdiI+PGxpIGNsYXNzPSJhY3RpdmUiPjxhIGhyZWY9IicuJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10uJyNzZ3B4bWFwYW5jcmUiPkdvb2dsZTwvYT48L2xpPjxsaSA+PGEgaHJlZj0iJy4kdGhpcy0+R2V0VXJsKCkuJyZzZ3B4bWFwX2ZvcmNlZmlybT1HZW9Qb3J0YWlsI3NncHhtYXBhbmNyZSI+R2VvUG9ydGFpbDwvYT48L2xpPjwvdWw+JzsKCiAJCSRGaXJtTWFwID0nPGRpdiBpZD0iZ29vbWFwIiBzdHlsZT0iaGVpZ2h0OicuJGhtYXAuJ3B4O3dpZHRoOicuJHdtYXAuJ3B4OyI+Jy4kdGl0bGUuJyZuYnNwOycuJHRleHQuJzwvZGl2Pic7CgkJJEZpcm1NYXBKUyA9ICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ly8gPCFbQ0RBVEFbCgl2YXIgTXlNYXA7CglmdW5jdGlvbiBMb2FkR1BYRmlsZUludG9Hb29nbGVNYXAobWFwLCBmaWxlbmFtZSkKCXsKCQkvLyBSZW1vdmUgYW55IGV4aXN0aW5nIG92ZXJsYXlzIGZyb20gdGhlIG1hcC4KCQltYXAuY2xlYXJPdmVybGF5cygpOwoJCXZhciByZXF1ZXN0ID0gR1htbEh0dHAuY3JlYXRlKCk7CgkJcmVxdWVzdC5vcGVuKCJHRVQiLCBmaWxlbmFtZSwgdHJ1ZSk7CgkJcmVxdWVzdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpCgkJewoJCQlpZiAocmVxdWVzdC5yZWFkeVN0YXRlID09IDQpCgkJCXsKCQkJcGFyc2VyID0gbmV3IEdQWFBhcnNlcihyZXF1ZXN0LnJlc3BvbnNlWE1MLCBtYXApOwoJCQlwYXJzZXIuU2V0VHJhY2tDb2xvdXIoIicuJHRyYWNlY29sb3IuJyIpOwkvLyBTZXQgdGhlIHRyYWNrIGxpbmUgY29sb3VyCgkJCXBhcnNlci5TZXRUcmFja1dpZHRoKCcuJHRyYWNlV2lkdGguJyk7CQkvLyBTZXQgdGhlIHRyYWNrIGxpbmUgd2lkdGgKCQkJLy8gZGVmaW5pbmVkIHRoZSBpY29ucyBmb3IgdGhlIHRyYWNrcG9pbnQgbWFya2VyCgkJCSc7CgkJaWYgKCgkc3RhcnRpY29uaW1hZ2UgIT0gJycpICYmICgkc3RhcnRpY29uc2hhZG93ICE9ICcnKSkgeyRGaXJtTWFwSlMgLj0gJ3BhcnNlci5TZXRTdGFydEljb24oIicuJHN0YXJ0aWNvbmltYWdlLiciLAoJCQkgICAgICAgICAgICAgICAgICAgICInLiRzdGFydGljb25zaGFkb3cuJyIsCgkJCSAgICAgICAgICAgICAgICAgICAgJy4kc3RhcnRpY29uaXN3aWR0aC4nLCcuJHN0YXJ0aWNvbmlzaGVpZ2guJywKCQkJICAgICAgICAgICAgICAgICAgICAnLiRzdGFydGljb25zc3dpZHRoLicsJy4kc3RhcnRpY29uc3NoZWlnaC4nLAoJCQkgICAgICAgICAgICAgICAgICAgICcuJHN0YXJ0aWNvbmlhbGVmdC4nLCcuJHN0YXJ0aWNvbmlhdG9wLicsCgkJCSAgICAgICAgICAgICAgICAgICAgJy4kc3RhcnRpY29uaXdhbGVmdC4nLCcuJHN0YXJ0aWNvbml3YXRvcC4nKTsKCQkJICc7fQoJCWlmICgoJGVuZGljb25pbWFnZSAhPSAnJykgJiYgKCRlbmRpY29uc2hhZG93ICE9ICcnKSkgeyRGaXJtTWFwSlMgLj0gJ3BhcnNlci5TZXRFbmRJY29uKCInLiRlbmRpY29uaW1hZ2UuJyIsCgkJCSAgICAgICAgICAgICAgICAgICAgIicuJGVuZGljb25zaGFkb3cuJyIsCgkJCSAgICAgICAgICAgICAgICAgICAgJy4kZW5kaWNvbmlzd2lkdGguJywnLiRlbmRpY29uaXNoZWlnaC4nLAoJCQkgICAgICAgICAgICAgICAgICAgICcuJGVuZGljb25zc3dpZHRoLicsJy4kZW5kaWNvbnNzaGVpZ2guJywKCQkJICAgICAgICAgICAgICAgICAgICAnLiRlbmRpY29uaWFsZWZ0LicsJy4kZW5kaWNvbmlhdG9wLicsCgkJCSAgICAgICAgICAgICAgICAgICAgJy4kZW5kaWNvbml3YWxlZnQuJywnLiRlbmRpY29uaXdhdG9wLicpOwoJCQkgJzt9CQkJIAoJCWlmICgoJGRlZmF1bHRpY29uaW1hZ2UgIT0gJycpICYmICgkZGVmYXVsdGljb25zaGFkb3cgIT0gJycpKSB7JEZpcm1NYXBKUyAuPSAncGFyc2VyLlNldERlZmF1bHRJY29uKCInLiRkZWZhdWx0aWNvbmltYWdlLiciLAoJCQkgICAgICAgICAgICAgICAgICAgICInLiRkZWZhdWx0aWNvbnNoYWRvdy4nIiwKCQkJICAgICAgICAgICAgICAgICAgICAnLiRkZWZhdWx0aWNvbmlzd2lkdGguJywnLiRkZWZhdWx0aWNvbmlzaGVpZ2guJywKCQkJICAgICAgICAgICAgICAgICAgICAnLiRkZWZhdWx0aWNvbnNzd2lkdGguJywnLiRkZWZhdWx0aWNvbnNzaGVpZ2guJywKCQkJICAgICAgICAgICAgICAgICAgICAnLiRkZWZhdWx0aWNvbmlhbGVmdC4nLCcuJGRlZmF1bHRpY29uaWF0b3AuJywKCQkJICAgICAgICAgICAgICAgICAgICAnLiRkZWZhdWx0aWNvbml3YWxlZnQuJywnLiRkZWZhdWx0aWNvbml3YXRvcC4nKTsKCQkJICc7fQkJCSAKCQkJJEZpcm1NYXBKUyAuPSAncGFyc2VyLlNldE1pblRyYWNrUG9pbnREZWx0YSgwLjAwMSk7CS8vIFNldCB0aGUgbWluaW11bSBkaXN0YW5jZSBiZXR3ZWVuIHRyYWNrIHBvaW50cwoJCQlwYXJzZXIuQ2VudGVyQW5kWm9vbShyZXF1ZXN0LnJlc3BvbnNlWE1MLCAnLiRjYXJ0ZUJ5RGVmYXVsdC4nKTsgLy8gQ2VudGVyIGFuZCBab29tIHRoZSBtYXAgb3ZlciBhbGwgdGhlIHBvaW50cy4KCQkJcGFyc2VyLkFkZFRyYWNrcG9pbnRzVG9NYXAoKTsJLy8gQWRkIHRoZSB0cmFja3BvaW50cwoJCQlwYXJzZXIuQWRkV2F5cG9pbnRzVG9NYXAoKTsJLy8gQWRkIHRoZSB3YXlwb2ludHMKCQkJfQoJCX0KCQlyZXF1ZXN0LnNlbmQobnVsbCk7Cgl9CgoJZnVuY3Rpb24gb25Mb2FkKCkKCXsKCSBpZiAoR0Jyb3dzZXJJc0NvbXBhdGlibGUoKSkgewoJICAgTXlNYXAgPSBuZXcgR01hcDIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdvb21hcCIpKTsKCSAgICc7CgkgICBpZiAoJG1hcF9kYXRhWydzbWFsbGNvbnRyb2wnXSA9PSAnU21hbGwnKSB7JEZpcm1NYXBKUyAuPSAnTXlNYXAuYWRkQ29udHJvbChuZXcgR1NtYWxsTWFwQ29udHJvbCgpKTsgLy8gY29udHJvbCBlbiBwZXRpdDsKCSAgICc7fSBlbHNlIHskRmlybU1hcEpTIC49ICdNeU1hcC5hZGRDb250cm9sKG5ldyBHTGFyZ2VNYXBDb250cm9sKCkpOwoJICAgJzt9CgkgICBpZiAoJG1hcF9kYXRhWydob3Jpem9udGFsY29udHJvbCddID09ICdIb3Jpem9udGFsJykgeyRGaXJtTWFwSlMgLj0gJ015TWFwLmFkZENvbnRyb2wobmV3IEdNYXBUeXBlQ29udHJvbCgpKTsgLy8gbWVudSDDoCBsIGhvcml6b250YWwKCSAgICc7fSBlbHNlIHskRmlybU1hcEpTIC49ICdNeU1hcC5hZGRDb250cm9sKG5ldyBHTWVudU1hcFR5cGVDb250cm9sKCkpOyAvLyBtZW51IHZlcnRpY2FsCgkgICAnO30KCSAgIGlmICgkbWFwX2RhdGFbJ2VjaGVsbGVjb250cm9sJ10gPT0gJzEnKSB7JEZpcm1NYXBKUyAuPSAnTXlNYXAuYWRkQ29udHJvbChuZXcgR1NjYWxlQ29udHJvbCgpKTsgLy8gcG91ciBham91dGVyIGwgZWNoZWxsZQoJICAgJzt9CgkgICAkRmlybU1hcEpTIC49ICdNeU1hcC5hZGRNYXBUeXBlKEdfUEhZU0lDQUxfTUFQKTsgLy8gcG91ciBham91dGVyIGxlIHJlbGllZgoJICAgJzsKCSAgIGlmICgkbWFwX2RhdGFbJ3pvb21lbmFibGUnXSA9PSAnMScpIHskRmlybU1hcEpTIC49ICdNeU1hcC5lbmFibGVTY3JvbGxXaGVlbFpvb20oKTsgLy8gcG91ciBwZXJtZXR0cmUgbGUgem9vbSBhdmVjIGxhIG1vbGV0dGUKCSAgICc7fQoJICAgaWYgKCRtYXBfZGF0YVsnc2hvd3Bob3RvcGFub3JhbWlhJ10gPT0gJzEnKSB7JEZpcm1NYXBKUyAuPSAnTXlNYXAuYWRkT3ZlcmxheShuZXcgR0xheWVyKCJjb20ucGFub3JhbWlvLmFsbCIpKTsgLy8gcG91ciBham91dGVyIGxlcyBwaG90b3MgZGUgcGFub3JhbWlvCgkgICAnO30KCSAgIGlmICgkbWFwX2RhdGFbJ3Nob3d3aWtpcGVkaWEnXSA9PSAnMScpIHskRmlybU1hcEpTIC49ICdNeU1hcC5hZGRPdmVybGF5KG5ldyBHTGF5ZXIoIm9yZy53aWtpcGVkaWEuZW4iKSk7IC8vIHBvdXIgY2hhcmdlciBXaWtpcGVkaWEgCgkgICAnO30KCSAgICRGaXJtTWFwSlMgLj0gJyAvLyBBZGQgdGhlIHNlbGYgY3JlYXRlZCBjb250cm9sCiAgICAgICAgICAgICAgICAgICAgTG9hZEdQWEZpbGVJbnRvR29vZ2xlTWFwKE15TWFwLCAiJy4kZ3B4ZmlsZS4nIik7CiAgICAgfQoJfQovLyAKd2luZG93Lm9ubG9hZCA9IG9uTG9hZCgpOwp3aW5kb3cub251bmxvYWQgPSBHVW5sb2FkKCk7Ci8vIF1dPjwvc2NyaXB0Pic7CgovLyRGaXJtTWFwSlMgPSAiPGgyPkdPT0dMRTwvaDI+IjsJCgkJLy8gYXNzaWduIFNtYXJ0eSB2YXJpYWJsZXM7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaXJtX21hcF9oZWFkZXInLCRGaXJtSGVhZGVyKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zpcm1fdGFicycsJEZpcm1UYWJzKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zpcm1fbWFwJywkRmlybU1hcCk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaXJtX2pzJywkRmlybU1hcEpTKTsKCgoJCS8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQoJCS8vZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdtYXAudHBsJyk7ICAKCQlhZG9kYl9jb25uZWN0KCk7CgkJI1NldCBsb2NhbGUgYWdhaW4KCQlzZXRsb2NhbGUoTENfQUxMLCAkY3VycmVudExvY2FsZSk7CgkJCgkJLy8gRGlzcGxheSB0aGUgcG9wdWxhdGVkIHRlbXBsYXRlCgkJcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ21hcC50cGwnKTsgIAoJCQoJfQoJCgkKCQoJCgkKCQoJZnVuY3Rpb24gQ29uc3RydWN0RGl2TWFwc0dlb1BvcnRhaWwoJHBhcmFtcykgewoJCSNBdm9pZCBmbG9hdCBwcm9ibGVtIGluIGxvY2FsZQoJCSRjdXJyZW50TG9jYWxlID0gc2V0bG9jYWxlKExDX0FMTCwgMCk7CgkJc2V0bG9jYWxlKExDX0FMTCwgJ2VuX1VTJyk7CgoJCSRtYXAgPSAnJzsKCQlpZighaXNzZXQoJHBhcmFtc1snbWFwJ10pKQoJCXsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsJHRoaXMtPkxhbmcoJ21pc3NpbmdfcGFyYW0nKSk7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCR0aGlzLT5MYW5nKCdlcnJvcicpKTsKCQkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQkJcmV0dXJuOwoJCX0KCQkkbWFwID0gJHBhcmFtc1snbWFwJ107CgoKCQkkZ3B4ZmlsZSA9ICcnOwoJCWlmKCFpc3NldCgkcGFyYW1zWydncHhmaWxlJ10pKQoJCXsKCQkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlcnJvcicsJHRoaXMtPkxhbmcoJ21pc3NpbmdfcGFyYW0nKSk7CgkJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCR0aGlzLT5MYW5nKCdlcnJvcicpKTsKCQkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQkJcmV0dXJuOwoJCX0gZWxzZSAgewoJCQkkZ3B4ZmlsZSA9ICRwYXJhbXNbJ2dweGZpbGUnXTsKCQkJLy8gb24gbmUgdmVyaWZpZSBwYXMgcXVlIGxlIGZpY2hpZXIgR1BYIGV4aXN0ZSBzdXIgbGUgc2l0ZQoJCX0KCgkJJHRpdGxlID0gJyc7CgkJaWYoIGlzc2V0KCRwYXJhbXNbJ3RpdGxlJ10pICkKCQl7CgkJCSR0aXRsZSA9ICRwYXJhbXNbJ3RpdGxlJ107CgkJfQoKCQkkdGV4dCA9ICcnOwoJCWlmKCBpc3NldCgkcGFyYW1zWyd0ZXh0J10pICkKCQl7CgkJCSR0ZXh0ID0gJHBhcmFtc1sndGV4dCddOwoJCX0KCgkJLy8gb24gdmVyaWZpZSBxdSdpbCB5IGEgYXUgbW9pbnMgdW4gYXBpa2V5CgkJaWYoKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzZ3B4bWFwX0dlb1BvcnRhaWxhcGlrZXknKSA9PSAnJykpCgkJewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZXJyb3InLCAkdGhpcy0+TGFuZygnbm9rZXknKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsICR0aGlzLT5MYW5nKCdlcnJvcicpKTsKCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2Vycm9yLnRwbCcpOwoJCXJldHVybjsKCQl9CgkJCgkJJGRiPSYkdGhpcy0+R2V0RGIoKTsKCQkkcXVlcnkgPSAiU0VMRUNUICogRlJPTSAiLiBjbXNfZGJfcHJlZml4KCkgLiJtb2R1bGVfU2ltcGxlR1BYTWFwX21hcHMgV0hFUkUgbmFtZSBMSUtFICckbWFwJyBMSU1JVCAxIjsKCQkkbWFwX2RhdGEgPSBhcnJheSgpOwoJCSRkYnJlc3VsdCA9JiAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQlpZigkZGJyZXN1bHQpIHsKCQkkbWFwX2RhdGEgPSAkZGJyZXN1bHQtPkZldGNoUm93KCk7CgkJfQoKCQlpZighaXNzZXQoJG1hcF9kYXRhWydtYXBfaWQnXSkpIHsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Vycm9yJywgJHRoaXMtPkxhbmcoJ25vbWFwJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCAkdGhpcy0+TGFuZygnZXJyb3InKSk7CgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlcnJvci50cGwnKTsKCQlyZXR1cm47CgkJfQoKCQkkaG1hcCA9IGlzc2V0KCRtYXBfZGF0YVsnaGVpZ2h0J10pPyRtYXBfZGF0YVsnaGVpZ2h0J106JzUwMCc7CgkJJHdtYXAgPSBpc3NldCgkbWFwX2RhdGFbJ3dpZHRoJ10pPyRtYXBfZGF0YVsnd2lkdGgnXTonNjAwJzsKCQkkdHJhY2Vjb2xvciA9ICgkbWFwX2RhdGFbJ3RyYWNlY29sb3InXSAhPSAnJyk/JG1hcF9kYXRhWyd0cmFjZWNvbG9yJ106JyMwMDAwZmYnOwoJCSR0cmFjZVdpZHRoID0gKCRtYXBfZGF0YVsndHJhY2V3aWR0aCddICE9ICcnKT8kbWFwX2RhdGFbJ3RyYWNld2lkdGgnXTonNSc7CgkJJG9wYWNpdHlpZ24gPSAoJG1hcF9kYXRhWydvcGFjaXR5aWduJ10gIT0gJycpPyRtYXBfZGF0YVsnb3BhY2l0eWlnbiddLzEwOicwLjcnOwoJCSRvcGFjaXR5cGhvdG8gPSAoJG1hcF9kYXRhWydvcGFjaXR5cGhvdG8nXSAhPSAnJyk/JG1hcF9kYXRhWydvcGFjaXR5cGhvdG8nXS8xMDonMC41JzsKCQkkZXhwYW5kbGF5ZXJzY29udHJvbCA9ICgkbWFwX2RhdGFbJ2V4cGFuZGxheWVyc2NvbnRyb2wnXSA9PSAxKT8ndHJ1ZSc6J2ZhbHNlJzsKCQkkZXhwYW5kdG9vbGNvbnRyb2wgPSAoJG1hcF9kYXRhWydleHBhbmR0b29sY29udHJvbCddID09IDApPydmYWxzZSc6J3RydWUnOwoJCQoJCSRGaXJtQXBpID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ3NncHhtYXBfR2VvUG9ydGFpbGFwaWtleScsMSk7CgkJJEZpcm1IZWFkZXIgPSAnPHNjcmlwdCBzcmM9Imh0dHA6Ly9hcGkuaWduLmZyL2dlb3BvcnRhaWwvYXBpP3Y9MS4wYmV0YTMmYW1wO2tleT0nLiRGaXJtQXBpLicmYW1wO2luc3RhbmNlPVZJU1UiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+JzsKICAgICAgICAkRmlybVRhYnMgPSAnPHVsIGlkPSJ0YWJuYXYiPjxsaT48YSBocmVmPSInLiR0aGlzLT5HZXRVcmwoKS4nJnNncHhtYXBfZm9yY2VmaXJtPUdPT0dMRSNzZ3B4bWFwYW5jcmUiPkdvb2dsZTwvYT48L2xpPjxsaSAgY2xhc3M9ImFjdGl2ZSIgPjxhIGhyZWY9IicuJF9TRVJWRVJbJ1JFUVVFU1RfVVJJJ10uJyNzZ3B4bWFwYW5jcmUiPkdlb1BvcnRhaWw8L2E+PC9saT48L3VsPic7CiAgICAgICAgJEZpcm1NYXAgPSc8IS0tIElFOCBjb21wYXRpYmlsaXR5IG1vZGUgLS0+CjwhLS1baWYgSUUgOF0+CiA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPTciLz4KPCFbZW5kaWZdLS0+CjxkaXYgaWQ9Ikdlb3BvcnRhbFZpc3VEaXYiIHN0eWxlPSJoZWlnaHQ6Jy4kaG1hcC4ncHg7d2lkdGg6Jy4kd21hcC4ncHg7Ij48L2Rpdj4nOwoKCQkkRmlybU1hcEpTID0nPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vIDwhW0NEQVRBWwogICAgZnVuY3Rpb24gaW5pdEdlb3BvcnRhbE1hcCgpIHsKICAgICAgLy8gT24gaW1wbMOpbWVudGUgbGEgY2FydGUKICAgICAgZ2VvcG9ydGFsTG9hZFZJU1UoIkdlb3BvcnRhbFZpc3VEaXYiLCAibm9ybWFsIiwgIkZYWCIpOwogICAKICAgICAgLy8gT24gY2hhcmdlIGxlcyBjb3VjaGVzIGRlIGRvbm7DqWVzIGTDqWZpbmllcyBkYW5zIGxlIGNvbnRyYXQKICAgICAgaWYgKFZJU1UpIHsKCSAgICBpZihWSVNVLmFsbG93ZWRHZW9wb3J0YWxMYXllcnMpewogICAgICAgICBmb3IgKHZhciBpPSAwOyBpPFZJU1UuYWxsb3dlZEdlb3BvcnRhbExheWVycy5sZW5ndGg7IGkrKykgewogICAgICAgICAgdmFyIG92ZXJsb2FkZWRfb3B0aW9ucz0gbnVsbDsKICAgICAgICAgIHN3aXRjaCAoVklTVS5hbGxvd2VkR2VvcG9ydGFsTGF5ZXJzW2ldKSB7CiAgICAgICAgICAgIGNhc2UgXCdHRU9HUkFQSElDQUxHUklEU1lTVEVNUy5NQVBTXCc6IC8vIGNhcnRlcwogICAgICAgICAgICAgb3ZlcmxvYWRlZF9vcHRpb25zPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6Jy4kb3BhY2l0eWlnbi4nCiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgXCdPUlRIT0lNQUdFUlkuT1JUSE9QSE9UT1NcJyAgICA6IC8vIG9ydGhvLXBob3RvcwogICAgICAgICAgICAgb3ZlcmxvYWRlZF9vcHRpb25zPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6ICcuJG9wYWNpdHlwaG90by4nCiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgYnJlYWs7CQkgCiAgICAgICAgICAgIGRlZmF1bHQgOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBWSVNVLmFkZEdlb3BvcnRhbExheWVyKFZJU1UuYWxsb3dlZEdlb3BvcnRhbExheWVyc1tpXSxvdmVybG9hZGVkX29wdGlvbnMpOwogICAgICAgICB9CgkJVklTVS5vcGVuTGF5ZXJzUGFuZWwoJy4kZXhwYW5kbGF5ZXJzY29udHJvbC4nKTsgLy8gcG91ciBmZXJtZXIgbGEgYmFycmUgZGUgY291Y2hlCiAgICAgICAgVklTVS5vcGVuVG9vbHNQYW5lbCgnLiRleHBhbmR0b29sY29udHJvbC4nKTsgLy8gcG91ciBmZXJtZXIgbGEgYmFycmUgZGUgem9vbQoJCQoJCXZhciBzdHlsZTEgPSBuZXcgT3BlbkxheWVycy5TdHlsZU1hcCh7CiAgICAgICAgImRlZmF1bHQiOiBuZXcgT3BlbkxheWVycy5TdHlsZSh7CiAgICAgICAgICAgIHN0cm9rZUNvbG9yOlwnJy4kdHJhY2Vjb2xvci4nXCcsCiAgICAgICAgICAgIHN0cm9rZVdpZHRoOicuJHRyYWNlV2lkdGguJwogICAgICAgIH0pCiAgICAgICAgfSk7CiAgICAvLyBvbiBjaGFyZ2UgbGEgdHJhY2UKICAgIGxjaXJjdWl0ID0gIFZJU1UuYWRkTGF5ZXIoICJHUFgiLCAiQ2lyY3VpdCIsIicuJGdweGZpbGUuJyIsCgkJCQkJCXsKCQkJCQkJCW1pblpvb21MZXZlbDowLAoJCQkJCQkJbWF4Wm9vbUxldmVsOjIwLCc7CgkgaWYgKCR0aXRsZSAhPScnKSB7JEZpcm1NYXBKUyAuPScgbmFtZTonLiR0aXRsZS4nLCc7fTsKICAgICBpZiAoJHRleHQgIT0nJykgeyRGaXJtTWFwSlMgLj0nIGF0dHJpYnV0aW9uOicuJHRleHQuJywnO307CgkgJEZpcm1NYXBKUyAuPScgdmlzaWJpbGl0eSA6IHRydWUsCgkJCQkJCQlzdHlsZU1hcDogc3R5bGUxLAoJCQkJCQkJZXh0cmFjdFdheXBvaW50czp0cnVlLGV4dHJhY3RUcmFja3M6dHJ1ZSxleHRyYWN0Um91dGVzOnRydWUsIGV4dHJhY3RBdHRyaWJ1dGVzOnRydWUKCQkJCQkJfSk7CiAgICAgbGNpcmN1aXQuZXZlbnRzLnJlZ2lzdGVyKFwnbG9hZGVuZFwnLGxjaXJjdWl0LCBmdW5jdGlvbihlKXt6b29tVG9GaXRUcmFjZUdQWCgpO30pCiAgICAgICAgfQogICAgIH0KCX0KCQpmdW5jdGlvbiB6b29tVG9GaXRUcmFjZUdQWCgpIHsKCSAgIGJvdW5kcyA9IGxjaXJjdWl0LmZlYXR1cmVzWzBdLmdlb21ldHJ5LmdldEJvdW5kcygpOwogICAgICAgICAgICAgICBWSVNVLmdldE1hcCgpLnpvb21Ub0V4dGVudChib3VuZHMsZmFsc2UpOwp9Ci8vIF1dPjwvc2NyaXB0Pic7CgoJCS8vIGFzc2lnbiBTbWFydHkgdmFyaWFibGVzOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmlybV9tYXBfaGVhZGVyJywkRmlybUhlYWRlcik7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaXJtX3RhYnMnLCRGaXJtVGFicyk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaXJtX21hcCcsJEZpcm1NYXApOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZmlybV9qcycsJEZpcm1NYXBKUyk7CgoKCQkgCgkJYWRvZGJfY29ubmVjdCgpOwoJCSNTZXQgbG9jYWxlIGFnYWluCgkJc2V0bG9jYWxlKExDX0FMTCwgJGN1cnJlbnRMb2NhbGUpOwoJCQoJCS8vIERpc3BsYXkgdGhlIHBvcHVsYXRlZCB0ZW1wbGF0ZQoJCXJldHVybiAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdtYXAudHBsJyk7ICAKCQkKCX0KfQoKPz4K]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/error.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4Ke2lmICRlcnJvciE9Jyd9PHA+eyRlcnJvcn08L3A+ey9pZn0=]]></data>
	</file>
	<file>
	  <filename>/templates/map.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmaXJtX21hcF9oZWFkZXJ9CjxhIG5hbWU9InNncHhtYXBhbmNyZSI+PC9hPgp7JGZpcm1fdGFic30KeyoKPCEtLSBuZWNlc3NhcnkgZm9yIGdvb2dsZSBtYXBzIHBvbHlsaW5lIGRyYXdpbmcgaW4gSUUgLS0+CntsaXRlcmFsfQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgp2XDoqIHsKIGJlaGF2aW9yOnVybCgjZGVmYXVsdCNWTUwpOwp9Cjwvc3R5bGU+CnsvbGl0ZXJhbH0KKn0KPGRpdiBpZD0iZ3B4bWFwIj4KeyRmaXJtX21hcH0KeyRmaXJtX2pzfQo8L2Rpdj4KCgo=]]></data>
	</file>
	<file>
	  <filename>/templates/settings.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxmaWVsZHNldD4KPGxlZ2VuZD57JHByb21wdF9nZW5lcmFsc2V0dGluZ3N9PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGxibF9Hb29nbGVhcGlrZXl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JEdvb2dsZWFwaWtleX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRsYmxfR2VvUG9ydGFpbGFwaWtleX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskR2VvUG9ydGFpbGFwaWtleX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KPC9kaXY+CjwvZmllbGRzZXQ+CnskZm9ybWVuZH0K]]></data>
	</file>
</module>
