<?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>PaypalGateway</name>
	<version>1.1</version>
  <mincmsversion>1.3</mincmsversion>
	<help>PGgzPldoYXQgZG9lcyBpdCBkbz88L2gzPgo8cD5UaGlzIG1vZHVsZSBpcyB1c2VkIGJ5IHRoZSBPcmRlcnMgbW9kdWxlIHRvIGNvbXBsZXRlIHB1cmNoYXNlcyB1c2luZyBQYXlwYWwuICBUaGUgbW9kdWxlIHVzZXMgdGhlIHNpbXBsZQoJcmVkaXJlY3QgbWV0aG9kIGZvciBjb21wbGV0aW5nIGEgcHVyY2hhc2UuICBBZnRlciBhIHN1Y2Nlc3NmdWwgY2hlY2tvdXQsIHRoZXkgd2lsbCByZWRpcmVjdCBiYWNrIHRvIHRoZSBPcmRlcnMgbW9kdWxlCgl0byBzaG93IHRoZSBjaGVja291dCByZWNlaXB0IHBhZ2UuICBTZWUgaHR0cDovL3d3dy5zY3JpYmQuY29tL2RvYy8yNTMwMTY5L2NhcnRpbnN0YWxsIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGhvdyB0bwoJc2V0dXAgdGhlIENhcnQsIE9yZGVycyBhbmQgb3RoZXIgYXNzb2NpYXRlZCBtb2R1bGVzLjwvcD4KPGgzPkhvdyBEbyBJIHVzZSBJdDwvaDM+CjxwPlRoaXMgbW9kdWxlIG9ubHkgd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgT3JkZXJzIG1vZHVsZS4gUGxhY2luZyA8Y29kZT57Y21zX21vZHVsZSBtb2R1bGU9J3BheXBhbGdhdGV3YXknIG9yZGVyX2lkPSRvcmRlcl9pZH08L2NvZGU+IAoJaW4geW91ciBQYXltZW50IFRlbXBsYXRlIG9mIHRoZSBPcmRlcnMgbW9kdWxlIHdpbGwgc2hvdyB0aGUgYnV0dG9uIHRvIGNoZWNrb3V0IHdpdGggUGF5cGFsLjwvcD48aDM+RGVwZW5kZW5jaWVzPC9oMz48dWw+PGxpPkNHRXh0ZW5zaW9ucyA9Jmd0OyAxLjk8L2xpPjwvdWw+PGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=</help>
	<about>PGJyIC8+QXV0aG9yOiBUZWQgS3VscCAmbHQ7dGVkQGNtc21hZGVzaW1wbGUub3JnJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuMTxiciAvPjxiciAvPkNoYW5nZSBIaXN0b3J5OjxiciAvPi0tQWRkIE1lIC0gbW9kdWxlOlBheXBhbEdhdGV3YXkgc3RyaW5nOmNoYW5nZWxvZy0tPGJyIC8+</about>
	<description>--Add Me - module:PaypalGateway string:moddescription--</description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.9</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheXBhbEdhdGV3YXkgLSBBIFBheXBhbCBnYXRld2F5IG1vZHVsZSBmb3IgdGhlIE9yZGVycyBtb2R1bGUKIyBWZXJzaW9uOiAxLjAsIFRlZCBLdWxwIDx0ZWRAY21zbWFkZXNpbXBsZS5vcmc+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheXBhbEdhdGV3YXkgLSBBIFBheXBhbCBnYXRld2F5IG1vZHVsZSBmb3IgdGhlIE9yZGVycyBtb2R1bGUKIyBWZXJzaW9uOiAxLjAsIFRlZCBLdWxwIDx0ZWRAY21zbWFkZXNpbXBsZS5vcmc+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CgplY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ3ByZWZlcmVuY2VzJywgJHRoaXMtPkxhbmcoJ3ByZWZlcmVuY2VzJykpOwoKZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CgplY2hvICR0aGlzLT5TdGFydFRhYigncHJlZmVyZW5jZXMnKTsKCmlmKCAhJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApCnsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnKSk7Cn0KZWxzZQp7CiAgaWYgKGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSkKCXsKCQlpZiAoaXNzZXQoJHBhcmFtc1sncGF5cGFsX3VybCddKSkKCQl7CgkJCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdwYXlwYWxfdXJsJywgdHJpbSgkcGFyYW1zWydwYXlwYWxfdXJsJ10pKTsKCQl9CgkJCgkJaWYgKGlzc2V0KCRwYXJhbXNbJ2J1c2luZXNzX2VtYWlsJ10pKQoJCXsKCQkJJHRoaXMtPlNldFByZWZlcmVuY2UoJ2J1c2luZXNzX2VtYWlsJywgdHJpbSgkcGFyYW1zWydidXNpbmVzc19lbWFpbCddKSk7CgkJfQoJfQoKCSRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywgJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICRyZXR1cm5pZCkpOwoJJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CgoJJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfcGF5cGFsX3VybCcsJHRoaXMtPkxhbmcoJ3BheXBhbF91cmwnKSk7Cgkkc21hcnR5LT5hc3NpZ24oJ2lucHV0X3BheXBhbF91cmwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ3BheXBhbF91cmwnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgncGF5cGFsX3VybCcsICdodHRwczovL3d3dy5zYW5kYm94LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3InKSwgMTAwLCAxMDI0KSk7CgoJJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfYnVzaW5lc3NfZW1haWwnLCR0aGlzLT5MYW5nKCdidXNpbmVzc19lbWFpbCcpKTsKCSRzbWFydHktPmFzc2lnbignaW5wdXRfYnVzaW5lc3NfZW1haWwnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2J1c2luZXNzX2VtYWlsJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2J1c2luZXNzX2VtYWlsJywgJycpLCA1MCwgMjU1KSk7CgoJJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnc3VibWl0JywgbGFuZygnc3VibWl0JykpKTsKCgllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ3ByZWZzLnRwbCcpOwp9CgplY2hvICR0aGlzLT5FbmRUYWIoKTsKCmVjaG8gJHRoaXMtPkVuZFRhYkNvbnRlbnQoKTsKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.return_cancel.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheXBhbEdhdGV3YXkgLSBBIFBheXBhbCBnYXRld2F5IG1vZHVsZSBmb3IgdGhlIE9yZGVycyBtb2R1bGUKIyBWZXJzaW9uOiAxLjAsIFRlZCBLdWxwIDx0ZWRAY21zbWFkZXNpbXBsZS5vcmc+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKJHBhcm1zID0gYXJyYXkoKTsKCmlmKCAkcGFyYW1zWydteWN1c3RvbSddICE9ICRfU0VTU0lPTlsncHBnd19jdXN0b21fZmllbGQnXSApCiAgewogICAgLy8gdWgtb2gsIGdvdCBhbiBlcnJvcgogICAgZGllKCdiYWQgY3VzdG9tIGZpZWxkJyk7IC8vIHRvZG8sIGRvIHNvbWV0aGluZyBoZXJlLgogIH0KCiR0aGlzLT5TZXRSZXR1cm5TdGF0dXMoJ0NBTkNFTExFRCcpOwoKaWYoIGlzc2V0KCRfUkVRVUVTVFsndHgnXSkgKQogIHsKICAgIC8vJHRoaXMtPlNldFJldHVyblRyYW5zYWN0aW9uSUQodHJpbSgkX1JFUVVFU1RbJ3R4J10pKTsKICB9CgovLyBidWlsZCB0aGUgZGVmYXVsdCB1cmwKaWYoIGlzc2V0KCRfU0VTU0lPTlsncHBnd19jYW5jZWxfdXJsJ10pICkKICB7CiAgICAkdXJsID0gY21zX2h0bWxfZW50aXR5X2RlY29kZSgkX1NFU1NJT05bJ3BwZ3dfY2FuY2VsX3VybCddKTsKICAgIHJlZGlyZWN0KCR1cmwpOwogIH0KCi8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/action.return_success.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheXBhbEdhdGV3YXkgLSBBIFBheXBhbCBnYXRld2F5IG1vZHVsZSBmb3IgdGhlIE9yZGVycyBtb2R1bGUKIyBWZXJzaW9uOiAxLjAsIFRlZCBLdWxwIDx0ZWRAY21zbWFkZXNpbXBsZS5vcmc+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3NrZWxldG9uLwojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKIyBPciByZWFkIGl0IG9ubGluZTogaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMCiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKaWYoICFpc3NldCgkX1NFU1NJT05bJ3BwZ3dfY3VzdG9tX2ZpZWxkJ10pICkKICBkaWUoJ2N1c3RvbSBmaWVsZCBpcyBub3Qgc2V0Jyk7CgppZiggaXNzZXQoJF9SRVFVRVNUWyd0eCddKSApCiAgewogICAgJHRoaXMtPlNldFJldHVyblN0YXR1cygnU1VDQ0VTUycpOwogICAgJHRoaXMtPlNldFJldHVyblRyYW5zYWN0aW9uSUQodHJpbSgkX1JFUVVFU1RbJ3R4J10pKTsKICB9CgoKLy8gYnVpbGQgdGhlIGRlZmF1bHQgdXJsCmlmKCBpc3NldCgkX1NFU1NJT05bJ3BwZ3dfc3VjY2Vzc191cmwnXSkgKQogIHsKICAgICR1cmwgPSBjbXNfaHRtbF9lbnRpdHlfZGVjb2RlKHRyaW0oJF9TRVNTSU9OWydwcGd3X3N1Y2Nlc3NfdXJsJ10pKTsKICAgIGlmKCAhZW1wdHkoJHVybCApICkKICAgICAgewoJcmVkaXJlY3QoJHVybCk7CiAgICAgIH0KICB9CgpkaWUoJ2dvdCBoZXJlJyk7Ci8vIEVPRgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/gpl.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CQkgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKCQkgICAgICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKCiBDb3B5cmlnaHQgKEMpIDE5ODksIDE5OTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICAgICAgICAgICAgICAgICAgICAgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgoJCQkgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBpbnN0ZWFkLikgIFlvdSBjYW4gYXBwbHkgaXQgdG8KeW91ciBwcm9ncmFtcywgdG9vLgoKICBXaGVuIHdlIHNwZWFrIG9mIGZyZWUgc29mdHdhcmUsIHdlIGFyZSByZWZlcnJpbmcgdG8gZnJlZWRvbSwgbm90CnByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UKaGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgp0aGlzIHNlcnZpY2UgaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQKaWYgeW91IHdhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQKaW4gbmV3IGZyZWUgcHJvZ3JhbXM7IGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVzdHJpY3Rpb25zIHRoYXQgZm9yYmlkCmFueW9uZSB0byBkZW55IHlvdSB0aGVzZSByaWdodHMgb3IgdG8gYXNrIHlvdSB0byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4KVGhlc2UgcmVzdHJpY3Rpb25zIHRyYW5zbGF0ZSB0byBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgZm9yIHlvdSBpZiB5b3UKZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZiB5b3UgbW9kaWZ5IGl0LgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlvdSBtdXN0IGdpdmUgdGhlIHJlY2lwaWVudHMgYWxsIHRoZSByaWdodHMgdGhhdAp5b3UgaGF2ZS4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZQpzb3VyY2UgY29kZS4gIEFuZCB5b3UgbXVzdCBzaG93IHRoZW0gdGhlc2UgdGVybXMgc28gdGhleSBrbm93IHRoZWlyCnJpZ2h0cy4KCiAgV2UgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczogKDEpIGNvcHlyaWdodCB0aGUgc29mdHdhcmUsIGFuZAooMikgb2ZmZXIgeW91IHRoaXMgbGljZW5zZSB3aGljaCBnaXZlcyB5b3UgbGVnYWwgcGVybWlzc2lvbiB0byBjb3B5LApkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgdGhlIHNvZnR3YXJlLgoKICBBbHNvLCBmb3IgZWFjaCBhdXRob3IncyBwcm90ZWN0aW9uIGFuZCBvdXJzLCB3ZSB3YW50IHRvIG1ha2UgY2VydGFpbgp0aGF0IGV2ZXJ5b25lIHVuZGVyc3RhbmRzIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZQpzb2Z0d2FyZS4gIElmIHRoZSBzb2Z0d2FyZSBpcyBtb2RpZmllZCBieSBzb21lb25lIGVsc2UgYW5kIHBhc3NlZCBvbiwgd2UKd2FudCBpdHMgcmVjaXBpZW50cyB0byBrbm93IHRoYXQgd2hhdCB0aGV5IGhhdmUgaXMgbm90IHRoZSBvcmlnaW5hbCwgc28KdGhhdCBhbnkgcHJvYmxlbXMgaW50cm9kdWNlZCBieSBvdGhlcnMgd2lsbCBub3QgcmVmbGVjdCBvbiB0aGUgb3JpZ2luYWwKYXV0aG9ycycgcmVwdXRhdGlvbnMuCgogIEZpbmFsbHksIGFueSBmcmVlIHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlCnBhdGVudHMuICBXZSB3aXNoIHRvIGF2b2lkIHRoZSBkYW5nZXIgdGhhdCByZWRpc3RyaWJ1dG9ycyBvZiBhIGZyZWUKcHJvZ3JhbSB3aWxsIGluZGl2aWR1YWxseSBvYnRhaW4gcGF0ZW50IGxpY2Vuc2VzLCBpbiBlZmZlY3QgbWFraW5nIHRoZQpwcm9ncmFtIHByb3ByaWV0YXJ5LiAgVG8gcHJldmVudCB0aGlzLCB3ZSBoYXZlIG1hZGUgaXQgY2xlYXIgdGhhdCBhbnkKcGF0ZW50IG11c3QgYmUgbGljZW5zZWQgZm9yIGV2ZXJ5b25lJ3MgZnJlZSB1c2Ugb3Igbm90IGxpY2Vuc2VkIGF0IGFsbC4KCiAgVGhlIHByZWNpc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQKbW9kaWZpY2F0aW9uIGZvbGxvdy4KDAoJCSAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkgdGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQgZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBnaXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vuc2UKYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3UgbWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uCm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRpdGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBjb250YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJlb2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2RpZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGludGVyYWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkgYW4KICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBhbmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1hbGx5IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQcm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoMClRoZXNlIHJlcXVpcmVtZW50cyBhcHBseSB0byB0aGUgbW9kaWZpZWQgd29yayBhcyBhIHdob2xlLiAgSWYKaWRlbnRpZmlhYmxlIHNlY3Rpb25zIG9mIHRoYXQgd29yayBhcmUgbm90IGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3JhbSwKYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluCnRoZW1zZWx2ZXMsIHRoZW4gdGhpcyBMaWNlbnNlLCBhbmQgaXRzIHRlcm1zLCBkbyBub3QgYXBwbHkgdG8gdGhvc2UKc2VjdGlvbnMgd2hlbiB5b3UgZGlzdHJpYnV0ZSB0aGVtIGFzIHNlcGFyYXRlIHdvcmtzLiAgQnV0IHdoZW4geW91CmRpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZApvbiB0aGUgUHJvZ3JhbSwgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgd2hvbGUgbXVzdCBiZSBvbiB0aGUgdGVybXMgb2YKdGhpcyBMaWNlbnNlLCB3aG9zZSBwZXJtaXNzaW9ucyBmb3Igb3RoZXIgbGljZW5zZWVzIGV4dGVuZCB0byB0aGUKZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlIGl0LgoKVGh1cywgaXQgaXMgbm90IHRoZSBpbnRlbnQgb2YgdGhpcyBzZWN0aW9uIHRvIGNsYWltIHJpZ2h0cyBvciBjb250ZXN0CnlvdXIgcmlnaHRzIHRvIHdvcmsgd3JpdHRlbiBlbnRpcmVseSBieSB5b3U7IHJhdGhlciwgdGhlIGludGVudCBpcyB0bwpleGVyY2lzZSB0aGUgcmlnaHQgdG8gY29udHJvbCB0aGUgZGlzdHJpYnV0aW9uIG9mIGRlcml2YXRpdmUgb3IKY29sbGVjdGl2ZSB3b3JrcyBiYXNlZCBvbiB0aGUgUHJvZ3JhbS4KCkluIGFkZGl0aW9uLCBtZXJlIGFnZ3JlZ2F0aW9uIG9mIGFub3RoZXIgd29yayBub3QgYmFzZWQgb24gdGhlIFByb2dyYW0Kd2l0aCB0aGUgUHJvZ3JhbSAob3Igd2l0aCBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0pIG9uIGEgdm9sdW1lIG9mCmEgc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVtIGRvZXMgbm90IGJyaW5nIHRoZSBvdGhlciB3b3JrIHVuZGVyCnRoZSBzY29wZSBvZiB0aGlzIExpY2Vuc2UuCgogIDMuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYSB3b3JrIGJhc2VkIG9uIGl0LAp1bmRlciBTZWN0aW9uIDIpIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybSB1bmRlciB0aGUgdGVybXMgb2YKU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIGRvIG9uZSBvZiB0aGUgZm9sbG93aW5nOgoKICAgIGEpIEFjY29tcGFueSBpdCB3aXRoIHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nIG1hY2hpbmUtcmVhZGFibGUKICAgIHNvdXJjZSBjb2RlLCB3aGljaCBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucwogICAgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYikgQWNjb21wYW55IGl0IHdpdGggYSB3cml0dGVuIG9mZmVyLCB2YWxpZCBmb3IgYXQgbGVhc3QgdGhyZWUKICAgIHllYXJzLCB0byBnaXZlIGFueSB0aGlyZCBwYXJ0eSwgZm9yIGEgY2hhcmdlIG5vIG1vcmUgdGhhbiB5b3VyCiAgICBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyBzb3VyY2UgZGlzdHJpYnV0aW9uLCBhIGNvbXBsZXRlCiAgICBtYWNoaW5lLXJlYWRhYmxlIGNvcHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUsIHRvIGJlCiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bQogICAgY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2U7IG9yLAoKICAgIGMpIEFjY29tcGFueSBpdCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB5b3UgcmVjZWl2ZWQgYXMgdG8gdGhlIG9mZmVyCiAgICB0byBkaXN0cmlidXRlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUuICAoVGhpcyBhbHRlcm5hdGl2ZSBpcwogICAgYWxsb3dlZCBvbmx5IGZvciBub25jb21tZXJjaWFsIGRpc3RyaWJ1dGlvbiBhbmQgb25seSBpZiB5b3UKICAgIHJlY2VpdmVkIHRoZSBwcm9ncmFtIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybSB3aXRoIHN1Y2gKICAgIGFuIG9mZmVyLCBpbiBhY2NvcmQgd2l0aCBTdWJzZWN0aW9uIGIgYWJvdmUuKQoKVGhlIHNvdXJjZSBjb2RlIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrIGZvcgptYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gIEZvciBhbiBleGVjdXRhYmxlIHdvcmssIGNvbXBsZXRlIHNvdXJjZQpjb2RlIG1lYW5zIGFsbCB0aGUgc291cmNlIGNvZGUgZm9yIGFsbCBtb2R1bGVzIGl0IGNvbnRhaW5zLCBwbHVzIGFueQphc3NvY2lhdGVkIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8KY29udHJvbCBjb21waWxhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIG9mIHRoZSBleGVjdXRhYmxlLiAgSG93ZXZlciwgYXMgYQpzcGVjaWFsIGV4Y2VwdGlvbiwgdGhlIHNvdXJjZSBjb2RlIGRpc3RyaWJ1dGVkIG5lZWQgbm90IGluY2x1ZGUKYW55dGhpbmcgdGhhdCBpcyBub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkKZm9ybSkgd2l0aCB0aGUgbWFqb3IgY29tcG9uZW50cyAoY29tcGlsZXIsIGtlcm5lbCwgYW5kIHNvIG9uKSBvZiB0aGUKb3BlcmF0aW5nIHN5c3RlbSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSBydW5zLCB1bmxlc3MgdGhhdCBjb21wb25lbnQKaXRzZWxmIGFjY29tcGFuaWVzIHRoZSBleGVjdXRhYmxlLgoKSWYgZGlzdHJpYnV0aW9uIG9mIGV4ZWN1dGFibGUgb3Igb2JqZWN0IGNvZGUgaXMgbWFkZSBieSBvZmZlcmluZwphY2Nlc3MgdG8gY29weSBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50CmFjY2VzcyB0byBjb3B5IHRoZSBzb3VyY2UgY29kZSBmcm9tIHRoZSBzYW1lIHBsYWNlIGNvdW50cyBhcwpkaXN0cmlidXRpb24gb2YgdGhlIHNvdXJjZSBjb2RlLCBldmVuIHRob3VnaCB0aGlyZCBwYXJ0aWVzIGFyZSBub3QKY29tcGVsbGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KDAogIDQuIFlvdSBtYXkgbm90IGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSwgb3IgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbQpleGNlcHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0Cm90aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2Ugb3IgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBpcwp2b2lkLCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2UuCkhvd2V2ZXIsIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91IHVuZGVyCnRoaXMgTGljZW5zZSB3aWxsIG5vdCBoYXZlIHRoZWlyIGxpY2Vuc2VzIHRlcm1pbmF0ZWQgc28gbG9uZyBhcyBzdWNoCnBhcnRpZXMgcmVtYWluIGluIGZ1bGwgY29tcGxpYW5jZS4KCiAgNS4gWW91IGFyZSBub3QgcmVxdWlyZWQgdG8gYWNjZXB0IHRoaXMgTGljZW5zZSwgc2luY2UgeW91IGhhdmUgbm90CnNpZ25lZCBpdC4gIEhvd2V2ZXIsIG5vdGhpbmcgZWxzZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gbW9kaWZ5IG9yCmRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gb3IgaXRzIGRlcml2YXRpdmUgd29ya3MuICBUaGVzZSBhY3Rpb25zIGFyZQpwcm9oaWJpdGVkIGJ5IGxhdyBpZiB5b3UgZG8gbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUsIGJ5Cm1vZGlmeWluZyBvciBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtKSwgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28sIGFuZAphbGwgaXRzIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0cmlidXRpbmcgb3IgbW9kaWZ5aW5nCnRoZSBQcm9ncmFtIG9yIHdvcmtzIGJhc2VkIG9uIGl0LgoKICA2LiBFYWNoIHRpbWUgeW91IHJlZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0pLCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBsaWNlbnNlIGZyb20gdGhlCm9yaWdpbmFsIGxpY2Vuc29yIHRvIGNvcHksIGRpc3RyaWJ1dGUgb3IgbW9kaWZ5IHRoZSBQcm9ncmFtIHN1YmplY3QgdG8KdGhlc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMuICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIKcmVzdHJpY3Rpb25zIG9uIHRoZSByZWNpcGllbnRzJyBleGVyY2lzZSBvZiB0aGUgcmlnaHRzIGdyYW50ZWQgaGVyZWluLgpZb3UgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB0bwp0aGlzIExpY2Vuc2UuCgogIDcuIElmLCBhcyBhIGNvbnNlcXVlbmNlIG9mIGEgY291cnQganVkZ21lbnQgb3IgYWxsZWdhdGlvbiBvZiBwYXRlbnQKaW5mcmluZ2VtZW50IG9yIGZvciBhbnkgb3RoZXIgcmVhc29uIChub3QgbGltaXRlZCB0byBwYXRlbnQgaXNzdWVzKSwKY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90CmRpc3RyaWJ1dGUgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKTGljZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdQptYXkgbm90IGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gYXQgYWxsLiAgRm9yIGV4YW1wbGUsIGlmIGEgcGF0ZW50CmxpY2Vuc2Ugd291bGQgbm90IHBlcm1pdCByb3lhbHR5LWZyZWUgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkKYWxsIHRob3NlIHdobyByZWNlaXZlIGNvcGllcyBkaXJlY3RseSBvciBpbmRpcmVjdGx5IHRocm91Z2ggeW91LCB0aGVuCnRoZSBvbmx5IHdheSB5b3UgY291bGQgc2F0aXNmeSBib3RoIGl0IGFuZCB0aGlzIExpY2Vuc2Ugd291bGQgYmUgdG8KcmVmcmFpbiBlbnRpcmVseSBmcm9tIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbS4KCklmIGFueSBwb3J0aW9uIG9mIHRoaXMgc2VjdGlvbiBpcyBoZWxkIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgphbnkgcGFydGljdWxhciBjaXJjdW1zdGFuY2UsIHRoZSBiYWxhbmNlIG9mIHRoZSBzZWN0aW9uIGlzIGludGVuZGVkIHRvCmFwcGx5IGFuZCB0aGUgc2VjdGlvbiBhcyBhIHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5IGluIG90aGVyCmNpcmN1bXN0YW5jZXMuCgpJdCBpcyBub3QgdGhlIHB1cnBvc2Ugb2YgdGhpcyBzZWN0aW9uIHRvIGluZHVjZSB5b3UgdG8gaW5mcmluZ2UgYW55CnBhdGVudHMgb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1zIG9yIHRvIGNvbnRlc3QgdmFsaWRpdHkgb2YgYW55CnN1Y2ggY2xhaW1zOyB0aGlzIHNlY3Rpb24gaGFzIHRoZSBzb2xlIHB1cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUKaW50ZWdyaXR5IG9mIHRoZSBmcmVlIHNvZnR3YXJlIGRpc3RyaWJ1dGlvbiBzeXN0ZW0sIHdoaWNoIGlzCmltcGxlbWVudGVkIGJ5IHB1YmxpYyBsaWNlbnNlIHByYWN0aWNlcy4gIE1hbnkgcGVvcGxlIGhhdmUgbWFkZQpnZW5lcm91cyBjb250cmlidXRpb25zIHRvIHRoZSB3aWRlIHJhbmdlIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkCnRocm91Z2ggdGhhdCBzeXN0ZW0gaW4gcmVsaWFuY2Ugb24gY29uc2lzdGVudCBhcHBsaWNhdGlvbiBvZiB0aGF0CnN5c3RlbTsgaXQgaXMgdXAgdG8gdGhlIGF1dGhvci9kb25vciB0byBkZWNpZGUgaWYgaGUgb3Igc2hlIGlzIHdpbGxpbmcKdG8gZGlzdHJpYnV0ZSBzb2Z0d2FyZSB0aHJvdWdoIGFueSBvdGhlciBzeXN0ZW0gYW5kIGEgbGljZW5zZWUgY2Fubm90CmltcG9zZSB0aGF0IGNob2ljZS4KClRoaXMgc2VjdGlvbiBpcyBpbnRlbmRlZCB0byBtYWtlIHRob3JvdWdobHkgY2xlYXIgd2hhdCBpcyBiZWxpZXZlZCB0bwpiZSBhIGNvbnNlcXVlbmNlIG9mIHRoZSByZXN0IG9mIHRoaXMgTGljZW5zZS4KDAogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBhZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNlbnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9mIHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4KCiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNlcHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMKb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVlIHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxseS4KCgkJCSAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOCk9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNFU1NBUlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQpZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKCQkgICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUwoMCgkgICAgSG93IHRvIEFwcGx5IFRoZXNlIFRlcm1zIHRvIFlvdXIgTmV3IFByb2dyYW1zCgogIElmIHlvdSBkZXZlbG9wIGEgbmV3IHByb2dyYW0sIGFuZCB5b3Ugd2FudCBpdCB0byBiZSBvZiB0aGUgZ3JlYXRlc3QKcG9zc2libGUgdXNlIHRvIHRoZSBwdWJsaWMsIHRoZSBiZXN0IHdheSB0byBhY2hpZXZlIHRoaXMgaXMgdG8gbWFrZSBpdApmcmVlIHNvZnR3YXJlIHdoaWNoIGV2ZXJ5b25lIGNhbiByZWRpc3RyaWJ1dGUgYW5kIGNoYW5nZSB1bmRlciB0aGVzZSB0ZXJtcy4KCiAgVG8gZG8gc28sIGF0dGFjaCB0aGUgZm9sbG93aW5nIG5vdGljZXMgdG8gdGhlIHByb2dyYW0uICBJdCBpcyBzYWZlc3QKdG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUgdG8gbW9zdCBlZmZlY3RpdmVseQpjb252ZXkgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQoKCkFsc28gYWRkIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVjdHJvbmljIGFuZCBwYXBlciBtYWlsLgoKSWYgdGhlIHByb2dyYW0gaXMgaW50ZXJhY3RpdmUsIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQgbm90aWNlIGxpa2UgdGhpcwp3aGVuIGl0IHN0YXJ0cyBpbiBhbiBpbnRlcmFjdGl2ZSBtb2RlOgoKICAgIEdub21vdmlzaW9uIHZlcnNpb24gNjksIENvcHlyaWdodCAoQykgeWVhciBuYW1lIG9mIGF1dGhvcgogICAgR25vbW92aXNpb24gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZOyBmb3IgZGV0YWlscyB0eXBlIGBzaG93IHcnLgogICAgVGhpcyBpcyBmcmVlIHNvZnR3YXJlLCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdAogICAgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zOyB0eXBlIGBzaG93IGMnIGZvciBkZXRhaWxzLgoKVGhlIGh5cG90aGV0aWNhbCBjb21tYW5kcyBgc2hvdyB3JyBhbmQgYHNob3cgYycgc2hvdWxkIHNob3cgdGhlIGFwcHJvcHJpYXRlCnBhcnRzIG9mIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgT2YgY291cnNlLCB0aGUgY29tbWFuZHMgeW91IHVzZSBtYXkKYmUgY2FsbGVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGBzaG93IHcnIGFuZCBgc2hvdyBjJzsgdGhleSBjb3VsZCBldmVuIGJlCm1vdXNlLWNsaWNrcyBvciBtZW51IGl0ZW1zLS13aGF0ZXZlciBzdWl0cyB5b3VyIHByb2dyYW0uCgpZb3Ugc2hvdWxkIGFsc28gZ2V0IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3IgeW91cgpzY2hvb2wsIGlmIGFueSwgdG8gc2lnbiBhICJjb3B5cmlnaHQgZGlzY2xhaW1lciIgZm9yIHRoZSBwcm9ncmFtLCBpZgpuZWNlc3NhcnkuICBIZXJlIGlzIGEgc2FtcGxlOyBhbHRlciB0aGUgbmFtZXM6CgogIFlveW9keW5lLCBJbmMuLCBoZXJlYnkgZGlzY2xhaW1zIGFsbCBjb3B5cmlnaHQgaW50ZXJlc3QgaW4gdGhlIHByb2dyYW0KICBgR25vbW92aXNpb24nICh3aGljaCBtYWtlcyBwYXNzZXMgYXQgY29tcGlsZXJzKSB3cml0dGVuIGJ5IEphbWVzIEhhY2tlci4KCiAgPHNpZ25hdHVyZSBvZiBUeSBDb29uPiwgMSBBcHJpbCAxOTg5CiAgVHkgQ29vbiwgUHJlc2lkZW50IG9mIFZpY2UKClRoaXMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBkb2VzIG5vdCBwZXJtaXQgaW5jb3Jwb3JhdGluZyB5b3VyIHByb2dyYW0gaW50bwpwcm9wcmlldGFyeSBwcm9ncmFtcy4gIElmIHlvdXIgcHJvZ3JhbSBpcyBhIHN1YnJvdXRpbmUgbGlicmFyeSwgeW91IG1heQpjb25zaWRlciBpdCBtb3JlIHVzZWZ1bCB0byBwZXJtaXQgbGlua2luZyBwcm9wcmlldGFyeSBhcHBsaWNhdGlvbnMgd2l0aCB0aGUKbGlicmFyeS4gIElmIHRoaXMgaXMgd2hhdCB5b3Ugd2FudCB0byBkbywgdXNlIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLgo=]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCiMgQgokbGFuZ1snYnVzaW5lc3NfZW1haWwnXSA9ICdCdXNpbmVzcyBFbWFpbCc7CgojIEMKJGxhbmdbJ2NoZWNrb3V0X2J1dHRvbl9tZXNzYWdlJ10gPSAnQ2hlY2tvdXQnOwokbGFuZ1snY2hlY2tvdXRfbWVzc2FnZSddID0gJ0NoZWNrb3V0IHcvIFBheXBhbDonOwoKIyBGCiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdQYXlwYWwgR2F0ZXdheSc7CgojIEgKJGxhbmdbJ2hlbHAnXSA9IDw8PEVPVAo8aDM+V2hhdCBkb2VzIGl0IGRvPzwvaDM+CjxwPlRoaXMgbW9kdWxlIGlzIHVzZWQgYnkgdGhlIE9yZGVycyBtb2R1bGUgdG8gY29tcGxldGUgcHVyY2hhc2VzIHVzaW5nIFBheXBhbC4gIFRoZSBtb2R1bGUgdXNlcyB0aGUgc2ltcGxlCglyZWRpcmVjdCBtZXRob2QgZm9yIGNvbXBsZXRpbmcgYSBwdXJjaGFzZS4gIEFmdGVyIGEgc3VjY2Vzc2Z1bCBjaGVja291dCwgdGhleSB3aWxsIHJlZGlyZWN0IGJhY2sgdG8gdGhlIE9yZGVycyBtb2R1bGUKCXRvIHNob3cgdGhlIGNoZWNrb3V0IHJlY2VpcHQgcGFnZS4gIFNlZSBodHRwOi8vd3d3LnNjcmliZC5jb20vZG9jLzI1MzAxNjkvY2FydGluc3RhbGwgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvCglzZXR1cCB0aGUgQ2FydCwgT3JkZXJzIGFuZCBvdGhlciBhc3NvY2lhdGVkIG1vZHVsZXMuPC9wPgo8aDM+SG93IERvIEkgdXNlIEl0PC9oMz4KPHA+VGhpcyBtb2R1bGUgb25seSB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBPcmRlcnMgbW9kdWxlLiBQbGFjaW5nIDxjb2RlPntjbXNfbW9kdWxlIG1vZHVsZT0ncGF5cGFsZ2F0ZXdheScgb3JkZXJfaWQ9XCRvcmRlcl9pZH08L2NvZGU+IAoJaW4geW91ciBQYXltZW50IFRlbXBsYXRlIG9mIHRoZSBPcmRlcnMgbW9kdWxlIHdpbGwgc2hvdyB0aGUgYnV0dG9uIHRvIGNoZWNrb3V0IHdpdGggUGF5cGFsLjwvcD4KRU9UOwokbGFuZ1snaGVscF9vcmRlcl9pZCddID0gJ1NwZWNpZmllcyB0aGUgb3JkZXIgaWQgb2YgdGhlIG9yZGVyIHdlXCdyZSB0cnkgdG8gY29tcGxldGUuJzsKCiMgUAokbGFuZ1sncGF5cGFsX3VybCddID0gJ1BheXBhbCBVUkwnOwokbGFuZ1sncG9zdGluc3RhbGwnXSA9ICdUaGUgUGF5cGFsIGdhdGV3YXkgbW9kdWxlIGhhcyBub3cgYmVlbiBpbnN0YWxsZWQuICBZb3UgY2FuIHNlbGVjdCB0aGlzIGdhdGV3YXkgbW9kdWxlIGZyb20geW91ciBPcmRlcnMgbW9kdWxlIHByZWZlcmVuY2VzIHRhYi4nOwokbGFuZ1sncG9zdHVuaW5zdGFsbCddID0gJ1RoZSBQYXlwYWwgZ2F0ZXdheSBtb2R1bGUgaGFzIG5vdyBiZWVuIHJlbW92ZWQnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbmNlcyc7Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/ext/de_DE.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2J1c2luZXNzX2VtYWlsJ10gPSAnR2VzY2gmYXVtbDtmdGxpY2hlIEVtYWlsLUFkcmVzc2UnOwokbGFuZ1snY2hlY2tvdXRfYnV0dG9uX21lc3NhZ2UnXSA9ICdCZXphaGxlbic7CiRsYW5nWydjaGVja291dF9tZXNzYWdlJ10gPSAnTWl0IFBheXBhbCBiZXphaGxlbjonOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnUGF5cGFsLUdhdGV3YXknOwokbGFuZ1snaGVscCddID0gJzxoMz5XYXMgbWFjaHQgZGllc2VzIE1vZHVsPzwvaDM+DQo8cD5EaWVzZXMgTW9kdWwgd2lyZCB2b20gT3JkZXJzLU1vZHVsIHZlcndlbmRldCwgdW0gZGllIEJlc3RlbGx1bmcgZHVyY2ggZWluZSBaYWhsdW5nIHZpYSBQYXlwYWwgYWJ6dXNjaGxpZSZzemxpZztlbi4gRGFzIE1vZHVsIHZlcndlbmRldCBkYWYmdXVtbDtyIGVpbmUgZWluZmFjaGUNCglXZWl0ZXJsZWl0dW5nLiBOYWNoIGVyZm9sZ3JlaWNoZXIgQmV6YWhsdW5nIGVyZm9sZ3QgZGFubiBlaW5lIFdlaXRlcmxlaXR1bmcgenVyJnV1bWw7Y2sgenVtIE9yZGVycy1Nb2R1bCwNCgl1bSBkZW4gR2VsZGVpbmdhbmcgenUgYmVzdCZhdW1sO3RpZ2VuLiBVbnRlciBkZW0gTGluayBodHRwOi8vd3d3LnNjcmliZC5jb20vZG9jLzI1MzAxNjkvY2FydGluc3RhbGwgZmluZGVuIFNpZSBlaW5lIEFubGVpdHVuZyAoZW5nbC4pLCB3aWUgU2llIHRvDQoJQ2FydCwgT3JkZXJzIHVuZCBkaWUgYW5kZXJlbiBub3R3ZW5kaWdlbiBNb2R1bGUga29uZmlndXJpZXJlbiBtJnV1bWw7c3Nlbi48L3A+DQo8aDM+V2llIHdpcmQgZXMgZWluZ2VzZXR6dD88L2gzPg0KPHA+RGllc2VzIE1vZHVsIGZ1bmt0aW9uaWVydCBudXIgenVzYW1tZW4gbWl0IGRlbSBPcmRlcnMtTW9kdWwuIEYmdXVtbDtnZW4gU2llIDxjb2RlPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtwYXlwYWxnYXRld2F5JiMwMzk7IG9yZGVyX2lkPSRvcmRlcl9pZH08L2NvZGU+IA0KCWluIElociBCZXphaGx1bmdzLVRlbXBsYXRlIGRlcyBPcmRlcnMtTW9kdWxzIGVpbi4gRGFtaXQgd2lyZCBlaW4gQnV0dG9uIGYmdXVtbDtyIGRpZSBCZXphaGx1bmcgbWl0IFBheXBhbCBhbmdlemVpZ3QuPC9wPic7CiRsYW5nWydoZWxwX29yZGVyX2lkJ10gPSAnU3BlemlmaXppZXJ0IGRpZSBCZXN0ZWxsLUlEIGRlciBCZXN0ZWxsdW5nLCBkaWUgYmV6YWhsdCB3ZXJkZW4gc29sbC4nOwokbGFuZ1sncGF5cGFsX3VybCddID0gJ1BheXBhbC1VUkwnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdFaW5zdGVsbHVuZ2VuJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNzE3NDYyNzM2LjExNDc1MTE4NTYuMTIxMzc4MDYyMC4xMjEzNzgyNzY0LjMyMCc7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTI5MDY1MzUuMzE4LjEudXRtY2NuPShkaXJlY3QpfHV0bWNzcj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKPz4=]]></data>
	</file>
	<file>
	  <filename>/lang/ext/es_ES.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2J1c2luZXNzX2VtYWlsJ10gPSAnRW1haWwgZGUgbGEgQ29tcGEmbnRpbGRlOyZpYWN1dGU7YSc7CiRsYW5nWydjaGVja291dF9idXR0b25fbWVzc2FnZSddID0gJ1BhZ2FyJzsKJGxhbmdbJ2NoZWNrb3V0X21lc3NhZ2UnXSA9ICdQYWdhciBjb24gUGF5cGFsOic7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdQb3J0YWwgUGF5cGFsJzsKJGxhbmdbJ3BheXBhbF91cmwnXSA9ICdEaXJlY2NpJm9hY3V0ZTtuIFVSTCBkZSBQYXlwYWwnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbmNpYXMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjEyODMxOTAxNzcuMTE5MjU3MjgwOS4xMjA1ODY2MzcxLjEyMDYxMzAyODYuMzAzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIwNTg2NjM3MS4zMDIuODQudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjdD0vaW5kZXgucGhwL3RvcGljLDIwNDQ3LjAvdG9waWNzZWVuLmh0bWx8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/fr_FR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2J1c2luZXNzX2VtYWlsJ10gPSAnRW1haWwgcHJvZmVzc2lvbm5lbCc7CiRsYW5nWydjaGVja291dF9idXR0b25fbWVzc2FnZSddID0gJ0ZpbmFsaXNlcic7CiRsYW5nWydjaGVja291dF9tZXNzYWdlJ10gPSAnRmluYWxpc2VyIGF2ZWMgUGF5cGFsJm5ic3A7Oic7CiRsYW5nWydmcmllbmRseW5hbWUnXSA9ICdQYXNzZXJlbGxlIFBheXBhbCc7CiRsYW5nWydwYXlwYWxfdXJsJ10gPSAnVVJMIGRlIFBheXBhbCc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1ByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5jZXMnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4zMTE5MTgzOTAuMTE2ODc3MzAzNi4xMjAxNjcxOTU5LjEyMDE4MDczNDUuMjQ3JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIwMDk5MzA4NS4yMzguMzYudXRtY2NuPShyZWZlcnJhbCl8dXRtY3NyPWtkY28uY2h8dXRtY2N0PS90ZXN0L2FkbWluL2VkaXRodG1sYmxvYi5waHB8dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/hu_HU.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1BheXBhbCBrYXBjc29sYXQnOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNzQ1NzQyNzc1LjExNjc0NjIwOTYuMTIwMDc3OTMzNS4xMjAwNzg0MTUwLjk1JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTE5OTIwMzc3NC45My43LnV0bWNjbj0ocmVmZXJyYWwpfHV0bWNzcj1kZXYuY21zbWFkZXNpbXBsZS5vcmd8dXRtY2N0PS9teS98dXRtY21kPXJlZmVycmFsJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/lt_LT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2J1c2luZXNzX2VtYWlsJ10gPSAnVmVyc2xvIGVsLiBwYSZzY2Fyb247dGFzJzsKJGxhbmdbJ2NoZWNrb3V0X2J1dHRvbl9tZXNzYWdlJ10gPSAnUGlya3RpJzsKJGxhbmdbJ2NoZWNrb3V0X21lc3NhZ2UnXSA9ICdQaXJrdGkgcGVyIFBheXBhbDonOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnUGF5cGFsIEdhdGV3YXknOwokbGFuZ1snaGVscCddID0gJzxoMz5LxIUgamlzIGRhcm8/PC9oMz4NCjxwPiZTY2Fyb247aXMgbW9kdWxpcyBuYXVkb2phbWFzIFXFvnNha3ltxbMgKE9yZGVycykgbW9kdWxpbywga2FkIHBhYmFpZ3RpIG1va8SXamltxIUgbmF1ZG9qYW50IFBheXBhbC4gTW9kdWxpcyBuYXVkb2phIHBhcHJhc3RhIG51a3JlaXBpbW8gbWV0b2TEhS4gUG8gc8SXa21pbmdvIGFwbW9rxJdqaW1vLCBudWtyZWlwaWFtYSBhdGdhbCDEryBVxb5zYWt5bcWzIG1vZHVsxK8gcGFyb2R5dGkgZ2F2aW1vIHB1c2xhcMSvLiANCiAgxb1pxatyxJd0aXRlIGh0dHA6Ly93d3cuc2NyaWJkLmNvbS9kb2MvMjUzMDE2OS9jYXJ0aW5zdGFsbCBkYXVnaWF1IGluZm9ybWFjaWpvcyBrYWlwIMSvZGllZ3RpIEtyZXAmc2Nhcm9uO2VsaW8sIFXFvnNha3ltbyAgaXIga2l0dXMgc3VzaWp1c2l1cyBtb2R1bGl1cy48L3A+DQo8aDM+S2FpcCBqxK8gbmF1ZG90aT88L2gzPg0KPHA+JlNjYXJvbjtpcyBtb2R1bGlzIGRpcmJhIHN1IFXFvnNha3ltxbMgbW9kdWxpdS4gxK50ZXJwdGluZSB7Y21zX21vZHVsZSBtb2R1bGU9JiMwMzk7cGF5cGFsZ2F0ZXdheSYjMDM5OyBvcmRlcl9pZD0kb3JkZXJfaWR9IE1va8SXamltbyAmc2Nhcm9uO2FibG9uZSB1xb5zYWt5bcWzIG1vZHVseWplLCBrYWQgcGFyb2R5dGkgbXlndHVrxIUuPC9wPic7CiRsYW5nWydoZWxwX29yZGVyX2lkJ10gPSAnTnVyb2RvIHXFvnNha3ltbyBpZCBrdXLEryBiYW5kb21lIHBhYmFpZ3RpJzsKJGxhbmdbJ3BheXBhbF91cmwnXSA9ICdQYXlwYWwgVVJMJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnTnVvc3RhdG9zJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuNDM0NTU1MTI5LjEyMDY3MDQzNzMuMTIwODg1MDIzNS4xMjA4ODUyNzUzLjIxJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIwODc3NTI3NS4xOC4xMy51dG1jc3I9Zm9ydW0uY21zbWFkZXNpbXBsZS5vcmd8dXRtY2NuPShyZWZlcnJhbCl8dXRtY21kPXJlZmVycmFsfHV0bWNjdD0vaW5kZXgucGhwL2JvYXJkLDMzLjAuaHRtbCc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bWInXSA9ICcxNTY4NjEzNTMnOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nb_NO.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2J1c2luZXNzX2VtYWlsJ10gPSAnRmlybWEgZXBvc3QnOwokbGFuZ1snY2hlY2tvdXRfYnV0dG9uX21lc3NhZ2UnXSA9ICdHJmFyaW5nOyB0aWwga2Fzc2VuJzsKJGxhbmdbJ2NoZWNrb3V0X21lc3NhZ2UnXSA9ICdCZXRhbCBtL1BheXBhbDonOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnUGF5cGFsIEdhdGV3YXkgJzsKJGxhbmdbJ2hlbHAnXSA9ICc8aDM+V2hhdCBkb2VzIGl0IGRvPzwvaDM+DQo8cD5UaGlzIG1vZHVsZSBpcyB1c2VkIGJ5IHRoZSBPcmRlcnMgbW9kdWxlIHRvIGNvbXBsZXRlIHB1cmNoYXNlcyB1c2luZyBQYXlwYWwuICBUaGUgbW9kdWxlIHVzZXMgdGhlIHNpbXBsZQ0KCXJlZGlyZWN0IG1ldGhvZCBmb3IgY29tcGxldGluZyBhIHB1cmNoYXNlLiAgQWZ0ZXIgYSBzdWNjZXNzZnVsIGNoZWNrb3V0LCB0aGV5IHdpbGwgcmVkaXJlY3QgYmFjayB0byB0aGUgT3JkZXJzIG1vZHVsZQ0KCXRvIHNob3cgdGhlIGNoZWNrb3V0IHJlY2VpcHQgcGFnZS4gIFNlZSBodHRwOi8vd3d3LnNjcmliZC5jb20vZG9jLzI1MzAxNjkvY2FydGluc3RhbGwgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRvDQoJc2V0dXAgdGhlIENhcnQsIE9yZGVycyBhbmQgb3RoZXIgYXNzb2NpYXRlZCBtb2R1bGVzLjwvcD4NCjxoMz5Ib3cgRG8gSSB1c2UgSXQ8L2gzPg0KPHA+VGhpcyBtb2R1bGUgb25seSB3b3JrcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBPcmRlcnMgbW9kdWxlLiBQbGFjaW5nIDxjb2RlPntjbXNfbW9kdWxlIG1vZHVsZT0mIzAzOTtwYXlwYWxnYXRld2F5JiMwMzk7IG9yZGVyX2lkPSRvcmRlcl9pZH08L2NvZGU+IA0KCWluIHlvdXIgUGF5bWVudCBUZW1wbGF0ZSBvZiB0aGUgT3JkZXJzIG1vZHVsZSB3aWxsIHNob3cgdGhlIGJ1dHRvbiB0byBjaGVja291dCB3aXRoIFBheXBhbC48L3A+JzsKJGxhbmdbJ2hlbHBfb3JkZXJfaWQnXSA9ICdTcGVzaWZpc2VyZXIgb3JkcmVpZCYjMDM5O2VuIHRpbCBkZW4gb3JkcmVuIHZpIGZvcnMmb3NsYXNoO2tlciAmYXJpbmc7IGZ1bGxmJm9zbGFzaDtyZS4nOwokbGFuZ1sncGF5cGFsX3VybCddID0gJ1BheXBhbCBVUkwgJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnUGF5cGFsIGdhdGV3YXkgbW9kdWxlbiBoYXIgbiZhcmluZzsgYmxpdHQgaW5zdGFsbGVydC4gRHUga2FuIHZlbGdlIGRlbm5lIGdhdGV3YXkgbW9kdWxlbiBmcmEgZGluIE9yZGVycyBtb2R1bCBwcmVmZXJhbnNlciBmYW5lJzsKJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdQYXlwYWwgZ2F0ZXdheSBtb2R1bGVuIGhhciBuJmFyaW5nOyBibGl0dCBmamVybmV0JzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnSW5uc3RpbGxpbmdlcic7CiRsYW5nWyd1dG16J10gPSAnMTU2ODYxMzUzLjEyMTQ1MDkyOTcuMTc4LjkudXRtY3NyPWZvcnVtLmNtc21hZGVzaW1wbGUub3JnfHV0bWNjbj0ocmVmZXJyYWwpfHV0bWNtZD1yZWZlcnJhbHx1dG1jY3Q9Lyc7CiRsYW5nWyd1dG1hJ10gPSAnMTU2ODYxMzUzLjE3OTA1MjYyMzA4NDExMDEwMC4xMjEwNDIzNTc3LjEyMTY0NTQ2MzMuMTIxNjQ2OTMyNC4yNTMnOwokbGFuZ1sndXRtYyddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1iJ10gPSAnMTU2ODYxMzUzLjEuMTAuMTIxNjQ2OTMyNCc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/nl_NL.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2J1c2luZXNzX2VtYWlsJ10gPSAnWmFrZWxpamtlIEVtYWlsJzsKJGxhbmdbJ2NoZWNrb3V0X2J1dHRvbl9tZXNzYWdlJ10gPSAnVWl0bG9nZ2VuJzsKJGxhbmdbJ2NoZWNrb3V0X21lc3NhZ2UnXSA9ICdVaXRsb2dnZW4gYmlqIFBheXBhbDonOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnUGF5cGFsIEdhdGV3YXkgJzsKJGxhbmdbJ3BheXBhbF91cmwnXSA9ICdQYXlwYWwgVVJMICc7CiRsYW5nWydwcmVmZXJlbmNlcyddID0gJ1Zvb3JrZXVyZW4nOwokbGFuZ1sndXRtYSddID0gJzE1Njg2MTM1My4xNTQ1NzMwNDE3LjEyMDI1NDA4NzguMTIwMjU0MDg3OC4xMjAyNTQwODc4LjEnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7CiRsYW5nWyd1dG1jJ10gPSAnMTU2ODYxMzUzJzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIwMjU0MDg3OC4xLjEudXRtY2NuPShvcmdhbmljKXx1dG1jc3I9bGl2ZXx1dG1jdHI9dHJhbnNsYXRpb24gY21zbWFkZXNpbXBsZXx1dG1jbWQ9b3JnYW5pYyc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/lang/ext/pt_PT.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKJGxhbmdbJ2J1c2luZXNzX2VtYWlsJ10gPSAnRW1haWwgRW1wcmVzYXJpYWwnOwokbGFuZ1snY2hlY2tvdXRfYnV0dG9uX21lc3NhZ2UnXSA9ICdGaW5hbGl6YXIgUGVkaWRvJzsKJGxhbmdbJ2NoZWNrb3V0X21lc3NhZ2UnXSA9ICdGaW5hbGl6YXIgUGVkaWRvIGMvIFBheXBhbDonOwokbGFuZ1snZnJpZW5kbHluYW1lJ10gPSAnR2F0ZXdheSBQYXlwYWwnOwokbGFuZ1snaGVscCddID0gJzxoMz5XaGF0IGRvZXMgaXQgZG8/PC9oMz4NCjxwPlRoaXMgbW9kdWxlIGlzIHVzZWQgYnkgdGhlIE9yZGVycyBtb2R1bGUgdG8gY29tcGxldGUgcHVyY2hhc2VzIHVzaW5nIFBheXBhbC4gIFRoZSBtb2R1bGUgdXNlcyB0aGUgc2ltcGxlDQoJcmVkaXJlY3QgbWV0aG9kIGZvciBjb21wbGV0aW5nIGEgcHVyY2hhc2UuICBBZnRlciBhIHN1Y2Nlc3NmdWwgY2hlY2tvdXQsIHRoZXkgd2lsbCByZWRpcmVjdCBiYWNrIHRvIHRoZSBPcmRlcnMgbW9kdWxlDQoJdG8gc2hvdyB0aGUgY2hlY2tvdXQgcmVjZWlwdCBwYWdlLiAgU2VlIGh0dHA6Ly93d3cuc2NyaWJkLmNvbS9kb2MvMjUzMDE2OS9jYXJ0aW5zdGFsbCBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBob3cgdG8NCglzZXR1cCB0aGUgQ2FydCwgT3JkZXJzIGFuZCBvdGhlciBhc3NvY2lhdGVkIG1vZHVsZXMuPC9wPg0KPGgzPkhvdyBEbyBJIHVzZSBJdDwvaDM+DQo8cD5UaGlzIG1vZHVsZSBvbmx5IHdvcmtzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIE9yZGVycyBtb2R1bGUuIFBsYWNpbmcgPGNvZGU+e2Ntc19tb2R1bGUgbW9kdWxlPSYjMDM5O3BheXBhbGdhdGV3YXkmIzAzOTsgb3JkZXJfaWQ9JG9yZGVyX2lkfTwvY29kZT4gDQoJaW4geW91ciBQYXltZW50IFRlbXBsYXRlIG9mIHRoZSBPcmRlcnMgbW9kdWxlIHdpbGwgc2hvdyB0aGUgYnV0dG9uIHRvIGNoZWNrb3V0IHdpdGggUGF5cGFsLjwvcD4nOwokbGFuZ1snaGVscF9vcmRlcl9pZCddID0gJ0VzcGVjaWZpY2EgYSBpZGVudGlmaWNhJmNjZWRpbDsmYXRpbGRlO28gZG8gcGVkaWRvIG5hIG9yZGVtIHF1ZSBzZSBlc3QmYWFjdXRlOyBhIHRlbnRhciBjb21wbGV0YXIuJzsKJGxhbmdbJ3BheXBhbF91cmwnXSA9ICdVUkwgUGF5cGFsJzsKJGxhbmdbJ3ByZWZlcmVuY2VzJ10gPSAnUHJlZmVyJmVjaXJjO25jaWFzJzsKJGxhbmdbJ3V0bWEnXSA9ICcxNTY4NjEzNTMuMjA1MTIwMjExMC4xMjA2NjYxMjY5LjEyMDg3MDk5NjMuMTIwODcxNDM1Ni45JzsKJGxhbmdbJ3V0bXonXSA9ICcxNTY4NjEzNTMuMTIwNjY2MTI2OS4xLjEudXRtY3NyPShkaXJlY3QpfHV0bWNjbj0oZGlyZWN0KXx1dG1jbWQ9KG5vbmUpJzsKJGxhbmdbJ3V0bWMnXSA9ICcxNTY4NjEzNTMnOwokbGFuZ1sndXRtYiddID0gJzE1Njg2MTM1Myc7Cj8+]]></data>
	</file>
	<file>
	  <filename>/paypal.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogICAgICAgICAgICAgICAgICAgICAgUEhQIFBheXBhbCBJUE4gSW50ZWdyYXRpb24gQ2xhc3MKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogICAgICBBdXRob3I6ICAgICBNaWNhaCBDYXJyaWNrIChNb2RpZmllZCBieSBUZWQgS3VscCkKICogICAgICBFbWFpbDogICAgICBlbWFpbEBtaWNhaGNhcnJpY2suY29tICh0ZWRAY21zbWFkZXNpbXBsZS5vcmcpCiAqICAgICAgV2Vic2l0ZTogICAgaHR0cDovL3d3dy5taWNhaGNhcnJpY2suY29tIChodHRwOi8vY21zbWFkZXNpbXBsZS5vcmcpCiAqCiAqICAgICAgRmlsZTogICAgICAgcGF5cGFsLmNsYXNzLnBocAogKiAgICAgIFZlcnNpb246ICAgIDEuMy4wCiAqICAgICAgQ29weXJpZ2h0OiAgKGMpIDIwMDUgLSBNaWNhaCBDYXJyaWNrIAogKiAgICAgICAgICAgICAgICAgIFlvdSBhcmUgZnJlZSB0byB1c2UsIGRpc3RyaWJ1dGUsIGFuZCBtb2RpZnkgdGhpcyBzb2Z0d2FyZSAKICogICAgICAgICAgICAgICAgICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgU2VlIHRoZQogKiAgICAgICAgICAgICAgICAgIGluY2x1ZGVkIGxpY2Vuc2UudHh0IGZpbGUuCiAqICAgICAgCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqICBWRVJJT04gSElTVE9SWToKICogICAgICB2MS4zLjAgWzEwLjEwLjIwMDVdIC0gRml4ZWQgaXQgc28gdGhhdCBzaW5nbGUgcXVvdGVzIGFyZSBoYW5kbGVkIHRoZSAKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQgd2F5IHJhdGhlciB0aGFuIHNpbXBsZSBzdHJpcHBpbmcgdGhlbS4gIFRoaXMKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FzIG5lZWRlZCBiZWNhdXNlIHRoZSB1c2VyIGNvdWxkIHN0aWxsIHB1dCBpbgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdW90ZXMuCiAqICAKICogICAgICB2MS4yLjAgWzA1LjMxLjIwMDVdIC0gQWRkZWQgdGhlIG9wdGlvbmFsIGFiaWxpdHkgdG8gcmVtb3ZlIGFsbCBxdW90ZXMKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgcGF5cGFsIHBvc3RzLiAgVGhlIElQTiB3aWxsIGNvbWUgYmFjawogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkIHNvbWV0aW1lcyB3aGVuIHF1b3RlcyBhcmUgdXNlZCBpbiBjZXJ0aWFuCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcy4KICoKICogICAgICB2MS4xLjAgWzA1LjE1LjIwMDVdIC0gUmV2aXNlZCB0aGUgZm9ybSBvdXRwdXQgaW4gdGhlIHN1Ym1pdF9wYXlwYWxfcG9zdAogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgdG8gYWxsb3cgbm9uLWphdmFzY3JpcHQgY2FwYWJsZSBicm93c2VycwogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBwcm92aWRlIGEgbWVhbnMgb2YgbWFudWFsIGZvcm0gc3VibWlzc2lvbi4KICoKICogICAgICB2MS4wLjAgWzA0LjE2LjIwMDVdIC0gSW5pdGlhbCBWZXJzaW9uCiAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqICBERVNDUklQVElPTjoKICoKICogICAgICBOT1RFOiBTZWUgd3d3Lm1pY2FoY2Fycmljay5jb20gZm9yIHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9uIG9mIHRoaXMgY2xhc3MKICogICAgICAgICAgICBhbG9uZyB3aXRoIGFueSBhcHBsaWNhYmxlIHNhbXBsZSBmaWxlcyBhbmQgb3RoZXIgZG9jdW1lbnRhaW9uLgogKgogKiAgICAgIFRoaXMgZmlsZSBwcm92aWRlcyBhIG5lYXQgYW5kIHNpbXBsZSBtZXRob2QgdG8gaW50ZXJmYWNlIHdpdGggcGF5cGFsIGFuZAogKiAgICAgIFRoZSBwYXlwYWwgSW5zdGFudCBQYXltZW50IE5vdGlmaWNhdGlvbiAoSVBOKSBpbnRlcmZhY2UuICBUaGlzIGZpbGUgaXMKICogICAgICBOT1QgaW50ZW5kZWQgdG8gbWFrZSB0aGUgcGF5cGFsIGludGVncmF0aW9uICJwbHVnICduJyBwbGF5Ii4gSXQgc3RpbGwKICogICAgICByZXF1aXJlcyB0aGUgZGV2ZWxvcGVyICh0aGF0IHNob3VsZCBiZSB5b3UpIHRvIHVuZGVyc3RhbmQgdGhlIHBheXBhbAogKiAgICAgIHByb2Nlc3MgYW5kIGtub3cgdGhlIHZhcmlhYmxlcyB5b3Ugd2FudC9uZWVkIHRvIHBhc3MgdG8gcGF5cGFsIHRvCiAqICAgICAgYWNoaWV2ZSB3aGF0IHlvdSB3YW50LiAgCiAqCiAqICAgICAgVGhpcyBjbGFzcyBoYW5kbGVzIHRoZSBzdWJtaXNzaW9uIG9mIGFuIG9yZGVyIHRvIHBheXBhbCBhc3dlbGwgYXMgdGhlCiAqICAgICAgcHJvY2Vzc2luZyBhbiBJbnN0YW50IFBheW1lbnQgTm90aWZpY2F0aW9uLgogKiAgCiAqICAgICAgVGhpcyBjb2RlIGlzIGJhc2VkIG9uIHRoYXQgb2YgdGhlIHBocC10b29sa2l0IGZyb20gcGF5cGFsLiAgSSd2ZSB0YWtlbgogKiAgICAgIHRoZSBiYXNpYyBwcmluY2lwYWxzIGFuZCBwdXQgaXQgaW4gdG8gYSBjbGFzcyBzbyB0aGF0IGl0IGlzIGEgbGl0dGxlCiAqICAgICAgZWFzaWVyLS1hdCBsZWFzdCBmb3IgbWUtLXRvIHVzZS4gIFRoZSBwaHAtdG9vbGtpdCBjYW4gYmUgZG93bmxvYWRlZCBmcm9tCiAqICAgICAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9wYXlwYWwuCiAqICAgICAgCiAqICAgICAgVG8gc3VibWl0IGFuIG9yZGVyIHRvIHBheXBhbCwgaGF2ZSB5b3VyIG9yZGVyIGZvcm0gUE9TVCB0byBhIGZpbGUgd2l0aDoKICoKICogICAgICAgICAgJHAgPSBuZXcgcGF5cGFsX2NsYXNzOwogKiAgICAgICAgICAkcC0+YWRkX2ZpZWxkKCdidXNpbmVzcycsICdzb21lYm9keUBkb21haW4uY29tJyk7CiAqICAgICAgICAgICRwLT5hZGRfZmllbGQoJ2ZpcnN0X25hbWUnLCAkX1BPU1RbJ2ZpcnN0X25hbWUnXSk7CiAqICAgICAgICAgIC4uLiAoYWRkIGFsbCB5b3VyIGZpZWxkcyBpbiB0aGUgc2FtZSBtYW5vcikKICogICAgICAgICAgJHAtPnN1Ym1pdF9wYXlwYWxfcG9zdCgpOwogKgogKiAgICAgIFRvIHByb2Nlc3MgYW4gSVBOLCBoYXZlIHlvdXIgSVBOIHByb2Nlc3NpbmcgZmlsZSBjb250YWluOgogKgogKiAgICAgICAgICAkcCA9IG5ldyBwYXlwYWxfY2xhc3M7CiAqICAgICAgICAgIGlmICgkcC0+dmFsaWRhdGVfaXBuKCkpIHsKICogICAgICAgICAgLi4uIChJUE4gaXMgdmVyaWZpZWQuICBEZXRhaWxzIGFyZSBpbiB0aGUgaXBuX2RhdGEoKSBhcnJheSkKICogICAgICAgICAgfQogKgogKgogKiAgICAgIEluIGNhc2UgeW91IGFyZSBuZXcgdG8gcGF5cGFsLCBoZXJlIGlzIHNvbWUgaW5mb3JtYXRpb24gdG8gaGVscCB5b3U6CiAqCiAqICAgICAgMS4gRG93bmxvYWQgYW5kIHJlYWQgdGhlIE1lcmNoYW50IFVzZXIgTWFudWFsIGFuZCBJbnRlZ3JhdGlvbiBHdWlkZSBmcm9tCiAqICAgICAgICAgaHR0cDovL3d3dy5wYXlwYWwuY29tL2VuX1VTL3BkZi9pbnRlZ3JhdGlvbl9ndWlkZS5wZGYuICBUaGlzIGdpdmVzIAogKiAgICAgICAgIHlvdSBhbGwgdGhlIGluZm9ybWF0aW9uIHlvdSBuZWVkIGluY2x1ZGluZyB0aGUgZmllbGRzIHlvdSBjYW4gcGFzcyB0bwogKiAgICAgICAgIHBheXBhbCAodXNpbmcgYWRkX2ZpZWxkKCkgd2l0aCB0aGlzIGNsYXNzKSBhc3dlbGwgYXMgYWxsIHRoZSBmaWVsZHMKICogICAgICAgICB0aGF0IGFyZSByZXR1cm5lZCBpbiBhbiBJUE4gcG9zdCAoc3RvcmVkIGluIHRoZSBpcG5fZGF0YSgpIGFycmF5IGluCiAqICAgICAgICAgdGhpcyBjbGFzcykuICBJdCBhbHNvIGRpYWdyYW1zIHRoZSBlbnRpcmUgdHJhbnNhY3Rpb24gcHJvY2Vzcy4KICoKICogICAgICAyLiBDcmVhdGUgYSAic2FuZGJveCIgYWNjb3VudCBmb3IgYSBidXllciBhbmQgYSBzZWxsZXIuICBUaGlzIGlzIGp1c3QKICogICAgICAgICBhIHRlc3QgYWNjb3VudChzKSB0aGF0IGFsbG93IHlvdSB0byB0ZXN0IHlvdXIgc2l0ZSBmcm9tIGJvdGggdGhlIAogKiAgICAgICAgIHNlbGxlciBhbmQgYnV5ZXIgcGVyc3BlY3RpdmUuICBUaGUgaW5zdHJ1Y3Rpb25zIGZvciB0aGlzIGlzIGF2YWlsYWJsZQogKiAgICAgICAgIGF0IGh0dHBzOi8vZGV2ZWxvcGVyLnBheXBhbC5jb20vIGFzIHdlbGwgYXMgYSBncmVhdCBmb3J1bSB3aGVyZSB5b3UKICogICAgICAgICBjYW4gYXNrIGFsbCB5b3VyIHBheXBhbCBpbnRlZ3JhdGlvbiBxdWVzdGlvbnMuICBNYWtlIHN1cmUgeW91IGZvbGxvdwogKiAgICAgICAgIGFsbCB0aGUgZGlyZWN0aW9ucyBpbiBzZXR0aW5nIHVwIGEgc2FuZGJveCB0ZXN0IGVudmlyb25tZW50LCBpbmNsdWRpbmcKICogICAgICAgICB0aGUgYWRkaXRpb24gb2YgZmFrZSBiYW5rIGFjY291bnRzIGFuZCBjcmVkaXQgY2FyZHMuCiAqIAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqLwoKY2xhc3MgcGF5cGFsX2NsYXNzIHsKICAgIAogICB2YXIgJGxhc3RfZXJyb3I7ICAgICAgICAgICAgICAgICAvLyBob2xkcyB0aGUgbGFzdCBlcnJvciBlbmNvdW50ZXJlZAogICAKICAgdmFyICRpcG5fbG9nOyAgICAgICAgICAgICAgICAgICAgLy8gYm9vbDogbG9nIElQTiByZXN1bHRzIHRvIHRleHQgZmlsZT8KICAgCiAgIHZhciAkaXBuX2xvZ19maWxlOyAgICAgICAgICAgICAgIC8vIGZpbGVuYW1lIG9mIHRoZSBJUE4gbG9nCiAgIHZhciAkaXBuX3Jlc3BvbnNlOyAgICAgICAgICAgICAgIC8vIGhvbGRzIHRoZSBJUE4gcmVzcG9uc2UgZnJvbSBwYXlwYWwgICAKICAgdmFyICRpcG5fZGF0YSA9IGFycmF5KCk7ICAgICAgICAgLy8gYXJyYXkgY29udGFpbnMgdGhlIFBPU1QgdmFsdWVzIGZvciBJUE4KICAgCiAgIHZhciAkZmllbGRzID0gYXJyYXkoKTsgICAgICAgICAgIC8vIGFycmF5IGhvbGRzIHRoZSBmaWVsZHMgdG8gc3VibWl0IHRvIHBheXBhbAoKICAgCiAgIGZ1bmN0aW9uIHBheXBhbF9jbGFzcygpIHsKICAgICAgIAogICAgICAvLyBpbml0aWFsaXphdGlvbiBjb25zdHJ1Y3Rvci4gIENhbGxlZCB3aGVuIGNsYXNzIGlzIGNyZWF0ZWQuCiAgICAgIAogICAgICAkdGhpcy0+cGF5cGFsX3VybCA9ICdodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJzsKICAgICAgCiAgICAgICR0aGlzLT5sYXN0X2Vycm9yID0gJyc7CiAgICAgIAogICAgICAkdGhpcy0+aXBuX2xvZ19maWxlID0gJy5pcG5fcmVzdWx0cy5sb2cnOwogICAgICAkdGhpcy0+aXBuX2xvZyA9IHRydWU7IAogICAgICAkdGhpcy0+aXBuX3Jlc3BvbnNlID0gJyc7CiAgICAgIAogICAgICAvLyBwb3B1bGF0ZSAkZmllbGRzIGFycmF5IHdpdGggYSBmZXcgZGVmYXVsdCB2YWx1ZXMuICBTZWUgdGhlIHBheXBhbAogICAgICAvLyBkb2N1bWVudGF0aW9uIGZvciBhIGxpc3Qgb2YgZmllbGRzIGFuZCB0aGVpciBkYXRhIHR5cGVzLiBUaGVzZSBkZWZhdWwKICAgICAgLy8gdmFsdWVzIGNhbiBiZSBvdmVyd3JpdHRlbiBieSB0aGUgY2FsbGluZyBzY3JpcHQuCgogICAgICAkdGhpcy0+YWRkX2ZpZWxkKCdybScsJzInKTsgICAgICAgICAgIC8vIFJldHVybiBtZXRob2QgPSBQT1NUCiAgICAgICR0aGlzLT5hZGRfZmllbGQoJ2NtZCcsJ194Y2xpY2snKTsgCiAgICAgIAogICB9CiAgIAogICBmdW5jdGlvbiBhZGRfZmllbGQoJGZpZWxkLCAkdmFsdWUpIHsKICAgICAgCiAgICAgIC8vIGFkZHMgYSBrZXk9PnZhbHVlIHBhaXIgdG8gdGhlIGZpZWxkcyBhcnJheSwgd2hpY2ggaXMgd2hhdCB3aWxsIGJlIAogICAgICAvLyBzZW50IHRvIHBheXBhbCBhcyBQT1NUIHZhcmlhYmxlcy4gIElmIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IGluIHRoZSAKICAgICAgLy8gYXJyYXksIGl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4uCiAgICAgICAgICAgIAogICAgICAkdGhpcy0+ZmllbGRzWyIkZmllbGQiXSA9ICR2YWx1ZTsKICAgfQoKICAgZnVuY3Rpb24gc3VibWl0X3BheXBhbF9wb3N0KCRzaG93X2FsbF9odG1sID0gdHJ1ZSwgJHN1Ym1pdF9idXR0b25faHRtbCA9ICcnKSB7CiAKICAgICAgLy8gdGhpcyBmdW5jdGlvbiBhY3R1YWxseSBnZW5lcmF0ZXMgYW4gZW50aXJlIEhUTUwgcGFnZSBjb25zaXN0aW5nIG9mCiAgICAgIC8vIGEgZm9ybSB3aXRoIGhpZGRlbiBlbGVtZW50cyB3aGljaCBpcyBzdWJtaXR0ZWQgdG8gcGF5cGFsIHZpYSB0aGUgCiAgICAgIC8vIEJPRFkgZWxlbWVudCdzIG9uTG9hZCBhdHRyaWJ1dGUuICBXZSBkbyB0aGlzIHNvIHRoYXQgeW91IGNhbiB2YWxpZGF0ZQogICAgICAvLyBhbnkgUE9TVCB2YXJzIGZyb20geW91IGN1c3RvbSBmb3JtIGJlZm9yZSBzdWJtaXR0aW5nIHRvIHBheXBhbC4gIFNvIAogICAgICAvLyBiYXNpY2FsbHksIHlvdSdsbCBoYXZlIHlvdXIgb3duIGZvcm0gd2hpY2ggaXMgc3VibWl0dGVkIHRvIHlvdXIgc2NyaXB0CiAgICAgIC8vIHRvIHZhbGlkYXRlIHRoZSBkYXRhLCB3aGljaCBpbiB0dXJuIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gY3JlYXRlCiAgICAgIC8vIGFub3RoZXIgaGlkZGVuIGZvcm0gYW5kIHN1Ym1pdCB0byBwYXlwYWwuCiAKICAgICAgLy8gVGhlIHVzZXIgd2lsbCBicmllZmx5IHNlZSBhIG1lc3NhZ2Ugb24gdGhlIHNjcmVlbiB0aGF0IHJlYWRzOgogICAgICAvLyAiUGxlYXNlIHdhaXQsIHlvdXIgb3JkZXIgaXMgYmVpbmcgcHJvY2Vzc2VkLi4uIiBhbmQgdGhlbiBpbW1lZGlhdGVseQogICAgICAvLyBpcyByZWRpcmVjdGVkIHRvIHBheXBhbC4KCgkgIGlmICgkc2hvd19hbGxfaHRtbCkKCSAgewoJICAgICAgZWNobyAiPGh0bWw+XG4iOwoJICAgICAgZWNobyAiPGhlYWQ+PHRpdGxlPlByb2Nlc3NpbmcgUGF5bWVudC4uLjwvdGl0bGU+PC9oZWFkPlxuIjsKCSAgICAgIGVjaG8gIjxib2R5IG9uTG9hZD1cImRvY3VtZW50LmZvcm1zWydwYXlwYWxfZm9ybSddLnN1Ym1pdCgpO1wiPlxuIjsKCSAgICAgIGVjaG8gIjxjZW50ZXI+PGgyPlBsZWFzZSB3YWl0LCB5b3VyIG9yZGVyIGlzIGJlaW5nIHByb2Nlc3NlZCBhbmQgeW91IjsKCSAgICAgIGVjaG8gIiB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gdGhlIHBheXBhbCB3ZWJzaXRlLjwvaDI+PC9jZW50ZXI+XG4iOwoJICB9CiAgICAgIGVjaG8gIjxmb3JtIG1ldGhvZD1cInBvc3RcIiBuYW1lPVwicGF5cGFsX2Zvcm1cIiAiOwogICAgICBlY2hvICJhY3Rpb249XCIiLiR0aGlzLT5wYXlwYWxfdXJsLiJcIj5cbiI7CgogICAgICBmb3JlYWNoICgkdGhpcy0+ZmllbGRzIGFzICRuYW1lID0+ICR2YWx1ZSkgewogICAgICAgICBlY2hvICI8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCIkbmFtZVwiIHZhbHVlPVwiJHZhbHVlXCIvPlxuIjsKICAgICAgfQoKCSAgaWYgKCRzaG93X2FsbF9odG1sKQoJICB7CgkJZWNobyAiPGNlbnRlcj48YnIvPjxici8+SWYgeW91IGFyZSBub3QgYXV0b21hdGljYWxseSByZWRpcmVjdGVkIHRvICI7CgkJZWNobyAicGF5cGFsIHdpdGhpbiA1IHNlY29uZHMuLi48YnIvPjxici8+XG4iOwoJICB9CgkKCSAgaWYgKCRzdWJtaXRfYnV0dG9uX2h0bWwgPT0gJycpCgkgIHsKCSAgICBlY2hvICI8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiQ2xpY2sgSGVyZVwiPjwvY2VudGVyPlxuIjsKCSAgfQoJICBlbHNlCgkgIHsKCSAgICBlY2hvICRzdWJtaXRfYnV0dG9uX2h0bWwuIjwvY2VudGVyPlxuIjsKCSAgfQogICAgICAKICAgICAgZWNobyAiPC9mb3JtPlxuIjsKCgkgIGlmICgkc2hvd19hbGxfaHRtbCkKCSAgewogICAgICAJZWNobyAiPC9ib2R5PjwvaHRtbD5cbiI7CgkgIH0KICAgIAogICB9CiAgIAogICBmdW5jdGlvbiB2YWxpZGF0ZV9pcG4oKSB7CgogICAgICAvLyBwYXJzZSB0aGUgcGF5cGFsIFVSTAogICAgICAkdXJsX3BhcnNlZD1wYXJzZV91cmwoJHRoaXMtPnBheXBhbF91cmwpOyAgICAgICAgCgogICAgICAvLyBnZW5lcmF0ZSB0aGUgcG9zdCBzdHJpbmcgZnJvbSB0aGUgX1BPU1QgdmFycyBhc3dlbGwgYXMgbG9hZCB0aGUKICAgICAgLy8gX1BPU1QgdmFycyBpbnRvIGFuIGFycnkgc28gd2UgY2FuIHBsYXkgd2l0aCB0aGVtIGZyb20gdGhlIGNhbGxpbmcKICAgICAgLy8gc2NyaXB0LgogICAgICAkcG9zdF9zdHJpbmcgPSAnJzsgICAgCiAgICAgIGZvcmVhY2ggKCRfUE9TVCBhcyAkZmllbGQ9PiR2YWx1ZSkgeyAKICAgICAgICAgJHRoaXMtPmlwbl9kYXRhWyIkZmllbGQiXSA9ICR2YWx1ZTsKICAgICAgICAgJHBvc3Rfc3RyaW5nIC49ICRmaWVsZC4nPScudXJsZW5jb2RlKHN0cmlwc2xhc2hlcygkdmFsdWUpKS4nJic7IAogICAgICB9CiAgICAgICRwb3N0X3N0cmluZy49ImNtZD1fbm90aWZ5LXZhbGlkYXRlIjsgLy8gYXBwZW5kIGlwbiBjb21tYW5kCgogICAgICAvLyBvcGVuIHRoZSBjb25uZWN0aW9uIHRvIHBheXBhbAogICAgICAkZnAgPSBmc29ja29wZW4oJHVybF9wYXJzZWRbaG9zdF0sIjgwIiwkZXJyX251bSwkZXJyX3N0ciwzMCk7IAogICAgICBpZighJGZwKSB7CiAgICAgICAgICAKICAgICAgICAgLy8gY291bGQgbm90IG9wZW4gdGhlIGNvbm5lY3Rpb24uICBJZiBsb2dnaW4gaXMgb24sIHRoZSBlcnJvciBtZXNzYWdlCiAgICAgICAgIC8vIHdpbGwgYmUgaW4gdGhlIGxvZy4KICAgICAgICAgJHRoaXMtPmxhc3RfZXJyb3IgPSAiZnNvY2tvcGVuIGVycm9yIG5vLiAkZXJybnVtOiAkZXJyc3RyIjsKICAgICAgICAgJHRoaXMtPmxvZ19pcG5fcmVzdWx0cyhmYWxzZSk7ICAgICAgIAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAgICB9IGVsc2UgeyAKIAogICAgICAgICAvLyBQb3N0IHRoZSBkYXRhIGJhY2sgdG8gcGF5cGFsCiAgICAgICAgIGZwdXRzKCRmcCwgIlBPU1QgJHVybF9wYXJzZWRbcGF0aF0gSFRUUC8xLjFcclxuIik7IAogICAgICAgICBmcHV0cygkZnAsICJIb3N0OiAkdXJsX3BhcnNlZFtob3N0XVxyXG4iKTsgCiAgICAgICAgIGZwdXRzKCRmcCwgIkNvbnRlbnQtdHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXHJcbiIpOyAKICAgICAgICAgZnB1dHMoJGZwLCAiQ29udGVudC1sZW5ndGg6ICIuc3RybGVuKCRwb3N0X3N0cmluZykuIlxyXG4iKTsgCiAgICAgICAgIGZwdXRzKCRmcCwgIkNvbm5lY3Rpb246IGNsb3NlXHJcblxyXG4iKTsgCiAgICAgICAgIGZwdXRzKCRmcCwgJHBvc3Rfc3RyaW5nIC4gIlxyXG5cclxuIik7IAoKICAgICAgICAgLy8gbG9vcCB0aHJvdWdoIHRoZSByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIgYW5kIGFwcGVuZCB0byB2YXJpYWJsZQogICAgICAgICB3aGlsZSghZmVvZigkZnApKSB7IAogICAgICAgICAgICAkdGhpcy0+aXBuX3Jlc3BvbnNlIC49IGZnZXRzKCRmcCwgMTAyNCk7IAogICAgICAgICB9IAoKICAgICAgICAgZmNsb3NlKCRmcCk7IC8vIGNsb3NlIGNvbm5lY3Rpb24KCiAgICAgIH0KICAgICAgCiAgICAgIGlmIChlcmVnaSgiVkVSSUZJRUQiLCR0aGlzLT5pcG5fcmVzcG9uc2UpKSB7CiAgCiAgICAgICAgIC8vIFZhbGlkIElQTiB0cmFuc2FjdGlvbi4KICAgICAgICAgJHRoaXMtPmxvZ19pcG5fcmVzdWx0cyh0cnVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7ICAgICAgIAogICAgICAgICAKICAgICAgfSBlbHNlIHsKICAKICAgICAgICAgLy8gSW52YWxpZCBJUE4gdHJhbnNhY3Rpb24uICBDaGVjayB0aGUgbG9nIGZvciBkZXRhaWxzLgogICAgICAgICAkdGhpcy0+bGFzdF9lcnJvciA9ICdJUE4gVmFsaWRhdGlvbiBGYWlsZWQuJzsKICAgICAgICAgJHRoaXMtPmxvZ19pcG5fcmVzdWx0cyhmYWxzZSk7ICAgCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCiAgICAgIH0KICAgICAgCiAgIH0KICAgCiAgIGZ1bmN0aW9uIGxvZ19pcG5fcmVzdWx0cygkc3VjY2VzcykgewogICAgICAgCiAgICAgIGlmICghJHRoaXMtPmlwbl9sb2cpIHJldHVybjsgIC8vIGlzIGxvZ2dpbmcgdHVybmVkIG9mZj8KICAgICAgCiAgICAgIC8vIFRpbWVzdGFtcAogICAgICAkdGV4dCA9ICdbJy5kYXRlKCdtL2QvWSBnOmkgQScpLiddIC0gJzsgCiAgICAgIAogICAgICAvLyBTdWNjZXNzIG9yIGZhaWx1cmUgYmVpbmcgbG9nZ2VkPwogICAgICBpZiAoJHN1Y2Nlc3MpICR0ZXh0IC49ICJTVUNDRVNTIVxuIjsKICAgICAgZWxzZSAkdGV4dCAuPSAnRkFJTDogJy4kdGhpcy0+bGFzdF9lcnJvci4iXG4iOwogICAgICAKICAgICAgLy8gTG9nIHRoZSBQT1NUIHZhcmlhYmxlcwogICAgICAkdGV4dCAuPSAiSVBOIFBPU1QgVmFycyBmcm9tIFBheXBhbDpcbiI7CiAgICAgIGZvcmVhY2ggKCR0aGlzLT5pcG5fZGF0YSBhcyAka2V5PT4kdmFsdWUpIHsKICAgICAgICAgJHRleHQgLj0gIiRrZXk9JHZhbHVlLCAiOwogICAgICB9CiAKICAgICAgLy8gTG9nIHRoZSByZXNwb25zZSBmcm9tIHRoZSBwYXlwYWwgc2VydmVyCiAgICAgICR0ZXh0IC49ICJcbklQTiBSZXNwb25zZSBmcm9tIFBheXBhbCBTZXJ2ZXI6XG4gIi4kdGhpcy0+aXBuX3Jlc3BvbnNlOwogICAgICAKICAgICAgLy8gV3JpdGUgdG8gbG9nCiAgICAgICRmcD1mb3BlbigkdGhpcy0+aXBuX2xvZ19maWxlLCdhJyk7CiAgICAgIGZ3cml0ZSgkZnAsICR0ZXh0IC4gIlxuXG4iKTsgCgogICAgICBmY2xvc2UoJGZwKTsgIC8vIGNsb3NlIGZpbGUKICAgfQoKICAgZnVuY3Rpb24gZHVtcF9maWVsZHMoKSB7CiAKICAgICAgLy8gVXNlZCBmb3IgZGVidWdnaW5nLCB0aGlzIGZ1bmN0aW9uIHdpbGwgb3V0cHV0IGFsbCB0aGUgZmllbGQvdmFsdWUgcGFpcnMKICAgICAgLy8gdGhhdCBhcmUgY3VycmVudGx5IGRlZmluZWQgaW4gdGhlIGluc3RhbmNlIG9mIHRoZSBjbGFzcyB1c2luZyB0aGUKICAgICAgLy8gYWRkX2ZpZWxkKCkgZnVuY3Rpb24uCiAgICAgIAogICAgICBlY2hvICI8aDM+cGF5cGFsX2NsYXNzLT5kdW1wX2ZpZWxkcygpIE91dHB1dDo8L2gzPiI7CiAgICAgIGVjaG8gIjx0YWJsZSB3aWR0aD1cIjk1JVwiIGJvcmRlcj1cIjFcIiBjZWxscGFkZGluZz1cIjJcIiBjZWxsc3BhY2luZz1cIjBcIj4KICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICA8dGQgYmdjb2xvcj1cImJsYWNrXCI+PGI+PGZvbnQgY29sb3I9XCJ3aGl0ZVwiPkZpZWxkIE5hbWU8L2ZvbnQ+PC9iPjwvdGQ+CiAgICAgICAgICAgICAgIDx0ZCBiZ2NvbG9yPVwiYmxhY2tcIj48Yj48Zm9udCBjb2xvcj1cIndoaXRlXCI+VmFsdWU8L2ZvbnQ+PC9iPjwvdGQ+CiAgICAgICAgICAgIDwvdHI+IjsgCiAgICAgIAogICAgICBrc29ydCgkdGhpcy0+ZmllbGRzKTsKICAgICAgZm9yZWFjaCAoJHRoaXMtPmZpZWxkcyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICBlY2hvICI8dHI+PHRkPiRrZXk8L3RkPjx0ZD4iLnVybGRlY29kZSgkdmFsdWUpLiImbmJzcDs8L3RkPjwvdHI+IjsKICAgICAgfQogCiAgICAgIGVjaG8gIjwvdGFibGU+PGJyPiI7IAogICB9Cn0gICAgICAgICAKCgogCg==]]></data>
	</file>
	<file>
	  <filename>/paypal.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qICBQSFAgUGF5cGFsIElQTiBJbnRlZ3JhdGlvbiBDbGFzcyBEZW1vbnN0cmF0aW9uIEZpbGUKICogIDQuMTYuMjAwNSAtIE1pY2FoIENhcnJpY2ssIGVtYWlsQG1pY2FoY2Fycmljay5jb20KICoKICogIFRoaXMgZmlsZSBkZW1vbnN0cmF0ZXMgdGhlIHVzYWdlIG9mIHBheXBhbC5jbGFzcy5waHAsIGEgY2xhc3MgZGVzaWduZWQgIAogKiAgdG8gYWlkIGluIHRoZSBpbnRlcmZhY2luZyBiZXR3ZWVuIHlvdXIgd2Vic2l0ZSwgcGF5cGFsLCBhbmQgdGhlIGluc3RhbnQKICogIHBheW1lbnQgbm90aWZpY2F0aW9uIChJUE4pIGludGVyZmFjZS4gIFRoaXMgc2luZ2xlIGZpbGUgc2VydmVzIGFzIDQgCiAqICB2aXJ0dWFsIHBhZ2VzIGRlcGVuZGluZyBvbiB0aGUgImFjdGlvbiIgdmFyaWFsYmxlIHBhc3NlZCBpbiB0aGUgVVJMLiBJdCdzCiAqICB0aGUgcHJvY2Vzc2luZyBwYWdlIHdoaWNoIHByb2Nlc3NlcyBmb3JtIGRhdGEgYmVpbmcgc3VibWl0dGVkIHRvIHBheXBhbCwgaXQKICogIGlzIHRoZSBwYWdlIHBheXBhbCByZXR1cm5zIGEgdXNlciB0byB1cG9uIHN1Y2Nlc3MsIGl0J3MgdGhlIHBhZ2UgcGF5cGFsCiAqICByZXR1cm5zIGEgdXNlciB0byB1cG9uIGNhbmNlbGluZyBhbiBvcmRlciwgYW5kIGZpbmFsbHksIGl0J3MgdGhlIHBhZ2UgdGhhdAogKiAgaGFuZGxlcyB0aGUgSVBOIHJlcXVlc3QgZnJvbSBQYXlwYWwuCiAqCiAqICBJIHRyaWVkIHRvIGNvbW1lbnQgdGhpcyBmaWxlLCBhc3dlbGwgYXMgdGhlIGFjdXRhbGwgY2xhc3MgZmlsZSwgYXMgd2VsbCBhcwogKiAgSSBwb3NzaWJseSBjb3VsZC4gIFBsZWFzZSBlbWFpbCBtZSB3aXRoIHF1ZXN0aW9ucywgY29tbWVudHMsIGFuZCBzdWdnZXN0aW9ucy4KICogIFNlZSB0aGUgaGVhZGVyIG9mIHBheXBhbC5jbGFzcy5waHAgZm9yIGFkZGl0aW9uYWwgcmVzb3VyY2VzIGFuZCBpbmZvcm1hdGlvbi4KKi8KCi8vIFNldHVwIGNsYXNzCnJlcXVpcmVfb25jZSgncGF5cGFsLmNsYXNzLnBocCcpOyAgLy8gaW5jbHVkZSB0aGUgY2xhc3MgZmlsZQokcCA9IG5ldyBwYXlwYWxfY2xhc3M7ICAgICAgICAgICAgIC8vIGluaXRpYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBjbGFzcwokcC0+cGF5cGFsX3VybCA9ICdodHRwczovL3d3dy5zYW5kYm94LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3InOyAgIC8vIHRlc3RpbmcgcGF5cGFsIHVybAovLyRwLT5wYXlwYWxfdXJsID0gJ2h0dHBzOi8vd3d3LnBheXBhbC5jb20vY2dpLWJpbi93ZWJzY3InOyAgICAgLy8gcGF5cGFsIHVybAogICAgICAgICAgICAKLy8gc2V0dXAgYSB2YXJpYWJsZSBmb3IgdGhpcyBzY3JpcHQgKGllOiAnaHR0cDovL3d3dy5taWNhaGNhcnJpY2suY29tL3BheXBhbC5waHAnKQokdGhpc19zY3JpcHQgPSAnaHR0cDovLycuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiRfU0VSVkVSWydQSFBfU0VMRiddOwoKLy8gaWYgdGhlcmUgaXMgbm90IGFjdGlvbiB2YXJpYWJsZSwgc2V0IHRoZSBkZWZhdWx0IGFjdGlvbiBvZiAncHJvY2VzcycKaWYgKGVtcHR5KCRfR0VUWydhY3Rpb24nXSkpICRfR0VUWydhY3Rpb24nXSA9ICdwcm9jZXNzJzsgIAoKc3dpdGNoICgkX0dFVFsnYWN0aW9uJ10pIHsKICAgIAogICBjYXNlICdwcm9jZXNzJzogICAgICAvLyBQcm9jZXNzIGFuZCBvcmRlci4uLgoKICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIG5vIG91dHB1dCBhdCB0aGlzIHBvaW50LiAgVG8gcHJvY2VzcyB0aGUgUE9TVCBkYXRhLAogICAgICAvLyB0aGUgc3VibWl0X3BheXBhbF9wb3N0KCkgZnVuY3Rpb24gd2lsbCBvdXRwdXQgYWxsIHRoZSBIVE1MIHRhZ3Mgd2hpY2gKICAgICAgLy8gY29udGFpbnMgYSBGT1JNIHdoaWNoIGlzIHN1Ym1pdGVkIGluc3RhbnRhbmVvdXNseSB1c2luZyB0aGUgQk9EWSBvbmxvYWQKICAgICAgLy8gYXR0cmlidXRlLiAgSW4gb3RoZXIgd29yZHMsIGRvbid0IGVjaG8gb3IgcHJpbnRmIGFueXRoaW5nIHdoZW4geW91J3JlCiAgICAgIC8vIGdvaW5nIHRvIGJlIGNhbGxpbmcgdGhlIHN1Ym1pdF9wYXlwYWxfcG9zdCgpIGZ1bmN0aW9uLgogCiAgICAgIC8vIFRoaXMgaXMgd2hlcmUgeW91IHdvdWxkIGhhdmUgeW91ciBmb3JtIHZhbGlkYXRpb24gIGFuZCBhbGwgdGhhdCBqYXp6LgogICAgICAvLyBZb3Ugd291bGQgdGFrZSB5b3VyIFBPU1QgdmFycyBhbmQgbG9hZCB0aGVtIGludG8gdGhlIGNsYXNzIGxpa2UgYmVsb3csCiAgICAgIC8vIG9ubHkgdXNpbmcgdGhlIFBPU1QgdmFsdWVzIGluc3RlYWQgb2YgY29uc3RhbnQgc3RyaW5nIGV4cHJlc3Npb25zLgogCiAgICAgIC8vIEZvciBleGFtcGxlLCBhZnRlciBlbnN1cmVpbmcgYWxsIHRoZSBQT1NUIHZhcmlhYmxlcyBmcm9tIHlvdXIgY3VzdG9tCiAgICAgIC8vIG9yZGVyIGZvcm0gYXJlIHZhbGlkLCB5b3UgbWlnaHQgaGF2ZToKICAgICAgLy8KICAgICAgLy8gJHAtPmFkZF9maWVsZCgnZmlyc3RfbmFtZScsICRfUE9TVFsnZmlyc3RfbmFtZSddKTsKICAgICAgLy8gJHAtPmFkZF9maWVsZCgnbGFzdF9uYW1lJywgJF9QT1NUWydsYXN0X25hbWUnXSk7CiAgICAgIAogICAgICAkcC0+YWRkX2ZpZWxkKCdidXNpbmVzcycsICdZT1VSIFBBWVBBTCAoT1IgU0FOREJPWCkgRU1BSUwgQUREUkVTUyBIRVJFIScpOwogICAgICAkcC0+YWRkX2ZpZWxkKCdyZXR1cm4nLCAkdGhpc19zY3JpcHQuJz9hY3Rpb249c3VjY2VzcycpOwogICAgICAkcC0+YWRkX2ZpZWxkKCdjYW5jZWxfcmV0dXJuJywgJHRoaXNfc2NyaXB0Lic/YWN0aW9uPWNhbmNlbCcpOwogICAgICAkcC0+YWRkX2ZpZWxkKCdub3RpZnlfdXJsJywgJHRoaXNfc2NyaXB0Lic/YWN0aW9uPWlwbicpOwogICAgICAkcC0+YWRkX2ZpZWxkKCdpdGVtX25hbWUnLCAnUGF5cGFsIFRlc3QgVHJhbnNhY3Rpb24nKTsKICAgICAgJHAtPmFkZF9maWVsZCgnYW1vdW50JywgJzEuOTknKTsKCiAgICAgICRwLT5zdWJtaXRfcGF5cGFsX3Bvc3QoKTsgLy8gc3VibWl0IHRoZSBmaWVsZHMgdG8gcGF5cGFsCiAgICAgIC8vJHAtPmR1bXBfZmllbGRzKCk7ICAgICAgLy8gZm9yIGRlYnVnZ2luZywgb3V0cHV0IGEgdGFibGUgb2YgYWxsIHRoZSBmaWVsZHMKICAgICAgYnJlYWs7CiAgICAgIAogICBjYXNlICdzdWNjZXNzJzogICAgICAvLyBPcmRlciB3YXMgc3VjY2Vzc2Z1bC4uLgogICAKICAgICAgLy8gVGhpcyBpcyB3aGVyZSB5b3Ugd291bGQgcHJvYmFibHkgd2FudCB0byB0aGFuayB0aGUgdXNlciBmb3IgdGhlaXIgb3JkZXIKICAgICAgLy8gb3Igd2hhdCBoYXZlIHlvdS4gIFRoZSBvcmRlciBpbmZvcm1hdGlvbiBhdCB0aGlzIHBvaW50IGlzIGluIFBPU1QgCiAgICAgIC8vIHZhcmlhYmxlcy4gIEhvd2V2ZXIsIHlvdSBkb24ndCB3YW50IHRvICJwcm9jZXNzIiB0aGUgb3JkZXIgdW50aWwgeW91CiAgICAgIC8vIGdldCB2YWxpZGF0aW9uIGZyb20gdGhlIElQTi4gIFRoYXQncyB3aGVyZSB5b3Ugd291bGQgaGF2ZSB0aGUgY29kZSB0bwogICAgICAvLyBlbWFpbCBhbiBhZG1pbiwgdXBkYXRlIHRoZSBkYXRhYmFzZSB3aXRoIHBheW1lbnQgc3RhdHVzLCBhY3RpdmF0ZSBhCiAgICAgIC8vIG1lbWJlcnNoaXAsIGV0Yy4gIAogCiAgICAgIGVjaG8gIjxodG1sPjxoZWFkPjx0aXRsZT5TdWNjZXNzPC90aXRsZT48L2hlYWQ+PGJvZHk+PGgzPlRoYW5rIHlvdSBmb3IgeW91ciBvcmRlci48L2gzPiI7CiAgICAgIGZvcmVhY2ggKCRfUE9TVCBhcyAka2V5ID0+ICR2YWx1ZSkgeyBlY2hvICIka2V5OiAkdmFsdWU8YnI+IjsgfQogICAgICBlY2hvICI8L2JvZHk+PC9odG1sPiI7CiAgICAgIAogICAgICAvLyBZb3UgY291bGQgYWxzbyBzaW1wbHkgcmUtZGlyZWN0IHRoZW0gdG8gYW5vdGhlciBwYWdlLCBvciB5b3VyIG93biAKICAgICAgLy8gb3JkZXIgc3RhdHVzIHBhZ2Ugd2hpY2ggcHJlc2VudHMgdGhlIHVzZXIgd2l0aCB0aGUgc3RhdHVzIG9mIHRoZWlyCiAgICAgIC8vIG9yZGVyIGJhc2VkIG9uIGEgZGF0YWJhc2UgKHdoaWNoIGNhbiBiZSBtb2RpZmllZCB3aXRoIHRoZSBJUE4gY29kZSAKICAgICAgLy8gYmVsb3cpLgogICAgICAKICAgICAgYnJlYWs7CiAgICAgIAogICBjYXNlICdjYW5jZWwnOiAgICAgICAvLyBPcmRlciB3YXMgY2FuY2VsZWQuLi4KCiAgICAgIC8vIFRoZSBvcmRlciB3YXMgY2FuY2VsZWQgYmVmb3JlIGJlaW5nIGNvbXBsZXRlZC4KIAogICAgICBlY2hvICI8aHRtbD48aGVhZD48dGl0bGU+Q2FuY2VsZWQ8L3RpdGxlPjwvaGVhZD48Ym9keT48aDM+VGhlIG9yZGVyIHdhcyBjYW5jZWxlZC48L2gzPiI7CiAgICAgIGVjaG8gIjwvYm9keT48L2h0bWw+IjsKICAgICAgCiAgICAgIGJyZWFrOwogICAgICAKICAgY2FzZSAnaXBuJzogICAgICAgICAgLy8gUGF5cGFsIGlzIGNhbGxpbmcgcGFnZSBmb3IgSVBOIHZhbGlkYXRpb24uLi4KICAgCiAgICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRoYXQgcGF5cGFsIGNhbGxpbmcgdGhpcyBzY3JpcHQuICBUaGVyZQogICAgICAvLyBpcyBubyBvdXRwdXQgaGVyZS4gIFRoaXMgaXMgd2hlcmUgeW91IHZhbGlkYXRlIHRoZSBJUE4gZGF0YSBhbmQgaWYgaXQncwogICAgICAvLyB2YWxpZCwgdXBkYXRlIHlvdXIgZGF0YWJhc2UgdG8gc2lnbmlmeSB0aGF0IHRoZSB1c2VyIGhhcyBwYXllZC4gIElmCiAgICAgIC8vIHlvdSB0cnkgYW5kIHVzZSBhbiBlY2hvIG9yIHByaW50ZiBmdW5jdGlvbiBoZXJlIGl0J3Mgbm90IGdvaW5nIHRvIGRvIHlvdQogICAgICAvLyBhIGJpdCBvZiBnb29kLiAgVGhpcyBpcyBvbiB0aGUgImJhY2tlbmQiLiAgVGhhdCBpcyB3aHksIGJ5IGRlZmF1bHQsIHRoZQogICAgICAvLyBjbGFzcyBsb2dzIGFsbCBJUE4gZGF0YSB0byBhIHRleHQgZmlsZS4KICAgICAgCiAgICAgIGlmICgkcC0+dmFsaWRhdGVfaXBuKCkpIHsKICAgICAgICAgIAogICAgICAgICAvLyBQYXltZW50IGhhcyBiZWVuIHJlY2lldmVkIGFuZCBJUE4gaXMgdmVyaWZpZWQuICBUaGlzIGlzIHdoZXJlIHlvdQogICAgICAgICAvLyB1cGRhdGUgeW91ciBkYXRhYmFzZSB0byBhY3RpdmF0ZSBvciBwcm9jZXNzIHRoZSBvcmRlciwgb3Igc2V0dXAKICAgICAgICAgLy8gdGhlIGRhdGFiYXNlIHdpdGggdGhlIHVzZXIncyBvcmRlciBkZXRhaWxzLCBlbWFpbCBhbiBhZG1pbmlzdHJhdG9yLAogICAgICAgICAvLyBldGMuICBZb3UgY2FuIGFjY2VzcyBhIHNsZXcgb2YgaW5mb3JtYXRpb24gdmlhIHRoZSBpcG5fZGF0YSgpIGFycmF5LgogIAogICAgICAgICAvLyBDaGVjayB0aGUgcGF5cGFsIGRvY3VtZW50YXRpb24gZm9yIHNwZWNpZmljcyBvbiB3aGF0IGluZm9ybWF0aW9uCiAgICAgICAgIC8vIGlzIGF2YWlsYWJsZSBpbiB0aGUgSVBOIFBPU1QgdmFyaWFibGVzLiAgQmFzaWNhbGx5LCBhbGwgdGhlIFBPU1QgdmFycwogICAgICAgICAvLyB3aGljaCBwYXlwYWwgc2VuZHMsIHdoaWNoIHdlIHNlbmQgYmFjayBmb3IgdmFsaWRhdGlvbiwgYXJlIG5vdyBzdG9yZWQKICAgICAgICAgLy8gaW4gdGhlIGlwbl9kYXRhKCkgYXJyYXkuCiAgCiAgICAgICAgIC8vIEZvciB0aGlzIGV4YW1wbGUsIHdlJ2xsIGp1c3QgZW1haWwgb3Vyc2VsdmVzIEFMTCB0aGUgZGF0YS4KICAgICAgICAgJHN1YmplY3QgPSAnSW5zdGFudCBQYXltZW50IE5vdGlmaWNhdGlvbiAtIFJlY2lldmVkIFBheW1lbnQnOwogICAgICAgICAkdG8gPSAnWU9VUiBFTUFJTCBBRERSRVNTIEhFUkUnOyAgICAvLyAgeW91ciBlbWFpbAogICAgICAgICAkYm9keSA9ICAiQW4gaW5zdGFudCBwYXltZW50IG5vdGlmaWNhdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IHJlY2lldmVkXG4iOwogICAgICAgICAkYm9keSAuPSAiZnJvbSAiLiRwLT5pcG5fZGF0YVsncGF5ZXJfZW1haWwnXS4iIG9uICIuZGF0ZSgnbS9kL1knKTsKICAgICAgICAgJGJvZHkgLj0gIiBhdCAiLmRhdGUoJ2c6aSBBJykuIlxuXG5EZXRhaWxzOlxuIjsKICAgICAgICAgCiAgICAgICAgIGZvcmVhY2ggKCRwLT5pcG5fZGF0YSBhcyAka2V5ID0+ICR2YWx1ZSkgeyAkYm9keSAuPSAiXG4ka2V5OiAkdmFsdWUiOyB9CiAgICAgICAgIG1haWwoJHRvLCAkc3ViamVjdCwgJGJvZHkpOwogICAgICB9CiAgICAgIGJyZWFrOwogfSAgICAgCgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/PaypalGateway.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheXBhbEdhdGV3YXkgLSBBIFBheXBhbCBnYXRld2F5IG1vZHVsZSBmb3IgdGhlIE9yZGVycyBtb2R1bGUKIyBWZXJzaW9uOiAxLjAsIFRlZCBLdWxwIDx0ZWRAY21zbWFkZXNpbXBsZS5vcmc+CiMKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUtMjAwOCBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpCiMgVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly93d3cuY21zbWFkZXNpbXBsZS5vcmcKIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokY2dleHRlbnNpb25zID0gY21zX2pvaW5fcGF0aCgkZ0Ntcy0+Y29uZmlnWydyb290X3BhdGgnXSwnbW9kdWxlcycsCgknQ0dFeHRlbnNpb25zJywnQ0dFeHRlbnNpb25zLm1vZHVsZS5waHAnKTsKaWYoICFpc19yZWFkYWJsZSggJGNnZXh0ZW5zaW9ucyApICkKewoJZWNobyAnPGgxPjxmb250IGNvbG9yPSJyZWQiPkVSUk9SOiBUaGUgQ0dFeHRlbnNpb25zIG1vZHVsZSBjb3VsZCBub3QgYmUgZm91bmQuPC9mb250PjwvaDE+JzsKCXJldHVybjsKfQpyZXF1aXJlX29uY2UoJGNnZXh0ZW5zaW9ucyk7CgpjbGFzcyBQYXlwYWxHYXRld2F5IGV4dGVuZHMgQ0dFeHRlbnNpb25zCnsKCiAgdmFyICRfd2VpZ2h0dW5pdHM7CiAgdmFyICRfY3VycmVuY3ljb2RlOwogIHZhciAkX3N1Y2Nlc3N1cmw7CiAgdmFyICRfc3VjY2Vzc3BhZ2U7CiAgdmFyICRfY2FuY2VsdXJsOwogIHZhciAkX2NhbmNlbHBhZ2U7CiAgdmFyICRfaXRlbXM7CiAgdmFyICRfb3JkZXJ0YXg7CiAgdmFyICRfb3JkZXJzaGlwcGluZzsKICB2YXIgJF9vcmRlcmlkOwoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBDb25zdHJ1Y3RvcigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gUGF5cGFsR2F0ZXdheSgpCiAgewogICAgcGFyZW50OjpDTVNNb2R1bGUoKTsKICAgICR0aGlzLT5yZXNldCgpOwogIH0KCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0TmFtZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0TmFtZSgpCiAgewogICAgcmV0dXJuICdQYXlwYWxHYXRld2F5JzsKICB9CiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0RnJpZW5kbHlOYW1lKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRGcmllbmRseU5hbWUoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0VmVyc2lvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0VmVyc2lvbigpCiAgewogICAgcmV0dXJuICcxLjEnOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEhlbHAoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEhlbHAoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnaGVscCcpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEF1dGhvcigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QXV0aG9yKCkKICB7CiAgICByZXR1cm4gJ1RlZCBLdWxwJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBdXRob3JFbWFpbCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQogIHsKICAgIHJldHVybiAndGVkQGNtc21hZGVzaW1wbGUub3JnJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRDaGFuZ2VMb2coKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldENoYW5nZUxvZygpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIElzUGx1Z2luTW9kdWxlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpCiAgewogICAgcmV0dXJuIHRydWU7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgSGFzQWRtaW4oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEhhc0FkbWluKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBZG1pblNlY3Rpb24oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEFkbWluU2VjdGlvbigpCiAgewogICAgcmV0dXJuICdleHRlbnNpb25zJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ21vZGRlc2NyaXB0aW9uJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgfHwKICAgICAgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXREZXBlbmRlbmNpZXMoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldERlcGVuZGVuY2llcygpCiAgewogICAgcmV0dXJuIGFycmF5KCdDR0V4dGVuc2lvbnMnPT4xLjkpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIE1pbmltdW1DTVNWZXJzaW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpCiAgewogICAgcmV0dXJuICIxLjMiOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFNldFBhcmFtZXRlcnMoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFNldFBhcmFtZXRlcnMoKQogIHsKICAgICR0aGlzLT5SZWdpc3Rlck1vZHVsZVBsdWdpbigpOwogICAgJHRoaXMtPlJlc3RyaWN0VW5rbm93blBhcmFtcygpOwoKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdwcm9jZXNzJywgQ0xFQU5fU1RSSU5HKTsJCQogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ29yZGVyX2lkJywgQ0xFQU5fSU5UKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdteWN1c3RvbScsIENMRUFOX1NUUklORyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgSW5zdGFsbFBvc3RNZXNzYWdlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBJbnN0YWxsUG9zdE1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdGluc3RhbGwnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gVW5pbnN0YWxsUG9zdE1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwogIH0KCgkKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBJc1BheW1lbnRHYXRld2F5TW9kdWxlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBJc1BheW1lbnRHYXRld2F5TW9kdWxlKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgoKICBmdW5jdGlvbiBHZXRGb3JtKCRyZXR1cm5pZCkKICB7CiAgICBpZiggZW1wdHkoJHRoaXMtPl9vcmRlcmlkKSB8fCBjb3VudCgkdGhpcy0+X2l0ZW1zKSA9PSAwICkKICAgICAgewoJcmV0dXJuICcnOwogICAgICB9CiAgICAkc3VjY2Vzc3BhZ2UgPSAoZW1wdHkoJHRoaXMtPl9zdWNjZXNzcGFnZSkpPyRyZXR1cm5pZDokdGhpcy0+X3N1Y2Nlc3NwYWdlOwogICAgJGNhbmNlbHBhZ2UgPSAoZW1wdHkoJHRoaXMtPl9jYW5jZWxwYWdlKSk/JHJldHVybmlkOiR0aGlzLT5fY2FuY2VscGFnZTsKICAgIAogICAgcmVxdWlyZV9vbmNlKCdwYXlwYWwuY2xhc3MucGhwJyk7CiAgICAkcHAgPSBuZXcgcGF5cGFsX2NsYXNzOwoKICAgICRwcC0+cGF5cGFsX3VybCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdwYXlwYWxfdXJsJywnaHR0cHM6Ly93d3cuc2FuZGJveC5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyJyk7CiAgICAkcHAtPmFkZF9maWVsZCgndXBsb2FkJywgJzEnKTsgLy8zcmQgcGFydHkgY2FydAogICAgJHBwLT5hZGRfZmllbGQoJ3JtJywnMicpOyAvL1VzZSBQT1NUIGZvciByZXR1cm5zCiAgICAkcHAtPmFkZF9maWVsZCgnY21kJywnX2NhcnQnKTsgLy8zcmQgcGFydHkgY2FydAogICAgaWYoICFlbXB0eSgkdGhpcy0+X3dlaWdodHVuaXRzKSApCiAgICAgIHsKCSRwcC0+YWRkX2ZpZWxkKCd3ZWlnaHRfdW5pdCcsJHRoaXMtPl93ZWlnaHR1bml0cyk7CiAgICAgIH0KICAgIGlmKCAhZW1wdHkoJHRoaXMtPl9jdXJyZW5jeWNvZGUpICkKICAgICAgewoJJHBwLT5hZGRfZmllbGQoJ2N1cnJlbmN5X2NvZGUnLCR0aGlzLT5fY3VycmVuY3ljb2RlKTsKICAgICAgfQogICAgJHBwLT5hZGRfZmllbGQoJ2J1c2luZXNzJywkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYnVzaW5lc3NfZW1haWwnLCcnKSk7CiAgICAkcHAtPmFkZF9maWVsZCgnb3JkZXJfaWQnLCR0aGlzLT5fb3JkZXJpZCk7CiAgICAkX1NFU1NJT05bJ3BwZ3dfY3VzdG9tX2ZpZWxkJ10gPSBtZDUoJ29yZGVycycuJHRoaXMtPl9vcmRlcmlkKTsKICAgICRwcC0+YWRkX2ZpZWxkKCdjdXN0b20nLCRfU0VTU0lPTlsncHBnd19jdXN0b21fZmllbGQnXSk7CiAgICAkcHAtPmFkZF9maWVsZCgncmV0dXJuJywkdGhpcy0+Q3JlYXRlTGluaygkaWQsJ3JldHVybl9zdWNjZXNzJywkc3VjY2Vzc3BhZ2UsJycsYXJyYXkoJ29yZGVyX2lkJz0+JHRoaXMtPl9vcmRlcmlkLAoJCQkJCQkJCQkJCSAnbXljdXN0b20nPT4kX1NFU1NJT05bJ3BwZ3dfY3VzdG9tX2ZpZWxkJ10pLCcnLHRydWUpKTsKICAgICRwcC0+YWRkX2ZpZWxkKCdjYW5jZWxfcmV0dXJuJywKIAkJICAgJHRoaXMtPkNyZWF0ZUxpbmsoJGlkLCdyZXR1cm5fY2FuY2VsJywkY2FuY2VscGFnZSwnJyxhcnJheSgnb3JkZXJfaWQnPT4kdGhpcy0+X29yZGVyaWQsCgkJCQkJCQkJCSAgICAgICdteWN1c3RvbSc9PiRfU0VTU0lPTlsncHBnd19jdXN0b21fZmllbGQnXSksJycsdHJ1ZSkpOwogICAgJHBwLT5hZGRfZmllbGQoJ25vX25vdGUnLDEpOwoKICAgIC8vIHRvZG8uLi4gaGFuZGxlIGEgbm90aWZ5IHVybCBmb3IgaXBuCgogICAgJGNvdW50ID0gMTsKICAgIGZvcmVhY2goICR0aGlzLT5faXRlbXMgYXMgJG5hbWUgPT4gJGRhdGEgKQogICAgICB7CgkkcHAtPmFkZF9maWVsZCgnYW1vdW50XycuJGNvdW50LCAkZGF0YVsnYW1vdW50J10pOwoJJHBwLT5hZGRfZmllbGQoJ2l0ZW1fbmFtZV8nLiRjb3VudCwgJG5hbWUgKTsKCSRwcC0+YWRkX2ZpZWxkKCdpdGVtX251bWJlcl8nLiRjb3VudCwgJGRhdGFbJ251bWJlciddKTsKCSRwcC0+YWRkX2ZpZWxkKCdxdWFudGl0eV8nLiRjb3VudCwgJGRhdGFbJ3F1YW50aXR5J10pOwoJJGNvdW50Kys7CiAgICAgIH0KICAgIAogICAgLy8gaGFjayBmb3Igc2hpcHBpbmcKICAgIGlmKCAhZW1wdHkoJHRoaXMtPl9vcmRlcnNoaXBwaW5nKSAmJiAkdGhpcy0+X29yZGVyc2hpcHBpbmcgPiAwICkKICAgICAgewoJJHBwLT5hZGRfZmllbGQoJ2Ftb3VudF8nLiRjb3VudCwgJHRoaXMtPl9vcmRlcnNoaXBwaW5nICk7CgkkcHAtPmFkZF9maWVsZCgnaXRlbV9uYW1lXycuJGNvdW50LCAnU2hpcHBpbmcnKTsKICAgICAgfQoKICAgIC8vIHRheGVzCiAgICBpZiggIWVtcHR5KCR0aGlzLT5fb3JkZXJ0YXgpICkKICAgICAgewoJJHBwLT5hZGRfZmllbGQoJ3RheF9jYXJ0JywkdGhpcy0+X29yZGVydGF4KTsKICAgICAgfQoKICAgIC8vIHNldCBhIGNvdXBsZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBmb3IgdGhlIHJldHVybiB1cmxzCiAgICBpZiggIWVtcHR5KCR0aGlzLT5fc3VjY2Vzc3VybCkgKQogICAgICB7CgkkX1NFU1NJT05bJ3BwZ3dfc3VjY2Vzc191cmwnXSA9ICR0aGlzLT5fc3VjY2Vzc3VybDsKICAgICAgfQogICAgaWYoICFlbXB0eSgkdGhpcy0+X2NhbmNlbHVybCkgKQogICAgICB7CgkkX1NFU1NJT05bJ3BwZ3dfY2FuY2VsX3VybCddID0gJHRoaXMtPl9jYW5jZWx1cmw7CiAgICAgIH0KICAgIEBvYl9zdGFydCgpOwogICAgJHBwLT5zdWJtaXRfcGF5cGFsX3Bvc3QoZmFsc2UsJHRoaXMtPkxhbmcoJ2NoZWNrb3V0X21lc3NhZ2UnKS4nICcuCgkJCSAgICAnPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IicuJHRoaXMtPkxhbmcoJ2NoZWNrb3V0X2J1dHRvbl9tZXNzYWdlJykuJyI+Jyk7CiAgICAkcmVzdWx0ID0gQG9iX2dldF9jb250ZW50cygpOwogICAgQG9iX2VuZF9jbGVhbigpOwogICAgcmV0dXJuICRyZXN1bHQ7CiAgfQoKCiAgZnVuY3Rpb24gcmVzZXQoKQogIHsKICAgICR0aGlzLT5fd2VpZ2h0dW5pdHMgPSAnbGJzJzsKICAgICR0aGlzLT5fY3VycmVuY3ljb2RlID0gJ1VTRCc7CiAgICAkdGhpcy0+X3N1Y2Nlc3N1cmwgPSAnJzsKICAgICR0aGlzLT5fY2FuY2VsdXJsID0gJyc7CiAgICAkdGhpcy0+X3N1Y2Nlc3NwYWdlID0gJyc7CiAgICAkdGhpcy0+X2NhbmNlbHBhZ2UgPSAnJzsKICAgICR0aGlzLT5faXRlbXMgPSBhcnJheSgpOwogICAgJHRoaXMtPl9vcmRlcnRheCA9ICcnOwogICAgJHRoaXMtPl9vcmRlcnNoaXBwaW5nID0gJyc7CiAgICAkdGhpcy0+X29yZGVyaWQgPSAnJzsKICB9CgoKICBmdW5jdGlvbiBTZXRDdXJyZW5jeUNvZGUoJGNvZGUgPSAnVVNEJykKICB7CiAgICAkdGhpcy0+X2N1cnJlbmN5Y29kZSA9IHN0cnRvdXBwZXIoJGNvZGUpOwogIH0KCgogIGZ1bmN0aW9uIFNldFdlaWdodFVuaXRzKCR1bml0cyA9ICdsYnMnKQogIHsKICAgICR0aGlzLT5fd2VpZ2h0dW5pdHMgPSAkdW5pdHM7CiAgfQoKCiAgZnVuY3Rpb24gU2V0U3VjY2Vzc1VSTCgkdXJsKQogIHsKICAgICR0aGlzLT5fc3VjY2Vzc3VybCA9ICR1cmw7CiAgfQoKCiAgZnVuY3Rpb24gU2V0U3VjY2Vzc1BhZ2UoJHBhZ2UpCiAgewogICAgJHRoaXMtPl9zdWNjZXNzcGFnZSA9ICRwYWdlOwogIH0KCgogIGZ1bmN0aW9uIFNldENhbmNlbFVSTCgkdXJsKQogIHsKICAgICR0aGlzLT5fY2FuY2VsdXJsID0gJHVybDsKICB9CgoKICBmdW5jdGlvbiBTZXRDYW5jZWxQYWdlKCRwYWdlKQogIHsKICAgICR0aGlzLT5fY2FuY2VscGFnZSA9ICRwYWdlOwogIH0KCgogIGZ1bmN0aW9uIEFkZEl0ZW0oJG5hbWUsJG51bWJlciwkcXVhbnRpdHksJHdlaWdodCwkYW1vdW50LCR0YXggPSAnJykKICB7CiAgICBpZiggIWlzc2V0KCR0aGlzLT5faXRlbXNbJG5hbWVdKSApCiAgICAgIHsKCSR0aGlzLT5faXRlbXNbJG5hbWVdID0gYXJyYXkoJ25hbWUnPT4kbmFtZSwKCQkJCSAgICAgJ251bWJlcic9PiRudW1iZXIsCgkJCQkgICAgICdxdWFudGl0eSc9PiRxdWFudGl0eSwKCQkJCSAgICAgJ3dlaWdodCc9PiR3ZWlnaHQsCgkJCQkgICAgICdhbW91bnQnPT4kYW1vdW50KTsKCWlmKCFlbXB0eSgkdGF4KSkKCSAgewoJICAgICR0aGlzLT5faXRlbXNbJG5hbWVdWyd0YXgnXSA9ICR0YXg7CgkgIH0KICAgICAgfQogIH0KCgogIGZ1bmN0aW9uIFNldE9yZGVyVGF4QW1vdW50KCR0YXgpCiAgewogICAgJHRoaXMtPl9vcmRlcnRheCA9ICR0YXg7CiAgfQoKCiAgZnVuY3Rpb24gU2V0T3JkZXJTaGlwcGluZygkc2hpcHBpbmcpCiAgewogICAgJHRoaXMtPl9vcmRlcnNoaXBwaW5nID0gJHNoaXBwaW5nOwogIH0KCgogIGZ1bmN0aW9uIFNldE9yZGVySUQoJG9yZGVyaWQpCiAgewogICAgJHRoaXMtPl9vcmRlcmlkID0gJG9yZGVyaWQ7CiAgfQoKCiAgZnVuY3Rpb24gU2V0UmV0dXJuU3RhdHVzKCRzdGF0dXMpCiAgewogICAgaWYoICFpc3NldCgkX1NFU1NJT05bJ2dhdGV3YXlfcmV0dXJuX3BhcmFtcyddKSApCiAgICAgIHsKCSRfU0VTU0lPTlsnZ2F0ZXdheV9yZXR1cm5fcGFyYW1zJ10gPSBhcnJheSgpOwogICAgICB9CiAgICAkX1NFU1NJT05bJ2dhdGV3YXlfcmV0dXJuX3BhcmFtcyddWydzdGF0dXMnXSA9ICRzdGF0dXM7CiAgfQoKCiAgZnVuY3Rpb24gR2V0UmV0dXJuU3RhdHVzKCkKICB7CiAgICBpZiggIWlzc2V0KCRfU0VTU0lPTlsnZ2F0ZXdheV9yZXR1cm5fcGFyYW1zJ10pICkgcmV0dXJuIGZhbHNlOwogICAgaWYoICFpc3NldCgkX1NFU1NJT05bJ2dhdGV3YXlfcmV0dXJuX3BhcmFtcyddWydzdGF0dXMnXSkgKSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gJF9TRVNTSU9OWydnYXRld2F5X3JldHVybl9wYXJhbXMnXVsnc3RhdHVzJ107CiAgfQoKCiAgZnVuY3Rpb24gU2V0UmV0dXJuVHJhbnNhY3Rpb25JRCgkdHgpCiAgewogICAgaWYoICFpc3NldCgkX1NFU1NJT05bJ2dhdGV3YXlfcmV0dXJuX3BhcmFtcyddKSApCiAgICAgIHsKCSRfU0VTU0lPTlsnZ2F0ZXdheV9yZXR1cm5fcGFyYW1zJ10gPSBhcnJheSgpOwogICAgICB9CiAgICAkX1NFU1NJT05bJ2dhdGV3YXlfcmV0dXJuX3BhcmFtcyddWyd0cmFuc2lkJ10gPSAkdHg7CiAgfQoKCiAgZnVuY3Rpb24gR2V0UmV0dXJuVHJhbnNhY3Rpb25JRCgpCiAgewogICAgaWYoICFpc3NldCgkX1NFU1NJT05bJ2dhdGV3YXlfcmV0dXJuX3BhcmFtcyddKSApIHJldHVybiBmYWxzZTsKICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OWydnYXRld2F5X3JldHVybl9wYXJhbXMnXVsndHJhbnNpZCddKSApIHJldHVybiBmYWxzZTsKICAgIHJldHVybiAkX1NFU1NJT05bJ2dhdGV3YXlfcmV0dXJuX3BhcmFtcyddWyd0cmFuc2lkJ107CiAgfQoKCiAgZnVuY3Rpb24gU2V0UmV0dXJuVGV4dCgkdHh0KQogIHsKICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OWydnYXRld2F5X3JldHVybl9wYXJhbXMnXSkgKQogICAgICB7CgkkX1NFU1NJT05bJ2dhdGV3YXlfcmV0dXJuX3BhcmFtcyddID0gYXJyYXkoKTsKICAgICAgfQogICAgJF9TRVNTSU9OWydnYXRld2F5X3JldHVybl9wYXJhbXMnXVsnZGF0YSddID0gJHR4dDsKICB9CgoKICBmdW5jdGlvbiBHZXRSZXR1cm5UcmFuc2FjdGlvblRleHQoKQogIHsKICAgIGlmKCAhaXNzZXQoJF9TRVNTSU9OWydnYXRld2F5X3JldHVybl9wYXJhbXMnXSkgKSByZXR1cm4gZmFsc2U7CiAgICBpZiggIWlzc2V0KCRfU0VTU0lPTlsnZ2F0ZXdheV9yZXR1cm5fcGFyYW1zJ11bJ2RhdGEnXSkgKSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gJF9TRVNTSU9OWydnYXRld2F5X3JldHVybl9wYXJhbXMnXVsnZGF0YSddOwogIH0KCiAgZnVuY3Rpb24gQ2xlYXJzZXNzaW9uVmFycygpCiAgewogICAgdW5zZXQoICRfU0VTU0lPTlsncHBnd19zdWNjZXNzX3VybCddICk7CiAgICB1bnNldCggJF9TRVNTSU9OWydwcGd3X2NhbmNlbF91cmwnXSApOwogICAgdW5zZXQoICRfU0VTU0lPTlsncHBnd19jdXN0b21fZmllbGQnXSApOwogICAgdW5zZXQoICRfU0VTU0lPTlsnZ2F0ZXdheV9yZXR1cm5fcGFyYW1zJ10gKTsKICB9Cgp9IC8vIGNsYXNzCg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/prefs.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9wYXlwYWxfdXJsfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3BheXBhbF91cmx9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2J1c2luZXNzX2VtYWlsfTwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2J1c2luZXNzX2VtYWlsfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9PC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQo=]]></data>
	</file>
	<file>
	  <filename>/TODO.txt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[MSkgQWxsb3cgYWRkcmVzcyBvdmVycmlkZQoyKSBBbGxvdyBjdXJyZW5jeQozKSBBbGxvdyBvcHRpb25hbCBzaGlwcGluZyBpdGVtCiAgIC0gY291bGQgdXNlIHRoZSBzaGlwcGluZyBhbmQgc2hpcHBpbmcyIHZhcmlhYmxlcwogICAtIGFsbG93IHNlbmRpbmcgd2VpZ2hzCiAgIC0gd2VpZ2h0IHVuaXRzCjQpIGFsbG93IHRoZSBjcHBfaGVhZGVyX2ltYWdlLCBjcHBfaGVhZGVyYmFja19jb2xvciwgY3BwX2hlYWRlcmJvcmRlcl9jb2xvciwgY3BwX3BheWZsb3dfY29sb3IKICAgaW1hZ2VfdXJsLCBub19ub3RlLCBub19zaGlwcGluZywgcGFnZV9zdHlsZSwg]]></data>
	</file>
</module>
